{"version":3,"sources":["webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tet.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ka.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/snackbar/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/snackbar/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/snackbar/util.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/snackbar/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/regexp-exec.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/km.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/it-ch.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/data-table/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/data-table/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/data-table/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/is.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/hu.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/html.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/nl-be.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/ripple/util.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tzm.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/web.immediate.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/engine-user-agent.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/fr.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/advance-string-index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-assign.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/native-symbol.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.from.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/dom/events.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/pt-br.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/gl.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/timeago.js/esm/lang/en_US.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/timeago.js/esm/lang/zh_CN.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/timeago.js/esm/register.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/timeago.js/esm/utils/date.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/timeago.js/esm/format.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/timeago.js/esm/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/inherit-if-required.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ro.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-define-properties.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ru.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/querystringify/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/drawer/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/drawer/dismissible/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/es-mx.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/create-property.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/enhanceError.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/flatpickr/dist/flatpickr.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/actioncable/lib/assets/compiled/action_cable.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/gu.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/pl.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/es.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/fil.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/menu-surface/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/drawer/modal/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/drawer/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/drawer/util.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/bg.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/array-includes.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/regression/dist/regression.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/fails.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/an-instance.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/web.url-search-params.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/native-url.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/en-in.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ta.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/decode-uri-component/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/mk.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/az.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/ssr-window/ssr-window.esm.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/dom7/dom7.esm.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/utils/dom.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/utils/get-support.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/utils/get-device.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/utils/get-browser.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/utils/utils.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/modules/resize/resize.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/modules/observer/observer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/events/onResize.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/events/onClick.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/events/onScroll.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/events/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/defaults.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/core-class.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/modular.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/events-emitter.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateSize.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/translate/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/transition/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/slide/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/loop/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/manipulation/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/classes/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/images/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/images/loadImage.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/uid.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/query-string/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/own-keys.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/require-object-coercible.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/eo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/it.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/element-closest/browser.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/fo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/trix/dist/trix.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/array-from.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/gd.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/activestorage/app/assets/javascripts/activestorage.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/event_listener.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/action.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/binding.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/context.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/definition.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/module.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/data_map.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/selectors.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/target_set.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/scope.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/router.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/schema.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/application.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/target_properties.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/core/dist/src/controller.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/is-object.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/axios.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/ripple/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/ripple/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/bn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.string.iterator.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/bn-bd.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/copy-constructor-properties.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/uz.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tlh.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/get-iterator.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/hidden-keys.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-positive-integer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/use-symbol-as-uid.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tk.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/uz-latn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/fr-ch.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tg.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ne.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/moment.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ar-tn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/sd.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/chartjs-plugin-datalabels/dist/chartjs-plugin-datalabels.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/web.dom-collections.iterator.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/parseHeaders.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/dispatchRequest.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-offset.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/validator.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ar-ma.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/zh-tw.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.of.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/cancel/Cancel.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/adapters/xhr.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/gom-deva.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/fy.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/redefine.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-keys.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/sk.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tzl.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/dom/keyboard.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/list/events.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/list/typeahead.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/list/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/mn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-object.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/get-iterator-method.js","webpack:///(webpack)/buildin/module.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/cs.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/lb.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/a-function.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/gom-latn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/array-fill.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/utils.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/strict-uri-encode/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ko.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/de-ch.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/jv.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/chartjs-plugin-regression/lib/MetaData.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/process/browser.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/enums.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/createPopper.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/debounce.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/getVariation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/offset.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/within.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/hide.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/popper.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/flip.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/tippy.js/dist/tippy.esm.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/regexp-exec-abstract.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/sr-cyrl.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/floating-label/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/floating-label/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/floating-label/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/line-ripple/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/line-ripple/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/line-ripple/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/notched-outline/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/notched-outline/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/notched-outline/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/character-counter/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/character-counter/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/character-counter/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/helper-text/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/helper-text/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/helper-text/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/icon/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/icon/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/icon/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/textfield/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/transformData.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/split-on-first/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/list/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ug-cn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/pa-in.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.int32-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/function-bind-context.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/buildFullPath.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/bs.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/path.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/dialog/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/dialog/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/dialog/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/dialog/util.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/zh-mo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/regenerator-runtime/runtime.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/InterceptorManager.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/bm.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/radio/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/radio/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/radio/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@babel/runtime/regenerator/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/ripple/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/es-do.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/base/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/createError.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/switch/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/switch/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/switch/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.int16-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/dom-iterables.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/bo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/th.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/en-sg.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/set-species.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-length.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/task.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/Axios.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/cancel/CancelToken.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/da.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/top-app-bar/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/top-app-bar/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/top-app-bar/standard/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/top-app-bar/fixed/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/top-app-bar/short/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/top-app-bar/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/string-punycode-to-ascii.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/engine-is-ios.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/add-to-unscopables.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ja.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/descriptors.js","webpack:///(webpack)/buildin/global.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/combineURLs.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/mr.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/nb.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/zh-hk.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/correct-prototype-getter.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/has.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/chartjs-plugin-regression/lib/types.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/en-nz.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/create-iterator-constructor.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/et.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.array.iterator.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/lodash.debounce/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/cy.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/lt.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/export.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.string.replace.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/oc-lnc.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/eu.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/hr.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/en-il.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/en-au.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/sq.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/enum-bug-keys.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/fi.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-integer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/ie8-dom-define.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/is-pure.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/shared.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/dom/ponyfill.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tr.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/en-ca.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ar-kw.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/a-possible-prototype.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-get-own-property-names.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ar-ly.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/chartjs-plugin-regression/lib/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/cv.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/typed-array-constructor.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/fr-ca.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/create-property-descriptor.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/shave/dist/shave.es.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/spread.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/br.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.math.hypot.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/me.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/af.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/dom/focus-trap.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/set-global.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/global.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ar-sa.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/array-species-create.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/chart.js/dist/Chart.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/settle.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/choices.js/public/assets/scripts/choices.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/en-ie.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/he.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/list/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ur.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/nl.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/uk.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/check-correctness-of-iteration.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/sv.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tzm-latn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/is-array-iterator-method.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/lo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ku.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/de.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/form-field/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/form-field/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/form-field/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/hy-am.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ms-my.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-get-prototype-of.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-indexed-object.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/si.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/is-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/tslib/tslib.es6.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/es-us.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/is-forced.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/kk.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/array-iteration.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/cancel/isCancel.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/setimmediate/setImmediate.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.float64-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-absolute-index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/set-to-string-tag.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/sw.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/chartjs-plugin-regression/lib/regression-plugin.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/timers-browserify/main.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/de-at.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/be.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/chartjs-plugin-regression/lib/MetaSection.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/web.url.to-json.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/kn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/classof-raw.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/animation/util.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/checkbox/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/checkbox/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/checkbox/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/web.url.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-define-property.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/te.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/classof.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/zh-cn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/dv.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/en-gb.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/get-built-in.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/mi.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ky.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/iterators-core.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/regexp-flags.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/redefine-all.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ss.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/sl.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ms.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-set-prototype-of.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-keys-internal.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ga.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/internal-state.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/vi.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/ieee754.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/an-object.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/cookies.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/se.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/id.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/x-pseudo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/object-create.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/inspect-source.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.int8-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ca.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/bind.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/document-create-element.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/my.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ar.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.regexp.exec.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/pt.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/typed-array-from.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/tl-ph.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/fa.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/iterators.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/defaults.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/base/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/lv.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/nn.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/string-multibyte.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/array-buffer.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/shared-key.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/array-buffer-view-core.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-primitive.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/sr.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ml.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/hi.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/chartkick/dist/chartkick.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/indexed-object.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/big.js/big.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/core/mergeConfig.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/to-string-tag-support.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/isAxiosError.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/el.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/shared-store.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/array-buffer-native.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/mt.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/menu-surface/util.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/menu-surface/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/menu/constants.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/menu/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/menu/component.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/well-known-symbol.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/@material/menu-surface/foundation.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/axios/lib/helpers/buildURL.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/regexp-sticky-helpers.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/define-iterator.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/yo.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/moment/locale/ar-dz.js","webpack:////home/deploy/hautegrub-production/shared/node_modules/core-js/internals/native-weak-map.js"],"names":["moment","defineLocale","months","split","monthsShort","weekdays","weekdaysShort","weekdaysMin","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","ss","m","mm","h","hh","d","dd","M","MM","y","yy","dayOfMonthOrdinalParse","ordinal","number","b","week","dow","doy","factory","standalone","format","isFormat","replace","$0","$1","$2","test","cssClasses","CLOSING","OPEN","OPENING","strings","ACTION_SELECTOR","ARIA_LIVE_LABEL_TEXT_ATTR","CLOSED_EVENT","CLOSING_EVENT","DISMISS_SELECTOR","LABEL_SELECTOR","OPENED_EVENT","OPENING_EVENT","REASON_ACTION","REASON_DISMISS","SURFACE_SELECTOR","numbers","DEFAULT_AUTO_DISMISS_TIMEOUT_MS","INDETERMINATE","MAX_AUTO_DISMISS_TIMEOUT_MS","MIN_AUTO_DISMISS_TIMEOUT_MS","SNACKBAR_ANIMATION_CLOSE_TIME_MS","SNACKBAR_ANIMATION_OPEN_TIME_MS","ARIA_LIVE_DELAY_MS","_super","MDCSnackbarFoundation","adapter","_this","call","this","defaultAdapter","isOpen_","animationFrame_","animationTimer_","autoDismissTimer_","autoDismissTimeoutMs_","closeOnEscape_","Object","defineProperty","get","enumerable","configurable","addClass","announce","notifyClosed","notifyClosing","notifyOpened","notifyOpening","removeClass","prototype","destroy","clearAutoDismissTimer_","cancelAnimationFrame","clearTimeout","open","runNextAnimationFrame_","setTimeout","timeoutMs","getTimeoutMs","handleAnimationTimerEnd_","close","reason","isOpen","setTimeoutMs","minValue","maxValue","Error","getCloseOnEscape","setCloseOnEscape","closeOnEscape","handleKeyDown","evt","key","keyCode","handleActionButtonClick","_evt","handleActionIconClick","callback","requestAnimationFrame","ariaEl","labelEl","priority","getAttribute","labelText","textContent","trim","setAttribute","innerHTML","removeAttribute","MDCSnackbar","apply","arguments","attachTo","root","initialize","announcerFactory","announce_","initialSyncWithDOM","surfaceEl_","querySelector","labelEl_","actionEl_","handleKeyDown_","foundation","handleSurfaceClick_","target","isActionButton_","isActionIcon_","registerKeyDownHandler_","registerSurfaceClickHandler_","deregisterKeyDownHandler_","deregisterSurfaceClickHandler_","getDefaultFoundation","className","classList","add","emit","remove","set","actionButtonText","handler","listen","unlisten","addEventListener","removeEventListener","Boolean","re1","re2","regexpFlags","stickyHelpers","nativeExec","RegExp","exec","nativeReplace","String","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","undefined","str","reCopy","match","i","re","sticky","flags","source","charsAdded","strCopy","indexOf","slice","multiline","input","index","length","global","module","exports","symbolMap","1","2","3","4","5","6","7","8","9","0","numberMap","weekdaysParseExact","meridiemParse","isPM","meridiem","hour","minute","isLower","preparse","string","postformat","day","SortValue","dataAttributes","selectors","CONTENT","HEADER_CELL","HEADER_CELL_WITH_SORT","HEADER_ROW","HEADER_ROW_CHECKBOX","PROGRESS_INDICATOR","ROW","ROW_CHECKBOX","ROW_SELECTED","SORT_ICON_BUTTON","SORT_STATUS_LABEL","messages","ARIA_SELECTED","ARIA_SORT","DATA_ROW_ID_ATTR","HEADER_ROW_CHECKBOX_SELECTOR","ROW_CHECKBOX_SELECTOR","ROW_SELECTED_SELECTOR","ROW_SELECTOR","events","MDCDataTableFoundation","addClassAtRowIndex","getAttributeByHeaderCellIndex","getHeaderCellCount","getHeaderCellElements","getRowCount","getRowElements","getRowIdAtIndex","getRowIndexByChildElement","getSelectedRowCount","getTableBodyHeight","getTableHeaderHeight","isCheckboxAtRowIndexChecked","isHeaderRowCheckboxChecked","isRowsSelectable","notifyRowSelectionChanged","notifySelectedAll","notifySortAction","notifyUnselectedAll","registerHeaderRowCheckbox","registerRowCheckboxes","removeClassAtRowIndex","removeClassNameByHeaderCellIndex","setAttributeAtRowIndex","setAttributeByHeaderCellIndex","setClassNameByHeaderCellIndex","setHeaderRowCheckboxChecked","setHeaderRowCheckboxIndeterminate","setProgressIndicatorStyles","setRowCheckboxCheckedAtIndex","setSortStatusLabelByHeaderCellIndex","layout","setHeaderRowCheckboxState","layoutAsync","_a","label","sent","getRows","getHeaderCells","setSelectedRowIds","rowIds","rowIndex","rowId","isSelected","selectRowAtIndex","getRowIds","push","getSelectedRowIds","selectedRowIds","handleHeaderRowCheckboxChange","isHeaderChecked","handleRowCheckboxChange","event","selected","handleSortAction","eventData","columnId","columnIndex","headerCell","NONE","currentSortValue","sortValue","ASCENDING","DESCENDING","showProgress","height","top","hideProgress","MDCDataTable","checkboxFactory","el","headerRow","headerRowClickListener","handleHeaderRowClick","content","querySelectorAll","headerRowCheckbox","rowCheckboxList","forEach","checkbox","attribute","value","data","tableBody","getBoundingClientRect","tableHeader","styles","progressIndicator","assign","style","checked","row","getRowByIndex","getRowIdByIndex","checkboxEl","rowEl","attr","indeterminate","sortStatusLabel","getSortStatusMessageBySortValue","plural","n","translate","withoutSuffix","isFuture","result","weekEndings","num","monthsParseExact","charAt","toLowerCase","hours","minutes","getBuiltIn","monthsShortWithDots","monthsShortWithoutDots","monthsParse","monthsRegex","month","monthsShortRegex","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","supportsCssVariables_","supportsCssVariables","windowObj","forceRefresh","supportsCssVars","CSS","supports","explicitlySupportsCssVars","weAreFeatureDetectingSafari10plus","getNormalizedEventCoords","pageOffset","clientRect","x","normalizedX","normalizedY","documentX","left","documentY","type","touchEvent","changedTouches","pageX","pageY","mouseEvent","$","task","bind","forced","setImmediate","clearImmediate","clear","toInteger","toLength","it","RangeError","w","ww","period","S","unicode","DESCRIPTORS","fails","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","toObject","IndexedObject","nativeAssign","A","B","symbol","Symbol","alphabet","chr","join","T","argumentsLength","getOwnPropertySymbols","f","propertyIsEnumerable","keys","concat","j","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","exportTypedArrayStaticMethod","applyPassive","globalObj","window","passiveSupported","options","document","err","supportsPassiveOption","passive","invalidDate","EN_US","ZH_CN","Locales","register","locale","func","getLocale","SEC_ARRAY","toDate","Date","isNaN","parseInt","formatDiff","diff","localeFunc","agoIn","totalSec","Math","abs","idx","floor","toString","diffSec","date","relativeDate","opts","unit","isObject","setPrototypeOf","$this","dummy","Wrapper","NewTarget","NewTargetPrototype","constructor","relativeTimeWithPlural","separator","definePropertyModule","anObject","defineProperties","O","Properties","word","forms","now","has","hasOwnProperty","decode","decodeURIComponent","e","encode","encodeURIComponent","stringify","obj","prefix","pairs","undef","parse","query","part","parser","ANIMATE","DISMISSIBLE","MODAL","ROOT","APP_CONTENT_SELECTOR","CLOSE_EVENT","OPEN_EVENT","SCRIM_SELECTOR","MDCDismissibleDrawerFoundation","hasClass","elementHasClass","notifyClose","notifyOpen","saveFocus","restoreFocus","focusActiveNavigationItem","trapFocus","releaseFocus","isOpening","isClosing","handleKeydown","handleTransitionEnd","isElement_","closed_","opened_","element","createPropertyDescriptor","object","monthsShortDot","toPrimitive","propertyKey","error","config","code","request","response","isAxiosError","toJSON","message","name","description","fileName","lineNumber","columnNumber","stack","__assign","t","p","__spreadArrays","il","r","Array","k","a","jl","HOOKS","defaults","_disable","_enable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enable","enableSeconds","enableTime","errorHandler","console","getWeek","givenDate","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","round","hourIncrement","ignoredFocusElements","inline","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","shorthand","longhand","daysInMonth","firstDayOfWeek","nth","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","int","bool","debounce","wait","immediate","timeout","context","args","arrayify","toggleClass","elem","createElement","tag","clearNode","node","firstChild","removeChild","findParent","condition","parentNode","createNumberInput","inputClassName","wrapper","numInput","arrowUp","arrowDown","pattern","appendChild","getEventTarget","composedPath","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","parseFloat","H","J","K","getHours","shortMonth","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","Y","year","setFullYear","Z","ISODate","setMinutes","l","u","unixMillSeconds","tokenRegex","formats","toISOString","getMonth","getSeconds","getMinutes","substring","createDateFormatter","_b","_c","l10n","_d","isMobile","frmt","overrideLocale","formatDate","map","c","arr","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","datestr","parseDate","matched","ops","matchIndex","regexStr","token_1","isBackSlash","escaped","fn","val","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","duration","DAY","_i","TypeError","_loop_1","args_1","DEBOUNCED_CHANGE_MS","FlatpickrInstance","instanceConfig","self","flatpickr","defaultConfig","setupHelperFunctions","utils","getDaysInMonth","yr","currentMonth","currentYear","init","parseConfig","setupLocale","setupInputs","setupDates","build","bindEvents","selectedDates","setHoursFromDate","latestSelectedDateObj","minDate","updateValue","setCalendarWidth","isSafari","positionCalendar","triggerEvent","bindToInstance","calendarContainer","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","defaultDate","getDefaultHours","timeWrapper","prevValue","_input","setHoursFromInputs","_debouncedChange","ampm2military","military2ampm","hourElement","minuteElement","secondElement","limitMinHours","minTime","minDateHasTime","maxTime","maxDate","maxDateHasTime","minHr","minMinutes","maxHr","maxMinutes","onYearInput","eventTarget","delta","changeYear","ev","_handlers","triggerChange","setupMobile","debouncedResize","onResize","onMouseOver","body","ontouchstart","documentClick","capture","monthNav","onMonthNavClick","selectDate","timeContainer","selText","select","timeIncrement","onBlur","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","buildMonthSwitch","redraw","incrementNumInput","contains","inputElem","createEvent","dispatchEvent","fragment","createDocumentFragment","tabIndex","buildMonthNav","innerContainer","buildWeeks","rContainer","buildWeekdays","buildDays","buildTime","customAppend","appendTo","nodeType","insertBefore","nextSibling","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","getFirstAvailableDay","startMonth","endMonth","children","startIndex","endIndex","getNextAvailableDay","current","givenMonth","loopDelta","numMonthDays","changeMonth","focusOnDay","offset","dayFocused","isInView","activeElement","startElem","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","frag","shouldBuildMonth","monthsDropdownContainer","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","disabled","buildMonths","prevMonthNav","yearElements","monthElements","nextMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","currentYearElement","updateNavigationCurrentMonth","hourInput","minuteInput","secondInput","title","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","triggerChangeEvent","toInitial","mobileInput","_initialDate","lastChild","_type","isCalendarElem","eventTarget_1","isCalendarElement","isInput","path","lostFocus","relatedTarget","isIgnored","some","newYear","newYearNum","isNewYear","dateToCheck","array","parsed","from","to","allowKeydown","allowInlineKeydown","blur","isTimeObj","preventDefault","focusAndClose","delta_1","ctrlKey","stopPropagation","elems","pluginElements","filter","shiftKey","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","dayElem","timestamp","outOfRange","_positionElement","click","wasOpen","minMaxDateSetter","inverseDateObj","boolOpts","userConfig","JSON","dataset","dates","parseDateRules","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","getInputElem","l10ns","default","customPositionElement","calendarHeight","reduce","acc","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","innerHeight","bottom","showOnTop","pageYOffset","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","getDocumentStyleSheet","bodyWidth","centerLeft","centerBefore","centerAfter","centerIndex","cssRules","centerStyle","insertRule","editableSheet","styleSheets","sheet","createStyleSheet","head","msMaxTouchPoints","isSelectable","selectedDate","shouldChangeMonth","selectedIndex","sort","single","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","_createElement","toggle","CALLBACKS","option","setSelectedDate","inputDate","rule","preloadedDate","nodeName","placeholder","required","inputType","mobileFormatStr","defaultValue","step","hooks","initEvent","getDateStr","dObj","isPrevMonth","isNextMonth","isKeyDown","curValue","newValue","which","isHourElem","isMinuteElem","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","selector","Node","en","localize","setDefaults","jQuery","fp_incr","ActionCable","INTERNAL","WebSocket","logger","createConsumer","url","ref","getConfig","default_mount_path","Consumer","createWebSocketURL","href","protocol","startDebugging","debugging","stopDebugging","log","ConnectionMonitor","clamp","secondsSince","connection","me","visibilityDidChange","reconnectAttempts","pollInterval","staleThreshold","start","isRunning","startedAt","stoppedAt","startPolling","getPollInterval","stop","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","interval","connectionIsStale","disconnectedRecently","reopen","visibilityState","time","message_types","protocols","supportedProtocols","item","Connection","consumer","subscriptions","monitor","disconnected","reopenDelay","send","webSocket","isActive","getState","uninstallEventHandlers","installEventHandlers","arg","ref1","allowReconnect","error1","getProtocol","isState","isProtocolSupported","states","state","readyState","eventName","identifier","welcome","reload","ping","confirmation","notify","rejection","reject","notifyAll","willAttemptReconnect","Subscriptions","create","channelName","mixin","channel","params","subscription","Subscription","ensureActiveConnection","sendCommand","forget","findAll","len","results","callbackName","command","extend","perform","action","unsubscribe","properties","connect","disconnect","meridiemHour","monthsNominative","monthsSubjective","momentToFormat","CornerBit","Corner","ANCHOR","ANIMATING_CLOSED","ANIMATING_OPEN","FIXED","IS_OPEN_BELOW","FOCUSABLE_ELEMENTS","TRANSITION_OPEN_DURATION","TRANSITION_CLOSE_DURATION","MARGIN_TO_EDGE","ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO","MDCModalDrawerFoundation","handleScrimClick","MDCDrawer","list_","focusTrapFactory","listFactory","listEl","wrapFocus","focusTrapFactory_","surfaceEl","scrim_","handleScrimClick_","focusTrap_","skipInitialFocus","handleKeydown_","handleTransitionEnd_","previousFocus_","previousFocus","activeNavItemEl","LIST_ITEM_ACTIVATED_CLASS","lastDigit","last2Digits","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","fromIndex","includes","_defineProperty","writable","_extends","_toConsumableArray","isArray","arr2","DEFAULT_OPTIONS","order","precision","determinationCoefficient","predictions","observations","mean","observation","ssyy","difference","accum","prediction","residual","gaussianElimination","matrix","coefficients","maxrow","tmp","_j","_k","_j2","total","_k2","factor","pow","methods","linear","sum","run","rise","gradient","intercept","predict","points","point","equation","r2","exponential","denominator","exp","coeffA","coeffB","logarithmic","power","polynomial","lhs","rhs","_l","v","coeff","reverse","createWrapper","accumulator","_round","supplied","Constructor","USE_NATIVE_URL","redefine","redefineAll","setToStringTag","createIteratorConstructor","InternalStateModule","anInstance","hasOwn","classof","getIterator","getIteratorMethod","wellKnownSymbol","$fetch","Headers","ITERATOR","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","setInternalState","getInternalParamsState","getterFor","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","find","replacer","serialize","parseSearchParams","entry","attributes","shift","updateSearchParams","entries","validateArgumentsLength","passed","URLSearchParamsIterator","kind","iterator","next","done","URLSearchParamsConstructor","iteratorMethod","entryIterator","entryNext","first","second","that","updateURL","URLSearchParamsPrototype","append","getAll","found","entriesIndex","sliceIndex","boundFunction","values","URLSearchParams","fetch","headers","IS_PURE","URL","searchParams","pathname","username","host","hash","token","singleMatcher","multiMatcher","decodeComponents","components","tokens","encodedURI","replaceMap","customDecodeURIComponent","suffixes","70","80","20","50","100","10","30","60","90","src","ssrDocument","getElementById","childNodes","createElementNS","importNode","location","hostname","origin","search","getDocument","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","id","getWindow","win","_getPrototypeOf","o","getPrototypeOf","__proto__","_setPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","_construct","Parent","Class","instance","Function","_wrapNativeSuper","_cache","Map","Dom7","_Array","subClass","superClass","items","proto","ReferenceError","_assertThisInitialized","arrayFlat","res","arrayFilter","html","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","_len","_key","trigger","on","Methods","classes","classNames","_el$classList","_len2","_key2","_el$classList2","_len4","_key4","_len3","_key3","attrs","attrName","removeAttr","transform","transition","transitionDuration","_len5","_key5","eventType","targetSelector","listener","handleLiveEvent","dom7EventData","unshift","is","_parents","parents","handleEvent","_event","dom7LiveListeners","proxyListener","dom7Listeners","off","_len6","_key6","handlers","dom7proxy","_len9","_key9","detail","bubbles","cancelable","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","outerHeight","_styles2","box","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","css","props","_prop","each","text","compareWith","matches","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","newChild","tempDiv","prepend","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","_parent","closest","foundElements","methodName","browser","nextTick","delay","getTranslate","axis","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","noExtend","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","gestures","calcSupport","getDevice","overrides","_temp","support","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isWebView","calcBrowser","swiper","resize","createObserver","destroyed","initialized","ResizeObserver","newWidth","newHeight","_ref","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","subKey","onTouchStart","touchEventsData","touches","animating","preventInteractionOnTransition","originalEvent","$targetEl","touchEventsTarget","wrapperEl","isTouchEvent","button","isTouched","isMoved","noSwipingClass","shadowRoot","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","updateSize","swipeDirection","threshold","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","rtl","rtlTranslate","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","loop","isVertical","maxTranslate","minTranslate","diffX","diffY","sqrt","touchAngle","isHorizontal","atan2","PI","cssMode","touchMoveStopPropagation","nested","loopFix","startTranslate","setTransition","allowMomentumBounce","grabCursor","allowSlideNext","allowSlidePrev","setGrabCursor","touchRatio","currentTranslate","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","watchSlidesProgress","watchSlidesVisibility","updateActiveIndex","updateSlidesClasses","velocities","updateProgress","setTranslate","onTouchEnd","slidesGrid","snapGrid","currentPos","touchEndTime","timeDiff","updateClickedSlide","lastClickTime","slideTo","activeIndex","slides","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","centeredSlides","freeModeSticky","nextSlide","once","moveDistance","currentSlideSize","slidesSizesGrid","speed","slideToClosest","transitionStart","longSwipesMs","stopIndex","groupSize","slidesPerGroupSkip","slidesPerGroup","_increment","ratio","increment","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","breakpoints","setBreakpoint","updateSlides","slidesPerView","isEnd","isBeginning","autoplay","running","paused","watchOverflow","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","scrollWidth","translatesDiff","progress","dummyEventAttached","dummyEventListener","direction","initialSlide","updateOnWindowResize","autoHeight","setWrapperSize","virtualTranslate","effect","breakpointsBase","spaceBetween","slidesPerColumn","slidesPerColumnFill","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","simulateTouch","uniqueNavElements","slideToClickedSlide","preloadImages","updateOnImagesReady","loopAdditionalSlides","loopedSlides","loopFillGroupWithBlank","loopPreventsSlide","passiveListeners","containerModifierClass","slideClass","slideBlankClass","slideActiveClass","slideDuplicateActiveClass","slideVisibleClass","slideDuplicateClass","slideNextClass","slideDuplicateNextClass","slidePrevClass","slideDuplicatePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","_defineProperties","descriptor","prototypes","modular","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","method","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","update","clientWidth","clientHeight","Number","size","getDirectionLabel","property","getDirectionPropertyValue","swiperSize","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","ceil","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","groupIndex","slideIndexInGroup","columnsInGroup","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideEl","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","_allSlidesSize","allSlidesOffset","snapIndex","updateSlidesOffset","updateAutoHeight","activeSlides","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideProgress","slideBefore","slideAfter","multiplier","wasBeginning","wasEnd","activeSlide","realIndex","prevSlide","emitSlidesClasses","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","skip","slideFound","clickedSlide","clickedIndex","byController","translateTo","runCallbacks","translateBounds","internal","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","dir","indexAsNumber","isFinite","normalizedTranslate","normalizedGird","normalizedGridNext","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","_clientLeft","slidePrev","normalize","prevIndex","normalizedSnapGrid","prevSnap","slideReset","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","blankSlidesNum","blankNode","prependSlides","appendSlides","cloneNode","loopDestroy","moving","isLocked","cursor","unsetGrabCursor","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","attachEvents","touchEvents","move","end","cancel","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","emitContainerClasses","directionChanged","needsReLoop","changeDirection","base","containerEl","currentWidth","currentHeight","minRatio","substr","_points$i","wasLocked","lastSlidePosition","addClasses","resultClasses","removeClasses","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","moduleParamName","desktop","swiperParams","passedParams","touchEventsTouch","touchEventsDesktop","clickTimeout","protoProps","staticProps","_proto","getSlideClasses","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","postfix","random","_slicedToArray","_arrayWithHoles","_arr","_n","_e","_s","_iterableToArrayLimit","minLen","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","strictUriEncode","decodeComponent","splitOnFirst","validateArrayFormatSeparator","strict","keysSorter","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","parserForArrayFormat","ret","_splitOnFirst2","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","objectCopy","parseUrl","_splitOnFirst4","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","getOwnPropertyNamesModule","llll","Element","mozMatchesSelector","ownerDocument","Set","_state","_handled","_value","_deferreds","onFulfilled","onRejected","promise","then","all","resolve","race","_setImmediateFn","_setUnhandledRejectionFn","Promise","customElements","registerElement","WeakMap","g","uid_","takeRecords","nodes_","removeTransientObservers","callback_","subtree","enqueue","records_","C","addedNodes","removedNodes","attributeName","attributeNamespace","oldValue","transientObservedNodes","JsMutationObserver","postMessage","ShadowDOMPolyfill","wrapIfNeeded","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","_isPolyfilled","performance","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","defaultPrevented","Event","initCustomEvent","WebComponents","CustomElements","addModule","initializeModules","hasNative","isIE","useNative","HTMLImports","ELEMENT_NODE","olderShadowRoot","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","_URL","localName","DOCUMENT_FRAGMENT_NODE","E","__observer","hasPolyfillMutations","hasThrottledAttached","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","createdCallback","getOwnPropertyNames","native","HTMLTemplateElement","decorate","getRegisteredDefinition","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","__name","lifecycle","ancestry","ready","registry","instanceof","reservedTagList","readyTime","elapsed","unwrap","unwrapIfNeeded","__importsParsingHook","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","inspect","contentsForInspection","toJSONString","toUTF16String","UTF16String","getCacheKey","defer","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","summarizeStringChange","added","removed","utf16String","codepoints","fromCodepoints","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","documentElement","matchesSelector","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","tagName","makeElement","editable","contenteditable","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","connectedCallback","disconnectedCallback","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","metaKey","RTL_PATTERN","getDirection","dirName","FormData","Hash","fromCommonAttributesOfObjects","getKeys","getKeysCommonToHash","merge","toArray","isEmpty","ObjectGroup","objects","depth","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","ElementStore","reset","elements","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","charCodeAt","fromCharCode","lang","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","link","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","group","plaintext","bulletList","bullet","numberList","exclusive","fileSize","byte","inheritable","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","render","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","file","keyNames","13","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","files","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElement","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","Controller","didMutate","findSignificantMutations","delegate","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","FileVerificationOperation","FileReader","abort","readAsArrayBuffer","InputController","mutationObserver","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","createLinkHTML","outerHTML","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","toUpperCase","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","copy","paste","R","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","types","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","meta","isEnded","getSelectedDocument","Files","opacity","charCode","inputController","isSignificant","insertPlaceholder","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","withEvent","inputTypes","selectionContainsAttachments","dragging","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","trixAction","getFilename","getFormattedFilesize","getCaption","scrollHeight","parentElement","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","refresh","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","TextView","getPieces","hasAttribute","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","isRTL","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","didSync","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","ImagePreloadOperation","naturalWidth","naturalHeight","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filename","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","Text","textForAttachmentWithAttributes","textForStringWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","sanitizeElement","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","appendStringWithAttributes","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","selectionManagers","started","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","lock","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","isFocusedInvisibly","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","queryCommandSupported","execCommand","labels","inputElement","editorController","registerResetListener","registerClickListener","unregisterResetListener","unregisterClickListener","resetListener","resetBubbled","clickListener","clickBubbled","form","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","arrayLike","mapfn","mapping","createCommonjsModule","sparkMd5","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","tail","lo","hi","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","SparkMD5","targetArray","sourceArray","begin","appendBinary","contents","_buff","_length","_hash","raw","_finish","setState","hashBinary","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","getMetaValue","findElements","toArray$1","eventInit","BlobRecord","checksum","content_type","byte_size","xhr","XMLHttpRequest","responseType","setRequestHeader","requestDidLoad","requestDidError","blob","status","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","loaded","alert","_this2","uploadRequestDidProgress","inputSelector","DirectUploadsController","inputs","controllers","createDirectUploadControllers","startNextController","controller","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","submitForm","delete","autostart","ActiveStorage","EventListener","unorderedBindings","bindingConnected","binding","bindingDisconnected","extendedEvent","stopImmediatePropagation_1","immediatePropagationStopped","extendEvent","bindings","leftIndex","rightIndex","Dispatcher","application","eventListenerMaps","eventListeners","eventListener","listeners","fetchEventListenerForBinding","handleError","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","descriptorPattern","parseEventTarget","eventTargetName","Action","defaultEventNames","getDefaultEventNameForElement","forToken","descriptorString","eventNameSuffix","Binding","willBeInvokedByEvent","invokeWithEvent","scope","containsElement","ElementObserver","processMutations","matchElementsInTree","removeElement","addElement","mutations_1","mutation","processMutation","processAttributeChange","processRemovedNodes","processAddedNodes","elementAttributeChanged","matchElement","elementFromNode","processTree","elementIsActive","tree","processor","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","del","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","getValuesForKey","getKeysForValue","__extends","__","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","Context","controllerConstructor","bindingObserver","dispatcher","blessControllerConstructor","bless","extendWithReflect","_newTarget","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","char","attributeValueContainsToken","TargetSet","targetName","targetNames","getSelectorForTargetNames","findAllElements","getSelectorForTargetName","targetDescriptor","targetAttribute","Scope","targets","filterElements","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","fulfilled","rejected","__generator","trys","verb","op","Application","router","load","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","defineTargetProperties","ancestors","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","capitalize","Axios","mergeConfig","createInstance","axios","Cancel","CancelToken","isCancel","promises","spread","BG_FOCUSED","FG_ACTIVATION","FG_DEACTIVATION","UNBOUNDED","VAR_FG_SCALE","VAR_FG_SIZE","VAR_FG_TRANSLATE_END","VAR_FG_TRANSLATE_START","VAR_LEFT","VAR_TOP","DEACTIVATION_TIMEOUT_MS","FG_DEACTIVATION_MS","INITIAL_ORIGIN_SCALE","PADDING","TAP_DELAY_MS","ACTIVATION_EVENT_TYPES","POINTER_DEACTIVATION_EVENT_TYPES","activatedTargets","MDCRippleFoundation","activationAnimationHasEnded_","activationTimer_","fgDeactivationRemovalTimer_","fgScale_","frame_","initialSize_","layoutFrame_","maxRadius_","unboundedCoords_","activationState_","defaultActivationState_","activationTimerCallback_","runDeactivationUXLogicIfReady_","activateHandler_","activate_","deactivateHandler_","deactivate_","focusHandler_","handleFocus","blurHandler_","handleBlur","resizeHandler_","browserSupportsCssVars","computeBoundingRect","containsEventTarget","deregisterDocumentInteractionHandler","deregisterInteractionHandler","deregisterResizeHandler","getWindowPageOffset","isSurfaceActive","isSurfaceDisabled","isUnbounded","registerDocumentInteractionHandler","registerInteractionHandler","registerResizeHandler","updateCssVariable","supportsPressRipple","supportsPressRipple_","registerRootHandlers_","ROOT_1","UNBOUNDED_1","layoutInternal_","ROOT_2","UNBOUNDED_2","removeCssVars_","deregisterRootHandlers_","deregisterDeactivationHandlers_","activate","deactivate","setUnbounded","unbounded","activationEvent","hasDeactivationUXRun","isActivated","isProgrammatic","wasActivatedByPointer","wasElementMadeActive","evtType","registerDeactivationHandlers_","rippleStrings","activationState","previousActivationEvent","previousActivationEvent_","resetActivationState_","checkElementMadeActive_","animateActivation_","translateStart","translateEnd","getFgTranslationCoordinates_","startPoint","endPoint","rmBoundedActivationClasses_","animateDeactivation_","maxDim","initialSize","updateLayoutCssVars_","defineIterator","STRING_ITERATOR","getInternalState","iterated","ownKeys","getOwnPropertyDescriptorModule","numbersNouns","translateFuture","output","translatePast","numberNoun","numberAsNoun","hundred","ten","one","NATIVE_SYMBOL","12","40","hookCallback","setHookCallback","hasOwnProp","isObjectEmpty","isUndefined","isNumber","isDate","valueOf","createUTC","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","momentProperties","updateInProgress","copyConfig","prop","_isAMomentObject","_f","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","isFunction","_config","_dayOfMonthOrdinalParseLenient","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","mom","_calendar","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","_longDateFormat","formatUpper","tok","defaultInvalidDate","_invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","_ordinal","defaultRelativeTime","_relativeTime","pastFuture","aliases","addUnitAlias","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","getPrioritizedUnits","unitsObj","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","stringGet","stringSet","prioritized","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","mod","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","_months","localeMonthsShort","_monthsShort","handleStrictParse","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","localeMonthsParse","_monthsParseExact","dayOfMonth","getSetMonth","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","_monthsStrictRegex","_monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","parseTwoDigitYear","getSetYear","getIsLeapYear","createDate","ms","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","localeWeek","_week","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getSetLocaleDayOfWeek","getSetISODayOfWeek","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","kFormat","lowercase","matchMeridiem","_meridiemParse","localeIsPM","kInput","_isPm","_meridiem","pos","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","globalLocale","baseConfig","locales","localeFamilies","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","_abbr","getSetGlobalLocale","abbr","parentLocale","updateLocale","tmpLocale","listLocales","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","setUTCMinutes","getUTCMinutes","configFromString","createFromInputFallback","currentDateArray","nowValue","_useUTC","getUTCMonth","getUTCDate","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","weekYear","temp","weekdayOverflow","curWeek","GG","createLocal","gg","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","erasConvertYear","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromObject","dayOrDate","millisecond","createFromConfig","prepareConfig","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","quarter","weeks","isoWeek","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","isAdding","invalid","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","sod","startOf","calendarFormat","localInput","endOf","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor","keepOffset","datetime","suffix","zone","inputString","defaultFormatUtc","defaultFormat","humanize","fromNow","toNow","newLocaleData","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOfDate","isoWeekday","unix","isValid$2","parsingFlags","invalidAt","creationData","localeEras","eras","_eras","since","until","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","_erasNameRegex","_erasRegex","erasAbbrRegex","_erasAbbrRegex","erasNarrowRegex","_erasNarrowRegex","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","_eraYearOrdinalRegex","abbrPieces","namePieces","narrowPieces","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","isoWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","erasParse","eraYearOrdinalParse","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetMillisecond","getSetSecond","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","for","eraNarrow","eraAbbr","eraYear","isoWeeks","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","isDST","zoneAbbr","zoneName","isDSTShifted","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","firstDayOfYear","langData","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","clone$1","get$2","makeGetter","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","limit","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","toIsoString","version","relativeTimeRounding","relativeTimeThreshold","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","Chart","helpers","devicePixelRatio","deviceXDPI","logicalXDPI","toTextLines","lines","isNullOrUndef","toFontString","font","family","weight","textSize","ctx","ilen","measureText","lineHeight","parseFont","valueOrDefault","defaultFontSize","defaultFontFamily","toLineHeight","defaultFontStyle","bound","arrayDiff","a0","a1","rasterize","orient","x0","y0","dx","dy","ln","aligned","vx","vy","align","cos","sin","R_INSIDE","R_LEFT","R_RIGHT","R_BOTTOM","R_TOP","region","rect","clipped","segment","area","x1","y1","r0","r1","compute","positioners","arc","vm","angle","startAngle","endAngle","innerRadius","outerRadius","rx","radius","ry","sx","sy","horizontal","fallback","helpers$1","boundingRects","borderWidth","padding","tw","tx","ty","frame","getScaleOrigin","_model","scale","_scale","_xScale","_yScale","xCenter","yCenter","pixel","getBasePixel","getPositioner","Arc","Point","Rectangle","drawFrame","bgColor","borderColor","beginPath","canvas","roundedRect","borderRadius","closePath","fillStyle","fill","strokeStyle","lineWidth","lineJoin","stroke","textGeometry","drawTextLine","cfg","shadow","shadowBlur","stroked","strokeText","filled","fillText","drawText","textAlign","color","strokeColor","textStrokeColor","strokeWidth","textStrokeWidth","textBaseline","textShadowBlur","shadowColor","textShadowColor","Label","_index","_rects","_ctx","_el","_modelize","defaultFontColor","chart","chartArea","clip","toPadding","positioner","rotation","rects","geometry","visible","draw","center","save","globalAlpha","rotate","restore","helpers$2","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","rotated","cx","cy","projected","pt","dp","toAxis","p0","HitBox","_rotation","_rect","coordinates","view","vs","collide","collider","s0","s1","$layout","_visible","_box","intersects","compute$1","h0","_hidable","h1","margin","pr0","pr1","_points","axes","prepare","datasets","jlen","_set","_idx","sa","sb","dirty","lookup","_view","helpers$3","klen","helpers$4","EXPANDO_KEY","DEFAULT_KEY","configure","override","datalabels","configs","$context","groups","$groups","_dirty","dispatchMoveEvents","previous","enter","leave","handleMoveEvents","expando","_listeners","_labels","_hovered","handleClickEvents","animations","animationService","lazy","plugin","beforeInit","_actives","beforeUpdate","_listened","_datasets","afterDatasetUpdate","datasetIndex","isDatasetVisible","active","merger","afterUpdate","afterDatasetsDraw","beforeEvent","afterEvent","actives","lastActive","DOMIterables","ArrayIteratorMethods","createNonEnumerableProperty","TO_STRING_TAG","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","METHOD_NAME","ignoreDuplicateOf","line","transformData","throwIfCancellationRequested","cancelToken","throwIfRequested","transformRequest","common","transformResponse","toPositiveInteger","BYTES","pkg","validators","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","transitional","validator","isDeprecated","opt","formatMessage","assertOptions","allowUnknown","ll","lll","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","ArrayBufferViewCore","aTypedArrayConstructor","createTypedArrayConstructor","byteOffset","__CANCEL__","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","isFormData","auth","password","Authorization","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","paramsSerializer","onreadystatechange","responseURL","onabort","ontimeout","timeoutErrorMessage","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","onDownloadProgress","onUploadProgress","processRelativeTime","setGlobal","inspectSource","enforceInternalState","enforce","TEMPLATE","unsafe","simple","noTargetGet","internalObjectKeys","enumBugKeys","KEY","normalizedKeys","KEY_CODE","mappedKeyCodes","navigationKeys","normalizeKey","mappedKey","ELEMENTS_KEY_ALLOWED_IN","preventDefaultEvent","matchItem","nextChar","focusItemAtIndex","sortedIndexByFirstChar","focusedItemIndex","skipFocus","isItemAtIndexDisabled","bufferClearTimeout","clearBuffer","TYPEAHEAD_BUFFER_CLEAR_TIMEOUT_MS","typeaheadBuffer","firstChar","itemsMatchingFirstChar","currentFirstChar","sortedIndexCursor","cursorPosition","newCursorPosition","matchFirstChar","startingItem","nextCursorPosition","currentItem","matchAllChars","isTypingInProgress","isTargetListItem","isArrowLeft","isArrowUp","isArrowRight","isArrowDown","isHome","isEnter","isSpace","MDCListFoundation","wrapFocus_","isVertical_","isSingleSelectionList_","selectedIndex_","UNSET_INDEX","useActivatedClass_","ariaCurrentAttrValue_","isCheckboxList_","isRadioList_","hasTypeahead","typeaheadState","addClassForElementIndex","getAttributeForElementIndex","getFocusedElementIndex","getListItemCount","hasCheckboxAtIndex","hasRadioAtIndex","isCheckboxCheckedAtIndex","isFocusInsideList","isRootFocused","listItemAtIndexHasClass","notifyAction","removeClassForElementIndex","setAttributeForElementIndex","setCheckedCheckboxOrRadioAtIndex","setTabIndexForListItemChildren","getPrimaryTextAtIndex","typeaheadInitSortedIndex","setWrapFocus","setVerticalOrientation","setSingleSelection","setHasTypeahead","isTypeaheadInProgress","setUseActivatedClass","useActivated","getSelectedIndex","setSelectedIndex","isIndexValid_","setCheckboxAtIndex_","setRadioAtIndex_","setSingleSelectionAtIndex_","handleFocusIn","listItemIndex","handleFocusOut","setTabindexToFirstSelectedItem_","isRootListItem","focusLastElement","focusFirstElement","LIST_ITEM_DISABLED_CLASS","currentIndex","focusNextElement","focusPrevElement","isSelectableList_","setSelectedIndexOnAction_","handleClick","toggleCheckbox","setTabindexAtIndex_","setEnabled","itemIndex","ARIA_DISABLED","selectedClassName","LIST_ITEM_SELECTED_CLASS","setAriaForSingleSelectionAtIndex_","ARIA_CURRENT","isAriaCurrent","ariaAttribute","ariaAttributeValue","ARIA_CHECKED","isChecked","targetIndex","minIndex","isIndexInRange_","listSize","toggleCheckboxAtIndex_","selectedIndexes","typeaheadMatchItem","startingIndex","listItemCount","getPrimaryTextByItemIndex","primaryText","clearTypeaheadBuffer","requireObjectCoercible","argument","Iterators","webpackPolyfill","paths","processFutureTime","eifelerRegelAppliesToNumber","processPastTime","endPos","isPlainObject","isArrayBuffer","isBuffer","isArrayBufferView","isView","isFile","isBlob","isStream","pipe","isURLSearchParams","product","assignValue","stripBOM","isUpper","MetaDataSet","MetaSection_1","ds","getXY","isXY","regressions","normalizedData","_normalizeData","sections","_createMetaSections","_calculate","MetaSection","section","calculate","adjustScales","topY","xScale","yScale","scales","bottomY","getPixelForValue","drawRegressions","drawRightBorders","drawRightBorder","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","noop","env","argv","versions","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","defaultView","getWindowScroll","isElement","isHTMLElement","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","scroll","offsets","getLayoutRect","getParentNode","assignedSlot","getScrollParent","listScrollParents","list","scrollParent","isBody","visualViewport","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","perspective","willChange","getContainingBlock","auto","basePlacements","viewport","variationPlacements","placement","modifierPhases","modifiers","visited","modifier","requires","requiresIfExists","dep","depModifier","strategy","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","popper","pending","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","scrollParents","contextElement","phase","orderModifiers","merged","existing","mergeByName","_ref3","_ref3$options","cleanupFn","noopFn","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","_options","onFirstUpdate","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_ref2","_Object$assign2","popperRect","gpuAcceleration","adaptive","_roundOffsets","dpr","roundOffsets","hasX","hasY","sideX","sideY","_Object$assign","commonStyles","getOppositePlacement","getOppositeVariationPlacement","rootNode","getRootNode","ShadowRoot","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","getInnerBoundingClientRect","winScroll","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","_options$gpuAccelerat","_options$adaptive","arrow","initialStyles","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","every","check","_loop","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_preventedOffset","_state$modifiersData$","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","axisProp","centerOffset","_options$element","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","getValueAtIndexOrReturn","isType","invokeWithArgsOrReturn","normalizeToArray","pushIfUnique","arrayFrom","div","isMouseEvent","isReferenceElement","_tippy","getArrayOfElements","isNodeList","setTransitionDuration","els","setVisibilityState","getOwnerDocument","elementOrElements","updateTransitionEndListener","currentInput","isTouch","lastMouseMoveTime","onDocumentTouchStart","onDocumentMouseMove","onWindowBlur","isVisible","pluginProps","animateFill","followCursor","inlinePositioning","defaultProps","aria","expanded","getReferenceClientRect","hideOnClick","ignoreAttributes","interactive","interactiveBorder","interactiveDebounce","moveTransition","onAfterUpdate","onBeforeUpdate","onCreate","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","onClickOutside","popperOptions","showOnCreate","triggerTarget","allowHTML","animation","inertia","maxWidth","role","theme","zIndex","defaultKeys","getExtendedPassedProps","passedProps","evaluateProps","valueAsString","getDataAttributeProps","dangerouslySetInnerHTML","createArrowElement","getChildren","boxChildren","backdrop","onUpdate","prevProps","nextProps","_getChildren","$$tippy","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentTransitionEndListener","currentTarget","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","debouncedOnMouseMove","onMouseMove","popperInstance","isMounted","isShown","clearDelayTimeouts","setProps","partialProps","invokeHook","cleanupInteractiveMouseListeners","handleAriaExpandedAttribute","handleStyles","createPopperInstance","getNestedPopperTree","nestedPopper","setContent","show","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","getCurrentTarget","getIsDefaultRenderFn","addDocumentPress","_getDefaultTemplateCh2","getDefaultTemplateChildren","_getDefaultTemplateCh3","_content","handleAriaContentAttribute","onTransitionEnd","onTransitionedIn","hide","isAlreadyHidden","removeDocumentPress","_getDefaultTemplateCh4","onTransitionedOut","unmount","hideWithInteractivity","destroyPopperInstance","_props$render","pluginsHooks","hasAriaExpanded","scheduleShow","getNormalizedTouchSettings","getIsCustomTouchBehavior","_instance$props$rende","getDelay","isShow","shouldInvokePropsHook","_instance$props","pluginHooks","currentValue","nextValue","onDocumentPress","onMouseLeave","onBlurOrFocusOut","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","popperTreeData","popperState","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","isCursorOutsideInteractiveBorder","_instance$popperInsta","_instance$props2","computedReference","_getNormalizedTouchSe","touchValue","touchDelay","tippy","optionalProps","setDefaultProps","regexpExec","translator","words","correctGrammaticalCase","wordKey","LABEL_FLOAT_ABOVE","LABEL_REQUIRED","LABEL_SHAKE","MDCFloatingLabelFoundation","shakeAnimationEndHandler_","handleShakeAnimationEnd_","shake","shouldShake","float","shouldFloat","setRequired","isRequired","MDCFloatingLabel","LINE_RIPPLE_ACTIVE","LINE_RIPPLE_DEACTIVATING","MDCLineRippleFoundation","transitionEndHandler_","setStyle","registerEventHandler","deregisterEventHandler","setRippleCenter","xCoordinate","isDeactivating","propertyName","MDCLineRipple","setProperty","NOTCH_ELEMENT_SELECTOR","NOTCH_ELEMENT_PADDING","NO_LABEL","OUTLINE_NOTCHED","OUTLINE_UPGRADED","MDCNotchedOutlineFoundation","setNotchWidthProperty","removeNotchWidthProperty","notch","notchWidth","closeNotch","MDCNotchedOutline","notchElement_","ROOT_SELECTOR","MDCTextFieldCharacterCounterFoundation","setCounterValue","currentLength","maxLength","MDCTextFieldCharacterCounter","ARIA_CONTROLS","INPUT_SELECTOR","LEADING_ICON_SELECTOR","LINE_RIPPLE_SELECTOR","OUTLINE_SELECTOR","PREFIX_SELECTOR","SUFFIX_SELECTOR","TRAILING_ICON_SELECTOR","DISABLED","FOCUSED","FULLWIDTH","HELPER_LINE","INVALID","LABEL_FLOATING","OUTLINED","TEXTAREA","WITH_LEADING_ICON","WITH_TRAILING_ICON","LABEL_SCALE","VALIDATION_ATTR_WHITELIST","ALWAYS_FLOAT_TYPES","POINTERDOWN_EVENTS","INTERACTION_EVENTS","MDCTextFieldFoundation","foundationMap","isFocused_","receivedUserInput_","isValid_","useNativeValidation_","helperText_","helperText","characterCounter_","characterCounter","leadingIcon_","leadingIcon","trailingIcon_","trailingIcon","inputFocusHandler_","activateFocus","inputBlurHandler_","deactivateFocus","inputInputHandler_","setPointerXOffset_","setTransformOrigin","textFieldInteractionHandler_","handleTextFieldInteraction","validationAttributeChangeHandler_","attributesList","handleValidationAttributeChange","getNativeInput_","shouldAlwaysFloat_","isBadInput_","registerTextFieldInteractionHandler","deregisterTextFieldInteractionHandler","registerInputInteractionHandler","deregisterInputInteractionHandler","registerValidationAttributeChangeHandler","deregisterValidationAttributeChangeHandler","getNativeInput","activateLineRipple","deactivateLineRipple","setLineRippleTransformOrigin","shakeLabel","floatLabel","setLabelRequired","hasLabel","getLabelWidth","hasOutline","notchOutline","closeOutline","styleFloating_","validationObserver_","setCharacterCounter_","nativeInput","styleValidity_","openNotch","labelWidth","styleFocused_","showToScreenReader","targetEvent","targetClientRect","autoCompleteFocus","setValue","isNativeInputValid_","setValid","setUseNativeValidation","useNativeValidation","setDisabled","styleDisabled_","setHelperTextContent","setLeadingIconAriaLabel","setAriaLabel","setLeadingIconContent","setTrailingIconAriaLabel","setTrailingIconContent","validity","badInput","valid","setValidity","isFloating","HELPER_TEXT_PERSISTENT","HELPER_TEXT_VALIDATION_MSG","ARIA_HIDDEN","ROLE","MDCTextFieldHelperTextFoundation","setAttr","setPersistent","isPersistent","setValidation","isValidation","inputIsValid","helperTextIsPersistent","validationMsgNeedsDisplay","hide_","MDCTextFieldHelperText","ICON_EVENT","ICON_ROLE","MDCTextFieldIconFoundation","savedTabIndex_","interactionHandler_","handleInteraction","getAttr","notifyIconAction","isEnterKey","MDCTextFieldIcon","MDCTextField","rippleFactory","lineRippleFactory","helperTextFactory","characterCounterFactory","iconFactory","labelFactory","outlineFactory","input_","labelElement","label_","lineRippleElement","lineRipple_","outlineElement","outline_","helperTextStrings","hasHelperLine","helperTextEl","characterCounterStrings","characterCounterEl","leadingIconEl","trailingIconEl","prefix_","suffix_","ripple","createRipple_","prefixText","suffixText","getRootAdapterMethods_","getInputAdapterMethods_","getLabelAdapterMethods_","getLineRippleAdapterMethods_","getOutlineAdapterMethods_","getFoundationMap_","mutationsList","getAttributesList","foundationForTextField","isTextArea","isOutlined","createAdapter","ponyfill","fns","separatorIndex","LIST_ITEM_CLASS","LIST_ITEM_TEXT_CLASS","LIST_ITEM_PRIMARY_TEXT_CLASS","ACTION_EVENT","ARIA_CHECKED_CHECKBOX_SELECTOR","ARIA_CHECKED_RADIO_SELECTOR","ARIA_ORIENTATION","ARIA_ORIENTATION_HORIZONTAL","ARIA_ROLE_CHECKBOX_SELECTOR","CHECKBOX_RADIO_SELECTOR","CHECKBOX_SELECTOR","CHILD_ELEMENTS_TO_TOGGLE_TABINDEX","FOCUSABLE_CHILD_ELEMENTS","RADIO_SELECTOR","aFunction","isAbsoluteURL","combineURLs","requestedURL","SCROLLABLE","SCROLL_LOCK","STACKED","ACTION_ATTRIBUTE","BUTTON_DEFAULT_ATTRIBUTE","BUTTON_SELECTOR","CLOSE_ACTION","CONTAINER_SELECTOR","CONTENT_SELECTOR","DESTROY_ACTION","INITIAL_FOCUS_ATTRIBUTE","SUPPRESS_DEFAULT_PRESS_SELECTOR","DIALOG_ANIMATION_CLOSE_TIME_MS","DIALOG_ANIMATION_OPEN_TIME_MS","MDCDialogFoundation","escapeKeyAction_","scrimClickAction_","autoStackButtons_","areButtonsStacked_","addBodyClass","areButtonsStacked","clickDefaultButton","eventTargetMatches","getActionFromEvent","getInitialFocusEl","isContentScrollable","removeBodyClass","reverseButtons","setAutoStackButtons","getEscapeKeyAction","setEscapeKeyAction","getScrimClickAction","setScrimClickAction","getAutoStackButtons","autoStack","isDefault","handleDocumentKeydown","detectStackedButtons_","detectScrollableContent_","MDCDialog","e_1","focusOptions","container_","content_","buttons_","defaultButton_","buttonRipples_","buttonEl","e_1_1","return","initialFocusEl","getInitialFocusEl_","handleClick_","handleDocumentKeydown_","handleLayout_","LAYOUT_EVENTS","handleOpening_","handleClosing_","tops","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","displayName","isGeneratorFunction","genFun","mark","awrap","async","iter","skipTempReset","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","InterceptorManager","synchronous","runWhen","eject","NATIVE_CONTROL_SELECTOR","MDCRadioFoundation","setNativeControlDisabled","MDCRadio","ripple_","nativeControl_","MDCRipple","varName","unbounded_","setUnbounded_","MDCFoundation","enhanceError","CHECKED","ARIA_CHECKED_ATTR","RIPPLE_SURFACE_SELECTOR","MDCSwitchFoundation","setNativeControlChecked","setNativeControlAttr","setChecked","updateAriaChecked_","updateCheckedStyling_","handleChange","nativeControl","MDCSwitch","changeHandler_","rippleSurface","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","SPECIES","CONSTRUCTOR_NAME","port","IS_IOS","MessageChannel","Dispatch","counter","ONREADYSTATECHANGE","runner","post","port2","port1","onmessage","importScripts","dispatchRequest","interceptors","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","getUri","executor","resolvePromise","FIXED_CLASS","FIXED_SCROLLED_CLASS","SHORT_CLASS","SHORT_COLLAPSED_CLASS","SHORT_HAS_ACTION_ITEM_CLASS","DEBOUNCE_THROTTLE_RESIZE_TIME_MS","MAX_TOP_APP_BAR_HEIGHT","ACTION_ITEM_SELECTOR","NAVIGATION_EVENT","NAVIGATION_ICON_SELECTOR","TITLE_SELECTOR","MDCTopAppBarBaseFoundation","getTopAppBarHeight","notifyNavigationIconClicked","getViewportScrollY","getTotalActionItems","handleTargetScroll","handleWindowResize","handleNavigationClick","MDCTopAppBarFoundation","wasDocked_","isDockedShowing_","currentAppBarOffsetTop_","isCurrentlyBeingResized_","resizeThrottleId_","resizeDebounceId_","lastScrollPosition_","topAppBarHeight_","currentScrollPosition","moveTopAppBar_","throttledResizeHandler_","checkForUpdate_","offscreenBoundaryTop","hasAnyPixelsOffscreen","hasAnyPixelsOnscreen","partiallyShowing","MDCFixedTopAppBarFoundation","wasScrolled_","MDCShortTopAppBarFoundation","isCollapsed_","isAlwaysCollapsed_","setAlwaysCollapsed","collapse_","maybeCollapseBar_","getAlwaysCollapsed","uncollapse_","MDCTopAppBar","navIcon_","icons","iconRipples_","icon","scrollTarget_","handleNavigationClick_","handleWindowResize_","handleTargetScroll_","iconRipple","setScrollTarget","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","digitToBasic","digit","adapt","numPoints","baseMinusTMin","inputLength","extra","ucs2decode","bias","basicLength","handledCPCount","handledCPCountPlusOne","q","qMinusT","baseMinusT","encoded","UNSCOPABLES","ArrayPrototype","eraYearOrdinalRegex","relativeURL","relativeTimeMr","originURL","msie","urlParsingNode","resolveURL","requestURL","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","cspNonce","oMatchesSelector","csrfParam","csrfToken","CSRFProtection","refreshCSRFTokens","fire","stopEverything","AcceptHeaders","createXHR","prepareOptions","processResponse","xml","json","script","ajax","getResponseHeader","success","beforeSend","OPENED","dataType","accept","crossDomain","DONE","isCrossDomain","originAnchor","urlAnchor","serializeElement","additionalParam","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","ajaxPrefilter","originalOptions","_rails_loaded","returnThis","IteratorConstructor","NAME","addToUnscopables","ARRAY_ITERATOR","Arguments","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","objectToString","nativeMax","nativeMin","toNumber","isObjectLike","isSymbol","isBinary","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","debounced","isInvoking","flush","translateSeconds","translateSingular","special","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","maybeCallNative","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","regexp","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","ch","numbersPast","numbersFuture","verbalNumber","store","copyright","estimateScrollWidth","htmlEl","hiddenKeys","pluralForm","plurals","pluralize","__createBinding","k2","__exportStar","ArrayBufferModule","toIndex","toOffset","typedArrayFrom","setSpecies","inheritIfRequired","nativeDefineProperty","DataView","NATIVE_ARRAY_BUFFER_VIEWS","TYPED_ARRAY_TAG","TypedArray","TypedArrayPrototype","isTypedArray","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","addGetter","klass","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","TYPE","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","exported","typedArrayOffset","$length","$len","bitmap","maxHeight","character","classname","spaces","charHtml","span","textProp","fullText","heightStyle","maxHeightStyle","pivot","shavedText","elWithShavedText","relativeTimeWithMutation","specialMutationForYears","lastNumber","softMutation","mutationTable","fullWeekdaysParse","shortWeekdaysParse","minWeekdaysParse","$hypot","hypot","Infinity","value1","value2","aLen","larg","FOCUS_SENTINEL_CLASS","FocusTrap","elFocusedBeforeTrapFocus","focusableEls","getFocusableElements","wrapTabFocus","focusInitialElement","sentinelEl","sentinelStart","createSentinel","sentinelEnd","focusIndex","isDisabledOrHidden","isTabbableAndVisible","isProgrammaticallyHidden","sentinel","globalThis","originalArray","getCjsExportFromNamespace","colorName","conversions","reverseKeywords","convert","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","keyword","ansi16","ansi256","hcg","apple","gray","comparativeDistance","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","z","t1","t2","t3","smin","lmin","sl","vmin","wh","bl","y2","x2","z2","hr","ansi","mult","rem","colorString","integer","hue","chroma","pure","mg","buildGraph","graph","models","deriveBFS","fromModel","adjacents","adjacent","wrapConversion","toModel","cur","conversion","route","wrapRaw","wrappedFn","wrapRounded","routes","colorConvert","colorName$1","getRgba","getHsla","getRgb","getHsl","getHwb","getAlpha","hexString","rgbString","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","rgba","per","hexAlpha","alpha","hsla","vals","hexDouble","reverseNames","Color","setValues","red","lightness","whiteness","cyan","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturation","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","degrees","mix","mixinColor","color1","w1","w2","maxes","getValues","space","capped","chans","sname","svalues","chartjsColor","isValidKey","uid","valueAtIndexOrDefault","loopable","arrayEquals","v0","v1","_merger","tval","sval","_mergerIf","mergeIf","sources","dst","inherits","extensions","ChartElement","Surrogate","_deprecated","helpers_core","callCallback","getValueOrDefault","getValueAtIndexOrDefault","effects","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clearRect","moveTo","drawPoint","xOffset","yOffset","cornerRadius","rad","drawImage","lineTo","SQRT1_2","_isPointInArea","epsilon","clipArea","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaultColor","defaultLineHeight","showLines","core_defaults","helpers_options","_parseFont","globalDefaults","fontSize","fontFamily","cacheable","exports$2","_factorize","log10","exponent","LOG10E","powerOf10","helpers_math","getRtlAdapter","rectX","setWidth","xPlus","leftForLtr","itemWidth","getLtrAdapter","_itemWidth","easing","math","overrideTextDirection","original","getPropertyPriority","prevTextDirection","restoreTextDirection","interpolate","ease","actual","c0","c1","configuration","_start","tooltipPosition","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onProgress","onComplete","core_animations","addAnimation","startTime","cancelAnimation","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","listenArrayEvents","_chartjs","unlistenArrayEvents","stub","DatasetController","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","createMetaDataset","_chart","_datasetIndex","createMetaData","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_cachedDataOpts","easingValue","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","hover","readKey","datasetOpts","custom","elementOptions","cached","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","pixelMargin","angleMargin","drawFullCircleBorders","inner","fullCircles","drawBorder","borderAlign","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","_children","globalOptionLineElements","lastDrawnIndex","previousItem","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","yRange","mouseY","pointStyle","element_point","inXRange","inYRange","defaultColor$2","getBarBounds","half","swap","orig","v2","parseBorderSkipped","edge","borderSkipped","parseBorderWidth","maxW","maxH","bounds","border","outer","skipX","skipY","rectangle","element_rectangle","fillRect","Line","deprecated","valueOrDefault$3","computeMinSampleSize","pixels","curr","getTicks","getPixelForTick","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","categoryPercentage","barPercentage","chunk","computeFlexCategoryTraits","percent","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","datasetLabel","_updateElementGeometry","vscale","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","_getStacks","last","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","callbacks","dataPoint","xLabel","yLabel","controller_bubble","dsIndex","getPixelForDecimal","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","legend","generateLabels","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","polarArea","pie","radar","getRelativePosition","parseVisibleItems","metadata","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","core_interaction","modes","nearest","intersectsItem","filterByPosition","where","sortByWeight","wrapBoxes","boxes","layoutBoxes","setLayoutDims","layouts","fullWidth","availableWidth","vBoxMaxWidth","hBoxMaxHeight","buildLayoutBoxes","leftAndTop","rightAndBottom","vertical","getCombinedMax","maxPadding","updateDims","getPadding","boxPadding","handleMaxPadding","updatePos","change","getMargins","marginForPositions","positions","fitBoxes","refit","changed","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","layoutOptions","availableHeight","verticalBoxes","horizontalBoxes","platform_basic","acquireContext","getContext","platform_dom","stylesheet","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","initCanvas","renderHeight","renderWidth","initial","displayWidth","aspectRatio","displayHeight","eventListenerOptions","nativeEvent","fromNativeEvent","throttled","ticking","createDiv","cls","createResizer","maxSize","resizer","expand","shrink","_reset","watchForRender","proxy","renderProxy","animationName","reflow","unwatchForRender","addResizeListener","maintainAspectRatio","removeResizeListener","injectCSS","containsStyles","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","releaseContext","proxies","addEvent","removeEvent","core_plugins","_plugins","_cacheId","unregister","descriptors","cache","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getTooltipSize","tooltip","combinedBodyLength","bodyItem","before","after","titleLineCount","footerLineCount","widthPadding","maxLineWidth","fontString","determineAlignment","lf","rf","olf","orf","yf","midX","midY","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","bodyItems","getAfterBody","getFooter","existingModel","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","dataPoints","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","initConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","onHover","animationDuration","responsive","responsiveAnimationDuration","_bufferedRender","retinaScale","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","updateHoverStyle","bufferedRequest","core_controller","configMerge","scaleMerge","core_helpers","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_getParentNode","constrainedNode","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","filtered","findNextWhere","arrayToSearch","findPreviousWhere","almostEquals","almostWhole","rounded","NEGATIVE_INFINITY","toRadians","toDegrees","radians","_decimalPlaces","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","_alignPixel","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","niceNum","fraction","oRequestAnimationFrame","msRequestAnimationFrame","srcElement","boundingRect","paddingTop","paddingBottom","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","forceRatio","pixelRatio","pixelSize","longestText","arrayOfThings","gc","garbageCollect","nestedThing","longest","gcLen","textWidth","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","abstract","DateAdapter","_create","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","remain","valueOrDefault$a","sample","numItems","getPixelForGridLine","validIndex","lineValue","caches","computeLabelSizes","tickFonts","tickFont","nestedLabel","widest","highest","widths","heights","widestLabelSize","highestLabelSize","major","minor","valueAt","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","getEvenSpacing","calculateSpacing","majorIndices","axisLength","ticksLimit","factors","evenMajorSpacing","spacing","getMajorIndices","skipMajors","tick","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","cosRotation","sinRotation","labelHeight","offsetRight","handleMargins","isFullWidth","rawValue","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","getBaseValue","avgMajorSpacing","maxTicksLimit","_tickSize","numMajorIndices","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","generateTicks","generationOptions","dataRange","niceMin","niceMax","numSpaces","MIN_SPACING","stepSize","maxNumSpaces","maxTicks","rmin","rmax","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","ticksAsNumbers","_endValue","defaultConfig$1","DEFAULT_MIN","DEFAULT_MAX","getOrCreateStack","neg","stackData","relativePoints","updateMinMax","scale_linear","hasStacks","stackValues","_defaults$1","valueOrDefault$b","generateTicks$1","significand","tickVal","endExp","endSignificand","minNotZero","lastTick","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","valuesPerStack","valuesForType","minVal","maxVal","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","drawingArea","getIndexAngle","hLimits","vLimits","setReductions","getTextAlignForAngle","adjustPointPositionForLabelHeight","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","pointLabelPosition","pointLabelFontColor","drawRadiusLine","numberOrZero","scale_radialLinear","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","INTERVALS","steps","UNITS","sorter","getMin","getMax","buildLookupTable","timestamps","distribution","table","mid","i0","i1","interpolate$1","skey","tkey","toTimestamp","_adapter","determineUnitForAutoTicks","minUnit","capacity","determineUnitForFormatting","determineMajorUnit","generate","timeOpts","unitStepSize","setMajorTicks","majorUnit","ticksFromTimestamps","defaultConfig$4","adapters","displayFormat","displayFormats","scale_time","labelsAdded","dataLabels","_table","_timestamps","getLabelCapacity","_unit","_majorUnit","_offsets","tooltipFormat","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","exampleTime","exampleLabel","_defaults$4","category","radialLinear","FORMATS","_id","amount","filler","propagate","mappers","decodeFill","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","computeCircularBoundary","computeBoundary","resolveTarget","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","drawLegendBox","SQRT2","halfFontSize","xLeft","yMiddle","alignmentOffset","dimension","itemHeight","realX","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","_adapters","Animation","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","validateStatus","installedModules","__webpack_require__","moduleId","__esModule","ns","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getEnumerableOwnPropertySymbols","mergeObject","destination","unused","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","deepmerge_1","__webpack_exports__","_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__","maxPatternLength","caseSensitive","tokenSeparator","findAllMatches","minMatchCharLength","shouldSort","getFn","sortFn","I","tokenize","matchAllTokens","includeMatches","includeScore","verbose","isCaseSensitive","setCollection","_log","_prepareSearchers","tokenSearchers","fullSearcher","_search","weights","_computeScore","_sort","_format","_analyze","resultMap","arrayIndex","isMatch","matchedIndices","nScore","indices","patternAlphabet","errors","currentLocation","expectedLocation","symbolObservablePonyfill","observable","originalModule","dist_fuse","fuse_default","cjs","cjs_default","es","randomString","ActionTypes","INIT","PROBE_UNKNOWN_ACTION","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","subscribe","isSubscribed","replaceReducer","nextReducer","outerSubscribe","observeState","getUndefinedStateErrorMessage","actionType","tmpEl","defaultState","groups_defaultState","choices_defaultState","general_defaultState","loading","reducers_general","isLoading","generateChars","sanitise","strToEl","cleanedInput","firldChild","sortByScore","cloneObject","appReducer","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","nextState","previousStateForKey","nextStateForKey","errorMessage","combineReducers","choiceId","groupId","highlighted","customProperties","choices","elementId","activateOptions","choice","general","passedState","store_Store","Store","_store","__REDUX_DEVTOOLS_EXTENSION__","getChoiceById","activeChoices","getGroupById","selectableChoices","hasActiveOptions","dropdown_defineProperties","Dropdown","getChild","activeState","DEFAULT_CONFIG","renderChoiceLimit","maxItemCount","addItems","addItemFilter","removeItems","removeItemButton","editItems","duplicateItemsAllowed","delimiter","searchEnabled","searchChoices","searchFloor","searchResultLimit","searchFields","resetScrollPosition","shouldSortItems","_ref$label","_ref2$label","label2","localeCompare","sensitivity","ignorePunctuation","numeric","placeholderValue","searchPlaceholderValue","prependValue","appendValue","renderSelectedChoices","loadingText","noResultsText","noChoicesText","itemSelectText","uniqueItemText","customAddItemText","addItemText","maxItemText","valueComparer","fuseOptions","callbackOnInit","callbackOnCreateTemplates","containerOuter","containerInner","inputCloned","listItems","listSingle","listDropdown","itemSelectable","itemDisabled","itemChoice","groupHeading","focusState","openState","disabledState","highlightedState","selectedState","flippedState","loadingState","noResults","noChoices","EVENTS","ACTION_TYPES","KEY_CODES","TEXT_TYPE","SELECT_ONE_TYPE","SELECT_MULTIPLE_TYPE","container_Container","Container","isFlipped","isFocussed","_onFocus","_onBlur","addEventListeners","removeEventListeners","shouldFlip","dropdownPos","setActiveDescendant","activeDescendantID","removeActiveDescendant","addFocusState","removeFocusState","utils_wrap","addLoadingState","removeLoadingState","input_defineProperties","input_Input","Input","preventPaste","_onPaste","_onInput","_this$element","minWidth","list_List","List","scrollPos","hasChildren","hasChildNodes","scrollToTop","scrollToChildElement","listHeight","listScrollPosition","elementHeight","elementPos","_animateScroll","_scrollDown","strength","_scrollUp","choiceListScrollTop","continueAnimation","wrapped_element_defineProperties","wrapped_element_WrappedElement","WrappedElement","HTMLInputElement","conceal","origStyle","reveal","customArgs","wrapped_input_defineProperties","WrappedInput","_WrappedElement","joinedValues","wrapped_select_defineProperties","WrappedSelect","template","appendDocFragment","optionData","TEMPLATES","isSelectElement","isSelectOneElement","passedElementType","_containerOuter","_containerInner","itemList","_ref4","_placeholder","_ref5","_ref6","_item","isPlaceholder","deletable","REMOVE_ITEM_TEXT","removeButton","choiceList","_ref7","choiceGroup","_ref8","_ref9","_ref10","_ref11","selectText","choiceDisabled","choiceSelectable","_ref12","autocomplete","autocapitalize","spellcheck","dropdown","_ref13","notice","_ref14","_ref15","Option","choices_activateChoices","items_highlightItem","groups_addGroup","setIsLoading","choices_defineProperties","IS_IE11","USER_DEFAULTS","choices_Choices","Choices","aKeys","bKeys","passedElement","_isTextElement","_isSelectOneElement","_isSelectMultipleElement","_isSelectElement","_templates","initialised","_initialState","_currentState","_prevState","_currentValue","_canSearch","_isScrollingOnIe","_highlightPosition","_wasTap","_placeholderValue","_generatePlaceholderValue","_baseId","generateId","_direction","elementDirection","_idNames","_presetGroups","optionGroups","_presetOptions","_presetChoices","_presetItems","_render","_onKeyUp","_onKeyDown","_onClick","_onTouchMove","_onTouchEnd","_onMouseDown","_onMouseOver","_onFormReset","_onAKey","_onEnterKey","_onEscapeKey","_onDirectionKey","_onDeleteKey","preventExtensions","_createTemplates","_createElements","_createStructure","_addEventListeners","_removeEventListeners","clearStore","highlightItem","runEvent","_item$groupId","_item$value","_item$label","groupValue","unhighlightItem","_item$groupId2","_item$value2","_item$label2","highlightAll","unhighlightAll","_this3","removeActiveItemsByValue","_this4","activeItems","_removeItem","removeActiveItems","excludedId","_this5","removeHighlightedItems","_this6","highlightedActiveItems","_triggerChange","showDropdown","preventInputFocus","_this7","distanceFromTopWindow","hideDropdown","preventInputBlur","_this8","valueOnly","selectedItems","itemValue","_this9","_setChoiceOrItem","setChoiceByValue","_this10","_findAndSelectChoiceByValue","setChoices","choicesArrayOrFetcher","replaceChoices","_this11","clearChoices","fetcher","_handleLoadingState","catch","_startLoading","groupOrChoice","_addGroup","valueKey","labelKey","_addChoice","_stopLoading","clearInput","shouldSetInputWidth","_isSearching","stateChanged","shouldRenderChoices","shouldRenderItems","_renderChoices","_renderItems","_this12","_this$_store","activeGroups","choiceListFragment","activePlaceholders","activeChoice","_createChoicesFragment","_createGroupsFragment","canAddItem","_canAddItem","_highlightChoice","_getTemplate","dropdownItem","itemListFragment","_createItemsFragment","_this13","groupChoices","getGroupChoices","dropdownGroup","withinGroup","_this14","_this$config","appendChoice","rendererableChoices","_rendererableChoices$","placeholderChoices","normalChoices","choiceLimit","sortedChoices","_this15","_this$config2","_selectPlaceholderChoice","placeholderChoice","_addItem","_handleButtonAction","itemId","itemToRemove","_handleItemAction","hasShiftKey","_this16","passedId","_handleChoiceAction","passedKeyCode","hasActiveDropdown","_handleBackspace","lastItem","hasHighlightedItems","setLoading","placeholderItem","_handleSearch","_this$config3","hasUnactiveChoices","resultCount","_searchChoices","isDuplicateValue","existsInArray","haystack","searchableChoices","needle","choices_filterChoices","_keyDownActions","hasFocusedInput","hasItems","keyString","BACK_KEY","DELETE_KEY","ENTER_KEY","A_KEY","ESC_KEY","UP_KEY","DOWN_KEY","PAGE_UP_KEY","PAGE_DOWN_KEY","hasCtrlDownKeyPressed","keyDownActions","backKey","deleteKey","userHasRemovedValue","canReactivateChoices","canSearch","enterKey","targetWasButton","highlightedChoice","downKey","pageUpKey","pageDownKey","directionInt","selectableChoiceIdentifier","currentEl","startEl","sibling","getAdjacentEl","firstChoice","isOnScrollbar","_focusActions","_this17","_this18","_blurActions","_this19","passedEl","_ref13$label","_ref13$choiceId","_ref13$groupId","_ref13$customProperti","_ref13$placeholder","_ref13$keyCode","passedValue","passedCustomProperties","passedLabel","passedOptionId","items_addItem","items_removeItem","_ref14$label","_ref14$isSelected","_ref14$isDisabled","_ref14$groupId","_ref14$customProperti","_ref14$placeholder","_ref14$keyCode","choiceLabel","choiceElementId","choices_addChoice","_this20","_ref15$valueKey","_ref15$labelKey","isOptDisabled","_this$_templates$temp","userTemplates","_addPredefinedGroups","_addPredefinedChoices","_addPredefinedItems","_this21","placeholderOption","_this22","hasSelectedChoice","firstEnabledChoiceIndex","_this23","_this24","_this25","foundChoice","_this$config4","MDCList","isSingleSelectionList","handleClickEvent_","handleKeydownEvent_","focusInEventListener_","handleFocusInEvent_","focusOutEventListener_","handleFocusOutEvent_","initializeListType","getPrimaryText","singleLineText","checkboxListItems","singleSelectedListItem","radioSelectedListItem","preselectedItems","listElements","singleSelection","toggleEl","tabIndexValue","getListItemIndex_","nearestParent","weekdaysCaseReplace","nominative","accusative","genitive","processHoursFunction","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","MDCFormFieldFoundation","activateInputRipple","deactivateInputRipple","MDCFormField","sharedKey","CORRECT_PROTOTYPE_GETTER","IE_PROTO","ObjectPrototype","normalizedName","__values","__read","ar","__spread","feature","detection","POLYFILL","NATIVE","arraySpeciesCreate","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","callbackfn","specificCreate","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","TAG","ChartRegressions","MetaData_1","_metadataMap","_chartId","$$id","onCompleteCalculation","beforeRender","getSections","Timeout","clearFn","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","regression","calculation","dash","extendPredictions","overwriteData","sec","fields","globalConfig","cfgList","dstConfig","srcConfig","_validateType","sectionData","_calculateCopySection","_calculateBestR2","realType","fromSectionIndex","overwrite","dsdata_1","isXY_1","_setLineAttrs","isMe","drawRange","forceDash","ENTRIES","returnMethod","jsEventTypeMap","animationend","cssProperty","prefixed","standard","animationiteration","animationstart","transitionend","isWindow","getCorrectEventName","ANIM_CHECKED_INDETERMINATE","ANIM_CHECKED_UNCHECKED","ANIM_INDETERMINATE_CHECKED","ANIM_INDETERMINATE_UNCHECKED","ANIM_UNCHECKED_CHECKED","ANIM_UNCHECKED_INDETERMINATE","BACKGROUND","CHECKMARK","CHECKMARK_PATH","MIXEDMARK","NATIVE_CONTROL","SELECTED","UPGRADED","ARIA_CHECKED_INDETERMINATE_VALUE","DATA_INDETERMINATE_ATTR","TRANSITION_STATE_CHECKED","TRANSITION_STATE_INDETERMINATE","TRANSITION_STATE_INIT","TRANSITION_STATE_UNCHECKED","ANIM_END_LATCH_MS","MDCCheckboxFoundation","currentCheckState_","currentAnimationClass_","animEndLatchTimer_","enableAnimationEndHandler_","forceLayout","hasNativeControl","isAttachedToDOM","isIndeterminate","removeNativeControlAttr","determineCheckState_","handleAnimationEnd","transitionCheckState_","oldState","newState","getTransitionAnimationClass_","CB_PROTO_PROPS","MDCCheckbox","handleChange_","handleAnimationEnd_","installPropertyChangeHooks_","uninstallPropertyChangeHooks_","nativeCb","cbProto","controlState","validDescriptor","nativeGetter","nativeCbDesc","inputPropDesc","EOF","codeAt","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","radix","ipv4","numbersSeen","ipv4Piece","swaps","address","pieceIndex","compress","pointer","serializeHost","ignore0","ipv6","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","http","https","wss","scheme","includesCredentials","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","getOrigin","getUsername","getPassword","getHost","getHostname","getPort","getPathname","getSearch","getSearchParams","URLPrototype","accessorDescriptor","nativeCreateObjectURL","nativeRevokeObjectURL","Attributes","TO_STRING_TAG_SUPPORT","classofRaw","CORRECT_ARGUMENTS","tryGet","callee","variable","namespace","nativePropertyIsEnumerable","NASHORN_BUG","V","PrototypeOfArrayIteratorPrototype","arrayIterator","BUGGY_SAFARI_ITERATORS","ignoreCase","dotAll","aPossiblePrototype","CORRECT_SETTER","NATIVE_WEAK_MAP","objectHas","wmget","wmhas","wmset","STATE","LN2","pack","mantissaLength","mantissa","exponentLength","eMax","eBias","rt","unpack","nBits","definitionsFromContext","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","write","expires","domain","secure","cookie","toGMTString","activeXDocument","documentCreateElement","EmptyConstructor","scriptTag","NullProtoObject","ActiveXObject","iframeDocument","iframe","parentWindow","NullProtoObjectViaActiveX","contentWindow","functionToString","EXISTS","checkCorrectnessOfIteration","Int8Array","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","strictJSONParsing","maxContentLength","maxBodyLength","MDCComponent","_args","evtData","shouldBubble","relativeTimeWithSingular","relativeSeconds","CONVERT_TO_STRING","NATIVE_ARRAY_BUFFER","IEEE754","arrayFill","ARRAY_BUFFER","DATA_VIEW","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","packIEEE754","unpackIEEE754","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","isLittleEndian","intIndex","ArrayBufferPrototype","testView","nativeSetInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","shared","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","isPrototypeOf","opera","TYPED_ARRAY_TAG_REQIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","aTypedArray","ARRAY","exportTypedArrayMethod","PREFERRED_STRING","obj1","obj2","DATE_PATTERN","ISO8601_PATTERN","DECIMAL_SEPARATOR","parseISO8601","negativeValues","series","toStr","toFloat","toArr","jsOptionsFunc","hideLegend","setTitle","setStacked","setXtitle","setYtitle","chartOptions","colors","xtitle","ytitle","library","sortByTime","sortByNumberSeries","sortByNumber","isMinute","getMilliseconds","isHour","isDay","isWeek","dayOfWeek","isMonth","isYear","byteSuffixes","formatValue","pre","byteScale","suffixIdx","baseValue","toPrecision","zeros","thousands","seriesOption","allZeros","baseOptions","defaultColors","setBarMin","setBarMax","addOpacity","notnull","setLabelSize","maxLabelSize","setFormatOptions","chartType","formatOptions","myAxes","valueLabel","jsOptions","createDataTable","i$1","s$1","j$1","rows","rows2","xtype","sortedLabels","i$2","s$2","d$1","j$2","pointBackgroundColor","pointHoverBackgroundColor","pointRadius","pointHitRadius","xmin","xmax","ticksKey","value$1","defaultExport","renderLineChart","drawChart","renderPieChart","donut","renderColumnChart","barOptions","renderAreaChart","renderBarChart","renderScatterChart","renderBubbleChart","defaultOptions$1","xAxis","yAxis","credits","plotOptions","areaspline","hideLegend$1","verticalAlign","setTitle$1","jsOptions$1","stackedValue","stacking","setFormatOptions$1","pointFormatter","defaultExport$1","curve","innerSize","categories","d2","newSeries","renderTo","defaultOptions$2","fontName","pointSize","textStyle","curveType","hAxis","titleTextStyle","gridlines","baselineColor","viewWindow","vAxis","hideLegend$2","setTitle$2","setBarMin$1","setBarMax$1","setStacked$2","isStacked","setXtitle$2","setYtitle$2","jsOptions$2","defaultExport$2","this$1","waitForLoaded","pieHole","visualization","DataTable","addColumn","addRows","areaOpacity","renderGeoChart","colorAxis","renderTimeline","clearChart","loadOptions","packages","__config","language","mapsApiKey","charts","cb","LineChart","Timeline","GeoChart","columnType","pendingRequests","runningRequests","maxRequests","pushRequest","runNext","getJSON","requestComplete","ajaxCall","jqXHR","textStatus","errorThrown","Zepto","setText","innerText","chartError","noPrefix","errorCatcher","__render","fetchDataSource","dataSource","rawData","addDownloadButton","download","__downloadAttached","__enterEvent","related","childOf","toImage","__leaveEvent","fn2","detachEvent","getAdapterType","addAdapter","loadAdapters","Highcharts","google","dataEmpty","renderChart","callAdapter","fnName","adapterName","__adapterObject","toFormattedKey","keyType","formatSeriesData","detectXType","noDatetime","detectXTypeWithFunction","copySeries","processSeries","discrete","processSimple","perfectData","Chartkick","startRefresh","getElement","getDataSource","getOptions","getChartObject","getAdapter","updateData","__updateOptions","refreshData","sep","intervalId","stopRefresh","background","tmpCanvas","tmpCtx","updateRefresh","__processData","__chartName","PieChart","ColumnChart","BarChart","AreaChart","ScatterChart","BubbleChart","setDefaultOptions","eachChart","chartId","Big","MAX_DP","MAX_POWER","INVALID_DP","INVALID_RM","DIV_BY_ZERO","UNDEFINED","NUMERIC","rm","more","xc","RM","NE","PE","cmp","isneg","yc","DP","bt","ri","bz","ai","al","rl","qc","qi","gt","gte","lt","lte","minus","sub","xlty","xe","ye","ygtx","mul","sd","_Big_","nl","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","payload","monthsNominativeEl","monthsGenitiveEl","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","SHARED","cachedCssTransformPropertyName_","DefaultFocusState","MDCMenuSurface","parentEl","anchorElement","setFixedPosition","handleBodyClick","registerBodyClickListener","deregisterBodyClickListener","skipRestoreFocus","quickOpen","setQuickOpen","setIsHoisted","isHoisted","setMenuSurfaceAnchorElement","setAbsolutePosition","setAnchorCorner","corner","setAnchorMargin","hasAnchor","isElementInContainer","isRtl","getInnerDimensions","getAnchorDimensions","getWindowDimensions","getBodyDimensions","setPosition","rootHTML","setMaxHeight","MENU_SELECTED_LIST_ITEM","MENU_SELECTION_GROUP","ARIA_DISABLED_ATTR","LIST_SELECTOR","SELECTED_EVENT","FOCUS_ROOT_INDEX","MDCMenuFoundation","closeAnimationEndTimerId_","defaultFocusState_","LIST_ROOT","addClassToElementAtIndex","removeClassFromElementAtIndex","addAttributeToElementAtIndex","removeAttributeFromElementAtIndex","elementContainsClass","closeSurface","getElementIndex","notifySelected","getMenuItemCount","focusListRoot","getSelectedSiblingOfItemAtIndex","isSelectableItemAtIndex","handleItemAction","recomputedIndex","handleMenuSurfaceOpened","FIRST_ITEM","LAST_ITEM","setDefaultFocusState","validatedIndex_","prevSelectedIndex","menuSize","MDCMenu","menuSurfaceFactory","menuSurfaceFactory_","listFactory_","menuSurface_","handleItemAction_","handleMenuSurfaceOpened_","typeaheadInProgress","getOptionByIndex","setAnchorElement","selectedItemEl","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","MDCMenuSurfaceFoundation","isSurfaceOpen","isQuickOpen","isHoistedElement","isFixedPosition","openAnimationEndTimerId","closeAnimationEndTimerId","animationRequestId","anchorCorner","TOP_START","originCorner","anchorMargin","flipCornerHorizontally","RIGHT","dimensions","autoposition","maybeRestoreFocus","measurements","getAutoLayoutmeasurements","getoriginCorner","maxMenuSurfaceHeight","getMenuSurfaceMaxHeight","verticalAlignment","hasBit","BOTTOM","horizontalAlignment","horizontalOffset","getHorizontalOriginOffset","verticalOffset","getVerticalOriginOffset","anchorSize","surfaceSize","adjustPositionForHoistedElement","anchorRect","bodySize","viewportSize","windowScroll","viewportDistance","availableTop","availableBottom","setBit","availableLeft","availableRight","isFlipRtl","FLIP_RTL","hasRightBit","isAnchoredToRight","isAvailableLeft","isAvailableRight","isOriginCornerAlignedToEnd","unsetBit","isBottomAligned","isBottomAnchored","isRightAligned","avoidHorizontalOverlap","rightOffset","avoidVerticalOverlap","props_1","props_1_1","childHasFocus","bit","serializedParams","hashmarkIndex","RE","IteratorsCore","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator"],"mappings":";kFASS,SAAUA,GACjB,aAEUA,EAAOC,aAAa,MAAO,CACnCC,OAAQ,6FAA0FC,MAAM,KACxGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,kDAAkDF,MAAM,KAClEG,cAAe,iCAAiCH,MAAM,KACtDI,YAAa,yBAAyBJ,MAAM,KAC5CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,gBACTC,SAAU,gBACVC,QAAS,oBACTC,SAAU,+BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,SACRC,KAAM,WACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,OAGvGC,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,wBCDzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,whBAAqGC,MAAM,KACnHC,YAAa,sOAAkDD,MAAM,KACrEE,SAAU,CACRwC,WAAY,mVAAgE1C,MAAM,KAClF2C,OAAQ,yVAAiE3C,MAAM,KAC/E4C,SAAU,mEAEZzC,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,+CACTC,QAAS,+CACTE,QAAS,qDACTD,SAAU,gEACVE,SAAU,kDACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,SAAUE,GAChB,OAAOA,EAAEuB,QAAQ,gIAAiC,SAAUC,EAAIC,EAAIC,GAClE,MAAc,WAAPA,EAAaD,EAAK,eAAOA,EAAKC,EAAK,mBAG9C3B,KAAM,SAAUC,GACd,MAAI,2HAA4B2B,KAAK3B,GAC5BA,EAAEuB,QAAQ,mBAAU,mCAGzB,2BAAOI,KAAK3B,GACPA,EAAEuB,QAAQ,4BAAS,+CAGrBvB,GAETA,EAAG,kFACHC,GAAI,8BACJC,EAAG,2BACHC,GAAI,8BACJC,EAAG,iCACHC,GAAI,oCACJC,EAAG,qBACHC,GAAI,wBACJC,EAAG,qBACHC,GAAI,wBACJC,EAAG,2BACHC,GAAI,+BAENC,uBAAwB,uDACxBC,QAAS,SAAUC,GACjB,OAAe,IAAXA,EACKA,EAGM,IAAXA,EACKA,EAAS,gBAGdA,EAAS,IAAMA,GAAU,KAAOA,EAAS,KAAO,GAAKA,EAAS,MAAQ,EACjE,gBAAQA,EAGVA,EAAS,WAElBE,KAAM,CACJC,IAAK,EACLC,IAAK,KA9EuFC,CAAQ,EAAQ,U,8GCgB9GS,EAAa,CACfC,QAAS,wBACTC,KAAM,qBACNC,QAAS,yBAEPC,EAAU,CACZC,gBAAiB,wBACjBC,0BAA2B,+BAC3BC,aAAc,qBACdC,cAAe,sBACfC,iBAAkB,yBAClBC,eAAgB,uBAChBC,aAAc,qBACdC,cAAe,sBACfC,cAAe,SACfC,eAAgB,UAChBC,iBAAkB,0BAEhBC,EAAU,CACZC,gCAAiC,IACjCC,eAAgB,EAChBC,4BAA6B,IAC7BC,4BAA6B,IAE7BC,iCAAkC,GAClCC,gCAAiC,IAOjCC,mBAAoB,K,YC7BlBpB,EAAUH,EAAWG,QACrBD,EAAOF,EAAWE,KAClBD,EAAUD,EAAWC,QACrBY,EAAgBT,EAAQS,cACxBC,EAAiBV,EAAQU,eAEzB,EAEJ,SAAUU,GAGR,SAASC,EAAsBC,GAC7B,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIJ,EAAsBK,gBAAiBJ,KAAaG,KAQxG,OANAF,EAAMI,SAAU,EAChBJ,EAAMK,gBAAkB,EACxBL,EAAMM,gBAAkB,EACxBN,EAAMO,kBAAoB,EAC1BP,EAAMQ,sBAAwBnB,EAAQC,gCACtCU,EAAMS,gBAAiB,EAChBT,EAuMT,OAlNA,YAAUF,EAAuBD,GAcjCa,OAAOC,eAAeb,EAAuB,aAAc,CACzDc,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeb,EAAuB,UAAW,CACtDc,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeb,EAAuB,UAAW,CACtDc,IAAK,WACH,OAAOvB,GAETwB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeb,EAAuB,iBAAkB,CAC7Dc,IAAK,WACH,MAAO,CACLG,SAAU,aAGVC,SAAU,aAGVC,aAAc,aAGdC,cAAe,aAGfC,aAAc,aAGdC,cAAe,aAGfC,YAAa,eAKjBR,YAAY,EACZC,cAAc,IAGhBhB,EAAsBwB,UAAUC,QAAU,WACxCrB,KAAKsB,yBACLC,qBAAqBvB,KAAKG,iBAC1BH,KAAKG,gBAAkB,EACvBqB,aAAaxB,KAAKI,iBAClBJ,KAAKI,gBAAkB,EACvBJ,KAAKH,QAAQsB,YAAY7C,GACzB0B,KAAKH,QAAQsB,YAAY9C,GACzB2B,KAAKH,QAAQsB,YAAY/C,IAG3BwB,EAAsBwB,UAAUK,KAAO,WACrC,IAAI3B,EAAQE,KAEZA,KAAKsB,yBACLtB,KAAKE,SAAU,EACfF,KAAKH,QAAQqB,gBACblB,KAAKH,QAAQsB,YAAY/C,GACzB4B,KAAKH,QAAQgB,SAASvC,GACtB0B,KAAKH,QAAQiB,WAEbd,KAAK0B,wBAAuB,WAC1B5B,EAAMD,QAAQgB,SAASxC,GAEvByB,EAAMM,gBAAkBuB,YAAW,WACjC,IAAIC,EAAY9B,EAAM+B,eAEtB/B,EAAMgC,2BAENhC,EAAMD,QAAQoB,eAEVW,IAAczC,EAAQE,gBACxBS,EAAMO,kBAAoBsB,YAAW,WACnC7B,EAAMiC,MAAM9C,KACX2C,MAEJzC,EAAQM,qCAUfG,EAAsBwB,UAAUW,MAAQ,SAAUC,GAChD,IAAIlC,EAAQE,UAEG,IAAXgC,IACFA,EAAS,IAGNhC,KAAKE,UAKVqB,qBAAqBvB,KAAKG,iBAC1BH,KAAKG,gBAAkB,EACvBH,KAAKsB,yBACLtB,KAAKE,SAAU,EACfF,KAAKH,QAAQmB,cAAcgB,GAC3BhC,KAAKH,QAAQgB,SAAS1C,EAAWC,SACjC4B,KAAKH,QAAQsB,YAAYhD,EAAWE,MACpC2B,KAAKH,QAAQsB,YAAYhD,EAAWG,SACpCkD,aAAaxB,KAAKI,iBAClBJ,KAAKI,gBAAkBuB,YAAW,WAChC7B,EAAMgC,2BAENhC,EAAMD,QAAQkB,aAAaiB,KAC1B7C,EAAQK,oCAGbI,EAAsBwB,UAAUa,OAAS,WACvC,OAAOjC,KAAKE,SAGdN,EAAsBwB,UAAUS,aAAe,WAC7C,OAAO7B,KAAKM,uBAGdV,EAAsBwB,UAAUc,aAAe,SAAUN,GAEvD,IAAIO,EAAWhD,EAAQI,4BACnB6C,EAAWjD,EAAQG,4BAGvB,KAAIsC,IAAczC,EAAQE,eAAiBuC,GAAaQ,GAAYR,GAAaO,GAG/E,MAAM,IAAIE,MAAM,uDAAyDF,EAAW,SAAWC,EAAW,iBALnFjD,EAAQE,cAKmH,0BAA4BuC,EAAY,KAF1L5B,KAAKM,sBAAwBsB,GAMjChC,EAAsBwB,UAAUkB,iBAAmB,WACjD,OAAOtC,KAAKO,gBAGdX,EAAsBwB,UAAUmB,iBAAmB,SAAUC,GAC3DxC,KAAKO,eAAiBiC,GAGxB5C,EAAsBwB,UAAUqB,cAAgB,SAAUC,IAC1B,WAAZA,EAAIC,KAAoC,KAAhBD,EAAIE,UAE3B5C,KAAKsC,oBACtBtC,KAAK+B,MAAM9C,IAIfW,EAAsBwB,UAAUyB,wBAA0B,SAAUC,GAClE9C,KAAK+B,MAAM/C,IAGbY,EAAsBwB,UAAU2B,sBAAwB,SAAUD,GAChE9C,KAAK+B,MAAM9C,IAGbW,EAAsBwB,UAAUE,uBAAyB,WACvDE,aAAaxB,KAAKK,mBAClBL,KAAKK,kBAAoB,GAG3BT,EAAsBwB,UAAUU,yBAA2B,WACzD9B,KAAKI,gBAAkB,EACvBJ,KAAKH,QAAQsB,YAAYhD,EAAWG,SACpC0B,KAAKH,QAAQsB,YAAYhD,EAAWC,UAOtCwB,EAAsBwB,UAAUM,uBAAyB,SAAUsB,GACjE,IAAIlD,EAAQE,KAEZuB,qBAAqBvB,KAAKG,iBAC1BH,KAAKG,gBAAkB8C,uBAAsB,WAC3CnD,EAAMK,gBAAkB,EACxBqB,aAAa1B,EAAMM,iBACnBN,EAAMM,gBAAkBuB,WAAWqB,EAAU,OAI1CpD,EAnNT,CAoNE,KC9NEF,EAAqBP,EAAQO,mBAC7BjB,EAA4BF,EAAQE,0BAExC,SAASqC,EAASoC,EAAQC,QACR,IAAZA,IACFA,EAAUD,GAGZ,IAAIE,EAAWF,EAAOG,aAAa,aAG/BC,EAAYH,EAAQI,YAAYC,OAE/BF,GAAcF,IAKnBF,EAAOO,aAAa,YAAa,OA4BjCN,EAAQI,YAAc,GACtBJ,EAAQO,UAAY,4EAKpBP,EAAQM,aAAahF,EAA2B6E,GAChD3B,YAAW,WAETuB,EAAOO,aAAa,YAAaL,GAEjCD,EAAQQ,gBAAgBlF,GAExB0E,EAAQI,YAAcD,IACrB5D,ICvDL,IAAIR,EAAmBX,EAAQW,iBAC3BL,EAAiBN,EAAQM,eACzBL,EAAkBD,EAAQC,gBAC1BI,EAAmBL,EAAQK,iBAC3BG,EAAgBR,EAAQQ,cACxBD,EAAeP,EAAQO,aACvBH,EAAgBJ,EAAQI,cACxBD,EAAeH,EAAQG,aAEvB,EAEJ,SAAUiB,GAGR,SAASiE,IACP,OAAkB,OAAXjE,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAgL7D,OAnLA,YAAU4D,EAAajE,GAMvBiE,EAAYG,SAAW,SAAUC,GAC/B,OAAO,IAAIJ,EAAYI,IAGzBJ,EAAYxC,UAAU6C,WAAa,SAAUC,QAClB,IAArBA,IACFA,EAAmB,WACjB,OAAO,IAIXlE,KAAKmE,UAAYD,KAGnBN,EAAYxC,UAAUgD,mBAAqB,WACzC,IAAItE,EAAQE,KAEZA,KAAKqE,WAAarE,KAAKgE,KAAKM,cAAcpF,GAC1Cc,KAAKuE,SAAWvE,KAAKgE,KAAKM,cAAczF,GACxCmB,KAAKwE,UAAYxE,KAAKgE,KAAKM,cAAc9F,GAEzCwB,KAAKyE,eAAiB,SAAU/B,GAC9B,OAAO5C,EAAM4E,WAAWjC,cAAcC,IAGxC1C,KAAK2E,oBAAsB,SAAUjC,GACnC,IAAIkC,EAASlC,EAAIkC,OAEb9E,EAAM+E,gBAAgBD,GACxB9E,EAAM4E,WAAW7B,wBAAwBH,GAChC5C,EAAMgF,cAAcF,IAC7B9E,EAAM4E,WAAW3B,sBAAsBL,IAI3C1C,KAAK+E,wBAAwB/E,KAAKyE,gBAClCzE,KAAKgF,6BAA6BhF,KAAK2E,sBAGzCf,EAAYxC,UAAUC,QAAU,WAC9B1B,EAAOyB,UAAUC,QAAQtB,KAAKC,MAE9BA,KAAKiF,0BAA0BjF,KAAKyE,gBACpCzE,KAAKkF,+BAA+BlF,KAAK2E,sBAG3Cf,EAAYxC,UAAUK,KAAO,WAC3BzB,KAAK0E,WAAWjD,QASlBmC,EAAYxC,UAAUW,MAAQ,SAAUC,QACvB,IAAXA,IACFA,EAAS,IAGXhC,KAAK0E,WAAW3C,MAAMC,IAGxB4B,EAAYxC,UAAU+D,qBAAuB,WAC3C,IAAIrF,EAAQE,KA+BZ,OAAO,IAAI,EA3BG,CACZa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCtE,SAAU,WACR,OAAOhB,EAAMqE,UAAUrE,EAAMyE,WAE/BxD,aAAc,SAAUiB,GACtB,OAAOlC,EAAMyF,KAAK7G,EAAcsD,EAAS,CACvCA,OAAQA,GACN,KAENhB,cAAe,SAAUgB,GACvB,OAAOlC,EAAMyF,KAAK5G,EAAeqD,EAAS,CACxCA,OAAQA,GACN,KAENf,aAAc,WACZ,OAAOnB,EAAMyF,KAAKzG,EAAc,KAElCoC,cAAe,WACb,OAAOpB,EAAMyF,KAAKxG,EAAe,KAEnCoC,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,OAMzC5E,OAAOC,eAAemD,EAAYxC,UAAW,YAAa,CACxDV,IAAK,WACH,OAAOV,KAAK0E,WAAW7C,gBAEzB4D,IAAK,SAAU7D,GACb5B,KAAK0E,WAAWxC,aAAaN,IAE/BjB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAemD,EAAYxC,UAAW,gBAAiB,CAC5DV,IAAK,WACH,OAAOV,KAAK0E,WAAWpC,oBAEzBmD,IAAK,SAAUjD,GACbxC,KAAK0E,WAAWnC,iBAAiBC,IAEnC7B,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAemD,EAAYxC,UAAW,SAAU,CACrDV,IAAK,WACH,OAAOV,KAAK0E,WAAWzC,UAEzBtB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAemD,EAAYxC,UAAW,YAAa,CACxDV,IAAK,WAGH,OAAOV,KAAKuE,SAAShB,aAEvBkC,IAAK,SAAUnC,GACbtD,KAAKuE,SAAShB,YAAcD,GAE9B3C,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAemD,EAAYxC,UAAW,mBAAoB,CAC/DV,IAAK,WACH,OAAOV,KAAKwE,UAAUjB,aAExBkC,IAAK,SAAUC,GACb1F,KAAKwE,UAAUjB,YAAcmC,GAE/B/E,YAAY,EACZC,cAAc,IAGhBgD,EAAYxC,UAAU2D,wBAA0B,SAAUY,GACxD3F,KAAK4F,OAAO,UAAWD,IAGzB/B,EAAYxC,UAAU6D,0BAA4B,SAAUU,GAC1D3F,KAAK6F,SAAS,UAAWF,IAG3B/B,EAAYxC,UAAU4D,6BAA+B,SAAUW,GAC7D3F,KAAKqE,WAAWyB,iBAAiB,QAASH,IAG5C/B,EAAYxC,UAAU8D,+BAAiC,SAAUS,GAC/D3F,KAAKqE,WAAW0B,oBAAoB,QAASJ,IAG/C/B,EAAYxC,UAAUyD,gBAAkB,SAAUD,GAChD,OAAOoB,QAAQ,YAAQpB,EAAQpG,KAGjCoF,EAAYxC,UAAU0D,cAAgB,SAAUF,GAC9C,OAAOoB,QAAQ,YAAQpB,EAAQhG,KAG1BgF,EApLT,CAqLE,M,oCC3NF,IAYMqC,EACAC,EAbFC,EAAc,EAAQ,QACtBC,EAAgB,EAAQ,QAExBC,EAAaC,OAAOlF,UAAUmF,KAI9BC,EAAgBC,OAAOrF,UAAUtD,QAEjC4I,EAAcL,EAEdM,GACEV,EAAM,IACNC,EAAM,MACVG,EAAWtG,KAAKkG,EAAK,KACrBI,EAAWtG,KAAKmG,EAAK,KACI,IAAlBD,EAAIW,WAAqC,IAAlBV,EAAIU,WAGhCC,EAAgBT,EAAcS,eAAiBT,EAAcU,aAG7DC,OAAuCC,IAAvB,OAAOT,KAAK,IAAI,IAExBI,GAA4BI,GAAiBF,KAGvDH,EAAc,SAAcO,GAC1B,IACIL,EAAWM,EAAQC,EAAOC,EAD1BC,EAAKrH,KAELsH,EAAST,GAAiBQ,EAAGC,OAC7BC,EAAQpB,EAAYpG,KAAKsH,GACzBG,EAASH,EAAGG,OACZC,EAAa,EACbC,EAAUT,EA+Cd,OA7CIK,KAE0B,KAD5BC,EAAQA,EAAMzJ,QAAQ,IAAK,KACjB6J,QAAQ,OAChBJ,GAAS,KAGXG,EAAUjB,OAAOQ,GAAKW,MAAMP,EAAGT,WAE3BS,EAAGT,UAAY,KAAOS,EAAGQ,WAAaR,EAAGQ,WAAuC,OAA1BZ,EAAII,EAAGT,UAAY,MAC3EY,EAAS,OAASA,EAAS,IAC3BE,EAAU,IAAMA,EAChBD,KAIFP,EAAS,IAAIZ,OAAO,OAASkB,EAAS,IAAKD,IAGzCR,IACFG,EAAS,IAAIZ,OAAO,IAAMkB,EAAS,WAAYD,IAE7CZ,IAA0BC,EAAYS,EAAGT,WAE7CO,EAAQd,EAAWtG,KAAKuH,EAASJ,EAASG,EAAIK,GAE1CJ,EACEH,GACFA,EAAMW,MAAQX,EAAMW,MAAMF,MAAMH,GAChCN,EAAM,GAAKA,EAAM,GAAGS,MAAMH,GAC1BN,EAAMY,MAAQV,EAAGT,UACjBS,EAAGT,WAAaO,EAAM,GAAGa,QACpBX,EAAGT,UAAY,EACbD,GAA4BQ,IACrCE,EAAGT,UAAYS,EAAGY,OAASd,EAAMY,MAAQZ,EAAM,GAAGa,OAASpB,GAEzDG,GAAiBI,GAASA,EAAMa,OAAS,GAG3CxB,EAAczG,KAAKoH,EAAM,GAAID,GAAQ,WACnC,IAAKE,EAAI,EAAGA,EAAItD,UAAUkE,OAAS,EAAGZ,SACfJ,IAAjBlD,UAAUsD,KAAkBD,EAAMC,QAAKJ,MAK1CG,IAIXe,EAAOC,QAAUzB,G,wBC/ER,SAAU5L,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gXAAyEC,MAAM,KACvFC,YAAa,gXAAyED,MAAM,KAC5FE,SAAU,yPAAiDF,MAAM,KACjEG,cAAe,2EAAoBH,MAAM,KACzCI,YAAa,2EAAoBJ,MAAM,KACvC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERqN,cAAe,gEACfC,KAAM,SAAUpB,GACd,MAAiB,mCAAVA,GAETqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,iCAEA,kCAGXvN,SAAU,CACRC,QAAS,2EACTC,QAAS,+DACTC,SAAU,qCACVC,QAAS,iFACTC,SAAU,oGACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,uBACRC,KAAM,uBACNC,EAAG,uFACHC,GAAI,0CACJC,EAAG,6CACHC,GAAI,8BACJC,EAAG,6CACHC,GAAI,8BACJC,EAAG,6CACHC,GAAI,8BACJC,EAAG,iCACHC,GAAI,kBACJC,EAAG,mDACHC,GAAI,qCAENC,uBAAwB,sBACxBC,QAAS,iBACTmM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAGrB5J,KAAM,CACJC,IAAK,EAELC,IAAK,KA7FuFC,CAAQ,EAAQ,U,wBCCzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,gGAAgGC,MAAM,KAC9GC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,0EAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,iBACTC,QAAS,mBACTC,SAAU,iBACVC,QAAS,iBACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACH,MAAO,6BAET,QACE,MAAO,+BAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,SAAUE,GAChB,OAAQ,YAAY2B,KAAK3B,GAAK,MAAQ,MAAQ,IAAMA,GAEtDD,KAAM,QACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAzDuFC,CAAQ,EAAQ,U,0ECuGvGiM,E,gDAnFAxL,EAGA,0BAHAA,EAMW,sCANXA,EAOsB,iDAPtBA,EAUG,6BAVHA,EAYI,8BAZJA,EAiBK,gCAkBLyL,EACE,iBADFA,EAED,cAMCC,EAAY,CACrBC,QAAS,IAAM3L,EACf4L,YAAa,IAzCA,8BA0CbC,sBAAuB,IAtCA,yCAuCvBC,WAAY,IAAM9L,EAClB+L,oBAAqB,IArCA,sCAsCrBC,mBAAoB,IApCA,qCAqCpBC,IAAK,IAnCA,sBAoCLC,aAAc,IAnCA,+BAoCdC,aAAc,IAAMnM,EACpBoM,iBAAkB,IAnCA,mCAoClBC,kBAAmB,IAnCA,qCAyCVC,EACa,6BADbA,EAEY,4BAOZlM,EAAU,CACnBmM,cA1Ce,gBA2CfC,UA1CW,YA2CXC,iBAAkBhB,EAClBiB,6BAA8BhB,EAAUK,oBACxCY,sBAAuBjB,EAAUQ,aACjCU,sBAAuBlB,EAAUS,aACjCU,aAAcnB,EAAUO,MAS1B,SAAWT,GAETA,EAAqB,UAAI,YAEzBA,EAAsB,WAAI,aAE1BA,EAAgB,KAAI,OAEpBA,EAAiB,MAAI,QARvB,CASGA,IAAcA,EAAY,KAMtB,IAAIsB,EACc,mCADdA,EAEK,2BAFLA,EAGO,6BAHPA,EAID,sBCpGN,EAEJ,SAAUtL,GAGR,SAASuL,EAAuBrL,GAC9B,OAAOF,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIkL,EAAuBjL,gBAAiBJ,KAAaG,KAiXtG,OApXA,YAAUkL,EAAwBvL,GAMlCa,OAAOC,eAAeyK,EAAwB,iBAAkB,CAC9DxK,IAAK,WACH,MAAO,CACLG,SAAU,aAGVsK,mBAAoB,aAGpBC,8BAA+B,WAC7B,MAAO,IAETC,mBAAoB,WAClB,OAAO,GAETC,sBAAuB,WACrB,MAAO,IAETC,YAAa,WACX,OAAO,GAETC,eAAgB,WACd,MAAO,IAETC,gBAAiB,WACf,MAAO,IAETC,0BAA2B,WACzB,OAAO,GAETC,oBAAqB,WACnB,OAAO,GAETC,mBAAoB,WAClB,MAAO,IAETC,qBAAsB,WACpB,MAAO,IAETC,4BAA6B,WAC3B,OAAO,GAETC,2BAA4B,WAC1B,OAAO,GAETC,iBAAkB,WAChB,OAAO,GAETC,0BAA2B,aAG3BC,kBAAmB,aAGnBC,iBAAkB,aAGlBC,oBAAqB,aAGrBC,0BAA2B,aAG3BC,sBAAuB,aAGvBnL,YAAa,aAGboL,sBAAuB,aAGvBC,iCAAkC,aAGlCC,uBAAwB,aAGxBC,8BAA+B,aAG/BC,8BAA+B,aAG/BC,4BAA6B,aAG7BC,kCAAmC,aAGnCC,2BAA4B,aAG5BC,6BAA8B,aAG9BC,oCAAqC,eAKzCrM,YAAY,EACZC,cAAc,IAOhBsK,EAAuB9J,UAAU6L,OAAS,WACpCjN,KAAKH,QAAQmM,qBACfhM,KAAKH,QAAQwM,4BACbrM,KAAKH,QAAQyM,wBACbtM,KAAKkN,8BASThC,EAAuB9J,UAAU+L,YAAc,WAC7C,OAAO,YAAUnN,UAAM,OAAQ,GAAQ,WACrC,OAAO,YAAYA,MAAM,SAAUoN,GACjC,OAAQA,EAAGC,OACT,KAAK,EACH,OAAKrN,KAAKH,QAAQmM,mBAGX,CAAC,EAENhM,KAAKH,QAAQwM,6BAL8B,CAAC,EAE5C,GAKJ,KAAK,EAGH,OAFAe,EAAGE,OAEI,CAAC,EAENtN,KAAKH,QAAQyM,yBAEjB,KAAK,EACHc,EAAGE,OAEHtN,KAAKkN,4BACLE,EAAGC,MAAQ,EAEb,KAAK,EACH,MAAO,CAAC,WAYlBnC,EAAuB9J,UAAUmM,QAAU,WACzC,OAAOvN,KAAKH,QAAQ2L,kBAOtBN,EAAuB9J,UAAUoM,eAAiB,WAChD,OAAOxN,KAAKH,QAAQyL,yBAQtBJ,EAAuB9J,UAAUqM,kBAAoB,SAAUC,GAC7D,IAAK,IAAIC,EAAW,EAAGA,EAAW3N,KAAKH,QAAQ0L,cAAeoC,IAAY,CACxE,IAAIC,EAAQ5N,KAAKH,QAAQ4L,gBAAgBkC,GACrCE,GAAa,EAEbD,GAASF,EAAO/F,QAAQiG,IAAU,IACpCC,GAAa,GAGf7N,KAAKH,QAAQkN,6BAA6BY,EAAUE,GACpD7N,KAAK8N,iBAAiBH,EAAUE,GAGlC7N,KAAKkN,6BAOPhC,EAAuB9J,UAAU2M,UAAY,WAG3C,IAFA,IAAIL,EAAS,GAEJC,EAAW,EAAGA,EAAW3N,KAAKH,QAAQ0L,cAAeoC,IAC5DD,EAAOM,KAAKhO,KAAKH,QAAQ4L,gBAAgBkC,IAG3C,OAAOD,GAOTxC,EAAuB9J,UAAU6M,kBAAoB,WAGnD,IAFA,IAAIC,EAAiB,GAEZP,EAAW,EAAGA,EAAW3N,KAAKH,QAAQ0L,cAAeoC,IACxD3N,KAAKH,QAAQiM,4BAA4B6B,IAC3CO,EAAeF,KAAKhO,KAAKH,QAAQ4L,gBAAgBkC,IAIrD,OAAOO,GAOThD,EAAuB9J,UAAU+M,8BAAgC,WAG/D,IAFA,IAAIC,EAAkBpO,KAAKH,QAAQkM,6BAE1B4B,EAAW,EAAGA,EAAW3N,KAAKH,QAAQ0L,cAAeoC,IAC5D3N,KAAKH,QAAQkN,6BAA6BY,EAAUS,GACpDpO,KAAK8N,iBAAiBH,EAAUS,GAG9BA,EACFpO,KAAKH,QAAQqM,oBAEblM,KAAKH,QAAQuM,uBAQjBlB,EAAuB9J,UAAUiN,wBAA0B,SAAUC,GACnE,IAAIX,EAAW3N,KAAKH,QAAQ6L,0BAA0B4C,EAAM1J,QAE5D,IAAkB,IAAd+I,EAAJ,CAIA,IAAIY,EAAWvO,KAAKH,QAAQiM,4BAA4B6B,GACxD3N,KAAK8N,iBAAiBH,EAAUY,GAChCvO,KAAKkN,4BACL,IAAIU,EAAQ5N,KAAKH,QAAQ4L,gBAAgBkC,GACzC3N,KAAKH,QAAQoM,0BAA0B,CACrC2B,MAAOA,EACPD,SAAUA,EACVY,SAAUA,MAQdrD,EAAuB9J,UAAUoN,iBAAmB,SAAUC,GAK5D,IAJA,IAAIC,EAAWD,EAAUC,SACrBC,EAAcF,EAAUE,YACxBC,EAAaH,EAAUG,WAElB7G,EAAQ,EAAGA,EAAQ/H,KAAKH,QAAQwL,qBAAsBtD,IACzDA,IAAU4G,IAId3O,KAAKH,QAAQ2M,iCAAiCzE,EAAO5J,GACrD6B,KAAKH,QAAQ2M,iCAAiCzE,EAAO5J,GACrD6B,KAAKH,QAAQ6M,8BAA8B3E,EAAOxJ,EAAQoM,UAAWhB,EAAUkF,MAC/E7O,KAAKH,QAAQmN,oCAAoCjF,EAAO4B,EAAUkF,OAIpE7O,KAAKH,QAAQ8M,8BAA8BgC,EAAaxQ,GACxD,IAAI2Q,EAAmB9O,KAAKH,QAAQuL,8BAA8BuD,EAAapQ,EAAQoM,WACnFoE,EAAYpF,EAAUkF,KAEtBC,IAAqBnF,EAAUqF,WACjChP,KAAKH,QAAQ8M,8BAA8BgC,EAAaxQ,GACxD6B,KAAKH,QAAQ6M,8BAA8BiC,EAAapQ,EAAQoM,UAAWhB,EAAUsF,YACrFF,EAAYpF,EAAUsF,YACbH,IAAqBnF,EAAUsF,YACxCjP,KAAKH,QAAQ2M,iCAAiCmC,EAAaxQ,GAC3D6B,KAAKH,QAAQ6M,8BAA8BiC,EAAapQ,EAAQoM,UAAWhB,EAAUqF,WACrFD,EAAYpF,EAAUqF,YAGtBhP,KAAKH,QAAQ6M,8BAA8BiC,EAAapQ,EAAQoM,UAAWhB,EAAUqF,WACrFD,EAAYpF,EAAUqF,WAGxBhP,KAAKH,QAAQmN,oCAAoC2B,EAAaI,GAC9D/O,KAAKH,QAAQsM,iBAAiB,CAC5BuC,SAAUA,EACVC,YAAaA,EACbC,WAAYA,EACZG,UAAWA,KASf7D,EAAuB9J,UAAU8N,aAAe,WAC9C,IAAIC,EAASnP,KAAKH,QAAQ+L,qBACtBwD,EAAMpP,KAAKH,QAAQgM,uBACvB7L,KAAKH,QAAQiN,2BAA2B,CACtCqC,OAAQA,EACRC,IAAKA,IAEPpP,KAAKH,QAAQgB,SAAS1C,IAOxB+M,EAAuB9J,UAAUiO,aAAe,WAC9CrP,KAAKH,QAAQsB,YAAYhD,IAO3B+M,EAAuB9J,UAAU8L,0BAA4B,WACvDlN,KAAKH,QAAQ8L,wBAA0B3L,KAAKH,QAAQ0L,eACtDvL,KAAKH,QAAQ+M,6BAA4B,GACzC5M,KAAKH,QAAQgN,mCAAkC,IACC,IAAvC7M,KAAKH,QAAQ8L,uBACtB3L,KAAKH,QAAQgN,mCAAkC,GAC/C7M,KAAKH,QAAQ+M,6BAA4B,KAEzC5M,KAAKH,QAAQgN,mCAAkC,GAC/C7M,KAAKH,QAAQ+M,6BAA4B,KAQ7C1B,EAAuB9J,UAAU0M,iBAAmB,SAAUH,EAAUY,GAClEA,GACFvO,KAAKH,QAAQsL,mBAAmBwC,EAAUxP,GAC1C6B,KAAKH,QAAQ4M,uBAAuBkB,EAAUpP,EAAQmM,cAAe,UAErE1K,KAAKH,QAAQ0M,sBAAsBoB,EAAUxP,GAC7C6B,KAAKH,QAAQ4M,uBAAuBkB,EAAUpP,EAAQmM,cAAe,WAIlEQ,EArXT,C,UAsXE,GCtXE,EAEJ,SAAUvL,GAGR,SAAS2P,IACP,OAAkB,OAAX3P,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAwS7D,OA3SA,YAAUsP,EAAc3P,GAMxB2P,EAAavL,SAAW,SAAUC,GAChC,OAAO,IAAIsL,EAAatL,IAG1BsL,EAAalO,UAAU6C,WAAa,SAAUsL,QACpB,IAApBA,IACFA,EAAkB,SAAUC,GAC1B,OAAO,IAAI,IAAYA,KAI3BxP,KAAKuP,gBAAkBA,GAGzBD,EAAalO,UAAUgD,mBAAqB,WAC1C,IAAItE,EAAQE,KAEZA,KAAKyP,UAAYzP,KAAKgE,KAAKM,cAAc,IAAMnG,GAE/C6B,KAAKmO,8BAAgC,WACnC,OAAOrO,EAAM4E,WAAWyJ,iCAG1BnO,KAAKyP,UAAU3J,iBAAiB,SAAU9F,KAAKmO,+BAE/CnO,KAAK0P,uBAAyB,SAAUpB,GACtCxO,EAAM6P,qBAAqBrB,IAG7BtO,KAAKyP,UAAU3J,iBAAiB,QAAS9F,KAAK0P,wBAC9C1P,KAAK4P,QAAU5P,KAAKgE,KAAKM,cAAc,IAAMnG,GAE7C6B,KAAKqO,wBAA0B,SAAUC,GACvC,OAAOxO,EAAM4E,WAAW2J,wBAAwBC,IAGlDtO,KAAK4P,QAAQ9J,iBAAiB,SAAU9F,KAAKqO,yBAC7CrO,KAAKiN,UAOPqC,EAAalO,UAAU6L,OAAS,WAC9BjN,KAAK0E,WAAWuI,UAOlBqC,EAAalO,UAAUoM,eAAiB,WACtC,MAAO,GAAG5F,MAAM7H,KAAKC,KAAKgE,KAAK6L,iBAAiBhG,EAAUE,eAO5DuF,EAAalO,UAAUmM,QAAU,WAC/B,OAAOvN,KAAK0E,WAAW6I,WAOzB+B,EAAalO,UAAU6M,kBAAoB,WACzC,OAAOjO,KAAK0E,WAAWuJ,qBAQzBqB,EAAalO,UAAUqM,kBAAoB,SAAUC,GACnD1N,KAAK0E,WAAW+I,kBAAkBC,IAGpC4B,EAAalO,UAAUC,QAAU,WAC/BrB,KAAKyP,UAAU1J,oBAAoB,SAAU/F,KAAKmO,+BAClDnO,KAAKyP,UAAU1J,oBAAoB,QAAS/F,KAAK0P,wBACjD1P,KAAK4P,QAAQ7J,oBAAoB,SAAU/F,KAAKqO,yBAChDrO,KAAK8P,kBAAkBzO,UACvBrB,KAAK+P,gBAAgBC,SAAQ,SAAUC,GACrCA,EAAS5O,cAIbiO,EAAalO,UAAU+D,qBAAuB,WAC5C,IAAIrF,EAAQE,KA4JZ,OAAO,IAAI,EAvJG,CACZa,SAAU,SAAUuE,GAClBtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAE3BjE,YAAa,SAAUiE,GACrBtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAE9BkG,sBAAuB,WACrB,OAAOxL,EAAM0N,kBAEfnC,mBAAoB,WAClB,OAAOvL,EAAM0N,iBAAiBxF,QAEhCoD,8BAA+B,SAAUrD,EAAOmI,GAC9C,OAAOpQ,EAAM0N,iBAAiBzF,GAAO1E,aAAa6M,IAEpDxD,8BAA+B,SAAU3E,EAAOmI,EAAWC,GACzDrQ,EAAM0N,iBAAiBzF,GAAOtE,aAAayM,EAAWC,IAExDxD,8BAA+B,SAAU5E,EAAO3C,GAC9CtF,EAAM0N,iBAAiBzF,GAAO1C,UAAUC,IAAIF,IAE9CoH,iCAAkC,SAAUzE,EAAO3C,GACjDtF,EAAM0N,iBAAiBzF,GAAO1C,UAAUG,OAAOJ,IAEjD+G,iBAAkB,SAAUiE,GAC1BtQ,EAAMyF,KAAK0F,EAAemF,GAE1B,IAEFxE,mBAAoB,WAClB,IAAIyE,EAAYvQ,EAAMkE,KAAKM,cAAcuF,EAAUC,SAEnD,IAAKuG,EACH,MAAM,IAAIhO,MAAM,+CAGlB,OAAOgO,EAAUC,wBAAwBnB,OAAS,MAEpDtD,qBAAsB,WACpB,IAAI0E,EAAczQ,EAAMkE,KAAKM,cAAcuF,EAAUI,YAErD,IAAKsG,EACH,MAAM,IAAIlO,MAAM,iDAGlB,OAAOkO,EAAYD,wBAAwBnB,OAAS,MAEtDrC,2BAA4B,SAAU0D,GACpC,IAAIC,EAAoB3Q,EAAMkE,KAAKM,cAAcuF,EAAUM,oBAE3D,IAAKsG,EACH,MAAM,IAAIpO,MAAM,uDAGlB7B,OAAOkQ,OAAOD,EAAkBE,MAAOH,IAEzCrF,mBAAoB,SAAUwC,EAAUvI,GACtCtF,EAAMyN,UAAUI,GAAUtI,UAAUC,IAAIF,IAE1CmG,YAAa,WACX,OAAOzL,EAAMyN,UAAUvF,QAEzBwD,eAAgB,WACd,MAAO,GAAG5D,MAAM7H,KAAKD,EAAMkE,KAAK6L,iBAAiBhG,EAAUO,OAE7DqB,gBAAiB,SAAUkC,GACzB,OAAO7N,EAAMyN,UAAUI,GAAUtK,aAAauG,IAEhD8B,0BAA2B,SAAU8D,GACnC,OAAO1P,EAAMyN,UAAU5F,QAAQ,YAAQ6H,EAAI3F,EAAUO,OAEvDuB,oBAAqB,WACnB,OAAO7L,EAAMkE,KAAK6L,iBAAiBhG,EAAUS,cAActC,QAE7D8D,4BAA6B,SAAU6B,GACrC,OAAO7N,EAAMiQ,gBAAgBpC,GAAUiD,SAEzC7E,2BAA4B,WAC1B,OAAOjM,EAAMgQ,kBAAkBc,SAEjC5E,iBAAkB,WAChB,QAASlM,EAAMkE,KAAKM,cAAcuF,EAAUQ,eAE9C4B,0BAA2B,SAAUmE,GACnCtQ,EAAMyF,KAAK0F,EAA8B,CACvC4F,IAAK/Q,EAAMgR,cAAcV,EAAKzC,UAC9BC,MAAO9N,EAAMiR,gBAAgBX,EAAKzC,UAClCA,SAAUyC,EAAKzC,SACfY,SAAU6B,EAAK7B,WAGjB,IAEFrC,kBAAmB,WACjBpM,EAAMyF,KAAK0F,EAAqB,IAEhC,IAEFmB,oBAAqB,WACnBtM,EAAMyF,KAAK0F,EAAuB,IAElC,IAEFoB,0BAA2B,WACrBvM,EAAMgQ,mBACRhQ,EAAMgQ,kBAAkBzO,UAG1B,IAAI2P,EAAalR,EAAMkE,KAAKM,cAAcuF,EAAUK,qBAEpDpK,EAAMgQ,kBAAoBhQ,EAAMyP,gBAAgByB,IAElD1E,sBAAuB,WACjBxM,EAAMiQ,iBACRjQ,EAAMiQ,gBAAgBC,SAAQ,SAAUC,GACtCA,EAAS5O,aAIbvB,EAAMiQ,gBAAkB,GAExBjQ,EAAMyN,UAAUyC,SAAQ,SAAUiB,GAChC,IAAIhB,EAAWnQ,EAAMyP,gBAAgB0B,EAAM3M,cAAcuF,EAAUQ,eAEnEvK,EAAMiQ,gBAAgB/B,KAAKiC,OAG/B1D,sBAAuB,SAAUoB,EAAUvI,GACzCtF,EAAMyN,UAAUI,GAAUtI,UAAUG,OAAOJ,IAE7CqH,uBAAwB,SAAUkB,EAAUuD,EAAMf,GAChDrQ,EAAMyN,UAAUI,GAAUlK,aAAayN,EAAMf,IAE/CvD,4BAA6B,SAAUgE,GACrC9Q,EAAMgQ,kBAAkBc,QAAUA,GAEpC/D,kCAAmC,SAAUsE,GAC3CrR,EAAMgQ,kBAAkBqB,cAAgBA,GAE1CpE,6BAA8B,SAAUY,EAAUiD,GAChD9Q,EAAMiQ,gBAAgBpC,GAAUiD,QAAUA,GAE5C5D,oCAAqC,SAAU2B,EAAaI,GAC1D,IAEIqC,EAFatR,EAAM0N,iBAAiBmB,GAEPrK,cAAcuF,EAAUW,mBACpD4G,IACLA,EAAgB7N,YAAczD,EAAMuR,gCAAgCtC,QAM1EO,EAAalO,UAAU0P,cAAgB,SAAU/I,GAC/C,OAAO/H,KAAKuN,UAAUxF,IAGxBuH,EAAalO,UAAU2P,gBAAkB,SAAUhJ,GACjD,OAAO/H,KAAK8Q,cAAc/I,GAAO1E,aAAauG,IAGhD0F,EAAalO,UAAUuO,qBAAuB,SAAUrB,GACtD,IAAIM,EAAa,YAAQN,EAAM1J,OAAQiF,EAAUG,uBAEjD,GAAK4E,EAAL,CAIA,IAAIF,EAAWE,EAAWvL,aAAauG,GACnC+E,EAAc3O,KAAKwN,iBAAiB7F,QAAQiH,IAE3B,IAAjBD,GAIJ3O,KAAK0E,WAAW8J,iBAAiB,CAC/BE,SAAUA,EACVC,YAAaA,EACbC,WAAYA,MAIhBU,EAAalO,UAAUiQ,gCAAkC,SAAUtC,GACjE,OAAQA,GACN,KAAKpF,EAAUqF,UACb,OAAOvE,EAET,KAAKd,EAAUsF,WACb,OAAOxE,EAET,QACE,MAAO,KAIN6E,EA5ST,CA6SE,M,wBCxUO,SAAUxU,GACjB,aAEA,SAASwW,EAAOC,GACd,OAAIA,EAAI,MAAQ,IAELA,EAAI,KAAO,EAOxB,SAASC,EAAUnU,EAAQoU,EAAe9O,EAAK+O,GAC7C,IAAIC,EAAStU,EAAS,IAEtB,OAAQsF,GACN,IAAK,IACH,OAAO8O,GAAiBC,EAAW,sBAAqB,sBAE1D,IAAK,KACH,OAAIJ,EAAOjU,GACFsU,GAAUF,GAAiBC,EAAW,cAAa,eAGrDC,EAAS,aAElB,IAAK,IACH,OAAOF,EAAgB,eAAW,eAEpC,IAAK,KACH,OAAIH,EAAOjU,GACFsU,GAAUF,GAAiBC,EAAW,gBAAY,iBAChDD,EACFE,EAAS,eAGXA,EAAS,eAElB,IAAK,KACH,OAAIL,EAAOjU,GACFsU,GAAUF,GAAiBC,EAAW,gBAAkB,iBAG1DC,EAAS,cAElB,IAAK,IACH,OAAIF,EACK,QAGFC,EAAW,MAAQ,OAE5B,IAAK,KACH,OAAIJ,EAAOjU,GACLoU,EACKE,EAAS,QAGXA,GAAUD,EAAW,OAAS,YAC5BD,EACFE,EAAS,QAGXA,GAAUD,EAAW,MAAQ,QAEtC,IAAK,IACH,OAAID,EACK,gBAGFC,EAAW,cAAU,eAE9B,IAAK,KACH,OAAIJ,EAAOjU,GACLoU,EACKE,EAAS,gBAGXA,GAAUD,EAAW,eAAW,iBAC9BD,EACFE,EAAS,gBAGXA,GAAUD,EAAW,cAAU,gBAExC,IAAK,IACH,OAAOD,GAAiBC,EAAW,QAAO,SAE5C,IAAK,KACH,OAAIJ,EAAOjU,GACFsU,GAAUF,GAAiBC,EAAW,QAAO,WAG/CC,GAAUF,GAAiBC,EAAW,QAAO,WAIjD5W,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wHAAoFC,MAAM,KAClGC,YAAa,oEAAkDD,MAAM,KACrEE,SAAU,kGAAmFF,MAAM,KACnGG,cAAe,0CAA8BH,MAAM,KACnDI,YAAa,gCAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,0BACLC,KAAM,iCAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,uBACTC,SAAU,gBACVC,QAAS,uBACTC,SAAU,gCACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,uBACNC,EAAGiV,EACHhV,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG,cACHC,GAAI4U,EACJ3U,EAAG2U,EACH1U,GAAI0U,EACJzU,EAAGyU,EACHxU,GAAIwU,EACJvU,EAAGuU,EACHtU,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA9IuFC,CAAQ,EAAQ,U,wBCEzG,SAAU5C,GACjB,aAEA,IAAI8W,EAAc,6FAAgE3W,MAAM,KAExF,SAASuW,EAAUnU,EAAQoU,EAAe9O,EAAK+O,GAC7C,IAAIG,EAAMxU,EAEV,OAAQsF,GACN,IAAK,IACH,OAAO+O,GAAYD,EAAgB,4BAAqB,6BAE1D,IAAK,KACH,OAAOI,GAAOH,GAAYD,GAAiB,gBAAe,iBAE5D,IAAK,IACH,MAAO,OAASC,GAAYD,EAAgB,QAAU,UAExD,IAAK,KACH,OAAOI,GAAOH,GAAYD,EAAgB,QAAU,UAEtD,IAAK,IACH,MAAO,OAASC,GAAYD,EAAgB,UAAS,gBAEvD,IAAK,KACH,OAAOI,GAAOH,GAAYD,EAAgB,UAAS,gBAErD,IAAK,IACH,MAAO,OAASC,GAAYD,EAAgB,OAAS,UAEvD,IAAK,KACH,OAAOI,GAAOH,GAAYD,EAAgB,OAAS,UAErD,IAAK,IACH,MAAO,OAASC,GAAYD,EAAgB,YAAW,eAEzD,IAAK,KACH,OAAOI,GAAOH,GAAYD,EAAgB,YAAW,eAEvD,IAAK,IACH,MAAO,OAASC,GAAYD,EAAgB,SAAQ,WAEtD,IAAK,KACH,OAAOI,GAAOH,GAAYD,EAAgB,SAAQ,WAGtD,MAAO,GAGT,SAASlU,EAAKmU,GACZ,OAAQA,EAAW,GAAK,cAAa,IAAME,EAAY5R,KAAK0J,OAAS,aAG9D5O,EAAOC,aAAa,KAAM,CACjCC,OAAQ,4HAAoGC,MAAM,KAClHC,YAAa,gFAAiED,MAAM,KACpF6W,kBAAkB,EAClB3W,SAAU,6EAAsDF,MAAM,KACtEG,cAAe,yCAAgCH,MAAM,KACrDI,YAAa,qBAAqBJ,MAAM,KACxCK,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAERqN,cAAe,SACfC,KAAM,SAAUpB,GACd,MAAyC,MAAlCA,EAAMiK,OAAO,GAAGC,eAEzB7I,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,IACS,IAAZ3I,EAAmB,KAAO,MAEd,IAAZA,EAAmB,KAAO,MAGrCzN,SAAU,CACRC,QAAS,gBACTC,QAAS,oBACTC,SAAU,WACR,OAAOuB,EAAKwC,KAAKC,MAAM,IAEzB/D,QAAS,oBACTC,SAAU,WACR,OAAOqB,EAAKwC,KAAKC,MAAM,IAEzB7D,SAAU,KAEZC,aAAc,CACZC,OAAQ,cACRC,KAAM,KACNC,EAAGiV,EACHhV,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG6U,EACH5U,GAAI4U,EACJ3U,EAAG2U,EACH1U,GAAI0U,EACJzU,EAAGyU,EACHxU,GAAIwU,EACJvU,EAAGuU,EACHtU,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAjHuFC,CAAQ,EAAQ,U,uBCPlH,IAAIyU,EAAa,EAAQ,QAEzBjK,EAAOC,QAAUgK,EAAW,WAAY,oB,wBCM/B,SAAUrX,GACjB,aAEA,IAAIsX,EAAsB,6DAA6DnX,MAAM,KACzFoX,EAAyB,kDAAkDpX,MAAM,KACjFqX,EAAc,CAAC,QAAS,QAAS,iBAAkB,QAAS,SAAU,cAAe,cAAe,QAAS,QAAS,QAAS,QAAS,SACxIC,EAAc,qKACPzX,EAAOC,aAAa,QAAS,CACtCC,OAAQ,0FAA0FC,MAAM,KACxGC,YAAa,SAAUuB,EAAGmB,GACxB,OAAKnB,EAEM,QAAQyB,KAAKN,GACfyU,EAAuB5V,EAAE+V,SAEzBJ,EAAoB3V,EAAE+V,SAJtBJ,GAOXG,YAAaA,EACbE,iBAAkBF,EAClBG,kBAAmB,4FACnBC,uBAAwB,mFACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,6DAA6DF,MAAM,KAC7EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,kBACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,mBACTC,SAAU,2BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,UACRC,KAAM,aACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,mBACHC,GAAI,aACJC,EAAG,gBACHC,GAAI,SACJC,EAAG,gBACHC,GAAI,WACJC,EAAG,kBACHC,GAAI,aACJC,EAAG,iBACHC,GAAI,WAENC,uBAAwB,kBACxBC,QAAS,SAAUC,GACjB,OAAOA,GAAqB,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,OAE1EE,KAAM,CACJC,IAAK,EAELC,IAAK,KArEuFC,CAAQ,EAAQ,U,oCCHlH,IAAIoV,EACG,SAASC,EAAqBC,EAAWC,QACzB,IAAjBA,IACFA,GAAe,GAGjB,IACIC,EADAC,EAAMH,EAAUG,IAGpB,GAAqC,mBAA1BL,IAAwCG,EACjD,OAAOH,EAKT,KAF8BK,GAA+B,oBAAjBA,EAAIC,UAG9C,OAAO,EAGT,IAAIC,EAA4BF,EAAIC,SAAS,aAAc,OAGvDE,EAAoCH,EAAIC,SAAS,sBAAwBD,EAAIC,SAAS,QAAS,aAOnG,OANAF,EAAkBG,GAA6BC,EAE1CL,IACHH,EAAwBI,GAGnBA,EAEF,SAASK,EAAyB7Q,EAAK8Q,EAAYC,GACxD,IAAK/Q,EACH,MAAO,CACLgR,EAAG,EACHzW,EAAG,GAIP,IAII0W,EACAC,EALAF,EAAIF,EAAWE,EACfzW,EAAIuW,EAAWvW,EACf4W,EAAYH,EAAID,EAAWK,KAC3BC,EAAY9W,EAAIwW,EAAWrE,IAI/B,GAAiB,eAAb1M,EAAIsR,KAAuB,CAC7B,IAAIC,EAAavR,EACjBiR,EAAcM,EAAWC,eAAe,GAAGC,MAAQN,EACnDD,EAAcK,EAAWC,eAAe,GAAGE,MAAQL,MAC9C,CACL,IAAIM,EAAa3R,EACjBiR,EAAcU,EAAWF,MAAQN,EACjCD,EAAcS,EAAWD,MAAQL,EAGnC,MAAO,CACLL,EAAGC,EACH1W,EAAG2W,GA9DP,qE,wBCOS,SAAU9Y,GACjB,aAEUA,EAAOC,aAAa,MAAO,CACnCC,OAAQ,saAAkFC,MAAM,KAChGC,YAAa,saAAkFD,MAAM,KACrGE,SAAU,+PAAkDF,MAAM,KAClEG,cAAe,+PAAkDH,MAAM,KACvEI,YAAa,+PAAkDJ,MAAM,KACrEK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,uCACTC,QAAS,uCACTC,SAAU,mBACVC,QAAS,6CACTC,SAAU,mBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wDACRC,KAAM,wBACNC,EAAG,2BACHC,GAAI,8BACJC,EAAG,iCACHC,GAAI,oCACJC,EAAG,2BACHC,GAAI,sDACJC,EAAG,qBACHC,GAAI,+BACJC,EAAG,4BACHC,GAAI,0CACJC,EAAG,iCACHC,GAAI,2CAENK,KAAM,CACJC,IAAK,EAELC,IAAK,MA7CuFC,CAAQ,EAAQ,U,uBCNlH,IAAI4W,EAAI,EAAQ,QACZrM,EAAS,EAAQ,QACjBsM,EAAO,EAAQ,QAKnBD,EAAE,CAAErM,QAAQ,EAAMuM,MAAM,EAAM7T,YAAY,EAAM8T,QAHlCxM,EAAOyM,eAAiBzM,EAAO0M,gBAGqB,CAGhED,aAAcH,EAAK9O,IAGnBkP,eAAgBJ,EAAKK,S,uBCbvB,IAAIzC,EAAa,EAAQ,QAEzBjK,EAAOC,QAAUgK,EAAW,YAAa,cAAgB,I,uBCFzD,IAAI0C,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QAIvB5M,EAAOC,QAAU,SAAU4M,GACzB,QAAW/N,IAAP+N,EAAkB,OAAO,EAC7B,IAAI1X,EAASwX,EAAUE,GACnB/M,EAAS8M,EAASzX,GACtB,GAAIA,IAAW2K,EAAQ,MAAMgN,WAAW,yBACxC,OAAOhN,I,wBCHA,SAAUlN,GACjB,aAEA,IAAI4X,EAAoB,oGACpBC,EAAyB,6FACzBJ,EAAc,2LACdD,EAAc,CAAC,SAAU,YAAU,SAAU,QAAS,QAAS,SAAU,SAAU,YAAU,SAAU,QAAS,QAAS,YACpHxX,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gGAAuFC,MAAM,KACrGC,YAAa,0EAAiED,MAAM,KACpFsX,YAAaA,EACbE,iBAAkBF,EAClBG,kBAAmBA,EACnBC,uBAAwBA,EACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,sDAAsDF,MAAM,KACtEG,cAAe,qCAAqCH,MAAM,KAC1DI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,6BACTC,QAAS,mBACTC,SAAU,iBACVC,QAAS,iBACTC,SAAU,yBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,UACRC,KAAM,YACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJmY,EAAG,cACHC,GAAI,cACJnY,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAENC,uBAAwB,eACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GAIN,IAAK,IACH,OAAO9X,GAAqB,IAAXA,EAAe,KAAO,IAGzC,QACA,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACH,OAAOA,GAAqB,IAAXA,EAAe,KAAO,KAGzC,IAAK,IACL,IAAK,IACH,OAAOA,GAAqB,IAAXA,EAAe,KAAO,OAG7CE,KAAM,CACJC,IAAK,EAELC,IAAK,KAlFuFC,CAAQ,EAAQ,U,oCCLlH,IAAIqU,EAAS,EAAQ,QAAiCA,OAItD7J,EAAOC,QAAU,SAAUiN,EAAGrN,EAAOsN,GACnC,OAAOtN,GAASsN,EAAUtD,EAAOqD,EAAGrN,GAAOC,OAAS,K,oCCLtD,IAAIsN,EAAc,EAAQ,QACtBC,EAAQ,EAAQ,QAChBC,EAAa,EAAQ,QACrBC,EAA8B,EAAQ,QACtCC,EAA6B,EAAQ,QACrCC,EAAW,EAAQ,QACnBC,EAAgB,EAAQ,QAExBC,EAAerV,OAAOkQ,OACtBjQ,EAAiBD,OAAOC,eAI5ByH,EAAOC,SAAW0N,GAAgBN,GAAM,WAEtC,GAAID,GAQiB,IARFO,EAAa,CAAEvY,EAAG,GAAKuY,EAAapV,EAAe,GAAI,IAAK,CAC7EE,YAAY,EACZD,IAAK,WACHD,EAAeT,KAAM,IAAK,CACxBmQ,MAAO,EACPxP,YAAY,OAGd,CAAErD,EAAG,KAAMA,EAAS,OAAO,EAE/B,IAAIwY,EAAI,GACJC,EAAI,GAEJC,EAASC,SACTC,EAAW,uBAGf,OAFAJ,EAAEE,GAAU,EACZE,EAASjb,MAAM,IAAI+U,SAAQ,SAAUmG,GAAOJ,EAAEI,GAAOA,KACf,GAA/BN,EAAa,GAAIC,GAAGE,IAAgBR,EAAWK,EAAa,GAAIE,IAAIK,KAAK,KAAOF,KACpF,SAAgBtR,EAAQ4C,GAM3B,IALA,IAAI6O,EAAIV,EAAS/Q,GACb0R,EAAkBxS,UAAUkE,OAC5BD,EAAQ,EACRwO,EAAwBd,EAA4Be,EACpDC,EAAuBf,EAA2Bc,EAC/CF,EAAkBvO,GAMvB,IALA,IAIIpF,EAJAyS,EAAIQ,EAAc9R,UAAUiE,MAC5B2O,EAAOH,EAAwBf,EAAWJ,GAAGuB,OAAOJ,EAAsBnB,IAAMI,EAAWJ,GAC3FpN,EAAS0O,EAAK1O,OACd4O,EAAI,EAED5O,EAAS4O,GACdjU,EAAM+T,EAAKE,KACNtB,IAAemB,EAAqB1W,KAAKqV,EAAGzS,KAAM0T,EAAE1T,GAAOyS,EAAEzS,IAEpE,OAAO0T,GACPR,G,uBCnDJ,IAAIN,EAAQ,EAAQ,QAEpBrN,EAAOC,UAAY3H,OAAO+V,wBAA0BhB,GAAM,WAGxD,OAAQ9O,OAAOwP,c,oCCJjB,IAAIY,EAA8C,EAAQ,SAM1DC,EALmC,EAAQ,QAAuCA,8BAKrD,OAJR,EAAQ,QAIwBD,I,oCCoB9C,SAASE,EAAaC,GAK3B,YAJkB,IAAdA,IACFA,EAAYC,UAQhB,SAA+BD,QACX,IAAdA,IACFA,EAAYC,QAKd,IAAIC,GAAmB,EAEvB,IACE,IAAIC,EAAU,CAGZ,cAEE,OADAD,GAAmB,GACZ,IAKPvR,EAAU,aAEdqR,EAAUI,SAAStR,iBAAiB,OAAQH,EAASwR,GACrDH,EAAUI,SAASrR,oBAAoB,OAAQJ,EAASwR,GACxD,MAAOE,GACPH,GAAmB,EAGrB,OAAOA,EAjCAI,CAAsBN,IAAa,CACxCO,SAAS,GAjCb,mC,wBCOS,SAAUzc,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,8FAA2FC,MAAM,KACzGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,uFAAiFF,MAAM,KACjGG,cAAe,iCAA8BH,MAAM,KACnDI,YAAa,yCAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,sCACLC,KAAM,6CAERC,SAAU,CACRC,QAAS,kBACTC,QAAS,uBACTC,SAAU,kBACVC,QAAS,mBACTC,SAAU,WACR,OAAsB,IAAf8D,KAAK0J,OAA8B,IAAf1J,KAAK0J,MAAc,8BAC5C,+BAEJvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,WACNC,EAAG,kBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,YACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAENC,uBAAwB,cACxBC,QAAS,SACToa,YAAa,qBAhDiF9Z,CAAQ,EAAQ,U,wBCCzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,4FAAyFC,MAAM,KACvGC,YAAa,iEAA8DD,MAAM,KACjF6W,kBAAkB,EAClB3W,SAAU,yDAAmDF,MAAM,KACnEG,cAAe,2CAAqCH,MAAM,KAC1DI,YAAa,6BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAERC,SAAU,CACRC,QAAS,WACP,MAAO,UAA6B,IAAjBkE,KAAKiS,QAAgB,QAAO,QAAO,QAExDlW,QAAS,WACP,MAAO,gBAA6B,IAAjBiE,KAAKiS,QAAgB,QAAO,QAAO,QAExDjW,SAAU,WACR,MAAO,UAA6B,IAAjBgE,KAAKiS,QAAgB,QAAO,KAAO,QAExDhW,QAAS,WACP,MAAO,UAA6B,IAAjB+D,KAAKiS,QAAgB,OAAM,KAAO,QAEvD/V,SAAU,WACR,MAAO,qBAAwC,IAAjB8D,KAAKiS,QAAgB,QAAO,KAAO,QAEnE9V,SAAU,KAEZC,aAAc,CACZC,OAAQ,SAAU4K,GAChB,OAA0B,IAAtBA,EAAIU,QAAQ,MACP,IAAMV,EAGR,MAAQA,GAEjB3K,KAAM,SACNC,EAAG,eACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,aACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAjEuFC,CAAQ,EAAQ,U,sECNlH,IAAI+Z,EAAQ,CAAC,SAAU,SAAU,OAAQ,MAAO,OAAQ,QAAS,QCA7DC,EAAQ,CAAC,SAAK,eAAM,eAAM,SAAK,SAAK,eAAM,UCQ1CC,EAAU,GAOHC,EAAW,SAAUC,EAAQC,GACtCH,EAAQE,GAAUC,GAQTC,EAAY,SAAUF,GAC/B,OAAOF,EAAQE,IAAWF,EAAe,OCrBvCK,EAAY,CAAC,GAAI,GAAI,GAAI,EAAG,IAAM,EAAI,GAAI,IAOvC,SAASC,EAAOnQ,GACrB,OAAIA,aAAiBoQ,KAAapQ,GAE7BqQ,MAAMrQ,IAAU,QAAQ5J,KAAK4J,GAAe,IAAIoQ,KAAKE,SAAStQ,KACnEA,GAASA,GAAS,IAClBtE,OAAO1F,QAAQ,QAAS,IACvBA,QAAQ,IAAK,KAAKA,QAAQ,IAAK,KAAKA,QAAQ,YAAa,SAASA,QAAQ,IAAK,QAC/EA,QAAQ,qBAAsB,SAExB,IAAIoa,KAAKpQ,IASX,SAASuQ,EAAWC,EAAMC,GA6B/B,IApBA,IAAIC,EAAQF,EAAO,EAAI,EAAI,EAavBG,EALJH,EAAOI,KAAKC,IAAIL,GAUZM,EAAM,EAEHN,GAAQN,EAAUY,IAAQA,EAAMZ,EAAUhQ,OAAQ4Q,IACvDN,GAAQN,EAAUY,GAiBpB,OAHAN,EAAOI,KAAKG,MAAMP,KAEE,KADpBM,GAAO,GACiB,EAAI,KAAIA,GAAO,GAChCL,EAAWD,EAAMM,EAAKH,GAAUD,GAAO1a,QAAQ,KAAMwa,EAAKQ,YAS5D,SAASC,EAAQC,EAAMC,GAE5B,SADcA,EAAehB,EAAOgB,GAAgB,IAAIf,OACpCD,EAAOe,IAAS,IC9E/B,IAAIpb,EAAS,SAAUob,EAAMnB,EAAQqB,GAI1C,OAAOb,EAFGU,EAAQC,EAAME,GAAQA,EAAKD,cAEdlB,EAAUF,KCNnCD,EAAS,SLNM,cACb,GAAY,IAARgB,EAAW,MAAO,CAAC,WAAY,aACnC,IAAIO,EAAO1B,EAAMiB,KAAKG,MAAMD,EAAM,IAElC,OADIN,EAAO,IAAGa,GAAQ,KACf,CAACb,EAAO,IAAMa,EAAO,OAAQ,MAAQb,EAAO,IAAMa,MKG3DvB,EAAS,SJPM,cACb,GAAY,IAARgB,EAAW,MAAO,CAAC,eAAM,sBAC7B,IAAIO,EAAOzB,KAASkB,EAAM,IAC1B,MAAO,CAACN,EAAO,IAAMa,EAAO,SAAUb,EAAO,IAAMa,EAAO,c,uBKJ5D,IAAIC,EAAW,EAAQ,QACnBC,EAAiB,EAAQ,QAG7BnR,EAAOC,QAAU,SAAUmR,EAAOC,EAAOC,GACvC,IAAIC,EAAWC,EAUf,OAPEL,GAE0C,mBAAlCI,EAAYF,EAAMI,cAC1BF,IAAcD,GACdJ,EAASM,EAAqBD,EAAUrY,YACxCsY,IAAuBF,EAAQpY,WAC/BiY,EAAeC,EAAOI,GACjBJ,I,wBCNA,SAAUxe,GACjB,aAEA,SAAS8e,EAAuBvc,EAAQoU,EAAe9O,GACrD,IASIkX,EAAY,IAMhB,OAJIxc,EAAS,KAAO,IAAMA,GAAU,KAAOA,EAAS,MAAQ,KAC1Dwc,EAAY,QAGPxc,EAASwc,EAfH,CACXrd,GAAI,UACJE,GAAI,SACJE,GAAI,MACJE,GAAI,OACJoY,GAAI,yBACJlY,GAAI,OACJE,GAAI,OAQ6ByF,GAG5B7H,EAAOC,aAAa,KAAM,CACjCC,OAAQ,oGAAoGC,MAAM,KAClHC,YAAa,+DAA+DD,MAAM,KAClF6W,kBAAkB,EAClB3W,SAAU,yEAAkDF,MAAM,KAClEG,cAAe,iCAA8BH,MAAM,KACnDI,YAAa,0BAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,cACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,uBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,qBACNC,EAAG,oBACHC,GAAIod,EACJnd,EAAG,WACHC,GAAIkd,EACJjd,EAAG,aACHC,GAAIgd,EACJ/c,EAAG,OACHC,GAAI8c,EACJ3E,EAAG,gCACHC,GAAI0E,EACJ7c,EAAG,cACHC,GAAI4c,EACJ3c,EAAG,QACHC,GAAI0c,GAENrc,KAAM,CACJC,IAAK,EAELC,IAAK,KAnEuFC,CAAQ,EAAQ,U,uBCRlH,IAAI4X,EAAc,EAAQ,QACtBwE,EAAuB,EAAQ,QAC/BC,EAAW,EAAQ,QACnBvE,EAAa,EAAQ,QAIzBtN,EAAOC,QAAUmN,EAAc9U,OAAOwZ,iBAAmB,SAA0BC,EAAGC,GACpFH,EAASE,GAKT,IAJA,IAGItX,EAHA+T,EAAOlB,EAAW0E,GAClBlS,EAAS0O,EAAK1O,OACdD,EAAQ,EAELC,EAASD,GAAO+R,EAAqBtD,EAAEyD,EAAGtX,EAAM+T,EAAK3O,KAAUmS,EAAWvX,IACjF,OAAOsX,I,wBCLA,SAAUnf,GACjB,aAEA,SAASwW,EAAO6I,EAAMtI,GACpB,IAAIuI,EAAQD,EAAKlf,MAAM,KACvB,OAAO4W,EAAM,KAAO,GAAKA,EAAM,MAAQ,GAAKuI,EAAM,GAAKvI,EAAM,IAAM,GAAKA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,KAAO,IAAMuI,EAAM,GAAKA,EAAM,GAGlJ,SAASR,EAAuBvc,EAAQoU,EAAe9O,GAWrD,MAAY,MAARA,EACK8O,EAAgB,uCAAW,uCAE3BpU,EAAS,IAAMiU,EAbX,CACX9U,GAAIiV,EAAgB,6HAA2B,6HAC/C/U,GAAI+U,EAAgB,2GAAwB,2GAC5C7U,GAAI,6EACJE,GAAI,uEACJoY,GAAI,iHACJlY,GAAI,iHACJE,GAAI,kEAMgCyF,IAAOtF,GAI/C,IAAIiV,EAAc,CAAC,uBAAS,uBAAS,uBAAS,uBAAS,+BAAY,uBAAS,uBAAS,uBAAS,uBAAS,uBAAS,uBAAS,wBAIhHxX,EAAOC,aAAa,KAAM,CACjCC,OAAQ,CACN4C,OAAQ,kbAAoF3C,MAAM,KAClG0C,WAAY,saAAkF1C,MAAM,MAEtGC,YAAa,CAEX0C,OAAQ,6QAAgE3C,MAAM,KAC9E0C,WAAY,kRAAgE1C,MAAM,MAEpFE,SAAU,CACRwC,WAAY,mVAAgE1C,MAAM,KAClF2C,OAAQ,mVAAgE3C,MAAM,KAC9E4C,SAAU,0JAEZzC,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,6FAAuBJ,MAAM,KAC1CqX,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAElBC,YAAa,+wBAEbE,iBAAkB,+wBAElBC,kBAAmB,wgBAEnBC,uBAAwB,8TACxBrX,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,4BACLC,KAAM,mCAERC,SAAU,CACRC,QAAS,0DACTC,QAAS,oDACTE,QAAS,8CACTD,SAAU,SAAUqe,GAClB,GAAIA,EAAI9c,SAAWyC,KAAKzC,OAgBtB,OAAmB,IAAfyC,KAAK0J,MACA,mCAEA,6BAlBT,OAAQ1J,KAAK0J,OACX,KAAK,EACH,MAAO,oFAET,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,oFAET,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,sFAUfxN,SAAU,SAAUme,GAClB,GAAIA,EAAI9c,SAAWyC,KAAKzC,OAgBtB,OAAmB,IAAfyC,KAAK0J,MACA,mCAEA,6BAlBT,OAAQ1J,KAAK0J,OACX,KAAK,EACH,MAAO,wEAET,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,wEAET,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,0EAUfvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,oCACRC,KAAM,oCACNC,EAAG,8FACHC,GAAIod,EACJnd,EAAGmd,EACHld,GAAIkd,EACJjd,EAAG,qBACHC,GAAIgd,EACJ/c,EAAG,2BACHC,GAAI8c,EACJ3E,EAAG,uCACHC,GAAI0E,EACJ7c,EAAG,iCACHC,GAAI4c,EACJ3c,EAAG,qBACHC,GAAI0c,GAEN3Q,cAAe,6GACfC,KAAM,SAAUpB,GACd,MAAO,8DAAiB5J,KAAK4J,IAE/BqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,2BACEA,EAAO,GACT,2BACEA,EAAO,GACT,qBAEA,wCAGXjM,uBAAwB,uCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAO9X,EAAS,UAElB,IAAK,IACH,OAAOA,EAAS,gBAElB,IAAK,IACL,IAAK,IACH,OAAOA,EAAS,UAElB,QACE,OAAOA,IAGbE,KAAM,CACJC,IAAK,EAELC,IAAK,KAhLuFC,CAAQ,EAAQ,U,oCCNlH,IAAI4c,EAAM9Z,OAAOY,UAAUmZ,eAU3B,SAASC,EAAO1S,GACd,IACE,OAAO2S,mBAAmB3S,EAAMhK,QAAQ,MAAO,MAC/C,MAAO4c,GACP,OAAO,MAYX,SAASC,EAAO7S,GACd,IACE,OAAO8S,mBAAmB9S,GAC1B,MAAO4S,GACP,OAAO,MAkFXvS,EAAQ0S,UAtCR,SAAwBC,EAAKC,GAC3BA,EAASA,GAAU,GACnB,IACI5K,EACAxN,EAFAqY,EAAQ,GAQZ,IAAKrY,IAFD,kBAAoBoY,IAAQA,EAAS,KAE7BD,EACV,GAAIR,EAAIva,KAAK+a,EAAKnY,GAAM,CAgBtB,IAfAwN,EAAQ2K,EAAInY,KAKa,OAAVwN,GA1FjB8K,YA0FmC9K,IAAmBgI,MAAMhI,KACxDA,EAAQ,IAGVxN,EAAMgY,EAAOhY,GACbwN,EAAQwK,EAAOxK,GAKH,OAARxN,GAA0B,OAAVwN,EAAgB,SACpC6K,EAAMhN,KAAKrL,EAAM,IAAMwN,GAI3B,OAAO6K,EAAMhT,OAAS+S,EAASC,EAAM5E,KAAK,KAAO,IAOnDjO,EAAQ+S,MAvER,SAAqBC,GAKnB,IAJA,IAEIC,EAFAC,EAAS,uBACT1J,EAAS,GAGNyJ,EAAOC,EAAO9U,KAAK4U,IAAQ,CAChC,IAAIxY,EAAM6X,EAAOY,EAAK,IAClBjL,EAAQqK,EAAOY,EAAK,IASZ,OAARzY,GAA0B,OAAVwN,GAAkBxN,KAAOgP,IAC7CA,EAAOhP,GAAOwN,GAGhB,OAAOwB,I,kGC1CLxT,EAAa,CACfmd,QAAS,sBACTld,QAAS,sBACTmd,YAAa,0BACbC,MAAO,oBACPnd,KAAM,mBACNC,QAAS,sBACTmd,KAAM,cAEJld,EAAU,CACZmd,qBAAsB,0BACtBC,YAAa,mBACbC,WAAY,mBACZC,eAAgB,qBCTd,EAEJ,SAAUlc,GAGR,SAASmc,EAA+Bjc,GACtC,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI8b,EAA+B7b,gBAAiBJ,KAAaG,KAIjH,OAFAF,EAAMK,gBAAkB,EACxBL,EAAMM,gBAAkB,EACjBN,EAkNT,OAzNA,YAAUgc,EAAgCnc,GAU1Ca,OAAOC,eAAeqb,EAAgC,UAAW,CAC/Dpb,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqb,EAAgC,aAAc,CAClEpb,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqb,EAAgC,iBAAkB,CACtEpb,IAAK,WAEH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb4a,SAAU,WACR,OAAO,GAETC,gBAAiB,WACf,OAAO,GAETC,YAAa,aAGbC,WAAY,aAGZC,UAAW,aAGXC,aAAc,aAGdC,0BAA2B,aAG3BC,UAAW,aAGXC,aAAc,eAKlB5b,YAAY,EACZC,cAAc,IAGhBkb,EAA+B1a,UAAUC,QAAU,WAC7CrB,KAAKG,iBACPoB,qBAAqBvB,KAAKG,iBAGxBH,KAAKI,iBACPoB,aAAaxB,KAAKI,kBAQtB0b,EAA+B1a,UAAUK,KAAO,WAC9C,IAAI3B,EAAQE,KAERA,KAAKiC,UAAYjC,KAAKwc,aAAexc,KAAKyc,cAI9Czc,KAAKH,QAAQgB,SAAS1C,EAAWE,MACjC2B,KAAKH,QAAQgB,SAAS1C,EAAWmd,SAEjCtb,KAAK0B,wBAAuB,WAC1B5B,EAAMD,QAAQgB,SAAS1C,EAAWG,YAEpC0B,KAAKH,QAAQsc,cAOfL,EAA+B1a,UAAUW,MAAQ,YAC1C/B,KAAKiC,UAAYjC,KAAKwc,aAAexc,KAAKyc,aAI/Czc,KAAKH,QAAQgB,SAAS1C,EAAWC,UAQnC0d,EAA+B1a,UAAUa,OAAS,WAChD,OAAOjC,KAAKH,QAAQkc,SAAS5d,EAAWE,OAQ1Cyd,EAA+B1a,UAAUob,UAAY,WACnD,OAAOxc,KAAKH,QAAQkc,SAAS5d,EAAWG,UAAY0B,KAAKH,QAAQkc,SAAS5d,EAAWmd,UAQvFQ,EAA+B1a,UAAUqb,UAAY,WACnD,OAAOzc,KAAKH,QAAQkc,SAAS5d,EAAWC,UAO1C0d,EAA+B1a,UAAUsb,cAAgB,SAAUha,GACjE,IAAIE,EAAUF,EAAIE,SAEK,WADbF,EAAIC,KACiC,KAAZC,IAGjC5C,KAAK+B,SAQT+Z,EAA+B1a,UAAUub,oBAAsB,SAAUja,GACvE,IAAIpE,EAAUH,EAAWG,QACrBF,EAAUD,EAAWC,QACrBC,EAAOF,EAAWE,KAClBid,EAAUnd,EAAWmd,QACrBG,EAAOtd,EAAWsd,KAEFzb,KAAK4c,WAAWla,EAAIkC,SAAW5E,KAAKH,QAAQmc,gBAAgBtZ,EAAIkC,OAAQ6W,KAMxFzb,KAAKyc,aACPzc,KAAKH,QAAQsB,YAAY9C,GACzB2B,KAAK6c,UACL7c,KAAKH,QAAQuc,eACbpc,KAAKH,QAAQoc,gBAEbjc,KAAKH,QAAQwc,4BACbrc,KAAK8c,UACL9c,KAAKH,QAAQqc,cAGflc,KAAKH,QAAQsB,YAAYma,GACzBtb,KAAKH,QAAQsB,YAAY7C,GACzB0B,KAAKH,QAAQsB,YAAY/C,KAO3B0d,EAA+B1a,UAAU0b,QAAU,aAOnDhB,EAA+B1a,UAAUyb,QAAU,aAOnDf,EAA+B1a,UAAUM,uBAAyB,SAAUsB,GAC1E,IAAIlD,EAAQE,KAEZuB,qBAAqBvB,KAAKG,iBAC1BH,KAAKG,gBAAkB8C,uBAAsB,WAC3CnD,EAAMK,gBAAkB,EACxBqB,aAAa1B,EAAMM,iBACnBN,EAAMM,gBAAkBuB,WAAWqB,EAAU,OAIjD8Y,EAA+B1a,UAAUwb,WAAa,SAAUG,GAE9D,OAAO/W,QAAQ+W,EAAQ1X,YAGlByW,EA1NT,CA2NE,M,uBCvPF,IAAIxG,EAAc,EAAQ,QACtBwE,EAAuB,EAAQ,QAC/BkD,EAA2B,EAAQ,QAEvC9U,EAAOC,QAAUmN,EAAc,SAAU2H,EAAQta,EAAKwN,GACpD,OAAO2J,EAAqBtD,EAAEyG,EAAQta,EAAKqa,EAAyB,EAAG7M,KACrE,SAAU8M,EAAQta,EAAKwN,GAEzB,OADA8M,EAAOta,GAAOwN,EACP8M,I,wBCDA,SAAUniB,GACjB,aAEA,IAAIoiB,EAAiB,8DAA8DjiB,MAAM,KACrFC,EAAc,kDAAkDD,MAAM,KACtEqX,EAAc,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAClHC,EAAc,mLACPzX,EAAOC,aAAa,QAAS,CACtCC,OAAQ,2FAA2FC,MAAM,KACzGC,YAAa,SAAUuB,EAAGmB,GACxB,OAAKnB,EAEM,QAAQyB,KAAKN,GACf1C,EAAYuB,EAAE+V,SAEd0K,EAAezgB,EAAE+V,SAJjB0K,GAOX3K,YAAaA,EACbE,iBAAkBF,EAClBG,kBAAmB,+FACnBC,uBAAwB,0FACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,6DAAuDF,MAAM,KACvEG,cAAe,2CAAqCH,MAAM,KAC1DI,YAAa,0BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAERC,SAAU,CACRC,QAAS,WACP,MAAO,aAAgC,IAAjBkE,KAAKiS,QAAgB,IAAM,IAAM,QAEzDlW,QAAS,WACP,MAAO,mBAAmC,IAAjBiE,KAAKiS,QAAgB,IAAM,IAAM,QAE5DjW,SAAU,WACR,MAAO,cAAiC,IAAjBgE,KAAKiS,QAAgB,IAAM,IAAM,QAE1DhW,QAAS,WACP,MAAO,cAAiC,IAAjB+D,KAAKiS,QAAgB,IAAM,IAAM,QAE1D/V,SAAU,WACR,MAAO,0BAA6C,IAAjB8D,KAAKiS,QAAgB,IAAM,IAAM,QAEtE9V,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,YACHC,GAAI,aACJmY,EAAG,aACHC,GAAI,aACJnY,EAAG,SACHC,GAAI,WACJC,EAAG,YACHC,GAAI,cAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,GAGP+Z,YAAa,sBAlFiF9Z,CAAQ,EAAQ,U,oCCLlH,IAAIyf,EAAc,EAAQ,QACtBrD,EAAuB,EAAQ,QAC/BkD,EAA2B,EAAQ,QAEvC9U,EAAOC,QAAU,SAAU8U,EAAQta,EAAKwN,GACtC,IAAIiN,EAAcD,EAAYxa,GAC1Bya,KAAeH,EAAQnD,EAAqBtD,EAAEyG,EAAQG,EAAaJ,EAAyB,EAAG7M,IAC9F8M,EAAOG,GAAejN,I,oCCI7BjI,EAAOC,QAAU,SAAsBkV,EAAOC,EAAQC,EAAMC,EAASC,GA8BnE,OA7BAJ,EAAMC,OAASA,EAEXC,IACFF,EAAME,KAAOA,GAGfF,EAAMG,QAAUA,EAChBH,EAAMI,SAAWA,EACjBJ,EAAMK,cAAe,EAErBL,EAAMM,OAAS,WACb,MAAO,CAELC,QAAS5d,KAAK4d,QACdC,KAAM7d,KAAK6d,KAEXC,YAAa9d,KAAK8d,YAClBzgB,OAAQ2C,KAAK3C,OAEb0gB,SAAU/d,KAAK+d,SACfC,WAAYhe,KAAKge,WACjBC,aAAcje,KAAKie,aACnBC,MAAOle,KAAKke,MAEZZ,OAAQtd,KAAKsd,OACbC,KAAMvd,KAAKud,OAIRF,I,uBCxCwDnV,EAAOC,QAC/D,WACP,aAcA,IAAIgW,EAAW,WAWb,OAVAA,EAAW3d,OAAOkQ,QAAU,SAAkB0N,GAC5C,IAAK,IAAI7hB,EAAG6K,EAAI,EAAGmK,EAAIzN,UAAUkE,OAAQZ,EAAImK,EAAGnK,IAG9C,IAAK,IAAIiX,KAFT9hB,EAAIuH,UAAUsD,GAEO5G,OAAOY,UAAUmZ,eAAexa,KAAKxD,EAAG8hB,KAAID,EAAEC,GAAK9hB,EAAE8hB,IAG5E,OAAOD,IAGOva,MAAM7D,KAAM8D,YAG9B,SAASwa,IACP,IAAK,IAAI/hB,EAAI,EAAG6K,EAAI,EAAGmX,EAAKza,UAAUkE,OAAQZ,EAAImX,EAAInX,IAAK7K,GAAKuH,UAAUsD,GAAGY,OAExE,IAAIwW,EAAIC,MAAMliB,GAAImiB,EAAI,EAA3B,IAA8BtX,EAAI,EAAGA,EAAImX,EAAInX,IAAK,IAAK,IAAIuX,EAAI7a,UAAUsD,GAAIwP,EAAI,EAAGgI,EAAKD,EAAE3W,OAAQ4O,EAAIgI,EAAIhI,IAAK8H,IAAKF,EAAEE,GAAKC,EAAE/H,GAE9H,OAAO4H,EAGT,IAAIK,EAAQ,CAAC,WAAY,UAAW,cAAe,YAAa,YAAa,gBAAiB,SAAU,gBAAiB,UAAW,gBAAiB,eAAgB,yBACjKC,EAAW,CACbC,SAAU,GACVC,QAAS,GACTC,YAAY,EACZC,qBAAqB,EACrBC,UAAW,SACXC,UAAU,EACVC,cAAe,qBACfC,QAA2B,kBAAXrI,SAAuE,IAAhDA,OAAOsI,UAAUC,UAAU7X,QAAQ,QAC1E8X,eAAgB,SAChBC,qBAAqB,EACrBC,YAAY,EACZC,eAAe,EACfC,YAAa,KACbC,WAAY,QACZC,YAAa,GACbC,cAAe,EACfC,eAAgB,EAChBC,QAAS,GACTC,eAAe,EACfC,OAAQ,GACRC,eAAe,EACfC,YAAY,EACZC,aAAc,SAAUlJ,GACtB,MAA0B,qBAAZmJ,cAA2B,GAE3CC,QAAS,SAAUC,GACjB,IAAI1H,EAAO,IAAId,KAAKwI,EAAUC,WAC9B3H,EAAK4H,SAAS,EAAG,EAAG,EAAG,GAEvB5H,EAAK6H,QAAQ7H,EAAK8H,UAAY,GAAK9H,EAAK+H,SAAW,GAAK,GAExD,IAAIC,EAAQ,IAAI9I,KAAKc,EAAKiI,cAAe,EAAG,GAE5C,OAAO,EAAIvI,KAAKwI,QAAQlI,EAAK2H,UAAYK,EAAML,WAAa,MAAW,GAAKK,EAAMD,SAAW,GAAK,GAAK,IAEzGI,cAAe,EACfC,qBAAsB,GACtBC,QAAQ,EACRxJ,OAAQ,UACRyJ,gBAAiB,EACjBC,KAAM,SACNC,kBAAmB,WACnBC,UAAW,yOACXC,YAAY,EACZrH,IAAK,IAAInC,KACTyJ,SAAU,GACVC,QAAS,GACTC,YAAa,GACbC,UAAW,GACXC,UAAW,GACXC,cAAe,GACfC,OAAQ,GACRC,cAAe,GACfC,QAAS,GACTC,cAAe,GACfC,aAAc,GACdC,sBAAuB,GACvBC,QAAS,GACTC,SAAU,OACVC,qBAAiBzb,EACjB0b,UAAW,uOACXC,uBAAuB,EACvBC,WAAY,EACZC,QAAQ,EACRC,WAAW,EACXC,aAAa,EACbC,MAAM,GAEJC,EAAU,CACZ9nB,SAAU,CACR+nB,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtDC,SAAU,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,aAE/EnoB,OAAQ,CACNkoB,UAAW,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACzFC,SAAU,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,aAE3HC,YAAa,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAC1DC,eAAgB,EAChBjmB,QAAS,SAAUkmB,GACjB,IAAI/mB,EAAI+mB,EAAM,IACd,GAAI/mB,EAAI,GAAKA,EAAI,GAAI,MAAO,KAE5B,OAAQA,EAAI,IACV,KAAK,EACH,MAAO,KAET,KAAK,EACH,MAAO,KAET,KAAK,EACH,MAAO,KAET,QACE,MAAO,OAGbgnB,eAAgB,OAChBC,iBAAkB,KAClBC,YAAa,sBACbC,YAAa,kBACbC,KAAM,CAAC,KAAM,MACbC,cAAe,OACfC,eAAgB,QAChBC,cAAe,OACfC,gBAAiB,SACjBjB,WAAW,GAGTkB,EAAM,SAAU3mB,EAAQ2K,GAK1B,YAJe,IAAXA,IACFA,EAAS,IAGH,MAAQ3K,GAAQuK,OAAgB,EAAVI,IAG5Bic,EAAM,SAAUC,GAClB,OAAgB,IAATA,EAAgB,EAAI,GAK7B,SAASC,EAASrM,EAAMsM,EAAMC,GAK5B,IAAIC,EACJ,YALkB,IAAdD,IACFA,GAAY,GAIP,WACL,IAAIE,EAAUvkB,KACVwkB,EAAO1gB,UACC,OAAZwgB,GAAoB9iB,aAAa8iB,GACjCA,EAAUrN,OAAOtV,YAAW,WAC1B2iB,EAAU,KACLD,GAAWvM,EAAKjU,MAAM0gB,EAASC,KACnCJ,GACCC,IAAcC,GAASxM,EAAKjU,MAAM0gB,EAASC,IAInD,IAAIC,EAAW,SAAU3J,GACvB,OAAOA,aAAe2D,MAAQ3D,EAAM,CAACA,IAGvC,SAAS4J,EAAYC,EAAMvf,EAAW8e,GACpC,IAAa,IAATA,EAAe,OAAOS,EAAKtf,UAAUC,IAAIF,GAC7Cuf,EAAKtf,UAAUG,OAAOJ,GAGxB,SAASwf,EAAcC,EAAKzf,EAAWwK,GACrC,IAAI8K,EAAIzD,OAAOG,SAASwN,cAAcC,GAKtC,OAJAzf,EAAYA,GAAa,GACzBwK,EAAUA,GAAW,GACrB8K,EAAEtV,UAAYA,OACE4B,IAAZ4I,IAAuB8K,EAAEnX,YAAcqM,GACpC8K,EAGT,SAASoK,EAAUC,GACjB,KAAOA,EAAKC,YAAYD,EAAKE,YAAYF,EAAKC,YAGhD,SAASE,EAAWH,EAAMI,GACxB,OAAIA,EAAUJ,GAAcA,EAAcA,EAAKK,WAAmBF,EAAWH,EAAKK,WAAYD,QAAxD,EAIxC,SAASE,EAAkBC,EAAgBpM,GACzC,IAAIqM,EAAUX,EAAc,MAAO,mBAC/BY,EAAWZ,EAAc,QAAS,YAAcU,GAChDG,EAAUb,EAAc,OAAQ,WAChCc,EAAYd,EAAc,OAAQ,aAStC,IAPiD,IAA7CrF,UAAUC,UAAU7X,QAAQ,YAC9B6d,EAASxR,KAAO,UAEhBwR,EAASxR,KAAO,OAChBwR,EAASG,QAAU,aAGR3e,IAATkS,EAAoB,IAAK,IAAIvW,KAAOuW,EAAMsM,EAAS/hB,aAAad,EAAKuW,EAAKvW,IAI9E,OAHA4iB,EAAQK,YAAYJ,GACpBD,EAAQK,YAAYH,GACpBF,EAAQK,YAAYF,GACbH,EAGT,SAASM,EAAevX,GACtB,IACE,MAAkC,oBAAvBA,EAAMwX,aACJxX,EAAMwX,eACL,GAGPxX,EAAM1J,OACb,MAAOyY,GACP,OAAO/O,EAAM1J,QAIjB,IAAImhB,EAAY,aAIZC,EAAa,SAAUC,EAAa/C,EAAWrL,GACjD,OAAOA,EAAO7c,OAAOkoB,EAAY,YAAc,YAAY+C,IAGzDC,EAAY,CACdC,EAAGJ,EACHK,EAAG,SAAUC,EAASC,EAAWzO,GAC/BwO,EAAQE,SAAS1O,EAAO7c,OAAOmoB,SAASxb,QAAQ2e,KAElDE,EAAG,SAAUH,EAASjd,GACpBid,EAAQzF,SAAS6F,WAAWrd,KAE9Bsd,EAAG,SAAUL,EAASjd,GACpBid,EAAQzF,SAAS6F,WAAWrd,KAE9Bud,EAAG,SAAUN,EAAS3c,GACpB2c,EAAQxF,QAAQ4F,WAAW/c,KAE7Bkd,EAAG,SAAUP,EAAS1C,EAAM9L,GAC1BwO,EAAQzF,SAASyF,EAAQQ,WAAa,GAAK,GAAK5C,EAAI,IAAI3d,OAAOuR,EAAO8L,KAAK,GAAI,KAAKzlB,KAAKylB,MAE3F5mB,EAAG,SAAUspB,EAASS,EAAYjP,GAChCwO,EAAQE,SAAS1O,EAAO7c,OAAOkoB,UAAUvb,QAAQmf,KAEnD1R,EAAG,SAAUiR,EAASU,GACpBV,EAAQW,WAAWP,WAAWM,KAEhCE,EAAG,SAAUC,EAAGC,GACd,OAAO,IAAIjP,KAA+B,IAA1BuO,WAAWU,KAE7BC,EAAG,SAAUf,EAASgB,EAASxP,GAC7B,IAAIyP,EAAalP,SAASiP,GACtBrO,EAAO,IAAId,KAAKmO,EAAQpF,cAAe,EAAG,EAAuB,GAAlBqG,EAAa,GAAQ,EAAG,EAAG,EAAG,GAEjF,OADAtO,EAAK6H,QAAQ7H,EAAK8H,UAAY9H,EAAK+H,SAAWlJ,EAAOwL,gBAC9CrK,GAETuO,EAAG,SAAUlB,EAASmB,GACpBnB,EAAQoB,YAAYhB,WAAWe,KAEjCE,EAAG,SAAUR,EAAGS,GACd,OAAO,IAAIzP,KAAKyP,IAElB9qB,EAAG,SAAUwpB,EAAS3c,GACpB2c,EAAQxF,QAAQ4F,WAAW/c,KAE7B/M,EAAG,SAAU0pB,EAASjd,GACpBid,EAAQzF,SAAS6F,WAAWrd,KAE9BhC,EAAG,SAAUif,EAASnU,GACpBmU,EAAQuB,WAAWnB,WAAWvU,KAEhC0E,EAAG,SAAUyP,EAAS3c,GACpB2c,EAAQxF,QAAQ4F,WAAW/c,KAE7Bme,EAAG9B,EACHtpB,EAAG,SAAU4pB,EAAS7T,GACpB6T,EAAQE,SAASE,WAAWjU,GAAS,IAEvCjB,EAAG,SAAU8U,EAAS7T,GACpB6T,EAAQE,SAASE,WAAWjU,GAAS,IAEvCjW,EAAG,SAAU8pB,EAASU,GACpBV,EAAQW,WAAWP,WAAWM,KAEhCe,EAAG,SAAUZ,EAAGa,GACd,OAAO,IAAI7P,KAAKuO,WAAWsB,KAE7B9S,EAAG8Q,EACH9oB,EAAG,SAAUopB,EAASmB,GACpBnB,EAAQoB,YAAY,IAAOhB,WAAWe,MAGtCQ,EAAa,CACf7B,EAAG,SACHC,EAAG,SACHI,EAAG,eACHE,EAAG,eACHC,EAAG,mBACHC,EAAG,GACH7pB,EAAG,SACHqY,EAAG,eACH6R,EAAG,OACHG,EAAG,eACHG,EAAG,WACHG,EAAG,OACH7qB,EAAG,eACHF,EAAG,eACHyK,EAAG,eACHwP,EAAG,eACHiR,EAAG,SACHprB,EAAG,eACH8U,EAAG,eACHhV,EAAG,eACHurB,EAAG,OACH7S,EAAG,eACHhY,EAAG,YAEDgrB,EAAU,CAEZP,EAAG,SAAU1O,GACX,OAAOA,EAAKkP,eAGd/B,EAAG,SAAUnN,EAAMnB,EAAQV,GACzB,OAAOU,EAAO1c,SAAS+nB,UAAU+E,EAAQhT,EAAE+D,EAAMnB,EAAQV,KAG3DiP,EAAG,SAAUpN,EAAMnB,EAAQV,GACzB,OAAO6O,EAAWiC,EAAQ1W,EAAEyH,EAAMnB,EAAQV,GAAW,GAAG,EAAOU,IAGjE2O,EAAG,SAAUxN,EAAMnB,EAAQV,GACzB,OAAO6M,EAAIiE,EAAQtrB,EAAEqc,EAAMnB,EAAQV,KAGrCuP,EAAG,SAAU1N,GACX,OAAOgL,EAAIhL,EAAK6N,aAGlBF,EAAG,SAAU3N,EAAMnB,GACjB,YAA0B7Q,IAAnB6Q,EAAOza,QAAwB4b,EAAK8H,UAAYjJ,EAAOza,QAAQ4b,EAAK8H,WAAa9H,EAAK8H,WAG/F8F,EAAG,SAAU5N,EAAMnB,GACjB,OAAOA,EAAO8L,KAAKM,EAAIjL,EAAK6N,WAAa,MAG3C9pB,EAAG,SAAUic,EAAMnB,GACjB,OAAOmO,EAAWhN,EAAKmP,YAAY,EAAMtQ,IAG3CzC,EAAG,SAAU4D,GACX,OAAOgL,EAAIhL,EAAKoP,eAGlBnB,EAAG,SAAUjO,GACX,OAAOA,EAAK2H,UAAY,KAE1ByG,EAAG,SAAUpO,EAAMkO,EAAG/P,GACpB,OAAOA,EAAQsJ,QAAQzH,IAGzBuO,EAAG,SAAUvO,GACX,OAAOgL,EAAIhL,EAAKiI,cAAe,IAGjCpkB,EAAG,SAAUmc,GACX,OAAOgL,EAAIhL,EAAK8H,YAGlBnkB,EAAG,SAAUqc,GACX,OAAOA,EAAK6N,WAAa,GAAK7N,EAAK6N,WAAa,GAAK,IAGvDzf,EAAG,SAAU4R,GACX,OAAOgL,EAAIhL,EAAKqP,eAGlBzR,EAAG,SAAUoC,GACX,OAAOA,EAAK8H,WAGd+G,EAAG,SAAU7O,EAAMnB,GACjB,OAAOA,EAAO1c,SAASgoB,SAASnK,EAAK+H,WAGvCtkB,EAAG,SAAUuc,GACX,OAAOgL,EAAIhL,EAAKmP,WAAa,IAG/B5W,EAAG,SAAUyH,GACX,OAAOA,EAAKmP,WAAa,GAG3B5rB,EAAG,SAAUyc,GACX,OAAOA,EAAKoP,cAGdN,EAAG,SAAU9O,GACX,OAAOA,EAAK2H,WAGd1L,EAAG,SAAU+D,GACX,OAAOA,EAAK+H,UAGd9jB,EAAG,SAAU+b,GACX,OAAOvS,OAAOuS,EAAKiI,eAAeqH,UAAU,KAI5CC,EAAsB,SAAUnb,GAClC,IAAIob,EAAKpb,EAAGkQ,OACRA,OAAgB,IAAPkL,EAAgB1J,EAAW0J,EACpCC,EAAKrb,EAAGsb,KACRA,OAAc,IAAPD,EAAgBxF,EAAUwF,EACjCE,EAAKvb,EAAGwb,SACRA,OAAkB,IAAPD,GAAwBA,EACvC,OAAO,SAAUtC,EAASwC,EAAMC,GAC9B,IAAIjR,EAASiR,GAAkBJ,EAE/B,YAA0B1hB,IAAtBsW,EAAOyL,YAA6BH,EAIjCC,EAAK5tB,MAAM,IAAI+tB,KAAI,SAAUC,EAAG7hB,EAAG8hB,GACxC,OAAOjB,EAAQgB,IAAqB,OAAfC,EAAI9hB,EAAI,GAAc6gB,EAAQgB,GAAG5C,EAASxO,EAAQyF,GAAgB,OAAN2L,EAAaA,EAAI,MACjG7S,KAAK,IALCkH,EAAOyL,WAAW1C,EAASwC,EAAMhR,KAS1CsR,EAAmB,SAAU/b,GAC/B,IAAIob,EAAKpb,EAAGkQ,OACRA,OAAgB,IAAPkL,EAAgB1J,EAAW0J,EACpCC,EAAKrb,EAAGsb,KACRA,OAAc,IAAPD,EAAgBxF,EAAUwF,EACrC,OAAO,SAAUzP,EAAMoQ,EAAaC,EAAUC,GAC5C,GAAa,IAATtQ,GAAeA,EAAnB,CACA,IACIuQ,EADA1R,EAASyR,GAAgBZ,EAEzBc,EAAWxQ,EACf,GAAIA,aAAgBd,KAAMqR,EAAa,IAAIrR,KAAKc,EAAK2H,gBAAgB,GAAoB,kBAAT3H,QAAsChS,IAAjBgS,EAAKyQ,QAExGF,EAAa,IAAIrR,KAAKc,QAAW,GAAoB,kBAATA,EAAmB,CAE/D,IAAIpb,EAASwrB,IAAgB9L,GAAUwB,GAAUgB,WAC7C4J,EAAUjjB,OAAOuS,GAAMxV,OAE3B,GAAgB,UAAZkmB,EACFH,EAAa,IAAIrR,KACjBmR,GAAW,OACN,GAAI,KAAKnrB,KAAKwrB,IAAY,OAAOxrB,KAAKwrB,GAC3CH,EAAa,IAAIrR,KAAKc,QAAW,GAAIsE,GAAUA,EAAOqM,UAAWJ,EAAajM,EAAOqM,UAAU3Q,EAAMpb,OAAa,CAClH2rB,EAAcjM,GAAWA,EAAOoE,WAAoE,IAAIxJ,MAAK,IAAIA,MAAO0I,SAAS,EAAG,EAAG,EAAG,IAA7F,IAAI1I,MAAK,IAAIA,MAAO+I,cAAe,EAAG,EAAG,EAAG,EAAG,EAAG,GAI/F,IAHA,IAAI2I,OAAU,EACVC,EAAM,GAEDziB,EAAI,EAAG0iB,EAAa,EAAGC,EAAW,GAAI3iB,EAAIxJ,EAAOoK,OAAQZ,IAAK,CACrE,IAAI4iB,EAAUpsB,EAAOwJ,GACjB6iB,EAA0B,OAAZD,EACdE,EAA4B,OAAlBtsB,EAAOwJ,EAAI,IAAe6iB,EAExC,GAAIjC,EAAWgC,KAAaE,EAAS,CACnCH,GAAY/B,EAAWgC,GACvB,IAAI7iB,EAAQ,IAAIb,OAAOyjB,GAAUxjB,KAAKyS,GAElC7R,IAAUyiB,GAAU,IACtBC,EAAgB,MAAZG,EAAkB,OAAS,WAAW,CACxCG,GAAIjE,EAAU8D,GACdI,IAAKjjB,IAAQ2iB,UAGPG,IAAaF,GAAY,KAGrCF,EAAI7Z,SAAQ,SAAU5C,GACpB,IAAI+c,EAAK/c,EAAG+c,GACRC,EAAMhd,EAAGgd,IACb,OAAOb,EAAaY,EAAGZ,EAAYa,EAAKvS,IAAW0R,KAIvDA,EAAaK,EAAUL,OAAaviB,GAKxC,GAAMuiB,aAAsBrR,OAASC,MAAMoR,EAAW5I,WAMtD,OADiB,IAAb0I,GAAmBE,EAAW3I,SAAS,EAAG,EAAG,EAAG,GAC7C2I,EALLjM,EAAOiD,aAAa,IAAIle,MAAM,0BAA4BmnB,OAahE,SAASa,EAAaC,EAAOC,EAAOlB,GAKlC,YAJiB,IAAbA,IACFA,GAAW,IAGI,IAAbA,EACK,IAAInR,KAAKoS,EAAM3J,WAAWC,SAAS,EAAG,EAAG,EAAG,GAAK,IAAI1I,KAAKqS,EAAM5J,WAAWC,SAAS,EAAG,EAAG,EAAG,GAG/F0J,EAAM3J,UAAY4J,EAAM5J,UAGjC,IAAI6J,EAAY,SAAUC,EAAIC,EAAKC,GACjC,OAAOF,EAAK/R,KAAKkS,IAAIF,EAAKC,IAAQF,EAAK/R,KAAKmS,IAAIH,EAAKC,IAGnDG,EAAW,CACbC,IAAK,OAGsB,oBAAlBvqB,OAAOkQ,SAChBlQ,OAAOkQ,OAAS,SAAU9L,GAGxB,IAFA,IAAI4f,EAAO,GAEFwG,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtCxG,EAAKwG,EAAK,GAAKlnB,UAAUknB,GAG3B,IAAKpmB,EACH,MAAMqmB,UAAU,8CAWlB,IARA,IAAIC,EAAU,SAAU1jB,GAClBA,GACFhH,OAAOkW,KAAKlP,GAAQwI,SAAQ,SAAUrN,GACpC,OAAOiC,EAAOjC,GAAO6E,EAAO7E,OAKzByK,EAAK,EAAG+d,EAAS3G,EAAMpX,EAAK+d,EAAOnjB,OAAQoF,IAGlD8d,EAFaC,EAAO/d,IAKtB,OAAOxI,IAIX,IAAIwmB,EAAsB,IAE1B,SAASC,EAAkBtO,EAASuO,GAClC,IAAIC,EAAO,CACTjO,OAAQa,EAASA,EAAS,GAAIW,GAAW0M,EAAUC,eACnD/C,KAAMzF,GA0BR,SAASyI,IACPH,EAAKI,MAAQ,CACXC,eAAgB,SAAUpZ,EAAOqZ,GAS/B,YARc,IAAVrZ,IACFA,EAAQ+Y,EAAKO,mBAGJ,IAAPD,IACFA,EAAKN,EAAKQ,aAGE,IAAVvZ,IAAgBqZ,EAAK,IAAM,GAAKA,EAAK,MAAQ,GAAKA,EAAK,MAAQ,GAAW,GACvEN,EAAK7C,KAAKtF,YAAY5Q,KAKnC,SAASwZ,IACPT,EAAKxO,QAAUwO,EAAKzjB,MAAQiV,EAC5BwO,EAAKtpB,QAAS,EACdgqB,KACAC,KACAC,KACAC,KACAV,IACKH,EAAK3C,UAAUyD,IACpBC,KAEIf,EAAKgB,cAAcvkB,QAAUujB,EAAKjO,OAAOoE,cACvC6J,EAAKjO,OAAOgD,YACdkM,EAAiBjB,EAAKjO,OAAOoE,WAAa6J,EAAKkB,uBAAyBlB,EAAKjO,OAAOoP,aAAU1lB,GAGhG2lB,IAAY,IAGdC,IACA,IAAIC,EAAW,iCAAiC3uB,KAAKqhB,UAAUC,YAQ1D+L,EAAK3C,UAAYiE,GACpBC,KAGFC,GAAa,WAGf,SAASC,EAAe7C,GACtB,OAAOA,EAAG3V,KAAK+W,GAGjB,SAASqB,IACP,IAAItP,EAASiO,EAAKjO,QAES,IAAvBA,EAAOyF,aAA+C,IAAtBzF,EAAOsF,aAEV,IAAtBtF,EAAOoE,YAChBzK,OAAOhU,uBAAsB,WAM3B,QAL+B+D,IAA3BukB,EAAK0B,oBACP1B,EAAK0B,kBAAkBtc,MAAMuc,WAAa,SAC1C3B,EAAK0B,kBAAkBtc,MAAMwc,QAAU,cAGdnmB,IAAvBukB,EAAK6B,cAA6B,CACpC,IAAIC,GAAa9B,EAAK+B,KAAKC,YAAc,GAAKjQ,EAAOsF,WACrD2I,EAAK6B,cAAczc,MAAM6c,MAAQH,EAAY,KAC7C9B,EAAK0B,kBAAkBtc,MAAM6c,MAAQH,QAAkCrmB,IAArBukB,EAAKkC,YAA4BlC,EAAKkC,YAAYF,YAAc,GAAK,KACvHhC,EAAK0B,kBAAkBtc,MAAM+c,eAAe,cAC5CnC,EAAK0B,kBAAkBtc,MAAM+c,eAAe,eAUpD,SAASC,EAAWjT,GAClB,GAAkC,IAA9B6Q,EAAKgB,cAAcvkB,OAAc,CACnC,IAAI4lB,OAAsC5mB,IAAxBukB,EAAKjO,OAAOoP,QAAwB,IAAIxU,KAAKqT,EAAKjO,OAAOoP,QAAQ/L,WAAa,IAAIzI,KAEhG9K,EAAKygB,IACL5b,EAAQ7E,EAAG6E,MACXC,EAAU9E,EAAG8E,QACb6U,EAAU3Z,EAAG2Z,QAEjB6G,EAAYhN,SAAS3O,EAAOC,EAAS6U,EAAS,GAC9CwE,EAAK1K,QAAQ+M,GAAa,QAGlB5mB,IAAN0T,GAA8B,SAAXA,EAAE1G,MACvB8Z,GAAYpT,GAGd,IAAIqT,EAAYxC,EAAKyC,OAAO7d,MAC5B8d,IACAtB,KAEIpB,EAAKyC,OAAO7d,QAAU4d,GACxBxC,EAAK2C,mBAIT,SAASC,EAAc/kB,EAAMua,GAC3B,OAAOva,EAAO,GAAK,GAAK6a,EAAIN,IAAS4H,EAAK7C,KAAK/E,KAAK,IAGtD,SAASyK,EAAchlB,GACrB,OAAQA,EAAO,IACb,KAAK,EACL,KAAK,GACH,OAAO,GAET,QACE,OAAOA,EAAO,IAQpB,SAAS6kB,IACP,QAAyBjnB,IAArBukB,EAAK8C,kBAAoDrnB,IAAvBukB,EAAK+C,cAA3C,CACA,IAAIrc,GAASmG,SAASmT,EAAK8C,YAAYle,MAAMvI,OAAO,GAAI,KAAO,GAAK,GAChEsK,GAAWkG,SAASmT,EAAK+C,cAAcne,MAAO,KAAO,GAAK,GAC1D4W,OAAiC/f,IAAvBukB,EAAKgD,eAA+BnW,SAASmT,EAAKgD,cAAcpe,MAAO,KAAO,GAAK,GAAK,OAEpFnJ,IAAdukB,EAAK5H,OACP1R,EAAQkc,EAAclc,EAAOsZ,EAAK5H,KAAKpgB,cAGzC,IAAIirB,OAAwCxnB,IAAxBukB,EAAKjO,OAAOmR,SAAyBlD,EAAKjO,OAAOoP,SAAWnB,EAAKmD,gBAAkBnD,EAAKkB,uBAAiG,IAAxEpC,EAAakB,EAAKkB,sBAAuBlB,EAAKjO,OAAOoP,SAAS,GAGnM,QAF4C1lB,IAAxBukB,EAAKjO,OAAOqR,SAAyBpD,EAAKjO,OAAOsR,SAAWrD,EAAKsD,gBAAkBtD,EAAKkB,uBAAiG,IAAxEpC,EAAakB,EAAKkB,sBAAuBlB,EAAKjO,OAAOsR,SAAS,GAEhL,CACjB,IAAID,OAAkC3nB,IAAxBukB,EAAKjO,OAAOqR,QAAwBpD,EAAKjO,OAAOqR,QAAUpD,EAAKjO,OAAOsR,SACpF3c,EAAQyG,KAAKkS,IAAI3Y,EAAO0c,EAAQ9H,eAClB8H,EAAQ9H,aAAY3U,EAAUwG,KAAKkS,IAAI1Y,EAASyc,EAAQtG,eAClEnW,IAAYyc,EAAQtG,eAActB,EAAUrO,KAAKkS,IAAI7D,EAAS4H,EAAQvG,eAG5E,GAAIoG,EAAe,CACjB,IAAIC,OAAkCznB,IAAxBukB,EAAKjO,OAAOmR,QAAwBlD,EAAKjO,OAAOmR,QAAUlD,EAAKjO,OAAOoP,SACpFza,EAAQyG,KAAKmS,IAAI5Y,EAAOwc,EAAQ5H,eAClB4H,EAAQ5H,aAAY3U,EAAUwG,KAAKmS,IAAI3Y,EAASuc,EAAQpG,eAClEnW,IAAYuc,EAAQpG,eAActB,EAAUrO,KAAKmS,IAAI9D,EAAS0H,EAAQrG,eAG5ExH,EAAS3O,EAAOC,EAAS6U,IAO3B,SAASyF,EAAiBnG,GACxB,IAAIrN,EAAOqN,GAAWkF,EAAKkB,sBAEvBzT,GACF4H,EAAS5H,EAAK6N,WAAY7N,EAAKqP,aAAcrP,EAAKoP,cAItD,SAASyF,IACP,IAAI5b,EAAQsZ,EAAKjO,OAAOyC,YACpB7N,EAAUqZ,EAAKjO,OAAO0C,cACtB+G,EAAUwE,EAAKjO,OAAO2C,eAE1B,QAA4BjZ,IAAxBukB,EAAKjO,OAAOoP,QAAuB,CACrC,IAAIoC,EAAQvD,EAAKjO,OAAOoP,QAAQ7F,WAC5BkI,EAAaxD,EAAKjO,OAAOoP,QAAQrE,cACrCpW,EAAQyG,KAAKmS,IAAI5Y,EAAO6c,MACVA,IAAO5c,EAAUwG,KAAKmS,IAAIkE,EAAY7c,IAChDD,IAAU6c,GAAS5c,IAAY6c,IAAYhI,EAAUwE,EAAKjO,OAAOoP,QAAQtE,cAG/E,QAA4BphB,IAAxBukB,EAAKjO,OAAOsR,QAAuB,CACrC,IAAII,EAAQzD,EAAKjO,OAAOsR,QAAQ/H,WAC5BoI,EAAa1D,EAAKjO,OAAOsR,QAAQvG,cACrCpW,EAAQyG,KAAKkS,IAAI3Y,EAAO+c,MACVA,IAAO9c,EAAUwG,KAAKkS,IAAIqE,EAAY/c,IAChDD,IAAU+c,GAAS9c,IAAY+c,IAAYlI,EAAUwE,EAAKjO,OAAOsR,QAAQxG,cAG/E,MAAO,CACLnW,MAAOA,EACPC,QAASA,EACT6U,QAASA,GAcb,SAASnG,EAAS3O,EAAOC,EAAS6U,QACG/f,IAA/BukB,EAAKkB,uBACPlB,EAAKkB,sBAAsB7L,SAAS3O,EAAQ,GAAIC,EAAS6U,GAAW,EAAG,GAGpEwE,EAAK8C,aAAgB9C,EAAK+C,gBAAiB/C,EAAK3C,WACrD2C,EAAK8C,YAAYle,MAAQ6T,EAAKuH,EAAKjO,OAAOwF,UAA6D7Q,GAAhD,GAAKA,GAAS,GAAK,GAAKgS,EAAIhS,EAAQ,KAAO,IAClGsZ,EAAK+C,cAAcne,MAAQ6T,EAAI9R,QACblL,IAAdukB,EAAK5H,OAAoB4H,EAAK5H,KAAKpgB,YAAcgoB,EAAK7C,KAAK/E,KAAKM,EAAIhS,GAAS,WACtDjL,IAAvBukB,EAAKgD,gBAA6BhD,EAAKgD,cAAcpe,MAAQ6T,EAAI+C,KAQvE,SAASmI,EAAY5gB,GACnB,IAAI6gB,EAActJ,EAAevX,GAC7BkZ,EAAOpP,SAAS+W,EAAYhf,QAAU7B,EAAM8gB,OAAS,IAErD5H,EAAO,IAAO,GAAmB,UAAdlZ,EAAM3L,MAAoB,QAAQzE,KAAKspB,EAAK1O,cACjEuW,GAAW7H,GAWf,SAAShT,EAAKuI,EAASzO,EAAO3I,EAASwR,GACrC,OAAI7I,aAAiBmQ,MAAcnQ,EAAM0B,SAAQ,SAAUsf,GACzD,OAAO9a,EAAKuI,EAASuS,EAAI3pB,EAASwR,MAEhC4F,aAAmB0B,MAAc1B,EAAQ/M,SAAQ,SAAUR,GAC7D,OAAOgF,EAAKhF,EAAIlB,EAAO3I,EAASwR,OAElC4F,EAAQjX,iBAAiBwI,EAAO3I,EAASwR,QAEzCoU,EAAKgE,UAAUvhB,KAAK,CAClB+O,QAASA,EACTzO,MAAOA,EACP3I,QAASA,EACTwR,QAASA,KAIb,SAASqY,IACPzC,GAAa,YAOf,SAAST,IASP,GARIf,EAAKjO,OAAO0F,MACd,CAAC,OAAQ,QAAS,SAAU,SAAShT,SAAQ,SAAUtN,GACrD+b,MAAMrd,UAAU4O,QAAQjQ,KAAKwrB,EAAKxO,QAAQlN,iBAAiB,SAAWnN,EAAM,MAAM,SAAU8M,GAC1F,OAAOgF,EAAKhF,EAAI,QAAS+b,EAAK7oB,UAKhC6oB,EAAK3C,SACP6G,SADF,CAKA,IAAIC,EAAkBvL,EAASwL,GAAU,IAuBzC,GAtBApE,EAAK2C,iBAAmB/J,EAASqL,EAAepE,GAC5CG,EAAK6B,gBAAkB,oBAAoBlvB,KAAKqhB,UAAUC,YAAYhL,EAAK+W,EAAK6B,cAAe,aAAa,SAAU1S,GAC/F,UAArB6Q,EAAKjO,OAAOiE,MAAkBqO,GAAY/J,EAAenL,OAE/DlG,EAAKyC,OAAOG,SAASyY,KAAM,UAAW9N,IACjCwJ,EAAKjO,OAAO+D,QAAWkK,EAAKjO,OAAOuF,QAAQrO,EAAKyC,OAAQ,SAAUyY,QAC3C1oB,IAAxBiQ,OAAO6Y,aAA4Btb,EAAKyC,OAAOG,SAAU,aAAc2Y,IAAoBvb,EAAKyC,OAAOG,SAAU,QAAS2Y,IAC9Hvb,EAAKyC,OAAOG,SAAU,QAAS2Y,GAAe,CAC5CC,SAAS,KAGoB,IAA3BzE,EAAKjO,OAAOqC,aACdnL,EAAK+W,EAAKyC,OAAQ,QAASzC,EAAK9pB,MAChC+S,EAAK+W,EAAKyC,OAAQ,QAASzC,EAAK9pB,YAGPuF,IAAvBukB,EAAK6B,gBACP5Y,EAAK+W,EAAK0E,SAAU,QAASC,IAC7B1b,EAAK+W,EAAK0E,SAAU,CAAC,QAAS,aAAcf,GAC5C1a,EAAK+W,EAAK6B,cAAe,QAAS+C,UAGTnpB,IAAvBukB,EAAK6E,oBAAsDppB,IAAvBukB,EAAK+C,oBAAoDtnB,IAArBukB,EAAK8C,YAA2B,CAC1G,IAAIgC,EAAU,SAAU3V,GACtB,OAAOmL,EAAenL,GAAG4V,UAG3B9b,EAAK+W,EAAK6E,cAAe,CAAC,aAAczC,GACxCnZ,EAAK+W,EAAK6E,cAAe,OAAQzC,EAAY,CAC3CqC,SAAS,IAEXxb,EAAK+W,EAAK6E,cAAe,QAASG,GAClC/b,EAAK,CAAC+W,EAAK8C,YAAa9C,EAAK+C,eAAgB,CAAC,QAAS,SAAU+B,QACtCrpB,IAAvBukB,EAAKgD,eAA6B/Z,EAAK+W,EAAKgD,cAAe,SAAS,WACtE,OAAOhD,EAAKgD,eAAiBhD,EAAKgD,cAAc+B,iBAGhCtpB,IAAdukB,EAAK5H,MACPnP,EAAK+W,EAAK5H,KAAM,SAAS,SAAUjJ,GACjCiT,EAAWjT,GACX8U,OAKFjE,EAAKjO,OAAO2B,YAAYzK,EAAK+W,EAAKyC,OAAQ,OAAQwC,KASxD,SAASC,EAAWC,EAAUlB,GAC5B,IAAImB,OAAsB3pB,IAAb0pB,EAAyBnF,EAAK5B,UAAU+G,GAAYnF,EAAKkB,wBAA0BlB,EAAKjO,OAAOoP,SAAWnB,EAAKjO,OAAOoP,QAAUnB,EAAKlR,IAAMkR,EAAKjO,OAAOoP,QAAUnB,EAAKjO,OAAOsR,SAAWrD,EAAKjO,OAAOsR,QAAUrD,EAAKlR,IAAMkR,EAAKjO,OAAOsR,QAAUrD,EAAKlR,KAC7PuW,EAAUrF,EAAKQ,YACf8E,EAAWtF,EAAKO,aAEpB,SACiB9kB,IAAX2pB,IACFpF,EAAKQ,YAAc4E,EAAO1P,cAC1BsK,EAAKO,aAAe6E,EAAOxI,YAE7B,MAAOzN,GAEPA,EAAEkD,QAAU,0BAA4B+S,EACxCpF,EAAKjO,OAAOiD,aAAa7F,GAGvB8U,GAAiBjE,EAAKQ,cAAgB6E,IACxC7D,GAAa,gBACb+D,MAGEtB,GAAkBjE,EAAKQ,cAAgB6E,GAAWrF,EAAKO,eAAiB+E,GAC1E9D,GAAa,iBAGfxB,EAAKwF,SAQP,SAASR,EAAc7V,GACrB,IAAIyU,EAActJ,EAAenL,IAC5ByU,EAAY/pB,UAAUuC,QAAQ,UAAUqpB,EAAkBtW,EAAGyU,EAAY9pB,UAAU4rB,SAAS,WAAa,GAAK,GAarH,SAASD,EAAkBtW,EAAG0U,EAAO8B,GACnC,IAAItsB,EAAS8V,GAAKmL,EAAenL,GAC7B5S,EAAQopB,GAAatsB,GAAUA,EAAOwgB,YAAcxgB,EAAOwgB,WAAWJ,WACtE1W,EAAQ6iB,GAAY,aACxB7iB,EAAM8gB,MAAQA,EACdtnB,GAASA,EAAMspB,cAAc9iB,GAG/B,SAAS+d,IACP,IAAIgF,EAAWpa,OAAOG,SAASka,yBAI/B,GAHA/F,EAAK0B,kBAAoBrI,EAAc,MAAO,sBAC9C2G,EAAK0B,kBAAkBsE,UAAY,GAE9BhG,EAAKjO,OAAOoE,WAAY,CAI3B,GAHA2P,EAASzL,YAAY4L,MACrBjG,EAAKkG,eAAiB7M,EAAc,MAAO,4BAEvC2G,EAAKjO,OAAOyF,YAAa,CAC3B,IAAI3V,EAAKskB,KACLjE,EAAcrgB,EAAGqgB,YACjB1K,EAAc3V,EAAG2V,YAErBwI,EAAKkG,eAAe7L,YAAY6H,GAChClC,EAAKxI,YAAcA,EACnBwI,EAAKkC,YAAcA,EAGrBlC,EAAKoG,WAAa/M,EAAc,MAAO,wBACvC2G,EAAKoG,WAAW/L,YAAYgM,MAEvBrG,EAAK6B,gBACR7B,EAAK6B,cAAgBxI,EAAc,MAAO,kBAC1C2G,EAAK6B,cAAcmE,UAAY,GAGjCM,IACAtG,EAAKoG,WAAW/L,YAAY2F,EAAK6B,eACjC7B,EAAKkG,eAAe7L,YAAY2F,EAAKoG,YACrCN,EAASzL,YAAY2F,EAAKkG,gBAGxBlG,EAAKjO,OAAOgD,YACd+Q,EAASzL,YAAYkM,MAGvBpN,EAAY6G,EAAK0B,kBAAmB,YAAkC,UAArB1B,EAAKjO,OAAOiE,MAC7DmD,EAAY6G,EAAK0B,kBAAmB,WAAmC,IAAxB1B,EAAKjO,OAAOgC,SAC3DoF,EAAY6G,EAAK0B,kBAAmB,aAAc1B,EAAKjO,OAAOsF,WAAa,GAC3E2I,EAAK0B,kBAAkBrH,YAAYyL,GACnC,IAAIU,OAAwC/qB,IAAzBukB,EAAKjO,OAAO0U,eAA4DhrB,IAAlCukB,EAAKjO,OAAO0U,SAASC,SAE9E,IAAI1G,EAAKjO,OAAO+D,QAAUkK,EAAKjO,OAAOuF,UACpC0I,EAAK0B,kBAAkB5nB,UAAUC,IAAIimB,EAAKjO,OAAO+D,OAAS,SAAW,UAEjEkK,EAAKjO,OAAO+D,UACT0Q,GAAgBxG,EAAKxO,QAAQqI,WAAYmG,EAAKxO,QAAQqI,WAAW8M,aAAa3G,EAAK0B,kBAAmB1B,EAAKyC,OAAOmE,kBAA+CnrB,IAAzBukB,EAAKjO,OAAO0U,UAAwBzG,EAAKjO,OAAO0U,SAASpM,YAAY2F,EAAK0B,oBAGrN1B,EAAKjO,OAAOuF,QAAQ,CACtB,IAAI0C,EAAUX,EAAc,MAAO,qBAC/B2G,EAAKxO,QAAQqI,YAAYmG,EAAKxO,QAAQqI,WAAW8M,aAAa3M,EAASgG,EAAKxO,SAChFwI,EAAQK,YAAY2F,EAAKxO,SACrBwO,EAAKnM,UAAUmG,EAAQK,YAAY2F,EAAKnM,UAC5CmG,EAAQK,YAAY2F,EAAK0B,mBAIxB1B,EAAKjO,OAAOuF,QAAW0I,EAAKjO,OAAO+D,cAAkCra,IAAzBukB,EAAKjO,OAAO0U,SAAyBzG,EAAKjO,OAAO0U,SAAW/a,OAAOG,SAASyY,MAAMjK,YAAY2F,EAAK0B,mBAGtJ,SAASmF,EAAUhtB,EAAW4T,EAAMqZ,EAAWjrB,GAC7C,IAAIkrB,EAAgBC,GAAUvZ,GAAM,GAChCwZ,EAAa5N,EAAc,OAAQ,iBAAmBxf,EAAW4T,EAAK8H,UAAUhI,YAqCpF,OApCA0Z,EAAWnM,QAAUrN,EACrBwZ,EAAWC,GAAKrrB,EAChBorB,EAAW/uB,aAAa,aAAc8nB,EAAKxC,WAAW/P,EAAMuS,EAAKjO,OAAOmC,kBAEnC,IAAjCra,EAAUuC,QAAQ,WAAqD,IAAjC0iB,EAAarR,EAAMuS,EAAKlR,OAChEkR,EAAKmH,cAAgBF,EACrBA,EAAWntB,UAAUC,IAAI,SACzBktB,EAAW/uB,aAAa,eAAgB,SAGtC6uB,GACFE,EAAWjB,UAAY,EAEnBoB,GAAe3Z,KACjBwZ,EAAWntB,UAAUC,IAAI,YACzBimB,EAAKqH,iBAAmBJ,EAEC,UAArBjH,EAAKjO,OAAOiE,OACdmD,EAAY8N,EAAY,aAAcjH,EAAKgB,cAAc,IAA0D,IAApDlC,EAAarR,EAAMuS,EAAKgB,cAAc,IAAI,IACzG7H,EAAY8N,EAAY,WAAYjH,EAAKgB,cAAc,IAA0D,IAApDlC,EAAarR,EAAMuS,EAAKgB,cAAc,IAAI,IACrF,iBAAdnnB,GAA8BotB,EAAWntB,UAAUC,IAAI,cAI/DktB,EAAWntB,UAAUC,IAAI,sBAGF,UAArBimB,EAAKjO,OAAOiE,MACVsR,GAAc7Z,KAAU2Z,GAAe3Z,IAAOwZ,EAAWntB,UAAUC,IAAI,WAGzEimB,EAAKxI,aAA0C,IAA3BwI,EAAKjO,OAAOsF,YAAkC,iBAAdxd,GAAgCitB,EAAY,IAAM,GACxG9G,EAAKxI,YAAY+P,mBAAmB,YAAa,+BAAiCvH,EAAKjO,OAAOmD,QAAQzH,GAAQ,WAGhH+T,GAAa,cAAeyF,GACrBA,EAGT,SAASO,EAAeC,GACtBA,EAAWC,QACc,UAArB1H,EAAKjO,OAAOiE,MAAkBqO,GAAYoD,GAGhD,SAASE,EAAqB9D,GAI5B,IAHA,IAAI+D,EAAa/D,EAAQ,EAAI,EAAI7D,EAAKjO,OAAOsF,WAAa,EACtDwQ,EAAWhE,EAAQ,EAAI7D,EAAKjO,OAAOsF,YAAc,EAE5CnmB,EAAI02B,EAAY12B,GAAK22B,EAAU32B,GAAK2yB,EAK3C,IAJA,IAAI5c,EAAQ+Y,EAAK6B,cAAciG,SAAS52B,GACpC62B,EAAalE,EAAQ,EAAI,EAAI5c,EAAM6gB,SAASrrB,OAAS,EACrDurB,EAAWnE,EAAQ,EAAI5c,EAAM6gB,SAASrrB,QAAU,EAE3CZ,EAAIksB,EAAYlsB,GAAKmsB,EAAUnsB,GAAKgoB,EAAO,CAClD,IAAInG,EAAIzW,EAAM6gB,SAASjsB,GACvB,IAAuC,IAAnC6hB,EAAE7jB,UAAUuC,QAAQ,WAAoB4qB,GAAUtJ,EAAE5C,SAAU,OAAO4C,GAO/E,SAASuK,EAAoBC,EAASrE,GAKpC,IAJA,IAAIsE,GAAqD,IAAxCD,EAAQruB,UAAUuC,QAAQ,SAAkB8rB,EAAQpN,QAAQ8B,WAAaoD,EAAKO,aAC3FsH,EAAWhE,EAAQ,EAAI7D,EAAKjO,OAAOsF,YAAc,EACjD+Q,EAAYvE,EAAQ,EAAI,GAAK,EAExB3yB,EAAIi3B,EAAanI,EAAKO,aAAcrvB,GAAK22B,EAAU32B,GAAKk3B,EAK/D,IAJA,IAAInhB,EAAQ+Y,EAAK6B,cAAciG,SAAS52B,GACpC62B,EAAaI,EAAanI,EAAKO,eAAiBrvB,EAAIg3B,EAAQhB,GAAKrD,EAAQA,EAAQ,EAAI5c,EAAM6gB,SAASrrB,OAAS,EAAI,EACjH4rB,EAAephB,EAAM6gB,SAASrrB,OAEzBZ,EAAIksB,EAAYlsB,GAAK,GAAKA,EAAIwsB,GAAgBxsB,IAAMgoB,EAAQ,EAAIwE,GAAgB,GAAIxsB,GAAKusB,EAAW,CAC3G,IAAI1K,EAAIzW,EAAM6gB,SAASjsB,GACvB,IAAuC,IAAnC6hB,EAAE7jB,UAAUuC,QAAQ,WAAoB4qB,GAAUtJ,EAAE5C,UAAY3N,KAAKC,IAAI8a,EAAQhB,GAAKrrB,IAAMsR,KAAKC,IAAIyW,GAAQ,OAAO2D,EAAe9J,GAI3IsC,EAAKsI,YAAYF,GACjBG,EAAWZ,EAAqBS,GAAY,GAI9C,SAASG,EAAWL,EAASM,GAC3B,IAAIC,EAAaC,GAAS7c,SAAS8c,eAAiB9c,SAASyY,MACzDsE,OAAwBntB,IAAZysB,EAAwBA,EAAUO,EAAa5c,SAAS8c,mBAA0CltB,IAA1BukB,EAAKqH,kBAAkCqB,GAAS1I,EAAKqH,kBAAoBrH,EAAKqH,sBAA0C5rB,IAAvBukB,EAAKmH,eAA+BuB,GAAS1I,EAAKmH,eAAiBnH,EAAKmH,cAAgBQ,EAAqBa,EAAS,EAAI,GAAK,QAEtS/sB,IAAdmtB,EACF5I,EAAKyC,OAAOiF,QACFe,EAGVR,EAAoBW,EAAWJ,GAF/BhB,EAAeoB,GAMnB,SAASC,EAAe5M,EAAMhV,GAW5B,IAVA,IAAI6hB,GAAgB,IAAInc,KAAKsP,EAAMhV,EAAO,GAAGuO,SAAWwK,EAAK7C,KAAKrF,eAAiB,GAAK,EACpFiR,EAAgB/I,EAAKI,MAAMC,gBAAgBpZ,EAAQ,EAAI,IAAM,GAAIgV,GACjEpE,EAAcmI,EAAKI,MAAMC,eAAepZ,EAAOgV,GAC/C8F,EAAOrW,OAAOG,SAASka,yBACvBiD,EAAehJ,EAAKjO,OAAOsF,WAAa,EACxC4R,EAAoBD,EAAe,sBAAwB,eAC3DE,EAAoBF,EAAe,sBAAwB,eAC3DlC,EAAYiC,EAAgB,EAAID,EAChCK,EAAW,EAERrC,GAAaiC,EAAejC,IAAaqC,IAC9CpH,EAAK1H,YAAYwM,EAAUoC,EAAmB,IAAItc,KAAKsP,EAAMhV,EAAQ,EAAG6f,GAAYA,EAAWqC,IAIjG,IAAKrC,EAAY,EAAGA,GAAajP,EAAaiP,IAAaqC,IACzDpH,EAAK1H,YAAYwM,EAAU,GAAI,IAAIla,KAAKsP,EAAMhV,EAAO6f,GAAYA,EAAWqC,IAI9E,IAAK,IAAIC,EAASvR,EAAc,EAAGuR,GAAU,GAAKN,IAA4C,IAA3B9I,EAAKjO,OAAOsF,YAAoB8R,EAAW,IAAM,GAAIC,IAAUD,IAChIpH,EAAK1H,YAAYwM,EAAUqC,EAAmB,IAAIvc,KAAKsP,EAAMhV,EAAQ,EAAGmiB,EAASvR,GAAcuR,EAAQD,IAIzG,IAAIE,EAAehQ,EAAc,MAAO,gBAExC,OADAgQ,EAAahP,YAAY0H,GAClBsH,EAGT,SAAS/C,IACP,QAA2B7qB,IAAvBukB,EAAK6B,cAAT,CAIAtI,EAAUyG,EAAK6B,eAEX7B,EAAKxI,aAAa+B,EAAUyG,EAAKxI,aAGrC,IAFA,IAAI8R,EAAOzd,SAASka,yBAEXlqB,EAAI,EAAGA,EAAImkB,EAAKjO,OAAOsF,WAAYxb,IAAK,CAC/C,IAAIvK,EAAI,IAAIqb,KAAKqT,EAAKQ,YAAaR,EAAKO,aAAc,GACtDjvB,EAAE0pB,SAASgF,EAAKO,aAAe1kB,GAC/BytB,EAAKjP,YAAYwO,EAAev3B,EAAEokB,cAAepkB,EAAEsrB,aAGrDoD,EAAK6B,cAAcxH,YAAYiP,GAC/BtJ,EAAK+B,KAAO/B,EAAK6B,cAAcpI,WAEN,UAArBuG,EAAKjO,OAAOiE,MAAkD,IAA9BgK,EAAKgB,cAAcvkB,QACrD4nB,MAIJ,SAASkB,IACP,KAAIvF,EAAKjO,OAAOsF,WAAa,GAAuC,aAAlC2I,EAAKjO,OAAOkE,mBAA9C,CAEA,IAAIsT,EAAmB,SAAUtiB,GAC/B,aAA4BxL,IAAxBukB,EAAKjO,OAAOoP,SAAyBnB,EAAKQ,cAAgBR,EAAKjO,OAAOoP,QAAQzL,eAAiBzO,EAAQ+Y,EAAKjO,OAAOoP,QAAQvE,oBAI9FnhB,IAAxBukB,EAAKjO,OAAOsR,SAAyBrD,EAAKQ,cAAgBR,EAAKjO,OAAOsR,QAAQ3N,eAAiBzO,EAAQ+Y,EAAKjO,OAAOsR,QAAQzG,aAGtIoD,EAAKwJ,wBAAwBxD,UAAY,EACzChG,EAAKwJ,wBAAwBrxB,UAAY,GAEzC,IAAK,IAAI0D,EAAI,EAAGA,EAAI,GAAIA,IACtB,GAAK0tB,EAAiB1tB,GAAtB,CACA,IAAIoL,EAAQoS,EAAc,SAAU,iCACpCpS,EAAMrC,MAAQ,IAAI+H,KAAKqT,EAAKQ,YAAa3kB,GAAG+gB,WAAWrP,WACvDtG,EAAMjP,YAAcyiB,EAAW5e,EAAGmkB,EAAKjO,OAAOqF,sBAAuB4I,EAAK7C,MAC1ElW,EAAM+e,UAAY,EAEdhG,EAAKO,eAAiB1kB,IACxBoL,EAAMjE,UAAW,GAGnBgd,EAAKwJ,wBAAwBnP,YAAYpT,KAI7C,SAASwiB,KACP,IAEIC,EAFAC,EAAYtQ,EAAc,MAAO,mBACjCuQ,EAAmBle,OAAOG,SAASka,yBAGnC/F,EAAKjO,OAAOsF,WAAa,GAAuC,WAAlC2I,EAAKjO,OAAOkE,kBAC5CyT,EAAerQ,EAAc,OAAQ,cAErC2G,EAAKwJ,wBAA0BnQ,EAAc,SAAU,kCACvD2G,EAAKwJ,wBAAwBtxB,aAAa,aAAc8nB,EAAK7C,KAAK7E,gBAClErP,EAAK+W,EAAKwJ,wBAAyB,UAAU,SAAUra,GACrD,IAAI9V,EAASihB,EAAenL,GACxB0a,EAAgBhd,SAASxT,EAAOuL,MAAO,IAC3Cob,EAAKsI,YAAYuB,EAAgB7J,EAAKO,cACtCiB,GAAa,oBAEf+D,IACAmE,EAAe1J,EAAKwJ,yBAGtB,IAAIM,EAAYhQ,EAAkB,WAAY,CAC5CiQ,SAAU,OAERC,EAAcF,EAAUG,qBAAqB,SAAS,GAC1DD,EAAY9xB,aAAa,aAAc8nB,EAAK7C,KAAK9E,eAE7C2H,EAAKjO,OAAOoP,SACd6I,EAAY9xB,aAAa,MAAO8nB,EAAKjO,OAAOoP,QAAQzL,cAAcnI,YAGhEyS,EAAKjO,OAAOsR,UACd2G,EAAY9xB,aAAa,MAAO8nB,EAAKjO,OAAOsR,QAAQ3N,cAAcnI,YAClEyc,EAAYE,WAAalK,EAAKjO,OAAOoP,SAAWnB,EAAKjO,OAAOoP,QAAQzL,gBAAkBsK,EAAKjO,OAAOsR,QAAQ3N,eAG5G,IAAI6K,EAAelH,EAAc,MAAO,2BAKxC,OAJAkH,EAAalG,YAAYqP,GACzBnJ,EAAalG,YAAYyP,GACzBF,EAAiBvP,YAAYkG,GAC7BoJ,EAAUtP,YAAYuP,GACf,CACLD,UAAWA,EACXK,YAAaA,EACbN,aAAcA,GAIlB,SAASS,KACP5Q,EAAUyG,EAAK0E,UACf1E,EAAK0E,SAASrK,YAAY2F,EAAKoK,cAE3BpK,EAAKjO,OAAOsF,aACd2I,EAAKqK,aAAe,GACpBrK,EAAKsK,cAAgB,IAGvB,IAAK,IAAIp5B,EAAI8uB,EAAKjO,OAAOsF,WAAYnmB,KAAM,CACzC,IAAI+V,EAAQwiB,KACZzJ,EAAKqK,aAAa5nB,KAAKwE,EAAM+iB,aAC7BhK,EAAKsK,cAAc7nB,KAAKwE,EAAMyiB,cAC9B1J,EAAK0E,SAASrK,YAAYpT,EAAM0iB,WAGlC3J,EAAK0E,SAASrK,YAAY2F,EAAKuK,cAGjC,SAAStE,KAiCP,OAhCAjG,EAAK0E,SAAWrL,EAAc,MAAO,oBACrC2G,EAAKqK,aAAe,GACpBrK,EAAKsK,cAAgB,GACrBtK,EAAKoK,aAAe/Q,EAAc,OAAQ,wBAC1C2G,EAAKoK,aAAajyB,UAAY6nB,EAAKjO,OAAOoF,UAC1C6I,EAAKuK,aAAelR,EAAc,OAAQ,wBAC1C2G,EAAKuK,aAAapyB,UAAY6nB,EAAKjO,OAAOmE,UAC1CiU,KACAl1B,OAAOC,eAAe8qB,EAAM,sBAAuB,CACjD7qB,IAAK,WACH,OAAO6qB,EAAKwK,sBAEdtwB,IAAK,SAAUye,GACTqH,EAAKwK,uBAAyB7R,IAChCQ,EAAY6G,EAAKoK,aAAc,qBAAsBzR,GACrDqH,EAAKwK,qBAAuB7R,MAIlC1jB,OAAOC,eAAe8qB,EAAM,sBAAuB,CACjD7qB,IAAK,WACH,OAAO6qB,EAAKyK,sBAEdvwB,IAAK,SAAUye,GACTqH,EAAKyK,uBAAyB9R,IAChCQ,EAAY6G,EAAKuK,aAAc,qBAAsB5R,GACrDqH,EAAKyK,qBAAuB9R,MAIlCqH,EAAK0K,mBAAqB1K,EAAKqK,aAAa,GAC5CM,KACO3K,EAAK0E,SAGd,SAAS6B,KACPvG,EAAK0B,kBAAkB5nB,UAAUC,IAAI,WACjCimB,EAAKjO,OAAOoE,YAAY6J,EAAK0B,kBAAkB5nB,UAAUC,IAAI,cACjEimB,EAAK6E,cAAgBxL,EAAc,MAAO,kBAC1C2G,EAAK6E,cAAcmB,UAAY,EAC/B,IAAI1X,EAAY+K,EAAc,OAAQ,2BAA4B,KAC9DuR,EAAY9Q,EAAkB,iBAAkB,CAClD,aAAckG,EAAK7C,KAAK5E,gBAE1ByH,EAAK8C,YAAc8H,EAAUX,qBAAqB,SAAS,GAC3D,IAAIY,EAAc/Q,EAAkB,mBAAoB,CACtD,aAAckG,EAAK7C,KAAK3E,kBAiB1B,GAfAwH,EAAK+C,cAAgB8H,EAAYZ,qBAAqB,SAAS,GAC/DjK,EAAK8C,YAAYkD,SAAWhG,EAAK+C,cAAciD,UAAY,EAC3DhG,EAAK8C,YAAYle,MAAQ6T,EAAIuH,EAAKkB,sBAAwBlB,EAAKkB,sBAAsB5F,WAAa0E,EAAKjO,OAAOwF,UAAYyI,EAAKjO,OAAOyC,YAAcqO,EAAc7C,EAAKjO,OAAOyC,cAC9KwL,EAAK+C,cAAcne,MAAQ6T,EAAIuH,EAAKkB,sBAAwBlB,EAAKkB,sBAAsBpE,aAAekD,EAAKjO,OAAO0C,eAClHuL,EAAK8C,YAAY5qB,aAAa,OAAQ8nB,EAAKjO,OAAO6D,cAAcrI,YAChEyS,EAAK+C,cAAc7qB,aAAa,OAAQ8nB,EAAKjO,OAAOgE,gBAAgBxI,YACpEyS,EAAK8C,YAAY5qB,aAAa,MAAO8nB,EAAKjO,OAAOwF,UAAY,IAAM,KACnEyI,EAAK8C,YAAY5qB,aAAa,MAAO8nB,EAAKjO,OAAOwF,UAAY,KAAO,MACpEyI,EAAK+C,cAAc7qB,aAAa,MAAO,KACvC8nB,EAAK+C,cAAc7qB,aAAa,MAAO,MACvC8nB,EAAK6E,cAAcxK,YAAYuQ,GAC/B5K,EAAK6E,cAAcxK,YAAY/L,GAC/B0R,EAAK6E,cAAcxK,YAAYwQ,GAC3B7K,EAAKjO,OAAOwF,WAAWyI,EAAK6E,cAAc/qB,UAAUC,IAAI,YAExDimB,EAAKjO,OAAO+C,cAAe,CAC7BkL,EAAK6E,cAAc/qB,UAAUC,IAAI,cACjC,IAAI+wB,EAAchR,EAAkB,oBACpCkG,EAAKgD,cAAgB8H,EAAYb,qBAAqB,SAAS,GAC/DjK,EAAKgD,cAAcpe,MAAQ6T,EAAIuH,EAAKkB,sBAAwBlB,EAAKkB,sBAAsBrE,aAAemD,EAAKjO,OAAO2C,gBAClHsL,EAAKgD,cAAc9qB,aAAa,OAAQ8nB,EAAK+C,cAAcjrB,aAAa,SACxEkoB,EAAKgD,cAAc9qB,aAAa,MAAO,KACvC8nB,EAAKgD,cAAc9qB,aAAa,MAAO,MACvC8nB,EAAK6E,cAAcxK,YAAYhB,EAAc,OAAQ,2BAA4B,MACjF2G,EAAK6E,cAAcxK,YAAYyQ,GAWjC,OARK9K,EAAKjO,OAAOwF,YAEfyI,EAAK5H,KAAOiB,EAAc,OAAQ,kBAAmB2G,EAAK7C,KAAK/E,KAAKM,GAAKsH,EAAKkB,sBAAwBlB,EAAK8C,YAAYle,MAAQob,EAAKjO,OAAOyC,aAAe,MAC1JwL,EAAK5H,KAAK2S,MAAQ/K,EAAK7C,KAAKhF,YAC5B6H,EAAK5H,KAAK4N,UAAY,EACtBhG,EAAK6E,cAAcxK,YAAY2F,EAAK5H,OAG/B4H,EAAK6E,cAGd,SAASwB,KACFrG,EAAKgL,iBAA0FzR,EAAUyG,EAAKgL,kBAAvFhL,EAAKgL,iBAAmB3R,EAAc,MAAO,sBAEzE,IAAK,IAAIxd,EAAImkB,EAAKjO,OAAOsF,WAAYxb,KAAM,CACzC,IAAI8tB,EAAYtQ,EAAc,MAAO,8BACrC2G,EAAKgL,iBAAiB3Q,YAAYsP,GAIpC,OADAsB,KACOjL,EAAKgL,iBAGd,SAASC,KACP,GAAKjL,EAAKgL,iBAAV,CAIA,IAAIlT,EAAiBkI,EAAK7C,KAAKrF,eAE3BloB,EAAWmjB,EAAeiN,EAAK7C,KAAKvtB,SAAS+nB,WAE7CG,EAAiB,GAAKA,EAAiBloB,EAAS6M,SAClD7M,EAAWmjB,EAAenjB,EAASs7B,OAAOpT,EAAgBloB,EAAS6M,QAAS7M,EAASs7B,OAAO,EAAGpT,KAGjG,IAAK,IAAIjc,EAAImkB,EAAKjO,OAAOsF,WAAYxb,KACnCmkB,EAAKgL,iBAAiBlD,SAASjsB,GAAG1D,UAAY,qDAAuDvI,EAASib,KAAK,2CAA6C,2BAMpK,SAASsb,KACPnG,EAAK0B,kBAAkB5nB,UAAUC,IAAI,YACrC,IAAImoB,EAAc7I,EAAc,MAAO,yBACvC6I,EAAY7H,YAAYhB,EAAc,OAAQ,oBAAqB2G,EAAK7C,KAAKlF,mBAC7E,IAAIT,EAAc6B,EAAc,MAAO,mBAEvC,OADA6I,EAAY7H,YAAY7C,GACjB,CACL0K,YAAaA,EACb1K,YAAaA,GAIjB,SAAS8Q,GAAY1jB,EAAOumB,QACT,IAAbA,IACFA,GAAW,GAGb,IAAItH,EAAQsH,EAAWvmB,EAAQA,EAAQob,EAAKO,aACxCsD,EAAQ,IAAkC,IAA7B7D,EAAKoL,qBAAgCvH,EAAQ,IAAkC,IAA7B7D,EAAKqL,sBACxErL,EAAKO,cAAgBsD,GAEjB7D,EAAKO,aAAe,GAAKP,EAAKO,aAAe,MAC/CP,EAAKQ,aAAeR,EAAKO,aAAe,GAAK,GAAK,EAClDP,EAAKO,cAAgBP,EAAKO,aAAe,IAAM,GAC/CiB,GAAa,gBACb+D,KAGFe,IACA9E,GAAa,iBACbmJ,MAGF,SAASthB,GAAMiiB,EAAoBC,GAoBjC,QAnB2B,IAAvBD,IACFA,GAAqB,QAGL,IAAdC,IACFA,GAAY,GAGdvL,EAAKzjB,MAAMqI,MAAQ,QACGnJ,IAAlBukB,EAAKnM,WAAwBmM,EAAKnM,SAASjP,MAAQ,SAC9BnJ,IAArBukB,EAAKwL,cAA2BxL,EAAKwL,YAAY5mB,MAAQ,IAC7Dob,EAAKgB,cAAgB,GACrBhB,EAAKkB,2BAAwBzlB,GAEX,IAAd8vB,IACFvL,EAAKQ,YAAcR,EAAKyL,aAAa/V,cACrCsK,EAAKO,aAAeP,EAAKyL,aAAa7O,aAGT,IAA3BoD,EAAKjO,OAAOgD,WAAqB,CACnC,IAAIlT,EAAKygB,IAKTjN,EAJYxT,EAAG6E,MACD7E,EAAG8E,QACH9E,EAAG2Z,SAKnBwE,EAAKwF,SACD8F,GACF9J,GAAa,YAGjB,SAAShrB,KACPwpB,EAAKtpB,QAAS,EAETspB,EAAK3C,gBACuB5hB,IAA3BukB,EAAK0B,mBACP1B,EAAK0B,kBAAkB5nB,UAAUG,OAAO,aAGtBwB,IAAhBukB,EAAKyC,QACPzC,EAAKyC,OAAO3oB,UAAUG,OAAO,WAIjCunB,GAAa,WAGf,SAAS1rB,UACa2F,IAAhBukB,EAAKjO,QAAsByP,GAAa,aAE5C,IAAK,IAAI3lB,EAAImkB,EAAKgE,UAAUvnB,OAAQZ,KAAM,CACxC,IAAIzK,EAAI4uB,EAAKgE,UAAUnoB,GACvBzK,EAAEogB,QAAQhX,oBAAoBpJ,EAAE2R,MAAO3R,EAAEgJ,QAAShJ,EAAEwa,SAKtD,GAFAoU,EAAKgE,UAAY,GAEbhE,EAAKwL,YACHxL,EAAKwL,YAAY3R,YAAYmG,EAAKwL,YAAY3R,WAAWH,YAAYsG,EAAKwL,aAC9ExL,EAAKwL,iBAAc/vB,OACd,GAAIukB,EAAK0B,mBAAqB1B,EAAK0B,kBAAkB7H,WAC1D,GAAImG,EAAKjO,OAAOuF,QAAU0I,EAAK0B,kBAAkB7H,WAAY,CAC3D,IAAIG,EAAUgG,EAAK0B,kBAAkB7H,WAGrC,GAFAG,EAAQ0R,WAAa1R,EAAQN,YAAYM,EAAQ0R,WAE7C1R,EAAQH,WAAY,CACtB,KAAOG,EAAQP,YAAYO,EAAQH,WAAW8M,aAAa3M,EAAQP,WAAYO,GAE/EA,EAAQH,WAAWH,YAAYM,SAE5BgG,EAAK0B,kBAAkB7H,WAAWH,YAAYsG,EAAK0B,mBAGxD1B,EAAKnM,WACPmM,EAAKzjB,MAAMkM,KAAO,OACduX,EAAKnM,SAASgG,YAAYmG,EAAKnM,SAASgG,WAAWH,YAAYsG,EAAKnM,iBACjEmM,EAAKnM,UAGVmM,EAAKzjB,QACPyjB,EAAKzjB,MAAMkM,KAAOuX,EAAKzjB,MAAMovB,MAC7B3L,EAAKzjB,MAAMzC,UAAUG,OAAO,mBAC5B+lB,EAAKzjB,MAAMnE,gBAAgB,aAG7B,CAAC,iBAAkB,wBAAyB,sBAAuB,sBAAuB,uBAAwB,uBAAwB,WAAY,SAAU,mBAAoB,iBAAkB,iBAAkB,OAAQ,gBAAiB,SAAU,mBAAoB,iBAAkB,aAAc,WAAY,gBAAiB,oBAAqB,mBAAoB,eAAgB,eAAgB,0BAA2B,sBAAuB,qBAAsB,yBAA0B,mBAAoB,UAAUqM,SAAQ,SAAU0O,GACriB,WACS6M,EAAK7M,GACZ,MAAOwI,QAIb,SAASiQ,GAAexS,GACtB,SAAI4G,EAAKjO,OAAO0U,WAAYzG,EAAKjO,OAAO0U,SAASf,SAAStM,KACnD4G,EAAK0B,kBAAkBgE,SAAStM,GAGzC,SAASoL,GAAcrV,GACrB,GAAI6Q,EAAKtpB,SAAWspB,EAAKjO,OAAO+D,OAAQ,CACtC,IAAI+V,EAAgBvR,EAAenL,GAC/B2c,EAAoBF,GAAeC,GACnCE,EAAUF,IAAkB7L,EAAKzjB,OAASsvB,IAAkB7L,EAAKnM,UAAYmM,EAAKxO,QAAQkU,SAASmG,IAEvG1c,EAAE6c,MAAQ7c,EAAE6c,KAAK5vB,WAAa+S,EAAE6c,KAAK5vB,QAAQ4jB,EAAKzjB,SAAW4S,EAAE6c,KAAK5vB,QAAQ4jB,EAAKnM,WAC7EoY,EAAuB,SAAX9c,EAAE1G,KAAkBsjB,GAAW5c,EAAE+c,gBAAkBN,GAAezc,EAAE+c,gBAAkBH,IAAYD,IAAsBF,GAAezc,EAAE+c,eACrJC,GAAanM,EAAKjO,OAAO8D,qBAAqBuW,MAAK,SAAUhT,GAC/D,OAAOA,EAAKsM,SAASmG,MAGnBI,GAAaE,SACY1wB,IAAvBukB,EAAK6E,oBAAsDppB,IAAvBukB,EAAK+C,oBAAoDtnB,IAArBukB,EAAK8C,aAAkD,KAArB9C,EAAKzjB,MAAMqI,YAAqCnJ,IAArBukB,EAAKzjB,MAAMqI,OAClJwd,IAGFpC,EAAKxpB,QAEDwpB,EAAKjO,QAA+B,UAArBiO,EAAKjO,OAAOiE,MAAkD,IAA9BgK,EAAKgB,cAAcvkB,SACpEujB,EAAK3W,OAAM,GACX2W,EAAKwF,YAMb,SAAS1B,GAAWuI,GAClB,MAAKA,GAAWrM,EAAKjO,OAAOoP,SAAWkL,EAAUrM,EAAKjO,OAAOoP,QAAQzL,eAAiBsK,EAAKjO,OAAOsR,SAAWgJ,EAAUrM,EAAKjO,OAAOsR,QAAQ3N,eAA3I,CACA,IAAI4W,EAAaD,EACbE,EAAYvM,EAAKQ,cAAgB8L,EACrCtM,EAAKQ,YAAc8L,GAActM,EAAKQ,YAElCR,EAAKjO,OAAOsR,SAAWrD,EAAKQ,cAAgBR,EAAKjO,OAAOsR,QAAQ3N,cAClEsK,EAAKO,aAAepT,KAAKkS,IAAIW,EAAKjO,OAAOsR,QAAQzG,WAAYoD,EAAKO,cACzDP,EAAKjO,OAAOoP,SAAWnB,EAAKQ,cAAgBR,EAAKjO,OAAOoP,QAAQzL,gBACzEsK,EAAKO,aAAepT,KAAKmS,IAAIU,EAAKjO,OAAOoP,QAAQvE,WAAYoD,EAAKO,eAGhEgM,IACFvM,EAAKwF,SACLhE,GAAa,gBACb+D,MAIJ,SAASyB,GAAUvZ,EAAMqQ,QACN,IAAbA,IACFA,GAAW,GAGb,IAAI0O,EAAcxM,EAAK5B,UAAU3Q,OAAMhS,EAAWqiB,GAElD,GAAIkC,EAAKjO,OAAOoP,SAAWqL,GAAe1N,EAAa0N,EAAaxM,EAAKjO,OAAOoP,aAAsB1lB,IAAbqiB,EAAyBA,GAAYkC,EAAKmD,gBAAkB,GAAKnD,EAAKjO,OAAOsR,SAAWmJ,GAAe1N,EAAa0N,EAAaxM,EAAKjO,OAAOsR,aAAsB5nB,IAAbqiB,EAAyBA,GAAYkC,EAAKsD,gBAAkB,EAAG,OAAO,EACrT,GAAkC,IAA9BtD,EAAKjO,OAAO8C,OAAOpY,QAA+C,IAA/BujB,EAAKjO,OAAO4C,QAAQlY,OAAc,OAAO,EAChF,QAAoBhB,IAAhB+wB,EAA2B,OAAO,EAItC,IAHA,IAAI7T,EAAOqH,EAAKjO,OAAO8C,OAAOpY,OAAS,EACnCgwB,EAAQ9T,EAAOqH,EAAKjO,OAAO8C,OAASmL,EAAKjO,OAAO4C,QAE3C9Y,EAAI,EAAGvK,OAAI,EAAQuK,EAAI4wB,EAAMhwB,OAAQZ,IAAK,CAEjD,GAAiB,oBADjBvK,EAAIm7B,EAAM5wB,KACqBvK,EAAEk7B,GAC/B,OAAO7T,EAAU,GAAIrnB,aAAaqb,WAAwBlR,IAAhB+wB,GAA6Bl7B,EAAE8jB,YAAcoX,EAAYpX,UACnG,OAAOuD,EAAU,GAAiB,kBAANrnB,QAAkCmK,IAAhB+wB,EAA2B,CAEzE,IAAIE,EAAS1M,EAAK5B,UAAU9sB,OAAGmK,GAAW,GAC1C,OAAOixB,GAAUA,EAAOtX,YAAcoX,EAAYpX,UAAYuD,GAAQA,EACjE,GACM,kBAANrnB,QAAkCmK,IAAhB+wB,GAA6Bl7B,EAAEq7B,MAAQr7B,EAAEs7B,IAAMJ,EAAYpX,WAAa9jB,EAAEq7B,KAAKvX,WAAaoX,EAAYpX,WAAa9jB,EAAEs7B,GAAGxX,UAAW,OAAOuD,EAGvK,OAAQA,EAGV,SAAS+P,GAAStP,GAChB,YAA2B3d,IAAvBukB,EAAK6B,gBAA0E,IAAtCzI,EAAKvf,UAAUuC,QAAQ,YAAsE,IAAlDgd,EAAKvf,UAAUuC,QAAQ,uBAAgC4jB,EAAK6B,cAAc6D,SAAStM,GAI7K,SAAS6L,GAAO9V,GACAA,EAAE9V,SAAW2mB,EAAKyC,QAEftT,EAAE+c,eAAiBN,GAAezc,EAAE+c,gBACnDlM,EAAK1K,QAAQ0K,EAAKyC,OAAO7d,OAAO,EAAMuK,EAAE9V,SAAW2mB,EAAKnM,SAAWmM,EAAKjO,OAAO6B,UAAYoM,EAAKjO,OAAOwC,YAI3G,SAASiC,GAAUrH,GAWjB,IAAIyU,EAActJ,EAAenL,GAC7B4c,EAAU/L,EAAKjO,OAAO0F,KAAOjG,EAAQkU,SAAS9B,GAAeA,IAAgB5D,EAAKyC,OAClF/O,EAAasM,EAAKjO,OAAO2B,WACzBmZ,EAAe7M,EAAKtpB,UAAYgd,IAAeqY,GAC/Ce,EAAqB9M,EAAKjO,OAAO+D,QAAUiW,IAAYrY,EAE3D,GAAkB,KAAdvE,EAAE9X,SAAkB00B,EAAS,CAC/B,GAAIrY,EAEF,OADAsM,EAAK1K,QAAQ0K,EAAKyC,OAAO7d,OAAO,EAAMgf,IAAgB5D,EAAKnM,SAAWmM,EAAKjO,OAAO6B,UAAYoM,EAAKjO,OAAOwC,YACnGqP,EAAYmJ,OAEnB/M,EAAK9pB,YAEF,GAAI01B,GAAehI,IAAgBiJ,GAAgBC,EAAoB,CAC5E,IAAIE,IAAchN,EAAK6E,eAAiB7E,EAAK6E,cAAca,SAAS9B,GAEpE,OAAQzU,EAAE9X,SACR,KAAK,GACC21B,GACF7d,EAAE8d,iBACF7K,IACA8K,MACKtI,GAAWzV,GAElB,MAEF,KAAK,GAEHA,EAAE8d,iBACFC,KACA,MAEF,KAAK,EACL,KAAK,GACCnB,IAAY/L,EAAKjO,OAAO2B,aAC1BvE,EAAE8d,iBACFjN,EAAK3W,SAGP,MAEF,KAAK,GACL,KAAK,GACH,GAAK2jB,GAAcjB,EAWR/L,EAAK8C,aAAa9C,EAAK8C,YAAY4E,aAR5C,GAFAvY,EAAE8d,sBAEyBxxB,IAAvBukB,EAAK6B,iBAA+C,IAAfnO,GAAwB7H,SAAS8c,eAAiBD,GAAS7c,SAAS8c,gBAAiB,CAC5H,IAAIwE,EAAwB,KAAdhe,EAAE9X,QAAiB,GAAK,EACjC8X,EAAEie,SACLje,EAAEke,kBACF/E,GAAY6E,GACZ5E,EAAWZ,EAAqB,GAAI,IAHtBY,OAAW9sB,EAAW0xB,GAQ1C,MAEF,KAAK,GACL,KAAK,GACHhe,EAAE8d,iBACF,IAAIpJ,EAAsB,KAAd1U,EAAE9X,QAAiB,GAAK,EAEhC2oB,EAAK6B,oBAAoCpmB,IAAnBmoB,EAAYsD,IAAoBtD,IAAgB5D,EAAKzjB,OAASqnB,IAAgB5D,EAAKnM,SACvG1E,EAAEie,SACJje,EAAEke,kBACFvJ,GAAW9D,EAAKQ,YAAcqD,GAC9B0E,EAAWZ,EAAqB,GAAI,IAC1BqF,GAAWzE,OAAW9sB,EAAmB,EAARooB,GACpCD,IAAgB5D,EAAK0K,mBAC9B5G,GAAW9D,EAAKQ,YAAcqD,GACrB7D,EAAKjO,OAAOgD,cAChBiY,GAAahN,EAAK8C,aAAa9C,EAAK8C,YAAY4E,QACrDtF,EAAWjT,GAEX6Q,EAAK2C,oBAGP,MAEF,KAAK,EACH,GAAIqK,EAAW,CACb,IAAIM,EAAQ,CAACtN,EAAK8C,YAAa9C,EAAK+C,cAAe/C,EAAKgD,cAAehD,EAAK5H,MAAMhN,OAAO4U,EAAKuN,gBAAgBC,QAAO,SAAUrlB,GAC7H,OAAOA,KAELtM,EAAIyxB,EAAMlxB,QAAQwnB,GAEtB,IAAW,IAAP/nB,EAAU,CACZ,IAAIxC,EAASi0B,EAAMzxB,GAAKsT,EAAEse,UAAY,EAAI,IAC1Cte,EAAE8d,kBAED5zB,GAAU2mB,EAAKyC,QAAQiF,cAEhB1H,EAAKjO,OAAOoE,YAAc6J,EAAK6B,eAAiB7B,EAAK6B,cAAc6D,SAAS9B,IAAgBzU,EAAEse,WACxGte,EAAE8d,iBAEFjN,EAAKyC,OAAOiF,UAOpB,QAAkBjsB,IAAdukB,EAAK5H,MAAsBwL,IAAgB5D,EAAK5H,KAClD,OAAQjJ,EAAE/X,KACR,KAAK4oB,EAAK7C,KAAK/E,KAAK,GAAG5R,OAAO,GAC9B,KAAKwZ,EAAK7C,KAAK/E,KAAK,GAAG5R,OAAO,GAAGC,cAC/BuZ,EAAK5H,KAAKpgB,YAAcgoB,EAAK7C,KAAK/E,KAAK,GACvCsK,IACAtB,KACA,MAEF,KAAKpB,EAAK7C,KAAK/E,KAAK,GAAG5R,OAAO,GAC9B,KAAKwZ,EAAK7C,KAAK/E,KAAK,GAAG5R,OAAO,GAAGC,cAC/BuZ,EAAK5H,KAAKpgB,YAAcgoB,EAAK7C,KAAK/E,KAAK,GACvCsK,IACAtB,MAKF2K,GAAWH,GAAehI,KAC5BpC,GAAa,YAAarS,GAI9B,SAASkV,GAAYjL,GACnB,GAAkC,IAA9B4G,EAAKgB,cAAcvkB,UAAgB2c,GAAUA,EAAKtf,UAAU4rB,SAAS,mBAAoBtM,EAAKtf,UAAU4rB,SAAS,uBAArH,CASA,IARA,IAAIgI,EAAYtU,EAAOA,EAAK0B,QAAQ1F,UAAY4K,EAAK+B,KAAK4L,kBAAkB7S,QAAQ1F,UAChFwY,EAAc5N,EAAK5B,UAAU4B,EAAKgB,cAAc,QAAIvlB,GAAW,GAAM2Z,UACrEyY,EAAiB1gB,KAAKkS,IAAIqO,EAAW1N,EAAKgB,cAAc,GAAG5L,WAC3D0Y,EAAe3gB,KAAKmS,IAAIoO,EAAW1N,EAAKgB,cAAc,GAAG5L,WACzD2Y,GAAmB,EACnBC,EAAW,EACXC,EAAW,EAENpb,EAAIgb,EAAgBhb,EAAIib,EAAcjb,GAAK0M,EAASC,IACtDwH,GAAU,IAAIra,KAAKkG,IAAI,KAC1Bkb,EAAmBA,GAAoBlb,EAAIgb,GAAkBhb,EAAIib,EAC7Djb,EAAI+a,KAAiBI,GAAYnb,EAAImb,GAAWA,EAAWnb,EAAWA,EAAI+a,KAAiBK,GAAYpb,EAAIob,KAAWA,EAAWpb,IAIzI,IAAK,IAAI3hB,EAAI,EAAGA,EAAI8uB,EAAKjO,OAAOsF,WAAYnmB,IA4B1C,IA3BA,IAAI+V,EAAQ+Y,EAAK6B,cAAciG,SAAS52B,GAEpCyuB,EAAU,SAAU9jB,EAAGygB,GACzB,IAAI4R,EAAUjnB,EAAM6gB,SAASjsB,GAEzBsyB,EADOD,EAAQpT,QACE1F,UACjBgZ,EAAaJ,EAAW,GAAKG,EAAYH,GAAYC,EAAW,GAAKE,EAAYF,EAErF,OAAIG,GACFF,EAAQp0B,UAAUC,IAAI,cACtB,CAAC,UAAW,aAAc,YAAY0K,SAAQ,SAAUiZ,GACtDwQ,EAAQp0B,UAAUG,OAAOyjB,MAEpB,YACEqQ,IAAqBK,EAAmB,YAEnD,CAAC,aAAc,UAAW,WAAY,cAAc3pB,SAAQ,SAAUiZ,GACpEwQ,EAAQp0B,UAAUG,OAAOyjB,gBAGdjiB,IAAT2d,IACFA,EAAKtf,UAAUC,IAAI2zB,GAAa1N,EAAKgB,cAAc,GAAG5L,UAAY,aAAe,YAC7EwY,EAAcF,GAAaS,IAAcP,EAAaM,EAAQp0B,UAAUC,IAAI,cAAuB6zB,EAAcF,GAAaS,IAAcP,GAAaM,EAAQp0B,UAAUC,IAAI,YAC/Ko0B,GAAaH,IAA0B,IAAbC,GAAkBE,GAAaF,IAAahP,EAAUkP,EAAWP,EAAaF,IAAYQ,EAAQp0B,UAAUC,IAAI,eAIzI8B,EAAI,EAAGygB,EAAIrV,EAAM6gB,SAASrrB,OAAQZ,EAAIygB,EAAGzgB,IAChD8jB,EAAQ9jB,EAAGygB,IAKjB,SAAS8H,MACHpE,EAAKtpB,QAAWspB,EAAKjO,OAAOuF,QAAW0I,EAAKjO,OAAO+D,QAAQyL,KAGjE,SAASrrB,GAAKiZ,EAAG+H,GAKf,QAJwB,IAApBA,IACFA,EAAkB8I,EAAKqO,mBAGH,IAAlBrO,EAAK3C,SAAmB,CAC1B,GAAIlO,EAAG,CACLA,EAAE8d,iBACF,IAAIrJ,EAActJ,EAAenL,GACjCyU,GAAeA,EAAYmJ,OAS7B,YANyBtxB,IAArBukB,EAAKwL,cACPxL,EAAKwL,YAAY9D,QACjB1H,EAAKwL,YAAY8C,cAGnB9M,GAAa,UAIf,IAAIxB,EAAKyC,OAAOyH,WAAYlK,EAAKjO,OAAO+D,OAAxC,CACA,IAAIyY,EAAUvO,EAAKtpB,OACnBspB,EAAKtpB,QAAS,EAET63B,IACHvO,EAAK0B,kBAAkB5nB,UAAUC,IAAI,QAErCimB,EAAKyC,OAAO3oB,UAAUC,IAAI,UAE1BynB,GAAa,UACbD,GAAiBrK,KAGY,IAA3B8I,EAAKjO,OAAOgD,aAAkD,IAA3BiL,EAAKjO,OAAOoE,cAClB,IAA3B6J,EAAKjO,OAAO2B,iBAA+BjY,IAAN0T,GAAoB6Q,EAAK6E,cAAca,SAASvW,EAAE+c,gBACzF91B,YAAW,WACT,OAAO4pB,EAAK8C,YAAYiC,WACvB,MAKT,SAASyJ,GAAiB/lB,GACxB,OAAO,SAAUgF,GACf,IAAIqN,EAAUkF,EAAKjO,OAAO,IAAMtJ,EAAO,QAAUuX,EAAK5B,UAAU3Q,EAAMuS,EAAKjO,OAAOwC,YAC9Eka,EAAiBzO,EAAKjO,OAAO,KAAgB,QAATtJ,EAAiB,MAAQ,OAAS,aAE1DhN,IAAZqf,IACFkF,EAAc,QAATvX,EAAiB,iBAAmB,kBAAoBqS,EAAQQ,WAAa,GAAKR,EAAQgC,aAAe,GAAKhC,EAAQ+B,aAAe,GAGxImD,EAAKgB,gBACPhB,EAAKgB,cAAgBhB,EAAKgB,cAAcwM,QAAO,SAAUl8B,GACvD,OAAO01B,GAAU11B,MAEd0uB,EAAKgB,cAAcvkB,QAAmB,QAATgM,GAAgBwY,EAAiBnG,GACnEsG,MAGEpB,EAAK6B,gBACP2D,UACgB/pB,IAAZqf,EAAuBkF,EAAK0K,mBAAmBjiB,GAAQqS,EAAQpF,cAAcnI,WAAgByS,EAAK0K,mBAAmBtyB,gBAAgBqQ,GACzIuX,EAAK0K,mBAAmBR,WAAauE,QAA8BhzB,IAAZqf,GAAyB2T,EAAe/Y,gBAAkBoF,EAAQpF,gBAK/H,SAASgL,KACP,IAAIgO,EAAW,CAAC,OAAQ,cAAe,aAAc,sBAAuB,aAAc,YAAa,aAAc,aAAc,WAAY,wBAAyB,SAAU,SAAU,gBAAiB,iBAEzMC,EAAa/b,EAASA,EAAS,GAAIgc,KAAKjf,MAAMif,KAAKtf,UAAUkC,EAAQqd,SAAW,MAAO9O,GAEvFrD,EAAU,GACdsD,EAAKjO,OAAOqM,UAAYuQ,EAAWvQ,UACnC4B,EAAKjO,OAAOyL,WAAamR,EAAWnR,WACpCvoB,OAAOC,eAAe8qB,EAAKjO,OAAQ,SAAU,CAC3C5c,IAAK,WACH,OAAO6qB,EAAKjO,OAAO0B,SAErBvZ,IAAK,SAAU40B,GACb9O,EAAKjO,OAAO0B,QAAUsb,GAAeD,MAGzC75B,OAAOC,eAAe8qB,EAAKjO,OAAQ,UAAW,CAC5C5c,IAAK,WACH,OAAO6qB,EAAKjO,OAAOyB,UAErBtZ,IAAK,SAAU40B,GACb9O,EAAKjO,OAAOyB,SAAWub,GAAeD,MAG1C,IAAIE,EAA+B,SAApBL,EAAW3Y,KAE1B,IAAK2Y,EAAWpa,aAAeoa,EAAW5Z,YAAcia,GAAW,CACjE,IAAIC,EAAoBhP,EAAUC,cAAc3L,YAAchB,EAASgB,WACvEmI,EAAQnI,WAAaoa,EAAWxY,YAAc6Y,EAAW,OAASL,EAAW7Z,cAAgB,KAAO,IAAMma,EAAoB,QAAUN,EAAW7Z,cAAgB,KAAO,IAG5K,GAAI6Z,EAAW9a,WAAa8a,EAAW5Z,YAAcia,KAAcL,EAAW/a,UAAW,CACvF,IAAIsb,EAAmBjP,EAAUC,cAActM,WAAaL,EAASK,UACrE8I,EAAQ9I,UAAY+a,EAAWxY,YAAc6Y,EAAW,OAASL,EAAW7Z,cAAgB,OAAS,MAAQoa,EAAoB,QAAUP,EAAW7Z,cAAgB,KAAO,IAAM,KAGrL7f,OAAOC,eAAe8qB,EAAKjO,OAAQ,UAAW,CAC5C5c,IAAK,WACH,OAAO6qB,EAAKjO,OAAOod,UAErBj1B,IAAKs0B,GAAiB,SAExBv5B,OAAOC,eAAe8qB,EAAKjO,OAAQ,UAAW,CAC5C5c,IAAK,WACH,OAAO6qB,EAAKjO,OAAOqd,UAErBl1B,IAAKs0B,GAAiB,SAGxB,IAAIa,EAAmB,SAAU5mB,GAC/B,OAAO,SAAUoW,GACfmB,EAAKjO,OAAgB,QAATtJ,EAAiB,WAAa,YAAcuX,EAAK5B,UAAUS,EAAK,WAIhF5pB,OAAOC,eAAe8qB,EAAKjO,OAAQ,UAAW,CAC5C5c,IAAK,WACH,OAAO6qB,EAAKjO,OAAOud,UAErBp1B,IAAKm1B,EAAiB,SAExBp6B,OAAOC,eAAe8qB,EAAKjO,OAAQ,UAAW,CAC5C5c,IAAK,WACH,OAAO6qB,EAAKjO,OAAOwd,UAErBr1B,IAAKm1B,EAAiB,SAGA,SAApBV,EAAW3Y,OACbgK,EAAKjO,OAAOoE,YAAa,EACzB6J,EAAKjO,OAAOgD,YAAa,GAG3B9f,OAAOkQ,OAAO6a,EAAKjO,OAAQ2K,EAASiS,GAEpC,IAAK,IAAI9yB,EAAI,EAAGA,EAAI6yB,EAASjyB,OAAQZ,IACrCmkB,EAAKjO,OAAO2c,EAAS7yB,KAAmC,IAA7BmkB,EAAKjO,OAAO2c,EAAS7yB,KAA6C,SAA7BmkB,EAAKjO,OAAO2c,EAAS7yB,IASrF,IAPAyX,EAAMka,QAAO,SAAUgC,GACrB,YAA6B/zB,IAAtBukB,EAAKjO,OAAOyd,MAClB/qB,SAAQ,SAAU+qB,GACnBxP,EAAKjO,OAAOyd,GAAQtW,EAAS8G,EAAKjO,OAAOyd,IAAS,IAAI/R,IAAIgE,MAE5DzB,EAAK3C,UAAY2C,EAAKjO,OAAO6C,gBAAkBoL,EAAKjO,OAAO+D,QAA+B,WAArBkK,EAAKjO,OAAOiE,OAAsBgK,EAAKjO,OAAO4C,QAAQlY,SAAWujB,EAAKjO,OAAO8C,OAAOpY,SAAWujB,EAAKjO,OAAOyF,aAAe,iEAAiE7kB,KAAKqhB,UAAUC,WAEtQpY,EAAI,EAAGA,EAAImkB,EAAKjO,OAAOiF,QAAQva,OAAQZ,IAAK,CACnD,IAAI4zB,EAAazP,EAAKjO,OAAOiF,QAAQnb,GAAGmkB,IAAS,GAEjD,IAAK,IAAI5oB,KAAOq4B,EACVnc,EAAMlX,QAAQhF,IAAQ,EACxB4oB,EAAKjO,OAAO3a,GAAO8hB,EAASuW,EAAWr4B,IAAMqmB,IAAIgE,GAAgBrW,OAAO4U,EAAKjO,OAAO3a,IAChD,qBAApBu3B,EAAWv3B,KAAsB4oB,EAAKjO,OAAO3a,GAAOq4B,EAAWr4B,IAIhFu3B,EAAW7a,gBACdkM,EAAKjO,OAAO+B,cAAgB4b,KAAe71B,UAAY,IAAMmmB,EAAKjO,OAAO+B,eAG3E0N,GAAa,iBAGf,SAASkO,KACP,OAAO1P,EAAKjO,OAAO0F,KAAOjG,EAAQzY,cAAc,gBAAkByY,EAGpE,SAASmP,KAC2B,kBAAvBX,EAAKjO,OAAOzF,QAAsE,qBAAxC2T,EAAU0P,MAAM3P,EAAKjO,OAAOzF,SAAyB0T,EAAKjO,OAAOiD,aAAa,IAAIle,MAAM,6BAA+BkpB,EAAKjO,OAAOzF,SACxL0T,EAAK7C,KAAOvK,EAASA,EAAS,GAAIqN,EAAU0P,MAAMC,SAAwC,kBAAvB5P,EAAKjO,OAAOzF,OAAsB0T,EAAKjO,OAAOzF,OAAgC,YAAvB0T,EAAKjO,OAAOzF,OAAuB2T,EAAU0P,MAAM3P,EAAKjO,OAAOzF,aAAU7Q,GACnMghB,EAAWpB,EAAI,IAAM2E,EAAK7C,KAAK/E,KAAK,GAAK,IAAM4H,EAAK7C,KAAK/E,KAAK,GAAK,IAAM4H,EAAK7C,KAAK/E,KAAK,GAAG3R,cAAgB,IAAMuZ,EAAK7C,KAAK/E,KAAK,GAAG3R,cAAgB,SAItHhL,IAFZmX,EAASA,EAAS,GAAImN,GAAiB6O,KAAKjf,MAAMif,KAAKtf,UAAUkC,EAAQqd,SAAW,MAEtFtX,gBAAiE9b,IAAtCwkB,EAAUC,cAAc3I,YAChEyI,EAAKjO,OAAOwF,UAAYyI,EAAK7C,KAAK5F,WAGpCyI,EAAKxC,WAAaR,EAAoBgD,GACtCA,EAAK5B,UAAYR,EAAiB,CAChC7L,OAAQiO,EAAKjO,OACboL,KAAM6C,EAAK7C,OAIf,SAASoE,GAAiBsO,GACxB,QAA+Bp0B,IAA3BukB,EAAK0B,kBAAT,CACAF,GAAa,yBACb,IAAItK,EAAkB2Y,GAAyB7P,EAAKqO,iBAChDyB,EAAiB5c,MAAMrd,UAAUk6B,OAAOv7B,KAAKwrB,EAAK0B,kBAAkBoG,UAAU,SAAUkI,EAAKC,GAC/F,OAAOD,EAAMC,EAAMC,eAClB,GACCC,EAAgBnQ,EAAK0B,kBAAkBM,YACvCoO,EAAYpQ,EAAKjO,OAAOkF,SAASvnB,MAAM,KACvC2gC,EAAoBD,EAAU,GAC9BE,EAAsBF,EAAU3zB,OAAS,EAAI2zB,EAAU,GAAK,KAC5DG,EAAcrZ,EAAgBnS,wBAC9ByrB,EAAqB9kB,OAAO+kB,YAAcF,EAAYG,OACtDC,EAAkC,UAAtBN,GAAuD,UAAtBA,GAAiCG,EAAqBV,GAAkBS,EAAY1sB,IAAMisB,EACvIjsB,EAAM6H,OAAOklB,YAAcL,EAAY1sB,KAAQ8sB,GAAgDb,EAAiB,EAArD5Y,EAAgBgZ,aAAe,GAG9F,GAFA/W,EAAY6G,EAAK0B,kBAAmB,YAAaiP,GACjDxX,EAAY6G,EAAK0B,kBAAmB,cAAeiP,IAC/C3Q,EAAKjO,OAAO+D,OAAhB,CACA,IAAIvN,EAAOmD,OAAOmlB,YAAcN,EAAYhoB,KACxCuoB,GAAW,EACXC,GAAU,EAEc,WAAxBT,GACF/nB,IAAS4nB,EAAgBI,EAAYtO,OAAS,EAC9C6O,GAAW,GACsB,UAAxBR,IACT/nB,GAAQ4nB,EAAgBI,EAAYtO,MACpC8O,GAAU,GAGZ5X,EAAY6G,EAAK0B,kBAAmB,aAAcoP,IAAaC,GAC/D5X,EAAY6G,EAAK0B,kBAAmB,cAAeoP,GACnD3X,EAAY6G,EAAK0B,kBAAmB,aAAcqP,GAClD,IAAIC,EAAQtlB,OAAOG,SAASyY,KAAKtC,aAAetW,OAAOmlB,YAAcN,EAAYS,OAC7EC,EAAY1oB,EAAO4nB,EAAgBzkB,OAAOG,SAASyY,KAAKtC,YACxDkP,EAAaF,EAAQb,EAAgBzkB,OAAOG,SAASyY,KAAKtC,YAE9D,GADA7I,EAAY6G,EAAK0B,kBAAmB,YAAauP,IAC7CjR,EAAKjO,OAAOuF,OAGhB,GAFA0I,EAAK0B,kBAAkBtc,MAAMvB,IAAMA,EAAM,KAEpCotB,EAGE,GAAKC,EAGL,CACL,IAAIC,EAAMC,KAEV,QAAY31B,IAAR01B,EAAmB,OACvB,IAAIE,EAAY3lB,OAAOG,SAASyY,KAAKtC,YACjCsP,EAAankB,KAAKmS,IAAI,EAAG+R,EAAY,EAAIlB,EAAgB,GACzDoB,EAAe,wCACfC,EAAc,uCACdC,EAAcN,EAAIO,SAASj1B,OAC3Bk1B,EAAc,SAAWpB,EAAYhoB,KAAO,kBAChD4Q,EAAY6G,EAAK0B,kBAAmB,aAAa,GACjDvI,EAAY6G,EAAK0B,kBAAmB,cAAc,GAClDyP,EAAIS,WAAWL,EAAe,IAAMC,EAAcG,EAAaF,GAC/DzR,EAAK0B,kBAAkBtc,MAAMmD,KAAO+oB,EAAa,KACjDtR,EAAK0B,kBAAkBtc,MAAM4rB,MAAQ,YAhBrChR,EAAK0B,kBAAkBtc,MAAMmD,KAAO,OACpCyX,EAAK0B,kBAAkBtc,MAAM4rB,MAAQA,EAAQ,UAJ7ChR,EAAK0B,kBAAkBtc,MAAMmD,KAAOA,EAAO,KAC3CyX,EAAK0B,kBAAkBtc,MAAM4rB,MAAQ,SAsBzC,SAASI,KAGP,IAFA,IAAIS,EAAgB,KAEXh2B,EAAI,EAAGA,EAAIgQ,SAASimB,YAAYr1B,OAAQZ,IAAK,CACpD,IAAIk2B,EAAQlmB,SAASimB,YAAYj2B,GAEjC,IACEk2B,EAAML,SACN,MAAO5lB,GACP,SAGF+lB,EAAgBE,EAChB,MAGF,OAAwB,MAAjBF,EAAwBA,EAAgBG,KAGjD,SAASA,KACP,IAAI5sB,EAAQyG,SAASwN,cAAc,SAEnC,OADAxN,SAASomB,KAAK5X,YAAYjV,GACnBA,EAAM2sB,MAGf,SAASvM,KACHxF,EAAKjO,OAAOoE,YAAc6J,EAAK3C,WACnCkI,IACAoF,KACArE,KAGF,SAAS4G,KACPlN,EAAKyC,OAAOiF,SAEwC,IAAhDhc,OAAOsI,UAAUC,UAAU7X,QAAQ,cAAiDX,IAA/BuY,UAAUke,iBAEjE97B,WAAW4pB,EAAKxpB,MAAO,GAEvBwpB,EAAKxpB,QAIT,SAASouB,GAAWzV,GAClBA,EAAE8d,iBACF9d,EAAEke,kBAEF,IAAI8E,EAAe,SAAUh0B,GAC3B,OAAOA,EAAIrE,WAAaqE,EAAIrE,UAAU4rB,SAAS,mBAAqBvnB,EAAIrE,UAAU4rB,SAAS,wBAA0BvnB,EAAIrE,UAAU4rB,SAAS,eAG1I7S,EAAI8G,EAAWW,EAAenL,GAAIgjB,GACtC,QAAU12B,IAANoX,EAAJ,CACA,IAAIxZ,EAASwZ,EACTuf,EAAepS,EAAKkB,sBAAwB,IAAIvU,KAAKtT,EAAOyhB,QAAQ1F,WACpEid,GAAqBD,EAAaxV,WAAaoD,EAAKO,cAAgB6R,EAAaxV,WAAaoD,EAAKO,aAAeP,EAAKjO,OAAOsF,WAAa,IAA2B,UAArB2I,EAAKjO,OAAOiE,KAEjK,GADAgK,EAAKqH,iBAAmBhuB,EACC,WAArB2mB,EAAKjO,OAAOiE,KAAmBgK,EAAKgB,cAAgB,CAACoR,QAAmB,GAAyB,aAArBpS,EAAKjO,OAAOiE,KAAqB,CAC/G,IAAIsc,EAAgBlL,GAAegL,GAC/BE,EAAetS,EAAKgB,cAAckK,OAAOre,SAASylB,GAAgB,GAAQtS,EAAKgB,cAAcve,KAAK2vB,OACxE,UAArBpS,EAAKjO,OAAOiE,OACa,IAA9BgK,EAAKgB,cAAcvkB,QACrBujB,EAAK3W,OAAM,GAAO,GAGpB2W,EAAKkB,sBAAwBkR,EAC7BpS,EAAKgB,cAAcve,KAAK2vB,GAEwC,IAA5DtT,EAAasT,EAAcpS,EAAKgB,cAAc,IAAI,IAAahB,EAAKgB,cAAcuR,MAAK,SAAUnf,EAAGrhB,GACtG,OAAOqhB,EAAEgC,UAAYrjB,EAAEqjB,cAK3B,GAFAsN,IAEI2P,EAAmB,CACrB,IAAI9F,EAAYvM,EAAKQ,cAAgB4R,EAAa1c,cAClDsK,EAAKQ,YAAc4R,EAAa1c,cAChCsK,EAAKO,aAAe6R,EAAaxV,WAE7B2P,IACF/K,GAAa,gBACb+D,KAGF/D,GAAa,iBAYf,GATAmJ,KACArE,IACAlF,KAEKiR,GAA0C,UAArBrS,EAAKjO,OAAOiE,MAA+C,IAA3BgK,EAAKjO,OAAOsF,gBAA4E5b,IAA1BukB,EAAKqH,uBAAuD5rB,IAArBukB,EAAK8C,aAClK9C,EAAKqH,kBAAoBrH,EAAKqH,iBAAiBK,QADuCF,EAAenuB,QAG9EoC,IAArBukB,EAAK8C,kBAAgDrnB,IAArBukB,EAAK8C,aAA6B9C,EAAK8C,YAAY4E,QAEnF1H,EAAKjO,OAAOsC,cAAe,CAC7B,IAAIme,EAA8B,WAArBxS,EAAKjO,OAAOiE,OAAsBgK,EAAKjO,OAAOgD,WACvD0d,EAA6B,UAArBzS,EAAKjO,OAAOiE,MAAkD,IAA9BgK,EAAKgB,cAAcvkB,SAAiBujB,EAAKjO,OAAOgD,YAExFyd,GAAUC,IACZvF,KAIJjJ,KAllDFjE,EAAK5B,UAAYR,EAAiB,CAChC7L,OAAQiO,EAAKjO,OACboL,KAAM6C,EAAK7C,OAEb6C,EAAKgE,UAAY,GACjBhE,EAAKuN,eAAiB,GACtBvN,EAAK0S,cAAgB,GACrB1S,EAAK2S,MAAQ1pB,EACb+W,EAAK4S,kBAAoB3R,EACzBjB,EAAK6S,kBAAoBtR,GACzBvB,EAAKsI,YAAcA,GACnBtI,EAAK8D,WAAaA,GAClB9D,EAAK3W,MAAQA,GACb2W,EAAKxpB,MAAQA,GACbwpB,EAAK8S,eAAiBzZ,EACtB2G,EAAKlqB,QAAUA,GACfkqB,EAAKgH,UAAYA,GACjBhH,EAAKkF,WAAaA,EAClBlF,EAAK9pB,KAAOA,GACZ8pB,EAAKwF,OAASA,GACdxF,EAAK9lB,IAAMA,GACX8lB,EAAK1K,QAAUA,GACf0K,EAAK+S,OAASA,GA+jDd,IAAIC,GAAY,CACd1mB,OAAQ,CAACqU,GAAasK,IACtB5T,WAAY,CAAC8S,GAAa9I,EAAkBgF,IAC5ClF,QAAS,CAAC+D,GACV7B,QAAS,CAAC6B,IAGZ,SAAShrB,GAAI+4B,EAAQruB,GACnB,GAAe,OAAXquB,GAAqC,kBAAXA,EAG5B,IAAK,IAAI77B,KAFTnC,OAAOkQ,OAAO6a,EAAKjO,OAAQkhB,GAEXA,OACSx3B,IAAnBu3B,GAAU57B,IAAoB47B,GAAU57B,GAAKqN,SAAQ,SAAU0D,GACjE,OAAOA,YAIX6X,EAAKjO,OAAOkhB,GAAUruB,OACInJ,IAAtBu3B,GAAUC,GAAuBD,GAAUC,GAAQxuB,SAAQ,SAAU0D,GACvE,OAAOA,OACGmL,EAAMlX,QAAQ62B,IAAW,IAAGjT,EAAKjO,OAAOkhB,GAAU/Z,EAAStU,IAGzEob,EAAKwF,SACLpE,IAAY,GAGd,SAAS8R,GAAgBC,EAAW9gC,GAClC,IAAIy8B,EAAQ,GACZ,GAAIqE,aAAqBjgB,MAAO4b,EAAQqE,EAAU1V,KAAI,SAAUnsB,GAC9D,OAAO0uB,EAAK5B,UAAU9sB,EAAGe,WACnB,GAAI8gC,aAAqBxmB,MAA6B,kBAAdwmB,EAAwBrE,EAAQ,CAAC9O,EAAK5B,UAAU+U,EAAW9gC,SAAc,GAAyB,kBAAd8gC,EAClI,OAAQnT,EAAKjO,OAAOiE,MAClB,IAAK,SACL,IAAK,OACH8Y,EAAQ,CAAC9O,EAAK5B,UAAU+U,EAAW9gC,IACnC,MAEF,IAAK,WACHy8B,EAAQqE,EAAUzjC,MAAMswB,EAAKjO,OAAOuC,aAAamJ,KAAI,SAAUhQ,GAC7D,OAAOuS,EAAK5B,UAAU3Q,EAAMpb,MAE9B,MAEF,IAAK,QACHy8B,EAAQqE,EAAUzjC,MAAMswB,EAAK7C,KAAKnF,gBAAgByF,KAAI,SAAUhQ,GAC9D,OAAOuS,EAAK5B,UAAU3Q,EAAMpb,WAI7B2tB,EAAKjO,OAAOiD,aAAa,IAAIle,MAAM,0BAA4B83B,KAAKtf,UAAU6jB,KACrFnT,EAAKgB,cAAgBhB,EAAKjO,OAAO4B,oBAAsBmb,EAAQA,EAAMtB,QAAO,SAAUl8B,GACpF,OAAOA,aAAaqb,MAAQqa,GAAU11B,GAAG,MAElB,UAArB0uB,EAAKjO,OAAOiE,MAAkBgK,EAAKgB,cAAcuR,MAAK,SAAUnf,EAAGrhB,GACrE,OAAOqhB,EAAEgC,UAAYrjB,EAAEqjB,aAI3B,SAASE,GAAQ7H,EAAMwW,EAAe5xB,GASpC,QARsB,IAAlB4xB,IACFA,GAAgB,QAGH,IAAX5xB,IACFA,EAAS2tB,EAAKjO,OAAOwC,YAGV,IAAT9G,IAAeA,GAAQA,aAAgByF,OAAyB,IAAhBzF,EAAKhR,OAAc,OAAOujB,EAAK3W,MAAM4a,GACzFiP,GAAgBzlB,EAAMpb,GACtB2tB,EAAKkB,sBAAwBlB,EAAKgB,cAAchB,EAAKgB,cAAcvkB,OAAS,GAC5EujB,EAAKwF,SACLN,OAAWzpB,EAAWwoB,GACtBhD,IAEkC,IAA9BjB,EAAKgB,cAAcvkB,QACrBujB,EAAK3W,OAAM,GAGb+X,GAAY6C,GACRA,GAAezC,GAAa,YAGlC,SAASuN,GAAepR,GACtB,OAAOA,EAAIthB,QAAQohB,KAAI,SAAU2V,GAC/B,MAAoB,kBAATA,GAAqC,kBAATA,GAAqBA,aAAgBzmB,KACnEqT,EAAK5B,UAAUgV,OAAM33B,GAAW,GAC9B23B,GAAwB,kBAATA,GAAqBA,EAAKzG,MAAQyG,EAAKxG,GAAW,CAC1ED,KAAM3M,EAAK5B,UAAUgV,EAAKzG,UAAMlxB,GAChCmxB,GAAI5M,EAAK5B,UAAUgV,EAAKxG,QAAInxB,IAGvB23B,KACN5F,QAAO,SAAUrlB,GAClB,OAAOA,KAIX,SAAS0Y,KACPb,EAAKgB,cAAgB,GACrBhB,EAAKlR,IAAMkR,EAAK5B,UAAU4B,EAAKjO,OAAOjD,MAAQ,IAAInC,KAElD,IAAI0mB,EAAgBrT,EAAKjO,OAAOsQ,cAAyC,UAAxBrC,EAAKzjB,MAAM+2B,UAAgD,aAAxBtT,EAAKzjB,MAAM+2B,WAA4BtT,EAAKzjB,MAAMg3B,aAAevT,EAAKzjB,MAAMqI,QAAUob,EAAKzjB,MAAMg3B,YAAqBvT,EAAKzjB,MAAMqI,MAAlB,MAC/LyuB,GAAeH,GAAgBG,EAAerT,EAAKjO,OAAOwC,YAC9DyL,EAAKyL,aAAezL,EAAKgB,cAAcvkB,OAAS,EAAIujB,EAAKgB,cAAc,GAAKhB,EAAKjO,OAAOoP,SAAWnB,EAAKjO,OAAOoP,QAAQ/L,UAAY4K,EAAKlR,IAAIsG,UAAY4K,EAAKjO,OAAOoP,QAAUnB,EAAKjO,OAAOsR,SAAWrD,EAAKjO,OAAOsR,QAAQjO,UAAY4K,EAAKlR,IAAIsG,UAAY4K,EAAKjO,OAAOsR,QAAUrD,EAAKlR,IACrRkR,EAAKQ,YAAcR,EAAKyL,aAAa/V,cACrCsK,EAAKO,aAAeP,EAAKyL,aAAa7O,WAClCoD,EAAKgB,cAAcvkB,OAAS,IAAGujB,EAAKkB,sBAAwBlB,EAAKgB,cAAc,SACvDvlB,IAAxBukB,EAAKjO,OAAOmR,UAAuBlD,EAAKjO,OAAOmR,QAAUlD,EAAK5B,UAAU4B,EAAKjO,OAAOmR,QAAS,aACrEznB,IAAxBukB,EAAKjO,OAAOqR,UAAuBpD,EAAKjO,OAAOqR,QAAUpD,EAAK5B,UAAU4B,EAAKjO,OAAOqR,QAAS,QACjGpD,EAAKmD,iBAAmBnD,EAAKjO,OAAOoP,UAAYnB,EAAKjO,OAAOoP,QAAQ7F,WAAa,GAAK0E,EAAKjO,OAAOoP,QAAQrE,aAAe,GAAKkD,EAAKjO,OAAOoP,QAAQtE,aAAe,GACjKmD,EAAKsD,iBAAmBtD,EAAKjO,OAAOsR,UAAYrD,EAAKjO,OAAOsR,QAAQ/H,WAAa,GAAK0E,EAAKjO,OAAOsR,QAAQvG,aAAe,GAAKkD,EAAKjO,OAAOsR,QAAQxG,aAAe,GAGnK,SAAS+D,KACPZ,EAAKzjB,MAAQmzB,KAGR1P,EAAKzjB,OAMVyjB,EAAKzjB,MAAMovB,MAAQ3L,EAAKzjB,MAAMkM,KAC9BuX,EAAKzjB,MAAMkM,KAAO,OAClBuX,EAAKzjB,MAAMzC,UAAUC,IAAI,mBACzBimB,EAAKyC,OAASzC,EAAKzjB,MAEfyjB,EAAKjO,OAAO8B,WAEdmM,EAAKnM,SAAWwF,EAAc2G,EAAKzjB,MAAM+2B,SAAUtT,EAAKjO,OAAO+B,eAC/DkM,EAAKyC,OAASzC,EAAKnM,SACnBmM,EAAKnM,SAAS0f,YAAcvT,EAAKzjB,MAAMg3B,YACvCvT,EAAKnM,SAASqW,SAAWlK,EAAKzjB,MAAM2tB,SACpClK,EAAKnM,SAAS2f,SAAWxT,EAAKzjB,MAAMi3B,SACpCxT,EAAKnM,SAASmS,SAAWhG,EAAKzjB,MAAMypB,SACpChG,EAAKnM,SAASpL,KAAO,OACrBuX,EAAKzjB,MAAMrE,aAAa,OAAQ,WAC3B8nB,EAAKjO,OAAOuF,QAAU0I,EAAKzjB,MAAMsd,YAAYmG,EAAKzjB,MAAMsd,WAAW8M,aAAa3G,EAAKnM,SAAUmM,EAAKzjB,MAAMqqB,cAG5G5G,EAAKjO,OAAO2B,YAAYsM,EAAKyC,OAAOvqB,aAAa,WAAY,YAClE8nB,EAAKqO,iBAAmBrO,EAAKjO,OAAOmF,iBAAmB8I,EAAKyC,QAxB1DzC,EAAKjO,OAAOiD,aAAa,IAAIle,MAAM,oCA2BvC,SAASotB,KACP,IAAIuP,EAAYzT,EAAKjO,OAAOgD,WAAaiL,EAAKjO,OAAOoE,WAAa,OAAS,iBAAmB,OAC9F6J,EAAKwL,YAAcnS,EAAc,QAAS2G,EAAKzjB,MAAM1C,UAAY,qBACjEmmB,EAAKwL,YAAYxF,SAAW,EAC5BhG,EAAKwL,YAAY/iB,KAAOgrB,EACxBzT,EAAKwL,YAAYtB,SAAWlK,EAAKzjB,MAAM2tB,SACvClK,EAAKwL,YAAYgI,SAAWxT,EAAKzjB,MAAMi3B,SACvCxT,EAAKwL,YAAY+H,YAAcvT,EAAKzjB,MAAMg3B,YAC1CvT,EAAK0T,gBAAgC,mBAAdD,EAAiC,gBAAgC,SAAdA,EAAuB,QAAU,QAEvGzT,EAAKgB,cAAcvkB,OAAS,IAC9BujB,EAAKwL,YAAYmI,aAAe3T,EAAKwL,YAAY5mB,MAAQob,EAAKxC,WAAWwC,EAAKgB,cAAc,GAAIhB,EAAK0T,kBAGnG1T,EAAKjO,OAAOoP,UAASnB,EAAKwL,YAAYnM,IAAMW,EAAKxC,WAAWwC,EAAKjO,OAAOoP,QAAS,UACjFnB,EAAKjO,OAAOsR,UAASrD,EAAKwL,YAAYlM,IAAMU,EAAKxC,WAAWwC,EAAKjO,OAAOsR,QAAS,UACjFrD,EAAKzjB,MAAMzE,aAAa,UAASkoB,EAAKwL,YAAYoI,KAAO14B,OAAO8kB,EAAKzjB,MAAMzE,aAAa,UAC5FkoB,EAAKzjB,MAAMkM,KAAO,cACIhN,IAAlBukB,EAAKnM,WAAwBmM,EAAKnM,SAASpL,KAAO,UAEtD,IACMuX,EAAKzjB,MAAMsd,YAAYmG,EAAKzjB,MAAMsd,WAAW8M,aAAa3G,EAAKwL,YAAaxL,EAAKzjB,MAAMqqB,aAC3F,MAAO/kB,IAEToH,EAAK+W,EAAKwL,YAAa,UAAU,SAAUrc,GACzC6Q,EAAK1K,QAAQgF,EAAenL,GAAGvK,OAAO,EAAOob,EAAK0T,iBAClDlS,GAAa,YACbA,GAAa,cAIjB,SAASuR,GAAO5jB,GACd,IAAoB,IAAhB6Q,EAAKtpB,OAAiB,OAAOspB,EAAKxpB,QACtCwpB,EAAK9pB,KAAKiZ,GAGZ,SAASqS,GAAaze,EAAO8B,GAE3B,QAAoBpJ,IAAhBukB,EAAKjO,OAAT,CACA,IAAI8hB,EAAQ7T,EAAKjO,OAAOhP,GAExB,QAActH,IAAVo4B,GAAuBA,EAAMp3B,OAAS,EACxC,IAAK,IAAIZ,EAAI,EAAGg4B,EAAMh4B,IAAMA,EAAIg4B,EAAMp3B,OAAQZ,IAAKg4B,EAAMh4B,GAAGmkB,EAAKgB,cAAehB,EAAKzjB,MAAMqI,MAAOob,EAAMnb,GAG5F,aAAV9B,IACFid,EAAKzjB,MAAMspB,cAAcD,GAAY,WAErC5F,EAAKzjB,MAAMspB,cAAcD,GAAY,YAIzC,SAASA,GAAYtT,GACnB,IAAInD,EAAItD,SAAS+Z,YAAY,SAE7B,OADAzW,EAAE2kB,UAAUxhB,GAAM,GAAM,GACjBnD,EAGT,SAASiY,GAAe3Z,GACtB,IAAK,IAAI5R,EAAI,EAAGA,EAAImkB,EAAKgB,cAAcvkB,OAAQZ,IAC7C,GAAkD,IAA9CijB,EAAakB,EAAKgB,cAAcnlB,GAAI4R,GAAa,MAAO,GAAK5R,EAGnE,OAAO,EAGT,SAASyrB,GAAc7Z,GACrB,QAAyB,UAArBuS,EAAKjO,OAAOiE,MAAoBgK,EAAKgB,cAAcvkB,OAAS,IACzDqiB,EAAarR,EAAMuS,EAAKgB,cAAc,KAAO,GAAKlC,EAAarR,EAAMuS,EAAKgB,cAAc,KAAO,EAGxG,SAAS2J,KACH3K,EAAKjO,OAAOoE,YAAc6J,EAAK3C,WAAa2C,EAAK0E,WACrD1E,EAAKqK,aAAa5lB,SAAQ,SAAUulB,EAAanuB,GAC/C,IAAIvK,EAAI,IAAIqb,KAAKqT,EAAKQ,YAAaR,EAAKO,aAAc,GACtDjvB,EAAE0pB,SAASgF,EAAKO,aAAe1kB,GAE3BmkB,EAAKjO,OAAOsF,WAAa,GAAuC,WAAlC2I,EAAKjO,OAAOkE,kBAC5C+J,EAAKsK,cAAczuB,GAAG7D,YAAcyiB,EAAWnpB,EAAEsrB,WAAYoD,EAAKjO,OAAOqF,sBAAuB4I,EAAK7C,MAAQ,IAE7G6C,EAAKwJ,wBAAwB5kB,MAAQtT,EAAEsrB,WAAWrP,WAGpDyc,EAAYplB,MAAQtT,EAAEokB,cAAcnI,cAEtCyS,EAAKoL,yBAA8C3vB,IAAxBukB,EAAKjO,OAAOoP,UAA0BnB,EAAKQ,cAAgBR,EAAKjO,OAAOoP,QAAQzL,cAAgBsK,EAAKO,cAAgBP,EAAKjO,OAAOoP,QAAQvE,WAAaoD,EAAKQ,YAAcR,EAAKjO,OAAOoP,QAAQzL,eACvNsK,EAAKqL,yBAA8C5vB,IAAxBukB,EAAKjO,OAAOsR,UAA0BrD,EAAKQ,cAAgBR,EAAKjO,OAAOsR,QAAQ3N,cAAgBsK,EAAKO,aAAe,EAAIP,EAAKjO,OAAOsR,QAAQzG,WAAaoD,EAAKQ,YAAcR,EAAKjO,OAAOsR,QAAQ3N,gBAG5N,SAASqe,GAAW1hC,GAClB,OAAO2tB,EAAKgB,cAAcvD,KAAI,SAAUuW,GACtC,OAAOhU,EAAKxC,WAAWwW,EAAM3hC,MAC5Bm7B,QAAO,SAAUl8B,EAAGuK,EAAG8hB,GACxB,MAA4B,UAArBqC,EAAKjO,OAAOiE,MAAoBgK,EAAKjO,OAAOgD,YAAc4I,EAAIvhB,QAAQ9K,KAAOuK,KACnFgP,KAA0B,UAArBmV,EAAKjO,OAAOiE,KAAmBgK,EAAKjO,OAAOuC,YAAc0L,EAAK7C,KAAKnF,gBAO7E,SAASoJ,GAAY6C,QACG,IAAlBA,IACFA,GAAgB,QAGOxoB,IAArBukB,EAAKwL,aAA6BxL,EAAK0T,kBACzC1T,EAAKwL,YAAY5mB,WAAuCnJ,IAA/BukB,EAAKkB,sBAAsClB,EAAKxC,WAAWwC,EAAKkB,sBAAuBlB,EAAK0T,iBAAmB,IAG1I1T,EAAKzjB,MAAMqI,MAAQmvB,GAAW/T,EAAKjO,OAAOwC,iBAEpB9Y,IAAlBukB,EAAKnM,WACPmM,EAAKnM,SAASjP,MAAQmvB,GAAW/T,EAAKjO,OAAO6B,aAGzB,IAAlBqQ,GAAyBzC,GAAa,iBAG5C,SAASmD,GAAgBxV,GACvB,IAAIyU,EAActJ,EAAenL,GAC7B8kB,EAAcjU,EAAKoK,aAAa1E,SAAS9B,GACzCsQ,EAAclU,EAAKuK,aAAa7E,SAAS9B,GAEzCqQ,GAAeC,EACjB5L,GAAY2L,GAAe,EAAI,GACtBjU,EAAKqK,aAAajuB,QAAQwnB,IAAgB,EACnDA,EAAYmB,SACHnB,EAAY9pB,UAAU4rB,SAAS,WACxC1F,EAAK8D,WAAW9D,EAAKQ,YAAc,GAC1BoD,EAAY9pB,UAAU4rB,SAAS,cACxC1F,EAAK8D,WAAW9D,EAAKQ,YAAc,GAIvC,SAAS+B,GAAYpT,GACnBA,EAAE8d,iBACF,IAAIkH,EAAuB,YAAXhlB,EAAE1G,KACdmb,EAActJ,EAAenL,GAC7B5S,EAAQqnB,OAEMnoB,IAAdukB,EAAK5H,MAAsBwL,IAAgB5D,EAAK5H,OAClD4H,EAAK5H,KAAKpgB,YAAcgoB,EAAK7C,KAAK/E,KAAKM,EAAIsH,EAAK5H,KAAKpgB,cAAgBgoB,EAAK7C,KAAK/E,KAAK,MAGtF,IAAIiH,EAAMnE,WAAW3e,EAAMzE,aAAa,QACpCwnB,EAAMpE,WAAW3e,EAAMzE,aAAa,QACpC87B,EAAO1Y,WAAW3e,EAAMzE,aAAa,SACrCs8B,EAAWvnB,SAAStQ,EAAMqI,MAAO,IAEjCyvB,EAAWD,EAAWR,GADdzkB,EAAE0U,QAAUsQ,EAAwB,KAAZhlB,EAAEmlB,MAAe,GAAK,EAAI,IAG9D,GAA2B,qBAAhB/3B,EAAMqI,OAAgD,IAAvBrI,EAAMqI,MAAMnI,OAAc,CAClE,IAAI83B,EAAah4B,IAAUyjB,EAAK8C,YAC5B0R,EAAej4B,IAAUyjB,EAAK+C,cAE9BsR,EAAWhV,GACbgV,EAAW/U,EAAM+U,EAAW3b,GAAK6b,IAAe7b,EAAI6b,IAAe7b,GAAKsH,EAAK5H,OACzEoc,GAAc/O,OAAkBhqB,GAAY,EAAGukB,EAAK8C,cAC/CuR,EAAW/U,IACpB+U,EAAW93B,IAAUyjB,EAAK8C,YAAcuR,EAAW/U,EAAM5G,GAAKsH,EAAK5H,MAAQiH,EACvEmV,GAAc/O,OAAkBhqB,EAAW,EAAGukB,EAAK8C,cAGrD9C,EAAK5H,MAAQmc,IAAwB,IAATX,EAAaS,EAAWD,IAAa,GAAKjnB,KAAKC,IAAIinB,EAAWD,GAAYR,KACxG5T,EAAK5H,KAAKpgB,YAAcgoB,EAAK7C,KAAK/E,KAAKM,EAAIsH,EAAK5H,KAAKpgB,cAAgBgoB,EAAK7C,KAAK/E,KAAK,MAGtF7b,EAAMqI,MAAQ6T,EAAI4b,IAKtB,OADA5T,IACOT,EAKT,SAASyU,EAAWC,EAAU3iB,GAO5B,IALA,IAAI4iB,EAAQzhB,MAAMrd,UAAUwG,MAAM7H,KAAKkgC,GAAUlH,QAAO,SAAUrlB,GAChE,OAAOA,aAAaysB,eAElBC,EAAY,GAEPh5B,EAAI,EAAGA,EAAI84B,EAAMl4B,OAAQZ,IAAK,CACrC,IAAI2d,EAAOmb,EAAM94B,GAEjB,IACE,GAA0C,OAAtC2d,EAAK1hB,aAAa,gBAA0B,cAExB2D,IAApB+d,EAAKib,aACPjb,EAAKib,WAAW3+B,UAEhB0jB,EAAKib,gBAAah5B,GAGpB+d,EAAKib,WAAa3U,EAAkBtG,EAAMzH,GAAU,IACpD8iB,EAAUpyB,KAAK+W,EAAKib,YACpB,MAAOtlB,KAGX,OAA4B,IAArB0lB,EAAUp4B,OAAeo4B,EAAU,GAAKA,EAKtB,qBAAhBD,aAAyD,qBAAnBE,gBAAsD,qBAAbC,WAExFD,eAAej/B,UAAUoqB,UAAY8U,SAASl/B,UAAUoqB,UAAY,SAAUlO,GAC5E,OAAO0iB,EAAWhgC,KAAMsd,IAG1B6iB,YAAY/+B,UAAUoqB,UAAY,SAAUlO,GAC1C,OAAO0iB,EAAW,CAAChgC,MAAOsd,KAM9B,IAAIkO,EAAY,SAAU+U,EAAUjjB,GAClC,MAAwB,kBAAbijB,EACFP,EAAW/oB,OAAOG,SAASvH,iBAAiB0wB,GAAWjjB,GACrDijB,aAAoBC,KACtBR,EAAW,CAACO,GAAWjjB,GAEvB0iB,EAAWO,EAAUjjB,IAwChC,OAlCAkO,EAAUC,cAAgB,GAC1BD,EAAU0P,MAAQ,CAChBuF,GAAItiB,EAAS,GAAI8E,GACjBkY,QAAShd,EAAS,GAAI8E,IAGxBuI,EAAUkV,SAAW,SAAUhY,GAC7B8C,EAAU0P,MAAMC,QAAUhd,EAASA,EAAS,GAAIqN,EAAU0P,MAAMC,SAAUzS,IAG5E8C,EAAUmV,YAAc,SAAUrjB,GAChCkO,EAAUC,cAAgBtN,EAASA,EAAS,GAAIqN,EAAUC,eAAgBnO,IAG5EkO,EAAU7B,UAAYR,EAAiB,IACvCqC,EAAUzC,WAAaR,EAAoB,IAC3CiD,EAAUnB,aAAeA,EAGH,qBAAXuW,QAA+C,qBAAdA,OAAOzW,KACjDyW,OAAOzW,GAAGqB,UAAY,SAAUlO,GAC9B,OAAO0iB,EAAWhgC,KAAMsd,KAK5BpF,KAAK9W,UAAUy/B,QAAU,SAAUvT,GACjC,OAAO,IAAIpV,KAAKlY,KAAKihB,cAAejhB,KAAKmoB,WAAYnoB,KAAK8gB,WAA6B,kBAATwM,EAAoBlV,SAASkV,EAAM,IAAMA,KAGnG,qBAAXrW,SACTA,OAAOuU,UAAYA,GAGdA,EAxjFyE9tB,I,uBCFlF,qBAEE,YACE,WACE,IAAIkK,EAAQ,GAAGA,MACf5H,KAAK8gC,YAAc,CACjBC,SAAU,CACR,cAAiB,CACf,QAAW,UACX,KAAQ,OACR,aAAgB,uBAChB,UAAa,uBAEf,mBAAsB,SACtB,UAAa,CAAC,sBAAuB,4BAEvCC,UAAW/pB,OAAO+pB,UAClBC,OAAQhqB,OAAOuJ,QACf0gB,eAAgB,SAAUC,GACxB,IAAIC,EAMJ,OAJW,MAAPD,IACFA,EAAuC,OAAhCC,EAAMphC,KAAKqhC,UAAU,QAAkBD,EAAMphC,KAAK+gC,SAASO,oBAG7D,IAAIR,EAAYS,SAASvhC,KAAKwhC,mBAAmBL,KAE1DE,UAAW,SAAUxjB,GACnB,IAAId,EAEJ,OAAkB,OADlBA,EAAU3F,SAASomB,KAAKl5B,cAAc,2BAA6BuZ,EAAO,OACjDd,EAAQ1Z,aAAa,gBAAa,GAE7Dm+B,mBAAoB,SAAUL,GAC5B,IAAIxiB,EAEJ,OAAIwiB,IAAQ,UAAUjjC,KAAKijC,KACzBxiB,EAAIvH,SAASwN,cAAc,MACzB6c,KAAON,EACTxiB,EAAE8iB,KAAO9iB,EAAE8iB,KACX9iB,EAAE+iB,SAAW/iB,EAAE+iB,SAAS5jC,QAAQ,OAAQ,MACjC6gB,EAAE8iB,MAEFN,GAGXQ,eAAgB,WACd,OAAO3hC,KAAK4hC,WAAY,GAE1BC,cAAe,WACb,OAAO7hC,KAAK4hC,UAAY,MAE1BE,IAAK,WACH,IAAIr3B,EAAU22B,EAGd,GAFA32B,EAAW,GAAK3G,UAAUkE,OAASJ,EAAM7H,KAAK+D,UAAW,GAAK,GAE1D9D,KAAK4hC,UAEP,OADAn3B,EAASuD,KAAKkK,KAAKmC,QACX+mB,EAAMphC,KAAKihC,QAAQa,IAAIj+B,MAAMu9B,EAAK,CAAC,iBAAiBzqB,OAAO/O,EAAM7H,KAAK0K,SAInF1K,KAAKC,QACPD,KA7DWC,MA8Dd,IAAI8gC,EA9DU9gC,KA8DY8gC,aAC1B,YACE,WAOEA,EAAYiB,kBAAoB,WAC9B,IAAIC,EAAO3nB,EAAK4nB,EAOhB,SAASF,EAAkBG,GAdlB,IAAU/X,EAAIgY,EAerBniC,KAAKkiC,WAAaA,EAClBliC,KAAKoiC,qBAhBYjY,EAgBenqB,KAAKoiC,oBAhBhBD,EAgBqCniC,KAfrD,WACL,OAAOmqB,EAAGtmB,MAAMs+B,EAAIr+B,aAepB9D,KAAKqiC,kBAAoB,EAoH3B,OA7HAN,EAAkBO,aAAe,CAC/B1X,IAAK,EACLC,IAAK,IAEPkX,EAAkBQ,eAAiB,EAQnCR,EAAkB3gC,UAAUohC,MAAQ,WAClC,IAAKxiC,KAAKyiC,YAKR,OAJAziC,KAAK0iC,UAAYroB,WACVra,KAAK2iC,UACZ3iC,KAAK4iC,eACLxrB,SAAStR,iBAAiB,mBAAoB9F,KAAKoiC,qBAC5CtB,EAAYgB,IAAI,6CAA+C9hC,KAAK6iC,kBAAoB,QAInGd,EAAkB3gC,UAAU0hC,KAAO,WACjC,GAAI9iC,KAAKyiC,YAIP,OAHAziC,KAAK2iC,UAAYtoB,IACjBra,KAAK+iC,cACL3rB,SAASrR,oBAAoB,mBAAoB/F,KAAKoiC,qBAC/CtB,EAAYgB,IAAI,8BAI3BC,EAAkB3gC,UAAUqhC,UAAY,WACtC,OAAyB,MAAlBziC,KAAK0iC,WAAuC,MAAlB1iC,KAAK2iC,WAGxCZ,EAAkB3gC,UAAU4hC,WAAa,WACvC,OAAOhjC,KAAKijC,SAAW5oB,KAGzB0nB,EAAkB3gC,UAAU8hC,cAAgB,WAI1C,OAHAljC,KAAKqiC,kBAAoB,EACzBriC,KAAKgjC,oBACEhjC,KAAKmjC,eACLrC,EAAYgB,IAAI,uCAGzBC,EAAkB3gC,UAAUgiC,iBAAmB,WAE7C,OADApjC,KAAKmjC,eAAiB9oB,IACfymB,EAAYgB,IAAI,0CAGzBC,EAAkB3gC,UAAUwhC,aAAe,WAEzC,OADA5iC,KAAK+iC,cACE/iC,KAAKqjC,QAGdtB,EAAkB3gC,UAAU2hC,YAAc,WACxC,OAAOvhC,aAAaxB,KAAKsjC,cAG3BvB,EAAkB3gC,UAAUiiC,KAAO,WACjC,OAAOrjC,KAAKsjC,YAAc3hC,YAAqB7B,EAM7CE,KALO,WAGL,OAFAF,EAAMyjC,mBAECzjC,EAAMujC,SAERrjC,KAAK6iC,mBANuB,IAAU/iC,GASjDiiC,EAAkB3gC,UAAUyhC,gBAAkB,WAC5C,IAAIW,EAAU3Y,EAAKD,EAAKwW,EAGxB,OAFqCxW,GAArCwW,EAAMphC,KAAK2Z,YAAY2oB,cAAwB1X,IAAKC,EAAMuW,EAAIvW,IAC9D2Y,EAAW,EAAI9qB,KAAKopB,IAAI9hC,KAAKqiC,kBAAoB,GAC1C3pB,KAAKwI,MAAkC,IAA5B8gB,EAAMwB,EAAU5Y,EAAKC,KAGzCkX,EAAkB3gC,UAAUmiC,iBAAmB,WAC7C,GAAIvjC,KAAKyjC,oBAIP,OAHA3C,EAAYgB,IAAI,oEAAsE9hC,KAAKqiC,kBAAoB,oBAAsBriC,KAAK6iC,kBAAoB,4BAA8BZ,EAAajiC,KAAKmjC,gBAAkB,yBAA2BnjC,KAAK2Z,YAAY4oB,eAAiB,MAC7RviC,KAAKqiC,oBAEDriC,KAAK0jC,uBACA5C,EAAYgB,IAAI,2DAEvBhB,EAAYgB,IAAI,+BACT9hC,KAAKkiC,WAAWyB,WAK7B5B,EAAkB3gC,UAAUqiC,kBAAoB,WAC9C,IAAIrC,EACJ,OAAOa,EAAsC,OAAxBb,EAAMphC,KAAKijC,UAAoB7B,EAAMphC,KAAK0iC,WAAa1iC,KAAK2Z,YAAY4oB,gBAG/FR,EAAkB3gC,UAAUsiC,qBAAuB,WACjD,OAAO1jC,KAAKmjC,gBAAkBlB,EAAajiC,KAAKmjC,gBAAkBnjC,KAAK2Z,YAAY4oB,gBAGrFR,EAAkB3gC,UAAUghC,oBAAsB,WAChD,GAAiC,YAA7BhrB,SAASwsB,gBACX,OAAOjiC,YAAqB7B,EAO1BE,KANO,WACL,GAAIF,EAAM2jC,sBAAwB3jC,EAAMoiC,WAAWjgC,SAEjD,OADA6+B,EAAYgB,IAAI,sFAAwF1qB,SAASwsB,iBAC1G9jC,EAAMoiC,WAAWyB,WAGrB,KAPS,IAAU7jC,GAWhCua,EAAM,WACJ,OAAO,IAAInC,MAAOyI,WAGpBshB,EAAe,SAAU4B,GACvB,OAAQxpB,IAAQwpB,GAAQ,KAG1B7B,EAAQ,SAAU3kC,EAAQutB,EAAKC,GAC7B,OAAOnS,KAAKmS,IAAID,EAAKlS,KAAKkS,IAAIC,EAAKxtB,KAG9B0kC,EA/HuB,KAiI/BhiC,KAAKC,MACR,WACE,IAAIoH,EACA08B,EACAC,EACA3C,EACA4C,EAEAp8B,EAAQ,GAAGA,MAMXD,EAAU,GAAGA,SAAW,SAAUs8B,GACpC,IAAK,IAAI78B,EAAI,EAAGygB,EAAI7nB,KAAKgI,OAAQZ,EAAIygB,EAAGzgB,IACtC,GAAIA,KAAKpH,MAAQA,KAAKoH,KAAO68B,EAAM,OAAO78B,EAG5C,OAAQ,GAGVg6B,EAAMN,EAAYC,SAAU+C,EAAgB1C,EAAI0C,cAAeC,EAAY3C,EAAI2C,UAC/EC,EAAqB,GAAKD,EAAU/7B,OAASJ,EAAM7H,KAAKgkC,EAAW,EAAG38B,EAAI28B,EAAU/7B,OAAS,IAAMZ,EAAI,EAAG,IAA2B28B,EAAU38B,KAE/I05B,EAAYoD,WAAa,WAGvB,SAASA,EAAWC,GAnBX,IAAUha,EAAIgY,EAoBrBniC,KAAKmkC,SAAWA,EAChBnkC,KAAKyB,MArBY0oB,EAqBAnqB,KAAKyB,KArBD0gC,EAqBOniC,KApBvB,WACL,OAAOmqB,EAAGtmB,MAAMs+B,EAAIr+B,aAoBpB9D,KAAKokC,cAAgBpkC,KAAKmkC,SAASC,cACnCpkC,KAAKqkC,QAAU,IAAIvD,EAAYiB,kBAAkB/hC,MACjDA,KAAKskC,cAAe,EA+KtB,OAtLAJ,EAAWK,YAAc,IAUzBL,EAAW9iC,UAAUojC,KAAO,SAAUp0B,GACpC,QAAIpQ,KAAKiC,WACPjC,KAAKykC,UAAUD,KAAKrK,KAAKtf,UAAUzK,KAC5B,IAMX8zB,EAAW9iC,UAAUK,KAAO,WAC1B,OAAIzB,KAAK0kC,YACP5D,EAAYgB,IAAI,uDAAyD9hC,KAAK2kC,aACvE,IAEP7D,EAAYgB,IAAI,uCAAyC9hC,KAAK2kC,WAAa,mBAAqBZ,GAE1E,MAAlB/jC,KAAKykC,WACPzkC,KAAK4kC,yBAGP5kC,KAAKykC,UAAY,IAAI3D,EAAYE,UAAUhhC,KAAKmkC,SAAShD,IAAK4C,GAC9D/jC,KAAK6kC,uBACL7kC,KAAKqkC,QAAQ7B,SACN,IAIX0B,EAAW9iC,UAAUW,MAAQ,SAAU+iC,GACrC,IAAoBC,EASpB,IARyB,MAAPD,EAAcA,EAAM,CACpCE,gBAAgB,IACfA,gBAGDhlC,KAAKqkC,QAAQvB,OAGX9iC,KAAK0kC,WACP,OAAkC,OAA1BK,EAAO/kC,KAAKykC,WAAqBM,EAAKhjC,aAAU,GAI5DmiC,EAAW9iC,UAAUuiC,OAAS,WAC5B,IAAItmB,EAGJ,GAFAyjB,EAAYgB,IAAI,yCAA2C9hC,KAAK2kC,aAE5D3kC,KAAK0kC,WAWP,OAAO1kC,KAAKyB,OAVZ,IACE,OAAOzB,KAAK+B,QACZ,MAAOkjC,GAEP,OADA5nB,EAAQ4nB,EACDnE,EAAYgB,IAAI,6BAA8BzkB,GACrD,QACAyjB,EAAYgB,IAAI,0BAA4B9hC,KAAK2Z,YAAY4qB,YAAc,MAC3E5iC,WAAW3B,KAAKyB,KAAMzB,KAAK2Z,YAAY4qB,eAO7CL,EAAW9iC,UAAU8jC,YAAc,WACjC,IAAIH,EACJ,OAAkC,OAA1BA,EAAO/kC,KAAKykC,WAAqBM,EAAKrD,cAAW,GAG3DwC,EAAW9iC,UAAUa,OAAS,WAC5B,OAAOjC,KAAKmlC,QAAQ,SAGtBjB,EAAW9iC,UAAUsjC,SAAW,WAC9B,OAAO1kC,KAAKmlC,QAAQ,OAAQ,eAG9BjB,EAAW9iC,UAAUgkC,oBAAsB,WACzC,IAAIL,EACJ,OAAOA,EAAO/kC,KAAKklC,cAAev9B,EAAQ5H,KAAKikC,EAAoBe,IAAS,GAG9Eb,EAAW9iC,UAAU+jC,QAAU,WAC7B,IAAIJ,EAAMM,EAEV,OADAA,EAAS,GAAKvhC,UAAUkE,OAASJ,EAAM7H,KAAK+D,UAAW,GAAK,GACrDihC,EAAO/kC,KAAK2kC,WAAYh9B,EAAQ5H,KAAKslC,EAAQN,IAAS,GAG/Db,EAAW9iC,UAAUujC,SAAW,WAC9B,IAAII,EAAMO,EAEV,IAAKA,KAAStE,UAGZ,GAFQA,UAAUsE,MAEwB,OAA1BP,EAAO/kC,KAAKykC,WAAqBM,EAAKQ,gBAAa,GACjE,OAAOD,EAAMtzB,cAIjB,OAAO,MAGTkyB,EAAW9iC,UAAUyjC,qBAAuB,WAC1C,IAAIW,EAAW7/B,EAEf,IAAK6/B,KAAaxlC,KAAKiL,OACrBtF,EAAU3F,KAAKiL,OAAOu6B,GAAWhxB,KAAKxU,MACtCA,KAAKykC,UAAU,KAAOe,GAAa7/B,GAIvCu+B,EAAW9iC,UAAUwjC,uBAAyB,WAC5C,IAAIY,EAEJ,IAAKA,KAAaxlC,KAAKiL,OACrBjL,KAAKykC,UAAU,KAAOe,GAAa,cAIvCtB,EAAW9iC,UAAU6J,OAAS,CAC5B2S,QAAS,SAAUtP,GACjB,IAAIm3B,EAAY7nB,EAASmnB,EAEzB,GAAK/kC,KAAKolC,sBAMV,OAF+BK,GAA/BV,EAAO5K,KAAKjf,MAAM5M,EAAM8B,OAAyBq1B,WAAY7nB,EAAUmnB,EAAKnnB,QAAgBmnB,EAAK/wB,MAG/F,KAAK8vB,EAAc4B,QAEjB,OADA1lC,KAAKqkC,QAAQnB,gBACNljC,KAAKokC,cAAcuB,SAE5B,KAAK7B,EAAc8B,KACjB,OAAO5lC,KAAKqkC,QAAQrB,aAEtB,KAAKc,EAAc+B,aACjB,OAAO7lC,KAAKokC,cAAc0B,OAAOL,EAAY,aAE/C,KAAK3B,EAAciC,UACjB,OAAO/lC,KAAKokC,cAAc4B,OAAOP,GAEnC,QACE,OAAOzlC,KAAKokC,cAAc0B,OAAOL,EAAY,WAAY7nB,KAG/Dnc,KAAM,WAIJ,GAHAq/B,EAAYgB,IAAI,kCAAoC9hC,KAAKklC,cAAgB,iBACzEllC,KAAKskC,cAAe,GAEftkC,KAAKolC,sBAER,OADAtE,EAAYgB,IAAI,gEACT9hC,KAAK+B,MAAM,CAChBijC,gBAAgB,KAItBjjC,MAAO,SAAUuM,GAGf,GAFAwyB,EAAYgB,IAAI,4BAEZ9hC,KAAKskC,aAMT,OAFAtkC,KAAKskC,cAAe,EACpBtkC,KAAKqkC,QAAQjB,mBACNpjC,KAAKokC,cAAc6B,UAAU,eAAgB,CAClDC,qBAAsBlmC,KAAKqkC,QAAQ5B,eAGvCplB,MAAO,WACL,OAAOyjB,EAAYgB,IAAI,6BAGpBoC,EAvLgB,IAyLxBnkC,KAAKC,MACR,WACE,IAAI4H,EAAQ,GAAGA,MAEfk5B,EAAYqF,cAAgB,WAC1B,SAASA,EAAchC,GACrBnkC,KAAKmkC,SAAWA,EAChBnkC,KAAKokC,cAAgB,GA4IvB,OAzIA+B,EAAc/kC,UAAUglC,OAAS,SAAUC,EAAaC,GACtD,IAAIC,EAASC,EAAQC,EAMrB,OAJAD,EAA4B,kBAD5BD,EAAUF,GAC6BE,EAAU,CAC/CA,QAASA,GAEXE,EAAe,IAAI3F,EAAY4F,aAAa1mC,KAAKmkC,SAAUqC,EAAQF,GAC5DtmC,KAAKsF,IAAImhC,IAGlBN,EAAc/kC,UAAUkE,IAAM,SAAUmhC,GAKtC,OAJAzmC,KAAKokC,cAAcp2B,KAAKy4B,GACxBzmC,KAAKmkC,SAASwC,yBACd3mC,KAAK8lC,OAAOW,EAAc,eAC1BzmC,KAAK4mC,YAAYH,EAAc,aACxBA,GAGTN,EAAc/kC,UAAUoE,OAAS,SAAUihC,GAOzC,OANAzmC,KAAK6mC,OAAOJ,GAEPzmC,KAAK8mC,QAAQL,EAAahB,YAAYz9B,QACzChI,KAAK4mC,YAAYH,EAAc,eAG1BA,GAGTN,EAAc/kC,UAAU4kC,OAAS,SAAUP,GACzC,IAAIr+B,EAAG2/B,EAAK3F,EAAK4F,EAASP,EAI1B,IAFAO,EAAU,GAEL5/B,EAAI,EAAG2/B,GAHZ3F,EAAMphC,KAAK8mC,QAAQrB,IAGGz9B,OAAQZ,EAAI2/B,EAAK3/B,IACrCq/B,EAAerF,EAAIh6B,GACnBpH,KAAK6mC,OAAOJ,GACZzmC,KAAK8lC,OAAOW,EAAc,YAC1BO,EAAQh5B,KAAKy4B,GAGf,OAAOO,GAGTb,EAAc/kC,UAAUylC,OAAS,SAAUJ,GACzC,IAAIlqC,EAkBJ,OAhBAyD,KAAKokC,cAAgB,WACnB,IAAIh9B,EAAG2/B,EAAK3F,EAAK4F,EAIjB,IAFAA,EAAU,GAEL5/B,EAAI,EAAG2/B,GAHZ3F,EAAMphC,KAAKokC,eAGWp8B,OAAQZ,EAAI2/B,EAAK3/B,KACrC7K,EAAI6kC,EAAIh6B,MAEEq/B,GACRO,EAAQh5B,KAAKzR,GAIjB,OAAOyqC,GACPjnC,KAAKC,MAEAymC,GAGTN,EAAc/kC,UAAU0lC,QAAU,SAAUrB,GAC1C,IAAIr+B,EAAG2/B,EAAK3F,EAAK4F,EAASzqC,EAI1B,IAFAyqC,EAAU,GAEL5/B,EAAI,EAAG2/B,GAHZ3F,EAAMphC,KAAKokC,eAGWp8B,OAAQZ,EAAI2/B,EAAK3/B,KACrC7K,EAAI6kC,EAAIh6B,IAEFq+B,aAAeA,GACnBuB,EAAQh5B,KAAKzR,GAIjB,OAAOyqC,GAGTb,EAAc/kC,UAAUukC,OAAS,WAC/B,IAAIv+B,EAAG2/B,EAAK3F,EAAK4F,EAASP,EAI1B,IAFAO,EAAU,GAEL5/B,EAAI,EAAG2/B,GAHZ3F,EAAMphC,KAAKokC,eAGWp8B,OAAQZ,EAAI2/B,EAAK3/B,IACrCq/B,EAAerF,EAAIh6B,GACnB4/B,EAAQh5B,KAAKhO,KAAK4mC,YAAYH,EAAc,cAG9C,OAAOO,GAGTb,EAAc/kC,UAAU6kC,UAAY,WAClC,IAAIzhB,EAAMyiB,EAAc7/B,EAAG2/B,EAAK3F,EAAK4F,EAASP,EAK9C,IAJAQ,EAAenjC,UAAU,GAAI0gB,EAAO,GAAK1gB,UAAUkE,OAASJ,EAAM7H,KAAK+D,UAAW,GAAK,GAEvFkjC,EAAU,GAEL5/B,EAAI,EAAG2/B,GAHZ3F,EAAMphC,KAAKokC,eAGWp8B,OAAQZ,EAAI2/B,EAAK3/B,IACrCq/B,EAAerF,EAAIh6B,GACnB4/B,EAAQh5B,KAAKhO,KAAK8lC,OAAOjiC,MAAM7D,KAAM,CAACymC,EAAcQ,GAActwB,OAAO/O,EAAM7H,KAAKykB,MAGtF,OAAOwiB,GAGTb,EAAc/kC,UAAU0kC,OAAS,WAC/B,IAAIthB,EAAMyiB,EAAc7/B,EAAG2/B,EAAKC,EAASP,EAAcrC,EAWvD,IAVAqC,EAAe3iC,UAAU,GAAImjC,EAAenjC,UAAU,GAAI0gB,EAAO,GAAK1gB,UAAUkE,OAASJ,EAAM7H,KAAK+D,UAAW,GAAK,GAQpHkjC,EAAU,GAEL5/B,EAAI,EAAG2/B,GAPV3C,EAD0B,kBAAjBqC,EACOzmC,KAAK8mC,QAAQL,GAEb,CAACA,IAKaz+B,OAAQZ,EAAI2/B,EAAK3/B,IAC/Cq/B,EAAerC,EAAch9B,GAC7B4/B,EAAQh5B,KAA2C,oBAA/By4B,EAAaQ,GAA+BR,EAAaQ,GAAcpjC,MAAM4iC,EAAcjiB,QAAQ,GAGzH,OAAOwiB,GAGTb,EAAc/kC,UAAUwlC,YAAc,SAAUH,EAAcS,GAC5D,IAAIzB,EAEJ,OADAA,EAAagB,EAAahB,WACnBzlC,KAAKmkC,SAASK,KAAK,CACxB0C,QAASA,EACTzB,WAAYA,KAITU,EA/ImB,IAiJ3BpmC,KAAKC,MACR,WACE8gC,EAAY4F,aAAe,WACzB,IAAIS,EAEJ,SAAST,EAAavC,EAAUqC,EAAQF,GACtCtmC,KAAKmkC,SAAWA,EAEF,MAAVqC,IACFA,EAAS,IAGXxmC,KAAKylC,WAAatL,KAAKtf,UAAU2rB,GACjCW,EAAOnnC,KAAMsmC,GAqCf,OAlCAI,EAAatlC,UAAUgmC,QAAU,SAAUC,EAAQj3B,GAMjD,OALY,MAARA,IACFA,EAAO,IAGTA,EAAKi3B,OAASA,EACPrnC,KAAKwkC,KAAKp0B,IAGnBs2B,EAAatlC,UAAUojC,KAAO,SAAUp0B,GACtC,OAAOpQ,KAAKmkC,SAASK,KAAK,CACxB0C,QAAS,UACTzB,WAAYzlC,KAAKylC,WACjBr1B,KAAM+pB,KAAKtf,UAAUzK,MAIzBs2B,EAAatlC,UAAUkmC,YAAc,WACnC,OAAOtnC,KAAKmkC,SAASC,cAAc5+B,OAAOxF,OAG5CmnC,EAAS,SAAUlqB,EAAQsqB,GACzB,IAAI5kC,EAAKwN,EAET,GAAkB,MAAdo3B,EACF,IAAK5kC,KAAO4kC,EACVp3B,EAAQo3B,EAAW5kC,GACnBsa,EAAOta,GAAOwN,EAIlB,OAAO8M,GAGFypB,EAhDkB,IAkD1B3mC,KAAKC,MACR,WACE8gC,EAAYS,SAAW,WACrB,SAASA,EAASJ,GAChBnhC,KAAKmhC,IAAMA,EACXnhC,KAAKokC,cAAgB,IAAItD,EAAYqF,cAAcnmC,MACnDA,KAAKkiC,WAAa,IAAIpB,EAAYoD,WAAWlkC,MAuB/C,OApBAuhC,EAASngC,UAAUojC,KAAO,SAAUp0B,GAClC,OAAOpQ,KAAKkiC,WAAWsC,KAAKp0B,IAG9BmxB,EAASngC,UAAUomC,QAAU,WAC3B,OAAOxnC,KAAKkiC,WAAWzgC,QAGzB8/B,EAASngC,UAAUqmC,WAAa,WAC9B,OAAOznC,KAAKkiC,WAAWngC,MAAM,CAC3BijC,gBAAgB,KAIpBzD,EAASngC,UAAUulC,uBAAyB,WAC1C,IAAK3mC,KAAKkiC,WAAWwC,WACnB,OAAO1kC,KAAKkiC,WAAWzgC,QAIpB8/B,EA3Bc,IA6BtBxhC,KAAKC,QACPD,KAAKC,MAE0BkI,EAAOC,QACvCD,EAAOC,QAAU24B,OAEC,2BAAlB,KAAkB,oCAEnB/gC,KAAKC,O,wBCpoBC,SAAUlF,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gdAAyFC,MAAM,KACvGC,YAAa,mUAAyED,MAAM,KAC5F6W,kBAAkB,EAClB3W,SAAU,mSAAwDF,MAAM,KACxEG,cAAe,qKAAmCH,MAAM,KACxDI,YAAa,iFAAqBJ,MAAM,KACxCK,eAAgB,CACdC,GAAI,8CACJC,IAAK,iDACLC,EAAG,aACHC,GAAI,cACJC,IAAK,2DACLC,KAAM,kEAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,gCACTC,SAAU,WACVC,QAAS,4CACTC,SAAU,4CACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,oCACNC,EAAG,8CACHC,GAAI,oCACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,+BAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAKrB8B,cAAe,gGACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,uBAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,6BAAbD,EACFC,EACe,6BAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,6BAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,qBACEA,EAAO,GACT,2BACEA,EAAO,GACT,2BACEA,EAAO,GACT,2BAEA,sBAGX7L,KAAM,CACJC,IAAK,EAELC,IAAK,KA/GuFC,CAAQ,EAAQ,U,wBCCzG,SAAU5C,GACjB,aAEA,IAAI6sC,EAAmB,iIAAmG1sC,MAAM,KAC5H2sC,EAAmB,+GAAqG3sC,MAAM,KAC9HqX,EAAc,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,aAAS,QAAS,SAEtH,SAAShB,EAAOC,GACd,OAAOA,EAAI,GAAK,GAAKA,EAAI,GAAK,MAAQA,EAAI,IAAM,KAAO,EAGzD,SAASC,EAAUnU,EAAQoU,EAAe9O,GACxC,IAAIgP,EAAStU,EAAS,IAEtB,OAAQsF,GACN,IAAK,KACH,OAAOgP,GAAUL,EAAOjU,GAAU,UAAY,UAEhD,IAAK,IACH,OAAOoU,EAAgB,SAAW,cAEpC,IAAK,KACH,OAAOE,GAAUL,EAAOjU,GAAU,SAAW,SAE/C,IAAK,IACH,OAAOoU,EAAgB,UAAY,eAErC,IAAK,KACH,OAAOE,GAAUL,EAAOjU,GAAU,UAAY,UAEhD,IAAK,KACH,OAAOsU,GAAUL,EAAOjU,GAAU,WAAa,WAEjD,IAAK,KACH,OAAOsU,GAAUL,EAAOjU,GAAU,gBAAa,iBAEjD,IAAK,KACH,OAAOsU,GAAUL,EAAOjU,GAAU,OAAS,QAIxCvC,EAAOC,aAAa,KAAM,CACjCC,OAAQ,SAAU6sC,EAAgBjqC,GAChC,OAAKiqC,EAEM,SAAS3pC,KAAKN,GAChBgqC,EAAiBC,EAAer1B,SAEhCm1B,EAAiBE,EAAer1B,SAJhCm1B,GAOXzsC,YAAa,uDAAkDD,MAAM,KACrEqX,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,4EAA6DF,MAAM,KAC7EG,cAAe,gCAA2BH,MAAM,KAChDI,YAAa,4BAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,mBACTC,QAAS,eACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,0BAET,KAAK,EACH,MAAO,mBAET,KAAK,EACH,MAAO,2BAET,KAAK,EACH,MAAO,uBAET,QACE,MAAO,oBAGbzN,QAAS,iBACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACH,MAAO,2CAET,KAAK,EACH,MAAO,4CAET,KAAK,EACH,MAAO,wCAET,QACE,MAAO,gCAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,UACNC,EAAG,eACHC,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG6U,EACH5U,GAAI4U,EACJ3U,EAAG,eACHC,GAAI,SACJmY,EAAG,eACHC,GAAI1D,EACJzU,EAAG,eACHC,GAAIwU,EACJvU,EAAG,MACHC,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAjIuFC,CAAQ,EAAQ,U,wBCCzG,SAAU5C,GACjB,aAEA,IAAIoiB,EAAiB,8DAA8DjiB,MAAM,KACrFC,EAAc,kDAAkDD,MAAM,KACtEqX,EAAc,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAClHC,EAAc,mLACTzX,EAAOC,aAAa,KAAM,CACjCC,OAAQ,2FAA2FC,MAAM,KACzGC,YAAa,SAAUuB,EAAGmB,GACxB,OAAKnB,EAEM,QAAQyB,KAAKN,GACf1C,EAAYuB,EAAE+V,SAEd0K,EAAezgB,EAAE+V,SAJjB0K,GAOX3K,YAAaA,EACbE,iBAAkBF,EAClBG,kBAAmB,+FACnBC,uBAAwB,0FACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,6DAAuDF,MAAM,KACvEG,cAAe,2CAAqCH,MAAM,KAC1DI,YAAa,0BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,6BACLC,KAAM,oCAERC,SAAU,CACRC,QAAS,WACP,MAAO,aAAgC,IAAjBkE,KAAKiS,QAAgB,IAAM,IAAM,QAEzDlW,QAAS,WACP,MAAO,mBAAmC,IAAjBiE,KAAKiS,QAAgB,IAAM,IAAM,QAE5DjW,SAAU,WACR,MAAO,cAAiC,IAAjBgE,KAAKiS,QAAgB,IAAM,IAAM,QAE1DhW,QAAS,WACP,MAAO,cAAiC,IAAjB+D,KAAKiS,QAAgB,IAAM,IAAM,QAE1D/V,SAAU,WACR,MAAO,0BAA6C,IAAjB8D,KAAKiS,QAAgB,IAAM,IAAM,QAEtE9V,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,YACHC,GAAI,aACJmY,EAAG,aACHC,GAAI,aACJnY,EAAG,SACHC,GAAI,WACJC,EAAG,YACHC,GAAI,cAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,GAGP+Z,YAAa,sBAlFiF9Z,CAAQ,EAAQ,U,wBCEzG,SAAU5C,GACjB,aAEUA,EAAOC,aAAa,MAAO,CACnCC,OAAQ,0FAA0FC,MAAM,KACxGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,yDAAyDF,MAAM,KACzEG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,wBAAwBJ,MAAM,KAC3CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,YACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,6BAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,gBACTC,SAAU,0BACVC,QAAS,eACTC,SAAU,4BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,gBACRC,KAAM,mBACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,eACHC,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJC,EAAG,cACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WAENC,uBAAwB,UACxBC,QAAS,SAAUC,GACjB,OAAOA,GAETE,KAAM,CACJC,IAAK,EAELC,IAAK,KAjDuFC,CAAQ,EAAQ,U,oCCPlH,0KAsBA,IAiCIoqC,EAiBAC,EAlDA5pC,EAAa,CACf6pC,OAAQ,2BACRC,iBAAkB,qCAClBC,eAAgB,mCAChBC,MAAO,0BACPC,cAAe,kCACf/pC,KAAM,yBACNod,KAAM,oBAGJld,EAAU,CACZG,aAAc,wBACdI,aAAc,wBACdupC,mBAAoB,CAAC,wBAAyB,qCAAsC,uBAAwB,wBAAyB,0BAA2B,+DAA+DjyB,KAAK,OAGlOjX,EAAU,CAEZmpC,yBAA0B,IAG1BC,0BAA2B,GAG3BC,eAAgB,GAGhBC,mCAAoC,MAQtC,SAAWX,GACTA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAkB,OAAI,GAAK,SACrCA,EAAUA,EAAiB,MAAI,GAAK,QACpCA,EAAUA,EAAoB,SAAI,GAAK,WAJzC,CAKGA,IAAcA,EAAY,KAY7B,SAAWC,GACTA,EAAOA,EAAiB,SAAI,GAAK,WACjCA,EAAOA,EAAkB,UAAI,GAAK,YAClCA,EAAOA,EAAoB,YAAI,GAAK,cACpCA,EAAOA,EAAqB,aAAI,GAAK,eACrCA,EAAOA,EAAkB,UAAI,GAAK,YAClCA,EAAOA,EAAgB,QAAI,IAAM,UACjCA,EAAOA,EAAqB,aAAI,GAAK,eACrCA,EAAOA,EAAmB,WAAI,IAAM,aARtC,CASGA,IAAWA,EAAS,M,kJCzDnB,EAEJ,SAAUpoC,GAGR,SAAS+oC,IACP,OAAkB,OAAX/oC,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA2B7D,OA9BA,YAAU0oC,EAA0B/oC,GAUpC+oC,EAAyBtnC,UAAUunC,iBAAmB,WACpD3oC,KAAK+B,SAOP2mC,EAAyBtnC,UAAU0b,QAAU,WAC3C9c,KAAKH,QAAQyc,aAOfosB,EAAyBtnC,UAAUyb,QAAU,WAC3C7c,KAAKH,QAAQ0c,gBAGRmsB,EA/BT,CAgCE,KC9BF,IAAIvqC,EAAa,IAA+BA,WAC5CI,EAAU,IAA+BA,QAMzC,EAEJ,SAAUoB,GAGR,SAASipC,IACP,OAAkB,OAAXjpC,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA2K7D,OA9KA,YAAU4oC,EAAWjpC,GAMrBipC,EAAU7kC,SAAW,SAAUC,GAC7B,OAAO,IAAI4kC,EAAU5kC,IAGvBxD,OAAOC,eAAemoC,EAAUxnC,UAAW,OAAQ,CAKjDV,IAAK,WACH,OAAOV,KAAK0E,WAAWzC,UAMzBwD,IAAK,SAAUxD,GACTA,EACFjC,KAAK0E,WAAWjD,OAEhBzB,KAAK0E,WAAW3C,SAGpBpB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAemoC,EAAUxnC,UAAW,OAAQ,CACjDV,IAAK,WACH,OAAOV,KAAK6oC,OAEdloC,YAAY,EACZC,cAAc,IAGhBgoC,EAAUxnC,UAAU6C,WAAa,SAAU6kC,EAAkBC,QAClC,IAArBD,IACFA,EAAmB,SAAUt5B,GAC3B,OAAO,IAAI,IAAUA,UAIL,IAAhBu5B,IACFA,EAAc,SAAUv5B,GACtB,OAAO,IAAI,IAAQA,KAIvB,IAAIw5B,EAAShpC,KAAKgE,KAAKM,cAAc,IAAM,IAAkBnG,WAAWsd,MAEpEutB,IACFhpC,KAAK6oC,MAAQE,EAAYC,GACzBhpC,KAAK6oC,MAAMI,WAAY,GAGzBjpC,KAAKkpC,kBAAoBJ,GAG3BF,EAAUxnC,UAAUgD,mBAAqB,WACvC,IClFoC+kC,EDkFhCrpC,EAAQE,KAERwb,EAAQrd,EAAWqd,MACnBK,EAAiBtd,EAAQsd,eAC7B7b,KAAKopC,OAASppC,KAAKgE,KAAKohB,WAAW9gB,cAAcuX,GAE7C7b,KAAKopC,QAAUppC,KAAKgE,KAAKqB,UAAU4rB,SAASzV,KAC9Cxb,KAAKqpC,kBAAoB,WACvB,OAAOvpC,EAAM4E,WAAWikC,oBAG1B3oC,KAAKopC,OAAOtjC,iBAAiB,QAAS9F,KAAKqpC,mBAC3CrpC,KAAKspC,YC9F6BH,ED8FanpC,KAAKgE,MAAlC,EAAwChE,KAAKkpC,mBC7F3CC,EAAW,CAEjCI,kBAAkB,MD8FlBvpC,KAAKwpC,eAAiB,SAAU9mC,GAC9B,OAAO5C,EAAM4E,WAAWgY,cAAcha,IAGxC1C,KAAKypC,qBAAuB,SAAU/mC,GACpC,OAAO5C,EAAM4E,WAAWiY,oBAAoBja,IAG9C1C,KAAK4F,OAAO,UAAW5F,KAAKwpC,gBAC5BxpC,KAAK4F,OAAO,gBAAiB5F,KAAKypC,uBAGpCb,EAAUxnC,UAAUC,QAAU,WAC5BrB,KAAK6F,SAAS,UAAW7F,KAAKwpC,gBAC9BxpC,KAAK6F,SAAS,gBAAiB7F,KAAKypC,sBAEhCzpC,KAAK6oC,OACP7oC,KAAK6oC,MAAMxnC,UAGb,IAAIma,EAAQrd,EAAWqd,MAEnBxb,KAAKopC,QAAUppC,KAAKqpC,mBAAqBrpC,KAAKgE,KAAKqB,UAAU4rB,SAASzV,KACxExb,KAAKopC,OAAOrjC,oBAAoB,QAAS/F,KAAKqpC,mBAE9CrpC,KAAKyB,MAAO,IAIhBmnC,EAAUxnC,UAAU+D,qBAAuB,WACzC,IAAIrF,EAAQE,KAKRH,EAAU,CACZgB,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErC2W,SAAU,SAAU3W,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAU4rB,SAAS7rB,IAEvC4W,gBAAiB,SAAUe,EAAS3X,GAClC,OAAO2X,EAAQ1X,UAAU4rB,SAAS7rB,IAEpC+W,UAAW,WACT,OAAOrc,EAAM4pC,eAAiBtyB,SAAS8c,eAEzC9X,aAAc,WACZ,IAAIutB,EAAgB7pC,EAAM4pC,eAEtBC,GAAiBA,EAAc1W,OAASnzB,EAAMkE,KAAKitB,SAAS7Z,SAAS8c,gBACvEyV,EAAc1W,SAGlB5W,0BAA2B,WACzB,IAAIutB,EAAkB9pC,EAAMkE,KAAKM,cAAc,IAAM,IAAkBnG,WAAW0rC,2BAE9ED,GACFA,EAAgB3W,SAGpBhX,YAAa,WACX,OAAOnc,EAAMyF,KAAKhH,EAAQod,YAAa,IAAI,IAI7CO,WAAY,WACV,OAAOpc,EAAMyF,KAAKhH,EAAQqd,WAAY,IAAI,IAI5CU,UAAW,WACT,OAAOxc,EAAMwpC,WAAWhtB,aAE1BC,aAAc,WACZ,OAAOzc,EAAMwpC,WAAW/sB,iBAIxBhB,EAAcpd,EAAWod,YACzBC,EAAQrd,EAAWqd,MAEvB,GAAIxb,KAAKgE,KAAKqB,UAAU4rB,SAAS1V,GAC/B,OAAO,IAAI,IAA+B1b,GACrC,GAAIG,KAAKgE,KAAKqB,UAAU4rB,SAASzV,GACtC,OAAO,IAAI,EAAyB3b,GAEpC,MAAM,IAAIwC,MAAM,sEAAwEkZ,EAAc,QAAUC,EAAQ,MAIrHotB,EA/KT,CAgLE,M,wBEhNO,SAAU9tC,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,kbAAoFC,MAAM,KAClGC,YAAa,sOAAkDD,MAAM,KACrEE,SAAU,ySAAyDF,MAAM,KACzEG,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,YACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,uCACTC,QAAS,uCACTC,SAAU,mBACVC,QAAS,6CACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,sEAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,kEAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,8BACRC,KAAM,oCACNC,EAAG,wFACHC,GAAI,gDACJC,EAAG,uCACHC,GAAI,0CACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,8BACJmY,EAAG,6CACHC,GAAI,gDACJnY,EAAG,iCACHC,GAAI,0CACJC,EAAG,uCACHC,GAAI,2CAENC,uBAAwB,0FACxBC,QAAS,SAAUC,GACjB,IAAIysC,EAAYzsC,EAAS,GACrB0sC,EAAc1sC,EAAS,IAE3B,OAAe,IAAXA,EACKA,EAAS,gBACS,IAAhB0sC,EACF1sC,EAAS,gBACP0sC,EAAc,IAAMA,EAAc,GACpC1sC,EAAS,gBACO,IAAdysC,EACFzsC,EAAS,gBACO,IAAdysC,EACFzsC,EAAS,gBACO,IAAdysC,GAAiC,IAAdA,EACrBzsC,EAAS,gBAETA,EAAS,iBAGpBE,KAAM,CACJC,IAAK,EAELC,IAAK,KAjFuFC,CAAQ,EAAQ,U,uBCNlH,IAAIssC,EAAkB,EAAQ,QAC1Bl1B,EAAW,EAAQ,QACnBm1B,EAAkB,EAAQ,QAG1BC,EAAe,SAAUC,GAC3B,OAAO,SAAU7wB,EAAO9J,EAAI46B,GAC1B,IAGIj6B,EAHA8J,EAAI+vB,EAAgB1wB,GACpBtR,EAAS8M,EAASmF,EAAEjS,QACpBD,EAAQkiC,EAAgBG,EAAWpiC,GAIvC,GAAImiC,GAAe36B,GAAMA,GAAI,KAAOxH,EAASD,GAG3C,IAFAoI,EAAQ8J,EAAElS,OAEGoI,EAAO,OAAO,OAEtB,KAAMnI,EAASD,EAAOA,IAC3B,IAAKoiC,GAAepiC,KAASkS,IAAMA,EAAElS,KAAWyH,EAAI,OAAO26B,GAAepiC,GAAS,EACnF,OAAQoiC,IAAgB,IAI9BjiC,EAAOC,QAAU,CAGfkiC,SAAUH,GAAa,GAGvBviC,QAASuiC,GAAa,K,uBC9BxB,UAEI,EAAO,CAAC,QAAkB,2BAAP,EAUd,SAAUhiC,GACjB,aAEA,SAASoiC,EAAgBxvB,EAAKnY,EAAKwN,GAYjC,OAXIxN,KAAOmY,EACTta,OAAOC,eAAeqa,EAAKnY,EAAK,CAC9BwN,MAAOA,EACPxP,YAAY,EACZC,cAAc,EACd2pC,UAAU,IAGZzvB,EAAInY,GAAOwN,EAGN2K,EAGT,IAAI0vB,EAAWhqC,OAAOkQ,QAAU,SAAU9L,GACxC,IAAK,IAAIwC,EAAI,EAAGA,EAAItD,UAAUkE,OAAQZ,IAAK,CACzC,IAAII,EAAS1D,UAAUsD,GAEvB,IAAK,IAAIzE,KAAO6E,EACVhH,OAAOY,UAAUmZ,eAAexa,KAAKyH,EAAQ7E,KAC/CiC,EAAOjC,GAAO6E,EAAO7E,IAK3B,OAAOiC,GAGT,SAAS6lC,EAAmBvhB,GAC1B,GAAIzK,MAAMisB,QAAQxhB,GAAM,CACtB,IAAK,IAAI9hB,EAAI,EAAGujC,EAAOlsB,MAAMyK,EAAIlhB,QAASZ,EAAI8hB,EAAIlhB,OAAQZ,IACxDujC,EAAKvjC,GAAK8hB,EAAI9hB,GAGhB,OAAOujC,EAEP,OAAOlsB,MAAMyZ,KAAKhP,GAItB,IAAI0hB,EAAkB,CACpBC,MAAO,EACPC,UAAW,EACX31B,OAAQ,MAYV,SAAS41B,EAAyB36B,EAAM42B,GACtC,IAAIgE,EAAc,GACdC,EAAe,GACnB76B,EAAKJ,SAAQ,SAAUnT,EAAGuK,GACX,OAATvK,EAAE,KACJouC,EAAaj9B,KAAKnR,GAClBmuC,EAAYh9B,KAAKg5B,EAAQ5/B,QAG7B,IAGI8jC,EAHMD,EAAa3P,QAAO,SAAU3c,EAAGwsB,GACzC,OAAOxsB,EAAIwsB,EAAY,KACtB,GACcF,EAAajjC,OAC1BojC,EAAOH,EAAa3P,QAAO,SAAU3c,EAAGwsB,GAC1C,IAAIE,EAAaF,EAAY,GAAKD,EAClC,OAAOvsB,EAAI0sB,EAAaA,IACvB,GAMH,OAAO,EALGJ,EAAa3P,QAAO,SAAUgQ,EAAOH,EAAapjC,GAC1D,IAAIwjC,EAAaP,EAAYjjC,GACzByjC,EAAWL,EAAY,GAAKI,EAAW,GAC3C,OAAOD,EAAQE,EAAWA,IACzB,GACcJ,EAanB,SAASK,EAAoB3jC,EAAO+iC,GAKlC,IAJA,IAAIa,EAAS5jC,EACTyJ,EAAIzJ,EAAME,OAAS,EACnB2jC,EAAe,CAACd,GAEXzjC,EAAI,EAAGA,EAAImK,EAAGnK,IAAK,CAG1B,IAFA,IAAIwkC,EAASxkC,EAEJwP,EAAIxP,EAAI,EAAGwP,EAAIrF,EAAGqF,IACrB8B,KAAKC,IAAI+yB,EAAOtkC,GAAGwP,IAAM8B,KAAKC,IAAI+yB,EAAOtkC,GAAGwkC,MAC9CA,EAASh1B,GAIb,IAAK,IAAI8H,EAAItX,EAAGsX,EAAInN,EAAI,EAAGmN,IAAK,CAC9B,IAAImtB,EAAMH,EAAOhtB,GAAGtX,GACpBskC,EAAOhtB,GAAGtX,GAAKskC,EAAOhtB,GAAGktB,GACzBF,EAAOhtB,GAAGktB,GAAUC,EAGtB,IAAK,IAAIC,EAAK1kC,EAAI,EAAG0kC,EAAKv6B,EAAGu6B,IAC3B,IAAK,IAAIC,EAAKx6B,EAAGw6B,GAAM3kC,EAAG2kC,IACxBL,EAAOK,GAAID,IAAOJ,EAAOK,GAAI3kC,GAAKskC,EAAOtkC,GAAG0kC,GAAMJ,EAAOtkC,GAAGA,GAKlE,IAAK,IAAI4kC,EAAMz6B,EAAI,EAAGy6B,GAAO,EAAGA,IAAO,CAGrC,IAFA,IAAIC,EAAQ,EAEHC,EAAMF,EAAM,EAAGE,EAAM36B,EAAG26B,IAC/BD,GAASP,EAAOQ,GAAKF,GAAOL,EAAaO,GAG3CP,EAAaK,IAAQN,EAAOn6B,GAAGy6B,GAAOC,GAASP,EAAOM,GAAKA,GAG7D,OAAOL,EAcT,SAASzqB,EAAM7jB,EAAQytC,GACrB,IAAIqB,EAASzzB,KAAK0zB,IAAI,GAAItB,GAC1B,OAAOpyB,KAAKwI,MAAM7jB,EAAS8uC,GAAUA,EASvC,IAAIE,EAAU,CACZC,OAAQ,SAAgBl8B,EAAM+G,GAI5B,IAHA,IAAIo1B,EAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GACnBxF,EAAM,EAEDx1B,EAAI,EAAGA,EAAInB,EAAKpI,OAAQuJ,IACZ,OAAfnB,EAAKmB,GAAG,KACVw1B,IACAwF,EAAI,IAAMn8B,EAAKmB,GAAG,GAClBg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAClBg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAAKnB,EAAKmB,GAAG,GAC/Bg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAAKnB,EAAKmB,GAAG,GAC/Bg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAAKnB,EAAKmB,GAAG,IAInC,IAAIi7B,EAAMzF,EAAMwF,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAClCE,EAAO1F,EAAMwF,EAAI,GAAKA,EAAI,GAAKA,EAAI,GACnCG,EAAmB,IAARF,EAAY,EAAItrB,EAAMurB,EAAOD,EAAKr1B,EAAQ2zB,WACrD6B,EAAYzrB,EAAMqrB,EAAI,GAAKxF,EAAM2F,EAAWH,EAAI,GAAKxF,EAAK5vB,EAAQ2zB,WAElE8B,EAAU,SAAiBl5B,GAC7B,MAAO,CAACwN,EAAMxN,EAAGyD,EAAQ2zB,WAAY5pB,EAAMwrB,EAAWh5B,EAAIi5B,EAAWx1B,EAAQ2zB,aAG3E+B,EAASz8B,EAAK4Y,KAAI,SAAU8jB,GAC9B,OAAOF,EAAQE,EAAM,OAEvB,MAAO,CACLD,OAAQA,EACRD,QAASA,EACTG,SAAU,CAACL,EAAUC,GACrBK,GAAI9rB,EAAM6pB,EAAyB36B,EAAMy8B,GAAS11B,EAAQ2zB,WAC1DthC,OAAsB,IAAdmjC,EAAkB,OAASD,EAAW,IAAM,OAASA,EAAW,OAASC,IAGrFM,YAAa,SAAqB78B,EAAM+G,GAGtC,IAFA,IAAIo1B,EAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAEjBh7B,EAAI,EAAGA,EAAInB,EAAKpI,OAAQuJ,IACZ,OAAfnB,EAAKmB,GAAG,KACVg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAClBg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAClBg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAAKnB,EAAKmB,GAAG,GAAKnB,EAAKmB,GAAG,GAC5Cg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAAKmH,KAAKopB,IAAI1xB,EAAKmB,GAAG,IACxCg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAAKnB,EAAKmB,GAAG,GAAKmH,KAAKopB,IAAI1xB,EAAKmB,GAAG,IACrDg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAAKnB,EAAKmB,GAAG,IAInC,IAAI27B,EAAcX,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAC7C5tB,EAAIjG,KAAKy0B,KAAKZ,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAAMW,GACnD5vC,GAAKivC,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAAMW,EAC1CE,EAASlsB,EAAMvC,EAAGxH,EAAQ2zB,WAC1BuC,EAASnsB,EAAM5jB,EAAG6Z,EAAQ2zB,WAE1B8B,EAAU,SAAiBl5B,GAC7B,MAAO,CAACwN,EAAMxN,EAAGyD,EAAQ2zB,WAAY5pB,EAAMksB,EAAS10B,KAAKy0B,IAAIE,EAAS35B,GAAIyD,EAAQ2zB,aAGhF+B,EAASz8B,EAAK4Y,KAAI,SAAU8jB,GAC9B,OAAOF,EAAQE,EAAM,OAEvB,MAAO,CACLD,OAAQA,EACRD,QAASA,EACTG,SAAU,CAACK,EAAQC,GACnB7jC,OAAQ,OAAS4jC,EAAS,MAAQC,EAAS,KAC3CL,GAAI9rB,EAAM6pB,EAAyB36B,EAAMy8B,GAAS11B,EAAQ2zB,aAG9DwC,YAAa,SAAqBl9B,EAAM+G,GAItC,IAHA,IAAIo1B,EAAM,CAAC,EAAG,EAAG,EAAG,GAChBxF,EAAM32B,EAAKpI,OAENuJ,EAAI,EAAGA,EAAIw1B,EAAKx1B,IACJ,OAAfnB,EAAKmB,GAAG,KACVg7B,EAAI,IAAM7zB,KAAKopB,IAAI1xB,EAAKmB,GAAG,IAC3Bg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAAKmH,KAAKopB,IAAI1xB,EAAKmB,GAAG,IACxCg7B,EAAI,IAAMn8B,EAAKmB,GAAG,GAClBg7B,EAAI,IAAM7zB,KAAK0zB,IAAI1zB,KAAKopB,IAAI1xB,EAAKmB,GAAG,IAAK,IAI7C,IACI87B,EAASnsB,GADJ6lB,EAAMwF,EAAI,GAAKA,EAAI,GAAKA,EAAI,KAAOxF,EAAMwF,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAClDp1B,EAAQ2zB,WAC1BsC,EAASlsB,GAAOqrB,EAAI,GAAKc,EAASd,EAAI,IAAMxF,EAAK5vB,EAAQ2zB,WAEzD8B,EAAU,SAAiBl5B,GAC7B,MAAO,CAACwN,EAAMxN,EAAGyD,EAAQ2zB,WAAY5pB,EAAMA,EAAMksB,EAASC,EAAS30B,KAAKopB,IAAIpuB,GAAIyD,EAAQ2zB,WAAY3zB,EAAQ2zB,aAG1G+B,EAASz8B,EAAK4Y,KAAI,SAAU8jB,GAC9B,OAAOF,EAAQE,EAAM,OAEvB,MAAO,CACLD,OAAQA,EACRD,QAASA,EACTG,SAAU,CAACK,EAAQC,GACnB7jC,OAAQ,OAAS4jC,EAAS,MAAQC,EAAS,SAC3CL,GAAI9rB,EAAM6pB,EAAyB36B,EAAMy8B,GAAS11B,EAAQ2zB,aAG9DyC,MAAO,SAAen9B,EAAM+G,GAI1B,IAHA,IAAIo1B,EAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GACnBxF,EAAM32B,EAAKpI,OAENuJ,EAAI,EAAGA,EAAIw1B,EAAKx1B,IACJ,OAAfnB,EAAKmB,GAAG,KACVg7B,EAAI,IAAM7zB,KAAKopB,IAAI1xB,EAAKmB,GAAG,IAC3Bg7B,EAAI,IAAM7zB,KAAKopB,IAAI1xB,EAAKmB,GAAG,IAAMmH,KAAKopB,IAAI1xB,EAAKmB,GAAG,IAClDg7B,EAAI,IAAM7zB,KAAKopB,IAAI1xB,EAAKmB,GAAG,IAC3Bg7B,EAAI,IAAM7zB,KAAK0zB,IAAI1zB,KAAKopB,IAAI1xB,EAAKmB,GAAG,IAAK,IAI7C,IAAIjU,GAAKypC,EAAMwF,EAAI,GAAKA,EAAI,GAAKA,EAAI,KAAOxF,EAAMwF,EAAI,GAAK7zB,KAAK0zB,IAAIG,EAAI,GAAI,IACxE5tB,GAAK4tB,EAAI,GAAKjvC,EAAIivC,EAAI,IAAMxF,EAC5BqG,EAASlsB,EAAMxI,KAAKy0B,IAAIxuB,GAAIxH,EAAQ2zB,WACpCuC,EAASnsB,EAAM5jB,EAAG6Z,EAAQ2zB,WAE1B8B,EAAU,SAAiBl5B,GAC7B,MAAO,CAACwN,EAAMxN,EAAGyD,EAAQ2zB,WAAY5pB,EAAMA,EAAMksB,EAAS10B,KAAK0zB,IAAI14B,EAAG25B,GAASl2B,EAAQ2zB,WAAY3zB,EAAQ2zB,aAGzG+B,EAASz8B,EAAK4Y,KAAI,SAAU8jB,GAC9B,OAAOF,EAAQE,EAAM,OAEvB,MAAO,CACLD,OAAQA,EACRD,QAASA,EACTG,SAAU,CAACK,EAAQC,GACnB7jC,OAAQ,OAAS4jC,EAAS,KAAOC,EACjCL,GAAI9rB,EAAM6pB,EAAyB36B,EAAMy8B,GAAS11B,EAAQ2zB,aAG9D0C,WAAY,SAAoBp9B,EAAM+G,GAQpC,IAPA,IAAIs2B,EAAM,GACNC,EAAM,GACN/uB,EAAI,EACJrhB,EAAI,EACJypC,EAAM32B,EAAKpI,OACX0W,EAAIvH,EAAQ0zB,MAAQ,EAEfzjC,EAAI,EAAGA,EAAIsX,EAAGtX,IAAK,CAC1B,IAAK,IAAIygB,EAAI,EAAGA,EAAIkf,EAAKlf,IACJ,OAAfzX,EAAKyX,GAAG,KACVlJ,GAAKjG,KAAK0zB,IAAIh8B,EAAKyX,GAAG,GAAIzgB,GAAKgJ,EAAKyX,GAAG,IAI3C4lB,EAAIz/B,KAAK2Q,GACTA,EAAI,EAGJ,IAFA,IAAIsK,EAAI,GAECrS,EAAI,EAAGA,EAAI8H,EAAG9H,IAAK,CAC1B,IAAK,IAAI+2B,EAAK,EAAGA,EAAK5G,EAAK4G,IACL,OAAhBv9B,EAAKu9B,GAAI,KACXrwC,GAAKob,KAAK0zB,IAAIh8B,EAAKu9B,GAAI,GAAIvmC,EAAIwP,IAInCqS,EAAEjb,KAAK1Q,GACPA,EAAI,EAGNowC,EAAI1/B,KAAKib,GAGXykB,EAAI1/B,KAAKy/B,GAgBT,IAfA,IAAI9B,EAAeF,EAAoBiC,EAAKhvB,GAAGsK,KAAI,SAAU4kB,GAC3D,OAAO1sB,EAAM0sB,EAAGz2B,EAAQ2zB,cAGtB8B,EAAU,SAAiBl5B,GAC7B,MAAO,CAACwN,EAAMxN,EAAGyD,EAAQ2zB,WAAY5pB,EAAMyqB,EAAarQ,QAAO,SAAUiR,EAAKsB,EAAON,GACnF,OAAOhB,EAAMsB,EAAQn1B,KAAK0zB,IAAI14B,EAAG65B,KAChC,GAAIp2B,EAAQ2zB,aAGb+B,EAASz8B,EAAK4Y,KAAI,SAAU8jB,GAC9B,OAAOF,EAAQE,EAAM,OAEnBtjC,EAAS,OAEJwhB,EAAK2gB,EAAa3jC,OAAS,EAAGgjB,GAAM,EAAGA,IAE5CxhB,GADEwhB,EAAK,EACG2gB,EAAa3gB,GAAM,KAAOA,EAAK,MACzB,IAAPA,EACC2gB,EAAa3gB,GAAM,OAEnB2gB,EAAa3gB,GAI3B,MAAO,CACLxhB,OAAQA,EACRqjC,OAAQA,EACRD,QAASA,EACTG,SAAU,GAAGp2B,OAAO8zB,EAAmBkB,IAAemC,UACtDd,GAAI9rB,EAAM6pB,EAAyB36B,EAAMy8B,GAAS11B,EAAQ2zB,cAKhE,SAASiD,IACP,IAAIzS,EAAS,SAAgB0S,EAAanwB,GACxC,OAAO2sB,EAAS,CACdyD,OAAQ/sB,GACP8sB,EAAa1D,EAAgB,GAAIzsB,GAAM,SAAUzN,EAAM89B,GACxD,OAAO7B,EAAQxuB,GAAMzN,EAAMo6B,EAAS,GAAII,EAAiBsD,SAI7D,OAAO1tC,OAAOkW,KAAK21B,GAAS/Q,OAAOA,EAAQ,IAG7CpzB,EAAOC,QAAU4lC,MA/XW,gC,qBCF9B7lC,EAAOC,QAAU,SAAU5B,GACzB,IACE,QAASA,IACT,MAAO8W,GACP,OAAO,K,qBCJXnV,EAAOC,QAAU,SAAU4M,EAAIo5B,EAAatwB,GAC1C,KAAM9I,aAAco5B,GAClB,MAAMljB,UAAU,cAAgBpN,EAAOA,EAAO,IAAM,IAAM,cAC1D,OAAO9I,I,oCCDX,EAAQ,QACR,IAAIT,EAAI,EAAQ,QACZnC,EAAa,EAAQ,QACrBi8B,EAAiB,EAAQ,QACzBC,EAAW,EAAQ,QACnBC,EAAc,EAAQ,QACtBC,EAAiB,EAAQ,QACzBC,EAA4B,EAAQ,QACpCC,EAAsB,EAAQ,QAC9BC,EAAa,EAAQ,QACrBC,EAAS,EAAQ,QACjBn6B,EAAO,EAAQ,QACfo6B,EAAU,EAAQ,QAClB70B,EAAW,EAAQ,QACnBX,EAAW,EAAQ,QACnBgtB,EAAS,EAAQ,QACjBppB,EAA2B,EAAQ,QACnC6xB,EAAc,EAAQ,QACtBC,EAAoB,EAAQ,QAC5BC,EAAkB,EAAQ,QAE1BC,EAAS78B,EAAW,SACpB88B,EAAU98B,EAAW,WACrB+8B,EAAWH,EAAgB,YAC3BI,EAAoB,kBACpBC,EAA6BD,0BAC7BE,EAAmBZ,EAAoBhpC,IACvC6pC,EAAyBb,EAAoBc,UAAUJ,GACvDK,EAA2Bf,EAAoBc,UAAUH,GAEzDK,EAAO,MACPC,EAAYjxB,MAAM,GAElBkxB,EAAkB,SAAUC,GAC9B,OAAOF,EAAUE,EAAQ,KAAOF,EAAUE,EAAQ,GAAKtpC,OAAO,qBAAuBspC,EAAQ,KAAM,QAGjGC,EAAgB,SAAUC,GAC5B,IACE,OAAOr1B,mBAAmBq1B,GAC1B,MAAOzyB,GACP,OAAOyyB,IAIPC,EAAc,SAAUh7B,GAC1B,IAAIpD,EAASoD,EAAGjX,QAAQ2xC,EAAM,KAC1BG,EAAQ,EACZ,IACE,OAAOn1B,mBAAmB9I,GAC1B,MAAO0L,GACP,KAAOuyB,GACLj+B,EAASA,EAAO7T,QAAQ6xC,EAAgBC,KAAUC,GAEpD,OAAOl+B,IAIPq+B,EAAO,eAEPlyC,EAAU,CACZ,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,KAGLmyC,EAAW,SAAU9oC,GACvB,OAAOrJ,EAAQqJ,IAGb+oC,EAAY,SAAUn7B,GACxB,OAAO6F,mBAAmB7F,GAAIjX,QAAQkyC,EAAMC,IAG1CE,EAAoB,SAAUx+B,EAAQwJ,GACxC,GAAIA,EAIF,IAHA,IAEIjL,EAAWkgC,EAFXC,EAAal1B,EAAMlgB,MAAM,KACzB8M,EAAQ,EAELA,EAAQsoC,EAAWroC,SACxBkI,EAAYmgC,EAAWtoC,MACTC,SACZooC,EAAQlgC,EAAUjV,MAAM,KACxB0W,EAAO3D,KAAK,CACVrL,IAAKotC,EAAYK,EAAME,SACvBngC,MAAO4/B,EAAYK,EAAMh6B,KAAK,UAOpCm6B,EAAqB,SAAUp1B,GACjCnb,KAAKwwC,QAAQxoC,OAAS,EACtBmoC,EAAkBnwC,KAAKwwC,QAASr1B,IAG9Bs1B,EAA0B,SAAUC,EAAQ3R,GAC9C,GAAI2R,EAAS3R,EAAU,MAAM9T,UAAU,yBAGrC0lB,EAA0BnC,GAA0B,SAAkBhI,EAAQoK,GAChFvB,EAAiBrvC,KAAM,CACrBgU,KAAMo7B,EACNyB,SAAUhC,EAAYS,EAAuB9I,GAAQgK,SACrDI,KAAMA,MAEP,YAAY,WACb,IAAItL,EAAQkK,EAAyBxvC,MACjC4wC,EAAOtL,EAAMsL,KACbzR,EAAOmG,EAAMuL,SAASC,OACtBV,EAAQjR,EAAKhvB,MAGf,OAFGgvB,EAAK4R,OACR5R,EAAKhvB,MAAiB,SAATygC,EAAkBR,EAAMztC,IAAe,WAATiuC,EAAoBR,EAAMjgC,MAAQ,CAACigC,EAAMztC,IAAKytC,EAAMjgC,QACxFgvB,KAKP6R,EAA6B,WAC/BtC,EAAW1uC,KAAMgxC,EAA4B7B,GAC7C,IAGI8B,EAAgBJ,EAAUC,EAAM3R,EAAM+R,EAAeC,EAAWC,EAAOC,EAAQ1uC,EAH/EqpB,EAAOloB,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,EAC7CsqC,EAAOtxC,KACPwwC,EAAU,GAUd,GAPAnB,EAAiBiC,EAAM,CACrBt9B,KAAMm7B,EACNqB,QAASA,EACTe,UAAW,aACXhB,mBAAoBA,SAGTvpC,IAATglB,EACF,GAAI5S,EAAS4S,GAEX,GAA8B,oBAD9BilB,EAAiBnC,EAAkB9iB,IAIjC,IADA8kB,GADAD,EAAWI,EAAelxC,KAAKisB,IACf8kB,OACP3R,EAAO2R,EAAK/wC,KAAK8wC,IAAWE,MAAM,CAGzC,IACGK,GAFHD,GADAD,EAAgBrC,EAAY90B,EAASolB,EAAKhvB,SAChB2gC,MAEL/wC,KAAKmxC,IAAgBH,OACvCM,EAASF,EAAUpxC,KAAKmxC,IAAgBH,OACxCI,EAAUpxC,KAAKmxC,GAAeH,KAC/B,MAAM9lB,UAAU,mCAClBulB,EAAQxiC,KAAK,CAAErL,IAAKyuC,EAAMjhC,MAAQ,GAAIA,MAAOkhC,EAAOlhC,MAAQ,UAEzD,IAAKxN,KAAOqpB,EAAU2iB,EAAO3iB,EAAMrpB,IAAM6tC,EAAQxiC,KAAK,CAAErL,IAAKA,EAAKwN,MAAO6b,EAAKrpB,GAAO,UAE5FwtC,EAAkBK,EAAyB,kBAATxkB,EAAuC,MAAnBA,EAAKja,OAAO,GAAaia,EAAKpkB,MAAM,GAAKokB,EAAOA,EAAO,KAK/GwlB,EAA2BR,EAA2B5vC,UAE1DktC,EAAYkD,EAA0B,CAGpCC,OAAQ,SAAgB5zB,EAAM1N,GAC5BsgC,EAAwB3sC,UAAUkE,OAAQ,GAC1C,IAAIs9B,EAAQgK,EAAuBtvC,MACnCslC,EAAMkL,QAAQxiC,KAAK,CAAErL,IAAKkb,EAAO,GAAI1N,MAAOA,EAAQ,KACpDm1B,EAAMiM,aAIR,OAAU,SAAU1zB,GAClB4yB,EAAwB3sC,UAAUkE,OAAQ,GAK1C,IAJA,IAAIs9B,EAAQgK,EAAuBtvC,MAC/BwwC,EAAUlL,EAAMkL,QAChB7tC,EAAMkb,EAAO,GACb9V,EAAQ,EACLA,EAAQyoC,EAAQxoC,QACjBwoC,EAAQzoC,GAAOpF,MAAQA,EAAK6tC,EAAQ/Z,OAAO1uB,EAAO,GACjDA,IAEPu9B,EAAMiM,aAIR7wC,IAAK,SAAamd,GAChB4yB,EAAwB3sC,UAAUkE,OAAQ,GAI1C,IAHA,IAAIwoC,EAAUlB,EAAuBtvC,MAAMwwC,QACvC7tC,EAAMkb,EAAO,GACb9V,EAAQ,EACLA,EAAQyoC,EAAQxoC,OAAQD,IAC7B,GAAIyoC,EAAQzoC,GAAOpF,MAAQA,EAAK,OAAO6tC,EAAQzoC,GAAOoI,MAExD,OAAO,MAITuhC,OAAQ,SAAgB7zB,GACtB4yB,EAAwB3sC,UAAUkE,OAAQ,GAK1C,IAJA,IAAIwoC,EAAUlB,EAAuBtvC,MAAMwwC,QACvC7tC,EAAMkb,EAAO,GACblM,EAAS,GACT5J,EAAQ,EACLA,EAAQyoC,EAAQxoC,OAAQD,IACzByoC,EAAQzoC,GAAOpF,MAAQA,GAAKgP,EAAO3D,KAAKwiC,EAAQzoC,GAAOoI,OAE7D,OAAOwB,GAIT2I,IAAK,SAAauD,GAChB4yB,EAAwB3sC,UAAUkE,OAAQ,GAI1C,IAHA,IAAIwoC,EAAUlB,EAAuBtvC,MAAMwwC,QACvC7tC,EAAMkb,EAAO,GACb9V,EAAQ,EACLA,EAAQyoC,EAAQxoC,QACrB,GAAIwoC,EAAQzoC,KAASpF,MAAQA,EAAK,OAAO,EAE3C,OAAO,GAIT8C,IAAK,SAAaoY,EAAM1N,GACtBsgC,EAAwB3sC,UAAUkE,OAAQ,GAQ1C,IAPA,IAMIooC,EANA9K,EAAQgK,EAAuBtvC,MAC/BwwC,EAAUlL,EAAMkL,QAChBmB,GAAQ,EACRhvC,EAAMkb,EAAO,GACbuM,EAAMja,EAAQ,GACdpI,EAAQ,EAELA,EAAQyoC,EAAQxoC,OAAQD,KAC7BqoC,EAAQI,EAAQzoC,IACNpF,MAAQA,IACZgvC,EAAOnB,EAAQ/Z,OAAO1uB,IAAS,IAEjC4pC,GAAQ,EACRvB,EAAMjgC,MAAQia,IAIfunB,GAAOnB,EAAQxiC,KAAK,CAAErL,IAAKA,EAAKwN,MAAOia,IAC5Ckb,EAAMiM,aAIRzT,KAAM,WACJ,IAIIsS,EAAOwB,EAAcC,EAJrBvM,EAAQgK,EAAuBtvC,MAC/BwwC,EAAUlL,EAAMkL,QAEhB5oC,EAAQ4oC,EAAQ5oC,QAGpB,IADA4oC,EAAQxoC,OAAS,EACZ6pC,EAAa,EAAGA,EAAajqC,EAAMI,OAAQ6pC,IAAc,CAE5D,IADAzB,EAAQxoC,EAAMiqC,GACTD,EAAe,EAAGA,EAAeC,EAAYD,IAChD,GAAIpB,EAAQoB,GAAcjvC,IAAMytC,EAAMztC,IAAK,CACzC6tC,EAAQ/Z,OAAOmb,EAAc,EAAGxB,GAChC,MAGAwB,IAAiBC,GAAYrB,EAAQxiC,KAAKoiC,GAEhD9K,EAAMiM,aAGRvhC,QAAS,SAAiBhN,GAKxB,IAJA,IAGIotC,EAHAI,EAAUlB,EAAuBtvC,MAAMwwC,QACvCsB,EAAgBt9B,EAAKxR,EAAUc,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,EAAW,GAChFe,EAAQ,EAELA,EAAQyoC,EAAQxoC,QAErB8pC,GADA1B,EAAQI,EAAQzoC,MACIoI,MAAOigC,EAAMztC,IAAK3C,OAI1C0W,KAAM,WACJ,OAAO,IAAIi6B,EAAwB3wC,KAAM,SAG3C+xC,OAAQ,WACN,OAAO,IAAIpB,EAAwB3wC,KAAM,WAG3CwwC,QAAS,WACP,OAAO,IAAIG,EAAwB3wC,KAAM,aAE1C,CAAEW,YAAY,IAGjB0tC,EAASmD,EAA0BtC,EAAUsC,EAAyBhB,SAItEnC,EAASmD,EAA0B,YAAY,WAK7C,IAJA,IAGIpB,EAHAI,EAAUlB,EAAuBtvC,MAAMwwC,QACvC7+B,EAAS,GACT5J,EAAQ,EAELA,EAAQyoC,EAAQxoC,QACrBooC,EAAQI,EAAQzoC,KAChB4J,EAAO3D,KAAKkiC,EAAUE,EAAMztC,KAAO,IAAMutC,EAAUE,EAAMjgC,QACzD,OAAOwB,EAAOyE,KAAK,OACpB,CAAEzV,YAAY,IAEjB4tC,EAAeyC,EAA4B7B,GAE3C76B,EAAE,CAAErM,QAAQ,EAAMwM,QAAS25B,GAAkB,CAC3C4D,gBAAiBhB,IAKd5C,GAAmC,mBAAVY,GAA0C,mBAAXC,GAC3D36B,EAAE,CAAErM,QAAQ,EAAMtH,YAAY,EAAM8T,QAAQ,GAAQ,CAClDw9B,MAAO,SAAenqC,GACpB,IACIkkB,EAAM6D,EAAMqiB,EADZ1tB,EAAO,CAAC1c,GAkBV,OAhBEhE,UAAUkE,OAAS,IAEjBoR,EADJ4S,EAAOloB,UAAU,MAEf+rB,EAAO7D,EAAK6D,KACR+e,EAAQ/e,KAAUsf,KACpB+C,EAAUlmB,EAAKkmB,QAAU,IAAIjD,EAAQjjB,EAAKkmB,SAAW,IAAIjD,GAC5C30B,IAAI,iBACf43B,EAAQzsC,IAAI,eAAgB,mDAE9BumB,EAAOoa,EAAOpa,EAAM,CAClB6D,KAAM7S,EAAyB,EAAGvW,OAAOopB,IACzCqiB,QAASl1B,EAAyB,EAAGk1B,OAI3C1tB,EAAKxW,KAAKge,IACHgjB,EAAOnrC,MAAM7D,KAAMwkB,MAKlCtc,EAAOC,QAAU,CACf6pC,gBAAiBhB,EACjBrM,SAAU2K,I,uBCzVZ,IAAI/5B,EAAQ,EAAQ,QAChBw5B,EAAkB,EAAQ,QAC1BoD,EAAU,EAAQ,QAElBjD,EAAWH,EAAgB,YAE/B7mC,EAAOC,SAAWoN,GAAM,WACtB,IAAI4rB,EAAM,IAAIiR,IAAI,gBAAiB,YAC/BC,EAAelR,EAAIkR,aACnB1gC,EAAS,GAMb,OALAwvB,EAAImR,SAAW,QACfD,EAAariC,SAAQ,SAAUG,EAAOxN,GACpC0vC,EAAqB,OAAE,KACvB1gC,GAAUhP,EAAMwN,KAEVgiC,IAAYhR,EAAIxjB,SAClB00B,EAAavU,MACD,2BAAbqD,EAAIM,MACsB,MAA1B4Q,EAAa3xC,IAAI,MACuB,QAAxC+F,OAAO,IAAIurC,gBAAgB,WAC1BK,EAAanD,IAEsB,MAApC,IAAIkD,IAAI,eAAeG,UACsC,MAA7D,IAAIP,gBAAgB,IAAIA,gBAAgB,QAAQtxC,IAAI,MAEpB,eAAhC,IAAI0xC,IAAI,mCAAeI,MAEQ,YAA/B,IAAIJ,IAAI,mBAAcK,MAEX,SAAX9gC,GAEwC,MAAxC,IAAIygC,IAAI,gBAAYprC,GAAWwrC,S,wBCxB7B,SAAU13C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,OAGvGC,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,wBCCzG,SAAU5C,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,sdAA0FC,MAAM,KACxGC,YAAa,sdAA0FD,MAAM,KAC7GE,SAAU,ugBAA8FF,MAAM,KAC9GG,cAAe,qQAAmDH,MAAM,KACxEI,YAAa,uFAAsBJ,MAAM,KACzCK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,sCACTC,QAAS,gCACTC,SAAU,WACVC,QAAS,4CACTC,SAAU,2EACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,8BACNC,EAAG,+FACHC,GAAI,4DACJC,EAAG,gEACHC,GAAI,kEACJC,EAAG,uEACHC,GAAI,uDACJC,EAAG,8CACHC,GAAI,gDACJC,EAAG,oDACHC,GAAI,sDACJC,EAAG,0DACHC,GAAI,uDAENC,uBAAwB,4BACxBC,QAAS,SAAUC,GACjB,OAAOA,EAAS,sBAElBkM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAIrB8B,cAAe,wMACfE,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,kCACEA,EAAO,EACT,kCACEA,EAAO,GACT,4BACEA,EAAO,GACT,8CACEA,EAAO,GACT,8CACEA,EAAO,GACT,4BAEA,mCAGXs+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,mCAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,mCAAbD,GAAqC,6BAAbA,GAEX,+CAAbA,GACFC,GAAQ,GAFRA,EAIAA,EAAO,IAGlB7L,KAAM,CACJC,IAAK,EAELC,IAAK,KArHuFC,CAAQ,EAAQ,U,oCCJlH,IAAIg1C,EAAQ,eACRC,EAAgB,IAAIrsC,OAAOosC,EAAO,MAClCE,EAAe,IAAItsC,OAAO,IAAMosC,EAAQ,KAAM,MAElD,SAASG,EAAiBC,EAAY73C,GACpC,IAEE,OAAOwf,mBAAmBq4B,EAAW18B,KAAK,KAC1C,MAAOiB,IAGT,GAA0B,IAAtBy7B,EAAW9qC,OACb,OAAO8qC,EAGT73C,EAAQA,GAAS,EAEjB,IAAI6Y,EAAOg/B,EAAWlrC,MAAM,EAAG3M,GAC3BshC,EAAQuW,EAAWlrC,MAAM3M,GAC7B,OAAOwjB,MAAMrd,UAAUuV,OAAO5W,KAAK,GAAI8yC,EAAiB/+B,GAAO++B,EAAiBtW,IAGlF,SAAS/hB,EAAO1S,GACd,IACE,OAAO2S,mBAAmB3S,GAC1B,MAAOuP,GAGP,IAFA,IAAI07B,EAASjrC,EAAMX,MAAMwrC,GAEhBvrC,EAAI,EAAGA,EAAI2rC,EAAO/qC,OAAQZ,IAEjC2rC,GADAjrC,EAAQ+qC,EAAiBE,EAAQ3rC,GAAGgP,KAAK,KAC1BjP,MAAMwrC,GAGvB,OAAO7qC,GAwCXI,EAAOC,QAAU,SAAU6qC,GACzB,GAA0B,kBAAfA,EACT,MAAM,IAAI/nB,UAAU,6DAA+D+nB,EAAa,KAGlG,IAGE,OAFAA,EAAaA,EAAWl1C,QAAQ,MAAO,KAEhC2c,mBAAmBu4B,GAC1B,MAAO37B,GAEP,OA/CJ,SAAkCvP,GAQhC,IANA,IAAImrC,EAAa,CACf,SAAU,eACV,SAAU,gBAER9rC,EAAQyrC,EAAarsC,KAAKuB,GAEvBX,GAAO,CACZ,IAEE8rC,EAAW9rC,EAAM,IAAMsT,mBAAmBtT,EAAM,IAChD,MAAOkQ,GACP,IAAI1F,EAAS6I,EAAOrT,EAAM,IAEtBwK,IAAWxK,EAAM,KACnB8rC,EAAW9rC,EAAM,IAAMwK,GAI3BxK,EAAQyrC,EAAarsC,KAAKuB,GAI5BmrC,EAAW,OAAS,SAGpB,IAFA,IAAIzC,EAAUhwC,OAAOkW,KAAKu8B,GAEjB7rC,EAAI,EAAGA,EAAIopC,EAAQxoC,OAAQZ,IAAK,CAEvC,IAAIzE,EAAM6tC,EAAQppC,GAClBU,EAAQA,EAAMhK,QAAQ,IAAIwI,OAAO3D,EAAK,KAAMswC,EAAWtwC,IAGzD,OAAOmF,EAcEorC,CAAyBF,M,wBC9E3B,SAAUl4C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,ocAAuFC,MAAM,KACrGC,YAAa,sOAAkDD,MAAM,KACrEE,SAAU,mSAAwDF,MAAM,KACxEG,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,8EAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,YACHC,GAAI,cACJC,IAAK,mBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,mDACTC,QAAS,6CACTC,SAAU,wCACVC,QAAS,mDACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,wFAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,0FAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,8BACNC,EAAG,wFACHC,GAAI,gDACJC,EAAG,gEACHC,GAAI,0CACJC,EAAG,8CACHC,GAAI,8BACJC,EAAG,8CACHC,GAAI,8BACJC,EAAG,0DACHC,GAAI,0CACJC,EAAG,gEACHC,GAAI,2CAENC,uBAAwB,0FACxBC,QAAS,SAAUC,GACjB,IAAIysC,EAAYzsC,EAAS,GACrB0sC,EAAc1sC,EAAS,IAE3B,OAAe,IAAXA,EACKA,EAAS,gBACS,IAAhB0sC,EACF1sC,EAAS,gBACP0sC,EAAc,IAAMA,EAAc,GACpC1sC,EAAS,gBACO,IAAdysC,EACFzsC,EAAS,gBACO,IAAdysC,EACFzsC,EAAS,gBACO,IAAdysC,GAAiC,IAAdA,EACrBzsC,EAAS,gBAETA,EAAS,iBAGpBE,KAAM,CACJC,IAAK,EAELC,IAAK,KA/EuFC,CAAQ,EAAQ,U,wBCAzG,SAAU5C,GACjB,aAEA,IAAIq4C,EAAW,CACb9qC,EAAG,QACHI,EAAG,QACHG,EAAG,QACHwqC,GAAI,QACJC,GAAI,QACJ/qC,EAAG,OACHK,EAAG,OACH2qC,GAAI,OACJC,GAAI,OACJhrC,EAAG,cACHC,EAAG,cACHgrC,IAAK,cACL9qC,EAAG,YACHG,EAAG,QACH4qC,GAAI,QACJC,GAAI,QACJC,GAAI,kBACJC,GAAI,mBAEG94C,EAAOC,aAAa,KAAM,CACjCC,OAAQ,+EAA+EC,MAAM,KAC7FC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2KAAqEF,MAAM,KACrFG,cAAe,sDAA8BH,MAAM,KACnDI,YAAa,+CAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,qBACTC,QAAS,kBACTC,SAAU,mDACVC,QAAS,qBACTC,SAAU,iDACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,qBACNC,EAAG,+BACHC,GAAI,iBACJC,EAAG,uBACHC,GAAI,sBACJC,EAAG,WACHC,GAAI,UACJC,EAAG,aACHC,GAAI,YACJC,EAAG,SACHC,GAAI,QACJC,EAAG,SACHC,GAAI,SAEN+L,cAAe,oDACfC,KAAM,SAAUpB,GACd,MAAO,8BAAmB5J,KAAK4J,IAEjCqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,YACEA,EAAO,GACT,kBACEA,EAAO,GACT,eAEA,cAGXjM,uBAAwB,6DACxBC,QAAS,SAAUC,GACjB,GAAe,IAAXA,EAEF,OAAOA,EAAS,kBAGlB,IAAIshB,EAAIthB,EAAS,GACbC,EAAID,EAAS,IAAMshB,EACnBsK,EAAI5rB,GAAU,IAAM,IAAM,KAC9B,OAAOA,GAAU81C,EAASx0B,IAAMw0B,EAAS71C,IAAM61C,EAASlqB,KAE1D1rB,KAAM,CACJC,IAAK,EAELC,IAAK,KA7FuFC,CAAQ,EAAQ,U,oCCOlH,SAAS0b,EAAS0B,GAChB,OAAe,OAARA,GAA+B,kBAARA,GAAoB,gBAAiBA,GAAOA,EAAInB,cAAgBnZ,OAGhG,SAAS2mC,EAAOviC,EAAQivC,QACP,IAAXjvC,IACFA,EAAS,SAGC,IAARivC,IACFA,EAAM,IAGRrzC,OAAOkW,KAAKm9B,GAAK7jC,SAAQ,SAAUrN,GACN,qBAAhBiC,EAAOjC,GAAsBiC,EAAOjC,GAAOkxC,EAAIlxC,GAAcyW,EAASy6B,EAAIlxC,KAASyW,EAASxU,EAAOjC,KAASnC,OAAOkW,KAAKm9B,EAAIlxC,IAAMqF,OAAS,GACpJm/B,EAAOviC,EAAOjC,GAAMkxC,EAAIlxC,OAK9B,IAAImxC,EAAc,CAChBjkB,KAAM,GACN/pB,iBAAkB,aAClBC,oBAAqB,aACrBmuB,cAAe,CACboE,KAAM,aACNuG,SAAU,IAEZv6B,cAAe,WACb,OAAO,MAETuL,iBAAkB,WAChB,MAAO,IAETkkC,eAAgB,WACd,OAAO,MAET5iB,YAAa,WACX,MAAO,CACLkO,UAAW,eAGfza,cAAe,WACb,MAAO,CACLyO,SAAU,GACV2gB,WAAY,GACZrjC,MAAO,GACPlN,aAAc,aACd+xB,qBAAsB,WACpB,MAAO,MAIbye,gBAAiB,WACf,MAAO,IAETC,WAAY,WACV,OAAO,MAETC,SAAU,CACR1B,KAAM,GACND,KAAM,GACN4B,SAAU,GACV3S,KAAM,GACN4S,OAAQ,GACR/B,SAAU,GACV5Q,SAAU,GACV4S,OAAQ,KAIZ,SAASC,IACP,IAAI7X,EAA0B,qBAAbtlB,SAA2BA,SAAW,GAEvD,OADA+vB,EAAOzK,EAAKoX,GACLpX,EAGT,IAAI8X,EAAY,CACdp9B,SAAU08B,EACVv0B,UAAW,CACTC,UAAW,IAEb20B,SAAU,CACR1B,KAAM,GACND,KAAM,GACN4B,SAAU,GACV3S,KAAM,GACN4S,OAAQ,GACR/B,SAAU,GACV5Q,SAAU,GACV4S,OAAQ,IAEVG,QAAS,CACPC,aAAc,aACdC,UAAW,aACXC,GAAI,aACJC,KAAM,cAERC,YAAa,WACX,OAAO90C,MAET8F,iBAAkB,aAClBC,oBAAqB,aACrBgvC,iBAAkB,WAChB,MAAO,CACLC,iBAAkB,WAChB,MAAO,MAIbC,MAAO,aACP/8B,KAAM,aACNg9B,OAAQ,GACRvzC,WAAY,aACZH,aAAc,aACd2zC,WAAY,WACV,MAAO,IAETlyC,sBAAuB,SAAUD,GAC/B,MAA0B,qBAAfrB,YACTqB,IACO,MAGFrB,WAAWqB,EAAU,IAE9BzB,qBAAsB,SAAU6zC,GACJ,qBAAfzzC,YAIXH,aAAa4zC,KAIjB,SAASC,IACP,IAAIC,EAAwB,qBAAXr+B,OAAyBA,OAAS,GAEnD,OADAkwB,EAAOmO,EAAKd,GACLc,ECpIT,SAASC,EAAgBC,GAIvB,OAHAD,EAAkB/0C,OAAO6Y,eAAiB7Y,OAAOi1C,eAAiB,SAAyBD,GACzF,OAAOA,EAAEE,WAAal1C,OAAOi1C,eAAeD,KAEvBA,GAGzB,SAASG,EAAgBH,EAAGn3B,GAM1B,OALAs3B,EAAkBn1C,OAAO6Y,gBAAkB,SAAyBm8B,EAAGn3B,GAErE,OADAm3B,EAAEE,UAAYr3B,EACPm3B,IAGcA,EAAGn3B,GAG5B,SAASu3B,IACP,GAAuB,qBAAZC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EAExC,IAEE,OADA99B,KAAK9W,UAAU0X,SAAS/Y,KAAK81C,QAAQC,UAAU59B,KAAM,IAAI,iBAClD,EACP,MAAOwC,GACP,OAAO,GAIX,SAASu7B,EAAWC,EAAQ1xB,EAAM2xB,GAchC,OAZEF,EADEL,IACWC,QAAQC,UAER,SAAoBI,EAAQ1xB,EAAM2xB,GAC7C,IAAIx3B,EAAI,CAAC,MACTA,EAAE3Q,KAAKnK,MAAM8a,EAAG6F,GAChB,IACI4xB,EAAW,IADGC,SAAS7hC,KAAK3Q,MAAMqyC,EAAQv3B,IAG9C,OADIw3B,GAAOR,EAAgBS,EAAUD,EAAM/0C,WACpCg1C,IAIOvyC,MAAM,KAAMC,WAOhC,SAASwyC,EAAiBH,GACxB,IAAII,EAAwB,oBAARC,IAAqB,IAAIA,SAAQxvC,EA8BrD,OA5BAsvC,EAAmB,SAA0BH,GAC3C,GAAc,OAAVA,IARmBhsB,EAQkBgsB,GAPqB,IAAzDE,SAASv9B,SAAS/Y,KAAKoqB,GAAIxiB,QAAQ,kBAOS,OAAOwuC,EAR5D,IAA2BhsB,EAUvB,GAAqB,oBAAVgsB,EACT,MAAM,IAAIlrB,UAAU,sDAGtB,GAAsB,qBAAXsrB,EAAwB,CACjC,GAAIA,EAAOj8B,IAAI67B,GAAQ,OAAOI,EAAO71C,IAAIy1C,GAEzCI,EAAO9wC,IAAI0wC,EAAO38B,GAGpB,SAASA,IACP,OAAOy8B,EAAWE,EAAOryC,UAAWyxC,EAAgBv1C,MAAM2Z,aAW5D,OARAH,EAAQpY,UAAYZ,OAAO4lC,OAAO+P,EAAM/0C,UAAW,CACjDuY,YAAa,CACXxJ,MAAOqJ,EACP7Y,YAAY,EACZ4pC,UAAU,EACV3pC,cAAc,KAGX+0C,EAAgBn8B,EAAS28B,KAGVA,GAyB1B,IAAIM,EAAoB,SAAUC,GAhHlC,IAAwBC,EAAUC,EAmHhC,SAASH,EAAKI,GACZ,IAAI/2C,EAhBcgb,EAChBg8B,EAmBF,OAFAh3C,EAAQ42C,EAAO32C,KAAK8D,MAAM6yC,EAAQ,CAAC12C,MAAM2W,OAAOkgC,KAAW72C,KAlBzC8a,EAVtB,SAAgCyQ,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIwrB,eAAe,6DAG3B,OAAOxrB,EAwBQyrB,CAAuBl3C,GAlBlCg3C,EAAQh8B,EAAI46B,UAChBl1C,OAAOC,eAAeqa,EAAK,YAAa,CACtCpa,IAAK,WACH,OAAOo2C,GAETrxC,IAAK,SAAa0K,GAChB2mC,EAAMpB,UAAYvlC,KAabrQ,EAGT,OA3HgC82C,EAiHXF,GAjHCC,EAiHPF,GAhHNr1C,UAAYZ,OAAO4lC,OAAOwQ,EAAWx1C,WAC9Cu1C,EAASv1C,UAAUuY,YAAcg9B,EACjCA,EAASjB,UAAYkB,EAwHdH,EAXe,CAYRH,EAAiB73B,QAEjC,SAASw4B,EAAU/tB,QACL,IAARA,IACFA,EAAM,IAGR,IAAIguB,EAAM,GAQV,OAPAhuB,EAAIlZ,SAAQ,SAAUR,GAChBiP,MAAMisB,QAAQl7B,GAChB0nC,EAAIlpC,KAAKnK,MAAMqzC,EAAKD,EAAUznC,IAE9B0nC,EAAIlpC,KAAKwB,MAGN0nC,EAGT,SAASC,EAAYjuB,EAAKlmB,GACxB,OAAOyb,MAAMrd,UAAU23B,OAAOh5B,KAAKmpB,EAAKlmB,GAkC1C,SAASsR,EAAEisB,EAAUhc,GACnB,IAAItN,EAASo+B,IACTj+B,EAAWm9B,IACXrrB,EAAM,GAEV,IAAK3E,GAAWgc,aAAoBkW,EAClC,OAAOlW,EAGT,IAAKA,EACH,OAAO,IAAIkW,EAAKvtB,GAGlB,GAAwB,kBAAbqX,EAAuB,CAChC,IAAI6W,EAAO7W,EAAS/8B,OAEpB,GAAI4zC,EAAKzvC,QAAQ,MAAQ,GAAKyvC,EAAKzvC,QAAQ,MAAQ,EAAG,CACpD,IAAI0vC,EAAW,MACa,IAAxBD,EAAKzvC,QAAQ,SAAc0vC,EAAW,MACd,IAAxBD,EAAKzvC,QAAQ,SAAc0vC,EAAW,SACd,IAAxBD,EAAKzvC,QAAQ,QAAwC,IAAxByvC,EAAKzvC,QAAQ,SAAc0vC,EAAW,MACxC,IAA3BD,EAAKzvC,QAAQ,YAAiB0vC,EAAW,SACb,IAA5BD,EAAKzvC,QAAQ,aAAkB0vC,EAAW,UAC9C,IAAIC,EAAalgC,EAASwN,cAAcyyB,GACxCC,EAAW5zC,UAAY0zC,EAEvB,IAAK,IAAIhwC,EAAI,EAAGA,EAAIkwC,EAAWtD,WAAWhsC,OAAQZ,GAAK,EACrD8hB,EAAIlb,KAAKspC,EAAWtD,WAAW5sC,SAGjC8hB,EA7CN,SAAaqX,EAAUhc,GACrB,GAAwB,kBAAbgc,EACT,MAAO,CAACA,GAMV,IAHA,IAAI5hB,EAAI,GACJu4B,EAAM3yB,EAAQ1U,iBAAiB0wB,GAE1Bn5B,EAAI,EAAGA,EAAI8vC,EAAIlvC,OAAQZ,GAAK,EACnCuX,EAAE3Q,KAAKkpC,EAAI9vC,IAGb,OAAOuX,EAiCG44B,CAAIhX,EAAS/8B,OAAQ+gB,GAAWnN,QAGnC,GAAImpB,EAAStO,UAAYsO,IAAatpB,GAAUspB,IAAanpB,EAClE8R,EAAIlb,KAAKuyB,QACJ,GAAI9hB,MAAMisB,QAAQnK,GAAW,CAClC,GAAIA,aAAoBkW,EAAM,OAAOlW,EACrCrX,EAAMqX,EAGR,OAAO,IAAIkW,EAvEb,SAAqBvtB,GAGnB,IAFA,IAAIsuB,EAAc,GAETpwC,EAAI,EAAGA,EAAI8hB,EAAIlhB,OAAQZ,GAAK,GACE,IAAjCowC,EAAY7vC,QAAQuhB,EAAI9hB,KAAYowC,EAAYxpC,KAAKkb,EAAI9hB,IAG/D,OAAOowC,EAgESC,CAAYvuB,IAG9B5U,EAAE6V,GAAKssB,EAAKr1C,UAm4CZ,IAAIs2C,EAAY,gBAAgBz8C,MAAM,KAEtC,SAAS08C,EAAS95B,GAqBhB,OApBA,WACE,IAAK,IAAI+5B,EAAO9zC,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAMm5B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ErzB,EAAKqzB,GAAQ/zC,UAAU+zC,GAGzB,GAAuB,qBAAZrzB,EAAK,GAAoB,CAClC,IAAK,IAAIpd,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAChCswC,EAAU/vC,QAAQkW,GAAQ,IACxBA,KAAQ7d,KAAKoH,GAAIpH,KAAKoH,GAAGyW,KAC3BvJ,EAAEtU,KAAKoH,IAAI0wC,QAAQj6B,IAKzB,OAAO7d,KAGT,OAAOA,KAAK+3C,GAAGl0C,MAAM7D,KAAM,CAAC6d,GAAMlH,OAAO6N,KAMjCmzB,EAAS,SACVA,EAAS,QACRA,EAAS,SACPA,EAAS,WACRA,EAAS,YACZA,EAAS,SACPA,EAAS,WACRA,EAAS,YACXA,EAAS,UACTA,EAAS,UACNA,EAAS,aACTA,EAAS,aACXA,EAAS,WACNA,EAAS,cACTA,EAAS,cACXA,EAAS,YACRA,EAAS,aACRA,EAAS,cACXA,EAAS,YACRA,EAAS,aACZA,EAAS,UACTA,EAAS,UArBtB,ICroDIK,EAAU,CACZn3C,SDyOF,WACE,IAAK,IAAI+2C,EAAO9zC,UAAUkE,OAAQiwC,EAAU,IAAIx5B,MAAMm5B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFI,EAAQJ,GAAQ/zC,UAAU+zC,GAG5B,IAAIK,EAAajB,EAAUgB,EAAQjvB,KAAI,SAAUC,GAC/C,OAAOA,EAAEhuB,MAAM,SAOjB,OALA+E,KAAKgQ,SAAQ,SAAUR,GACrB,IAAI2oC,GAEHA,EAAgB3oC,EAAGnK,WAAWC,IAAIzB,MAAMs0C,EAAeD,MAEnDl4C,MCrPPmB,YDwPF,WACE,IAAK,IAAIi3C,EAAQt0C,UAAUkE,OAAQiwC,EAAU,IAAIx5B,MAAM25B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACvFJ,EAAQI,GAASv0C,UAAUu0C,GAG7B,IAAIH,EAAajB,EAAUgB,EAAQjvB,KAAI,SAAUC,GAC/C,OAAOA,EAAEhuB,MAAM,SAOjB,OALA+E,KAAKgQ,SAAQ,SAAUR,GACrB,IAAI8oC,GAEHA,EAAiB9oC,EAAGnK,WAAWG,OAAO3B,MAAMy0C,EAAgBJ,MAExDl4C,MCpQP+b,SDsRF,WACE,IAAK,IAAIw8B,EAAQz0C,UAAUkE,OAAQiwC,EAAU,IAAIx5B,MAAM85B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACvFP,EAAQO,GAAS10C,UAAU00C,GAG7B,IAAIN,EAAajB,EAAUgB,EAAQjvB,KAAI,SAAUC,GAC/C,OAAOA,EAAEhuB,MAAM,SAEjB,OAAOk8C,EAAYn3C,MAAM,SAAUwP,GACjC,OAAO0oC,EAAWnf,QAAO,SAAU3zB,GACjC,OAAOoK,EAAGnK,UAAU4rB,SAAS7rB,MAC5B4C,OAAS,KACXA,OAAS,GCjSZ0c,YDsQF,WACE,IAAK,IAAI+zB,EAAQ30C,UAAUkE,OAAQiwC,EAAU,IAAIx5B,MAAMg6B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACvFT,EAAQS,GAAS50C,UAAU40C,GAG7B,IAAIR,EAAajB,EAAUgB,EAAQjvB,KAAI,SAAUC,GAC/C,OAAOA,EAAEhuB,MAAM,SAEjB+E,KAAKgQ,SAAQ,SAAUR,GACrB0oC,EAAWloC,SAAQ,SAAU5K,GAC3BoK,EAAGnK,UAAUi5B,OAAOl5B,UC/QxB8L,KDmSF,SAAcynC,EAAOxoC,GACnB,GAAyB,IAArBrM,UAAUkE,QAAiC,kBAAV2wC,EAEnC,OAAI34C,KAAK,GAAWA,KAAK,GAAGqD,aAAas1C,QACzC,EAIF,IAAK,IAAIvxC,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EACpC,GAAyB,IAArBtD,UAAUkE,OAEZhI,KAAKoH,GAAG3D,aAAak1C,EAAOxoC,QAG5B,IAAK,IAAIyoC,KAAYD,EACnB34C,KAAKoH,GAAGwxC,GAAYD,EAAMC,GAC1B54C,KAAKoH,GAAG3D,aAAam1C,EAAUD,EAAMC,IAK3C,OAAO54C,MCvTP64C,WD0TF,SAAoB3nC,GAClB,IAAK,IAAI9J,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EACpCpH,KAAKoH,GAAGzD,gBAAgBuN,GAG1B,OAAOlR,MC9TP84C,UDmcF,SAAmBA,GACjB,IAAK,IAAI1xC,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EACpCpH,KAAKoH,GAAGuJ,MAAMmoC,UAAYA,EAG5B,OAAO94C,MCvcP+4C,WD0cF,SAAoBjuB,GAClB,IAAK,IAAI1jB,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EACpCpH,KAAKoH,GAAGuJ,MAAMqoC,mBAAyC,kBAAbluB,EAAwBA,EAAW,KAAOA,EAGtF,OAAO9qB,MC9cP+3C,GDidF,WACE,IAAK,IAAIkB,EAAQn1C,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAMw6B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF10B,EAAK00B,GAASp1C,UAAUo1C,GAG1B,IAAIC,EAAY30B,EAAK,GACjB40B,EAAiB50B,EAAK,GACtB60B,EAAW70B,EAAK,GAChBwL,EAAUxL,EAAK,GAWnB,SAAS80B,EAAgB5+B,GACvB,IAAI9V,EAAS8V,EAAE9V,OACf,GAAKA,EAAL,CACA,IAAI6J,EAAYiM,EAAE9V,OAAO20C,eAAiB,GAM1C,GAJI9qC,EAAU9G,QAAQ+S,GAAK,GACzBjM,EAAU+qC,QAAQ9+B,GAGhBpG,EAAE1P,GAAQ60C,GAAGL,GAAiBC,EAASx1C,MAAMe,EAAQ6J,QAIvD,IAHA,IAAIirC,EAAWplC,EAAE1P,GAAQ+0C,UAGhBj7B,EAAI,EAAGA,EAAIg7B,EAAS1xC,OAAQ0W,GAAK,EACpCpK,EAAEolC,EAASh7B,IAAI+6B,GAAGL,IAAiBC,EAASx1C,MAAM61C,EAASh7B,GAAIjQ,IAKzE,SAASmrC,EAAYl/B,GACnB,IAAIjM,EAAYiM,GAAKA,EAAE9V,QAAS8V,EAAE9V,OAAO20C,eAAsB,GAE3D9qC,EAAU9G,QAAQ+S,GAAK,GACzBjM,EAAU+qC,QAAQ9+B,GAGpB2+B,EAASx1C,MAAM7D,KAAMyO,GAnCA,oBAAZ+V,EAAK,KACd20B,EAAY30B,EAAK,GACjB60B,EAAW70B,EAAK,GAChBwL,EAAUxL,EAAK,GACf40B,OAAiBpyC,GAGdgpB,IAASA,GAAU,GAkCxB,IAHA,IACIpZ,EADA3L,EAASkuC,EAAUl+C,MAAM,KAGpBmM,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAAG,CACvC,IAAIoI,EAAKxP,KAAKoH,GAEd,GAAKgyC,EAaH,IAAKxiC,EAAI,EAAGA,EAAI3L,EAAOjD,OAAQ4O,GAAK,EAAG,CACrC,IAAIijC,EAAS5uC,EAAO2L,GACfpH,EAAGsqC,oBAAmBtqC,EAAGsqC,kBAAoB,IAC7CtqC,EAAGsqC,kBAAkBD,KAASrqC,EAAGsqC,kBAAkBD,GAAU,IAElErqC,EAAGsqC,kBAAkBD,GAAQ7rC,KAAK,CAChCqrC,SAAUA,EACVU,cAAeT,IAGjB9pC,EAAG1J,iBAAiB+zC,EAAQP,EAAiBtpB,QAtB/C,IAAKpZ,EAAI,EAAGA,EAAI3L,EAAOjD,OAAQ4O,GAAK,EAAG,CACrC,IAAItI,EAAQrD,EAAO2L,GACdpH,EAAGwqC,gBAAexqC,EAAGwqC,cAAgB,IACrCxqC,EAAGwqC,cAAc1rC,KAAQkB,EAAGwqC,cAAc1rC,GAAS,IACxDkB,EAAGwqC,cAAc1rC,GAAON,KAAK,CAC3BqrC,SAAUA,EACVU,cAAeH,IAEjBpqC,EAAG1J,iBAAiBwI,EAAOsrC,EAAa5pB,IAmB9C,OAAOhwB,MCliBPi6C,IDqiBF,WACE,IAAK,IAAIC,EAAQp2C,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAMy7B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF31B,EAAK21B,GAASr2C,UAAUq2C,GAG1B,IAAIhB,EAAY30B,EAAK,GACjB40B,EAAiB50B,EAAK,GACtB60B,EAAW70B,EAAK,GAChBwL,EAAUxL,EAAK,GAEI,oBAAZA,EAAK,KACd20B,EAAY30B,EAAK,GACjB60B,EAAW70B,EAAK,GAChBwL,EAAUxL,EAAK,GACf40B,OAAiBpyC,GAGdgpB,IAASA,GAAU,GAGxB,IAFA,IAAI/kB,EAASkuC,EAAUl+C,MAAM,KAEpBmM,EAAI,EAAGA,EAAI6D,EAAOjD,OAAQZ,GAAK,EAGtC,IAFA,IAAIkH,EAAQrD,EAAO7D,GAEVwP,EAAI,EAAGA,EAAI5W,KAAKgI,OAAQ4O,GAAK,EAAG,CACvC,IAAIpH,EAAKxP,KAAK4W,GACVwjC,OAAW,EAQf,IANKhB,GAAkB5pC,EAAGwqC,cACxBI,EAAW5qC,EAAGwqC,cAAc1rC,GACnB8qC,GAAkB5pC,EAAGsqC,oBAC9BM,EAAW5qC,EAAGsqC,kBAAkBxrC,IAG9B8rC,GAAYA,EAASpyC,OACvB,IAAK,IAAI0W,EAAI07B,EAASpyC,OAAS,EAAG0W,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAI/Y,EAAUy0C,EAAS17B,GAEnB26B,GAAY1zC,EAAQ0zC,WAAaA,GAG1BA,GAAY1zC,EAAQ0zC,UAAY1zC,EAAQ0zC,SAASgB,WAAa10C,EAAQ0zC,SAASgB,YAAchB,GAFtG7pC,EAAGzJ,oBAAoBuI,EAAO3I,EAAQo0C,cAAe/pB,GACrDoqB,EAAS3jB,OAAO/X,EAAG,IAIT26B,IACV7pC,EAAGzJ,oBAAoBuI,EAAO3I,EAAQo0C,cAAe/pB,GACrDoqB,EAAS3jB,OAAO/X,EAAG,KAO7B,OAAO1e,MCxlBP83C,QD+nBF,WAGE,IAFA,IAAI7gC,EAASo+B,IAEJiF,EAAQx2C,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAM67B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF/1B,EAAK+1B,GAASz2C,UAAUy2C,GAM1B,IAHA,IAAItvC,EAASuZ,EAAK,GAAGvpB,MAAM,KACvBwT,EAAY+V,EAAK,GAEZpd,EAAI,EAAGA,EAAI6D,EAAOjD,OAAQZ,GAAK,EAGtC,IAFA,IAAIkH,EAAQrD,EAAO7D,GAEVwP,EAAI,EAAGA,EAAI5W,KAAKgI,OAAQ4O,GAAK,EAAG,CACvC,IAAIpH,EAAKxP,KAAK4W,GAEd,GAAIK,EAAO69B,YAAa,CACtB,IAAIpyC,EAAM,IAAIuU,EAAO69B,YAAYxmC,EAAO,CACtCksC,OAAQ/rC,EACRgsC,SAAS,EACTC,YAAY,IAEdlrC,EAAG+pC,cAAgB/0B,EAAKuU,QAAO,SAAU3oB,EAAMuqC,GAC7C,OAAOA,EAAY,KAErBnrC,EAAG4hB,cAAc1uB,GACjB8M,EAAG+pC,cAAgB,UACZ/pC,EAAG+pC,eAKhB,OAAOv5C,MC9pBP46C,cDiqBF,SAAuB53C,GACrB,IAAI63C,EAAM76C,KAYV,OAJIgD,GACF63C,EAAI9C,GAAG,iBAPT,SAAS+C,EAAapgC,GAChBA,EAAE9V,SAAW5E,OACjBgD,EAASjD,KAAKC,KAAM0a,GACpBmgC,EAAIZ,IAAI,gBAAiBa,OAOpB96C,MC7qBP+6C,WD8sBF,SAAoBC,GAClB,GAAIh7C,KAAKgI,OAAS,EAAG,CACnB,GAAIgzC,EAAgB,CAClB,IAAIC,EAAUj7C,KAAKwQ,SAEnB,OAAOxQ,KAAK,GAAGutB,YAAc9G,WAAWw0B,EAAQjG,iBAAiB,iBAAmBvuB,WAAWw0B,EAAQjG,iBAAiB,gBAG1H,OAAOh1C,KAAK,GAAGutB,YAGjB,OAAO,MCxtBP2tB,YDyuBF,SAAqBF,GACnB,GAAIh7C,KAAKgI,OAAS,EAAG,CACnB,GAAIgzC,EAAgB,CAClB,IAAIG,EAAWn7C,KAAKwQ,SAEpB,OAAOxQ,KAAK,GAAGy7B,aAAehV,WAAW00B,EAASnG,iBAAiB,eAAiBvuB,WAAW00B,EAASnG,iBAAiB,kBAG3H,OAAOh1C,KAAK,GAAGy7B,aAGjB,OAAO,MCnvBPjrB,ODqyBF,WACE,IAAIyG,EAASo+B,IACb,OAAIr1C,KAAK,GAAWiX,EAAO89B,iBAAiB/0C,KAAK,GAAI,MAC9C,ICvyBP+zB,ODqvBF,WACE,GAAI/zB,KAAKgI,OAAS,EAAG,CACnB,IAAIiP,EAASo+B,IACTj+B,EAAWm9B,IACX/kC,EAAKxP,KAAK,GACVo7C,EAAM5rC,EAAGc,wBACTuf,EAAOzY,EAASyY,KAChBwrB,EAAY7rC,EAAG6rC,WAAaxrB,EAAKwrB,WAAa,EAC9CC,EAAa9rC,EAAG8rC,YAAczrB,EAAKyrB,YAAc,EACjDC,EAAY/rC,IAAOyH,EAASA,EAAOukC,QAAUhsC,EAAG+rC,UAChDE,EAAajsC,IAAOyH,EAASA,EAAOykC,QAAUlsC,EAAGisC,WACrD,MAAO,CACLrsC,IAAKgsC,EAAIhsC,IAAMmsC,EAAYF,EAC3BvnC,KAAMsnC,EAAItnC,KAAO2nC,EAAaH,GAIlC,OAAO,MCrwBPK,IDyyBF,SAAaC,EAAOzrC,GAClB,IACI/I,EADA6P,EAASo+B,IAGb,GAAyB,IAArBvxC,UAAUkE,OAAc,CAC1B,GAAqB,kBAAV4zC,EAGJ,CAEL,IAAKx0C,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAChC,IAAK,IAAIy0C,KAASD,EAChB57C,KAAKoH,GAAGuJ,MAAMkrC,GAASD,EAAMC,GAIjC,OAAO77C,KATP,GAAIA,KAAK,GAAI,OAAOiX,EAAO89B,iBAAiB/0C,KAAK,GAAI,MAAMg1C,iBAAiB4G,GAahF,GAAyB,IAArB93C,UAAUkE,QAAiC,kBAAV4zC,EAAoB,CAEvD,IAAKx0C,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAChCpH,KAAKoH,GAAGuJ,MAAMirC,GAASzrC,EAGzB,OAAOnQ,KAGT,OAAOA,MCr0BP87C,KDw0BF,SAAc94C,GACZ,OAAKA,GACLhD,KAAKgQ,SAAQ,SAAUR,EAAIzH,GACzB/E,EAASa,MAAM2L,EAAI,CAACA,EAAIzH,OAEnB/H,MAJeA,MCx0BtBo3C,KDo1BF,SAAcA,GACZ,GAAoB,qBAATA,EACT,OAAOp3C,KAAK,GAAKA,KAAK,GAAG0D,UAAY,KAGvC,IAAK,IAAI0D,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EACpCpH,KAAKoH,GAAG1D,UAAY0zC,EAGtB,OAAOp3C,MC51BP+7C,KD+1BF,SAAcA,GACZ,GAAoB,qBAATA,EACT,OAAO/7C,KAAK,GAAKA,KAAK,GAAGuD,YAAYC,OAAS,KAGhD,IAAK,IAAI4D,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EACpCpH,KAAKoH,GAAG7D,YAAcw4C,EAGxB,OAAO/7C,MCv2BPy5C,GD02BF,SAAYlZ,GACV,IAGIyb,EACA50C,EAJA6P,EAASo+B,IACTj+B,EAAWm9B,IACX/kC,EAAKxP,KAAK,GAGd,IAAKwP,GAA0B,qBAAb+wB,EAA0B,OAAO,EAEnD,GAAwB,kBAAbA,EAAuB,CAChC,GAAI/wB,EAAGysC,QAAS,OAAOzsC,EAAGysC,QAAQ1b,GAClC,GAAI/wB,EAAG0sC,sBAAuB,OAAO1sC,EAAG0sC,sBAAsB3b,GAC9D,GAAI/wB,EAAG2sC,kBAAmB,OAAO3sC,EAAG2sC,kBAAkB5b,GAGtD,IAFAyb,EAAc1nC,EAAEisB,GAEXn5B,EAAI,EAAGA,EAAI40C,EAAYh0C,OAAQZ,GAAK,EACvC,GAAI40C,EAAY50C,KAAOoI,EAAI,OAAO,EAGpC,OAAO,EAGT,GAAI+wB,IAAanpB,EACf,OAAO5H,IAAO4H,EAGhB,GAAImpB,IAAatpB,EACf,OAAOzH,IAAOyH,EAGhB,GAAIspB,EAAStO,UAAYsO,aAAoBkW,EAAM,CAGjD,IAFAuF,EAAczb,EAAStO,SAAW,CAACsO,GAAYA,EAE1Cn5B,EAAI,EAAGA,EAAI40C,EAAYh0C,OAAQZ,GAAK,EACvC,GAAI40C,EAAY50C,KAAOoI,EAAI,OAAO,EAGpC,OAAO,EAGT,OAAO,GCh5BPzH,MDm5BF,WACE,IACIX,EADAo0B,EAAQx7B,KAAK,GAGjB,GAAIw7B,EAAO,CAGT,IAFAp0B,EAAI,EAEuC,QAAnCo0B,EAAQA,EAAM4gB,kBACG,IAAnB5gB,EAAMvJ,WAAgB7qB,GAAK,GAGjC,OAAOA,IC75BTi1C,GDm6BF,SAAYt0C,GACV,GAAqB,qBAAVA,EAAuB,OAAO/H,KACzC,IAAIgI,EAAShI,KAAKgI,OAElB,GAAID,EAAQC,EAAS,EACnB,OAAOsM,EAAE,IAGX,GAAIvM,EAAQ,EAAG,CACb,IAAIu0C,EAAct0C,EAASD,EAC3B,OAA4BuM,EAAxBgoC,EAAc,EAAY,GACrB,CAACt8C,KAAKs8C,KAGjB,OAAOhoC,EAAE,CAACtU,KAAK+H,MCh7Bf0pC,ODm7BF,WAIE,IAHA,IAAI8K,EACAnlC,EAAWm9B,IAEN71B,EAAI,EAAGA,EAAI5a,UAAUkE,OAAQ0W,GAAK,EAAG,CAC5C69B,EAAW79B,EAAI,GAAK5a,UAAUkE,QAAU0W,OAAI1X,EAAYlD,UAAU4a,GAElE,IAAK,IAAItX,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EACpC,GAAwB,kBAAbm1C,EAAuB,CAChC,IAAIC,EAAUplC,EAASwN,cAAc,OAGrC,IAFA43B,EAAQ94C,UAAY64C,EAEbC,EAAQx3B,YACbhlB,KAAKoH,GAAGwe,YAAY42B,EAAQx3B,iBAEzB,GAAIu3B,aAAoB9F,EAC7B,IAAK,IAAI7/B,EAAI,EAAGA,EAAI2lC,EAASv0C,OAAQ4O,GAAK,EACxC5W,KAAKoH,GAAGwe,YAAY22B,EAAS3lC,SAG/B5W,KAAKoH,GAAGwe,YAAY22B,GAK1B,OAAOv8C,MC38BPy8C,QDm9BF,SAAiBF,GACf,IACIn1C,EACAwP,EAFAQ,EAAWm9B,IAIf,IAAKntC,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAChC,GAAwB,kBAAbm1C,EAAuB,CAChC,IAAIC,EAAUplC,EAASwN,cAAc,OAGrC,IAFA43B,EAAQ94C,UAAY64C,EAEf3lC,EAAI4lC,EAAQxI,WAAWhsC,OAAS,EAAG4O,GAAK,EAAGA,GAAK,EACnD5W,KAAKoH,GAAG8qB,aAAasqB,EAAQxI,WAAWp9B,GAAI5W,KAAKoH,GAAG4sC,WAAW,SAE5D,GAAIuI,aAAoB9F,EAC7B,IAAK7/B,EAAI,EAAGA,EAAI2lC,EAASv0C,OAAQ4O,GAAK,EACpC5W,KAAKoH,GAAG8qB,aAAaqqB,EAAS3lC,GAAI5W,KAAKoH,GAAG4sC,WAAW,SAGvDh0C,KAAKoH,GAAG8qB,aAAaqqB,EAAUv8C,KAAKoH,GAAG4sC,WAAW,IAItD,OAAOh0C,MCx+BP8wC,KD4gCF,SAAcvQ,GACZ,OAAIvgC,KAAKgI,OAAS,EACZu4B,EACEvgC,KAAK,GAAG08C,oBAAsBpoC,EAAEtU,KAAK,GAAG08C,oBAAoBjD,GAAGlZ,GAC1DjsB,EAAE,CAACtU,KAAK,GAAG08C,qBAGbpoC,EAAE,IAGPtU,KAAK,GAAG08C,mBAA2BpoC,EAAE,CAACtU,KAAK,GAAG08C,qBAC3CpoC,EAAE,IAGJA,EAAE,KCzhCTqoC,QD4hCF,SAAiBpc,GACf,IAAIqc,EAAU,GACVptC,EAAKxP,KAAK,GACd,IAAKwP,EAAI,OAAO8E,EAAE,IAElB,KAAO9E,EAAGktC,oBAAoB,CAC5B,IAAIG,EAAQrtC,EAAGktC,mBAEXnc,EACEjsB,EAAEuoC,GAAOpD,GAAGlZ,IAAWqc,EAAQ5uC,KAAK6uC,GACnCD,EAAQ5uC,KAAK6uC,GAEpBrtC,EAAKqtC,EAGP,OAAOvoC,EAAEsoC,IC1iCTE,KD6iCF,SAAcvc,GACZ,GAAIvgC,KAAKgI,OAAS,EAAG,CACnB,IAAIwH,EAAKxP,KAAK,GAEd,OAAIugC,EACE/wB,EAAGutC,wBAA0BzoC,EAAE9E,EAAGutC,wBAAwBtD,GAAGlZ,GACxDjsB,EAAE,CAAC9E,EAAGutC,yBAGRzoC,EAAE,IAGP9E,EAAGutC,uBAA+BzoC,EAAE,CAAC9E,EAAGutC,yBACrCzoC,EAAE,IAGX,OAAOA,EAAE,KC5jCT0oC,QD+jCF,SAAiBzc,GACf,IAAI0c,EAAU,GACVztC,EAAKxP,KAAK,GACd,IAAKwP,EAAI,OAAO8E,EAAE,IAElB,KAAO9E,EAAGutC,wBAAwB,CAChC,IAAIG,EAAQ1tC,EAAGutC,uBAEXxc,EACEjsB,EAAE4oC,GAAOzD,GAAGlZ,IAAW0c,EAAQjvC,KAAKkvC,GACnCD,EAAQjvC,KAAKkvC,GAEpB1tC,EAAK0tC,EAGP,OAAO5oC,EAAE2oC,IC7kCTE,ODolCF,SAAgB5c,GAGd,IAFA,IAAIoZ,EAAU,GAELvyC,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EACT,OAAvBpH,KAAKoH,GAAGge,aACNmb,EACEjsB,EAAEtU,KAAKoH,GAAGge,YAAYq0B,GAAGlZ,IAAWoZ,EAAQ3rC,KAAKhO,KAAKoH,GAAGge,YAE7Du0B,EAAQ3rC,KAAKhO,KAAKoH,GAAGge,aAK3B,OAAO9Q,EAAEqlC,IChmCTA,QDmmCF,SAAiBpZ,GAGf,IAFA,IAAIoZ,EAAU,GAELvyC,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAGpC,IAFA,IAAIg2C,EAAUp9C,KAAKoH,GAAGge,WAEfg4B,GACD7c,EACEjsB,EAAE8oC,GAAS3D,GAAGlZ,IAAWoZ,EAAQ3rC,KAAKovC,GAE1CzD,EAAQ3rC,KAAKovC,GAGfA,EAAUA,EAAQh4B,WAItB,OAAO9Q,EAAEqlC,ICnnCT0D,QDsnCF,SAAiB9c,GACf,IAAI8c,EAAUr9C,KAEd,MAAwB,qBAAbugC,EACFjsB,EAAE,KAGN+oC,EAAQ5D,GAAGlZ,KACd8c,EAAUA,EAAQ1D,QAAQpZ,GAAU8b,GAAG,IAGlCgB,IChoCPrN,KDmoCF,SAAczP,GAGZ,IAFA,IAAI+c,EAAgB,GAEXl2C,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAGpC,IAFA,IAAIuqC,EAAQ3xC,KAAKoH,GAAGyI,iBAAiB0wB,GAE5B3pB,EAAI,EAAGA,EAAI+6B,EAAM3pC,OAAQ4O,GAAK,EACrC0mC,EAActvC,KAAK2jC,EAAM/6B,IAI7B,OAAOtC,EAAEgpC,IC7oCTjqB,SDgpCF,SAAkBkN,GAGhB,IAFA,IAAIlN,EAAW,GAENjsB,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAGpC,IAFA,IAAI4sC,EAAah0C,KAAKoH,GAAGisB,SAEhBzc,EAAI,EAAGA,EAAIo9B,EAAWhsC,OAAQ4O,GAAK,EACrC2pB,IAAYjsB,EAAE0/B,EAAWp9B,IAAI6iC,GAAGlZ,IACnClN,EAASrlB,KAAKgmC,EAAWp9B,IAK/B,OAAOtC,EAAE+e,IC5pCT0F,OD+zBF,SAAgB/1B,GAEd,OAAOsR,EADM6iC,EAAYn3C,KAAMgD,KC/zB/BwC,OD8pCF,WACE,IAAK,IAAI4B,EAAI,EAAGA,EAAIpH,KAAKgI,OAAQZ,GAAK,EAChCpH,KAAKoH,GAAGge,YAAYplB,KAAKoH,GAAGge,WAAWH,YAAYjlB,KAAKoH,IAG9D,OAAOpH,OCjqCTQ,OAAOkW,KAAKshC,GAAShoC,SAAQ,SAAUutC,GACrCjpC,EAAE6V,GAAGozB,GAAcvF,EAAQuF,MAEd,ICzCX,ECCA,ECDAC,EHyCW,IIzBf,SAASC,EAASz6C,EAAU06C,GAK1B,YAJc,IAAVA,IACFA,EAAQ,GAGH/7C,WAAWqB,EAAU06C,GAG9B,SAASrjC,IACP,OAAOnC,KAAKmC,MAsBd,SAASsjC,EAAanuC,EAAIouC,QACX,IAATA,IACFA,EAAO,KAGT,IACIlS,EACAmS,EACAC,EAHA7mC,EAASo+B,IAIT0I,EA5BN,SAA0BvuC,GACxB,IACImB,EADAsG,EAASo+B,IAeb,OAZIp+B,EAAO89B,mBACTpkC,EAAQsG,EAAO89B,iBAAiBvlC,EAAI,QAGjCmB,GAASnB,EAAGwuC,eACfrtC,EAAQnB,EAAGwuC,cAGRrtC,IACHA,EAAQnB,EAAGmB,OAGNA,EAYQ,CAAiBnB,GAiChC,OA/BIyH,EAAOgnC,kBACTJ,EAAeE,EAASjF,WAAaiF,EAASG,iBAE7BjjD,MAAM,KAAK+M,OAAS,IACnC61C,EAAeA,EAAa5iD,MAAM,MAAM+tB,KAAI,SAAUrK,GACpD,OAAOA,EAAE7gB,QAAQ,IAAK,QACrBsY,KAAK,OAKV0nC,EAAkB,IAAI7mC,EAAOgnC,gBAAiC,SAAjBJ,EAA0B,GAAKA,IAG5EnS,GADAoS,EAAkBC,EAASI,cAAgBJ,EAASK,YAAcL,EAASM,aAAeN,EAASO,aAAeP,EAASjF,WAAaiF,EAAS/I,iBAAiB,aAAal3C,QAAQ,aAAc,uBAC5Kgb,WAAW7d,MAAM,KAG/B,MAAT2iD,IAE0BC,EAAxB5mC,EAAOgnC,gBAAgCH,EAAgBS,IAChC,KAAlB7S,EAAO1jC,OAA8Bye,WAAWilB,EAAO,KAC1CjlB,WAAWilB,EAAO,KAG7B,MAATkS,IAE0BC,EAAxB5mC,EAAOgnC,gBAAgCH,EAAgBU,IAChC,KAAlB9S,EAAO1jC,OAA8Bye,WAAWilB,EAAO,KAC1CjlB,WAAWilB,EAAO,KAGnCmS,GAAgB,EAGzB,SAAS,EAASrI,GAChB,MAAoB,kBAANA,GAAwB,OAANA,GAAcA,EAAE77B,aAAkE,WAAnDnZ,OAAOY,UAAU0X,SAAS/Y,KAAKy1C,GAAG5tC,MAAM,GAAI,GAG7G,SAAS,IAIP,IAHA,IAAIuwB,EAAK33B,OAAOsD,UAAUkE,QAAU,OAAIhB,EAAYlD,UAAU,IAC1D26C,EAAW,CAAC,YAAa,cAAe,aAEnCr3C,EAAI,EAAGA,EAAItD,UAAUkE,OAAQZ,GAAK,EAAG,CAC5C,IAAIs3C,EAAat3C,EAAI,GAAKtD,UAAUkE,QAAUZ,OAAIJ,EAAYlD,UAAUsD,GAExE,QAAmBJ,IAAf03C,GAA2C,OAAfA,EAK9B,IAJA,IAAIC,EAAYn+C,OAAOkW,KAAKlW,OAAOk+C,IAAa3lB,QAAO,SAAUp2B,GAC/D,OAAO87C,EAAS92C,QAAQhF,GAAO,KAGxBi8C,EAAY,EAAG7X,EAAM4X,EAAU32C,OAAQ42C,EAAY7X,EAAK6X,GAAa,EAAG,CAC/E,IAAIC,EAAUF,EAAUC,GACpBE,EAAOt+C,OAAOu+C,yBAAyBL,EAAYG,QAE1C73C,IAAT83C,GAAsBA,EAAKn+C,aACzB,EAASw3B,EAAG0mB,KAAa,EAASH,EAAWG,IAC/C,EAAO1mB,EAAG0mB,GAAUH,EAAWG,KACrB,EAAS1mB,EAAG0mB,KAAa,EAASH,EAAWG,KACvD1mB,EAAG0mB,GAAW,GACd,EAAO1mB,EAAG0mB,GAAUH,EAAWG,KAE/B1mB,EAAG0mB,GAAWH,EAAWG,KAOnC,OAAO1mB,EH7FT,SAAS6mB,IAKP,OAJK,IACH,EAjCJ,WACE,IAAI/nC,EAASo+B,IACTj+B,EAAWm9B,IACf,MAAO,CACL0K,SAAU,iBAAkBhoC,GAAUA,EAAOioC,eAAiB9nC,aAAoBH,EAAOioC,eACzFC,gBAAiBloC,EAAOmoC,cAAgB,mBAAoBnoC,EAAOsI,WAAatI,EAAOsI,UAAU8/B,gBAAkB,EACnHC,SACS,qBAAsBroC,GAAU,2BAA4BA,EAErEsoC,gBAAiB,WACf,IAAIC,GAAkB,EAEtB,IACE,IAAItmC,EAAO1Y,OAAOC,eAAe,GAAI,UAAW,CAE9CC,IAAK,WACH8+C,GAAkB,KAGtBvoC,EAAOnR,iBAAiB,sBAAuB,KAAMoT,GACrD,MAAOwB,IAGT,OAAO8kC,EAdQ,GAgBjBC,SACS,mBAAoBxoC,GAOnByoC,IAGL,ECUT,SAASC,EAAUC,GASjB,YARkB,IAAdA,IACFA,EAAY,IAGT,IACH,EAnDJ,SAAoBC,GAClB,IACIrgC,QADiB,IAAVqgC,EAAmB,GAAKA,GACdrgC,UAEjBsgC,EAAUd,IACV/nC,EAASo+B,IACT0K,EAAW9oC,EAAOsI,UAAUwgC,SAC5BC,EAAKxgC,GAAavI,EAAOsI,UAAUC,UACnCygC,EAAS,CACXC,KAAK,EACLC,SAAS,GAEPC,EAAcnpC,EAAOi+B,OAAO1nB,MAC5B6yB,EAAeppC,EAAOi+B,OAAO/lC,OAC7BgxC,EAAUH,EAAG74C,MAAM,+BAEnBm5C,EAAON,EAAG74C,MAAM,wBAChBo5C,EAAOP,EAAG74C,MAAM,2BAChBq5C,GAAUF,GAAQN,EAAG74C,MAAM,8BAC3Bs5C,EAAuB,UAAbV,EACVW,EAAqB,aAAbX,EAsBZ,OAlBKO,GAAQI,GAASZ,EAAQb,OAFZ,CAAC,YAAa,YAAa,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,YAEtGt3C,QAAQy4C,EAAc,IAAMC,IAAiB,KAC9FC,EAAON,EAAG74C,MAAM,0BACLm5C,EAAO,CAAC,EAAG,EAAG,WACzBI,GAAQ,GAINP,IAAYM,IACdR,EAAOU,GAAK,UACZV,EAAOE,SAAU,IAGfG,GAAQE,GAAUD,KACpBN,EAAOU,GAAK,MACZV,EAAOC,KAAM,GAIRD,EASIW,CAAWhB,IAGf,ECxCT,SAASiB,IAKP,OAJKrD,IACHA,EAjBJ,WACE,IAGMwC,EAHF/oC,EAASo+B,IAOb,MAAO,CACLyL,SAAU7pC,EAAOsI,UAAUC,UAAUrY,MAAM,SAC3C0lB,UANImzB,EAAK/oC,EAAOsI,UAAUC,UAAUxN,cAC7BguC,EAAGr4C,QAAQ,WAAa,GAAKq4C,EAAGr4C,QAAQ,UAAY,GAAKq4C,EAAGr4C,QAAQ,WAAa,GAMxFo5C,UAAW,+CAA+C7iD,KAAK+Y,EAAOsI,UAAUC,YAMtEwhC,IAGLxD,EEpBT,IAKe,GACb3/B,KAAM,SACNuoB,OAAQ,WACN,IAAI6a,EAASjhD,KACb,EAAOihD,EAAQ,CACbC,OAAQ,CACN5B,SAAU,KACV6B,eAAgB,WACTF,IAAUA,EAAOG,WAAcH,EAAOI,cAC3CJ,EAAOC,OAAO5B,SAAW,IAAIgC,gBAAe,SAAU9Q,GACpD,IAAIhjB,EAAQyzB,EAAOzzB,MACfre,EAAS8xC,EAAO9xC,OAChBoyC,EAAW/zB,EACXg0B,EAAYryC,EAChBqhC,EAAQxgC,SAAQ,SAAUyxC,GACxB,IAAIC,EAAiBD,EAAKC,eACtBC,EAAcF,EAAKE,YACnB/8C,EAAS68C,EAAK78C,OACdA,GAAUA,IAAWq8C,EAAOzxC,KAChC+xC,EAAWI,EAAcA,EAAYn0B,OAASk0B,EAAe,IAAMA,GAAgBE,WACnFJ,EAAYG,EAAcA,EAAYxyC,QAAUuyC,EAAe,IAAMA,GAAgBG,cAGnFN,IAAa/zB,GAASg0B,IAAcryC,GACtC8xC,EAAOC,OAAOY,mBAGlBb,EAAOC,OAAO5B,SAASyC,QAAQd,EAAOzxC,MAExCwyC,eAAgB,WACVf,EAAOC,OAAO5B,UAAY2B,EAAOC,OAAO5B,SAAS2C,WAAahB,EAAOzxC,KACvEyxC,EAAOC,OAAO5B,SAAS2C,UAAUhB,EAAOzxC,IACxCyxC,EAAOC,OAAO5B,SAAW,OAG7BwC,cAAe,WACRb,IAAUA,EAAOG,WAAcH,EAAOI,cAC3CJ,EAAO17C,KAAK,gBACZ07C,EAAO17C,KAAK,YAEd28C,yBAA0B,WACnBjB,IAAUA,EAAOG,WAAcH,EAAOI,aAC3CJ,EAAO17C,KAAK,0BAKpBwyC,GAAI,CACF/rB,KAAM,SAAci1B,GAClB,IAAIhqC,EAASo+B,IAET4L,EAAOza,OAAO2b,gBAtDkB,qBAD3B9M,IACQiM,eAuDfL,EAAOC,OAAOC,kBAKhBlqC,EAAOnR,iBAAiB,SAAUm7C,EAAOC,OAAOY,eAEhD7qC,EAAOnR,iBAAiB,oBAAqBm7C,EAAOC,OAAOgB,4BAE7D7gD,QAAS,SAAiB4/C,GACxB,IAAIhqC,EAASo+B,IACb4L,EAAOC,OAAOc,iBACd/qC,EAAOlR,oBAAoB,SAAUk7C,EAAOC,OAAOY,eACnD7qC,EAAOlR,oBAAoB,oBAAqBk7C,EAAOC,OAAOgB,6BCzEpE,SAAS1X,IAeP,OAdAA,EAAWhqC,OAAOkQ,QAAU,SAAU9L,GACpC,IAAK,IAAIwC,EAAI,EAAGA,EAAItD,UAAUkE,OAAQZ,IAAK,CACzC,IAAII,EAAS1D,UAAUsD,GAEvB,IAAK,IAAIzE,KAAO6E,EACVhH,OAAOY,UAAUmZ,eAAexa,KAAKyH,EAAQ7E,KAC/CiC,EAAOjC,GAAO6E,EAAO7E,IAK3B,OAAOiC,IAGOf,MAAM7D,KAAM8D,WAK9B,IAAIs+C,EAAW,CACbC,OAAQ,SAAgBz9C,EAAQuS,QACd,IAAZA,IACFA,EAAU,IAGZ,IAAIF,EAASo+B,IACT4L,EAASjhD,KAETs/C,EAAW,IADIroC,EAAOqrC,kBAAoBrrC,EAAOsrC,yBACrB,SAAUC,GAIxC,GAAyB,IAArBA,EAAUx6C,OAAd,CAKA,IAAIy6C,EAAiB,WACnBxB,EAAO17C,KAAK,iBAAkBi9C,EAAU,KAGtCvrC,EAAOhU,sBACTgU,EAAOhU,sBAAsBw/C,GAE7BxrC,EAAOtV,WAAW8gD,EAAgB,QAXlCxB,EAAO17C,KAAK,iBAAkBi9C,EAAU,OAc5ClD,EAASyC,QAAQn9C,EAAQ,CACvByrC,WAA0C,qBAAvBl5B,EAAQk5B,YAAoCl5B,EAAQk5B,WACvEqS,UAAwC,qBAAtBvrC,EAAQurC,WAAmCvrC,EAAQurC,UACrEC,cAAgD,qBAA1BxrC,EAAQwrC,eAAuCxrC,EAAQwrC,gBAE/E1B,EAAO3B,SAASsD,UAAU50C,KAAKsxC,IAEjCtzB,KAAM,WACJ,IAAIi1B,EAASjhD,KACb,GAAKihD,EAAOnB,QAAQR,UAAa2B,EAAOza,OAAO8Y,SAA/C,CAEA,GAAI2B,EAAOza,OAAOqc,eAGhB,IAFA,IAAIC,EAAmB7B,EAAO8B,IAAIpJ,UAEzBvyC,EAAI,EAAGA,EAAI07C,EAAiB96C,OAAQZ,GAAK,EAChD65C,EAAO3B,SAAS+C,OAAOS,EAAiB17C,IAK5C65C,EAAO3B,SAAS+C,OAAOpB,EAAO8B,IAAI,GAAI,CACpCL,UAAWzB,EAAOza,OAAOwc,uBAG3B/B,EAAO3B,SAAS+C,OAAOpB,EAAOgC,WAAW,GAAI,CAC3C5S,YAAY,MAGhBhvC,QAAS,WACMrB,KACNs/C,SAASsD,UAAU5yC,SAAQ,SAAUsvC,GAC1CA,EAAS7X,gBAFEznC,KAINs/C,SAASsD,UAAY,KAGjB,GACb/kC,KAAM,WACN2oB,OAAQ,CACN8Y,UAAU,EACVuD,gBAAgB,EAChBG,sBAAsB,GAExB5c,OAAQ,WACN,IFsCuBgQ,EAAUt7B,EAAVs7B,EEtCVp2C,KFsCoB8a,EErCP,CACxBwkC,SAAU9U,EAAS,GAAI4X,EAAU,CAC/BQ,UAAW,MFoCjBpiD,OAAOkW,KAAKoE,GAAK9K,SAAQ,SAAUrN,GAC7B,EAASmY,EAAInY,KACfnC,OAAOkW,KAAKoE,EAAInY,IAAMqN,SAAQ,SAAUkzC,GACN,oBAArBpoC,EAAInY,GAAKugD,KAClBpoC,EAAInY,GAAKugD,GAAUpoC,EAAInY,GAAKugD,GAAQ1uC,KAAK4hC,OAK/CA,EAASzzC,GAAOmY,EAAInY,OEzCtBo1C,GAAI,CACF/rB,KAAM,SAAci1B,GAClBA,EAAO3B,SAAStzB,QAElB3qB,QAAS,SAAiB4/C,GACxBA,EAAO3B,SAASj+C,aCrGP,SAAS8hD,EAAa70C,GACnC,IAAI2yC,EAASjhD,KACToX,EAAWm9B,IACXt9B,EAASo+B,IACTjlC,EAAO6wC,EAAOmC,gBACd5c,EAASya,EAAOza,OAChB6c,EAAUpC,EAAOoC,QAErB,IAAIpC,EAAOqC,YAAa9c,EAAO+c,+BAA/B,CAIA,IAAI7oC,EAAIpM,EACJoM,EAAE8oC,gBAAe9oC,EAAIA,EAAE8oC,eAC3B,IAAIC,EAAY,EAAE/oC,EAAE9V,QAEpB,GAAiC,YAA7B4hC,EAAOkd,mBACJD,EAAUpG,QAAQ4D,EAAO0C,WAAW37C,OAI3C,GADAoI,EAAKwzC,aAA0B,eAAXlpC,EAAE1G,KACjB5D,EAAKwzC,gBAAgB,UAAWlpC,IAAiB,IAAZA,EAAEmlB,MAC5C,MAAKzvB,EAAKwzC,cAAgB,WAAYlpC,GAAKA,EAAEmpC,OAAS,GACtD,IAAIzzC,EAAK0zC,YAAa1zC,EAAK2zC,QAQ3B,KAN6Bvd,EAAOwd,gBAA4C,KAA1Bxd,EAAOwd,gBAEjCtpC,EAAE9V,QAAU8V,EAAE9V,OAAOq/C,YAAc31C,EAAMipB,MAAQjpB,EAAMipB,KAAK,KACtFksB,EAAY,EAAEn1C,EAAMipB,KAAK,KAGvBiP,EAAO0d,WAAaT,EAAUpG,QAAQ7W,EAAO2d,kBAAoB3d,EAAO2d,kBAAoB,IAAM3d,EAAOwd,gBAAgB,GAC3H/C,EAAOmD,YAAa,OAItB,IAAI5d,EAAO6d,cACJZ,EAAUpG,QAAQ7W,EAAO6d,cAAc,GAD9C,CAIAhB,EAAQiB,SAAsB,eAAX5pC,EAAE1G,KAAwB0G,EAAE6pC,cAAc,GAAGpwC,MAAQuG,EAAEvG,MAC1EkvC,EAAQmB,SAAsB,eAAX9pC,EAAE1G,KAAwB0G,EAAE6pC,cAAc,GAAGnwC,MAAQsG,EAAEtG,MAC1E,IAAIqwC,EAASpB,EAAQiB,SACjBI,EAASrB,EAAQmB,SAEjBG,EAAqBne,EAAOme,oBAAsBne,EAAOoe,sBACzDC,EAAqBre,EAAOqe,oBAAsBre,EAAOse,sBAE7D,GAAIH,IAAuBF,GAAUI,GAAsBJ,GAAUxtC,EAAO8tC,WAAaF,GAAqB,CAC5G,GAA2B,YAAvBF,EAGF,OAFAr2C,EAAMkqB,iBAqBV,GAfA,EAAOpoB,EAAM,CACX0zC,WAAW,EACXC,SAAS,EACTiB,qBAAqB,EACrBC,iBAAaj+C,EACbk+C,iBAAal+C,IAEfq8C,EAAQoB,OAASA,EACjBpB,EAAQqB,OAASA,EACjBt0C,EAAK+0C,eAAiB9qC,IACtB4mC,EAAOmD,YAAa,EACpBnD,EAAOmE,aACPnE,EAAOoE,oBAAiBr+C,EACpBw/B,EAAO8e,UAAY,IAAGl1C,EAAKm1C,oBAAqB,GAErC,eAAX7qC,EAAE1G,KAAuB,CAC3B,IAAIwkB,GAAiB,EACjBirB,EAAUhK,GAAGrpC,EAAKo1C,gBAAehtB,GAAiB,GAElDphB,EAAS8c,eAAiB,EAAE9c,EAAS8c,eAAeulB,GAAGrpC,EAAKo1C,eAAiBpuC,EAAS8c,gBAAkBuvB,EAAU,IACpHrsC,EAAS8c,cAAcoE,OAGzB,IAAImtB,EAAuBjtB,GAAkByoB,EAAOyE,gBAAkBlf,EAAOmf,0BAExEnf,EAAOof,gCAAiCH,GAA0BhC,EAAU,GAAGoC,mBAClFnrC,EAAE8d,iBAINyoB,EAAO17C,KAAK,aAAcmV,KCtFb,SAASorC,EAAYx3C,GAClC,IAAI8I,EAAWm9B,IACX0M,EAASjhD,KACToQ,EAAO6wC,EAAOmC,gBACd5c,EAASya,EAAOza,OAChB6c,EAAUpC,EAAOoC,QACjB0C,EAAM9E,EAAO+E,aACbtrC,EAAIpM,EAGR,GAFIoM,EAAE8oC,gBAAe9oC,EAAIA,EAAE8oC,eAEtBpzC,EAAK0zC,WAQV,IAAI1zC,EAAKwzC,cAA2B,cAAXlpC,EAAE1G,KAA3B,CACA,IAAIiyC,EAAyB,cAAXvrC,EAAE1G,MAAwB0G,EAAE6pC,gBAAkB7pC,EAAE6pC,cAAc,IAAM7pC,EAAExG,eAAe,IACnGC,EAAmB,cAAXuG,EAAE1G,KAAuBiyC,EAAY9xC,MAAQuG,EAAEvG,MACvDC,EAAmB,cAAXsG,EAAE1G,KAAuBiyC,EAAY7xC,MAAQsG,EAAEtG,MAE3D,GAAIsG,EAAEwrC,wBAGJ,OAFA7C,EAAQoB,OAAStwC,OACjBkvC,EAAQqB,OAAStwC,GAInB,IAAK6sC,EAAOyE,eAcV,OAZAzE,EAAOmD,YAAa,OAEhBh0C,EAAK0zC,YACP,EAAOT,EAAS,CACdoB,OAAQtwC,EACRuwC,OAAQtwC,EACRkwC,SAAUnwC,EACVqwC,SAAUpwC,IAEZhE,EAAK+0C,eAAiB9qC,MAM1B,GAAIjK,EAAKwzC,cAAgBpd,EAAO2f,sBAAwB3f,EAAO4f,KAC7D,GAAInF,EAAOoF,cAET,GAAIjyC,EAAQivC,EAAQqB,QAAUzD,EAAOzvC,WAAayvC,EAAOqF,gBAAkBlyC,EAAQivC,EAAQqB,QAAUzD,EAAOzvC,WAAayvC,EAAOsF,eAG9H,OAFAn2C,EAAK0zC,WAAY,OACjB1zC,EAAK2zC,SAAU,QAGZ,GAAI5vC,EAAQkvC,EAAQoB,QAAUxD,EAAOzvC,WAAayvC,EAAOqF,gBAAkBnyC,EAAQkvC,EAAQoB,QAAUxD,EAAOzvC,WAAayvC,EAAOsF,eACrI,OAIJ,GAAIn2C,EAAKwzC,cAAgBxsC,EAAS8c,eAC5BxZ,EAAE9V,SAAWwS,EAAS8c,eAAiB,EAAExZ,EAAE9V,QAAQ60C,GAAGrpC,EAAKo1C,cAG7D,OAFAp1C,EAAK2zC,SAAU,OACf9C,EAAOmD,YAAa,GASxB,GAJIh0C,EAAK40C,qBACP/D,EAAO17C,KAAK,YAAamV,KAGvBA,EAAE6pC,eAAiB7pC,EAAE6pC,cAAcv8C,OAAS,GAAhD,CACAq7C,EAAQiB,SAAWnwC,EACnBkvC,EAAQmB,SAAWpwC,EACnB,IAAIoyC,EAAQnD,EAAQiB,SAAWjB,EAAQoB,OACnCgC,EAAQpD,EAAQmB,SAAWnB,EAAQqB,OACvC,KAAIzD,EAAOza,OAAO8e,WAAa5sC,KAAKguC,KAAKhuC,KAAK0zB,IAAIoa,EAAO,GAAK9tC,KAAK0zB,IAAIqa,EAAO,IAAMxF,EAAOza,OAAO8e,WAAlG,CAGE,IAAIqB,EADN,GAAgC,qBAArBv2C,EAAK60C,YAGVhE,EAAO2F,gBAAkBvD,EAAQmB,WAAanB,EAAQqB,QAAUzD,EAAOoF,cAAgBhD,EAAQiB,WAAajB,EAAQoB,OACtHr0C,EAAK60C,aAAc,EAGfuB,EAAQA,EAAQC,EAAQA,GAAS,KACnCE,EAA4D,IAA/CjuC,KAAKmuC,MAAMnuC,KAAKC,IAAI8tC,GAAQ/tC,KAAKC,IAAI6tC,IAAgB9tC,KAAKouC,GACvE12C,EAAK60C,YAAchE,EAAO2F,eAAiBD,EAAangB,EAAOmgB,WAAa,GAAKA,EAAangB,EAAOmgB,YAe3G,GAVIv2C,EAAK60C,aACPhE,EAAO17C,KAAK,oBAAqBmV,GAGH,qBAArBtK,EAAK80C,cACV7B,EAAQiB,WAAajB,EAAQoB,QAAUpB,EAAQmB,WAAanB,EAAQqB,SACtEt0C,EAAK80C,aAAc,IAInB90C,EAAK60C,YACP70C,EAAK0zC,WAAY,OAInB,GAAK1zC,EAAK80C,YAAV,CAIAjE,EAAOmD,YAAa,GAEf5d,EAAOugB,SAAWrsC,EAAEggC,YACvBhgC,EAAE8d,iBAGAgO,EAAOwgB,2BAA6BxgB,EAAOygB,QAC7CvsC,EAAEke,kBAGCxoB,EAAK2zC,UACJvd,EAAO4f,MACTnF,EAAOiG,UAGT92C,EAAK+2C,eAAiBlG,EAAOtD,eAC7BsD,EAAOmG,cAAc,GAEjBnG,EAAOqC,WACTrC,EAAOgC,WAAWnL,QAAQ,qCAG5B1nC,EAAKi3C,qBAAsB,GAEvB7gB,EAAO8gB,aAAyC,IAA1BrG,EAAOsG,iBAAqD,IAA1BtG,EAAOuG,gBACjEvG,EAAOwG,eAAc,GAGvBxG,EAAO17C,KAAK,kBAAmBmV,IAGjCumC,EAAO17C,KAAK,aAAcmV,GAC1BtK,EAAK2zC,SAAU,EACf,IAAIzrC,EAAO2oC,EAAO2F,eAAiBJ,EAAQC,EAC3CpD,EAAQ/qC,KAAOA,EACfA,GAAQkuB,EAAOkhB,WACX3B,IAAKztC,GAAQA,GACjB2oC,EAAOoE,eAAiB/sC,EAAO,EAAI,OAAS,OAC5ClI,EAAKu3C,iBAAmBrvC,EAAOlI,EAAK+2C,eACpC,IAAIS,GAAsB,EACtBC,EAAkBrhB,EAAOqhB,gBAgC7B,GA9BIrhB,EAAO2f,sBACT0B,EAAkB,GAGhBvvC,EAAO,GAAKlI,EAAKu3C,iBAAmB1G,EAAOsF,gBAC7CqB,GAAsB,EAClBphB,EAAOshB,aAAY13C,EAAKu3C,iBAAmB1G,EAAOsF,eAAiB,EAAI7tC,KAAK0zB,KAAK6U,EAAOsF,eAAiBn2C,EAAK+2C,eAAiB7uC,EAAMuvC,KAChIvvC,EAAO,GAAKlI,EAAKu3C,iBAAmB1G,EAAOqF,iBACpDsB,GAAsB,EAClBphB,EAAOshB,aAAY13C,EAAKu3C,iBAAmB1G,EAAOqF,eAAiB,EAAI5tC,KAAK0zB,IAAI6U,EAAOqF,eAAiBl2C,EAAK+2C,eAAiB7uC,EAAMuvC,KAGtID,IACFltC,EAAEwrC,yBAA0B,IAIzBjF,EAAOsG,gBAA4C,SAA1BtG,EAAOoE,gBAA6Bj1C,EAAKu3C,iBAAmBv3C,EAAK+2C,iBAC7F/2C,EAAKu3C,iBAAmBv3C,EAAK+2C,iBAG1BlG,EAAOuG,gBAA4C,SAA1BvG,EAAOoE,gBAA6Bj1C,EAAKu3C,iBAAmBv3C,EAAK+2C,iBAC7F/2C,EAAKu3C,iBAAmBv3C,EAAK+2C,gBAG1BlG,EAAOuG,gBAAmBvG,EAAOsG,iBACpCn3C,EAAKu3C,iBAAmBv3C,EAAK+2C,gBAI3B3gB,EAAO8e,UAAY,EAAG,CACxB,KAAI5sC,KAAKC,IAAIL,GAAQkuB,EAAO8e,WAAal1C,EAAKm1C,oBAW5C,YADAn1C,EAAKu3C,iBAAmBv3C,EAAK+2C,gBAT7B,IAAK/2C,EAAKm1C,mBAMR,OALAn1C,EAAKm1C,oBAAqB,EAC1BlC,EAAQoB,OAASpB,EAAQiB,SACzBjB,EAAQqB,OAASrB,EAAQmB,SACzBp0C,EAAKu3C,iBAAmBv3C,EAAK+2C,oBAC7B9D,EAAQ/qC,KAAO2oC,EAAO2F,eAAiBvD,EAAQiB,SAAWjB,EAAQoB,OAASpB,EAAQmB,SAAWnB,EAAQqB,QASvGle,EAAOuhB,eAAgBvhB,EAAOugB,WAE/BvgB,EAAOwhB,UAAYxhB,EAAOyhB,qBAAuBzhB,EAAO0hB,yBAC1DjH,EAAOkH,oBACPlH,EAAOmH,uBAGL5hB,EAAOwhB,WAEsB,IAA3B53C,EAAKi4C,WAAWrgD,QAClBoI,EAAKi4C,WAAWr6C,KAAK,CACnBwU,SAAU6gC,EAAQpC,EAAO2F,eAAiB,SAAW,UACrD/iB,KAAMzzB,EAAK+0C,iBAIf/0C,EAAKi4C,WAAWr6C,KAAK,CACnBwU,SAAU6gC,EAAQpC,EAAO2F,eAAiB,WAAa,YACvD/iB,KAAMxpB,OAKV4mC,EAAOqH,eAAel4C,EAAKu3C,kBAE3B1G,EAAOsH,aAAan4C,EAAKu3C,4BArNnBv3C,EAAK80C,aAAe90C,EAAK60C,aAC3BhE,EAAO17C,KAAK,oBAAqBmV,GCdxB,SAAS8tC,EAAWl6C,GACjC,IAAI2yC,EAASjhD,KACToQ,EAAO6wC,EAAOmC,gBACd5c,EAASya,EAAOza,OAChB6c,EAAUpC,EAAOoC,QACjB0C,EAAM9E,EAAO+E,aACb/C,EAAahC,EAAOgC,WACpBwF,EAAaxH,EAAOwH,WACpBC,EAAWzH,EAAOyH,SAClBhuC,EAAIpM,EASR,GARIoM,EAAE8oC,gBAAe9oC,EAAIA,EAAE8oC,eAEvBpzC,EAAK40C,qBACP/D,EAAO17C,KAAK,WAAYmV,GAG1BtK,EAAK40C,qBAAsB,GAEtB50C,EAAK0zC,UAOR,OANI1zC,EAAK2zC,SAAWvd,EAAO8gB,YACzBrG,EAAOwG,eAAc,GAGvBr3C,EAAK2zC,SAAU,OACf3zC,EAAK80C,aAAc,GAKjB1e,EAAO8gB,YAAcl3C,EAAK2zC,SAAW3zC,EAAK0zC,aAAwC,IAA1B7C,EAAOsG,iBAAqD,IAA1BtG,EAAOuG,iBACnGvG,EAAOwG,eAAc,GAIvB,IA2BIkB,EA3BAC,EAAevuC,IACfwuC,EAAWD,EAAex4C,EAAK+0C,eAgBnC,GAdIlE,EAAOmD,aACTnD,EAAO6H,mBAAmBpuC,GAC1BumC,EAAO17C,KAAK,YAAamV,GAErBmuC,EAAW,KAAOD,EAAex4C,EAAK24C,cAAgB,KACxD9H,EAAO17C,KAAK,wBAAyBmV,IAIzCtK,EAAK24C,cAAgB1uC,IACrBojC,GAAS,WACFwD,EAAOG,YAAWH,EAAOmD,YAAa,OAGxCh0C,EAAK0zC,YAAc1zC,EAAK2zC,UAAY9C,EAAOoE,gBAAmC,IAAjBhC,EAAQ/qC,MAAclI,EAAKu3C,mBAAqBv3C,EAAK+2C,eAIrH,OAHA/2C,EAAK0zC,WAAY,EACjB1zC,EAAK2zC,SAAU,OACf3zC,EAAK80C,aAAc,GAerB,GAXA90C,EAAK0zC,WAAY,EACjB1zC,EAAK2zC,SAAU,EACf3zC,EAAK80C,aAAc,EAIjByD,EADEniB,EAAOuhB,aACIhC,EAAM9E,EAAOzvC,WAAayvC,EAAOzvC,WAEhCpB,EAAKu3C,kBAGjBnhB,EAAOugB,QAIX,GAAIvgB,EAAOwhB,SAAX,CACE,GAAIW,GAAc1H,EAAOsF,eAEvB,YADAtF,EAAO+H,QAAQ/H,EAAOgI,aAIxB,GAAIN,GAAc1H,EAAOqF,eAOvB,YANIrF,EAAOiI,OAAOlhD,OAAS0gD,EAAS1gD,OAClCi5C,EAAO+H,QAAQN,EAAS1gD,OAAS,GAEjCi5C,EAAO+H,QAAQ/H,EAAOiI,OAAOlhD,OAAS,IAM1C,GAAIw+B,EAAO2iB,iBAAkB,CAC3B,GAAI/4C,EAAKi4C,WAAWrgD,OAAS,EAAG,CAC9B,IAAIohD,EAAgBh5C,EAAKi4C,WAAWgB,MAChCC,EAAgBl5C,EAAKi4C,WAAWgB,MAChCE,EAAWH,EAAc5mC,SAAW8mC,EAAc9mC,SAClDqhB,EAAOulB,EAAcvlB,KAAOylB,EAAczlB,KAC9Cod,EAAOuI,SAAWD,EAAW1lB,EAC7Bod,EAAOuI,UAAY,EAEf9wC,KAAKC,IAAIsoC,EAAOuI,UAAYhjB,EAAOijB,0BACrCxI,EAAOuI,SAAW,IAKhB3lB,EAAO,KAAOxpB,IAAQ+uC,EAAcvlB,KAAO,OAC7Cod,EAAOuI,SAAW,QAGpBvI,EAAOuI,SAAW,EAGpBvI,EAAOuI,UAAYhjB,EAAOkjB,8BAC1Bt5C,EAAKi4C,WAAWrgD,OAAS,EACzB,IAAI2hD,EAAmB,IAAOnjB,EAAOojB,sBACjCC,EAAmB5I,EAAOuI,SAAWG,EACrCG,EAAc7I,EAAOzvC,UAAYq4C,EACjC9D,IAAK+D,GAAeA,GACxB,IACIC,EAEAC,EAHAC,GAAW,EAEXC,EAA2C,GAA5BxxC,KAAKC,IAAIsoC,EAAOuI,UAAiBhjB,EAAO2jB,4BAG3D,GAAIL,EAAc7I,EAAOqF,eACnB9f,EAAO4jB,wBACLN,EAAc7I,EAAOqF,gBAAkB4D,IACzCJ,EAAc7I,EAAOqF,eAAiB4D,GAGxCH,EAAsB9I,EAAOqF,eAC7B2D,GAAW,EACX75C,EAAKi3C,qBAAsB,GAE3ByC,EAAc7I,EAAOqF,eAGnB9f,EAAO4f,MAAQ5f,EAAO6jB,iBAAgBL,GAAe,QACpD,GAAIF,EAAc7I,EAAOsF,eAC1B/f,EAAO4jB,wBACLN,EAAc7I,EAAOsF,eAAiB2D,IACxCJ,EAAc7I,EAAOsF,eAAiB2D,GAGxCH,EAAsB9I,EAAOsF,eAC7B0D,GAAW,EACX75C,EAAKi3C,qBAAsB,GAE3ByC,EAAc7I,EAAOsF,eAGnB/f,EAAO4f,MAAQ5f,EAAO6jB,iBAAgBL,GAAe,QACpD,GAAIxjB,EAAO8jB,eAAgB,CAGhC,IAFA,IAAIC,EAEK3zC,EAAI,EAAGA,EAAI8xC,EAAS1gD,OAAQ4O,GAAK,EACxC,GAAI8xC,EAAS9xC,IAAMkzC,EAAa,CAC9BS,EAAY3zC,EACZ,MAUJkzC,IALEA,EADEpxC,KAAKC,IAAI+vC,EAAS6B,GAAaT,GAAepxC,KAAKC,IAAI+vC,EAAS6B,EAAY,GAAKT,IAA0C,SAA1B7I,EAAOoE,eAC5FqD,EAAS6B,GAET7B,EAAS6B,EAAY,IAavC,GAPIP,GACF/I,EAAOuJ,KAAK,iBAAiB,WAC3BvJ,EAAOiG,aAKa,IAApBjG,EAAOuI,UAOT,GALEG,EADE5D,EACiBrtC,KAAKC,MAAMmxC,EAAc7I,EAAOzvC,WAAayvC,EAAOuI,UAEpD9wC,KAAKC,KAAKmxC,EAAc7I,EAAOzvC,WAAayvC,EAAOuI,UAGpEhjB,EAAO8jB,eAAgB,CAQzB,IAAIG,EAAe/xC,KAAKC,KAAKotC,GAAO+D,EAAcA,GAAe7I,EAAOzvC,WACpEk5C,EAAmBzJ,EAAO0J,gBAAgB1J,EAAOgI,aAGnDU,EADEc,EAAeC,EACElkB,EAAOokB,MACjBH,EAAe,EAAIC,EACM,IAAflkB,EAAOokB,MAEQ,IAAfpkB,EAAOokB,YAGzB,GAAIpkB,EAAO8jB,eAEhB,YADArJ,EAAO4J,iBAILrkB,EAAO4jB,wBAA0BH,GACnChJ,EAAOqH,eAAeyB,GACtB9I,EAAOmG,cAAcuC,GACrB1I,EAAOsH,aAAauB,GACpB7I,EAAO6J,iBAAgB,EAAM7J,EAAOoE,gBACpCpE,EAAOqC,WAAY,EACnBL,EAAWrI,eAAc,WAClBqG,IAAUA,EAAOG,WAAchxC,EAAKi3C,sBACzCpG,EAAO17C,KAAK,kBACZ07C,EAAOmG,cAAc5gB,EAAOokB,OAC5BjpD,YAAW,WACTs/C,EAAOsH,aAAawB,GACpB9G,EAAWrI,eAAc,WAClBqG,IAAUA,EAAOG,WACtBH,EAAOrG,qBAER,QAEIqG,EAAOuI,UAChBvI,EAAOqH,eAAewB,GACtB7I,EAAOmG,cAAcuC,GACrB1I,EAAOsH,aAAauB,GACpB7I,EAAO6J,iBAAgB,EAAM7J,EAAOoE,gBAE/BpE,EAAOqC,YACVrC,EAAOqC,WAAY,EACnBL,EAAWrI,eAAc,WAClBqG,IAAUA,EAAOG,WACtBH,EAAOrG,sBAIXqG,EAAO17C,KAAK,8BACZ07C,EAAOqH,eAAewB,IAGxB7I,EAAOkH,oBACPlH,EAAOmH,0BACF,IAAI5hB,EAAO8jB,eAEhB,YADArJ,EAAO4J,iBAEErkB,EAAOwhB,UAChB/G,EAAO17C,KAAK,gCAGTihC,EAAO2iB,kBAAoBN,GAAYriB,EAAOukB,gBACjD9J,EAAOqH,iBACPrH,EAAOkH,oBACPlH,EAAOmH,2BAtLX,CAgMA,IAHA,IAAI4C,EAAY,EACZC,EAAYhK,EAAO0J,gBAAgB,GAE9BvjD,EAAI,EAAGA,EAAIqhD,EAAWzgD,OAAQZ,GAAKA,EAAIo/B,EAAO0kB,mBAAqB,EAAI1kB,EAAO2kB,eAAgB,CACrG,IAAIC,EAAahkD,EAAIo/B,EAAO0kB,mBAAqB,EAAI,EAAI1kB,EAAO2kB,eAEtB,qBAA/B1C,EAAWrhD,EAAIgkD,GACpBzC,GAAcF,EAAWrhD,IAAMuhD,EAAaF,EAAWrhD,EAAIgkD,KAC7DJ,EAAY5jD,EACZ6jD,EAAYxC,EAAWrhD,EAAIgkD,GAAc3C,EAAWrhD,IAE7CuhD,GAAcF,EAAWrhD,KAClC4jD,EAAY5jD,EACZ6jD,EAAYxC,EAAWA,EAAWzgD,OAAS,GAAKygD,EAAWA,EAAWzgD,OAAS,IAKnF,IAAIqjD,GAAS1C,EAAaF,EAAWuC,IAAcC,EAC/CK,EAAYN,EAAYxkB,EAAO0kB,mBAAqB,EAAI,EAAI1kB,EAAO2kB,eAEvE,GAAItC,EAAWriB,EAAOukB,aAAc,CAElC,IAAKvkB,EAAO+kB,WAEV,YADAtK,EAAO+H,QAAQ/H,EAAOgI,aAIM,SAA1BhI,EAAOoE,iBACLgG,GAAS7kB,EAAOglB,gBAAiBvK,EAAO+H,QAAQgC,EAAYM,GAAgBrK,EAAO+H,QAAQgC,IAGnE,SAA1B/J,EAAOoE,iBACLgG,EAAQ,EAAI7kB,EAAOglB,gBAAiBvK,EAAO+H,QAAQgC,EAAYM,GAAgBrK,EAAO+H,QAAQgC,QAE/F,CAEL,IAAKxkB,EAAOilB,YAEV,YADAxK,EAAO+H,QAAQ/H,EAAOgI,aAIAhI,EAAOyK,aAAehxC,EAAE9V,SAAWq8C,EAAOyK,WAAWC,QAAUjxC,EAAE9V,SAAWq8C,EAAOyK,WAAWE,QAU3GlxC,EAAE9V,SAAWq8C,EAAOyK,WAAWC,OACxC1K,EAAO+H,QAAQgC,EAAYM,GAE3BrK,EAAO+H,QAAQgC,IAVe,SAA1B/J,EAAOoE,gBACTpE,EAAO+H,QAAQgC,EAAYM,GAGC,SAA1BrK,EAAOoE,gBACTpE,EAAO+H,QAAQgC,MCzTR,SAASr7B,IACtB,IAAIsxB,EAASjhD,KACTwmC,EAASya,EAAOza,OAChBh3B,EAAKyxC,EAAOzxC,GAChB,IAAIA,GAAyB,IAAnBA,EAAG+d,YAAb,CAEIiZ,EAAOqlB,aACT5K,EAAO6K,gBAIT,IAAIvE,EAAiBtG,EAAOsG,eACxBC,EAAiBvG,EAAOuG,eACxBkB,EAAWzH,EAAOyH,SAEtBzH,EAAOsG,gBAAiB,EACxBtG,EAAOuG,gBAAiB,EACxBvG,EAAOmE,aACPnE,EAAO8K,eACP9K,EAAOmH,uBAEuB,SAAzB5hB,EAAOwlB,eAA4BxlB,EAAOwlB,cAAgB,IAAM/K,EAAOgL,QAAUhL,EAAOiL,cAAgBjL,EAAOza,OAAO6jB,eACzHpJ,EAAO+H,QAAQ/H,EAAOiI,OAAOlhD,OAAS,EAAG,GAAG,GAAO,GAEnDi5C,EAAO+H,QAAQ/H,EAAOgI,YAAa,GAAG,GAAO,GAG3ChI,EAAOkL,UAAYlL,EAAOkL,SAASC,SAAWnL,EAAOkL,SAASE,QAChEpL,EAAOkL,SAAS3f,MAIlByU,EAAOuG,eAAiBA,EACxBvG,EAAOsG,eAAiBA,EAEpBtG,EAAOza,OAAO8lB,eAAiB5D,IAAazH,EAAOyH,UACrDzH,EAAOsL,iBCpCI,SAASC,EAAQ9xC,GAC9B,IAAIumC,EAASjhD,KAERihD,EAAOmD,aACNnD,EAAOza,OAAOimB,eAAe/xC,EAAE8d,iBAE/ByoB,EAAOza,OAAOkmB,0BAA4BzL,EAAOqC,YACnD5oC,EAAEke,kBACFle,EAAEiyC,6BCRO,SAASC,IACtB,IAAI3L,EAASjhD,KACT2jD,EAAY1C,EAAO0C,UACnBqC,EAAe/E,EAAO+E,aAC1B/E,EAAO4L,kBAAoB5L,EAAOzvC,UAE9ByvC,EAAO2F,eAEP3F,EAAOzvC,UADLw0C,EACiBrC,EAAUmJ,YAAcnJ,EAAUp2B,YAAco2B,EAAUlI,YAEzDkI,EAAUlI,WAGhCwF,EAAOzvC,WAAamyC,EAAUpI,WAIN,IAAtB0F,EAAOzvC,YAAkByvC,EAAOzvC,UAAY,GAChDyvC,EAAOkH,oBACPlH,EAAOmH,sBAEP,IAAI2E,EAAiB9L,EAAOqF,eAAiBrF,EAAOsF,gBAE7B,IAAnBwG,EACY,GAEC9L,EAAOzvC,UAAYyvC,EAAOsF,gBAAkBwG,KAGzC9L,EAAO+L,UACzB/L,EAAOqH,eAAetC,GAAgB/E,EAAOzvC,UAAYyvC,EAAOzvC,WAGlEyvC,EAAO17C,KAAK,eAAgB07C,EAAOzvC,WAAW,GC1BhD,IAAIy7C,GAAqB,EAEzB,SAASC,KCcM,ICvBA,GACblhC,MAAM,EACNmhC,UAAW,aACXzJ,kBAAmB,YACnB0J,aAAc,EACdxC,MAAO,IACP7D,SAAS,EACTsG,sBAAsB,EACtBlL,gBAAgB,EAChB8E,QAAQ,EAERz5B,MAAO,KACPre,OAAQ,KAERo0C,gCAAgC,EAEhC/jC,UAAW,KACX2hB,IAAK,KAELwjB,oBAAoB,EACpBE,mBAAoB,GAEpBmD,UAAU,EACVmB,kBAAkB,EAClBS,sBAAuB,EACvBQ,wBAAwB,EACxBD,4BAA6B,EAC7BT,8BAA+B,EAC/BY,gBAAgB,EAChBb,wBAAyB,IAEzB6D,YAAY,EAEZC,gBAAgB,EAEhBC,kBAAkB,EAElBC,OAAQ,QAGR5B,iBAAa7kD,EACb0mD,gBAAiB,SAEjBC,aAAc,EACd3B,cAAe,EACf4B,gBAAiB,EACjBC,oBAAqB,SACrB1C,eAAgB,EAChBD,mBAAoB,EACpBb,gBAAgB,EAChByD,sBAAsB,EACtBC,mBAAoB,EAEpBC,kBAAmB,EAEnBC,qBAAqB,EACrBC,0BAA0B,EAE1B5B,eAAe,EAEf6B,cAAc,EAEdzG,WAAY,EACZf,WAAY,GACZyH,eAAe,EACf3C,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBT,aAAc,IACdhD,cAAc,EACdrC,gBAAgB,EAChBJ,UAAW,EACX0B,0BAA0B,EAC1BrB,0BAA0B,EAC1BC,+BAA+B,EAC/BO,qBAAqB,EAErBkI,mBAAmB,EAEnBvG,YAAY,EACZD,gBAAiB,IAEjBI,qBAAqB,EACrBC,uBAAuB,EAEvBZ,YAAY,EAEZmF,eAAe,EACfC,0BAA0B,EAC1B4B,qBAAqB,EAErBC,eAAe,EACfC,qBAAqB,EAErBpI,MAAM,EACNqI,qBAAsB,EACtBC,aAAc,KACdC,wBAAwB,EACxBC,mBAAmB,EAEnBpH,gBAAgB,EAChBD,gBAAgB,EAChBlD,aAAc,KAEdH,WAAW,EACXF,eAAgB,oBAChBG,kBAAmB,KAEnB0K,kBAAkB,EAElBC,uBAAwB,oBAExBC,WAAY,eACZC,gBAAiB,+BACjBC,iBAAkB,sBAClBC,0BAA2B,gCAC3BC,kBAAmB,uBACnBC,oBAAqB,yBACrBC,eAAgB,oBAChBC,wBAAyB,8BACzBC,eAAgB,oBAChBC,wBAAyB,8BACzBC,aAAc,iBAEdC,oBAAoB,EAEpBC,cAAc,GC9HhB,SAASC,EAAkBhrD,EAAQg3C,GACjC,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAkClD,IAAIC,EAAa,CACfC,QCxCa,CACbC,UAAW,SAAmBC,GAC5B,IAAI7Z,EAAWp2C,KACVo2C,EAAS8Z,SACd1vD,OAAOkW,KAAK0/B,EAAS8Z,SAASlgD,SAAQ,SAAUmgD,GAC9C,IAAIjoD,EAASkuC,EAAS8Z,QAAQC,GAE1BjoD,EAAOs+B,QACT,EAAOypB,EAAgB/nD,EAAOs+B,YAIpC4pB,WAAY,SAAoBC,QACR,IAAlBA,IACFA,EAAgB,IAGlB,IAAIja,EAAWp2C,KACVo2C,EAAS8Z,SACd1vD,OAAOkW,KAAK0/B,EAAS8Z,SAASlgD,SAAQ,SAAUmgD,GAC9C,IAAIjoD,EAASkuC,EAAS8Z,QAAQC,GAC1BG,EAAeD,EAAcF,IAAe,GAE5CjoD,EAAO6vC,IAAM3B,EAAS2B,IACxBv3C,OAAOkW,KAAKxO,EAAO6vC,IAAI/nC,SAAQ,SAAUugD,GACvCna,EAAS2B,GAAGwY,EAAiBroD,EAAO6vC,GAAGwY,OAKvCroD,EAAOk+B,QACTl+B,EAAOk+B,OAAO5xB,KAAK4hC,EAAnBluC,CAA6BooD,QDUnCE,cEzCa,CACbzY,GAAI,SAAY9sC,EAAQtF,EAASvC,GAC/B,IAAImoB,EAAOvrB,KACX,GAAuB,oBAAZ2F,EAAwB,OAAO4lB,EAC1C,IAAIklC,EAASrtD,EAAW,UAAY,OAKpC,OAJA6H,EAAOhQ,MAAM,KAAK+U,SAAQ,SAAU1B,GAC7Bid,EAAKmlC,gBAAgBpiD,KAAQid,EAAKmlC,gBAAgBpiD,GAAS,IAChEid,EAAKmlC,gBAAgBpiD,GAAOmiD,GAAQ9qD,MAE/B4lB,GAETi/B,KAAM,SAAcv/C,EAAQtF,EAASvC,GACnC,IAAImoB,EAAOvrB,KACX,GAAuB,oBAAZ2F,EAAwB,OAAO4lB,EAE1C,SAASolC,IACPplC,EAAK0uB,IAAIhvC,EAAQ0lD,GAEbA,EAAYC,uBACPD,EAAYC,eAGrB,IAAK,IAAIhZ,EAAO9zC,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAMm5B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ErzB,EAAKqzB,GAAQ/zC,UAAU+zC,GAGzBlyC,EAAQ9B,MAAM0nB,EAAM/G,GAItB,OADAmsC,EAAYC,eAAiBjrD,EACtB4lB,EAAKwsB,GAAG9sC,EAAQ0lD,EAAavtD,IAEtCytD,MAAO,SAAelrD,EAASvC,GAC7B,IAAImoB,EAAOvrB,KACX,GAAuB,oBAAZ2F,EAAwB,OAAO4lB,EAC1C,IAAIklC,EAASrtD,EAAW,UAAY,OAMpC,OAJImoB,EAAKulC,mBAAmBnpD,QAAQhC,GAAW,GAC7C4lB,EAAKulC,mBAAmBL,GAAQ9qD,GAG3B4lB,GAETwlC,OAAQ,SAAgBprD,GACtB,IAAI4lB,EAAOvrB,KACX,IAAKurB,EAAKulC,mBAAoB,OAAOvlC,EACrC,IAAIxjB,EAAQwjB,EAAKulC,mBAAmBnpD,QAAQhC,GAM5C,OAJIoC,GAAS,GACXwjB,EAAKulC,mBAAmBr6B,OAAO1uB,EAAO,GAGjCwjB,GAET0uB,IAAK,SAAahvC,EAAQtF,GACxB,IAAI4lB,EAAOvrB,KACX,OAAKurB,EAAKmlC,iBACVzlD,EAAOhQ,MAAM,KAAK+U,SAAQ,SAAU1B,GACX,qBAAZ3I,EACT4lB,EAAKmlC,gBAAgBpiD,GAAS,GACrBid,EAAKmlC,gBAAgBpiD,IAC9Bid,EAAKmlC,gBAAgBpiD,GAAO0B,SAAQ,SAAUghD,EAAcjpD,IACtDipD,IAAiBrrD,GAAWqrD,EAAaJ,gBAAkBI,EAAaJ,iBAAmBjrD,IAC7F4lB,EAAKmlC,gBAAgBpiD,GAAOmoB,OAAO1uB,EAAO,SAK3CwjB,GAZ2BA,GAcpChmB,KAAM,WACJ,IAEI0F,EACAmF,EACAmU,EAJAgH,EAAOvrB,KACX,IAAKurB,EAAKmlC,gBAAiB,OAAOnlC,EAKlC,IAAK,IAAI6sB,EAAQt0C,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAM25B,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpF7zB,EAAK6zB,GAASv0C,UAAUu0C,GAGH,kBAAZ7zB,EAAK,IAAmB/F,MAAMisB,QAAQlmB,EAAK,KACpDvZ,EAASuZ,EAAK,GACdpU,EAAOoU,EAAK5c,MAAM,EAAG4c,EAAKxc,QAC1Buc,EAAUgH,IAEVtgB,EAASuZ,EAAK,GAAGvZ,OACjBmF,EAAOoU,EAAK,GAAGpU,KACfmU,EAAUC,EAAK,GAAGD,SAAWgH,GAG/Bnb,EAAKopC,QAAQj1B,GACb,IAAI0sC,EAAcxyC,MAAMisB,QAAQz/B,GAAUA,EAASA,EAAOhQ,MAAM,KAchE,OAbAg2D,EAAYjhD,SAAQ,SAAU1B,GACxBid,EAAKulC,oBAAsBvlC,EAAKulC,mBAAmB9oD,QACrDujB,EAAKulC,mBAAmB9gD,SAAQ,SAAUghD,GACxCA,EAAantD,MAAM0gB,EAAS,CAACjW,GAAOqI,OAAOvG,OAI3Cmb,EAAKmlC,iBAAmBnlC,EAAKmlC,gBAAgBpiD,IAC/Cid,EAAKmlC,gBAAgBpiD,GAAO0B,SAAQ,SAAUghD,GAC5CA,EAAantD,MAAM0gB,EAASnU,SAI3Bmb,IFhET2lC,OGlCa,CACb9L,WCTa,WACb,IACI53B,EACAre,EAFA8xC,EAASjhD,KAGT+iD,EAAM9B,EAAO8B,IAGfv1B,EADiC,qBAAxByzB,EAAOza,OAAOhZ,OAAiD,OAAxByzB,EAAOza,OAAOhZ,MACtDyzB,EAAOza,OAAOhZ,MAEdu1B,EAAI,GAAGoO,YAIfhiD,EADkC,qBAAzB8xC,EAAOza,OAAOr3B,QAAmD,OAAzB8xC,EAAOza,OAAOr3B,OACtD8xC,EAAOza,OAAOr3B,OAEd4zC,EAAI,GAAGqO,aAGJ,IAAV5jC,GAAeyzB,EAAO2F,gBAA6B,IAAXz3C,GAAgB8xC,EAAOoF,eAKnE74B,EAAQA,EAAQpV,SAAS2qC,EAAIpH,IAAI,iBAAmB,EAAG,IAAMvjC,SAAS2qC,EAAIpH,IAAI,kBAAoB,EAAG,IACrGxsC,EAASA,EAASiJ,SAAS2qC,EAAIpH,IAAI,gBAAkB,EAAG,IAAMvjC,SAAS2qC,EAAIpH,IAAI,mBAAqB,EAAG,IACnG0V,OAAOl5C,MAAMqV,KAAQA,EAAQ,GAC7B6jC,OAAOl5C,MAAMhJ,KAASA,EAAS,GACnC,EAAO8xC,EAAQ,CACbzzB,MAAOA,EACPre,OAAQA,EACRmiD,KAAMrQ,EAAO2F,eAAiBp5B,EAAQre,MDpBxC48C,aEVa,WACb,IAAI9K,EAASjhD,KAETuxD,EAAoB,SAA2BC,GACjD,OAAIvQ,EAAO2F,eACF4K,EAIF,CACL,MAAS,SACT,aAAc,cACd,iBAAkB,eAClB,cAAe,aACf,eAAgB,gBAChB,eAAgB,cAChB,gBAAiB,iBACjB,YAAe,gBACfA,IAGAC,EAA4B,SAAmC1sC,EAAM1X,GACvE,OAAOoZ,WAAW1B,EAAKiwB,iBAAiBuc,EAAkBlkD,KAAW,IAGnEm5B,EAASya,EAAOza,OAChByc,EAAahC,EAAOgC,WACpByO,EAAazQ,EAAOqQ,KACpBvL,EAAM9E,EAAO+E,aACb2L,EAAW1Q,EAAO0Q,SAClBC,EAAY3Q,EAAO4Q,SAAWrrB,EAAOqrB,QAAQC,QAC7CC,EAAuBH,EAAY3Q,EAAO4Q,QAAQ3I,OAAOlhD,OAASi5C,EAAOiI,OAAOlhD,OAChFkhD,EAASjG,EAAW5vB,SAAS,IAAM4tB,EAAOza,OAAOuoB,YACjDiD,EAAeJ,EAAY3Q,EAAO4Q,QAAQ3I,OAAOlhD,OAASkhD,EAAOlhD,OACjE0gD,EAAW,GACXD,EAAa,GACbkC,EAAkB,GAYlBsH,EAAezrB,EAAOunB,mBAEE,oBAAjBkE,IACTA,EAAezrB,EAAOunB,mBAAmBhuD,KAAKkhD,IAGhD,IAAIiR,EAAc1rB,EAAOwnB,kBAEE,oBAAhBkE,IACTA,EAAc1rB,EAAOwnB,kBAAkBjuD,KAAKkhD,IAG9C,IAAIkR,EAAyBlR,EAAOyH,SAAS1gD,OACzCoqD,EAA2BnR,EAAOwH,WAAWzgD,OAC7C2lD,EAAennB,EAAOmnB,aACtB0E,GAAiBJ,EACjBK,EAAgB,EAChBvqD,EAAQ,EAEZ,GAA0B,qBAAf2pD,EAAX,CAiBA,IAAIa,EAeAC,EA5BwB,kBAAjB7E,GAA6BA,EAAahmD,QAAQ,MAAQ,IACnEgmD,EAAelnC,WAAWknC,EAAa7vD,QAAQ,IAAK,KAAO,IAAM4zD,GAGnEzQ,EAAOwR,aAAe9E,EAElB5H,EAAKmD,EAAOvN,IAAI,CAClB+W,WAAY,GACZC,UAAW,KACLzJ,EAAOvN,IAAI,CACjBiX,YAAa,GACbC,aAAc,KAIZrsB,EAAOonB,gBAAkB,IAEzB2E,EADE75C,KAAKG,MAAMm5C,EAAexrB,EAAOonB,mBAAqBoE,EAAe/Q,EAAOza,OAAOonB,gBAC5DoE,EAEAt5C,KAAKo6C,KAAKd,EAAexrB,EAAOonB,iBAAmBpnB,EAAOonB,gBAGxD,SAAzBpnB,EAAOwlB,eAA2D,QAA/BxlB,EAAOqnB,sBAC5C0E,EAAyB75C,KAAKmS,IAAI0nC,EAAwB/rB,EAAOwlB,cAAgBxlB,EAAOonB,mBAU5F,IAJA,IAiIImF,EASEC,EAMAC,EAhJFrF,EAAkBpnB,EAAOonB,gBACzBsF,EAAeX,EAAyB3E,EACxCuF,EAAiBz6C,KAAKG,MAAMm5C,EAAexrB,EAAOonB,iBAE7CxmD,EAAI,EAAGA,EAAI4qD,EAAc5qD,GAAK,EAAG,CACxCorD,EAAY,EACZ,IAAIY,EAAQlK,EAAO7M,GAAGj1C,GAEtB,GAAIo/B,EAAOonB,gBAAkB,EAAG,CAE9B,IAAIyF,OAAqB,EACrBC,OAAS,EACTziD,OAAM,EAEV,GAAmC,QAA/B21B,EAAOqnB,qBAAiCrnB,EAAO2kB,eAAiB,EAAG,CACrE,IAAIoI,EAAa76C,KAAKG,MAAMzR,GAAKo/B,EAAO2kB,eAAiB3kB,EAAOonB,kBAC5D4F,EAAoBpsD,EAAIo/B,EAAOonB,gBAAkBpnB,EAAO2kB,eAAiBoI,EACzEE,EAAgC,IAAfF,EAAmB/sB,EAAO2kB,eAAiBzyC,KAAKkS,IAAIlS,KAAKo6C,MAAMd,EAAeuB,EAAa3F,EAAkBpnB,EAAO2kB,gBAAkByC,GAAkBpnB,EAAO2kB,gBAGpLkI,GADAC,EAASE,GADT3iD,EAAM6H,KAAKG,MAAM26C,EAAoBC,IACFA,EAAiBF,EAAa/sB,EAAO2kB,gBAC1Ct6C,EAAM0hD,EAAyB3E,EAC7DwF,EAAMzX,IAAI,CACR,4BAA6B0X,EAC7B,yBAA0BA,EAC1B,iBAAkBA,EAClB,gBAAiBA,EACjBxoB,MAAOwoB,QAE+B,WAA/B7sB,EAAOqnB,qBAEhBh9C,EAAMzJ,GADNksD,EAAS56C,KAAKG,MAAMzR,EAAIwmD,IACLA,GAEf0F,EAASH,GAAkBG,IAAWH,GAAkBtiD,IAAQ+8C,EAAkB,KACpF/8C,GAAO,IAEI+8C,IACT/8C,EAAM,EACNyiD,GAAU,IAKdA,EAASlsD,GADTyJ,EAAM6H,KAAKG,MAAMzR,EAAI8rD,IACFA,EAGrBE,EAAMzX,IAAI4V,EAAkB,cAAuB,IAAR1gD,GAAa21B,EAAOmnB,cAAgBnnB,EAAOmnB,aAAe,MAGvG,GAA6B,SAAzByF,EAAMzX,IAAI,WAAd,CAEA,GAA6B,SAAzBnV,EAAOwlB,cAA0B,CACnC,IAAI0H,EAAc3e,iBAAiBqe,EAAM,IACrCO,EAAmBP,EAAM,GAAGziD,MAAMmoC,UAClC8a,EAAyBR,EAAM,GAAGziD,MAAMutC,gBAU5C,GARIyV,IACFP,EAAM,GAAGziD,MAAMmoC,UAAY,QAGzB8a,IACFR,EAAM,GAAGziD,MAAMutC,gBAAkB,QAG/B1X,EAAO2nB,aACTqE,EAAYvR,EAAO2F,eAAiBwM,EAAMrY,YAAW,GAAQqY,EAAMlY,aAAY,OAC1E,CAEL,IAAI1tB,EAAQikC,EAA0BiC,EAAa,SAC/CG,EAAcpC,EAA0BiC,EAAa,gBACrDI,EAAerC,EAA0BiC,EAAa,iBACtDhB,EAAajB,EAA0BiC,EAAa,eACpDd,EAAcnB,EAA0BiC,EAAa,gBACrDK,EAAYL,EAAY1e,iBAAiB,cAE7C,GAAI+e,GAA2B,eAAdA,EACfvB,EAAYhlC,EAAQklC,EAAaE,MAC5B,CACL,IAAIoB,EAAUZ,EAAM,GAChBjC,EAAc6C,EAAQ7C,YAE1BqB,EAAYhlC,EAAQqmC,EAAcC,EAAepB,EAAaE,GAD5CoB,EAAQzmC,YACiE4jC,IAI3FwC,IACFP,EAAM,GAAGziD,MAAMmoC,UAAY6a,GAGzBC,IACFR,EAAM,GAAGziD,MAAMutC,gBAAkB0V,GAG/BptB,EAAO2nB,eAAcqE,EAAY95C,KAAKG,MAAM25C,SAEhDA,GAAad,GAAclrB,EAAOwlB,cAAgB,GAAK2B,GAAgBnnB,EAAOwlB,cAC1ExlB,EAAO2nB,eAAcqE,EAAY95C,KAAKG,MAAM25C,IAE5CtJ,EAAO9hD,KACT8hD,EAAO9hD,GAAGuJ,MAAM4gD,EAAkB,UAAYiB,EAAY,MAI1DtJ,EAAO9hD,KACT8hD,EAAO9hD,GAAG6sD,gBAAkBzB,GAG9B7H,EAAgB38C,KAAKwkD,GAEjBhsB,EAAO6jB,gBACTgI,EAAgBA,EAAgBG,EAAY,EAAIF,EAAgB,EAAI3E,EAC9C,IAAlB2E,GAA6B,IAANlrD,IAASirD,EAAgBA,EAAgBX,EAAa,EAAI/D,GAC3E,IAANvmD,IAASirD,EAAgBA,EAAgBX,EAAa,EAAI/D,GAC1Dj1C,KAAKC,IAAI05C,GAAiB,OAAUA,EAAgB,GACpD7rB,EAAO2nB,eAAckE,EAAgB35C,KAAKG,MAAMw5C,IAChDtqD,EAAQy+B,EAAO2kB,iBAAmB,GAAGzC,EAAS16C,KAAKqkD,GACvD5J,EAAWz6C,KAAKqkD,KAEZ7rB,EAAO2nB,eAAckE,EAAgB35C,KAAKG,MAAMw5C,KAC/CtqD,EAAQ2Q,KAAKkS,IAAIq2B,EAAOza,OAAO0kB,mBAAoBnjD,IAAUk5C,EAAOza,OAAO2kB,iBAAmB,GAAGzC,EAAS16C,KAAKqkD,GACpH5J,EAAWz6C,KAAKqkD,GAChBA,EAAgBA,EAAgBG,EAAY7E,GAG9C1M,EAAOwR,aAAeD,EAAY7E,EAClC2E,EAAgBE,EAChBzqD,GAAS,GAYX,GATAk5C,EAAOwR,YAAc/5C,KAAKmS,IAAIo2B,EAAOwR,YAAaf,GAAcQ,EAG5DnM,GAAO4L,IAA+B,UAAlBnrB,EAAOinB,QAAwC,cAAlBjnB,EAAOinB,SAC1DxK,EAAWtH,IAAI,CACbnuB,MAAOyzB,EAAOwR,YAAcjsB,EAAOmnB,aAAe,OAIlDnnB,EAAO+mB,eAGTtK,EAAWtH,MAAKqX,EAAkB,IAAoBzB,EAAkB,UAAYtQ,EAAOwR,YAAcjsB,EAAOmnB,aAAe,KAAMqF,IAGvI,GAAIxsB,EAAOonB,gBAAkB,EAO3B,GAJA3M,EAAOwR,aAAeD,EAAYhsB,EAAOmnB,cAAgB4E,EACzDtR,EAAOwR,YAAc/5C,KAAKo6C,KAAK7R,EAAOwR,YAAcjsB,EAAOonB,iBAAmBpnB,EAAOmnB,aACrF1K,EAAWtH,MAAKsX,EAAmB,IAAqB1B,EAAkB,UAAYtQ,EAAOwR,YAAcjsB,EAAOmnB,aAAe,KAAMsF,IAEnIzsB,EAAO6jB,eAAgB,CACzB0I,EAAgB,GAEhB,IAAK,IAAI/nC,EAAK,EAAGA,EAAK09B,EAAS1gD,OAAQgjB,GAAM,EAAG,CAC9C,IAAIkpC,EAAiBxL,EAAS19B,GAC1Bwb,EAAO2nB,eAAc+F,EAAiBx7C,KAAKG,MAAMq7C,IACjDxL,EAAS19B,GAAMi2B,EAAOwR,YAAc/J,EAAS,IAAIqK,EAAc/kD,KAAKkmD,GAG1ExL,EAAWqK,EAKf,IAAKvsB,EAAO6jB,eAAgB,CAC1B0I,EAAgB,GAEhB,IAAK,IAAIoB,EAAM,EAAGA,EAAMzL,EAAS1gD,OAAQmsD,GAAO,EAAG,CACjD,IAAIC,GAAkB1L,EAASyL,GAC3B3tB,EAAO2nB,eAAciG,GAAkB17C,KAAKG,MAAMu7C,KAElD1L,EAASyL,IAAQlT,EAAOwR,YAAcf,GACxCqB,EAAc/kD,KAAKomD,IAIvB1L,EAAWqK,EAEPr6C,KAAKG,MAAMooC,EAAOwR,YAAcf,GAAch5C,KAAKG,MAAM6vC,EAASA,EAAS1gD,OAAS,IAAM,GAC5F0gD,EAAS16C,KAAKizC,EAAOwR,YAAcf,GAMvC,GAFwB,IAApBhJ,EAAS1gD,SAAc0gD,EAAW,CAAC,IAEX,IAAxBliB,EAAOmnB,aAAoB,CAC7B,IAAI0G,GAEA1xD,GAAMs+C,EAAO2F,gBAAkBb,EAAM,aAAewL,EAAkB,eAC1ErI,EAAOnwB,QA3PT,SAAyBu7B,EAASC,GAChC,OAAK/tB,EAAOugB,SAERwN,IAAerL,EAAOlhD,OAAS,KAwPJ2zC,MAAK0Y,GAAqB,IAAuB1xD,IAAOgrD,EAAe,KAAM0G,KAG9G,GAAI7tB,EAAO6jB,gBAAkB7jB,EAAOsnB,qBAAsB,CACxD,IAAI0G,GAAgB,EACpB7J,EAAgB36C,SAAQ,SAAUykD,GAChCD,IAAiBC,GAAkBjuB,EAAOmnB,aAAennB,EAAOmnB,aAAe,MAGjF,IAAI+G,IADJF,IAAiBhuB,EAAOmnB,cACM+D,EAC9BhJ,EAAWA,EAAS1/B,KAAI,SAAU2rC,GAChC,OAAIA,EAAO,GAAW1C,EAClB0C,EAAOD,GAAgBA,GAAUxC,EAC9ByC,KAIX,GAAInuB,EAAO0nB,yBAA0B,CACnC,IAAI0G,GAAiB,EAMrB,GALAjK,EAAgB36C,SAAQ,SAAUykD,GAChCG,IAAkBH,GAAkBjuB,EAAOmnB,aAAennB,EAAOmnB,aAAe,OAElFiH,IAAkBpuB,EAAOmnB,cAEJ+D,EAAY,CAC/B,IAAImD,IAAmBnD,EAAakD,IAAkB,EACtDlM,EAAS14C,SAAQ,SAAU2kD,EAAMG,GAC/BpM,EAASoM,GAAaH,EAAOE,MAE/BpM,EAAWz4C,SAAQ,SAAU2kD,EAAMG,GACjCrM,EAAWqM,GAAaH,EAAOE,OAKrC,EAAO5T,EAAQ,CACbiI,OAAQA,EACRR,SAAUA,EACVD,WAAYA,EACZkC,gBAAiBA,IAGfqH,IAAiBD,GACnB9Q,EAAO17C,KAAK,sBAGVmjD,EAAS1gD,SAAWmqD,IAClBlR,EAAOza,OAAO8lB,eAAerL,EAAOsL,gBACxCtL,EAAO17C,KAAK,yBAGVkjD,EAAWzgD,SAAWoqD,GACxBnR,EAAO17C,KAAK,2BAGVihC,EAAOyhB,qBAAuBzhB,EAAO0hB,wBACvCjH,EAAO8T,uBF9UTC,iBGZa,SAA0BpK,GACvC,IAGIxjD,EAHA65C,EAASjhD,KACTi1D,EAAe,GACfzT,EAAY,EAUhB,GAPqB,kBAAVoJ,EACT3J,EAAOmG,cAAcwD,IACF,IAAVA,GACT3J,EAAOmG,cAAcnG,EAAOza,OAAOokB,OAID,SAAhC3J,EAAOza,OAAOwlB,eAA4B/K,EAAOza,OAAOwlB,cAAgB,EAC1E,GAAI/K,EAAOza,OAAO6jB,eAChBpJ,EAAOiU,cAAcpZ,MAAK,SAAUsX,GAClC6B,EAAajnD,KAAKolD,WAGpB,IAAKhsD,EAAI,EAAGA,EAAIsR,KAAKo6C,KAAK7R,EAAOza,OAAOwlB,eAAgB5kD,GAAK,EAAG,CAC9D,IAAIW,EAAQk5C,EAAOgI,YAAc7hD,EACjC,GAAIW,EAAQk5C,EAAOiI,OAAOlhD,OAAQ,MAClCitD,EAAajnD,KAAKizC,EAAOiI,OAAO7M,GAAGt0C,GAAO,SAI9CktD,EAAajnD,KAAKizC,EAAOiI,OAAO7M,GAAG4E,EAAOgI,aAAa,IAIzD,IAAK7hD,EAAI,EAAGA,EAAI6tD,EAAajtD,OAAQZ,GAAK,EACxC,GAA+B,qBAApB6tD,EAAa7tD,GAAoB,CAC1C,IAAI+H,EAAS8lD,EAAa7tD,GAAGq0B,aAC7B+lB,EAAYryC,EAASqyC,EAAYryC,EAASqyC,EAK1CA,GAAWP,EAAOgC,WAAWtH,IAAI,SAAU6F,EAAY,OHzB3DuT,mBIba,WAIb,IAHA,IACI7L,EADSlpD,KACOkpD,OAEX9hD,EAAI,EAAGA,EAAI8hD,EAAOlhD,OAAQZ,GAAK,EACtC8hD,EAAO9hD,GAAG+tD,kBAJCn1D,KAI0B4mD,eAAiBsC,EAAO9hD,GAAGguD,WAAalM,EAAO9hD,GAAGiuD,WJSzFC,qBKba,SAA8B9jD,QACzB,IAAdA,IACFA,EAAYxR,MAAQA,KAAKwR,WAAa,GAGxC,IAAIyvC,EAASjhD,KACTwmC,EAASya,EAAOza,OAChB0iB,EAASjI,EAAOiI,OAChBnD,EAAM9E,EAAO+E,aACjB,GAAsB,IAAlBkD,EAAOlhD,OAAX,CAC2C,qBAAhCkhD,EAAO,GAAGiM,mBAAmClU,EAAO8T,qBAC/D,IAAIQ,GAAgB/jD,EAChBu0C,IAAKwP,EAAe/jD,GAExB03C,EAAO/nD,YAAYqlC,EAAO2oB,mBAC1BlO,EAAOuU,qBAAuB,GAC9BvU,EAAOiU,cAAgB,GAEvB,IAAK,IAAI9tD,EAAI,EAAGA,EAAI8hD,EAAOlhD,OAAQZ,GAAK,EAAG,CACzC,IAAIgsD,EAAQlK,EAAO9hD,GACfquD,GAAiBF,GAAgB/uB,EAAO6jB,eAAiBpJ,EAAOsF,eAAiB,GAAK6M,EAAM+B,oBAAsB/B,EAAMa,gBAAkBztB,EAAOmnB,cAErJ,GAAInnB,EAAO0hB,uBAAyB1hB,EAAO6jB,gBAAkB7jB,EAAO8mB,WAAY,CAC9E,IAAIoI,IAAgBH,EAAenC,EAAM+B,mBACrCQ,EAAaD,EAAczU,EAAO0J,gBAAgBvjD,IACtCsuD,GAAe,GAAKA,EAAczU,EAAOqQ,KAAO,GAAKqE,EAAa,GAAKA,GAAc1U,EAAOqQ,MAAQoE,GAAe,GAAKC,GAAc1U,EAAOqQ,QAG3JrQ,EAAOiU,cAAclnD,KAAKolD,GAC1BnS,EAAOuU,qBAAqBxnD,KAAK5G,GACjC8hD,EAAO7M,GAAGj1C,GAAGvG,SAAS2lC,EAAO2oB,oBAIjCiE,EAAMpG,SAAWjH,GAAO0P,EAAgBA,EAG1CxU,EAAOiU,cAAgB,EAAEjU,EAAOiU,iBLvBhC5M,eMda,SAAwB92C,GACrC,IAAIyvC,EAASjhD,KAEb,GAAyB,qBAAdwR,EAA2B,CACpC,IAAIokD,EAAa3U,EAAO+E,cAAgB,EAAI,EAE5Cx0C,EAAYyvC,GAAUA,EAAOzvC,WAAayvC,EAAOzvC,UAAYokD,GAAc,EAG7E,IAAIpvB,EAASya,EAAOza,OAChBumB,EAAiB9L,EAAOqF,eAAiBrF,EAAOsF,eAChDyG,EAAW/L,EAAO+L,SAClBd,EAAcjL,EAAOiL,YACrBD,EAAQhL,EAAOgL,MACf4J,EAAe3J,EACf4J,EAAS7J,EAEU,IAAnBc,GACFC,EAAW,EACXd,GAAc,EACdD,GAAQ,IAGRC,GADAc,GAAYx7C,EAAYyvC,EAAOsF,gBAAkBwG,IACvB,EAC1Bd,EAAQe,GAAY,GAGtB,EAAO/L,EAAQ,CACb+L,SAAUA,EACVd,YAAaA,EACbD,MAAOA,KAELzlB,EAAOyhB,qBAAuBzhB,EAAO0hB,uBAAyB1hB,EAAO6jB,gBAAkB7jB,EAAO8mB,aAAYrM,EAAOqU,qBAAqB9jD,GAEtI06C,IAAgB2J,GAClB5U,EAAO17C,KAAK,yBAGV0mD,IAAU6J,GACZ7U,EAAO17C,KAAK,oBAGVswD,IAAiB3J,GAAe4J,IAAW7J,IAC7ChL,EAAO17C,KAAK,YAGd07C,EAAO17C,KAAK,WAAYynD,IN/BxB5E,oBOhBa,WACb,IAQI2N,EARA9U,EAASjhD,KACTkpD,EAASjI,EAAOiI,OAChB1iB,EAASya,EAAOza,OAChByc,EAAahC,EAAOgC,WACpBgG,EAAchI,EAAOgI,YACrB+M,EAAY/U,EAAO+U,UACnBpE,EAAY3Q,EAAO4Q,SAAWrrB,EAAOqrB,QAAQC,QACjD5I,EAAO/nD,YAAYqlC,EAAOyoB,iBAAmB,IAAMzoB,EAAO6oB,eAAiB,IAAM7oB,EAAO+oB,eAAiB,IAAM/oB,EAAO0oB,0BAA4B,IAAM1oB,EAAO8oB,wBAA0B,IAAM9oB,EAAOgpB,0BAIpMuG,EADEnE,EACY3Q,EAAOgC,WAAWjT,KAAK,IAAMxJ,EAAOuoB,WAAa,6BAAgC9F,EAAc,MAE/FC,EAAO7M,GAAG4M,IAIdpoD,SAAS2lC,EAAOyoB,kBAExBzoB,EAAO4f,OAEL2P,EAAYh6C,SAASyqB,EAAO4oB,qBAC9BnM,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,SAAWvoB,EAAO4oB,oBAAsB,8BAAiC4G,EAAY,MAAOn1D,SAAS2lC,EAAO0oB,2BAE1JjM,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,IAAMvoB,EAAO4oB,oBAAsB,6BAAgC4G,EAAY,MAAOn1D,SAAS2lC,EAAO0oB,4BAKxJ,IAAI3E,EAAYwL,EAAYpZ,QAAQ,IAAMnW,EAAOuoB,YAAY1S,GAAG,GAAGx7C,SAAS2lC,EAAO6oB,gBAE/E7oB,EAAO4f,MAA6B,IAArBmE,EAAUviD,SAC3BuiD,EAAYrB,EAAO7M,GAAG,IACZx7C,SAAS2lC,EAAO6oB,gBAI5B,IAAI4G,EAAYF,EAAY/Y,QAAQ,IAAMxW,EAAOuoB,YAAY1S,GAAG,GAAGx7C,SAAS2lC,EAAO+oB,gBAE/E/oB,EAAO4f,MAA6B,IAArB6P,EAAUjuD,SAC3BiuD,EAAY/M,EAAO7M,IAAI,IACbx7C,SAAS2lC,EAAO+oB,gBAGxB/oB,EAAO4f,OAELmE,EAAUxuC,SAASyqB,EAAO4oB,qBAC5BnM,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,SAAWvoB,EAAO4oB,oBAAsB,8BAAiC7E,EAAUr5C,KAAK,2BAA6B,MAAOrQ,SAAS2lC,EAAO8oB,yBAE1LrM,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,IAAMvoB,EAAO4oB,oBAAsB,6BAAgC7E,EAAUr5C,KAAK,2BAA6B,MAAOrQ,SAAS2lC,EAAO8oB,yBAGlL2G,EAAUl6C,SAASyqB,EAAO4oB,qBAC5BnM,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,SAAWvoB,EAAO4oB,oBAAsB,8BAAiC6G,EAAU/kD,KAAK,2BAA6B,MAAOrQ,SAAS2lC,EAAOgpB,yBAE1LvM,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,IAAMvoB,EAAO4oB,oBAAsB,6BAAgC6G,EAAU/kD,KAAK,2BAA6B,MAAOrQ,SAAS2lC,EAAOgpB,0BAIxLvO,EAAOiV,qBP3CP/N,kBQhBa,SAA2BgO,GACxC,IASIrB,EATA7T,EAASjhD,KACTwR,EAAYyvC,EAAO+E,aAAe/E,EAAOzvC,WAAayvC,EAAOzvC,UAC7Di3C,EAAaxH,EAAOwH,WACpBC,EAAWzH,EAAOyH,SAClBliB,EAASya,EAAOza,OAChB4vB,EAAgBnV,EAAOgI,YACvBoN,EAAoBpV,EAAO+U,UAC3BM,EAAoBrV,EAAO6T,UAC3B7L,EAAckN,EAGlB,GAA2B,qBAAhBlN,EAA6B,CACtC,IAAK,IAAI7hD,EAAI,EAAGA,EAAIqhD,EAAWzgD,OAAQZ,GAAK,EACT,qBAAtBqhD,EAAWrhD,EAAI,GACpBoK,GAAai3C,EAAWrhD,IAAMoK,EAAYi3C,EAAWrhD,EAAI,IAAMqhD,EAAWrhD,EAAI,GAAKqhD,EAAWrhD,IAAM,EACtG6hD,EAAc7hD,EACLoK,GAAai3C,EAAWrhD,IAAMoK,EAAYi3C,EAAWrhD,EAAI,KAClE6hD,EAAc7hD,EAAI,GAEXoK,GAAai3C,EAAWrhD,KACjC6hD,EAAc7hD,GAKdo/B,EAAOynB,sBACLhF,EAAc,GAA4B,qBAAhBA,KAA6BA,EAAc,GAI7E,GAAIP,EAAS/gD,QAAQ6J,IAAc,EACjCsjD,EAAYpM,EAAS/gD,QAAQ6J,OACxB,CACL,IAAI+kD,EAAO79C,KAAKkS,IAAI4b,EAAO0kB,mBAAoBjC,GAC/C6L,EAAYyB,EAAO79C,KAAKG,OAAOowC,EAAcsN,GAAQ/vB,EAAO2kB,gBAK9D,GAFI2J,GAAapM,EAAS1gD,SAAQ8sD,EAAYpM,EAAS1gD,OAAS,GAE5DihD,IAAgBmN,EAApB,CAUA,IAAIJ,EAAY59C,SAAS6oC,EAAOiI,OAAO7M,GAAG4M,GAAa/3C,KAAK,4BAA8B+3C,EAAa,IACvG,EAAOhI,EAAQ,CACb6T,UAAWA,EACXkB,UAAWA,EACXI,cAAeA,EACfnN,YAAaA,IAEfhI,EAAO17C,KAAK,qBACZ07C,EAAO17C,KAAK,mBAER8wD,IAAsBL,GACxB/U,EAAO17C,KAAK,oBAGV07C,EAAOI,aAAeJ,EAAOza,OAAOkpB,qBACtCzO,EAAO17C,KAAK,oBAxBRuvD,IAAcwB,IAChBrV,EAAO6T,UAAYA,EACnB7T,EAAO17C,KAAK,qBR1BhBujD,mBSjBa,SAA4BpuC,GACzC,IAII65C,EAJAtT,EAASjhD,KACTwmC,EAASya,EAAOza,OAChB4sB,EAAQ,EAAE14C,EAAE9V,QAAQy4C,QAAQ,IAAM7W,EAAOuoB,YAAY,GACrDyH,GAAa,EAGjB,GAAIpD,EACF,IAAK,IAAIhsD,EAAI,EAAGA,EAAI65C,EAAOiI,OAAOlhD,OAAQZ,GAAK,EAC7C,GAAI65C,EAAOiI,OAAO9hD,KAAOgsD,EAAO,CAC9BoD,GAAa,EACbjC,EAAantD,EACb,MAKN,IAAIgsD,IAASoD,EAWX,OAFAvV,EAAOwV,kBAAezvD,OACtBi6C,EAAOyV,kBAAe1vD,GATtBi6C,EAAOwV,aAAerD,EAElBnS,EAAO4Q,SAAW5Q,EAAOza,OAAOqrB,QAAQC,QAC1C7Q,EAAOyV,aAAet+C,SAAS,EAAEg7C,GAAOliD,KAAK,2BAA4B,IAEzE+vC,EAAOyV,aAAenC,EAQtB/tB,EAAO8nB,0BAA+CtnD,IAAxBi6C,EAAOyV,cAA8BzV,EAAOyV,eAAiBzV,EAAOgI,aACpGhI,EAAOqN,wBZWT98C,UavCa,CACbmsC,aCLa,SAA4BC,QAC5B,IAATA,IACFA,EAAO59C,KAAK4mD,eAAiB,IAAM,KAGrC,IAAI3F,EAASjhD,KACTwmC,EAASya,EAAOza,OAChBuf,EAAM9E,EAAO+E,aACbx0C,EAAYyvC,EAAOzvC,UACnByxC,EAAahC,EAAOgC,WAExB,GAAIzc,EAAOgnB,iBACT,OAAOzH,GAAOv0C,EAAYA,EAG5B,GAAIg1B,EAAOugB,QACT,OAAOv1C,EAGT,IAAIm2C,EAAmBhK,EAAasF,EAAW,GAAIrF,GAEnD,OADImI,IAAK4B,GAAoBA,GACtBA,GAAoB,GDf3BY,aEPa,SAAsB/2C,EAAWmlD,GAC9C,IAAI1V,EAASjhD,KACT+lD,EAAM9E,EAAO+E,aACbxf,EAASya,EAAOza,OAChByc,EAAahC,EAAOgC,WACpBU,EAAY1C,EAAO0C,UACnBqJ,EAAW/L,EAAO+L,SAClBt5C,EAAI,EACJzW,EAAI,EAGJgkD,EAAO2F,eACTlzC,EAAIqyC,GAAOv0C,EAAYA,EAEvBvU,EAAIuU,EAGFg1B,EAAO2nB,eACTz6C,EAAIgF,KAAKG,MAAMnF,GACfzW,EAAIyb,KAAKG,MAAM5b,IAGbupC,EAAOugB,QACTpD,EAAU1C,EAAO2F,eAAiB,aAAe,aAAe3F,EAAO2F,gBAAkBlzC,GAAKzW,EACpFupC,EAAOgnB,kBACjBvK,EAAWnK,UAAU,eAAiBplC,EAAI,OAASzW,EAA9B,YAGvBgkD,EAAO4L,kBAAoB5L,EAAOzvC,UAClCyvC,EAAOzvC,UAAYyvC,EAAO2F,eAAiBlzC,EAAIzW,EAG/C,IAAI8vD,EAAiB9L,EAAOqF,eAAiBrF,EAAOsF,gBAE7B,IAAnBwG,EACY,GAECv7C,EAAYyvC,EAAOsF,gBAAkBwG,KAGlCC,GAClB/L,EAAOqH,eAAe92C,GAGxByvC,EAAO17C,KAAK,eAAgB07C,EAAOzvC,UAAWmlD,IFpC9CpQ,aGRa,WACb,OAAQvmD,KAAK0oD,SAAS,IHQtBpC,aITa,WACb,OAAQtmD,KAAK0oD,SAAS1oD,KAAK0oD,SAAS1gD,OAAS,IJS7C4uD,YKVa,SAAqBplD,EAAWo5C,EAAOiM,EAAcC,EAAiBC,QACjE,IAAdvlD,IACFA,EAAY,QAGA,IAAVo5C,IACFA,EAAQ5qD,KAAKwmC,OAAOokB,YAGD,IAAjBiM,IACFA,GAAe,QAGO,IAApBC,IACFA,GAAkB,GAGpB,IAAI7V,EAASjhD,KACTwmC,EAASya,EAAOza,OAChBmd,EAAY1C,EAAO0C,UAEvB,GAAI1C,EAAOqC,WAAa9c,EAAO+c,+BAC7B,OAAO,EAGT,IAEIyT,EAFAzQ,EAAetF,EAAOsF,eACtBD,EAAerF,EAAOqF,eAM1B,GAJiD0Q,EAA7CF,GAAmBtlD,EAAY+0C,EAA6BA,EAAsBuQ,GAAmBtlD,EAAY80C,EAA6BA,EAAiC90C,EAEnLyvC,EAAOqH,eAAe0O,GAElBxwB,EAAOugB,QAAS,CAClB,IAOQkQ,EAPJC,EAAMjW,EAAO2F,eAEjB,GAAc,IAAVgE,EACFjH,EAAUuT,EAAM,aAAe,cAAgBF,OAG/C,GAAIrT,EAAUwT,SAGZxT,EAAUwT,WAAUF,EAAsB,IAAwBC,EAAM,OAAS,QAAUF,EAAcC,EAAoBG,SAAW,SAAUH,SAElJtT,EAAUuT,EAAM,aAAe,cAAgBF,EAInD,OAAO,EA2CT,OAxCc,IAAVpM,GACF3J,EAAOmG,cAAc,GACrBnG,EAAOsH,aAAayO,GAEhBH,IACF5V,EAAO17C,KAAK,wBAAyBqlD,EAAOmM,GAC5C9V,EAAO17C,KAAK,oBAGd07C,EAAOmG,cAAcwD,GACrB3J,EAAOsH,aAAayO,GAEhBH,IACF5V,EAAO17C,KAAK,wBAAyBqlD,EAAOmM,GAC5C9V,EAAO17C,KAAK,oBAGT07C,EAAOqC,YACVrC,EAAOqC,WAAY,EAEdrC,EAAOoW,oCACVpW,EAAOoW,kCAAoC,SAAuB38C,GAC3DumC,IAAUA,EAAOG,WAClB1mC,EAAE9V,SAAW5E,OACjBihD,EAAOgC,WAAW,GAAGl9C,oBAAoB,gBAAiBk7C,EAAOoW,mCACjEpW,EAAOgC,WAAW,GAAGl9C,oBAAoB,sBAAuBk7C,EAAOoW,mCACvEpW,EAAOoW,kCAAoC,YACpCpW,EAAOoW,kCAEVR,GACF5V,EAAO17C,KAAK,oBAKlB07C,EAAOgC,WAAW,GAAGn9C,iBAAiB,gBAAiBm7C,EAAOoW,mCAC9DpW,EAAOgC,WAAW,GAAGn9C,iBAAiB,sBAAuBm7C,EAAOoW,sCAIjE,IlB9CPte,WmB1Ca,CACbqO,cCJa,SAAuBt8B,EAAU6rC,GAC9C,IAAI1V,EAASjhD,KAERihD,EAAOza,OAAOugB,SACjB9F,EAAOgC,WAAWlK,WAAWjuB,GAG/Bm2B,EAAO17C,KAAK,gBAAiBulB,EAAU6rC,IDFvC7L,gBELa,SAAyB+L,EAAc1J,QAC/B,IAAjB0J,IACFA,GAAe,GAGjB,IAAI5V,EAASjhD,KACTipD,EAAchI,EAAOgI,YACrBziB,EAASya,EAAOza,OAChB4vB,EAAgBnV,EAAOmV,cAC3B,IAAI5vB,EAAOugB,QAAX,CAEIvgB,EAAO8mB,YACTrM,EAAO+T,mBAGT,IAAIsC,EAAMnK,EAQV,GANKmK,IAC8BA,EAA7BrO,EAAcmN,EAAqB,OAAgBnN,EAAcmN,EAAqB,OAAkB,SAG9GnV,EAAO17C,KAAK,mBAERsxD,GAAgB5N,IAAgBmN,EAAe,CACjD,GAAY,UAARkB,EAEF,YADArW,EAAO17C,KAAK,6BAId07C,EAAO17C,KAAK,8BAEA,SAAR+xD,EACFrW,EAAO17C,KAAK,4BAEZ07C,EAAO17C,KAAK,+BF5BhBq1C,cGNa,SAAuBic,EAAc1J,QAC7B,IAAjB0J,IACFA,GAAe,GAGjB,IAAI5V,EAASjhD,KACTipD,EAAchI,EAAOgI,YACrBmN,EAAgBnV,EAAOmV,cACvB5vB,EAASya,EAAOza,OAEpB,GADAya,EAAOqC,WAAY,GACf9c,EAAOugB,QAAX,CACA9F,EAAOmG,cAAc,GACrB,IAAIkQ,EAAMnK,EAQV,GANKmK,IAC8BA,EAA7BrO,EAAcmN,EAAqB,OAAgBnN,EAAcmN,EAAqB,OAAkB,SAG9GnV,EAAO17C,KAAK,iBAERsxD,GAAgB5N,IAAgBmN,EAAe,CACjD,GAAY,UAARkB,EAEF,YADArW,EAAO17C,KAAK,2BAId07C,EAAO17C,KAAK,4BAEA,SAAR+xD,EACFrW,EAAO17C,KAAK,0BAEZ07C,EAAO17C,KAAK,8BtBehB6tD,MuBvCa,CACbpK,QCRa,SAAiBjhD,EAAO6iD,EAAOiM,EAAcE,GAa1D,QAZc,IAAVhvD,IACFA,EAAQ,QAGI,IAAV6iD,IACFA,EAAQ5qD,KAAKwmC,OAAOokB,YAGD,IAAjBiM,IACFA,GAAe,GAGI,kBAAV9uD,GAAuC,kBAAVA,EACtC,MAAM,IAAI1F,MAAM,kFAAoF0F,EAAQ,YAG9G,GAAqB,kBAAVA,EAAoB,CAK7B,IAAIwvD,EAAgBn/C,SAASrQ,EAAO,IASpC,IAFoByvD,SAASD,GAG3B,MAAM,IAAIl1D,MAAM,sEAAwE0F,EAAQ,YAKlGA,EAAQwvD,EAGV,IAAItW,EAASjhD,KACTu0D,EAAaxsD,EACbwsD,EAAa,IAAGA,EAAa,GACjC,IAAI/tB,EAASya,EAAOza,OAChBkiB,EAAWzH,EAAOyH,SAClBD,EAAaxH,EAAOwH,WACpB2N,EAAgBnV,EAAOmV,cACvBnN,EAAchI,EAAOgI,YACrBlD,EAAM9E,EAAO+E,aACbrC,EAAY1C,EAAO0C,UAEvB,GAAI1C,EAAOqC,WAAa9c,EAAO+c,+BAC7B,OAAO,EAGT,IAAIgT,EAAO79C,KAAKkS,IAAIq2B,EAAOza,OAAO0kB,mBAAoBqJ,GAClDO,EAAYyB,EAAO79C,KAAKG,OAAO07C,EAAagC,GAAQtV,EAAOza,OAAO2kB,gBAClE2J,GAAapM,EAAS1gD,SAAQ8sD,EAAYpM,EAAS1gD,OAAS,IAE3DihD,GAAeziB,EAAO4mB,cAAgB,MAAQgJ,GAAiB,IAAMS,GACxE5V,EAAO17C,KAAK,0BAGd,IAiCI4nD,EAjCA37C,GAAak3C,EAASoM,GAI1B,GAFA7T,EAAOqH,eAAe92C,GAElBg1B,EAAOynB,oBACT,IAAK,IAAI7mD,EAAI,EAAGA,EAAIqhD,EAAWzgD,OAAQZ,GAAK,EAAG,CAC7C,IAAIqwD,GAAuB/+C,KAAKG,MAAkB,IAAZrH,GAClCkmD,EAAiBh/C,KAAKG,MAAsB,IAAhB4vC,EAAWrhD,IACvCuwD,EAAqBj/C,KAAKG,MAA0B,IAApB4vC,EAAWrhD,EAAI,IAElB,qBAAtBqhD,EAAWrhD,EAAI,GACpBqwD,GAAuBC,GAAkBD,EAAsBE,GAAsBA,EAAqBD,GAAkB,EAC9HnD,EAAantD,EACJqwD,GAAuBC,GAAkBD,EAAsBE,IACxEpD,EAAantD,EAAI,GAEVqwD,GAAuBC,IAChCnD,EAAantD,GAMnB,GAAI65C,EAAOI,aAAekT,IAAetL,EAAa,CACpD,IAAKhI,EAAOsG,gBAAkB/1C,EAAYyvC,EAAOzvC,WAAaA,EAAYyvC,EAAOsF,eAC/E,OAAO,EAGT,IAAKtF,EAAOuG,gBAAkBh2C,EAAYyvC,EAAOzvC,WAAaA,EAAYyvC,EAAOqF,iBAC1E2C,GAAe,KAAOsL,EAAY,OAAO,EAOlD,GAF8BpH,EAA1BoH,EAAatL,EAAyB,OAAgBsL,EAAatL,EAAyB,OAAwB,QAEpHlD,IAAQv0C,IAAcyvC,EAAOzvC,YAAcu0C,GAAOv0C,IAAcyvC,EAAOzvC,UAkBzE,OAjBAyvC,EAAOkH,kBAAkBoM,GAErB/tB,EAAO8mB,YACTrM,EAAO+T,mBAGT/T,EAAOmH,sBAEe,UAAlB5hB,EAAOinB,QACTxM,EAAOsH,aAAa/2C,GAGJ,UAAd27C,IACFlM,EAAO6J,gBAAgB+L,EAAc1J,GACrClM,EAAOrG,cAAcic,EAAc1J,KAG9B,EAGT,GAAI3mB,EAAOugB,QAAS,CAClB,IAYQkQ,EAZJC,EAAMjW,EAAO2F,eACbxoC,GAAK5M,EAMT,GAJIu0C,IACF3nC,EAAIulC,EAAUmJ,YAAcnJ,EAAUp2B,YAAcnP,GAGxC,IAAVwsC,EACFjH,EAAUuT,EAAM,aAAe,aAAe94C,OAG9C,GAAIulC,EAAUwT,SAGZxT,EAAUwT,WAAUF,EAAsB,IAAwBC,EAAM,OAAS,OAAS94C,EAAG64C,EAAoBG,SAAW,SAAUH,SAEtItT,EAAUuT,EAAM,aAAe,aAAe94C,EAIlD,OAAO,EAuCT,OApCc,IAAVwsC,GACF3J,EAAOmG,cAAc,GACrBnG,EAAOsH,aAAa/2C,GACpByvC,EAAOkH,kBAAkBoM,GACzBtT,EAAOmH,sBACPnH,EAAO17C,KAAK,wBAAyBqlD,EAAOmM,GAC5C9V,EAAO6J,gBAAgB+L,EAAc1J,GACrClM,EAAOrG,cAAcic,EAAc1J,KAEnClM,EAAOmG,cAAcwD,GACrB3J,EAAOsH,aAAa/2C,GACpByvC,EAAOkH,kBAAkBoM,GACzBtT,EAAOmH,sBACPnH,EAAO17C,KAAK,wBAAyBqlD,EAAOmM,GAC5C9V,EAAO6J,gBAAgB+L,EAAc1J,GAEhClM,EAAOqC,YACVrC,EAAOqC,WAAY,EAEdrC,EAAO2W,gCACV3W,EAAO2W,8BAAgC,SAAuBl9C,GACvDumC,IAAUA,EAAOG,WAClB1mC,EAAE9V,SAAW5E,OACjBihD,EAAOgC,WAAW,GAAGl9C,oBAAoB,gBAAiBk7C,EAAO2W,+BACjE3W,EAAOgC,WAAW,GAAGl9C,oBAAoB,sBAAuBk7C,EAAO2W,+BACvE3W,EAAO2W,8BAAgC,YAChC3W,EAAO2W,8BACd3W,EAAOrG,cAAcic,EAAc1J,MAIvClM,EAAOgC,WAAW,GAAGn9C,iBAAiB,gBAAiBm7C,EAAO2W,+BAC9D3W,EAAOgC,WAAW,GAAGn9C,iBAAiB,sBAAuBm7C,EAAO2W,kCAIjE,GD3KPC,YETa,SAAqB9vD,EAAO6iD,EAAOiM,EAAcE,QAChD,IAAVhvD,IACFA,EAAQ,QAGI,IAAV6iD,IACFA,EAAQ5qD,KAAKwmC,OAAOokB,YAGD,IAAjBiM,IACFA,GAAe,GAGjB,IAAI5V,EAASjhD,KACT83D,EAAW/vD,EAMf,OAJIk5C,EAAOza,OAAO4f,OAChB0R,GAAY7W,EAAOyN,cAGdzN,EAAO+H,QAAQ8O,EAAUlN,EAAOiM,EAAcE,IFVrDgB,UGTa,SAAmBnN,EAAOiM,EAAcE,QACvC,IAAVnM,IACFA,EAAQ5qD,KAAKwmC,OAAOokB,YAGD,IAAjBiM,IACFA,GAAe,GAGjB,IAAI5V,EAASjhD,KACTwmC,EAASya,EAAOza,OAChB8c,EAAYrC,EAAOqC,UACnBgI,EAAYrK,EAAOgI,YAAcziB,EAAO0kB,mBAAqB,EAAI1kB,EAAO2kB,eAE5E,GAAI3kB,EAAO4f,KAAM,CACf,GAAI9C,GAAa9c,EAAOooB,kBAAmB,OAAO,EAClD3N,EAAOiG,UAEPjG,EAAO+W,YAAc/W,EAAOgC,WAAW,GAAG3H,WAG5C,OAAO2F,EAAO+H,QAAQ/H,EAAOgI,YAAcqC,EAAWV,EAAOiM,EAAcE,IHX3EkB,UIVa,SAAmBrN,EAAOiM,EAAcE,QACvC,IAAVnM,IACFA,EAAQ5qD,KAAKwmC,OAAOokB,YAGD,IAAjBiM,IACFA,GAAe,GAGjB,IAAI5V,EAASjhD,KACTwmC,EAASya,EAAOza,OAChB8c,EAAYrC,EAAOqC,UACnBoF,EAAWzH,EAAOyH,SAClBD,EAAaxH,EAAOwH,WACpBzC,EAAe/E,EAAO+E,aAE1B,GAAIxf,EAAO4f,KAAM,CACf,GAAI9C,GAAa9c,EAAOooB,kBAAmB,OAAO,EAClD3N,EAAOiG,UAEPjG,EAAO+W,YAAc/W,EAAOgC,WAAW,GAAG3H,WAK5C,SAAS4c,EAAU9tC,GACjB,OAAIA,EAAM,GAAW1R,KAAKG,MAAMH,KAAKC,IAAIyR,IAClC1R,KAAKG,MAAMuR,GAGpB,IAaI+tC,EAbAV,EAAsBS,EAPVlS,EAAe/E,EAAOzvC,WAAayvC,EAAOzvC,WAQtD4mD,EAAqB1P,EAAS1/B,KAAI,SAAUoB,GAC9C,OAAO8tC,EAAU9tC,MAGfiuC,GADc3P,EAAS0P,EAAmBzwD,QAAQ8vD,IACvC/O,EAAS0P,EAAmBzwD,QAAQ8vD,GAAuB,IAe1E,MAbwB,qBAAbY,GAA4B7xB,EAAOugB,SAC5C2B,EAAS14C,SAAQ,SAAU2kD,IACpB0D,GAAYZ,GAAuB9C,IAAM0D,EAAW1D,MAMrC,qBAAb0D,IACTF,EAAY1P,EAAW9gD,QAAQ0wD,IACf,IAAGF,EAAYlX,EAAOgI,YAAc,GAG/ChI,EAAO+H,QAAQmP,EAAWvN,EAAOiM,EAAcE,IJvCtDuB,WKXa,SAAoB1N,EAAOiM,EAAcE,GAUtD,YATc,IAAVnM,IACFA,EAAQ5qD,KAAKwmC,OAAOokB,YAGD,IAAjBiM,IACFA,GAAe,GAGJ72D,KACCgpD,QADDhpD,KACgBipD,YAAa2B,EAAOiM,EAAcE,ILE/DlM,eMZa,SAAwBD,EAAOiM,EAAcE,EAAUzR,QACtD,IAAVsF,IACFA,EAAQ5qD,KAAKwmC,OAAOokB,YAGD,IAAjBiM,IACFA,GAAe,QAGC,IAAdvR,IACFA,EAAY,IAGd,IAAIrE,EAASjhD,KACT+H,EAAQk5C,EAAOgI,YACfsN,EAAO79C,KAAKkS,IAAIq2B,EAAOza,OAAO0kB,mBAAoBnjD,GAClD+sD,EAAYyB,EAAO79C,KAAKG,OAAO9Q,EAAQwuD,GAAQtV,EAAOza,OAAO2kB,gBAC7D35C,EAAYyvC,EAAO+E,aAAe/E,EAAOzvC,WAAayvC,EAAOzvC,UAEjE,GAAIA,GAAayvC,EAAOyH,SAASoM,GAAY,CAG3C,IAAIyD,EAActX,EAAOyH,SAASoM,GAG9BtjD,EAAY+mD,GAFDtX,EAAOyH,SAASoM,EAAY,GAEDyD,GAAejT,IACvDv9C,GAASk5C,EAAOza,OAAO2kB,oBAEpB,CAGL,IAAIkN,EAAWpX,EAAOyH,SAASoM,EAAY,GAGvCtjD,EAAY6mD,IAFGpX,EAAOyH,SAASoM,GAESuD,GAAY/S,IACtDv9C,GAASk5C,EAAOza,OAAO2kB,gBAM3B,OAFApjD,EAAQ2Q,KAAKmS,IAAI9iB,EAAO,GACxBA,EAAQ2Q,KAAKkS,IAAI7iB,EAAOk5C,EAAOwH,WAAWzgD,OAAS,GAC5Ci5C,EAAO+H,QAAQjhD,EAAO6iD,EAAOiM,EAAcE,IN5BlDzI,oBOZa,WACb,IAKI0H,EALA/U,EAASjhD,KACTwmC,EAASya,EAAOza,OAChByc,EAAahC,EAAOgC,WACpB+I,EAAyC,SAAzBxlB,EAAOwlB,cAA2B/K,EAAOuX,uBAAyBhyB,EAAOwlB,cACzFyM,EAAexX,EAAOyV,aAG1B,GAAIlwB,EAAO4f,KAAM,CACf,GAAInF,EAAOqC,UAAW,OACtB0S,EAAY59C,SAAS,EAAE6oC,EAAOwV,cAAcvlD,KAAK,2BAA4B,IAEzEs1B,EAAO6jB,eACLoO,EAAexX,EAAOyN,aAAe1C,EAAgB,GAAKyM,EAAexX,EAAOiI,OAAOlhD,OAASi5C,EAAOyN,aAAe1C,EAAgB,GACxI/K,EAAOiG,UACPuR,EAAexV,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,6BAAgCiH,EAAY,WAAcxvB,EAAO4oB,oBAAsB,KAAK/S,GAAG,GAAGt0C,QAC/J01C,GAAS,WACPwD,EAAO+H,QAAQyP,OAGjBxX,EAAO+H,QAAQyP,GAERA,EAAexX,EAAOiI,OAAOlhD,OAASgkD,GAC/C/K,EAAOiG,UACPuR,EAAexV,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,6BAAgCiH,EAAY,WAAcxvB,EAAO4oB,oBAAsB,KAAK/S,GAAG,GAAGt0C,QAC/J01C,GAAS,WACPwD,EAAO+H,QAAQyP,OAGjBxX,EAAO+H,QAAQyP,QAGjBxX,EAAO+H,QAAQyP,K9BajBrS,K+B5Ca,CACbsS,WCFa,WACb,IAAIzX,EAASjhD,KACToX,EAAWm9B,IACX/N,EAASya,EAAOza,OAChByc,EAAahC,EAAOgC,WAExBA,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,IAAMvoB,EAAO4oB,qBAAqB5pD,SAChF,IAAI0jD,EAASjG,EAAW5vB,SAAS,IAAMmT,EAAOuoB,YAE9C,GAAIvoB,EAAOmoB,uBAAwB,CACjC,IAAIgK,EAAiBnyB,EAAO2kB,eAAiBjC,EAAOlhD,OAASw+B,EAAO2kB,eAEpE,GAAIwN,IAAmBnyB,EAAO2kB,eAAgB,CAC5C,IAAK,IAAI/jD,EAAI,EAAGA,EAAIuxD,EAAgBvxD,GAAK,EAAG,CAC1C,IAAIwxD,EAAY,EAAExhD,EAASwN,cAAc,QAAQ/jB,SAAS2lC,EAAOuoB,WAAa,IAAMvoB,EAAOwoB,iBAC3F/L,EAAWxR,OAAOmnB,GAGpB1P,EAASjG,EAAW5vB,SAAS,IAAMmT,EAAOuoB,aAIjB,SAAzBvoB,EAAOwlB,eAA6BxlB,EAAOkoB,eAAcloB,EAAOkoB,aAAexF,EAAOlhD,QAC1Fi5C,EAAOyN,aAAeh2C,KAAKo6C,KAAKrsC,WAAW+f,EAAOkoB,cAAgBloB,EAAOwlB,cAAe,KACxF/K,EAAOyN,cAAgBloB,EAAOioB,qBAE1BxN,EAAOyN,aAAexF,EAAOlhD,SAC/Bi5C,EAAOyN,aAAexF,EAAOlhD,QAG/B,IAAI6wD,EAAgB,GAChBC,EAAe,GACnB5P,EAAOpN,MAAK,SAAUtsC,EAAIzH,GACxB,IAAIqrD,EAAQ,EAAE5jD,GAEVzH,EAAQk5C,EAAOyN,cACjBoK,EAAa9qD,KAAKwB,GAGhBzH,EAAQmhD,EAAOlhD,QAAUD,GAASmhD,EAAOlhD,OAASi5C,EAAOyN,cAC3DmK,EAAc7qD,KAAKwB,GAGrB4jD,EAAMliD,KAAK,0BAA2BnJ,MAGxC,IAAK,IAAIijB,EAAK,EAAGA,EAAK8tC,EAAa9wD,OAAQgjB,GAAM,EAC/Ci4B,EAAWxR,OAAO,EAAEqnB,EAAa9tC,GAAI+tC,WAAU,IAAOl4D,SAAS2lC,EAAO4oB,sBAGxE,IAAK,IAAI+E,EAAM0E,EAAc7wD,OAAS,EAAGmsD,GAAO,EAAGA,GAAO,EACxDlR,EAAWxG,QAAQ,EAAEoc,EAAc1E,GAAK4E,WAAU,IAAOl4D,SAAS2lC,EAAO4oB,uBDhD3ElI,QELa,WACb,IAAIjG,EAASjhD,KACbihD,EAAO17C,KAAK,iBACZ,IAOIuyD,EAPA7O,EAAchI,EAAOgI,YACrBC,EAASjI,EAAOiI,OAChBwF,EAAezN,EAAOyN,aACtBlH,EAAiBvG,EAAOuG,eACxBD,EAAiBtG,EAAOsG,eACxBmB,EAAWzH,EAAOyH,SAClB3C,EAAM9E,EAAO+E,aAEjB/E,EAAOuG,gBAAiB,EACxBvG,EAAOsG,gBAAiB,EACxB,IACIjvC,GADiBowC,EAASO,GACHhI,EAAOtD,eAElC,GAAIsL,EAAcyF,EAChBoJ,EAAW5O,EAAOlhD,OAAwB,EAAf0mD,EAAmBzF,EAC9C6O,GAAYpJ,EACOzN,EAAO+H,QAAQ8O,EAAU,GAAG,GAAO,IAEzB,IAATx/C,GAClB2oC,EAAOsH,cAAcxC,GAAO9E,EAAOzvC,UAAYyvC,EAAOzvC,WAAa8G,QAEhE,GAAI2wC,GAAeC,EAAOlhD,OAAS0mD,EAAc,CAEtDoJ,GAAY5O,EAAOlhD,OAASihD,EAAcyF,EAC1CoJ,GAAYpJ,EAEQzN,EAAO+H,QAAQ8O,EAAU,GAAG,GAAO,IAEzB,IAATx/C,GACnB2oC,EAAOsH,cAAcxC,GAAO9E,EAAOzvC,UAAYyvC,EAAOzvC,WAAa8G,GAIvE2oC,EAAOuG,eAAiBA,EACxBvG,EAAOsG,eAAiBA,EACxBtG,EAAO17C,KAAK,YFhCZyzD,YGNa,WACb,IAAI/X,EAASjhD,KACTijD,EAAahC,EAAOgC,WACpBzc,EAASya,EAAOza,OAChB0iB,EAASjI,EAAOiI,OACpBjG,EAAW5vB,SAAS,IAAMmT,EAAOuoB,WAAa,IAAMvoB,EAAO4oB,oBAAsB,KAAO5oB,EAAOuoB,WAAa,IAAMvoB,EAAOwoB,iBAAiBxpD,SAC1I0jD,EAAOrQ,WAAW,6BlC0ClByO,WmC9Ca,CACbG,cCHa,SAAuBwR,GACpC,IAAIhY,EAASjhD,KACb,KAAIihD,EAAOnB,QAAQb,QAAUgC,EAAOza,OAAO4nB,eAAiBnN,EAAOza,OAAO8lB,eAAiBrL,EAAOiY,UAAYjY,EAAOza,OAAOugB,SAA5H,CACA,IAAIv3C,EAAKyxC,EAAOzxC,GAChBA,EAAGmB,MAAMwoD,OAAS,OAClB3pD,EAAGmB,MAAMwoD,OAASF,EAAS,mBAAqB,eAChDzpD,EAAGmB,MAAMwoD,OAASF,EAAS,eAAiB,YAC5CzpD,EAAGmB,MAAMwoD,OAASF,EAAS,WAAa,SDHxCG,gBEJa,WACb,IAAInY,EAASjhD,KAETihD,EAAOnB,QAAQb,OAASgC,EAAOza,OAAO8lB,eAAiBrL,EAAOiY,UAAYjY,EAAOza,OAAOugB,UAI5F9F,EAAOzxC,GAAGmB,MAAMwoD,OAAS,MrC0CzBE,asC5Ca,CACbC,YCNa,SAAqBpQ,GAClC,IAAIjI,EAASjhD,KACTijD,EAAahC,EAAOgC,WACpBzc,EAASya,EAAOza,OAMpB,GAJIA,EAAO4f,MACTnF,EAAO+X,cAGa,kBAAX9P,GAAuB,WAAYA,EAC5C,IAAK,IAAI9hD,EAAI,EAAGA,EAAI8hD,EAAOlhD,OAAQZ,GAAK,EAClC8hD,EAAO9hD,IAAI67C,EAAWxR,OAAOyX,EAAO9hD,SAG1C67C,EAAWxR,OAAOyX,GAGhB1iB,EAAO4f,MACTnF,EAAOyX,aAGHlyB,EAAO8Y,UAAY2B,EAAOnB,QAAQR,UACtC2B,EAAOiQ,UDfTqI,aEPa,SAAsBrQ,GACnC,IAAIjI,EAASjhD,KACTwmC,EAASya,EAAOza,OAChByc,EAAahC,EAAOgC,WACpBgG,EAAchI,EAAOgI,YAErBziB,EAAO4f,MACTnF,EAAO+X,cAGT,IAAI7C,EAAiBlN,EAAc,EAEnC,GAAsB,kBAAXC,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAI9hD,EAAI,EAAGA,EAAI8hD,EAAOlhD,OAAQZ,GAAK,EAClC8hD,EAAO9hD,IAAI67C,EAAWxG,QAAQyM,EAAO9hD,IAG3C+uD,EAAiBlN,EAAcC,EAAOlhD,YAEtCi7C,EAAWxG,QAAQyM,GAGjB1iB,EAAO4f,MACTnF,EAAOyX,aAGHlyB,EAAO8Y,UAAY2B,EAAOnB,QAAQR,UACtC2B,EAAOiQ,SAGTjQ,EAAO+H,QAAQmN,EAAgB,GAAG,IFtBlCqD,SGRa,SAAkBzxD,EAAOmhD,GACtC,IAAIjI,EAASjhD,KACTijD,EAAahC,EAAOgC,WACpBzc,EAASya,EAAOza,OAEhBizB,EADcxY,EAAOgI,YAGrBziB,EAAO4f,OACTqT,GAAqBxY,EAAOyN,aAC5BzN,EAAO+X,cACP/X,EAAOiI,OAASjG,EAAW5vB,SAAS,IAAMmT,EAAOuoB,aAGnD,IAAI2K,EAAazY,EAAOiI,OAAOlhD,OAE/B,GAAID,GAAS,EACXk5C,EAAOsY,aAAarQ,QAItB,GAAInhD,GAAS2xD,EACXzY,EAAOqY,YAAYpQ,OADrB,CAQA,IAHA,IAAIiN,EAAiBsD,EAAoB1xD,EAAQ0xD,EAAoB,EAAIA,EACrEE,EAAe,GAEVvyD,EAAIsyD,EAAa,EAAGtyD,GAAKW,EAAOX,GAAK,EAAG,CAC/C,IAAIwyD,EAAe3Y,EAAOiI,OAAO7M,GAAGj1C,GACpCwyD,EAAap0D,SACbm0D,EAAangB,QAAQogB,GAGvB,GAAsB,kBAAX1Q,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAIl+B,EAAK,EAAGA,EAAKk+B,EAAOlhD,OAAQgjB,GAAM,EACrCk+B,EAAOl+B,IAAKi4B,EAAWxR,OAAOyX,EAAOl+B,IAG3CmrC,EAAiBsD,EAAoB1xD,EAAQ0xD,EAAoBvQ,EAAOlhD,OAASyxD,OAEjFxW,EAAWxR,OAAOyX,GAGpB,IAAK,IAAIiL,EAAM,EAAGA,EAAMwF,EAAa3xD,OAAQmsD,GAAO,EAClDlR,EAAWxR,OAAOkoB,EAAaxF,IAG7B3tB,EAAO4f,MACTnF,EAAOyX,aAGHlyB,EAAO8Y,UAAY2B,EAAOnB,QAAQR,UACtC2B,EAAOiQ,SAGL1qB,EAAO4f,KACTnF,EAAO+H,QAAQmN,EAAiBlV,EAAOyN,aAAc,GAAG,GAExDzN,EAAO+H,QAAQmN,EAAgB,GAAG,KHlDpC0D,YITa,SAAqBC,GAClC,IAAI7Y,EAASjhD,KACTwmC,EAASya,EAAOza,OAChByc,EAAahC,EAAOgC,WAEpBwW,EADcxY,EAAOgI,YAGrBziB,EAAO4f,OACTqT,GAAqBxY,EAAOyN,aAC5BzN,EAAO+X,cACP/X,EAAOiI,OAASjG,EAAW5vB,SAAS,IAAMmT,EAAOuoB,aAGnD,IACIgL,EADA5D,EAAiBsD,EAGrB,GAA6B,kBAAlBK,GAA8B,WAAYA,EAAe,CAClE,IAAK,IAAI1yD,EAAI,EAAGA,EAAI0yD,EAAc9xD,OAAQZ,GAAK,EAC7C2yD,EAAgBD,EAAc1yD,GAC1B65C,EAAOiI,OAAO6Q,IAAgB9Y,EAAOiI,OAAO7M,GAAG0d,GAAev0D,SAC9Du0D,EAAgB5D,IAAgBA,GAAkB,GAGxDA,EAAiBz9C,KAAKmS,IAAIsrC,EAAgB,QAE1C4D,EAAgBD,EACZ7Y,EAAOiI,OAAO6Q,IAAgB9Y,EAAOiI,OAAO7M,GAAG0d,GAAev0D,SAC9Du0D,EAAgB5D,IAAgBA,GAAkB,GACtDA,EAAiBz9C,KAAKmS,IAAIsrC,EAAgB,GAGxC3vB,EAAO4f,MACTnF,EAAOyX,aAGHlyB,EAAO8Y,UAAY2B,EAAOnB,QAAQR,UACtC2B,EAAOiQ,SAGL1qB,EAAO4f,KACTnF,EAAO+H,QAAQmN,EAAiBlV,EAAOyN,aAAc,GAAG,GAExDzN,EAAO+H,QAAQmN,EAAgB,GAAG,IJhCpC6D,gBKVa,WAIb,IAHA,IACIF,EAAgB,GAEX1yD,EAAI,EAAGA,EAHHpH,KAGckpD,OAAOlhD,OAAQZ,GAAK,EAC7C0yD,EAAc9rD,KAAK5G,GAJRpH,KAON65D,YAAYC,K3C0CnB7uD,OHkFa,CACbgvD,aA1HF,WACE,IAAIhZ,EAASjhD,KACToX,EAAWm9B,IACX/N,EAASya,EAAOza,OAChB0zB,EAAcjZ,EAAOiZ,YACrB1qD,EAAKyxC,EAAOzxC,GACZm0C,EAAY1C,EAAO0C,UACnB1D,EAASgB,EAAOhB,OAChBH,EAAUmB,EAAOnB,QACrBmB,EAAOkC,aAAeA,EAAa3uC,KAAKysC,GACxCA,EAAO6E,YAAcA,EAAYtxC,KAAKysC,GACtCA,EAAOuH,WAAaA,EAAWh0C,KAAKysC,GAEhCza,EAAOugB,UACT9F,EAAO2L,SAAWA,EAASp4C,KAAKysC,IAGlCA,EAAOuL,QAAUA,EAAQh4C,KAAKysC,GAC9B,IAAIjxB,IAAYwW,EAAOygB,OAEvB,IAAKnH,EAAQb,OAASa,EAAQX,cAC5B3vC,EAAG1J,iBAAiBo0D,EAAY13B,MAAOye,EAAOkC,cAAc,GAC5D/rC,EAAStR,iBAAiBo0D,EAAYC,KAAMlZ,EAAO6E,YAAa91B,GAChE5Y,EAAStR,iBAAiBo0D,EAAYE,IAAKnZ,EAAOuH,YAAY,OACzD,CACL,GAAI1I,EAAQb,MAAO,CACjB,IAAIM,IAAwC,eAAtB2a,EAAY13B,QAA0Bsd,EAAQP,kBAAmB/Y,EAAOqoB,mBAAmB,CAC/Gt3C,SAAS,EACTyY,SAAS,GAEXxgB,EAAG1J,iBAAiBo0D,EAAY13B,MAAOye,EAAOkC,aAAc5D,GAC5D/vC,EAAG1J,iBAAiBo0D,EAAYC,KAAMlZ,EAAO6E,YAAahG,EAAQP,gBAAkB,CAClFhoC,SAAS,EACTyY,QAASA,GACPA,GACJxgB,EAAG1J,iBAAiBo0D,EAAYE,IAAKnZ,EAAOuH,WAAYjJ,GAEpD2a,EAAYG,QACd7qD,EAAG1J,iBAAiBo0D,EAAYG,OAAQpZ,EAAOuH,WAAYjJ,GAGxD0N,IACH71C,EAAStR,iBAAiB,aAAconD,GACxCD,GAAqB,IAIrBzmB,EAAO4nB,gBAAkBnO,EAAOC,MAAQD,EAAOE,SAAW3Z,EAAO4nB,gBAAkBtO,EAAQb,OAASgB,EAAOC,OAC7G1wC,EAAG1J,iBAAiB,YAAam7C,EAAOkC,cAAc,GACtD/rC,EAAStR,iBAAiB,YAAam7C,EAAO6E,YAAa91B,GAC3D5Y,EAAStR,iBAAiB,UAAWm7C,EAAOuH,YAAY,KAKxDhiB,EAAOimB,eAAiBjmB,EAAOkmB,2BACjCl9C,EAAG1J,iBAAiB,QAASm7C,EAAOuL,SAAS,GAG3ChmB,EAAOugB,SACTpD,EAAU79C,iBAAiB,SAAUm7C,EAAO2L,UAI1CpmB,EAAO6mB,qBACTpM,EAAOlJ,GAAGkI,EAAOC,KAAOD,EAAOE,QAAU,0CAA4C,wBAAyBxwB,GAAU,GAExHsxB,EAAOlJ,GAAG,iBAAkBpoB,GAAU,IAwDxC2qC,aApDF,WACE,IAAIrZ,EAASjhD,KACToX,EAAWm9B,IACX/N,EAASya,EAAOza,OAChB0zB,EAAcjZ,EAAOiZ,YACrB1qD,EAAKyxC,EAAOzxC,GACZm0C,EAAY1C,EAAO0C,UACnB1D,EAASgB,EAAOhB,OAChBH,EAAUmB,EAAOnB,QACjB9vB,IAAYwW,EAAOygB,OAEvB,IAAKnH,EAAQb,OAASa,EAAQX,cAC5B3vC,EAAGzJ,oBAAoBm0D,EAAY13B,MAAOye,EAAOkC,cAAc,GAC/D/rC,EAASrR,oBAAoBm0D,EAAYC,KAAMlZ,EAAO6E,YAAa91B,GACnE5Y,EAASrR,oBAAoBm0D,EAAYE,IAAKnZ,EAAOuH,YAAY,OAC5D,CACL,GAAI1I,EAAQb,MAAO,CACjB,IAAIM,IAAwC,iBAAtB2a,EAAY13B,QAA4Bsd,EAAQP,kBAAmB/Y,EAAOqoB,mBAAmB,CACjHt3C,SAAS,EACTyY,SAAS,GAEXxgB,EAAGzJ,oBAAoBm0D,EAAY13B,MAAOye,EAAOkC,aAAc5D,GAC/D/vC,EAAGzJ,oBAAoBm0D,EAAYC,KAAMlZ,EAAO6E,YAAa91B,GAC7DxgB,EAAGzJ,oBAAoBm0D,EAAYE,IAAKnZ,EAAOuH,WAAYjJ,GAEvD2a,EAAYG,QACd7qD,EAAGzJ,oBAAoBm0D,EAAYG,OAAQpZ,EAAOuH,WAAYjJ,IAI9D/Y,EAAO4nB,gBAAkBnO,EAAOC,MAAQD,EAAOE,SAAW3Z,EAAO4nB,gBAAkBtO,EAAQb,OAASgB,EAAOC,OAC7G1wC,EAAGzJ,oBAAoB,YAAak7C,EAAOkC,cAAc,GACzD/rC,EAASrR,oBAAoB,YAAak7C,EAAO6E,YAAa91B,GAC9D5Y,EAASrR,oBAAoB,UAAWk7C,EAAOuH,YAAY,KAK3DhiB,EAAOimB,eAAiBjmB,EAAOkmB,2BACjCl9C,EAAGzJ,oBAAoB,QAASk7C,EAAOuL,SAAS,GAG9ChmB,EAAOugB,SACTpD,EAAU59C,oBAAoB,SAAUk7C,EAAO2L,UAIjD3L,EAAOhH,IAAIgG,EAAOC,KAAOD,EAAOE,QAAU,0CAA4C,wBAAyBxwB,KG9E/Gk8B,Y4CjDa,CACbC,cCFa,WACb,IAAI7K,EAASjhD,KACTipD,EAAchI,EAAOgI,YACrB5H,EAAcJ,EAAOI,YACrBkZ,EAAuBtZ,EAAOyN,aAC9BA,OAAwC,IAAzB6L,EAAkC,EAAIA,EACrD/zB,EAASya,EAAOza,OAChBuc,EAAM9B,EAAO8B,IACb8I,EAAcrlB,EAAOqlB,YACzB,GAAKA,KAAeA,GAAmD,IAApCrrD,OAAOkW,KAAKm1C,GAAa7jD,QAA5D,CAEA,IAAIwyD,EAAavZ,EAAOwZ,cAAc5O,EAAa5K,EAAOza,OAAOknB,gBAAiBzM,EAAOzxC,IAEzF,GAAIgrD,GAAcvZ,EAAOyZ,oBAAsBF,EAAY,CACzD,IAAIG,EAAuBH,KAAc3O,EAAcA,EAAY2O,QAAcxzD,EAE7E2zD,GACF,CAAC,gBAAiB,eAAgB,iBAAkB,qBAAsB,mBAAmB3qD,SAAQ,SAAU4qD,GAC7G,IAAIC,EAAaF,EAAqBC,GACZ,qBAAfC,IAKTF,EAAqBC,GAHT,kBAAVA,GAA6C,SAAfC,GAAwC,SAAfA,EAEtC,kBAAVD,EACqBn0C,WAAWo0C,GAEXziD,SAASyiD,EAAY,IAJrB,WASpC,IAAIC,EAAmBH,GAAwB1Z,EAAO8Z,eAClDC,EAAcx0B,EAAOonB,gBAAkB,EACvCqN,EAAaH,EAAiBlN,gBAAkB,EAEhDoN,IAAgBC,GAClBlY,EAAI5hD,YAAYqlC,EAAOsoB,uBAAyB,YAActoB,EAAOsoB,uBAAyB,mBAC9F7N,EAAOia,yBACGF,GAAeC,IACzBlY,EAAIliD,SAAS2lC,EAAOsoB,uBAAyB,YAEA,WAAzCgM,EAAiBjN,qBACnB9K,EAAIliD,SAAS2lC,EAAOsoB,uBAAyB,mBAG/C7N,EAAOia,wBAGT,IAAIC,EAAmBL,EAAiB3N,WAAa2N,EAAiB3N,YAAc3mB,EAAO2mB,UACvFiO,EAAc50B,EAAO4f,OAAS0U,EAAiB9O,gBAAkBxlB,EAAOwlB,eAAiBmP,GAEzFA,GAAoB9Z,GACtBJ,EAAOoa,kBAGT,EAAOpa,EAAOza,OAAQs0B,GACtB,EAAO7Z,EAAQ,CACbyE,eAAgBzE,EAAOza,OAAOkf,eAC9B6B,eAAgBtG,EAAOza,OAAO+gB,eAC9BC,eAAgBvG,EAAOza,OAAOghB,iBAEhCvG,EAAOyZ,kBAAoBF,EAC3BvZ,EAAO17C,KAAK,oBAAqBu1D,GAE7BM,GAAe/Z,IACjBJ,EAAO+X,cACP/X,EAAOyX,aACPzX,EAAO8K,eACP9K,EAAO+H,QAAQC,EAAcyF,EAAezN,EAAOyN,aAAc,GAAG,IAGtEzN,EAAO17C,KAAK,aAAcu1D,MDpE5BL,cEHa,SAAuB5O,EAAayP,EAAMC,GAKvD,QAJa,IAATD,IACFA,EAAO,UAGJzP,IAAwB,cAATyP,GAAyBC,GAA7C,CACA,IAAIf,GAAa,EACbvjD,EAASo+B,IACTmmB,EAAwB,WAATF,EAAoBrkD,EAAO8tC,WAAawW,EAAYpK,YACnEsK,EAAyB,WAATH,EAAoBrkD,EAAO+kB,YAAcu/B,EAAYnK,aACrEvkB,EAASrsC,OAAOkW,KAAKm1C,GAAa7iC,KAAI,SAAU8jB,GAClD,GAAqB,kBAAVA,GAA6C,IAAvBA,EAAMnlC,QAAQ,KAAY,CACzD,IAAI+zD,EAAWj1C,WAAWqmB,EAAM6uB,OAAO,IAEvC,MAAO,CACLxrD,MAFUsrD,EAAgBC,EAG1B5uB,MAAOA,GAIX,MAAO,CACL38B,MAAO28B,EACPA,MAAOA,MAGXD,EAAO/O,MAAK,SAAUnf,EAAGrhB,GACvB,OAAO8a,SAASuG,EAAExO,MAAO,IAAMiI,SAAS9a,EAAE6S,MAAO,OAGnD,IAAK,IAAI/I,EAAI,EAAGA,EAAIylC,EAAO7kC,OAAQZ,GAAK,EAAG,CACzC,IAAIw0D,EAAY/uB,EAAOzlC,GACnB0lC,EAAQ8uB,EAAU9uB,MACV8uB,EAAUzrD,OAETqrD,IACXhB,EAAa1tB,GAIjB,OAAO0tB,GAAc,S9CYrBjO,cF7Ba,CACbA,cAxBF,WACE,IAAItL,EAASjhD,KACTwmC,EAASya,EAAOza,OAChBq1B,EAAY5a,EAAOiY,SACnB4C,EAAoB7a,EAAOiI,OAAOlhD,OAAS,GAAKw+B,EAAOunB,mBAAqBvnB,EAAOmnB,cAAgB1M,EAAOiI,OAAOlhD,OAAS,GAAKi5C,EAAOiI,OAAO,GAAG37B,YAAc0zB,EAAOiI,OAAOlhD,OAE5Kw+B,EAAOunB,oBAAsBvnB,EAAOwnB,mBAAqB8N,EAC3D7a,EAAOiY,SAAW4C,GAAqB7a,EAAOqQ,KAE9CrQ,EAAOiY,SAAsC,IAA3BjY,EAAOyH,SAAS1gD,OAGpCi5C,EAAOsG,gBAAkBtG,EAAOiY,SAChCjY,EAAOuG,gBAAkBvG,EAAOiY,SAE5B2C,IAAc5a,EAAOiY,UAAUjY,EAAO17C,KAAK07C,EAAOiY,SAAW,OAAS,UAEtE2C,GAAaA,IAAc5a,EAAOiY,WACpCjY,EAAOgL,OAAQ,EACXhL,EAAOyK,YAAYzK,EAAOyK,WAAWwF,YEkC3CjZ,Q+CnDa,CACb8jB,WCaa,WACb,IAjBsBvrB,EAASz1B,EAC3BihD,EAgBA/a,EAASjhD,KACTk4C,EAAa+I,EAAO/I,WACpB1R,EAASya,EAAOza,OAChBuf,EAAM9E,EAAO8E,IACbhD,EAAM9B,EAAO8B,IACb9C,EAASgB,EAAOhB,OAChBH,EAAUmB,EAAOnB,QAEjB3M,GAzBkB3C,EAyBQ,CAAC,cAAehK,EAAO2mB,UAAW,CAC9D,iBAAkBrN,EAAQX,gBAAkBW,EAAQb,OACnD,CACD,YAAazY,EAAOwhB,UACnB,CACD,WAAcxhB,EAAO8mB,YACpB,CACD,IAAOvH,GACN,CACD,SAAYvf,EAAOonB,gBAAkB,GACpC,CACD,kBAAmBpnB,EAAOonB,gBAAkB,GAAoC,WAA/BpnB,EAAOqnB,qBACvD,CACD,QAAW5N,EAAOE,SACjB,CACD,IAAOF,EAAOC,KACb,CACD,WAAY1Z,EAAOugB,UA1CUhsC,EA2C3ByrB,EAAOsoB,uBA1CPkN,EAAgB,GACpBxrB,EAAQxgC,SAAQ,SAAUi0B,GACJ,kBAATA,EACTzjC,OAAOkW,KAAKutB,GAAMj0B,SAAQ,SAAUkoC,GAC9BjU,EAAKiU,IACP8jB,EAAchuD,KAAK+M,EAASm9B,MAGP,kBAATjU,GAChB+3B,EAAchuD,KAAK+M,EAASkpB,MAGzB+3B,GA+BP9jB,EAAWlqC,KAAKnK,MAAMq0C,EAAY/E,GAClC4P,EAAIliD,SAAS,GAAG8V,OAAOuhC,GAAY9hC,KAAK,MACxC6qC,EAAOia,wBD1CPe,cEJa,WACb,IAAIhb,EAASjhD,KACT+iD,EAAM9B,EAAO8B,IACb7K,EAAa+I,EAAO/I,WACxB6K,EAAI5hD,YAAY+2C,EAAW9hC,KAAK,MAChC6qC,EAAOia,yBjDiDPgB,OkDpDa,CACbC,UCDa,SAAmBC,EAASvoB,EAAKwoB,EAAQC,EAAOC,EAAkBv5D,GAC/E,IACIw5D,EADAvlD,EAASo+B,IAGb,SAASlzB,IACHnf,GAAUA,IAGA,EAAEo5D,GAASjf,OAAO,WAAW,IAEzBif,EAAQK,UAAaF,EAsBvCp6C,IArBI0xB,IACF2oB,EAAQ,IAAIvlD,EAAOg+B,OACbynB,OAASv6C,EACfq6C,EAAMG,QAAUx6C,EAEZm6C,IACFE,EAAMF,MAAQA,GAGZD,IACFG,EAAMH,OAASA,GAGbxoB,IACF2oB,EAAM3oB,IAAMA,IAGd1xB,KD1BJosC,cEJa,WACb,IAAItN,EAASjhD,KAGb,SAASmiB,IACe,qBAAX8+B,GAAqC,OAAXA,GAAoBA,IAAUA,EAAOG,iBAC9Cp6C,IAAxBi6C,EAAO2b,eAA4B3b,EAAO2b,cAAgB,GAE1D3b,EAAO2b,eAAiB3b,EAAO4b,aAAa70D,SAC1Ci5C,EAAOza,OAAOgoB,qBAAqBvN,EAAOiQ,SAC9CjQ,EAAO17C,KAAK,iBARhB07C,EAAO4b,aAAe5b,EAAO8B,IAAI/S,KAAK,OAYtC,IAAK,IAAI5oC,EAAI,EAAGA,EAAI65C,EAAO4b,aAAa70D,OAAQZ,GAAK,EAAG,CACtD,IAAIg1D,EAAUnb,EAAO4b,aAAaz1D,GAClC65C,EAAOkb,UAAUC,EAASA,EAAQU,YAAcV,EAAQ/4D,aAAa,OAAQ+4D,EAAQC,QAAUD,EAAQ/4D,aAAa,UAAW+4D,EAAQE,OAASF,EAAQ/4D,aAAa,UAAU,EAAM8e,OpDwCrL46C,EAAmB,GAEnB,EAAsB,WACxB,SAASC,IAIP,IAHA,IAAIxtD,EACAg3B,EAEKoR,EAAO9zC,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAMm5B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ErzB,EAAKqzB,GAAQ/zC,UAAU+zC,GAczB,GAXoB,IAAhBrzB,EAAKxc,QAAgBwc,EAAK,GAAG7K,aAAwE,WAAzDnZ,OAAOY,UAAU0X,SAAS/Y,KAAKykB,EAAK,IAAI5c,MAAM,GAAI,GAChG4+B,EAAShiB,EAAK,IAEdhV,EAAKgV,EAAK,GACVgiB,EAAShiB,EAAK,IAGXgiB,IAAQA,EAAS,IACtBA,EAAS,EAAO,GAAIA,GAChBh3B,IAAOg3B,EAAOh3B,KAAIg3B,EAAOh3B,GAAKA,GAE9Bg3B,EAAOh3B,IAAM,EAAEg3B,EAAOh3B,IAAIxH,OAAS,EAAG,CACxC,IAAIi1D,EAAU,GAOd,OANA,EAAEz2B,EAAOh3B,IAAIssC,MAAK,SAAUyf,GAC1B,IAAI2B,EAAY,EAAO,GAAI12B,EAAQ,CACjCh3B,GAAI+rD,IAEN0B,EAAQjvD,KAAK,IAAIgvD,EAAOE,OAEnBD,EAIT,IAAIhc,EAASjhD,KACbihD,EAAOnB,QAAUd,IACjBiC,EAAOhB,OAASN,EAAU,CACxBngC,UAAWgnB,EAAOhnB,YAEpByhC,EAAOzD,QAAUqD,IACjBI,EAAOyP,gBAAkB,GACzBzP,EAAO6P,mBAAqB,GAEE,qBAAnB7P,EAAOiP,UAChBjP,EAAOiP,QAAU,IAGnB1vD,OAAOkW,KAAKuqC,EAAOiP,SAASlgD,SAAQ,SAAUmgD,GAC5C,IAAIjoD,EAAS+4C,EAAOiP,QAAQC,GAE5B,GAAIjoD,EAAOs+B,OAAQ,CACjB,IAAI22B,EAAkB38D,OAAOkW,KAAKxO,EAAOs+B,QAAQ,GAC7C8pB,EAAepoD,EAAOs+B,OAAO22B,GACjC,GAA4B,kBAAjB7M,GAA8C,OAAjBA,EAAuB,OAC/D,KAAM6M,KAAmB32B,MAAU,YAAa8pB,GAAe,QAE/B,IAA5B9pB,EAAO22B,KACT32B,EAAO22B,GAAmB,CACxBrL,SAAS,IAI0B,kBAA5BtrB,EAAO22B,IAAmC,YAAa32B,EAAO22B,KACvE32B,EAAO22B,GAAiBrL,SAAU,GAG/BtrB,EAAO22B,KAAkB32B,EAAO22B,GAAmB,CACtDrL,SAAS,QAKf,IAqDQ7S,EACAme,EAtDJC,EAAe,EAAO,GAAIv+C,GAqH9B,OApHAmiC,EAAO+O,UAAUqN,GAEjBpc,EAAOza,OAAS,EAAO,GAAI62B,EAAcN,EAAkBv2B,GAC3Dya,EAAO8Z,eAAiB,EAAO,GAAI9Z,EAAOza,QAC1Cya,EAAOqc,aAAe,EAAO,GAAI92B,GAE7Bya,EAAOza,QAAUya,EAAOza,OAAOuR,IACjCv3C,OAAOkW,KAAKuqC,EAAOza,OAAOuR,IAAI/nC,SAAQ,SAAUw1B,GAC9Cyb,EAAOlJ,GAAGvS,EAAWyb,EAAOza,OAAOuR,GAAGvS,OAItCyb,EAAOza,QAAUya,EAAOza,OAAOqqB,OACjC5P,EAAO4P,MAAM5P,EAAOza,OAAOqqB,OAI7B5P,EAAO3sC,EAAI,EAEX,EAAO2sC,EAAQ,CACbzxC,GAAIA,EAEJ0oC,WAAY,GAEZgR,OAAQ,IACRT,WAAY,GACZC,SAAU,GACViC,gBAAiB,GAEjB/D,aAAc,WACZ,MAAmC,eAA5B3F,EAAOza,OAAO2mB,WAEvB9G,WAAY,WACV,MAAmC,aAA5BpF,EAAOza,OAAO2mB,WAGvBlE,YAAa,EACb+M,UAAW,EAEX9J,aAAa,EACbD,OAAO,EAEPz6C,UAAW,EACXq7C,kBAAmB,EACnBG,SAAU,EACVxD,SAAU,EACVlG,WAAW,EAEXiE,eAAgBtG,EAAOza,OAAO+gB,eAC9BC,eAAgBvG,EAAOza,OAAOghB,eAE9B0S,aACMjb,EAAQ,CAAC,aAAc,YAAa,WAAY,eAChDme,EAAU,CAAC,YAAa,YAAa,WAErCnc,EAAOnB,QAAQX,gBACjBie,EAAU,CAAC,cAAe,cAAe,cAG3Cnc,EAAOsc,iBAAmB,CACxB/6B,MAAOyc,EAAM,GACbkb,KAAMlb,EAAM,GACZmb,IAAKnb,EAAM,GACXob,OAAQpb,EAAM,IAEhBgC,EAAOuc,mBAAqB,CAC1Bh7B,MAAO46B,EAAQ,GACfjD,KAAMiD,EAAQ,GACdhD,IAAKgD,EAAQ,IAERnc,EAAOnB,QAAQb,QAAUgC,EAAOza,OAAO4nB,cAAgBnN,EAAOsc,iBAAmBtc,EAAOuc,oBAEjGpa,gBAAiB,CACfU,eAAW98C,EACX+8C,aAAS/8C,EACTg+C,yBAAqBh+C,EACrBm+C,oBAAgBn+C,EAChBi+C,iBAAaj+C,EACb2gD,sBAAkB3gD,EAClBmgD,oBAAgBngD,EAChBu+C,wBAAoBv+C,EAEpBw+C,aAAc,wDAEduD,cAAe1uC,IACfojD,kBAAcz2D,EAEdqhD,WAAY,GACZhB,yBAAqBrgD,EACrB48C,kBAAc58C,EACdk+C,iBAAal+C,GAGfo9C,YAAY,EAEZsB,eAAgBzE,EAAOza,OAAOkf,eAC9BrC,QAAS,CACPoB,OAAQ,EACRC,OAAQ,EACRJ,SAAU,EACVE,SAAU,EACVlsC,KAAM,GAGRukD,aAAc,GACdD,aAAc,IAGhB3b,EAAOmP,aACPnP,EAAO17C,KAAK,WAER07C,EAAOza,OAAOxa,MAChBi1B,EAAOj1B,OAIFi1B,EAGT,IA9OoB9S,EAAauvB,EAAYC,EA8OzCC,EAASZ,EAAO57D,UA+UpB,OA7UAw8D,EAAO1C,qBAAuB,WAC5B,IAAIja,EAASjhD,KACb,GAAKihD,EAAOza,OAAOmpB,cAAiB1O,EAAOzxC,GAA3C,CACA,IAAIyoC,EAAUgJ,EAAOzxC,GAAGpK,UAAUnK,MAAM,KAAK89B,QAAO,SAAU3zB,GAC5D,OAAiD,IAA1CA,EAAUuC,QAAQ,qBAAyF,IAA5DvC,EAAUuC,QAAQs5C,EAAOza,OAAOsoB,2BAExF7N,EAAO17C,KAAK,oBAAqB0yC,EAAQ7hC,KAAK,QAGhDwnD,EAAOC,gBAAkB,SAAyBvJ,GAChD,IAAIrT,EAASjhD,KACb,OAAOs0D,EAAQlvD,UAAUnK,MAAM,KAAK89B,QAAO,SAAU3zB,GACnD,OAA6C,IAAtCA,EAAUuC,QAAQ,iBAAyE,IAAhDvC,EAAUuC,QAAQs5C,EAAOza,OAAOuoB,eACjF34C,KAAK,MAGVwnD,EAAO1H,kBAAoB,WACzB,IAAIjV,EAASjhD,KACb,GAAKihD,EAAOza,OAAOmpB,cAAiB1O,EAAOzxC,GAA3C,CACA,IAAIsuD,EAAU,GACd7c,EAAOiI,OAAOpN,MAAK,SAAUwY,GAC3B,IAAIpc,EAAa+I,EAAO4c,gBAAgBvJ,GACxCwJ,EAAQ9vD,KAAK,CACXsmD,QAASA,EACTpc,WAAYA,IAEd+I,EAAO17C,KAAK,cAAe+uD,EAASpc,MAEtC+I,EAAO17C,KAAK,gBAAiBu4D,KAG/BF,EAAOpF,qBAAuB,WAC5B,IAAIvX,EAASjhD,KACTwmC,EAASya,EAAOza,OAChB0iB,EAASjI,EAAOiI,OAChBT,EAAaxH,EAAOwH,WACpBiJ,EAAazQ,EAAOqQ,KACpBrI,EAAchI,EAAOgI,YACrB8U,EAAM,EAEV,GAAIv3B,EAAO6jB,eAAgB,CAIzB,IAHA,IACI2T,EADAxL,EAAYtJ,EAAOD,GAAagL,gBAG3B7sD,EAAI6hD,EAAc,EAAG7hD,EAAI8hD,EAAOlhD,OAAQZ,GAAK,EAChD8hD,EAAO9hD,KAAO42D,IAEhBD,GAAO,GADPvL,GAAatJ,EAAO9hD,GAAG6sD,iBAEPvC,IAAYsM,GAAY,IAI5C,IAAK,IAAIhzC,EAAKi+B,EAAc,EAAGj+B,GAAM,EAAGA,GAAM,EACxCk+B,EAAOl+B,KAAQgzC,IAEjBD,GAAO,GADPvL,GAAatJ,EAAOl+B,GAAIipC,iBAERvC,IAAYsM,GAAY,SAI5C,IAAK,IAAI7J,EAAMlL,EAAc,EAAGkL,EAAMjL,EAAOlhD,OAAQmsD,GAAO,EACtD1L,EAAW0L,GAAO1L,EAAWQ,GAAeyI,IAC9CqM,GAAO,GAKb,OAAOA,GAGTH,EAAO1M,OAAS,WACd,IAAIjQ,EAASjhD,KACb,GAAKihD,IAAUA,EAAOG,UAAtB,CACA,IAAIsH,EAAWzH,EAAOyH,SAClBliB,EAASya,EAAOza,OAEhBA,EAAOqlB,aACT5K,EAAO6K,gBAGT7K,EAAOmE,aACPnE,EAAO8K,eACP9K,EAAOqH,iBACPrH,EAAOmH,sBAYHnH,EAAOza,OAAOwhB,UAChBO,IAEItH,EAAOza,OAAO8mB,YAChBrM,EAAO+T,sBAG4B,SAAhC/T,EAAOza,OAAOwlB,eAA4B/K,EAAOza,OAAOwlB,cAAgB,IAAM/K,EAAOgL,QAAUhL,EAAOza,OAAO6jB,eACnGpJ,EAAO+H,QAAQ/H,EAAOiI,OAAOlhD,OAAS,EAAG,GAAG,GAAO,GAEnDi5C,EAAO+H,QAAQ/H,EAAOgI,YAAa,GAAG,GAAO,KAI1DV,IAIA/hB,EAAO8lB,eAAiB5D,IAAazH,EAAOyH,UAC9CzH,EAAOsL,gBAGTtL,EAAO17C,KAAK,UAhCZ,SAASgjD,IACP,IAAI0V,EAAiBhd,EAAO+E,cAAmC,EAApB/E,EAAOzvC,UAAiByvC,EAAOzvC,UACtEwlD,EAAet+C,KAAKkS,IAAIlS,KAAKmS,IAAIozC,EAAgBhd,EAAOqF,gBAAiBrF,EAAOsF,gBACpFtF,EAAOsH,aAAayO,GACpB/V,EAAOkH,oBACPlH,EAAOmH,wBA8BXwV,EAAOvC,gBAAkB,SAAyB6C,EAAcC,QAC3C,IAAfA,IACFA,GAAa,GAGf,IAAIld,EAASjhD,KACTo+D,EAAmBnd,EAAOza,OAAO2mB,UAOrC,OALK+Q,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAG9DF,IAAiBE,GAAqC,eAAjBF,GAAkD,aAAjBA,IAI1Ejd,EAAO8B,IAAI5hD,YAAY,GAAK8/C,EAAOza,OAAOsoB,uBAAyBsP,GAAkBv9D,SAAS,GAAKogD,EAAOza,OAAOsoB,uBAAyBoP,GAC1Ijd,EAAOia,uBACPja,EAAOza,OAAO2mB,UAAY+Q,EAC1Bjd,EAAOiI,OAAOpN,MAAK,SAAUwY,GACN,aAAjB4J,EACF5J,EAAQ3jD,MAAM6c,MAAQ,GAEtB8mC,EAAQ3jD,MAAMxB,OAAS,MAG3B8xC,EAAO17C,KAAK,mBACR44D,GAAYld,EAAOiQ,UAddjQ,GAkBX2c,EAAOS,MAAQ,SAAe7uD,GAC5B,IAAIyxC,EAASjhD,KACb,GAAIihD,EAAOqd,QAAS,OAAO,EAE3B,IASIrb,EATAF,EAAM,EAAEvzC,GAAMyxC,EAAOza,OAAOh3B,IAGhC,SAFAA,EAAKuzC,EAAI,MAMTvzC,EAAGyxC,OAASA,EAIRzxC,GAAMA,EAAGy0C,YAAcz0C,EAAGy0C,WAAW3/C,eACvC2+C,EAAa,EAAEzzC,EAAGy0C,WAAW3/C,cAAc,IAAM28C,EAAOza,OAAOipB,gBAEpDp8B,SAAW,SAAUlc,GAC9B,OAAO4rC,EAAI1vB,SAASlc,IAGtB8rC,EAAaF,EAAI1vB,SAAS,IAAM4tB,EAAOza,OAAOipB,cAGhD,EAAOxO,EAAQ,CACb8B,IAAKA,EACLvzC,GAAIA,EACJyzC,WAAYA,EACZU,UAAWV,EAAW,GACtBqb,SAAS,EAETvY,IAA8B,QAAzBv2C,EAAG8nD,IAAItlD,eAAoD,QAAzB+wC,EAAIpH,IAAI,aAC/CqK,aAA0C,eAA5B/E,EAAOza,OAAO2mB,YAAwD,QAAzB39C,EAAG8nD,IAAItlD,eAAoD,QAAzB+wC,EAAIpH,IAAI,cACrGgW,SAAwC,gBAA9B1O,EAAWtH,IAAI,cAEpB,IAGTiiB,EAAO5xC,KAAO,SAAcxc,GAC1B,IAAIyxC,EAASjhD,KACb,OAAIihD,EAAOI,cAEK,IADFJ,EAAOod,MAAM7uD,KAE3ByxC,EAAO17C,KAAK,cAER07C,EAAOza,OAAOqlB,aAChB5K,EAAO6K,gBAIT7K,EAAO8a,aAEH9a,EAAOza,OAAO4f,MAChBnF,EAAOyX,aAITzX,EAAOmE,aAEPnE,EAAO8K,eAEH9K,EAAOza,OAAO8lB,eAChBrL,EAAOsL,gBAILtL,EAAOza,OAAO8gB,YAChBrG,EAAOwG,gBAGLxG,EAAOza,OAAO+nB,eAChBtN,EAAOsN,gBAILtN,EAAOza,OAAO4f,KAChBnF,EAAO+H,QAAQ/H,EAAOza,OAAO4mB,aAAenM,EAAOyN,aAAc,EAAGzN,EAAOza,OAAOkpB,oBAElFzO,EAAO+H,QAAQ/H,EAAOza,OAAO4mB,aAAc,EAAGnM,EAAOza,OAAOkpB,oBAI9DzO,EAAOgZ,eAEPhZ,EAAOI,aAAc,EAErBJ,EAAO17C,KAAK,QACZ07C,EAAO17C,KAAK,cA/CmB07C,GAmDjC2c,EAAOv8D,QAAU,SAAiBk9D,EAAgBC,QACzB,IAAnBD,IACFA,GAAiB,QAGC,IAAhBC,IACFA,GAAc,GAGhB,IZpfEvhD,EYofEgkC,EAASjhD,KACTwmC,EAASya,EAAOza,OAChBuc,EAAM9B,EAAO8B,IACbE,EAAahC,EAAOgC,WACpBiG,EAASjI,EAAOiI,OAEpB,MAA6B,qBAAlBjI,EAAOza,QAA0Bya,EAAOG,YAInDH,EAAO17C,KAAK,iBAEZ07C,EAAOI,aAAc,EAErBJ,EAAOqZ,eAEH9zB,EAAO4f,MACTnF,EAAO+X,cAILwF,IACFvd,EAAOgb,gBACPlZ,EAAIlK,WAAW,SACfoK,EAAWpK,WAAW,SAElBqQ,GAAUA,EAAOlhD,QACnBkhD,EAAO/nD,YAAY,CAACqlC,EAAO2oB,kBAAmB3oB,EAAOyoB,iBAAkBzoB,EAAO6oB,eAAgB7oB,EAAO+oB,gBAAgBn5C,KAAK,MAAMyiC,WAAW,SAASA,WAAW,4BAInKoI,EAAO17C,KAAK,WAEZ/E,OAAOkW,KAAKuqC,EAAOyP,iBAAiB1gD,SAAQ,SAAUw1B,GACpDyb,EAAOhH,IAAIzU,OAGU,IAAnB+4B,IACFtd,EAAO8B,IAAI,GAAG9B,OAAS,KZ1hBvBhkC,EY2hBYgkC,EZ1hBhBzgD,OAAOkW,KAAKuG,GAAQjN,SAAQ,SAAUrN,GACpC,IACEsa,EAAOta,GAAO,KACd,MAAO+X,IAGT,WACSuC,EAAOta,GACd,MAAO+X,SYqhBTumC,EAAOG,WAAY,GAnCV,MAuCX4b,EAAOyB,eAAiB,SAAwBC,GAC9C,EAAO3B,EAAkB2B,IAG3B1B,EAAO2B,cAAgB,SAAuBz2D,GACvC80D,EAAO57D,UAAU8uD,UAAS8M,EAAO57D,UAAU8uD,QAAU,IAC1D,IAAIryC,EAAO3V,EAAO2V,MAAQrd,OAAOkW,KAAKsmD,EAAO57D,UAAU8uD,SAASloD,OAAS,IAAMqS,IAC/E2iD,EAAO57D,UAAU8uD,QAAQryC,GAAQ3V,GAGnC80D,EAAO4B,IAAM,SAAa12D,GACxB,OAAIuW,MAAMisB,QAAQxiC,IAChBA,EAAO8H,SAAQ,SAAUvT,GACvB,OAAOugE,EAAO2B,cAAcliE,MAEvBugE,IAGTA,EAAO2B,cAAcz2D,GACd80D,IA9iBW7uB,EAijBP6uB,EAjjBgCW,EAijBlB,CAAC,CAC1Bh7D,IAAK,mBACLjC,IAAK,WACH,OAAOq8D,IAER,CACDp6D,IAAK,WACLjC,IAAK,WACH,OAAOoe,MAzjBsB4+C,EAijBZ,OAhjBL9N,EAAkBzhB,EAAY/sC,UAAWs8D,GACrDC,GAAa/N,EAAkBzhB,EAAawvB,GA2jBzCX,EA7gBiB,GAghB1Bx8D,OAAOkW,KAAKo5C,GAAY9/C,SAAQ,SAAU6uD,GACxCr+D,OAAOkW,KAAKo5C,EAAW+O,IAAiB7uD,SAAQ,SAAU8uD,GACxD,EAAO19D,UAAU09D,GAAehP,EAAW+O,GAAgBC,SAG/D,EAAOF,IAAI,CAAC,EAAQ,IACL,O,qBqDhlBf,IAAIxpB,EAAK,EACL2pB,EAAUrmD,KAAKsmD,SAEnB92D,EAAOC,QAAU,SAAUxF,GACzB,MAAO,UAAY8D,YAAeO,IAARrE,EAAoB,GAAKA,GAAO,QAAUyyC,EAAK2pB,GAASjmD,SAAS,M,oCCF7F,SAASmmD,EAAe/1C,EAAK9hB,GAAK,OAUlC,SAAyB8hB,GAAO,GAAIzK,MAAMisB,QAAQxhB,GAAM,OAAOA,EAVtBg2C,CAAgBh2C,IAQzD,SAA+BA,EAAK9hB,GAAK,GAAsB,qBAAX6O,UAA4BA,OAAO46B,YAAYrwC,OAAO0oB,IAAO,OAAQ,IAAIi2C,EAAO,GAAQC,GAAK,EAAUz2C,GAAK,EAAW02C,OAAKr4D,EAAW,IAAM,IAAK,IAAiCs4D,EAA7Bt0C,EAAK9B,EAAIjT,OAAO46B,cAAmBuuB,GAAME,EAAKt0C,EAAG8lB,QAAQC,QAAoBouB,EAAKnxD,KAAKsxD,EAAGnvD,QAAY/I,GAAK+3D,EAAKn3D,SAAWZ,GAA3Dg4D,GAAK,IAAoE,MAAO/nD,GAAOsR,GAAK,EAAM02C,EAAKhoD,EAAO,QAAU,IAAW+nD,GAAsB,MAAhBp0C,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIrC,EAAI,MAAM02C,GAAQ,OAAOF,EARjaI,CAAsBr2C,EAAK9hB,IAI5F,SAAqCouC,EAAGgqB,GAAU,IAAKhqB,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOiqB,EAAkBjqB,EAAGgqB,GAAS,IAAIjuD,EAAI/Q,OAAOY,UAAU0X,SAAS/Y,KAAKy1C,GAAG5tC,MAAM,GAAI,GAAc,WAAN2J,GAAkBikC,EAAE77B,cAAapI,EAAIikC,EAAE77B,YAAYkE,MAAM,GAAU,QAANtM,GAAqB,QAANA,EAAa,OAAOkN,MAAMyZ,KAAKsd,GAAI,GAAU,cAANjkC,GAAqB,2CAA2CrT,KAAKqT,GAAI,OAAOkuD,EAAkBjqB,EAAGgqB,GAJpTE,CAA4Bx2C,EAAK9hB,IAEnI,WAA8B,MAAM,IAAI6jB,UAAU,6IAFuF00C,GAMzI,SAASF,EAAkBv2C,EAAK6d,IAAkB,MAAPA,GAAeA,EAAM7d,EAAIlhB,UAAQ++B,EAAM7d,EAAIlhB,QAAQ,IAAK,IAAIZ,EAAI,EAAGujC,EAAO,IAAIlsB,MAAMsoB,GAAM3/B,EAAI2/B,EAAK3/B,IAAKujC,EAAKvjC,GAAK8hB,EAAI9hB,GAAI,OAAOujC,EAM5K,MAAMi1B,EAAkB,EAAQ,QAE1BC,EAAkB,EAAQ,QAE1BC,EAAe,EAAQ,QA0H7B,SAASC,EAA6B5vD,GACpC,GAAqB,kBAAVA,GAAuC,IAAjBA,EAAMnI,OACrC,MAAM,IAAIijB,UAAU,wDAIxB,SAAStQ,EAAOxK,EAAOgH,GACrB,OAAIA,EAAQwD,OACHxD,EAAQ6oD,OAASJ,EAAgBzvD,GAASyK,mBAAmBzK,GAG/DA,EAGT,SAASqK,EAAOrK,EAAOgH,GACrB,OAAIA,EAAQqD,OACHqlD,EAAgB1vD,GAGlBA,EAGT,SAAS8vD,EAAWn4D,GAClB,OAAI2W,MAAMisB,QAAQ5iC,GACTA,EAAMg2B,OAGM,kBAAVh2B,EACFm4D,EAAWz/D,OAAOkW,KAAK5O,IAAQg2B,MAAK,CAACnf,EAAGrhB,IAAM+zD,OAAO1yC,GAAK0yC,OAAO/zD,KAAI0rB,KAAIrmB,GAAOmF,EAAMnF,KAGxFmF,EAGT,SAASo4D,EAAWp4D,GAClB,MAAMq4D,EAAYr4D,EAAMH,QAAQ,KAMhC,OAJmB,IAAfw4D,IACFr4D,EAAQA,EAAMF,MAAM,EAAGu4D,IAGlBr4D,EAcT,SAASs4D,EAAQt4D,GAEf,MAAMu4D,GADNv4D,EAAQo4D,EAAWp4D,IACMH,QAAQ,KAEjC,OAAoB,IAAhB04D,EACK,GAGFv4D,EAAMF,MAAMy4D,EAAa,GAGlC,SAASC,EAAWnwD,EAAOgH,GAOzB,OANIA,EAAQopD,eAAiBlP,OAAOl5C,MAAMk5C,OAAOlhD,KAA4B,kBAAVA,GAAuC,KAAjBA,EAAM3M,OAC7F2M,EAAQkhD,OAAOlhD,IACNgH,EAAQqpD,eAA2B,OAAVrwD,GAA2C,SAAxBA,EAAM6B,eAAoD,UAAxB7B,EAAM6B,gBAC7F7B,EAAgC,SAAxBA,EAAM6B,eAGT7B,EAGT,SAAS+K,EAAMpT,EAAOqP,GASpB4oD,GARA5oD,EAAU3W,OAAOkQ,OAAO,CACtB8J,QAAQ,EACRsjB,MAAM,EACN2iC,YAAa,OACbC,qBAAsB,IACtBH,cAAc,EACdC,eAAe,GACdrpD,IACkCupD,sBACrC,MAAMC,EAjJR,SAA8BxpD,GAC5B,IAAIxF,EAEJ,OAAQwF,EAAQspD,aACd,IAAK,QACH,MAAO,CAAC99D,EAAKwN,EAAO69B,KAClBr8B,EAAS,aAAapL,KAAK5D,GAC3BA,EAAMA,EAAI7E,QAAQ,WAAY,IAEzB6T,QAKoB3K,IAArBgnC,EAAYrrC,KACdqrC,EAAYrrC,GAAO,IAGrBqrC,EAAYrrC,GAAKgP,EAAO,IAAMxB,GAR5B69B,EAAYrrC,GAAOwN,GAWzB,IAAK,UACH,MAAO,CAACxN,EAAKwN,EAAO69B,KAClBr8B,EAAS,UAAUpL,KAAK5D,GACxBA,EAAMA,EAAI7E,QAAQ,QAAS,IAEtB6T,OAKoB3K,IAArBgnC,EAAYrrC,GAKhBqrC,EAAYrrC,GAAO,GAAGgU,OAAOq3B,EAAYrrC,GAAMwN,GAJ7C69B,EAAYrrC,GAAO,CAACwN,GALpB69B,EAAYrrC,GAAOwN,GAYzB,IAAK,QACL,IAAK,YACH,MAAO,CAACxN,EAAKwN,EAAO69B,KAClB,MACMpO,EAD2B,kBAAVzvB,GAAsBA,EAAMlV,MAAM,IAAI0M,QAAQwP,EAAQupD,uBAAyB,EAC3EvwD,EAAMlV,MAAMkc,EAAQupD,sBAAsB13C,KAAIib,GAAQzpB,EAAOypB,EAAM9sB,KAAsB,OAAVhH,EAAiBA,EAAQqK,EAAOrK,EAAOgH,GACjJ62B,EAAYrrC,GAAOi9B,GAGvB,QACE,MAAO,CAACj9B,EAAKwN,EAAO69B,UACOhnC,IAArBgnC,EAAYrrC,GAKhBqrC,EAAYrrC,GAAO,GAAGgU,OAAOq3B,EAAYrrC,GAAMwN,GAJ7C69B,EAAYrrC,GAAOwN,IA+FTywD,CAAqBzpD,GAEjC0pD,EAAMrgE,OAAO4lC,OAAO,MAE1B,GAAqB,kBAAVt+B,EACT,OAAO+4D,EAKT,KAFA/4D,EAAQA,EAAMtE,OAAO1F,QAAQ,SAAU,KAGrC,OAAO+iE,EAGT,IAAK,MAAMjG,KAAS9yD,EAAM7M,MAAM,KAAM,CACpC,IACI6lE,EAAiB7B,EADDa,EAAa3oD,EAAQqD,OAASogD,EAAM98D,QAAQ,MAAO,KAAO88D,EAAO,KAClC,GAC/Cj4D,EAAMm+D,EAAe,GACrB3wD,EAAQ2wD,EAAe,GAI3B3wD,OAAkBnJ,IAAVmJ,EAAsB,KAAO,CAAC,QAAS,aAAak6B,SAASlzB,EAAQspD,aAAetwD,EAAQqK,EAAOrK,EAAOgH,GAClHwpD,EAAUnmD,EAAO7X,EAAKwU,GAAUhH,EAAO0wD,GAGzC,IAAK,MAAMl+D,KAAOnC,OAAOkW,KAAKmqD,GAAM,CAClC,MAAM1wD,EAAQ0wD,EAAIl+D,GAElB,GAAqB,kBAAVwN,GAAgC,OAAVA,EAC/B,IAAK,MAAMuO,KAAKle,OAAOkW,KAAKvG,GAC1BA,EAAMuO,GAAK4hD,EAAWnwD,EAAMuO,GAAIvH,QAGlC0pD,EAAIl+D,GAAO29D,EAAWnwD,EAAOgH,GAIjC,OAAqB,IAAjBA,EAAQ2mB,KACH+iC,IAGgB,IAAjB1pD,EAAQ2mB,KAAgBt9B,OAAOkW,KAAKmqD,GAAK/iC,OAASt9B,OAAOkW,KAAKmqD,GAAK/iC,KAAK3mB,EAAQ2mB,OAAOxC,QAAO,CAAC3pB,EAAQhP,KAC7G,MAAMwN,EAAQ0wD,EAAIl+D,GASlB,OAPIqD,QAAQmK,IAA2B,kBAAVA,IAAuBsO,MAAMisB,QAAQv6B,GAEhEwB,EAAOhP,GAAOs9D,EAAW9vD,GAEzBwB,EAAOhP,GAAOwN,EAGTwB,IACNnR,OAAO4lC,OAAO,OAGnBj+B,EAAQi4D,QAAUA,EAClBj4D,EAAQ+S,MAAQA,EAEhB/S,EAAQ0S,UAAY,CAACoC,EAAQ9F,KAC3B,IAAK8F,EACH,MAAO,GAST8iD,GANA5oD,EAAU3W,OAAOkQ,OAAO,CACtBiK,QAAQ,EACRqlD,QAAQ,EACRS,YAAa,OACbC,qBAAsB,KACrBvpD,IACkCupD,sBAErC,MAAMK,EAAep+D,IAAOwU,SAAQ6pD,WAtRO,QAAnB7wD,EAsR0C8M,EAAOta,UAtRZqE,IAAVmJ,IAsR+BgH,EAAQ8pD,iBAAmC,KAAhBhkD,EAAOta,GAtR5FwN,OAwRlBwwD,EAtRR,SAA+BxpD,GAC7B,OAAQA,EAAQspD,aACd,IAAK,QACH,OAAO99D,GAAO,CAACgP,EAAQxB,KACrB,MAAMpI,EAAQ4J,EAAO3J,OAErB,YAAchB,IAAVmJ,GAAuBgH,EAAQ6pD,UAAsB,OAAV7wD,GAAkBgH,EAAQ8pD,iBAA6B,KAAV9wD,EACnFwB,EAGK,OAAVxB,EACK,IAAIwB,EAAQ,CAACgJ,EAAOhY,EAAKwU,GAAU,IAAKpP,EAAO,KAAKqO,KAAK,KAG3D,IAAIzE,EAAQ,CAACgJ,EAAOhY,EAAKwU,GAAU,IAAKwD,EAAO5S,EAAOoP,GAAU,KAAMwD,EAAOxK,EAAOgH,IAAUf,KAAK,MAG9G,IAAK,UACH,OAAOzT,GAAO,CAACgP,EAAQxB,SACPnJ,IAAVmJ,GAAuBgH,EAAQ6pD,UAAsB,OAAV7wD,GAAkBgH,EAAQ8pD,iBAA6B,KAAV9wD,EACnFwB,EAGK,OAAVxB,EACK,IAAIwB,EAAQ,CAACgJ,EAAOhY,EAAKwU,GAAU,MAAMf,KAAK,KAGhD,IAAIzE,EAAQ,CAACgJ,EAAOhY,EAAKwU,GAAU,MAAOwD,EAAOxK,EAAOgH,IAAUf,KAAK,KAGlF,IAAK,QACL,IAAK,YACH,OAAOzT,GAAO,CAACgP,EAAQxB,IACP,OAAVA,QAA4BnJ,IAAVmJ,GAAwC,IAAjBA,EAAMnI,OAC1C2J,EAGa,IAAlBA,EAAO3J,OACF,CAAC,CAAC2S,EAAOhY,EAAKwU,GAAU,IAAKwD,EAAOxK,EAAOgH,IAAUf,KAAK,KAG5D,CAAC,CAACzE,EAAQgJ,EAAOxK,EAAOgH,IAAUf,KAAKe,EAAQupD,uBAG1D,QACE,OAAO/9D,GAAO,CAACgP,EAAQxB,SACPnJ,IAAVmJ,GAAuBgH,EAAQ6pD,UAAsB,OAAV7wD,GAAkBgH,EAAQ8pD,iBAA6B,KAAV9wD,EACnFwB,EAGK,OAAVxB,EACK,IAAIwB,EAAQgJ,EAAOhY,EAAKwU,IAG1B,IAAIxF,EAAQ,CAACgJ,EAAOhY,EAAKwU,GAAU,IAAKwD,EAAOxK,EAAOgH,IAAUf,KAAK,MAgOhE8qD,CAAsB/pD,GAClCgqD,EAAa,GAEnB,IAAK,MAAMx+D,KAAOnC,OAAOkW,KAAKuG,GACvB8jD,EAAap+D,KAChBw+D,EAAWx+D,GAAOsa,EAAOta,IAI7B,MAAM+T,EAAOlW,OAAOkW,KAAKyqD,GAMzB,OAJqB,IAAjBhqD,EAAQ2mB,MACVpnB,EAAKonB,KAAK3mB,EAAQ2mB,MAGbpnB,EAAKsS,KAAIrmB,IACd,MAAMwN,EAAQ8M,EAAOta,GAErB,YAAcqE,IAAVmJ,EACK,GAGK,OAAVA,EACKwK,EAAOhY,EAAKwU,GAGjBsH,MAAMisB,QAAQv6B,GACTA,EAAMmrB,OAAOqlC,EAAUh+D,GAAM,IAAIyT,KAAK,KAGxCuE,EAAOhY,EAAKwU,GAAW,IAAMwD,EAAOxK,EAAOgH,MACjD4hB,QAAOrlB,GAAKA,EAAE1L,OAAS,IAAGoO,KAAK,MAGpCjO,EAAQi5D,SAAW,CAACt5D,EAAOqP,KACzBA,EAAU3W,OAAOkQ,OAAO,CACtB8J,QAAQ,GACPrD,GAEH,MACMkqD,EAAiBpC,EADAa,EAAah4D,EAAO,KACW,GAChDq5B,EAAMkgC,EAAe,GACrB5uB,EAAO4uB,EAAe,GAE5B,OAAO7gE,OAAOkQ,OAAO,CACnBywB,IAAKA,EAAIlmC,MAAM,KAAK,IAAM,GAC1BkgB,MAAOD,EAAMklD,EAAQt4D,GAAQqP,IAC5BA,GAAWA,EAAQmqD,yBAA2B7uB,EAAO,CACtD8uB,mBAAoB/mD,EAAOi4B,EAAMt7B,IAC/B,KAGNhP,EAAQq5D,aAAe,CAAC15D,EAAOqP,KAC7BA,EAAU3W,OAAOkQ,OAAO,CACtBiK,QAAQ,EACRqlD,QAAQ,GACP7oD,GACH,MAAMgqB,EAAM++B,EAAWp4D,EAAMq5B,KAAKlmC,MAAM,KAAK,IAAM,GAC7CwmE,EAAet5D,EAAQi4D,QAAQt4D,EAAMq5B,KACrCugC,EAAqBv5D,EAAQ+S,MAAMumD,EAAc,CACrD3jC,MAAM,IAEF3iB,EAAQ3a,OAAOkQ,OAAOgxD,EAAoB55D,EAAMqT,OACtD,IAAIwmD,EAAcx5D,EAAQ0S,UAAUM,EAAOhE,GAEvCwqD,IACFA,EAAc,IAAIA,GAGpB,IAAIlvB,EAzLN,SAAiBtR,GACf,IAAIsR,EAAO,GACX,MAAM0tB,EAAYh/B,EAAIx5B,QAAQ,KAM9B,OAJmB,IAAfw4D,IACF1tB,EAAOtR,EAAIv5B,MAAMu4D,IAGZ1tB,EAiLImvB,CAAQ95D,EAAMq5B,KAMzB,OAJIr5B,EAAMy5D,qBACR9uB,EAAO,IAAI93B,EAAO7S,EAAMy5D,mBAAoBpqD,IAGvC,GAAGgqB,IAAMwgC,IAAclvB,M,uBCvXhC,IAAItgC,EAAa,EAAQ,QACrB0vD,EAA4B,EAAQ,QACpCpsD,EAA8B,EAAQ,QACtCsE,EAAW,EAAQ,QAGvB7R,EAAOC,QAAUgK,EAAW,UAAW,YAAc,SAAiB4C,GACpE,IAAI2B,EAAOmrD,EAA0BrrD,EAAEuD,EAAShF,IAC5CwB,EAAwBd,EAA4Be,EACxD,OAAOD,EAAwBG,EAAKC,OAAOJ,EAAsBxB,IAAO2B,I,qBCP1ExO,EAAOC,QAAU,SAAU4M,GACzB,QAAU/N,GAAN+N,EAAiB,MAAMkW,UAAU,wBAA0BlW,GAC/D,OAAOA,I,wBCMA,SAAUja,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,kGAA6FC,MAAM,KAC3GC,YAAa,yDAAoDD,MAAM,KACvEE,SAAU,oEAAqDF,MAAM,KACrEG,cAAe,0CAAgCH,MAAM,KACrDI,YAAa,4BAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,4BACJC,IAAK,kCACLC,KAAM,2CACNkmE,KAAM,uCAER74D,cAAe,cACfC,KAAM,SAAUpB,GACd,MAAyC,MAAlCA,EAAMiK,OAAO,GAAGC,eAEzB7I,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH3I,EAAU,SAAW,SAErBA,EAAU,SAAW,UAGhCzN,SAAU,CACRC,QAAS,sBACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,sBACTC,SAAU,2BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,UACRC,KAAM,gBACNC,EAAG,kBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,WAEHC,GAAI,WACJC,EAAG,aACHC,GAAI,aACJC,EAAG,WACHC,GAAI,YAENC,uBAAwB,WACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA5DuFC,CAAQ,EAAQ,U,wBCAzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gGAAgGC,MAAM,KAC9GC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,0EAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,WACP,MAAO,WAAakE,KAAKiS,QAAU,EAAI,OAA0B,IAAjBjS,KAAKiS,QAAgB,IAAM,OAAS,OAEtFlW,QAAS,WACP,MAAO,aAAeiE,KAAKiS,QAAU,EAAI,OAA0B,IAAjBjS,KAAKiS,QAAgB,IAAM,OAAS,OAExFjW,SAAU,WACR,MAAO,WAAagE,KAAKiS,QAAU,EAAI,OAA0B,IAAjBjS,KAAKiS,QAAgB,IAAM,OAAS,OAEtFhW,QAAS,WACP,MAAO,WAAa+D,KAAKiS,QAAU,EAAI,OAA0B,IAAjBjS,KAAKiS,QAAgB,IAAM,OAAS,OAEtF/V,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACH,MAAO,uBAAyB1J,KAAKiS,QAAU,EAAI,OAA0B,IAAjBjS,KAAKiS,QAAgB,IAAM,OAAS,MAElG,QACE,MAAO,uBAAyBjS,KAAKiS,QAAU,EAAI,OAA0B,IAAjBjS,KAAKiS,QAAgB,IAAM,OAAS,QAGtG9V,SAAU,KAEZC,aAAc,CACZC,OAAQ,SACRC,KAAM,QACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAI,YACJmY,EAAG,gBACHC,GAAI,eACJnY,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAjEuFC,CAAQ,EAAQ,U,qBCRjH,IACK0gB,EACJ,mBADIA,EAaJnH,OAbU8qD,QAAQ3gE,WACK66C,UAAY79B,EAAE69B,QAAU79B,EAAE+9B,mBAAqB/9B,EAAE4jD,oBAAsB5jD,EAAE89B,uBAAyB,SAAUxhC,GACjI,IAAK,IAAI0D,GAAKpe,KAAKoX,UAAYpX,KAAKiiE,eAAepyD,iBAAiB6K,GAAI86B,EAAI,EAAGp3B,EAAEo3B,IAAMp3B,EAAEo3B,KAAOx1C,QAASw1C,EAEzG,OAAOxvC,QAAQoY,EAAEo3B,MACf,mBAAqBp3B,EAAEi/B,UAAYj/B,EAAEi/B,QAAU,SAAU3iC,GAC3D,IAAK,IAAI0D,EAAIpe,KAAMoe,GAAK,IAAMA,EAAE6T,UAAW,CACzC,GAAI7T,EAAE69B,QAAQvhC,GAAI,OAAO0D,EACzBA,EAAIA,EAAEgH,WAGR,OAAO,Q,wBCJF,SAAUtqB,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wFAAqFC,MAAM,KACnGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,wFAA4EF,MAAM,KAC5FG,cAAe,0CAA8BH,MAAM,KACnDI,YAAa,gCAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,uBACTC,SAAU,gBACVC,QAAS,wBACTC,SAAU,8BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,kBACNC,EAAG,eACHC,GAAI,cACJC,EAAG,eACHC,GAAI,cACJC,EAAG,cACHC,GAAI,cACJC,EAAG,YACHC,GAAI,WACJC,EAAG,oBACHC,GAAI,mBACJC,EAAG,aACHC,GAAI,YAENC,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA/CuFC,CAAQ,EAAQ,U,wBCPlH,qBAKA,cAAiBqC,KAAKC,MAAO,WAE3B,MAAQiX,OAAOirD,MAAQjrD,OAAOirD,IAAU,WACtC,SAAS9jD,IACPpe,KAAK4U,QAGP,OAAOwJ,EAAEhd,UAAUwT,MAAQ,WACzB,OAAO5U,KAAK+xC,OAAS,IACpB3zB,EAAEhd,UAAUkZ,IAAM,SAAU8D,GAC7B,OAAQ,IAAMpe,KAAK+xC,OAAOpqC,QAAQyW,IACjCA,EAAEhd,UAAUkE,IAAM,SAAU8Y,GAC7B,OAAOpe,KAAKsa,IAAI8D,IAAMpe,KAAK+xC,OAAO/jC,KAAKoQ,GAAIpe,MAC1Coe,EAAEhd,UAAkB,OAAI,SAAUgd,GACnC,IAAI1D,EACJ,OAAQ,KAAOA,EAAI1a,KAAK+xC,OAAOpqC,QAAQyW,MAAYpe,KAAK+xC,OAAOtb,OAAO/b,EAAG,IAAI,IAC5E0D,EAAEhd,UAAU4O,QAAU,WACvB,IAAIoO,EACJ,OAAQA,EAAIpe,KAAK+xC,QAAQ/hC,QAAQnM,MAAMua,EAAGta,YACzCsa,EAjBmC,KAmBxCre,KAAKC,MAAO,SAAUoe,GACtB,SAAS1D,KAQT,SAAStT,EAAEgX,GACT,GAAI,iBAAmBpe,KAAM,MAAM,IAAIirB,UAAU,wCACjD,GAAI,mBAAqB7M,EAAG,MAAM,IAAI6M,UAAU,kBAChDjrB,KAAKmiE,OAAS,EAAGniE,KAAKoiE,UAAW,EAAIpiE,KAAKqiE,YAAS,EAAQriE,KAAKsiE,WAAa,GAAIr5C,EAAE7K,EAAGpe,MAGxF,SAASw1C,EAAEp3B,EAAG1D,GACZ,KAAO,IAAM0D,EAAE+jD,QAAS/jD,EAAIA,EAAEikD,OAE9B,OAAO,IAAMjkD,EAAE+jD,YAAc/jD,EAAEkkD,WAAWt0D,KAAK0M,IAAM0D,EAAEgkD,UAAW,OAASzlE,GAAE,WAC3E,IAAI4U,EAAI,IAAM6M,EAAE+jD,OAASznD,EAAE6nD,YAAc7nD,EAAE8nD,WAC3C,GAAI,OAASjxD,EAAb,CACA,IAAInK,EAEJ,IACEA,EAAImK,EAAE6M,EAAEikD,QACR,MAAO7sB,GACP,YAAYj5C,EAAEme,EAAE+nD,QAASjtB,GAG3Bh3B,EAAE9D,EAAE+nD,QAASr7D,QATgB,IAAMgX,EAAE+jD,OAAS3jD,EAAIjiB,GAAGme,EAAE+nD,QAASrkD,EAAEikD,YAatE,SAAS7jD,EAAEJ,EAAG1D,GACZ,IACE,GAAIA,IAAM0D,EAAG,MAAM,IAAI6M,UAAU,6CAEjC,GAAIvQ,IAAM,iBAAmBA,GAAK,mBAAqBA,GAAI,CACzD,IAAI86B,EAAI96B,EAAEgoD,KACV,GAAIhoD,aAAatT,EAAG,OAAOgX,EAAE+jD,OAAS,EAAG/jD,EAAEikD,OAAS3nD,OAAQiE,EAAEP,GAC9D,GAAI,mBAAqBo3B,EAAG,YAAYvsB,EArC9C,SAAW7K,EAAG1D,GACZ,OAAO,WACL0D,EAAEva,MAAM6W,EAAG5W,YAmCiCyN,CAAEikC,EAAG96B,GAAI0D,GAGrDA,EAAE+jD,OAAS,EAAG/jD,EAAEikD,OAAS3nD,EAAGiE,EAAEP,GAC9B,MAAOI,GACPjiB,EAAE6hB,EAAGI,IAIT,SAASjiB,EAAE6hB,EAAG1D,GACZ0D,EAAE+jD,OAAS,EAAG/jD,EAAEikD,OAAS3nD,EAAGiE,EAAEP,GAGhC,SAASO,EAAEP,GACT,IAAMA,EAAE+jD,QAAU,IAAM/jD,EAAEkkD,WAAWt6D,QAAUrG,YAAW,WACxDyc,EAAEgkD,UAAY/jD,EAAED,EAAEikD,UACjB,GAEH,IAAK,IAAI3nD,EAAI,EAAGnJ,EAAI6M,EAAEkkD,WAAWt6D,OAAQuJ,EAAImJ,EAAGA,IAAK86B,EAAEp3B,EAAGA,EAAEkkD,WAAW5nD,IAEvE0D,EAAEkkD,WAAa,KAGjB,SAASx6C,EAAE1J,EAAG1D,EAAGnJ,GACfvR,KAAKuiE,YAAc,mBAAqBnkD,EAAIA,EAAI,KAAMpe,KAAKwiE,WAAa,mBAAqB9nD,EAAIA,EAAI,KAAM1a,KAAKyiE,QAAUlxD,EAG5H,SAAS0X,EAAE7K,EAAG1D,GACZ,IAAInJ,GAAI,EAER,IACE6M,GAAE,SAAUA,GACV7M,IAAMA,GAAI,EAAIiN,EAAE9D,EAAG0D,OAClB,SAAUA,GACX7M,IAAMA,GAAI,EAAIhV,EAAEme,EAAG0D,OAErB,MAAOhX,GACP,GAAImK,EAAG,OACPA,GAAI,EAAIhV,EAAEme,EAAGtT,IAIjB,IAAIygB,EAAIlmB,WACJhF,EAAI,mBAAqB+X,GAAgBA,GAAgB,SAAU0J,GACrEyJ,EAAEzJ,EAAG,IAEHC,EAAI,SAAUD,GAChB,oBAAsBoC,SAAWA,SAGnCpZ,EAAEhG,UAAiB,MAAI,SAAUgd,GAC/B,OAAOpe,KAAK0iE,KAAK,KAAMtkD,IACtBhX,EAAEhG,UAAUshE,KAAO,SAAUtkD,EAAG7M,GACjC,IAAIiN,EAAI,IAAIpX,EAAEsT,GACd,OAAO86B,EAAEx1C,KAAM,IAAI8nB,EAAE1J,EAAG7M,EAAGiN,IAAKA,GAC/BpX,EAAEu7D,IAAM,SAAUvkD,GACnB,IAAI1D,EAAI+D,MAAMrd,UAAUwG,MAAM7H,KAAKqe,GACnC,OAAO,IAAIhX,GAAE,SAAUgX,EAAG7M,GACxB,SAASnK,EAAEoX,EAAGjiB,GACZ,IACE,GAAIA,IAAM,iBAAmBA,GAAK,mBAAqBA,GAAI,CACzD,IAAIoiB,EAAIpiB,EAAEmmE,KACV,GAAI,mBAAqB/jD,EAAG,YAAYA,EAAE5e,KAAKxD,GAAG,SAAU6hB,GAC1DhX,EAAEoX,EAAGJ,KACJ7M,GAGLmJ,EAAE8D,GAAKjiB,EAAG,MAAQi5C,GAAKp3B,EAAE1D,GACzB,MAAOoN,GACPvW,EAAEuW,IAIN,GAAI,IAAMpN,EAAE1S,OAAQ,OAAOoW,EAAE,IAE7B,IAAK,IAAIo3B,EAAI96B,EAAE1S,OAAQwW,EAAI,EAAGA,EAAI9D,EAAE1S,OAAQwW,IAAKpX,EAAEoX,EAAG9D,EAAE8D,QAEzDpX,EAAEw7D,QAAU,SAAUxkD,GACvB,OAAOA,GAAK,iBAAmBA,GAAKA,EAAEzE,cAAgBvS,EAAIgX,EAAI,IAAIhX,GAAE,SAAUsT,GAC5EA,EAAE0D,OAEHhX,EAAE4+B,OAAS,SAAU5nB,GACtB,OAAO,IAAIhX,GAAE,SAAUsT,EAAGnJ,GACxBA,EAAE6M,OAEHhX,EAAEy7D,KAAO,SAAUzkD,GACpB,OAAO,IAAIhX,GAAE,SAAUsT,EAAGnJ,GACxB,IAAK,IAAInK,EAAI,EAAGouC,EAAIp3B,EAAEpW,OAAQwtC,EAAIpuC,EAAGA,IAAKgX,EAAEhX,GAAGs7D,KAAKhoD,EAAGnJ,OAExDnK,EAAE07D,gBAAkB,SAAU1kD,GAC/BzhB,EAAIyhB,GACHhX,EAAE27D,yBAA2B,SAAU3kD,GACxCC,EAAID,GAC6BlW,EAAOC,QAAUD,EAAOC,QAAUf,EAAIgX,EAAE4kD,UAAY5kD,EAAE4kD,QAAU57D,GArIvF,CAsIZpH,MAAO,WACP,IAAIoe,EAAI,iBAAmBnH,OAAOgsD,eAC9BvoD,EAAI,mBAAqBtD,SAAS8rD,gBAC9B9kD,GAAK1D,IAWb,oBAAsByoD,SAAY,WAChC,IAAI/kD,EAAI5d,OAAOC,eACXia,EAAIxC,KAAKmC,MAAQ,IACjB9I,EAAI,WACNvR,KAAK6d,KAAO,QAAU,IAAMnF,KAAKsmD,WAAa,GAAMtkD,IAAM,MAG5DnJ,EAAEnQ,UAAY,CACZqE,IAAK,SAAUiV,EAAGnJ,GAChB,IAAInK,EAAIsT,EAAE1a,KAAK6d,MACf,OAAOzW,GAAKA,EAAE,KAAOsT,EAAItT,EAAE,GAAKmK,EAAI6M,EAAE1D,EAAG1a,KAAK6d,KAAM,CAClD1N,MAAO,CAACuK,EAAGnJ,GACXg5B,UAAU,IACRvqC,MAENU,IAAK,SAAU0d,GACb,IAAI1D,EACJ,OAAQA,EAAI0D,EAAEpe,KAAK6d,QAAUnD,EAAE,KAAO0D,EAAI1D,EAAE,QAAK,GAEnD,OAAU,SAAU0D,GAClB,IAAI1D,EAAI0D,EAAEpe,KAAK6d,MACf,SAAOnD,GAAKA,EAAE,KAAO0D,KAAK1D,EAAE,GAAKA,EAAE,QAAK,GAAQ,IAElDJ,IAAK,SAAU8D,GACb,IAAI1D,EAAI0D,EAAEpe,KAAK6d,MACf,QAAOnD,GAAIA,EAAE,KAAO0D,IAErBnH,OAAOksD,QAAU5xD,EA3BY,GA4B7B,SAAU6M,GACb,SAAS1D,EAAE0D,GACTtI,EAAE9H,KAAKoQ,GAAI9gB,IAAMA,GAAI,EAAI8lE,EAAEh8D,IAO7B,SAASA,IACP9J,GAAI,EACJ,IAAI8gB,EAAItI,EACRA,EAAI,GAAIsI,EAAE0f,MAAK,SAAU1f,EAAG1D,GAC1B,OAAO0D,EAAEilD,KAAO3oD,EAAE2oD,QAEpB,IAAI3oD,GAAI,EACR0D,EAAEpO,SAAQ,SAAUoO,GAClB,IAAI7M,EAAI6M,EAAEklD,eAKd,SAAWllD,GACTA,EAAEmlD,OAAOvzD,SAAQ,SAAU0K,GACzB,IAAInJ,EAAI9U,EAAEiE,IAAIga,GACdnJ,GAAKA,EAAEvB,SAAQ,SAAU0K,GACvBA,EAAE4kC,WAAalhC,GAAK1D,EAAE8oD,kCARxBhuB,CAAEp3B,GAAI7M,EAAEvJ,SAAWoW,EAAEqlD,UAAUlyD,EAAG6M,GAAI1D,GAAI,MACxCA,GAAKtT,IAYX,SAASoX,EAAEJ,EAAG1D,GACZ,IAAK,IAAInJ,EAAI6M,EAAG7M,EAAGA,EAAIA,EAAE6T,WAAY,CACnC,IAAIhe,EAAI3K,EAAEiE,IAAI6Q,GACd,GAAInK,EAAG,IAAK,IAAIouC,EAAI,EAAGA,EAAIpuC,EAAEY,OAAQwtC,IAAK,CACxC,IAAIh3B,EAAIpX,EAAEouC,GACNj5C,EAAIiiB,EAAErH,QAEV,GAAI5F,IAAM6M,GAAK7hB,EAAEmnE,QAAS,CACxB,IAAI/kD,EAAIjE,EAAEne,GACVoiB,GAAKH,EAAEmlD,QAAQhlD,MAMvB,SAASpiB,EAAE6hB,GACTpe,KAAKyjE,UAAYrlD,EAAGpe,KAAKujE,OAAS,GAAIvjE,KAAK4jE,SAAW,GAAI5jE,KAAKqjE,OAASQ,EAG1E,SAASllD,EAAEP,EAAG1D,GACZ1a,KAAKgU,KAAOoK,EAAGpe,KAAK4E,OAAS8V,EAAG1a,KAAK8jE,WAAa,GAAI9jE,KAAK+jE,aAAe,GAAI/jE,KAAKo8C,gBAAkB,KAAMp8C,KAAKmyB,YAAc,KAAMnyB,KAAKgkE,cAAgB,KAAMhkE,KAAKikE,mBAAqB,KAAMjkE,KAAKkkE,SAAW,KAQjN,SAASj7C,EAAE7K,EAAG1D,GACZ,OAAOhH,EAAI,IAAIiL,EAAEP,EAAG1D,GAGtB,SAASmN,EAAEzJ,GACT,OAAOnJ,KAASA,EAVlB,SAAWmJ,GACT,IAAI1D,EAAI,IAAIiE,EAAEP,EAAEpK,KAAMoK,EAAExZ,QACxB,OAAO8V,EAAEopD,WAAa1lD,EAAE0lD,WAAWl8D,QAAS8S,EAAEqpD,aAAe3lD,EAAE2lD,aAAan8D,QAAS8S,EAAE0hC,gBAAkBh+B,EAAEg+B,gBAAiB1hC,EAAEyX,YAAc/T,EAAE+T,YAAazX,EAAEspD,cAAgB5lD,EAAE4lD,cAAetpD,EAAEupD,mBAAqB7lD,EAAE6lD,mBAAoBvpD,EAAEwpD,SAAW9lD,EAAE8lD,SAAUxpD,EAQhPoN,CAAEpU,IAAMwwD,SAAW9lD,EAAGnJ,GAW5C,SAASpY,EAAEuhB,EAAG1D,GACZ,OAAO0D,IAAM1D,EAAI0D,EAAInJ,GALvB,SAAWmJ,GACT,OAAOA,IAAMnJ,GAAKmJ,IAAM1K,EAIE2K,CAAED,GAAKnJ,EAAI,KAGvC,SAASuB,EAAE4H,EAAG1D,EAAGnJ,GACfvR,KAAKs/C,SAAWlhC,EAAGpe,KAAK4E,OAAS8V,EAAG1a,KAAKmX,QAAU5F,EAAGvR,KAAKmkE,uBAAyB,GAGtF,IAAK/lD,EAAEgmD,mBAAoB,CACzB,IAAIhB,EACA3mE,EAAI,IAAI0mE,QACZ,GAAI,eAAejlE,KAAKqhB,UAAUC,WAAY4jD,EAAIzhE,gBAAgB,GAAIsV,OAAOvC,aAAc0uD,EAAInsD,OAAOvC,iBAAkB,CACtH,IAAIk5B,EAAI,GACJ3wC,EAAIwJ,OAAOiS,KAAKsmD,UACpB/nD,OAAOnR,iBAAiB,WAAW,SAAUsY,GAC3C,GAAIA,EAAEhO,OAASnT,EAAG,CAChB,IAAIyd,EAAIkzB,EACRA,EAAI,GAAIlzB,EAAE1K,SAAQ,SAAUoO,GAC1BA,WAGFglD,EAAI,SAAUhlD,GAChBwvB,EAAE5/B,KAAKoQ,GAAInH,OAAOotD,YAAYpnE,EAAG,MAGrC,IAiCIyW,EAAGuB,EAjCH3X,GAAI,EACJwY,EAAI,GACJ+tD,EAAI,EACRtnE,EAAE6E,UAAY,CACZ2gD,QAAS,SAAU3jC,EAAG1D,GACpB,GAAI0D,EApGV,SAAWA,GACT,OAAOnH,OAAOqtD,mBAAqBrtD,OAAOqtD,kBAAkBC,aAAanmD,IAAMA,EAmGnE7M,CAAE6M,IAAK1D,EAAEgoC,YAAchoC,EAAE21B,aAAe31B,EAAEioC,eAAiBjoC,EAAE8pD,oBAAsB9pD,EAAE21B,YAAc31B,EAAE+pD,iBAAmB/pD,EAAE+pD,gBAAgBz8D,SAAW0S,EAAE21B,YAAc31B,EAAEgqD,wBAA0BhqD,EAAEioC,cAAe,MAAM,IAAIgiB,YACpO,IAAIv9D,EAAI3K,EAAEiE,IAAI0d,GACdhX,GAAK3K,EAAEgJ,IAAI2Y,EAAGhX,EAAI,IAElB,IAAK,IAAIouC,EAAGh3B,EAAI,EAAGA,EAAIpX,EAAEY,OAAQwW,IAAK,GAAIpX,EAAEoX,GAAG8gC,WAAat/C,KAAM,EAChEw1C,EAAIpuC,EAAEoX,IAAMomD,kBAAmBpvB,EAAEr+B,QAAUuD,EAC3C,MAGF86B,IAAMA,EAAI,IAAIh/B,EAAExW,KAAMoe,EAAG1D,GAAItT,EAAE4G,KAAKwnC,GAAIx1C,KAAKujE,OAAOv1D,KAAKoQ,IAAKo3B,EAAEqvB,gBAElEp9B,WAAY,WACVznC,KAAKujE,OAAOvzD,SAAQ,SAAUoO,GAC5B,IAAK,IAAI1D,EAAIje,EAAEiE,IAAI0d,GAAI7M,EAAI,EAAGA,EAAImJ,EAAE1S,OAAQuJ,IAAK,CAC/C,IAAInK,EAAIsT,EAAEnJ,GAEV,GAAInK,EAAEk4C,WAAat/C,KAAM,CACvBoH,EAAEw9D,kBAAmBlqD,EAAE+b,OAAOllB,EAAG,GACjC,UAGHvR,MAAOA,KAAK4jE,SAAW,IAE5BN,YAAa,WACX,IAAIllD,EAAIpe,KAAK4jE,SACb,OAAO5jE,KAAK4jE,SAAW,GAAIxlD,IAI/B5H,EAAEpV,UAAY,CACZuiE,QAAS,SAAUvlD,GACjB,IAAI7M,EAAIvR,KAAKs/C,SAASskB,SAClBx8D,EAAImK,EAAEvJ,OAEV,GAAIuJ,EAAEvJ,OAAS,EAAG,CAChB,IACIwW,EAAI3hB,EADA0U,EAAEnK,EAAI,GACDgX,GACb,GAAII,EAAG,YAAajN,EAAEnK,EAAI,GAAKoX,QAC1B9D,EAAE1a,KAAKs/C,UAEd/tC,EAAEnK,GAAKgX,GAETymD,aAAc,WACZ7kE,KAAK8kE,cAAc9kE,KAAK4E,SAE1BkgE,cAAe,SAAU1mD,GACvB,IAAI1D,EAAI1a,KAAKmX,QACbuD,EAAE21B,YAAcjyB,EAAEtY,iBAAiB,kBAAmB9F,MAAM,GAAK0a,EAAEioC,eAAiBvkC,EAAEtY,iBAAiB,2BAA4B9F,MAAM,GAAK0a,EAAEgoC,WAAatkC,EAAEtY,iBAAiB,kBAAmB9F,MAAM,IAAM0a,EAAEgoC,WAAahoC,EAAEgpD,UAAYtlD,EAAEtY,iBAAiB,iBAAkB9F,MAAM,IAEzR4kE,gBAAiB,WACf5kE,KAAK+kE,iBAAiB/kE,KAAK4E,SAE7BmgE,iBAAkB,SAAU3mD,GAC1B,IAAI1D,EAAI1a,KAAKmX,QACbuD,EAAE21B,YAAcjyB,EAAErY,oBAAoB,kBAAmB/F,MAAM,GAAK0a,EAAEioC,eAAiBvkC,EAAErY,oBAAoB,2BAA4B/F,MAAM,GAAK0a,EAAEgoC,WAAatkC,EAAErY,oBAAoB,kBAAmB/F,MAAM,IAAM0a,EAAEgoC,WAAahoC,EAAEgpD,UAAYtlD,EAAErY,oBAAoB,iBAAkB/F,MAAM,IAErSglE,qBAAsB,SAAU5mD,GAC9B,GAAIA,IAAMpe,KAAK4E,OAAQ,CACrB5E,KAAK8kE,cAAc1mD,GAAIpe,KAAKmkE,uBAAuBn2D,KAAKoQ,GACxD,IAAI1D,EAAIje,EAAEiE,IAAI0d,GACd1D,GAAKje,EAAEgJ,IAAI2Y,EAAG1D,EAAI,IAAKA,EAAE1M,KAAKhO,QAGlCwjE,yBAA0B,WACxB,IAAIplD,EAAIpe,KAAKmkE,uBACbnkE,KAAKmkE,uBAAyB,GAAI/lD,EAAEpO,SAAQ,SAAUoO,GACpDpe,KAAK+kE,iBAAiB3mD,GAEtB,IAAK,IAAI1D,EAAIje,EAAEiE,IAAI0d,GAAI7M,EAAI,EAAGA,EAAImJ,EAAE1S,OAAQuJ,IAAK,GAAImJ,EAAEnJ,KAAOvR,KAAM,CAClE0a,EAAE+b,OAAOllB,EAAG,GACZ,SAEDvR,OAEL45C,YAAa,SAAUx7B,GACrB,OAAQA,EAAEuuC,2BAA4BvuC,EAAEpK,MACtC,IAAK,kBACH,IAAI0G,EAAI0D,EAAEw6B,SACNrnC,EAAI6M,EAAE6mD,YAAYC,aAClB99D,EAAIgX,EAAExZ,QACN4wC,EAAI,IAAIvsB,EAAE,aAAc7hB,IAC1B48D,cAAgBtpD,EAAG86B,EAAEyuB,mBAAqB1yD,EAC5C,IAAIhV,EAAI6hB,EAAE+mD,aAAeC,cAAcC,SAAW,KAAOjnD,EAAE2P,UAC3DvP,EAAEpX,GAAG,SAAUgX,GACb,OAAQA,EAAEiyB,YAAcjyB,EAAEqmD,iBAAmBrmD,EAAEqmD,gBAAgBz8D,SAAW,IAAMoW,EAAEqmD,gBAAgB98D,QAAQ+S,KAAO,IAAM0D,EAAEqmD,gBAAgB98D,QAAQ4J,QAAK,EAAS6M,EAAEomD,kBAAoB38C,EAAEtrB,GAAKi5C,KAE9L,MAEF,IAAK,2BACH,IACIA,EAAIvsB,EAAE,gBADN7hB,EAAIgX,EAAExZ,QAENrI,EAAI6hB,EAAE2P,UACVvP,EAAEpX,GAAG,SAAUgX,GACb,OAAOA,EAAEukC,cAAgBvkC,EAAEsmD,sBAAwB78C,EAAEtrB,GAAKi5C,OAAI,KAEhE,MAEF,IAAK,iBACHx1C,KAAKglE,qBAAqB5mD,EAAExZ,QAE9B,IAAK,kBACH,IAAI+Z,EACAmJ,EACAzJ,EAAID,EAAExZ,OACV,oBAAsBwZ,EAAEpK,MAAQ2K,EAAI,CAACN,GAAIyJ,EAAI,KAAOnJ,EAAI,GAAImJ,EAAI,CAACzJ,IACjE,IAAIxhB,EAAIwhB,EAAE+9B,gBACN5lC,EAAI6H,EAAE8T,aACNqjB,EAAIvsB,EAAE,YAAa7K,EAAExZ,OAAOwgB,aAC9B0+C,WAAanlD,EAAG62B,EAAEuuB,aAAej8C,EAAG0tB,EAAE4G,gBAAkBv/C,EAAG24C,EAAErjB,YAAc3b,EAAGgI,EAAEJ,EAAE6mD,aAAa,SAAU7mD,GACzG,OAAOA,EAAEskC,UAAYlN,OAAI,KAlJnC9hC,EAAIuB,OAAI,IAwJLmJ,EAAEgmD,mBAAqB7nE,EAAG6hB,EAAEkkC,mBAAqBlkC,EAAEkkC,iBAAmB/lD,EAAGA,EAAE+oE,eAAgB,IA5N7F,CA8NH/5C,MAAO,WACP,aAEA,IAAKtU,OAAOsuD,cAAgBtuD,OAAOsuD,YAAYlrD,IAAK,CAClD,IAAI+D,EAAIlG,KAAKmC,MACbpD,OAAOsuD,YAAc,CACnBlrD,IAAK,WACH,OAAOnC,KAAKmC,MAAQ+D,IAyB1B,GApBAnH,OAAOhU,wBAA0BgU,OAAOhU,sBAAwB,WAC9D,IAAImb,EAAInH,OAAOuuD,6BAA+BvuD,OAAOwuD,yBACrD,OAAOrnD,EAAI,SAAU1D,GACnB,OAAO0D,GAAE,WACP1D,EAAE6qD,YAAYlrD,WAEd,SAAU+D,GACZ,OAAOnH,OAAOtV,WAAWyc,EAAG,IAAM,KAP0B,IAS1DnH,OAAO1V,uBAAyB0V,OAAO1V,qBACpC0V,OAAOyuD,4BAA8BzuD,OAAO0uD,yBAA2B,SAAUvnD,GACtF5c,aAAa4c,MAIT,WACN,IAAIA,EAAIhH,SAAS+Z,YAAY,SAC7B,OAAO/S,EAAEihB,UAAU,OAAO,GAAI,GAAKjhB,EAAEoa,iBAAkBpa,EAAEwnD,iBAFnD,GAKA,CACN,IAAIr0D,EAAIs0D,MAAMzkE,UAAUo3B,eAExBqtC,MAAMzkE,UAAUo3B,eAAiB,WAC/Bx4B,KAAK06C,aAAenpC,EAAExR,KAAKC,MAAOQ,OAAOC,eAAeT,KAAM,mBAAoB,CAChFU,IAAK,WACH,OAAO,GAETE,cAAc,MAKpB,IAAIwG,EAAI,UAAUlJ,KAAKqhB,UAAUC,WAEjC,KAAMvI,OAAO69B,aAAe1tC,GAAK,mBAAqB6P,OAAO69B,eAAiB79B,OAAO69B,YAAc,SAAU12B,EAAG1D,GAC9GA,EAAIA,GAAK,GACT,IAAInJ,EAAI6F,SAAS+Z,YAAY,eAC7B,OAAO5f,EAAEu0D,gBAAgB1nD,EAAGpY,QAAQ0U,EAAE+/B,SAAUz0C,QAAQ0U,EAAEggC,YAAahgC,EAAE8/B,QAASjpC,GACjF0F,OAAO69B,YAAY1zC,UAAY6V,OAAO4uD,MAAMzkE,YAAa6V,OAAO4uD,OAASz+D,GAAK,mBAAqB6P,OAAO4uD,MAAO,CAClH,IAAIrwB,EAAIv+B,OAAO4uD,MACf5uD,OAAO4uD,MAAQ,SAAUznD,EAAG1D,GAC1BA,EAAIA,GAAK,GACT,IAAInJ,EAAI6F,SAAS+Z,YAAY,SAC7B,OAAO5f,EAAE8tB,UAAUjhB,EAAGpY,QAAQ0U,EAAE+/B,SAAUz0C,QAAQ0U,EAAEggC,aAAcnpC,GACjE0F,OAAO4uD,MAAMzkE,UAAYo0C,EAAEp0C,WAzDzB,CA2DP6V,OAAO8uD,eAAgB9uD,OAAO+uD,eAAiB/uD,OAAO+uD,gBAAkB,CACxEz+D,MAAO,IACN,SAAU6W,GACX,IAAI1D,EAAI0D,EAAE7W,MACNgK,EAAI,GAUR6M,EAAE6nD,UATM,SAAU7nD,GAChB7M,EAAEvD,KAAKoQ,IAQQA,EAAE8nD,kBANX,WACN30D,EAAEvB,SAAQ,SAAU0K,GAClBA,EAAE0D,OAIoCA,EAAE+nD,UAAYngE,QAAQoR,SAAS8rD,iBAAkB9kD,EAAEgoD,KAAO,UAAUloE,KAAKqhB,UAAUC,WAAYpB,EAAEioD,WAAa3rD,EAAE9C,UAAYwG,EAAE+nD,YAAclvD,OAAOqtD,qBAAuBrtD,OAAOqvD,aAAervD,OAAOqvD,YAAYD,WAZ5P,CAaDpvD,OAAO+uD,gBAAiB/uD,OAAO+uD,eAAeC,WAAU,SAAU7nD,GAClE,SAAS1D,EAAE0D,EAAG1D,GACZnJ,EAAE6M,GAAG,SAAUA,GACb,QAAO1D,EAAE0D,SAAehX,EAAEgX,EAAG1D,MAC3BtT,EAAEgX,EAAG1D,GAGX,SAASnJ,EAAE6M,EAAG1D,EAAGtT,GACf,IAAIouC,EAAIp3B,EAAE8a,kBACV,IAAKsc,EAAG,IAAKA,EAAIp3B,EAAE4G,WAAYwwB,GAAKA,EAAEvjB,WAAauO,KAAK+lC,cAAe/wB,EAAIA,EAAErjB,YAE7E,KAAOqjB,IAAgB,IAAZ96B,EAAE86B,EAAGpuC,IAAamK,EAAEikC,EAAG96B,EAAGtT,GAAIouC,EAAIA,EAAEkH,mBAE/C,OAAO,KAGT,SAASt1C,EAAEgX,EAAG7M,GACZ,IAAK,IAAInK,EAAIgX,EAAE6lC,WAAY78C,GAAIsT,EAAEtT,EAAGmK,GAAInK,EAAIA,EAAEo/D,gBAOhD,SAAShoD,EAAEJ,EAAG1D,EAAGnJ,GACf,GAAI6M,EAAInH,OAAO+L,KAAK5E,KAAM7M,EAAE5J,QAAQyW,IAAM,GAAI,CAC5C7M,EAAEvD,KAAKoQ,GAEP,IAAK,IAAIhX,EAAGouC,EAAIp3B,EAAEvO,iBAAiB,YAActT,EAAI,KAAMoiB,EAAI,EAAGmJ,EAAI0tB,EAAExtC,OAAQ8f,EAAInJ,IAAMvX,EAAIouC,EAAE72B,IAAKA,IAAKvX,EAAEq/D,QAAUjoD,EAAEpX,EAAEq/D,OAAQ/rD,EAAGnJ,GAErImJ,EAAE0D,IAIN,IAAI7hB,EAAI0a,OAAOqvD,YAAcrvD,OAAOqvD,YAAYI,iBAAmB,OACnEtoD,EAAEuoD,gBAfF,SAAWvoD,EAAG1D,GACZ8D,EAAEJ,EAAG1D,EAAG,KAca0D,EAAEwoD,WAAalsD,KACpCzD,OAAO+uD,eAAeC,WAAU,SAAU7nD,GAC5C,SAAS1D,EAAE0D,EAAG1D,GACZ,OAAOnJ,EAAE6M,EAAG1D,IAAMtT,EAAEgX,EAAG1D,GAGzB,SAASnJ,EAAEmJ,EAAGnJ,GACZ,QAAO6M,EAAEyoD,QAAQnsD,EAAGnJ,SAAgBA,GAAKhV,EAAEme,IAG7C,SAAStT,EAAEgX,EAAG1D,GACZpd,EAAE8gB,GAAG,SAAUA,GACb,QAAO7M,EAAE6M,EAAG1D,SAAU,KAI1B,SAAS86B,EAAEp3B,GACTnJ,EAAEjH,KAAKoQ,GAAI1K,IAAMA,GAAI,EAAI/R,WAAW6c,IAGtC,SAASA,IACP9K,GAAI,EAEJ,IAAK,IAAI0K,EAAG1D,EAAIzF,EAAG1D,EAAI,EAAGnK,EAAIsT,EAAE1S,OAAQZ,EAAImK,IAAM6M,EAAI1D,EAAEnJ,IAAKA,IAAK6M,IAElEnJ,EAAI,GAGN,SAAS1Y,EAAE6hB,GACTylD,EAAIruB,GAAE,WACJ72B,EAAEP,MACCO,EAAEP,GAGT,SAASO,EAAEP,GACTA,EAAE0oD,eAAiB1oD,EAAE2oD,aAAe3oD,EAAE2oD,YAAa,EAAI3oD,EAAE4oD,kBAAoB5oD,EAAE4oD,oBASjF,SAAS/9C,EAAE7K,GACTylD,EAAIruB,GAAE,WACJ3tB,EAAEzJ,MACCyJ,EAAEzJ,GAGT,SAASyJ,EAAEzJ,GACTA,EAAE0oD,cAAgB1oD,EAAE2oD,aAAe3oD,EAAE2oD,YAAa,EAAI3oD,EAAE6oD,kBAAoB7oD,EAAE6oD,oBAkBhF,SAASpqE,EAAEuhB,EAAG7M,GACZ,GAAItU,EAAE49C,IAAK,CACT,IAAIzzC,EAAImK,EAAE,GAEV,GAAInK,GAAK,cAAgBA,EAAE4M,MAAQ5M,EAAE08D,YAAc18D,EAAE08D,WAAY,CAC/D,IAAK,IAAItuB,EAAIpuC,EAAE08D,WAAW,GAAItuB,GAAKA,IAAMp+B,WAAao+B,EAAEhD,MAAOgD,EAAIA,EAAEpwB,WAErE,IAAI5G,EAAIg3B,IAAMA,EAAEpD,KAAOoD,EAAE0xB,MAAQ1xB,EAAEhD,MAAQgD,EAAEhD,KAAK20B,YAAc,GAChE3oD,EAAIA,EAAEvjB,MAAM,MAAMq1C,QAAQr1C,MAAM,KAAKouD,OAIzC,IAAI9sD,EA3BN,SAAW6hB,GACT,IAAK,IAAI1D,EAAI0D,EAAG7M,EAAI0F,OAAO+L,KAAK5L,UAAWsD,GAAI,CAC7C,GAAIA,GAAKnJ,EAAG,OAAO,EACnBmJ,EAAIA,EAAE0K,YAAc1K,EAAEuX,WAAauO,KAAK4mC,wBAA0B1sD,EAAE83B,MAwB9D71C,CAAEyhB,GACV7M,EAAEvB,SAAQ,SAAUoO,GAClB,cAAgBA,EAAEpK,OAASqzD,EAAEjpD,EAAE0lD,YAAY,SAAU1lD,GACnDA,EAAE+oD,WAAazsD,EAAE0D,EAAG7hB,MAClB8qE,EAAEjpD,EAAE2lD,cAAc,SAAU3lD,GAC9BA,EAAE+oD,WAhDR,SAAW/oD,GACT6K,EAAE7K,GAAI9gB,EAAE8gB,GAAG,SAAUA,GACnB6K,EAAE7K,MA8Ce0J,CAAE1J,UAEjBnhB,EAAE49C,IAUR,SAASuoB,EAAEhlD,GACT,IAAKA,EAAEkpD,WAAY,CACjB,IAAI5sD,EAAI,IAAI4nC,iBAAiBzlD,EAAE2X,KAAKxU,KAAMoe,IAC1C1D,EAAEqnC,QAAQ3jC,EAAG,CACXskC,WAAW,EACXghB,SAAS,IACPtlD,EAAEkpD,WAAa5sD,GAIvB,SAASje,EAAE2hB,GACTA,EAAInH,OAAO+L,KAAK5E,GAAInhB,EAAE49C,IAEtBngC,EAAE0D,EADMA,IAAMnH,OAAO+L,KAAK5L,WACjBgsD,EAAEhlD,GAAInhB,EAAE49C,IAOnB,IAAI59C,EAAImhB,EAAE7W,MACNjK,EAAI8gB,EAAEwoD,WACN9wD,EAAIsI,EAAEuoD,gBACN9C,EAAI5sD,OAAOqrC,iBAAiBgjB,eAAiBroE,EAAE,qBACnDmhB,EAAEmpD,qBAAuB1D,EAAGzlD,EAAEopD,qBAAuB3D,EACrD,IAAInwD,GAAI,EACJuB,EAAI,GACJoyD,EAAI5oD,MAAMrd,UAAU4O,QAAQjQ,KAAKyU,KAAKiK,MAAMrd,UAAU4O,SACtDoF,EAAI2sD,QAAQ3gE,UAAUqmE,iBAC1BryD,IAAM2sD,QAAQ3gE,UAAUqmE,iBAAmB,WACzC,IAAIrpD,EAAIhJ,EAAErV,KAAKC,MACf,OAAOiX,OAAO+uD,eAAe0B,YAAY1nE,MAAOoe,IAC9CA,EAAEspD,YArEN,SAAWtpD,GACT,GAAIA,EAAE6lC,aAAe7lC,EAAE6lC,WAAW0jB,UAAW,CAC3C1qE,EAAE49C,IAEF,IAAK,IAAIngC,EAAI0D,EAAE6lC,WAAYvpC,GAAI0oD,EAAE1oD,GAAIA,EAAIA,EAAE8rD,kBAiExBpoD,EAAEwpD,oBAhBzB,SAAWxpD,GACTtI,EAAEsI,EAAG3hB,IAe2C2hB,EAAEypD,gBAAkBprE,EAAG2hB,EAAE0pD,eAAiB1gE,EAAGgX,EAAE2pD,WAAartD,EAAG0D,EAAE4pD,SAAWzrE,EAAG6hB,EAAEklD,YAvCnI,SAAWllD,GACT,KAAKA,EAAInH,OAAO+L,KAAK5E,MAAUA,EAAInH,OAAO+L,KAAK5L,WAAYgH,EAAEgH,YAAahH,EAAIA,EAAEgH,WAEhF,IAAI1K,EAAI0D,EAAEkpD,WACV5sD,IAAM7d,EAAEuhB,EAAG1D,EAAE4oD,eAAgB9kD,SAoC7BvH,OAAO+uD,eAAeC,WAAU,SAAU7nD,GAS5C,SAAS7M,EAAEmJ,EAAGnJ,EAAGikC,GACf,OAAOj5C,EAAEsqE,QAAmBt1D,EAAEkoC,IAAM/+B,EAAEjX,aAAa,KAAM8N,EAAEkoC,IAAKryC,EAAEsT,EAAGnJ,GAAImJ,EAAEosD,cAAe,EAe5F,SAAW1oD,GACTA,EAAE6pD,iBAAmB7pD,EAAE6pD,kBAhBuEzpD,CAAE9D,GAAI86B,GAAKp3B,EAAE4pD,SAASttD,GAAI0D,EAAE0pD,eAAeptD,EAAG86B,GAAIj5C,EAAEsqE,QAAmBnsD,EAGvK,SAAStT,EAAEgX,EAAG1D,GACZla,OAAOk1C,WAGT,SAAWt3B,EAAG1D,EAAGnJ,GACf,IAAK,IAAInK,EAAI,GAAIouC,EAAI96B,EAAG86B,IAAMjkC,GAAKikC,IAAMrV,YAAY/+B,WAAY,CAC/D,IAAK,IAAIod,EAAGjiB,EAAIiE,OAAO0nE,oBAAoB1yB,GAAI72B,EAAI,EAAGH,EAAIjiB,EAAEoiB,GAAIA,IAAKvX,EAAEoX,KAAOhe,OAAOC,eAAe2d,EAAGI,EAAGhe,OAAOu+C,yBAAyBvJ,EAAGh3B,IAAKpX,EAAEoX,GAAK,GAEzJg3B,EAAIh1C,OAAOi1C,eAAeD,IAPoBA,CAAEp3B,EAAG1D,EAAEtZ,UAAWsZ,EAAEytD,QAAjD/pD,EAAEs3B,UAAYh7B,EAAEtZ,UAerC,IAAI7E,EAAI6hB,EAAE7W,MACV6W,EAAEyoD,QA7BF,SAAWnsD,EAAGtT,GACZ,GAAI,aAAesT,EAAEysD,WAAalwD,OAAOmxD,qBAAuBA,oBAAoBC,UAAYD,oBAAoBC,SAAS3tD,IAAKA,EAAEosD,cAAgBpsD,EAAEuX,WAAauO,KAAK+lC,aAAc,CACpL,IAAI/wB,EAAI96B,EAAErX,aAAa,MACnBmb,EAAIJ,EAAEkqD,wBAAwB5tD,EAAEysD,YAAc/oD,EAAEkqD,wBAAwB9yB,GAC5E,GAAIh3B,IAAMg3B,GAAKh3B,EAAEqG,KAAOnK,EAAEysD,YAAc3xB,IAAMh3B,EAAE+pD,SAAU,OAAOh3D,EAAEmJ,EAAG8D,EAAGpX,KAyB9DgX,EAAEoqD,sBAAwBj3D,EAAG6M,EAAEqqD,mBAAqBrhE,KACjE6P,OAAO+uD,eAAeC,WAAU,SAAU7nD,GAU5C,SAAS7M,EAAE6M,GACT,IAAKA,EAAE3a,aAAailE,YAAa,CAC/B,IAAIhuD,EAAI0D,EAAE3a,aAEV2a,EAAE3a,aAAe,SAAU2a,EAAG7M,GAC5BnK,EAAErH,KAAKC,KAAMoe,EAAG7M,EAAGmJ,IAGrB,IAAInJ,EAAI6M,EAAEza,gBACVya,EAAEza,gBAAkB,SAAUya,GAC5BhX,EAAErH,KAAKC,KAAMoe,EAAG,KAAM7M,IACrB6M,EAAE3a,aAAailE,aAAc,GAIpC,SAASthE,EAAEgX,EAAG1D,EAAGnJ,GACf6M,EAAIA,EAAEpM,cACN,IAAI5K,EAAIpH,KAAKqD,aAAa+a,GAC1B7M,EAAE1N,MAAM7D,KAAM8D,WACd,IAAI0xC,EAAIx1C,KAAKqD,aAAa+a,GAC1Bpe,KAAK2oE,0BAA4BnzB,IAAMpuC,GAAKpH,KAAK2oE,yBAAyBvqD,EAAGhX,EAAGouC,GAOlF,SAASh3B,EAAEJ,GACT,IAAI1D,EAAIuO,EAAE7K,GACV,OAAO1D,EAAI8D,EAAE9D,EAAE6tD,SAAS5xD,OAAO,CAAC+D,IAAM,GA4BxC,SAASuO,EAAE7K,GACT,OAAOA,EAAI1K,EAAE0K,EAAEpM,oBAAiB,EAOlC,SAASrV,EAAEyhB,GACT,OAAO,WACL,OAdJ,SAAWA,GACT,OAAOnhB,EAAEoqE,EAAEjpD,EAAEyG,KAAMzG,GAaV0J,CAAE1J,IAQb,SAASvhB,EAAEuhB,EAAG1D,GACZ0D,IAAMA,EAAIA,EAAEpM,eAAgB0I,IAAMA,EAAIA,EAAE1I,eACxC,IAOI5K,EAPAmK,EAAI0X,EAAEvO,GAAK0D,GAEf,GAAI7M,EAAG,CACL,GAAI6M,GAAK7M,EAAEsT,KAAOnK,GAAKnJ,EAAEkoC,GAAI,OAAO,IAAIloC,EAAEq3D,KAC1C,IAAKluD,IAAMnJ,EAAEkoC,GAAI,OAAO,IAAIloC,EAAEq3D,KAIhC,OAAOluD,IAAKtT,EAAIvK,EAAEuhB,IAAM3a,aAAa,KAAMiX,GAAItT,IAAMA,EAAIigE,EAAEjpD,GAAIA,EAAEzW,QAAQ,MAAQ,GAAKrK,EAAE8J,EAAG+4B,aAAc/4B,GAG3G,SAASoP,EAAE4H,EAAG1D,GACZ,IAAInJ,EAAI6M,EAAE1D,GAEV0D,EAAE1D,GAAK,WACL,IAAI0D,EAAI7M,EAAE1N,MAAM7D,KAAM8D,WACtB,OAAO8pC,EAAExvB,GAAIA,GAIjB,IAAIglD,EACA3mE,GAAK2hB,EAAEgoD,KAAMhoD,EAAEwpD,qBACfh6B,EAAIxvB,EAAE2pD,WACN9qE,EAAImhB,EAAEoqD,sBACNlrE,EAAI8gB,EAAEqqD,mBACN3yD,EAAIsI,EAAEioD,UACNxC,EAAI,CAAC,iBAAkB,gBAAiB,YAAa,gBAAiB,gBAAiB,mBAAoB,iBAAkB,iBAC7HnwD,EAAI,GACJuB,EAAI,+BACJoyD,EAAIjwD,SAASwN,cAAcpQ,KAAK4C,UAChChC,EAAIgC,SAAS68B,gBAAgBz/B,KAAK4C,UACtCgsD,EAAI5iE,OAAOk1C,WAAa5/B,EAAI,SAAUsI,EAAG1D,GACvC,OAAO0D,aAAa1D,GAClB,SAAU0D,EAAG1D,GACf,GAAI0D,aAAa1D,EAAG,OAAO,EAE3B,IAAK,IAAInJ,EAAI6M,EAAG7M,GAAI,CAClB,GAAIA,IAAMmJ,EAAEtZ,UAAW,OAAO,EAC9BmQ,EAAIA,EAAEmkC,UAGR,OAAO,GACNl/B,EAAEgqB,KAAKp/B,UAAW,aAAcoV,EAAEY,SAAU,cAAeA,SAAS8rD,gBAhIvE,SAAWxoD,EAAGtT,GACZ,IAAI0gB,EAAI1gB,GAAK,GACb,IAAKsT,EAAG,MAAM,IAAIrY,MAAM,qEACxB,GAAIqY,EAAE/S,QAAQ,KAAO,EAAG,MAAM,IAAItF,MAAM,uGAAyGoE,OAAOiU,GAAK,MAC7J,GA4BF,SAAW0D,GACT,IAAK,IAAI1D,EAAI,EAAGA,EAAImpD,EAAE77D,OAAQ0S,IAAK,GAAI0D,IAAMylD,EAAEnpD,GAAI,OAAO,EA7BtD86B,CAAE96B,GAAI,MAAM,IAAIrY,MAAM,oFAAsFoE,OAAOiU,GAAK,gCAC5H,GAAIuO,EAAEvO,GAAI,MAAM,IAAIrY,MAAM,+CAAiDoE,OAAOiU,GAAK,2BACvF,OAAOoN,EAAE1mB,YAAc0mB,EAAE1mB,UAAYZ,OAAO4lC,OAAOjG,YAAY/+B,YAAa0mB,EAAE+gD,OAASnuD,EAAE1I,cAAe8V,EAAEygD,UAAYzgD,EAAEygD,QAAUzgD,EAAEygD,QAAQv2D,eAAgB8V,EAAEghD,UAAYhhD,EAAEghD,WAAa,GAAIhhD,EAAEihD,SAAWvqD,EAAEsJ,EAAEygD,SAmChN,SAAWnqD,GACT,IAAK,IAAI1D,EAAGnJ,EAAI6M,EAAEmqD,QAASnhE,EAAI,EAAGsT,EAAI0D,EAAE2qD,SAAS3hE,GAAIA,IAAKmK,EAAImJ,EAAE++B,IAAM/+B,EAAEmK,IAExEzG,EAAEyG,IAAMtT,GAAK6M,EAAEyqD,OAAQt3D,IAAM6M,EAAEq7B,GAAKr7B,EAAEyqD,QAtCkLtsE,CAAEurB,GAyC5N,SAAW1J,GACT,IAAK5d,OAAOk1C,UAAW,CACrB,IAAIh7B,EAAIylB,YAAY/+B,UAEpB,GAAIgd,EAAEq7B,GAAI,CACR,IAAIloC,EAAI6F,SAASwN,cAAcxG,EAAEyG,KACjCnK,EAAIla,OAAOi1C,eAAelkC,GAG5B,IAAK,IAAInK,EAAGouC,EAAIp3B,EAAEhd,UAAmBo0C,GAAIA,GAAK96B,IAAU,GAAKtT,EAAI5G,OAAOi1C,eAAeD,MAAUA,EAAEE,UAAYtuC,GAAIouC,EAAIpuC,EAE1GgX,EAAE+pD,OAASztD,GApDoMiE,CAAEmJ,GAAIvW,EAAEuW,EAAE1mB,WAgE1O,SAAWgd,EAAG1D,GACZhH,EAAE0K,GAAK1D,EAjE6OmN,CAAEC,EAAE+gD,OAAQ/gD,GAAIA,EAAE8gD,KAAOjsE,EAAEmrB,GAAIA,EAAE8gD,KAAKxnE,UAAY0mB,EAAE1mB,UAAW0mB,EAAE1mB,UAAUuY,YAAcmO,EAAE8gD,KAAMxqD,EAAE4qD,OAASvsE,EAAE2a,UAAW0Q,EAAE8gD,MA0HrRxxD,SAASwN,cAAgB/nB,EAAGua,SAAS68B,gBAhDjI,SAAW71B,EAAG1D,EAAGnJ,GACf,OAAO6M,IAAMnJ,EAAIpY,EAAE6d,EAAGnJ,GAAK6D,EAAEgJ,EAAG1D,IA+CoH0D,EAAE6qD,SAAWv1D,EAAG0K,EAAE8qD,WAAa9F,EAAGhlD,EAAE+qD,gBAAkBtF,EAAGzlD,EAAEkqD,wBAA0Br/C,EAAG7R,SAASQ,SAAWR,SAAS8rD,mBACzQ,SAAU9kD,GACZ,SAAS1D,IACP8D,EAAEvH,OAAO+L,KAAK5L,WAAYH,OAAO+uD,eAAegD,OAAQ,GAEhD/xD,OAAOhU,uBAAyB,SAAUmb,GAChDzc,WAAWyc,EAAG,OAGd,WACAzc,YAAW,WACTsV,OAAO+uD,eAAeoD,UAAYlxD,KAAKmC,MAAOpD,OAAOqvD,cAAgBrvD,OAAO+uD,eAAeqD,QAAUpyD,OAAO+uD,eAAeoD,UAAYnyD,OAAOqvD,YAAY8C,WAAYhyD,SAASga,cAAc,IAAI0jB,YAAY,qBAAsB,CACjO2F,SAAS,WAMjB,IAAIlpC,EAAI6M,EAAEioD,UACNj/D,EAAIgX,EAAE8nD,kBAEV,GAAI9nD,EAAEgoD,KAAM70D,EAAG,CACb,IAAIikC,EAAI,aAERp3B,EAAEspD,YAAclyB,EAAGp3B,EAAEyoD,QAAUrxB,EAAGp3B,EAAE2pD,WAAavyB,EAAGp3B,EAAEwpD,oBAAsBpyB,EAAGp3B,EAAE0pD,eAAiBtyB,EAAGp3B,EAAEklD,YAAc9tB,EAAGp3B,EAAE8qD,WAAa,SAAU9qD,EAAG1D,GAClJ,OAAO0D,aAAa1D,QAEjBtT,IAEP,IAAIoX,EAAIJ,EAAEwpD,oBACNrrE,EAAI6hB,EAAEypD,gBACV,GAAI5wD,OAAO+L,OAAS/L,OAAOqtD,mBAAqBrtD,OAAO+L,KAAO/L,OAAOqtD,kBAAkBC,aAActtD,OAAOqyD,OAASryD,OAAOqtD,kBAAkBiF,gBAAkBtyD,OAAO+L,KAAO/L,OAAOqyD,OAAS,SAAUlrD,GACtM,OAAOA,IACLnH,OAAOqvD,cAAgBrvD,OAAOqvD,YAAYkD,qBAAuB,SAAUprD,GAC7EA,EAAEqoD,QAAUlqE,EAAEymB,KAAK5E,EAAEqoD,WACnB,aAAervD,SAASmuB,YAAcnnB,EAAE7W,MAAMkiE,MAAO/uD,SAAS,GAAI,gBAAkBtD,SAASmuB,YAActuB,OAAOyyD,aAAezyD,OAAOqvD,cAAgBrvD,OAAOqvD,YAAY0C,MAAO,CACpL,IAAIrqD,EAAI1H,OAAOqvD,cAAgBrvD,OAAOqvD,YAAY0C,MAAQ,oBAAsB,mBAChF/xD,OAAOnR,iBAAiB6Y,EAAGjE,QACtBA,IArCL,CAsCFzD,OAAO+uD,kBACTjmE,KAAKC,MAAO,aAAeD,KAAKC,MAAO,YAEvC,YACE,WACEA,KAAK2pE,KAAO,CACVC,QAAS,QACTC,iBAAkB,SAClBC,mBAAoB,OACpBC,6BAA8B,SAC9BvsB,QAAS,CACPwsB,qBAAsB,kBAAkB9rE,KAAKqhB,UAAUC,WACvDyqD,qBAAsB,iBAAiB/rE,KAAKqhB,UAAUC,WACtD0qD,oBAAqB,WACnB,IAAI9rD,EAAG1D,EAAMtT,EACb,GAAI,oBAAsB+iE,WAAY,OAAO,EAE7C,IAAmD/rD,EAAI,EAAG1D,GAArDtT,EAAI,CAAC,OAAQ,kBAAmB,cAA2BY,OAAQ0S,EAAI0D,EAAGA,IAAK,KAAQhX,EAAEgX,KAAW+rD,WAAW/oE,WAAY,OAAO,EAEvI,OAAO,EANY,IASvBkc,OAAQ,MAETvd,KAAKC,QACPD,KAvBKC,MAwBR,IAAI0a,EAxBI1a,KAwBE2pE,MACV,YACE,WACEjvD,EAAE0vD,YAAc,WACd,SAAShsD,KAET,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAOgX,EAAEisD,YAAc,SAAUjsD,GAC/B,IAAIhX,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAChB,OAAOH,EAAIjN,EAAE6M,GAAIhX,EAAIoX,EAAEX,KAAMthB,EAAIiiB,EAAE8rD,SAAU3rD,EAAIH,EAAE+rD,WAAY/0B,EAAIh3B,EAAEgsD,SAAUxqE,KAAKoB,UAAUgG,GAAK,WACjG,IAAIgX,EAAG7M,EACP,OAAO6M,EAAI,MAAQ7hB,EAAIi5C,EAAI,mBAAqBx1C,KAAKzD,GAAKyD,KAAKzD,UAAO,EAASyD,KAAKzD,KAAO,MAAQoiB,EAAI3e,KAAK2e,QAAK,EAAQ62B,EAAoC,OAA/BjkC,EAAI,MAAQ6M,EAAIA,EAAEhX,QAAK,GAAoBsT,EAAE3a,KAAKwR,EAAG6M,EAAGta,gBAAa,GAAWyN,EAAI6M,EAAEhX,GAAIsT,EAAE3a,KAAKwR,EAAG6M,EAAGta,cAEtOyN,EAAI,SAAU6M,GACf,IAAI1D,EAAGnJ,EACP,KAAMA,EAAI6M,EAAEjX,MAAMC,IAAK,MAAM,IAAI/E,MAAM,wCAA0C+b,GACjF,OAAO1D,EAAI,CACTmD,KAAMtM,EAAE,IACP,MAAQA,EAAE,GAAKmJ,EAAE4vD,SAAW/4D,EAAE,GAAKmJ,EAAE6vD,WAAah5D,EAAE,GAAI,MAAQA,EAAE,KAAOmJ,EAAE8vD,UAAW,GAAK9vD,GAC7FA,EAAI27B,SAASj1C,UAAUyC,MAAOuD,EAAI,6BAA8BgX,EAhBrD,KAkBfre,KAAKC,MAAO,WACb,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEla,OAAS,SAAU+Q,GACnB,SAASnK,IACPpH,KAAKo1C,KAAOI,EAGd,IAAIA,EACJ,OAAOp3B,EAAEhX,EAAGmK,GAAIikC,EAAI,EAAGpuC,EAAEsjE,eAAiB,SAAUtsD,GAClD,OAAOpe,KAAK2qE,SAASxwC,KAAKjf,MAAMkD,KAC/BhX,EAAEhG,UAAUwpE,qBAAuB,SAAUxsD,GAC9C,OAAOpe,KAAK2Z,eAAiB,MAAQyE,EAAIA,EAAEzE,iBAAc,IACxDvS,EAAEhG,UAAUypE,UAAY,SAAUzsD,GACnC,OAAOpe,OAASoe,GACfhX,EAAEhG,UAAU0pE,QAAU,WACvB,IAAI1sD,EAAG1D,EAAGnJ,EACV,OAAO6M,EAAI,WACT,IAAIA,EAAGhX,EAAGouC,EAGV,IAAK96B,KAFoD86B,EAAI,GAA7DpuC,EAAI,OAASgX,EAAIpe,KAAK+qE,yBAA2B3sD,EAAI,GAExC7M,EAAInK,EAAEsT,GAAI86B,EAAExnC,KAAK0M,EAAI,IAAMnJ,GAExC,OAAOikC,GACPz1C,KAAKC,MAAO,KAAOA,KAAK2Z,YAAYkE,KAAO,IAAM7d,KAAKo1C,IAAMh3B,EAAEpW,OAAS,IAAMoW,EAAEhI,KAAK,MAAQ,IAAM,KACnGhP,EAAEhG,UAAU2pE,sBAAwB,aAAgB3jE,EAAEhG,UAAU4pE,aAAe,WAChF,OAAO7wC,KAAKtf,UAAU7a,OACrBoH,EAAEhG,UAAU6pE,cAAgB,WAC7B,OAAOvwD,EAAEwwD,YAAY9vB,IAAIp7C,OACxBoH,EAAEhG,UAAU+pE,YAAc,WAC3B,OAAOnrE,KAAKo1C,GAAGt8B,YACd1R,EA5BM,CA6BTsT,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ0a,EAAEysB,OAAS,SAAU/oB,GACnB,IAAI1D,EAAGnJ,EAEP,IAAKmJ,KAAK0D,EAAG7M,EAAI6M,EAAE1D,GAAI1a,KAAK0a,GAAKnJ,EAEjC,OAAOvR,OAETD,KAAKC,MAAO,WACZ0a,EAAEysB,OAAO,CACPikC,MAAO,SAAUhtD,GACf,OAAOzc,WAAWyc,EAAG,OAGzBre,KAAKC,MAAO,WACZ,IAAIoe,EAAG7M,EACPmJ,EAAEysB,OAAO,CACPkkC,gBAAiB,SAAUjtD,GACzB,OAAOA,EAAEtgB,QAAQwI,OAAO,GAAKoU,EAAEmvD,iBAAkB,KAAM,IAAI/rE,QAAQwI,OAAO,GAAKoU,EAAEovD,mBAAoB,KAAM,MAE7GwB,kBAAmB,SAAUltD,GAC3B,OAAOA,EAAEtgB,QAAQ,QAAS,OAE5BytE,2BAA4BjlE,OAAO,QAAUoU,EAAEovD,mBAAqB,KACpE0B,0BAA2B,SAAUptD,GACnC,OAAOA,EAAEtgB,QAAQwI,OAAO,GAAKoU,EAAE6wD,2BAA2B/jE,OAAQ,KAAM,KAAK1J,QAAQ,UAAW,MAElG2tE,sBAAuB,SAAUrtD,EAAGhX,GAClC,IAAIouC,EAAGh3B,EAAGjiB,EAAGoiB,EACb,OAAOP,EAAI1D,EAAEwwD,YAAY9vB,IAAIh9B,IAAIhX,EAAIsT,EAAEwwD,YAAY9vB,IAAIh0C,IAAMY,OAASoW,EAAEpW,QAAuB2W,GAAbH,EAAIjN,EAAE6M,EAAGhX,IAAU,GAAIouC,EAAIh3B,EAAE,KAAoBg3B,GAAbj5C,EAAIgV,EAAEnK,EAAGgX,IAAU,GAAIO,EAAIpiB,EAAE,IAAK,CACtJmvE,MAAOl2B,EACPm2B,QAAShtD,MAGXpN,EAAI,SAAUA,EAAGnK,GACnB,IAAIouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAChB,OAAOvW,EAAEs5D,UAAUzjE,GAAK,CAAC,GAAI,KAA8C7K,GAA1BoiB,GAAbH,EAAIJ,EAAE7M,EAAGnK,IAAUwkE,YAAY5jE,SAAiB8f,EAAItJ,EAAEuV,OAAWyhB,EAAIjkC,EAAEs6D,WAAWjkE,MAAM,EAAGkgB,GAAGnR,OAAOpF,EAAEs6D,WAAWjkE,MAAMkgB,EAAInJ,IAAKP,EAAEhX,EAAGsT,EAAEwwD,YAAYY,eAAet2B,KAAOp3B,EAAEhX,EAAGmK,GAAI,CAACiN,EAAEotD,YAAY9yD,WAAYvc,EAAEqvE,YAAY9yD,cAC/PsF,EAAI,SAAUA,EAAG1D,GAClB,IAAInJ,EAAGnK,EAAGouC,EAEV,IAAKjkC,EAAI,EAAGnK,EAAIgX,EAAEpW,OAAQwtC,EAAI96B,EAAE1S,OAAQZ,EAAImK,GAAK6M,EAAErM,OAAOR,GAAGs5D,UAAUnwD,EAAE3I,OAAOR,KAAMA,IAEtF,KAAOnK,EAAImK,EAAI,GAAK6M,EAAErM,OAAO3K,EAAI,GAAGyjE,UAAUnwD,EAAE3I,OAAOyjC,EAAI,KAAMpuC,IAAKouC,IAEtE,MAAO,CACLo2B,YAAaxtD,EAAExW,MAAM2J,EAAGnK,GACxB2sB,OAAQxiB,KAGZxR,KAAKC,MAAO,WACZ0a,EAAEysB,OAAO,CACP4kC,WAAY,SAAU3tD,GACpB,IAAI1D,EAAGnJ,EAAGnK,EAGV,IAAKsT,KAFL,MAAQ0D,IAAMA,EAAI,IAAK7M,EAAI,GAEjB6M,EAAGhX,EAAIgX,EAAE1D,GAAInJ,EAAEmJ,GAAKtT,EAE9B,OAAOmK,GAETy6D,gBAAiB,SAAU5tD,EAAG1D,GAC5B,IAAInJ,EACJ,GAAI,MAAQ6M,IAAMA,EAAI,IAAK,MAAQ1D,IAAMA,EAAI,IAAKla,OAAOkW,KAAK0H,GAAGpW,SAAWxH,OAAOkW,KAAKgE,GAAG1S,OAAQ,OAAO,EAE1G,IAAKuJ,KAAK6M,EAAG,GAAQA,EAAE7M,KAAUmJ,EAAEnJ,GAAI,OAAO,EAE9C,OAAO,MAGXxR,KAAKC,MAAO,WACZ,IAAIoe,EAAI,GAAGxW,MACX8S,EAAEysB,OAAO,CACP8kC,eAAgB,SAAU7tD,EAAG1D,GAC3B,IAAInJ,EAAGnK,EAAGouC,EACV,GAAI,MAAQp3B,IAAMA,EAAI,IAAK,MAAQ1D,IAAMA,EAAI,IAAK0D,EAAEpW,SAAW0S,EAAE1S,OAAQ,OAAO,EAEhF,IAAKZ,EAAImK,EAAI,EAAGikC,EAAIp3B,EAAEpW,OAAQwtC,EAAIjkC,EAAGnK,IAAMmK,EAAG,GAAQ6M,EAAEhX,KAAUsT,EAAEtT,GAAI,OAAO,EAE/E,OAAO,GAET8kE,gBAAiB,SAAU9tD,EAAG7M,GAC5B,OAAO,MAAQ6M,IAAMA,EAAI,IAAK,MAAQ7M,IAAMA,EAAI,IAAKmJ,EAAEuxD,eAAe7tD,EAAExW,MAAM,EAAG2J,EAAEvJ,QAASuJ,IAE9F46D,YAAa,WACX,IAAIzxD,EAAGnJ,EAAGnK,EACV,OAAOmK,EAAIzN,UAAU,GAAI4W,EAAI,GAAK5W,UAAUkE,OAASoW,EAAEre,KAAK+D,UAAW,GAAK,IAAIsD,EAAImK,EAAE3J,MAAM,IAAM6uB,OAAO5yB,MAAMuD,EAAGsT,GAAItT,GAExHglE,qBAAsB,SAAUhuD,EAAG1D,GACjC,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAElC,IAAK,MAAQD,IAAMA,EAAI,IAAK,MAAQ1D,IAAMA,EAAI,IAAKnJ,EAAI,GAAI5U,EAAI,GAAI64C,EAAI,IAAI0sB,IAAO1jD,EAAI,EAAGsJ,EAAI1J,EAAEpW,OAAQ8f,EAAItJ,EAAGA,IAAKH,EAAID,EAAEI,GAAIg3B,EAAElwC,IAAI+Y,GAEnI,IAAKjX,EAAI,IAAI86D,IAAO3lE,EAAI,EAAG0sB,EAAIvO,EAAE1S,OAAQihB,EAAI1sB,EAAGA,IAAK8hB,EAAI3D,EAAEne,GAAI6K,EAAE9B,IAAI+Y,GAAIm3B,EAAEl7B,IAAI+D,IAAM9M,EAAEvD,KAAKqQ,GAE5F,IAAKM,EAAI,EAAGkJ,EAAIzJ,EAAEpW,OAAQ6f,EAAIlJ,EAAGA,IAAKN,EAAID,EAAEO,GAAIvX,EAAEkT,IAAI+D,IAAM1hB,EAAEqR,KAAKqQ,GAEnE,MAAO,CACLqtD,MAAOn6D,EACPo6D,QAAShvE,OAIfoD,KAAKC,MAAO,WACZ,IAAIoe,EAAG7M,EAAGnK,EAAGouC,EACbp3B,EAAI,KAAM7M,EAAI,KAAMikC,EAAI,KAAMpuC,EAAI,KAAMsT,EAAEysB,OAAO,CAC/CklC,qBAAsB,WACpB,OAAO,MAAQjuD,EAAIA,EAAIA,EAAI1D,EAAE4xD,wBAAwB31D,OAAO+D,EAAE6xD,2BAEhEC,eAAgB,SAAUpuD,GACxB,OAAO1D,EAAE4C,OAAOmvD,gBAAgBruD,IAElCmuD,uBAAwB,WACtB,OAAO,MAAQh7D,EAAIA,EAAIA,EAAI/Q,OAAOkW,KAAKgE,EAAE4C,OAAOmvD,kBAElDC,cAAe,SAAUtuD,GACvB,OAAO1D,EAAE4C,OAAOqvD,eAAevuD,IAEjCkuD,sBAAuB,WACrB,OAAO,MAAQ92B,EAAIA,EAAIA,EAAIh1C,OAAOkW,KAAKgE,EAAE4C,OAAOqvD,iBAElDC,sBAAuB,WACrB,IAAIxuD,EAAG7M,EACP,OAAO,MAAQnK,EAAIA,EAAIA,EAAI,WACzB,IAAIA,EAAGouC,EAGP,IAAKp3B,KAFyBo3B,EAAI,GAAlCpuC,EAAIsT,EAAE4C,OAAOmvD,gBAEwB,OAAxBl7D,EAAInK,EAAEgX,GAAGyuD,gBAA4Br3B,EAAExnC,KAAKuD,GAEzD,OAAOikC,EANkB,OAU/Bz1C,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EAAI,GAAGoL,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGV0D,EAAIhH,SAAS01D,gBAAiBv7D,EAAI,OAASnK,EAAI,OAASouC,EAAI,OAASh3B,EAAIJ,EAAE2uD,iBAAmBvuD,EAAIJ,EAAE89B,uBAAyB1G,EAAIp3B,EAAE+9B,mBAAqB/0C,EAAIgX,EAAE4jD,mBAAoBtnD,EAAEysB,OAAO,CACzLyS,YAAa,SAAUroC,EAAGnK,GACxB,IAAOoX,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EAAG4sD,EACrC,OAA+Bn6C,GAAxBtsB,EAAI,MAAQyK,EAAIA,EAAI,IAAU4lE,UAAWllD,EAAInrB,EAAEswE,iBAAkB7J,EAAIzmE,EAAEuwE,aAAcvuD,EAAIhiB,EAAEwwE,QAAStlD,EAAIlrB,EAAE67B,eAAgB37B,EAAIF,EAAEywE,MAAO5uD,EAAI,MAAQyK,EAAIA,EAAI7K,EAAGC,EAAIyJ,EAAOs7C,EAAG5sD,EAAI,cAAgBmI,GAAGpiB,EAAI,SAAU6hB,GACtN,IAAI7M,EACJ,OAAO,MAAQ1U,GAAK,MAAQA,GAAKN,EAAE8E,UAE/B,OAF0CkQ,EAAImJ,EAAE2yD,2BAA2BjvD,EAAExZ,OAAQ,CACvFqoE,iBAAkB5uD,OACF,MAAQ+kD,GAAKA,EAAErjE,KAAKwR,EAAG6M,EAAG7M,GAAIsW,GAAKzJ,EAAEoa,sBAAmB,IACvEn3B,QAAU,WACb,OAAOmd,EAAEzY,oBAAoBwL,EAAGhV,EAAGia,IAClCgI,EAAE1Y,iBAAiByL,EAAGhV,EAAGia,GAAIja,GAElC+wE,gBAAiB,SAAUlvD,EAAG7M,GAC5B,OAAO,MAAQA,IAAMA,EAAI,IAAKA,EAAE67D,MAAQ,EAAG1yD,EAAEk/B,YAAYx7B,EAAG7M,IAE9Dwb,aAAc,SAAUxb,EAAGnK,GACzB,IAAIouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EACtB,OAA+BoB,GAAxBpB,EAAI,MAAQzgB,EAAIA,EAAI,IAAU4lE,UAAWxuD,EAAIqJ,EAAE4yB,QAASl+C,EAAIsrB,EAAE6yB,WAAYlF,EAAI3tB,EAAEwoB,WAAY1xB,EAAI,MAAQsK,EAAIA,EAAI7K,EAAGI,GAAU,IAANA,EAAUjiB,GAAU,IAANA,GAAUurB,EAAI1Q,SAAS+Z,YAAY,WAAakO,UAAU9tB,EAAGiN,EAAGjiB,GAAI,MAAQi5C,GAAK96B,EAAEysB,OAAOpnC,KAAK+nB,EAAG0tB,GAAI72B,EAAEyS,cAActJ,IAEpQylD,uBAAwB,SAAUnvD,EAAG1D,GACnC,OAAO,KAAO,MAAQ0D,EAAIA,EAAE6T,cAAW,GAAU1gB,EAAExR,KAAKqe,EAAG1D,QAAK,GAElE2yD,2BAA4B,SAAUjvD,EAAG7M,GACvC,IAAInK,EAAGouC,EAAGh3B,EAEV,IAA6BpX,GAAxBouC,EAAI,MAAQjkC,EAAIA,EAAI,IAAU07D,iBAAkBzuD,EAAIg3B,EAAEg4B,UAAW,MAAQpvD,GAAKA,EAAE6T,WAAauO,KAAK+lC,cAAenoD,EAAIA,EAAEgH,WAE5H,GAAI,MAAQhH,EAAG,CACb,GAAI,MAAQhX,EAAG,OAAOgX,EACtB,GAAIA,EAAEi/B,SAAW,MAAQ7+B,EAAG,OAAOJ,EAAEi/B,QAAQj2C,GAE7C,KAAOgX,GAAKA,IAAMI,GAAI,CACpB,GAAI9D,EAAE6yD,uBAAuBnvD,EAAGhX,GAAI,OAAOgX,EAC3CA,EAAIA,EAAEgH,cAIZqoD,iBAAkB,SAAUrvD,GAC1B,KAAO,MAAQA,EAAIA,EAAE8a,uBAAoB,GAAS9a,EAAIA,EAAE8a,kBAExD,OAAO9a,GAETsvD,qBAAsB,SAAUtvD,GAC9B,OAAOhH,SAAS8c,gBAAkB9V,GAAK1D,EAAEizD,oBAAoBvvD,EAAGhH,SAAS8c,gBAE3Ey5C,oBAAqB,SAAUvvD,EAAG1D,GAChC,GAAI0D,GAAK1D,EAAG,KAAOA,GAAI,CACrB,GAAIA,IAAM0D,EAAG,OAAO,EACpB1D,EAAIA,EAAE0K,aAGVwoD,+BAAgC,SAAUxvD,EAAG1D,GAC3C,IAAInJ,EACJ,GAAI6M,EAAG,OAAOA,EAAE6T,WAAauO,KAAKqtC,UAAYzvD,EAAI,IAAM1D,EAAI,OAASnJ,EAAI6M,EAAE4G,YAAczT,EAAI6M,EAAIA,EAAE41B,WAAW/P,KAAKvpB,EAAI,IAEzHozD,kCAAmC,SAAU1vD,EAAG7M,GAC9C,IAAInK,EACJ,OAAOA,EAAIsT,EAAEkzD,+BAA+BxvD,EAAG7M,GAAImJ,EAAE2yD,2BAA2BjmE,IAElF2mE,qBAAsB,SAAU3vD,GAC9B,IAAI1D,EAEJ,GAAI,MAAQ0D,EAAIA,EAAEgH,gBAAa,EAAQ,CACrC,IAAK1K,EAAI,EAAG0D,EAAIA,EAAEg+B,iBAAkB1hC,IAEpC,OAAOA,IAGXszD,WAAY,SAAU5vD,GACpB,IAAI1D,EACJ,OAAO,MAAQ0D,GAAK,OAAS1D,EAAI0D,EAAEgH,YAAc1K,EAAEuK,YAAY7G,QAAK,GAEtE6vD,SAAU,SAAU7vD,EAAG1D,GACrB,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAChB,OAA+B6K,GAAxBouC,EAAI,MAAQ96B,EAAIA,EAAI,IAAUwzD,gBAAiB1vD,EAAIg3B,EAAE24B,YAAa58D,EAAIikC,EAAE44B,uBAAwB7xE,EAAI,WACzG,OAAQ6K,GACN,IAAK,UACH,OAAOinE,WAAWC,aAEpB,IAAK,OACH,OAAOD,WAAWE,UAEpB,IAAK,UACH,OAAOF,WAAWG,aAEpB,QACE,OAAOH,WAAWI,UAZmF,GActGr3D,SAASs3D,iBAAiBtwD,EAAG7hB,EAAG,MAAQiiB,EAAIA,EAAI,MAAY,IAANjN,IAE7Do9D,QAAS,SAAUvwD,GACjB,IAAI1D,EACJ,OAAO,MAAQ0D,GAAK,OAAS1D,EAAI0D,EAAEuwD,SAAWj0D,EAAE1I,mBAAgB,GAElE48D,YAAa,SAAUxwD,EAAG1D,GACxB,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EAAG4sD,EAE3C,GAAI,MAAQ1oD,IAAMA,EAAI,IAAK,iBAAmB0D,EAAYA,GAAP1D,EAAI0D,GAASuwD,QAAWj0D,EAAI,CAC7E21B,WAAY31B,GACX86B,EAAIp+B,SAASwN,cAAcxG,GAAI,MAAQ1D,EAAEm0D,WAAa,MAAQn0D,EAAE21B,aAAe31B,EAAE21B,WAAa,IAAK31B,EAAE21B,WAAWy+B,gBAAkBp0D,EAAEm0D,UAAWn0D,EAAE21B,WAGlJ,IAAK1xB,KAFLkJ,EAAInN,EAAE21B,WAEO+yB,EAAIv7C,EAAElJ,GAAI62B,EAAE/xC,aAAakb,EAAGykD,GAG3C,GAAI1oD,EAAE/J,MAGJ,IAAKgO,KAFLhiB,EAAI+d,EAAE/J,MAEOyyD,EAAIzmE,EAAEgiB,GAAI62B,EAAE7kC,MAAMgO,GAAKykD,EAGtC,GAAI1oD,EAAEtK,KAGJ,IAAKuO,KAFLN,EAAI3D,EAAEtK,KAEOgzD,EAAI/kD,EAAEM,GAAI62B,EAAEpb,QAAQzb,GAAKykD,EAGxC,GAAI1oD,EAAEtV,UAAW,IAAiCoZ,EAAI,EAAGsJ,GAAnCjrB,EAAI6d,EAAEtV,UAAUnK,MAAM,MAAmB+M,OAAQ8f,EAAItJ,EAAGA,IAAKpX,EAAIvK,EAAE2hB,GAAIg3B,EAAEnwC,UAAUC,IAAI8B,GAC7G,GAAIsT,EAAEnX,cAAgBiyC,EAAEjyC,YAAcmX,EAAEnX,aAAcmX,EAAEs5B,WAAY,IAAkCz3C,EAAI,EAAG0sB,GAApCzS,EAAI,GAAGG,OAAO+D,EAAEs5B,aAA0BhsC,OAAQihB,EAAI1sB,EAAGA,IAAKgV,EAAIiF,EAAEja,GAAIi5C,EAAE5vB,YAAYrU,GAC/J,OAAOikC,GAETu5B,iBAAkB,WAChB,IAAI3wD,EAAG7M,EACP,OAAO,MAAQmJ,EAAEs0D,cAAgBt0D,EAAEs0D,cAAgBt0D,EAAEs0D,cAAgB,WACnE,IAAI5nE,EAAGouC,EAGP,IAAKp3B,KAFyBo3B,EAAI,GAAlCpuC,EAAIsT,EAAE4C,OAAOmvD,iBAEAl7D,EAAInK,EAAEgX,GAAGuwD,UAAcn5B,EAAExnC,KAAKuD,GAE3C,OAAOikC,EAN4D,IASvEy5B,qBAAsB,SAAU7wD,GAC9B,OAAO1D,EAAEw0D,wBAAwB,MAAQ9wD,EAAIA,EAAE4G,gBAAa,IAE9DmqD,6BAA8B,SAAU/wD,GACtC,IAAI7M,EAAGnK,EACP,OAAOmK,EAAImJ,EAAEi0D,QAAQvwD,GAAI7hB,EAAEwD,KAAK2a,EAAEq0D,mBAAoBx9D,IAAM,IAAMnK,EAAIsT,EAAEi0D,QAAQvwD,EAAE4G,YAAazoB,EAAEwD,KAAK2a,EAAEq0D,mBAAoB3nE,GAAK,IAEnIgoE,iBAAkB,SAAUhxD,EAAG7M,GAE7B,OAAY,MAAQA,EAAIA,EAAI,CAC1ByuD,QAAQ,IACPA,OAAYtlD,EAAEw0D,wBAAwB9wD,GAAK1D,EAAEw0D,wBAAwB9wD,KAAO1D,EAAEw0D,wBAAwB9wD,EAAE4G,aAAetK,EAAEy0D,6BAA6B/wD,IAE3J8wD,wBAAyB,SAAU9wD,GACjC,OAAO1D,EAAE20D,kBAAkBjxD,IAAM,WAAa,MAAQA,EAAIA,EAAEhO,UAAO,IAErEi/D,kBAAmB,SAAUjxD,GAC3B,OAAQ,MAAQA,EAAIA,EAAE6T,cAAW,KAAYuO,KAAK8uC,cAEpDC,mBAAoB,SAAUnxD,EAAG7M,GAC/B,IAAInK,EACJ,OAAOA,GAAK,MAAQmK,EAAIA,EAAI,IAAIsM,KAAMO,EAAI1D,EAAE80D,eAAepxD,GAAKA,EAAEhO,OAASsK,EAAEmvD,kBAAmBziE,GAAIgX,EAAEgH,WAAWgV,QAAQq1C,mBAAqBroE,OAAS,EAASsT,EAAE60D,mBAAmBnxD,EAAE4G,iBAAc,GAEvM0qD,wBAAyB,SAAUtxD,GACjC,OAAO1D,EAAE6yD,uBAAuBnvD,EAAG1D,EAAEi1D,eAAeC,qBAEtDC,oBAAqB,SAAUzxD,GAC7B,OAAO1D,EAAE80D,eAAepxD,IAAM,MAAQ,MAAQA,EAAIA,EAAEhO,UAAO,IAE7Do/D,eAAgB,SAAUpxD,GACxB,OAAQ,MAAQA,EAAIA,EAAE6T,cAAW,KAAYuO,KAAKqtC,cAGtD9tE,KAAKC,MAAO,WACZ,IAAIoe,EAAG7M,EAAGnK,EAAGouC,EAAGh3B,EAChBJ,EAAI1D,EAAEqxD,WAAYv2B,EAAI96B,EAAEsxD,gBAAiBtxD,EAAEysB,OAAO,CAChD2oC,eAAgB1oE,EAAI,SAAUgX,GAC5B,IAAI1D,EACJ,GAAI,MAAQ0D,EAAG,OAAOK,MAAMisB,QAAQtsB,KAAOA,EAAI,CAACA,EAAGA,IAAK,CAAC7M,EAAE6M,EAAE,IAAK7M,EAAE,OAASmJ,EAAI0D,EAAE,IAAM1D,EAAI0D,EAAE,MAEjG2xD,iBAAkB,SAAU3xD,GAC1B,IAAI1D,EAAGnJ,EAAGikC,EACV,GAAI,MAAQp3B,EAAG,OAAiBo3B,GAAVjkC,EAAInK,EAAEgX,IAAU,GAAI1D,EAAInJ,EAAE,GAAIiN,EAAEg3B,EAAG96B,IAE3Ds1D,eAAgB,SAAU5xD,EAAG1D,GAC3B,IAAInJ,EAAGikC,EAAGj5C,EAAGoiB,EAAGmJ,EAAGmB,EACnB,GAAI,MAAQ7K,GAAK,MAAQ1D,EAAG,OAAiB86B,GAAVj5C,EAAI6K,EAAEgX,IAAU,GAAI7M,EAAIhV,EAAE,GAAc0sB,GAAVtK,EAAIvX,EAAEsT,IAAU,GAAIoN,EAAInJ,EAAE,GAAIH,EAAEg3B,EAAGvsB,IAAMzK,EAAEjN,EAAGuW,MAE/GvW,EAAI,SAAUmJ,GAChB,MAAO,iBAAmBA,EAAIA,EAAI0D,EAAE1D,IACnC8D,EAAI,SAAUJ,EAAG1D,GAClB,MAAO,iBAAmB0D,EAAIA,IAAM1D,EAAI86B,EAAEp3B,EAAG1D,KAE/C3a,KAAKC,MAAO,WACZ,IAAIoe,EAAG7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EACtBjE,EAAEwoD,gBAAkB,SAAU9kD,EAAG1D,GAC/B,IAAInJ,EAAGnK,EACP,OAAO,MAAQsT,IAAMA,EAAI,IAAK0D,EAAIA,EAAEpM,cAAe0I,EAAIiE,EAAEjE,IAAenJ,GAAXnK,EAAI7K,EAAEme,IAAWu1D,qBAAuB7oE,EAAE6oE,WAAYz6B,EAAEjkC,EAAG6M,IAAKI,EAAEJ,EAAGhX,IACjIouC,EAAI,SAAUp3B,EAAG1D,GAElB,OAAWtT,EAAEsT,GAAMnX,YAAc6a,EAAEtgB,QAAQ,MAAO4c,IACjDtT,EAAI,SAAUsT,GACf,IAAInJ,EAAGnK,EACP,OAAOmK,EAAI6F,SAASwN,cAAc,UAAYnhB,aAAa,OAAQ,YAAa8N,EAAE9N,aAAa,gBAAiBiX,EAAE1I,gBAAiB5K,EAAIgX,MAAQ7M,EAAE9N,aAAa,QAAS2D,GAAIgQ,SAASomB,KAAKtL,aAAa3gB,EAAG6F,SAASomB,KAAKxY,YAAazT,GACnO6M,EAAI,WACL,IAAIA,EACJ,OAAQA,EAAI7M,EAAE,mBAAqBA,EAAE,cAAgB6M,EAAE/a,aAAa,gBAAa,GAChFkO,EAAI,SAAU6M,GACf,OAAOhH,SAASomB,KAAKl5B,cAAc,aAAe8Z,EAAI,MACrD7hB,EAAI,SAAU6hB,GACf,IAAI1D,EAAGnJ,EAAGnK,EAGV,IAAKsT,KAFLnJ,EAAI,GAEM6M,EAAGhX,EAAIgX,EAAE1D,GAAInJ,EAAEmJ,GAAK,mBAAqBtT,EAAI,CACrD+I,MAAO/I,GACLA,EAEJ,OAAOmK,GACNoN,EAAI,WACL,IAAIP,EACJ,OAAOA,EAAI,SAAUA,GACnB,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAAK9D,EAAI,GAAiDnJ,EAAI,EAAGikC,GAApDh3B,EAAI,CAAC,aAAc,UAAW,eAA4BxW,OAAQwtC,EAAIjkC,EAAGA,IAAemJ,EAAVtT,EAAIoX,EAAEjN,IAAW6M,EAAEhX,UAAWgX,EAAEhX,GAE3H,OAAOsT,GACNzD,OAAOgsD,eAAiB,SAAUvoD,GACnC,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAChB,OAAOA,EAAI6hB,EAAE1D,GAAI86B,EAAIj5C,EAAE0H,WAAYsN,EAAIhV,EAAEirC,QAASpgC,EAAI7K,EAAEkrC,WAAY+N,IAAMh3B,EAAIjN,EAAGA,EAAI,WACnF,OAAOvR,KAAKqhD,cAAgBrhD,KAAKqhD,aAAc,EAAI7L,EAAEz1C,KAAKC,OAAQ,MAAQwe,EAAIA,EAAEze,KAAKC,WAAQ,IAC3FuR,IAAMmJ,EAAEw1D,kBAAoB3+D,GAAInK,IAAMsT,EAAEy1D,qBAAuB/oE,GAAIsT,GACrE,SAAUA,GACZ,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EACb,OAAiBg3B,GAAVh3B,EAAIJ,EAAE1D,IAAUzW,WAAYsN,EAAIiN,EAAEgpB,QAASpgC,EAAIoX,EAAEipB,WAAY+N,IAAM96B,EAAEutD,gBAAkBzyB,GAAIjkC,IAAMmJ,EAAEssD,iBAAmBz1D,GAAInK,IAAMsT,EAAEusD,iBAAmB7/D,GAAIsT,GAf7J,GAiBF8D,EACIvH,OAAOgsD,eAAiB,SAAU7kD,EAAG1D,GAC1C,IAAInJ,EACJ,OAAOA,EAAI,WACT,MAAO,iBAAmBskC,QAAUA,QAAQC,UAAU3V,YAAa,GAAI5uB,GAAK4uB,YAAYt8B,MAAM7D,OAC7FQ,OAAO6Y,eAAe9H,EAAEnQ,UAAW++B,YAAY/+B,WAAYZ,OAAO6Y,eAAe9H,EAAG4uB,aAAc3/B,OAAOwZ,iBAAiBzI,EAAEnQ,UAAWsZ,GAAIzD,OAAOgsD,eAAemN,OAAOhyD,EAAG7M,GAAIA,GAChL,SAAU6M,EAAG1D,GACf,IAAInJ,EAAGnK,EACP,OAAOA,EAAI5G,OAAO4lC,OAAOjG,YAAY/+B,UAAWsZ,GAAInJ,EAAI6F,SAAS8rD,gBAAgB9kD,EAAG,CAClFhd,UAAWgG,IACT5G,OAAOC,eAAe2G,EAAG,cAAe,CAC1C+I,MAAOoB,IACLA,IAGRxR,KAAKC,MAAO,WACZ,IAAIoe,EAAG7M,EACPmJ,EAAEysB,OAAO,CACPkpC,gBAAiB,WACf,IAAIjyD,EACJ,OAAOA,EAAInH,OAAOq5D,gBAAkBC,WAAa,EAAInyD,OAAI,GAE3DoyD,YAAa,WACX,IAAIj/D,EAAGnK,EACP,OAAQmK,EAAI,OAASnK,EAAIsT,EAAE21D,mBAAqBjpE,EAAEqpE,WAAW,QAAK,KAAYryD,EAAE7M,GAAKA,OAAI,GAE3Fm/D,YAAa,SAAUtyD,GACrB,IAAI7M,EACJ,OAAOA,EAAI0F,OAAOq5D,gBAAkBK,kBAAmBp/D,EAAEq/D,SAASxyD,GAAI1D,EAAEm2D,wBAAwB3f,YAEhG9yC,EAAI,SAAUA,GAChB,OAAO7M,EAAE6M,EAAE0yD,iBAAmBv/D,EAAE6M,EAAE2yD,eACjCx/D,EAAI,SAAU6M,GACf,OAAQ5d,OAAOi1C,eAAer3B,KAEhCre,KAAKC,MAAO,WACZ,IAAIoe,EACJA,EAAI,CACF,uCAAwC,QACvC1D,EAAEysB,OAAO,CACV6pC,wBAAyB,SAAU5yD,GACjC,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAOA,EAAIgX,EAAE6yD,QAAQ,cAAe1/D,EAAI6M,EAAE6yD,QAAQ,aAAc7pE,GAAKmK,GAAKmJ,GAAI,IAAIw2D,WAAYC,gBAAgB5/D,EAAG,aAAase,MAAQtsB,cAAgB6D,GAAKsT,EAAEpW,cAAc,UAAO,EAAU,MAAQ8C,EAAIA,EAAEY,YAAS,GAErNopE,uBAAwB,SAAU12D,GAChC,IAAInJ,EAAGnK,EAEP,GAAI,OAAS,MAAQsT,EAAIA,EAAE22D,aAAU,GAAS,CAC5C,IAAK9/D,KAAK6M,EAAG,GAAIhX,EAAIgX,EAAE7M,IAAK,WAC1B,IACE,OAAOmJ,EAAE22D,QAAQ9/D,EAAGnK,GAAIsT,EAAEu2D,QAAQ1/D,KAAOnK,EACzC,MAAOgX,KAHiB,GAIvB,OAEL,OAAO,IAGXkzD,0BACS,UAAUpzE,KAAKqhB,UAAUwgC,UAAY,SAAU3hC,GACpD,OAAOA,EAAEmzD,SACP,SAAUnzD,GACZ,OAAOA,EAAEua,YAIf54B,KAAKC,MAAO,WACZ0a,EAAEysB,OAAO,CACPqqC,YAAa,qVACbC,aAAc,WACZ,IAAIrzD,EAAG7M,EAAGnK,EAAGouC,EACb,OAAOjkC,EAAImJ,EAAEk0D,YAAY,QAAS,CAChCtX,IAAK,OACLz5C,KAAM,IACN6zD,QAAS,WACPtzD,EAAI1D,EAAEk0D,YAAY,SAAWhpD,YAAYrU,GAAInK,EAAI,WACnD,IACE,OAAO,IAAIuqE,SAASvzD,GAAG9D,IAAI/I,EAAEmgE,SAC7B,MAAOh3D,KAH0C,GAIhD86B,EAAI,WACP,IACE,OAAOjkC,EAAE0qC,QAAQ,uBACjB,MAAO79B,KAHF,GAIJhX,EAAI,SAAUsT,GACjB,OAAOnJ,EAAEpB,MAAQuK,EAAG,IAAIi3D,SAASvzD,GAAG1d,IAAI6Q,EAAEmgE,UACxCl8B,EAAI,SAAUp3B,GAChB,OAAO7M,EAAEpB,MAAQiO,EAAG7M,EAAE0qC,QAAQ,aAAe,MAAQ,OACnD,SAAU79B,GACZ,IAAI7M,EACJ,OAAOA,EAAI6M,EAAE5a,OAAOuO,OAAO,GAAI2I,EAAE82D,YAAYtzE,KAAKqT,GAAK,MAAQ,OApBrD,MAwBhBxR,KAAKC,MAAO,aAAeD,KAAKC,MAAO,WACvC,IAAIoe,EACA7M,EAAI,SAAU6M,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGtT,EAAErH,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOjkC,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFhX,EAAI,GAAGmT,eAEX6D,EAAI1D,EAAEuxD,eAAgBvxD,EAAEk3D,KAAO,SAAUxqE,GACvC,SAASouC,EAAEp3B,GACT,MAAQA,IAAMA,EAAI,IAAKpe,KAAK+xC,OAASx1C,EAAE6hB,GAAIo3B,EAAEi1B,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAGjF,IAAI0a,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAChB,OAAO1X,EAAEikC,EAAGpuC,GAAIouC,EAAEq8B,8BAAgC,SAAUzzD,GAC1D,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGj5C,EAAGoiB,EACnB,GAAI,MAAQP,IAAMA,EAAI,KAAMA,EAAEpW,OAAQ,OAAO,IAAIhI,KAEjD,IAAkBoH,GAAbsT,EAAI8D,EAAEJ,EAAE,KAAW0zD,UAA2BvgE,EAAI,EAAGikC,GAAvB72B,EAAIP,EAAExW,MAAM,IAAiBI,OAAQwtC,EAAIjkC,EAAGA,IAAKhV,EAAIoiB,EAAEpN,GAAInK,EAAIsT,EAAEq3D,oBAAoBvzD,EAAEjiB,IAAKme,EAAIA,EAAE9S,MAAMR,GAE3I,OAAOsT,GACN86B,EAAE4F,IAAM,SAAUh9B,GACnB,OAAOI,EAAEJ,IACRo3B,EAAEp0C,UAAUkE,IAAM,SAAU8Y,EAAG1D,GAChC,OAAO1a,KAAKgyE,MAAMlqD,EAAE1J,EAAG1D,KACtB86B,EAAEp0C,UAAUoE,OAAS,SAAU4Y,GAChC,OAAO,IAAI1D,EAAEk3D,KAAKr1E,EAAEyD,KAAK+xC,OAAQ3zB,KAChCo3B,EAAEp0C,UAAUV,IAAM,SAAU0d,GAC7B,OAAOpe,KAAK+xC,OAAO3zB,IAClBo3B,EAAEp0C,UAAUkZ,IAAM,SAAU8D,GAC7B,OAAOA,KAAKpe,KAAK+xC,QAChByD,EAAEp0C,UAAU4wE,MAAQ,SAAU5zD,GAC/B,OAAO,IAAI1D,EAAEk3D,KAAKjzD,EAAE3e,KAAK+xC,OAAQ9oB,EAAE7K,MAClCo3B,EAAEp0C,UAAUwG,MAAQ,SAAUwW,GAC/B,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAEb,IAAKA,EAAI,GAAIjN,EAAI,EAAGikC,EAAIp3B,EAAEpW,OAAQwtC,EAAIjkC,EAAGA,IAAKnK,EAAIgX,EAAE7M,GAAIvR,KAAKsa,IAAIlT,KAAOoX,EAAEpX,GAAKpH,KAAK+xC,OAAO3qC,IAE3F,OAAO,IAAIsT,EAAEk3D,KAAKpzD,IACjBg3B,EAAEp0C,UAAU0wE,QAAU,WACvB,OAAOtxE,OAAOkW,KAAK1W,KAAK+xC,SACvByD,EAAEp0C,UAAU2wE,oBAAsB,SAAU3zD,GAC7C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGj5C,EAEhB,IAAK6hB,EAAII,EAAEJ,GAAwB7hB,EAAI,GAAIme,EAAI,EAAGtT,GAAnCouC,EAAIx1C,KAAK8xE,WAAgC9pE,OAAQZ,EAAIsT,EAAGA,IAAKnJ,EAAIikC,EAAE96B,GAAI1a,KAAK+xC,OAAOxgC,KAAO6M,EAAE2zB,OAAOxgC,IAAMhV,EAAEyR,KAAKuD,GAE/H,OAAOhV,GACNi5C,EAAEp0C,UAAUypE,UAAY,SAAUnwD,GACnC,OAAO0D,EAAEpe,KAAKiyE,UAAWzzD,EAAE9D,GAAGu3D,YAC7Bz8B,EAAEp0C,UAAU8wE,QAAU,WACvB,OAAO,IAAMlyE,KAAK8xE,UAAU9pE,QAC3BwtC,EAAEp0C,UAAU6wE,QAAU,WACvB,IAAI7zD,EAAG1D,EAAGnJ,EACV,OAAQ,MAAQvR,KAAKg4B,MAAQh4B,KAAKg4B,MAAQh4B,KAAKg4B,MAAQ,WACrD,IAAI5wB,EAGJ,IAAKgX,KAFL1D,EAAI,GAAItT,EAAIpH,KAAK+xC,OAEJxgC,EAAInK,EAAEgX,GAAI1D,EAAE1M,KAAKoQ,EAAG7M,GAEjC,OAAOmJ,GACP3a,KAAKC,OAAO4H,MAAM,IACnB4tC,EAAEp0C,UAAUuU,SAAW,WACxB,OAAOpZ,EAAEyD,KAAK+xC,SACbyD,EAAEp0C,UAAUuc,OAAS,WACtB,OAAO3d,KAAK2V,YACX6/B,EAAEp0C,UAAU2pE,sBAAwB,WACrC,MAAO,CACLh5B,OAAQ5X,KAAKtf,UAAU7a,KAAK+xC,UAE7BjqB,EAAI,SAAU1J,EAAG1D,GAClB,IAAInJ,EACJ,OAAOA,EAAI,IAAM6M,GAAK1D,EAAGnJ,GACxBoN,EAAI,SAAUP,EAAG1D,GAClB,IAAInJ,EAAGnK,EAAGouC,EAGV,IAAKjkC,KAFLnK,EAAI7K,EAAE6hB,GAEI1D,EAAG86B,EAAI96B,EAAEnJ,GAAInK,EAAEmK,GAAKikC,EAE9B,OAAOpuC,GACN7K,EAAI,SAAU6hB,EAAG1D,GAClB,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAEhB,IAAKiiB,EAAI,GAA+BjN,EAAI,EAAGikC,GAAlCj5C,EAAIiE,OAAOkW,KAAK0H,GAAG0f,QAAqB91B,OAAQwtC,EAAIjkC,EAAGA,KAAKnK,EAAI7K,EAAEgV,MAAUmJ,IAAM8D,EAAEpX,GAAKgX,EAAEhX,IAExG,OAAOoX,GACNA,EAAI,SAAUJ,GACf,OAAOA,aAAa1D,EAAEk3D,KAAOxzD,EAAI,IAAI1D,EAAEk3D,KAAKxzD,IAC3C6K,EAAI,SAAU7K,GACf,OAAOA,aAAa1D,EAAEk3D,KAAOxzD,EAAE2zB,OAAS3zB,GACvCo3B,EAjF0B,CAkF7B96B,EAAEla,SACJT,KAAKC,MAAO,WACZ0a,EAAEy3D,YAAc,WACd,SAAS/zD,EAAEA,EAAG1D,GACZ,IAAInJ,EAAGnK,EACPpH,KAAKoyE,QAAU,MAAQh0D,EAAIA,EAAI,GAAIhX,EAAIsT,EAAE23D,OAAO9gE,EAAImJ,EAAE43D,UAActyE,KAAKqyE,MAAQjrE,EAAGpH,KAAKoyE,QAAUpyE,KAAK2Z,YAAY44D,aAAavyE,KAAKoyE,QAAS,CAC7IE,OAAQ/gE,EACR8gE,MAAOryE,KAAKqyE,MAAQ,KAIxB,OAAOj0D,EAAEm0D,aAAe,SAAUn0D,EAAG1D,GACnC,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAE5B,IAAK,MAAQzJ,IAAMA,EAAI,IAA6Bo3B,GAAxB3tB,EAAI,MAAQnN,EAAIA,EAAI,IAAU23D,OAAO9gE,EAAIsW,EAAEyqD,SAAa,MAAQ98B,IAAMA,EAAI,GAAIvsB,EAAI,GAAI1sB,EAAI,EAAGoiB,EAAIP,EAAEpW,OAAQ2W,EAAIpiB,EAAGA,IAAK,CACjJ,GAAIurB,EAAI1J,EAAE7hB,GAAIiiB,EAAG,CACf,IAAK,mBAAqBsJ,EAAE0qD,aAAe1qD,EAAE0qD,aAAah9B,QAAK,KAAY,mBAAsBpuC,EAAIoX,EAAEA,EAAExW,OAAS,IAAIyqE,iBAAmBrrE,EAAEqrE,iBAAiB3qD,EAAG0tB,QAAK,GAAS,CAC3Kh3B,EAAExQ,KAAK8Z,GACP,SAGFmB,EAAEjb,KAAK,IAAIhO,KAAKwe,EAAG,CACjB6zD,MAAO78B,EACP88B,OAAQ/gE,KACLiN,EAAI,MAGV,mBAAqBsJ,EAAE0qD,aAAe1qD,EAAE0qD,aAAah9B,QAAK,GAAUh3B,EAAI,CAACsJ,GAAKmB,EAAEjb,KAAK8Z,GAGxF,OAAOtJ,GAAKyK,EAAEjb,KAAK,IAAIhO,KAAKwe,EAAG,CAC7B6zD,MAAO78B,EACP88B,OAAQ/gE,KACL0X,GACJ7K,EAAEhd,UAAUsxE,WAAa,WAC1B,OAAO1yE,KAAKoyE,SACXh0D,EAAEhd,UAAUuxE,SAAW,WACxB,OAAO3yE,KAAKqyE,OACXj0D,EAAEhd,UAAU+pE,YAAc,WAC3B,IAAI/sD,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAK96B,EAAI,CAAC,eAAuC0D,EAAI,EAAG7M,GAA9BikC,EAAIx1C,KAAK0yE,cAA2B1qE,OAAQuJ,EAAI6M,EAAGA,IAAKhX,EAAIouC,EAAEp3B,GAAI1D,EAAE1M,KAAK5G,EAAE+jE,eAErG,OAAOzwD,EAAEtE,KAAK,MACbgI,EA1CW,IA4ChBre,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEk4D,UAAY,SAAUl4D,GACtB,SAASnJ,EAAE6M,GACT,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAAK,MAAQJ,IAAMA,EAAI,IAAKpe,KAAKoyE,QAAU,GAAIhrE,EAAI,EAAGouC,EAAIp3B,EAAEpW,OAAQwtC,EAAIpuC,EAAGA,IAAKoX,EAAIJ,EAAEhX,GAAImK,EAAI4oB,KAAKtf,UAAU2D,GAAI,OAAS9D,EAAI1a,KAAKoyE,SAAS7gE,KAAOmJ,EAAEnJ,GAAKiN,GAG5J,OAAOJ,EAAE7M,EAAGmJ,GAAInJ,EAAEnQ,UAAU4uC,KAAO,SAAU5xB,GAC3C,IAAI1D,EACJ,OAAOA,EAAIyf,KAAKtf,UAAUuD,GAAIpe,KAAKoyE,QAAQ13D,IAC1CnJ,EAVS,CAWZmJ,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ0a,EAAEm4D,aAAe,WACf,SAASz0D,EAAEA,GACTpe,KAAK8yE,MAAM10D,GAGb,IAAI1D,EACJ,OAAO0D,EAAEhd,UAAUkE,IAAM,SAAU8Y,GACjC,IAAI7M,EACJ,OAAOA,EAAImJ,EAAE0D,GAAIpe,KAAK+yE,SAASxhE,GAAK6M,GACnCA,EAAEhd,UAAUoE,OAAS,SAAU4Y,GAChC,IAAI7M,EAAGnK,EACP,OAAOmK,EAAImJ,EAAE0D,IAAKhX,EAAIpH,KAAK+yE,SAASxhE,YAAcvR,KAAK+yE,SAASxhE,GAAInK,QAAK,GACxEgX,EAAEhd,UAAU0xE,MAAQ,SAAU10D,GAC/B,IAAI1D,EAAGnJ,EAAGnK,EAEV,IAAK,MAAQgX,IAAMA,EAAI,IAAKpe,KAAK+yE,SAAW,GAAIxhE,EAAI,EAAGnK,EAAIgX,EAAEpW,OAAQZ,EAAImK,EAAGA,IAAKmJ,EAAI0D,EAAE7M,GAAIvR,KAAKsF,IAAIoV,GAEpG,OAAO0D,GACN1D,EAAI,SAAU0D,GACf,OAAOA,EAAEgc,QAAQ44C,cAChB50D,EApBY,IAsBjBre,KAAKC,MAAO,aAAeD,KAAKC,MAAO,WACvC,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEu4D,UAAY,SAAUv4D,GACtB,SAASnJ,IACP,OAAOA,EAAEk5D,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAG7C,OAAOsa,EAAE7M,EAAGmJ,GAAInJ,EAAEnQ,UAAU8xE,aAAe,WACzC,OAA2B,IAApBlzE,KAAKmzE,YACX5hE,EAAEnQ,UAAUgyE,aAAe,WAC5B,OAA0B,IAAnBpzE,KAAKqzE,WACX9hE,EAAEnQ,UAAUkyE,aAAe,WAC5B,OAAOtzE,KAAKqzE,WAAarzE,KAAKuzE,WAC7BhiE,EAAEnQ,UAAUoyE,UAAY,WACzB,OAAOxzE,KAAKqzE,YAAcrzE,KAAKuzE,WAC9BhiE,EAAEnQ,UAAUqyE,WAAa,WAC1B,OAAO,MAAQzzE,KAAKyiE,QAAUziE,KAAKyiE,QAAUziE,KAAKyiE,QAAU,IAAIO,QAAQ,SAAU5kD,GAChF,OAAO,SAAU1D,EAAGnJ,GAClB,OAAO6M,EAAE+0D,YAAa,EAAI/0D,EAAEgpB,SAAQ,SAAUhgC,EAAGouC,GAC/C,OAAOp3B,EAAEm1D,UAAYnsE,EAAGgX,EAAE+0D,YAAa,EAAI/0D,EAAEi1D,WAAY,EAAIj1D,EAAEm1D,UAAY74D,EAAE86B,GAAKjkC,EAAEikC,OAHlB,CAMtEx1C,QACDuR,EAAEnQ,UAAUgmC,QAAU,SAAUhpB,GACjC,OAAOA,GAAE,IACR7M,EAAEnQ,UAAUsyE,QAAU,WACvB,IAAIt1D,EACJ,OAAO,OAASA,EAAIpe,KAAKyiE,UAAY,mBAAqBrkD,EAAEi8C,QAAUj8C,EAAEi8C,SAAUr6D,KAAKyiE,QAAU,KAAMziE,KAAKmzE,WAAa,KAAMnzE,KAAKqzE,UAAY,KAAMrzE,KAAKuzE,UAAY,MACtKhiE,EAAE84D,YAAY,qBAAsB94D,EAAE84D,YAAY,sBAAuB94D,EA1BhE,CA2BZmJ,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EAUAG,EAAI,GAAGpE,eAEXG,EAAEwwD,YAAc,SAAU9sD,GACxB,SAAS1D,EAAE0D,EAAG1D,GACZ1a,KAAK2zE,WAAav1D,EAAGpe,KAAK6rE,WAAanxD,EAAG1a,KAAKgI,OAAShI,KAAK6rE,WAAW7jE,OAAQhI,KAAK4zE,WAAa5zE,KAAK2zE,WAAW3rE,OAGpH,OAhBM,SAAUoW,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAGiE,EAAE5e,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAEpCmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UASlE7E,CAAEme,EAAG0D,GAAI1D,EAAE0gC,IAAM,SAAUh9B,GAChC,OAAO,MAAQA,IAAMA,EAAI,IAAKA,aAAape,KAAOoe,EAAIpe,KAAK6zE,eAAe,MAAQz1D,EAAIA,EAAEtF,gBAAa,IACpG4B,EAAEm5D,eAAiB,SAAUz1D,GAC9B,OAAO,IAAIpe,KAAKoe,EAAGo3B,EAAEp3B,KACpB1D,EAAEoxD,eAAiB,SAAU1tD,GAC9B,OAAO,IAAIpe,KAAKwe,EAAEJ,GAAIA,IACrB1D,EAAEtZ,UAAU0yE,mBAAqB,SAAU11D,GAC5C,OAAOI,EAAExe,KAAK6rE,WAAWjkE,MAAM,EAAG8Q,KAAKmS,IAAI,EAAGzM,KAAKpW,QAClD0S,EAAEtZ,UAAU2yE,qBAAuB,SAAU31D,GAC9C,OAAOo3B,EAAEx1C,KAAK2zE,WAAW/rE,MAAM,EAAG8Q,KAAKmS,IAAI,EAAGzM,KAAKpW,QAClD0S,EAAEtZ,UAAUwG,MAAQ,WACrB,IAAIwW,EACJ,OAAOpe,KAAK2Z,YAAYmyD,gBAAgB1tD,EAAIpe,KAAK6rE,YAAYjkE,MAAM/D,MAAMua,EAAGta,aAC3E4W,EAAEtZ,UAAU2Q,OAAS,SAAUqM,GAChC,OAAOpe,KAAK4H,MAAMwW,EAAGA,EAAI,IACxB1D,EAAEtZ,UAAUypE,UAAY,SAAUzsD,GACnC,OAAOpe,KAAK2Z,YAAYyhC,IAAIh9B,GAAGu1D,aAAe3zE,KAAK2zE,YAClDj5D,EAAEtZ,UAAUuc,OAAS,WACtB,OAAO3d,KAAK2zE,YACXj5D,EAAEtZ,UAAU+pE,YAAc,WAC3B,OAAOnrE,KAAK2zE,YACXj5D,EAAEtZ,UAAU0X,SAAW,WACxB,OAAO9Y,KAAK2zE,YACXj5D,EA5BW,CA6BdA,EAAE0vD,aAAchsD,EAAI,KAAO,mBAAqBK,MAAMyZ,KAAOzZ,MAAMyZ,KAAK,gBAAgBlwB,YAAS,GAASuJ,EAAI,OAAS,kBAAqB,IAAIyiE,YAAc,IAAIA,YAAY,QAAK,GAAS5sE,EAAI,mBAAqB,mBAAqBX,OAAOwtE,cAAgBxtE,OAAOwtE,cAAc,GAAI,aAAU,GAASz+B,EAAIp3B,GAAK7M,EAAI,SAAU6M,GACpU,OAAOK,MAAMyZ,KAAK9Z,GAAG4K,KAAI,SAAU5K,GACjC,OAAOA,EAAE41D,YAAY,OAErB,SAAU51D,GACZ,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAAKg3B,EAAI,GAAI96B,EAAI,EAAGtT,EAAIgX,EAAEpW,OAAQZ,EAAIsT,IAAI8D,EAAIJ,EAAE81D,WAAWx5D,OAAW,OAAS,OAAS8D,GAAKpX,EAAIsT,IAA6B,SAAW,OAAlCnJ,EAAI6M,EAAE81D,WAAWx5D,OAA8B8D,IAAM,KAAOA,IAAM,KAAO,KAAOjN,GAAK,MAAQmJ,KAAM86B,EAAExnC,KAAKwQ,GAEjN,OAAOg3B,GACNh3B,EAAIpX,EAAI,SAAUgX,GACnB,OAAO3X,OAAOwtE,cAAcpwE,MAAM4C,OAAQ2X,IACxC,SAAUA,GACZ,IAAO7M,EAAGnK,EACV,OAAW,WACT,IAAIsT,EAAG86B,EAAGh3B,EAEV,IAAKA,EAAI,GAAI9D,EAAI,EAAG86B,EAAIp3B,EAAEpW,OAAQwtC,EAAI96B,EAAGA,IAAKtT,EAAIgX,EAAE1D,GAAInJ,EAAI,GAAInK,EAAI,QAAUA,GAAK,MAAOmK,GAAK9K,OAAO0tE,aAAa/sE,IAAM,GAAK,KAAO,OAAQA,EAAI,MAAQ,KAAOA,GAAIoX,EAAExQ,KAAKuD,EAAI9K,OAAO0tE,aAAa/sE,IAEnM,OAAOoX,EALE,GAMJpI,KAAK,MAEdrW,KAAKC,MAAO,aAAeD,KAAKC,MAAO,aAAeD,KAAKC,MAAO,WAClE0a,EAAE4C,OAAO82D,KAAO,CACdC,YAAa,eACbC,KAAM,OACNC,QAAS,UACT,KAAQ,OACR3kC,MAAO,QACP4kC,mBAAoB,sBACpBj3D,KAAM,OACNk3D,SAAU,UACVC,OAAQ,iBACRC,OAAQ,SACRC,KAAM,OACNz1E,QAAS,UACT01E,QAAS,iBACTC,MAAO,QACPC,KAAM,OACNvvE,OAAQ,SACRwvE,OAAQ,gBACRC,KAAM,OACNC,OAAQ,SACR/zC,IAAK,MACLg0C,eAAgB,oBAChBC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,OAENz1E,KAAKC,MAAO,WACZ0a,EAAE4C,OAAOq+B,IAAM,CACb85B,WAAY,aACZC,kBAAmB,sBACnBC,wBAAyB,6BACzBC,mBAAoB,uBACpBC,4BAA6B,iCAC7BC,eAAgB,mBAChBC,mBAAoB,uBACpBC,eAAgB,mBAChBC,kBAAmB,sBACnBC,kBAAmB,uBAErBn2E,KAAKC,MAAO,WACZ,IAAIoe,EACJ1D,EAAE4C,OAAOmvD,gBAAkBruD,EAAI,CAC7B,QAAW,CACTuwD,QAAS,MACTzzD,OAAO,GAET45D,MAAO,CACLnG,QAAS,aACTwH,UAAU,GAEZ1B,SAAU,CACR9F,QAAS,KACTyH,UAAU,EACVC,eAAe,EACfC,OAAO,GAET/4D,KAAM,CACJoxD,QAAS,MACTyH,UAAU,EACVr6B,KAAM,CACJw6B,WAAW,IAGfC,WAAY,CACV7H,QAAS,KACTzzD,OAAO,GAETu7D,OAAQ,CACN9H,QAAS,KACT9B,cAAe,aACfyJ,OAAO,EACPH,UAAU,EACVj4E,KAAM,SAAUqT,GACd,OAAOmJ,EAAEi0D,QAAQp9D,EAAE6T,cAAgBhH,EAAEpe,KAAK6sE,eAAe8B,UAG7D+H,WAAY,CACV/H,QAAS,KACTzzD,OAAO,GAET7d,OAAQ,CACNsxE,QAAS,KACT9B,cAAe,aACfyJ,OAAO,EACPH,UAAU,EACVj4E,KAAM,SAAUqT,GACd,OAAOmJ,EAAEi0D,QAAQp9D,EAAE6T,cAAgBhH,EAAEpe,KAAK6sE,eAAe8B,UAG7DuH,kBAAmB,CACjBvH,QAAS,MACTgI,WAAW,EACXP,UAAU,EACVl7D,OAAO,EACPo7D,OAAO,KAGXv2E,KAAKC,MAAO,WACZ,IAAIoe,EAAG7M,EACP6M,EAAI1D,EAAE4C,OAAO82D,KAAM7iE,EAAI,CAAC6M,EAAEwxB,MAAOxxB,EAAEi3D,GAAIj3D,EAAEk3D,GAAIl3D,EAAEg3D,GAAIh3D,EAAEo3D,GAAIp3D,EAAEm3D,IAAK76D,EAAE4C,OAAOs5D,SAAW,CAClF77D,OAAQ,MACR+vB,UAAW,EACX61B,UAAW,SAAUjmD,GACnB,IAAItT,EAAGouC,EAEP,OAAQ96B,GACN,KAAK,EACH,MAAO,KAAO0D,EAAEwxB,MAElB,KAAK,EACH,MAAO,KAAOxxB,EAAEy4D,KAElB,QACE,OAAOzvE,EAAI,WACT,OAAQpH,KAAK+a,QACX,IAAK,KACH,OAAO,IAET,IAAK,MACH,OAAO,OAEXhb,KAAKC,MAAOw1C,EAAI98B,KAAKG,MAAMH,KAAKopB,IAAIpnB,GAAKhC,KAAKopB,IAAI16B,KAASsT,EAAIhC,KAAK0zB,IAAIhlC,EAAGouC,IAAU/rB,QAAQzpB,KAAK8qC,WAAkBhtC,QAAQ,MAAO,IAAIA,QAAQ,MAAO,IAAS,IAAMyT,EAAEikC,OAIjLz1C,KAAKC,MAAO,WACZ0a,EAAE4C,OAAOqvD,eAAiB,CACxB2H,KAAM,CACJ3F,QAAS,SACTmI,aAAa,EACbz7D,OAAQ,SAAU+C,GAChB,IAAI1D,EACJ,MAAuC,UAAhCA,EAAIzD,OAAO89B,iBAAiB32B,IAAiB24D,YAAcr8D,EAAEq8D,YAAc,MAGtFpC,OAAQ,CACNhG,QAAS,KACTmI,aAAa,EACbz7D,OAAQ,SAAU+C,GAEhB,MAAuC,WAA5BnH,OAAO89B,iBAAiB32B,GAAmB44D,YAG1Dv1C,KAAM,CACJw1C,aAAc,IACd57D,OAAQ,SAAU+C,GAChB,IAAOhX,EAAGouC,EACV,OAAgDA,EAAI,SAAzC96B,EAAEi1D,eAAeC,mBAAuC,KAAMxoE,EAAIsT,EAAE2yD,2BAA2BjvD,EAAG,CAC3G6uD,iBAAkBz3B,KACdpuC,EAAE/D,aAAa,aAAU,IAGnC2xE,OAAQ,CACNrG,QAAS,MACTmI,aAAa,GAEfI,OAAQ,CACNvmE,MAAO,CACLwmE,gBAAiB,gBAIvBp3E,KAAKC,MAAO,WACZ,IAAIoe,EAAG7M,EAAMikC,EACsBA,EAAI,CAAC,kBAAmB,eAAgB,sBAAuB,oBAAqB,wBAAyB,YAAajkC,EAAI,kCAAsD6M,EAAI,IAAI9X,OAAO,qBAAgB,KAAMoU,EAAEysB,OAAO,CACnQiwC,YAAa,CACX,mBAAoB,SAAUh5D,GAC5B,IAAI7M,EACJ,GAAI6M,aAAa1D,EAAE28D,SAAU9lE,EAAI6M,MAAO,CACtC,KAAMA,aAAa+hB,aAAc,MAAM,IAAI99B,MAAM,yBACjDkP,EAAImJ,EAAE28D,SAASC,SAASl5D,EAAE1a,WAE5B,OAAO6N,EAAEgmE,yBAAyBvM,gBAEpC,YAAa,SAAUzuE,GACrB,IAAIoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EAAG4sD,EAAG3mE,EAAGmxC,EAAG3wC,EAAGK,EAAGwY,EAAG+tD,EAAGnwD,EAAGuB,EACpD,GAAI1Y,aAAame,EAAE28D,SAAUxvD,EAAInN,EAAE88D,aAAaC,OAAOl7E,OAAQ,CAC7D,KAAMA,aAAa4jC,aAAc,MAAM,IAAI99B,MAAM,yBACjDwlB,EAAItrB,EAAEw8D,WAAU,GAGlB,IAAgCp8D,EAAI,EAAGymE,GAAlCttD,EAAI+R,EAAEhY,iBAjBb,gCAiB+C7H,OAAQo7D,EAAIzmE,EAAGA,IAAKssB,EAAInT,EAAEnZ,GAAI+d,EAAEszD,WAAW/kD,GAExF,IAAK5K,EAAI,EAAG5hB,EAAI+4C,EAAExtC,OAAQvL,EAAI4hB,EAAGA,IAAK,IAAKM,EAAI62B,EAAEn3B,GAA2CxhB,EAAI,EAAG+wC,GAA9Ci2B,EAAIh8C,EAAEhY,iBAAiB,IAAM8O,EAAI,MAAmB3W,OAAQ4lC,EAAI/wC,EAAGA,KAAKosB,EAAI46C,EAAEhnE,IAAM8G,gBAAgBgb,GAEzJ,IAAgCnI,EAAI,EAAGvZ,GAAlCyW,EAAImU,EAAEhY,iBArBuL,sCAqBrJ7H,OAAQ/K,EAAIuZ,EAAGA,IAAK,CAC/DyS,EAAIvV,EAAE8C,GAEN,IAGE,IAAKlZ,KAFLwqB,EAAIqS,KAAKjf,MAAM+N,EAAE5lB,aAAakO,IAAK0X,EAAEtlB,gBAAgB4N,GAE3CuW,EAAG7S,EAAI6S,EAAExqB,GAAI2rB,EAAExlB,aAAanG,EAAG2X,GACzC,MAAOoyD,KAGX,OAAOx/C,EAAEnkB,UAAU5F,QAAQsgB,EAAG,MAGlCs5D,cAAe,CACb,mBAAoB,SAAUt5D,GAC5B,OAAO1D,EAAE28D,SAAS3M,eAAetsD,IAEnC,YAAa,SAAUA,GACrB,OAAO1D,EAAE28D,SAASC,SAASl5D,KAG/Bu5D,uBAAwB,SAAUv5D,EAAG7M,GACnC,IAAInK,EACJ,GAAIA,EAAIsT,EAAE08D,YAAY7lE,GAAI,OAAOnK,EAAEgX,GACnC,MAAM,IAAI/b,MAAM,yBAA2BkP,IAE7CqmE,2BAA4B,SAAUx5D,EAAG7M,GACvC,IAAInK,EACJ,GAAIA,EAAIsT,EAAEg9D,cAAcnmE,GAAI,OAAOnK,EAAEgX,GACrC,MAAM,IAAI/b,MAAM,yBAA2BkP,OAG/CxR,KAAKC,MAAO,WACZ,IAAIoe,EACJA,EAAI1D,EAAE4C,OAAO82D,KAAM15D,EAAE4C,OAAOu6D,QAAU,CACpCC,eAAgB,WACd,MAAO,mRAAqR15D,EAAEk2D,KAAO,mBAAqBl2D,EAAEk2D,KAAO,6JAA+Jl2D,EAAEu2D,OAAS,mBAAqBv2D,EAAEu2D,OAAS,2IAA6Iv2D,EAAE42D,OAAS,mBAAqB52D,EAAE42D,OAAS,iLAAmL52D,EAAEw2D,KAAO,mBAAqBx2D,EAAEw2D,KAAO,qQAAuQx2D,EAAEq2D,SAAW,mBAAqBr2D,EAAEq2D,SAAW,yIAA2Ir2D,EAAE02D,MAAQ,mBAAqB12D,EAAE02D,MAAQ,uIAAyI12D,EAAEb,KAAO,mBAAqBa,EAAEb,KAAO,gJAAkJa,EAAEm2D,QAAU,mBAAqBn2D,EAAEm2D,QAAU,gJAAkJn2D,EAAEjf,QAAU,mBAAqBif,EAAEjf,QAAU,sKAAwKif,EAAEy2D,QAAU,mBAAqBz2D,EAAEy2D,QAAU,sKAAwKz2D,EAAEs2D,OAAS,mBAAqBt2D,EAAEs2D,OAAS,gQAAkQt2D,EAAEi2D,YAAc,mBAAqBj2D,EAAEi2D,YAAc,mUAAqUj2D,EAAE62D,KAAO,mBAAqB72D,EAAE62D,KAAO,4JAA8J72D,EAAE22D,KAAO,mBAAqB32D,EAAE22D,KAAO,6TAA+T32D,EAAE+2D,eAAiB,iBAAmB/2D,EAAE+iB,IAAM,mJAAqJ/iB,EAAEw2D,KAAO,mHAAqHx2D,EAAE82D,OAAS,uFAGt1Hn1E,KAAKC,MAAO,WACZ0a,EAAE4C,OAAOy6D,aAAe,KACxBh4E,KAAKC,MAAO,WACZ0a,EAAE4C,OAAO06D,YAAc,CACrBC,QAAS,CACPC,aAAc,UACdC,QAAS,CACPt6D,MAAM,EACNyzC,MAAM,IAGV8mB,KAAM,CACJD,QAAS,CACP7mB,MAAM,MAIZvxD,KAAKC,MAAO,WACZ0a,EAAE4C,OAAO+6D,SAAW,CAClBzvE,EAAG,YACHC,EAAG,MACHyvE,GAAI,SACJC,GAAI,SACJC,GAAI,OACJC,GAAI,QACJC,GAAI,SACJC,GAAI,IACJC,GAAI,IACJC,GAAI,MAEN94E,KAAKC,MAAO,WACZ0a,EAAE4C,OAAOxV,MAAQ,CACfgxE,eAAe,EACfC,SAAU,WACR,OAAO/4E,KAAK84E,eAAiBp+D,EAAE8iC,QAAQ0sB,oBAAsB,EAAI,GAEnE8O,UAAW,SAAU56D,GACnB,IAAI7M,EACJ,OAAOA,EAAImJ,EAAEk0D,YAAY,QAAS,CAChC56D,KAAM,OACNilE,UAAU,EACVC,QAAQ,EACR9jC,GAAIp1C,KAAKm5E,eACLrzE,iBAAiB,UAAU,WAC/B,OAAOsY,EAAE7M,EAAE6nE,OAAQ1+D,EAAEszD,WAAWz8D,MAC9BmJ,EAAEszD,WAAW52D,SAAS28B,eAAe/zC,KAAKm5E,cAAe/hE,SAASyY,KAAKjK,YAAYrU,GAAIA,EAAEsoB,SAE/Fs/C,YAAa,mBAAqBjhE,KAAKmC,MAAMvB,SAAS,MAExD/Y,KAAKC,MAAO,aAAeD,KAAKC,MAAO,WACvC0a,EAAEwoD,gBAAgB,eAAgB,CAChC+M,WAAY,4QACZhsE,WAAY,WACV,MAAO,KAAOjE,KAAK0D,UAAY1D,KAAK0D,UAAYgX,EAAE4C,OAAOu6D,QAAQC,sBAAmB,MAGxF/3E,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eACPnT,EAAI,GAAGO,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGVA,EAAE2+D,WAAa,SAAU9nE,GACvB,SAASikC,EAAEp3B,EAAG1D,GACZ1a,KAAKid,OAASmB,EAAGpe,KAAKmX,QAAU,MAAQuD,EAAIA,EAAI,GAAI1a,KAAKs5E,WAAa,GAAIt5E,KAAKu5E,SAAWv5E,KAG5F,OAAOoe,EAAEo3B,EAAGjkC,GAAIikC,EAAEp0C,UAAUo4E,SAAW,WACrC,IAAIp7D,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAK,MAAQx1C,KAAKkgC,QAAUlgC,KAAKkgC,MAAQlgC,KAAKy5E,eAAgCjkC,EAAI,GAAIp3B,EAAI,EAAG1D,GAA/BtT,EAAIpH,KAAKkgC,OAA4Bl4B,OAAQ0S,EAAI0D,EAAGA,IAAK7M,EAAInK,EAAEgX,GAAIo3B,EAAExnC,KAAKuD,EAAEwnD,WAAU,IAEpJ,OAAOvjB,GACNA,EAAEp0C,UAAUs4E,WAAa,WAC1B,IAAIt7D,EACJ,OAAOpe,KAAKkgC,MAAQ,KAAMlgC,KAAKs5E,WAAa,GAAI,OAASl7D,EAAIpe,KAAK25E,YAAcv7D,EAAEs7D,kBAAe,GAChGlkC,EAAEp0C,UAAUw4E,wBAA0B,SAAUx7D,GACjD,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAK65E,kBAAkBz7D,IAAM1D,EAAEg/D,kBAAe,GACjElkC,EAAEp0C,UAAU04E,4BAA8B,SAAU17D,EAAG1D,GACxD,IAAInJ,EACJ,OAAQA,EAAIvR,KAAK+5E,uBAAuBr/D,IAAM1a,KAAKg6E,gBAAgBzoE,IAAMA,EAAIvR,KAAKi6E,gBAAgBp2E,MAAM7D,KAAM8D,WAAY9D,KAAKk6E,mBAAmB3oE,EAAGmJ,IAAKnJ,GACzJikC,EAAEp0C,UAAU64E,gBAAkB,SAAU77D,EAAG7M,EAAGnK,GAC/C,IAAIouC,EACJ,OAAO,MAAQpuC,IAAMA,EAAI,IAAKmK,aAAamJ,EAAEy3D,cAAgB/qE,EAAE+yE,UAAY/7D,EAAGA,EAAI1D,EAAE0/D,iBAAkB5kC,EAAI,IAAIp3B,EAAE7M,EAAGnK,GAAIpH,KAAKg6E,gBAAgBxkC,IAC3IA,EAAEp0C,UAAU44E,gBAAkB,SAAU57D,GACzC,OAAOA,EAAEu7D,WAAa35E,KAAMoe,EAAEm7D,SAAWv5E,KAAKu5E,SAAUv5E,KAAKs5E,WAAWtrE,KAAKoQ,GAAIA,GAChFo3B,EAAEp0C,UAAUi5E,iBAAmB,WAChC,IAAIj8D,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAKA,EAAI,GAAyB96B,EAAI,EAAGnJ,GAA5BnK,EAAIpH,KAAKs5E,YAAyBtxE,OAAQuJ,EAAImJ,EAAGA,IAAK0D,EAAIhX,EAAEsT,GAAI86B,EAAExnC,KAAKoQ,GAAIo3B,EAAIA,EAAE7+B,OAAOyH,EAAEi8D,oBAEvG,OAAO7kC,GACNA,EAAEp0C,UAAUk5E,YAAc,WAC3B,OAAOt6E,KAAKu6E,qBAAqBv6E,KAAKid,SACrCu4B,EAAEp0C,UAAUm5E,qBAAuB,SAAUn8D,GAC9C,IAAI1D,EACJ,OAAQA,EAAI,MAAQ0D,EAAIA,EAAEg3B,QAAK,GAAUp1C,KAAKu5E,SAASx8D,QAAQzY,cAAc,kBAAoBoW,EAAI,WAAQ,GAC5G86B,EAAEp0C,UAAUy4E,kBAAoB,SAAUz7D,GAC3C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAAkC96B,EAAI,EAAGnJ,GAApCnK,EAAIpH,KAAKq6E,oBAAiCryE,OAAQuJ,EAAImJ,EAAGA,IAAK,IAAI86B,EAAIpuC,EAAEsT,IAAMuC,SAAWmB,EAAG,OAAOo3B,GACvGA,EAAEp0C,UAAUo5E,aAAe,WAC5B,OAAOx6E,KAAKu5E,WAAav5E,KAAOA,KAAKu5E,SAASiB,eAAiBx6E,KAAKy6E,uBAAyB,MAAQz6E,KAAK06E,UAAY16E,KAAK06E,UAAY16E,KAAK06E,UAAY,QAAK,GAC5JllC,EAAEp0C,UAAUq5E,qBAAuB,WACpC,OAAiC,IAA1Bz6E,KAAK26E,kBACXnlC,EAAEp0C,UAAUw5E,kBAAoB,WACjC,OAAO56E,KAAK26E,kBAAmB,GAC9BnlC,EAAEp0C,UAAUy5E,mBAAqB,WAClC,OAAO76E,KAAK26E,kBAAmB,GAC9BnlC,EAAEp0C,UAAU24E,uBAAyB,SAAU37D,GAChD,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKw6E,gBAAkB9/D,EAAE0D,EAAE+sD,oBAAiB,GAC/D31B,EAAEp0C,UAAU84E,mBAAqB,SAAU97D,EAAG1D,GAC/C,IAAInJ,EACJ,OAAO,OAASA,EAAIvR,KAAKw6E,gBAAkBjpE,EAAEmJ,EAAEywD,eAAiB/sD,OAAI,GACnEo3B,EAAEp0C,UAAU05E,0BAA4B,WACzC,IAAI18D,EAAG1D,EAAGnJ,EAAGikC,EAAGh3B,EAAGjiB,EAEnB,GAAI6hB,EAAIpe,KAAKw6E,eAAgB,CAS3B,IAAK9/D,KARLne,EAAIyD,KAAKq6E,mBAAmB1jE,OAAO3W,MAAOuR,EAAI,WAC5C,IAAI6M,EAAG1D,EAAGnJ,EAEV,IAAKA,EAAI,GAAI6M,EAAI,EAAG1D,EAAIne,EAAEyL,OAAQ0S,EAAI0D,EAAGA,IAAKI,EAAIjiB,EAAE6hB,GAAI7M,EAAEvD,KAAKwQ,EAAEvB,OAAOkuD,eAExE,OAAO55D,EALqC,GAMzCikC,EAAI,GAECp3B,EAAGhX,EAAErH,KAAKwR,EAAGmJ,GAAK,GAAK86B,EAAExnC,YAAYoQ,EAAE1D,IAEjD,OAAO86B,IAERA,EAtEU,CAuEb96B,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAE0/D,gBAAkB,SAAU1/D,GAC5B,SAASnJ,IACPA,EAAEk5D,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAK+6E,YAAc/6E,KAAKid,OAAQjd,KAAKm6E,UAAYn6E,KAAKmX,QAAQgjE,iBAAkBn6E,KAAKmX,QAAQgjE,UAG/I,OAAO/7D,EAAE7M,EAAGmJ,GAAInJ,EAAEnQ,UAAU45E,cAAgB,WAC1C,IAAI58D,EAAG1D,EAAGnJ,EAAGnK,EACb,IAAKpH,KAAKs5E,WAAWtxE,OAAQ,IAAwCoW,EAAI,EAAG1D,GAA1CtT,EAAIpH,KAAK+6E,YAAYrI,cAA2B1qE,OAAQ0S,EAAI0D,EAAGA,IAAK7M,EAAInK,EAAEgX,GAAIpe,KAAK85E,4BAA4B95E,KAAKm6E,UAAW5oE,EAAGvR,KAAKmX,SACzK,OAAOnX,KAAKs5E,YACX/nE,EAAEnQ,UAAUq4E,YAAc,WAC3B,IAAIr7D,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAEzB,IAAKP,EAAIpe,KAAKi7E,yBAAoDvgE,EAAI,EAAGtT,GAAjC7K,EAAIyD,KAAKg7E,iBAA8BhzE,OAAQZ,EAAIsT,EAAGA,IAAK,IAAiCnJ,EAAI,EAAGikC,GAAzB72B,EAANpiB,EAAEme,GAAU8+D,YAAyBxxE,OAAQwtC,EAAIjkC,EAAGA,IAAKiN,EAAIG,EAAEpN,GAAI6M,EAAEwH,YAAYpH,GAE7L,MAAO,CAACJ,IACP7M,EAAEnQ,UAAU65E,uBAAyB,SAAU78D,GAChD,OAAO,MAAQA,IAAMA,EAAIpe,KAAK+6E,YAAYpI,YAAa3yE,KAAKg7E,gBAAgB,GAAGC,uBAAuB78D,IACrG7M,EAjBe,CAkBlBmJ,EAAE2+D,aACJt5E,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEwgE,WAAa,SAAUxgE,GACvB,SAASnJ,IACP,OAAOA,EAAEk5D,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAG7C,OAAOsa,EAAE7M,EAAGmJ,GAAInJ,EALH,CAMbmJ,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EAMAurB,EAAI,SAAU1J,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAGuO,EAAElpB,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF6K,EAAI,GAAG1O,eACPsN,EAAI,GAAGlgB,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGV0D,EAAI1D,EAAE2yD,2BAA4BjmE,EAAIsT,EAAEm1D,oBAAqBt+D,EAAImJ,EAAEw0D,wBAAyB15B,EAAI96B,EAAE2wD,gBAAiB7sD,EAAI9D,EAAE+wD,sBAAuBlvE,EAAIme,EAAEi0D,QAASj0D,EAAE4nC,iBAAmB,SAAU5nC,GAC5L,SAASuO,EAAE7K,GACTpe,KAAK+c,QAAUqB,EAAGpe,KAAKm7E,UAvBnB,SAAU/8D,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,YAqBiB6a,CAAE3e,KAAKm7E,UAAWn7E,MAAOA,KAAKs/C,SAAW,IAAIroC,OAAOqrC,iBAAiBtiD,KAAKm7E,WAAYn7E,KAAKwiC,QAGhI,IAAI7lC,EAAG0hB,EAAM7H,EACb,OAAOsR,EAAEmB,EAAGvO,GAAiC,KAA7B2D,EAAI,qBAAmC,IAAK7H,EAAI,CAC9D65B,YAAY,EACZqS,WAAW,EACXC,eAAe,EACf+hB,uBAAuB,EACvBhB,SAAS,GACRz6C,EAAE7nB,UAAUohC,MAAQ,WACrB,OAAOxiC,KAAK8yE,QAAS9yE,KAAKs/C,SAASyC,QAAQ/hD,KAAK+c,QAASvG,IACxDyS,EAAE7nB,UAAU0hC,KAAO,WACpB,OAAO9iC,KAAKs/C,SAAS7X,cACpBxe,EAAE7nB,UAAU+5E,UAAY,SAAU/8D,GACnC,IAAI1D,EAAGnJ,EACP,OAAQmJ,EAAI1a,KAAKwiD,WAAWx0C,KAAKnK,MAAM6W,EAAG1a,KAAKo7E,yBAAyBh9D,IAAKpe,KAAKwiD,UAAUx6C,QAAU,OAASuJ,EAAIvR,KAAKq7E,WAAa,mBAAqB9pE,EAAE+pE,kBAAoB/pE,EAAE+pE,iBAAiBt7E,KAAKu7E,sBAAuBv7E,KAAK8yE,cAAW,GAC9O7pD,EAAE7nB,UAAU0xE,MAAQ,WACrB,OAAO9yE,KAAKwiD,UAAY,IACvBv5B,EAAE7nB,UAAUg6E,yBAA2B,SAAUh9D,GAClD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAAKA,EAAI,GAAI96B,EAAI,EAAGnJ,EAAI6M,EAAEpW,OAAQuJ,EAAImJ,EAAGA,IAAKtT,EAAIgX,EAAE1D,GAAI1a,KAAKw7E,sBAAsBp0E,IAAMouC,EAAExnC,KAAK5G,GAEhG,OAAOouC,GACNvsB,EAAE7nB,UAAUo6E,sBAAwB,SAAUp9D,GAC/C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,GAAIx1C,KAAKy7E,cAAcr9D,EAAExZ,QAAS,OAAO,EAEzC,IAA0C8V,EAAI,EAAGnJ,GAA5CikC,EAAIx1C,KAAK07E,wBAAwBt9D,IAAiBpW,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAItT,EAAIouC,EAAE96B,GAAI1a,KAAK27E,kBAAkBv0E,GAAI,OAAO,EAE3H,OAAO,GACN6hB,EAAE7nB,UAAUu6E,kBAAoB,SAAUv9D,GAC3C,OAAOA,IAAMpe,KAAK+c,UAAY/c,KAAKy7E,cAAcr9D,KAAOhX,EAAEgX,IACzD6K,EAAE7nB,UAAUq6E,cAAgB,SAAU/gE,GACvC,OAAO0D,EAAE1D,EAAG,CACVuyD,iBAhCyC,yBAkC1ChkD,EAAE7nB,UAAUs6E,wBAA0B,SAAUt9D,GACjD,IAAI1D,EAEJ,OAAQA,EAAI,GAAI0D,EAAEpK,MAChB,IAAK,aACHoK,EAAE4lD,gBAAkB3lD,GAAK3D,EAAE1M,KAAKoQ,EAAExZ,QAClC,MAEF,IAAK,gBACH8V,EAAE1M,KAAKoQ,EAAExZ,OAAOwgB,YAAa1K,EAAE1M,KAAKoQ,EAAExZ,QACtC,MAEF,IAAK,YACH8V,EAAE1M,KAAKnK,MAAM6W,EAAG0D,EAAE0lD,YAAappD,EAAE1M,KAAKnK,MAAM6W,EAAG0D,EAAE2lD,cAGrD,OAAOrpD,GACNuO,EAAE7nB,UAAUm6E,mBAAqB,WAClC,OAAOv7E,KAAK47E,0BACX3yD,EAAE7nB,UAAUw6E,uBAAyB,WACtC,IAAIx9D,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGtsB,EAElC,IAAiD4U,GAA5CoN,EAAI3e,KAAK67E,mCAAyCC,UAAWtmC,EAAI72B,EAAEo9D,UAAoEv9D,EAAI,EAAGjiB,GAAxBurB,GAAxCnrB,EAAIqD,KAAKg8E,+BAAqCF,WAAwB9zE,OAAQzL,EAAIiiB,EAAGA,IAAK9D,EAAIoN,EAAEtJ,GAAIqJ,EAAE9nB,KAAKwR,EAAGmJ,GAAK,GAAKnJ,EAAEvD,KAAK0M,GAElN,OAAO86B,EAAExnC,KAAKnK,MAAM2xC,EAAG74C,EAAEo/E,WAAY9yD,EAAI,IAAK7K,EAAI7M,EAAE6E,KAAK,OAAS6S,EAAEgzD,UAAY79D,IAAKhX,EAAIouC,EAAEp/B,KAAK,OAAS6S,EAAEizD,YAAc90E,GAAI6hB,GAC5HA,EAAE7nB,UAAU+6E,mBAAqB,SAAU/9D,GAC5C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAAyBA,EAAI,GAAI9D,EAAI,EAAGnJ,GAAnCikC,EAAIx1C,KAAKwiD,WAAgCx6C,OAAQuJ,EAAImJ,EAAGA,KAAKtT,EAAIouC,EAAE96B,IAAM1G,OAASoK,GAAKI,EAAExQ,KAAK5G,GAEnG,OAAOoX,GACNyK,EAAE7nB,UAAU46E,4BAA8B,WAC3C,IAAI59D,EAAG1D,EAAGtT,EAAGoX,EAAGjiB,EAAGoiB,EAAGmJ,EAAMD,EAAGxJ,EAAGxhB,EAElC,IAAKuhB,EAAI,GAAI0J,EAAI,GAA8CpN,EAAI,EAAG8D,GAAjDG,EAAI3e,KAAKm8E,mBAAmB,cAA2Bn0E,OAAQwW,EAAI9D,EAAGA,IAAKne,EAAIoiB,EAAEjE,GAAI0D,EAAEpQ,KAAKnK,MAAMua,EAAG7hB,EAAEunE,YAAah8C,EAAE9Z,KAAKnK,MAAMikB,EAAGvrB,EAAEwnE,cAE3J,OAAW,IAAM3lD,EAAEpW,QAAU,IAAM8f,EAAE9f,QAAUuJ,EAAEuW,EAAE,KAAUzJ,EAAI,GAAIxhB,EAAI,CAAC,QAAUwhB,EAAI1hB,EAAEyhB,GAAIvhB,EAAIF,EAAEmrB,IAAK,CACvGg0D,UAAW,WACT,IAAI19D,EAAG1D,EAAGnJ,EAEV,IAAKA,EAAI,GAAInK,EAAIgX,EAAI,EAAG1D,EAAI2D,EAAErW,OAAQ0S,EAAI0D,EAAGhX,IAAMgX,GAAGyJ,EAAIxJ,EAAEjX,MAAUvK,EAAEuK,IAAMmK,EAAEvD,KAAKwnC,EAAE3tB,IAEvF,OAAOtW,EALE,GAOXwqE,UAAW,WACT,IAAI39D,EAAG1D,EAAGnJ,EAEV,IAAKA,EAAI,GAAInK,EAAIgX,EAAI,EAAG1D,EAAI7d,EAAEmL,OAAQ0S,EAAI0D,EAAGhX,IAAMgX,GAAGyJ,EAAIhrB,EAAEuK,MAAUiX,EAAEjX,IAAMmK,EAAEvD,KAAKwnC,EAAE3tB,IAEvF,OAAOtW,EALE,KAQZ0X,EAAE7nB,UAAUy6E,gCAAkC,WAC/C,IAAIz9D,EAAG1D,EAAGnJ,EAAGnK,EAAG7K,EAAGoiB,EAAGmJ,EAAGmB,EACzB,OAAOvO,EAAI1a,KAAKm8E,mBAAmB,kBAAoBn0E,SAAWihB,EAAIvO,EAAE,GAAInJ,EAAImJ,EAAEA,EAAE1S,OAAS,GAAIzL,EAAIi5C,EAAEvsB,EAAEi7C,UAAW98D,EAAIouC,EAAEjkC,EAAE3M,OAAOwL,MAAoBgO,GAAbO,EAAIH,EAAEjiB,EAAG6K,IAAUskE,MAAO5jD,EAAInJ,EAAEgtD,SAAU,CAClLmQ,UAAW19D,EAAI,CAACA,GAAK,GACrB29D,UAAWj0D,EAAI,CAACA,GAAK,KAEtBnrB,EAAI,SAAUyhB,GACf,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAAK,MAAQp3B,IAAMA,EAAI,IAAKo3B,EAAI,GAAI96B,EAAI,EAAGnJ,EAAI6M,EAAEpW,OAAQuJ,EAAImJ,EAAGA,IAAK,OAAQtT,EAAIgX,EAAE1D,GAAItT,EAAE6qB,UACvF,KAAKuO,KAAKqtC,UACRr4B,EAAExnC,KAAK5G,EAAEgJ,MACT,MAEF,KAAKowB,KAAK+lC,aACR,OAAShqE,EAAE6K,GAAKouC,EAAExnC,KAAK,MAAQwnC,EAAExnC,KAAKnK,MAAM2xC,EAAG74C,EAAEyK,EAAE4sC,aAGvD,OAAOwB,GACNvsB,EA/G+K,CAgHlLvO,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAE0hE,0BAA4B,SAAU1hE,GACtC,SAASnJ,EAAE6M,GACTpe,KAAKo4E,KAAOh6D,EAGd,OAAOA,EAAE7M,EAAGmJ,GAAInJ,EAAEnQ,UAAUgmC,QAAU,SAAUhpB,GAC9C,IAAI1D,EACJ,OAAOA,EAAI,IAAI2hE,YAAgB1f,QAAU,WACvC,OAAOv+C,GAAE,IACR1D,EAAEgiD,OAAS,SAAUnrD,GACtB,OAAO,WACLmJ,EAAEiiD,QAAU,KAEZ,IACEjiD,EAAE4hE,QACF,MAAOl1E,IAET,OAAOgX,GAAE,EAAI7M,EAAE6mE,OARL,CAUZp4E,MAAO0a,EAAE6hE,kBAAkBv8E,KAAKo4E,OACjC7mE,EApByB,CAqB5BmJ,EAAEu4D,YACJlzE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EAAI,SAAUgX,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG86B,EAAEz1C,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFo3B,EAAI,GAAGj7B,eAEX6D,EAAI1D,EAAEk/B,YAAaroC,EAAImJ,EAAEgzD,qBAAsBhzD,EAAE8hE,gBAAkB,SAAUhnC,GAC3E,SAASh3B,EAAEjN,GACT,IAAInK,EAGJ,IAAKA,KAFLpH,KAAK+c,QAAUxL,EAAGvR,KAAKy8E,iBAAmB,IAAI/hE,EAAE4nC,iBAAiBtiD,KAAK+c,SAAU/c,KAAKy8E,iBAAiBpB,SAAWr7E,KAEvGA,KAAKiL,OAAQmT,EAAEhX,EAAG,CAC1B4lE,UAAWhtE,KAAK+c,QAChBmwD,aAAcltE,KAAK08E,WAAWt1E,KAIlC,OAAOA,EAAEoX,EAAGg3B,GAAIh3B,EAAEpd,UAAU6J,OAAS,GAAIuT,EAAEpd,UAAUk6E,iBAAmB,aAAgB98D,EAAEpd,UAAUu7E,2BAA6B,WAC/H,OAAO38E,KAAKy8E,iBAAiB35C,QAC5BtkB,EAAEpd,UAAUw7E,0BAA4B,WACzC,OAAO58E,KAAKy8E,iBAAiBj6C,SAC5BhkB,EAAEpd,UAAUy7E,cAAgB,WAC7B,IAAIz+D,EACJ,OAAO,OAASA,EAAIpe,KAAKq7E,WAAa,mBAAqBj9D,EAAE0+D,gCAAkC1+D,EAAE0+D,uCAAoC,GACpIt+D,EAAEpd,UAAU27E,eAAiB,WAC9B,IAAI3+D,EACJ,OAAO,OAASA,EAAIpe,KAAKq7E,WAAa,mBAAqBj9D,EAAE4+D,kCAAoC5+D,EAAE4+D,mCAAoCh9E,KAAK68E,iBAC3Ir+D,EAAEpd,UAAUizE,YAAc,SAAUj2D,GACrC,IAAI7M,EAAGnK,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGouC,EAAGh3B,EAEV,IAAKA,EAAI,GAAIpX,EAAI,EAAGouC,EAAIp3B,EAAEpW,OAAQwtC,EAAIpuC,EAAGA,IAAKmK,EAAI6M,EAAEhX,GAAIoX,EAAExQ,KAAK,IAAI0M,EAAE0hE,0BAA0B7qE,IAE/F,OAAOiN,EALE,GAMNwkD,QAAQL,IAAIv7D,GAAGs7D,KAAK,SAAUtkD,GACjC,OAAO,SAAU1D,GACf,OAAO0D,EAAE6+D,aAAY,WACnB,IAAI7+D,EAAG7M,EACP,OAAO,OAAS6M,EAAIpe,KAAKq7E,WAAaj9D,EAAE8+D,iCAAkC,OAAS3rE,EAAIvR,KAAKm9E,YAAc5rE,EAAE6rE,YAAY1iE,GAAI1a,KAAK68E,oBAJ9G,CAOvB78E,QACDwe,EAAEpd,UAAUs7E,WAAa,SAAUt+D,GACpC,OAAO,SAAU1D,GACf,OAAO,SAAUtT,GACf,OAAOA,EAAEw+D,sBAAmB,EAASlrD,EAAEuiE,aAAY,WACjD,OAAO1rE,EAAEvR,KAAK+c,cAAW,GAAU/c,KAAKwlC,UAAYpnB,EAAGpe,KAAKiL,OAAOmT,GAAGre,KAAKC,KAAMoH,QAHhF,CAMLpH,OACDwe,EAAEpd,UAAU67E,YAAc,SAAU7+D,GACrC,IAAI1D,EAAGnJ,EAEP,IACE,OAAO,OAASmJ,EAAI1a,KAAKq7E,WAAa3gE,EAAE2iE,iCAAkCj/D,EAAEre,KAAKC,MACjF,QACA,OAASuR,EAAIvR,KAAKq7E,WAAa9pE,EAAE+rE,kCAElC9+D,EAAEpd,UAAUm8E,eAAiB,SAAUn/D,EAAG1D,GAC3C,IAAInJ,EACJ,OAAOA,EAAI6F,SAASwN,cAAc,MAAQ6c,KAAOrjB,EAAG7M,EAAEhO,YAAc,MAAQmX,EAAIA,EAAI0D,EAAG7M,EAAEisE,WACxFh/D,EAxD8D,CAyDjE9D,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EACAoiB,EACAmJ,EACAmB,EACApB,EACAlrB,EACA0hB,EAEA7H,EAAI,SAAU4H,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG0oD,EAAErjE,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFglD,EAAI,GAAG7oD,eACP9d,EAAI,GAAGkL,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGVuO,EAAIvO,EAAEk0D,YAAa/mD,EAAInN,EAAEsxD,gBAAqBtxD,EAAEi0D,QAASp9D,EAAImJ,EAAE8iC,QAAS7+B,EAAIjE,EAAE42D,0BAA2B97B,EAAI96B,EAAE02D,uBAAwBhqE,EAAIsT,EAAEs2D,wBAAyBlpD,EAAIpN,EAAE4C,OAAO+6D,SAAU39D,EAAE+iE,sBAAwB,SAAUlsE,GAC/N,SAAShV,IACPA,EAAEkuE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAK09E,oBAGvD,IAAI7gF,EACJ,OAAO2Z,EAAEja,EAAGgV,GAAI1U,EAAI,EAAGN,EAAE6E,UAAUu8E,gBAAkB,SAAUv/D,GAC7D,IAAI1D,EAAGnJ,EAGP,IAAKmJ,KAFL,MAAQ0D,IAAMA,EAAI,IAAKpe,KAAK49E,aAAap4C,UAAYxlC,KAAKwlC,UAEhDpnB,EAAG7M,EAAI6M,EAAE1D,GAAI1a,KAAK49E,aAAaljE,GAAKnJ,EAE9C,OAAOvR,KAAK49E,cACXrhF,EAAE6E,UAAUs8E,kBAAoB,WACjC,OAAO19E,KAAK49E,aAAe,IAC1BrhF,EAAE6E,UAAU0xE,MAAQ,WACrB,OAAO9yE,KAAK09E,oBAAqBhjE,EAAEm2D,wBAAwBiC,SAC1Dv2E,EAAE6E,UAAUk6E,iBAAmB,SAAUl9D,GAC1C,IAAI1D,EACJ,OAAO1a,KAAK69E,cAAgB,OAASnjE,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEojE,sCAAwCpjE,EAAEojE,6CAA0C,EAAS99E,KAAKi9E,aAAY,WAC9L,OAAOj9E,KAAKw7E,sBAAsBp9D,KAAOpe,KAAK+9E,mBAAmB3/D,GAAKpe,KAAK68E,gBAAkB78E,KAAK+8E,kBAAmB/8E,KAAK8yE,YAE3Hv2E,EAAE6E,UAAU28E,mBAAqB,SAAU3/D,GAC5C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAMG,EAAGmJ,EAAGmB,EAAGpB,EAC/B,OAAOlJ,EAAIP,EAAE69D,UAAWn0D,EAAI1J,EAAE89D,cAAal8E,KAAK49E,aAAaI,iBAAuBtjE,EAAI,MAAQiE,EAAIA,IAAM3e,KAAK49E,aAAa3B,WAAaj8E,KAAK49E,aAAa3B,UAAW1qE,EAAI,MAAQuW,EAAI9nB,KAAK49E,aAAaK,WAAaj+E,KAAK49E,aAAaK,UAAkDp2D,EAAI,OAASC,IAAMvW,OAA1D0X,GAAK,OAAStK,GAAK,QAAUA,KAAOjE,KAAmCmN,GAAKA,IAAMoB,KAASusB,EAAIx1C,KAAKk+E,sBAAwB92E,EAAI6hB,EAAItK,EAAE7gB,QAAQ,MAAO,IAAIkK,SAAW,GAAK,MAAQ2W,EAAIA,EAAE3W,YAAS,IAAW,EAAG,OAASwW,EAAIxe,KAAKm9E,WAAa3+D,EAAE2/D,qBAAqB3oC,EAAE,GAAKpuC,QAAK,KAAesT,GAAKnJ,IACrhBhV,EAAE6E,UAAUo6E,sBAAwB,SAAUp9D,GAC/C,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAOA,EAAI5G,OAAOkW,KAAK0H,GAAGpW,OAAS,EAAG0S,EAAI,MAAQ,OAASnJ,EAAIvR,KAAKo+E,kBAAoB7sE,EAAE8sE,kBAAe,GAASj3E,IAAMsT,GACvHne,EAAE6E,UAAU6J,OAAS,CACtBqzE,QAAS,SAAUlgE,GACjB,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAG0sB,EAAGpB,EAAGlrB,EAAG0hB,EAE5B,GAAIre,KAAK69E,eAAiB79E,KAAK09E,oBAAqB19E,KAAK49E,aAAaW,UAAW,EAAI//D,EAAIsJ,EAAE1J,EAAExb,SAAU,CACrG,IAAKwE,EAAIpH,KAAK0W,KAA4C8+B,EAAI,EAAGvsB,GAA7CtsB,EAAI,CAAC,OAAQ,MAAO,QAAS,SAAsBqL,OAAQihB,EAAIusB,EAAGA,IAAep3B,GAAVyJ,EAAIlrB,EAAE64C,IAAU,SAAW,SAAW3tB,IAAMA,EAAI,WAAYzgB,EAAI,MAAQA,EAAIA,EAAEygB,QAAK,GAE9K,OAAS,MAAQzgB,EAAIA,EAAEoX,QAAK,KAAYxe,KAAK29E,gBAAgB,CAC3Da,QAAShgE,IACP9D,EAAEm2D,wBAAwBiC,QAAS1rE,EAAEoX,GAAGze,KAAKC,KAAMoe,IAGzD,OAAOO,EAAEP,KAAO7M,EAAI9K,OAAO0tE,aAAa/1D,EAAExb,SAASoP,kBAAmBzV,EAAI,WACxE,IAAIme,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAA2BA,EAAI,GAAI96B,EAAI,EAAGnJ,GAArCnK,EAAI,CAAC,MAAO,UAA+BY,OAAQuJ,EAAImJ,EAAGA,IAAe0D,GAAVyJ,EAAIzgB,EAAEsT,IAAU,QAAU86B,EAAExnC,KAAK6Z,GAErG,OAAO2tB,EALiE,IAMnExnC,KAAKuD,GAAI,OAAS8M,EAAIre,KAAKq7E,UAAYh9D,EAAEogE,yCAAyCliF,QAAK,GAAU6hB,EAAEoa,sBAAmB,GAE/HkmD,SAAU,SAAUtgE,GAClB,IAAI1D,EAAGnJ,EAAGnK,EACV,GAAI,MAAQpH,KAAK49E,aAAap4C,YAAcpnB,EAAEmzD,WAAanzD,EAAEua,SAAWva,EAAEugE,QAAS,OAAQv3E,EAAIiX,EAAED,KAAO,OAAS1D,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC,OAASrtE,EAAIvR,KAAKm9E,YAAc5rE,EAAEstE,aAAaz3E,GAAIpH,KAAK29E,gBAAgB,CACnP1B,UAAW70E,EACX62E,UAAWj+E,KAAK8+E,8BACZ,GAERC,UAAW,SAAU3gE,GACnB,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,OAAO96B,EAAI0D,EAAEhO,MAAMolC,EAAIx1C,KAAK49E,aAAa3B,YAAgBzmC,IAAM96B,GAAK86B,EAAEwpC,gBAAkBtkE,GAAKnJ,EAAIvR,KAAKk+E,mBAAoBl+E,KAAKi/E,iBAAiB,CAAC1tE,EAAE,GAAIA,EAAE,GAAKikC,EAAExtC,SAAU,OAASZ,EAAIpH,KAAKm9E,YAAc/1E,EAAEy3E,aAAankE,GAAI1a,KAAK29E,gBAAgB,CAChP1B,UAAWvhE,IACT1a,KAAKi/E,iBAAiB1tE,SAAM,GAElC2tE,UAAW,SAAU9gE,GACnB,OAAOA,EAAEoa,kBAEX2mD,UAAW,SAAU/gE,GACnB,IAAI1D,EACJ,OAAW0D,EAAExZ,OAAQ5E,KAAKo/E,iCAAiChhE,EAAEihE,cAAer/E,KAAKs/E,aAAet/E,KAAKk+E,mBAAoB,OAASxjE,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAE6kE,4BAA8B7kE,EAAE6kE,mCAAgC,GAEjPC,SAAU,SAAUphE,GAClB,IAAI1D,EAAGnJ,EACP,OAAQvR,KAAKs/E,eAAiBt/E,KAAKy/E,sBAAsBrhE,EAAEihE,gBAAkBjhE,EAAEoa,iBAAkB9d,EAAI,CACnGhH,EAAG0K,EAAEshE,QACLziF,EAAGmhB,EAAEuhE,SACJ93D,EAAEnN,EAAG1a,KAAK4/E,qBAAkB,GAAU5/E,KAAK4/E,cAAgBllE,EAAG,OAASnJ,EAAIvR,KAAKq7E,WAAa,mBAAqB9pE,EAAEsuE,uCAAyCtuE,EAAEsuE,uCAAuC7/E,KAAK4/E,oBAAiB,IAEjOE,QAAS,WACP,IAAI1hE,EACJ,OAAO,OAASA,EAAIpe,KAAKq7E,WAAa,mBAAqBj9D,EAAE2hE,8BAAgC3hE,EAAE2hE,+BAAgC//E,KAAKs/E,aAAe,KAAMt/E,KAAK4/E,cAAgB,MAEhLI,KAAM,SAAU5hE,GACd,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAC5B,OAAOzJ,EAAEoa,iBAAkBgd,EAAI,OAASj5C,EAAI6hB,EAAEihE,cAAgB9iF,EAAE68E,WAAQ,EAAQ56D,EAAI,CAClF9K,EAAG0K,EAAEshE,QACLziF,EAAGmhB,EAAEuhE,SACJ,OAAShhE,EAAI3e,KAAKm9E,YAAcx+D,EAAEshE,+BAA+BzhE,IAAK,MAAQg3B,EAAIA,EAAExtC,YAAS,GAAUhI,KAAKq0E,YAAY7+B,GAAKx1C,KAAKs/E,cAAgB,OAASx3D,EAAI9nB,KAAKq7E,WAAavzD,EAAEo4D,8BAA+B,OAASj3D,EAAIjpB,KAAKm9E,YAAcl0D,EAAEk3D,kBAAkBngF,KAAKs/E,cAAet/E,KAAKs/E,aAAe,KAAMt/E,KAAK68E,kBAAoBz1E,EAAIgX,EAAEihE,aAAapO,QAAQ,kCAAoC1/D,EAAImJ,EAAE28D,SAAS3M,eAAetjE,GAAI,OAASygB,EAAI7nB,KAAKm9E,YAAct1D,EAAEu4D,eAAe7uE,GAAIvR,KAAK68E,iBAAkB78E,KAAKs/E,aAAe,KAAMt/E,KAAK4/E,cAAgB,MAE9iBS,IAAK,SAAUjiE,GACb,IAAI1D,EAAGnJ,EACP,OAAQ,OAASmJ,EAAI1a,KAAKm9E,WAAaziE,EAAEokE,2BAAwB,KAAY9+E,KAAKo/E,iCAAiChhE,EAAEkiE,gBAAkBliE,EAAEoa,iBAAkB,OAASjnB,EAAIvR,KAAKq7E,WAAa9pE,EAAEgvE,6BAA8BvgF,KAAKwgF,kBAAkB,YAAapiE,EAAEwnD,kBAAoB5lE,KAAK68E,qBAAkB,GAE7S4D,KAAM,SAAUriE,GACd,IAAI1D,EACJ,OAAQ,OAASA,EAAI1a,KAAKm9E,WAAaziE,EAAEokE,2BAAwB,IAAW9+E,KAAKo/E,iCAAiChhE,EAAEkiE,eAAiBliE,EAAEoa,sBAAmB,GAE5JkoD,MAAO,SAAUtiE,GACf,IAAI7M,EAAGikC,EAAGj5C,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGxJ,EAAG7H,EAAG4sD,EAAGx1B,EAAG3wC,EAAGK,EAAGwY,EAAG+tD,EAAGnwD,EAAGuB,EAAGoyD,EAAGjyD,EAAGurE,EAAGjiE,EAAGyH,EAAG1qB,EACtE,OAAO8V,EAAI,OAAS8M,EAAID,EAAEkiE,eAAiBjiE,EAAID,EAAEwiE,kBAAmB/4D,EAAI,CACtEg5D,UAAWtvE,GACV,MAAQA,GAAK5U,EAAEyhB,QAAUpe,KAAK8gF,gCAAgC,SAAU1iE,GACzE,OAAO,SAAU1D,GACf,IAAInJ,EAAGnK,EAAGouC,EACV,OAAO3tB,EAAE7T,KAAO,YAAa6T,EAAEuvB,KAAO18B,EAAG,OAASnJ,EAAI6M,EAAEi9D,WAAa9pE,EAAEwvE,yBAAyBl5D,GAAI,OAASzgB,EAAIgX,EAAE++D,YAAc/1E,EAAE45E,WAAWn5D,EAAEuvB,MAAOh5B,EAAEy+D,gBAAiB,OAASrnC,EAAIp3B,EAAEi9D,UAAY7lC,EAAEyrC,wBAAwBp5D,QAAK,GAHvK,CAK/D7nB,SAAW2e,EAAIpN,EAAE0/D,QAAQ,SAAWppD,EAAE7T,KAAO,YAAavY,GAAKwtB,EAAI1X,EAAE0/D,QAAQ,oBAAsBv2D,EAAE8wD,0BAA0BviD,GAAGzlB,OAASmb,EAAGkJ,EAAEuvB,KAAOp3C,KAAKu9E,eAAe5+D,EAAGljB,GAAI,OAAS+a,EAAIxW,KAAKq7E,WAAa7kE,EAAEuqE,yBAAyBl5D,GAAI7nB,KAAK29E,gBAAgB,CACrQ1B,UAAWxgF,EACXwiF,UAAWj+E,KAAK8+E,wBACd,OAASjb,EAAI7jE,KAAKm9E,YAActZ,EAAEmd,WAAWn5D,EAAEuvB,MAAOp3C,KAAK68E,gBAAiB,OAASnpE,EAAI1T,KAAKq7E,WAAa3nE,EAAEutE,wBAAwBp5D,IAAMzgB,EAAEmK,IAAMsW,EAAE7T,KAAO,aAAc6T,EAAEre,OAAS+H,EAAE0/D,QAAQ,cAAe,OAASh8D,EAAIjV,KAAKq7E,WAAapmE,EAAE8rE,yBAAyBl5D,GAAI7nB,KAAK29E,gBAAgB,CACnS1B,UAAWp0D,EAAEre,OACby0E,UAAWj+E,KAAK8+E,wBACd,OAASzX,EAAIrnE,KAAKm9E,YAAc9V,EAAEwX,aAAah3D,EAAEre,QAASxJ,KAAK68E,gBAAiB,OAASznE,EAAIpV,KAAKq7E,WAAajmE,EAAE6rE,wBAAwBp5D,KAAOC,EAAIvW,EAAE0/D,QAAQ,eAAiBppD,EAAE7T,KAAO,YAAa6T,EAAEuvB,KAAOtvB,EAAG,OAAS64D,EAAI3gF,KAAKq7E,WAAasF,EAAEI,yBAAyBl5D,GAAI,OAASnJ,EAAI1e,KAAKm9E,YAAcz+D,EAAEsiE,WAAWn5D,EAAEuvB,MAAOp3C,KAAK68E,gBAAiB,OAAS12D,EAAInmB,KAAKq7E,WAAal1D,EAAE86D,wBAAwBp5D,IAAMprB,EAAEsD,KAAKwR,EAAE2vE,MAAO,UAAY,IAAM3kF,EAAI,OAAS6mE,EAAI7xD,EAAEslC,QAAU,OAASjJ,EAAIw1B,EAAE,KAAO,mBAAqBx1B,EAAEuzC,UAAYvzC,EAAEuzC,iBAAc,MAAa5kF,EAAEshB,OAAS23B,EAAIh3B,EAAEjiB,MAAQA,EAAEshB,KAAO,kBAAmBhhB,EAAI,IAAM24C,GAAI3tB,EAAE7T,KAAO,OAAQ6T,EAAEuwD,KAAO77E,EAAG,OAASU,EAAI+C,KAAKq7E,WAAap+E,EAAEigF,iCAAkC,OAAS5/E,EAAI0C,KAAKm9E,YAAc7/E,EAAE8jF,WAAWv5D,EAAEuwD,MAAOp4E,KAAK68E,gBAAiB,OAAS/mE,EAAI9V,KAAKq7E,WAAavlE,EAAEmrE,wBAAwBp5D,IAAKzJ,EAAEoa,mBAEp2B6oD,iBAAkB,SAAUjjE,GAC1B,OAAOpe,KAAKshF,sBAAsB9+C,MAAMpkB,EAAEhO,OAE5CmxE,kBAAmB,SAAUnjE,GAC3B,OAAOpe,KAAKshF,sBAAsBpwB,OAAO9yC,EAAEhO,OAE7CoxE,eAAgB,SAAUpjE,GACxB,OAAOpe,KAAKshF,sBAAsBlnB,IAAIh8C,EAAEhO,OAE1CqxE,YAAa,WACX,OAAOzhF,KAAK49E,aAAaW,UAAW,GAEtCz2E,MAAO,SAAUsW,GACf,OAAOpe,KAAK49E,aAAaW,UAAW,EAAIngE,EAAEwa,oBAE3Cr8B,EAAE6E,UAAUsV,KAAO,CACpBgrE,UAAW,SAAUtjE,GACnB,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC5+E,KAAKwgF,kBAAkB,WAAYpiE,IAEjH,OAAU,SAAUA,GAClB,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC5+E,KAAKwgF,kBAAkB,UAAWpiE,IAEhH,OAAU,WACR,IAAIA,EAAG1D,EACP,OAAO1a,KAAK29E,gBAAgB,CAC1BK,gBAAgB,IACd,OAAS5/D,EAAIpe,KAAKq7E,WAAaj9D,EAAEwgE,mCAAoC,OAASlkE,EAAI1a,KAAKm9E,WAAaziE,EAAEinE,uBAAoB,GAEhIC,IAAK,SAAUxjE,GACb,IAAI1D,EAAGnJ,EACP,OAAQ,OAASmJ,EAAI1a,KAAKm9E,WAAaziE,EAAEmnE,+BAA4B,IAAW,OAAStwE,EAAIvR,KAAKm9E,YAAc5rE,EAAEuwE,uBAAwB9hF,KAAK68E,gBAAiBz+D,EAAEoa,uBAAoB,GAExL1kB,KAAM,SAAUsK,GACd,IAAI1D,EACJ,OAAO1a,KAAK+hF,6BAA+B3jE,EAAEoa,iBAAkB,OAAS9d,EAAI1a,KAAKm9E,WAAaziE,EAAEsnE,sBAAsB,iBAAc,QAAU,GAEhJzlD,MAAO,SAAUne,GACf,IAAI1D,EACJ,OAAO1a,KAAK+hF,6BAA+B3jE,EAAEoa,iBAAkB,OAAS9d,EAAI1a,KAAKm9E,WAAaziE,EAAEsnE,sBAAsB,gBAAa,QAAU,GAE/IC,QAAS,CACPplF,EAAG,SAAUuhB,GACX,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC5+E,KAAKwgF,kBAAkB,UAAWpiE,IAEhHzhB,EAAG,SAAUyhB,GACX,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC5+E,KAAKwgF,kBAAkB,WAAYpiE,IAEjHo3B,EAAG,SAAUp3B,GACX,IAAI1D,EAAGnJ,EACP,OAAO6M,EAAEoa,iBAAkB,OAAS9d,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC,OAASrtE,EAAIvR,KAAKm9E,YAAc5rE,EAAEstE,aAAa,KAAM,CACnJqD,gBAAgB,IACdliF,KAAK68E,kBAGbvsC,MAAO,CACL,OAAU,SAAUlyB,GAClB,IAAI1D,EAAGnJ,EACP,OAAO,OAASmJ,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC,OAASrtE,EAAIvR,KAAKm9E,YAAc5rE,EAAEstE,aAAa,MAAO7+E,KAAK68E,gBAAiBz+D,EAAEoa,kBAE5JopD,IAAK,SAAUxjE,GACb,IAAI1D,EAAGnJ,EACP,OAAQ,OAASmJ,EAAI1a,KAAKm9E,WAAaziE,EAAEynE,+BAA4B,IAAW,OAAS5wE,EAAIvR,KAAKm9E,YAAc5rE,EAAE6wE,uBAAwBpiF,KAAK68E,gBAAiBz+D,EAAEoa,uBAAoB,GAExL1kB,KAAM,SAAUsK,GACd,OAAOpe,KAAK+hF,6BAA+B3jE,EAAEoa,iBAAkBx4B,KAAKqiF,2BAA2B,kBAAe,GAEhH9lD,MAAO,SAAUne,GACf,OAAOpe,KAAK+hF,6BAA+B3jE,EAAEoa,iBAAkBx4B,KAAKqiF,2BAA2B,iBAAc,IAGjHC,IAAK,CACHZ,UAAW,WACT,IAAItjE,EACJ,OAAOpe,KAAK29E,gBAAgB,CAC1BK,gBAAgB,IACd,OAAS5/D,EAAIpe,KAAKq7E,UAAYj9D,EAAEwgE,wCAAqC,IAG7E2D,KAAM,CACJb,UAAW,WACT,IAAItjE,EACJ,OAAOpe,KAAK29E,gBAAgB,CAC1BK,gBAAgB,IACd,OAAS5/D,EAAIpe,KAAKq7E,UAAYj9D,EAAEwgE,wCAAqC,KAG5EriF,EAAE6E,UAAUkgF,oBAAsB,WACnC,OAAOthF,KAAK69E,cAAgB79E,KAAKo+E,iBAAmBp+E,KAAKo+E,iBAAmB,IAAIhgE,EAAEpe,OACjFzD,EAAE6E,UAAUy8E,YAAc,WAC3B,OAAO,MAAQ79E,KAAKo+E,mBAAqBp+E,KAAKo+E,iBAAiBoE,WAC9DjmF,EAAE6E,UAAUo/E,kBAAoB,SAAUpiE,EAAG1D,GAC9C,IAAInJ,EACJ,OAA4E,KAApE,OAASA,EAAIvR,KAAKm9E,WAAa5rE,EAAEivE,kBAAkBpiE,QAAK,GAAiBpe,KAAK29E,gBAAgB,CACpGM,WAAW,IACRvjE,GAAKA,EAAE8d,iBAAkBx4B,KAAK68E,sBAAmB,GACrDtgF,EAAE6E,UAAUg+E,iCAAmC,SAAUhhE,GAC1D,IAAI7M,EAAGnK,EACP,GAAIouC,EAAEp3B,GAAI,OAAO7M,EAAI,OAASnK,EAAIpH,KAAKm9E,WAAa/1E,EAAEq7E,sBAAsBlL,8BAA2B,EAAQn5D,EAAEizD,QAAQ,8BAA+Bl3C,KAAKtf,UAAUtJ,IAAK6M,EAAEizD,QAAQ,YAAa32D,EAAE88D,aAAaC,OAAOlmE,GAAG7N,WAAY0a,EAAEizD,QAAQ,aAAc9/D,EAAEuH,WAAWhb,QAAQ,MAAO,MAAM,GACjSvB,EAAE6E,UAAUq+E,sBAAwB,SAAUrhE,GAC/C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAMj5C,EAEnB,IAAKA,EAAI,GAA6Dme,EAAI,EAAGnJ,GAAhEikC,EAAI,OAASpuC,EAAI,MAAQgX,EAAIA,EAAE8iE,WAAQ,GAAU95E,EAAI,IAAiBY,OAAQuJ,EAAImJ,EAAGA,IAAene,EAANi5C,EAAE96B,KAAW,EAExH,OAAOne,EAAEmmF,OAASnmF,EAAE,gCAAkCA,EAAE,cAAgBA,EAAE,eACzEA,EAAE6E,UAAU0/E,gCAAkC,SAAU1iE,GACzD,IAAI7M,EAAGnK,EAAGouC,EACV,OAAOpuC,EAAIpH,KAAKk+E,mBAAoB1oC,EAAI,CACtChzB,SAAU,WACV1O,KAAMmD,OAAOmlB,YAAc,KAC3BhtB,IAAK6H,OAAOklB,YAAc,KAC1BwmD,QAAS,GACRpxE,EAAI0X,EAAE,CACPtY,MAAO6kC,EACPm5B,QAAS,MACTE,UAAU,IACRz3D,SAASyY,KAAKjK,YAAYrU,GAAIA,EAAE0hB,QAAShwB,sBAAsB,SAAUuyC,GAC3E,OAAO,WACL,IAAIh3B,EACJ,OAAOA,EAAIjN,EAAE7N,UAAWgX,EAAEszD,WAAWz8D,GAAIikC,EAAEypC,iBAAiB73E,GAAIgX,EAAEI,IAHH,CAKjExe,QACDzD,EAAE8tE,YAAY,+BAAgC9tE,EAAE8tE,YAAY,+BAAgC9tE,EAAE8tE,YAAY,yCAA0C9tE,EAAE8tE,YAAY,wCAAyC9tE,EAAE8tE,YAAY,kCAAmC9tE,EA5O1C,CA6OrNme,EAAE8hE,iBAAkBh+D,EAAI,SAAUJ,GAClC,IAAI1D,EAAGnJ,EACP,OAAO,OAASmJ,EAAI0D,EAAEpK,OAAS,OAASzC,EAAImJ,EAAEvT,MAAM,aAAeoK,EAAE,QAAK,GACzEhV,EAAI,OAAS,kBAAqB,IAAIy3E,YAAc,IAAIA,YAAY,QAAK,GAAS31D,EAAI,SAAUD,GACjG,IAAI7M,EACJ,OAAO6M,EAAEzb,KAAOpG,GAAK6hB,EAAEzb,IAAIqxE,YAAY,KAAO51D,EAAExb,QAAUwb,EAAEzb,KAAO,OAASyb,EAAEyhB,MAAQtuB,EAAI6M,EAAExb,QAAU,IAAMwb,EAAEyhB,OAAS,IAAMzhB,EAAEwkE,WAAarxE,EAAI6M,EAAEwkE,UAAW,MAAQrxE,GAAK,WAAauW,EAAEvW,GAAKmJ,EAAEwwD,YAAYY,eAAe,CAACv6D,IAAIuH,gBAAa,IAC5Onc,EAAI,SAAUyhB,GACf,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAMurB,EAAGmB,EAAGpB,EAE/B,GAAIC,EAAI1J,EAAEkiE,cAAe,CACvB,GAAI7jF,EAAEsD,KAAK+nB,EAAEo5D,MAAO,cAAgB,EAAG,CACrC,IAAkB95E,EAAI,EAAG7K,GAApB0sB,EAAInB,EAAEo5D,OAAoBl5E,OAAQzL,EAAI6K,EAAGA,IAAK,GAAIygB,EAAIoB,EAAE7hB,GAAIsT,EAAI,4BAA4Bxc,KAAK2pB,GAAItW,EAAI,SAASrT,KAAK2pB,IAAMC,EAAEmpD,QAAQppD,GAAQnN,GAAKnJ,EAAG,OAAO,EAEnK,OAAO,EAGT,OAAOikC,EAAI/4C,EAAEsD,KAAK+nB,EAAEo5D,MAAO,yBAA2B,EAAG1iE,EAAI/hB,EAAEsD,KAAK+nB,EAAEo5D,MAAO,wBAA0B,EAAG1rC,GAAKh3B,IAEhHJ,EAAI,SAAUA,GACf,SAAS1D,EAAE0D,GACT,IAAI1D,EACJ1a,KAAK6iF,gBAAkBzkE,EAAG1D,EAAI1a,KAAK6iF,gBAAiB7iF,KAAKm9E,UAAYziE,EAAEyiE,UAAWn9E,KAAKq7E,SAAW3gE,EAAE2gE,SAAUr7E,KAAK49E,aAAeljE,EAAEkjE,aAAc59E,KAAKoQ,KAAO,GAGhK,OAAOoG,EAAEkE,EAAG0D,GAAI1D,EAAEtZ,UAAUohC,MAAQ,SAAUpkB,GAC5C,IAAI1D,EAAGnJ,EACP,OAAOvR,KAAKoQ,KAAKoyB,MAAQpkB,EAAGpe,KAAK8iF,iBAAmB,aAAe9iF,KAAK49E,aAAap4C,WAAaxlC,KAAK49E,aAAa3B,WAAa,OAASvhE,EAAI1a,KAAKm9E,YAAcziE,EAAE8lE,kBAAkB,QAASxgF,KAAK8+E,wBAA0B9+E,KAAK+iF,oBAAqB/iF,KAAK68E,iBAAkB78E,KAAKg+B,MAAQ,OAASzsB,EAAIvR,KAAKm9E,WAAa5rE,EAAE2sE,wBAAqB,QAAU,GAC1VxjE,EAAEtZ,UAAU8vD,OAAS,SAAU9yC,GAChC,IAAI1D,EACJ,OAAO1a,KAAKoQ,KAAK8gD,OAAS9yC,EAAGpe,KAAK8iF,kBAAoBpoE,EAAI1a,KAAKgjF,sBAAwBhjF,KAAKijF,oBAAqBjjF,KAAKg+B,MAAQtjB,QAAK,GAClIA,EAAEtZ,UAAUg5D,IAAM,SAAUh8C,GAC7B,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,OAAOx1C,KAAKoQ,KAAKgqD,IAAMh8C,EAAGpe,KAAK8iF,iBAAmB9iF,KAAKijF,oBAAqBjjF,KAAKkjF,sBAAwBljF,KAAK29E,gBAAgB,CAC5HK,gBAAgB,EAChBO,UAAU,IACR,OAAS7jE,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC,OAASrtE,EAAIvR,KAAKm9E,YAAc5rE,EAAE0tE,iBAAiBj/E,KAAKg+B,OAAQ,OAAS52B,EAAIpH,KAAKm9E,YAAc/1E,EAAEy3E,aAAa7+E,KAAKoQ,KAAKgqD,KAAM,OAAS5kB,EAAIx1C,KAAKm9E,WAAa3nC,EAAEypC,iBAAiBj/E,KAAKg+B,MAAM,GAAKh+B,KAAKoQ,KAAKgqD,IAAIpyD,aAAU,GAAU,MAAQhI,KAAKoQ,KAAKoyB,OAAS,MAAQxiC,KAAKoQ,KAAK8gD,QAAUlxD,KAAK+8E,iBAAkB/8E,KAAK6iF,gBAAgB/P,cAAW,GAAU9yE,KAAK6iF,gBAAgB/P,SACxbp4D,EAAEtZ,UAAUi9E,WAAa,WAC1B,OAAOr+E,KAAKoQ,KAAKgqD,KAChB1/C,EAAEtZ,UAAUohF,QAAU,WACvB,OAAO,MAAQxiF,KAAKq+E,cACnB3jE,EAAEtZ,UAAU0hF,cAAgB,WAC7B,OAAOvxE,EAAEy4D,sBAAuBhqE,KAAK49E,aAAaW,UACjD7jE,EAAEtZ,UAAU8hF,mBAAqB,WAClC,IAAI9kE,EAAG1D,EACP,OAAO,KAAO,OAAS0D,EAAIpe,KAAKoQ,KAAKoyB,OAASpkB,EAAEpW,YAAS,KAAY,OAAS0S,EAAI1a,KAAKoQ,KAAKgqD,KAAO1/C,EAAE1S,YAAS,GAAU,GAAK,MAAQhI,KAAKg+B,OACzItjB,EAAE2vD,YAAY,mCAAoC3vD,EAAE2vD,YAAY,iCAAkC3vD,EAAE2vD,YAAY,kCAAmC3vD,EAAE2vD,YAAY,kCAAmC3vD,EAAE2vD,YAAY,gCAAiC3vD,EAAE2vD,YAAY,gCAAiC3vD,EAAE2vD,YAAY,gCAAiC3vD,EA3B/U,CA4BLA,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EAAI,SAAUp3B,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,aAGlB0a,EAAI,SAAUJ,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAGne,EAAEwD,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7hB,EAAI,GAAGge,eACPoE,EAAI,GAAGhX,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGV0D,EAAI1D,EAAEs2D,wBAAyBz/D,EAAImJ,EAAE42D,0BAA2BlqE,EAAIsT,EAAEsxD,gBAAiBtxD,EAAEyoE,sBAAwB,SAAU5mF,GACzH,SAASurB,IACP,OAAO9nB,KAAKy3E,OAASjiC,EAAEx1C,KAAKy3E,OAAQz3E,MAAO8nB,EAAE2iD,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAGjF,IAAImlB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EACnB,OAAOgI,EAAEsJ,EAAGvrB,GAAIurB,EAAE1mB,UAAUk6E,iBAAmB,WAC7C,IAAIl9D,EACJ,OAAOpe,KAAKojF,gBAAkBpjF,KAAKqjF,WAAa,OAASjlE,EAAIpe,KAAKq7E,WAAa,mBAAqBj9D,EAAE0/D,sCAAwC1/D,EAAE0/D,6CAA0C,EAAS99E,KAAKsjF,WACvMx7D,EAAE1mB,UAAUmiF,eAAiB,WAC9B,OAAO,MAAQvjF,KAAKojF,gBAAkBpjF,KAAKojF,gBAAkBpjF,KAAKojF,gBAAkBngF,sBAAsBjD,KAAKy3E,SAC9G3vD,EAAE1mB,UAAUq2E,OAAS,WACtB,IAAIr5D,EACJ,OAAO7c,qBAAqBvB,KAAKojF,iBAAkBpjF,KAAKojF,gBAAkB,KAAMpjF,KAAKqjF,WAAa,OAASjlE,EAAIpe,KAAKq7E,WAAaj9D,EAAEq5D,SAAU,mBAAqBz3E,KAAKwjF,aAAexjF,KAAKwjF,cAAexjF,KAAKwjF,YAAc,MAC5N17D,EAAE1mB,UAAUkiF,QAAU,WACvB,IAAIllE,EACJ,OAAO,OAASA,EAAIpe,KAAKq7E,UAAYj9D,EAAEklE,eAAY,GAClDx7D,EAAE1mB,UAAU6J,OAAS,CACtBqzE,QAAS,SAAUlgE,GACjB,IAAI1D,EAAGtT,EAAGouC,EAAGh3B,EAEb,GAAIjN,EAAE6M,IACJ,GAAI1D,EAAImN,EAAEzJ,GAAI,OAASI,EAAIxe,KAAKq7E,UAAY78D,EAAEigE,yCAAyC/jE,QAAK,EAAQ,OAAO0D,EAAEoa,sBACxG,GAAIgd,EAAIp3B,EAAEzb,IAAKyb,EAAEugE,SAAWnpC,GAAK,QAASp3B,EAAE4a,WAAawc,GAAK,UAAWpuC,EAAIpH,KAAK0W,KAAK8+B,GAAI,OAAOx1C,KAAKyjF,UAAUrlE,EAAGhX,IAE7Hs5E,MAAO,SAAUtiE,GACf,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAC5B,OAAOtsB,EAAEyhB,IAAMA,EAAEoa,iBAAkBx4B,KAAKq0E,YAAYj2D,EAAEkiE,cAAclH,QAAU/6D,EAAED,IAAMA,EAAEoa,iBAAkBjnB,EAAI,CAC5GyC,KAAM,aACNxK,OAAQ4U,EAAEkiE,cAAcrP,QAAQ,eAC/B,OAAS7pE,EAAIpH,KAAKq7E,WAAaj0E,EAAE25E,yBAAyBxvE,GAAI,OAASikC,EAAIx1C,KAAKm9E,YAAc3nC,EAAEqpC,aAAattE,EAAE/H,QAASxJ,KAAKy3E,SAAU,OAASj5D,EAAIxe,KAAKq7E,UAAY78D,EAAEyiE,wBAAwB1vE,QAAK,IAAWmJ,EAAI,OAASne,EAAI6hB,EAAEkiE,eAAiB/jF,EAAE00E,QAAQ,YAAS,IAAW7yD,EAAEoa,iBAAkBjnB,EAAI,CAC1SyC,KAAM,YACNojC,KAAMp3C,KAAKu9E,eAAe7iE,IACzB,OAASiE,EAAI3e,KAAKq7E,WAAa18D,EAAEoiE,yBAAyBxvE,GAAI,OAASuW,EAAI9nB,KAAKm9E,YAAcr1D,EAAEk5D,WAAWzvE,EAAE6lC,MAAOp3C,KAAKy3E,SAAU,OAASxuD,EAAIjpB,KAAKq7E,UAAYpyD,EAAEg4D,wBAAwB1vE,QAAK,QAAU,GAE/MkwE,YAAa,SAAUrjE,GACrB,IAAI1D,EACJ,OAAQA,EAAI1a,KAAK0jF,WAAWtlE,EAAE4gB,aAAeh/B,KAAKyjF,UAAUrlE,EAAG1D,GAAI1a,KAAKujF,uBAAoB,GAE9Fz7E,MAAO,WACL,OAAO4S,EAAEm2D,wBAAwBiC,SAEnCqM,UAAW,SAAU/gE,GACnB,IAAI1D,EAAGnJ,EACP,OAAQ,OAASmJ,EAAI1a,KAAKm9E,WAAaziE,EAAEipE,oCAAiC,IAAWvlE,EAAEihE,aAAahO,QAAQ,+BAA+B,GAAKrxE,KAAK4jF,SAAW,CAC9J5lD,MAAO,OAASzsB,EAAIvR,KAAKm9E,WAAa5rE,EAAE2sE,wBAAqB,EAC7DpxC,MAAOjwC,EAAEuhB,UACN,GAEP8gE,UAAW,SAAU9gE,GACnB,OAAO6K,EAAE7K,GAAKA,EAAEoa,sBAAmB,GAErCgnD,SAAU,SAAUphE,GAClB,IAAI1D,EAAGnJ,EACP,OAAOvR,KAAK4jF,WAAaxlE,EAAEoa,iBAAkB9d,EAAI7d,EAAEuhB,IAAKhX,EAAEsT,EAAG1a,KAAK4jF,SAAS92C,SAAW9sC,KAAK4jF,SAAS92C,MAAQpyB,EAAG,OAASnJ,EAAIvR,KAAKm9E,WAAa5rE,EAAE0uE,+BAA+BvlE,QAAK,QAAU,GAEhMslE,KAAM,SAAU5hE,GACd,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,OAAOx1C,KAAK4jF,UAAYxlE,EAAEoa,iBAAkB,OAASjnB,EAAIvR,KAAKq7E,WAAa9pE,EAAE2uE,8BAA+B,OAAS94E,EAAIpH,KAAKm9E,YAAc/1E,EAAE+4E,kBAAkBngF,KAAK4jF,SAAS5lD,OAAQh+B,KAAK4jF,SAAW,KAAM5jF,KAAKujF,kBAAoBt6D,EAAE7K,IAAMA,EAAEoa,iBAAkB9d,EAAI7d,EAAEuhB,GAAI,OAASo3B,EAAIx1C,KAAKm9E,YAAc3nC,EAAEyqC,+BAA+BvlE,GAAI1a,KAAKq0E,YAAYj2D,EAAEihE,aAAajG,aAAU,GAE5X0G,QAAS,WACP,IAAI1hE,EACJ,OAAOpe,KAAK4jF,UAAY,OAASxlE,EAAIpe,KAAKm9E,YAAc/+D,EAAE6gE,iBAAiBj/E,KAAK4jF,SAAS5lD,OAAQh+B,KAAK4jF,SAAW,WAAQ,GAE3HpC,eAAgB,WACd,OAAOxhF,KAAKqjF,WAAarjF,KAAKqjF,WAAY,EAAIrjF,KAAKujF,uBAAoB,IAExEz7D,EAAE1mB,UAAUsV,KAAO,CACpBmtE,UAAW,WACT,IAAIzlE,EAAG1D,EACP,OAAQ,OAAS0D,EAAIpe,KAAKm9E,WAAa/+D,EAAE0lE,oCAAoC,iBAAc,IAAW9jF,KAAKsO,MAAMkqB,iBAAkB,OAAS9d,EAAI1a,KAAKm9E,WAAaziE,EAAEsnE,sBAAsB,iBAAc,QAAU,GAEpN+B,WAAY,WACV,IAAI3lE,EAAG1D,EACP,OAAQ,OAAS0D,EAAIpe,KAAKm9E,WAAa/+D,EAAE0lE,oCAAoC,gBAAa,IAAW9jF,KAAKsO,MAAMkqB,iBAAkB,OAAS9d,EAAI1a,KAAKm9E,WAAaziE,EAAEsnE,sBAAsB,gBAAa,QAAU,GAElNgC,UAAW,WACT,IAAI5lE,EAAG1D,EAAGnJ,EACV,OAAQ,OAAS6M,EAAIpe,KAAKm9E,WAAa/+D,EAAE6lE,gCAAgC,iBAAc,IAAWjkF,KAAKsO,MAAMkqB,iBAAkB,OAAS9d,EAAI1a,KAAKq7E,WAAa3gE,EAAEkkE,mCAAoC,OAASrtE,EAAIvR,KAAKm9E,YAAc5rE,EAAEivE,kBAAkB,YAAaxgF,KAAKy3E,eAAY,GAExRyM,IAAK,WACH,IAAI9lE,EAAG1D,EACP,OAAQ,OAAS0D,EAAIpe,KAAKm9E,WAAa/+D,EAAEyjE,+BAA4B,IAAW7hF,KAAKsO,MAAMkqB,iBAAkB,OAAS9d,EAAI1a,KAAKm9E,YAAcziE,EAAEonE,uBAAwB9hF,KAAKy3E,eAAY,GAE1L,YAAa,WACX,IAAIr5D,EAAG1D,EACP,OAAQ,OAAS0D,EAAIpe,KAAKm9E,WAAa/+D,EAAE+jE,+BAA4B,IAAWniF,KAAKsO,MAAMkqB,iBAAkB,OAAS9d,EAAI1a,KAAKm9E,YAAcziE,EAAE0nE,uBAAwBpiF,KAAKy3E,eAAY,IAEzL3vD,EAAE1mB,UAAUsiF,WAAa,CAC1BS,oBAAqB,WACnB,OAAOnkF,KAAKwgF,kBAAkB,WAAY,CACxC4D,iBAAiB,KAGrBC,YAAa,WACX,OAAOrkF,KAAKwgF,kBAAkB,aAEhC8D,aAAc,WACZ,OAAOtkF,KAAKsO,MAAMkqB,iBAAkBx4B,KAAKukF,oBAAmB,WAC1D,IAAInmE,EACJ,OAAOpe,KAAKwkF,kBAAoB,OAASpmE,EAAIpe,KAAKm9E,WAAa/+D,EAAE8/D,wBAAqB,MAG1FuG,sBAAuB,WACrB,OAAOzkF,KAAKwgF,kBAAkB,WAAY,CACxC4D,iBAAiB,KAGrBM,cAAe,WACb,OAAO1kF,KAAKwgF,kBAAkB,aAEhCmE,sBAAuB,WACrB,OAAO3kF,KAAKwgF,kBAAkB,aAEhCoE,qBAAsB,WACpB,OAAO5kF,KAAKwgF,kBAAkB,YAEhCqE,qBAAsB,WACpB,OAAO7kF,KAAKwgF,kBAAkB,YAEhCsE,uBAAwB,WACtB,OAAO9kF,KAAKwgF,kBAAkB,aAEhCuE,sBAAuB,WACrB,OAAO/kF,KAAKwgF,kBAAkB,YAEhCwE,uBAAwB,WACtB,OAAOhlF,KAAKwgF,kBAAkB,aAEhCyE,sBAAuB,WACrB,OAAOjlF,KAAKwgF,kBAAkB,YAEhC0E,mBAAoB,WAClB,OAAOllF,KAAKwgF,kBAAkB,aAEhC2E,kBAAmB,WACjB,OAAOnlF,KAAKwgF,kBAAkB,YAEhC4E,gBAAiB,WACf,OAAOplF,KAAKqlF,6BAA6B,kBAAmBrlF,KAAKsO,MAAM8B,OAEzEk1E,WAAY,WACV,OAAOtlF,KAAKulF,2BAA2B,SAEzCC,gBAAiB,WACf,OAAOxlF,KAAKqlF,6BAA6B,QAASrlF,KAAKsO,MAAM8B,OAE/Dq1E,eAAgB,WACd,OAAOzlF,KAAKqlF,6BAA6B,OAAQrlF,KAAKsO,MAAM8B,OAE9Ds1E,aAAc,WACZ,IAAItnE,EACJ,OAAQ,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAEyjE,+BAA4B,GAAU7hF,KAAKukF,oBAAmB,WACrG,IAAInmE,EACJ,OAAO,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAE0jE,4BAAyB,UAC9D,GAEP6D,aAAc,WACZ,OAAO3lF,KAAKulF,2BAA2B,WAEzCK,oBAAqB,WACnB,OAAO5lF,KAAKulF,2BAA2B,kBAEzCM,kBAAmB,WACjB,OAAO7lF,KAAKulF,2BAA2B,gBAEzCO,kBAAmB,WACjB,OAAO9lF,KAAKulF,2BAA2B,gBAEzCQ,mBAAoB,WAClB,OAAO/lF,KAAKulF,2BAA2B,iBAEzCS,cAAe,WACb,IAAI5nE,EACJ,OAAQ,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAE+jE,+BAA4B,GAAUniF,KAAKukF,oBAAmB,WACrG,IAAInmE,EACJ,OAAO,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAEgkE,4BAAyB,UAC9D,GAEP6D,aAAc,WACZ,OAAOjmF,KAAKukF,oBAAmB,WAC7B,IAAInmE,EAAG1D,EAAGnJ,EAAGnK,EAGb,IAAKgX,KAFLhX,EAAI,GAEM,OAASsT,EAAI1a,KAAKm9E,WAAaziE,EAAEwrE,4BAAyB,EAAQ9+E,EAAE4G,KAAK,OAASuD,EAAIvR,KAAKm9E,WAAa5rE,EAAE40E,uBAAuB/nE,QAAK,GAEhJ,OAAOhX,MAGXg/E,4BAA6B,WAC3B,OAAOpmF,KAAKqlF,6BAA6B,WAAYrlF,KAAKsO,MAAM8B,OAElEi2E,6BAA8B,WAC5B,OAAOrmF,KAAKqlF,6BAA6B,UAAWrlF,KAAKsO,MAAM8B,OAEjEk2E,oBAAqB,WACnB,OAAOtmF,KAAKulF,2BAA2B,WAEzCgB,gBAAiB,WACf,OAAOvmF,KAAKulF,2BAA2B,QAEzCiB,kBAAmB,WACjB,OAAOxmF,KAAKulF,2BAA2B,QAEzCkB,gBAAiB,WACf,OAAOzmF,KAAKulF,2BAA2B,cAEzCmB,YAAa,WACX,IAAItoE,EACJ,OAAO,OAASA,EAAIpe,KAAKq7E,UAAYj9D,EAAEuoE,sCAAmC,GAE5EC,YAAa,WACX,IAAIxoE,EACJ,OAAO,OAASA,EAAIpe,KAAKq7E,UAAYj9D,EAAEyoE,sCAAmC,GAE5EC,sBAAuB,WACrB,OAAO9mF,KAAKqjF,WAAY,EAAIrjF,KAAK6+E,aAAa7+E,KAAKsO,MAAM8B,OAE3D22E,sBAAuB,WACrB,OAAO/mF,KAAKqjF,WAAY,EAAIrjF,KAAK6+E,aAAa7+E,KAAKsO,MAAM8B,OAE3D42E,eAAgB,WACd,IAAI5oE,EAAG1D,EACP,OAAQ0D,EAAIpe,KAAKwkF,oBAAsBxkF,KAAKwkF,kBAAoB,KAAM,OAAS9pE,EAAI1a,KAAKq7E,WAAa3gE,EAAEwlE,8BAA+BlgF,KAAKukF,oBAAmB,WAC5J,IAAI7pE,EACJ,OAAO,OAASA,EAAI1a,KAAKm9E,WAAaziE,EAAEylE,kBAAkB/hE,QAAK,WAC3D,GAER6oE,gBAAiB,WACf,IAAI11E,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAClC,OAAO9M,EAAIvR,KAAKsO,MAAM+wE,aAAc9iF,EAAI,CACtC8iF,aAAc9tE,IACZnK,EAAImK,EAAE0/D,QAAQ,SAAW10E,EAAEyX,KAAO,YAAaqK,GAAKG,EAAIjN,EAAE0/D,QAAQ,oBAAsBv2D,EAAE8wD,0BAA0BhtD,GAAGhb,OAAS4D,EAAG7K,EAAE66C,KAAOp3C,KAAKu9E,eAAen2E,EAAGiX,GAAI,OAASM,EAAI3e,KAAKq7E,WAAa18D,EAAEoiE,yBAAyBxkF,GAAIyD,KAAKukF,oBAAmB,WAC/P,IAAInmE,EACJ,OAAO,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAE4iE,WAAWzkF,EAAE66C,WAAQ,KAC3Dp3C,KAAKwjF,YAAc,SAAUplE,GAC/B,OAAO,WACL,IAAI1D,EACJ,OAAO,OAASA,EAAI0D,EAAEi9D,UAAY3gE,EAAEumE,wBAAwB1kF,QAAK,GAH9C,CAKrByD,OAASoe,EAAE7M,IAAMhV,EAAEyX,KAAO,aAAczX,EAAEiN,OAAS+H,EAAE0/D,QAAQ,cAAe,OAASnpD,EAAI9nB,KAAKq7E,WAAavzD,EAAEi5D,yBAAyBxkF,GAAIyD,KAAKukF,oBAAmB,WAClK,IAAInmE,EACJ,OAAO,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAEygE,aAAatiF,EAAEiN,aAAU,KAC/DxJ,KAAKwjF,YAAc,SAAUplE,GAC/B,OAAO,WACL,IAAI1D,EACJ,OAAO,OAASA,EAAI0D,EAAEi9D,UAAY3gE,EAAEumE,wBAAwB1kF,QAAK,GAH9C,CAKrByD,QAAUw1C,EAAIjkC,EAAE0/D,QAAQ,eAAiB10E,EAAEyX,KAAO,YAAazX,EAAE66C,KAAO5B,EAAG,OAASvsB,EAAIjpB,KAAKq7E,WAAapyD,EAAE83D,yBAAyBxkF,GAAIyD,KAAKukF,oBAAmB,WACjK,IAAInmE,EACJ,OAAO,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAE4iE,WAAWzkF,EAAE66C,WAAQ,KAC3Dp3C,KAAKwjF,YAAc,SAAUplE,GAC/B,OAAO,WACL,IAAI1D,EACJ,OAAO,OAASA,EAAI0D,EAAEi9D,UAAY3gE,EAAEumE,wBAAwB1kF,QAAK,GAH9C,CAKrByD,QAAU,OAAS6nB,EAAItW,EAAE6nE,OAASvxD,EAAE7f,YAAS,IAAWzL,EAAEyX,KAAO,OAAQzX,EAAE67E,KAAO7mE,EAAE6nE,MAAM,GAAI,OAASz8E,EAAIqD,KAAKq7E,WAAa1+E,EAAEokF,yBAAyBxkF,GAAIyD,KAAKukF,oBAAmB,WACpL,IAAInmE,EACJ,OAAO,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAEgjE,WAAW7kF,EAAE67E,WAAQ,KAC3Dp4E,KAAKwjF,YAAc,SAAUplE,GAC/B,OAAO,WACL,IAAI1D,EACJ,OAAO,OAASA,EAAI0D,EAAEi9D,UAAY3gE,EAAEumE,wBAAwB1kF,QAAK,GAH9C,CAKrByD,YAAS,GAEbknF,eAAgB,WACd,OAAOlnF,KAAK6+E,aAAa7+E,KAAKsO,MAAM8B,OAEtCuxE,gBAAiB,WACf,OAAO3hF,KAAK6+E,aAAa,OAE3BsI,WAAY,WACV,OAAOnnF,KAAKqlF,6BAA6B,OAAQrlF,KAAKsO,MAAM8B,OAE9Dg3E,kBAAmB,WACjB,OAAOpnF,KAAKulF,2BAA2B,WAEzC8B,gBAAiB,WACf,IAAIjpE,EACJ,OAAO,OAASA,EAAIpe,KAAKq7E,WAAaj9D,EAAEwgE,mCAAoC5+E,KAAKukF,oBAAmB,WAClG,IAAInmE,EACJ,OAAO,OAASA,EAAIpe,KAAKm9E,WAAa/+D,EAAEujE,uBAAoB,MAGhE2F,sBAAuB,WACrB,OAAOtnF,KAAK6+E,aAAa7+E,KAAKsO,MAAM+wE,aAAapO,QAAQ,cAAe,CACtEiR,gBAAgB,KAGpBqF,WAAY,WACV,IAAInpE,EAAG1D,EACP,OAAO1a,KAAK6+E,aAAa,OAASzgE,EAAIpe,KAAKsO,MAAM8B,MAAQgO,EAAI,OAAS1D,EAAI1a,KAAKsO,MAAM+wE,cAAgB3kE,EAAEu2D,QAAQ,mBAAgB,IAEjIuW,gBAAiB,WACf,OAAOxnF,KAAK6+E,aAAa7+E,KAAKsO,MAAM8B,OAEtCq3E,oBAAqB,WACnB,OAAOznF,KAAKulF,2BAA2B,YAExCz9D,EAAE1mB,UAAUy9E,aAAe,SAAUzgE,EAAG1D,GACzC,IAAInJ,EACJ,OAAO,MAAQ6M,IAAMA,EAAI,IAAK,OAAS7M,EAAIvR,KAAKq7E,WAAa9pE,EAAEqtE,mCAAoC5+E,KAAKukF,oBAAmB,WACzH,IAAIhzE,EACJ,OAAO,OAASA,EAAIvR,KAAKm9E,WAAa5rE,EAAEstE,aAAazgE,EAAG1D,QAAK,MAE9DoN,EAAE1mB,UAAUmkF,2BAA6B,SAAUnnE,GACpD,IAAI7M,EACJ,OAAOoN,EAAE5e,KAAK2a,EAAE2xD,uBAAwBjuD,IAAM,GAAK,OAAS7M,EAAIvR,KAAKq7E,WAAa9pE,EAAEm2E,qCAAqCtpE,GAAIpe,KAAKukF,oBAAmB,WACnJ,IAAI7pE,EACJ,OAAO,OAASA,EAAI1a,KAAKm9E,WAAaziE,EAAEitE,uBAAuBvpE,QAAK,WAChE,GACL0J,EAAE1mB,UAAUikF,6BAA+B,SAAUjnE,EAAG7M,GACzD,IAAInK,EACJ,OAAOuX,EAAE5e,KAAK2a,EAAE2xD,uBAAwBjuD,IAAM,GAAK,OAAShX,EAAIpH,KAAKq7E,WAAaj0E,EAAEsgF,qCAAqCtpE,GAAIpe,KAAKukF,oBAAmB,WACnJ,IAAI7pE,EACJ,OAAO,OAASA,EAAI1a,KAAKm9E,WAAaziE,EAAEktE,oBAAoBxpE,EAAG7M,QAAK,WAChE,GACLuW,EAAE1mB,UAAUo/E,kBAAoB,SAAUpiE,EAAG1D,GAC9C,IAAInJ,EAAGnK,EAAMoX,EACb,OAAY,MAAQ9D,EAAIA,EAAI,CAC1B0pE,iBAAiB,IAChBA,iBAAsB,OAAS5lE,EAAIxe,KAAKq7E,WAAa78D,EAAEogE,mCAAoCx3E,EAAI,SAAUsT,GAC1G,OAAO,WACL,IAAInJ,EACJ,OAAO,OAASA,EAAImJ,EAAEyiE,WAAa5rE,EAAEivE,kBAAkBpiE,QAAK,GAHkC,CAKhGpe,OAAQuR,EAAIvR,KAAK6nF,kBAAkB,CACnCC,UAAW,KACP9nF,KAAKukF,mBAAmBhzE,EAAGnK,GAAKA,KACrC0gB,EAAE1mB,UAAUmjF,mBAAqB,SAAUnmE,EAAG7M,GAC/C,IAAInK,EACJ,MAAO,mBAAqBgX,IAAM7M,EAAI6M,EAAGA,EAAIpe,KAAK6nF,qBAAsBzpE,EAAI,OAAShX,EAAIpH,KAAKm9E,WAAa/1E,EAAEm9E,mBAAmBnmE,EAAG7M,EAAEiD,KAAKxU,YAAS,GAAU0a,EAAEm2D,wBAAwBiC,QAASvhE,EAAExR,KAAKC,QACtM8nB,EAAE1mB,UAAUymF,kBAAoB,SAAUzpE,GAC3C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,OAAOpuC,GAAK,MAAQgX,EAAIA,EAAI,CAC1B0pE,UAAW,IACVA,WAAYtyC,EAAI,mBAAsB96B,EAAI1a,KAAKsO,OAAOy5E,gBAAkBrtE,EAAEqtE,uBAAoB,IAAWvyC,EAAExtC,SAAWuJ,EAAIiF,EAAEg/B,EAAE,IAAK,IAAMpuC,GAAKmK,EAAEuH,WAAW9Q,QAAUZ,GAAKmK,OAAI,GAChLiF,EAAI,SAAU4H,GACf,IAAI1D,EACJ,OAAOA,EAAItD,SAAS4wE,eAAiBC,SAAS7pE,EAAE0yD,eAAgB1yD,EAAE8pE,aAAcxtE,EAAEytE,OAAO/pE,EAAE2yD,aAAc3yD,EAAEgqE,WAAY1tE,GACtHoN,EAAE1mB,UAAUqiF,UAAY,SAAUrlE,EAAG1D,GACtC,IAAInJ,EACJvR,KAAKsO,MAAQ8P,EAEb,IACE7M,EAAImJ,EAAE3a,KAAKC,MACX,QACAA,KAAKsO,MAAQ,KAGf,OAAOiD,GACN0X,EAAI,SAAU7K,GACf,IAAI1D,EAAGnJ,EACP,OAAOoN,EAAE5e,KAAK,OAAS2a,EAAI,OAASnJ,EAAI6M,EAAEihE,cAAgB9tE,EAAE2vE,WAAQ,GAAUxmE,EAAI,GAAI,UAAY,GACjG/d,EAAI,SAAUyhB,GACf,IAAI1D,EACJ,OAAQA,EAAI0D,EAAEkiE,eAAiB3hE,EAAE5e,KAAK2a,EAAEwmE,MAAO,UAAY,GAAK,IAAMxmE,EAAEwmE,MAAMl5E,QAAU0S,EAAE0+D,MAAMpxE,QAAU,OAAI,GAC7GqW,EAAI,SAAUD,GACf,IAAI1D,EACJ,OAAQA,EAAI0D,EAAEkiE,eAAiB3hE,EAAE5e,KAAK2a,EAAEwmE,MAAO,eAAiB,GAAK,IAAMxmE,EAAEwmE,MAAMl5E,YAAS,GAC3F6f,EAAI,SAAUzJ,GACf,IAAI1D,EACJ,OAAOA,EAAI,GAAI0D,EAAEugE,QAAUjkE,EAAE1M,KAAK,OAAQoQ,EAAE4a,UAAYte,EAAE1M,KAAK,SAAU0M,EAAE1M,KAAKoQ,EAAEzb,KAAM+X,GACvF7d,EAAI,SAAUuhB,GACf,MAAO,CACL1K,EAAG0K,EAAEshE,QACLziF,EAAGmhB,EAAEuhE,UAEN73D,EAjX4G,CAkX/GpN,EAAE8hE,kBACJz8E,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EACAoiB,EACAmJ,EACAmB,EAAI,SAAU7K,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,aAGlB+jB,EAAI,SAAUzJ,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG/d,EAAEoD,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFzhB,EAAI,GAAG4d,eAEXhJ,EAAImJ,EAAE0wD,MAAOhkE,EAAIsT,EAAEk/B,YAAar9C,EAAIme,EAAEk0D,YAAa9mD,EAAIpN,EAAEi0D,QAAShwD,EAAIjE,EAAE4C,OAAQkB,EAAIG,EAAEy1D,KAAMh2D,EAAIO,EAAEg9B,IAAKnG,EAAI72B,EAAE05D,SAAU39D,EAAE2tE,2BAA6B,SAAU1pE,GAC9J,SAAShiB,EAAEyhB,EAAG1D,EAAGnJ,EAAGnK,GAClBpH,KAAKsoF,gBAAkBlqE,EAAGpe,KAAK+c,QAAUrC,EAAG1a,KAAKk1B,UAAY3jB,EAAGvR,KAAKmX,QAAU,MAAQ/P,EAAIA,EAAI,GAAIpH,KAAKuoF,eAAiBt/D,EAAEjpB,KAAKuoF,eAAgBvoF,MAAOA,KAAKwoF,iBAAmBv/D,EAAEjpB,KAAKwoF,iBAAkBxoF,MAAOA,KAAKyoF,gBAAkBx/D,EAAEjpB,KAAKyoF,gBAAiBzoF,MAAOA,KAAK0oF,kBAAoBz/D,EAAEjpB,KAAK0oF,kBAAmB1oF,MAAOA,KAAK2oF,qBAAuB1/D,EAAEjpB,KAAK2oF,qBAAsB3oF,MAAOA,KAAK4oF,gBAAkB3/D,EAAEjpB,KAAK4oF,gBAAiB5oF,MAAOA,KAAKy1E,WAAaz1E,KAAKsoF,gBAAgB7S,WAAY,MAAQ3tD,EAAE9nB,KAAK+c,WAAa/c,KAAK+c,QAAU/c,KAAK+c,QAAQiI,YAAahlB,KAAK6oF,UAGpjB,IAAIxqE,EACJ,OAAOwJ,EAAElrB,EAAGgiB,GAAIN,EAAI,SAAUD,GAC5B,OAAO,WACL,IAAI1D,EACJ,OAAOA,EAAI0D,EAAEva,MAAM7D,KAAM8D,YAAkB,KAAK,MAAQ9D,KAAK8oF,QAAU9oF,KAAK8oF,MAAQ,IAAK9oF,KAAK8oF,MAAM96E,KAAK0M,EAAEu6D,QAE5Gt4E,EAAEyE,UAAUynF,QAAU,WACvB,OAAO7oF,KAAK+oF,qBAAsB/oF,KAAKgpF,aAAchpF,KAAKy1E,WAAWwT,gBAAkBjpF,KAAKkpF,4BAAyB,GACpHvsF,EAAEyE,UAAU+nF,UAAY,WACzB,IAAI/qE,EAAG1D,EAEP,IAAK1a,KAAKopF,qBAAsB1uE,EAAI1a,KAAK8oF,MAAMz/B,OAAQ3uC,IAEvD,OAAO,OAAS0D,EAAIpe,KAAKq7E,UAAYj9D,EAAEirE,6BAA6BrpF,WAAQ,GAC3ErD,EAAEyE,UAAUgoF,mBAAqB,WAClC,IAAIhrE,EAAG1D,EAAGnJ,EACV,OAAO,MAAQvR,KAAKspF,gBAAkBlrE,EAAIpe,KAAKspF,eAAgBtpF,KAAKspF,eAAiB,KAAMlrE,EAAI,OAAS1D,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAE6uE,0DAA4D7uE,EAAE6uE,0DAA0D,CAC3QpR,QAAS/5D,GACRpe,KAAKy1E,iBAAc,EAAS,OAASlkE,EAAIvR,KAAKq7E,WAAa,mBAAqB9pE,EAAEi4E,yDAA2Dj4E,EAAEi4E,yDAAyD,UAAWxpF,KAAKy1E,iBAAc,QAAU,GAClP94E,EAAEyE,UAAU2nF,mBAAqB1qE,GAAE,WACpC,MAAO,CACL,GAAM,SAAUD,GACd,OAAO,WACL,OAAOA,EAAErB,QAAQqd,QAAQqvD,aAAc,GAFrC,CAIJzpF,MACFi1E,KAAM,SAAU72D,GACd,OAAO,WACL,cAAcA,EAAErB,QAAQqd,QAAQqvD,aAF9B,CAIJzpF,UAEFrD,EAAEyE,UAAU4nF,WAAa3qE,GAAE,WAC7B,IAAI9M,EACJ,OAAOA,EAAIhV,EAAE,CACXoyE,QAAS,MACTvpE,UAAWgZ,EAAE63D,kBACb7lE,KAAM,CACJq5E,aAAa,GAEfz1C,WAAYz3C,EAAE,CACZoyE,QAAS,MACTvpE,UAAW,kBACX4uC,WAAYz3C,EAAE,CACZoyE,QAAS,OACTvpE,UAAW,+CACX4uC,WAAYz3C,EAAE,CACZoyE,QAAS,SACTvpE,UAAW,kCACX7B,YAAaib,EAAEhZ,OACf6qC,WAAY,CACV/Z,MAAO9X,EAAEhZ,QAEX4K,KAAM,CACJs5E,WAAY,kBAKlB1pF,KAAKy1E,WAAWwT,iBAAmB13E,EAAEqU,YAAYrpB,EAAE,CACrDoyE,QAAS,MACTvpE,UAAWgZ,EAAEy3D,4BACb7hC,WAAYz3C,EAAE,CACZoyE,QAAS,OACTvpE,UAAWgZ,EAAEw3D,mBACb5hC,WAAY,CAACz3C,EAAE,CACboyE,QAAS,OACTvpE,UAAWgZ,EAAE03D,eACbvyE,YAAavD,KAAKy1E,WAAWkU,cAC7Bt5C,WAAY,CACV/Z,MAAOt2B,KAAKy1E,WAAWkU,iBAEvBptF,EAAE,CACJoyE,QAAS,OACTvpE,UAAWgZ,EAAE43D,eACbzyE,YAAavD,KAAKy1E,WAAWmU,+BAG9BxiF,EAAE,QAAS,CACd4lE,UAAWz7D,EACX27D,aAAcltE,KAAK4oF,kBACjBxhF,EAAE,QAAS,CACb4lE,UAAWz7D,EACX07D,iBAAkB,qBAClBC,aAAcltE,KAAK2oF,uBACjB,CACF,GAAM,SAAUvqE,GACd,OAAO,WACL,OAAOA,EAAErB,QAAQ6I,YAAYrU,IAF3B,CAIJvR,MACFi1E,KACS,WACL,OAAOv6D,EAAEszD,WAAWz8D,QAIxB5U,EAAEyE,UAAU8nF,qBAAuB7qE,GAAE,WACvC,IAAIm3B,EAAG72B,EAAGmJ,EAAGmB,EAAGpB,EAChB,OAAOoB,EAAI1sB,EAAE,CACXoyE,QAAS,WACTvpE,UAAWgZ,EAAEu3D,wBACbtlC,WAAY,CACVvR,YAAatgB,EAAEg2D,oBAEjBpkE,KAAM,CACJq5E,aAAa,MAEXt5E,MAAQnQ,KAAKsoF,gBAAgBuB,cAAchiE,EAAIoB,EAAE8vC,aAAe1zD,UAAUC,IAAI,yBAA0BuiB,EAAE0J,UAAY,EAAGikB,EAAI,WACjI,OAAO3tB,EAAE1X,MAAQ8Y,EAAE9Y,MAAO8Y,EAAEtY,MAAMxB,OAAS0Y,EAAEiiE,aAAe,MAC3D1iF,EAAE,QAAS,CACZ4lE,UAAW/jD,EACXikD,aAAc13B,IACZpuC,EAAE,QAAS,CACb4lE,UAAW/jD,EACXikD,aAAcltE,KAAKyoF,kBACjBrhF,EAAE,UAAW,CACf4lE,UAAW/jD,EACXikD,aAAcltE,KAAK0oF,oBACjBthF,EAAE,SAAU,CACd4lE,UAAW/jD,EACXikD,aAAcltE,KAAKwoF,mBACjBphF,EAAE,OAAQ,CACZ4lE,UAAW/jD,EACXikD,aAAcltE,KAAKuoF,iBACjBzgE,EAAI9nB,KAAK+c,QAAQzY,cAAc,cAAeqa,EAAImJ,EAAEixC,YAAa,CACnE,GAAM,SAAUr+C,GACd,OAAO,WACL,OAAOoN,EAAEnX,MAAMwc,QAAU,OAAQxO,EAAEiH,YAAYqD,GAAItK,EAAEiH,YAAYiC,GAAIlJ,EAAEtZ,UAAUC,IAAI8Y,EAAEs3D,kBAAoB,aAAc5tD,EAAEiiE,cAAc73D,aAAavT,EAAGmJ,GAAI0tB,IAAK96B,EAAEvD,QAAQ6yE,YAAcz4E,GAAE,WAC1L,OAAO0X,EAAEgK,gBACN,GAJH,CAMJjzB,MACFi1E,KAAM,WACJ,OAAOv6D,EAAEszD,WAAWrvD,GAAImJ,EAAEnX,MAAMwc,QAAU,UAG5CxwB,EAAEyE,UAAUwnF,gBAAkB,SAAUxqE,GAC1C,OAAOA,EAAEoa,iBAAkBpa,EAAEwa,mBAC5Bj8B,EAAEyE,UAAUunF,qBAAuB,SAAUvqE,GAC9C,IAAO7M,EAEP,OAAY6M,EAAExZ,OAAOvB,aAAa,qBAChC,IAAK,SACH,OAAO,OAASkO,EAAIvR,KAAKq7E,UAAY9pE,EAAE04E,8CAA8CjqF,KAAKy1E,iBAAc,IAE3G94E,EAAEyE,UAAUsnF,kBAAoB,SAAUtqE,GAC3C,IAAI1D,EACJ,MAAO,WAAa86B,EAAEp3B,EAAExb,UAAYwb,EAAEoa,iBAAkBx4B,KAAKopF,qBAAsB,OAAS1uE,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEwvE,gDAAkDxvE,EAAEwvE,gDAAgDlqF,KAAKy1E,iBAAc,QAAU,GACzQ94E,EAAEyE,UAAUqnF,gBAAkB,SAAUrqE,GACzC,OAAOpe,KAAKspF,eAAiBlrE,EAAExZ,OAAOuL,MAAMrS,QAAQ,MAAO,KAAK0F,QAC/D7G,EAAEyE,UAAUonF,iBAAmB,WAChC,OAAOxoF,KAAKopF,sBACXzsF,EAAEyE,UAAUmnF,eAAiB,WAC9B,OAAOvoF,KAAKopF,sBACXzsF,EAhKiJ,CAiKpJ+d,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EAAI,SAAUp3B,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG8D,EAAEze,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFI,EAAI,GAAGjE,eAEXnT,EAAIsT,EAAEk0D,YAAaxwD,EAAI1D,EAAE4C,OAAOq+B,IAAKjhC,EAAEi1D,eAAiB,SAAUnxD,GAChE,SAASjiB,IACPA,EAAEkuE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKy1E,WAAaz1E,KAAKid,OAAQjd,KAAKy1E,WAAW0U,uBAAyBnqF,KAAMA,KAAKsoF,gBAAkBtoF,KAAKmX,QAAQizE,MAGpK,IAAIzrE,EACJ,OAAO62B,EAAEj5C,EAAGiiB,GAAIjiB,EAAEqzE,mBAAqB,yBAA0BrzE,EAAE6E,UAAUipF,mBAAqB,WAChG,MAAO,IACN9tF,EAAE6E,UAAUq4E,YAAc,WAC3B,IAAI/+D,EAAGnJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGurB,EAAGmB,EACtB,GAAIvO,EAAI8D,EAAIpX,EAAE,CACZunE,QAAS,SACTvpE,UAAWpF,KAAKsqF,eAChBl6E,KAAMpQ,KAAKixE,UACXpC,UAAU,KACPt9D,EAAIvR,KAAKuqF,aAAe/rE,EAAIpX,EAAE,CACjCunE,QAAS,IACTE,UAAU,EACVx+B,WAAY,CACV5O,KAAMlwB,EACN+jB,UAAW,KAEX5a,EAAEkL,YAAYpH,IAAKxe,KAAKy1E,WAAW+U,aAAchsE,EAAE9a,UAAY1D,KAAKy1E,WAAWgV,kBAAkB,IAAoCj1C,EAAI,EAAGj5C,GAAtC0sB,EAAIjpB,KAAKqqF,sBAAmCriF,OAAQzL,EAAIi5C,EAAGA,IAAK1tB,EAAImB,EAAEusB,GAAIh3B,EAAEoH,YAAYkC,GAClM,OAAOtJ,EAAEoH,YAAY5lB,KAAK0qF,wBAAyB1qF,KAAKy1E,WAAWkV,cAAgB3qF,KAAK4qF,gBAAkBxjF,EAAE,CAC1GunE,QAAS,WACTt+B,WAAY,CACV,MAASjyB,EAAE23D,mBACX5lE,MAAOnQ,KAAKy1E,WAAWoV,oBACvBhgE,IAAK,KAEPza,KAAM,CACJq5E,aAAa,EACbzW,aAAc,CAAC,kBAAmBhzE,KAAKy1E,WAAWrgC,IAAIh/B,KAAK,QAE3DsE,EAAEkL,YAAY5lB,KAAK4qF,kBAAmB,CAACjsE,EAAE,QAASjE,EAAGiE,EAAE,WAC1DpiB,EAAE6E,UAAUspF,qBAAuB,WACpC,IAAIhwE,EAAGnJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EACtB,OAAO0tB,EAAIpuC,EAAE,CACXunE,QAAS,aACTvpE,UAAWgZ,EAAEs3D,qBACVh7D,EAAI1a,KAAKsoF,gBAAgBuB,eAAiBr0C,EAAEnwC,UAAUC,IAAI8Y,EAAEs3D,kBAAoB,YAAalgC,EAAEjyC,YAAcmX,KAAMnJ,EAAIvR,KAAK8qF,oBAAsBjtE,OAASW,EAAIxe,KAAKy1E,WAAWkU,eAAgBp4E,EAAE+/C,OAAS3yC,EAAI3e,KAAKy1E,WAAWmU,wBAAyBprE,IAAMjiB,EAAI6K,EAAE,CACtQunE,QAAS,OACTvpE,UAAWgZ,EAAE03D,eACbvyE,YAAaib,IACXg3B,EAAE5vB,YAAYrpB,IAAKoiB,IAAMH,GAAKg3B,EAAE5vB,YAAYxO,SAAS2zE,eAAe,MAAOjjE,EAAI1gB,EAAE,CACnFunE,QAAS,OACTvpE,UAAWgZ,EAAE43D,eACbzyE,YAAaob,IACX62B,EAAE5vB,YAAYkC,KAAM0tB,GACvBj5C,EAAE6E,UAAUkpF,aAAe,WAC5B,IAAI5vE,EAAGnJ,EACP,OAAOA,EAAI,CAAC6M,EAAEq3D,WAAYr3D,EAAEq3D,WAAa,KAAOz1E,KAAKy1E,WAAWuV,YAAatwE,EAAI1a,KAAKy1E,WAAWwV,iBAAmB15E,EAAEvD,KAAKoQ,EAAEq3D,WAAa,KAAO/6D,GAAInJ,EAAE6E,KAAK,MAC3J7Z,EAAE6E,UAAU6vE,QAAU,WACvB,IAAI7yD,EAAG1D,EACP,OAAOA,EAAI,CACTwwE,eAAgB/wD,KAAKtf,UAAU7a,KAAKy1E,YACpC0V,gBAAiBnrF,KAAKy1E,WAAW2V,iBACjCC,OAAQrrF,KAAKy1E,WAAWrgC,KACvBh3B,EAAIpe,KAAKsoF,gBAAgBj4C,YAAc6hC,YAAcx3D,EAAE4wE,eAAiBnxD,KAAKtf,UAAUuD,IAAKpe,KAAKy1E,WAAWkV,cAAgBjwE,EAAE6wE,eAAgB,GAAK7wE,GACrJne,EAAE6E,UAAUmpF,QAAU,WACvB,OAAOh5E,EAAEvR,KAAKy1E,WAAWgV,aAAc,UAAO,EAASzqF,KAAKy1E,WAAW8U,WACtEhuF,EAAE6E,UAAU0pF,iBAAmB,WAChC,IAAI1sE,EAAG7M,EAAGnK,EACV,OAAOA,EAAIpH,KAAKy1E,WAAWuV,UAAW5sE,EAAI1D,EAAEqxD,WAAW,OAASx6D,EAAImJ,EAAE4C,OAAO06D,YAAY5wE,IAAMmK,EAAE4mE,aAAU,GAAS,SAAW/wE,IAAMgX,EAAEP,MAAO,GAAKO,GAClJ7hB,EAAE6E,UAAUoqF,oBAAsB,WACnC,IAAIptE,EACJ,OAAO,OAASA,EAAIpe,KAAKs6E,eAAiBl8D,EAAE9Z,cAAc,iBAAc,GACvEqa,EAAI,SAAUP,GACf,OAAOhX,EAAE,CACPunE,QAAS,OACTprE,YAAamX,EAAEmvD,iBACfz5D,KAAM,CACJq/D,iBAAkBrxD,EAClBmtE,eAAe,MAGlBhvF,EAAE6E,UAAUqqF,kCAAoC,WACjD,IAAIrtE,EAAG1D,EACP,OAAOA,EAAI1a,KAAKy1E,WAAWoV,oBAAqB,OAASzsE,EAAIpe,KAAKwrF,uBAAyBptE,EAAEjO,MAAQuK,OAAI,GACxGne,EA/EmD,CAgFtDme,EAAE2+D,YAAa9nE,EAAI,SAAU6M,EAAG1D,GAChC,IAAInJ,EACJ,OAAOA,EAAInK,EAAE,QAAU1D,UAAY,MAAQ0a,EAAIA,EAAI,GAAI7M,EAAEjN,cAAcoW,KAEzE3a,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EAAI,SAAU6M,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGtT,EAAErH,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOjkC,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFhX,EAAI,GAAGmT,eAEX6D,EAAI1D,EAAEk0D,YAAal0D,EAAEgxE,0BAA4B,SAAUtkF,GACzD,SAASouC,IACPA,EAAEi1B,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKy1E,WAAWkW,gBAAkB3rF,KAGpF,OAAOuR,EAAEikC,EAAGpuC,GAAIouC,EAAEp0C,UAAUipF,mBAAqB,WAC/C,OAAOrqF,KAAKw8D,MAAQp+C,EAAE,CACpBuwD,QAAS,MACTt+B,WAAY,CACVwD,IAAK,IAEPzjC,KAAM,CACJq5E,aAAa,KAEbzpF,KAAK4rF,QAAQ5rF,KAAKw8D,OAAQ,CAACx8D,KAAKw8D,QACnChnB,EAAEp0C,UAAUspF,qBAAuB,WACpC,IAAItsE,EACJ,OAAOA,EAAIo3B,EAAEi1B,UAAUigB,qBAAqB7mF,MAAM7D,KAAM8D,YAAcP,aAAe6a,EAAE3a,aAAa,wBAAyBiX,EAAE4C,OAAO82D,KAAKI,oBAAqBp2D,GAC/Jo3B,EAAEp0C,UAAUwqF,QAAU,SAAUxtE,GACjC,IAAI1D,EACJ,OAAO,MAAQ0D,IAAMA,EAAI,OAAS1D,EAAI1a,KAAKs6E,eAAiB5/D,EAAEpW,cAAc,YAAS,GAAS8Z,EAAIpe,KAAK6rF,yBAAyBztE,QAAK,GACpIo3B,EAAEp0C,UAAUyqF,yBAA2B,SAAUztE,GAClD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EACnB,OAAOiiB,EAAIxe,KAAKy1E,WAAWqW,SAAUv6E,EAAIvR,KAAKy1E,WAAWsW,gBAAiB3tE,EAAEy1B,IAAMtiC,GAAKiN,EAAGjN,IAAMiN,EAAIJ,EAAEza,gBAAgB,oCAAsCyD,EAAI+yB,KAAKtf,UAAU,CAC7Kg5B,IAAKr1B,IACHJ,EAAE3a,aAAa,kCAAmC2D,IAAK7K,EAAIyD,KAAKy1E,WAAWuW,WAAYtxE,EAAI1a,KAAKy1E,WAAWwW,YAAa,MAAQ1vF,IAAM6hB,EAAEoP,MAAQjxB,GAAI,MAAQme,IAAM0D,EAAEjP,OAASuL,GAAI86B,EAAI,CAAC,eAAgBx1C,KAAKy1E,WAAWrgC,GAAIh3B,EAAEy1B,IAAKz1B,EAAEoP,MAAOpP,EAAEjP,QAAQiH,KAAK,KAAMgI,EAAEgc,QAAQ44C,aAAex9B,GAC3RA,EAAEp0C,UAAU8qF,8BAAgC,WAC7C,OAAOlsF,KAAK4rF,QAAQ5rF,KAAKw8D,OAAQx8D,KAAK4rF,WACrCp2C,EA5B4C,CA6B/C96B,EAAEi1D,iBACJ5vE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EAAI,SAAUp3B,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG8D,EAAEze,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFI,EAAI,GAAGjE,eAEXnT,EAAIsT,EAAEk0D,YAAaxwD,EAAI1D,EAAE+yD,iBAAkBl8D,EAAImJ,EAAEgyD,cAAehyD,EAAEyxE,UAAY,SAAU3tE,GACtF,SAASjiB,IACP,IAAI6hB,EACJ7hB,EAAEkuE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKoqF,MAAQpqF,KAAKid,OAAQjd,KAAKqwC,WAAarwC,KAAKoqF,MAAMgC,gBAAiBhuE,EAAIpe,KAAKmX,QAASnX,KAAKqsF,WAAajuE,EAAEiuE,WAAYrsF,KAAKukB,QAAUnG,EAAEmG,QAASvkB,KAAKoqF,MAAM3U,WAAaz1E,KAAKy1E,WAAaz1E,KAAKoqF,MAAM3U,WAAaz1E,KAAKwJ,OAASxJ,KAAKoqF,MAAMtxE,WAGjS,IAAI6F,EACJ,OAAO62B,EAAEj5C,EAAGiiB,GAAIjiB,EAAE6E,UAAUq4E,YAAc,WACxC,IAAI/+D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAEnB,GAAIA,EAAIyD,KAAKy1E,WAAaz1E,KAAKssF,wBAA0BtsF,KAAKusF,oBAAqB7xE,EAAI1a,KAAK4kB,gBAAiB,CAC3G,IAAKxd,EAAIgX,EAAE1D,GAAInJ,EAAI,EAAGikC,EAAIj5C,EAAEyL,OAAQwtC,EAAIjkC,EAAGA,IAAKiN,EAAIjiB,EAAEgV,GAAInK,EAAEwe,YAAYpH,GAExEjiB,EAAI,CAACme,GAGP,OAAOne,GACNA,EAAE6E,UAAUkrF,sBAAwB,WACrC,IAAIluE,EACJ,OAAOA,EAAIpe,KAAKy1E,WAAWwT,gBAAkBvuE,EAAEgxE,0BAA4BhxE,EAAEi1D,eAAoB3vE,KAAKi6E,gBAAgB77D,EAAGpe,KAAKoqF,MAAM3U,WAAY,CAC9I2U,MAAOpqF,KAAKoqF,QACR5Q,YACLj9E,EAAE6E,UAAUmrF,kBAAoB,WACjC,IAAInuE,EAAG1D,EAAGnJ,EAAGikC,EAAMj5C,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAC/B,GAAI,OAASC,EAAI9nB,KAAKqsF,YAAcvkE,EAAEyuD,eAAY,EAAQ,MAAO,CAACn/D,SAAS2zE,eAAe/qF,KAAKwJ,SAE/F,IAAKmV,EAAI,GAAiCpN,EAAImJ,EAAI,EAAG86B,GAAxCvsB,EAAIjpB,KAAKwJ,OAAOvO,MAAM,OAAwB+M,OAAQwtC,EAAI96B,EAAGnJ,IAAMmJ,EAAGmN,EAAIoB,EAAE1X,GAAIA,EAAI,IAAM6M,EAAIhX,EAAE,MAAOuX,EAAE3Q,KAAKoQ,IAAUyJ,EAAE7f,SAAYzL,EAAI6a,SAAS2zE,eAAe/qF,KAAKwsF,eAAe3kE,IAAKlJ,EAAE3Q,KAAKzR,IAE/M,OAAOoiB,GACNpiB,EAAE6E,UAAUwjB,cAAgB,WAC7B,IAAIxG,EAAG1D,EAAG86B,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAG5B,IAAKrJ,KAFLyK,EAAI,GAAItK,EAAI3e,KAAKqwC,WAEJ,GAAIxoB,EAAIlJ,EAAEH,IAAKJ,EAAI7M,EAAEiN,MAAQJ,EAAEuwD,UAAYpyE,EAAI6K,EAAEgX,EAAEuwD,SAAUn5B,GAAKA,EAAE5vB,YAAYrpB,GAAIi5C,EAAIj5C,GAAKme,EAAI86B,EAAIj5C,GAAI6hB,EAAEquE,gBAAkBxjE,EAAE7K,EAAEquE,eAAiB5kE,GAAIzJ,EAAEzN,OAGnK,IAAK6N,KAFLsJ,EAAI1J,EAAEzN,MAEOkX,EAAIC,EAAEtJ,GAAIyK,EAAEzK,GAAKqJ,EAGhC,GAAIrnB,OAAOkW,KAAKuS,GAAGjhB,OAGjB,IAAKwW,KAFL,MAAQ9D,IAAMA,EAAItT,EAAE,SAEV6hB,EAAGpB,EAAIoB,EAAEzK,GAAI9D,EAAE/J,MAAM6N,GAAKqJ,EAGtC,OAAOnN,GACNne,EAAE6E,UAAU65E,uBAAyB,WACtC,IAAI78D,EAAG1D,EAAG86B,EAAGh3B,EAAGjiB,EAGhB,IAAKi5C,KAFLh3B,EAAIxe,KAAKqwC,WAEI,GAAI9zC,EAAIiiB,EAAEg3B,IAAK96B,EAAInJ,EAAEikC,KAAO96B,EAAEu8D,aAAc,OAAO74D,EAAI,IAAMo3B,GAAKj5C,EAAG6K,EAAEsT,EAAEu8D,aAAc74D,IACnGO,EAAIjE,EAAEovD,mBAAoBvtE,EAAE6E,UAAUorF,eAAiB,SAAUpuE,GAClE,OAAOpe,KAAKukB,QAAQmoE,SAAWtuE,EAAIA,EAAEtgB,QAAQ,MAAO6gB,IAAKP,EAAIA,EAAEtgB,QAAQ,iBAAkB,MAAQ6gB,EAAI,OAAO7gB,QAAQ,SAAU6gB,EAAI,KAAK7gB,QAAQ,SAAU,IAAM6gB,IAAK3e,KAAKukB,QAAQooE,SAAW3sF,KAAKukB,QAAQqoE,qBAAuBxuE,EAAIA,EAAEtgB,QAAQ,MAAO6gB,IAAKP,GACzP7hB,EArDyE,CAsD5Eme,EAAE2+D,aACJt5E,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEmyE,SAAW,SAAUt7E,GACrB,SAASnK,IACPA,EAAEqjE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAK+7C,KAAO/7C,KAAKid,OAAQjd,KAAKqsF,WAAarsF,KAAKmX,QAAQk1E,WAG1G,IAAI72C,EACJ,OAAOp3B,EAAEhX,EAAGmK,GAAInK,EAAEhG,UAAUq4E,YAAc,WACxC,IAAIr7D,EAAG7M,EAAGnK,EAAGoX,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAE/B,IAAKgiB,EAAI,GAAsDH,GAAlDyK,EAAIvO,EAAEy3D,YAAYI,aAAavyE,KAAK8sF,cAAoB9kF,OAAS,EAAGZ,EAAImK,EAAI,EAAGhV,EAAI0sB,EAAEjhB,OAAQzL,EAAIgV,EAAGnK,IAAMmK,EAAGuW,EAAImB,EAAE7hB,GAAIgX,EAAI,GAAI,IAAMhX,IAAMgX,EAAEuuE,SAAU,GAAKvlF,IAAMoX,IAAMJ,EAAEsuE,QAAS,GAAKl3C,EAAE3tB,KAAOzJ,EAAEwuE,mBAAoB,GAAKjwF,EAAIqD,KAAK85E,4BAA4Bp/D,EAAEyxE,UAAWrkE,EAAG,CAC5RukE,WAAYrsF,KAAKqsF,WACjB9nE,QAASnG,IACPO,EAAE3Q,KAAKnK,MAAM8a,EAAGhiB,EAAE68E,YAAa3xD,EAAIC,EAEvC,OAAOnJ,GACNvX,EAAEhG,UAAU0rF,UAAY,WACzB,IAAI1uE,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAgCA,EAAI,GAAIp3B,EAAI,EAAG1D,GAA1CtT,EAAIpH,KAAK+7C,KAAK+wC,aAAkC9kF,OAAQ0S,EAAI0D,EAAGA,KAAK7M,EAAInK,EAAEgX,IAAM2uE,aAAa,eAAiBv3C,EAAExnC,KAAKuD,GAE1H,OAAOikC,GACNA,EAAI,SAAUp3B,GACf,MAAO,MAAMlgB,KAAK,MAAQkgB,EAAIA,EAAEtF,gBAAa,IAC5C1R,EAvBQ,CAwBXsT,EAAE2+D,aACJt5E,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EAAI,SAAUp3B,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG8D,EAAEze,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFI,EAAI,GAAGjE,eAEXnT,EAAIsT,EAAEk0D,YAAar9D,EAAImJ,EAAE8xD,eAAgBpuD,EAAI1D,EAAE4C,OAAOq+B,IAAKjhC,EAAEsyE,UAAY,SAAUxuE,GACjF,SAASjiB,IACPA,EAAEkuE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKitF,MAAQjtF,KAAKid,OAAQjd,KAAKqwC,WAAarwC,KAAKitF,MAAMb,gBAGzG,OAAO52C,EAAEj5C,EAAGiiB,GAAIjiB,EAAE6E,UAAUq4E,YAAc,WACxC,IAAIr7D,EAAMI,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAClC,GAAyCosB,EAAI,CAArC7R,SAAS81E,cAAc,UAAmBltF,KAAKitF,MAAM/a,UAAYjpD,EAAEjb,KAAK5G,EAAE,QAAUiX,EAAI,OAASwJ,EAAItW,EAAEvR,KAAKitF,MAAME,qBAAuBtlE,EAAEk0B,UAAO,EAAQl/C,EAAImD,KAAK85E,4BAA4Bp/D,EAAEmyE,SAAU7sF,KAAKitF,MAAMlxC,KAAM,CAClOswC,WAAYhuE,IACV4K,EAAEjb,KAAKnK,MAAMolB,EAAGpsB,EAAE28E,YAAax5E,KAAKotF,gCAAkCnkE,EAAEjb,KAAK5G,EAAE,QAASpH,KAAKqwC,WAAWroC,OAAQ,OAAOihB,EAE3H,IAAKtsB,EAAI+d,EAAE4C,OAAOmvD,gBAAyB,QAAEkC,QAAS3uE,KAAKitF,MAAMI,UAAYjvE,EAAI,CAC/Ek5C,IAAK,QACH94C,EAAIpX,EAAE,CACRunE,QAAShyE,EACT0zC,WAAYjyB,IACV7hB,EAAI,EAAGoiB,EAAIsK,EAAEjhB,OAAQ2W,EAAIpiB,EAAGA,IAAKurB,EAAImB,EAAE1sB,GAAIiiB,EAAEoH,YAAYkC,GAE7D,MAAO,CAACtJ,IACPjiB,EAAE6E,UAAU65E,uBAAyB,SAAUvgE,GAChD,IAAI86B,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAChB,OAAO0tB,EAAIx1C,KAAKqwC,WAAW31B,GAAIoN,EAAIvW,EAAEikC,GAAGm5B,QAAS,IAAMj0D,GAAK1a,KAAKitF,MAAMI,UAAY7uE,EAAI,CACrF84C,IAAK,QACH,sBAAwB9hB,IAAM72B,EAAI3e,KAAKitF,MAAMK,wBAAyB/wF,EAAI6hB,EAAE83D,kBAAoB,IAAM93D,EAAE83D,kBAAoB,KAAOv3D,GAAIvX,EAAE,CAC3IunE,QAAS7mD,EACT1iB,UAAW7I,EACX8zC,WAAY7xB,KAEbjiB,EAAE6E,UAAUgsF,6BAA+B,WAC5C,MAAO,QAAQlvF,KAAK8B,KAAKitF,MAAMn0E,aAC9Bvc,EA9BoE,CA+BvEme,EAAE2+D,aACJt5E,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EAAI,SAAUgX,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG86B,EAAEz1C,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFo3B,EAAI,GAAGj7B,eAEX6D,EAAI1D,EAAE0wD,MAAO75D,EAAImJ,EAAEk0D,YAAal0D,EAAE88D,aAAe,SAAUhiC,GACzD,SAASh3B,IACPA,EAAEisD,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAK+c,QAAU/c,KAAKmX,QAAQ4F,QAAS/c,KAAKutF,aAAe,IAAI7yE,EAAEm4D,aAAgB7yE,KAAKwtF,YAAYxtF,KAAKid,QAGvJ,IAAI1gB,EAAGoiB,EAAGmJ,EACV,OAAO1gB,EAAEoX,EAAGg3B,GAAIh3B,EAAEi5D,OAAS,SAAUr5D,GACnC,IAAI1D,EAAGtT,EACP,OAAqBA,EAAI,IAAIpH,KAAKoe,EAAG,CACnCrB,QADKrC,EAAInJ,EAAE,UAEPkmE,SAAUrwE,EAAEqmF,OAAQ/yE,GACzB8D,EAAEpd,UAAUosF,YAAc,SAAUpvE,GACrC,OAAOA,EAAEysD,UAAU7qE,KAAKoX,eAAY,EAASpX,KAAKoX,SAAWpX,KAAKid,OAASmB,GAC1EI,EAAEpd,UAAUq2E,OAAS,WACtB,IAAIr5D,EAAGhX,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAEtB,GAAI9nB,KAAKs5E,WAAa,GAAIt5E,KAAK0tF,cAAgBn8E,EAAE,QAASvR,KAAKoX,SAAS86D,UAAW,CACjF,IAEIvzD,EAAI,GAAIP,EAAI,EAAGhX,GAFd7K,EAAIme,EAAEy3D,YAAYI,aAAavyE,KAAKoX,SAASu2E,YAAa,CAC7Drb,QAAQ,KACetqE,OAAQZ,EAAIgX,EAAGA,IAAKI,EAAIjiB,EAAE6hB,GAAI0J,EAAI9nB,KAAK85E,4BAA4Bp/D,EAAEsyE,UAAWxuE,GAAIG,EAAE3Q,KAAK,WAClH,IAAIoQ,EAAG1D,EAAGnJ,EAAGnK,EAEb,IAAuBA,EAAI,GAAIgX,EAAI,EAAG1D,GAAjCnJ,EAAIuW,EAAE0xD,YAAiCxxE,OAAQ0S,EAAI0D,EAAGA,IAAKo3B,EAAIjkC,EAAE6M,GAAIhX,EAAE4G,KAAKhO,KAAK0tF,cAAc9nE,YAAY4vB,IAEhH,OAAOpuC,GACPrH,KAAKC,OAEP,OAAO2e,IAERH,EAAEpd,UAAUwsF,SAAW,WACxB,OAAOrxF,EAAEyD,KAAK0tF,cAAe1tF,KAAK+c,UACjCyB,EAAEpd,UAAUqsF,KAAO,WACpB,IAAIrvE,EAEJ,IAAKA,EAAIpe,KAAK6tF,gCAAiC7tF,KAAK+c,QAAQka,WAAYj3B,KAAK+c,QAAQkI,YAAYjlB,KAAK+c,QAAQka,WAE9G,OAAOj3B,KAAK+c,QAAQ6I,YAAYxH,GAAIpe,KAAK8tF,WACxCtvE,EAAEpd,UAAU0sF,QAAU,WACvB,OAAO9tF,KAAKutF,aAAaza,MAAMn0D,EAAE3e,KAAK+c,UAAWqB,EAAE,SAAUA,GAC3D,OAAO,WACL,OAAOA,EAAE08D,6BAFsC,CAIjD96E,QACDwe,EAAEpd,UAAUysF,8BAAgC,WAC7C,IAAIzvE,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGurB,EAAGmB,EAAGpB,EAE/B,IAAKnN,EAAItD,SAASka,yBAA6D/f,EAAI,EAAGikC,GAA1C1tB,EAAI9nB,KAAK0tF,cAAc15C,YAAyBhsC,OAAQwtC,EAAIjkC,EAAGA,IAAKhV,EAAIurB,EAAEvW,GAAImJ,EAAEkL,YAAYrpB,EAAEw8D,WAAU,IAEpJ,IAAe3xD,EAAI,EAAGoX,GAAjByK,EAAItK,EAAEjE,IAAiB1S,OAAQwW,EAAIpX,EAAGA,IAAKgX,EAAI6K,EAAE7hB,IAAKygB,EAAI7nB,KAAKutF,aAAa/nF,OAAO4Y,KAAOA,EAAEgH,WAAW2oE,aAAalmE,EAAGzJ,GAE5H,OAAO1D,GACNiE,EAAI,SAAUP,GACf,OAAOA,EAAEvO,iBAAiB,0BACzBtT,EAAI,SAAU6hB,EAAG1D,GAClB,OAAOoN,EAAE1J,EAAE1a,aAAeokB,EAAEpN,EAAEhX,YAC7BokB,EAAI,SAAU1J,GACf,OAAOA,EAAEtgB,QAAQ,UAAW,MAC3B0gB,EAzD4C,CA0D/C9D,EAAE2+D,aACJt5E,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EAAI,SAAU6hB,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,aAGlB6a,EAAI,SAAUP,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAGoN,EAAE/nB,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF0J,EAAI,GAAGvN,eAEXnT,EAAIsT,EAAE2yD,2BAA4B73B,EAAI96B,EAAEk/B,YAAap7B,EAAI9D,EAAEgzD,qBAAsBn8D,EAAImJ,EAAE0wD,MAAOhtD,EAAI1D,EAAEi1D,eAAeC,mBAAoBl1D,EAAEszE,sBAAwB,SAAUlmE,GACzK,SAASmB,EAAE1X,EAAGnK,GACZpH,KAAK+c,QAAUxL,EAAGvR,KAAKiuF,YAAc7mF,EAAGpH,KAAKkuF,mBAAqB3xF,EAAEyD,KAAKkuF,mBAAoBluF,MAAOA,KAAKmuF,QAAU5xF,EAAEyD,KAAKmuF,QAASnuF,MAAOA,KAAKouF,SAAW7xF,EAAEyD,KAAKouF,SAAUpuF,MAAOA,KAAKquF,aAAe,IAAI3zE,EAAE88D,aAAax3E,KAAKiuF,YAAY72E,SAAU,CAClP2F,QAAS/c,KAAK+c,UACZy4B,EAAE,QAAS,CACbw3B,UAAWhtE,KAAK+c,QAChBmwD,aAAcltE,KAAKouF,WACjB54C,EAAE,OAAQ,CACZw3B,UAAWhtE,KAAK+c,QAChBmwD,aAAcltE,KAAKmuF,UACjB34C,EAAE,QAAS,CACbw3B,UAAWhtE,KAAK+c,QAChBkwD,iBAAkB,2BAClBz0C,gBAAgB,IACdgd,EAAE,YAAa,CACjBw3B,UAAWhtE,KAAK+c,QAChBkwD,iBAAkB7uD,EAClB8uD,aAAcltE,KAAKkuF,qBACjB14C,EAAE,QAAS,CACbw3B,UAAWhtE,KAAK+c,QAChBkwD,iBAAkB,IAAM7uD,EACxBoa,gBAAgB,IAIpB,OAAO7Z,EAAEsK,EAAGnB,GAAImB,EAAE7nB,UAAUgtF,SAAW,WACrC,IAAIhwE,EAAG1D,EAAGnJ,EACV,OAAO6M,EAAI,SAAUA,GACnB,OAAO,WACL,IAAI1D,EACJ,OAAO0D,EAAEkwE,aAAU,GAAUlwE,EAAEkwE,SAAU,EAAI,OAAS5zE,EAAI0D,EAAEi9D,WAAa,mBAAqB3gE,EAAE6zE,8BAAgC7zE,EAAE6zE,qCAAkC,IAH7J,CAKTvuF,MAAO,OAAS0a,EAAI,OAASnJ,EAAIvR,KAAKwuF,aAAej9E,EAAEmxD,KAAKtkD,QAAK,GAAU1D,EAAI0D,KAChF6K,EAAE7nB,UAAU+sF,QAAU,WACvB,OAAOnuF,KAAKwuF,YAAc,IAAIxrB,QAAQ,SAAU5kD,GAC9C,OAAO,SAAU1D,GACf,OAAOnJ,GAAE,WACP,IAAIA,EACJ,OAAOiN,EAAEJ,EAAErB,WAAaqB,EAAEkwE,QAAU,KAAM,OAAS/8E,EAAI6M,EAAEi9D,WAAa,mBAAqB9pE,EAAEk9E,8BAAgCl9E,EAAEk9E,gCAAiCrwE,EAAEowE,YAAc,KAAM9zE,QAJtJ,CAOpC1a,QACDipB,EAAE7nB,UAAU8sF,mBAAqB,SAAU9vE,EAAG1D,GAC/C,IAAInJ,EAAGikC,EAAGh3B,EACV,OAAOjN,EAAIvR,KAAK0uF,yBAAyBh0E,GAAI86B,EAAI,MAAQpuC,EAAEgX,EAAExZ,OAAQ,CACnEqoE,iBAAkB,eAChB,OAASzuD,EAAIxe,KAAKq7E,WAAa,mBAAqB78D,EAAEmwE,yCAA2CnwE,EAAEmwE,yCAAyCp9E,EAAG,CACjJy4E,YAAax0C,SACV,GACJvsB,EAAE7nB,UAAUwtF,uBAAyB,WACtC,OAAO5uF,KAAK6uF,sBAAwB7uF,KAAKquF,aAAaX,cAAgB1tF,KAAK+c,SAC1EkM,EAAE7nB,UAAUq2E,OAAS,WACtB,IAAIr5D,EAAG1D,EAAGnJ,EACV,OAAOvR,KAAK8uF,WAAa9uF,KAAKiuF,YAAYa,WAAa9uF,KAAKquF,aAAab,YAAYxtF,KAAKiuF,YAAY72E,UAAWpX,KAAKquF,aAAa5W,SAAUz3E,KAAK8uF,SAAW9uF,KAAKiuF,YAAYa,UAAW9uF,KAAK+uF,wBAA0B/uF,KAAKquF,aAAaT,aAAe,OAASxvE,EAAIpe,KAAKq7E,WAAa,mBAAqBj9D,EAAE4wE,2CAA6C5wE,EAAE4wE,4CAA6ChvF,KAAKquF,aAAaZ,OAAQ,OAAS/yE,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEu0E,0CAA4Cv0E,EAAEu0E,4CAA6C,OAAS19E,EAAIvR,KAAKq7E,WAAa,mBAAqB9pE,EAAE29E,+BAAiC39E,EAAE29E,sCAAmC,GACjrBjmE,EAAE7nB,UAAU+tF,sBAAwB,SAAU/wE,GAC/C,OAAOpe,KAAK45E,wBAAwBx7D,GAAIpe,KAAKy3E,UAC5CxuD,EAAE7nB,UAAUw4E,wBAA0B,SAAUx7D,GACjD,OAAOpe,KAAKquF,aAAazU,wBAAwBx7D,IAChD6K,EAAE7nB,UAAUq5E,qBAAuB,WACpC,OAAOz6E,KAAKquF,aAAa5T,wBACxBxxD,EAAE7nB,UAAUw5E,kBAAoB,WACjC,OAAO56E,KAAKquF,aAAazT,qBACxB3xD,EAAE7nB,UAAUy5E,mBAAqB,WAClC,OAAO76E,KAAKquF,aAAaxT,sBACxB5xD,EAAE7nB,UAAUguF,iBAAmB,WAChC,OAAOpvF,KAAKquF,aAAavT,6BACxB7xD,EAAE7nB,UAAUytF,oBAAsB,WACnC,OAAO,MAAQ7uF,KAAKqvF,kBACnBpmE,EAAE7nB,UAAUkuF,qCAAuC,SAAUlxE,EAAG7M,GACjE,IAAInK,EAAGouC,EAAGh3B,EACV,IAAK,OAASA,EAAIxe,KAAKqvF,kBAAoB7wE,EAAEi3D,gBAAa,KAAYr3D,IAAMo3B,EAAIx1C,KAAKquF,aAAa9T,qBAAqBn8D,IAAK,OAAOpe,KAAKuvF,4BAA6BnoF,EAAIpH,KAAKiuF,YAAY72E,SAASo4E,gCAAgCpxE,GAAIpe,KAAKqvF,iBAAmB,IAAI30E,EAAE2tE,2BAA2BjhF,EAAGouC,EAAGx1C,KAAK+c,QAASxL,GAAIvR,KAAKqvF,iBAAiBhU,SAAWr7E,MACxVipB,EAAE7nB,UAAUmuF,0BAA4B,WACzC,IAAInxE,EACJ,OAAO,OAASA,EAAIpe,KAAKqvF,kBAAoBjxE,EAAE+qE,iBAAc,GAC5DlgE,EAAE7nB,UAAUioF,6BAA+B,WAC5C,OAAOrpF,KAAKqvF,iBAAmB,KAAMrvF,KAAKy3E,UACzCxuD,EAAE7nB,UAAUmoF,0DAA4D,SAAUnrE,EAAG1D,GACtF,IAAInJ,EACJ,OAAO,OAASA,EAAIvR,KAAKq7E,WAAa,mBAAqB9pE,EAAEk+E,2CAA6Cl+E,EAAEk+E,0CAA0C/0E,GAAI1a,KAAKiuF,YAAYyB,8BAA8BtxE,EAAG1D,IAC3MuO,EAAE7nB,UAAUooF,yDAA2D,SAAUprE,EAAG1D,GACrF,IAAInJ,EACJ,OAAO,OAASA,EAAIvR,KAAKq7E,WAAa,mBAAqB9pE,EAAEk+E,2CAA6Cl+E,EAAEk+E,0CAA0C/0E,GAAI1a,KAAKiuF,YAAY0B,6BAA6BvxE,EAAG1D,IAC1MuO,EAAE7nB,UAAU6oF,8CAAgD,SAAU7rE,GACvE,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEk1E,mDAAqDl1E,EAAEk1E,mDAAmDxxE,QAAK,GAC3K6K,EAAE7nB,UAAU8oF,gDAAkD,SAAU9rE,GACzE,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEm1E,qDAAuDn1E,EAAEm1E,qDAAqDzxE,QAAK,GAC/K6K,EAAE7nB,UAAU2tF,oBAAsB,WACnC,OAAQ/uF,KAAK6uF,uBACZ5lE,EAAE7nB,UAAUstF,yBAA2B,SAAUtwE,GAClD,OAAOpe,KAAKiuF,YAAY72E,SAAS04E,kBAAkB13E,SAASgG,EAAEgc,QAAQixD,OAAQ,MAC7EpiE,EA5F4J,CA6F/JvO,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EAAI,SAAUp3B,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,aAGlB0a,EAAI,SAAUJ,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAGne,EAAEwD,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7hB,EAAI,GAAGge,eAEXhJ,EAAImJ,EAAEk/B,YAAaxyC,EAAIsT,EAAEqS,aAAc3O,EAAI1D,EAAE2yD,2BAA4B3yD,EAAEq1E,kBAAoB,SAAUr1E,GACvG,SAASne,EAAE6hB,GACTpe,KAAK+c,QAAUqB,EAAGpe,KAAKgwF,sBAAwBx6C,EAAEx1C,KAAKgwF,sBAAuBhwF,MAAOA,KAAKiwF,qBAAuBz6C,EAAEx1C,KAAKiwF,qBAAsBjwF,MAAOA,KAAKkwF,wBAA0B16C,EAAEx1C,KAAKkwF,wBAAyBlwF,MAAOA,KAAK2oF,qBAAuBnzC,EAAEx1C,KAAK2oF,qBAAsB3oF,MAAOA,KAAKqwC,WAAa,GAAIrwC,KAAKmwF,QAAU,GAAInwF,KAAKowF,oBAAqB7+E,EAAE,YAAa,CAC1Wy7D,UAAWhtE,KAAK+c,QAChBkwD,iBAAkBtuD,EAClBuuD,aAAcltE,KAAK2oF,uBACjBp3E,EAAE,YAAa,CACjBy7D,UAAWhtE,KAAK+c,QAChBkwD,iBAAkBhkD,EAClBikD,aAAcltE,KAAKkwF,0BACjB3+E,EAAE,QAAS,CACby7D,UAAWhtE,KAAK+c,QAChBkwD,iBAAkBr/B,EAClBpV,gBAAgB,IACdjnB,EAAE,QAAS,CACby7D,UAAWhtE,KAAK+c,QAChBkwD,iBAAkBplD,EAClBqlD,aAAcltE,KAAKiwF,uBACjB1+E,EAAE,UAAW,CACfy7D,UAAWhtE,KAAK+c,QAChBkwD,iBAAkBtwE,EAClBuwE,aAAcltE,KAAKgwF,wBAIvB,IAAIrxE,EAAMsK,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EAAG4sD,EAAG3mE,EAAGmxC,EAClC,OAAOpvB,EAAEjiB,EAAGme,GAA2DkzB,GAAvD3kB,EAAI,yBAA2D,MAAlCtK,EAAI,uBAAwCN,EAAI,sBAA8B,qBAAsBwJ,EAAIxJ,EAAI,sBAAuB1hB,EAAI0hB,EAAI,qBAAsB9hB,EAAE6E,UAAUunF,qBAAuB,SAAUvqE,EAAG1D,GAC5P,IAAInJ,EAAGnK,EAAGouC,EACV,OAAO,OAASpuC,EAAIpH,KAAKq7E,WAAaj0E,EAAEipF,wBAAyBjyE,EAAEoa,iBAAkBjnB,EAAI1U,EAAE6d,GAAI1a,KAAKswF,UAAU/+E,GAAKvR,KAAKuwF,aAAah/E,GAAK,OAASikC,EAAIx1C,KAAKq7E,UAAY7lC,EAAEg7C,uBAAuBj/E,QAAK,GACrMhV,EAAE6E,UAAU8uF,wBAA0B,SAAU9xE,EAAG1D,GACpD,IAAInJ,EAAGnK,EAAGouC,EACV,OAAO,OAASpuC,EAAIpH,KAAKq7E,WAAaj0E,EAAEipF,wBAAyBjyE,EAAEoa,iBAAkBjnB,EAAIiF,EAAEkE,GAAI1a,KAAKswF,UAAU/+E,GAAKvR,KAAKuwF,aAAah/E,GAAK,OAASikC,EAAIx1C,KAAKq7E,WAAa7lC,EAAEi7C,0BAA0Bl/E,GAAIvR,KAAK0wF,2BAC7Mn0F,EAAE6E,UAAU6uF,qBAAuB,SAAUv1E,EAAGnJ,GACjD,IAAInK,EACJ,OAAOA,EAAIgX,EAAE7M,EAAG,CACd07D,iBAAkB5uD,IACwBre,KAApCuR,EAAElO,aAAa,qBAA6BtD,KAAKC,KAAMoH,IAC9D7K,EAAE6E,UAAU4uF,sBAAwB,SAAU5xE,EAAG1D,GAClD,IAAInJ,EAAGnK,EACP,OAAO,KAAOgX,EAAExb,UAAYwb,EAAEoa,iBAAkBjnB,EAAImJ,EAAErX,aAAa,QAAS+D,EAAIpH,KAAKswF,UAAU/+E,GAAIvR,KAAKyD,aAAa2D,IAAK,KAAOgX,EAAExb,SAAWwb,EAAEoa,iBAAkBx4B,KAAK2wF,mBAAgB,GACtLp0F,EAAE6E,UAAUwvF,cAAgB,SAAUxyE,GACvC,OAAOpe,KAAKmwF,QAAU/xE,EAAGpe,KAAK6wF,wBAC7Bt0F,EAAE6E,UAAUyvF,qBAAuB,WACpC,OAAO7wF,KAAK8wF,iBAAiB,SAAU1yE,GACrC,OAAO,SAAU1D,EAAGnJ,GAClB,OAAOmJ,EAAE+a,UAA4B,IAAjBrX,EAAE+xE,QAAQ5+E,IAFL,CAI3BvR,QACDzD,EAAE6E,UAAU0vF,iBAAmB,SAAU1yE,GAC1C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAA2CA,EAAI,GAAIjN,EAAI,EAAGnK,GAArDouC,EAAIx1C,KAAK+c,QAAQlN,iBAAiB8O,IAAyB3W,OAAQZ,EAAImK,EAAGA,IAAKmJ,EAAI86B,EAAEjkC,GAAIiN,EAAExQ,KAAKoQ,EAAE1D,EAAG7d,EAAE6d,KAE5G,OAAO8D,GACNjiB,EAAE6E,UAAU2vF,iBAAmB,SAAU3yE,GAC1C,OAAOpe,KAAKqwC,WAAajyB,EAAGpe,KAAK0wF,2BAChCn0F,EAAE6E,UAAUsvF,wBAA0B,WACvC,OAAO1wF,KAAKgxF,oBAAoB,SAAU5yE,GACxC,OAAO,SAAU1D,EAAGnJ,GAClB,OAAOmJ,EAAE+a,UAA+B,IAApBrX,EAAEiyB,WAAW9+B,GAAW6M,EAAEiyB,WAAW9+B,IAAM6M,EAAE6yE,gBAAgB1/E,IAAMmJ,EAAEjX,aAAa,mBAAoB,IAAKiX,EAAErV,UAAUC,IAAI,iBAAmBoV,EAAE/W,gBAAgB,oBAAqB+W,EAAErV,UAAUG,OAAO,iBAFhM,CAI9BxF,QACDzD,EAAE6E,UAAU4vF,oBAAsB,SAAU5yE,GAC7C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAA2CA,EAAI,GAAIjN,EAAI,EAAGnK,GAArDouC,EAAIx1C,KAAK+c,QAAQlN,iBAAiBoZ,IAAyBjhB,OAAQZ,EAAImK,EAAGA,IAAKmJ,EAAI86B,EAAEjkC,GAAIiN,EAAExQ,KAAKoQ,EAAE1D,EAAGlE,EAAEkE,KAE5G,OAAO8D,GACNjiB,EAAE6E,UAAU8vF,qBAAuB,SAAU9yE,GAC9C,IAAI1D,EAAM86B,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAEtB,IAAKvrB,EAAI49B,KAAKtf,UAAUuD,EAAE0f,QAA+Dtf,EAAI,EAAGG,GAA7DmJ,EAAI9nB,KAAK+c,QAAQlN,iBAAiB,oBAAiC7H,OAAQ2W,EAAIH,EAAGA,IAAK,GAAcg3B,GAAV96B,EAAIoN,EAAEtJ,IAAUnb,aAAa,iBAAiBpI,MAAM,KAAUk/B,KAAKtf,UAAU26B,EAAE1X,UAAevhC,EAAG,OAAO6K,EAAE,YAAa,CACnP4lE,UAAWtyD,KACT,EAEJ,OAAO,GACNne,EAAE6E,UAAU6vF,gBAAkB,SAAU7yE,GACzC,IAAI1D,EACJ,OAAQA,EAAI1a,KAAKswF,UAAUlyE,IAAM1D,EAAEqyE,aAAa,yBAAsB,GACrExwF,EAAE6E,UAAUmvF,aAAe,SAAUnyE,GACtC,OAAOpe,KAAKixF,gBAAgB7yE,GAAKpe,KAAK2wF,aAAe3wF,KAAKmxF,WAAW/yE,IACpE7hB,EAAE6E,UAAU+vF,WAAa,SAAU/yE,GACpC,IAAI1D,EAAMtT,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAE/B,IAAK7nB,KAAK2wF,aAAc,OAAShyE,EAAI3e,KAAKq7E,WAAa18D,EAAEyyE,yBAAyBhqF,EAAIpH,KAAKswF,UAAUlyE,IAAM3a,aAAa,mBAAoB,IAAK2D,EAAE/B,UAAUC,IAAI,eAA2DkwC,EAAI,EAAGj5C,GAAlDurB,EAAI1gB,EAAEyI,iBAAiB,oBAAiC7H,OAAQzL,EAAIi5C,EAAGA,IAAS1tB,EAAE0tB,GAAM7xC,gBAAgB,YAEzR,OAAQ+W,EAAIlE,EAAEpP,MAAQoX,EAAI/hB,EAAE2K,EAAGgX,MAAQI,EAAErO,MAAQ,OAAS8Y,EAAIjpB,KAAKqwC,WAAW31B,IAAMuO,EAAI,GAAIzK,EAAE8R,UAAW,OAASzI,EAAI7nB,KAAKq7E,UAAYxzD,EAAEwpE,qBAAqBjzE,QAAK,GAClK7hB,EAAE6E,UAAUqC,aAAe,SAAU2a,GACtC,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAOsT,EAAIlE,EAAE4H,IAAI7M,EAAI9U,EAAE2hB,EAAG1D,IAAM42E,eAAiB//E,EAAEggF,iBAAmBhgF,EAAE9N,aAAa,qBAAsB,IAAK8N,EAAElM,UAAUC,IAAI,iBAAkBiM,EAAE0hB,UAAY,OAAS7rB,EAAIpH,KAAKq7E,WAAaj0E,EAAEoqF,0BAA0B92E,EAAGnJ,EAAEpB,OAAQnQ,KAAK2wF,eAC5Op0F,EAAE6E,UAAUuC,gBAAkB,SAAUya,GACzC,IAAI1D,EAAGnJ,EACP,OAAOmJ,EAAIlE,EAAE4H,GAAI,OAAS7M,EAAIvR,KAAKq7E,WAAa9pE,EAAEkgF,0BAA0B/2E,GAAI1a,KAAK2wF,cACpFp0F,EAAE6E,UAAUuvF,WAAa,WAC1B,IAAIvyE,EAAG1D,EACP,OAAQ0D,EAAIpe,KAAK+c,QAAQzY,cArE4F+Z,0CAqEvED,EAAEza,gBAAgB,oBAAqBya,EAAE/Y,UAAUG,OAAO,eAAgBxF,KAAKowF,oBAAqB,OAAS11E,EAAI1a,KAAKq7E,UAAY3gE,EAAEg3E,qBAAqBtuB,EAAEhlD,SAAM,QAAU,GACxN7hB,EAAE6E,UAAUgvF,kBAAoB,WACjC,IAAIhyE,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAA2CA,EAAI,GAAIp3B,EAAI,EAAG7M,GAArDnK,EAAIpH,KAAK+c,QAAQlN,iBAAiBlT,IAAyBqL,OAAQuJ,EAAI6M,EAAGA,KAAK1D,EAAItT,EAAEgX,IAAM3a,aAAa,WAAY,YAAaiX,EAAE/W,gBAAgB,sBAAuB6xC,EAAExnC,KAAK0M,EAAErV,UAAUG,OAAO,kBAEzM,OAAOgwC,GACNj5C,EAAE6E,UAAUkvF,UAAY,SAAUlyE,GACnC,OAAOpe,KAAK+c,QAAQzY,cAAc,qBAAuB8Z,EAAI,MAC5D3hB,EAAI,SAAU2hB,EAAG1D,GAClB,OAAO,MAAQA,IAAMA,EAAIlE,EAAE4H,IAAKA,EAAE9Z,cAAc,2BAA6BoW,EAAI,OAChF7d,EAAI,SAAUuhB,GACf,OAAOA,EAAE/a,aAAa,qBACrBmT,EAAI,SAAU4H,GACf,IAAI1D,EACJ,OAAO,OAASA,EAAI0D,EAAE/a,aAAa,wBAA0BqX,EAAI0D,EAAE/a,aAAa,+BAC/E+/D,EAAI,SAAUhlD,GACf,OAAOA,EAAE/a,aAAa,qBACrB9G,EAjH0F,CAkH7Fme,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEi3E,sBAAwB,SAAUj3E,GAClC,SAASnJ,EAAE6M,GACTpe,KAAKmhC,IAAM/iB,EAGb,OAAOA,EAAE7M,EAAGmJ,GAAInJ,EAAEnQ,UAAUgmC,QAAU,SAAUhpB,GAC9C,IAAI1D,EACJ,OAAOA,EAAI,IAAIu6B,OAAWynB,OAAS,SAAUnrD,GAC3C,OAAO,WACL,OAAOmJ,EAAE8S,MAAQjc,EAAEic,MAAQ9S,EAAEk3E,aAAcl3E,EAAEvL,OAASoC,EAAEpC,OAASuL,EAAEm3E,cAAezzE,GAAE,EAAI1D,IAFzD,CAIjC1a,MAAO0a,EAAEiiD,QAAU,WACnB,OAAOv+C,GAAE,IACR1D,EAAEm5B,IAAM7zC,KAAKmhC,KACf5vB,EAdqB,CAexBmJ,EAAEu4D,YACJlzE,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,aAGlByN,EAAI,SAAU6M,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGtT,EAAErH,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOjkC,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFhX,EAAI,GAAGmT,eAEXG,EAAEo3E,WAAa,SAAU1qF,GACvB,SAASouC,EAAEjkC,GACT,MAAQA,IAAMA,EAAI,IAAKvR,KAAK+xF,YAAc3zE,EAAEpe,KAAK+xF,YAAa/xF,MAAOw1C,EAAEi1B,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKqwC,WAAa31B,EAAEk3D,KAAKx2B,IAAI7pC,GAAIvR,KAAKgyF,sBAG7J,OAAOzgF,EAAEikC,EAAGpuC,GAAIouC,EAAEy8C,mBAAqB,8BAA+Bz8C,EAAE08C,kBAAoB,SAAU9zE,GACpG,IAAI1D,EACJ,OAAsCA,EAAI,IAAI1a,KAAnCA,KAAKmyF,kBAAkB/zE,KAAuBg0E,QAAQh0E,GAAI1D,GACpE86B,EAAE28C,kBAAoB,SAAU/zE,GACjC,OAAO,IAAI1D,EAAEk3D,KAAK,CAChBygB,SAAUj0E,EAAEP,KACZy0E,SAAUl0E,EAAEkzC,KACZihC,YAAan0E,EAAEpK,QAEhBwhC,EAAEm1B,SAAW,SAAUvsD,GACxB,OAAO,IAAIpe,KAAKoe,IACfo3B,EAAEp0C,UAAUiC,aAAe,SAAU+a,GACtC,OAAOpe,KAAKqwC,WAAW3vC,IAAI0d,IAC1Bo3B,EAAEp0C,UAAU2rF,aAAe,SAAU3uE,GACtC,OAAOpe,KAAKqwC,WAAW/1B,IAAI8D,IAC1Bo3B,EAAEp0C,UAAUgrF,cAAgB,WAC7B,OAAOpsF,KAAKqwC,WAAW16B,YACtB6/B,EAAEp0C,UAAUoxF,cAAgB,SAAUp0E,GACvC,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAO,MAAQgX,IAAMA,EAAI,IAAK1D,EAAI1a,KAAKqwC,WAAW2hC,MAAM5zD,GAAIpe,KAAKqwC,WAAWw6B,UAAUnwD,QAAK,GAAU1a,KAAKqwC,WAAa31B,EAAG1a,KAAKgyF,sBAAuB,OAASzgF,EAAIvR,KAAK2rF,kBAAoB,mBAAqBp6E,EAAE26E,+BAAiC36E,EAAE26E,8BAA8BlsF,MAAO,OAASoH,EAAIpH,KAAKq7E,WAAa,mBAAqBj0E,EAAE8kF,8BAAgC9kF,EAAE8kF,8BAA8BlsF,WAAQ,IACxZw1C,EAAEp0C,UAAU4wF,oBAAsB,WACnC,OAAOhyF,KAAKipF,gBAAkBjpF,KAAKyyF,kBAAe,GACjDj9C,EAAEp0C,UAAUupF,UAAY,WACzB,OAAO,MAAQ3qF,KAAKo4E,QAAUp4E,KAAK8rF,UAAY9rF,KAAKuqF,YACnD/0C,EAAEp0C,UAAU6nF,cAAgB,WAC7B,OAAOjpF,KAAKqwC,WAAW/1B,IAAI,eAAiBta,KAAKqwC,WAAW3vC,IAAI,eAAiBV,KAAK2Z,YAAYs4E,mBAAmB/zF,KAAK8B,KAAKorF,mBAC9H51C,EAAEp0C,UAAU4pF,QAAU,WACvB,OAAOhrF,KAAKwqF,aAAe,UAAYxqF,KAAKipF,gBAAkB,UAAY,QACzEzzC,EAAEp0C,UAAU0qF,OAAS,WACtB,OAAO9rF,KAAKqwC,WAAW3vC,IAAI,QAC1B80C,EAAEp0C,UAAUmpF,QAAU,WACvB,OAAOvqF,KAAKqwC,WAAW3vC,IAAI,SAC1B80C,EAAEp0C,UAAUuoF,YAAc,WAC3B,IAAIvrE,EACJ,OAAO,OAASA,EAAIpe,KAAKqwC,WAAW3vC,IAAI,aAAe0d,EAAI,IAC1Do3B,EAAEp0C,UAAUsxF,YAAc,WAC3B,OAAO1yF,KAAKqwC,WAAW3vC,IAAI,aAC1B80C,EAAEp0C,UAAUwoF,qBAAuB,WACpC,IAAIxrE,EACJ,MAA4C,iBAArCA,EAAIpe,KAAKqwC,WAAW3vC,IAAI,aAAoCga,EAAE4C,OAAOs5D,SAASjW,UAAUviD,GAAK,IACnGo3B,EAAEp0C,UAAU6pF,aAAe,WAC5B,IAAI7sE,EACJ,OAAO,OAASA,EAAIpe,KAAK2pF,cAAcxiF,MAAM,aAAeiX,EAAE,GAAGpM,mBAAgB,GAChFwjC,EAAEp0C,UAAUgqF,eAAiB,WAC9B,OAAOprF,KAAKqwC,WAAW3vC,IAAI,gBAC1B80C,EAAEp0C,UAAUopF,WAAa,WAC1B,OAAOxqF,KAAKqwC,WAAW/1B,IAAI,YAC1Bk7B,EAAEp0C,UAAUqpF,WAAa,WAC1B,OAAOzqF,KAAKqwC,WAAW3vC,IAAI,YAC1B80C,EAAEp0C,UAAU4qF,SAAW,WACxB,OAAOhsF,KAAKqwC,WAAW3vC,IAAI,UAC1B80C,EAAEp0C,UAAU6qF,UAAY,WACzB,OAAOjsF,KAAKqwC,WAAW3vC,IAAI,WAC1B80C,EAAEp0C,UAAUuxF,QAAU,WACvB,OAAO3yF,KAAKo4E,MACX5iC,EAAEp0C,UAAUgxF,QAAU,SAAUh0E,GACjC,OAAOpe,KAAKo4E,KAAOh6D,EAAGpe,KAAKipF,gBAAkBjpF,KAAK4yF,mBAAgB,GACjEp9C,EAAEp0C,UAAU2wF,YAAc,WAC3B,OAAO/xF,KAAK6yF,uBAAwB7yF,KAAKo4E,KAAO,MAC/C5iC,EAAEp0C,UAAUypF,kBAAoB,WACjC,IAAIzsE,EACJ,OAAO,OAASA,EAAIpe,KAAK8yF,gBAAkB10E,EAAI,GAC9Co3B,EAAEp0C,UAAU2xF,kBAAoB,SAAU30E,GAC3C,IAAI1D,EACJ,OAAO1a,KAAK8yF,iBAAmB10E,GAAKpe,KAAK8yF,eAAiB10E,EAAG,OAAS1D,EAAI1a,KAAKmqF,yBAA2B,mBAAqBzvE,EAAE+wE,kCAAoC/wE,EAAE+wE,kCAAkCzrF,WAAQ,QAAU,GAC1Nw1C,EAAEp0C,UAAUuc,OAAS,WACtB,OAAO3d,KAAKosF,iBACX52C,EAAEp0C,UAAU+pE,YAAc,WAC3B,MAAO,CAAC31B,EAAEi1B,UAAUU,YAAYtnE,MAAM7D,KAAM8D,WAAY9D,KAAKqwC,WAAW86B,cAAenrE,KAAK+rF,iBAAiB31E,KAAK,MACjHo/B,EAAEp0C,UAAU2qF,cAAgB,WAC7B,OAAO/rF,KAAKgzF,YAAchzF,KAAKizF,eAC9Bz9C,EAAEp0C,UAAU8xF,cAAgB,SAAU90E,GACvC,IAAI1D,EAAGnJ,EACP,OAAO6M,IAAMpe,KAAK+rF,iBAAmB/rF,KAAKgzF,WAAa50E,EAAG,OAAS1D,EAAI1a,KAAK2rF,kBAAoB,mBAAqBjxE,EAAEwxE,+BAAiCxxE,EAAEwxE,8BAA8BlsF,MAAO,OAASuR,EAAIvR,KAAKq7E,WAAa,mBAAqB9pE,EAAE4hF,8BAAgC5hF,EAAE4hF,8BAA8BnzF,WAAQ,QAAU,GACtUw1C,EAAEp0C,UAAUqxF,WAAa,WAC1B,OAAOzyF,KAAKozF,QAAQpzF,KAAK8rF,SAAU9rF,KAAK+xF,cACvCv8C,EAAEp0C,UAAUwxF,YAAc,WAC3B,OAAO5yF,KAAKo4E,MAAQp4E,KAAKqzF,cAAgBjhD,IAAIkhD,gBAAgBtzF,KAAKo4E,MAAOp4E,KAAKozF,QAAQpzF,KAAKqzF,qBAAkB,GAC5G79C,EAAEp0C,UAAUyxF,qBAAuB,WACpC,OAAO7yF,KAAKqzF,eAAiBjhD,IAAImhD,gBAAgBvzF,KAAKqzF,eAAgBrzF,KAAKqzF,cAAgB,WAAQ,GAClG79C,EAAEp0C,UAAUgyF,QAAU,SAAUh1E,EAAG7M,GAEpC,OAAO6M,GAAKA,IAAMpe,KAAK+rF,iBAAmB/rF,KAAKizF,cAAgB70E,EAAO,IAAI1D,EAAEi3E,sBAAsBvzE,GAAMskD,KAAK,SAAUhoD,GACrH,OAAO,SAAUtT,GACf,IAAIouC,EAAGh3B,EACP,OAAOA,EAAIpX,EAAEomB,MAAOgoB,EAAIpuC,EAAE+H,OAAQuL,EAAEsxE,YAActxE,EAAEuxE,aAAevxE,EAAE83E,cAAc,CACjFhlE,MAAOhP,EACPrP,OAAQqmC,IACN96B,EAAEu4E,cAAgB,KAAMv4E,EAAEw4E,cAAc90E,GAAI,mBAAqB7M,EAAIA,SAAM,GAN0B,CAQ3GvR,OAAc,MAAE,SAAUoe,GAC1B,OAAO,WACL,OAAOA,EAAE60E,cAAgB,KAAM,mBAAqB1hF,EAAIA,SAAM,GAFhD,CAIhBvR,aAAU,GACXw1C,EApGU,CAqGb96B,EAAEla,SACJT,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAE84E,MAAQ,SAAUjiF,GAClB,SAASnK,EAAEgX,EAAG7M,GACZ,MAAQA,IAAMA,EAAI,IAAKnK,EAAEqjE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKqwC,WAAa31B,EAAEk3D,KAAKx2B,IAAI7pC,GAGtG,OAAO6M,EAAEhX,EAAGmK,GAAInK,EAAE85E,MAAQ,GAAI95E,EAAEqsF,aAAe,SAAUr1E,EAAG1D,GAC1D,OAAOA,EAAE1G,KAAOoK,EAAGpe,KAAKkhF,MAAM9iE,GAAK1D,GAClCtT,EAAEujE,SAAW,SAAUvsD,GACxB,IAAI1D,EACJ,OAAQA,EAAI1a,KAAKkhF,MAAM9iE,EAAEpK,OAAS0G,EAAEiwD,SAASvsD,QAAK,GACjDhX,EAAEhG,UAAUsyF,mBAAqB,SAAUt1E,GAC5C,OAAO,IAAIpe,KAAK2Z,YAAY3Z,KAAK2zF,WAAYv1E,IAC5ChX,EAAEhG,UAAUwyF,6BAA+B,SAAUx1E,GACtD,OAAOpe,KAAK0zF,mBAAmB1zF,KAAKqwC,WAAW2hC,MAAM5zD,KACpDhX,EAAEhG,UAAUyyF,qBAAuB,SAAUz1E,GAC9C,OAAOpe,KAAK0zF,mBAAmB1zF,KAAKqwC,WAAW7qC,OAAO4Y,KACrDhX,EAAEhG,UAAUq/E,KAAO,WACpB,OAAOzgF,KAAK0zF,mBAAmB1zF,KAAKqwC,aACnCjpC,EAAEhG,UAAUiC,aAAe,SAAU+a,GACtC,OAAOpe,KAAKqwC,WAAW3vC,IAAI0d,IAC1BhX,EAAEhG,UAAU0yF,kBAAoB,WACjC,OAAO9zF,KAAKqwC,YACXjpC,EAAEhG,UAAUgrF,cAAgB,WAC7B,OAAOpsF,KAAKqwC,WAAW16B,YACtBvO,EAAEhG,UAAU2yF,oBAAsB,WACnC,IAAI31E,EAAG1D,EAAGnJ,EACV,OAAQA,EAAIyiF,UAAUC,gBAAgB,KAAO71E,EAAI7M,EAAE8+B,WAAY31B,EAAI0D,EAAE0zD,UAAWkiB,UAAUE,WAAU,SAAU3iF,GAC5G,OAAOmJ,EAAI0D,EAAE2zD,oBAAoBxgE,EAAE8+B,YAAajyB,EAAIA,EAAExW,MAAM8S,MAC1D0D,EAAEzI,YAAc,IACnBvO,EAAEhG,UAAU2rF,aAAe,SAAU3uE,GACtC,OAAOpe,KAAKqwC,WAAW/1B,IAAI8D,IAC1BhX,EAAEhG,UAAU+yF,0BAA4B,SAAU/1E,GACnD,OAAO,MAAQA,GAAKpe,KAAK8Y,aAAesF,EAAEtF,YACzC1R,EAAEhG,UAAUgzF,yBAA2B,SAAUh2E,GAClD,OAAO,MAAQA,IAAMpe,KAAKqwC,aAAejyB,EAAEiyB,YAAcrwC,KAAKqwC,WAAWw6B,UAAUzsD,EAAEiyB,cACpFjpC,EAAEhG,UAAUizF,aAAe,WAC5B,OAAO,GACNjtF,EAAEhG,UAAUypE,UAAY,SAAUzsD,GACnC,OAAOhX,EAAEqjE,UAAUI,UAAUhnE,MAAM7D,KAAM8D,YAAc9D,KAAK4qE,qBAAqBxsD,IAAMpe,KAAKm0F,0BAA0B/1E,IAAMpe,KAAKo0F,yBAAyBh2E,IACzJhX,EAAEhG,UAAU8wE,QAAU,WACvB,OAAO,IAAMlyE,KAAKgI,QACjBZ,EAAEhG,UAAUkzF,eAAiB,WAC9B,OAAO,GACNltF,EAAEhG,UAAUuc,OAAS,WACtB,MAAO,CACL3J,KAAMhU,KAAK2Z,YAAY3F,KACvBq8B,WAAYrwC,KAAKosF,kBAElBhlF,EAAEhG,UAAU2pE,sBAAwB,WACrC,MAAO,CACL/2D,KAAMhU,KAAK2Z,YAAY3F,KACvBq8B,WAAYrwC,KAAKqwC,WAAWy6B,YAE7B1jE,EAAEhG,UAAUoxE,aAAe,WAC5B,OAAOxyE,KAAK+sF,aAAa,SACxB3lF,EAAEhG,UAAUqxE,iBAAmB,SAAUr0D,GAC1C,OAAOpe,KAAKqD,aAAa,UAAY+a,EAAE/a,aAAa,SACnD+D,EAAEhG,UAAUmzF,UAAY,WACzB,OAAOv0F,KAAKgI,QACXZ,EAAEhG,UAAUozF,sBAAwB,WACrC,OAAO,GACNptF,EA7DK,CA8DRsT,EAAEla,SACJT,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAE84E,MAAMC,aAAa,aAAc/4E,EAAE+5E,gBAAkB,SAAUljF,GAC/D,SAASnK,EAAEgX,GACTpe,KAAKy1E,WAAar3D,EAAGhX,EAAEqjE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKgI,OAAS,EAAGhI,KAAK00F,wCAAwC,QAAS10F,KAAKy1E,WAAW+U,cAAgBxqF,KAAK20F,6BAGnL,OAAOv2E,EAAEhX,EAAGmK,GAAInK,EAAEujE,SAAW,SAAUvsD,GACrC,OAAO,IAAIpe,KAAK0a,EAAEo3E,WAAWnnB,SAASvsD,EAAEq3D,YAAar3D,EAAEiyB,aACtDjpC,EAAEwtF,oBAAsB,CAAC,UAAW,gBAAiBxtF,EAAEhG,UAAUszF,wCAA0C,SAAUt2E,GACtH,OAAOpe,KAAK+sF,aAAa3uE,IAAMpe,KAAKy1E,WAAWsX,aAAa3uE,IAAMpe,KAAKy1E,WAAW+c,cAAcxyF,KAAKqwC,WAAWzoC,MAAMwW,IAAKpe,KAAKqwC,WAAarwC,KAAKqwC,WAAW7qC,OAAO4Y,SAAM,GACzKhX,EAAEhG,UAAUuzF,2BAA6B,WAC1C,IAAIv2E,EACJ,OAAOA,EAAIpe,KAAKqwC,WAAWzoC,MAAM5H,KAAK2Z,YAAYi7E,sBAAwB/pB,UAAU7qE,KAAKqwC,iBAAc,EAASrwC,KAAKqwC,WAAajyB,GACjIhX,EAAEhG,UAAUuyF,SAAW,WACxB,OAAO3zF,KAAKy1E,YACXruE,EAAEhG,UAAUkzF,eAAiB,WAC9B,OAAQt0F,KAAKy1E,WAAWkV,aACvBvjF,EAAEhG,UAAUyoF,WAAa,WAC1B,IAAIzrE,EACJ,OAAO,OAASA,EAAIpe,KAAKqwC,WAAW3vC,IAAI,YAAc0d,EAAI,IACzDhX,EAAEhG,UAAUypE,UAAY,SAAUzsD,GACnC,IAAI1D,EACJ,OAAOtT,EAAEqjE,UAAUI,UAAUhnE,MAAM7D,KAAM8D,YAAc9D,KAAKy1E,WAAWrgC,MAAQ,MAAQh3B,GAAK,OAAS1D,EAAI0D,EAAEq3D,YAAc/6D,EAAE06B,QAAK,IAC/HhuC,EAAEhG,UAAU0X,SAAW,WACxB,OAAO4B,EAAEqvD,8BACR3iE,EAAEhG,UAAUuc,OAAS,WACtB,IAAIS,EACJ,OAAOA,EAAIhX,EAAEqjE,UAAU9sD,OAAO9Z,MAAM7D,KAAM8D,YAAc2xE,WAAaz1E,KAAKy1E,WAAYr3D,GACrFhX,EAAEhG,UAAU+pE,YAAc,WAC3B,MAAO,CAAC/jE,EAAEqjE,UAAUU,YAAYtnE,MAAM7D,KAAM8D,WAAY9D,KAAKy1E,WAAWtK,eAAe/0D,KAAK,MAC3FhP,EAAEhG,UAAUyzF,UAAY,WACzB,OAAO16D,KAAKtf,UAAU7a,KAAK8Y,aAC1B1R,EA/BkD,CAgCrDsT,EAAE84E,SACJzzF,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EAAI,SAAU6M,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGtT,EAAErH,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOjkC,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFhX,EAAI,GAAGmT,eAEX6D,EAAI1D,EAAE4wD,kBAAmB5wD,EAAE84E,MAAMC,aAAa,SAAU/4E,EAAEo6E,YAAc,SAAUp6E,GAChF,SAAStT,EAAEsT,GACTtT,EAAEqjE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKwJ,OAAS4U,EAAE1D,GAAI1a,KAAKgI,OAAShI,KAAKwJ,OAAOxB,OAGhG,OAAOuJ,EAAEnK,EAAGsT,GAAItT,EAAEujE,SAAW,SAAUvsD,GACrC,OAAO,IAAIpe,KAAKoe,EAAE5U,OAAQ4U,EAAEiyB,aAC3BjpC,EAAEhG,UAAUuyF,SAAW,WACxB,OAAO3zF,KAAKwJ,QACXpC,EAAEhG,UAAU0X,SAAW,WACxB,OAAO9Y,KAAKwJ,OAAOsP,YAClB1R,EAAEhG,UAAUizF,aAAe,WAC5B,MAAO,OAASr0F,KAAK8Y,aAAkD,IAApC9Y,KAAKqD,aAAa,eACpD+D,EAAEhG,UAAUuc,OAAS,WACtB,IAAIS,EACJ,OAAOA,EAAIhX,EAAEqjE,UAAU9sD,OAAO9Z,MAAM7D,KAAM8D,YAAc0F,OAASxJ,KAAKwJ,OAAQ4U,GAC7EhX,EAAEhG,UAAUozF,sBAAwB,SAAUp2E,GAC/C,OAAO,MAAQA,GAAKpe,KAAK4qE,qBAAqBxsD,IAAMpe,KAAKo0F,yBAAyBh2E,IACjFhX,EAAEhG,UAAU2zF,gBAAkB,SAAU32E,GACzC,OAAO,IAAIpe,KAAK2Z,YAAY3Z,KAAK8Y,WAAasF,EAAEtF,WAAY9Y,KAAKqwC,aAChEjpC,EAAEhG,UAAU4zF,cAAgB,SAAU52E,GACvC,IAAI1D,EAAGnJ,EACP,OAAO,IAAM6M,GAAK1D,EAAI,KAAMnJ,EAAIvR,MAAQoe,IAAMpe,KAAKgI,QAAU0S,EAAI1a,KAAMuR,EAAI,OAASmJ,EAAI,IAAI1a,KAAK2Z,YAAY3Z,KAAKwJ,OAAO5B,MAAM,EAAGwW,GAAIpe,KAAKqwC,YAAa9+B,EAAI,IAAIvR,KAAK2Z,YAAY3Z,KAAKwJ,OAAO5B,MAAMwW,GAAIpe,KAAKqwC,aAAc,CAAC31B,EAAGnJ,IAC7NnK,EAAEhG,UAAUyzF,UAAY,WACzB,IAAIz2E,EACJ,OAAOA,EAAIpe,KAAKwJ,QAAUxB,OAAS,KAAOoW,EAAIA,EAAExW,MAAM,EAAG,IAAM,UAAWuyB,KAAKtf,UAAUuD,EAAEtF,aAC1F1R,EA1BmE,CA2BtEsT,EAAE84E,SACJzzF,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EAAI,SAAU6M,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGtT,EAAErH,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOjkC,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFhX,EAAI,GAAGmT,eACPi7B,EAAI,GAAG5tC,MAEXwW,EAAI1D,EAAEyxD,YAAazxD,EAAEu6E,eAAiB,SAAUv6E,GAC9C,SAAStT,EAAEgX,GACT,MAAQA,IAAMA,EAAI,IAAKhX,EAAEqjE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKoyE,QAAUh0D,EAAExW,MAAM,GAAI5H,KAAKgI,OAAShI,KAAKoyE,QAAQpqE,OAG/H,IAAIwW,EAAGjiB,EAAGoiB,EACV,OAAOpN,EAAEnK,EAAGsT,GAAItT,EAAEg0C,IAAM,SAAUh9B,GAChC,OAAOA,aAAape,KAAOoe,EAAI,IAAIpe,KAAKoe,IACvChX,EAAEhG,UAAUuG,QAAU,SAAUyW,GACjC,OAAOpe,KAAKoyE,QAAQzqE,QAAQyW,IAC3BhX,EAAEhG,UAAUq1B,OAAS,WACtB,IAAI/b,EACJ,OAAOA,EAAI,GAAK5W,UAAUkE,OAASwtC,EAAEz1C,KAAK+D,UAAW,GAAK,GAAI,IAAI9D,KAAK2Z,YAAYyE,EAAEva,MAAM,KAAM,CAAC7D,KAAKoyE,SAASz7D,OAAO6+B,EAAEz1C,KAAK2a,OAC7HtT,EAAEhG,UAAU8zF,WAAa,SAAU92E,GACpC,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAEnB,IAAuBA,EAAI,GAAIgV,EAAImJ,EAAI,EAAGtT,GAArCoX,EAAIxe,KAAKoyE,SAAkCpqE,OAAQZ,EAAIsT,EAAGnJ,IAAMmJ,EAAG86B,EAAIh3B,EAAEjN,GAAIhV,EAAEyR,KAAKoQ,EAAEo3B,EAAGjkC,IAE9F,OAAOhV,GACN6K,EAAEhG,UAAU+zF,oBAAsB,SAAU/2E,EAAG1D,GAChD,OAAO1a,KAAKy2B,OAAO/b,EAAG,EAAG0D,IACxBhX,EAAEhG,UAAUg0F,4BAA8B,SAAUh3E,EAAG1D,GACxD,OAAO1a,KAAKy2B,OAAO5yB,MAAM7D,KAAM,CAAC0a,EAAG,GAAG/D,OAAO6+B,EAAEz1C,KAAKqe,EAAEg0D,YACrDhrE,EAAEhG,UAAUi0F,+BAAiC,SAAUj3E,EAAG1D,GAC3D,IAAInJ,EAAGnK,EAAGouC,EACV,OAA0CpuC,GAAnCouC,EAAIx1C,KAAKs1F,sBAAsB56E,IAAU,GAAInJ,EAAIikC,EAAE,GAAI,IAAIx1C,KAAK2Z,YAAYvS,GAAGguF,4BAA4Bh3E,EAAG7M,IACpHnK,EAAEhG,UAAUm0F,kBAAoB,SAAUn3E,EAAG1D,GAC9C,OAAO1a,KAAKw1F,qBAAqB96E,EAAE1a,KAAKoyE,QAAQh0D,IAAKA,IACpDhX,EAAEhG,UAAUo0F,qBAAuB,SAAUp3E,EAAG1D,GACjD,OAAO1a,KAAKy2B,OAAO/b,EAAG,EAAG0D,IACxBhX,EAAEhG,UAAUq0F,oBAAsB,SAAUr3E,GAC7C,OAAOpe,KAAKy2B,OAAOrY,EAAG,IACrBhX,EAAEhG,UAAUs0F,iBAAmB,SAAUt3E,GAC1C,OAAOpe,KAAKoyE,QAAQh0D,IACnBhX,EAAEhG,UAAUu0F,yBAA2B,SAAUv3E,GAClD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,OAAwCjkC,GAAjCnK,EAAIpH,KAAK41F,oBAAoBx3E,IAAU,GAAI1D,EAAItT,EAAE,GAAIouC,EAAIpuC,EAAE,GAAI,IAAIpH,KAAK2Z,YAAYpI,EAAE3J,MAAM8S,EAAG86B,EAAI,KACzGpuC,EAAEhG,UAAUy0F,qBAAuB,SAAUz3E,GAC9C,IAAI1D,EAAGnJ,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGnK,EAAGouC,EAAGh3B,EAEb,IAAuBA,EAAI,GAAIjN,EAAI,EAAGnK,GAAjCouC,EAAIx1C,KAAKoyE,SAA8BpqE,OAAQZ,EAAImK,EAAGA,IAAKmJ,EAAI86B,EAAEjkC,GAAI6M,EAAE1D,IAAM8D,EAAExQ,KAAK0M,GAEzF,OAAO8D,GACPze,KAAKC,MAAO,IAAIA,KAAK2Z,YAAYpI,IAClCnK,EAAEhG,UAAU00F,qBAAuB,SAAU13E,GAC9C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,OAAwCjkC,GAAjCnK,EAAIpH,KAAK41F,oBAAoBx3E,IAAU,GAAI1D,EAAItT,EAAE,GAAIouC,EAAIpuC,EAAE,GAAI,IAAIpH,KAAK2Z,YAAYpI,GAAGklB,OAAO/b,EAAG86B,EAAI96B,EAAI,IAC/GtT,EAAEhG,UAAU20F,wBAA0B,SAAU33E,EAAG1D,GACpD,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EACtB,OAAOvrB,EAAIyD,KAAK41F,oBAAoBx3E,GAAII,EAAIjiB,EAAE,GAAI6K,EAAI7K,EAAE,GAAIoiB,EAAIpiB,EAAE,GAAIurB,EAAI,WACxE,IAAI1J,EAAG7hB,EAAGurB,EAEV,IAAKA,EAAI,GAAIvW,EAAI6M,EAAI,EAAG7hB,EAAIiiB,EAAExW,OAAQzL,EAAI6hB,EAAG7M,IAAM6M,EAAGo3B,EAAIh3B,EAAEjN,GAAIuW,EAAE9Z,KAAKuD,GAAKnK,GAAKuX,GAAKpN,EAAImJ,EAAE86B,GAAKA,GAEjG,OAAO1tB,EALiE,GAMrE,IAAI9nB,KAAK2Z,YAAYmO,IACzB1gB,EAAEhG,UAAUw0F,oBAAsB,SAAUx3E,GAC7C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGj5C,EAChB,OAA6CgV,GAAtCikC,EAAIx1C,KAAKs1F,sBAAsB32E,EAAEP,KAAW,GAAI1D,EAAI86B,EAAE,GAAIpuC,EAAIouC,EAAE,GAAqF,CAApBjkC,GAA7DhV,EAAI,IAAIyD,KAAK2Z,YAAYpI,GAAG+jF,sBAAsB92E,EAAEJ,GAAKhX,IAAU,GAAkBsT,EAAVne,EAAE,GAAe,IACtK6K,EAAEhG,UAAU40F,oBAAsB,SAAU53E,GAC7C,IAAI1D,EAAMtT,EACV,OAAiDsT,GAA1CtT,EAAIpH,KAAKi2F,6BAA6B73E,IAAUrW,MAAWX,EAAE2sB,OAAQ/zB,KAAKoyE,QAAQ13D,IACxFtT,EAAEhG,UAAUk0F,sBAAwB,SAAUl3E,GAC/C,IAAI1D,EAAGnJ,EAAMikC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAC/B,OAAiDnN,GAA1Cne,EAAIyD,KAAKi2F,6BAA6B73E,IAAUrW,MAAOyW,EAAIjiB,EAAEw3B,OAAQyhB,EAAIx1C,KAAKoyE,QAAQxqE,MAAM,GAAI,MAAQ8S,EAAI,IAAM8D,GAAKyK,EAAIvO,EAAGmN,EAAI,IAA4DtW,GAAxBoN,EAA1B3e,KAAK01F,iBAAiBh7E,GAAUs6E,cAAcx2E,IAAU,GAAIsJ,EAAInJ,EAAE,GAAI62B,EAAE/e,OAAO/b,EAAG,EAAGnJ,EAAGuW,GAAImB,EAAIvO,EAAI,EAAGmN,EAAItW,EAAEgjF,YAAc/1E,IAAMyK,EAAIusB,EAAExtC,OAAQ6f,EAAI,GAAI,CAAC2tB,EAAGvsB,EAAGpB,IAChTzgB,EAAEhG,UAAU80F,YAAc,WAC3B,IAAI93E,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEnB,IAAKpX,EAAI,GAAIouC,EAAIx1C,KAAKoyE,QAAQ,GAA+Bh0D,EAAI,EAAG1D,GAAlC8D,EAAIxe,KAAKoyE,QAAQxqE,MAAM,IAAiBI,OAAQ0S,EAAI0D,EAAGA,IAAK7M,EAAIiN,EAAEJ,IAAK,mBAAqBo3B,EAAEg/C,sBAAwBh/C,EAAEg/C,sBAAsBjjF,QAAK,GAAUikC,EAAIA,EAAEu/C,gBAAgBxjF,IAAMnK,EAAE4G,KAAKwnC,GAAIA,EAAIjkC,GAE1O,OAAO,MAAQikC,GAAKpuC,EAAE4G,KAAKwnC,GAAI,IAAIx1C,KAAK2Z,YAAYvS,IACnDA,EAAEhG,UAAU+0F,4BAA8B,SAAU/3E,EAAG1D,GACxD,IAAInJ,EAAMiN,EACV,OAAkCA,EAAvBxe,KAAKoyE,QAAQxqE,MAAM,GAAUA,MAAMwW,EAAG1D,EAAI,GAAInJ,EAAI,IAAIvR,KAAK2Z,YAAY6E,GAAG03E,cAAcjkB,UAAWjyE,KAAKy2B,OAAO5yB,MAAM7D,KAAM,CAACoe,EAAGI,EAAExW,QAAQ2O,OAAO6+B,EAAEz1C,KAAKwR,MACjKnK,EAAEhG,UAAU60F,6BAA+B,SAAU73E,GACtD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAMG,EAEtB,IAAKjE,EAAI,EAAqBtT,EAAImK,EAAI,EAAGikC,GAA7B72B,EAAI3e,KAAKoyE,SAA0BpqE,OAAQwtC,EAAIjkC,EAAGnK,IAAMmK,EAAG,CACrE,GAAciN,EAAI9D,EAAViE,EAAEvX,GAAcmtF,YAAan2E,GAAK1D,GAAK8D,EAAIJ,EAAG,MAAO,CAC3DrW,MAAOX,EACP2sB,OAAQ3V,EAAI1D,GAEdA,EAAI8D,EAGN,MAAO,CACLzW,MAAO,KACPgsB,OAAQ,OAET3sB,EAAEhG,UAAUg1F,6BAA+B,SAAUh4E,EAAG1D,GACzD,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAEnB,IAAKpiB,EAAI,EAAqBgV,EAAInK,EAAI,EAAGouC,GAA7B72B,EAAI3e,KAAKoyE,SAA0BpqE,OAAQwtC,EAAIpuC,EAAGmK,IAAMnK,EAAG,GAAIoX,EAAIG,EAAEpN,GAAI6M,EAAI7M,EAAGhV,GAAKiiB,EAAE+1E,iBAAiB,GAAIhjF,IAAM6M,EAAG,CAC/H7hB,GAAKme,EACL,MAGF,OAAOne,GACN6K,EAAEhG,UAAUi1F,eAAiB,WAC9B,IAAIj4E,EAAG1D,EACP,OAAO,MAAQ1a,KAAKs2F,YAAct2F,KAAKs2F,YAAct2F,KAAKs2F,YAAc,WACtE,IAAI/kF,EAAGnK,EAAGouC,EAEV,IAAK96B,EAAI,EAAqBnJ,EAAI,EAAGnK,GAAzBouC,EAAIx1C,KAAKoyE,SAAsBpqE,OAAQZ,EAAImK,EAAGA,IAAK6M,EAAIo3B,EAAEjkC,GAAImJ,GAAK0D,EAAEm2E,YAEhF,OAAO75E,GACP3a,KAAKC,OACNoH,EAAEhG,UAAU0X,SAAW,WACxB,OAAO9Y,KAAKoyE,QAAQh8D,KAAK,KACxBhP,EAAEhG,UAAU6wE,QAAU,WACvB,OAAOjyE,KAAKoyE,QAAQxqE,MAAM,IACzBR,EAAEhG,UAAUuc,OAAS,WACtB,OAAO3d,KAAKiyE,WACX7qE,EAAEhG,UAAUypE,UAAY,SAAUzsD,GACnC,OAAOhX,EAAEqjE,UAAUI,UAAUhnE,MAAM7D,KAAM8D,YAAcvH,EAAEyD,KAAKoyE,QAAS,MAAQh0D,EAAIA,EAAEg0D,aAAU,IAC9F71E,EAAI,SAAU6hB,EAAG1D,GAClB,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAChB,GAAI,MAAQme,IAAMA,EAAI,IAAK0D,EAAEpW,SAAW0S,EAAE1S,OAAQ,OAAO,EAEzD,IAAKzL,GAAI,EAAI6K,EAAImK,EAAI,EAAGikC,EAAIp3B,EAAEpW,OAAQwtC,EAAIjkC,EAAGnK,IAAMmK,EAAGiN,EAAIJ,EAAEhX,GAAI7K,IAAMiiB,EAAEqsD,UAAUnwD,EAAEtT,MAAQ7K,GAAI,GAEhG,OAAOA,GACN6K,EAAEhG,UAAU2pE,sBAAwB,WACrC,IAAI3sD,EACJ,MAAO,CACLg0D,QAAS,IAAM,WACb,IAAI13D,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAAuBA,EAAI,GAAI96B,EAAI,EAAGnJ,GAAjCnK,EAAIpH,KAAKoyE,SAA8BpqE,OAAQuJ,EAAImJ,EAAGA,IAAK0D,EAAIhX,EAAEsT,GAAI86B,EAAExnC,KAAKoQ,EAAE0sD,WAEnF,OAAOt1B,GACPz1C,KAAKC,MAAMoW,KAAK,MAAQ,MAE3BuI,EAAI,SAAUP,GACf,OAAOA,EAAE,IACRI,EAAI,SAAUJ,GACf,OAAOA,EAAE,IACRhX,EA3IiC,CA4IpCsT,EAAEla,SACJT,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAE67E,KAAO,SAAUhlF,GACjB,SAASnK,EAAEgX,GACT,IAAI7M,EACJ,MAAQ6M,IAAMA,EAAI,IAAKhX,EAAEqjE,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAKg0F,UAAY,IAAIt5E,EAAEu6E,eAAe,WAC3G,IAAIv6E,EAAGtT,EAAGouC,EAEV,IAAKA,EAAI,GAAI96B,EAAI,EAAGtT,EAAIgX,EAAEpW,OAAQZ,EAAIsT,EAAGA,KAAKnJ,EAAI6M,EAAE1D,IAAMw3D,WAAa18B,EAAExnC,KAAKuD,GAE9E,OAAOikC,EALoG,IAS/G,OAAOp3B,EAAEhX,EAAGmK,GAAInK,EAAEovF,gCAAkC,SAAUp4E,EAAG7M,GAE/D,OAAwC,IAAIvR,KAAK,CAAtC,IAAI0a,EAAE+5E,gBAAgBr2E,EAAG7M,MACnCnK,EAAEqvF,4BAA8B,SAAUr4E,EAAG7M,GAE9C,OAAoC,IAAIvR,KAAK,CAAlC,IAAI0a,EAAEo6E,YAAY12E,EAAG7M,MAC/BnK,EAAEujE,SAAW,SAAUvsD,GACxB,IAAI7M,EACJ,OAMK,IAAIvR,KANE,WACT,IAAIoH,EAAGouC,EAAGh3B,EAEV,IAAKA,EAAI,GAAIpX,EAAI,EAAGouC,EAAIp3B,EAAEpW,OAAQwtC,EAAIpuC,EAAGA,IAAKmK,EAAI6M,EAAEhX,GAAIoX,EAAExQ,KAAK0M,EAAE84E,MAAM7oB,SAASp5D,IAEhF,OAAOiN,EALE,KAOVpX,EAAEhG,UAAUq/E,KAAO,WACpB,OAAOzgF,KAAK02F,kBAAkB12F,KAAKg0F,YAClC5sF,EAAEhG,UAAUs1F,kBAAoB,SAAUt4E,GAC3C,OAAO,IAAIpe,KAAK2Z,YAAYyE,EAAE83E,cAAcjkB,YAC3C7qE,EAAEhG,UAAUu1F,mBAAqB,SAAUv4E,GAC5C,IAAI1D,EAAGnJ,EACP,OAAOA,EAAI,WACT,IAAIA,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAEhB,IAA2BA,EAAI,GAAIgV,EAAI,EAAGnK,GAArCouC,EAAIx1C,KAAK8sF,aAAkC9kF,OAAQZ,EAAImK,EAAGA,IAAKmJ,EAAI86B,EAAEjkC,GAAIhV,EAAEyR,KAAK,OAASwQ,EAAIJ,EAAE4xB,KAAKt1B,IAAM8D,EAAI9D,GAEnH,OAAOne,GACPwD,KAAKC,MAAO,IAAIA,KAAK2Z,YAAYpI,IAClCnK,EAAEhG,UAAUw1F,WAAa,SAAUx4E,GACpC,OAAOpe,KAAK62F,qBAAqBz4E,EAAGpe,KAAKu0F,cACxCntF,EAAEhG,UAAUy1F,qBAAuB,SAAUz4E,EAAG1D,GACjD,OAAO1a,KAAK02F,kBAAkB12F,KAAKg0F,UAAUqB,+BAA+Bj3E,EAAE41E,UAAWt5E,KACxFtT,EAAEhG,UAAU01F,kBAAoB,SAAU14E,GAC3C,OAAOpe,KAAK02F,kBAAkB12F,KAAKg0F,UAAU8B,qBAAqB13E,KACjEhX,EAAEhG,UAAU21F,mBAAqB,SAAU34E,EAAG1D,GAC/C,OAAO1a,KAAK82F,kBAAkBp8E,GAAGm8E,qBAAqBz4E,EAAG1D,EAAE,KAC1DtT,EAAEhG,UAAU41F,4BAA8B,SAAU54E,EAAG1D,GACxD,IAAInJ,EAAGnK,EACP,KAAMgX,EAAE,IAAM1D,GAAKA,GAAK0D,EAAE,IAAK,OAAmC7M,GAA5BnK,EAAIpH,KAAKi3F,eAAe74E,IAAUm2E,YAAan2E,EAAE,GAAK1D,IAAMA,GAAKnJ,GAAIvR,KAAK82F,kBAAkB14E,GAAGy4E,qBAAqBzvF,EAAGsT,IAC5JtT,EAAEhG,UAAU81F,oBAAsB,SAAU94E,EAAG1D,EAAGnJ,GACnD,IAAInK,EACJ,OAAOA,EAAI,IAAMgX,GAAK1D,EAAG1a,KAAKm3F,qBAAqB/vF,EAAGmK,IACrDnK,EAAEhG,UAAU+1F,qBAAuB,SAAU/4E,EAAG1D,GACjD,OAAO1a,KAAK02F,kBAAkB12F,KAAKg0F,UAAU+B,wBAAwBr7E,GAAG,SAAUA,GAChF,OAAOA,EAAEk5E,6BAA6Bx1E,QAEvChX,EAAEhG,UAAUg2F,uBAAyB,SAAUh5E,EAAG1D,GACnD,OAAO1a,KAAK02F,kBAAkB12F,KAAKg0F,UAAU+B,wBAAwBr7E,GAAG,SAAUA,GAChF,OAAOA,EAAEm5E,qBAAqBz1E,QAE/BhX,EAAEhG,UAAUi2F,qBAAuB,SAAUj5E,EAAG1D,GACjD,OAAO1a,KAAK02F,kBAAkB12F,KAAKg0F,UAAU+B,wBAAwBr7E,GAAG,SAAUA,GAChF,OAAOA,EAAEg5E,mBAAmBt1E,QAE7BhX,EAAEhG,UAAUk2F,wBAA0B,SAAUl5E,GACjD,IAAI1D,EAAGnJ,EACP,OAAO,OAASmJ,EAAI,OAASnJ,EAAIvR,KAAKg0F,UAAUgC,oBAAoB53E,IAAM7M,EAAE66E,qBAAkB,GAAU1xE,EAAI,IAC3GtT,EAAEhG,UAAU2yF,oBAAsB,WACnC,IAAI31E,EAAG7M,EACP,OAAO6M,EAAI,WACT,IAAIA,EAAG1D,EAAGtT,EAAGouC,EAEb,IAAmCA,EAAI,GAAIp3B,EAAI,EAAG1D,GAA7CtT,EAAIpH,KAAKg0F,UAAU/hB,WAAgCjqE,OAAQ0S,EAAI0D,EAAGA,IAAK7M,EAAInK,EAAEgX,GAAIo3B,EAAExnC,KAAKuD,EAAE66E,iBAE/F,OAAO52C,GACPz1C,KAAKC,MAAO0a,EAAEk3D,KAAKC,8BAA8BzzD,GAAGzI,YACrDvO,EAAEhG,UAAUm2F,2BAA6B,SAAUn5E,GACpD,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKi3F,eAAe74E,GAAG21E,uBAAyBr5E,EAAI,IACvEtT,EAAEhG,UAAUo2F,qCAAuC,SAAUp5E,EAAG1D,GACjE,IAAInJ,EAAGnK,EAAGouC,EAEV,IAAKjkC,EAAIikC,EAAI96B,EAAGtT,EAAIpH,KAAKu0F,YAAahjF,EAAI,GAAKvR,KAAKu3F,2BAA2B,CAAChmF,EAAI,EAAGikC,IAAIp3B,IAAK7M,IAEhG,KAAOnK,EAAIouC,GAAKx1C,KAAKu3F,2BAA2B,CAAC78E,EAAG86B,EAAI,IAAIp3B,IAAKo3B,IAEjE,MAAO,CAACjkC,EAAGikC,IACVpuC,EAAEhG,UAAU61F,eAAiB,SAAU74E,GACxC,OAAOpe,KAAK02F,kBAAkB12F,KAAKg0F,UAAU2B,yBAAyBv3E,KACrEhX,EAAEhG,UAAUq2F,iBAAmB,SAAUr5E,GAC1C,OAAOpe,KAAKg0F,UAAU2B,yBAAyBv3E,GAAGtF,YACjD1R,EAAEhG,UAAUs2F,oBAAsB,SAAUt5E,GAC7C,OAAOpe,KAAKy3F,iBAAiB,CAACr5E,EAAGA,EAAI,KACpChX,EAAEhG,UAAUu2F,iBAAmB,SAAUv5E,GAC1C,OAAOpe,KAAKy3F,iBAAiB,CAAC,EAAGr5E,EAAEpW,WAAaoW,GAC/ChX,EAAEhG,UAAUw2F,eAAiB,SAAUx5E,GACxC,IAAI1D,EACJ,OAAOA,EAAI1a,KAAKu0F,YAAav0F,KAAKy3F,iBAAiB,CAAC/8E,EAAI0D,EAAEpW,OAAQ0S,MAAQ0D,GACzEhX,EAAEhG,UAAUy2F,oBAAsB,WACnC,IAAIz5E,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAmCA,EAAI,GAAIp3B,EAAI,EAAG1D,GAA7CtT,EAAIpH,KAAKg0F,UAAU/hB,WAAgCjqE,OAAQ0S,EAAI0D,EAAGA,IAAe,OAAV7M,EAAInK,EAAEgX,IAAcq3D,YAAcjgC,EAAExnC,KAAKuD,GAErH,OAAOikC,GACNpuC,EAAEhG,UAAU02F,eAAiB,WAC9B,IAAI15E,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAqCA,EAAI,GAAIp3B,EAAI,EAAG1D,GAA/CtT,EAAIpH,KAAK63F,uBAA4C7vF,OAAQ0S,EAAI0D,EAAGA,IAAK7M,EAAInK,EAAEgX,GAAIo3B,EAAExnC,KAAKuD,EAAEkkE,YAEjG,OAAOjgC,GACNpuC,EAAEhG,UAAU22F,6BAA+B,SAAU35E,GACtD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAEnB,IAAKi5C,EAAI,EAAiC96B,EAAI,EAAGnJ,GAArCiN,EAAIxe,KAAKg0F,UAAU/hB,WAAwBjqE,OAAQuJ,EAAImJ,EAAGA,IAAK,CACzE,IAAe,OAASne,GAApB6K,EAAIoX,EAAE9D,IAAoB+6D,YAAcl5E,EAAE64C,QAAK,KAAYh3B,EAAG,MAAO,CACvEq3D,WAAYruE,EAAEquE,WACdjzD,SAAUgzB,GAEZA,GAAKpuC,EAAEY,OAGT,MAAO,CACLytE,WAAY,KACZjzD,SAAU,OAEXpb,EAAEhG,UAAU0uF,kBAAoB,SAAU1xE,GAC3C,IAAI1D,EAAMtT,EACV,OAAiDsT,GAA1CtT,EAAIpH,KAAK+3F,6BAA6B35E,IAAUq3D,WAAgBruE,EAAEob,SAAU9H,GAClFtT,EAAEhG,UAAU42F,qBAAuB,SAAU55E,GAC9C,IAAI1D,EAAGnJ,EACP,OAAoD6M,GAA7C7M,EAAIvR,KAAK+3F,6BAA6B35E,EAAEg3B,KAAWqgC,WAAY/6D,EAAInJ,EAAEiR,SAAU,MAAQpE,EAAI,CAAC1D,EAAGA,EAAI,QAAK,GAC9GtT,EAAEhG,UAAUsuF,8BAAgC,SAAUtxE,EAAG1D,GAC1D,IAAInJ,EACJ,OAAQA,EAAIvR,KAAKg4F,qBAAqBt9E,IAAM1a,KAAKm3F,qBAAqB/4E,EAAG7M,GAAKvR,MAC7EoH,EAAEhG,UAAUmzF,UAAY,WACzB,OAAOv0F,KAAKg0F,UAAUqC,kBACrBjvF,EAAEhG,UAAU8wE,QAAU,WACvB,OAAO,IAAMlyE,KAAKu0F,aACjBntF,EAAEhG,UAAUypE,UAAY,SAAUzsD,GACnC,IAAI1D,EACJ,OAAOtT,EAAEqjE,UAAUI,UAAUhnE,MAAM7D,KAAM8D,aAAe,MAAQsa,GAAK,OAAS1D,EAAI0D,EAAE41E,WAAat5E,EAAEmwD,UAAU7qE,KAAKg0F,gBAAa,IAC9H5sF,EAAEhG,UAAUizF,aAAe,WAC5B,OAAO,IAAMr0F,KAAKu0F,aAAev0F,KAAKg0F,UAAU0B,iBAAiB,GAAGrB,gBACnEjtF,EAAEhG,UAAU8yF,UAAY,SAAU91E,GACnC,OAAOpe,KAAKg0F,UAAUkB,WAAW92E,IAChChX,EAAEhG,UAAU0rF,UAAY,WACzB,OAAO9sF,KAAKg0F,UAAU/hB,WACrB7qE,EAAEhG,UAAU62F,mBAAqB,SAAU75E,GAC5C,OAAOpe,KAAKg0F,UAAUgC,oBAAoB53E,IACzChX,EAAEhG,UAAU2pE,sBAAwB,WACrC,MAAO,CACLipB,UAAWh0F,KAAKg0F,UAAUlpB,YAE3B1jE,EAAEhG,UAAU82F,mBAAqB,WAClC,IAAI95E,EACJ,OAAOA,EAAIpe,KAAKg0F,UAAU6B,sBAAqB,SAAUz3E,GACvD,OAAOA,EAAEk2E,oBACPt0F,KAAK02F,kBAAkBt4E,IAC1BhX,EAAEhG,UAAU0X,SAAW,WACxB,OAAO9Y,KAAKg0F,UAAUl7E,YACrB1R,EAAEhG,UAAUuc,OAAS,WACtB,OAAO3d,KAAKg0F,UAAUr2E,UACrBvW,EAAEhG,UAAUyzF,UAAY,WACzB,IAAIz2E,EACJ,OAAO+b,KAAKtf,UAAU,WACpB,IAAIH,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAAmCA,EAAI,GAAI96B,EAAI,EAAGnJ,GAA7CnK,EAAIpH,KAAKg0F,UAAU/hB,WAAgCjqE,OAAQuJ,EAAImJ,EAAGA,IAAK0D,EAAIhX,EAAEsT,GAAI86B,EAAExnC,KAAKmsB,KAAKjf,MAAMkD,EAAEy2E,cAE1G,OAAOr/C,GACPz1C,KAAKC,QACNoH,EAAEhG,UAAUqwE,aAAe,WAC5B,OAAO/2D,EAAE+2D,aAAazxE,KAAK8Y,aAC1B1R,EAAEhG,UAAUisF,MAAQ,WACrB,MAAO,QAAUrtF,KAAKyxE,gBACrBrqE,EAjLI,CAkLPsT,EAAEla,SACJT,KAAKC,MAAO,WACZ,IAAIoe,EAEAhX,EACAouC,EACAh3B,EACAjiB,EAAI,SAAU6hB,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAGiE,EAAE5e,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFO,EAAI,GAAGpE,eACPuN,EAAI,GAAGngB,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAENuO,EAAI,GAAGrhB,MAEXwW,EAAI1D,EAAEuxD,eAAgBztD,EAAI9D,EAAEyxD,YAAa/kE,EAAIsT,EAAE8xD,eAAoB9xD,EAAE6xD,uBAAwB/2B,EAAI96B,EAAEkyD,sBAAuBlyD,EAAEy9E,MAAQ,SAAU5mF,GAC5I,SAASoN,EAAEP,EAAG7M,GACZ,MAAQ6M,IAAMA,EAAI,IAAI1D,EAAE67E,MAAS,MAAQhlF,IAAMA,EAAI,IAAKoN,EAAE8rD,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY9D,KAAK+7C,KAAOp/C,EAAEyhB,GAAIpe,KAAKqwC,WAAa9+B,EAG9I,IAAIsW,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EAAG4sD,EAAG3mE,EAAGmxC,EAAG3wC,EAC5B,OAAOV,EAAEoiB,EAAGpN,GAAIoN,EAAEgsD,SAAW,SAAUvsD,GAErC,OAAoC,IAAIpe,KAA7B0a,EAAE67E,KAAK5rB,SAASvsD,EAAE29B,MAAmB39B,EAAEiyB,aACjD1xB,EAAEvd,UAAU8wE,QAAU,WACvB,OAAOlyE,KAAK+7C,KAAKs4C,gBAChB11E,EAAEvd,UAAUypE,UAAY,SAAUnwD,GACnC,OAAOiE,EAAE8rD,UAAUI,UAAUhnE,MAAM7D,KAAM8D,YAAc9D,KAAK+7C,KAAK8uB,UAAU,MAAQnwD,EAAIA,EAAEqhC,UAAO,IAAW39B,EAAEpe,KAAKqwC,WAAY,MAAQ31B,EAAIA,EAAE21B,gBAAa,IACxJ1xB,EAAEvd,UAAUg3F,aAAe,SAAUh6E,GACtC,OAAO,IAAIpe,KAAK2Z,YAAYyE,EAAGpe,KAAKqwC,aACnC1xB,EAAEvd,UAAUi3F,gBAAkB,WAC/B,OAAOr4F,KAAKo4F,aAAa,OACxBz5E,EAAEvd,UAAUsyF,mBAAqB,SAAUt1E,GAC5C,OAAO,IAAIpe,KAAK2Z,YAAY3Z,KAAK+7C,KAAM39B,IACtCO,EAAEvd,UAAUk3F,sBAAwB,WACrC,OAAOt4F,KAAK0zF,mBAAmB,OAC9B/0E,EAAEvd,UAAUu1F,mBAAqB,SAAUv4E,GAC5C,IAAI1D,EACJ,OAAO1a,KAAKo4F,cAAc19E,EAAI0D,EAAE4xB,KAAKhwC,KAAK+7C,OAASrhC,EAAI1a,KAAK+7C,KAAK46C,mBAAmBv4E,KACnFO,EAAEvd,UAAUm3F,aAAe,SAAUn6E,GACtC,IAAI1D,EACJ,OAAOA,EAAI1a,KAAKqwC,WAAW15B,OAAO9Z,EAAEuhB,IAAKpe,KAAK0zF,mBAAmBh5E,IAChEiE,EAAEvd,UAAUuC,gBAAkB,SAAUya,GACzC,IAAI1D,EAAGnJ,EACP,OAAOA,EAAInK,EAAEgX,GAAGyuD,cAAenyD,EAAI0oD,EAAEA,EAAEpjE,KAAKqwC,WAAYjyB,GAAI7M,GAAIvR,KAAK0zF,mBAAmBh5E,IACvFiE,EAAEvd,UAAUo3F,oBAAsB,WACnC,OAAOx4F,KAAK2D,gBAAgB3D,KAAKmtF,qBAChCxuE,EAAEvd,UAAU+rF,iBAAmB,WAChC,OAAO32E,EAAExW,KAAKqwC,aACb1xB,EAAEvd,UAAUgrF,cAAgB,WAC7B,OAAOpsF,KAAKqwC,WAAWzoC,MAAM,IAC5B+W,EAAEvd,UAAUq3F,kBAAoB,WACjC,OAAOz4F,KAAKqwC,WAAWroC,QACtB2W,EAAEvd,UAAUs3F,oBAAsB,SAAUt6E,GAC7C,OAAOpe,KAAKqwC,WAAWjyB,EAAI,IAC1BO,EAAEvd,UAAU2rF,aAAe,SAAU3uE,GACtC,OAAO0J,EAAE/nB,KAAKC,KAAKqwC,WAAYjyB,IAAM,GACpCO,EAAEvd,UAAUu3F,cAAgB,WAC7B,OAAO34F,KAAKy4F,oBAAsB,GACjC95E,EAAEvd,UAAUw3F,yBAA2B,WACxC,OAAOpiF,EAAExW,KAAK64F,0BACbl6E,EAAEvd,UAAUy3F,sBAAwB,WACrC,IAAIz6E,EAAG1D,EAAGnJ,EAAGikC,EAAGh3B,EAEhB,IAA0BA,EAAI,GAAI9D,EAAI,EAAGnJ,GAApCikC,EAAIx1C,KAAKqwC,YAAiCroC,OAAQuJ,EAAImJ,EAAGA,IAAK0D,EAAIo3B,EAAE96B,GAAItT,EAAEgX,GAAG+3D,UAAY33D,EAAExQ,KAAKoQ,GAErG,OAAOI,GACNG,EAAEvd,UAAU03F,gBAAkB,WAC/B,OAAO94F,KAAK64F,wBAAwB7wF,QACnC2W,EAAEvd,UAAUghF,qBAAuB,WACpC,IAAIhkE,EACJ,OAAQA,EAAIpe,KAAK44F,4BAA8B54F,KAAK2D,gBAAgBya,GAAKpe,MACxE2e,EAAEvd,UAAU0gF,qBAAuB,WACpC,IAAI1jE,EAAG1D,EAAGnJ,EACV,OAAQ6M,EAAIpe,KAAK44F,6BAA+BrnF,EAAIvR,KAAKqwC,WAAW0oD,YAAY36E,GAAI1D,EAAI8D,EAAE3a,MAAM,KAAM,CAAC7D,KAAKqwC,WAAY9+B,EAAI,EAAG,GAAGoF,OAAOsS,EAAElpB,KAAKlD,EAAEuhB,MAAOpe,KAAK0zF,mBAAmBh5E,IAAM1a,MACtL2e,EAAEvd,UAAU43F,sBAAwB,WACrC,IAAI56E,EAAG1D,EAAGnJ,EAAGikC,EAAGh3B,EAEhB,IAA0BA,EAAI,GAAI9D,EAAI,EAAGnJ,GAApCikC,EAAIx1C,KAAKqwC,YAAiCroC,OAAQuJ,EAAImJ,EAAGA,IAAK0D,EAAIo3B,EAAE96B,GAAItT,EAAEgX,GAAGyuD,eAAiBruD,EAAExQ,KAAKoQ,GAE1G,OAAOI,GACNG,EAAEvd,UAAU63F,WAAa,WAC1B,IAAI76E,EACJ,OAAO,OAASA,EAAIhX,EAAEpH,KAAKmtF,qBAAuB/uE,EAAEyuD,mBAAgB,GACnEluD,EAAEvd,UAAU83F,gBAAkB,WAC/B,IAAI96E,EACJ,OAAO,OAASA,EAAIhX,EAAEpH,KAAKmtF,qBAAuB/uE,EAAEg4D,cAAW,GAC9Dz3D,EAAEvd,UAAU+3F,eAAiB,WAC9B,IAAI/6E,EACJ,OAAO,OAASA,EAAIhX,EAAEpH,KAAKmtF,qBAAuB/uE,EAAEi4D,mBAAgB,GACnE13D,EAAEvd,UAAUg4F,qCAAuC,SAAUh7E,EAAG1D,GACjE,IAAInJ,EAAGnK,EACP,OAAOA,EAAIpH,KAAK8Y,YAQV,KARsBvH,EAAI,WAC9B,OAAQ6M,GACN,IAAK,UACH,OAAOhX,EAAEO,QAAQ,KAAM+S,GAEzB,IAAK,WACH,OAAOtT,EAAEQ,MAAM,EAAG8S,GAAGq+E,YAAY,OANP,IAQhBxnF,OAAI,GACnBoN,EAAEvd,UAAU2pE,sBAAwB,WACrC,MAAO,CACLhvB,KAAM/7C,KAAK+7C,KAAK+uB,UAChBz6B,WAAYrwC,KAAKqwC,aAElB1xB,EAAEvd,UAAU0X,SAAW,WACxB,OAAO9Y,KAAK+7C,KAAKjjC,YAChB6F,EAAEvd,UAAUuc,OAAS,WACtB,MAAO,CACLo+B,KAAM/7C,KAAK+7C,KACX1L,WAAYrwC,KAAKqwC,aAElB1xB,EAAEvd,UAAUqwE,aAAe,WAC5B,OAAOzxE,KAAK+7C,KAAK01B,gBAChB9yD,EAAEvd,UAAUisF,MAAQ,WACrB,OAAOrtF,KAAK+7C,KAAKsxC,SAChB1uE,EAAEvd,UAAUmzF,UAAY,WACzB,OAAOv0F,KAAK+7C,KAAKw4C,aAChB51E,EAAEvd,UAAUozF,sBAAwB,SAAUp2E,GAC/C,OAAQpe,KAAK24F,kBAAoBv6E,EAAEu6E,iBAAmB34F,KAAKyxE,iBAAmBrzD,EAAEqzD,gBAC/E9yD,EAAEvd,UAAU2zF,gBAAkB,SAAU32E,GACzC,IAAI7M,EAAGnK,EACP,OAAOmK,EAAImJ,EAAE67E,KAAKE,4BAA4B,MAAOrvF,EAAIpH,KAAKq5F,2BAA2BzC,WAAWrlF,GAAIvR,KAAKo4F,aAAahxF,EAAEwvF,WAAWx4E,EAAE29B,QACxIp9B,EAAEvd,UAAU4zF,cAAgB,SAAU52E,GACvC,IAAI1D,EAAGnJ,EACP,OAAO,IAAM6M,GAAK1D,EAAI,KAAMnJ,EAAIvR,MAAQoe,IAAMpe,KAAKu0F,aAAe75E,EAAI1a,KAAMuR,EAAI,OAASmJ,EAAI1a,KAAKo4F,aAAap4F,KAAK+7C,KAAKk7C,eAAe,CAAC,EAAG74E,KAAM7M,EAAIvR,KAAKo4F,aAAap4F,KAAK+7C,KAAKk7C,eAAe,CAAC74E,EAAGpe,KAAKu0F,gBAAiB,CAAC75E,EAAGnJ,IAC9NoN,EAAEvd,UAAUksF,sBAAwB,WACrC,OAAOttF,KAAK+7C,KAAKw4C,YAAc,GAC9B51E,EAAEvd,UAAUi4F,yBAA2B,WACxC,OAAO58F,EAAEuD,KAAK+7C,MAAQ/7C,KAAK+7C,KAAKk7C,eAAe,CAAC,EAAGj3F,KAAKstF,0BAA4BttF,KAAK+7C,KAAK0kC,QAC7F9hE,EAAEvd,UAAUoxE,aAAe,SAAUp0D,GACtC,OAAOpe,KAAKqwC,WAAWjyB,IACtBO,EAAEvd,UAAUqxE,iBAAmB,SAAUr0D,EAAG1D,GAC7C,IAAInJ,EAAGiN,EAAGjiB,EAAGoiB,EACb,OAA8BH,GAAvBjiB,EAAI6hB,EAAEguE,iBAAuB1xE,MAAInJ,EAAIvR,KAAKqwC,WAAW31B,MAAY8D,IAAoB,IAAfpX,EAAEmK,GAAG+kE,QAAiB33D,EAAIpiB,EAAEme,EAAI,GAAIoN,EAAE/nB,KAAKy1C,IAAK72B,GAAK,IAAM3e,KAAKyxE,iBAAmBrzD,EAAEqzD,iBAAmBrzD,EAAE8zD,YACtLv1E,EAAI,SAAUyhB,GACf,OAAOA,EAAInhB,EAAEmhB,GAAQyJ,EAAEzJ,IACtBnhB,EAAI,SAAUmhB,GACf,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EACnB,OAAOH,GAAI,EAAIG,EAAIP,EAAE0uE,YAAa1lF,EAAI,GAAKuX,EAAE3W,OAASihB,EAAElpB,KAAK4e,EAAG,EAAGpN,EAAIoN,EAAE3W,OAAS,IAAMuJ,EAAI,EAAG,IAAiB,OAAZikC,EAAI72B,EAAEpN,MAAkB6M,GAAKhX,EAAI,WACnI,IAAIgX,EAAG1D,EAAGnJ,EAEV,IAAKA,EAAI,GAAI6M,EAAI,EAAG1D,EAAItT,EAAEY,OAAQ0S,EAAI0D,EAAGA,KAAK7hB,EAAI6K,EAAEgX,IAAMi2E,gBAAkB71E,GAAI,EAAIjN,EAAEvD,KAAK4/B,EAAErxC,KAAOgV,EAAEvD,KAAKzR,GAE3G,OAAOgV,EAL4H,GAMhIiN,EAAI,IAAI9D,EAAE67E,KAAKttE,EAAElpB,KAAKqH,GAAGuP,OAAO,CAAC6+B,KAAOp3B,IAC5CC,EAAI3D,EAAE67E,KAAKE,4BAA4B,KAAM,CAC9C6C,YAAY,IACVzxE,EAAI,SAAUzJ,GAChB,OAAO3hB,EAAE2hB,GAAKA,EAAIA,EAAEw4E,WAAWv4E,IAC9B5hB,EAAI,SAAU2hB,GACf,IAAO7M,EACP,OAA0B,KAAnBA,EAAI6M,EAAEm2E,cAAiCn2E,EAAE64E,eAAe,CAAC1lF,EAAI,EAAGA,IAAO8iF,gBAC7EzmD,EAAI,SAAUxvB,GACf,OAAOA,EAAEy1E,qBAAqB,eAC7Bh3F,EAAI,SAAUuhB,GACf,IAAI1D,EACJ,OAA+B,OAAxBA,EAAItT,EAAEgX,GAAGyuD,eAA2B,CAACnyD,EAAG0D,GAAK,CAACA,IACpD5H,EAAI,SAAU4H,GACf,OAAOA,EAAExW,OAAO,GAAG,IAClBw7D,EAAI,SAAUhlD,EAAG1D,GAClB,IAAInJ,EACJ,OAA8B,KAAvBA,EAAI6M,EAAE26E,YAAYr+E,IAAe0D,EAAII,EAAEJ,EAAG7M,EAAG,IACnDoN,EArJ+H,CAsJlIjE,EAAEla,SACJT,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EAAI,SAAUp3B,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG8D,EAAEze,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFI,EAAI,GAAGjE,eACPhe,EAAI,GAAGoL,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAENiE,EAAI,GAAG/W,MAEX2J,EAAImJ,EAAEi0D,QAASvnE,EAAIsT,EAAEuzD,SAAU7vD,EAAI1D,EAAEg1D,wBAAyBh1D,EAAE6+E,cAAgB,SAAU/6E,GACxF,SAASsJ,EAAE1J,EAAG1D,GACZ,IAAInJ,EACJA,EAAI,MAAQmJ,EAAIA,EAAI,GAAI1a,KAAKw5F,kBAAoBjoF,EAAEioF,kBAAmBx5F,KAAKy5F,mBAAqBloF,EAAEkoF,mBAAoB,MAAQz5F,KAAKw5F,oBAAsBx5F,KAAKw5F,kBAAoBvwE,GAAI,MAAQjpB,KAAKy5F,qBAAuBz5F,KAAKy5F,mBAAqB5xE,GAAI7nB,KAAK6vB,KAAOlzB,EAAEyhB,GAGxQ,IAAI6K,EAAGpB,EAAGlrB,EAAG0hB,EACb,OAAOm3B,EAAE1tB,EAAGtJ,GAAIyK,EAAI,oCAAoChuB,MAAM,KAAM4sB,EAAI,cAAc5sB,MAAM,KAAM6sB,EAAE4xE,SAAW,SAAUt7E,EAAG1D,GAC1H,IAAInJ,EACJ,OAAOA,EAAI,IAAIvR,KAAKoe,EAAG1D,IAAMg/E,WAAYnoF,GACxCuW,EAAE1mB,UAAUs4F,SAAW,WACxB,OAAO15F,KAAK25F,mBAAoB35F,KAAK45F,+BACpC9xE,EAAE1mB,UAAUy4F,QAAU,WACvB,OAAO75F,KAAK6vB,KAAKnsB,WAChBokB,EAAE1mB,UAAU04F,QAAU,WACvB,OAAO95F,KAAK6vB,MACX/H,EAAE1mB,UAAUu4F,iBAAmB,WAChC,IAAIv7E,EAAG7M,EAAGikC,EAAGh3B,EAAGjiB,EAEhB,IAAKA,EAAI6K,EAAEpH,KAAK6vB,MAAOrR,EAAI,GAAIjiB,EAAEw9F,YAAa,OAAQvkD,EAAIj5C,EAAEy9F,YAAaxkD,EAAEvjB,UACzE,KAAKuO,KAAK+lC,aACRloD,EAAEm3B,GAAKh3B,EAAExQ,KAAKwnC,GAAKx1C,KAAKi6F,gBAAgBzkD,GACxC,MAEF,KAAKhV,KAAK8uC,aACR9wD,EAAExQ,KAAKwnC,GAGX,IAAKp3B,EAAI,EAAG7M,EAAIiN,EAAExW,OAAQuJ,EAAI6M,EAAGA,IAAKo3B,EAAIh3B,EAAEJ,GAAI1D,EAAEszD,WAAWx4B,GAE7D,OAAOx1C,KAAK6vB,MACX/H,EAAE1mB,UAAU64F,gBAAkB,SAAU77E,GACzC,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAAKJ,EAAE2uE,aAAa,UAAYv3C,EAAIp3B,EAAEsjB,SAAUnlC,EAAEwD,KAAKC,KAAKy5F,mBAAoBjkD,IAAM,GAAKp3B,EAAEza,gBAAgB,SAAoC+W,EAAI,EAAGnJ,GAAjCiN,EAAIG,EAAE5e,KAAKqe,EAAEiyB,aAA0BroC,OAAQuJ,EAAImJ,EAAGA,IAAKtT,EAAIoX,EAAE9D,GAAGmD,KAAMthB,EAAEwD,KAAKC,KAAKw5F,kBAAmBpyF,IAAM,GAAK,IAAMA,EAAEO,QAAQ,cAAgByW,EAAEza,gBAAgByD,GAE7R,OAAOgX,GACN0J,EAAE1mB,UAAUw4F,4BAA8B,WAC3C,IAAIx7E,EAAG1D,EAAGtT,EAAGouC,EAAGh3B,EAEhB,IAAsDJ,EAAI,EAAG1D,GAAxD8D,EAAIG,EAAE5e,KAAKC,KAAK6vB,KAAKhgB,iBAAiB,WAAwB7H,OAAQ0S,EAAI0D,EAAGA,KAAgBo3B,GAAXpuC,EAAIoX,EAAEJ,IAAW2+B,yBAA2B,OAASxrC,EAAEikC,IAAMA,EAAE5vB,YAAYxe,GAElK,OAAOpH,KAAK6vB,MACXxR,EAAI,SAAU3D,GACf,OAAQ,MAAQA,EAAIA,EAAEuX,cAAW,KAAYuO,KAAK+lC,cAAgBnoD,EAAE1D,QAAK,EAAS,WAAanJ,EAAEmJ,IAAM,UAAYA,EAAErX,aAAa,wBACjI1G,EAAI,SAAUyhB,GACf,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAAK,MAAQJ,IAAMA,EAAI,IAAKA,EAAIA,EAAEtgB,QAAQ,sBAAuB,YAAY4c,EAAItD,SAAS8iF,eAAeC,mBAAmB,KAAOrtB,gBAAgBppE,UAAY0a,EAAyChX,EAAI,EAAGouC,GAA7Ch3B,EAAI9D,EAAE8iB,KAAK3tB,iBAAiB,UAAuB7H,OAAQwtC,EAAIpuC,EAAGA,IAAKmK,EAAIiN,EAAEpX,GAAIsT,EAAEmV,KAAKjK,YAAYrU,GAEtQ,OAAOmJ,EAAEmV,MACR/H,EAnD2E,CAoD9EpN,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EACAoiB,EACAmJ,EACAmB,EACApB,EACAlrB,EACA0hB,EAAI,SAAUD,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG7d,EAAEkD,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFvhB,EAAI,GAAG0d,eACP/D,EAAI,GAAG7O,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGV0D,EAAI1D,EAAEuxD,eAAgB1vE,EAAIme,EAAEk0D,YAAa/mD,EAAInN,EAAEi0D,QAASnwD,EAAI9D,EAAEq0D,iBAAkBpyE,EAAI+d,EAAEuzD,SAAUz4B,EAAI96B,EAAE2yD,2BAA4BjmE,EAAIsT,EAAEizD,oBAAqBhvD,EAAIjE,EAAEg1D,wBAAyB5nD,EAAIpN,EAAE2wD,gBAAiB95D,EAAImJ,EAAE6wD,2BAA4BtiD,EAAIvO,EAAE8wD,0BAA2B9wD,EAAE0/E,WAAa,SAAUv9F,GAC7S,SAASumE,EAAEhlD,EAAG1D,GACZ1a,KAAKo3C,KAAOh5B,EAAGpe,KAAKq6F,kBAAoB,MAAQ3/E,EAAIA,EAAI,IAAI2/E,iBAAkBr6F,KAAKs6F,OAAS,GAAIt6F,KAAKu6F,cAAgB,GAAIv6F,KAAKw6F,kBAAoB,GAGpJ,IAAI/9F,EAAGmxC,EAAG3wC,EAAGK,EAAGwY,EAAG+tD,EAAGnwD,EAAGuB,EAAGoyD,EAAGjyD,EAAGurE,EAAGjiE,EACrC,OAAOL,EAAE+kD,EAAGvmE,GAAIumE,EAAEloD,MAAQ,SAAUkD,EAAG1D,GACrC,IAAInJ,EACJ,OAAOA,EAAI,IAAIvR,KAAKoe,EAAG1D,IAAMQ,QAAS3J,GACrC6xD,EAAEhiE,UAAUmzC,YAAc,WAC3B,OAAO75B,EAAE28D,SAAS1M,SAAS3qE,KAAKs6F,SAC/Bl3B,EAAEhiE,UAAU8Z,MAAQ,WACrB,IAAIkD,EAAG7M,EAEP,IACE,IAAKvR,KAAKy6F,wBAAyBr8E,EAAI1D,EAAE6+E,cAAcG,SAAS15F,KAAKo3C,MAAMyiD,UAAW75F,KAAK06F,iBAAiBh3F,UAAY0a,EAAG7M,EAAI5U,EAAEqD,KAAK06F,iBAAkB,CACtJvsB,YAAal5D,IACX1D,EAAEwoF,YAAa/5F,KAAK26F,YAAYppF,EAAEyoF,aAEtC,OAAOh6F,KAAK46F,yCACZ,QACA56F,KAAK66F,0BAENz3B,EAAEhiE,UAAUq5F,sBAAwB,WACrC,OAAOz6F,KAAKq6F,kBAAoBr6F,KAAK06F,iBAAmB16F,KAAKq6F,iBAAiBthC,WAAU,GAAK/4D,KAAK06F,iBAAiB/2F,gBAAgB,MAAO3D,KAAK06F,iBAAiBj3F,aAAa,qBAAsB,IAAKzD,KAAK06F,iBAAiB/pF,MAAMwc,QAAU,OAAQntB,KAAKq6F,iBAAiBj1E,WAAW8M,aAAalyB,KAAK06F,iBAAkB16F,KAAKq6F,iBAAiBloE,eAAiBnyB,KAAK06F,iBAAmBn+F,EAAE,CAC1XoyE,QAAS,MACTh+D,MAAO,CACLwc,QAAS,UAET/V,SAASyY,KAAKjK,YAAY5lB,KAAK06F,oBAClCt3B,EAAEhiE,UAAUy5F,sBAAwB,WACrC,OAAOngF,EAAEszD,WAAWhuE,KAAK06F,mBACxBzlF,EAAI,SAAUmJ,GACf,MAAO,UAAYyJ,EAAEzJ,GAAKiwD,WAAWysB,cAAgBzsB,WAAW0sB,eAC/D33B,EAAEhiE,UAAUu5F,YAAc,SAAUv8E,GACrC,OAAQA,EAAE6T,UACR,KAAKuO,KAAKqtC,UACR,IAAK7tE,KAAKg7F,wBAAwB58E,GAAI,OAAOpe,KAAKi7F,uBAAuB78E,GAAIpe,KAAKk7F,gBAAgB98E,GAClG,MAEF,KAAKoiB,KAAK+lC,aACR,OAAOvmE,KAAKm7F,sBAAsB/8E,GAAIpe,KAAKo7F,eAAeh9E,KAE7DglD,EAAEhiE,UAAU65F,uBAAyB,SAAUvgF,GAChD,IAAInJ,EAAGnK,EAAGouC,EACV,OAAOpuC,EAAIsT,EAAE0K,cAAkBplB,KAAKq7F,qBAAuBr7F,KAAKs7F,eAAe5gF,EAAE0hC,iBAAmBp8C,KAAKu7F,2BAA2B,MAAQn0F,IAAMpH,KAAK06F,mBAAqB16F,KAAKs7F,eAAel0F,KAAOmK,EAAIvR,KAAKw7F,mBAAmBp0F,GAAIgX,EAAE7M,EAAG,OAASikC,EAAIx1C,KAAKy7F,cAAgBjmD,EAAEnF,gBAAa,SAAW,GAAUrwC,KAAKy7F,aAAez7F,KAAK07F,oCAAoCnqF,EAAGnK,GAAIpH,KAAKq7F,oBAAsBj0F,IAChZg8D,EAAEhiE,UAAU+5F,sBAAwB,SAAUzgF,GAC/C,IAAInJ,EAAGikC,EAAGh3B,EAAGjiB,EAEb,GAAIiiB,EAAIxe,KAAKs7F,eAAe5gF,GAAI86B,EAAIpuC,EAAEpH,KAAKq7F,oBAAqB3gF,GAAI8D,IAAMxe,KAAKs7F,eAAe5gF,EAAEsK,aAC9F,KAAMhlB,KAAKg7F,wBAAwBtgF,EAAEsK,cAAgBhlB,KAAKs7F,eAAe5gF,EAAEwe,sBAAwB3nB,EAAIvR,KAAKw7F,mBAAmB9gF,GAAIA,EAAEsK,YAAa,OAAOwwB,GAAKp3B,EAAE7M,EAAGvR,KAAKy7F,aAAaprD,YAAcrwC,KAAKu7F,2BAA2B,OAASv7F,KAAKy7F,aAAez7F,KAAK07F,oCAAoCnqF,EAAGmJ,GAAI1a,KAAKq7F,oBAAsB3gF,QACtU,GAAI1a,KAAKq7F,sBAAwB7lD,IAAMh3B,EAAG,OAAQjiB,EAAIyD,KAAK27F,uBAAuBjhF,IAAM1a,KAAKm7F,sBAAsB5+F,IAAMyD,KAAKy7F,aAAez7F,KAAK47F,mBAAoB57F,KAAKq7F,oBAAsB,OACvMj4B,EAAEhiE,UAAUu6F,uBAAyB,SAAUv9E,GAChD,IAAI1D,EAEJ,IAAKA,EAAI0D,EAAE2rE,cAAervE,GAAKA,IAAM1a,KAAK06F,kBAAmB,CAC3D,GAAI16F,KAAKs7F,eAAe5gF,IAAMlE,EAAEzW,KAAKC,KAAKu6F,cAAe7/E,IAAM,EAAG,OAAOA,EACzEA,EAAIA,EAAEqvE,cAGR,OAAO,MACN3mB,EAAEhiE,UAAU85F,gBAAkB,SAAU98E,GACzC,IAAI1D,EAAGnJ,EACP,OAAOA,EAAI6M,EAAEhO,KAAMw9B,EAAExvB,EAAEgH,cAAgB7T,EAAI0X,EAAE1X,GAAIovE,EAAE,OAASjmE,EAAI0D,EAAEg+B,iBAAmB1hC,EAAEnX,iBAAc,KAAYgO,EAAIsyD,EAAEtyD,KAAMvR,KAAKu7F,2BAA2BhqF,EAAGvR,KAAK67F,kBAAkBz9E,EAAEgH,cACxLg+C,EAAEhiE,UAAUg6F,eAAiB,SAAUh9E,GACxC,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAChB,GAAIG,EAAEP,GAAI,OAAO1D,EAAIzd,EAAEmhB,GAAI5d,OAAOkW,KAAKgE,GAAG1S,SAAWwtC,EAAIx1C,KAAK67F,kBAAkBz9E,GAAIpe,KAAK87F,+BAA+BphF,EAAG86B,GAAIp3B,EAAE1a,UAAY,IAAK1D,KAAKw6F,kBAAkBxsF,KAAKoQ,GAE9K,OAAQyJ,EAAEzJ,IACR,IAAK,KACH,OAAOpe,KAAK+7F,UAAU39E,IAAMpe,KAAKs7F,eAAel9E,EAAE+T,cAAgBnyB,KAAKu7F,2BAA2B,KAAMv7F,KAAK67F,kBAAkBz9E,IAAKpe,KAAKw6F,kBAAkBxsF,KAAKoQ,GAElK,IAAK,MAMH,IAAK7M,KALLmJ,EAAI,CACFymB,IAAK/iB,EAAE/a,aAAa,OACpBkvF,YAAa,SACZnrF,EAAI0O,EAAEsI,GAEII,EAAIpX,EAAEmK,GAAImJ,EAAEnJ,GAAKiN,EAE9B,OAAOxe,KAAK87F,+BAA+BphF,EAAG1a,KAAK67F,kBAAkBz9E,IAAKpe,KAAKw6F,kBAAkBxsF,KAAKoQ,GAExG,IAAK,KACH,GAAIA,EAAEgH,WAAWJ,aAAe5G,EAAG,OAAOpe,KAAKu7F,2BAA2B,MAC1E,MAEF,IAAK,KACH,GAAIn9E,EAAEgH,WAAWJ,aAAe5G,EAAG,OAAOpe,KAAKu7F,2BAA2B,SAE7En4B,EAAEhiE,UAAUs6F,oCAAsC,SAAUt9E,EAAG1D,GAChE,IAAInJ,EACJ,OAAOvR,KAAKu6F,cAAcvsF,KAAK0M,GAAInJ,EAAI9U,EAAE2hB,GAAIpe,KAAKs6F,OAAOtsF,KAAKuD,GAAIA,GACjE6xD,EAAEhiE,UAAUw6F,iBAAmB,WAChC,OAAO57F,KAAK07F,oCAAoC,GAAI,OACnDt4B,EAAEhiE,UAAUm6F,2BAA6B,SAAUn9E,EAAG1D,GACvD,OAAO1a,KAAKg8F,YAAY5mF,EAAEgJ,EAAG1D,KAC5B0oD,EAAEhiE,UAAU06F,+BAAiC,SAAU19E,EAAG1D,GAC3D,OAAO1a,KAAKg8F,YAAY30B,EAAEjpD,EAAG1D,KAC5B0oD,EAAEhiE,UAAU46F,YAAc,SAAU59E,GACrC,OAAO,IAAMpe,KAAKs6F,OAAOtyF,QAAUhI,KAAK47F,mBAAoB57F,KAAKs6F,OAAOt6F,KAAKs6F,OAAOtyF,OAAS,GAAG+zC,KAAK/tC,KAAKoQ,IACzGglD,EAAEhiE,UAAU66F,0BAA4B,SAAU79E,EAAG1D,GACtD,IAAInJ,EAAGnK,EACP,MAAqD,YAAc,OAAnCmK,GAAzBnK,EAAIpH,KAAKs6F,OAAO5/E,GAAGqhC,MAAY30C,EAAEY,OAAS,IAA8BuJ,EAAEyC,UAAO,GAAUzC,EAAE/H,QAAU4U,EAAIhX,EAAE4G,KAAKoH,EAAEgJ,KAC1HglD,EAAEhiE,UAAU86F,2BAA6B,SAAU99E,EAAG1D,GACvD,IAAInJ,EAAGnK,EACP,MAA0C,YAAc,OAAxBmK,GAAzBnK,EAAIpH,KAAKs6F,OAAO5/E,GAAGqhC,MAAY,IAA8BxqC,EAAEyC,UAAO,GAAUzC,EAAE/H,OAAS4U,EAAI7M,EAAE/H,OAASpC,EAAEoyC,QAAQpkC,EAAEgJ,KAC5HhJ,EAAI,SAAUgJ,EAAG1D,GAElB,OAAO,MAAQA,IAAMA,EAAI,IAAS,SAAoB,CACpDlR,OAD0C4U,EAAI0J,EAAE1J,GAEhDiyB,WAAY31B,EACZ1G,KAHgC,WAKjCqzD,EAAI,SAAUjpD,EAAG1D,GAElB,OAAO,MAAQA,IAAMA,EAAI,IAAS,aAAc,CAC9C+6D,WAAYr3D,EACZiyB,WAAY31B,EACZ1G,KAHgC,eAKjCvX,EAAI,SAAU2hB,GAEf,OAAO,MAAQA,IAAMA,EAAI,IAAa,CACpC29B,KADgC,GAEhC1L,WAAYjyB,IAEbglD,EAAEhiE,UAAUy6F,kBAAoB,SAAUz9E,GAC3C,IAAI7M,EAAGnK,EAAGoX,EAAGjiB,EAAGurB,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EAAG4sD,EAAG3mE,EAGxC,IAAK8U,KAFLiN,EAAI,GAAI3hB,EAAI6d,EAAE4C,OAAOqvD,eAER,IAAI7kD,EAAIjrB,EAAE0U,IAAMo9D,SAAWn5B,EAAEp3B,EAAG,CAC3C6uD,iBAAkBnlD,EAAE6mD,QACpBnB,UAAWxtE,KAAK06F,mBACdl8E,EAAEjN,IAAK,OAAQ,GAAIuW,EAAEzM,QACvB,GAAI5e,EAAIqrB,EAAEzM,OAAO+C,GAAI,CACnB,IAAKhX,GAAI,EAA2C6hB,EAAI,EAAG5K,GAA9C7H,EAAIxW,KAAKm8F,0BAA0B/9E,IAAiBpW,OAAQqW,EAAI4K,EAAGA,IAAK,GAAI1sB,EAAIia,EAAEyS,GAAInB,EAAEzM,OAAO9e,KAAOE,EAAG,CACpH2K,GAAI,EACJ,MAGFA,IAAMoX,EAAEjN,GAAK9U,SAEVqrB,EAAE2kE,gBAAkBhwF,EAAI2hB,EAAEzN,MAAMmX,EAAE2kE,kBAAoBjuE,EAAEjN,GAAK9U,GAEpE,GAAIkiB,EAAEP,KAAOyJ,EAAIzJ,EAAE/a,aAAa,yBAG9B,IAAK1G,KAFLymE,EAAIjpC,KAAKjf,MAAM2M,GAEFprB,EAAI2mE,EAAEzmE,GAAI6hB,EAAE7hB,GAAKF,EAGhC,OAAO+hB,GACN4kD,EAAEhiE,UAAUo6F,mBAAqB,SAAUp9E,GAC5C,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAEb,IAAKpX,EAAI,GAAIgX,GAAKA,IAAMpe,KAAK06F,kBAAmB,CAG9C,IAAKnpF,KAFLiN,EAAI9D,EAAE4C,OAAOmvD,iBAEsB,KAAtBj3B,EAAIh3B,EAAEjN,IAAM2J,OAAgB2M,EAAEzJ,KAAOo3B,EAAEm5B,WAAa,mBAAqBn5B,EAAEt3C,KAAOs3C,EAAEt3C,KAAKkgB,QAAK,KAAYo3B,EAAEt3C,QAAUkJ,EAAE4G,KAAKuD,GAAIikC,EAAEq3B,eAAiBzlE,EAAE4G,KAAKwnC,EAAEq3B,gBAE1KzuD,EAAIA,EAAEgH,WAGR,OAAOhe,EAAE0mC,WACRs1B,EAAEhiE,UAAU+6F,0BAA4B,SAAU/9E,GACnD,IAAI1D,EAAGnJ,EAEP,IAAKmJ,EAAI,GAAI0D,GAAKA,IAAMpe,KAAK06F,kBAAmBnpF,EAAIsW,EAAEzJ,GAAI5H,EAAEzW,KAAKye,IAAKjN,IAAM,GAAKmJ,EAAE1M,KAAKoQ,GAAIA,EAAIA,EAAEgH,WAElG,OAAO1K,GACNzd,EAAI,SAAUmhB,GACf,OAAO+b,KAAKjf,MAAMkD,EAAE/a,aAAa,0BAChCyS,EAAI,SAAUsI,GACf,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAOA,EAAIgX,EAAE/a,aAAa,SAAUkO,EAAI6M,EAAE/a,aAAa,UAAWqX,EAAI,GAAItT,IAAMsT,EAAE8S,MAAQpV,SAAShR,EAAG,KAAMmK,IAAMmJ,EAAEvL,OAASiJ,SAAS7G,EAAG,KAAMmJ,GAC9I0oD,EAAEhiE,UAAUk6F,eAAiB,SAAUl9E,GACxC,IAAI1D,EACJ,IAAK,MAAQ0D,EAAIA,EAAE6T,cAAW,KAAYuO,KAAK+lC,eAAiB5nD,EAAEP,KAAOo3B,EAAEp3B,EAAG,CAC5E6uD,iBAAkB,KAClBO,UAAWxtE,KAAK06F,mBACd,OAAOhgF,EAAImN,EAAEzJ,GAAI5H,EAAEzW,KAAKye,IAAK9D,IAAM,GAAK,UAAYzD,OAAO89B,iBAAiB32B,GAAG+O,SAClFi2C,EAAEhiE,UAAU45F,wBAA0B,SAAU58E,GACjD,IAAI1D,EAAGnJ,EAAGnK,EACV,IAAK,MAAQgX,EAAIA,EAAE6T,cAAW,KAAYuO,KAAKqtC,WAAanvD,EAAEN,EAAEhO,QAAUmB,EAAI6M,EAAEgH,WAAYhe,EAAIgX,EAAEg+B,gBAAiB1hC,EAAI0D,EAAE+T,cAAeze,EAAEnC,EAAE6qC,kBAAoBp8C,KAAKs7F,eAAe/pF,EAAE6qC,oBAAsBxO,EAAEr8B,IAAK,OAAQnK,GAAKpH,KAAKs7F,eAAel0F,KAAOsT,GAAK1a,KAAKs7F,eAAe5gF,IACnR0oD,EAAEhiE,UAAU26F,UAAY,SAAU39E,GACnC,MAAO,OAASyJ,EAAEzJ,IAAMpe,KAAKs7F,eAAel9E,EAAEgH,aAAehH,EAAEgH,WAAW6R,YAAc7Y,GACvFwvB,EAAI,SAAUxvB,GACf,IAAI1D,EACJ,MAAkD,SAA3CA,EAAIzD,OAAO89B,iBAAiB32B,GAAGg+E,aAA2B,aAAe1hF,GAAK,aAAeA,GACnGhH,EAAI,SAAU0K,GACf,OAAOA,IAAMuiE,EAAEviE,EAAE7a,cAChB6/D,EAAEhiE,UAAUw5F,uCAAyC,WACtD,IAAOlgF,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAEzB,IAAKjE,EAAI1a,KAAKq8F,iCAAmD19E,EAAI,GAAIvX,EAAImK,EAAI,EAAGikC,GAApCj5C,EAAIyD,KAAKs6F,QAAiCtyF,OAAQwtC,EAAIjkC,EAAGnK,IAAMmK,EAAOhV,EAAE6K,IAAKoX,EAAIxe,KAAKs8F,+BAA+Bl1F,MAAQoX,EAAEpP,IAAM,EAAIsL,EAAEtL,KAAOpP,KAAKk8F,2BAA2B,KAAM90F,GAAIuX,EAAE3Q,KAAKwQ,EAAEyd,OAAS,EAAIvhB,EAAEuhB,OAASj8B,KAAKi8F,0BAA0B,KAAM70F,QAAK,IAEvT,OAAOuX,GACNykD,EAAEhiE,UAAUk7F,+BAAiC,SAAUl+E,GACxD,IAAI1D,EAAGnJ,EACP,QAASmJ,EAAI1a,KAAKu6F,cAAcn8E,MAAQ1D,EAAEnX,cAAgBgO,EAAIsW,EAAEnN,GAAIlE,EAAEzW,KAAKye,IAAKjN,IAAM,GAAKiF,EAAEzW,KAAKC,KAAKw6F,kBAAmB9/E,IAAM,QAAK,EAASpd,EAAEod,IAC/I0oD,EAAEhiE,UAAUi7F,+BAAiC,WAC9C,IAAIj+E,EACJ,OAAOA,EAAI7hB,EAAEme,EAAE4C,OAAOmvD,gBAAyB,QAAEkC,SAAU3uE,KAAK06F,iBAAiB90E,YAAYxH,GAAI9gB,EAAE8gB,IAClG9gB,EAAI,SAAU8gB,GACf,IAAI1D,EACJ,MAAuC,WAAhCA,EAAIzD,OAAO89B,iBAAiB32B,IAAkB+O,QAAU,CAC7D/d,IAAKgJ,SAASsC,EAAEi4C,WAChB12B,OAAQ7jB,SAASsC,EAAEm4C,oBACjB,GACHgR,EAAI,SAAUzlD,GACf,OAAOA,EAAEtgB,QAAQwI,OAAO,IAAMiL,EAAE/J,OAAS,KAAM,KAC9CkX,EAAI,SAAUN,GACf,OAAO9X,OAAO,IAAMiL,EAAE/J,OAAS,MAAMtJ,KAAKkgB,IACzCuiE,EAAI,SAAUviE,GACf,MAAO,MAAMlgB,KAAKkgB,IACjBglD,EAtNgS,CAuNnS1oD,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EAAI,SAAUJ,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAGne,EAAEwD,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7hB,EAAI,GAAGge,eACPoE,EAAI,GAAG/W,MACPkgB,EAAI,GAAGngB,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGV0D,EAAI1D,EAAEuxD,eAAgB7kE,EAAIsT,EAAEo1D,eAAgBt6B,EAAI96B,EAAEq1D,iBAAkBx+D,EAAImJ,EAAE8xD,eAAgB9xD,EAAE28D,SAAW,SAAU96E,GAC/G,SAAS0sB,EAAE7K,GACT,MAAQA,IAAMA,EAAI,IAAK6K,EAAEwhD,UAAU9wD,YAAY9V,MAAM7D,KAAM8D,WAAY,IAAMsa,EAAEpW,SAAWoW,EAAI,CAAC,IAAI1D,EAAEy9E,QAAWn4F,KAAKu8F,UAAY7hF,EAAEu6E,eAAe75C,IAAIh9B,GAGxJ,IAAIyJ,EACJ,OAAOrJ,EAAEyK,EAAG1sB,GAAI0sB,EAAE0hD,SAAW,SAAUvsD,GACrC,IAAI7M,EACJ,OAMK,IAAIvR,KANE,WACT,IAAIoH,EAAGouC,EAAGh3B,EAEV,IAAKA,EAAI,GAAIpX,EAAI,EAAGouC,EAAIp3B,EAAEpW,OAAQwtC,EAAIpuC,EAAGA,IAAKmK,EAAI6M,EAAEhX,GAAIoX,EAAExQ,KAAK0M,EAAEy9E,MAAMxtB,SAASp5D,IAEhF,OAAOiN,EALE,KAOVyK,EAAEquD,SAAW,SAAUl5D,EAAG7M,GAC3B,OAAOmJ,EAAE0/E,WAAWl/E,MAAMkD,EAAG7M,GAAGgjC,eAC/BtrB,EAAEuzE,WAAa,SAAUp+E,EAAG7M,GAC7B,IAAInK,EACJ,OAAOA,EAAIsT,EAAE67E,KAAKE,4BAA4Br4E,EAAG7M,GAAI,IAAIvR,KAAK,CAAC,IAAI0a,EAAEy9E,MAAM/wF,MAC1E6hB,EAAE7nB,UAAU8wE,QAAU,WACvB,IAAI9zD,EACJ,OAAO,IAAMpe,KAAKu8F,UAAUv0F,UAAWoW,EAAIpe,KAAKy8F,gBAAgB,IAAMvqB,YAAc9zD,EAAEu6E,kBACrF1vE,EAAE7nB,UAAUq/E,KAAO,SAAUriE,GAC9B,IAAI1D,EACJ,OAAO,MAAQ0D,IAAMA,EAAI,IAAK1D,EAAI0D,EAAEs+E,kBAAoB18F,KAAKu8F,UAAUrG,cAAcjkB,UAAYjyE,KAAKu8F,UAAUtqB,UAAW,IAAIjyE,KAAK2Z,YAAYe,IAC/IuO,EAAE7nB,UAAUu7F,6BAA+B,SAAUv+E,GACtD,IAAI7M,EACJ,OAAOA,EAAI,IAAImJ,EAAEk4D,UAAUx0D,EAAEs0D,cAAe1yE,KAAK22F,mBAAmBplF,IACnE0X,EAAE7nB,UAAUu1F,mBAAqB,SAAUv4E,GAC5C,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAOmK,EAAI,WACT,IAAIA,EAAGikC,EAAGh3B,EAAGjiB,EAEb,IAA2BA,EAAI,GAAIgV,EAAI,EAAGikC,GAArCh3B,EAAIxe,KAAK2tF,aAAkC3lF,OAAQwtC,EAAIjkC,EAAGA,IAAKmJ,EAAI8D,EAAEjN,GAAIhV,EAAEyR,MAAM5G,EAAIgX,EAAE4xB,KAAKt1B,IAAMtT,EAAIsT,EAAEi8E,mBAAmBv4E,IAEhI,OAAO7hB,GACPwD,KAAKC,MAAO,IAAIA,KAAK2Z,YAAYpI,IAClC0X,EAAE7nB,UAAUw7F,4BAA8B,SAAUx+E,GACrD,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAO,MAAQgX,IAAMA,EAAI,IAAKhX,EAAI,WAChC,IAAIA,EAAGouC,EAAGh3B,EAAGjiB,EAEb,IAA2BA,EAAI,GAAI6K,EAAI,EAAGouC,GAArCh3B,EAAIxe,KAAK2tF,aAAkC3lF,OAAQwtC,EAAIpuC,EAAGA,IAAKmK,EAAIiN,EAAEpX,GAAIsT,EAAI0D,EAAEzH,OAAOpF,EAAE66E,iBAAkB7vF,EAAEyR,KAAKuD,EAAEmiF,mBAAmBh5E,IAE3I,OAAOne,GACPwD,KAAKC,MAAO,IAAIA,KAAK2Z,YAAYvS,IAClC6hB,EAAE7nB,UAAUy7F,aAAe,SAAUz+E,EAAG1D,GACzC,IAAInJ,EACJ,OAAuC,KAAhCA,EAAIvR,KAAKu8F,UAAU50F,QAAQyW,IAAepe,KAAO,IAAIA,KAAK2Z,YAAY3Z,KAAKu8F,UAAU/G,qBAAqB96E,EAAGnJ,KACnH0X,EAAE7nB,UAAU07F,sBAAwB,SAAU1+E,EAAG1D,GAClD,IAAInJ,EAAGiN,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EACtB,OAAOrJ,EAAIJ,EAAEm+E,UAAWz0E,GAAKpN,EAAItT,EAAEsT,IAAI,GAAsCne,GAAlC0sB,EAAIjpB,KAAK+8F,qBAAqBj1E,IAAU/f,MAAO4W,EAAIsK,EAAE8K,OAAQlM,EAAI7nB,KAAMuR,EAAIvR,KAAKg9F,mBAAmBl1E,GAAI0tB,EAAE96B,IAAMnJ,EAAE2gE,YAAc3gE,EAAEonF,gBAAkB9wE,EAAI,IAAI7nB,KAAK2Z,YAAYkO,EAAE00E,UAAU9G,oBAAoBl5F,IAAMgV,EAAE+7E,0BAA4B3uE,GAAKmJ,IAAKD,EAAIA,EAAEivE,kBAAkBp8E,GAAI,IAAI1a,KAAK2Z,YAAYkO,EAAE00E,UAAUlH,+BAA+B72E,EAAGsJ,KACnYmB,EAAE7nB,UAAU67F,qBAAuB,SAAUviF,EAAGnJ,GACjD,IAAIikC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EAAG4sD,EACrC,OAAO5sD,GAAKjF,EAAInK,EAAEmK,IAAI,GAAI1U,EAAImD,KAAK+8F,qBAAqBvmF,GAAIgI,EAAIxe,KAAKy8F,gBAAgB5/F,EAAEkL,OAAOqkF,gBAAiB52C,EAAI96B,EAAEwiF,yBAA0B95B,EAAI5kD,EAAE5W,OAAO4tC,EAAExtC,QAASoW,EAAEo3B,EAAG4tB,IAAMv7C,EAAIrJ,EAAE5W,MAAM,GAAI4tC,EAAExtC,QAASihB,EAAIvO,EAAEkiF,4BAA4B/0E,IAAMoB,EAAIvO,EAAE+lE,KAAK,CAC9Pic,mBAAmB,IAClBE,4BAA4Bp+E,GAAIjiB,EAAI0sB,EAAEk0E,gBAAiBx+E,EAAIsK,EAAEwzE,gBAAgB,GAAIr+E,EAAEI,EAAGG,EAAEytE,kBAAoBtkE,EAAInJ,EAAE06E,2BAA4Bh7E,EAAIre,KAAKo9F,kBAAkBt1E,EAAGvW,GAAIhV,EAAI,IAAM0sB,EAAI,IAAIjpB,KAAK2Z,YAAYsP,EAAE0kE,YAAY/lF,MAAM,IAAKjL,EAAI6Z,EAAIsR,EAAEysE,YAAal2E,EAAIA,EAAEy+E,sBAAsB7zE,EAAGtsB,KAAO0hB,EAAIre,KAAK88F,sBAAsB7zE,EAAG1X,GAAI8M,GACjV4K,EAAE7nB,UAAUg8F,kBAAoB,SAAUh/E,EAAG1D,GAC9C,IAAInJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGoiB,EAChB,OAAOA,GAAKjE,EAAItT,EAAEsT,IAAI,GAAsC86B,GAAlCj5C,EAAIyD,KAAK+8F,qBAAqBp+E,IAAU5W,MAAOyW,EAAIjiB,EAAEw3B,OAAQxiB,EAAIvR,KAAK82F,kBAAkBp8E,GAAI,IAAI1a,KAAK2Z,YAAYpI,EAAEgrF,UAAUhH,kBAAkB//C,GAAG,SAAU96B,GACpL,OAAOA,EAAE09E,aAAa19E,EAAEqhC,KAAK86C,qBAAqBz4E,EAAGI,SAEtDyK,EAAE7nB,UAAU01F,kBAAoB,SAAU14E,GAC3C,IAAI1D,EAAGnJ,EAAGiN,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAASJ,EAAGmxC,EAAG3wC,EAAGK,EAAGwY,EAAG+tD,EAAGnwD,EAC7D,OAAqBmU,GAAdxJ,EAAID,EAAIhX,EAAEgX,IAAU,GAAItI,EAAIuI,EAAE,GAAIm3B,EAAEp3B,GAAKpe,MAA4C8nB,GAApCjrB,EAAImD,KAAKq9F,uBAAuBj/E,IAAU,GAAInhB,EAAIJ,EAAE,GAAI8hB,EAAImJ,EAAE/f,MAAOkhB,EAAInB,EAAEiM,OAAQx3B,EAAIyD,KAAKy8F,gBAAgB99E,GAAIivB,EAAI3wC,EAAE8K,MAAOzK,EAAIL,EAAE82B,OAAQt3B,EAAIuD,KAAKy8F,gBAAgB7uD,GAAQ93B,EAAI+R,IAAM,GAAKtrB,EAAE+wF,0BAA4BrkE,GAAKxsB,EAAE6wF,0BAA4BhwF,GAAK,OAASb,EAAEs/C,KAAK27C,oBAAoBp6F,GAAQkhB,EAAIxe,KAAKu8F,UAAUhH,kBAAkB3nD,GAAG,SAAUxvB,GACrZ,OAAOA,EAAEg6E,aAAah6E,EAAE29B,KAAK+6C,kBAAkB,CAACx5F,EAAGA,EAAI,SACnDX,EAAIJ,EAAEw/C,KAAKk7C,eAAe,CAAC,EAAGhuE,IAAK46C,EAAIpnE,EAAEs/C,KAAKk7C,eAAe,CAAC35F,EAAGb,EAAE83F,cAAe7gF,EAAI/W,EAAEi6F,WAAW/yB,GAAqFtyD,EAA7EoN,IAAMivB,GAAK,IAAM3kB,GAAY1sB,EAAEk8F,qBAAuBh8F,EAAEg8F,oBAA6Bh8F,EAAE27F,aAAa1kF,GAAKnX,EAAE67F,aAAa1kF,GAAIgH,EAAIkzB,EAAI,EAAIjvB,EAAGH,EAAIxe,KAAKu8F,UAAU9lE,OAAO9X,EAAGjE,EAAGnJ,IAAK,IAAIvR,KAAK2Z,YAAY6E,KACrTyK,EAAE7nB,UAAU41F,4BAA8B,SAAU54E,EAAG1D,GACxD,IAAInJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGurB,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAC/B,OAAqBwhB,GAAd4K,EAAI7K,EAAIhX,EAAEgX,IAAU,GAAII,EAAIyK,EAAE,GAAIvO,GAAK2D,GAAKG,GAAK9D,EAAI1a,MAAQw1C,EAAIx1C,KAAKs9F,mBAAmBl/E,GAAIzhB,EAAIqD,KAAK82F,kBAAkB14E,IAAI0J,EAAIpN,EAAI2D,KAAS3D,GAAK86B,EAAE++C,aAAiCh4F,GAAnBsrB,EAAI2tB,EAAEm4C,aAAmB,GAA2C,KAAvCp8E,EAAI,GAAKsW,EAAE7f,OAAS2W,EAAE5e,KAAK8nB,EAAG,GAAK,IAAY7f,QAAUnL,EAAIN,EAAE88F,2BAA4BvxE,IAAMpN,GAAK,IAAM7d,EAAIN,EAAEw/C,KAAMp/C,EAAIA,EAAEygG,kBAAkBvgG,EAAG6d,GAAI,IAAMnJ,EAAEvJ,OAASrL,GAAK64C,EAAI,IAAIx1C,KAAK2Z,YAAYpI,GAAImJ,GAAK7d,EAAE03F,YAAa53F,EAAEmgG,sBAAsBtnD,EAAG96B,MAC9buO,EAAE7nB,UAAU81F,oBAAsB,SAAU94E,EAAG1D,EAAGtT,GACnD,IAAIouC,EACJ,OAAOA,EAAIx1C,KAAKu8F,UAAWv8F,KAAKu9F,iBAAiBn2F,GAAG,SAAUA,EAAGoX,EAAGjiB,GAClE,OAAOi5C,EAAIA,EAAE+/C,kBAAkBh5F,GAAG,WAChC,OAAOgV,EAAE6M,GAAKhX,EAAEmxF,aAAan6E,EAAG1D,GAAK8D,EAAE,KAAOA,EAAE,GAAKpX,EAAIA,EAAEgxF,aAAahxF,EAAE20C,KAAKm7C,oBAAoB94E,EAAG1D,EAAG8D,UAEzG,IAAIxe,KAAK2Z,YAAY67B,IACxBvsB,EAAE7nB,UAAUm3F,aAAe,SAAUn6E,EAAG1D,GACzC,IAAInJ,EACJ,OAAOA,EAAIvR,KAAKu8F,UAAWv8F,KAAKw9F,WAAU,SAAUp2F,EAAGouC,GACrD,OAAOjkC,EAAIA,EAAEgkF,kBAAkB//C,GAAG,WAChC,OAAOpuC,EAAEmxF,aAAan6E,EAAG1D,SAEzB,IAAI1a,KAAK2Z,YAAYpI,IACxB0X,EAAE7nB,UAAUg2F,uBAAyB,SAAUh5E,EAAG1D,GACnD,IAAItT,EACJ,OAAOA,EAAIpH,KAAKu8F,UAAWv8F,KAAKu9F,iBAAiB7iF,GAAG,SAAUA,EAAG86B,EAAGh3B,GAClE,OAAOjN,EAAE6M,GAAKhX,EAAIA,EAAEmuF,kBAAkB/2E,GAAG,WACvC,OAAO9D,EAAE/W,gBAAgBya,MACtBo3B,EAAE,KAAOA,EAAE,GAAKpuC,EAAIA,EAAEmuF,kBAAkB/2E,GAAG,WAC9C,OAAO9D,EAAE09E,aAAa19E,EAAEqhC,KAAKq7C,uBAAuBh5E,EAAGo3B,YACpD,KACH,IAAIx1C,KAAK2Z,YAAYvS,IACxB6hB,EAAE7nB,UAAUsuF,8BAAgC,SAAUtxE,EAAG1D,GAC1D,IAAInJ,EAAMikC,EAAGh3B,EACb,OAAOg3B,EAASx1C,KAAKg4F,qBAAqBt9E,GAAI,GAAInJ,EAAIvR,KAAK+8F,qBAAqBvnD,GAAGztC,MAAOyW,EAAIxe,KAAKy9F,eAAelsF,GAAI,IAAIvR,KAAK2Z,YAAY3Z,KAAKu8F,UAAUhH,kBAAkBhkF,GAAG,SAAUA,GACvL,OAAOA,EAAE6mF,aAAa55E,EAAEkxE,8BAA8BtxE,EAAG1D,SAE1DuO,EAAE7nB,UAAUuuF,6BAA+B,SAAUvxE,EAAG1D,GACzD,IAAInJ,EACJ,OAAOA,EAAIvR,KAAKg4F,qBAAqBt9E,GAAI1a,KAAKo3F,uBAAuBh5E,EAAG7M,IACvE0X,EAAE7nB,UAAUs8F,wBAA0B,SAAUt/E,GACjD,IAAI7M,EAAGikC,EAAGh3B,EAAGjiB,EACb,OAAOA,GAAK6hB,EAAIhX,EAAEgX,IAAI,GAAII,EAAIxe,KAAK+8F,qBAAqBxgG,GAAGw3B,OAAQyhB,EAAIx1C,KAAK82F,kBAAkB14E,GAAI,IAAMI,IAAMjN,EAAI,CAAC,IAAImJ,EAAEy9E,QAAW,IAAIn4F,KAAK2Z,YAAY67B,EAAE+mD,UAAUlH,+BAA+B,IAAI36E,EAAEu6E,eAAe1jF,GAAIhV,KAC5N0sB,EAAE7nB,UAAUu8F,2BAA6B,SAAUv/E,EAAG1D,EAAGtT,GAC1D,IAAIouC,EAAGh3B,EAAGjiB,EAAGoiB,EACb,OAA0DH,GAAnDjiB,EAAIyD,KAAK49F,sCAAsCx2F,IAAUgQ,SAAUhQ,EAAI7K,EAAEyhC,OAAOwX,EAAIjkC,EAAE6M,IAAMyuD,eAE/FluD,GAFgHH,EAAIA,EAAEq/E,+BAA+Bz2F,EAAG,CAC1J02F,oBAAqB1/E,KACb2/E,sCAAsC32F,GAAIoX,EAAIG,EAAEvH,SAAUhQ,EAAIuX,EAAEqf,OAASxf,EAAIg3B,EAAEmhC,UAAYn4D,EAAEw/E,6BAA6B52F,GAAKouC,EAAE4gC,SAAW53D,EAAEy/E,mCAAmC72F,GAAKoX,EAAE0/E,yBAAyB92F,GAAIoX,EAAE04E,oBAAoB94E,EAAG1D,EAAGtT,IAC1P6hB,EAAE7nB,UAAUy8F,+BAAiC,SAAUz/E,EAAG1D,GAC3D,IAAItT,EACJ,OAAO,MAAQsT,IAAMA,EAAI,IAAKtT,EAAIpH,KAAKu8F,UAAWv8F,KAAKu9F,iBAAiBn/E,GAAG,SAAUA,EAAGo3B,EAAGh3B,GACzF,IAAIjiB,EACJ,IAAKA,EAAI6hB,EAAE+uE,qBAAuB57E,EAAEhV,GAAGswE,eAAiBtwE,IAAMme,EAAEojF,oBAAqB,OAAO12F,EAAIA,EAAEmuF,kBAAkB/2E,GAAG,WACrH,OAAOJ,EAAEza,gBAAgBpH,SAEzB,IAAIyD,KAAK2Z,YAAYvS,IACxB6hB,EAAE7nB,UAAU68F,mCAAqC,SAAU7/E,GAC5D,IAAI1D,EACJ,OAAOA,EAAI1a,KAAKu8F,UAAWv8F,KAAKu9F,iBAAiBn/E,GAAG,SAAUA,EAAGhX,EAAGouC,GAClE,IAAIh3B,EACJ,IAAKA,EAAIJ,EAAE+uE,qBAAuB57E,EAAEiN,GAAG43D,SAAU,OAAO17D,EAAIA,EAAE66E,kBAAkB//C,GAAG,WACjF,OAAOp3B,EAAEza,gBAAgB6a,SAEzB,IAAIxe,KAAK2Z,YAAYe,IACxBuO,EAAE7nB,UAAU48F,6BAA+B,SAAU5/E,GACtD,IAAI1D,EACJ,OAAOA,EAAI1a,KAAKu8F,UAAWv8F,KAAKu9F,iBAAiBn/E,GAAG,SAAUA,EAAG7M,EAAGnK,GAClE,OAAOgX,EAAEu6E,gBAAkBj+E,EAAIA,EAAE66E,kBAAkBnuF,GAAG,WACpD,OAAOgX,EAAEk6E,gCACN,KACH,IAAIt4F,KAAK2Z,YAAYe,IACxBuO,EAAE7nB,UAAUw8F,sCAAwC,SAAUx/E,GAC/D,IAAI1D,EAAGnJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAC5B,OAAqBA,GAAdlJ,EAAIP,EAAIhX,EAAEgX,IAAU,GAAII,EAAIG,EAAE,GAAIsK,EAAIjpB,KAAK+8F,qBAAqBl1E,GAAI2tB,EAAIx1C,KAAK+8F,qBAAqBv+E,GAAcsJ,GAAVpN,EAAI1a,MAAYy8F,gBAAgBxzE,EAAElhB,OAAQ,OAASkhB,EAAE8K,OAASjM,EAAEsxE,qCAAqC,WAAYnwE,EAAE8K,WAAax3B,EAAIme,EAAEyjF,qBAAqBl1E,GAAIvO,EAAIA,EAAEgjF,wBAAwB,CAACnhG,EAAGA,EAAI,IAAKi5C,EAAEztC,OAAS,EAAGytC,EAAEzhB,QAAUrZ,EAAE+hF,gBAAgBxzE,EAAElhB,OAAOwsF,YAAatrE,EAAElhB,OAAS,GAAIkhB,EAAE8K,OAAS,EAAG,IAAMyhB,EAAEzhB,QAAUyhB,EAAEztC,MAAQkhB,EAAElhB,OAASytC,EAAEztC,OAAS,EAAGytC,EAAEzhB,OAASrZ,EAAE+hF,gBAAgBjnD,EAAEztC,OAAOulF,0BAA4D,QAAhC/7E,EAAImJ,EAAE+hF,gBAAgBjnD,EAAEztC,QAAmBg0C,KAAK07C,iBAAiB,CAACjiD,EAAEzhB,OAAS,EAAGyhB,EAAEzhB,SAAWyhB,EAAEzhB,QAAU,EAAIyhB,EAAEzhB,OAASxiB,EAAE6nF,qCAAqC,UAAW5jD,EAAEzhB,QAASyhB,EAAEzhB,SAAWxiB,EAAE+7E,0BAA4B/wF,EAAIme,EAAEyjF,qBAAqB3oD,GAAI96B,EAAIA,EAAEgjF,wBAAwB,CAACnhG,EAAGA,EAAI,MAAOsrB,EAAInN,EAAEyjF,qBAAqBl1E,GAAIzK,EAAI9D,EAAEyjF,qBAAqB3oD,GAAmB,CACp4Bp+B,SAAUsD,EACVsjB,MAFq3B5f,EAAIhX,EAAE,CAACygB,EAAGrJ,MAIh4ByK,EAAE7nB,UAAU28F,sCAAwC,SAAU3/E,GAC/D,IAAI1D,EAAGnJ,EAAGikC,EACV,OAAOjkC,GAAK6M,EAAIhX,EAAEgX,IAAI,GAAIo3B,EAAIx1C,KAAKy3F,iBAAiBr5E,GAAGxW,MAAM,GAAI,GAAI8S,EAAI1a,KAAMw1C,EAAE13C,QAAQ,UAAU,SAAUsgB,GAC3G,OAAO7M,GAAK6M,EAAEpW,OAAQ0S,EAAIA,EAAEgjF,wBAAwB,CAACnsF,EAAI,EAAGA,OAC1D,CACF6F,SAAUsD,EACVsjB,MAAO5f,IAER6K,EAAE7nB,UAAU88F,yBAA2B,SAAU9/E,GAClD,IAAI1D,EAAGnJ,EAAGikC,EAAGh3B,EAAGjiB,EAChB,OAAqBA,GAAdi5C,EAAIp3B,EAAIhX,EAAEgX,IAAU,GAAI7M,EAAIikC,EAAE,GAAIh3B,EAAIxe,KAAK+8F,qBAAqBxgG,GAAGwL,MAAO2S,EAAI1a,KAAK+8F,qBAAqBxrF,GAAGxJ,MAAO,IAAI/H,KAAK2Z,YAAY3Z,KAAKu8F,UAAUpG,4BAA4B33E,EAAG9D,KAC3LuO,EAAE7nB,UAAUk8F,mBAAqB,SAAUl/E,GAC5C,IAAI1D,EACJ,OAAO0D,EAAIhX,EAAEgX,GAAI1D,EAAI1a,KAAKu8F,UAAU5G,yBAAyBv3E,GAAG6zD,UAAW,IAAIjyE,KAAK2Z,YAAYe,IAC/FuO,EAAE7nB,UAAUq2F,iBAAmB,SAAUr5E,GAC1C,IAAI1D,EAAM86B,EACV,OAAOA,EAAIp3B,EAAIhX,EAAEgX,IAAUo3B,EAAExtC,OAAS,KAAUhI,KAAKu0F,cAAgB75E,GAAK,GAAI1a,KAAKs9F,mBAAmBl/E,GAAGtF,WAAWlR,MAAM,EAAG8S,IAC5HuO,EAAE7nB,UAAUq7F,gBAAkB,SAAUr+E,GACzC,OAAOpe,KAAKu8F,UAAU7G,iBAAiBt3E,IACtC6K,EAAE7nB,UAAU47F,mBAAqB,SAAU5+E,GAC5C,IAAI1D,EACJ,OAAOA,EAAI1a,KAAK+8F,qBAAqB3+E,GAAGrW,MAAO/H,KAAKy8F,gBAAgB/hF,IACnEuO,EAAE7nB,UAAUq8F,eAAiB,SAAUr/E,GACxC,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKy8F,gBAAgBr+E,IAAM1D,EAAEqhC,UAAO,GACvD9yB,EAAE7nB,UAAUg9F,kBAAoB,SAAUhgF,GAC3C,IAAI1D,EACJ,OAAOA,EAAI1a,KAAK+8F,qBAAqB3+E,GAAGrW,MAAO/H,KAAKy9F,eAAe/iF,IAClEuO,EAAE7nB,UAAU62F,mBAAqB,SAAU75E,GAC5C,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAyCsT,GAAlCtT,EAAIpH,KAAK+8F,qBAAqB3+E,IAAUrW,MAAOwJ,EAAInK,EAAE2sB,OAAQ/zB,KAAKy9F,eAAe/iF,GAAGu9E,mBAAmB1mF,IAC7G0X,EAAE7nB,UAAUi9F,uBAAyB,SAAUjgF,GAChD,IAAI1D,EAAGnJ,EAAGnK,EACV,OAAyCsT,GAAlCtT,EAAIpH,KAAK+8F,qBAAqB3+E,IAAUrW,MAAOwJ,EAAInK,EAAE2sB,OAAQ/zB,KAAKy9F,eAAe/iF,GAAG+8E,iBAAiB,CAAClmF,EAAGA,EAAI,KACnH0X,EAAE7nB,UAAUmzF,UAAY,WACzB,OAAOv0F,KAAKu8F,UAAUlG,kBACrBptE,EAAE7nB,UAAUusF,UAAY,WACzB,OAAO3tF,KAAKu8F,UAAUtqB,WACrBhpD,EAAE7nB,UAAU+7F,cAAgB,WAC7B,OAAOn9F,KAAKu8F,UAAUv0F,QACrBihB,EAAE7nB,UAAUk9F,aAAe,WAC5B,OAAOt+F,KAAKu+F,WACXt1E,EAAE7nB,UAAUo8F,UAAY,SAAUp/E,GACnC,OAAOpe,KAAKu8F,UAAUrH,WAAW92E,IAChC6K,EAAE7nB,UAAUm8F,iBAAmB,SAAUn/E,EAAG1D,GAC7C,IAAInJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EACrC,GAAkB3Z,GAAdirB,EAAI1J,EAAIhX,EAAEgX,IAAU,GAAII,EAAIsJ,EAAE,GAAIzJ,EAAIre,KAAK+8F,qBAAqBlgG,GAAI24C,EAAIx1C,KAAK+8F,qBAAqBv+E,GAAIH,EAAEtW,QAAUytC,EAAEztC,MAAO,OAAOwJ,EAAIvR,KAAKy8F,gBAAgBp+E,EAAEtW,OAAQyO,EAAI,CAAC6H,EAAE0V,OAAQyhB,EAAEzhB,QAASrZ,EAAEnJ,EAAGiF,EAAG6H,EAAEtW,OAE7M,IAAKpL,EAAI,GAAIgiB,EAAIpiB,EAAI0sB,EAAI5K,EAAEtW,MAAO8f,EAAI2tB,EAAEztC,MAAO8f,GAAKoB,EAAIpB,GAAKtrB,EAAIA,GAAKsrB,EAAGlJ,EAAIkJ,GAAKoB,IAAM1sB,IAAMA,GAAIgV,EAAIvR,KAAKy8F,gBAAgB99E,KAAOnI,EAAI,WACpI,OAAQmI,GACN,KAAKN,EAAEtW,MACL,MAAO,CAACsW,EAAE0V,OAAQxiB,EAAEwqC,KAAKw4C,aAE3B,KAAK/+C,EAAEztC,MACL,MAAO,CAAC,EAAGytC,EAAEzhB,QAEf,QACE,MAAO,CAAC,EAAGxiB,EAAEwqC,KAAKw4C,cAT8G,GAWjI53F,EAAEqR,KAAK0M,EAAEnJ,EAAGiF,EAAGmI,KAAOhiB,EAAEqR,UAAK,GAElC,OAAOrR,GACNssB,EAAE7nB,UAAUm2F,2BAA6B,SAAUn5E,GACpD,IAAI7M,EAAGiN,EAAGjiB,EACV,OAAOiiB,GAAKJ,EAAIhX,EAAEgX,IAAI,GAAIo3B,EAAEp3B,GAAKpe,KAAKw+F,8BAA8BhgF,IAAMjiB,EAAI,GAAIgV,EAAI,GAAIvR,KAAKu9F,iBAAiBn/E,GAAG,SAAUA,EAAG1D,GAC9H,OAAOA,EAAE,KAAOA,EAAE,IAAMne,EAAEyR,KAAKoQ,EAAE29B,KAAKw7C,2BAA2B78E,IAAKnJ,EAAEvD,KAAK6Z,EAAEzJ,UAAO,KACpF1D,EAAEk3D,KAAKC,8BAA8Bt1E,GAAGy1E,MAAMt3D,EAAEk3D,KAAKC,8BAA8BtgE,IAAIoE,aAC1FsT,EAAE7nB,UAAUo9F,8BAAgC,SAAUpgF,GACvD,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGsK,EAAGtsB,EAAG0hB,EAAGxhB,EAC/B,GAAsCN,GAAlC8hB,EAAIre,KAAK+8F,qBAAqB3+E,IAAUrW,MAAOpL,EAAI0hB,EAAE0V,SAAQyhB,EAAIx1C,KAAKy8F,gBAAgBlgG,IAAQ,MAAO,GAUzG,IAAK0sB,KATLzK,EAAIqJ,EAAE2tB,GAAIjkC,EAAIikC,EAAEuG,KAAKu7C,wBAAwB36F,GAAIyK,EAAIouC,EAAEuG,KAAKu7C,wBAAwB36F,EAAI,GAAIgiB,EAAI,WAC9F,IAAIP,EAAG7M,EAGP,IAAK0X,KAFwB1X,EAAI,GAAjC6M,EAAI1D,EAAE4C,OAAOqvD,gBAEA9vE,EAAIuhB,EAAE6K,IAAM6tD,aAAevlE,EAAEvD,KAAKib,GAE/C,OAAO1X,EANuF,GAStFnK,IAAGvK,EAAIuK,EAAE6hB,MAAW1X,EAAE0X,IAAMnB,EAAE/nB,KAAK4e,EAAGsK,IAAM,KAAOzK,EAAEyK,GAAKpsB,GAEpE,OAAO2hB,GACNyK,EAAE7nB,UAAUq9F,oCAAsC,SAAUrgF,EAAG1D,GAChE,IAAInJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EACzB,OAAyCrJ,GAAlCG,EAAI3e,KAAK+8F,qBAAqBriF,IAAU3S,MAAOxL,EAAIoiB,EAAEoV,OAAsFlM,GAAlDC,EAAxB9nB,KAAKy9F,eAAej/E,GAAUg5E,qCAAqCp5E,EAAG7hB,IAAU,GAAIi5C,EAAI1tB,EAAE,GAAImB,EAAIjpB,KAAKm+F,qBAAqB,CAClMp2F,MAAOyW,EACPuV,OAAQlM,IACNtW,EAAIvR,KAAKm+F,qBAAqB,CAChCp2F,MAAOyW,EACPuV,OAAQyhB,IACNpuC,EAAE,CAAC6hB,EAAG1X,KACT0X,EAAE7nB,UAAU87F,uBAAyB,WACtC,IAAI9+E,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAEtB,IAAK6hB,EAAIpe,KAAKy8F,gBAAgB,GAAGrQ,gBAAiB76E,EAAInK,EAAI,EAAG7K,EAAIyD,KAAKm9F,gBAAiB5gG,GAAK,EAAIA,EAAI6K,EAAIA,EAAI7K,EAAGgV,EAAIhV,GAAK,IAAM6K,IAAMA,EAAGsT,EAAI1a,KAAKy8F,gBAAgBlrF,GAAG66E,gBAAiB5tE,EAAI9F,KAAKkS,IAAIxM,EAAEpW,OAAQ0S,EAAE1S,QAASoW,EAAI,WACxN,IAAI7M,EAAGnK,EAAG7K,EAEV,IAAKA,EAAI,GAAIi5C,EAAIjkC,EAAI,EAAGnK,EAAIoX,GAAIpX,GAAK,EAAIA,EAAImK,EAAIA,EAAInK,IAAMsT,EAAE86B,KAAOp3B,EAAEo3B,GAAIA,EAAIpuC,GAAK,IAAMmK,IAAMA,EAAGhV,EAAEyR,KAAK0M,EAAE86B,IAE3G,OAAOj5C,EALiN,GAQ1N,OAAO6hB,GACNyJ,EAAI,SAAUzJ,GACf,IAAI1D,EAAGnJ,EACP,OAAOA,EAAI,IAAKmJ,EAAI0D,EAAE+uE,sBAAwB57E,EAAEmJ,IAAK,GAAKnJ,GACzD0X,EAAE7nB,UAAU0uF,kBAAoB,SAAU1xE,GAC3C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAAgCjkC,EAAI,EAAGnK,GAAlCouC,EAAIx1C,KAAK83F,kBAA+B9vF,OAAQZ,EAAImK,EAAGA,IAAK,IAAImJ,EAAI86B,EAAEjkC,IAAM6jC,KAAOh3B,EAAG,OAAO1D,GACjGuO,EAAE7nB,UAAUy2F,oBAAsB,WACnC,IAAIz5E,EACJ,OAAOA,EAAI,GAAIpe,KAAKu8F,UAAUrH,YAAW,SAAUx6E,GACjD,IAAInJ,EACJ,OAAOA,EAAImJ,EAAEqhC,KAAM39B,EAAIA,EAAEzH,OAAOpF,EAAEsmF,0BAChCz5E,GACH6K,EAAE7nB,UAAU02F,eAAiB,WAC9B,IAAI15E,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAqCA,EAAI,GAAIp3B,EAAI,EAAG1D,GAA/CtT,EAAIpH,KAAK63F,uBAA4C7vF,OAAQ0S,EAAI0D,EAAGA,IAAK7M,EAAInK,EAAEgX,GAAIo3B,EAAExnC,KAAKuD,EAAEkkE,YAEjG,OAAOjgC,GACNvsB,EAAE7nB,UAAU42F,qBAAuB,SAAU55E,GAC9C,IAAI1D,EAAGnJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAEtB,IAAKtJ,EAAI,EAAiCjN,EAAImJ,EAAI,EAAG86B,GAAzCj5C,EAAIyD,KAAKu8F,UAAUtqB,WAA4BjqE,OAAQwtC,EAAI96B,EAAGnJ,IAAMmJ,EAAG,CACjF,GAAmBoN,GAAfnJ,EAAIpiB,EAAEgV,GAAGwqC,MAAYi8C,qBAAqB55E,GAAI,OAAOhX,EAAE,CAACoX,EAAIsJ,EAAE,GAAItJ,EAAIsJ,EAAE,KAC5EtJ,GAAKG,EAAE41E,cAERtrE,EAAE7nB,UAAUs9F,6BAA+B,SAAUtgF,GACtD,IAAI1D,EACJ,OAAOA,EAAI1a,KAAKg4F,qBAAqB55E,GAAIpe,KAAKq9F,uBAAuB3iF,IACpEuO,EAAE7nB,UAAUouF,gCAAkC,SAAUpxE,GACzD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAAqC96B,EAAI,EAAGnJ,GAAvCikC,EAAIx1C,KAAK63F,uBAAoC7vF,OAAQuJ,EAAImJ,EAAGA,IAAK,IAAItT,EAAIouC,EAAE96B,IAAM+6D,aAAer3D,EAAG,OAAOhX,GAC9G6hB,EAAE7nB,UAAUu9F,4BAA8B,SAAUvgF,GACrD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAEtB,IAAKH,EAAI,EAAGjiB,EAAI,GAA0BgV,EAAI,EAAGnK,GAA7BuX,EAAI3e,KAAK2tF,aAA0B3lF,OAAQZ,EAAImK,EAAGA,IAAeikC,GAAV96B,EAAIiE,EAAEpN,IAAUgjF,YAAa75E,EAAEqyE,aAAa3uE,IAAM7hB,EAAEyR,KAAK,CAACwQ,EAAGA,EAAIg3B,IAAKh3B,GAAKg3B,EAEtJ,OAAOj5C,GACN0sB,EAAE7nB,UAAUw9F,2BAA6B,SAAUxgF,EAAG1D,GACvD,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAE/B,IAAKA,GAAK,MAAQ+d,EAAIA,EAAI,IAAImkF,UAAWlgF,EAAI,EAAGmJ,EAAI,GAAImB,EAAI,GAAIzK,EAAI,SAAU9D,GAC5E,OAAO,MAAQ/d,EAAI+d,EAAErX,aAAa+a,KAAOzhB,EAAI+d,EAAEqyE,aAAa3uE,IACrC7M,EAAI,EAAGnK,GAA7BygB,EAAI7nB,KAAK8sF,aAA0B9kF,OAAQZ,EAAImK,EAAGA,IAAeikC,GAAVj5C,EAAIsrB,EAAEtW,IAAUgjF,YAAa/1E,EAAEjiB,KAAOurB,EAAE,KAAOnJ,EAAImJ,EAAE,GAAKnJ,EAAI62B,EAAIvsB,EAAEjb,KAAK8Z,EAAI,CAACnJ,EAAGA,EAAI62B,KAAM72B,GAAK62B,EAE1J,OAAOvsB,GACNA,EAAE7nB,UAAU27F,qBAAuB,SAAU3+E,GAC9C,IAAI1D,EAAGnJ,EACP,OAAwE,OAAjEA,EAAIvR,KAAKu8F,UAAUtG,6BAA6Bv9E,KAAKmS,IAAI,EAAGzM,KAAerW,MAAQwJ,EAA2B,CACnHxJ,OAD6F2S,EAAI1a,KAAK2tF,aAC7F3lF,OAAS,EAClB+rB,OAAQrZ,EAAEA,EAAE1S,OAAS,GAAGusF,cAEzBtrE,EAAE7nB,UAAU+8F,qBAAuB,SAAU//E,GAC9C,OAAOpe,KAAKu8F,UAAUnG,6BAA6Bh4E,EAAErW,MAAOqW,EAAE2V,SAC7D9K,EAAE7nB,UAAU09F,0BAA4B,SAAU1gF,GACnD,OAAOhX,EAAEpH,KAAK+8F,qBAAqB3+E,KAClC6K,EAAE7nB,UAAUi8F,uBAAyB,SAAUj/E,GAChD,IAAI1D,EAAGnJ,EAAGikC,EAAGh3B,EACb,GAAIJ,EAAIhX,EAAEgX,GAAI,OAAOI,EAAIJ,EAAE,GAAI7M,EAAI6M,EAAE,GAAIo3B,EAAIx1C,KAAK+8F,qBAAqBv+E,GAAI9D,EAAI1a,KAAK+8F,qBAAqBxrF,GAAInK,EAAE,CAACouC,EAAG96B,KAClHuO,EAAE7nB,UAAU29F,uBAAyB,SAAU3gF,GAChD,IAAI1D,EAAGnJ,EACP,OAAO6M,EAAIhX,EAAEgX,GAAI1D,EAAI1a,KAAKm+F,qBAAqB//E,EAAE,IAAKo3B,EAAEp3B,KAAO7M,EAAIvR,KAAKm+F,qBAAqB//E,EAAE,KAAMhX,EAAE,CAACsT,EAAGnJ,KAC1G0X,EAAE7nB,UAAUypE,UAAY,SAAUzsD,GACnC,OAAOpe,KAAKu8F,UAAU1xB,UAAU,MAAQzsD,EAAIA,EAAEm+E,eAAY,IACzDtzE,EAAE7nB,UAAU49F,SAAW,WACxB,IAAI5gF,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAA2BA,EAAI,GAAI96B,EAAI,EAAGnJ,GAArCnK,EAAIpH,KAAK2tF,aAAkC3lF,OAAQuJ,EAAImJ,EAAGA,IAAK0D,EAAIhX,EAAEsT,GAAI86B,EAAExnC,KAAKoQ,EAAE29B,MAEvF,OAAOvG,GACNvsB,EAAE7nB,UAAU0rF,UAAY,WACzB,IAAI1uE,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAKjkC,EAAI,GAAyB6M,EAAI,EAAG1D,GAA5BtT,EAAIpH,KAAKg/F,YAAyBh3F,OAAQ0S,EAAI0D,EAAGA,IAAKo3B,EAAIpuC,EAAEgX,GAAI7M,EAAEvD,KAAKnK,MAAM0N,EAAGikC,EAAEs3C,aAE/F,OAAOv7E,GACN0X,EAAE7nB,UAAUsxE,WAAa,WAC1B,OAAO1yE,KAAK2tF,YAAYh3E,OAAO3W,KAAKg/F,YAAYroF,OAAO3W,KAAK8sF,cAC3D7jE,EAAE7nB,UAAUm2E,uBAAyB,WACtC,IAAIn5D,EACJ,OAAOA,EAAI,GAAIpe,KAAKu8F,UAAUrH,YAAW,SAAUx6E,GACjD,OAAO0D,EAAEpQ,KAAK0M,EAAE09E,aAAa19E,EAAEqhC,KAAKm8C,0BAClC,IAAIl4F,KAAK2Z,YAAYyE,IACxB6K,EAAE7nB,UAAU0X,SAAW,WACxB,OAAO9Y,KAAKu8F,UAAUzjF,YACrBmQ,EAAE7nB,UAAUuc,OAAS,WACtB,OAAO3d,KAAKu8F,UAAU5+E,UACrBsL,EAAE7nB,UAAUyzF,UAAY,WACzB,IAAIz2E,EACJ,OAAO+b,KAAKtf,UAAU,WACpB,IAAIH,EAAGnJ,EAAGnK,EAAGouC,EAEb,IAAmCA,EAAI,GAAI96B,EAAI,EAAGnJ,GAA7CnK,EAAIpH,KAAKu8F,UAAUtqB,WAAgCjqE,OAAQuJ,EAAImJ,EAAGA,IAAK0D,EAAIhX,EAAEsT,GAAI86B,EAAExnC,KAAKmsB,KAAKjf,MAAMkD,EAAE29B,KAAK84C,cAE/G,OAAOr/C,GACPz1C,KAAKC,QACNipB,EAnVkG,CAoVrGvO,EAAEla,SACJT,KAAKC,MAAO,WACZ0a,EAAEukF,mBAAqB,WACrB,SAAS7gF,EAAEA,GACT,IAAI1D,EACJ1a,KAAKiuF,YAAc7vE,EAAGpe,KAAKoX,SAAWpX,KAAKiuF,YAAY72E,SAAUsD,EAAI1a,KAAKiuF,YAAY/P,mBAAoBl+E,KAAKk/F,cAAgBxkF,EAAE,GAAI1a,KAAKs2F,YAAc57E,EAAE,GAAI1a,KAAKm/F,cAAgBn/F,KAAKoX,SAAS2lF,qBAAqB/8F,KAAKk/F,eAAgBl/F,KAAKo/F,YAAcp/F,KAAKoX,SAAS2lF,qBAAqB/8F,KAAKs2F,aAAct2F,KAAKitF,MAAQjtF,KAAKoX,SAASqlF,gBAAgBz8F,KAAKo/F,YAAYr3F,OAAQ/H,KAAKm5F,eAAiBn5F,KAAKitF,MAAMkM,iBAAkBn5F,KAAKq/F,kBAAoBr/F,KAAKitF,MAAMlxC,KAAK27C,oBAAoB13F,KAAKo/F,YAAYrrE,OAAS,GAAI/zB,KAAKs/F,cAAgBt/F,KAAKitF,MAAMlxC,KAAK27C,oBAAoB13F,KAAKo/F,YAAYrrE,QAGllB,OAAO3V,EAAEhd,UAAUm+F,uBAAyB,WAC1C,OAAOv/F,KAAKitF,MAAM0L,iBAAmB34F,KAAKitF,MAAMgM,eAAiBj5F,KAAKitF,MAAM/a,UAAY,IAAMlyE,KAAKm/F,cAAcprE,OAAS/zB,KAAKm5F,gBAAkB,OAASn5F,KAAKs/F,eAC9JlhF,EAAEhd,UAAUo+F,0BAA4B,WACzC,OAAOx/F,KAAKitF,MAAM0L,kBAAoB34F,KAAKitF,MAAMgM,eAAiBj5F,KAAKm5F,gBAAkB,OAASn5F,KAAKs/F,eAAiB,OAASt/F,KAAKq/F,oBACrIjhF,EAAEhd,UAAUq+F,wBAA0B,WACvC,OAAOz/F,KAAKitF,MAAM0L,iBAAmB34F,KAAKitF,MAAMgM,cAAgBj5F,KAAKitF,MAAM/a,WAC1E9zD,EAAEhd,UAAUs+F,sBAAwB,WACrC,OAAO1/F,KAAKitF,MAAMgM,cAAgB,IAAMj5F,KAAKm/F,cAAcprE,SAAW/zB,KAAKitF,MAAM/a,WAChF9zD,EAAEhd,UAAUu+F,+BAAiC,WAC9C,OAAO3/F,KAAKitF,MAAM0L,kBAAoB34F,KAAKitF,MAAMgM,cAAgBj5F,KAAKitF,MAAM/a,WAC3E9zD,EAhBkB,IAkBvBre,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EACAoiB,EACAmJ,EACAmB,EACApB,EACAlrB,EAAI,SAAUyhB,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG2D,EAAEte,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFC,EAAI,GAAG9D,eAEXhe,EAAIme,EAAEo1D,eAAgB7mD,EAAIvO,EAAEs1D,eAAgBloD,EAAIpN,EAAEq1D,iBAAkBpxD,EAAIjE,EAAEsxD,gBAAiB5tD,EAAI1D,EAAEwxD,gBAAiBrkD,EAAInN,EAAE0xD,qBAAsBhlE,EAAIsT,EAAE2xD,qBAAsB72B,EAAI96B,EAAE8xD,eAAgBhuD,EAAI9D,EAAEgyD,cAAen7D,EAAImJ,EAAEysB,OAAQzsB,EAAEklF,YAAc,SAAUvhF,GAC3P,SAASxhB,IACPmD,KAAKoX,SAAW,IAAIsD,EAAE28D,SAAYr3E,KAAKg4E,YAAc,GAAIh4E,KAAK6/F,kBAAoB,GAAI7/F,KAAK8uF,SAAW,EAIxG,OAAOnyF,EAAEE,EAAGwhB,GAAIxhB,EAAEuE,UAAUosF,YAAc,SAAUpvE,GAClD,IAAI1D,EACJ,OAAO0D,EAAEysD,UAAU7qE,KAAKoX,eAAY,GAAUpX,KAAKoX,SAAWgH,EAAGpe,KAAK8/F,qBAAsB9/F,KAAK8uF,WAAY,OAASp0E,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEqlF,6BAA+BrlF,EAAEqlF,6BAA6B3hF,QAAK,IACrOvhB,EAAEuE,UAAU4+F,YAAc,WAC3B,MAAO,CACL5oF,SAAUpX,KAAKoX,SACf6oF,cAAejgG,KAAKk+E,qBAErBrhF,EAAEuE,UAAU8+F,aAAe,SAAU9hF,GACtC,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EACb,OAAOjN,EAAI6M,EAAEhH,SAAUoH,EAAIJ,EAAE6hF,cAAe,OAAS74F,EAAIpH,KAAKq7E,WAAa,mBAAqBj0E,EAAE+4F,6BAA+B/4F,EAAE+4F,8BAA+BngG,KAAKwtF,YAAY,MAAQj8E,EAAIA,EAAI,IAAImJ,EAAE28D,UAAar3E,KAAKogG,aAAa,MAAQ5hF,EAAIA,EAAI,CAAC,EAAG,IAAK,OAASg3B,EAAIx1C,KAAKq7E,WAAa,mBAAqB7lC,EAAE6qD,2BAA6B7qD,EAAE6qD,kCAA+B,GACpXxjG,EAAEuE,UAAUmmF,WAAa,SAAUnpE,EAAG1D,GACvC,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EACb,OAAOA,GAAK,MAAQ9D,EAAIA,EAAI,CAC1BwnE,gBAAgB,IACfA,eAAgB96E,EAAIpH,KAAKk+E,mBAAoBl+E,KAAKwtF,YAAYxtF,KAAKoX,SAASgmF,kBAAkBh/E,EAAGhX,IAAemK,GAAVikC,EAAIpuC,EAAE,IAAYgX,EAAEm2E,YAAa/1E,GAAKxe,KAAKogG,aAAa7uF,GAAIvR,KAAKsgG,iCAAiC,CAAC9qD,EAAGjkC,KAC9M1U,EAAEuE,UAAUm/F,YAAc,SAAUniF,GACrC,IAAI7M,EACJ,OAAO,MAAQ6M,IAAMA,EAAI,IAAI1D,EAAEy9E,OAAU5mF,EAAI,IAAImJ,EAAE28D,SAAS,CAACj5D,IAAKpe,KAAKogF,eAAe7uE,IACrF1U,EAAEuE,UAAUg/E,eAAiB,SAAUhiE,GACxC,IAAI7M,EAAGnK,EAAGouC,EACV,OAAO,MAAQp3B,IAAMA,EAAI,IAAI1D,EAAE28D,UAAajwE,EAAIpH,KAAKk+E,mBAAoBl+E,KAAKwtF,YAAYxtF,KAAKoX,SAAS0lF,sBAAsB1+E,EAAGhX,IAAemK,GAAVikC,EAAIpuC,EAAE,IAAYgX,EAAEm2E,YAAav0F,KAAKogG,aAAa7uF,GAAIvR,KAAKsgG,iCAAiC,CAAC9qD,EAAGjkC,KACtO1U,EAAEuE,UAAUy9E,aAAe,SAAUzgE,EAAG7M,GACzC,IAAInK,EAAGouC,EACP,OAAOpuC,EAAIpH,KAAKwgG,2BAA4BhrD,EAAI96B,EAAE67E,KAAKE,4BAA4Br4E,EAAGhX,GAAIpH,KAAKunF,WAAW/xC,EAAGjkC,IAC5G1U,EAAEuE,UAAUq/F,iBAAmB,WAChC,IAAIriF,EAAG1D,EAAGnJ,EACV,OAAOmJ,EAAI1a,KAAKk+E,mBAAoBl+E,KAAKwtF,YAAYxtF,KAAKoX,SAASsmF,wBAAwBhjF,IAAe0D,GAAV7M,EAAImJ,EAAE,IAAY,EAAG1a,KAAKogG,aAAahiF,GAAIpe,KAAKsgG,iCAAiC,CAAC/uF,EAAG6M,KACpLvhB,EAAEuE,UAAUugF,gBAAkB,WAC/B,IAAIvjE,EAAG7M,EACP,OAAOA,EAAI,IAAImJ,EAAEukF,mBAAmBj/F,OAASy/F,2BAA6Bz/F,KAAK0gG,oBAAqB1gG,KAAKogG,aAAa7uF,EAAE2tF,gBAAkB3tF,EAAEmuF,yBAA2BthF,EAAI,IAAI1D,EAAE28D,SAAS,CAAC9lE,EAAE07E,MAAMoL,oBAAqBr4F,KAAKogF,eAAehiE,IAAM7M,EAAEguF,yBAA2Bv/F,KAAKygG,mBAAqBlvF,EAAEouF,iCAAmC3/F,KAAK2gG,2BAA6BpvF,EAAEiuF,4BAA8Bx/F,KAAK4gG,oBAAoBrvF,GAAKvR,KAAK6+E,aAAa,OAC/bhiF,EAAEuE,UAAU4/E,WAAa,SAAU5iE,GACpC,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EACb,OAAOjN,EAAImJ,EAAE28D,SAASC,SAASl5D,GAAIo3B,EAAIx1C,KAAKk+E,mBAAoBl+E,KAAKwtF,YAAYxtF,KAAKoX,SAAS6lF,qBAAqB1rF,EAAGikC,IAAepuC,GAAVoX,EAAIg3B,EAAE,IAAYjkC,EAAEgjF,YAAc,EAAGv0F,KAAKogG,aAAah5F,GAAIpH,KAAKsgG,iCAAiC,CAAC9hF,EAAGpX,KAChOvK,EAAEuE,UAAUy/F,YAAc,SAAUziF,GACrC,IAAI7M,EAAGnK,EAAGouC,EACV,OAAOjkC,EAAImJ,EAAE28D,SAASC,SAASl5D,GAAGu+E,6BAA6B38F,KAAKoX,UAAWhQ,EAAIpH,KAAK8gG,iBAAiB,CACvG9gC,QAAQ,IACNxqB,EAAIx1C,KAAKoX,SAAS2nF,uBAAuB33F,GAAIpH,KAAKwtF,YAAYj8E,GAAIvR,KAAKogG,aAAa5qD,IACvF34C,EAAEuE,UAAUggF,WAAa,SAAUhjE,GACpC,OAAOpe,KAAKo9E,YAAY,CAACh/D,KACxBvhB,EAAEuE,UAAUg8E,YAAc,SAAUh/D,GACrC,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAEnB,IAAKvX,EAAI,GAAIoX,EAAI,EAAGjiB,EAAI6hB,EAAEpW,OAAQzL,EAAIiiB,EAAGA,IAAKg3B,EAAIp3B,EAAEI,IAAK,OAASG,EAAI3e,KAAKq7E,UAAY18D,EAAEoiF,4BAA4BvrD,QAAK,KAAYjkC,EAAImJ,EAAEo3E,WAAWI,kBAAkB18C,GAAIpuC,EAAE4G,KAAKuD,IAEpL,OAAOvR,KAAKghG,kBAAkB55F,IAC7BvK,EAAEuE,UAAU6/F,iBAAmB,SAAU7iF,GAC1C,OAAOpe,KAAKghG,kBAAkB,CAAC5iF,KAC9BvhB,EAAEuE,UAAU4/F,kBAAoB,SAAU5iF,GAC3C,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAE5B,IAAKoB,EAAI,IAAIvO,EAAE67E,KAAQ/3E,EAAI,EAAGjiB,EAAI6hB,EAAEpW,OAAQzL,EAAIiiB,EAAGA,IAAeqJ,GAAVtW,EAAI6M,EAAEI,IAAUwsE,UAAWrsE,EAAI,OAASmJ,EAAIpN,EAAE4C,OAAO06D,YAAYnwD,IAAMC,EAAEowD,kBAAe,EAAQ1iC,EAAIx1C,KAAKwgG,2BAA4B7hF,IAAM62B,EAAE0iC,aAAev5D,GAAIvX,EAAIsT,EAAE67E,KAAKC,gCAAgCjlF,EAAGikC,GAAIvsB,EAAIA,EAAE2tE,WAAWxvF,GAE3R,OAAOpH,KAAKunF,WAAWt+D,IACtBpsB,EAAEuE,UAAU6iF,gCAAkC,SAAU7lE,GACzD,IAAI1D,EAEJ,GAAIA,EAAI1a,KAAK8gG,mBAAoBh5E,EAAEpN,GAAI,CACrC,GAAI,aAAe0D,GAAK,IAAM1D,EAAE,GAAGqZ,OAAQ,OAAO,EAClD,GAAI/zB,KAAK8jF,oCAAoC1lE,GAAI,OAAO,OACnD,GAAI1D,EAAE,GAAG3S,QAAU2S,EAAE,GAAG3S,MAAO,OAAO,EAE7C,OAAO,GACNlL,EAAEuE,UAAUo/E,kBAAoB,SAAUpiE,EAAG1D,GAC9C,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGsK,EAAGpB,EACzB,OAAOrJ,GAAK,MAAQ9D,EAAIA,EAAI,IAAI1S,OAAQzL,EAAIyD,KAAK8gG,mBAAoBniF,EAAI3e,KAAKk+E,oBAAoBj1D,EAAInB,EAAEnJ,IAAQ62B,EAAI,aAAep3B,GAAK,IAAM7hB,EAAE,GAAGw3B,OAASlM,EAAItrB,EAAE,GAAGwL,QAAUxL,EAAE,GAAGwL,QAAOytC,GAAKx1C,KAAKkhG,mCAAqC95F,EAAIpH,KAAKmhG,WAAY/5F,EAAE6xF,aAAej5F,KAAK0gG,oBAAsB1gG,KAAKohG,8BAA+BphG,KAAKogG,aAAazhF,EAAE,IAAKvX,EAAE8qE,cAAmBjpD,IAAMtK,EAAI3e,KAAKqhG,4BAA4BjjF,EAAG,CACzapW,OAAQwW,IACN,aAAeJ,IAAM7M,EAAIvR,KAAKshG,qBAAqB3iF,KAAMpN,GAAKvR,KAAKuhG,eAAehwF,IAAI,IAAOvR,KAAKwtF,YAAYxtF,KAAKoX,SAAS0/E,kBAAkBn4E,IAAK3e,KAAKogG,aAAazhF,EAAE,KAAK62B,IAAK3tB,QAAS,KAC7LhrB,EAAEuE,UAAU++E,kBAAoB,SAAU/hE,GAC3C,IAAI1D,EACJ,OAAOA,EAAI1a,KAAKk+E,mBAAmB,GAAIl+E,KAAKwtF,YAAYxtF,KAAKoX,SAAS4/E,4BAA4B54E,EAAG1D,IAAK1a,KAAKogG,aAAa1lF,IAC3H7d,EAAEuE,UAAUogG,iBAAmB,SAAUpjF,GAC1C,IAAI1D,EACJ,OAAQA,EAAI1a,KAAKoX,SAAS4gF,qBAAqB55E,KAAOpe,KAAKyhG,wBAAyBzhG,KAAKwtF,YAAYxtF,KAAKoX,SAAS0/E,kBAAkBp8E,IAAK1a,KAAKogG,aAAa1lF,EAAE,UAAO,GACpK7d,EAAEuE,UAAUu/F,yBAA2B,WACxC,IAAIviF,EAAG1D,EAAGnJ,EAAGnK,EACb,OAAoCA,GAA7BmK,EAAIvR,KAAKk+E,oBAA0B,GAAIxjE,EAAInJ,EAAE,GAAI6M,EAAIpe,KAAKoX,SAAS4lF,mBAAmBtiF,GAAI1a,KAAKmmF,uBAAuB/nE,EAAE+uE,oBAAqBntF,KAAKogG,aAAah5F,IACjK,IAAKvK,EAAEuE,UAAU2hF,kBAAoB,WAC1C,OAAO/iF,KAAK0hG,oBAAsB1hG,KAAK2hG,cAAe3hG,KAAK6+E,aADtD,MAEJhiF,EAAEuE,UAAU4hF,kBAAoB,WACjC,OAAO,MAAQhjF,KAAK0hG,qBAAuB1hG,KAAKi/E,iBAAiB,CAACj/E,KAAK0hG,oBAAqB1hG,KAAK0hG,oBAH5F,IAGoH15F,SAAUhI,KAAKk+E,yBAAsB,GAC7JrhF,EAAEuE,UAAU6hF,kBAAoB,WACjC,OAAOjjF,KAAK0hG,oBAAsB,MACjC7kG,EAAEuE,UAAUwgG,oBAAsB,SAAUxjF,GAC7C,IAAI1D,EACJ,OAAsC,OAA/BA,EAAI1a,KAAK6/F,kBAAkBzhF,MAAuB,IAAN1D,GAClD7d,EAAEuE,UAAUumF,uBAAyB,SAAUvpE,GAChD,IAAI1D,EACJ,OAAQA,GAAK1a,KAAK6/F,kBAAkBzhF,IAAMpe,KAAK4nF,oBAAoBxpE,EAAG1D,GAAK1a,KAAKmmF,uBAAuB/nE,IACtGvhB,EAAEuE,UAAUygG,uBAAyB,SAAUzjF,GAChD,OAAOo3B,EAAEp3B,GAAKpe,KAAK8hG,4BAA4B1jF,GAAKpe,KAAK+hG,2BAA2B3jF,IACnFvhB,EAAEuE,UAAU2gG,2BAA6B,WAC1C,IAAOrnF,EAAGnJ,EAAGnK,EAAGouC,EAEhB,GAAI96B,EAAI1a,KAAKyiF,sBAAuB,CAClC,IAA6BlxE,EAAI,EAAGnK,GAA/BouC,EAAI96B,EAAEo9E,kBAA+B9vF,OAAQZ,EAAImK,EAAGA,IAAK,IAAQikC,EAAEjkC,GAAOi5E,aAAc,OAAO,EAEpG,OAAO,IAER3tF,EAAEuE,UAAU0gG,4BAA8B,WAC3C,IAAI1jF,EACJ,GAAIA,EAAIpe,KAAKmhG,WAAY,OAAQ/iF,EAAE86E,mBAClCr8F,EAAEuE,UAAUwmF,oBAAsB,SAAUxpE,EAAG1D,GAChD,OAAO86B,EAAEp3B,GAAKpe,KAAKgiG,kBAAkB5jF,EAAG1D,IAAM1a,KAAKiiG,iBAAiB7jF,EAAG1D,GAAI1a,KAAK6/F,kBAAkBzhF,GAAK1D,EAAG1a,KAAKkiG,4CAC9GrlG,EAAEuE,UAAU6gG,iBAAmB,SAAU7jF,EAAG7M,GAC7C,IAAOikC,EAAMj5C,EACb,GAAIi5C,EAAIx1C,KAAKk+E,mBAAoB,OAAW1oC,EAAE,KAAQA,EAAE,GAAcx1C,KAAKwtF,YAAYxtF,KAAKoX,SAAS8/E,oBAAoB94E,EAAG7M,EAAGikC,IAAM,SAAWp3B,GAAK7hB,EAAIme,EAAE67E,KAAKE,4BAA4BllF,EAAG,CAC7LkwB,KAAMlwB,IACJvR,KAAKunF,WAAWhrF,SAAM,GACzBM,EAAEuE,UAAU4gG,kBAAoB,SAAU5jF,EAAG1D,GAC9C,IAAOtT,EACP,GAAIA,EAAIpH,KAAKk+E,mBAAoB,OAAOl+E,KAAK6hG,uBAAuBzjF,IAAUpe,KAAKmhG,WAAYnhG,KAAKwtF,YAAYxtF,KAAKoX,SAASumF,2BAA2Bv/E,EAAG1D,EAAGtT,IAAKpH,KAAKogG,aAAah5F,SAAM,GAC3LvK,EAAEuE,UAAU+kF,uBAAyB,SAAU/nE,GAChD,OAAOo3B,EAAEp3B,IAAMpe,KAAKmiG,qBAAqB/jF,GAAIpe,KAAKoiG,4BAA8BpiG,KAAKqiG,oBAAoBjkF,UAAWpe,KAAK6/F,kBAAkBzhF,GAAIpe,KAAKkiG,4CACnJrlG,EAAEuE,UAAUihG,oBAAsB,SAAUjkF,GAC7C,IAAI1D,EACJ,GAAIA,EAAI1a,KAAKk+E,mBAAoB,OAAOl+E,KAAKwtF,YAAYxtF,KAAKoX,SAASggF,uBAAuBh5E,EAAG1D,KAChG7d,EAAEuE,UAAU+gG,qBAAuB,SAAU/jF,GAC9C,IAAI1D,EACJ,GAAIA,EAAI1a,KAAKk+E,mBAAoB,OAAOl+E,KAAKwtF,YAAYxtF,KAAKoX,SAASggF,uBAAuBh5E,EAAG1D,KAChG7d,EAAEuE,UAAU+gF,wBAA0B,WACvC,IAAI/jE,EACJ,OAAQ,OAASA,EAAIpe,KAAKmhG,YAAc/iF,EAAE06E,uBAAoB,GAAU,GACvEj8F,EAAEuE,UAAUygF,wBAA0B,WACvC,IAAInnE,EAAGnJ,EAAGnK,EACV,GAAIsT,EAAI1a,KAAKmhG,WAAY,OAAQ,OAAS/5F,EAAIouC,EAAE96B,EAAEk+E,8BAA+BxxF,EAAEylE,eAAsBt7D,EAAIvR,KAAKsiG,oBAAsBlkF,EAAE7M,EAAEynF,wBAAyBt+E,EAAEs+E,8BAA2B,EAASt+E,EAAEo+E,kBAAoB,GAChOj8F,EAAEuE,UAAUghF,qBAAuB,WACpC,IAAIhkE,EACJ,GAAIA,EAAIpe,KAAKmhG,WAAY,OAAOnhG,KAAKwtF,YAAYxtF,KAAKoX,SAASylF,aAAaz+E,EAAGA,EAAEgkE,0BAChFvlF,EAAEuE,UAAU0gF,qBAAuB,WACpC,IAAI1jE,EACJ,GAAIA,EAAIpe,KAAKmhG,WAAY,OAAOnhG,KAAKwtF,YAAYxtF,KAAKoX,SAASylF,aAAaz+E,EAAGA,EAAE0jE,0BAChFjlF,EAAEuE,UAAU8/F,+BAAiC,WAC9C,IAAI9iF,EACJ,OAAQ,OAASA,EAAIpe,KAAKmhG,YAAc/iF,EAAEq6E,yBAAsB,GAAU,GACzE57F,EAAEuE,UAAUggG,4BAA8B,WAC3C,IAAIhjF,EAAG1D,EACP,OAAQ0D,EAAI,OAAS1D,EAAI1a,KAAKmhG,YAAczmF,EAAEyyE,wBAAqB,GAAUntF,KAAKmmF,uBAAuB/nE,QAAK,GAC7GvhB,EAAEuE,UAAUs/F,kBAAoB,WACjC,IAAItiF,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEnB,IAAKA,EAAIxe,KAAKk+E,mBAAmB,GAAqD3sE,EAAjDikC,EAAIx1C,KAAKoX,SAAS2lF,qBAAqBv+E,GAAGzW,MAAcqW,EAAIpe,KAAKmhG,WAAW1I,qBAAsB/9E,EAAI1a,KAAKoX,SAASqlF,gBAAgBlrF,EAAI,KAAOmJ,EAAEu+E,cAAgBv+E,EAAE+9E,oBAAsBr6E,GAAI7M,IAElO,OAAOiN,EAAIxe,KAAKoX,SAAS+mF,qBAAqB,CAC5Cp2F,MAAOytC,EACPzhB,OAAQ,IACN3sB,EAAIpH,KAAKoX,SAAS+mF,qBAAqB,CACzCp2F,MAAOwJ,EACPwiB,OAAQ,IACN/zB,KAAKwtF,YAAYxtF,KAAKoX,SAASymF,+BAA+B,CAACr/E,EAAGpX,MACrEvK,EAAEuE,UAAUghG,wBAA0B,WACvC,IAAIhkF,EAAG1D,EAAGnJ,EAAGikC,EAAGh3B,EAAGjiB,EAEnB,GAAIA,EAAIyD,KAAKk+E,iBAAiB,CAC5BqkB,YAAY,IACV,CACF,IAAK7nF,EAAI1a,KAAKoX,SAASmgF,2BAA2Bh7F,GAAagV,EAAI,EAAGikC,GAAhBh3B,EAAIpX,KAAkBY,OAAQwtC,EAAIjkC,EAAGA,IAAemJ,EAAV0D,EAAII,EAAEjN,KAAYvR,KAAK6hG,uBAAuBzjF,KAAO1D,EAAE0D,IAAK,GAE5J,IAAKO,EAAEjE,EAAG1a,KAAK6/F,mBAAoB,OAAO7/F,KAAK6/F,kBAAoBnlF,EAAG1a,KAAKkiG,4CAE5ErlG,EAAEuE,UAAU8kF,qBAAuB,WACpC,OAAO30E,EAAExR,KAAK,GAAIC,KAAK6/F,oBACtBhjG,EAAEuE,UAAUo/F,yBAA2B,WACxC,IAAIpiF,EAAG1D,EAAGnJ,EAAGnK,EAGb,IAAKsT,KAFL0D,EAAI,GAAI7M,EAAIvR,KAAK6/F,mBAEY,KAAhBz4F,EAAImK,EAAEmJ,KAAgB8D,EAAE9D,KAAO0D,EAAE1D,GAAKtT,GAEnD,OAAOgX,GACNvhB,EAAEuE,UAAUohG,gBAAkB,WAC/B,OAAOxiG,KAAK4nF,oBAAoB,UAAU,IACzC/qF,EAAEuE,UAAUqhG,cAAgB,WAC7B,OAAOziG,KAAKmmF,uBAAuB,WAClCtpF,EAAEuE,UAAUshG,mBAAqB,WAClC,OAAO1iG,KAAK4hG,oBAAoB,WAC/B/kG,EAAEwtE,YAAY,uCAAwCxtE,EAAEwtE,YAAY,wDAAyDxtE,EAAEwtE,YAAY,yDAA0DxtE,EAAEwtE,YAAY,gDAAiDxtE,EAAEwtE,YAAY,6CAA8CxtE,EAAEwtE,YAAY,iCAAkCxtE,EAAEuE,UAAUg/F,aAAe,SAAUhiF,GACtZ,IAAI1D,EAAGnJ,EACP,OAAOmJ,EAAI1a,KAAKoX,SAASimF,uBAAuBj/E,GAAI,OAAS7M,EAAIvR,KAAKq7E,UAAY9pE,EAAEoxF,sDAAsDjoF,QAAK,GAC9I7d,EAAEuE,UAAU88E,iBAAmB,WAChC,IAAI9/D,EACJ,OAAQA,EAAIpe,KAAK8gG,oBAAsB9gG,KAAKoX,SAAS2nF,uBAAuB3gF,QAAK,GAChFvhB,EAAEuE,UAAU69E,iBAAmB,SAAU7gE,GAC1C,IAAI1D,EACJ,OAAOA,EAAI1a,KAAKoX,SAASimF,uBAAuBj/E,GAAIpe,KAAK4iG,sBAAsBC,iBAAiBnoF,IAC/F7d,EAAEuE,UAAUugG,YAAc,WAC3B,IAAIvjF,EACJ,OAAQA,EAAIpe,KAAK8gG,oBAAsB9gG,KAAKoX,SAAS+mF,qBAAqB//E,EAAE,SAAM,GACjFvhB,EAAEuE,UAAU0/F,iBAAmB,SAAU1iF,GAC1C,IAAI1D,EAAGnJ,EACP,OAAO,OAASmJ,EAAI,OAASnJ,EAAIvR,KAAK8iG,qBAAuBvxF,EAAIvR,KAAK4iG,sBAAsB9B,iBAAiB1iF,IAAM1D,EAAIne,EAAE,CACvHwL,MAAO,EACPgsB,OAAQ,KAETl3B,EAAEuE,UAAU2hG,wBAA0B,SAAU3kF,EAAG1D,GACpD,IAAInJ,EACJvR,KAAK8iG,oBAAsB1kF,EAE3B,IACE7M,EAAImJ,IACJ,QACA1a,KAAK8iG,oBAAsB,KAG7B,OAAOvxF,GACN1U,EAAEuE,UAAU4hG,gBAAkB,SAAU5kF,EAAG1D,GAC5C,IAAInJ,EACJ,OAAOA,EAAIvR,KAAKoX,SAASimF,uBAAuBj/E,GAAIpe,KAAK+iG,wBAAwBxxF,EAAGmJ,IACnF7d,EAAEuE,UAAUmjF,mBAAqB,SAAUnmE,EAAG1D,GAC/C,IAAInJ,EACJ,OAAOA,EAAIvR,KAAKijG,gCAAgC7kF,EAAG,CACjD4hD,QAAQ,IACNhgE,KAAK+iG,wBAAwBxxF,EAAGmJ,IACnC7d,EAAEuE,UAAUigG,4BAA8B,SAAUjjF,EAAG1D,GACxD,IAAInJ,EAAGnK,EAAGouC,EAAGh3B,EACb,OAAOpX,GAAK,MAAQsT,EAAIA,EAAI,IAAI1S,OAAqCwW,GAA7Bg3B,EAAIx1C,KAAKk+E,oBAA0B,GAAI3sE,EAAIikC,EAAE,GAAI,aAAep3B,EAAIhX,EAAIoX,GAAKpX,EAAIoX,EAAIxe,KAAKkjG,iCAAiC1kF,GAAI,GAAKpX,EAAImK,GAAKnK,EAAImK,EAAIvR,KAAKkjG,iCAAiC3xF,EAAG,GAAIhV,EAAE,CAACiiB,EAAGjN,KAC/O1U,EAAEuE,UAAU0iF,oCAAsC,SAAU1lE,GAC7D,IAAI1D,EACJ,QAAO1a,KAAKmjG,oBAA0BzoF,EAAI1a,KAAKqhG,4BAA4BjjF,GAAI,MAAQpe,KAAKshG,qBAAqB5mF,KAChH7d,EAAEuE,UAAU4gF,sBAAwB,SAAU5jE,GAC/C,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,OAAOx1C,KAAKmjG,kBAAoB/7F,EAAIpH,KAAKoX,SAAS4gF,qBAAqBh4F,KAAKmjG,oBAAsB3tD,EAAIx1C,KAAKk+E,mBAAoB92E,EAAIpH,KAAKqhG,4BAA4BjjF,GAAI7M,GAAK0X,EAAEusB,EAAGpuC,IAAKpH,KAAKi/E,iBAAiB,aAAe7gE,EAAIhX,EAAE,GAAKA,EAAE,IAAKmK,IAAMmJ,EAAI1a,KAAKshG,qBAAqBl6F,IAAMpH,KAAKuhG,eAAe7mF,QAAK,GAChT7d,EAAEuE,UAAUihF,2BAA6B,SAAUjkE,EAAG1D,GACvD,IAAInJ,EAAGnK,EACP,OAAOmK,GAAK,MAAQmJ,EAAIA,EAAI,IAAI1S,OAAQZ,EAAIpH,KAAKqhG,4BAA4BjjF,EAAG,CAC9EpW,OAAQuJ,IACNvR,KAAKi/E,iBAAiB73E,IACzBvK,EAAEuE,UAAUgiG,0BAA4B,WACzC,OAAOpjG,KAAK4hG,oBAAoB,QAAU5hG,KAAKqjG,qCAAqC,aAAU,GAC7FxmG,EAAEuE,UAAUiiG,qCAAuC,SAAUjlF,GAC9D,IAAI1D,EAAGnJ,EACP,OAAOmJ,EAAI1a,KAAK2hG,cAAepwF,EAAIvR,KAAKoX,SAASqnF,oCAAoCrgF,EAAG1D,GAAI1a,KAAKi/E,iBAAiB1tE,IACjH1U,EAAEuE,UAAUuiF,6BAA+B,WAC5C,IAAIvlE,EACJ,OAAQ,OAASA,EAAIpe,KAAKsjG,0BAA4BllF,EAAEpW,YAAS,GAAU,GAC1EnL,EAAEuE,UAAU2gF,0BAA4B,WACzC,OAAO/hF,KAAKmjG,mBAAqBnjG,KAAKujG,uBAAuBvjG,KAAK2hG,gBACjE9kG,EAAEuE,UAAUmiG,uBAAyB,SAAUnlF,GAChD,IAAI1D,EACJ,OAAQA,EAAI1a,KAAKoX,SAAS2lF,qBAAqB3+E,IAAMpe,KAAKwjG,uBAAuB9oF,QAAK,GACrF7d,EAAEuE,UAAU+8E,qBAAuB,SAAU//D,GAC9C,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKoX,SAAS6gF,mBAAmB75E,IAAM1D,EAAE25E,oBAAiB,GAC7Ex3F,EAAEuE,UAAUqhF,oBAAsB,WACnC,IAAIrkE,EACJ,OAAQA,EAAIpe,KAAKk+E,oBAAsBl+E,KAAKoX,SAASkmF,mBAAmBl/E,QAAK,GAC5EvhB,EAAEuE,UAAUkiG,uBAAyB,WACtC,IAAIllF,EACJ,OAAO,OAASA,EAAIpe,KAAKyiF,uBAAyBrkE,EAAE05E,sBAAmB,GACtEj7F,EAAEuE,UAAU02F,eAAiB,WAC9B,OAAO93F,KAAKg4E,YAAYpwE,MAAM,IAC7B/K,EAAEuE,UAAU0+F,mBAAqB,WAClC,IAAI1hF,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGtsB,EAAG0hB,EAErC,IAAK9M,EAAIvR,KAAKoX,SAAS0gF,iBAA8C15E,GAA5BO,EAAIkJ,EAAE7nB,KAAKg4E,YAAazmE,IAAUm6D,MAAO/uE,EAAIgiB,EAAEgtD,QAAS3rE,KAAKg4E,YAAczmE,EAAGnK,EAAI,EAAGoX,EAAI7hB,EAAEqL,OAAQwW,EAAIpX,EAAGA,KAAKsT,EAAI/d,EAAEyK,IAAMi0E,SAAW,KAAM,OAASvzD,EAAI9nB,KAAKq7E,WAAa,mBAAqBvzD,EAAE27E,gCAAkC37E,EAAE27E,+BAA+B/oF,GAE9S,IAAK2D,EAAI,GAAIm3B,EAAI,EAAGj5C,EAAI6hB,EAAEpW,OAAQzL,EAAIi5C,EAAGA,KAAK96B,EAAI0D,EAAEo3B,IAAM6lC,SAAWr7E,KAAMqe,EAAErQ,KAAK,OAASib,EAAIjpB,KAAKq7E,WAAa,mBAAqBpyD,EAAEy6E,4BAA8Bz6E,EAAEy6E,4BAA4BhpF,QAAK,GAEzM,OAAO2D,GACNxhB,EAAEuE,UAAU8qF,8BAAgC,SAAU9tE,GACvD,IAAI1D,EACJ,OAAO1a,KAAK8uF,WAAY,OAASp0E,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEipF,6BAA+BjpF,EAAEipF,6BAA6BvlF,QAAK,GAChJvhB,EAAEuE,UAAU+xF,8BAAgC,SAAU/0E,GACvD,IAAI1D,EACJ,OAAO1a,KAAK8uF,WAAY,OAASp0E,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEkpF,yCAA2ClpF,EAAEkpF,yCAAyCxlF,QAAK,GACxKvhB,EAAEuE,UAAUmgG,eAAiB,SAAUnjF,EAAG1D,GAC3C,IAAInJ,EACJ,GAAI6M,IAAMpe,KAAKmjG,kBAAmB,OAAOnjG,KAAKyhG,wBAAyBzhG,KAAKmjG,kBAAoB/kF,EAAG,OAAS7M,EAAIvR,KAAKq7E,WAAa,mBAAqB9pE,EAAEsyF,qCAAuCtyF,EAAEsyF,qCAAqC7jG,KAAKmjG,kBAAmBzoF,QAAK,GACnQ7d,EAAEuE,UAAUqgG,sBAAwB,WACrC,IAAIrjF,EACJ,GAAIpe,KAAKmjG,kBAAmB,OAAO,OAAS/kF,EAAIpe,KAAKq7E,WAAa,mBAAqBj9D,EAAE0lF,qCAAuC1lF,EAAE0lF,oCAAoC9jG,KAAKmjG,mBAAoBnjG,KAAKmjG,kBAAoB,MACvNtmG,EAAEuE,UAAUsuF,8BAAgC,SAAUtxE,EAAG1D,GAC1D,OAAO1a,KAAKwtF,YAAYxtF,KAAKoX,SAASs4E,8BAA8BtxE,EAAG1D,KACtE7d,EAAEuE,UAAUuuF,6BAA+B,SAAUvxE,EAAG1D,GACzD,OAAO1a,KAAKwtF,YAAYxtF,KAAKoX,SAASu4E,6BAA6BvxE,EAAG1D,KACrE7d,EAAEuE,UAAUw/F,oBAAsB,SAAUxiF,GAC7C,IAAI7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAChB,OAAO6K,EAAIgX,EAAEhH,SAAU7F,EAAI6M,EAAE6uE,MAA4B1wF,EAAI,EAAzBiiB,EAAIJ,EAAE8gF,eAAwB,EAAG1gF,GAAIjN,EAAE+7E,0BAA4BlvE,EAAE+gF,cAAcprE,QAAUxiB,EAAE4nF,kBAAoB,OAAS/6E,EAAEkhF,cAAgB9gF,GAAK,EAAIpX,EAAIA,EAAE0vF,kBAAkBv6F,GAAIA,EAAI,CAACiiB,EAAGA,IAAM,OAASJ,EAAEkhF,cAAgB,OAASlhF,EAAEihF,kBAAoB9iG,EAAI,CAACiiB,EAAI,EAAGA,EAAI,IAAMjiB,EAAI,CAACiiB,EAAGA,EAAI,GAAIA,GAAK,GAAKJ,EAAE+gF,cAAcprE,OAAS,IAAM,IAAMvV,GAAK,GAAIg3B,EAAI,IAAI96B,EAAE28D,SAAS,CAAC9lE,EAAEinF,sBAAsBH,oBAAqBr4F,KAAKwtF,YAAYpmF,EAAE01F,sBAAsBtnD,EAAGj5C,IAAKyD,KAAKogG,aAAa5hF,IAChgB3hB,EAAEuE,UAAUkhG,iBAAmB,WAChC,IAAIlkF,EAAG1D,EACP,OAAQA,EAAI1a,KAAK8gG,sBAAwB1iF,EAAI1D,EAAE,GAAG3S,OAAW,EAAK/H,KAAKoX,SAASqlF,gBAAgBr+E,EAAI,QAAK,GACxGvhB,EAAEuE,UAAU+/F,SAAW,WACxB,IAAI/iF,EACJ,OAAQA,EAAIpe,KAAK8gG,oBAAsB9gG,KAAKoX,SAASqlF,gBAAgBr+E,EAAE,GAAGrW,YAAS,GAClFlL,EAAEuE,UAAUkgG,qBAAuB,SAAUljF,GAC9C,IAAI7M,EACJ,OAAOA,EAAIvR,KAAKoX,SAASkmF,mBAAmBl/E,IAAMtF,aAAe4B,EAAEqvD,6BAA+B,KAAOx4D,EAAEumF,iBAAiB,QAAK,GAChIj7F,EAAEuE,UAAU8gG,wCAA0C,WACvD,IAAI9jF,EACJ,OAAO,OAASA,EAAIpe,KAAKq7E,WAAa,mBAAqBj9D,EAAE2lF,sCAAwC3lF,EAAE2lF,sCAAsC/jG,KAAK6/F,wBAAqB,GACtKhjG,EAAEuE,UAAUk/F,iCAAmC,SAAUliF,GAC1D,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEspF,sCAAwCtpF,EAAEspF,sCAAsC5lF,QAAK,GACjJvhB,EAAEuE,UAAU8hG,iCAAmC,SAAU9kF,EAAG1D,GAC7D,IAAInJ,EAAGnK,EACP,OAA0CmK,GAAnCnK,EAAIpH,KAAKoX,SAAS6zD,iBAAuB8I,qBAAqB31D,GAAIhX,EAAE0sE,mBAAmBviE,EAAImJ,IACjG7d,EA9S8O,CA+SjP6d,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEupF,YAAc,SAAUvpF,GACxB,SAASnJ,EAAE6M,GACTpe,KAAKiuF,YAAc7vE,EAAGpe,KAAKkkG,YAAc,GAAIlkG,KAAKmkG,YAAc,GAGlE,IAAI/8F,EACJ,OAAOgX,EAAE7M,EAAGmJ,GAAInJ,EAAEnQ,UAAUgjF,gBAAkB,SAAUhmE,EAAG1D,GACzD,IAAInJ,EAAGikC,EAAGh3B,EAAGjiB,EAAGoiB,EAChB,OAA+B62B,GAAxBj5C,EAAI,MAAQme,EAAIA,EAAI,IAAU6J,QAAShT,EAAIhV,EAAE6nG,eAAgB5lF,EAAIxe,KAAKkkG,YAAYt8F,OAAO,GAAG,GAAI2J,GAAKnK,EAAEoX,EAAGJ,EAAGo3B,QAAK,GAAU72B,EAAI3e,KAAKqkG,YAAY,CACtJvmF,YAAaM,EACbmG,QAASixB,IACPx1C,KAAKkkG,YAAYl2F,KAAK2Q,GAAI3e,KAAKmkG,YAAc,KAChD5yF,EAAEnQ,UAAU6zE,KAAO,WACpB,IAAI72D,EAAG1D,EACP,OAAQA,EAAI1a,KAAKkkG,YAAY76C,QAAUjrC,EAAIpe,KAAKqkG,YAAY3pF,GAAI1a,KAAKmkG,YAAYn2F,KAAKoQ,GAAIpe,KAAKiuF,YAAYiS,aAAaxlF,EAAE4pF,gBAAa,GACtI/yF,EAAEnQ,UAAU2zE,KAAO,WACpB,IAAI32D,EAAG1D,EACP,OAAQ0D,EAAIpe,KAAKmkG,YAAY96C,QAAU3uC,EAAI1a,KAAKqkG,YAAYjmF,GAAIpe,KAAKkkG,YAAYl2F,KAAK0M,GAAI1a,KAAKiuF,YAAYiS,aAAa9hF,EAAEkmF,gBAAa,GACtI/yF,EAAEnQ,UAAUmjG,QAAU,WACvB,OAAOvkG,KAAKkkG,YAAYl8F,OAAS,GAChCuJ,EAAEnQ,UAAUojG,QAAU,WACvB,OAAOxkG,KAAKmkG,YAAYn8F,OAAS,GAChCuJ,EAAEnQ,UAAUijG,YAAc,SAAUjmF,GACrC,IAAI1D,EAAGnJ,EAAGnK,EACV,OAA+BmK,GAAxBnK,EAAI,MAAQgX,EAAIA,EAAI,IAAUN,YAAapD,EAAItT,EAAEmd,QAAS,CAC/DzG,YAAa,MAAQvM,EAAIA,EAAEuH,gBAAa,EACxCyL,QAAS4V,KAAKtf,UAAUH,GACxB4pF,SAAUtkG,KAAKiuF,YAAY+R,gBAE5B54F,EAAI,SAAUgX,EAAG1D,EAAGnJ,GACrB,OAAQ,MAAQ6M,EAAIA,EAAEN,iBAAc,MAAa,MAAQpD,EAAIA,EAAE5B,gBAAa,KAAY,MAAQsF,EAAIA,EAAEmG,aAAU,KAAY4V,KAAKtf,UAAUtJ,IAC1IA,EA/BW,CAgCdmJ,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACJ1D,EAAE+pF,wBAA0B,SAAU/pF,GACpC,IAAInJ,EACJ,OAAOA,EAAI,IAAI6M,EAAE1D,IAAM0sB,UAAW71B,EAAEyuF,eACnC5hF,EAAI,WACL,SAASA,EAAEA,GACTpe,KAAKoX,SAAWgH,EAAEhH,SAAUpX,KAAKigG,cAAgB7hF,EAAE6hF,cAGrD,IAAIvlF,EACJ,OAAOA,EAAI,oBAAyB,eAAoB,UAAW0D,EAAEhd,UAAUgmC,QAAU,WACvF,OAAOpnC,KAAKmiG,uBAAwBniG,KAAK0kG,uBACxCtmF,EAAEhd,UAAU4+F,YAAc,WAC3B,MAAO,CACL5oF,SAAUpX,KAAKoX,SACf6oF,cAAejgG,KAAKigG,gBAErB7hF,EAAEhd,UAAU+gG,qBAAuB,WACpC,IAAI/jF,EAAG7M,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAAoCA,EAAI,GAAIJ,EAAI,EAAG7M,GAA9CikC,EAAIx1C,KAAK2kG,sBAA2C38F,OAAQuJ,EAAI6M,EAAGA,IAAKhX,EAAIouC,EAAEp3B,GAAII,EAAExQ,KAAKhO,KAAKoX,SAAWpX,KAAKoX,SAASggF,uBAAuB18E,EAAGtT,IAEtJ,OAAOoX,GACNJ,EAAEhd,UAAUsjG,oBAAsB,WACnC,IAAItmF,EAAG7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAEnB,IAAK6K,EAAI,EAAkC7K,EAAI,GAAI6hB,EAAI,EAAG7M,GAA9CiN,EAAIxe,KAAK4kG,sBAA2C58F,OAAQuJ,EAAI6M,EAAGA,KAAKo3B,EAAIh3B,EAAEJ,IAAM,GAAKo3B,EAAE,GAAK,IAAMA,EAAE,IAAMpuC,EAAGouC,EAAE,IAAMpuC,EAAG,OAASpH,KAAKoX,SAASinF,uBAAuB7oD,EAAE,MAAQx1C,KAAKoX,SAAWpX,KAAKoX,SAASsmF,wBAAwBloD,EAAE,IAAKA,EAAE,GAAKx1C,KAAKigG,cAAc,IAAMjgG,KAAK6kG,2BAA4BrvD,EAAE,KAAMpuC,KAAM,IAAMouC,EAAE,IAAM,OAASx1C,KAAKoX,SAASinF,uBAAuB7oD,EAAE,GAAK,KAAOx1C,KAAKoX,SAAWpX,KAAKoX,SAASsmF,wBAAwBloD,EAAE,IAAKA,EAAE,GAAKx1C,KAAKigG,cAAc,IAAMjgG,KAAK6kG,2BAA4BrvD,EAAE,KAAMpuC,KAAM7K,EAAEyR,KAAKhO,KAAKoX,SAAWpX,KAAKoX,SAASumF,2BAA2BjjF,GAAG,EAAI86B,KAEzmB,OAAOj5C,GACN6hB,EAAEhd,UAAUujG,mBAAqB,WAClC,OAAO3kG,KAAKoX,SAASunF,4BAA4BjkF,IAChD0D,EAAEhd,UAAUwjG,mBAAqB,WAClC,OAAO5kG,KAAKoX,SAASwnF,2BAtBa,eAsBiB,CACjDC,UAvBoD,aAyBrDzgF,EAAEhd,UAAUyjG,yBAA2B,WACxC,OAAO7kG,KAAKigG,cAAc,IAAM,EAAGjgG,KAAKigG,cAAc,IAAM,GAC3D7hF,EAjCE,IAmCPre,KAAKC,MAAO,WAOZ0a,EAAEoqF,OAAS,WACT,SAASvzF,EAAEA,EAAGikC,EAAGh3B,GACfxe,KAAKiuF,YAAc18E,EAAGvR,KAAK+kG,iBAAmBvvD,EAAGx1C,KAAK+c,QAAUyB,EAAGxe,KAAKo9E,YARpE,SAAUh/D,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,YAMoEsa,CAAEpe,KAAKo9E,YAAap9E,MAAOA,KAAKglG,YAAc,IAAItqF,EAAEupF,YAAYjkG,KAAKiuF,aAAcjuF,KAAKilG,QAAU79F,EAAEQ,MAAM,GAGlM,IAAIR,EACJ,OAAOA,EAAI,CAACsT,EAAE+pF,yBAA0BlzF,EAAEnQ,UAAU8jG,aAAe,SAAU9mF,GAC3E,OAAOpe,KAAKkgG,aAAa,CACvB9oF,SAAUgH,EACV6hF,cAAe,CAAC,EAAG,MAEpB1uF,EAAEnQ,UAAU+jG,SAAW,SAAU/mF,GAClC,OAAO,MAAQA,IAAMA,EAAI,IAAKpe,KAAKklG,aAAaxqF,EAAE28D,SAASC,SAASl5D,EAAG,CACrEi8E,iBAAkBr6F,KAAK+c,YAExBxL,EAAEnQ,UAAUgkG,SAAW,SAAUhnF,GAClC,IAAI7M,EAAGnK,EACP,OAAOmK,EAAI6M,EAAEhH,SAAUhQ,EAAIgX,EAAE6hF,cAAe1uF,EAAImJ,EAAE28D,SAAS1M,SAASp5D,GAAIvR,KAAKkgG,aAAa,CACxF9oF,SAAU7F,EACV0uF,cAAe74F,KAEhBmK,EAAEnQ,UAAU8+F,aAAe,SAAU9hF,GACtC,OAAOpe,KAAKglG,YAAc,IAAItqF,EAAEupF,YAAYjkG,KAAKiuF,aAAcjuF,KAAKiuF,YAAYiS,aAAa9hF,IAC5F7M,EAAEnQ,UAAUmzC,YAAc,WAC3B,OAAOv0C,KAAKiuF,YAAY72E,UACvB7F,EAAEnQ,UAAUqhF,oBAAsB,WACnC,OAAOziF,KAAKiuF,YAAYxL,uBACvBlxE,EAAEnQ,UAAU4+F,YAAc,WAC3B,OAAOhgG,KAAKiuF,YAAY+R,eACvBzuF,EAAEnQ,UAAUuc,OAAS,WACtB,OAAO3d,KAAKggG,eACXzuF,EAAEnQ,UAAUo/E,kBAAoB,SAAUpiE,GAC3C,OAAOpe,KAAKiuF,YAAYzN,kBAAkBpiE,IACzC7M,EAAEnQ,UAAU6/F,iBAAmB,SAAU7iF,GAC1C,OAAOpe,KAAKiuF,YAAYgT,iBAAiB7iF,IACxC7M,EAAEnQ,UAAU4/F,kBAAoB,SAAU5iF,GAC3C,OAAOpe,KAAKiuF,YAAY+S,kBAAkB5iF,IACzC7M,EAAEnQ,UAAUg/E,eAAiB,SAAUhiE,GACxC,OAAOpe,KAAKiuF,YAAY7N,eAAehiE,IACtC7M,EAAEnQ,UAAUggF,WAAa,SAAUhjE,GACpC,OAAOpe,KAAKiuF,YAAY7M,WAAWhjE,IAClC7M,EAAEnQ,UAAUg8E,YAAc,SAAUh/D,GACrC,OAAOpe,KAAKiuF,YAAY7Q,YAAYh/D,IACnC7M,EAAEnQ,UAAU4/E,WAAa,SAAU5iE,GACpC,OAAOpe,KAAKiuF,YAAYjN,WAAW5iE,IAClC7M,EAAEnQ,UAAUy9E,aAAe,SAAUzgE,GACtC,OAAOpe,KAAKiuF,YAAYpP,aAAazgE,IACpC7M,EAAEnQ,UAAUmmF,WAAa,SAAUnpE,GACpC,OAAOpe,KAAKiuF,YAAY1G,WAAWnpE,IAClC7M,EAAEnQ,UAAUugF,gBAAkB,WAC/B,OAAO3hF,KAAKiuF,YAAYtM,mBACvBpwE,EAAEnQ,UAAU88E,iBAAmB,WAChC,OAAOl+E,KAAKiuF,YAAY/P,oBACvB3sE,EAAEnQ,UAAUugG,YAAc,WAC3B,OAAO3hG,KAAKiuF,YAAY0T,eACvBpwF,EAAEnQ,UAAUikG,wBAA0B,SAAUjnF,GACjD,IAAI1D,EACJ,OAAOA,EAAI1a,KAAKu0C,cAAc8oD,uBAAuB,CAACj/E,EAAGA,EAAI,IAAKpe,KAAK+kG,iBAAiBO,6BAA6B5qF,IACpHnJ,EAAEnQ,UAAUihF,2BAA6B,SAAUjkE,GACpD,OAAOpe,KAAKiuF,YAAY5L,2BAA2BjkE,IAClD7M,EAAEnQ,UAAU4gF,sBAAwB,SAAU5jE,GAC/C,OAAOpe,KAAKiuF,YAAYjM,sBAAsB5jE,IAC7C7M,EAAEnQ,UAAU69E,iBAAmB,SAAU7gE,GAC1C,OAAOpe,KAAKiuF,YAAYhP,iBAAiB7gE,IACxC7M,EAAEnQ,UAAUmkG,kBAAoB,SAAUnnF,EAAG1D,GAC9C,OAAO,MAAQA,IAAMA,GAAI,GAAK1a,KAAKiuF,YAAYrG,oBAAoBxpE,EAAG1D,IACrEnJ,EAAEnQ,UAAUokG,kBAAoB,SAAUpnF,GAC3C,OAAOpe,KAAKiuF,YAAY2T,oBAAoBxjF,IAC3C7M,EAAEnQ,UAAUqkG,qBAAuB,SAAUrnF,GAC9C,OAAOpe,KAAKiuF,YAAY4T,uBAAuBzjF,IAC9C7M,EAAEnQ,UAAUskG,oBAAsB,SAAUtnF,GAC7C,OAAOpe,KAAKiuF,YAAY9H,uBAAuB/nE,IAC9C7M,EAAEnQ,UAAU+gF,wBAA0B,WACvC,OAAOniF,KAAKiuF,YAAY9L,2BACvB5wE,EAAEnQ,UAAUygF,wBAA0B,WACvC,OAAO7hF,KAAKiuF,YAAYpM,2BACvBtwE,EAAEnQ,UAAUghF,qBAAuB,WACpC,OAAOpiF,KAAKmiF,0BAA4BniF,KAAKiuF,YAAY7L,4BAAyB,GACjF7wE,EAAEnQ,UAAU0gF,qBAAuB,WACpC,OAAO9hF,KAAK6hF,0BAA4B7hF,KAAKiuF,YAAYnM,4BAAyB,GACjFvwE,EAAEnQ,UAAUojG,QAAU,WACvB,OAAOxkG,KAAKglG,YAAYR,WACvBjzF,EAAEnQ,UAAUmjG,QAAU,WACvB,OAAOvkG,KAAKglG,YAAYT,WACvBhzF,EAAEnQ,UAAUgjF,gBAAkB,SAAUhmE,EAAG1D,GAC5C,IAAInJ,EAAGnK,EAAGouC,EACV,OAA+BpuC,GAAxBouC,EAAI,MAAQ96B,EAAIA,EAAI,IAAU6J,QAAShT,EAAIikC,EAAE4uD,eAAgBpkG,KAAKglG,YAAY5gB,gBAAgBhmE,EAAG,CACtGmG,QAASnd,EACTg9F,eAAgB7yF,KAEjBA,EAAEnQ,UAAU2zE,KAAO,WACpB,OAAO/0E,KAAKwkG,UAAYxkG,KAAKglG,YAAYjwB,YAAS,GACjDxjE,EAAEnQ,UAAU6zE,KAAO,WACpB,OAAOj1E,KAAKukG,UAAYvkG,KAAKglG,YAAY/vB,YAAS,GACjD1jE,EA9FM,IAgGXxR,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEirF,kBAAoB,SAAUjrF,GAC9B,SAASnJ,EAAE6M,EAAG1D,GACZ,IAAInJ,EACJvR,KAAK4lG,kBAAoBxnF,EAAGpe,KAAKy1E,WAAa/6D,EAAGnJ,EAAIvR,KAAKy1E,WAAYz1E,KAAKo1C,GAAK7jC,EAAE6jC,GAAIp1C,KAAKo4E,KAAO7mE,EAAE6mE,KAGtG,OAAOh6D,EAAE7M,EAAGmJ,GAAInJ,EAAEnQ,UAAUoE,OAAS,WACnC,OAAOxF,KAAK4lG,kBAAkBC,2BAA2B7lG,KAAKy1E,aAC7DlkE,EAAE84D,YAAY,2BAA4B94D,EAAE84D,YAAY,2BAA4B94D,EAAE84D,YAAY,2BAA4B94D,EAAE84D,YAAY,4BAA6B94D,EAAE84D,YAAY,4BAA6B94D,EAAE84D,YAAY,wBAAyB94D,EAAE84D,YAAY,4BAA6B94D,EAAE84D,YAAY,qBAAsB94D,EAAE84D,YAAY,sBAAuB94D,EAAE84D,YAAY,0BAA2B94D,EAAE84D,YAAY,0BAA2B94D,EAAE84D,YAAY,mCAAoC94D,EAAE84D,YAAY,2BAA4B94D,EAAE84D,YAAY,6BAA8B94D,EAAE84D,YAAY,sBAAuB94D,EAAE84D,YAAY,sBAAuB94D,EAAE84D,YAAY,0BAA2B94D,EAAE84D,YAAY,gCAAiC94D,EAAE84D,YAAY,gCAAiC94D,EARzwB,CASpBmJ,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EAAI,SAAUA,EAAG1D,GACnB,SAAStT,IACPpH,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIo3B,KAAK96B,EAAGnJ,EAAExR,KAAK2a,EAAG86B,KAAOp3B,EAAEo3B,GAAK96B,EAAE86B,IAE3C,OAAOpuC,EAAEhG,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAIgG,EAAKgX,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7M,EAAI,GAAGgJ,eAEXG,EAAEorF,kBAAoB,SAAUv0F,GAC9B,SAASnK,EAAEgX,GACT,IAAI1D,EAAGnJ,EAAGnK,EAEV,IAAK,MAAQgX,IAAMA,EAAI,IAAKpe,KAAK+lG,mBAAqB,GAAIx0F,EAAI,EAAGnK,EAAIgX,EAAEpW,OAAQZ,EAAImK,EAAGA,IAAKmJ,EAAI0D,EAAE7M,GAAIvR,KAAKgmG,iBAAiBtrF,GAG7H,OAAO0D,EAAEhX,EAAGmK,GAAInK,EAAEhG,UAAU02F,eAAiB,WAC3C,IAAI15E,EAAG1D,EAAGnJ,EAAGnK,EAGb,IAAKsT,KAFwBtT,EAAI,GAAjCmK,EAAIvR,KAAK+lG,mBAEI3nF,EAAI7M,EAAEmJ,GAAItT,EAAE4G,KAAKoQ,GAE9B,OAAOhX,GACNA,EAAEhG,UAAU4kG,iBAAmB,SAAU5nF,GAC1C,IAAI7M,EAAGnK,EACP,OAAO,OAASmK,EAAIvR,KAAK+lG,oBAAoB3+F,EAAIgX,EAAEg3B,IAAM7jC,EAAEnK,GAAKmK,EAAEnK,GAAK,IAAIsT,EAAEirF,kBAAkB3lG,KAAMoe,IACpGhX,EAAEhG,UAAU6kG,oBAAsB,SAAU7nF,GAC7C,OAAOA,EAAEg3B,MAAMp1C,KAAK+lG,oBACnB3+F,EAAEhG,UAAUykG,2BAA6B,SAAUznF,GACpD,IAAI1D,EACJ,OAAO1a,KAAKimG,oBAAoB7nF,IAAM,OAAS1D,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEwrF,+CAAiDxrF,EAAEwrF,+CAA+C9nF,QAAK,GAClMhX,EAAEhG,UAAU+kG,mBAAqB,SAAU/nF,GAC5C,IAAI1D,EACJ,OAAOA,EAAI1a,KAAK+lG,mBAAmB3nF,EAAEg3B,WAAYp1C,KAAK+lG,mBAAmB3nF,EAAEg3B,IAAK16B,GAC/EtT,EAzBiB,CA0BpBsT,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EAAG7M,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EAAGlrB,EAClCyhB,EAAI1D,EAAEizD,oBAAqBp8D,EAAImJ,EAAEqzD,qBAAsBvvD,EAAI9D,EAAE00D,iBAAkB7yE,EAAIme,EAAEw0D,wBAAyB15B,EAAI96B,EAAEu0D,qBAAsBtwD,EAAIjE,EAAE60D,mBAAoBznD,EAAIpN,EAAEm1D,oBAAqB5mD,EAAIvO,EAAE80D,eAAgBpoE,EAAIsT,EAAEg1D,wBAAyB7nD,EAAInN,EAAEi0D,QAAShyE,EAAI+d,EAAEuzD,SAAUvzD,EAAE0rF,eAAiB,WACpS,SAAS1rF,EAAE0D,GACTpe,KAAK+c,QAAUqB,EAGjB,IAAIC,EAAGxhB,EAAG2Z,EAAG4sD,EACb,OAAO1oD,EAAEtZ,UAAUilG,mCAAqC,SAAU3rF,EAAGtT,EAAGouC,GACtE,IAAIj5C,EAAGurB,EAAGD,EAAGxJ,EAAG+kD,EAAG3mE,EAAGmxC,EAEtB,IAAKnxC,GAAK,MAAQ+4C,EAAIA,EAAI,CACxBwqB,QAAQ,IACPA,OAAQl4C,EAAI,EAAGD,GAAI,EAAIxJ,EAAI,CAC5BtW,MAAO,EACPgsB,OAAQ,IACNx3B,EAAIyD,KAAKsmG,mCAAmC5rF,MAAQA,EAAIne,EAAE6oB,WAAYhe,EAAImK,EAAEhV,IAAKqxC,EAAIjxC,EAAEqD,KAAK+c,QAAS,CACvGoxD,YAAa33D,IACXo3B,EAAEmsD,YAAa,CACjB,IAAI32B,EAAIx1B,EAAEosD,eAAmBt/E,GAAKuO,EAAEvO,GAAI,CACtCiE,EAAEykD,KAAO/kD,EAAE0V,QAAU3sB,GACrB,MAGF,GAAIg8D,EAAEh+C,aAAe1K,GACnB,GAAIoN,MAAQ1gB,EAAG,WACV,IAAKgX,EAAE1D,EAAG0oD,IAAMt7C,EAAI,EAAG,MAE9BtJ,EAAE4kD,EAAG,CACHpD,OAAQvjE,KACJorB,GAAKxJ,EAAEtW,QAASsW,EAAE0V,OAAS,EAAGlM,GAAI,GAAMxJ,EAAE0V,QAAUl3B,EAAEumE,GAG9D,OAAO/kD,GACN3D,EAAEtZ,UAAUmlG,mCAAqC,SAAUnoF,GAC5D,IAAI1D,EAAGtT,EAAG7K,EAAGurB,EAAGD,EAEhB,GAAI,IAAMzJ,EAAErW,OAAS,IAAMqW,EAAE2V,OAAQ,CACnC,IAAKrZ,EAAI1a,KAAK+c,QAAS+K,EAAI,EAAGpN,EAAEsK,YAAa,GAAItK,EAAIA,EAAEsK,WAAYwwB,EAAE96B,GAAI,CACvEoN,EAAI,EACJ,MAGF,MAAO,CAACpN,EAAGoN,GAGb,GAA+C1gB,GAA3CygB,EAAI7nB,KAAKwmG,8BAA8BpoF,IAAU,GAAI7hB,EAAIsrB,EAAE,GAAIzgB,EAAG,CACpE,GAAI6hB,EAAE7hB,GAAI,IAAMvK,EAAEuK,IAAMsT,EAAItT,EAAEge,WAAWA,WAAY0C,EAAIvW,EAAEnK,EAAEge,YAAazG,EAAEvX,EAAG,CAC7EyW,KAAM,WACFiK,MAAQpN,EAAItT,EAAG0gB,EAAI1J,EAAE2V,OAASx3B,OAAQ,CAC1C,GAAIme,EAAItT,EAAEge,YAAa5G,EAAEpX,EAAEg1C,mBAAqB5G,EAAE96B,GAAI,KAAOtT,IAAMsT,EAAEuc,YAAc7vB,EAAIsT,EAAGA,EAAIA,EAAE0K,YAAaowB,EAAE96B,MAC/GoN,EAAIvW,EAAEnK,GAAI,IAAMgX,EAAE2V,QAAUjM,IAE9B,MAAO,CAACpN,EAAGoN,KAEZpN,EAAEtZ,UAAUolG,8BAAgC,SAAUpoF,GACvD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGurB,EAAGD,EAEzB,IAAKC,EAAI,EAAkDvW,EAAI,EAAGnK,GAAtDygB,EAAI7nB,KAAKymG,4BAA4BroF,EAAErW,QAAqBC,OAAQZ,EAAImK,EAAGA,IAAK,CAC1F,GAAImJ,EAAImN,EAAEtW,GAAIikC,EAAI34C,EAAE6d,GAAI0D,EAAE2V,QAAUjM,EAAI0tB,EAAG,GAAIvsB,EAAEvO,IAC/C,GAAI8D,EAAI9D,EAAGne,EAAIurB,EAAG1J,EAAE2V,SAAWx3B,GAAKoiB,EAAEH,GAAI,WACrCA,IAAMA,EAAI9D,EAAGne,EAAIurB,GACxB,IAAIA,GAAK0tB,GAAOp3B,EAAE2V,OAAQ,MAG5B,MAAO,CAACvV,EAAGjiB,IACVme,EAAEtZ,UAAUklG,mCAAqC,SAAUloF,GAC5D,KAAOA,GAAKA,IAAMpe,KAAK+c,SAAU,CAC/B,GAAI3V,EAAEgX,GAAI,OAAOA,EACjBA,EAAIA,EAAEgH,aAEP1K,EAAEtZ,UAAUqlG,4BAA8B,SAAUroF,GACrD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAEhB,IAAKpX,EAAI,GAAIoX,EAAI7hB,EAAEqD,KAAK+c,QAAS,CAC/BoxD,YAAa9vD,IACXm3B,GAAI,EAAIh3B,EAAEu7E,YAAa,GAAIxoF,EAAIiN,EAAEw7E,YAAaz9F,EAAEgV,IAClD,GAAI,oBAAsBmJ,GAAK,OAASA,EAAIA,IAAMA,EAAI,EAAGA,IAAM0D,EAAGo3B,GAAI,OAAQ,GAAIA,EAAG,WAChFA,GAAKpuC,EAAE4G,KAAKuD,GAEnB,OAAOnK,GACNvK,EAAI,SAAUuhB,GAEf,OAAOA,EAAE6T,WAAauO,KAAKqtC,UAAYlvD,EAAEP,GAAK,EAASA,EAAE7a,YAAeyE,OAAU,OAAS6f,EAAEzJ,IAAMhX,EAAEgX,GAAK,EAAI,GAC7GC,EAAI,SAAUD,GACf,OAAOglD,EAAEhlD,KAAOiwD,WAAW0sB,cAAgBvkF,EAAE4H,GAAKiwD,WAAWysB,eAC5D13B,EAAI,SAAUhlD,GACf,OAAO0J,EAAE1J,GAAKiwD,WAAWysB,cAAgBzsB,WAAW0sB,eACnDvkF,EAAI,SAAU4H,GACf,OAAOhX,EAAEgX,EAAEgH,YAAcipD,WAAWysB,cAAgBzsB,WAAW0sB,eAC9DrgF,EAxFiS,IA0FtS3a,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EAAI,GAAGQ,MACXwW,EAAI1D,EAAE81D,YAAaj/D,EAAImJ,EAAEg2D,YAAah2D,EAAEgsF,YAAc,WACpD,SAAShsF,KAET,OAAOA,EAAEtZ,UAAUulG,wBAA0B,SAAUjsF,GACrD,IAAItT,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAAGmJ,EAAGmB,EAAGpB,EACzB,GAAIoB,EAAIvO,EAAEhH,EAAGmU,EAAInN,EAAEzd,EAAGma,SAASwvF,uBAAwB,OAAkDpoF,GAA3CG,EAAIvH,SAASwvF,uBAAuB39E,EAAGpB,IAAUg/E,WAAYrxD,EAAI72B,EAAEoV,QAAQ3sB,EAAIgQ,SAAS4wE,eAAiBC,SAASzpE,EAAGg3B,GAAIpuC,EACvL,GAAIgQ,SAAS0vF,oBAAqB,OAAO1vF,SAAS0vF,oBAAoB79E,EAAGpB,GAEzE,GAAIzQ,SAASyY,KAAKk3E,gBAAiB,CACjCxqG,EAAI6hB,IAEJ,KACE0J,EAAI1Q,SAASyY,KAAKk3E,mBAAqBC,YAAY/9E,EAAGpB,GAAIC,EAAEwI,SAC5D,MAAO3zB,IAET,OAAOyK,EAAIgX,IAAK7M,EAAEhV,GAAI6K,IAEvBsT,EAAEtZ,UAAU6lG,0BAA4B,SAAU7oF,GACnD,IAAO7M,EACP,MAAsE,EAA/DA,EAAInK,EAAErH,KAAKqe,EAAE8oF,mBAAyB,GAAQ31F,EAAEA,EAAEvJ,OAAS,KACjE0S,EApBiD,IAsBtD3a,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EAAI,SAAU6M,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,aAGlBsD,EAAI,SAAUgX,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG86B,EAAEz1C,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFo3B,EAAI,GAAGj7B,eACPiE,EAAI,GAAG7W,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGV0D,EAAI1D,EAAE81D,YAAa91D,EAAEysF,wBAA0B,SAAUzsF,GACvD,SAAS86B,IACPx1C,KAAKwsC,IAAMj7B,EAAEvR,KAAKwsC,IAAKxsC,MAAOA,KAAKkxD,OAAS3/C,EAAEvR,KAAKkxD,OAAQlxD,MAAOA,KAAKonG,kBAAoB,GAG7F,IAAI7qG,EACJ,OAAO6K,EAAEouC,EAAG96B,GAAI86B,EAAEp0C,UAAUohC,MAAQ,WAClC,OAAOxiC,KAAKqnG,aAAU,GAAUrnG,KAAKqnG,SAAU,EAAI,sBAAuBjwF,SAAWA,SAAStR,iBAAiB,kBAAmB9F,KAAKkxD,QAAQ,GAAMlxD,KAAKwsC,QACzJgJ,EAAEp0C,UAAU0hC,KAAO,WACpB,OAAO9iC,KAAKqnG,SAAWrnG,KAAKqnG,SAAU,EAAIjwF,SAASrR,oBAAoB,kBAAmB/F,KAAKkxD,QAAQ,SAAO,GAC7G1b,EAAEp0C,UAAUkmG,yBAA2B,SAAUlpF,GAClD,OAAOI,EAAEze,KAAKC,KAAKonG,kBAAmBhpF,GAAK,GAAKpe,KAAKonG,kBAAkBp5F,KAAKoQ,GAAIpe,KAAKwiC,cAAW,GAC/FgT,EAAEp0C,UAAUmmG,2BAA6B,SAAUnpF,GACpD,IAAI1D,EACJ,OAAO1a,KAAKonG,kBAAoB,WAC9B,IAAI71F,EAAGnK,EAAGouC,EAAGh3B,EAEb,IAAiCA,EAAI,GAAIjN,EAAI,EAAGnK,GAA3CouC,EAAIx1C,KAAKonG,mBAAwCp/F,OAAQZ,EAAImK,EAAGA,KAAKmJ,EAAI86B,EAAEjkC,MAAU6M,GAAKI,EAAExQ,KAAK0M,GAEtG,OAAO8D,GACPze,KAAKC,MAAO,IAAMA,KAAKonG,kBAAkBp/F,OAAShI,KAAK8iC,YAAS,GACjE0S,EAAEp0C,UAAUomG,yCAA2C,WACxD,IAAIppF,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAEhB,IAAiCpuC,EAAI,GAAIgX,EAAI,EAAG1D,GAA3CnJ,EAAIvR,KAAKonG,mBAAwCp/F,OAAQ0S,EAAI0D,EAAGA,IAAKo3B,EAAIjkC,EAAE6M,GAAIhX,EAAE4G,KAAKwnC,EAAEiyD,sBAE7F,OAAOrgG,GACNouC,EAAEp0C,UAAU8vD,OAAS,WACtB,IAAIx2C,EACJ,OAAOA,EAAI0D,IAAK7hB,EAAEme,EAAG1a,KAAK0nG,eAAY,GAAU1nG,KAAK0nG,SAAWhtF,EAAG1a,KAAKwnG,6CACvEhyD,EAAEp0C,UAAU0xE,MAAQ,WACrB,OAAO9yE,KAAK0nG,SAAW,KAAM1nG,KAAKkxD,UACjC1b,EAAEp0C,UAAUorC,IAAM,WACnB,OAAOxsC,KAAKqnG,SAAWrnG,KAAKkxD,SAAUjuD,sBAAsBjD,KAAKwsC,WAAQ,GACxEjwC,EAAI,SAAU6hB,EAAG1D,GAClB,OAAQ,MAAQ0D,EAAIA,EAAE0yD,oBAAiB,MAAa,MAAQp2D,EAAIA,EAAEo2D,oBAAiB,KAAY,MAAQ1yD,EAAIA,EAAE8pE,iBAAc,MAAa,MAAQxtE,EAAIA,EAAEwtE,iBAAc,KAAY,MAAQ9pE,EAAIA,EAAE2yD,kBAAe,MAAa,MAAQr2D,EAAIA,EAAEq2D,kBAAe,KAAY,MAAQ3yD,EAAIA,EAAEgqE,eAAY,MAAa,MAAQ1tE,EAAIA,EAAE0tE,eAAY,IACnU5yC,EApC0C,CAqC7C96B,EAAE0vD,aAAc,MAAQ1vD,EAAEm2D,0BAA4Bn2D,EAAEm2D,wBAA0B,IAAIn2D,EAAEysF,0BAC1FpnG,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EACAoiB,EACAmJ,EACAmB,EACApB,EACAlrB,EAAI,SAAUyhB,EAAG1D,GACnB,OAAO,WACL,OAAO0D,EAAEva,MAAM6W,EAAG5W,aAGlBua,EAAI,SAAUD,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAG7d,EAAEkD,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElFvhB,EAAI,GAAG0d,eAEXnT,EAAIsT,EAAE21D,gBAAiB9+D,EAAImJ,EAAE81D,YAAa3oD,EAAInN,EAAEg2D,YAAatyD,EAAI1D,EAAEizD,oBAAqBpxE,EAAIme,EAAE60D,mBAAoB/wD,EAAI9D,EAAEgzD,qBAAsBl4B,EAAI96B,EAAEk/B,YAAaj7B,EAAIjE,EAAEo1D,eAAgBhoD,EAAIpN,EAAEq1D,iBAAkB9mD,EAAIvO,EAAEs1D,eAAgBt1D,EAAEitF,iBAAmB,SAAU9qG,GAClQ,SAAS2Z,EAAE4H,GACTpe,KAAK+c,QAAUqB,EAAGpe,KAAKynG,mBAAqB9qG,EAAEqD,KAAKynG,mBAAoBznG,MAAOA,KAAK4nG,aAAejrG,EAAEqD,KAAK4nG,aAAc5nG,MAAOA,KAAK6nG,eAAiB,IAAIntF,EAAE0rF,eAAepmG,KAAK+c,SAAU/c,KAAK8nG,YAAc,IAAIptF,EAAEgsF,YAAe1mG,KAAK+nG,UAAY,EAAGvyD,EAAE,YAAa,CACjQw3B,UAAWhtE,KAAK+c,QAChBmwD,aAAcltE,KAAK4nG,eAIvB,OAAOvpF,EAAE7H,EAAG3Z,GAAI2Z,EAAEpV,UAAU0/F,iBAAmB,SAAU1iF,GACvD,IAAOhX,EACP,OAAO,MAAQgX,IAAMA,EAAI,KAAsB,IAAbA,EAAE4hD,OAAgBhgE,KAAKijG,gCAAgC1xF,IAAK,CAC5FyuD,QAAQ,IACL5hD,EAAEmkF,WAAaviG,KAAKgoG,qBAAuB,OAAS5gG,EAAIpH,KAAKioG,qBAAuB7gG,EAAIpH,KAAKgoG,sBACjGxxF,EAAEpV,UAAUyhG,iBAAmB,SAAUzkF,GAC1C,IAAI1D,EACJ,IAAK1a,KAAKioG,oBAAqB,OAAO7pF,EAAIO,EAAEP,IAAK1D,EAAI1a,KAAKkoG,gCAAgC9pF,KAAOyJ,EAAEnN,GAAI1a,KAAKmoG,2BAA2B/pF,SAAM,GAC5I5H,EAAEpV,UAAU6+E,+BAAiC,SAAU7hE,GACxD,IAAI1D,EAAGnJ,EACP,OAAO6M,EAAIO,EAAEP,GAAI7M,EAAIvR,KAAKooG,mBAAmBhqF,EAAE,IAAK1D,EAAI1a,KAAKooG,mBAAmBhqF,EAAE,IAAKpe,KAAK6iG,iBAAiB,CAACtxF,EAAGmJ,KAChHlE,EAAEpV,UAAUkkG,6BAA+B,SAAUlnF,GACtD,IAAI1D,EACJ,OAAQA,EAAI1a,KAAKkoG,gCAAgC9pF,IAAMpe,KAAKinG,0BAA0BvsF,GAAG,QAAK,GAC7FlE,EAAEpV,UAAUoiG,uBAAyB,SAAUplF,GAChD,IAAI1D,EAAMtT,EACV,OAAkDsT,GAA3CtT,EAAIpH,KAAKwmG,8BAA8BpoF,IAAU,GAAQhX,EAAE,GAAI7K,EAAEme,IACvElE,EAAEpV,UAAUinG,KAAO,WACpB,OAAO,IAAMroG,KAAK+nG,aAAe/nG,KAAKmoG,6BAA8BnoG,KAAKioG,oBAAsBjoG,KAAK8gG,yBAAsB,GACzHtqF,EAAEpV,UAAUknG,OAAS,WACtB,IAAIlqF,EACJ,OAAO,MAAQpe,KAAK+nG,YAAc3pF,EAAIpe,KAAKioG,oBAAqBjoG,KAAKioG,oBAAsB,KAAM,MAAQ7pF,GAAKpe,KAAK6iG,iBAAiBzkF,QAAK,GACxI5H,EAAEpV,UAAUmnG,eAAiB,WAC9B,IAAInqF,EACJ,OAAO,OAASA,EAAIhX,KAAOgX,EAAEuyD,uBAAoB,GAChDn6D,EAAEpV,UAAUonG,qBAAuB,WACpC,IAAIpqF,EACJ,OAAsD,KAA9C,OAASA,EAAI7M,KAAO6M,EAAEqqF,eAAY,IACzCjyF,EAAEpV,UAAU09E,oBAAsB,WACnC,OAAQ9+E,KAAKwoG,wBACZhyF,EAAEpV,UAAU6hG,gCAAkC,SAAU7kF,EAAG1D,GAC5D,IAAInJ,EAAGnK,EACP,GAAI,MAAQgX,GAAKpe,KAAK0oG,sBAAsBtqF,KAAOhX,EAAIpH,KAAKqmG,mCAAmCjoF,EAAE0yD,eAAgB1yD,EAAE8pE,YAAaxtE,IAAK,OAAO0D,EAAEqqF,YAAcl3F,EAAIvR,KAAKqmG,mCAAmCjoF,EAAE2yD,aAAc3yD,EAAEgqE,UAAW1tE,IAAKiE,EAAE,CAACvX,EAAGmK,KAC/OiF,EAAE6zD,YAAY,qDAAsD7zD,EAAE6zD,YAAY,qDAAsD7zD,EAAE6zD,YAAY,gDAAiD7zD,EAAE6zD,YAAY,uCAAwC7zD,EAAE6zD,YAAY,yCAA0C7zD,EAAEpV,UAAUwmG,aAAe,WACjV,OAAO5nG,KAAK2oG,oBACXnyF,EAAEpV,UAAUunG,iBAAmB,WAChC,IAAIjuF,EAAGnJ,EAAGnK,EAAGoX,EACb,OAAOxe,KAAKqsD,QAAS,EAAI96C,EAAI,SAAUmJ,GACrC,OAAO,WACL,IAAO86B,EAAGj5C,EAEV,IAAKme,EAAE2xC,QAAS,EAAI7qD,aAAagd,GAAIg3B,EAAI,EAAGj5C,EAAI6K,EAAEY,OAAQzL,EAAIi5C,EAAGA,IAASpuC,EAAEouC,GAAMn0C,UAElF,OAAO+c,EAAEhH,SAAUsD,EAAEqC,SAAWrC,EAAE+sF,0BAAuB,GANhC,CAQ3BznG,MAAOwe,EAAI7c,WAAW4P,EAAG,KAAMnK,EAAI,WACnC,IAAIgX,EAAGhX,EAAGoX,EAAGjiB,EAEb,IAAmCA,EAAI,GAAI6hB,EAAI,EAAGhX,GAA7CoX,EAAI,CAAC,YAAa,YAAiCxW,OAAQZ,EAAIgX,EAAGA,IAAK1D,EAAI8D,EAAEJ,GAAI7hB,EAAEyR,KAAKwnC,EAAE96B,EAAG,CAChGsyD,UAAW51D,SACX81D,aAAc37D,KAGhB,OAAOhV,EAR4B,IAUpCia,EAAEpV,UAAUqmG,mBAAqB,WAClC,OAAOznG,KAAKqsD,QAAU7tC,EAAExe,KAAK+c,cAAW,EAAS/c,KAAKmoG,8BACrD3xF,EAAEpV,UAAU+mG,2BAA6B,SAAU/pF,GACpD,IAAI1D,EACJ,OAAQ,MAAQ0D,EAAIA,EAAIA,EAAIpe,KAAKijG,gCAAgC1xF,QAAU0X,EAAE7K,EAAGpe,KAAKgoG,uBAAyBhoG,KAAKgoG,qBAAuB5pF,EAAG,OAAS1D,EAAI1a,KAAKq7E,WAAa,mBAAqB3gE,EAAEkuF,uBAAyBluF,EAAEkuF,uBAAuB5oG,KAAKgoG,qBAAqBpgG,MAAM,SAAM,QAAU,GACpS4O,EAAEpV,UAAU8mG,gCAAkC,SAAU9pF,GACzD,IAAI1D,EAAGnJ,EAAGnK,EAAGouC,EACb,OAAOpuC,EAAIpH,KAAKumG,mCAAmCnoF,EAAE,IAAK7M,EAAIuW,EAAE1J,GAAKhX,EAAI,OAASouC,EAAIx1C,KAAKumG,mCAAmCnoF,EAAE,KAAOo3B,EAAIpuC,EAAG,MAAQA,GAAK,MAAQmK,IAAKmJ,EAAItD,SAAS4wE,eAAiBC,SAASpkF,MAAM6W,EAAGtT,GAAIsT,EAAEytE,OAAOtkF,MAAM6W,EAAGnJ,GAAImJ,QAAK,GACtPlE,EAAEpV,UAAUgnG,mBAAqB,SAAUhqF,GAC5C,IAAI1D,EAAGnJ,EACP,OAAQmJ,EAAI1a,KAAK2mG,wBAAwBvoF,KAAO,OAAS7M,EAAIvR,KAAKijG,gCAAgCvoF,IAAMnJ,EAAE,QAAK,GAC9GiF,EAAEpV,UAAUsnG,sBAAwB,SAAUhuF,GAC/C,OAAOA,EAAE+tF,UAAYrqF,EAAEpe,KAAK+c,QAASrC,EAAEo2D,gBAAkB1yD,EAAEpe,KAAK+c,QAASrC,EAAEo2D,iBAAmB1yD,EAAEpe,KAAK+c,QAASrC,EAAEq2D,eAC/Gv6D,EA5EqP,CA6ExPkE,EAAE0vD,cACJrqE,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EAAI,SAAUJ,EAAG1D,GACnB,SAASnJ,IACPvR,KAAK2Z,YAAcyE,EAGrB,IAAK,IAAIhX,KAAKsT,EAAGne,EAAEwD,KAAK2a,EAAGtT,KAAOgX,EAAEhX,GAAKsT,EAAEtT,IAE3C,OAAOmK,EAAEnQ,UAAYsZ,EAAEtZ,UAAWgd,EAAEhd,UAAY,IAAImQ,EAAK6M,EAAEqsD,UAAY/vD,EAAEtZ,UAAWgd,GAElF7hB,EAAI,GAAGge,eACPoE,EAAI,GAAG/W,MAEXR,EAAIsT,EAAEq1D,iBAAkBv6B,EAAI96B,EAAEs1D,eAAgBz+D,EAAImJ,EAAEsxD,gBAAiB5tD,EAAI1D,EAAE8xD,eAAgB9xD,EAAEmuF,iBAAmB,SAAUtsG,GACxH,SAASurB,EAAE1J,GACT,IAAI7M,EAAGnK,EACPpH,KAAK8oG,cAAgB1qF,EAAE0qF,cAAev3F,EAAI6M,EAAEhH,SAAUhQ,EAAIgX,EAAEg5B,KAAMp3C,KAAK+kG,iBAAmB,IAAIrqF,EAAEitF,iBAAiB3nG,KAAK8oG,eAAgB9oG,KAAK+kG,iBAAiB1pB,SAAWr7E,KAAMA,KAAKiuF,YAAc,IAAIvzE,EAAEklF,YAAe5/F,KAAKiuF,YAAY5S,SAAWr7E,KAAMA,KAAK4lG,kBAAoB,IAAIlrF,EAAEorF,kBAAkB9lG,KAAKiuF,YAAY6J,kBAAmB93F,KAAK4lG,kBAAkBvqB,SAAWr7E,KAAMA,KAAK6iF,gBAAkB,IAAInoE,EAAE,QAAUA,EAAE4C,OAAOxV,MAAMixE,WAAa,oBAAmB/4E,KAAK8oG,eAAgB9oG,KAAK6iF,gBAAgBxH,SAAWr7E,KAAMA,KAAK6iF,gBAAgB1F,UAAYn9E,KAAKiuF,YAAajuF,KAAK+oG,sBAAwB,IAAIruF,EAAEszE,sBAAsBhuF,KAAK8oG,cAAe9oG,KAAKiuF,aAAcjuF,KAAK+oG,sBAAsB1tB,SAAWr7E,KAAMA,KAAKgpG,kBAAoB,IAAItuF,EAAEq1E,kBAAkB/vF,KAAK8oG,cAAcG,gBAAiBjpG,KAAKgpG,kBAAkB3tB,SAAWr7E,KAAMA,KAAKkpG,OAAS,IAAIxuF,EAAEoqF,OAAO9kG,KAAKiuF,YAAajuF,KAAK+kG,iBAAkB/kG,KAAK8oG,eAAgB,MAAQv3F,EAAIvR,KAAKkpG,OAAOhE,aAAa3zF,GAAKvR,KAAKkpG,OAAO/D,SAAS/9F,GAG39B,IAAI6hB,EACJ,OAAOzK,EAAEsJ,EAAGvrB,GAAIurB,EAAE1mB,UAAUkmG,yBAA2B,WACrD,OAAO5sF,EAAEm2D,wBAAwBy2B,yBAAyBtnG,KAAK+kG,mBAC9Dj9E,EAAE1mB,UAAUmmG,2BAA6B,WAC1C,OAAO7sF,EAAEm2D,wBAAwB02B,2BAA2BvnG,KAAK+kG,mBAChEj9E,EAAE1mB,UAAUq2E,OAAS,WACtB,OAAOz3E,KAAK+oG,sBAAsBtxB,UACjC3vD,EAAE1mB,UAAUkiF,QAAU,WACvB,OAAOtjF,KAAKiuF,YAAY4S,YAAY7gG,KAAK8oG,cAAcplG,YACtDokB,EAAE1mB,UAAU2+F,6BAA+B,WAC5C,OAAO//F,KAAKmpG,oBAAoB,mBAAoBnpG,KAAKopG,mBAAgB,EAASppG,KAAKy3E,UACtF3vD,EAAE1mB,UAAU2iG,sCAAwC,SAAU3lF,GAC/D,OAAOpe,KAAK6/F,kBAAoBzhF,EAAGpe,KAAKgpG,kBAAkBjY,iBAAiB/wF,KAAK6/F,mBAAoB7/F,KAAKqpG,uBAAwBrpG,KAAKmpG,oBAAoB,oBAAqB,CAC7K94D,WAAYrwC,KAAK6/F,qBAElB/3E,EAAE1mB,UAAU4iG,sCAAwC,SAAU5lF,GAC/D,OAAOpe,KAAKspG,QAAUtpG,KAAKupG,YAAcnrF,OAAI,GAC5C0J,EAAE1mB,UAAU2/F,4BAA8B,SAAU3iF,GACrD,OAAOpe,KAAKmpG,oBAAoB,cAAe,CAC7C/wB,KAAMh6D,KAEP0J,EAAE1mB,UAAUsiG,4BAA8B,SAAUtlF,GACrD,IAAI1D,EACJ,OAAOA,EAAI1a,KAAK4lG,kBAAkBI,iBAAiB5nF,GAAIpe,KAAKmpG,oBAAoB,iBAAkB,CAChG1zB,WAAY/6D,KAEboN,EAAE1mB,UAAUuiG,6BAA+B,SAAUvlF,GACtD,IAAI1D,EACJ,OAAO1a,KAAK+oG,sBAAsB5Z,sBAAsB/wE,GAAI1D,EAAI1a,KAAK4lG,kBAAkBI,iBAAiB5nF,GAAIpe,KAAKmpG,oBAAoB,kBAAmB,CACtJ1zB,WAAY/6D,IACV1a,KAAKmpG,oBAAoB,WAC5BrhF,EAAE1mB,UAAUwiG,yCAA2C,SAAUxlF,GAClE,OAAOpe,KAAK+oG,sBAAsBnvB,wBAAwBx7D,GAAIpe,KAAKmpG,oBAAoB,WACtFrhF,EAAE1mB,UAAUqiG,+BAAiC,SAAUrlF,GACxD,IAAI1D,EACJ,OAAOA,EAAI1a,KAAK4lG,kBAAkBO,mBAAmB/nF,GAAIpe,KAAKmpG,oBAAoB,oBAAqB,CACrG1zB,WAAY/6D,KAEboN,EAAE1mB,UAAUyiG,qCAAuC,SAAUzlF,EAAG1D,GACjE,OAAO1a,KAAKwpG,wBAA0BxpG,KAAKiuF,YAAY72E,SAASsnF,6BAA6BtgF,GAAIpe,KAAK+oG,sBAAsBzZ,qCAAqClxE,EAAG1D,GAAI1a,KAAK+kG,iBAAiBlC,iBAAiB7iG,KAAKwpG,0BACnN1hF,EAAE1mB,UAAU0iG,oCAAsC,WACnD,OAAO9jG,KAAK+oG,sBAAsBxZ,4BAA6BvvF,KAAKwpG,wBAA0B,MAC7F1hF,EAAE1mB,UAAUuhG,sDAAwD,SAAUvkF,GAC/E,OAAQpe,KAAKypG,iBAAmBzpG,KAAK0pG,aAAe1pG,KAAK2pG,uBAAyBvrF,EAAGpe,KAAK4pG,8CAAgD5pG,KAAKiuF,YAAYa,SAAU9uF,KAAKopG,mBAAgB,EAASppG,KAAKy3E,eAAY,GACnN3vD,EAAE1mB,UAAU++F,4BAA8B,WAC3C,OAAOngG,KAAKypG,iBAAkB,GAC7B3hF,EAAE1mB,UAAUi/F,2BAA6B,WAC1C,OAAOrgG,KAAK+oG,sBAAsB3Z,mBAAoBpvF,KAAKy3E,SAAUz3E,KAAKypG,iBAAkB,GAC3F3hF,EAAE1mB,UAAUwhG,oBAAsB,WACnC,OAAO5iG,KAAK+kG,kBACXj9E,EAAEuiD,YAAY,0CAA2CviD,EAAEuiD,YAAY,0CAA2CviD,EAAE1mB,UAAU8kG,+CAAiD,SAAU9nF,GAC1L,OAAOpe,KAAKwhG,iBAAiBpjF,IAC5B0J,EAAE1mB,UAAU4tF,0CAA4C,WACzD,OAAOhvF,KAAK6iF,gBAAgBlG,6BAA8B38E,KAAK+kG,iBAAiBsD,OAAQroG,KAAK+kG,iBAAiBwD,kBAC7GzgF,EAAE1mB,UAAU6tF,yCAA2C,WACxD,OAAOjvF,KAAK6iF,gBAAgBjG,4BAA6B58E,KAAK+kG,iBAAiBuD,SAAUtoG,KAAKqpG,uBAAwBrpG,KAAKmpG,oBAAoB,SAC9IrhF,EAAE1mB,UAAU8tF,+BAAiC,WAC9C,OAAO,MAAQlvF,KAAK2pG,yBAA2B3pG,KAAK4pG,gDAAkD5pG,KAAKiuF,YAAYa,UAAY9uF,KAAK+kG,iBAAiBlC,iBAAiB7iG,KAAK2pG,wBAAyB3pG,KAAK2pG,uBAAyB,KAAM3pG,KAAK4pG,8CAAgD,MAAO5pG,KAAK6pG,8BAAgC7pG,KAAKiuF,YAAYa,WAAa9uF,KAAK8pG,mBAAoB9pG,KAAKiuF,YAAYmU,0BAA2BpiG,KAAKmpG,oBAAoB,WAAYnpG,KAAK6pG,4BAA8B7pG,KAAKiuF,YAAYa,UACxgBhnE,EAAE1mB,UAAUmtF,8BAAgC,WAC7C,OAAOvuF,KAAK+pG,sBAAwB/pG,KAAK6iG,iBAAiB,CACxD96F,MAAO,EACPgsB,OAAQ,IACN/zB,KAAKgpG,kBAAkBrY,aAAc3wF,KAAKmpG,oBAAoB,UACjErhF,EAAE1mB,UAAUqtF,6BAA+B,WAC5C,OAAOzuF,KAAKmpG,oBAAoB,SAC/BrhF,EAAE1mB,UAAUutF,yCAA2C,SAAUvwE,EAAG1D,GACrE,OAAO1a,KAAKgpG,kBAAkBrY,aAAc3wF,KAAKiuF,YAAYsT,eAAenjF,EAAG1D,IAC9EoN,EAAE1mB,UAAUyuF,qDAAuD,SAAUzxE,GAC9E,IAAI1D,EAAGnJ,EACP,OAAOmJ,EAAI,OAASnJ,EAAIvR,KAAKwpG,yBAA2Bj4F,EAAIvR,KAAKiuF,YAAY72E,SAASsnF,6BAA6BtgF,GAAIpe,KAAK+kG,iBAAiBlC,iBAAiBnoF,EAAE,KAC/JoN,EAAE1mB,UAAUquF,0CAA4C,SAAUrxE,GACnE,OAAOpe,KAAKkpG,OAAO9kB,gBAAgB,kBAAmB,CACpD7/D,QAASnG,EAAEg3B,GACXgvD,gBAAgB,KAEjBt8E,EAAE1mB,UAAUwuF,mDAAqD,SAAUxxE,GAC5E,OAAOpe,KAAKwhG,iBAAiBpjF,IAC5B0J,EAAE1mB,UAAUi8E,+BAAiC,WAC9C,OAAOr9E,KAAKopG,eAAgB,EAAIppG,KAAKgqG,iBAAkB,GACtDliF,EAAE1mB,UAAU07E,gCAAkC,WAC/C,OAAO98E,KAAKgqG,iBAAkB,GAC7BliF,EAAE1mB,UAAUk8E,8BAAgC,WAC7C,OAAOt9E,KAAKopG,eAAgB,EAAIppG,KAAKgqG,iBAAmBhqG,KAAKgqG,iBAAkB,EAAIhqG,KAAKy3E,eAAY,GACnG3vD,EAAE1mB,UAAU08E,sCAAwC,WACrD,OAAO99E,KAAKmpG,oBAAoB,WAC/BrhF,EAAE1mB,UAAU47E,iCAAmC,WAChD,OAAOh9E,KAAKsjF,WACXx7D,EAAE1mB,UAAUw9E,iCAAmC,WAChD,OAAO5+E,KAAKiqG,yBACXniF,EAAE1mB,UAAUsmF,qCAAuC,SAAUtpE,GAC9D,OAAOpe,KAAKkqG,0BAA0B9rF,IACrC0J,EAAE1mB,UAAUm/E,2BAA6B,WAC1C,OAAOvgF,KAAKkpG,OAAO9kB,gBAAgB,QAClCt8D,EAAE1mB,UAAU2/E,yBAA2B,SAAU3iE,GAClD,OAAOpe,KAAKkpG,OAAO9kB,gBAAgB,SAAUpkF,KAAKspG,SAAU,EAAItpG,KAAKmpG,oBAAoB,eAAgB,CACvGzoB,MAAOtiE,KAER0J,EAAE1mB,UAAU6/E,wBAA0B,SAAU7iE,GACjD,OAAOA,EAAE4f,MAAQh+B,KAAKupG,YAAavpG,KAAKupG,YAAc,KAAMvpG,KAAKspG,QAAU,KAAMtpG,KAAKmpG,oBAAoB,QAAS,CACjHzoB,MAAOtiE,KAER0J,EAAE1mB,UAAU8+E,4BAA8B,WAC3C,OAAOlgF,KAAKkpG,OAAO9kB,gBAAgB,SAClCt8D,EAAE1mB,UAAU87E,+BAAiC,WAC9C,OAAOl9E,KAAKkpG,OAAO9kB,gBAAgB,eAClCt8D,EAAE1mB,UAAUylF,+BAAiC,WAC9C,OAAO7mF,KAAKkpG,OAAOj0B,QAClBntD,EAAE1mB,UAAUulF,+BAAiC,WAC9C,OAAO3mF,KAAKkpG,OAAOn0B,QAClBjtD,EAAE1mB,UAAUq9E,yCAA2C,SAAUrgE,GAClE,OAAOpe,KAAKgpG,kBAAkB9X,qBAAqB9yE,IAClD0J,EAAE1mB,UAAUm+E,4BAA8B,WAC3C,OAAOv/E,KAAKmqG,wBAA0BnqG,KAAK+kG,iBAAiBjE,oBAC3Dh5E,EAAE1mB,UAAUy+E,uCAAyC,SAAUzhE,GAChE,OAAOpe,KAAK+kG,iBAAiB9kB,+BAA+B7hE,IAC3D0J,EAAE1mB,UAAU2+E,6BAA+B,WAC5C,OAAO//E,KAAK+kG,iBAAiBlC,iBAAiB7iG,KAAKmqG,yBAA0BnqG,KAAKmqG,wBAA0B,MAC3GriF,EAAE1mB,UAAUwnG,uBAAyB,SAAUxqF,GAChD,OAAOpe,KAAKiuF,YAAYmU,0BAA2BpiG,KAAKqpG,uBAAwBrpG,KAAKwpG,0BAA4Bh0D,EAAEx1C,KAAKwpG,wBAAyBprF,IAAMpe,KAAKiuF,YAAYwT,wBAAyBzhG,KAAKmpG,oBAAoB,qBACzNrhF,EAAE1mB,UAAUivF,sBAAwB,WACrC,OAAOrwF,KAAK8gG,wBAAqB,EAAS9gG,KAAK6iG,iBAAiB,CAC9D96F,MAAO,EACPgsB,OAAQ,KAETjM,EAAE1mB,UAAUovF,uBAAyB,SAAUpyE,GAChD,OAAOpe,KAAKoqG,aAAahsF,IACxB0J,EAAE1mB,UAAUqvF,0BAA4B,SAAUryE,GACnD,OAAOpe,KAAKkqG,0BAA0B9rF,GAAIpe,KAAKiuF,YAAYtG,uBAAuBvpE,GAAIpe,KAAKy3E,SAAUz3E,KAAKqqG,qBAAkB,EAASrqG,KAAK8oG,cAAc71E,SACvJnL,EAAE1mB,UAAUowF,0BAA4B,SAAUpzE,EAAG1D,GACtD,OAAO1a,KAAKkqG,0BAA0B9rF,GAAIpe,KAAKiuF,YAAYrG,oBAAoBxpE,EAAG1D,GAAI1a,KAAKy3E,SAAUz3E,KAAKqqG,qBAAkB,EAASrqG,KAAK8oG,cAAc71E,SACvJnL,EAAE1mB,UAAUqwF,0BAA4B,SAAUrzE,GACnD,OAAOpe,KAAKkqG,0BAA0B9rF,GAAIpe,KAAKiuF,YAAY9H,uBAAuB/nE,GAAIpe,KAAKy3E,SAAUz3E,KAAKqqG,qBAAkB,EAASrqG,KAAK8oG,cAAc71E,SACvJnL,EAAE1mB,UAAUgwF,sBAAwB,WACrC,OAAOpxF,KAAKiuF,YAAYmV,4BAA6BpjG,KAAKwiG,mBACzD16E,EAAE1mB,UAAUiwF,qBAAuB,SAAUjzE,GAC9C,OAAOpe,KAAKmpG,oBAAoB,sBAAuB,CACrDmB,WAAYlsF,KAEb0J,EAAE1mB,UAAUswF,qBAAuB,SAAUtzE,GAC9C,OAAOpe,KAAKyiG,gBAAiBziG,KAAK8oG,cAAc71E,QAASjzB,KAAKmpG,oBAAoB,sBAAuB,CACvGmB,WAAYlsF,KAEb0J,EAAE1mB,UAAUohG,gBAAkB,WAC/B,OAAOxiG,KAAKqqG,qBAAkB,GAAUrqG,KAAK+kG,iBAAiBsD,OAAQroG,KAAKiuF,YAAYuU,kBAAmBxiG,KAAKqqG,iBAAkB,EAAIrqG,KAAKy3E,WACzI3vD,EAAE1mB,UAAUqhG,cAAgB,WAC7B,OAAOziG,KAAKqqG,iBAAmBrqG,KAAKiuF,YAAYwU,gBAAiBziG,KAAK+kG,iBAAiBuD,SAAUtoG,KAAKqqG,iBAAkB,EAAIrqG,KAAKy3E,eAAY,GAC5I3vD,EAAE1mB,UAAU+uF,QAAU,CACvBlb,KAAM,CACJ/2E,KAAM,WACJ,OAAO8B,KAAKkpG,OAAO3E,WAErBn9D,QAAS,WACP,OAAOpnC,KAAKkpG,OAAOj0B,SAGvBF,KAAM,CACJ72E,KAAM,WACJ,OAAO8B,KAAKkpG,OAAO1E,WAErBp9D,QAAS,WACP,OAAOpnC,KAAKkpG,OAAOn0B,SAGvBH,KAAM,CACJ12E,KAAM,WACJ,OAAO8B,KAAKkpG,OAAOzD,qBAAqB,UAG5C3jB,qBAAsB,CACpB5jF,KAAM,WACJ,OAAO8B,KAAKkpG,OAAOrnB,2BAErBz6C,QAAS,WACP,OAAOpnC,KAAKkpG,OAAOpnB,wBAA0B9hF,KAAKy3E,WAGtD2K,qBAAsB,CACpBlkF,KAAM,WACJ,OAAO8B,KAAKkpG,OAAO/mB,2BAErB/6C,QAAS,WACP,OAAOpnC,KAAKkpG,OAAO9mB,wBAA0BpiF,KAAKy3E,WAGtDpD,YAAa,CACXn2E,KAAM,WACJ,OAAO,GAETkpC,QAAS,WACP,OAAO1sB,EAAE4C,OAAOxV,MAAMkxE,UAAUh5E,KAAKkpG,OAAO9rB,gBAG/Ct1D,EAAE1mB,UAAUmpG,gBAAkB,SAAUnsF,GACzC,IAAI1D,EAAGnJ,EACP,QAAOvR,KAAKwqG,iBAAiBpsF,OAAa,OAAS1D,EAAI1a,KAAKmwF,QAAQ/xE,KAAO,OAAS7M,EAAImJ,EAAExc,MAAQqT,EAAExR,KAAKC,WAAQ,IAChH8nB,EAAE1mB,UAAUgpG,aAAe,SAAUhsF,GACtC,IAAI1D,EAAGnJ,EACP,OAAOvR,KAAKwqG,iBAAiBpsF,GAAKpe,KAAKmpG,oBAAoB,gBAAiB,CAC1EsB,WAAYrsF,IACT,OAAS1D,EAAI1a,KAAKmwF,QAAQ/xE,KAAO,OAAS7M,EAAImJ,EAAE0sB,SAAW71B,EAAExR,KAAKC,WAAQ,GAC9E8nB,EAAE1mB,UAAUopG,iBAAmB,SAAUpsF,GAC1C,MAAO,OAAOlgB,KAAKkgB,IAClB0J,EAAE1mB,UAAUspG,kBAAoB,WACjC,IAAItsF,EAAG1D,EAGP,IAAK0D,KAFL1D,EAAI,GAEM1a,KAAKmwF,QAASz1E,EAAE0D,GAAKpe,KAAKuqG,gBAAgBnsF,GAEpD,OAAO1D,GACNoN,EAAE1mB,UAAUioG,qBAAuB,WACpC,IAAIjrF,EACJ,OAAOA,EAAIpe,KAAK0qG,oBAAqBn5F,EAAE6M,EAAGpe,KAAK2qG,qBAAkB,GAAU3qG,KAAK2qG,eAAiBvsF,EAAGpe,KAAKgpG,kBAAkBpY,cAAc5wF,KAAK2qG,gBAAiB3qG,KAAKmpG,oBAAoB,iBAAkB,CACxMhZ,QAASnwF,KAAK2qG,mBAEf7iF,EAAE1mB,UAAU0oG,iBAAmB,WAChC,IAAI1rF,EAAG1D,EAAGnJ,EAAGnK,EAAGouC,EAAGh3B,EAAGjiB,EAAGoiB,EAEzB,IAAKA,EAAI3e,KAAKiuF,YAAY+R,cAAwCzuF,EAAI,EAAGnK,GAAhCouC,EAAIx1C,KAAKkpG,OAAOjE,SAAsBj9F,OAAQZ,EAAImK,EAAGA,IAAKmJ,EAAI86B,EAAEjkC,GAAI6M,EAAIO,EAAEvH,SAAU7a,EAAIoiB,EAAEshF,cAAkE,OAAnDthF,EAAI,OAASH,EAAI9D,EAAE3a,KAAKC,KAAKkpG,OAAQvqF,IAAMH,EAAI,IAAcpH,WAAauH,EAAEvH,SAAWgH,GAAI,MAAQO,EAAEshF,gBAAkBthF,EAAEshF,cAAgB1jG,GAE3R,OAAO0sB,EAAEtK,EAAG3e,KAAKiuF,YAAY+R,oBAAiB,EAAShgG,KAAKiuF,YAAYiS,aAAavhF,IACpFsK,EAAI,SAAU7K,EAAG1D,GAClB,OAAO86B,EAAEp3B,EAAE6hF,cAAevlF,EAAEulF,gBAAkB7hF,EAAEhH,SAASyzD,UAAUnwD,EAAEtD,WACpE0Q,EAAE1mB,UAAUwpG,mBAAqB,WAClC,IAAIxsF,EAAG7M,EACP,OAAO6M,EAAIpe,KAAK+oG,sBAAsBna,yBAA0Br9E,EAAImJ,EAAEi9D,uBAAuBv5D,EAAG,aAAcpe,KAAK8oG,cAAc+B,qBAAqBt5F,IACrJuW,EAAE1mB,UAAU+nG,oBAAsB,SAAU/qF,EAAG1D,GAChD,OAAQ0D,GACN,IAAK,kBACHpe,KAAK8qG,gCAAiC,EACtC,MAEF,IAAK,SACH9qG,KAAK8qG,iCAAmC9qG,KAAK8qG,gCAAiC,EAAI9qG,KAAKmpG,oBAAoB,WAC3G,MAEF,IAAK,SACL,IAAK,iBACL,IAAK,kBACL,IAAK,oBACHnpG,KAAK4qG,qBAGT,OAAO5qG,KAAK8oG,cAAchjE,OAAO1nB,EAAG1D,IACnCoN,EAAE1mB,UAAUogG,iBAAmB,SAAUpjF,GAC1C,OAAOpe,KAAKkpG,OAAO9kB,gBAAgB,qBAAsBpkF,KAAKiuF,YAAYuT,iBAAiBpjF,GAAIpe,KAAKy3E,UACnG3vD,EAAE1mB,UAAU8oG,0BAA4B,SAAUxvF,GACnD,IAAInJ,EAAGikC,EACP,OAAOjkC,EAAI6M,EAAE1D,GAAI86B,EAAIx1C,KAAK+kG,iBAAiBjE,mBAAoBvvF,IAAMnK,EAAEouC,GAAKx1C,KAAKkpG,OAAO9kB,gBAAgB,aAAc,CACpH7/D,QAASvkB,KAAK+qG,iBACd3G,gBAAgB,SACb,GACJt8E,EAAE1mB,UAAU6oG,sBAAwB,WACrC,OAAOjqG,KAAKkpG,OAAO9kB,gBAAgB,SAAU,CAC3C7/D,QAASvkB,KAAK+qG,eAAe/qG,KAAK6/F,mBAClCuE,gBAAgB,KAEjBt8E,EAAE1mB,UAAU2pG,eAAiB,WAC9B,IAAI3sF,EACJ,OAAOA,EAAI,GAAKta,UAAUkE,OAAS2W,EAAE5e,KAAK+D,UAAW,GAAK,GAAI,CAAC9D,KAAKgrG,qBAAsBhrG,KAAKirG,kBAAkBt0F,OAAOgI,EAAE5e,KAAKqe,KAC9H0J,EAAE1mB,UAAU4pG,mBAAqB,WAClC,IAAI5sF,EACJ,OAAOA,EAAIpe,KAAK+kG,iBAAiBjE,mBAAoB15F,EAAEgX,GAAKA,EAAE,GAAGrW,MAAQqW,GACxE0J,EAAE1mB,UAAU6pG,eAAiB,WAC9B,OAAOvwF,EAAE4C,OAAOy6D,aAAe,EAAIr/D,KAAKG,OAAM,IAAIX,MAAOyI,UAAYjG,EAAE4C,OAAOy6D,cAAgB,GAC7FjwD,EAAE1mB,UAAUsoG,UAAY,WACzB,IAAItrF,EACJ,OAAOpe,KAAK8oG,iBAAmB,OAAS1qF,EAAIpe,KAAK8oG,cAAc7mC,eAAiB7jD,EAAE8V,mBAAgB,IACjGpM,EAAE1mB,UAAU2oG,mBAAqB,WAClC,OAAO/pG,KAAK0pG,cAAgB1pG,KAAK8gG,oBAChCh5E,EAnR2G,CAoR9GpN,EAAEwgE,aACJn7E,KAAKC,MAAO,WACZ,IAAIoe,EACA7M,EACAnK,EACAouC,EACAh3B,EACAjiB,EACAoiB,EAQEsK,EAAGpB,EAAGlrB,EAAG0hB,EAAGxhB,EAAG2Z,EAAG4sD,EAAG3mE,EAPvBqrB,EAAI,GAAGngB,SAAW,SAAUyW,GAC9B,IAAK,IAAI1D,EAAI,EAAGnJ,EAAIvR,KAAKgI,OAAQuJ,EAAImJ,EAAGA,IAAK,GAAIA,KAAK1a,MAAQA,KAAK0a,KAAO0D,EAAG,OAAO1D,EAEpF,OAAQ,GAGVnJ,EAAImJ,EAAE8iC,QAASjhD,EAAIme,EAAEk0D,YAAajwD,EAAIjE,EAAEqS,aAAcyoB,EAAI96B,EAAEk/B,YAAap7B,EAAI9D,EAAE4yD,gBAAiBlmE,EAAIsT,EAAE2yD,2BAA4BjvD,EAAI1D,EAAEi1D,eAAeC,mBAAoBl1D,EAAEwoD,gBAAgB,eAEpL1sD,EAAI,EAAGqR,EAAI,SAAUzJ,GAC1B,OAAQhH,SAAS9S,cAAc,WAAa8Z,EAAE2uE,aAAa,cAAgB31E,SAAS9S,cAAc,iBAAmB8Z,EAAIA,EAAE6U,aAAU,GACpImwC,EAAI,SAAUhlD,GACf,OAAOA,EAAE2uE,aAAa,wBAAqB,GAAU3uE,EAAE3a,aAAa,kBAAmB,IAAK+a,EAAE,QAAS,CACrGwuD,UAAW5uD,EACX8uD,aAAc,WACZ,OAAOvwE,EAAEyhB,QAGZ6K,EAAI,SAAU7K,GACf,OAAOA,EAAE2uE,aAAa,aAAU,EAAS3uE,EAAE3a,aAAa,OAAQ,YAC/D9G,EAAI,SAAUyhB,GACf,OAAOvhB,EAAEuhB,GAAI3hB,EAAE2hB,IACdvhB,EAAI,SAAUuhB,GACf,OAAQ,mBAAqBhH,SAAS8zF,sBAAwB9zF,SAAS8zF,sBAAsB,6BAA0B,IAAW9zF,SAAS+zF,YAAY,wBAAwB,GAAI,GAAK31D,EAAE,kBAAmB,CAC3Mw3B,UAAW5uD,EACXoa,gBAAgB,UACZ,GACL/7B,EAAI,WACL,IAAI2hB,EACJ,QAAQ,mBAAqBhH,SAAS8zF,sBAAwB9zF,SAAS8zF,sBAAsB,kCAA+B,IAA6D,SAAjD9sF,EAAI1D,EAAE4C,OAAOmvD,gBAAyB,QAAEkC,UAAwB,MAAQvwD,OAAgE,EAA3DhH,SAAS+zF,YAAY,6BAA6B,EAAI/sF,IAC1QC,EACM9M,EAAE04D,qBAAuB,CAC9B98C,QAAS,SACTK,MAAO,QACL,CACFL,QAAS,eACTK,MAAO,OAEN,CACHyiD,WAAY,sPAAwP7xD,EAAI,oDAAsDA,EAAI,sHAAwHA,EAAI,oKAAsKC,EAAE8O,QAAU,0BAA4B9O,EAAEmP,MAAQ,kUACtpB69D,OAAQ,CACN3qF,IAAK,WACH,OAAOV,KAAK+sF,aAAa,WAAa/sF,KAAKqD,aAAa,YAAcrD,KAAKyD,aAAa,YAAa+S,GAAIxW,KAAKqrF,UAGlH+f,OAAQ,CACN1qG,IAAK,WACH,IAAI0d,EAAG1D,EAAGnJ,EACV,OAAOmJ,EAAI,GAAI1a,KAAKo1C,IAAMp1C,KAAKiiE,eAAiBvnD,EAAE1M,KAAKnK,MAAM6W,EAAG1a,KAAKiiE,cAAcpyD,iBAAiB,cAAgB7P,KAAKo1C,GAAK,QAASh3B,EAAIhX,EAAEpH,KAAM,CACjJitE,iBAAkB,cACX17D,EAAI6M,EAAE6jE,WAAajiF,MAAQ,OAASuR,IAAMmJ,EAAE1M,KAAKoQ,GAAI1D,IAGlEuuF,eAAgB,CACdvoG,IAAK,WACH,IAAI0d,EAAG1D,EAAGnJ,EACV,OAAOvR,KAAK+sF,aAAa,WAAa,OAASryE,EAAI1a,KAAKiiE,eAAiBvnD,EAAEq5B,eAAe/zC,KAAKqD,aAAa,iBAAc,EAASrD,KAAKolB,YAAc7T,EAAI,gBAAkBvR,KAAKqrF,OAAQrrF,KAAKyD,aAAa,UAAW8N,GAAI6M,EAAI7hB,EAAE,eAAgB,CAC9O64C,GAAI7jC,IACFvR,KAAKolB,WAAW8M,aAAa9T,EAAGpe,MAAOoe,QAAK,IAGpDitF,aAAc,CACZ3qG,IAAK,WACH,IAAI0d,EAAG1D,EAAGnJ,EACV,OAAOvR,KAAK+sF,aAAa,SAAW,OAASx7E,EAAIvR,KAAKiiE,eAAiB1wD,EAAEwiC,eAAe/zC,KAAKqD,aAAa,eAAY,EAASrD,KAAKolB,YAAc1K,EAAI,cAAgB1a,KAAKqrF,OAAQrrF,KAAKyD,aAAa,QAASiX,GAAI0D,EAAI7hB,EAAE,QAAS,CAC/NyX,KAAM,SACNohC,GAAI16B,IACF1a,KAAKolB,WAAW8M,aAAa9T,EAAGpe,KAAK08C,oBAAqBt+B,QAAK,IAGvE8qF,OAAQ,CACNxoG,IAAK,WACH,IAAI0d,EACJ,OAAO,OAASA,EAAIpe,KAAKsrG,kBAAoBltF,EAAE8qF,YAAS,IAG5DrrF,KAAM,CACJnd,IAAK,WACH,IAAI0d,EACJ,OAAO,OAASA,EAAIpe,KAAKqrG,cAAgBjtF,EAAEP,UAAO,IAGtD1N,MAAO,CACLzP,IAAK,WACH,IAAI0d,EACJ,OAAO,OAASA,EAAIpe,KAAKqrG,cAAgBjtF,EAAEjO,WAAQ,GAErD1K,IAAK,SAAU2Y,GACb,IAAI1D,EACJ,OAAO1a,KAAKk/B,aAAe9gB,EAAG,OAAS1D,EAAI1a,KAAKkpG,QAAUxuF,EAAEyqF,SAASnlG,KAAKk/B,mBAAgB,IAG9F4G,OAAQ,SAAU1nB,EAAG1D,GACnB,OAAO1a,KAAKsrG,iBAAmB3sF,EAAE,QAAUP,EAAG,CAC5C4uD,UAAWhtE,KACXqwC,WAAY31B,SACT,GAEPmwF,qBAAsB,SAAUzsF,GAC9B,IAAI1D,EACJ,OAAO,OAASA,EAAI1a,KAAKqrG,cAAgB3wF,EAAEvK,MAAQiO,OAAI,GAEzDna,WAAY,WACV,OAAOm/D,EAAEpjE,MAAOipB,EAAEjpB,OAEpBwnC,QAAS,WACP,OAAOxnC,KAAK+sF,aAAa,2BAAwB,GAAU/sF,KAAKsrG,mBAAqB3sF,EAAE,yBAA0B,CAC/GquD,UAAWhtE,OACTA,KAAKsrG,iBAAmB,IAAI5wF,EAAEmuF,iBAAiB,CACjDC,cAAe9oG,KACfo3C,KAAMp3C,KAAKk/B,aAAel/B,KAAKmQ,QAC7BlN,sBAAsB,SAAUmb,GAClC,OAAO,WACL,OAAOO,EAAE,kBAAmB,CAC1BquD,UAAW5uD,KAHS,CAMxBpe,QAASA,KAAKsrG,iBAAiBhE,2BAA4BtnG,KAAKurG,wBAAyBvrG,KAAKwrG,wBAAyB3jF,EAAE7nB,QAE7HynC,WAAY,WACV,IAAIrpB,EACJ,OAAO,OAASA,EAAIpe,KAAKsrG,mBAAqBltF,EAAEmpF,6BAA8BvnG,KAAKyrG,0BAA2BzrG,KAAK0rG,2BAErHH,sBAAuB,WACrB,OAAOvrG,KAAK2rG,cAAgB3rG,KAAK4rG,aAAap3F,KAAKxU,MAAOiX,OAAOnR,iBAAiB,QAAS9F,KAAK2rG,eAAe,IAEjHF,wBAAyB,WACvB,OAAOx0F,OAAOlR,oBAAoB,QAAS/F,KAAK2rG,eAAe,IAEjEH,sBAAuB,WACrB,OAAOxrG,KAAK6rG,cAAgB7rG,KAAK8rG,aAAat3F,KAAKxU,MAAOiX,OAAOnR,iBAAiB,QAAS9F,KAAK6rG,eAAe,IAEjHH,wBAAyB,WACvB,OAAOz0F,OAAOlR,oBAAoB,QAAS/F,KAAK6rG,eAAe,IAEjED,aAAc,SAAUxtF,GACtB,IAAI1D,EACJ,IAAK0D,EAAEwnD,kBAAoBxnD,EAAExZ,UAAY,OAAS8V,EAAI1a,KAAKqrG,cAAgB3wF,EAAEqxF,UAAO,GAAS,OAAO/rG,KAAK8yE,SAE3Gg5B,aAAc,SAAU1tF,GACtB,IAAI1D,EACJ,KAAM0D,EAAEwnD,kBAAoB5lE,KAAKixB,SAAS7S,EAAExZ,WAAa8V,EAAItT,EAAEgX,EAAExZ,OAAQ,CACvEqoE,iBAAkB,YACbnlD,EAAE/nB,KAAKC,KAAKorG,OAAQ1wF,GAAK,GAAI,OAAO1a,KAAKizB,SAElD6/C,MAAO,WACL,OAAO9yE,KAAKmQ,MAAQnQ,KAAKk/B,kBAI/Bn/B,KAAKC,MAAO,aAAeD,KAAKC,QACjCD,KAAKC,MAAoCkI,EAAOC,QAAUD,EAAOC,QAAUuS,OAAyD,2BAAR,KAAQ,mCACvI3a,KAAKC,Q,uEC/kNP,IAAIwU,EAAO,EAAQ,QACfmB,EAAW,EAAQ,QACnBq2F,EAA+B,EAAQ,QACvCC,EAAwB,EAAQ,QAChCn3F,EAAW,EAAQ,QACnBo3F,EAAiB,EAAQ,QACzBp9D,EAAoB,EAAQ,QAIhC5mC,EAAOC,QAAU,SAAcgkG,GAC7B,IAOInkG,EAAQ2J,EAAQwtB,EAAM0R,EAAUC,EAAM3gC,EAPtC8J,EAAItE,EAASw2F,GACbtoC,EAAmB,mBAAR7jE,KAAqBA,KAAOye,MACvCnI,EAAkBxS,UAAUkE,OAC5BokG,EAAQ91F,EAAkB,EAAIxS,UAAU,QAAKkD,EAC7CqlG,OAAoBrlG,IAAVolG,EACVn7D,EAAiBnC,EAAkB70B,GACnClS,EAAQ,EAIZ,GAFIskG,IAASD,EAAQ53F,EAAK43F,EAAO91F,EAAkB,EAAIxS,UAAU,QAAKkD,EAAW,SAE3DA,GAAlBiqC,GAAiC4yB,GAAKplD,OAASwtF,EAAsBh7D,GAWvE,IADAt/B,EAAS,IAAIkyD,EADb77D,EAAS8M,EAASmF,EAAEjS,SAEdA,EAASD,EAAOA,IACpBoI,EAAQk8F,EAAUD,EAAMnyF,EAAElS,GAAQA,GAASkS,EAAElS,GAC7CmkG,EAAev6F,EAAQ5J,EAAOoI,QAThC,IAFA2gC,GADAD,EAAWI,EAAelxC,KAAKka,IACf62B,KAChBn/B,EAAS,IAAIkyD,IACL1kC,EAAO2R,EAAK/wC,KAAK8wC,IAAWE,KAAMhpC,IACxCoI,EAAQk8F,EAAUL,EAA6Bn7D,EAAUu7D,EAAO,CAACjtE,EAAKhvB,MAAOpI,IAAQ,GAAQo3B,EAAKhvB,MAClG+7F,EAAev6F,EAAQ5J,EAAOoI,GAWlC,OADAwB,EAAO3J,OAASD,EACT4J,I,wBChCA,SAAU7W,GACjB,aAEA,IAAIE,EAAS,CAAC,gBAAiB,aAAc,aAAW,aAAc,gBAAc,kBAAgB,cAAe,iBAAe,eAAgB,gBAAc,eAAgB,mBAC5KE,EAAc,CAAC,OAAQ,OAAQ,UAAQ,OAAQ,UAAQ,UAAQ,OAAQ,SAAO,OAAQ,UAAQ,OAAQ,WACtGC,EAAW,CAAC,iBAAe,UAAW,aAAW,YAAa,YAAa,WAAY,eACvFC,EAAgB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3DC,EAAc,CAAC,QAAM,KAAM,QAAM,KAAM,KAAM,KAAM,MAC9CP,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaA,EACb4W,kBAAkB,EAClB3W,SAAUA,EACVC,cAAeA,EACfC,YAAaA,EACbC,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,yBACTC,SAAU,gBACVC,QAAS,oBACTC,SAAU,6BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,YACRC,KAAM,gBACNC,EAAG,gBACHC,GAAI,YACJC,EAAG,UACHC,GAAI,gBACJC,EAAG,OACHC,GAAI,aACJC,EAAG,QACHC,GAAI,WACJC,EAAG,UACHC,GAAI,eACJC,EAAG,WACHC,GAAI,eAENC,uBAAwB,mBACxBC,QAAS,SAAUC,GAEjB,OAAOA,GADiB,IAAXA,EAAe,IAAMA,EAAS,KAAO,EAAI,KAAO,OAG/DE,KAAM,CACJC,IAAK,EAELC,IAAK,KAxDuFC,CAAQ,EAAQ,U,wBCJzG,SAAUyK,GACjB,aAEA,SAASmkG,EAAqBniF,EAAIjiB,GAChC,OAEGiiB,EAFIjiB,EAAS,CACdC,QAAS,IACGD,EAAOC,SAAUD,EAAOC,QAGxC,IAAIokG,EAAWD,GAAqB,SAAUpkG,EAAQC,IACpD,SAAWzK,GAEPwK,EAAOC,QAAUzK,IAFrB,EAIG,SAAUsJ,GACX,IAAIwlG,EAAU,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE1F,SAASC,EAAS/4F,EAAGgL,GACnB,IAAIC,EAAIjL,EAAE,GACNpW,EAAIoW,EAAE,GACNuV,EAAIvV,EAAE,GACN7W,EAAI6W,EAAE,GAQVpW,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAI2rB,GAAK3rB,EAAIT,GAAK6hB,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMrhB,EAAI,GACpBA,GAAKqhB,EAAIsK,GAAKvK,EAAE,GAAK,UAAY,IACjC,GAAK7hB,IAAM,IAAM8hB,EAAI,GACrBA,GAAK9hB,EAAIS,GAAKohB,EAAE,GAAK,UAAY,IACjC,GAAKuK,IAAM,IAAMpsB,EAAI,GACrBA,GAAKosB,EAAItK,GAAKD,EAAE,GAAK,WAAa,IAClC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAI2rB,GAAK3rB,EAAIT,GAAK6hB,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMrhB,EAAI,GACpBA,GAAKqhB,EAAIsK,GAAKvK,EAAE,GAAK,WAAa,IAClC,GAAK7hB,IAAM,IAAM8hB,EAAI,GACrBA,GAAK9hB,EAAIS,GAAKohB,EAAE,GAAK,WAAa,IAClC,GAAKuK,IAAM,IAAMpsB,EAAI,GACrBA,GAAKosB,EAAItK,GAAKD,EAAE,GAAK,SAAW,IAChC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAI2rB,GAAK3rB,EAAIT,GAAK6hB,EAAE,GAAK,WAAa,IAClC,EAAIC,IAAM,IAAMrhB,EAAI,GACpBA,GAAKqhB,EAAIsK,GAAKvK,EAAE,GAAK,WAAa,IAClC,GAAK7hB,IAAM,IAAM8hB,EAAI,GACrBA,GAAK9hB,EAAIS,GAAKohB,EAAE,IAAM,MAAQ,IAC9B,GAAKuK,IAAM,IAAMpsB,EAAI,GACrBA,GAAKosB,EAAItK,GAAKD,EAAE,IAAM,WAAa,IACnC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAI2rB,GAAK3rB,EAAIT,GAAK6hB,EAAE,IAAM,WAAa,IACnC,EAAIC,IAAM,IAAMrhB,EAAI,GACpBA,GAAKqhB,EAAIsK,GAAKvK,EAAE,IAAM,SAAW,IACjC,GAAK7hB,IAAM,IAAM8hB,EAAI,GACrBA,GAAK9hB,EAAIS,GAAKohB,EAAE,IAAM,WAAa,IACnC,GAAKuK,IAAM,IAAMpsB,EAAI,GACrBA,GAAKosB,EAAItK,GAAKD,EAAE,IAAM,WAAa,IACnC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAIT,EAAIosB,GAAKpsB,GAAK6hB,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMrhB,EAAI,GACpB2rB,EAAI3rB,GAAK2rB,GAAKvK,EAAE,GAAK,WAAa,IAClC,EAAI7hB,IAAM,IAAM8hB,EAAI,GACpBrhB,EAAIqhB,GAAKrhB,GAAKohB,EAAE,IAAM,UAAY,IAClC,GAAKuK,IAAM,IAAMpsB,EAAI,GACrB8hB,EAAI9hB,GAAK8hB,GAAKD,EAAE,GAAK,UAAY,IACjC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAIT,EAAIosB,GAAKpsB,GAAK6hB,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMrhB,EAAI,GACpB2rB,EAAI3rB,GAAK2rB,GAAKvK,EAAE,IAAM,SAAW,IACjC,EAAI7hB,IAAM,IAAM8hB,EAAI,GACpBrhB,EAAIqhB,GAAKrhB,GAAKohB,EAAE,IAAM,UAAY,IAClC,GAAKuK,IAAM,IAAMpsB,EAAI,GACrB8hB,EAAI9hB,GAAK8hB,GAAKD,EAAE,GAAK,UAAY,IACjC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAIT,EAAIosB,GAAKpsB,GAAK6hB,EAAE,GAAK,UAAY,IACjC,EAAIC,IAAM,IAAMrhB,EAAI,GACpB2rB,EAAI3rB,GAAK2rB,GAAKvK,EAAE,IAAM,WAAa,IACnC,EAAI7hB,IAAM,IAAM8hB,EAAI,GACpBrhB,EAAIqhB,GAAKrhB,GAAKohB,EAAE,GAAK,UAAY,IACjC,GAAKuK,IAAM,IAAMpsB,EAAI,GACrB8hB,EAAI9hB,GAAK8hB,GAAKD,EAAE,GAAK,WAAa,IAClC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAIT,EAAIosB,GAAKpsB,GAAK6hB,EAAE,IAAM,WAAa,IACnC,EAAIC,IAAM,IAAMrhB,EAAI,GACpB2rB,EAAI3rB,GAAK2rB,GAAKvK,EAAE,GAAK,SAAW,IAChC,EAAI7hB,IAAM,IAAM8hB,EAAI,GACpBrhB,EAAIqhB,GAAKrhB,GAAKohB,EAAE,GAAK,WAAa,IAClC,GAAKuK,IAAM,IAAMpsB,EAAI,GACrB8hB,EAAI9hB,GAAK8hB,GAAKD,EAAE,IAAM,WAAa,IACnC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAI2rB,EAAIpsB,GAAK6hB,EAAE,GAAK,OAAS,IACzB,EAAIC,IAAM,IAAMrhB,EAAI,GACpBA,EAAI2rB,GAAKvK,EAAE,GAAK,WAAa,IAC7B,GAAK7hB,IAAM,IAAM8hB,EAAI,GACrBA,EAAIrhB,GAAKohB,EAAE,IAAM,WAAa,IAC9B,GAAKuK,IAAM,IAAMpsB,EAAI,GACrBA,EAAI8hB,GAAKD,EAAE,IAAM,SAAW,IAC5B,GAAKphB,IAAM,GAAK2rB,EAAI,EAQ9B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAI2rB,EAAIpsB,GAAK6hB,EAAE,GAAK,WAAa,IAC7B,EAAIC,IAAM,IAAMrhB,EAAI,GACpBA,EAAI2rB,GAAKvK,EAAE,GAAK,WAAa,IAC7B,GAAK7hB,IAAM,IAAM8hB,EAAI,GACrBA,EAAIrhB,GAAKohB,EAAE,GAAK,UAAY,IAC5B,GAAKuK,IAAM,IAAMpsB,EAAI,GACrBA,EAAI8hB,GAAKD,EAAE,IAAM,WAAa,IAC9B,GAAKphB,IAAM,GAAK2rB,EAAI,EAQ9B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAI2rB,EAAIpsB,GAAK6hB,EAAE,IAAM,UAAY,IAC7B,EAAIC,IAAM,IAAMrhB,EAAI,GACpBA,EAAI2rB,GAAKvK,EAAE,GAAK,UAAY,IAC5B,GAAK7hB,IAAM,IAAM8hB,EAAI,GACrBA,EAAIrhB,GAAKohB,EAAE,GAAK,UAAY,IAC5B,GAAKuK,IAAM,IAAMpsB,EAAI,GACrBA,EAAI8hB,GAAKD,EAAE,GAAK,SAAW,IAC3B,GAAKphB,IAAM,GAAK2rB,EAAI,EAQ9B3rB,IADAA,KADA2rB,IADAA,KADApsB,IADAA,KADA8hB,IADAA,IAAMrhB,EAAI2rB,EAAIpsB,GAAK6hB,EAAE,GAAK,UAAY,IAC5B,EAAIC,IAAM,IAAMrhB,EAAI,GACpBA,EAAI2rB,GAAKvK,EAAE,IAAM,UAAY,IAC7B,GAAK7hB,IAAM,IAAM8hB,EAAI,GACrBA,EAAIrhB,GAAKohB,EAAE,IAAM,UAAY,IAC7B,GAAKuK,IAAM,IAAMpsB,EAAI,GACrBA,EAAI8hB,GAAKD,EAAE,GAAK,UAAY,IAC5B,GAAKphB,IAAM,GAAK2rB,EAAI,EAQ9B3rB,IADAA,KAHAT,IADAA,IAAMS,IADNqhB,IADAA,IAAMsK,GAAK3rB,GAAKT,IAAM6hB,EAAE,GAAK,UAAY,IAC/B,EAAIC,IAAM,IAAMrhB,EAAI,IACd2rB,IAAMvK,EAAE,GAAK,WAAa,IAChC,GAAK7hB,IAAM,IAAM8hB,EAAI,KAE/BsK,IADAA,IAAMtK,GAAK9hB,GAAKS,IAAMohB,EAAE,IAAM,WAAa,IACjC,GAAKuK,IAAM,IAAMpsB,EAAI,IACf8hB,IAAMD,EAAE,GAAK,SAAW,IAC9B,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KAHAT,IADAA,IAAMS,IADNqhB,IADAA,IAAMsK,GAAK3rB,GAAKT,IAAM6hB,EAAE,IAAM,WAAa,IACjC,EAAIC,IAAM,IAAMrhB,EAAI,IACd2rB,IAAMvK,EAAE,GAAK,WAAa,IAChC,GAAK7hB,IAAM,IAAM8hB,EAAI,KAE/BsK,IADAA,IAAMtK,GAAK9hB,GAAKS,IAAMohB,EAAE,IAAM,QAAU,IAC9B,GAAKuK,IAAM,IAAMpsB,EAAI,IACf8hB,IAAMD,EAAE,GAAK,WAAa,IAChC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KAHAT,IADAA,IAAMS,IADNqhB,IADAA,IAAMsK,GAAK3rB,GAAKT,IAAM6hB,EAAE,GAAK,WAAa,IAChC,EAAIC,IAAM,IAAMrhB,EAAI,IACd2rB,IAAMvK,EAAE,IAAM,SAAW,IAC/B,GAAK7hB,IAAM,IAAM8hB,EAAI,KAE/BsK,IADAA,IAAMtK,GAAK9hB,GAAKS,IAAMohB,EAAE,GAAK,WAAa,IAChC,GAAKuK,IAAM,IAAMpsB,EAAI,IACf8hB,IAAMD,EAAE,IAAM,WAAa,IACjC,GAAKphB,IAAM,IAAM2rB,EAAI,EAQ/B3rB,IADAA,KAHAT,IADAA,IAAMS,IADNqhB,IADAA,IAAMsK,GAAK3rB,GAAKT,IAAM6hB,EAAE,GAAK,UAAY,IAC/B,EAAIC,IAAM,IAAMrhB,EAAI,IACd2rB,IAAMvK,EAAE,IAAM,WAAa,IACjC,GAAK7hB,IAAM,IAAM8hB,EAAI,KAE/BsK,IADAA,IAAMtK,GAAK9hB,GAAKS,IAAMohB,EAAE,GAAK,UAAY,IAC/B,GAAKuK,IAAM,IAAMpsB,EAAI,IACf8hB,IAAMD,EAAE,GAAK,UAAY,IAC/B,GAAKphB,IAAM,IAAM2rB,EAAI,EAC/BvV,EAAE,GAAKiL,EAAIjL,EAAE,GAAK,EAClBA,EAAE,GAAKpW,EAAIoW,EAAE,GAAK,EAClBA,EAAE,GAAKuV,EAAIvV,EAAE,GAAK,EAClBA,EAAE,GAAK7W,EAAI6W,EAAE,GAAK,EAGpB,SAASg5F,EAAOnwG,GACd,IACI6K,EADAulG,EAAU,GAGd,IAAKvlG,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBulG,EAAQvlG,GAAK,GAAK7K,EAAE23E,WAAW9sE,IAAM7K,EAAE23E,WAAW9sE,EAAI,IAAM,IAAM7K,EAAE23E,WAAW9sE,EAAI,IAAM,KAAO7K,EAAE23E,WAAW9sE,EAAI,IAAM,IAGzH,OAAOulG,EAGT,SAASC,EAAajuF,GACpB,IACIvX,EADAulG,EAAU,GAGd,IAAKvlG,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBulG,EAAQvlG,GAAK,GAAKuX,EAAEvX,IAAMuX,EAAEvX,EAAI,IAAM,IAAMuX,EAAEvX,EAAI,IAAM,KAAOuX,EAAEvX,EAAI,IAAM,IAG7E,OAAOulG,EAGT,SAASE,EAAKtwG,GACZ,IAEI6K,EACAY,EACA8kG,EACAjhE,EACAkhE,EACAC,EAPAz7F,EAAIhV,EAAEyL,OACNs9B,EAAQ,CAAC,YAAa,WAAY,WAAY,WAQlD,IAAKl+B,EAAI,GAAIA,GAAKmK,EAAGnK,GAAK,GACxBqlG,EAASnnE,EAAOonE,EAAOnwG,EAAE+rB,UAAUlhB,EAAI,GAAIA,KAO7C,IAHAY,GADAzL,EAAIA,EAAE+rB,UAAUlhB,EAAI,KACTY,OACX8kG,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhD1lG,EAAI,EAAGA,EAAIY,EAAQZ,GAAK,EAC3B0lG,EAAK1lG,GAAK,IAAM7K,EAAE23E,WAAW9sE,KAAOA,EAAI,GAAK,GAK/C,GAFA0lG,EAAK1lG,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAqlG,EAASnnE,EAAOwnE,GAEX1lG,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB0lG,EAAK1lG,GAAK,EAWd,OANAykC,GADAA,EAAU,EAAJt6B,GACIuH,SAAS,IAAI3R,MAAM,kBAC7B4lG,EAAK30F,SAASyzB,EAAI,GAAI,IACtBmhE,EAAK50F,SAASyzB,EAAI,GAAI,KAAO,EAC7BihE,EAAK,IAAMC,EACXD,EAAK,IAAME,EACXP,EAASnnE,EAAOwnE,GACTxnE,EAGT,SAAS2nE,EAAWtuF,GAClB,IAEIvX,EACAY,EACA8kG,EACAjhE,EACAkhE,EACAC,EAPAz7F,EAAIoN,EAAE3W,OACNs9B,EAAQ,CAAC,YAAa,WAAY,WAAY,WAQlD,IAAKl+B,EAAI,GAAIA,GAAKmK,EAAGnK,GAAK,GACxBqlG,EAASnnE,EAAOsnE,EAAajuF,EAAEuuF,SAAS9lG,EAAI,GAAIA,KAOlD,IAHAY,GADA2W,EAAIvX,EAAI,GAAKmK,EAAIoN,EAAEuuF,SAAS9lG,EAAI,IAAM,IAAI+lG,WAAW,IAC1CnlG,OACX8kG,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhD1lG,EAAI,EAAGA,EAAIY,EAAQZ,GAAK,EAC3B0lG,EAAK1lG,GAAK,IAAMuX,EAAEvX,KAAOA,EAAI,GAAK,GAKpC,GAFA0lG,EAAK1lG,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAqlG,EAASnnE,EAAOwnE,GAEX1lG,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB0lG,EAAK1lG,GAAK,EAWd,OANAykC,GADAA,EAAU,EAAJt6B,GACIuH,SAAS,IAAI3R,MAAM,kBAC7B4lG,EAAK30F,SAASyzB,EAAI,GAAI,IACtBmhE,EAAK50F,SAASyzB,EAAI,GAAI,KAAO,EAC7BihE,EAAK,IAAMC,EACXD,EAAK,IAAME,EACXP,EAASnnE,EAAOwnE,GACTxnE,EAGT,SAAS8nE,EAAK77F,GACZ,IACIqF,EADAra,EAAI,GAGR,IAAKqa,EAAI,EAAGA,EAAI,EAAGA,GAAK,EACtBra,GAAKiwG,EAAQj7F,GAAS,EAAJqF,EAAQ,EAAI,IAAM41F,EAAQj7F,GAAS,EAAJqF,EAAQ,IAG3D,OAAOra,EAGT,SAAS8wG,EAAI35F,GACX,IAAItM,EAEJ,IAAKA,EAAI,EAAGA,EAAIsM,EAAE1L,OAAQZ,GAAK,EAC7BsM,EAAEtM,GAAKgmG,EAAK15F,EAAEtM,IAGhB,OAAOsM,EAAE0C,KAAK,IA4ChB,SAASk3F,EAAOrmG,GAKd,MAJI,kBAAkB/I,KAAK+I,KACzBA,EAAMsmG,SAAS3yF,mBAAmB3T,KAG7BA,EAGT,SAASumG,EAAoBvmG,EAAKwmG,GAChC,IAGIrmG,EAHAY,EAASf,EAAIe,OACb0lG,EAAO,IAAIC,YAAY3lG,GACvBkhB,EAAM,IAAIikF,WAAWO,GAGzB,IAAKtmG,EAAI,EAAGA,EAAIY,EAAQZ,GAAK,EAC3B8hB,EAAI9hB,GAAKH,EAAIitE,WAAW9sE,GAG1B,OAAOqmG,EAAmBvkF,EAAMwkF,EAGlC,SAASE,EAAoBF,GAC3B,OAAOjnG,OAAO0tE,aAAatwE,MAAM,KAAM,IAAIspG,WAAWO,IAGxD,SAASG,EAAwBz8D,EAAOC,EAAQo8D,GAC9C,IAAI97F,EAAS,IAAIw7F,WAAW/7D,EAAM08D,WAAaz8D,EAAOy8D,YAGtD,OAFAn8F,EAAOlM,IAAI,IAAI0nG,WAAW/7D,IAC1Bz/B,EAAOlM,IAAI,IAAI0nG,WAAW97D,GAASD,EAAM08D,YAClCL,EAAmB97F,EAASA,EAAOo8F,OAG5C,SAASC,EAAkBX,GACzB,IAEI35F,EAFAk8B,EAAQ,GACR5nC,EAASqlG,EAAIrlG,OAGjB,IAAK0L,EAAI,EAAGA,EAAI1L,EAAS,EAAG0L,GAAK,EAC/Bk8B,EAAM5hC,KAAKoK,SAASi1F,EAAI1xC,OAAOjoD,EAAG,GAAI,KAGxC,OAAOjN,OAAO0tE,aAAatwE,MAAM4C,OAAQmpC,GAG3C,SAASq+D,IACPjuG,KAAK8yE,QA+KP,OArQIu6B,EAAIR,EAAK,UAEc,qBAAhBc,aAAgCA,YAAYvsG,UAAUwG,OAC/D,WACE,SAASo6B,EAAM5X,EAAKpiB,GAGlB,OAFAoiB,EAAY,EAANA,GAAW,GAEP,EACD1R,KAAKmS,IAAIT,EAAMpiB,EAAQ,GAGzB0Q,KAAKkS,IAAIR,EAAKpiB,GAGvB2lG,YAAYvsG,UAAUwG,MAAQ,SAAUswB,EAAMC,GAC5C,IAGItmB,EACAjN,EACAspG,EACAC,EANAnmG,EAAShI,KAAK8tG,WACdM,EAAQpsE,EAAM9J,EAAMlwB,GACpBoyD,EAAMpyD,EAUV,OAJImwB,IAAOnxB,IACTozD,EAAMp4B,EAAM7J,EAAInwB,IAGdomG,EAAQh0C,EACH,IAAIuzC,YAAY,IAGzB97F,EAAMuoD,EAAMg0C,EACZxpG,EAAS,IAAI+oG,YAAY97F,GACzBq8F,EAAc,IAAIf,WAAWvoG,GAC7BupG,EAAc,IAAIhB,WAAWntG,KAAMouG,EAAOv8F,GAC1Cq8F,EAAYzoG,IAAI0oG,GACTvpG,IAjCX,GAsFFqpG,EAAS7sG,UAAUqwC,OAAS,SAAUxqC,GAEpC,OADAjH,KAAKquG,aAAaf,EAAOrmG,IAClBjH,MAGTiuG,EAAS7sG,UAAUitG,aAAe,SAAUC,GAC1CtuG,KAAKuuG,OAASD,EACdtuG,KAAKwuG,SAAWF,EAAStmG,OACzB,IACIZ,EADAY,EAAShI,KAAKuuG,MAAMvmG,OAGxB,IAAKZ,EAAI,GAAIA,GAAKY,EAAQZ,GAAK,GAC7BqlG,EAASzsG,KAAKyuG,MAAO/B,EAAO1sG,KAAKuuG,MAAMjmF,UAAUlhB,EAAI,GAAIA,KAI3D,OADApH,KAAKuuG,MAAQvuG,KAAKuuG,MAAMjmF,UAAUlhB,EAAI,IAC/BpH,MAGTiuG,EAAS7sG,UAAUg5D,IAAM,SAAUs0C,GACjC,IAEItnG,EAEAy5D,EAJA6sC,EAAO1tG,KAAKuuG,MACZvmG,EAAS0lG,EAAK1lG,OAEd8kG,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGzD,IAAK1lG,EAAI,EAAGA,EAAIY,EAAQZ,GAAK,EAC3B0lG,EAAK1lG,GAAK,IAAMsmG,EAAKx5B,WAAW9sE,KAAOA,EAAI,GAAK,GAYlD,OATApH,KAAK2uG,QAAQ7B,EAAM9kG,GAEnB64D,EAAMwsC,EAAIrtG,KAAKyuG,OAEXC,IACF7tC,EAAMmtC,EAAkBntC,IAG1B7gE,KAAK8yE,QACEjS,GAGTotC,EAAS7sG,UAAU0xE,MAAQ,WAIzB,OAHA9yE,KAAKuuG,MAAQ,GACbvuG,KAAKwuG,QAAU,EACfxuG,KAAKyuG,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5CzuG,MAGTiuG,EAAS7sG,UAAUujC,SAAW,WAC5B,MAAO,CACL+oE,KAAM1tG,KAAKuuG,MACXvmG,OAAQhI,KAAKwuG,QACb/7D,KAAMzyC,KAAKyuG,QAIfR,EAAS7sG,UAAUwtG,SAAW,SAAUtpE,GAItC,OAHAtlC,KAAKuuG,MAAQjpE,EAAMooE,KACnB1tG,KAAKwuG,QAAUlpE,EAAMt9B,OACrBhI,KAAKyuG,MAAQnpE,EAAMmN,KACZzyC,MAGTiuG,EAAS7sG,UAAUC,QAAU,kBACpBrB,KAAKyuG,aACLzuG,KAAKuuG,aACLvuG,KAAKwuG,SAGdP,EAAS7sG,UAAUutG,QAAU,SAAU7B,EAAM9kG,GAC3C,IACI6jC,EACAkhE,EACAC,EAHA5lG,EAAIY,EAMR,GAFA8kG,EAAK1lG,GAAK,IAAM,MAAQA,EAAI,GAAK,GAE7BA,EAAI,GAGN,IAFAqlG,EAASzsG,KAAKyuG,MAAO3B,GAEhB1lG,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB0lG,EAAK1lG,GAAK,EAKdykC,GADAA,EAAqB,EAAf7rC,KAAKwuG,SACD11F,SAAS,IAAI3R,MAAM,kBAC7B4lG,EAAK30F,SAASyzB,EAAI,GAAI,IACtBmhE,EAAK50F,SAASyzB,EAAI,GAAI,KAAO,EAC7BihE,EAAK,IAAMC,EACXD,EAAK,IAAME,EACXP,EAASzsG,KAAKyuG,MAAO3B,IAGvBmB,EAASx7D,KAAO,SAAUxrC,EAAKynG,GAC7B,OAAOT,EAASY,WAAWvB,EAAOrmG,GAAMynG,IAG1CT,EAASY,WAAa,SAAUj/F,EAAS8+F,GACvC,IACI7tC,EAAMwsC,EADCR,EAAKj9F,IAEhB,OAAO8+F,EAAMV,EAAkBntC,GAAOA,GAGxCotC,EAASN,YAAc,WACrB3tG,KAAK8yE,SAGPm7B,EAASN,YAAYvsG,UAAUqwC,OAAS,SAAUvoB,GAChD,IAEI9hB,EAFAsmG,EAAOG,EAAwB7tG,KAAKuuG,MAAMR,OAAQ7kF,GAAK,GACvDlhB,EAAS0lG,EAAK1lG,OAIlB,IAFAhI,KAAKwuG,SAAWtlF,EAAI4kF,WAEf1mG,EAAI,GAAIA,GAAKY,EAAQZ,GAAK,GAC7BqlG,EAASzsG,KAAKyuG,MAAO7B,EAAac,EAAKR,SAAS9lG,EAAI,GAAIA,KAI1D,OADApH,KAAKuuG,MAAQnnG,EAAI,GAAKY,EAAS,IAAImlG,WAAWO,EAAKK,OAAOnmG,MAAMR,EAAI,KAAO,IAAI+lG,WAAW,GACnFntG,MAGTiuG,EAASN,YAAYvsG,UAAUg5D,IAAM,SAAUs0C,GAC7C,IAGItnG,EACAy5D,EAJA6sC,EAAO1tG,KAAKuuG,MACZvmG,EAAS0lG,EAAK1lG,OACd8kG,EAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAIzD,IAAK1lG,EAAI,EAAGA,EAAIY,EAAQZ,GAAK,EAC3B0lG,EAAK1lG,GAAK,IAAMsmG,EAAKtmG,KAAOA,EAAI,GAAK,GAYvC,OATApH,KAAK2uG,QAAQ7B,EAAM9kG,GAEnB64D,EAAMwsC,EAAIrtG,KAAKyuG,OAEXC,IACF7tC,EAAMmtC,EAAkBntC,IAG1B7gE,KAAK8yE,QACEjS,GAGTotC,EAASN,YAAYvsG,UAAU0xE,MAAQ,WAIrC,OAHA9yE,KAAKuuG,MAAQ,IAAIpB,WAAW,GAC5BntG,KAAKwuG,QAAU,EACfxuG,KAAKyuG,MAAQ,CAAC,YAAa,WAAY,WAAY,WAC5CzuG,MAGTiuG,EAASN,YAAYvsG,UAAUujC,SAAW,WACxC,IAAIW,EAAQ2oE,EAAS7sG,UAAUujC,SAAS5kC,KAAKC,MAE7C,OADAslC,EAAMooE,KAAOE,EAAoBtoE,EAAMooE,MAChCpoE,GAGT2oE,EAASN,YAAYvsG,UAAUwtG,SAAW,SAAUtpE,GAElD,OADAA,EAAMooE,KAAOF,EAAoBloE,EAAMooE,MAAM,GACtCO,EAAS7sG,UAAUwtG,SAAS7uG,KAAKC,KAAMslC,IAGhD2oE,EAASN,YAAYvsG,UAAUC,QAAU4sG,EAAS7sG,UAAUC,QAC5D4sG,EAASN,YAAYvsG,UAAUutG,QAAUV,EAAS7sG,UAAUutG,QAE5DV,EAASN,YAAYl7D,KAAO,SAAUvpB,EAAKwlF,GACzC,IACI7tC,EAAMwsC,EADCJ,EAAW,IAAIE,WAAWjkF,KAErC,OAAOwlF,EAAMV,EAAkBntC,GAAOA,GAGjCotC,QAIPa,EAAiB,SAAU14D,EAAUjI,GACvC,KAAMiI,aAAoBjI,GACxB,MAAM,IAAIljB,UAAU,sCAIpB8jF,EAAc,WAChB,SAAS/0F,EAAiBpV,EAAQg3C,GAChC,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAIlD,OAAO,SAAU1hB,EAAauvB,EAAYC,GAGxC,OAFID,GAAY1jD,EAAiBm0B,EAAY/sC,UAAWs8D,GACpDC,GAAa3jD,EAAiBm0B,EAAawvB,GACxCxvB,GAdO,GAkBd6gE,EAAYC,KAAK7tG,UAAUwG,OAASqnG,KAAK7tG,UAAU8tG,UAAYD,KAAK7tG,UAAU+tG,YAE9EC,EAAe,WASjB,SAASA,EAAah3B,GACpB02B,EAAe9uG,KAAMovG,GACrBpvG,KAAKo4E,KAAOA,EACZp4E,KAAKqvG,UAAY,QACjBrvG,KAAKsvG,WAAa52F,KAAKo6C,KAAK9yD,KAAKo4E,KAAK9mB,KAAOtxD,KAAKqvG,WAClDrvG,KAAKuvG,WAAa,EAkDpB,OA/DAR,EAAYK,EAAc,KAAM,CAAC,CAC/BzsG,IAAK,SACLwN,MAAO,SAAgBioE,EAAMp1E,GACZ,IAAIosG,EAAah3B,GACvBhyC,OAAOpjC,OAYpB+rG,EAAYK,EAAc,CAAC,CACzBzsG,IAAK,SACLwN,MAAO,SAAgBnN,GACrB,IAAIlD,EAAQE,KAEZA,KAAKgD,SAAWA,EAChBhD,KAAKwvG,UAAY,IAAIjD,EAASoB,YAC9B3tG,KAAKyvG,WAAa,IAAIpzB,WACtBr8E,KAAKyvG,WAAW3pG,iBAAiB,QAAQ,SAAUwI,GACjD,OAAOxO,EAAM4vG,kBAAkBphG,MAEjCtO,KAAKyvG,WAAW3pG,iBAAiB,SAAS,SAAUwI,GAClD,OAAOxO,EAAM6vG,mBAAmBrhG,MAElCtO,KAAK4vG,kBAEN,CACDjtG,IAAK,oBACLwN,MAAO,SAA2B7B,GAGhC,GAFAtO,KAAKwvG,UAAU/9D,OAAOnjC,EAAM1J,OAAO+M,SAE9B3R,KAAK4vG,gBAAiB,CACzB,IAAIC,EAAe7vG,KAAKwvG,UAAUp1C,KAAI,GAClC01C,EAAeC,KAAKF,GACxB7vG,KAAKgD,SAAS,KAAM8sG,MAGvB,CACDntG,IAAK,qBACLwN,MAAO,SAA4B7B,GACjCtO,KAAKgD,SAAS,iBAAmBhD,KAAKo4E,KAAKv6D,QAE5C,CACDlb,IAAK,gBACLwN,MAAO,WACL,GAAInQ,KAAKuvG,WAAavvG,KAAKsvG,YAAiC,GAAnBtvG,KAAKuvG,YAAsC,GAAnBvvG,KAAKsvG,WAAiB,CACrF,IAAI9sE,EAAQxiC,KAAKuvG,WAAavvG,KAAKqvG,UAC/Bj1C,EAAM1hD,KAAKkS,IAAI4X,EAAQxiC,KAAKqvG,UAAWrvG,KAAKo4E,KAAK9mB,MACjD1hB,EAAQo/D,EAAUjvG,KAAKC,KAAKo4E,KAAM51C,EAAO43B,GAG7C,OAFAp6D,KAAKyvG,WAAWlzB,kBAAkB3sC,GAClC5vC,KAAKuvG,cACE,EAEP,OAAO,MAINH,EAhEU,GAmEnB,SAASY,EAAanyF,GACpB,IAAId,EAAUu9D,EAAYljE,SAASomB,KAAM,cAAgB3f,EAAO,MAEhE,GAAId,EACF,OAAOA,EAAQ1Z,aAAa,WAIhC,SAAS4sG,EAAajsG,EAAMu8B,GAO1B,MANmB,iBAARv8B,IACTu8B,EAAWv8B,EACXA,EAAOoT,UAIF84F,EADQlsG,EAAK6L,iBAAiB0wB,IAIvC,SAAS+5C,EAAYt2E,EAAMu8B,GAMzB,MALmB,iBAARv8B,IACTu8B,EAAWv8B,EACXA,EAAOoT,UAGFpT,EAAKM,cAAci8B,GAG5B,SAASnP,EAAcrU,EAAS/I,GAC9B,IAAIm8F,EAAYrsG,UAAUkE,OAAS,QAAsBhB,IAAjBlD,UAAU,GAAmBA,UAAU,GAAK,GAChF2xB,EAAW1Y,EAAQ0Y,SACnBglB,EAAU01D,EAAU11D,QACpBC,EAAay1D,EAAUz1D,WACvBF,EAAS21D,EAAU31D,OACnBlsC,EAAQ8I,SAAS+Z,YAAY,SACjC7iB,EAAM+wB,UAAUrrB,EAAMymC,IAAW,EAAMC,IAAc,GACrDpsC,EAAMksC,OAASA,GAAU,GAEzB,IACEz9B,EAAQ0Y,UAAW,EACnB1Y,EAAQqU,cAAc9iB,GACtB,QACAyO,EAAQ0Y,SAAWA,EAGrB,OAAOnnB,EAGT,SAAS4hG,EAAU//F,GACjB,OAAIsO,MAAMisB,QAAQv6B,GACTA,EACEsO,MAAMyZ,KACRzZ,MAAMyZ,KAAK/nB,GAEX,GAAGvI,MAAM7H,KAAKoQ,GAIzB,IAAIigG,EAAa,WACf,SAASA,EAAWh4B,EAAMi4B,EAAUlvE,GAClC,IAAIrhC,EAAQE,KAEZ8uG,EAAe9uG,KAAMowG,GACrBpwG,KAAKo4E,KAAOA,EACZp4E,KAAKqwC,WAAa,CAChBgiD,SAAUja,EAAKv6D,KACfyyF,aAAcl4B,EAAKpkE,KACnBu8F,UAAWn4B,EAAK9mB,KAChB++C,SAAUA,GAEZrwG,KAAKwwG,IAAM,IAAIC,eACfzwG,KAAKwwG,IAAI/uG,KAAK,OAAQ0/B,GAAK,GAC3BnhC,KAAKwwG,IAAIE,aAAe,OACxB1wG,KAAKwwG,IAAIG,iBAAiB,eAAgB,oBAC1C3wG,KAAKwwG,IAAIG,iBAAiB,SAAU,oBACpC3wG,KAAKwwG,IAAIG,iBAAiB,mBAAoB,kBAC9C3wG,KAAKwwG,IAAIG,iBAAiB,eAAgBX,EAAa,eACvDhwG,KAAKwwG,IAAI1qG,iBAAiB,QAAQ,SAAUwI,GAC1C,OAAOxO,EAAM8wG,eAAetiG,MAE9BtO,KAAKwwG,IAAI1qG,iBAAiB,SAAS,SAAUwI,GAC3C,OAAOxO,EAAM+wG,gBAAgBviG,MA6DjC,OAzDAygG,EAAYqB,EAAY,CAAC,CACvBztG,IAAK,SACLwN,MAAO,SAAgBnN,GACrBhD,KAAKgD,SAAWA,EAChBhD,KAAKwwG,IAAIhsE,KAAKrK,KAAKtf,UAAU,CAC3Bi2F,KAAM9wG,KAAKqwC,gBAGd,CACD1tC,IAAK,iBACLwN,MAAO,SAAwB7B,GAC7B,GAAItO,KAAK+wG,QAAU,KAAO/wG,KAAK+wG,OAAS,IAAK,CAC3C,IAAItzF,EAAWzd,KAAKyd,SAChBuzF,EAAgBvzF,EAASuzF,qBACtBvzF,EAASuzF,cAChBhxG,KAAKqwC,WAAa5yB,EAClBzd,KAAKixG,iBAAmBD,EACxBhxG,KAAKgD,SAAS,KAAMhD,KAAK2d,eAEzB3d,KAAK6wG,gBAAgBviG,KAGxB,CACD3L,IAAK,kBACLwN,MAAO,SAAyB7B,GAC9BtO,KAAKgD,SAAS,4BAA8BhD,KAAKo4E,KAAKv6D,KAAO,cAAgB7d,KAAK+wG,UAEnF,CACDpuG,IAAK,SACLwN,MAAO,WACL,IAAIwB,EAAS,GAEb,IAAK,IAAIhP,KAAO3C,KAAKqwC,WACnB1+B,EAAOhP,GAAO3C,KAAKqwC,WAAW1tC,GAGhC,OAAOgP,IAER,CACDhP,IAAK,SACLjC,IAAK,WACH,OAAOV,KAAKwwG,IAAIO,SAEjB,CACDpuG,IAAK,WACLjC,IAAK,WACH,IAAIwwG,EAAOlxG,KAAKwwG,IACZE,EAAeQ,EAAKR,aACpBjzF,EAAWyzF,EAAKzzF,SAEpB,MAAoB,QAAhBizF,EACKjzF,EAEA0c,KAAKjf,MAAMuC,OAIjB2yF,EApFQ,GAuFbe,EAAa,WACf,SAASA,EAAWL,GAClB,IAAIhxG,EAAQE,KAEZ8uG,EAAe9uG,KAAMmxG,GACrBnxG,KAAK8wG,KAAOA,EACZ9wG,KAAKo4E,KAAO04B,EAAK14B,KACjB,IAAIg5B,EAAwBN,EAAKG,iBAC7B9vE,EAAMiwE,EAAsBjwE,IAC5B+Q,EAAUk/D,EAAsBl/D,QAKpC,IAAK,IAAIvvC,KAJT3C,KAAKwwG,IAAM,IAAIC,eACfzwG,KAAKwwG,IAAI/uG,KAAK,MAAO0/B,GAAK,GAC1BnhC,KAAKwwG,IAAIE,aAAe,OAERx+D,EACdlyC,KAAKwwG,IAAIG,iBAAiBhuG,EAAKuvC,EAAQvvC,IAGzC3C,KAAKwwG,IAAI1qG,iBAAiB,QAAQ,SAAUwI,GAC1C,OAAOxO,EAAM8wG,eAAetiG,MAE9BtO,KAAKwwG,IAAI1qG,iBAAiB,SAAS,SAAUwI,GAC3C,OAAOxO,EAAM+wG,gBAAgBviG,MA6BjC,OAzBAygG,EAAYoC,EAAY,CAAC,CACvBxuG,IAAK,SACLwN,MAAO,SAAgBnN,GACrBhD,KAAKgD,SAAWA,EAChBhD,KAAKwwG,IAAIhsE,KAAKxkC,KAAKo4E,KAAKxwE,WAEzB,CACDjF,IAAK,iBACLwN,MAAO,SAAwB7B,GAC7B,IAAI4iG,EAAOlxG,KAAKwwG,IACZO,EAASG,EAAKH,OACdtzF,EAAWyzF,EAAKzzF,SAEhBszF,GAAU,KAAOA,EAAS,IAC5B/wG,KAAKgD,SAAS,KAAMya,GAEpBzd,KAAK6wG,gBAAgBviG,KAGxB,CACD3L,IAAK,kBACLwN,MAAO,SAAyB7B,GAC9BtO,KAAKgD,SAAS,kBAAoBhD,KAAKo4E,KAAKv6D,KAAO,cAAgB7d,KAAKwwG,IAAIO,YAGzEI,EAnDQ,GAsDb/7D,EAAK,EAELi8D,EAAe,WACjB,SAASA,EAAaj5B,EAAMj3C,EAAKk6C,GAC/ByzB,EAAe9uG,KAAMqxG,GACrBrxG,KAAKo1C,KAAOA,EACZp1C,KAAKo4E,KAAOA,EACZp4E,KAAKmhC,IAAMA,EACXnhC,KAAKq7E,SAAWA,EAkClB,OA/BA0zB,EAAYsC,EAAc,CAAC,CACzB1uG,IAAK,SACLwN,MAAO,SAAgBnN,GACrB,IAAIlD,EAAQE,KAEZovG,EAAahpE,OAAOpmC,KAAKo4E,MAAM,SAAU/6D,EAAOgzF,GAC9C,GAAIhzF,EACFra,EAASqa,OADX,CAKA,IAAIyzF,EAAO,IAAIV,EAAWtwG,EAAMs4E,KAAMi4B,EAAUvwG,EAAMqhC,KACtD2E,EAAOhmC,EAAMu7E,SAAU,oCAAqCy1B,EAAKN,KACjEM,EAAK1qE,QAAO,SAAU/oB,GACpB,GAAIA,EACFra,EAASqa,OACJ,CACL,IAAIi0F,EAAS,IAAIH,EAAWL,GAC5BhrE,EAAOhmC,EAAMu7E,SAAU,mCAAoCi2B,EAAOd,KAClEc,EAAOlrE,QAAO,SAAU/oB,GAClBA,EACFra,EAASqa,GAETra,EAAS,KAAM8tG,EAAKnzF,yBAQ3B0zF,EAxCU,GA2CnB,SAASvrE,EAAO7oB,EAAQsgC,GACtB,GAAItgC,GAAuC,mBAAtBA,EAAOsgC,GAA2B,CACrD,IAAK,IAAI3F,EAAO9zC,UAAUkE,OAAQyC,EAAWgU,MAAMm5B,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGptC,EAASotC,EAAO,GAAK/zC,UAAU+zC,GAGjC,OAAO56B,EAAOsgC,GAAY15C,MAAMoZ,EAAQxS,IAI5C,IAAI8mG,EAAyB,WAC3B,SAASA,EAAuBzpG,EAAOswE,GACrC02B,EAAe9uG,KAAMuxG,GACrBvxG,KAAK8H,MAAQA,EACb9H,KAAKo4E,KAAOA,EACZp4E,KAAKwxG,aAAe,IAAIH,EAAarxG,KAAKo4E,KAAMp4E,KAAKmhC,IAAKnhC,MAC1DA,KAAKyxG,SAAS,cAoFhB,OAjFA1C,EAAYwC,EAAwB,CAAC,CACnC5uG,IAAK,QACLwN,MAAO,SAAenN,GACpB,IAAIlD,EAAQE,KAER0xG,EAAct6F,SAASwN,cAAc,SACzC8sF,EAAY19F,KAAO,SACnB09F,EAAY7zF,KAAO7d,KAAK8H,MAAM+V,KAC9B7d,KAAK8H,MAAM6pG,sBAAsB,cAAeD,GAChD1xG,KAAKyxG,SAAS,SACdzxG,KAAKwxG,aAAaprE,QAAO,SAAU/oB,EAAOgzB,GACpChzB,GACFq0F,EAAYtsF,WAAWH,YAAYysF,GAEnC5xG,EAAM8xG,cAAcv0F,IAEpBq0F,EAAYvhG,MAAQkgC,EAAWwhE,UAGjC/xG,EAAM2xG,SAAS,OAEfzuG,EAASqa,QAGZ,CACD1a,IAAK,2BACLwN,MAAO,SAAkC7B,GACvC,IAAI0+C,EAAW1+C,EAAMwjG,OAASxjG,EAAM29B,MAAQ,IAExC+gB,GACFhtD,KAAKyxG,SAAS,WAAY,CACxBzkD,SAAUA,MAIf,CACDrqD,IAAK,WACLwN,MAAO,SAAkB0N,GACvB,IAAI28B,EAAS12C,UAAUkE,OAAS,QAAsBhB,IAAjBlD,UAAU,GAAmBA,UAAU,GAAK,GAGjF,OAFA02C,EAAO49B,KAAOp4E,KAAKo4E,KACnB59B,EAAOpF,GAAKp1C,KAAKwxG,aAAap8D,GACvBhkB,EAAcpxB,KAAK8H,MAAO,iBAAmB+V,EAAM,CACxD28B,OAAQA,MAGX,CACD73C,IAAK,gBACLwN,MAAO,SAAuBkN,GAChBrd,KAAKyxG,SAAS,QAAS,CACjCp0F,MAAOA,IAGEuoD,kBACTmsC,MAAM10F,KAGT,CACD1a,IAAK,oCACLwN,MAAO,SAA2CqgG,GAChDxwG,KAAKyxG,SAAS,sBAAuB,CACnCjB,IAAKA,MAGR,CACD7tG,IAAK,mCACLwN,MAAO,SAA0CqgG,GAC/C,IAAIwB,EAAShyG,KAEbA,KAAKyxG,SAAS,yBAA0B,CACtCjB,IAAKA,IAEPA,EAAIc,OAAOxrG,iBAAiB,YAAY,SAAUwI,GAChD,OAAO0jG,EAAOC,yBAAyB3jG,QAG1C,CACD3L,IAAK,MACLjC,IAAK,WACH,OAAOV,KAAK8H,MAAMzE,aAAa,8BAG5BkuG,EA1FoB,GA6FzBW,EAAgB,2DAEhBC,EAA0B,WAC5B,SAASA,EAAwBpG,GAC/B+C,EAAe9uG,KAAMmyG,GACrBnyG,KAAK+rG,KAAOA,EACZ/rG,KAAKoyG,OAASnC,EAAalE,EAAMmG,GAAen5E,QAAO,SAAUjxB,GAC/D,OAAOA,EAAMsxE,MAAMpxE,UAuDvB,OAnDA+mG,EAAYoD,EAAyB,CAAC,CACpCxvG,IAAK,QACLwN,MAAO,SAAenN,GACpB,IAAIlD,EAAQE,KAERqyG,EAAcryG,KAAKsyG,gCAEnBC,EAAsB,SAASA,IACjC,IAAIC,EAAaH,EAAY/hE,QAEzBkiE,EACFA,EAAWhwE,OAAM,SAAUnlB,GACrBA,GACFra,EAASqa,GAETvd,EAAM2xG,SAAS,QAEfc,QAIJvvG,IAEAlD,EAAM2xG,SAAS,SAInBzxG,KAAKyxG,SAAS,SACdc,MAED,CACD5vG,IAAK,gCACLwN,MAAO,WACL,IAAIkiG,EAAc,GAOlB,OANAryG,KAAKoyG,OAAOpiG,SAAQ,SAAUlI,GAC5BooG,EAAUpoG,EAAMsxE,OAAOppE,SAAQ,SAAUooE,GACvC,IAAIo6B,EAAa,IAAIjB,EAAuBzpG,EAAOswE,GACnDi6B,EAAYrkG,KAAKwkG,SAGdH,IAER,CACD1vG,IAAK,WACLwN,MAAO,SAAkB0N,GACvB,IAAI28B,EAAS12C,UAAUkE,OAAS,QAAsBhB,IAAjBlD,UAAU,GAAmBA,UAAU,GAAK,GACjF,OAAOstB,EAAcpxB,KAAK+rG,KAAM,kBAAoBluF,EAAM,CACxD28B,OAAQA,QAIP23D,EA5DqB,GA+D1BM,EAAsB,iCACtBC,EAAsB,IAAIvvC,QAC1BkkC,GAAU,EAEd,SAAS7kE,IACF6kE,IACHA,GAAU,EACVjwF,SAAStR,iBAAiB,QAAS6sG,GAAU,GAC7Cv7F,SAAStR,iBAAiB,SAAU8sG,GACpCx7F,SAAStR,iBAAiB,cAAe+sG,IAI7C,SAASF,EAASrkG,GAChB,IAAI1J,EAAS0J,EAAM1J,OAEI,SAAlBA,EAAO+pE,SAAwC,UAAlB/pE,EAAO+pE,SAAuC,UAAf/pE,EAAOoP,OAAoBpP,EAAOmnG,MACjG2G,EAAoBjtG,IAAIb,EAAOmnG,KAAMnnG,GAIzC,SAASguG,EAActkG,GACrBwkG,EAA0BxkG,GAG5B,SAASukG,EAAuBvkG,GACF,QAAxBA,EAAM1J,OAAO+pE,SACfmkC,EAA0BxkG,GAI9B,SAASwkG,EAA0BxkG,GACjC,IAAIy9F,EAAOz9F,EAAM1J,OAEjB,GAAImnG,EAAKhf,aAAa0lB,GACpBnkG,EAAMkqB,qBADR,CAKA,IAAIg6E,EAAa,IAAIL,EAAwBpG,GACzCqG,EAASI,EAAWJ,OAEpBA,EAAOpqG,SACTsG,EAAMkqB,iBACNuzE,EAAKtoG,aAAagvG,EAAqB,IACvCL,EAAOpiG,QAAQkQ,GACfsyF,EAAWhwE,OAAM,SAAUnlB,GACzB0uF,EAAKpoG,gBAAgB8uG,GAEjBp1F,EACF+0F,EAAOpiG,QAAQoQ,GAEf2yF,EAAWhH,QAMnB,SAASgH,EAAWhH,GAClB,IAAIloD,EAAS6uD,EAAoBhyG,IAAIqrG,IAASzxB,EAAYyxB,EAAM,2CAEhE,GAAIloD,EAAQ,CACV,IACIpuB,EADUouB,EACSpuB,SACvBouB,EAAOpuB,UAAW,EAClBouB,EAAO5wB,QACP4wB,EAAOhqB,QACPgqB,EAAOpuB,SAAWA,OAElBouB,EAASzsC,SAASwN,cAAc,UACzB5Q,KAAO,SACd6vC,EAAOlzC,MAAMwc,QAAU,OACvB4+E,EAAKnmF,YAAYi+B,GACjBA,EAAOhqB,QACPkyE,EAAK9mF,YAAY4+B,GAGnB6uD,EAAoBM,OAAOjH,GAG7B,SAAS7rF,EAAQpY,GACfA,EAAM2tB,UAAW,EAGnB,SAASrV,EAAOtY,GACdA,EAAM2tB,UAAW,EAGnB,SAASw9E,IACHh8F,OAAOi8F,eACT1wE,IAIJ7gC,WAAWsxG,EAAW,GACtB9qG,EAAQq6B,MAAQA,EAChBr6B,EAAQkpG,aAAeA,EACvB7wG,OAAOC,eAAe0H,EAAS,aAAc,CAC3CgI,OAAO,IA/nCsDzS,CAAQyK,I,wGCDzE,IAAIgrG,EAEJ,WACE,SAASA,EAAchkF,EAAaqW,GAClCxlC,KAAKmvB,YAAcA,EACnBnvB,KAAKwlC,UAAYA,EACjBxlC,KAAKozG,kBAAoB,IAAIlxC,IAiD/B,OA9CAixC,EAAc/xG,UAAUomC,QAAU,WAChCxnC,KAAKmvB,YAAYrpB,iBAAiB9F,KAAKwlC,UAAWxlC,MAAM,IAG1DmzG,EAAc/xG,UAAUqmC,WAAa,WACnCznC,KAAKmvB,YAAYppB,oBAAoB/F,KAAKwlC,UAAWxlC,MAAM,IAM7DmzG,EAAc/xG,UAAUiyG,iBAAmB,SAAUC,GACnDtzG,KAAKozG,kBAAkB9tG,IAAIguG,IAK7BH,EAAc/xG,UAAUmyG,oBAAsB,SAAUD,GACtDtzG,KAAKozG,kBAAkBJ,OAAOM,IAGhCH,EAAc/xG,UAAUw4C,YAAc,SAAUtrC,GAG9C,IAFA,IAAIklG,EA6BR,SAAqBllG,GACnB,GAAI,gCAAiCA,EACnC,OAAOA,EAEP,IAAImlG,EAA6BnlG,EAAMq+C,yBACvC,OAAOnsD,OAAOkQ,OAAOpC,EAAO,CAC1BolG,6BAA6B,EAC7B/mD,yBAA0B,WACxB3sD,KAAK0zG,6BAA8B,EACnCD,EAA2B1zG,KAAKC,SAtChB2zG,CAAYrlG,GAEvB0c,EAAK,EAAG5d,EAAKpN,KAAK4zG,SAAU5oF,EAAK5d,EAAGpF,OAAQgjB,IAAM,CACzD,IAAIsoF,EAAUlmG,EAAG4d,GAEjB,GAAIwoF,EAAcE,4BAChB,MAEAJ,EAAQ15D,YAAY45D,KAK1BhzG,OAAOC,eAAe0yG,EAAc/xG,UAAW,WAAY,CACzDV,IAAK,WACH,OAAO+d,MAAMyZ,KAAKl4B,KAAKozG,mBAAmBt1E,MAAK,SAAUhqB,EAAMyoB,GAC7D,IAAIs3E,EAAY//F,EAAK/L,MACjB+rG,EAAav3E,EAAMx0B,MACvB,OAAO8rG,EAAYC,GAAc,EAAID,EAAYC,EAAa,EAAI,MAGtEnzG,YAAY,EACZC,cAAc,IAETuyG,EArDT,GCAA,IAAI,EAEJ,WACE,SAASY,EAAWC,GAClBh0G,KAAKg0G,YAAcA,EACnBh0G,KAAKi0G,kBAAoB,IAAIz9D,IAC7Bx2C,KAAKqnG,SAAU,EA2FjB,OAxFA0M,EAAW3yG,UAAUohC,MAAQ,WACtBxiC,KAAKqnG,UACRrnG,KAAKqnG,SAAU,EACfrnG,KAAKk0G,eAAelkG,SAAQ,SAAUmkG,GACpC,OAAOA,EAAc3sE,eAK3BusE,EAAW3yG,UAAU0hC,KAAO,WACtB9iC,KAAKqnG,UACPrnG,KAAKqnG,SAAU,EACfrnG,KAAKk0G,eAAelkG,SAAQ,SAAUmkG,GACpC,OAAOA,EAAc1sE,kBAK3BjnC,OAAOC,eAAeszG,EAAW3yG,UAAW,iBAAkB,CAC5DV,IAAK,WACH,OAAO+d,MAAMyZ,KAAKl4B,KAAKi0G,kBAAkBliE,UAAUzW,QAAO,SAAU84E,EAAWprF,GAC7E,OAAOorF,EAAUz9F,OAAO8H,MAAMyZ,KAAKlP,EAAI+oB,aACtC,KAELpxC,YAAY,EACZC,cAAc,IAKhBmzG,EAAW3yG,UAAUiyG,iBAAmB,SAAUC,GAChDtzG,KAAKq0G,6BAA6Bf,GAASD,iBAAiBC,IAK9DS,EAAW3yG,UAAUmyG,oBAAsB,SAAUD,GACnDtzG,KAAKq0G,6BAA6Bf,GAASC,oBAAoBD,IAIjES,EAAW3yG,UAAUkzG,YAAc,SAAUj3F,EAAOO,EAAS48B,QAC5C,IAAXA,IACFA,EAAS,IAGXx6C,KAAKg0G,YAAYM,YAAYj3F,EAAO,SAAWO,EAAS48B,IAG1Du5D,EAAW3yG,UAAUizG,6BAA+B,SAAUf,GAC5D,IAAInkF,EAAcmkF,EAAQnkF,YACtBqW,EAAY8tE,EAAQ9tE,UACxB,OAAOxlC,KAAKu0G,mBAAmBplF,EAAaqW,IAG9CuuE,EAAW3yG,UAAUmzG,mBAAqB,SAAUplF,EAAaqW,GAC/D,IAAIgvE,EAAmBx0G,KAAKy0G,oCAAoCtlF,GAC5DglF,EAAgBK,EAAiB9zG,IAAI8kC,GAOzC,OALK2uE,IACHA,EAAgBn0G,KAAK00G,oBAAoBvlF,EAAaqW,GACtDgvE,EAAiB/uG,IAAI+/B,EAAW2uE,IAG3BA,GAGTJ,EAAW3yG,UAAUszG,oBAAsB,SAAUvlF,EAAaqW,GAChE,IAAI2uE,EAAgB,IAAIhB,EAAchkF,EAAaqW,GAMnD,OAJIxlC,KAAKqnG,SACP8M,EAAc3sE,UAGT2sE,GAGTJ,EAAW3yG,UAAUqzG,oCAAsC,SAAUtlF,GACnE,IAAIqlF,EAAmBx0G,KAAKi0G,kBAAkBvzG,IAAIyuB,GAOlD,OALKqlF,IACHA,EAAmB,IAAIh+D,IACvBx2C,KAAKi0G,kBAAkBxuG,IAAI0pB,EAAaqlF,IAGnCA,GAGFT,EA/FT,GCHIY,EAAoB,iDAYxB,SAASC,EAAiBC,GACxB,MAAuB,UAAnBA,EACK59F,OACqB,YAAnB49F,EACFz9F,cADF,ECdT,IAAI,EAEJ,WACE,SAAS09F,EAAO/3F,EAAShV,EAAO8nD,GAC9B7vD,KAAK+c,QAAUA,EACf/c,KAAK+H,MAAQA,EACb/H,KAAKmvB,YAAc0gC,EAAW1gC,aAAepS,EAC7C/c,KAAKwlC,UAAYqqB,EAAWrqB,WA6CzB,SAAuCzoB,GAC5C,IAAI4xD,EAAU5xD,EAAQ4xD,QAAQ38D,cAE9B,GAAI28D,KAAWomC,EACb,OAAOA,EAAkBpmC,GAAS5xD,GAjDOi4F,CAA8Bj4F,IAAYM,EAAM,sBACzFrd,KAAKylC,WAAaoqB,EAAWpqB,YAAcpoB,EAAM,sBACjDrd,KAAKu9C,WAAasS,EAAWtS,YAAclgC,EAAM,uBAmBnD,OAhBAy3F,EAAOG,SAAW,SAAUviE,GAC1B,OAAO,IAAI1yC,KAAK0yC,EAAM31B,QAAS21B,EAAM3qC,ODbHmtG,ECagCxiE,EAAM9iC,QDVnE,CACLuf,YAAaylF,GAFX34D,EADSi5D,EAAiB1xG,OACT2D,MAAMwtG,IAAsB,IAET,IACtCnvE,UAAWyW,EAAQ,GACnBxW,WAAYwW,EAAQ,GACpBsB,WAAYtB,EAAQ,MAPjB,IAA+Bi5D,EAEhCj5D,GCcJ64D,EAAO1zG,UAAU0X,SAAW,WAC1B,IAAIq8F,EAAkBn1G,KAAK60G,gBAAkB,IAAM70G,KAAK60G,gBAAkB,GAC1E,MAAO,GAAK70G,KAAKwlC,UAAY2vE,EAAkB,KAAOn1G,KAAKylC,WAAa,IAAMzlC,KAAKu9C,YAGrF/8C,OAAOC,eAAeq0G,EAAO1zG,UAAW,kBAAmB,CACzDV,IAAK,WACH,ODJ+ByuB,ECIHnvB,KAAKmvB,cDHlBlY,OACV,SACEkY,GAAe/X,SACjB,gBADF,EAHF,IAA8B+X,GCMjCxuB,YAAY,EACZC,cAAc,IAETk0G,EA1BT,GA8BIC,EAAoB,CACtB,EAAK,SAAUr6F,GACb,MAAO,SAET,OAAU,SAAUA,GAClB,MAAO,SAET,KAAQ,SAAUA,GAChB,MAAO,UAET,MAAS,SAAUA,GACjB,MAAiC,UAA1BA,EAAErX,aAAa,QAAsB,QAAU,UAExD,OAAU,SAAUqX,GAClB,MAAO,UAET,SAAY,SAAUA,GACpB,MAAO,WAWX,SAAS2C,EAAMO,GACb,MAAM,IAAIvb,MAAMub,GC/DlB,IAAIw3F,EAEJ,WACE,SAASA,EAAQ7wF,EAAS8iB,GACxBrnC,KAAKukB,QAAUA,EACfvkB,KAAKqnC,OAASA,EAiHhB,OA9GA7mC,OAAOC,eAAe20G,EAAQh0G,UAAW,QAAS,CAChDV,IAAK,WACH,OAAOV,KAAKqnC,OAAOt/B,OAErBpH,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe20G,EAAQh0G,UAAW,cAAe,CACtDV,IAAK,WACH,OAAOV,KAAKqnC,OAAOlY,aAErBxuB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe20G,EAAQh0G,UAAW,aAAc,CACrDV,IAAK,WACH,OAAOV,KAAKukB,QAAQkhB,YAEtB9kC,YAAY,EACZC,cAAc,IAGhBw0G,EAAQh0G,UAAUw4C,YAAc,SAAUtrC,GACpCtO,KAAKq1G,qBAAqB/mG,IAC5BtO,KAAKs1G,gBAAgBhnG,IAIzB9N,OAAOC,eAAe20G,EAAQh0G,UAAW,YAAa,CACpDV,IAAK,WACH,OAAOV,KAAKqnC,OAAO7B,WAErB7kC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe20G,EAAQh0G,UAAW,SAAU,CACjDV,IAAK,WACH,IAAI+vD,EAASzwD,KAAKwyG,WAAWxyG,KAAKu9C,YAElC,GAAqB,mBAAVkT,EACT,OAAOA,EAGT,MAAM,IAAIpuD,MAAM,WAAcrC,KAAKqnC,OAAS,kCAAsCrnC,KAAKu9C,WAAa,MAEtG58C,YAAY,EACZC,cAAc,IAGhBw0G,EAAQh0G,UAAUk0G,gBAAkB,SAAUhnG,GAC5C,IACEtO,KAAKywD,OAAO1wD,KAAKC,KAAKwyG,WAAYlkG,GAClC,MAAO+O,GACP,IAAIjQ,EAAKpN,KAMLw6C,EAAS,CACX/U,WANer4B,EAAGq4B,WAOlB+sE,WANeplG,EAAGolG,WAOlBz1F,QANY3P,EAAG2P,QAOfhV,MANUqF,EAAGrF,MAObuG,MAAOA,GAETtO,KAAKukB,QAAQ+vF,YAAYj3F,EAAO,oBAAuBrd,KAAKqnC,OAAS,IAAMmT,KAI/E46D,EAAQh0G,UAAUi0G,qBAAuB,SAAU/mG,GACjD,IAAI6gB,EAAc7gB,EAAM1J,OAExB,OAAI5E,KAAK+c,UAAYoS,MAEVA,aAAuB4yC,SAAW/hE,KAAK+c,QAAQkU,SAAS9B,KAC1DnvB,KAAKu1G,MAAMC,gBAAgBrmF,KAMtC3uB,OAAOC,eAAe20G,EAAQh0G,UAAW,aAAc,CACrDV,IAAK,WACH,OAAOV,KAAKukB,QAAQiuF,YAEtB7xG,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe20G,EAAQh0G,UAAW,aAAc,CACrDV,IAAK,WACH,OAAOV,KAAKqnC,OAAOkW,YAErB58C,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe20G,EAAQh0G,UAAW,UAAW,CAClDV,IAAK,WACH,OAAOV,KAAKu1G,MAAMx4F,SAEpBpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe20G,EAAQh0G,UAAW,QAAS,CAChDV,IAAK,WACH,OAAOV,KAAKukB,QAAQgxF,OAEtB50G,YAAY,EACZC,cAAc,IAETw0G,EApHT,GCFIK,EAEJ,WACE,SAASA,EAAgB14F,EAASs+D,GAChC,IAAIv7E,EAAQE,KAEZA,KAAK+c,QAAUA,EACf/c,KAAKqnG,SAAU,EACfrnG,KAAKq7E,SAAWA,EAChBr7E,KAAK+yE,SAAW,IAAI7Q,IACpBliE,KAAKy8E,iBAAmB,IAAIn6B,kBAAiB,SAAUE,GACrD,OAAO1iD,EAAM41G,iBAAiBlzD,MA2JlC,OAvJAizD,EAAgBr0G,UAAUohC,MAAQ,WAC3BxiC,KAAKqnG,UACRrnG,KAAKqnG,SAAU,EACfrnG,KAAKy8E,iBAAiB16B,QAAQ/hD,KAAK+c,QAAS,CAC1CszB,YAAY,EACZqS,WAAW,EACXghB,SAAS,IAEX1jE,KAAK4rF,YAIT6pB,EAAgBr0G,UAAU0hC,KAAO,WAC3B9iC,KAAKqnG,UACPrnG,KAAKy8E,iBAAiBnZ,cACtBtjE,KAAKy8E,iBAAiBh1C,aACtBznC,KAAKqnG,SAAU,IAInBoO,EAAgBr0G,UAAUwqF,QAAU,WAClC,GAAI5rF,KAAKqnG,QAAS,CAGhB,IAFA,IAAIprD,EAAU,IAAIimB,IAAIliE,KAAK21G,uBAElB3qF,EAAK,EAAG5d,EAAKqR,MAAMyZ,KAAKl4B,KAAK+yE,UAAW/nD,EAAK5d,EAAGpF,OAAQgjB,IAAM,CACrE,IAAIjO,EAAU3P,EAAG4d,GAEZixB,EAAQ3hC,IAAIyC,IACf/c,KAAK41G,cAAc74F,GAIvB,IAAK,IAAIyL,EAAK,EAAGC,EAAKhK,MAAMyZ,KAAK+jB,GAAUzzB,EAAKC,EAAGzgB,OAAQwgB,IAAM,CAC3DzL,EAAU0L,EAAGD,GACjBxoB,KAAK61G,WAAW94F,MAMtB04F,EAAgBr0G,UAAUs0G,iBAAmB,SAAUlzD,GACrD,GAAIxiD,KAAKqnG,QACP,IAAK,IAAIr8E,EAAK,EAAG8qF,EAActzD,EAAWx3B,EAAK8qF,EAAY9tG,OAAQgjB,IAAM,CACvE,IAAI+qF,EAAWD,EAAY9qF,GAC3BhrB,KAAKg2G,gBAAgBD,KAK3BN,EAAgBr0G,UAAU40G,gBAAkB,SAAUD,GAC/B,cAAjBA,EAAS/hG,KACXhU,KAAKi2G,uBAAuBF,EAASnxG,OAAQmxG,EAAS/xC,eAC5B,aAAjB+xC,EAAS/hG,OAClBhU,KAAKk2G,oBAAoBH,EAAShyC,cAClC/jE,KAAKm2G,kBAAkBJ,EAASjyC,cAIpC2xC,EAAgBr0G,UAAU60G,uBAAyB,SAAUlxF,EAAMi/C,GACjE,IAAIjnD,EAAUgI,EAEV/kB,KAAK+yE,SAASz4D,IAAIyC,GAChB/c,KAAKq7E,SAAS+6B,yBAA2Bp2G,KAAKq2G,aAAat5F,GAC7D/c,KAAKq7E,SAAS+6B,wBAAwBr5F,EAASinD,GAE/ChkE,KAAK41G,cAAc74F,GAEZ/c,KAAKq2G,aAAat5F,IAC3B/c,KAAK61G,WAAW94F,IAIpB04F,EAAgBr0G,UAAU80G,oBAAsB,SAAUh2E,GACxD,IAAK,IAAIlV,EAAK,EAAG5d,EAAKqR,MAAMyZ,KAAKgI,GAAQlV,EAAK5d,EAAGpF,OAAQgjB,IAAM,CAC7D,IAAIjG,EAAO3X,EAAG4d,GACVjO,EAAU/c,KAAKs2G,gBAAgBvxF,GAE/BhI,GACF/c,KAAKu2G,YAAYx5F,EAAS/c,KAAK41G,iBAKrCH,EAAgBr0G,UAAU+0G,kBAAoB,SAAUj2E,GACtD,IAAK,IAAIlV,EAAK,EAAG5d,EAAKqR,MAAMyZ,KAAKgI,GAAQlV,EAAK5d,EAAGpF,OAAQgjB,IAAM,CAC7D,IAAIjG,EAAO3X,EAAG4d,GACVjO,EAAU/c,KAAKs2G,gBAAgBvxF,GAE/BhI,GAAW/c,KAAKw2G,gBAAgBz5F,IAClC/c,KAAKu2G,YAAYx5F,EAAS/c,KAAK61G,cAMrCJ,EAAgBr0G,UAAUi1G,aAAe,SAAUt5F,GACjD,OAAO/c,KAAKq7E,SAASg7B,aAAat5F,IAGpC04F,EAAgBr0G,UAAUu0G,oBAAsB,SAAUc,GAKxD,YAJa,IAATA,IACFA,EAAOz2G,KAAK+c,SAGP/c,KAAKq7E,SAASs6B,oBAAoBc,IAG3ChB,EAAgBr0G,UAAUm1G,YAAc,SAAUE,EAAMC,GACtD,IAAK,IAAI1rF,EAAK,EAAG5d,EAAKpN,KAAK21G,oBAAoBc,GAAOzrF,EAAK5d,EAAGpF,OAAQgjB,IAAM,CAC1E,IAAIjO,EAAU3P,EAAG4d,GACjB0rF,EAAU32G,KAAKC,KAAM+c,KAIzB04F,EAAgBr0G,UAAUk1G,gBAAkB,SAAUvxF,GACpD,GAAIA,EAAKkN,UAAYuO,KAAK+lC,aACxB,OAAOxhD,GAIX0wF,EAAgBr0G,UAAUo1G,gBAAkB,SAAUz5F,GACpD,OAAIA,EAAQ45F,aAAe32G,KAAK+c,QAAQ45F,aAG/B32G,KAAK+c,QAAQkU,SAASlU,IAKjC04F,EAAgBr0G,UAAUy0G,WAAa,SAAU94F,GAC1C/c,KAAK+yE,SAASz4D,IAAIyC,IACjB/c,KAAKw2G,gBAAgBz5F,KACvB/c,KAAK+yE,SAASztE,IAAIyX,GAEd/c,KAAKq7E,SAASu7B,gBAChB52G,KAAKq7E,SAASu7B,eAAe75F,KAMrC04F,EAAgBr0G,UAAUw0G,cAAgB,SAAU74F,GAC9C/c,KAAK+yE,SAASz4D,IAAIyC,KACpB/c,KAAK+yE,SAASigC,OAAOj2F,GAEjB/c,KAAKq7E,SAASw7B,kBAChB72G,KAAKq7E,SAASw7B,iBAAiB95F,KAK9B04F,EApKT,GCAI,EAEJ,WACE,SAASqB,EAAkB/5F,EAASinD,EAAeqX,GACjDr7E,KAAKgkE,cAAgBA,EACrBhkE,KAAKq7E,SAAWA,EAChBr7E,KAAK+2G,gBAAkB,IAAItB,EAAgB14F,EAAS/c,MAkEtD,OA/DAQ,OAAOC,eAAeq2G,EAAkB11G,UAAW,UAAW,CAC5DV,IAAK,WACH,OAAOV,KAAK+2G,gBAAgBh6F,SAE9Bpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeq2G,EAAkB11G,UAAW,WAAY,CAC7DV,IAAK,WACH,MAAO,IAAMV,KAAKgkE,cAAgB,KAEpCrjE,YAAY,EACZC,cAAc,IAGhBk2G,EAAkB11G,UAAUohC,MAAQ,WAClCxiC,KAAK+2G,gBAAgBv0E,SAGvBs0E,EAAkB11G,UAAU0hC,KAAO,WACjC9iC,KAAK+2G,gBAAgBj0E,QAGvBg0E,EAAkB11G,UAAUwqF,QAAU,WACpC5rF,KAAK+2G,gBAAgBnrB,WAGvBprF,OAAOC,eAAeq2G,EAAkB11G,UAAW,UAAW,CAC5DV,IAAK,WACH,OAAOV,KAAK+2G,gBAAgB1P,SAE9B1mG,YAAY,EACZC,cAAc,IAGhBk2G,EAAkB11G,UAAUi1G,aAAe,SAAUt5F,GACnD,OAAOA,EAAQgwE,aAAa/sF,KAAKgkE,gBAGnC8yC,EAAkB11G,UAAUu0G,oBAAsB,SAAUc,GAC1D,IAAItvG,EAAQnH,KAAKq2G,aAAaI,GAAQ,CAACA,GAAQ,GAC3Cx6D,EAAUx9B,MAAMyZ,KAAKu+E,EAAK5mG,iBAAiB7P,KAAKugC,WACpD,OAAOp5B,EAAMwP,OAAOslC,IAGtB66D,EAAkB11G,UAAUw1G,eAAiB,SAAU75F,GACjD/c,KAAKq7E,SAAS27B,yBAChBh3G,KAAKq7E,SAAS27B,wBAAwBj6F,EAAS/c,KAAKgkE,gBAIxD8yC,EAAkB11G,UAAUy1G,iBAAmB,SAAU95F,GACnD/c,KAAKq7E,SAAS47B,2BAChBj3G,KAAKq7E,SAAS47B,0BAA0Bl6F,EAAS/c,KAAKgkE,gBAI1D8yC,EAAkB11G,UAAUg1G,wBAA0B,SAAUr5F,EAASinD,GACnEhkE,KAAKq7E,SAAS67B,8BAAgCl3G,KAAKgkE,eAAiBA,GACtEhkE,KAAKq7E,SAAS67B,6BAA6Bn6F,EAASinD,IAIjD8yC,EAtET,GCJO,SAASxxG,EAAI0jB,EAAKrmB,EAAKwN,GAC5B8hC,EAAMjpB,EAAKrmB,GAAK2C,IAAI6K,GAEf,SAASgnG,EAAInuF,EAAKrmB,EAAKwN,GAC5B8hC,EAAMjpB,EAAKrmB,GAAKqwG,OAAO7iG,GAalB,SAAe6Y,EAAKrmB,GACzB,IAAIovC,EAAS/oB,EAAItoB,IAAIiC,GAEP,MAAVovC,GAAiC,GAAfA,EAAOuf,MAC3BtoC,EAAIgqF,OAAOrwG,GAhBby0G,CAAMpuF,EAAKrmB,GAEN,SAASsvC,EAAMjpB,EAAKrmB,GACzB,IAAIovC,EAAS/oB,EAAItoB,IAAIiC,GAOrB,OALKovC,IACHA,EAAS,IAAImwB,IACbl5C,EAAIvjB,IAAI9C,EAAKovC,IAGRA,ECbT,ICDMslE,EDCF,EAEJ,WACE,SAASC,IACPt3G,KAAKu3G,YAAc,IAAI/gE,IAiEzB,OA9DAh2C,OAAOC,eAAe62G,EAASl2G,UAAW,SAAU,CAClDV,IAAK,WAEH,OADW+d,MAAMyZ,KAAKl4B,KAAKu3G,YAAYxlE,UAC3BzW,QAAO,SAAUyW,EAAQtsC,GACnC,OAAOssC,EAAOp7B,OAAO8H,MAAMyZ,KAAKzyB,MAC/B,KAEL9E,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe62G,EAASl2G,UAAW,OAAQ,CAChDV,IAAK,WAEH,OADW+d,MAAMyZ,KAAKl4B,KAAKu3G,YAAYxlE,UAC3BzW,QAAO,SAAUg2B,EAAM7rD,GACjC,OAAO6rD,EAAO7rD,EAAI6rD,OACjB,IAEL3wD,YAAY,EACZC,cAAc,IAGhB02G,EAASl2G,UAAUkE,IAAM,SAAU3C,EAAKwN,GACtC7K,EAAItF,KAAKu3G,YAAa50G,EAAKwN,IAG7BmnG,EAASl2G,UAAU4xG,OAAS,SAAUrwG,EAAKwN,GACzCgnG,EAAIn3G,KAAKu3G,YAAa50G,EAAKwN,IAG7BmnG,EAASl2G,UAAUkZ,IAAM,SAAU3X,EAAKwN,GACtC,IAAI4hC,EAAS/xC,KAAKu3G,YAAY72G,IAAIiC,GAClC,OAAiB,MAAVovC,GAAkBA,EAAOz3B,IAAInK,IAGtCmnG,EAASl2G,UAAUo2G,OAAS,SAAU70G,GACpC,OAAO3C,KAAKu3G,YAAYj9F,IAAI3X,IAG9B20G,EAASl2G,UAAUq2G,SAAW,SAAUtnG,GAEtC,OADWsO,MAAMyZ,KAAKl4B,KAAKu3G,YAAYxlE,UAC3Bpa,MAAK,SAAUlyB,GACzB,OAAOA,EAAI6U,IAAInK,OAInBmnG,EAASl2G,UAAUs2G,gBAAkB,SAAU/0G,GAC7C,IAAIovC,EAAS/xC,KAAKu3G,YAAY72G,IAAIiC,GAClC,OAAOovC,EAAStzB,MAAMyZ,KAAK6Z,GAAU,IAGvCulE,EAASl2G,UAAUu2G,gBAAkB,SAAUxnG,GAC7C,OAAOsO,MAAMyZ,KAAKl4B,KAAKu3G,aAAax+E,QAAO,SAAU3rB,GACzCA,EAAG,GAEb,OADaA,EAAG,GACFkN,IAAInK,MACjB6Y,KAAI,SAAU5b,GACf,IAAIzK,EAAMyK,EAAG,GACAA,EAAG,GAChB,OAAOzK,MAIJ20G,EAnET,GCJIM,GACEP,EAAgB72G,OAAO6Y,gBAAkB,CAC3Cq8B,UAAW,cACAj3B,OAAS,SAAU5hB,EAAGS,GACjCT,EAAE64C,UAAYp4C,IACX,SAAUT,EAAGS,GAChB,IAAK,IAAI+gB,KAAK/gB,EAAOA,EAAEid,eAAe8D,KAAIxhB,EAAEwhB,GAAK/gB,EAAE+gB,KAG9C,SAAUxhB,EAAGS,GAGlB,SAASu6G,IACP73G,KAAK2Z,YAAc9c,EAHrBw6G,EAAcx6G,EAAGS,GAMjBT,EAAEuE,UAAkB,OAAN9D,EAAakD,OAAO4lC,OAAO9oC,IAAMu6G,EAAGz2G,UAAY9D,EAAE8D,UAAW,IAAIy2G,KCb/E,GDsBJ,SAAUl4G,GAGR,SAASm4G,IACP,IAAIh4G,EAAQH,EAAOI,KAAKC,OAASA,KAGjC,OADAF,EAAMi4G,YAAc,IAAIvhE,IACjB12C,EANT83G,EAAUE,EAAiBn4G,GAS3Ba,OAAOC,eAAeq3G,EAAgB12G,UAAW,SAAU,CACzDV,IAAK,WACH,OAAO+d,MAAMyZ,KAAKl4B,KAAK+3G,YAAYrhG,SAErC/V,YAAY,EACZC,cAAc,IAGhBk3G,EAAgB12G,UAAUkE,IAAM,SAAU3C,EAAKwN,GAC7CxQ,EAAOyB,UAAUkE,IAAIvF,KAAKC,KAAM2C,EAAKwN,GAErC7K,EAAItF,KAAK+3G,YAAa5nG,EAAOxN,IAG/Bm1G,EAAgB12G,UAAU4xG,OAAS,SAAUrwG,EAAKwN,GAChDxQ,EAAOyB,UAAU4xG,OAAOjzG,KAAKC,KAAM2C,EAAKwN,GAExCgnG,EAAIn3G,KAAK+3G,YAAa5nG,EAAOxN,IAG/Bm1G,EAAgB12G,UAAUq2G,SAAW,SAAUtnG,GAC7C,OAAOnQ,KAAK+3G,YAAYz9F,IAAInK,IAG9B2nG,EAAgB12G,UAAUu2G,gBAAkB,SAAUxnG,GACpD,IAAI1K,EAAMzF,KAAK+3G,YAAYr3G,IAAIyP,GAC/B,OAAO1K,EAAMgZ,MAAMyZ,KAAKzyB,GAAO,IApCnC,CAwCE,GC5DF,WACE,SAASuyG,EAAkBj7F,EAASinD,EAAeqX,GACjDr7E,KAAKi4G,kBAAoB,IAAI,EAAkBl7F,EAASinD,EAAehkE,MACvEA,KAAKq7E,SAAWA,EAChBr7E,KAAKk4G,gBAAkB,IAAI,EAuG7B,OApGA13G,OAAOC,eAAeu3G,EAAkB52G,UAAW,UAAW,CAC5DV,IAAK,WACH,OAAOV,KAAKi4G,kBAAkB5Q,SAEhC1mG,YAAY,EACZC,cAAc,IAGhBo3G,EAAkB52G,UAAUohC,MAAQ,WAClCxiC,KAAKi4G,kBAAkBz1E,SAGzBw1E,EAAkB52G,UAAU0hC,KAAO,WACjC9iC,KAAKi4G,kBAAkBn1E,QAGzBk1E,EAAkB52G,UAAUwqF,QAAU,WACpC5rF,KAAKi4G,kBAAkBrsB,WAGzBprF,OAAOC,eAAeu3G,EAAkB52G,UAAW,UAAW,CAC5DV,IAAK,WACH,OAAOV,KAAKi4G,kBAAkBl7F,SAEhCpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeu3G,EAAkB52G,UAAW,gBAAiB,CAClEV,IAAK,WACH,OAAOV,KAAKi4G,kBAAkBj0C,eAEhCrjE,YAAY,EACZC,cAAc,IAGhBo3G,EAAkB52G,UAAU41G,wBAA0B,SAAUj6F,GAC9D/c,KAAKm4G,cAAcn4G,KAAKo4G,qBAAqBr7F,KAG/Ci7F,EAAkB52G,UAAU81G,6BAA+B,SAAUn6F,GACnE,IAAI3P,EAAKpN,KAAKq4G,wBAAwBt7F,GAClCu7F,EAAkBlrG,EAAG,GACrBmrG,EAAgBnrG,EAAG,GAEvBpN,KAAKw4G,gBAAgBF,GACrBt4G,KAAKm4G,cAAcI,IAGrBP,EAAkB52G,UAAU61G,0BAA4B,SAAUl6F,GAChE/c,KAAKw4G,gBAAgBx4G,KAAKk4G,gBAAgBR,gBAAgB36F,KAG5Di7F,EAAkB52G,UAAU+2G,cAAgB,SAAUplE,GACpD,IAAIjzC,EAAQE,KAEZ+yC,EAAO/iC,SAAQ,SAAU0iC,GACvB,OAAO5yC,EAAM24G,aAAa/lE,OAI9BslE,EAAkB52G,UAAUo3G,gBAAkB,SAAUzlE,GACtD,IAAIjzC,EAAQE,KAEZ+yC,EAAO/iC,SAAQ,SAAU0iC,GACvB,OAAO5yC,EAAM44G,eAAehmE,OAIhCslE,EAAkB52G,UAAUq3G,aAAe,SAAU/lE,GACnD1yC,KAAKq7E,SAASo9B,aAAa/lE,GAC3B1yC,KAAKk4G,gBAAgB5yG,IAAIotC,EAAM31B,QAAS21B,IAG1CslE,EAAkB52G,UAAUs3G,eAAiB,SAAUhmE,GACrD1yC,KAAKq7E,SAASq9B,eAAehmE,GAC7B1yC,KAAKk4G,gBAAgBlF,OAAOtgE,EAAM31B,QAAS21B,IAG7CslE,EAAkB52G,UAAUi3G,wBAA0B,SAAUt7F,GAC9D,IAuCSjJ,EAAMyoB,EACbv0B,EAxCE2wG,EAAiB34G,KAAKk4G,gBAAgBR,gBAAgB36F,GACtD67F,EAAgB54G,KAAKo4G,qBAAqBr7F,GAC1C87F,GAqCK/kG,EArCqB6kG,EAqCfp8E,EArC+Bq8E,EAsC5C5wG,EAAS0Q,KAAKmS,IAAI/W,EAAK9L,OAAQu0B,EAAMv0B,QAClCyW,MAAMyZ,KAAK,CAChBlwB,OAAQA,IACP,SAAUkf,EAAGnf,GACd,MAAO,CAAC+L,EAAK/L,GAAQw0B,EAAMx0B,QA1CkC+wG,WAAU,SAAU1rG,GAG/E,OA2CN,SAAwB0G,EAAMyoB,GAC5B,OAAOzoB,GAAQyoB,GAASzoB,EAAK/L,OAASw0B,EAAMx0B,OAAS+L,EAAKlE,SAAW2sB,EAAM3sB,QA5C/DmpG,CAFY3rG,EAAG,GACJA,EAAG,OAIxB,OAA4B,GAAxByrG,EACK,CAAC,GAAI,IAEL,CAACF,EAAe/wG,MAAMixG,GAAsBD,EAAchxG,MAAMixG,KAI3Eb,EAAkB52G,UAAUg3G,qBAAuB,SAAUr7F,GAC3D,IAAIinD,EAAgBhkE,KAAKgkE,cAEzB,OAQJ,SAA0Bg1C,EAAaj8F,EAASinD,GAC9C,OAAOg1C,EAAYx1G,OAAOvI,MAAM,OAAO89B,QAAO,SAAUnpB,GACtD,OAAOA,EAAQ5H,UACdghB,KAAI,SAAUpZ,EAAS7H,GACxB,MAAO,CACLgV,QAASA,EACTinD,cAAeA,EACfp0D,QAASA,EACT7H,MAAOA,MAhBFkxG,CADWl8F,EAAQ1Z,aAAa2gE,IAAkB,GACpBjnD,EAASinD,IAGzCg0C,EA3GT,ICHA,IAAI,EAEJ,WACE,SAASkB,EAAkBn8F,EAASinD,EAAeqX,GACjDr7E,KAAKm5G,kBAAoB,IAAI,EAAkBp8F,EAASinD,EAAehkE,MACvEA,KAAKq7E,SAAWA,EAChBr7E,KAAKo5G,oBAAsB,IAAIj2C,QAC/BnjE,KAAKq5G,uBAAyB,IAAIl2C,QA6FpC,OA1FA3iE,OAAOC,eAAey4G,EAAkB93G,UAAW,UAAW,CAC5DV,IAAK,WACH,OAAOV,KAAKm5G,kBAAkB9R,SAEhC1mG,YAAY,EACZC,cAAc,IAGhBs4G,EAAkB93G,UAAUohC,MAAQ,WAClCxiC,KAAKm5G,kBAAkB32E,SAGzB02E,EAAkB93G,UAAU0hC,KAAO,WACjC9iC,KAAKm5G,kBAAkBr2E,QAGzBo2E,EAAkB93G,UAAUwqF,QAAU,WACpC5rF,KAAKm5G,kBAAkBvtB,WAGzBprF,OAAOC,eAAey4G,EAAkB93G,UAAW,UAAW,CAC5DV,IAAK,WACH,OAAOV,KAAKm5G,kBAAkBp8F,SAEhCpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAey4G,EAAkB93G,UAAW,gBAAiB,CAClEV,IAAK,WACH,OAAOV,KAAKm5G,kBAAkBn1C,eAEhCrjE,YAAY,EACZC,cAAc,IAGhBs4G,EAAkB93G,UAAUq3G,aAAe,SAAU/lE,GACnD,IAAI31B,EAAU21B,EAAM31B,QAChB5M,EAAQnQ,KAAKs5G,yBAAyB5mE,GAAOviC,MAE7CA,IACFnQ,KAAKu5G,6BAA6Bx8F,GAAStX,IAAIitC,EAAOviC,GACtDnQ,KAAKq7E,SAASm+B,oBAAoBz8F,EAAS5M,KAI/C+oG,EAAkB93G,UAAUs3G,eAAiB,SAAUhmE,GACrD,IAAI31B,EAAU21B,EAAM31B,QAChB5M,EAAQnQ,KAAKs5G,yBAAyB5mE,GAAOviC,MAE7CA,IACFnQ,KAAKu5G,6BAA6Bx8F,GAASi2F,OAAOtgE,GAClD1yC,KAAKq7E,SAASo+B,sBAAsB18F,EAAS5M,KAIjD+oG,EAAkB93G,UAAUk4G,yBAA2B,SAAU5mE,GAC/D,IAAIgnE,EAAc15G,KAAKo5G,oBAAoB14G,IAAIgyC,GAO/C,OALKgnE,IACHA,EAAc15G,KAAK25G,WAAWjnE,GAC9B1yC,KAAKo5G,oBAAoB3zG,IAAIitC,EAAOgnE,IAG/BA,GAGTR,EAAkB93G,UAAUm4G,6BAA+B,SAAUx8F,GACnE,IAAI68F,EAAgB55G,KAAKq5G,uBAAuB34G,IAAIqc,GAOpD,OALK68F,IACHA,EAAgB,IAAIpjE,IACpBx2C,KAAKq5G,uBAAuB5zG,IAAIsX,EAAS68F,IAGpCA,GAGTV,EAAkB93G,UAAUu4G,WAAa,SAAUjnE,GACjD,IAEE,MAAO,CACLviC,MAFUnQ,KAAKq7E,SAASw+B,mBAAmBnnE,IAI7C,MAAOr1B,GACP,MAAO,CACLA,MAAOA,KAKN67F,EAlGT,GCAI,EAEJ,WACE,SAASY,EAAgBv1F,EAAS82D,GAChCr7E,KAAKukB,QAAUA,EACfvkB,KAAKq7E,SAAWA,EAChBr7E,KAAK+5G,iBAAmB,IAAIvjE,IA+F9B,OA5FAsjE,EAAgB14G,UAAUohC,MAAQ,WAC3BxiC,KAAKg6G,oBACRh6G,KAAKg6G,kBAAoB,IAAI,EAAkBh6G,KAAK+c,QAAS/c,KAAKi6G,gBAAiBj6G,MACnFA,KAAKg6G,kBAAkBx3E,UAI3Bs3E,EAAgB14G,UAAU0hC,KAAO,WAC3B9iC,KAAKg6G,oBACPh6G,KAAKg6G,kBAAkBl3E,cAChB9iC,KAAKg6G,kBACZh6G,KAAKk6G,yBAIT15G,OAAOC,eAAeq5G,EAAgB14G,UAAW,UAAW,CAC1DV,IAAK,WACH,OAAOV,KAAKukB,QAAQxH,SAEtBpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeq5G,EAAgB14G,UAAW,aAAc,CAC7DV,IAAK,WACH,OAAOV,KAAKukB,QAAQkhB,YAEtB9kC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeq5G,EAAgB14G,UAAW,kBAAmB,CAClEV,IAAK,WACH,OAAOV,KAAKm6G,OAAOF,iBAErBt5G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeq5G,EAAgB14G,UAAW,SAAU,CACzDV,IAAK,WACH,OAAOV,KAAKukB,QAAQ41F,QAEtBx5G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeq5G,EAAgB14G,UAAW,WAAY,CAC3DV,IAAK,WACH,OAAO+d,MAAMyZ,KAAKl4B,KAAK+5G,iBAAiBhoE,WAE1CpxC,YAAY,EACZC,cAAc,IAGhBk5G,EAAgB14G,UAAUg5G,cAAgB,SAAU/yE,GAClD,IAAIisE,EAAU,IAAI8B,EAAQp1G,KAAKukB,QAAS8iB,GACxCrnC,KAAK+5G,iBAAiBt0G,IAAI4hC,EAAQisE,GAClCtzG,KAAKq7E,SAASg4B,iBAAiBC,IAGjCwG,EAAgB14G,UAAUi5G,iBAAmB,SAAUhzE,GACrD,IAAIisE,EAAUtzG,KAAK+5G,iBAAiBr5G,IAAI2mC,GAEpCisE,IACFtzG,KAAK+5G,iBAAiB/G,OAAO3rE,GAC7BrnC,KAAKq7E,SAASk4B,oBAAoBD,KAItCwG,EAAgB14G,UAAU84G,qBAAuB,WAC/C,IAAIp6G,EAAQE,KAEZA,KAAK4zG,SAAS5jG,SAAQ,SAAUsjG,GAC9B,OAAOxzG,EAAMu7E,SAASk4B,oBAAoBD,MAE5CtzG,KAAK+5G,iBAAiBnlG,SAIxBklG,EAAgB14G,UAAUy4G,mBAAqB,SAAUnnE,GACvD,IAAIrL,EAAS,EAAO4tE,SAASviE,GAE7B,GAAIrL,EAAO5B,YAAczlC,KAAKylC,WAC5B,OAAO4B,GAIXyyE,EAAgB14G,UAAUo4G,oBAAsB,SAAUz8F,EAASsqB,GACjErnC,KAAKo6G,cAAc/yE,IAGrByyE,EAAgB14G,UAAUq4G,sBAAwB,SAAU18F,EAASsqB,GACnErnC,KAAKq6G,iBAAiBhzE,IAGjByyE,EAnGT,GCJI,EAEJ,WACE,SAASQ,EAAQpyG,EAAQqtG,GACvBv1G,KAAKkI,OAASA,EACdlI,KAAKu1G,MAAQA,EACbv1G,KAAKwyG,WAAa,IAAItqG,EAAOqyG,sBAAsBv6G,MACnDA,KAAKw6G,gBAAkB,IAAI,EAAgBx6G,KAAMA,KAAKy6G,YAEtD,IACEz6G,KAAKwyG,WAAWvuG,aAChB,MAAOoZ,GACPrd,KAAKs0G,YAAYj3F,EAAO,4BAqF5B,OAjFAi9F,EAAQl5G,UAAUomC,QAAU,WAC1BxnC,KAAKw6G,gBAAgBh4E,QAErB,IACExiC,KAAKwyG,WAAWhrE,UAChB,MAAOnqB,GACPrd,KAAKs0G,YAAYj3F,EAAO,2BAI5Bi9F,EAAQl5G,UAAUqmC,WAAa,WAC7B,IACEznC,KAAKwyG,WAAW/qE,aAChB,MAAOpqB,GACPrd,KAAKs0G,YAAYj3F,EAAO,4BAG1Brd,KAAKw6G,gBAAgB13E,QAGvBtiC,OAAOC,eAAe65G,EAAQl5G,UAAW,cAAe,CACtDV,IAAK,WACH,OAAOV,KAAKkI,OAAO8rG,aAErBrzG,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe65G,EAAQl5G,UAAW,aAAc,CACrDV,IAAK,WACH,OAAOV,KAAKkI,OAAOu9B,YAErB9kC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe65G,EAAQl5G,UAAW,SAAU,CACjDV,IAAK,WACH,OAAOV,KAAKg0G,YAAYmG,QAE1Bx5G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe65G,EAAQl5G,UAAW,aAAc,CACrDV,IAAK,WACH,OAAOV,KAAKg0G,YAAYyG,YAE1B95G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe65G,EAAQl5G,UAAW,UAAW,CAClDV,IAAK,WACH,OAAOV,KAAKu1G,MAAMx4F,SAEpBpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe65G,EAAQl5G,UAAW,gBAAiB,CACxDV,IAAK,WACH,OAAOV,KAAK+c,QAAQgtE,eAEtBppF,YAAY,EACZC,cAAc,IAGhB05G,EAAQl5G,UAAUkzG,YAAc,SAAUj3F,EAAOO,EAAS48B,QACzC,IAAXA,IACFA,EAAS,IAGX,IAAIptC,EAAKpN,KACLylC,EAAar4B,EAAGq4B,WAChB+sE,EAAaplG,EAAGolG,WAChBz1F,EAAU3P,EAAG2P,QAEjBy9B,EAASh6C,OAAOkQ,OAAO,CACrB+0B,WAAYA,EACZ+sE,WAAYA,EACZz1F,QAASA,GACRy9B,GACHx6C,KAAKg0G,YAAYM,YAAYj3F,EAAO,SAAWO,EAAS48B,IAGnD8/D,EA/FT,GCJI,EAAsC,WACxC,IAAIjD,EAAgB72G,OAAO6Y,gBAAkB,CAC3Cq8B,UAAW,cACAj3B,OAAS,SAAU5hB,EAAGS,GACjCT,EAAE64C,UAAYp4C,IACX,SAAUT,EAAGS,GAChB,IAAK,IAAI+gB,KAAK/gB,EAAOA,EAAEid,eAAe8D,KAAIxhB,EAAEwhB,GAAK/gB,EAAE+gB,KAGrD,OAAO,SAAUxhB,EAAGS,GAGlB,SAASu6G,IACP73G,KAAK2Z,YAAc9c,EAHrBw6G,EAAcx6G,EAAGS,GAMjBT,EAAEuE,UAAkB,OAAN9D,EAAakD,OAAO4lC,OAAO9oC,IAAMu6G,EAAGz2G,UAAY9D,EAAE8D,UAAW,IAAIy2G,IAhBzC,GA6B1C,SAAS6C,EAA2BH,GAClC,IAAI5gG,EAAcwtB,EAAOozE,GAEzB,OADA5gG,EAAYghG,QACLhhG,EAGT,IAAIwtB,EAAS,WACX,SAASyzE,EAAkBjhG,GACzB,SAASuhE,IACP,IAAI2/B,EAAa76G,MAAQA,gBAAgBk7E,EAAal7E,KAAK2Z,iBAAc,EAEzE,OAAOk8B,QAAQC,UAAUn8B,EAAa7V,UAAW+2G,GASnD,OANA3/B,EAAW95E,UAAYZ,OAAO4lC,OAAOzsB,EAAYvY,UAAW,CAC1DuY,YAAa,CACXxJ,MAAO+qE,KAGXrlC,QAAQx8B,eAAe6hE,EAAYvhE,GAC5BuhE,EAeT,IAEE,OATI59E,EAAIs9G,GAJA,WACN56G,KAAK2e,EAAE5e,KAAKC,UAKZoB,UAAUud,EAAI,aAET,IAAIrhB,EAKJs9G,EACP,MAAOv9F,GACP,OAAO,SAAU1D,GACf,OAEE,SAAUha,GAGR,SAASu7E,IACP,OAAkB,OAAXv7E,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAG7D,OANA,EAAUk7E,EAAYv7E,GAMfu7E,EATJ,CAUHvhE,IA3BR,IAKMrc,EAtBK,GChCT,EAEJ,WACE,SAASw9G,EAAO9G,EAAa+G,GAC3B/6G,KAAKg0G,YAAcA,EACnBh0G,KAAK+6G,WDcF,SAAyBA,GAC9B,MAAO,CACLt1E,WAAYs1E,EAAWt1E,WACvB80E,sBAAuBG,EAA2BK,EAAWR,wBCjB3CS,CAAgBD,GAClC/6G,KAAKi7G,gBAAkB,IAAI93C,QAC3BnjE,KAAKk7G,kBAAoB,IAAIh5C,IAmD/B,OAhDA1hE,OAAOC,eAAeq6G,EAAO15G,UAAW,aAAc,CACpDV,IAAK,WACH,OAAOV,KAAK+6G,WAAWt1E,YAEzB9kC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeq6G,EAAO15G,UAAW,wBAAyB,CAC/DV,IAAK,WACH,OAAOV,KAAK+6G,WAAWR,uBAEzB55G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeq6G,EAAO15G,UAAW,WAAY,CAClDV,IAAK,WACH,OAAO+d,MAAMyZ,KAAKl4B,KAAKk7G,oBAEzBv6G,YAAY,EACZC,cAAc,IAGhBk6G,EAAO15G,UAAU+5G,uBAAyB,SAAU5F,GAClD,IAAIhxF,EAAUvkB,KAAKo7G,qBAAqB7F,GACxCv1G,KAAKk7G,kBAAkB51G,IAAIif,GAC3BA,EAAQijB,WAGVszE,EAAO15G,UAAUi6G,0BAA4B,SAAU9F,GACrD,IAAIhxF,EAAUvkB,KAAKi7G,gBAAgBv6G,IAAI60G,GAEnChxF,IACFvkB,KAAKk7G,kBAAkBlI,OAAOzuF,GAC9BA,EAAQkjB,eAIZqzE,EAAO15G,UAAUg6G,qBAAuB,SAAU7F,GAChD,IAAIhxF,EAAUvkB,KAAKi7G,gBAAgBv6G,IAAI60G,GAOvC,OALKhxF,IACHA,EAAU,IAAI,EAAQvkB,KAAMu1G,GAC5Bv1G,KAAKi7G,gBAAgBx1G,IAAI8vG,EAAOhxF,IAG3BA,GAGFu2F,EAxDT,GCLIQ,EAEJ,WACE,SAASA,EAAQ/F,GACfv1G,KAAKu1G,MAAQA,EAgDf,OA7CA/0G,OAAOC,eAAe66G,EAAQl6G,UAAW,UAAW,CAClDV,IAAK,WACH,OAAOV,KAAKu1G,MAAMx4F,SAEpBpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe66G,EAAQl6G,UAAW,aAAc,CACrDV,IAAK,WACH,OAAOV,KAAKu1G,MAAM9vE,YAEpB9kC,YAAY,EACZC,cAAc,IAGhB06G,EAAQl6G,UAAUV,IAAM,SAAUiC,GAEhC,OADAA,EAAM3C,KAAKu7G,gBAAgB54G,GACpB3C,KAAK+c,QAAQ1Z,aAAaV,IAGnC24G,EAAQl6G,UAAUqE,IAAM,SAAU9C,EAAKwN,GAGrC,OAFAxN,EAAM3C,KAAKu7G,gBAAgB54G,GAC3B3C,KAAK+c,QAAQtZ,aAAad,EAAKwN,GACxBnQ,KAAKU,IAAIiC,IAGlB24G,EAAQl6G,UAAUkZ,IAAM,SAAU3X,GAEhC,OADAA,EAAM3C,KAAKu7G,gBAAgB54G,GACpB3C,KAAK+c,QAAQgwE,aAAapqF,IAGnC24G,EAAQl6G,UAAU4xG,OAAS,SAAUrwG,GACnC,QAAI3C,KAAKsa,IAAI3X,KACXA,EAAM3C,KAAKu7G,gBAAgB54G,GAC3B3C,KAAK+c,QAAQpZ,gBAAgBhB,IACtB,IAMX24G,EAAQl6G,UAAUm6G,gBAAkB,SAAU54G,GAC5C,MAAO,QAAU3C,KAAKylC,WAAa,IAAgB9iC,EASxC7E,QAAQ,YAAY,SAAUopB,EAAGs0F,GAC5C,MAAO,IAAMA,EAAKxpG,kBAPbspG,EAlDT,GCDO,SAASG,EAA4Bz3C,EAAetxB,GACzD,MAAO,IAAMsxB,EAAgB,MAAStxB,EAAQ,KCAhD,IAAI,EAEJ,WACE,SAASgpE,EAAUnG,GACjBv1G,KAAKu1G,MAAQA,EAgEf,OA7DA/0G,OAAOC,eAAei7G,EAAUt6G,UAAW,UAAW,CACpDV,IAAK,WACH,OAAOV,KAAKu1G,MAAMx4F,SAEpBpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAei7G,EAAUt6G,UAAW,aAAc,CACvDV,IAAK,WACH,OAAOV,KAAKu1G,MAAM9vE,YAEpB9kC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAei7G,EAAUt6G,UAAW,SAAU,CACnDV,IAAK,WACH,OAAOV,KAAKu1G,MAAM4E,QAEpBx5G,YAAY,EACZC,cAAc,IAGhB86G,EAAUt6G,UAAUkZ,IAAM,SAAUqhG,GAClC,OAAgC,MAAzB37G,KAAKgwC,KAAK2rE,IAGnBD,EAAUt6G,UAAU4uC,KAAO,WAGzB,IAFA,IAAI4rE,EAAc,GAET5wF,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtC4wF,EAAY5wF,GAAMlnB,UAAUknB,GAG9B,IAAIuV,EAAWvgC,KAAK67G,0BAA0BD,GAC9C,OAAO57G,KAAKu1G,MAAMj7B,YAAY/5C,IAGhCm7E,EAAUt6G,UAAU0lC,QAAU,WAG5B,IAFA,IAAI80E,EAAc,GAET5wF,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtC4wF,EAAY5wF,GAAMlnB,UAAUknB,GAG9B,IAAIuV,EAAWvgC,KAAK67G,0BAA0BD,GAC9C,OAAO57G,KAAKu1G,MAAMuG,gBAAgBv7E,IAGpCm7E,EAAUt6G,UAAUy6G,0BAA4B,SAAUD,GACxD,IAAI97G,EAAQE,KAEZ,OAAO47G,EAAY5yF,KAAI,SAAU2yF,GAC/B,OAAO77G,EAAMi8G,yBAAyBJ,MACrCvlG,KAAK,OAGVslG,EAAUt6G,UAAU26G,yBAA2B,SAAUJ,GACvD,IAAIK,EAAmBh8G,KAAKylC,WAAa,IAAMk2E,EAC/C,OAAOF,EAA4Bz7G,KAAKm6G,OAAO8B,gBAAiBD,IAG3DN,EAlET,GCAI,EAEJ,WACE,SAASQ,EAAM/B,EAAQ10E,EAAY1oB,GACjC/c,KAAKm6G,OAASA,EACdn6G,KAAKylC,WAAaA,EAClBzlC,KAAK+c,QAAUA,EACf/c,KAAKm8G,QAAU,IAAI,EAAUn8G,MAC7BA,KAAKoQ,KAAO,IAAIkrG,EAAQt7G,MAgC1B,OA7BAk8G,EAAM96G,UAAUk5E,YAAc,SAAU/5C,GACtC,OAAOvgC,KAAK87G,gBAAgBv7E,GAAU,IAGxC27E,EAAM96G,UAAU06G,gBAAkB,SAAUv7E,GAC1C,IAAI/C,EAAOx9B,KAAK+c,QAAQk/B,QAAQ1b,GAAY,CAACvgC,KAAK+c,SAAW,GACzD+vF,EAAO9sG,KAAKo8G,eAAe39F,MAAMyZ,KAAKl4B,KAAK+c,QAAQlN,iBAAiB0wB,KACxE,OAAO/C,EAAK7mB,OAAOm2F,IAGrBoP,EAAM96G,UAAUg7G,eAAiB,SAAUrpC,GACzC,IAAIjzE,EAAQE,KAEZ,OAAO+yE,EAASh6C,QAAO,SAAUhc,GAC/B,OAAOjd,EAAM01G,gBAAgBz4F,OAIjCm/F,EAAM96G,UAAUo0G,gBAAkB,SAAUz4F,GAC1C,OAAOA,EAAQsgC,QAAQr9C,KAAKq8G,sBAAwBr8G,KAAK+c,SAG3Dvc,OAAOC,eAAey7G,EAAM96G,UAAW,qBAAsB,CAC3DV,IAAK,WACH,OAAO+6G,EAA4Bz7G,KAAKm6G,OAAOmC,oBAAqBt8G,KAAKylC,aAE3E9kC,YAAY,EACZC,cAAc,IAETs7G,EAtCT,GCHI,EAEJ,WACE,SAASK,EAAcx/F,EAASo9F,EAAQ9+B,GACtCr7E,KAAK+c,QAAUA,EACf/c,KAAKm6G,OAASA,EACdn6G,KAAKq7E,SAAWA,EAChBr7E,KAAKg6G,kBAAoB,IAAI,EAAkBh6G,KAAK+c,QAAS/c,KAAKs8G,oBAAqBt8G,MACvFA,KAAKw8G,4BAA8B,IAAIr5C,QACvCnjE,KAAKy8G,qBAAuB,IAAIt5C,QAuElC,OApEAo5C,EAAcn7G,UAAUohC,MAAQ,WAC9BxiC,KAAKg6G,kBAAkBx3E,SAGzB+5E,EAAcn7G,UAAU0hC,KAAO,WAC7B9iC,KAAKg6G,kBAAkBl3E,QAGzBtiC,OAAOC,eAAe87G,EAAcn7G,UAAW,sBAAuB,CACpEV,IAAK,WACH,OAAOV,KAAKm6G,OAAOmC,qBAErB37G,YAAY,EACZC,cAAc,IAKhB27G,EAAcn7G,UAAUy4G,mBAAqB,SAAUnnE,GACrD,IAAI31B,EAAU21B,EAAM31B,QAChB0oB,EAAaiN,EAAM9iC,QACnB8sG,EAAqB18G,KAAK28G,kCAAkC5/F,GAC5Dw4F,EAAQmH,EAAmBh8G,IAAI+kC,GAOnC,OALK8vE,IACHA,EAAQ,IAAI,EAAMv1G,KAAKm6G,OAAQ10E,EAAY1oB,GAC3C2/F,EAAmBj3G,IAAIggC,EAAY8vE,IAG9BA,GAKTgH,EAAcn7G,UAAUo4G,oBAAsB,SAAUz8F,EAAS5M,GAC/D,IAAIysG,GAAkB58G,KAAKy8G,qBAAqB/7G,IAAIyP,IAAU,GAAK,EACnEnQ,KAAKy8G,qBAAqBh3G,IAAI0K,EAAOysG,GAEf,GAAlBA,GACF58G,KAAKq7E,SAASwhC,eAAe1sG,IAMjCosG,EAAcn7G,UAAUq4G,sBAAwB,SAAU18F,EAAS5M,GACjE,IAAIysG,EAAiB58G,KAAKy8G,qBAAqB/7G,IAAIyP,GAE/CysG,IACF58G,KAAKy8G,qBAAqBh3G,IAAI0K,EAAOysG,EAAiB,GAEhC,GAAlBA,GACF58G,KAAKq7E,SAASyhC,kBAAkB3sG,KAKtCosG,EAAcn7G,UAAUu7G,kCAAoC,SAAU5/F,GACpE,IAAI2/F,EAAqB18G,KAAKw8G,4BAA4B97G,IAAIqc,GAO9D,OALK2/F,IACHA,EAAqB,IAAIlmE,IACzBx2C,KAAKw8G,4BAA4B/2G,IAAIsX,EAAS2/F,IAGzCA,GAGFH,EA9ET,GCDI,EAEJ,WACE,SAASQ,EAAO/I,GACdh0G,KAAKg0G,YAAcA,EACnBh0G,KAAKg9G,cAAgB,IAAI,EAAch9G,KAAK+c,QAAS/c,KAAKm6G,OAAQn6G,MAClEA,KAAK08G,mBAAqB,IAAI,EAC9B18G,KAAKi9G,oBAAsB,IAAIzmE,IAwHjC,OArHAh2C,OAAOC,eAAes8G,EAAO37G,UAAW,UAAW,CACjDV,IAAK,WACH,OAAOV,KAAKg0G,YAAYj3F,SAE1Bpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes8G,EAAO37G,UAAW,SAAU,CAChDV,IAAK,WACH,OAAOV,KAAKg0G,YAAYmG,QAE1Bx5G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes8G,EAAO37G,UAAW,sBAAuB,CAC7DV,IAAK,WACH,OAAOV,KAAKm6G,OAAOmC,qBAErB37G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes8G,EAAO37G,UAAW,UAAW,CACjDV,IAAK,WACH,OAAO+d,MAAMyZ,KAAKl4B,KAAKi9G,oBAAoBlrE,WAE7CpxC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes8G,EAAO37G,UAAW,WAAY,CAClDV,IAAK,WACH,OAAOV,KAAKkwD,QAAQ50B,QAAO,SAAU4hF,EAAUh1G,GAC7C,OAAOg1G,EAASvmG,OAAOzO,EAAOg1G,YAC7B,KAELv8G,YAAY,EACZC,cAAc,IAGhBm8G,EAAO37G,UAAUohC,MAAQ,WACvBxiC,KAAKg9G,cAAcx6E,SAGrBu6E,EAAO37G,UAAU0hC,KAAO,WACtB9iC,KAAKg9G,cAAcl6E,QAGrBi6E,EAAO37G,UAAU+7G,eAAiB,SAAUpC,GAC1C/6G,KAAKo9G,iBAAiBrC,EAAWt1E,YACjC,IAAIv9B,EAAS,IAAI,EAAOlI,KAAKg0G,YAAa+G,GAC1C/6G,KAAKq9G,cAAcn1G,IAGrB60G,EAAO37G,UAAUg8G,iBAAmB,SAAU33E,GAC5C,IAAIv9B,EAASlI,KAAKi9G,oBAAoBv8G,IAAI+kC,GAEtCv9B,GACFlI,KAAKs9G,iBAAiBp1G,IAI1B60G,EAAO37G,UAAUm8G,kCAAoC,SAAUxgG,EAAS0oB,GACtE,IAAIv9B,EAASlI,KAAKi9G,oBAAoBv8G,IAAI+kC,GAE1C,GAAIv9B,EACF,OAAOA,EAAOg1G,SAASltE,MAAK,SAAUzrB,GACpC,OAAOA,EAAQxH,SAAWA,MAQhCggG,EAAO37G,UAAUkzG,YAAc,SAAUj3F,EAAOO,EAAS48B,GACvDx6C,KAAKg0G,YAAYM,YAAYj3F,EAAOO,EAAS48B,IAM/CuiE,EAAO37G,UAAUy7G,eAAiB,SAAUtH,GAC1Cv1G,KAAK08G,mBAAmBp3G,IAAIiwG,EAAM9vE,WAAY8vE,GAC9C,IAAIrtG,EAASlI,KAAKi9G,oBAAoBv8G,IAAI60G,EAAM9vE,YAE5Cv9B,GACFA,EAAOizG,uBAAuB5F,IAMlCwH,EAAO37G,UAAU07G,kBAAoB,SAAUvH,GAC7Cv1G,KAAK08G,mBAAmB1J,OAAOuC,EAAM9vE,WAAY8vE,GACjD,IAAIrtG,EAASlI,KAAKi9G,oBAAoBv8G,IAAI60G,EAAM9vE,YAE5Cv9B,GACFA,EAAOmzG,0BAA0B9F,IAKrCwH,EAAO37G,UAAUi8G,cAAgB,SAAUn1G,GACzClI,KAAKi9G,oBAAoBx3G,IAAIyC,EAAOu9B,WAAYv9B,GACnClI,KAAK08G,mBAAmBhF,gBAAgBxvG,EAAOu9B,YACrDz1B,SAAQ,SAAUulG,GACvB,OAAOrtG,EAAOizG,uBAAuB5F,OAIzCwH,EAAO37G,UAAUk8G,iBAAmB,SAAUp1G,GAC5ClI,KAAKi9G,oBAAoBjK,OAAO9qG,EAAOu9B,YAC1BzlC,KAAK08G,mBAAmBhF,gBAAgBxvG,EAAOu9B,YACrDz1B,SAAQ,SAAUulG,GACvB,OAAOrtG,EAAOmzG,0BAA0B9F,OAIrCwH,EA7HT,GCNWS,EAAgB,CACzBlB,oBAAqB,kBACrBrC,gBAAiB,cACjBgC,gBAAiB,eCHfwB,EAAsC,SAAUC,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,IAAMA,EAAI56C,WAAU,SAAUJ,EAAS58B,GACjD,SAAS83E,EAAU3tG,GACjB,IACEgvB,EAAK0+E,EAAU/sE,KAAK3gC,IACpB,MAAOuK,GACPsrB,EAAOtrB,IAIX,SAASqjG,EAAS5tG,GAChB,IACEgvB,EAAK0+E,EAAiB,MAAE1tG,IACxB,MAAOuK,GACPsrB,EAAOtrB,IAIX,SAASykB,EAAKxtB,GACZA,EAAOo/B,KAAO6xB,EAAQjxD,EAAOxB,OAAS,IAAIytG,GAAE,SAAUh7C,GACpDA,EAAQjxD,EAAOxB,UACduyD,KAAKo7C,EAAWC,GAGrB5+E,GAAM0+E,EAAYA,EAAUh6G,MAAM65G,EAASC,GAAc,KAAK7sE,YAI9DktE,EAA0C,SAAUN,EAAS7tF,GAC/D,IASIrZ,EACAvZ,EACAmhB,EACAglD,EAZAl8C,EAAI,CACN7Z,MAAO,EACPC,KAAM,WACJ,GAAW,EAAP8Q,EAAE,GAAQ,MAAMA,EAAE,GACtB,OAAOA,EAAE,IAEX6/F,KAAM,GACNp0F,IAAK,IAMP,OAAOu5C,EAAI,CACTtyB,KAAMotE,EAAK,GACX,MAASA,EAAK,GACd,OAAUA,EAAK,IACI,oBAAXjoG,SAA0BmtD,EAAEntD,OAAO46B,UAAY,WACvD,OAAO7wC,OACLojE,EAEJ,SAAS86C,EAAK3sG,GACZ,OAAO,SAAUq8B,GACf,OAIJ,SAAcuwE,GACZ,GAAI3nG,EAAG,MAAM,IAAIyU,UAAU,mCAE3B,KAAO/D,OACL,GAAI1Q,EAAI,EAAGvZ,IAAMmhB,EAAInhB,EAAU,EAARkhH,EAAG,GAAS,SAAWA,EAAG,GAAK,QAAU,YAAc//F,EAAIA,EAAEre,KAAK9C,EAAGkhH,EAAG,KAAKptE,KAAM,OAAO3yB,EAGjH,OAFInhB,EAAI,EAAGmhB,IAAG+/F,EAAK,CAAC,EAAG//F,EAAEjO,QAEjBguG,EAAG,IACT,KAAK,EACL,KAAK,EACH//F,EAAI+/F,EACJ,MAEF,KAAK,EAEH,OADAj3F,EAAE7Z,QACK,CACL8C,MAAOguG,EAAG,GACVptE,MAAM,GAGV,KAAK,EACH7pB,EAAE7Z,QACFpQ,EAAIkhH,EAAG,GACPA,EAAK,CAAC,GACN,SAEF,KAAK,EACHA,EAAKj3F,EAAE2C,IAAIw/B,MAEXniC,EAAE+2F,KAAK50D,MAEP,SAEF,QACE,KAAkBjrC,GAAZA,EAAI8I,EAAE+2F,MAAYj2G,OAAS,GAAKoW,EAAEA,EAAEpW,OAAS,MAAkB,IAAVm2G,EAAG,IAAsB,IAAVA,EAAG,IAAW,CACtFj3F,EAAI,EACJ,SAGF,GAAc,IAAVi3F,EAAG,MAAc//F,GAAK+/F,EAAG,GAAK//F,EAAE,IAAM+/F,EAAG,GAAK//F,EAAE,IAAK,CACvD8I,EAAE7Z,MAAQ8wG,EAAG,GACb,MAGF,GAAc,IAAVA,EAAG,IAAYj3F,EAAE7Z,MAAQ+Q,EAAE,GAAI,CACjC8I,EAAE7Z,MAAQ+Q,EAAE,GACZA,EAAI+/F,EACJ,MAGF,GAAI//F,GAAK8I,EAAE7Z,MAAQ+Q,EAAE,GAAI,CACvB8I,EAAE7Z,MAAQ+Q,EAAE,GAEZ8I,EAAE2C,IAAI7b,KAAKmwG,GAEX,MAGE//F,EAAE,IAAI8I,EAAE2C,IAAIw/B,MAEhBniC,EAAE+2F,KAAK50D,MAEP,SAGJ80D,EAAKtuF,EAAK9vB,KAAK29G,EAASx2F,GACxB,MAAOxM,GACPyjG,EAAK,CAAC,EAAGzjG,GACTzd,EAAI,EACJ,QACAuZ,EAAI4H,EAAI,EAGV,GAAY,EAAR+/F,EAAG,GAAQ,MAAMA,EAAG,GACxB,MAAO,CACLhuG,MAAOguG,EAAG,GAAKA,EAAG,QAAK,EACvBptE,MAAM,GAhFC5R,CAAK,CAAC5tB,EAAGq8B,OAyFlB,EAEJ,WACE,SAASwwE,EAAYrhG,EAASo9F,QACZ,IAAZp9F,IACFA,EAAU3F,SAAS01D,sBAGN,IAAXqtC,IACFA,EAASqD,GAGXx9G,KAAK+c,QAAUA,EACf/c,KAAKm6G,OAASA,EACdn6G,KAAKy6G,WAAa,IAAI,EAAWz6G,MACjCA,KAAKq+G,OAAS,IAAI,EAAOr+G,MA4F3B,OAzFAo+G,EAAY57E,MAAQ,SAAUzlB,EAASo9F,GACrC,IAAInG,EAAc,IAAIoK,EAAYrhG,EAASo9F,GAE3C,OADAnG,EAAYxxE,QACLwxE,GAGToK,EAAYh9G,UAAUohC,MAAQ,WAC5B,OAAOi7E,EAAUz9G,UAAM,OAAQ,GAAQ,WACrC,OAAOg+G,EAAYh+G,MAAM,SAAUoN,GACjC,OAAQA,EAAGC,OACT,KAAK,EACH,MAAO,CAAC,EAoFX,IAAI21D,SAAQ,SAAUJ,GACA,WAAvBxrD,SAASmuB,WACXnuB,SAAStR,iBAAiB,mBAAoB88D,GAE9CA,QApFI,KAAK,EAKH,OAJAx1D,EAAGE,OAEHtN,KAAKq+G,OAAO77E,QACZxiC,KAAKy6G,WAAWj4E,QACT,CAAC,WAQlB47E,EAAYh9G,UAAU0hC,KAAO,WAC3B9iC,KAAKq+G,OAAOv7E,OACZ9iC,KAAKy6G,WAAW33E,QAGlBs7E,EAAYh9G,UAAUwW,SAAW,SAAU6tB,EAAY80E,GACrDv6G,KAAKs+G,KAAK,CACR74E,WAAYA,EACZ80E,sBAAuBA,KAI3B6D,EAAYh9G,UAAUk9G,KAAO,SAAU9gF,GAKrC,IAJA,IAAI19B,EAAQE,KAERu+G,EAAO,GAEFvzF,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtCuzF,EAAKvzF,EAAK,GAAKlnB,UAAUknB,GAG3B,IAAIwzF,EAAc//F,MAAMisB,QAAQlN,GAAQA,EAAO,CAACA,GAAM7mB,OAAO4nG,GAC7DC,EAAYxuG,SAAQ,SAAU+qG,GAC5B,OAAOj7G,EAAMu+G,OAAOlB,eAAepC,OAIvCqD,EAAYh9G,UAAUq9G,OAAS,SAAUjhF,GAKvC,IAJA,IAAI19B,EAAQE,KAERu+G,EAAO,GAEFvzF,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtCuzF,EAAKvzF,EAAK,GAAKlnB,UAAUknB,GAG3B,IAAI0zF,EAAcjgG,MAAMisB,QAAQlN,GAAQA,EAAO,CAACA,GAAM7mB,OAAO4nG,GAC7DG,EAAY1uG,SAAQ,SAAUy1B,GAC5B,OAAO3lC,EAAMu+G,OAAOjB,iBAAiB33E,OAIzCjlC,OAAOC,eAAe29G,EAAYh9G,UAAW,cAAe,CAE1DV,IAAK,WACH,OAAOV,KAAKq+G,OAAOnB,SAASl0F,KAAI,SAAUzE,GACxC,OAAOA,EAAQiuF,eAGnB7xG,YAAY,EACZC,cAAc,IAGhBw9G,EAAYh9G,UAAUu9G,qCAAuC,SAAU5hG,EAAS0oB,GAC9E,IAAIlhB,EAAUvkB,KAAKq+G,OAAOd,kCAAkCxgG,EAAS0oB,GACrE,OAAOlhB,EAAUA,EAAQiuF,WAAa,MAIxC4L,EAAYh9G,UAAUkzG,YAAc,SAAUj3F,EAAOO,EAAS48B,KAEvD4jE,EAzGT,GC9IO,SAASQ,EAAuBjlG,GACrC,IAAIvY,EAAYuY,EAAYvY,WA2B9B,SAAsCuY,GACpC,IAAIklG,EASN,SAAoCllG,GAClC,IAAIklG,EAAY,GAEhB,KAAOllG,GACLklG,EAAU7wG,KAAK2L,GACfA,EAAcnZ,OAAOi1C,eAAe97B,GAGtC,OAAOklG,EAjBSC,CAA2BnlG,GAC3C,OAAO8E,MAAMyZ,KAAK2mF,EAAUvjF,QAAO,SAAUsgF,EAAajiG,GAIxD,OAeJ,SAAyCA,GACvC,IAAIohG,EAAaphG,EAAqB,QACtC,OAAO8E,MAAMisB,QAAQqwE,GAAcA,EAAa,GApB9CgE,CAAgCplG,GAAa3J,SAAQ,SAAU6N,GAC7D,OAAO+9F,EAAYt2G,IAAIuY,MAElB+9F,IACN,IAAI15C,OAjCW88C,CAA6BrlG,GACnC3J,SAAQ,SAAU6N,GAC5B,IAAIzQ,EAkDwB6P,EAAQsqB,EAhDpC,OAgD4BtqB,EAhDE7b,GAAYgM,EAAK,IAAOyQ,EAAO,UAAY,CACvEnd,IAAK,WACH,IAAIkE,EAAS5E,KAAKm8G,QAAQnsE,KAAKnyB,GAE/B,GAAIjZ,EACF,OAAOA,EAEP,MAAM,IAAIvC,MAAM,2BAA8BrC,KAAKylC,WAAa,IAAM5nB,EAAO,OAGhFzQ,EAAGyQ,EAAO,WAAa,CACxBnd,IAAK,WACH,OAAOV,KAAKm8G,QAAQr1E,QAAQjpB,KAE7BzQ,EAAG,MA2CV,SAAoByQ,GAClB,OAAOA,EAAK9L,OAAO,GAAGitE,cAAgBnhE,EAAKjW,MAAM,GA5CjCq3G,CAAWphG,GAAQ,UAAY,CAC3Cnd,IAAK,WACH,OAAOV,KAAKm8G,QAAQ7hG,IAAIuD,KAgCQ0pB,EA9BjCn6B,OA+BL5M,OAAOkW,KAAK6wB,GAAYv3B,SAAQ,SAAU6N,GACxC,KAAMA,KAAQZ,GAAS,CACrB,IAAI4yC,EAAatoB,EAAW1pB,GAC5Brd,OAAOC,eAAewc,EAAQY,EAAMgyC,UCzD1C,IAAI,EAEJ,WACE,SAASqrB,EAAW32D,GAClBvkB,KAAKukB,QAAUA,EA4DjB,OAzDA22D,EAAWy/B,MAAQ,WACjBiE,EAAuB5+G,OAGzBQ,OAAOC,eAAey6E,EAAW95E,UAAW,cAAe,CACzDV,IAAK,WACH,OAAOV,KAAKukB,QAAQyvF,aAEtBrzG,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAey6E,EAAW95E,UAAW,QAAS,CACnDV,IAAK,WACH,OAAOV,KAAKukB,QAAQgxF,OAEtB50G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAey6E,EAAW95E,UAAW,UAAW,CACrDV,IAAK,WACH,OAAOV,KAAKu1G,MAAMx4F,SAEpBpc,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAey6E,EAAW95E,UAAW,aAAc,CACxDV,IAAK,WACH,OAAOV,KAAKu1G,MAAM9vE,YAEpB9kC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAey6E,EAAW95E,UAAW,UAAW,CACrDV,IAAK,WACH,OAAOV,KAAKu1G,MAAM4G,SAEpBx7G,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAey6E,EAAW95E,UAAW,OAAQ,CAClDV,IAAK,WACH,OAAOV,KAAKu1G,MAAMnlG,MAEpBzP,YAAY,EACZC,cAAc,IAGhBs6E,EAAW95E,UAAU6C,WAAa,aAGlCi3E,EAAW95E,UAAUomC,QAAU,aAG/B0zC,EAAW95E,UAAUqmC,WAAa,aAGlCyzC,EAAWihC,QAAU,GACdjhC,EA9DT,I,qBCJAhzE,EAAOC,QAAU,SAAU4M,GACzB,MAAqB,kBAAPA,EAAyB,OAAPA,EAA4B,oBAAPA,I,oCCCvD,IAAI4W,EAAQ,EAAQ,QAEhBnX,EAAO,EAAQ,QAEf0qG,EAAQ,EAAQ,QAEhBC,EAAc,EAAQ,QAW1B,SAASC,EAAe3zF,GACtB,IAAIlH,EAAU,IAAI26F,EAAMzzF,GACpB2qB,EAAW5hC,EAAK0qG,EAAM99G,UAAUoc,QAAS+G,GAK7C,OAHAoH,EAAMwb,OAAOiP,EAAU8oE,EAAM99G,UAAWmjB,GAExCoH,EAAMwb,OAAOiP,EAAU7xB,GAChB6xB,EAIT,IAAIipE,EAAQD,EApBG,EAAQ,SAsBvBC,EAAMH,MAAQA,EAEdG,EAAMj5E,OAAS,SAAgB9a,GAC7B,OAAO8zF,EAAeD,EAAYE,EAAMvgG,SAAUwM,KAIpD+zF,EAAMC,OAAS,EAAQ,QACvBD,EAAME,YAAc,EAAQ,QAC5BF,EAAMG,SAAW,EAAQ,QAEzBH,EAAM18C,IAAM,SAAa88C,GACvB,OAAOz8C,QAAQL,IAAI88C,IAGrBJ,EAAMK,OAAS,EAAQ,QAEvBL,EAAM3hG,aAAe,EAAQ,QAC7BxV,EAAOC,QAAUk3G,EAEjBn3G,EAAOC,QAAQgzB,QAAUkkF,G,kGC9BdlhH,EAAa,CAItBwhH,WAAY,0CACZC,cAAe,6CACfC,gBAAiB,+CACjBpkG,KAAM,sBACNqkG,UAAW,kCAEFvhH,EAAU,CACnBwhH,aAAc,wBACdC,YAAa,uBACbC,qBAAsB,gCACtBC,uBAAwB,kCACxBC,SAAU,oBACVC,QAAS,oBAEAjhH,EAAU,CACnBkhH,wBAAyB,IACzBC,mBAAoB,IACpBC,qBAAsB,GACtBC,QAAS,GACTC,aAAc,K,YClBZC,EAAyB,CAAC,aAAc,cAAe,YAAa,WAEpEC,EAAmC,CAAC,WAAY,YAAa,UAAW,eAExEC,EAAmB,GAEnB,EAEJ,SAAUjhH,GAGR,SAASkhH,EAAoBhhH,GAC3B,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI6gH,EAAoB5gH,gBAAiBJ,KAAaG,KA6CtG,OA3CAF,EAAMghH,8BAA+B,EACrChhH,EAAMihH,iBAAmB,EACzBjhH,EAAMkhH,4BAA8B,EACpClhH,EAAMmhH,SAAW,IACjBnhH,EAAMohH,OAAS,CACb1zF,MAAO,EACPre,OAAQ,GAEVrP,EAAMqhH,aAAe,EACrBrhH,EAAMshH,aAAe,EACrBthH,EAAMuhH,WAAa,EACnBvhH,EAAMwhH,iBAAmB,CACvBxtG,KAAM,EACN1E,IAAK,GAEPtP,EAAMyhH,iBAAmBzhH,EAAM0hH,0BAE/B1hH,EAAM2hH,yBAA2B,WAC/B3hH,EAAMghH,8BAA+B,EAErChhH,EAAM4hH,kCAGR5hH,EAAM6hH,iBAAmB,SAAUjnG,GACjC,OAAO5a,EAAM8hH,UAAUlnG,IAGzB5a,EAAM+hH,mBAAqB,WACzB,OAAO/hH,EAAMgiH,eAGfhiH,EAAMiiH,cAAgB,WACpB,OAAOjiH,EAAMkiH,eAGfliH,EAAMmiH,aAAe,WACnB,OAAOniH,EAAMoiH,cAGfpiH,EAAMqiH,eAAiB,WACrB,OAAOriH,EAAMmN,UAGRnN,EA4iBT,OA5lBA,YAAU+gH,EAAqBlhH,GAmD/Ba,OAAOC,eAAeogH,EAAqB,aAAc,CACvDngH,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeogH,EAAqB,UAAW,CACpDngH,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeogH,EAAqB,UAAW,CACpDngH,IAAK,WACH,OAAOvB,GAETwB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeogH,EAAqB,iBAAkB,CAC3DngH,IAAK,WACH,MAAO,CACLG,SAAU,aAGVuhH,uBAAwB,WACtB,OAAO,GAETC,oBAAqB,WACnB,MAAO,CACLjzG,IAAK,EACLmtB,MAAO,EACPN,OAAQ,EACRnoB,KAAM,EACN0Z,MAAO,EACPre,OAAQ,IAGZmzG,oBAAqB,WACnB,OAAO,GAETC,qCAAsC,aAGtCC,6BAA8B,aAG9BC,wBAAyB,aAGzBC,oBAAqB,WACnB,MAAO,CACLhvG,EAAG,EACHzW,EAAG,IAGP0lH,gBAAiB,WACf,OAAO,GAETC,kBAAmB,WACjB,OAAO,GAETC,YAAa,WACX,OAAO,GAETC,mCAAoC,aAGpCC,2BAA4B,aAG5BC,sBAAuB,aAGvB7hH,YAAa,aAGb8hH,kBAAmB,eAKvBtiH,YAAY,EACZC,cAAc,IAGhBigH,EAAoBz/G,UAAU4qB,KAAO,WACnC,IAAIlsB,EAAQE,KAERkjH,EAAsBljH,KAAKmjH,uBAG/B,GAFAnjH,KAAKojH,sBAAsBF,GAEvBA,EAAqB,CACvB,IAAI91G,EAAKyzG,EAAoB1iH,WACzBklH,EAASj2G,EAAGqO,KACZ6nG,EAAcl2G,EAAG0yG,UACrB78G,uBAAsB,WACpBnD,EAAMD,QAAQgB,SAASwiH,GAEnBvjH,EAAMD,QAAQgjH,gBAChB/iH,EAAMD,QAAQgB,SAASyiH,GAGvBxjH,EAAMyjH,wBAMd1C,EAAoBz/G,UAAUC,QAAU,WACtC,IAAIvB,EAAQE,KAEZ,GAAIA,KAAKmjH,uBAAwB,CAC3BnjH,KAAK+gH,mBACPv/G,aAAaxB,KAAK+gH,kBAClB/gH,KAAK+gH,iBAAmB,EACxB/gH,KAAKH,QAAQsB,YAAY0/G,EAAoB1iH,WAAWyhH,gBAGtD5/G,KAAKghH,8BACPx/G,aAAaxB,KAAKghH,6BAClBhhH,KAAKghH,4BAA8B,EACnChhH,KAAKH,QAAQsB,YAAY0/G,EAAoB1iH,WAAW0hH,kBAG1D,IAAIzyG,EAAKyzG,EAAoB1iH,WACzBqlH,EAASp2G,EAAGqO,KACZgoG,EAAcr2G,EAAG0yG,UACrB78G,uBAAsB,WACpBnD,EAAMD,QAAQsB,YAAYqiH,GAE1B1jH,EAAMD,QAAQsB,YAAYsiH,GAE1B3jH,EAAM4jH,oBAIV1jH,KAAK2jH,0BACL3jH,KAAK4jH,mCAOP/C,EAAoBz/G,UAAUyiH,SAAW,SAAUnhH,GACjD1C,KAAK4hH,UAAUl/G,IAGjBm+G,EAAoBz/G,UAAU0iH,WAAa,WACzC9jH,KAAK8hH,eAGPjB,EAAoBz/G,UAAU6L,OAAS,WACrC,IAAInN,EAAQE,KAERA,KAAKohH,cACP7/G,qBAAqBvB,KAAKohH,cAG5BphH,KAAKohH,aAAen+G,uBAAsB,WACxCnD,EAAMyjH,kBAENzjH,EAAMshH,aAAe,MAIzBP,EAAoBz/G,UAAU2iH,aAAe,SAAUC,GACrD,IAAIlE,EAAYe,EAAoB1iH,WAAW2hH,UAE3CkE,EACFhkH,KAAKH,QAAQgB,SAASi/G,GAEtB9/G,KAAKH,QAAQsB,YAAY2+G,IAI7Be,EAAoBz/G,UAAU4gH,YAAc,WAC1C,IAAIliH,EAAQE,KAEZiD,uBAAsB,WACpB,OAAOnD,EAAMD,QAAQgB,SAASggH,EAAoB1iH,WAAWwhH,gBAIjEkB,EAAoBz/G,UAAU8gH,WAAa,WACzC,IAAIpiH,EAAQE,KAEZiD,uBAAsB,WACpB,OAAOnD,EAAMD,QAAQsB,YAAY0/G,EAAoB1iH,WAAWwhH,gBAWpEkB,EAAoBz/G,UAAU+hH,qBAAuB,WACnD,OAAOnjH,KAAKH,QAAQuiH,0BAGtBvB,EAAoBz/G,UAAUogH,wBAA0B,WACtD,MAAO,CACLyC,qBAAiBj9G,EACjBk9G,sBAAsB,EACtBC,aAAa,EACbC,gBAAgB,EAChBC,uBAAuB,EACvBC,sBAAsB,IAQ1BzD,EAAoBz/G,UAAUgiH,sBAAwB,SAAUF,GAC9D,IAAIpjH,EAAQE,KAERkjH,IACFxC,EAAuB1wG,SAAQ,SAAUu0G,GACvCzkH,EAAMD,QAAQkjH,2BAA2BwB,EAASzkH,EAAM6hH,qBAGtD3hH,KAAKH,QAAQgjH,eACf7iH,KAAKH,QAAQmjH,sBAAsBhjH,KAAKmiH,iBAI5CniH,KAAKH,QAAQkjH,2BAA2B,QAAS/iH,KAAK+hH,eACtD/hH,KAAKH,QAAQkjH,2BAA2B,OAAQ/iH,KAAKiiH,eAGvDpB,EAAoBz/G,UAAUojH,8BAAgC,SAAU9hH,GACtE,IAAI5C,EAAQE,KAEK,YAAb0C,EAAIsR,KACNhU,KAAKH,QAAQkjH,2BAA2B,QAAS/iH,KAAK6hH,oBAEtDlB,EAAiC3wG,SAAQ,SAAUu0G,GACjDzkH,EAAMD,QAAQijH,mCAAmCyB,EAASzkH,EAAM+hH,wBAKtEhB,EAAoBz/G,UAAUuiH,wBAA0B,WACtD,IAAI7jH,EAAQE,KAEZ0gH,EAAuB1wG,SAAQ,SAAUu0G,GACvCzkH,EAAMD,QAAQ2iH,6BAA6B+B,EAASzkH,EAAM6hH,qBAE5D3hH,KAAKH,QAAQ2iH,6BAA6B,QAASxiH,KAAK+hH,eACxD/hH,KAAKH,QAAQ2iH,6BAA6B,OAAQxiH,KAAKiiH,cAEnDjiH,KAAKH,QAAQgjH,eACf7iH,KAAKH,QAAQ4iH,wBAAwBziH,KAAKmiH,iBAI9CtB,EAAoBz/G,UAAUwiH,gCAAkC,WAC9D,IAAI9jH,EAAQE,KAEZA,KAAKH,QAAQ2iH,6BAA6B,QAASxiH,KAAK6hH,oBACxDlB,EAAiC3wG,SAAQ,SAAUu0G,GACjDzkH,EAAMD,QAAQ0iH,qCAAqCgC,EAASzkH,EAAM+hH,wBAItEhB,EAAoBz/G,UAAUsiH,eAAiB,WAC7C,IAAI5jH,EAAQE,KAERykH,EAAgB5D,EAAoBtiH,QAC7BiC,OAAOkW,KAAK+tG,GAClBz0G,SAAQ,SAAUrN,GACO,IAAxBA,EAAIgF,QAAQ,SACd7H,EAAMD,QAAQojH,kBAAkBwB,EAAc9hH,GAAM,UAK1Dk+G,EAAoBz/G,UAAUwgH,UAAY,SAAUl/G,GAClD,IAAI5C,EAAQE,KAEZ,IAAIA,KAAKH,QAAQ+iH,oBAAjB,CAIA,IAAI8B,EAAkB1kH,KAAKuhH,iBAE3B,IAAImD,EAAgBP,YAApB,CAKA,IAAIQ,EAA0B3kH,KAAK4kH,yBAGnC,KAFwBD,QAAmC39G,IAARtE,GAAqBiiH,EAAwB3wG,OAAStR,EAAIsR,MAM7G0wG,EAAgBP,aAAc,EAC9BO,EAAgBN,oBAAyBp9G,IAARtE,EACjCgiH,EAAgBT,gBAAkBvhH,EAClCgiH,EAAgBL,uBAAwBK,EAAgBN,sBAAiCp9G,IAARtE,IAAmC,cAAbA,EAAIsR,MAAqC,eAAbtR,EAAIsR,MAAsC,gBAAbtR,EAAIsR,YACpIhN,IAARtE,GAAqBk+G,EAAiB54G,OAAS,GAAK44G,EAAiBjpF,MAAK,SAAU/yB,GAC1G,OAAO9E,EAAMD,QAAQyiH,oBAAoB19G,MAKzC5E,KAAK6kH,8BAIK79G,IAARtE,IACFk+G,EAAiB5yG,KAAKtL,EAAIkC,QAC1B5E,KAAKwkH,8BAA8B9hH,IAGrCgiH,EAAgBJ,qBAAuBtkH,KAAK8kH,wBAAwBpiH,GAEhEgiH,EAAgBJ,sBAClBtkH,KAAK+kH,qBAGP9hH,uBAAsB,WAEpB29G,EAAmB,GAEd8D,EAAgBJ,2BAAgCt9G,IAARtE,GAAkC,MAAZA,EAAIC,KAA+B,KAAhBD,EAAIE,UAOxF8hH,EAAgBJ,qBAAuBxkH,EAAMglH,wBAAwBpiH,GAEjEgiH,EAAgBJ,sBAClBxkH,EAAMilH,sBAILL,EAAgBJ,uBAEnBxkH,EAAMyhH,iBAAmBzhH,EAAM0hH,kCAKrCX,EAAoBz/G,UAAU0jH,wBAA0B,SAAUpiH,GAChE,YAAesE,IAARtE,GAAkC,YAAbA,EAAIsR,MAAqBhU,KAAKH,QAAQ8iH,mBAGpE9B,EAAoBz/G,UAAU2jH,mBAAqB,WACjD,IAAIjlH,EAAQE,KAERoN,EAAKyzG,EAAoBtiH,QACzB2hH,EAAyB9yG,EAAG8yG,uBAC5BD,EAAuB7yG,EAAG6yG,qBAC1Bz3F,EAAKq4F,EAAoB1iH,WACzB0hH,EAAkBr3F,EAAGq3F,gBACrBD,EAAgBp3F,EAAGo3F,cACnBS,EAA0BQ,EAAoB1hH,QAAQkhH,wBAC1DrgH,KAAKujH,kBACL,IAAIyB,EAAiB,GACjBC,EAAe,GAEnB,IAAKjlH,KAAKH,QAAQgjH,cAAe,CAC/B,IAAIp6F,EAAKzoB,KAAKklH,+BACVC,EAAa18F,EAAG08F,WAChBC,EAAW38F,EAAG28F,SAElBJ,EAAiBG,EAAWzxG,EAAI,OAASyxG,EAAWloH,EAAI,KACxDgoH,EAAeG,EAAS1xG,EAAI,OAAS0xG,EAASnoH,EAAI,KAGpD+C,KAAKH,QAAQojH,kBAAkB/C,EAAwB8E,GACvDhlH,KAAKH,QAAQojH,kBAAkBhD,EAAsBgF,GAErDzjH,aAAaxB,KAAK+gH,kBAClBv/G,aAAaxB,KAAKghH,6BAClBhhH,KAAKqlH,8BACLrlH,KAAKH,QAAQsB,YAAY0+G,GAEzB7/G,KAAKH,QAAQwiH,sBACbriH,KAAKH,QAAQgB,SAAS++G,GACtB5/G,KAAK+gH,iBAAmBp/G,YAAW,WACjC,OAAO7B,EAAM2hH,6BACZpB,IAGLQ,EAAoBz/G,UAAU8jH,6BAA+B,WAC3D,IAGIC,EAHA/3G,EAAKpN,KAAKuhH,iBACV0C,EAAkB72G,EAAG62G,gBAsBzB,MAAO,CACLkB,WATFA,EAAa,CACXzxG,GAVAyxG,EAJ0B/3G,EAAGi3G,sBAIhB,YAAyBJ,EAAiBjkH,KAAKH,QAAQ6iH,sBAAuB1iH,KAAKH,QAAQwiH,uBAE3F,CACX3uG,EAAG1T,KAAKkhH,OAAO1zF,MAAQ,EACvBvwB,EAAG+C,KAAKkhH,OAAO/xG,OAAS,IAMZuE,EAAI1T,KAAKmhH,aAAe,EACtClkH,EAAGkoH,EAAWloH,EAAI+C,KAAKmhH,aAAe,GAQtCiE,SANa,CACb1xG,EAAG1T,KAAKkhH,OAAO1zF,MAAQ,EAAIxtB,KAAKmhH,aAAe,EAC/ClkH,EAAG+C,KAAKkhH,OAAO/xG,OAAS,EAAInP,KAAKmhH,aAAe,KAQpDN,EAAoBz/G,UAAUsgH,+BAAiC,WAC7D,IAAI5hH,EAAQE,KAIR6/G,EAAkBgB,EAAoB1iH,WAAW0hH,gBACjDzyG,EAAKpN,KAAKuhH,iBACV2C,EAAuB92G,EAAG82G,qBAC1BC,EAAc/2G,EAAG+2G,aACID,IAAyBC,IAExBnkH,KAAK8gH,+BAC7B9gH,KAAKqlH,8BACLrlH,KAAKH,QAAQgB,SAASg/G,GACtB7/G,KAAKghH,4BAA8Br/G,YAAW,WAC5C7B,EAAMD,QAAQsB,YAAY0+G,KACzB1gH,EAAQmhH,sBAIfO,EAAoBz/G,UAAUikH,4BAA8B,WAC1D,IAAIzF,EAAgBiB,EAAoB1iH,WAAWyhH,cACnD5/G,KAAKH,QAAQsB,YAAYy+G,GACzB5/G,KAAK8gH,8BAA+B,EACpC9gH,KAAKH,QAAQwiH,uBAGfxB,EAAoBz/G,UAAUyjH,sBAAwB,WACpD,IAAI/kH,EAAQE,KAEZA,KAAK4kH,yBAA2B5kH,KAAKuhH,iBAAiB0C,gBACtDjkH,KAAKuhH,iBAAmBvhH,KAAKwhH,0BAG7B7/G,YAAW,WACT,OAAO7B,EAAM8kH,8BAA2B59G,IACvC65G,EAAoB1hH,QAAQshH,eAGjCI,EAAoBz/G,UAAU0gH,YAAc,WAC1C,IAAIhiH,EAAQE,KAER0kH,EAAkB1kH,KAAKuhH,iBAE3B,GAAKmD,EAAgBP,YAArB,CAIA,IAAI7+E,EAAQ,YAAS,GAAIo/E,GAErBA,EAAgBN,gBAClBnhH,uBAAsB,WACpB,OAAOnD,EAAMwlH,qBAAqBhgF,MAEpCtlC,KAAK6kH,0BAEL7kH,KAAK4jH,kCACL3gH,uBAAsB,WACpBnD,EAAMyhH,iBAAiB2C,sBAAuB,EAE9CpkH,EAAMwlH,qBAAqBhgF,GAE3BxlC,EAAM+kH,8BAKZhE,EAAoBz/G,UAAUkkH,qBAAuB,SAAUl4G,GAC7D,IAAIi3G,EAAwBj3G,EAAGi3G,sBAC3BC,EAAuBl3G,EAAGk3G,sBAE1BD,GAAyBC,IAC3BtkH,KAAK0hH,kCAITb,EAAoBz/G,UAAUmiH,gBAAkB,WAC9C,IAAIzjH,EAAQE,KAEZA,KAAKkhH,OAASlhH,KAAKH,QAAQwiH,sBAC3B,IAAIkD,EAAS7sG,KAAKmS,IAAI7qB,KAAKkhH,OAAO/xG,OAAQnP,KAAKkhH,OAAO1zF,OAYtDxtB,KAAKqhH,WAAarhH,KAAKH,QAAQgjH,cAAgB0C,EAJ5B7sG,KAAKguC,KAAKhuC,KAAK0zB,IAAItsC,EAAMohH,OAAO1zF,MAAO,GAAK9U,KAAK0zB,IAAItsC,EAAMohH,OAAO/xG,OAAQ,IACvE0xG,EAAoB1hH,QAAQqhH,QAKlD,IAAIgF,EAAc9sG,KAAKG,MAAM0sG,EAAS1E,EAAoB1hH,QAAQohH,sBAE9DvgH,KAAKH,QAAQgjH,eAAiB2C,EAAc,IAAM,EACpDxlH,KAAKmhH,aAAeqE,EAAc,EAElCxlH,KAAKmhH,aAAeqE,EAGtBxlH,KAAKihH,SAAW,GAAKjhH,KAAKqhH,WAAarhH,KAAKmhH,aAC5CnhH,KAAKylH,wBAGP5E,EAAoBz/G,UAAUqkH,qBAAuB,WACnD,IAAIr4G,EAAKyzG,EAAoBtiH,QACzByhH,EAAc5yG,EAAG4yG,YACjBG,EAAW/yG,EAAG+yG,SACdC,EAAUhzG,EAAGgzG,QACbL,EAAe3yG,EAAG2yG,aACtB//G,KAAKH,QAAQojH,kBAAkBjD,EAAahgH,KAAKmhH,aAAe,MAChEnhH,KAAKH,QAAQojH,kBAAkBlD,EAAc//G,KAAKihH,UAE9CjhH,KAAKH,QAAQgjH,gBACf7iH,KAAKshH,iBAAmB,CACtBxtG,KAAM4E,KAAKwI,MAAMlhB,KAAKkhH,OAAO1zF,MAAQ,EAAIxtB,KAAKmhH,aAAe,GAC7D/xG,IAAKsJ,KAAKwI,MAAMlhB,KAAKkhH,OAAO/xG,OAAS,EAAInP,KAAKmhH,aAAe,IAE/DnhH,KAAKH,QAAQojH,kBAAkB9C,EAAUngH,KAAKshH,iBAAiBxtG,KAAO,MACtE9T,KAAKH,QAAQojH,kBAAkB7C,EAASpgH,KAAKshH,iBAAiBlyG,IAAM,QAIjEyxG,EA7lBT,CA8lBE,M,wBC1nBO,SAAU/lH,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,sdAA0FC,MAAM,KACxGC,YAAa,4UAAmED,MAAM,KACtFE,SAAU,2TAA4DF,MAAM,KAC5EG,cAAe,6LAAuCH,MAAM,KAC5DI,YAAa,+JAAkCJ,MAAM,KACrDK,eAAgB,CACdC,GAAI,4BACJC,IAAK,+BACLC,EAAG,aACHC,GAAI,cACJC,IAAK,yCACLC,KAAM,gDAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,wDACTC,SAAU,WACVC,QAAS,sCACTC,SAAU,0BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,wBACNC,EAAG,sEACHC,GAAI,gDACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,yBAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAGrB8B,cAAe,+HACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,uBAAbD,GAAsBC,GAAQ,GAAkB,mCAAbD,GAAwBC,EAAO,GAAkB,mCAAbD,EAClEC,EAAO,GAEPA,GAGXD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,qBACEA,EAAO,GACT,2BACEA,EAAO,GACT,iCACEA,EAAO,GACT,iCAEA,sBAGX7L,KAAM,CACJC,IAAK,EAELC,IAAK,KAxGuFC,CAAQ,EAAQ,U,oCCLlH,IAAIqU,EAAS,EAAQ,QAAiCA,OAClD08B,EAAsB,EAAQ,QAC9Bi3E,EAAiB,EAAQ,QAEzBC,EAAkB,kBAClBt2E,EAAmBZ,EAAoBhpC,IACvCmgH,EAAmBn3E,EAAoBc,UAAUo2E,GAIrDD,EAAej/G,OAAQ,UAAU,SAAUo/G,GACzCx2E,EAAiBrvC,KAAM,CACrBgU,KAAM2xG,EACNn8G,OAAQ/C,OAAOo/G,GACf99G,MAAO,OAIR,WACD,IAGI+kC,EAHAxH,EAAQsgF,EAAiB5lH,MACzBwJ,EAAS87B,EAAM97B,OACfzB,EAAQu9B,EAAMv9B,MAElB,OAAIA,GAASyB,EAAOxB,OAAe,CAAEmI,WAAOnJ,EAAW+pC,MAAM,IAC7DjE,EAAQ/6B,EAAOvI,EAAQzB,GACvBu9B,EAAMv9B,OAAS+kC,EAAM9kC,OACd,CAAEmI,MAAO28B,EAAOiE,MAAM,Q,sBCpBtB,SAAUj2C,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEIjO,EAAOC,aAAa,QAAS,CACtCC,OAAQ,sdAA0FC,MAAM,KACxGC,YAAa,4UAAmED,MAAM,KACtFE,SAAU,2TAA4DF,MAAM,KAC5EG,cAAe,6LAAuCH,MAAM,KAC5DI,YAAa,+JAAkCJ,MAAM,KACrDK,eAAgB,CACdC,GAAI,4BACJC,IAAK,+BACLC,EAAG,aACHC,GAAI,cACJC,IAAK,yCACLC,KAAM,gDAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,wDACTC,SAAU,WACVC,QAAS,sCACTC,SAAU,0BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,wBACNC,EAAG,sEACHC,GAAI,gDACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,yBAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAGrB8B,cAAe,6LACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,uBAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,uBAAbD,GAEa,6BAAbA,EADFC,EAGe,mCAAbD,EACFC,GAAQ,EAAIA,EAAOA,EAAO,GACX,mCAAbD,GAEa,+CAAbA,EADFC,EAAO,QACT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,qBACEA,EAAO,EACT,qBACEA,EAAO,GACT,2BACEA,EAAO,GACT,iCACEA,EAAO,GACT,iCACEA,EAAO,GACT,6CAEA,sBAGX7L,KAAM,CACJC,IAAK,EAELC,IAAK,KApHuFC,CAAQ,EAAQ,U,qBCNlH,IAAI4c,EAAM,EAAQ,QACdwrG,EAAU,EAAQ,QAClBC,EAAiC,EAAQ,QACzCjsG,EAAuB,EAAQ,QAEnC5R,EAAOC,QAAU,SAAUvD,EAAQ4C,GAIjC,IAHA,IAAIkP,EAAOovG,EAAQt+G,GACf/G,EAAiBqZ,EAAqBtD,EACtCuoC,EAA2BgnE,EAA+BvvG,EACrDpP,EAAI,EAAGA,EAAIsP,EAAK1O,OAAQZ,IAAK,CACpC,IAAIzE,EAAM+T,EAAKtP,GACVkT,EAAI1V,EAAQjC,IAAMlC,EAAemE,EAAQjC,EAAKo8C,EAAyBv3C,EAAQ7E,O,sBCJ/E,SAAU7H,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gXAAyEC,MAAM,KACvFC,YAAa,sOAAkDD,MAAM,KACrEE,SAAU,6RAAuDF,MAAM,KACvEG,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,8EACTC,QAAS,2DACTC,SAAU,6EACVC,QAAS,wEACTC,SAAU,8GACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,6DACRC,KAAM,gFACNC,EAAG,uCACHC,GAAI,0CACJC,EAAG,0DACHC,GAAI,0CACJC,EAAG,8CACHC,GAAI,8BACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,kBACJC,EAAG,wCACHC,GAAI,yBAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KA7CuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIkrH,EAAe,2DAAiD/qH,MAAM,KAE1E,SAASgrH,EAAgBC,GACvB,IAAIriF,EAAOqiF,EAEX,OADAriF,GAAkC,IAA3BqiF,EAAOv+G,QAAQ,OAAgBk8B,EAAKj8B,MAAM,GAAI,GAAK,OAAmC,IAA3Bs+G,EAAOv+G,QAAQ,OAAgBk8B,EAAKj8B,MAAM,GAAI,GAAK,OAAmC,IAA3Bs+G,EAAOv+G,QAAQ,OAAgBk8B,EAAKj8B,MAAM,GAAI,GAAK,MAAQi8B,EAAO,OAIjM,SAASsiF,EAAcD,GACrB,IAAIriF,EAAOqiF,EAEX,OADAriF,GAAkC,IAA3BqiF,EAAOv+G,QAAQ,OAAgBk8B,EAAKj8B,MAAM,GAAI,GAAK,YAAmC,IAA3Bs+G,EAAOv+G,QAAQ,OAAgBk8B,EAAKj8B,MAAM,GAAI,GAAK,OAAmC,IAA3Bs+G,EAAOv+G,QAAQ,OAAgBk8B,EAAKj8B,MAAM,GAAI,GAAK,MAAQi8B,EAAO,OAIjM,SAASryB,EAAUnU,EAAQoU,EAAejI,EAAQkI,GAChD,IAAI00G,EAAaC,EAAahpH,GAE9B,OAAQmM,GACN,IAAK,KACH,OAAO48G,EAAa,OAEtB,IAAK,KACH,OAAOA,EAAa,OAEtB,IAAK,KACH,OAAOA,EAAa,OAEtB,IAAK,KACH,OAAOA,EAAa,OAEtB,IAAK,KACH,OAAOA,EAAa,OAEtB,IAAK,KACH,OAAOA,EAAa,QAI1B,SAASC,EAAahpH,GACpB,IAAIipH,EAAU5tG,KAAKG,MAAMxb,EAAS,IAAO,KACrCkpH,EAAM7tG,KAAKG,MAAMxb,EAAS,IAAM,IAChCmpH,EAAMnpH,EAAS,GACf8c,EAAO,GAcX,OAZImsG,EAAU,IACZnsG,GAAQ6rG,EAAaM,GAAW,SAG9BC,EAAM,IACRpsG,IAAkB,KAATA,EAAc,IAAM,IAAM6rG,EAAaO,GAAO,OAGrDC,EAAM,IACRrsG,IAAkB,KAATA,EAAc,IAAM,IAAM6rG,EAAaQ,IAGlC,KAATrsG,EAAc,OAASA,EAGtBrf,EAAOC,aAAa,MAAO,CACnCC,OAAQ,iSAAkMC,MAAM,KAChNC,YAAa,6JAA0HD,MAAM,KAC7I6W,kBAAkB,EAClB3W,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,2DAA2DH,MAAM,KAChFI,YAAa,2DAA2DJ,MAAM,KAC9EK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,cACTC,QAAS,mBACTC,SAAU,MACVC,QAAS,wBACTC,SAAU,MACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ4pH,EACR3pH,KAAM6pH,EACN5pH,EAAG,UACHC,GAAIgV,EACJ/U,EAAG,eACHC,GAAI8U,EACJ7U,EAAG,eACHC,GAAI4U,EACJ3U,EAAG,eACHC,GAAI0U,EACJzU,EAAG,eACHC,GAAIwU,EACJvU,EAAG,eACHC,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA3GuFC,CAAQ,EAAQ,U,uBCNlH,IAAIqc,EAAW,EAAQ,QACnB+0B,EAAoB,EAAQ,QAEhC5mC,EAAOC,QAAU,SAAU4M,GACzB,IAAIk8B,EAAiBnC,EAAkB/5B,GACvC,GAA6B,mBAAlBk8B,EACT,MAAMhmB,UAAUxkB,OAAOsO,GAAM,oBAC7B,OAAOgF,EAASk3B,EAAelxC,KAAKgV,M,mBCPxC7M,EAAOC,QAAU,I,qBCAjB,IAAI0M,EAAY,EAAQ,QAExB3M,EAAOC,QAAU,SAAU4M,GACzB,IAAIpD,EAASkD,EAAUE,GACvB,GAAIpD,EAAS,EAAG,MAAMqD,WAAW,qCACjC,OAAOrD,I,qBCLT,IAAI80G,EAAgB,EAAQ,QAE5Bv+G,EAAOC,QAAUs+G,IAEXxwG,OAAO8/B,MAEkB,iBAAnB9/B,OAAO46B,U,sBCCV,SAAU/1C,GACjB,aAEA,IAAIq4C,EAAW,CACb9qC,EAAG,QACHI,EAAG,QACHG,EAAG,QACHwqC,GAAI,QACJC,GAAI,QACJ/qC,EAAG,OACHK,EAAG,OACH2qC,GAAI,OACJC,GAAI,OACJhrC,EAAG,WACHC,EAAG,WACHgrC,IAAK,WACL9qC,EAAG,OACHG,EAAG,QACH4qC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,SAEG94C,EAAOC,aAAa,KAAM,CACjCC,OAAQ,oGAA+EC,MAAM,KAC7FC,YAAa,iEAAkDD,MAAM,KACrEE,SAAU,4FAAwDF,MAAM,KACxEG,cAAe,mDAA8BH,MAAM,KACnDI,YAAa,4CAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,sBACTC,QAAS,mBACTC,SAAU,2BACVC,QAAS,kBACTC,SAAU,6BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,cACRC,KAAM,gBACNC,EAAG,uBACHE,EAAG,YACHC,GAAI,WACJC,EAAG,YACHC,GAAI,WACJC,EAAG,aACHC,GAAI,YACJC,EAAG,YACHC,GAAI,WACJC,EAAG,aACHC,GAAI,aAENE,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACH,OAAO9X,EAET,QACE,GAAe,IAAXA,EAEF,OAAOA,EAAS,QAGlB,IAAIshB,EAAIthB,EAAS,GACbC,EAAID,EAAS,IAAMshB,EACnBsK,EAAI5rB,GAAU,IAAM,IAAM,KAC9B,OAAOA,GAAU81C,EAASx0B,IAAMw0B,EAAS71C,IAAM61C,EAASlqB,MAG9D1rB,KAAM,CACJC,IAAK,EAELC,IAAK,KApFuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEaA,EAAOC,aAAa,UAAW,CAC1CC,OAAQ,6EAA6EC,MAAM,KAC3FC,YAAa,oDAAoDD,MAAM,KACvEE,SAAU,+DAA+DF,MAAM,KAC/EG,cAAe,kCAAkCH,MAAM,KACvDI,YAAa,yBAAyBJ,MAAM,KAC5CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,uBACTC,QAAS,mBACTC,SAAU,2BACVC,QAAS,uBACTC,SAAU,oCACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,qBACNC,EAAG,SACHC,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,UACHC,GAAI,SACJC,EAAG,SACHC,GAAI,QACJC,EAAG,UACHC,GAAI,UAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KA7CuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,gGAAuFC,MAAM,KACrGC,YAAa,0EAAiED,MAAM,KACpF6W,kBAAkB,EAClB3W,SAAU,sDAAsDF,MAAM,KACtEG,cAAe,qCAAqCH,MAAM,KAC1DI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,6BACTC,QAAS,mBACTC,SAAU,iBACVC,QAAS,iBACTC,SAAU,yBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,UACRC,KAAM,YACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAENC,uBAAwB,gBACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GAEN,QACA,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACH,OAAO9X,GAAqB,IAAXA,EAAe,KAAO,KAGzC,IAAK,IACL,IAAK,IACH,OAAOA,GAAqB,IAAXA,EAAe,KAAO,OAG7CE,KAAM,CACJC,IAAK,EAELC,IAAK,KAjEuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIq4C,EAAW,CACbrqC,EAAG,gBACHT,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACH4qC,GAAI,gBACJizE,GAAI,gBACJpuC,GAAI,gBACJhlC,GAAI,gBACJI,GAAI,gBACJizE,GAAI,gBACJpzE,GAAI,gBACJI,GAAI,gBACJP,GAAI,gBACJC,GAAI,gBACJO,GAAI,gBACJJ,IAAK,iBAEE14C,EAAOC,aAAa,KAAM,CACjCC,OAAQ,CACN4C,OAAQ,wbAAqF3C,MAAM,KACnG0C,WAAY,gXAAyE1C,MAAM,MAE7FC,YAAa,sOAAkDD,MAAM,KACrEE,SAAU,ySAAyDF,MAAM,KACzEG,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,qEACTC,QAAS,qEACTE,QAAS,qEACTD,SAAU,uHACVE,SAAU,mIACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,oCACRC,KAAM,wBACNC,EAAG,sEACHE,EAAG,oDACHC,GAAI,0CACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,yBAEN+L,cAAe,gGACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,uBAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,6BAAbD,EACFC,EACe,uBAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,mCAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,qBACEA,EAAO,GACT,2BACEA,EAAO,GACT,qBACEA,EAAO,GACT,iCAEA,sBAGXjM,uBAAwB,sCACxBC,QAAS,SAAUC,GACjB,IAAIshB,EAAIthB,EAAS,GACbC,EAAID,GAAU,IAAM,IAAM,KAC9B,OAAOA,GAAU81C,EAAS91C,IAAW81C,EAASx0B,IAAMw0B,EAAS71C,KAE/DC,KAAM,CACJC,IAAK,EAELC,IAAK,KA1GuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,ocAAuFC,MAAM,KACrGC,YAAa,uTAAuED,MAAM,KAC1F6W,kBAAkB,EAClB3W,SAAU,mSAAwDF,MAAM,KACxEG,cAAe,4KAA0CH,MAAM,KAC/DI,YAAa,wFAA4BJ,MAAM,KAC/C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,wCACJC,IAAK,2CACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qDACLC,KAAM,4DAER2N,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAGrB8B,cAAe,wHACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,6BAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,mCAAbD,EACFC,EACe,yCAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,6BAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,2BACEA,EAAO,GACT,iCACEA,EAAO,GACT,uCACEA,EAAO,GACT,2BAEA,4BAGXvN,SAAU,CACRC,QAAS,oBACTC,QAAS,gCACTC,SAAU,8CACVC,QAAS,gCACTC,SAAU,wCACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,iBACRC,KAAM,oCACNC,EAAG,oDACHC,GAAI,gDACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,+BAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KA9GuFC,CAAQ,EAAQ,U,wBCNlH,YAQiEwK,EAAOC,QAC/D,WACP,aAEA,IAAIy+G,EAqHAjvF,EAnHJ,SAASyH,IACP,OAAOwnF,EAAa/iH,MAAM,KAAMC,WAKlC,SAAS+iH,EAAgB7jH,GACvB4jH,EAAe5jH,EAGjB,SAAS0nC,EAAQ5iC,GACf,OAAOA,aAAiB2W,OAAmD,mBAA1Cje,OAAOY,UAAU0X,SAAS/Y,KAAK+H,GAGlE,SAASsR,EAAStR,GAGhB,OAAgB,MAATA,GAA2D,oBAA1CtH,OAAOY,UAAU0X,SAAS/Y,KAAK+H,GAGzD,SAASg/G,EAAWnoG,EAAGrhB,GACrB,OAAOkD,OAAOY,UAAUmZ,eAAexa,KAAK4e,EAAGrhB,GAGjD,SAASypH,EAAcjsG,GACrB,GAAIta,OAAO0nE,oBACT,OAAkD,IAA3C1nE,OAAO0nE,oBAAoBptD,GAAK9S,OAEvC,IAAI0W,EAEJ,IAAKA,KAAK5D,EACR,GAAIgsG,EAAWhsG,EAAK4D,GAClB,OAAO,EAIX,OAAO,EAIX,SAASsoG,EAAYl/G,GACnB,YAAiB,IAAVA,EAGT,SAASm/G,EAASn/G,GAChB,MAAwB,kBAAVA,GAAgE,oBAA1CtH,OAAOY,UAAU0X,SAAS/Y,KAAK+H,GAGrE,SAASo/G,EAAOp/G,GACd,OAAOA,aAAiBoQ,MAAkD,kBAA1C1X,OAAOY,UAAU0X,SAAS/Y,KAAK+H,GAGjE,SAASkhB,EAAIE,EAAKiB,GAChB,IACI/iB,EADA8vC,EAAM,GAGV,IAAK9vC,EAAI,EAAGA,EAAI8hB,EAAIlhB,SAAUZ,EAC5B8vC,EAAIlpC,KAAKmc,EAAGjB,EAAI9hB,GAAIA,IAGtB,OAAO8vC,EAGT,SAAS/P,EAAOxoB,EAAGrhB,GACjB,IAAK,IAAI8J,KAAK9J,EACRwpH,EAAWxpH,EAAG8J,KAChBuX,EAAEvX,GAAK9J,EAAE8J,IAYb,OARI0/G,EAAWxpH,EAAG,cAChBqhB,EAAE7F,SAAWxb,EAAEwb,UAGbguG,EAAWxpH,EAAG,aAChBqhB,EAAEwoG,QAAU7pH,EAAE6pH,SAGTxoG,EAGT,SAASyoG,EAAUt/G,EAAOlK,EAAQia,EAAQmoD,GACxC,OAAOqnD,GAAiBv/G,EAAOlK,EAAQia,EAAQmoD,GAAQ,GAAMsnD,MAG/D,SAASC,IAEP,MAAO,CACLC,OAAO,EACPC,aAAc,GACdC,YAAa,GACbC,UAAW,EACXC,cAAe,EACfC,WAAW,EACXC,WAAY,KACZC,aAAc,KACdC,eAAe,EACfC,iBAAiB,EACjBC,KAAK,EACLC,gBAAiB,GACjBC,IAAK,KACLj/G,SAAU,KACVk/G,SAAS,EACTC,iBAAiB,GAIrB,SAASC,EAAgB9rH,GAKvB,OAJa,MAATA,EAAE+rH,MACJ/rH,EAAE+rH,IAAMjB,KAGH9qH,EAAE+rH,IAuBX,SAASC,EAAQhsH,GACf,GAAkB,MAAdA,EAAEisH,SAAkB,CACtB,IAAInhH,EAAQghH,EAAgB9rH,GACxBksH,EAAchxF,EAAK53B,KAAKwH,EAAM4gH,iBAAiB,SAAU/gH,GAC3D,OAAY,MAALA,KAELwhH,GAAczwG,MAAM1b,EAAEksB,GAAGhI,YAAcpZ,EAAMogH,SAAW,IAAMpgH,EAAMigH,QAAUjgH,EAAMugH,aAAevgH,EAAMwgH,eAAiBxgH,EAAMshH,iBAAmBthH,EAAM+gH,kBAAoB/gH,EAAMsgH,YAActgH,EAAMygH,gBAAkBzgH,EAAM0gH,mBAAqB1gH,EAAM4B,UAAY5B,EAAM4B,UAAYw/G,GAM5R,GAJIlsH,EAAEqsH,UACJF,EAAaA,GAAsC,IAAxBrhH,EAAMqgH,eAAqD,IAA9BrgH,EAAMkgH,aAAaz/G,aAAkChB,IAAlBO,EAAMwhH,SAG5E,MAAnBvoH,OAAOwoH,UAAqBxoH,OAAOwoH,SAASvsH,GAG9C,OAAOmsH,EAFPnsH,EAAEisH,SAAWE,EAMjB,OAAOnsH,EAAEisH,SAGX,SAASO,EAAc1hH,GACrB,IAAI9K,EAAI2qH,EAAU8B,KAQlB,OANa,MAAT3hH,EACF4/B,EAAOohF,EAAgB9rH,GAAI8K,GAE3BghH,EAAgB9rH,GAAGwrH,iBAAkB,EAGhCxrH,EAhDPk7B,EADElZ,MAAMrd,UAAUu2B,KACXlZ,MAAMrd,UAAUu2B,KAEhB,SAAUwxF,GACf,IAEI/hH,EAFAgX,EAAI5d,OAAOR,MACX+mC,EAAM3oB,EAAEpW,SAAW,EAGvB,IAAKZ,EAAI,EAAGA,EAAI2/B,EAAK3/B,IACnB,GAAIA,KAAKgX,GAAK+qG,EAAIppH,KAAKC,KAAMoe,EAAEhX,GAAIA,EAAGgX,GACpC,OAAO,EAIX,OAAO,GAwCX,IAAIgrG,EAAmBhqF,EAAMgqF,iBAAmB,GAC5CC,GAAmB,EAEvB,SAASC,EAAWnxF,EAAID,GACtB,IAAI9wB,EAAGmiH,EAAMn/F,EA0Cb,GAxCK48F,EAAY9uF,EAAKsxF,oBACpBrxF,EAAGqxF,iBAAmBtxF,EAAKsxF,kBAGxBxC,EAAY9uF,EAAKlN,MACpBmN,EAAGnN,GAAKkN,EAAKlN,IAGVg8F,EAAY9uF,EAAKuxF,MACpBtxF,EAAGsxF,GAAKvxF,EAAKuxF,IAGVzC,EAAY9uF,EAAKyV,MACpBxV,EAAGwV,GAAKzV,EAAKyV,IAGVq5E,EAAY9uF,EAAK4wF,WACpB3wF,EAAG2wF,QAAU5wF,EAAK4wF,SAGf9B,EAAY9uF,EAAKwxF,QACpBvxF,EAAGuxF,KAAOxxF,EAAKwxF,MAGZ1C,EAAY9uF,EAAKyxF,UACpBxxF,EAAGwxF,OAASzxF,EAAKyxF,QAGd3C,EAAY9uF,EAAK0xF,WACpBzxF,EAAGyxF,QAAU1xF,EAAK0xF,SAGf5C,EAAY9uF,EAAKswF,OACpBrwF,EAAGqwF,IAAMD,EAAgBrwF,IAGtB8uF,EAAY9uF,EAAK2xF,WACpB1xF,EAAG0xF,QAAU3xF,EAAK2xF,SAGhBT,EAAiBphH,OAAS,EAC5B,IAAKZ,EAAI,EAAGA,EAAIgiH,EAAiBphH,OAAQZ,IAIlC4/G,EAFL58F,EAAM8N,EADNqxF,EAAOH,EAAiBhiH,OAItB+wB,EAAGoxF,GAAQn/F,GAKjB,OAAO+N,EAIT,SAAS2xF,EAAOxsG,GACdgsG,EAAWtpH,KAAMsd,GACjBtd,KAAK2oB,GAAK,IAAIzQ,KAAkB,MAAboF,EAAOqL,GAAarL,EAAOqL,GAAGhI,UAAYuoG,KAExDlpH,KAAKyoH,YACRzoH,KAAK2oB,GAAK,IAAIzQ,KAAKgxG,OAKI,IAArBG,IACFA,GAAmB,EACnBjqF,EAAM2qF,aAAa/pH,MACnBqpH,GAAmB,GAIvB,SAASW,EAASlvG,GAChB,OAAOA,aAAegvG,GAAiB,MAAPhvG,GAAuC,MAAxBA,EAAI0uG,iBAGrD,SAASS,EAAKC,GACR9qF,EAAM+qF,4BAGZ,SAASC,EAAUF,EAAK//F,GACtB,IAAIkgG,GAAY,EAChB,OAAOljF,GAAO,WAKZ,GAJgC,MAA5B/H,EAAMkrF,oBACRlrF,EAAMkrF,mBAAmB,KAAMJ,GAG7BG,EAAW,CACb,IACIvlF,EACA19B,EACAzE,EAHA6hB,EAAO,GAKX,IAAKpd,EAAI,EAAGA,EAAItD,UAAUkE,OAAQZ,IAAK,CAGrC,GAFA09B,EAAM,GAEsB,kBAAjBhhC,UAAUsD,GAAiB,CAGpC,IAAKzE,KAFLmiC,GAAO,MAAQ19B,EAAI,KAEPtD,UAAU,GAChBgjH,EAAWhjH,UAAU,GAAInB,KAC3BmiC,GAAOniC,EAAM,KAAOmB,UAAU,GAAGnB,GAAO,MAI5CmiC,EAAMA,EAAIl9B,MAAM,GAAI,QAEpBk9B,EAAMhhC,UAAUsD,GAGlBod,EAAKxW,KAAK82B,GAGZmlF,EAAKC,EAAM,gBAAkBzrG,MAAMrd,UAAUwG,MAAM7H,KAAKykB,GAAMpO,KAAK,IAAM,MAAO,IAAI/T,OAAQ6b,OAC5FmsG,GAAY,EAGd,OAAOlgG,EAAGtmB,MAAM7D,KAAM8D,aACrBqmB,GAGL,IA4EIzT,EA5EA6zG,EAAe,GAEnB,SAASC,EAAgB3sG,EAAMqsG,GACG,MAA5B9qF,EAAMkrF,oBACRlrF,EAAMkrF,mBAAmBzsG,EAAMqsG,GAG5BK,EAAa1sG,KAChBosG,EAAKC,GACLK,EAAa1sG,IAAQ,GAOzB,SAAS4sG,EAAW3iH,GAClB,MAA2B,qBAAbuuC,UAA4BvuC,aAAiBuuC,UAAsD,sBAA1C71C,OAAOY,UAAU0X,SAAS/Y,KAAK+H,GAGxG,SAASrC,EAAI6X,GACX,IAAIisG,EAAMniH,EAEV,IAAKA,KAAKkW,EACJwpG,EAAWxpG,EAAQlW,KAGjBqjH,EAFJlB,EAAOjsG,EAAOlW,IAGZpH,KAAKoH,GAAKmiH,EAEVvpH,KAAK,IAAMoH,GAAKmiH,GAKtBvpH,KAAK0qH,QAAUptG,EAIftd,KAAK2qH,+BAAiC,IAAIrkH,QAAQtG,KAAK4qH,wBAAwBpjH,QAAUxH,KAAK6qH,cAAcrjH,QAAU,IAAM,UAAUA,QAGxI,SAASsjH,EAAaC,EAAcC,GAClC,IACIzB,EADAryE,EAAM/P,EAAO,GAAI4jF,GAGrB,IAAKxB,KAAQyB,EACPlE,EAAWkE,EAAazB,KACtBnwG,EAAS2xG,EAAaxB,KAAUnwG,EAAS4xG,EAAYzB,KACvDryE,EAAIqyE,GAAQ,GACZpiF,EAAO+P,EAAIqyE,GAAOwB,EAAaxB,IAC/BpiF,EAAO+P,EAAIqyE,GAAOyB,EAAYzB,KACA,MAArByB,EAAYzB,GACrBryE,EAAIqyE,GAAQyB,EAAYzB,UAEjBryE,EAAIqyE,IAKjB,IAAKA,KAAQwB,EACPjE,EAAWiE,EAAcxB,KAAUzC,EAAWkE,EAAazB,IAASnwG,EAAS2xG,EAAaxB,MAE5FryE,EAAIqyE,GAAQpiF,EAAO,GAAI+P,EAAIqyE,KAI/B,OAAOryE,EAGT,SAAS+zE,EAAO3tG,GACA,MAAVA,GACFtd,KAAKyF,IAAI6X,GA3Db8hB,EAAM+qF,6BAA8B,EACpC/qF,EAAMkrF,mBAAqB,KAiEzB5zG,EADElW,OAAOkW,KACFlW,OAAOkW,KAEP,SAAUoE,GACf,IAAI1T,EACA8vC,EAAM,GAEV,IAAK9vC,KAAK0T,EACJgsG,EAAWhsG,EAAK1T,IAClB8vC,EAAIlpC,KAAK5G,GAIb,OAAO8vC,GAIX,IAAIg0E,EAAkB,CACpBpvH,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAGZ,SAASN,EAAS8G,EAAKwoH,EAAK9wG,GAC1B,IAAI6rG,EAASlmH,KAAKorH,UAAUzoH,IAAQ3C,KAAKorH,UAAoB,SAC7D,OAAOX,EAAWvE,GAAUA,EAAOnmH,KAAKorH,EAAK9wG,GAAO6rG,EAGtD,SAASmF,EAAShuH,EAAQiuH,EAAcC,GACtC,IAAIC,EAAY,GAAK9yG,KAAKC,IAAItb,GAC1BouH,EAAcH,EAAeE,EAAUxjH,OAE3C,OADW3K,GAAU,EACNkuH,EAAY,IAAM,GAAK,KAAO7yG,KAAK0zB,IAAI,GAAI1zB,KAAKmS,IAAI,EAAG4gG,IAAc3yG,WAAW6iD,OAAO,GAAK6vD,EAG7G,IAAIE,EAAmB,yMACnBC,EAAwB,6CACxBC,EAAkB,GAClBC,EAAuB,GAK3B,SAASC,EAAep5E,EAAOq5E,EAAQ3uH,EAAS4F,GAC9C,IAAI8U,EAAO9U,EAEa,kBAAbA,IACT8U,EAAO,WACL,OAAO9X,KAAKgD,OAIZ0vC,IACFm5E,EAAqBn5E,GAAS56B,GAG5Bi0G,IACFF,EAAqBE,EAAO,IAAM,WAChC,OAAOV,EAASvzG,EAAKjU,MAAM7D,KAAM8D,WAAYioH,EAAO,GAAIA,EAAO,MAI/D3uH,IACFyuH,EAAqBzuH,GAAW,WAC9B,OAAO4C,KAAKgsH,aAAa5uH,QAAQ0a,EAAKjU,MAAM7D,KAAM8D,WAAY4uC,KAKpE,SAASu5E,EAAuBnkH,GAC9B,OAAIA,EAAMX,MAAM,YACPW,EAAMhK,QAAQ,WAAY,IAG5BgK,EAAMhK,QAAQ,MAAO,IAG9B,SAASouH,EAAmBtuH,GAC1B,IACIwJ,EACAY,EAFAgwB,EAAQp6B,EAAOuJ,MAAMukH,GAIzB,IAAKtkH,EAAI,EAAGY,EAASgwB,EAAMhwB,OAAQZ,EAAIY,EAAQZ,IACzCykH,EAAqB7zF,EAAM5wB,IAC7B4wB,EAAM5wB,GAAKykH,EAAqB7zF,EAAM5wB,IAEtC4wB,EAAM5wB,GAAK6kH,EAAuBj0F,EAAM5wB,IAI5C,OAAO,SAAU+jH,GACf,IACI/jH,EADA8+G,EAAS,GAGb,IAAK9+G,EAAI,EAAGA,EAAIY,EAAQZ,IACtB8+G,GAAUuE,EAAWzyF,EAAM5wB,IAAM4wB,EAAM5wB,GAAGrH,KAAKorH,EAAKvtH,GAAUo6B,EAAM5wB,GAGtE,OAAO8+G,GAKX,SAASiG,EAAa1vH,EAAGmB,GACvB,OAAKnB,EAAEgsH,WAIP7qH,EAASwuH,EAAaxuH,EAAQnB,EAAEuvH,cAChCJ,EAAgBhuH,GAAUguH,EAAgBhuH,IAAWsuH,EAAmBtuH,GACjEguH,EAAgBhuH,GAAQnB,IALtBA,EAAEuvH,aAAax0G,cAQ1B,SAAS40G,EAAaxuH,EAAQia,GAC5B,IAAIzQ,EAAI,EAER,SAASilH,EAA4BvkH,GACnC,OAAO+P,EAAOvc,eAAewM,IAAUA,EAKzC,IAFA6jH,EAAsB/kH,UAAY,EAE3BQ,GAAK,GAAKukH,EAAsBztH,KAAKN,IAC1CA,EAASA,EAAOE,QAAQ6tH,EAAuBU,GAC/CV,EAAsB/kH,UAAY,EAClCQ,GAAK,EAGP,OAAOxJ,EAGT,IAAI0uH,EAAwB,CAC1B9wH,IAAK,YACLD,GAAI,SACJE,EAAG,aACHC,GAAI,eACJC,IAAK,sBACLC,KAAM,6BAGR,SAASN,EAAeqH,GACtB,IAAI/E,EAASoC,KAAKusH,gBAAgB5pH,GAC9B6pH,EAAcxsH,KAAKusH,gBAAgB5pH,EAAIq8E,eAE3C,OAAIphF,IAAW4uH,EACN5uH,GAGToC,KAAKusH,gBAAgB5pH,GAAO6pH,EAAYrlH,MAAMukH,GAAkB1iG,KAAI,SAAUyjG,GAC5E,MAAY,SAARA,GAA0B,OAARA,GAAwB,OAARA,GAAwB,SAARA,EAC7CA,EAAI7kH,MAAM,GAGZ6kH,KACNr2G,KAAK,IACDpW,KAAKusH,gBAAgB5pH,IAG9B,IAAI+pH,EAAqB,eAEzB,SAASl1G,IACP,OAAOxX,KAAK2sH,aAGd,IAAIC,EAAiB,KACjBC,EAAgC,UAEpC,SAASzvH,EAAQC,GACf,OAAO2C,KAAK8sH,SAAShvH,QAAQ,KAAMT,GAGrC,IAAI0vH,EAAsB,CACxB1wH,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJmY,EAAG,SACHC,GAAI,WACJnY,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAGN,SAASd,GAAaiB,EAAQoU,EAAejI,EAAQkI,GACnD,IAAIw0G,EAASlmH,KAAKgtH,cAAcxjH,GAChC,OAAOihH,EAAWvE,GAAUA,EAAO7oH,EAAQoU,EAAejI,EAAQkI,GAAYw0G,EAAOpoH,QAAQ,MAAOT,GAGtG,SAAS4vH,GAAW30G,EAAM4tG,GACxB,IAAItoH,EAASoC,KAAKgtH,cAAc10G,EAAO,EAAI,SAAW,QACtD,OAAOmyG,EAAW7sH,GAAUA,EAAOsoH,GAAUtoH,EAAOE,QAAQ,MAAOooH,GAGrE,IAAIgH,GAAU,GAEd,SAASC,GAAah0G,EAAM+J,GAC1B,IAAIkqG,EAAYj0G,EAAKnH,cACrBk7G,GAAQE,GAAaF,GAAQE,EAAY,KAAOF,GAAQhqG,GAAa/J,EAGvE,SAASk0G,GAAeC,GACtB,MAAwB,kBAAVA,EAAqBJ,GAAQI,IAAUJ,GAAQI,EAAMt7G,oBAAiBhL,EAGtF,SAASumH,GAAqBC,GAC5B,IACIC,EACAlE,EAFAmE,EAAkB,GAItB,IAAKnE,KAAQiE,EACP1G,EAAW0G,EAAajE,KAC1BkE,EAAiBJ,GAAe9D,MAG9BmE,EAAgBD,GAAkBD,EAAYjE,IAKpD,OAAOmE,EAGT,IAAIC,GAAa,GAEjB,SAASC,GAAgBz0G,EAAM/V,GAC7BuqH,GAAWx0G,GAAQ/V,EAGrB,SAASyqH,GAAoBC,GAC3B,IACIhmG,EADAwlG,EAAQ,GAGZ,IAAKxlG,KAAKgmG,EACJhH,EAAWgH,EAAUhmG,IACvBwlG,EAAMt/G,KAAK,CACTmL,KAAM2O,EACN1kB,SAAUuqH,GAAW7lG,KAQ3B,OAHAwlG,EAAMxvF,MAAK,SAAUnf,EAAGrhB,GACtB,OAAOqhB,EAAEvb,SAAW9F,EAAE8F,YAEjBkqH,EAGT,SAASS,GAAWvmG,GAClB,OAAOA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAKA,EAAO,MAAQ,EAG9D,SAASwmG,GAAS3wH,GAChB,OAAIA,EAAS,EAEJqb,KAAKo6C,KAAKz1D,IAAW,EAErBqb,KAAKG,MAAMxb,GAItB,SAAS4wH,GAAMC,GACb,IAAIC,GAAiBD,EACjB/9G,EAAQ,EAMZ,OAJsB,IAAlBg+G,GAAuB32D,SAAS22D,KAClCh+G,EAAQ69G,GAASG,IAGZh+G,EAGT,SAASi+G,GAAWj1G,EAAMk1G,GACxB,OAAO,SAAUl+G,GACf,OAAa,MAATA,GACFm+G,GAAMtuH,KAAMmZ,EAAMhJ,GAClBivB,EAAM2qF,aAAa/pH,KAAMquH,GAClBruH,MAEAU,GAAIV,KAAMmZ,IAKvB,SAASzY,GAAIyqH,EAAKhyG,GAChB,OAAOgyG,EAAI1C,UAAY0C,EAAIxiG,GAAG,OAASwiG,EAAIxB,OAAS,MAAQ,IAAMxwG,KAAU+vG,IAG9E,SAASoF,GAAMnD,EAAKhyG,EAAMhJ,GACpBg7G,EAAI1C,YAActwG,MAAMhI,KACb,aAATgJ,GAAuB40G,GAAW5C,EAAI3jG,SAA2B,IAAhB2jG,EAAI34G,SAAgC,KAAf24G,EAAInyG,QAC5E7I,EAAQ89G,GAAM99G,GAEdg7G,EAAIxiG,GAAG,OAASwiG,EAAIxB,OAAS,MAAQ,IAAMxwG,GAAMhJ,EAAOg7G,EAAI34G,QAAS4Q,GAAYjT,EAAOg7G,EAAI34G,WAE5F24G,EAAIxiG,GAAG,OAASwiG,EAAIxB,OAAS,MAAQ,IAAMxwG,GAAMhJ,IAMvD,SAASo+G,GAAUjB,GAGjB,OAAI7C,EAAWzqH,KAFfstH,EAAQD,GAAeC,KAGdttH,KAAKstH,KAGPttH,KAGT,SAASwuH,GAAUlB,EAAOn9G,GACxB,GAAqB,kBAAVm9G,EAAoB,CAE7B,IACIlmH,EADAqnH,EAAcZ,GADlBP,EAAQC,GAAqBD,IAI7B,IAAKlmH,EAAI,EAAGA,EAAIqnH,EAAYzmH,OAAQZ,IAClCpH,KAAKyuH,EAAYrnH,GAAG+R,MAAMm0G,EAAMmB,EAAYrnH,GAAG+R,YAKjD,GAAIsxG,EAAWzqH,KAFfstH,EAAQD,GAAeC,KAGrB,OAAOttH,KAAKstH,GAAOn9G,GAIvB,OAAOnQ,KAGT,IAmCI0uH,GAnCAC,GAAS,KAEbC,GAAS,OAETC,GAAS,QAETC,GAAS,QAETC,GAAS,aAETC,GAAY,QAEZC,GAAY,YAEZC,GAAY,gBAEZC,GAAY,UAEZC,GAAY,UAEZC,GAAY,eAEZC,GAAgB,MAEhBC,GAAc,WAEdC,GAAc,qBAEdC,GAAmB,0BAEnBC,GAAiB,uBAIjBC,GAAY,wJAIZ,SAASC,GAAcl9E,EAAOm9E,EAAOC,GACnCpB,GAAQh8E,GAAS+3E,EAAWoF,GAASA,EAAQ,SAAUE,EAAU/D,GAC/D,OAAO+D,GAAYD,EAAcA,EAAcD,GAInD,SAASG,GAAsBt9E,EAAOp1B,GACpC,OAAKwpG,EAAW4H,GAASh8E,GAIlBg8E,GAAQh8E,GAAOp1B,EAAOwrG,QAASxrG,EAAOusG,SAHpC,IAAIvjH,OAAO2pH,GAAev9E,IAOrC,SAASu9E,GAAe1zH,GACtB,OAAO2zH,GAAY3zH,EAAEuB,QAAQ,KAAM,IAAIA,QAAQ,uCAAuC,SAAU8rB,EAASumG,EAAIC,EAAIC,EAAIC,GACnH,OAAOH,GAAMC,GAAMC,GAAMC,MAI7B,SAASJ,GAAY3zH,GACnB,OAAOA,EAAEuB,QAAQ,yBAA0B,QAxB7C4wH,GAAU,GA2BV,IAAI37E,GAAS,GAEb,SAASw9E,GAAc79E,EAAO1vC,GAC5B,IAAIoE,EACA0Q,EAAO9U,EAYX,IAVqB,kBAAV0vC,IACTA,EAAQ,CAACA,IAGPu0E,EAASjkH,KACX8U,EAAO,SAAUhQ,EAAOkwB,GACtBA,EAAMh1B,GAAYirH,GAAMnmH,KAIvBV,EAAI,EAAGA,EAAIsrC,EAAM1qC,OAAQZ,IAC5B2rC,GAAOL,EAAMtrC,IAAM0Q,EAIvB,SAAS04G,GAAkB99E,EAAO1vC,GAChCutH,GAAc79E,GAAO,SAAU5qC,EAAOkwB,EAAO1a,EAAQo1B,GACnDp1B,EAAOmzG,GAAKnzG,EAAOmzG,IAAM,GACzBztH,EAAS8E,EAAOwV,EAAOmzG,GAAInzG,EAAQo1B,MAIvC,SAASg+E,GAAwBh+E,EAAO5qC,EAAOwV,GAChC,MAATxV,GAAiBg/G,EAAW/zE,GAAQL,IACtCK,GAAOL,GAAO5qC,EAAOwV,EAAOlQ,GAAIkQ,EAAQo1B,GAI5C,IAcI/qC,GAdAgpH,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,GAAO,EACPC,GAAU,EAEd,SAASC,GAAI7/G,EAAGmC,GACd,OAAQnC,EAAImC,EAAIA,GAAKA,EAsBvB,SAAS0P,GAAYoE,EAAMhV,GACzB,GAAI2F,MAAMqP,IAASrP,MAAM3F,GACvB,OAAO02G,IAGT,IAAImI,EAAWD,GAAI5+G,EAAO,IAE1B,OADAgV,IAAShV,EAAQ6+G,GAAY,GACT,IAAbA,EAAiBtD,GAAWvmG,GAAQ,GAAK,GAAK,GAAK6pG,EAAW,EAAI,EAvBzE1pH,GADE8W,MAAMrd,UAAUuG,QACR8W,MAAMrd,UAAUuG,QAEhB,SAAU6tC,GAElB,IAAIpuC,EAEJ,IAAKA,EAAI,EAAGA,EAAIpH,KAAKgI,SAAUZ,EAC7B,GAAIpH,KAAKoH,KAAOouC,EACd,OAAOpuC,EAIX,OAAQ,GAeZ0kH,EAAe,IAAK,CAAC,KAAM,GAAI,MAAM,WACnC,OAAO9rH,KAAKwS,QAAU,KAExBs5G,EAAe,MAAO,EAAG,GAAG,SAAUluH,GACpC,OAAOoC,KAAKgsH,aAAa9wH,YAAY8E,KAAMpC,MAE7CkuH,EAAe,OAAQ,EAAG,GAAG,SAAUluH,GACrC,OAAOoC,KAAKgsH,aAAahxH,OAAOgF,KAAMpC,MAGxCuvH,GAAa,QAAS,KAEtBS,GAAgB,QAAS,GAEzBgC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAO,SAAUG,EAAUl4G,GACvC,OAAOA,EAAOpF,iBAAiBs9G,MAEjCH,GAAc,QAAQ,SAAUG,EAAUl4G,GACxC,OAAOA,EAAOtF,YAAYw9G,MAE5BQ,GAAc,CAAC,IAAK,OAAO,SAAUzoH,EAAOkwB,GAC1CA,EAAM44F,IAAS3C,GAAMnmH,GAAS,KAEhCyoH,GAAc,CAAC,MAAO,SAAS,SAAUzoH,EAAOkwB,EAAO1a,EAAQo1B,GAC7D,IAAIlgC,EAAQ8K,EAAOusG,QAAQv3G,YAAYxK,EAAO4qC,EAAOp1B,EAAOwrG,SAG/C,MAATt2G,EACFwlB,EAAM44F,IAASp+G,EAEf+1G,EAAgBjrG,GAAQyqG,aAAejgH,KAI3C,IAAIwpH,GAAsB,wFAAwFr2H,MAAM,KACpHs2H,GAA2B,kDAAkDt2H,MAAM,KACnFu2H,GAAmB,gCACnBC,GAA0B9B,GAC1B+B,GAAqB/B,GAEzB,SAASgC,GAAal1H,EAAGmB,GACvB,OAAKnB,EAIEiuC,EAAQ1qC,KAAK4xH,SAAW5xH,KAAK4xH,QAAQn1H,EAAE+V,SAAWxS,KAAK4xH,SAAS5xH,KAAK4xH,QAAQ/zH,UAAY2zH,IAAkBtzH,KAAKN,GAAU,SAAW,cAAcnB,EAAE+V,SAHnJk4B,EAAQ1qC,KAAK4xH,SAAW5xH,KAAK4xH,QAAU5xH,KAAK4xH,QAAoB,WAM3E,SAASC,GAAkBp1H,EAAGmB,GAC5B,OAAKnB,EAIEiuC,EAAQ1qC,KAAK8xH,cAAgB9xH,KAAK8xH,aAAar1H,EAAE+V,SAAWxS,KAAK8xH,aAAaN,GAAiBtzH,KAAKN,GAAU,SAAW,cAAcnB,EAAE+V,SAHvIk4B,EAAQ1qC,KAAK8xH,cAAgB9xH,KAAK8xH,aAAe9xH,KAAK8xH,aAAyB,WAM1F,SAASC,GAAkBzrG,EAAW1oB,EAAQoiE,GAC5C,IAAI54D,EACA4qH,EACA7G,EACA8G,EAAM3rG,EAAU4rG,oBAEpB,IAAKlyH,KAAKmyH,aAMR,IAJAnyH,KAAKmyH,aAAe,GACpBnyH,KAAKoyH,iBAAmB,GACxBpyH,KAAKqyH,kBAAoB,GAEpBjrH,EAAI,EAAGA,EAAI,KAAMA,EACpB+jH,EAAM/D,EAAU,CAAC,IAAMhgH,IACvBpH,KAAKqyH,kBAAkBjrH,GAAKpH,KAAK9E,YAAYiwH,EAAK,IAAI+G,oBACtDlyH,KAAKoyH,iBAAiBhrH,GAAKpH,KAAKhF,OAAOmwH,EAAK,IAAI+G,oBAIpD,OAAIlyD,EACa,QAAXpiE,GAEa,KADfo0H,EAAKrqH,GAAQ5H,KAAKC,KAAKqyH,kBAAmBJ,IACvBD,EAAK,MAGT,KADfA,EAAKrqH,GAAQ5H,KAAKC,KAAKoyH,iBAAkBH,IACtBD,EAAK,KAGX,QAAXp0H,GAGU,KAFZo0H,EAAKrqH,GAAQ5H,KAAKC,KAAKqyH,kBAAmBJ,MAO3B,KADfD,EAAKrqH,GAAQ5H,KAAKC,KAAKoyH,iBAAkBH,IAHhCD,EAIe,MAIZ,KAFZA,EAAKrqH,GAAQ5H,KAAKC,KAAKoyH,iBAAkBH,MAO1B,KADfD,EAAKrqH,GAAQ5H,KAAKC,KAAKqyH,kBAAmBJ,IAHjCD,EAIe,KAK9B,SAASM,GAAkBhsG,EAAW1oB,EAAQoiE,GAC5C,IAAI54D,EAAG+jH,EAAK0E,EAEZ,GAAI7vH,KAAKuyH,kBACP,OAAOR,GAAkBhyH,KAAKC,KAAMsmB,EAAW1oB,EAAQoiE,GAYzD,IATKhgE,KAAKmyH,eACRnyH,KAAKmyH,aAAe,GACpBnyH,KAAKoyH,iBAAmB,GACxBpyH,KAAKqyH,kBAAoB,IAMtBjrH,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAevB,GAbA+jH,EAAM/D,EAAU,CAAC,IAAMhgH,IAEnB44D,IAAWhgE,KAAKoyH,iBAAiBhrH,KACnCpH,KAAKoyH,iBAAiBhrH,GAAK,IAAId,OAAO,IAAMtG,KAAKhF,OAAOmwH,EAAK,IAAIrtH,QAAQ,IAAK,IAAM,IAAK,KACzFkC,KAAKqyH,kBAAkBjrH,GAAK,IAAId,OAAO,IAAMtG,KAAK9E,YAAYiwH,EAAK,IAAIrtH,QAAQ,IAAK,IAAM,IAAK,MAG5FkiE,GAAWhgE,KAAKmyH,aAAa/qH,KAChCyoH,EAAQ,IAAM7vH,KAAKhF,OAAOmwH,EAAK,IAAM,KAAOnrH,KAAK9E,YAAYiwH,EAAK,IAClEnrH,KAAKmyH,aAAa/qH,GAAK,IAAId,OAAOupH,EAAM/xH,QAAQ,IAAK,IAAK,MAIxDkiE,GAAqB,SAAXpiE,GAAqBoC,KAAKoyH,iBAAiBhrH,GAAGlJ,KAAKooB,GAC/D,OAAOlf,EACF,GAAI44D,GAAqB,QAAXpiE,GAAoBoC,KAAKqyH,kBAAkBjrH,GAAGlJ,KAAKooB,GACtE,OAAOlf,EACF,IAAK44D,GAAUhgE,KAAKmyH,aAAa/qH,GAAGlJ,KAAKooB,GAC9C,OAAOlf,GAMb,SAASmf,GAAS4kG,EAAKh7G,GACrB,IAAIqiH,EAEJ,IAAKrH,EAAI1C,UAEP,OAAO0C,EAGT,GAAqB,kBAAVh7G,EACT,GAAI,QAAQjS,KAAKiS,GACfA,EAAQ89G,GAAM99G,QAId,IAAK82G,EAFL92G,EAAQg7G,EAAIa,aAAa15G,YAAYnC,IAGnC,OAAOg7G,EASb,OAJAqH,EAAa95G,KAAKkS,IAAIugG,EAAInyG,OAAQoK,GAAY+nG,EAAI3jG,OAAQrX,IAE1Dg7G,EAAIxiG,GAAG,OAASwiG,EAAIxB,OAAS,MAAQ,IAAM,SAASx5G,EAAOqiH,GAEpDrH,EAGT,SAASsH,GAAYtiH,GACnB,OAAa,MAATA,GACFoW,GAASvmB,KAAMmQ,GACfivB,EAAM2qF,aAAa/pH,MAAM,GAClBA,MAEAU,GAAIV,KAAM,SAIrB,SAAS4rB,KACP,OAAOxI,GAAYpjB,KAAKwnB,OAAQxnB,KAAKwS,SAGvC,SAASC,GAAiBs9G,GACxB,OAAI/vH,KAAKuyH,mBACFzL,EAAW9mH,KAAM,iBACpB0yH,GAAmB3yH,KAAKC,MAGtB+vH,EACK/vH,KAAK2yH,wBAEL3yH,KAAK4yH,oBAGT9L,EAAW9mH,KAAM,uBACpBA,KAAK4yH,kBAAoBnB,IAGpBzxH,KAAK2yH,yBAA2B5C,EAAW/vH,KAAK2yH,wBAA0B3yH,KAAK4yH,mBAI1F,SAASrgH,GAAYw9G,GACnB,OAAI/vH,KAAKuyH,mBACFzL,EAAW9mH,KAAM,iBACpB0yH,GAAmB3yH,KAAKC,MAGtB+vH,EACK/vH,KAAK6yH,mBAEL7yH,KAAK8yH,eAGThM,EAAW9mH,KAAM,kBACpBA,KAAK8yH,aAAepB,IAGf1xH,KAAK6yH,oBAAsB9C,EAAW/vH,KAAK6yH,mBAAqB7yH,KAAK8yH,cAIhF,SAASJ,KACP,SAASK,EAAUp0G,EAAGrhB,GACpB,OAAOA,EAAE0K,OAAS2W,EAAE3W,OAGtB,IAGIZ,EACA+jH,EAJA6H,EAAc,GACdC,EAAa,GACbC,EAAc,GAIlB,IAAK9rH,EAAI,EAAGA,EAAI,GAAIA,IAElB+jH,EAAM/D,EAAU,CAAC,IAAMhgH,IACvB4rH,EAAYhlH,KAAKhO,KAAK9E,YAAYiwH,EAAK,KACvC8H,EAAWjlH,KAAKhO,KAAKhF,OAAOmwH,EAAK,KACjC+H,EAAYllH,KAAKhO,KAAKhF,OAAOmwH,EAAK,KAClC+H,EAAYllH,KAAKhO,KAAK9E,YAAYiwH,EAAK,KASzC,IAJA6H,EAAYl1F,KAAKi1F,GACjBE,EAAWn1F,KAAKi1F,GAChBG,EAAYp1F,KAAKi1F,GAEZ3rH,EAAI,EAAGA,EAAI,GAAIA,IAClB4rH,EAAY5rH,GAAK8oH,GAAY8C,EAAY5rH,IACzC6rH,EAAW7rH,GAAK8oH,GAAY+C,EAAW7rH,IAGzC,IAAKA,EAAI,EAAGA,EAAI,GAAIA,IAClB8rH,EAAY9rH,GAAK8oH,GAAYgD,EAAY9rH,IAG3CpH,KAAK8yH,aAAe,IAAIxsH,OAAO,KAAO4sH,EAAY98G,KAAK,KAAO,IAAK,KACnEpW,KAAK4yH,kBAAoB5yH,KAAK8yH,aAC9B9yH,KAAK6yH,mBAAqB,IAAIvsH,OAAO,KAAO2sH,EAAW78G,KAAK,KAAO,IAAK,KACxEpW,KAAK2yH,wBAA0B,IAAIrsH,OAAO,KAAO0sH,EAAY58G,KAAK,KAAO,IAAK,KAmChF,SAAS+8G,GAAW3rG,GAClB,OAAOumG,GAAWvmG,GAAQ,IAAM,IAhClCskG,EAAe,IAAK,EAAG,GAAG,WACxB,IAAI7uH,EAAI+C,KAAKwnB,OACb,OAAOvqB,GAAK,KAAOouH,EAASpuH,EAAG,GAAK,IAAMA,KAE5C6uH,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC9B,OAAO9rH,KAAKwnB,OAAS,OAEvBskG,EAAe,EAAG,CAAC,OAAQ,GAAI,EAAG,QAClCA,EAAe,EAAG,CAAC,QAAS,GAAI,EAAG,QACnCA,EAAe,EAAG,CAAC,SAAU,GAAG,GAAO,EAAG,QAE1CqB,GAAa,OAAQ,KAErBS,GAAgB,OAAQ,GAExBgC,GAAc,IAAKL,IACnBK,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAQR,GAAWN,IACjCc,GAAc,QAASP,GAAWN,IAClCa,GAAc,SAAUP,GAAWN,IACnCwB,GAAc,CAAC,QAAS,UAAWI,IACnCJ,GAAc,QAAQ,SAAUzoH,EAAOkwB,GACrCA,EAAM24F,IAAyB,IAAjB7oH,EAAME,OAAeo3B,EAAMg0F,kBAAkBtrH,GAASmmH,GAAMnmH,MAE5EyoH,GAAc,MAAM,SAAUzoH,EAAOkwB,GACnCA,EAAM24F,IAAQvxF,EAAMg0F,kBAAkBtrH,MAExCyoH,GAAc,KAAK,SAAUzoH,EAAOkwB,GAClCA,EAAM24F,IAAQv4G,SAAStQ,EAAO,OAQhCs3B,EAAMg0F,kBAAoB,SAAUtrH,GAClC,OAAOmmH,GAAMnmH,IAAUmmH,GAAMnmH,GAAS,GAAK,KAAO,MAIpD,IAAIurH,GAAajF,GAAW,YAAY,GAExC,SAASkF,KACP,OAAOvF,GAAW/tH,KAAKwnB,QAGzB,SAAS+rG,GAAWt2H,EAAGR,EAAGI,EAAGF,EAAGI,EAAGR,EAAGi3H,GAGpC,IAAIx6G,EAaJ,OAXI/b,EAAI,KAAOA,GAAK,GAElB+b,EAAO,IAAId,KAAKjb,EAAI,IAAKR,EAAGI,EAAGF,EAAGI,EAAGR,EAAGi3H,GAEpCh8D,SAASx+C,EAAKiI,gBAChBjI,EAAKyO,YAAYxqB,IAGnB+b,EAAO,IAAId,KAAKjb,EAAGR,EAAGI,EAAGF,EAAGI,EAAGR,EAAGi3H,GAG7Bx6G,EAGT,SAASy6G,GAAcx2H,GACrB,IAAI+b,EAAMwL,EAeV,OAbIvnB,EAAI,KAAOA,GAAK,IAClBunB,EAAO/F,MAAMrd,UAAUwG,MAAM7H,KAAK+D,YAE7B,GAAK7G,EAAI,IACd+b,EAAO,IAAId,KAAKA,KAAKw7G,IAAI7vH,MAAM,KAAM2gB,IAEjCgzC,SAASx+C,EAAK26G,mBAChB36G,EAAK46G,eAAe32H,IAGtB+b,EAAO,IAAId,KAAKA,KAAKw7G,IAAI7vH,MAAM,KAAMC,YAGhCkV,EAIT,SAAS66G,GAAgBrsG,EAAMhqB,EAAKC,GAClC,IACAq2H,EAAM,EAAIt2H,EAAMC,EAGhB,QADS,EAAIg2H,GAAcjsG,EAAM,EAAGssG,GAAKC,YAAcv2H,GAAO,EAC9Cs2H,EAAM,EAIxB,SAASE,GAAmBxsG,EAAMjqB,EAAM02H,EAASz2H,EAAKC,GACpD,IAGIy2H,EACAC,EAFAC,EAAY,EAAI,GAAK72H,EAAO,IAFZ,EAAI02H,EAAUz2H,GAAO,EACxBq2H,GAAgBrsG,EAAMhqB,EAAKC,GAgB5C,OAXI22H,GAAa,EAEfD,EAAehB,GADfe,EAAU1sG,EAAO,GACoB4sG,EAC5BA,EAAYjB,GAAW3rG,IAChC0sG,EAAU1sG,EAAO,EACjB2sG,EAAeC,EAAYjB,GAAW3rG,KAEtC0sG,EAAU1sG,EACV2sG,EAAeC,GAGV,CACL5sG,KAAM0sG,EACNE,UAAWD,GAIf,SAASE,GAAWlJ,EAAK3tH,EAAKC,GAC5B,IAEI62H,EACAJ,EAHAK,EAAaV,GAAgB1I,EAAI3jG,OAAQhqB,EAAKC,GAC9CF,EAAOmb,KAAKG,OAAOsyG,EAAIiJ,YAAcG,EAAa,GAAK,GAAK,EAehE,OAXIh3H,EAAO,EAET+2H,EAAU/2H,EAAOi3H,GADjBN,EAAU/I,EAAI3jG,OAAS,EACehqB,EAAKC,GAClCF,EAAOi3H,GAAYrJ,EAAI3jG,OAAQhqB,EAAKC,IAC7C62H,EAAU/2H,EAAOi3H,GAAYrJ,EAAI3jG,OAAQhqB,EAAKC,GAC9Cy2H,EAAU/I,EAAI3jG,OAAS,IAEvB0sG,EAAU/I,EAAI3jG,OACd8sG,EAAU/2H,GAGL,CACLA,KAAM+2H,EACN9sG,KAAM0sG,GAIV,SAASM,GAAYhtG,EAAMhqB,EAAKC,GAC9B,IAAI82H,EAAaV,GAAgBrsG,EAAMhqB,EAAKC,GACxCg3H,EAAiBZ,GAAgBrsG,EAAO,EAAGhqB,EAAKC,GACpD,OAAQ01H,GAAW3rG,GAAQ+sG,EAAaE,GAAkB,EAsB5D,SAASC,GAAWvJ,GAClB,OAAOkJ,GAAWlJ,EAAKnrH,KAAK20H,MAAMn3H,IAAKwC,KAAK20H,MAAMl3H,KAAKF,KAnBzDuuH,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QACrCA,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,WAErCqB,GAAa,OAAQ,KACrBA,GAAa,UAAW,KAExBS,GAAgB,OAAQ,GACxBA,GAAgB,UAAW,GAE3BgC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/B4B,GAAkB,CAAC,IAAK,KAAM,IAAK,OAAO,SAAU1oH,EAAOvK,EAAM+f,EAAQo1B,GACvEn1C,EAAKm1C,EAAMipB,OAAO,EAAG,IAAMsyD,GAAMnmH,MAQnC,IAAI8sH,GAAoB,CACtBp3H,IAAK,EAELC,IAAK,GAIP,SAASo3H,KACP,OAAO70H,KAAK20H,MAAMn3H,IAGpB,SAASs3H,KACP,OAAO90H,KAAK20H,MAAMl3H,IAIpB,SAASs3H,GAAWjtH,GAClB,IAAIvK,EAAOyC,KAAKgsH,aAAazuH,KAAKyC,MAClC,OAAgB,MAAT8H,EAAgBvK,EAAOyC,KAAKsF,IAAqB,GAAhBwC,EAAQvK,GAAW,KAG7D,SAASy3H,GAAcltH,GACrB,IAAIvK,EAAO82H,GAAWr0H,KAAM,EAAG,GAAGzC,KAClC,OAAgB,MAATuK,EAAgBvK,EAAOyC,KAAKsF,IAAqB,GAAhBwC,EAAQvK,GAAW,KAmD7D,SAAS03H,GAAantH,EAAO+P,GAC3B,MAAqB,kBAAV/P,EACFA,EAGJqQ,MAAMrQ,GAMU,kBAFrBA,EAAQ+P,EAAOq9G,cAAcptH,IAGpBA,EAGF,KATEsQ,SAAStQ,EAAO,IAY3B,SAASqtH,GAAgBrtH,EAAO+P,GAC9B,MAAqB,kBAAV/P,EACF+P,EAAOq9G,cAAcptH,GAAS,GAAK,EAGrCqQ,MAAMrQ,GAAS,KAAOA,EAI/B,SAASstH,GAAcC,EAAI9jH,GACzB,OAAO8jH,EAAGztH,MAAM2J,EAAG,GAAGoF,OAAO0+G,EAAGztH,MAAM,EAAG2J,IA3E3Cu6G,EAAe,IAAK,EAAG,KAAM,OAC7BA,EAAe,KAAM,EAAG,GAAG,SAAUluH,GACnC,OAAOoC,KAAKgsH,aAAa3wH,YAAY2E,KAAMpC,MAE7CkuH,EAAe,MAAO,EAAG,GAAG,SAAUluH,GACpC,OAAOoC,KAAKgsH,aAAa5wH,cAAc4E,KAAMpC,MAE/CkuH,EAAe,OAAQ,EAAG,GAAG,SAAUluH,GACrC,OAAOoC,KAAKgsH,aAAa7wH,SAAS6E,KAAMpC,MAE1CkuH,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,IAAK,EAAG,EAAG,cAE1BqB,GAAa,MAAO,KACpBA,GAAa,UAAW,KACxBA,GAAa,aAAc,KAE3BS,GAAgB,MAAO,IACvBA,GAAgB,UAAW,IAC3BA,GAAgB,aAAc,IAE9BgC,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,MAAM,SAAUG,EAAUl4G,GACtC,OAAOA,EAAOy9G,iBAAiBvF,MAEjCH,GAAc,OAAO,SAAUG,EAAUl4G,GACvC,OAAOA,EAAO09G,mBAAmBxF,MAEnCH,GAAc,QAAQ,SAAUG,EAAUl4G,GACxC,OAAOA,EAAO29G,cAAczF,MAE9BS,GAAkB,CAAC,KAAM,MAAO,SAAS,SAAU1oH,EAAOvK,EAAM+f,EAAQo1B,GACtE,IAAIuhF,EAAU32G,EAAOusG,QAAQqL,cAAcptH,EAAO4qC,EAAOp1B,EAAOwrG,SAGjD,MAAXmL,EACF12H,EAAKV,EAAIo3H,EAET1L,EAAgBjrG,GAAQurG,eAAiB/gH,KAG7C0oH,GAAkB,CAAC,IAAK,IAAK,MAAM,SAAU1oH,EAAOvK,EAAM+f,EAAQo1B,GAChEn1C,EAAKm1C,GAASu7E,GAAMnmH,MAkCtB,IAAI2tH,GAAwB,2DAA2Dx6H,MAAM,KACzFy6H,GAA6B,8BAA8Bz6H,MAAM,KACjE06H,GAA2B,uBAAuB16H,MAAM,KACxD26H,GAAuBjG,GACvBkG,GAA4BlG,GAC5BmG,GAA0BnG,GAE9B,SAASoG,GAAet5H,EAAGmB,GACzB,IAAIzC,EAAWuvC,EAAQ1qC,KAAKg2H,WAAah2H,KAAKg2H,UAAYh2H,KAAKg2H,UAAUv5H,IAAW,IAANA,GAAcuD,KAAKg2H,UAAUn4H,SAASK,KAAKN,GAAU,SAAW,cAC9I,OAAa,IAANnB,EAAa24H,GAAcj6H,EAAU6E,KAAK20H,MAAMn3H,KAAOf,EAAItB,EAASsB,EAAEiN,OAASvO,EAGxF,SAAS86H,GAAoBx5H,GAC3B,OAAa,IAANA,EAAa24H,GAAcp1H,KAAKk2H,eAAgBl2H,KAAK20H,MAAMn3H,KAAOf,EAAIuD,KAAKk2H,eAAez5H,EAAEiN,OAAS1J,KAAKk2H,eAGnH,SAASC,GAAkB15H,GACzB,OAAa,IAANA,EAAa24H,GAAcp1H,KAAKo2H,aAAcp2H,KAAK20H,MAAMn3H,KAAOf,EAAIuD,KAAKo2H,aAAa35H,EAAEiN,OAAS1J,KAAKo2H,aAG/G,SAASC,GAAoBC,EAAa14H,EAAQoiE,GAChD,IAAI54D,EACA4qH,EACA7G,EACA8G,EAAMqE,EAAYpE,oBAEtB,IAAKlyH,KAAKu2H,eAKR,IAJAv2H,KAAKu2H,eAAiB,GACtBv2H,KAAKw2H,oBAAsB,GAC3Bx2H,KAAKy2H,kBAAoB,GAEpBrvH,EAAI,EAAGA,EAAI,IAAKA,EACnB+jH,EAAM/D,EAAU,CAAC,IAAM,IAAI19G,IAAItC,GAC/BpH,KAAKy2H,kBAAkBrvH,GAAKpH,KAAK3E,YAAY8vH,EAAK,IAAI+G,oBACtDlyH,KAAKw2H,oBAAoBpvH,GAAKpH,KAAK5E,cAAc+vH,EAAK,IAAI+G,oBAC1DlyH,KAAKu2H,eAAenvH,GAAKpH,KAAK7E,SAASgwH,EAAK,IAAI+G,oBAIpD,OAAIlyD,EACa,SAAXpiE,GAEa,KADfo0H,EAAKrqH,GAAQ5H,KAAKC,KAAKu2H,eAAgBtE,IACpBD,EAAK,KACJ,QAAXp0H,GAEM,KADfo0H,EAAKrqH,GAAQ5H,KAAKC,KAAKw2H,oBAAqBvE,IACzBD,EAAK,MAGT,KADfA,EAAKrqH,GAAQ5H,KAAKC,KAAKy2H,kBAAmBxE,IACvBD,EAAK,KAGX,SAAXp0H,GAGU,KAFZo0H,EAAKrqH,GAAQ5H,KAAKC,KAAKu2H,eAAgBtE,MAQ3B,KAFZD,EAAKrqH,GAAQ5H,KAAKC,KAAKw2H,oBAAqBvE,MAO7B,KADfD,EAAKrqH,GAAQ5H,KAAKC,KAAKy2H,kBAAmBxE,IATjCD,EAUe,KACJ,QAAXp0H,GAGG,KAFZo0H,EAAKrqH,GAAQ5H,KAAKC,KAAKw2H,oBAAqBvE,MAQhC,KAFZD,EAAKrqH,GAAQ5H,KAAKC,KAAKu2H,eAAgBtE,MAOxB,KADfD,EAAKrqH,GAAQ5H,KAAKC,KAAKy2H,kBAAmBxE,IATjCD,EAUe,MAIZ,KAFZA,EAAKrqH,GAAQ5H,KAAKC,KAAKy2H,kBAAmBxE,MAQ9B,KAFZD,EAAKrqH,GAAQ5H,KAAKC,KAAKu2H,eAAgBtE,MAOxB,KADfD,EAAKrqH,GAAQ5H,KAAKC,KAAKw2H,oBAAqBvE,IATnCD,EAUe,KAK9B,SAAS0E,GAAoBJ,EAAa14H,EAAQoiE,GAChD,IAAI54D,EAAG+jH,EAAK0E,EAEZ,GAAI7vH,KAAK22H,oBACP,OAAON,GAAoBt2H,KAAKC,KAAMs2H,EAAa14H,EAAQoiE,GAU7D,IAPKhgE,KAAKu2H,iBACRv2H,KAAKu2H,eAAiB,GACtBv2H,KAAKy2H,kBAAoB,GACzBz2H,KAAKw2H,oBAAsB,GAC3Bx2H,KAAK42H,mBAAqB,IAGvBxvH,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAgBtB,GAdA+jH,EAAM/D,EAAU,CAAC,IAAM,IAAI19G,IAAItC,GAE3B44D,IAAWhgE,KAAK42H,mBAAmBxvH,KACrCpH,KAAK42H,mBAAmBxvH,GAAK,IAAId,OAAO,IAAMtG,KAAK7E,SAASgwH,EAAK,IAAIrtH,QAAQ,IAAK,QAAU,IAAK,KACjGkC,KAAKw2H,oBAAoBpvH,GAAK,IAAId,OAAO,IAAMtG,KAAK5E,cAAc+vH,EAAK,IAAIrtH,QAAQ,IAAK,QAAU,IAAK,KACvGkC,KAAKy2H,kBAAkBrvH,GAAK,IAAId,OAAO,IAAMtG,KAAK3E,YAAY8vH,EAAK,IAAIrtH,QAAQ,IAAK,QAAU,IAAK,MAGhGkC,KAAKu2H,eAAenvH,KACvByoH,EAAQ,IAAM7vH,KAAK7E,SAASgwH,EAAK,IAAM,KAAOnrH,KAAK5E,cAAc+vH,EAAK,IAAM,KAAOnrH,KAAK3E,YAAY8vH,EAAK,IACzGnrH,KAAKu2H,eAAenvH,GAAK,IAAId,OAAOupH,EAAM/xH,QAAQ,IAAK,IAAK,MAI1DkiE,GAAqB,SAAXpiE,GAAqBoC,KAAK42H,mBAAmBxvH,GAAGlJ,KAAKo4H,GACjE,OAAOlvH,EACF,GAAI44D,GAAqB,QAAXpiE,GAAoBoC,KAAKw2H,oBAAoBpvH,GAAGlJ,KAAKo4H,GACxE,OAAOlvH,EACF,GAAI44D,GAAqB,OAAXpiE,GAAmBoC,KAAKy2H,kBAAkBrvH,GAAGlJ,KAAKo4H,GACrE,OAAOlvH,EACF,IAAK44D,GAAUhgE,KAAKu2H,eAAenvH,GAAGlJ,KAAKo4H,GAChD,OAAOlvH,GAMb,SAASyvH,GAAgB/uH,GACvB,IAAK9H,KAAKyoH,UACR,OAAgB,MAAT3gH,EAAgB9H,KAAOkpH,IAGhC,IAAIx/G,EAAM1J,KAAK2pH,OAAS3pH,KAAK2oB,GAAGorG,YAAc/zH,KAAK2oB,GAAG5H,SAEtD,OAAa,MAATjZ,GACFA,EAAQmtH,GAAantH,EAAO9H,KAAKgsH,cAC1BhsH,KAAKsF,IAAIwC,EAAQ4B,EAAK,MAEtBA,EAIX,SAASotH,GAAsBhvH,GAC7B,IAAK9H,KAAKyoH,UACR,OAAgB,MAAT3gH,EAAgB9H,KAAOkpH,IAGhC,IAAI+K,GAAWj0H,KAAK0J,MAAQ,EAAI1J,KAAKgsH,aAAa2I,MAAMn3H,KAAO,EAC/D,OAAgB,MAATsK,EAAgBmsH,EAAUj0H,KAAKsF,IAAIwC,EAAQmsH,EAAS,KAG7D,SAAS8C,GAAmBjvH,GAC1B,IAAK9H,KAAKyoH,UACR,OAAgB,MAAT3gH,EAAgB9H,KAAOkpH,IAMhC,GAAa,MAATphH,EAAe,CACjB,IAAImsH,EAAUkB,GAAgBrtH,EAAO9H,KAAKgsH,cAC1C,OAAOhsH,KAAK0J,IAAI1J,KAAK0J,MAAQ,EAAIuqH,EAAUA,EAAU,GAErD,OAAOj0H,KAAK0J,OAAS,EAIzB,SAAS8rH,GAAczF,GACrB,OAAI/vH,KAAK22H,qBACF7P,EAAW9mH,KAAM,mBACpBg3H,GAAqBj3H,KAAKC,MAGxB+vH,EACK/vH,KAAKi3H,qBAELj3H,KAAKk3H,iBAGTpQ,EAAW9mH,KAAM,oBACpBA,KAAKk3H,eAAiBtB,IAGjB51H,KAAKi3H,sBAAwBlH,EAAW/vH,KAAKi3H,qBAAuBj3H,KAAKk3H,gBAIpF,SAAS3B,GAAmBxF,GAC1B,OAAI/vH,KAAK22H,qBACF7P,EAAW9mH,KAAM,mBACpBg3H,GAAqBj3H,KAAKC,MAGxB+vH,EACK/vH,KAAKm3H,0BAELn3H,KAAKo3H,sBAGTtQ,EAAW9mH,KAAM,yBACpBA,KAAKo3H,oBAAsBvB,IAGtB71H,KAAKm3H,2BAA6BpH,EAAW/vH,KAAKm3H,0BAA4Bn3H,KAAKo3H,qBAI9F,SAAS9B,GAAiBvF,GACxB,OAAI/vH,KAAK22H,qBACF7P,EAAW9mH,KAAM,mBACpBg3H,GAAqBj3H,KAAKC,MAGxB+vH,EACK/vH,KAAKq3H,wBAELr3H,KAAKs3H,oBAGTxQ,EAAW9mH,KAAM,uBACpBA,KAAKs3H,kBAAoBxB,IAGpB91H,KAAKq3H,yBAA2BtH,EAAW/vH,KAAKq3H,wBAA0Br3H,KAAKs3H,mBAI1F,SAASN,KACP,SAASjE,EAAUp0G,EAAGrhB,GACpB,OAAOA,EAAE0K,OAAS2W,EAAE3W,OAGtB,IAIIZ,EACA+jH,EACAoM,EACAC,EACAC,EARAC,EAAY,GACZ1E,EAAc,GACdC,EAAa,GACbC,EAAc,GAOlB,IAAK9rH,EAAI,EAAGA,EAAI,EAAGA,IAEjB+jH,EAAM/D,EAAU,CAAC,IAAM,IAAI19G,IAAItC,GAC/BmwH,EAAOrH,GAAYlwH,KAAK3E,YAAY8vH,EAAK,KACzCqM,EAAStH,GAAYlwH,KAAK5E,cAAc+vH,EAAK,KAC7CsM,EAAQvH,GAAYlwH,KAAK7E,SAASgwH,EAAK,KACvCuM,EAAU1pH,KAAKupH,GACfvE,EAAYhlH,KAAKwpH,GACjBvE,EAAWjlH,KAAKypH,GAChBvE,EAAYllH,KAAKupH,GACjBrE,EAAYllH,KAAKwpH,GACjBtE,EAAYllH,KAAKypH,GAKnBC,EAAU55F,KAAKi1F,GACfC,EAAYl1F,KAAKi1F,GACjBE,EAAWn1F,KAAKi1F,GAChBG,EAAYp1F,KAAKi1F,GACjB/yH,KAAKk3H,eAAiB,IAAI5wH,OAAO,KAAO4sH,EAAY98G,KAAK,KAAO,IAAK,KACrEpW,KAAKo3H,oBAAsBp3H,KAAKk3H,eAChCl3H,KAAKs3H,kBAAoBt3H,KAAKk3H,eAC9Bl3H,KAAKi3H,qBAAuB,IAAI3wH,OAAO,KAAO2sH,EAAW78G,KAAK,KAAO,IAAK,KAC1EpW,KAAKm3H,0BAA4B,IAAI7wH,OAAO,KAAO0sH,EAAY58G,KAAK,KAAO,IAAK,KAChFpW,KAAKq3H,wBAA0B,IAAI/wH,OAAO,KAAOoxH,EAAUthH,KAAK,KAAO,IAAK,KAI9E,SAASuhH,KACP,OAAO33H,KAAKiS,QAAU,IAAM,GAG9B,SAAS2lH,KACP,OAAO53H,KAAKiS,SAAW,GAmBzB,SAAS9I,GAASupC,EAAOmlF,GACvB/L,EAAep5E,EAAO,EAAG,GAAG,WAC1B,OAAO1yC,KAAKgsH,aAAa7iH,SAASnJ,KAAKiS,QAASjS,KAAKkS,UAAW2lH,MAWpE,SAASC,GAAc/H,EAAUl4G,GAC/B,OAAOA,EAAOkgH,eAuDhB,SAASC,GAAWlwH,GAGlB,MAAgD,OAAxCA,EAAQ,IAAIkK,cAAcD,OAAO,GAxF3C+5G,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,QAClCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG6L,IAClC7L,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG8L,IAClC9L,EAAe,MAAO,EAAG,GAAG,WAC1B,MAAO,GAAK6L,GAAQ9zH,MAAM7D,MAAQqrH,EAASrrH,KAAKkS,UAAW,MAE7D45G,EAAe,QAAS,EAAG,GAAG,WAC5B,MAAO,GAAK6L,GAAQ9zH,MAAM7D,MAAQqrH,EAASrrH,KAAKkS,UAAW,GAAKm5G,EAASrrH,KAAK+mB,UAAW,MAE3F+kG,EAAe,MAAO,EAAG,GAAG,WAC1B,MAAO,GAAK9rH,KAAKiS,QAAUo5G,EAASrrH,KAAKkS,UAAW,MAEtD45G,EAAe,QAAS,EAAG,GAAG,WAC5B,MAAO,GAAK9rH,KAAKiS,QAAUo5G,EAASrrH,KAAKkS,UAAW,GAAKm5G,EAASrrH,KAAK+mB,UAAW,MASpF5d,GAAS,KAAK,GACdA,GAAS,KAAK,GAEdgkH,GAAa,OAAQ,KAErBS,GAAgB,OAAQ,IAMxBgC,GAAc,IAAKkI,IACnBlI,GAAc,IAAKkI,IACnBlI,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,MAAOX,IACrBW,GAAc,QAASV,IACvBU,GAAc,MAAOX,IACrBW,GAAc,QAASV,IACvBqB,GAAc,CAAC,IAAK,MAAOO,IAC3BP,GAAc,CAAC,IAAK,OAAO,SAAUzoH,EAAOkwB,EAAO1a,GACjD,IAAI26G,EAAShK,GAAMnmH,GACnBkwB,EAAM84F,IAAmB,KAAXmH,EAAgB,EAAIA,KAEpC1H,GAAc,CAAC,IAAK,MAAM,SAAUzoH,EAAOkwB,EAAO1a,GAChDA,EAAO46G,MAAQ56G,EAAOusG,QAAQ3gH,KAAKpB,GACnCwV,EAAO66G,UAAYrwH,KAErByoH,GAAc,CAAC,IAAK,OAAO,SAAUzoH,EAAOkwB,EAAO1a,GACjD0a,EAAM84F,IAAQ7C,GAAMnmH,GACpBygH,EAAgBjrG,GAAQyrG,SAAU,KAEpCwH,GAAc,OAAO,SAAUzoH,EAAOkwB,EAAO1a,GAC3C,IAAI86G,EAAMtwH,EAAME,OAAS,EACzBgwB,EAAM84F,IAAQ7C,GAAMnmH,EAAM6zD,OAAO,EAAGy8D,IACpCpgG,EAAM+4F,IAAU9C,GAAMnmH,EAAM6zD,OAAOy8D,IACnC7P,EAAgBjrG,GAAQyrG,SAAU,KAEpCwH,GAAc,SAAS,SAAUzoH,EAAOkwB,EAAO1a,GAC7C,IAAI+6G,EAAOvwH,EAAME,OAAS,EACtBswH,EAAOxwH,EAAME,OAAS,EAC1BgwB,EAAM84F,IAAQ7C,GAAMnmH,EAAM6zD,OAAO,EAAG08D,IACpCrgG,EAAM+4F,IAAU9C,GAAMnmH,EAAM6zD,OAAO08D,EAAM,IACzCrgG,EAAMg5F,IAAU/C,GAAMnmH,EAAM6zD,OAAO28D,IACnC/P,EAAgBjrG,GAAQyrG,SAAU,KAEpCwH,GAAc,OAAO,SAAUzoH,EAAOkwB,EAAO1a,GAC3C,IAAI86G,EAAMtwH,EAAME,OAAS,EACzBgwB,EAAM84F,IAAQ7C,GAAMnmH,EAAM6zD,OAAO,EAAGy8D,IACpCpgG,EAAM+4F,IAAU9C,GAAMnmH,EAAM6zD,OAAOy8D,OAErC7H,GAAc,SAAS,SAAUzoH,EAAOkwB,EAAO1a,GAC7C,IAAI+6G,EAAOvwH,EAAME,OAAS,EACtBswH,EAAOxwH,EAAME,OAAS,EAC1BgwB,EAAM84F,IAAQ7C,GAAMnmH,EAAM6zD,OAAO,EAAG08D,IACpCrgG,EAAM+4F,IAAU9C,GAAMnmH,EAAM6zD,OAAO08D,EAAM,IACzCrgG,EAAMg5F,IAAU/C,GAAMnmH,EAAM6zD,OAAO28D,OASrC,IAAIC,GAA6B,gBAKjCC,GAAapK,GAAW,SAAS,GAEjC,SAASqK,GAAexmH,EAAOC,EAAS5I,GACtC,OAAI2I,EAAQ,GACH3I,EAAU,KAAO,KAEjBA,EAAU,KAAO,KAI5B,IAkBIovH,GAlBAC,GAAa,CACf98H,SAAUqvH,EACV5vH,eAAgBgxH,EAChB90G,YAAak1G,EACbtvH,QAASwvH,EACTzvH,uBAAwB0vH,EACxBzwH,aAAc2wH,EACd/xH,OAAQs2H,GACRp2H,YAAaq2H,GACbh0H,KAAMq3H,GACNz5H,SAAUs6H,GACVp6H,YAAas6H,GACbv6H,cAAes6H,GACfzsH,cAAesvH,IAGbK,GAAU,GACVC,GAAiB,GAGrB,SAASC,GAAaC,EAAMpuF,GAC1B,IAAIvjC,EACA4xH,EAAOtgH,KAAKkS,IAAImuG,EAAK/wH,OAAQ2iC,EAAK3iC,QAEtC,IAAKZ,EAAI,EAAGA,EAAI4xH,EAAM5xH,GAAK,EACzB,GAAI2xH,EAAK3xH,KAAOujC,EAAKvjC,GACnB,OAAOA,EAIX,OAAO4xH,EAGT,SAASC,GAAgBt2H,GACvB,OAAOA,EAAMA,EAAIqP,cAAclU,QAAQ,IAAK,KAAO6E,EAMrD,SAASu2H,GAAaC,GAOpB,IANA,IACIviH,EACAk6B,EACAj5B,EACA5c,EAJAmM,EAAI,EAMDA,EAAI+xH,EAAMnxH,QAAQ,CAMvB,IAJA4O,GADA3b,EAAQg+H,GAAgBE,EAAM/xH,IAAInM,MAAM,MAC9B+M,OAEV8oC,GADAA,EAAOmoF,GAAgBE,EAAM/xH,EAAI,KACnB0pC,EAAK71C,MAAM,KAAO,KAEzB2b,EAAI,GAAG,CAGZ,GAFAiB,EAASuhH,GAAWn+H,EAAM2M,MAAM,EAAGgP,GAAGR,KAAK,MAGzC,OAAOyB,EAGT,GAAIi5B,GAAQA,EAAK9oC,QAAU4O,GAAKkiH,GAAa79H,EAAO61C,IAASl6B,EAAI,EAE/D,MAGFA,IAGFxP,IAGF,OAAOsxH,GAGT,SAASU,GAAWv7G,GAClB,IAAIw7G,EAAY,KAGhB,QAAsBryH,IAAlB4xH,GAAQ/6G,IAAyC,qBAAX3V,GAA0BA,GAAUA,EAAOC,QACnF,IACEkxH,EAAYX,GAAaY,MAEzB,UAAe,KAAcz7G,GAC7B07G,GAAmBF,GACnB,MAAO3+G,GAGPk+G,GAAQ/6G,GAAQ,KAIpB,OAAO+6G,GAAQ/6G,GAMjB,SAAS07G,GAAmB52H,EAAKovC,GAC/B,IAAI3hC,EAiBJ,OAfIzN,IAEAyN,EADE42G,EAAYj1E,GACPh6B,GAAUpV,GAEV5H,GAAa4H,EAAKovC,MAKzB2mF,GAAetoH,GAMZsoH,GAAaY,MAGtB,SAASv+H,GAAa8iB,EAAMP,GAC1B,GAAe,OAAXA,EAAiB,CACnB,IAAIzF,EACAkzG,EAAe4N,GAGnB,GAFAr7G,EAAOk8G,KAAO37G,EAEO,MAAjB+6G,GAAQ/6G,GACV2sG,EAAgB,uBAAwB,2OACxCO,EAAe6N,GAAQ/6G,GAAM6sG,aACxB,GAA2B,MAAvBptG,EAAOm8G,aAChB,GAAoC,MAAhCb,GAAQt7G,EAAOm8G,cACjB1O,EAAe6N,GAAQt7G,EAAOm8G,cAAc/O,YACvC,CAGL,GAAc,OAFd7yG,EAASuhH,GAAW97G,EAAOm8G,eAazB,OARKZ,GAAev7G,EAAOm8G,gBACzBZ,GAAev7G,EAAOm8G,cAAgB,IAGxCZ,GAAev7G,EAAOm8G,cAAczrH,KAAK,CACvC6P,KAAMA,EACNP,OAAQA,IAEH,KAVPytG,EAAelzG,EAAO6yG,QA2B5B,OAZAkO,GAAQ/6G,GAAQ,IAAIotG,EAAOH,EAAaC,EAAcztG,IAElDu7G,GAAeh7G,IACjBg7G,GAAeh7G,GAAM7N,SAAQ,SAAU0D,GACrC3Y,GAAa2Y,EAAEmK,KAAMnK,EAAE4J,WAO3Bi8G,GAAmB17G,GACZ+6G,GAAQ/6G,GAIf,cADO+6G,GAAQ/6G,GACR,KAIX,SAAS67G,GAAa77G,EAAMP,GAC1B,GAAc,MAAVA,EAAgB,CAClB,IAAIzF,EACA8hH,EACA5O,EAAe4N,GAEE,MAAjBC,GAAQ/6G,IAA+C,MAA9B+6G,GAAQ/6G,GAAM47G,aAEzCb,GAAQ/6G,GAAMpY,IAAIqlH,EAAa8N,GAAQ/6G,GAAM6sG,QAASptG,KAKrC,OAFjBq8G,EAAYP,GAAWv7G,MAGrBktG,EAAe4O,EAAUjP,SAG3BptG,EAASwtG,EAAaC,EAAcztG,GAEnB,MAAbq8G,IAIFr8G,EAAOk8G,KAAO37G,IAGhBhG,EAAS,IAAIozG,EAAO3tG,IACbm8G,aAAeb,GAAQ/6G,GAC9B+6G,GAAQ/6G,GAAQhG,GAIlB0hH,GAAmB17G,QAGE,MAAjB+6G,GAAQ/6G,KACwB,MAA9B+6G,GAAQ/6G,GAAM47G,cAChBb,GAAQ/6G,GAAQ+6G,GAAQ/6G,GAAM47G,aAE1B57G,IAAS07G,MACXA,GAAmB17G,IAEK,MAAjB+6G,GAAQ/6G,WACV+6G,GAAQ/6G,IAKrB,OAAO+6G,GAAQ/6G,GAIjB,SAAS9F,GAAUpV,GACjB,IAAIkV,EAMJ,GAJIlV,GAAOA,EAAIknH,SAAWlnH,EAAIknH,QAAQyP,QACpC32H,EAAMA,EAAIknH,QAAQyP,QAGf32H,EACH,OAAO+1H,GAGT,IAAKhuF,EAAQ/nC,GAAM,CAIjB,GAFAkV,EAASuhH,GAAWz2H,GAGlB,OAAOkV,EAGTlV,EAAM,CAACA,GAGT,OAAOu2H,GAAav2H,GAGtB,SAASi3H,KACP,OAAOljH,EAAKkiH,IAGd,SAASrsE,GAAc9vD,GACrB,IAAIkrH,EACAhpG,EAAIliB,EAAE2Q,GAoBV,OAlBIuR,IAAsC,IAAjC4pG,EAAgB9rH,GAAGkrH,WAC1BA,EAAWhpG,EAAEiyG,IAAS,GAAKjyG,EAAEiyG,IAAS,GAAKA,GAAQjyG,EAAEkyG,IAAQ,GAAKlyG,EAAEkyG,IAAQztG,GAAYzE,EAAEgyG,IAAOhyG,EAAEiyG,KAAUC,GAAOlyG,EAAEmyG,IAAQ,GAAKnyG,EAAEmyG,IAAQ,IAAkB,KAAZnyG,EAAEmyG,MAA+B,IAAdnyG,EAAEoyG,KAA+B,IAAdpyG,EAAEqyG,KAAoC,IAAnBryG,EAAEsyG,KAAsBH,GAAOnyG,EAAEoyG,IAAU,GAAKpyG,EAAEoyG,IAAU,GAAKA,GAASpyG,EAAEqyG,IAAU,GAAKryG,EAAEqyG,IAAU,GAAKA,GAASryG,EAAEsyG,IAAe,GAAKtyG,EAAEsyG,IAAe,IAAMA,IAAe,EAEzX1I,EAAgB9rH,GAAGo9H,qBAAuBlS,EAAWgJ,IAAQhJ,EAAWkJ,MAC1ElJ,EAAWkJ,IAGTtI,EAAgB9rH,GAAGq9H,iBAAgC,IAAdnS,IACvCA,EAAWuJ,IAGT3I,EAAgB9rH,GAAGs9H,mBAAkC,IAAdpS,IACzCA,EAAWwJ,IAGb5I,EAAgB9rH,GAAGkrH,SAAWA,GAGzBlrH,EAKT,IAAIu9H,GAAmB,iJACnBC,GAAgB,6IAChBC,GAAU,wBACVC,GAAW,CAAC,CAAC,eAAgB,uBAAwB,CAAC,aAAc,mBAAoB,CAAC,eAAgB,kBAAmB,CAAC,aAAc,eAAe,GAAQ,CAAC,WAAY,eAAgB,CAAC,UAAW,cAAc,GAAQ,CAAC,aAAc,cAAe,CAAC,WAAY,SAAU,CAAC,aAAc,eAAgB,CAAC,YAAa,eAAe,GAAQ,CAAC,UAAW,SAAU,CAAC,SAAU,SAAS,GAAQ,CAAC,OAAQ,SAAS,IAElaC,GAAW,CAAC,CAAC,gBAAiB,uBAAwB,CAAC,gBAAiB,sBAAuB,CAAC,WAAY,kBAAmB,CAAC,QAAS,aAAc,CAAC,cAAe,qBAAsB,CAAC,cAAe,oBAAqB,CAAC,SAAU,gBAAiB,CAAC,OAAQ,YAAa,CAAC,KAAM,SACvRC,GAAkB,qBAEtBhS,GAAU,0LACNiS,GAAa,CACfC,GAAI,EACJC,IAAK,EACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,IACLC,KAAK,KAGP,SAASC,GAAc39G,GACrB,IAAIlW,EACAygB,EAGAqzG,EACAp7G,EACAq7G,EACAC,EALA5xH,EAAS8T,EAAO0N,GAChB7jB,EAAQ6yH,GAAiBzzH,KAAKiD,IAAWywH,GAAc1zH,KAAKiD,GAMhE,GAAIrC,EAAO,CAGT,IAFAohH,EAAgBjrG,GAAQ4qG,KAAM,EAEzB9gH,EAAI,EAAGygB,EAAIsyG,GAASnyH,OAAQZ,EAAIygB,EAAGzgB,IACtC,GAAI+yH,GAAS/yH,GAAG,GAAGb,KAAKY,EAAM,IAAK,CACjC2Y,EAAaq6G,GAAS/yH,GAAG,GACzB8zH,GAA+B,IAAnBf,GAAS/yH,GAAG,GACxB,MAIJ,GAAkB,MAAd0Y,EAEF,YADAxC,EAAOorG,UAAW,GAIpB,GAAIvhH,EAAM,GAAI,CACZ,IAAKC,EAAI,EAAGygB,EAAIuyG,GAASpyH,OAAQZ,EAAIygB,EAAGzgB,IACtC,GAAIgzH,GAAShzH,GAAG,GAAGb,KAAKY,EAAM,IAAK,CAEjCg0H,GAAch0H,EAAM,IAAM,KAAOizH,GAAShzH,GAAG,GAC7C,MAIJ,GAAkB,MAAd+zH,EAEF,YADA79G,EAAOorG,UAAW,GAKtB,IAAKwS,GAA2B,MAAdC,EAEhB,YADA79G,EAAOorG,UAAW,GAIpB,GAAIvhH,EAAM,GAAI,CACZ,IAAI+yH,GAAQ3zH,KAAKY,EAAM,IAIrB,YADAmW,EAAOorG,UAAW,GAFlB0S,EAAW,IAOf99G,EAAOmsG,GAAK3pG,GAAcq7G,GAAc,KAAOC,GAAY,IAC3DC,GAA0B/9G,QAE1BA,EAAOorG,UAAW,EAItB,SAAS4S,GAA0BC,EAASC,EAAUC,EAAQC,EAASC,EAAWC,GAChF,IAAIjqH,EAAS,CAACkqH,GAAeN,GAAUhK,GAAyB5pH,QAAQ6zH,GAAWpjH,SAASqjH,EAAQ,IAAKrjH,SAASsjH,EAAS,IAAKtjH,SAASujH,EAAW,KAMpJ,OAJIC,GACFjqH,EAAO3D,KAAKoK,SAASwjH,EAAW,KAG3BjqH,EAGT,SAASkqH,GAAeN,GACtB,IAAI/zG,EAAOpP,SAASmjH,EAAS,IAE7B,OAAI/zG,GAAQ,GACH,IAAOA,EACLA,GAAQ,IACV,KAAOA,EAGTA,EAGT,SAASs0G,GAAkBv/H,GAEzB,OAAOA,EAAEuB,QAAQ,oBAAqB,KAAKA,QAAQ,WAAY,KAAKA,QAAQ,SAAU,IAAIA,QAAQ,SAAU,IAG9G,SAASi+H,GAAaC,EAAYC,EAAa3+G,GAC7C,OAAI0+G,GAEoBtG,GAA2B/tH,QAAQq0H,KACrC,IAAI9jH,KAAK+jH,EAAY,GAAIA,EAAY,GAAIA,EAAY,IAAIl7G,WAG3EwnG,EAAgBjrG,GAAQgrG,iBAAkB,EAC1ChrG,EAAOorG,UAAW,GACX,GAOb,SAASwT,GAAgBC,EAAWC,EAAgBC,GAClD,GAAIF,EACF,OAAO7B,GAAW6B,GACb,GAAIC,EAET,OAAO,EAEP,IAAIE,EAAKlkH,SAASikH,EAAW,IACzB5/H,EAAI6/H,EAAK,IAEb,OADSA,EAAK7/H,GAAK,IACR,GAAKA,EAKpB,SAAS8/H,GAAkBj/G,GACzB,IACIk/G,EADAr1H,EAAQkhH,GAAQ9hH,KAAKu1H,GAAkBx+G,EAAO0N,KAGlD,GAAI7jB,EAAO,CAGT,GAFAq1H,EAAclB,GAA0Bn0H,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAE3F40H,GAAa50H,EAAM,GAAIq1H,EAAal/G,GACvC,OAGFA,EAAOlQ,GAAKovH,EACZl/G,EAAOosG,KAAOwS,GAAgB/0H,EAAM,GAAIA,EAAM,GAAIA,EAAM,KACxDmW,EAAOqL,GAAK8qG,GAAc5vH,MAAM,KAAMyZ,EAAOlQ,IAE7CkQ,EAAOqL,GAAG8zG,cAAcn/G,EAAOqL,GAAG+zG,gBAAkBp/G,EAAOosG,MAE3DnB,EAAgBjrG,GAAQ+qG,SAAU,OAElC/qG,EAAOorG,UAAW,EAKtB,SAASiU,GAAiBr/G,GACxB,IAAIsM,EAAUywG,GAAgB9zH,KAAK+W,EAAO0N,IAE1B,OAAZpB,GAKJqxG,GAAc39G,IAEU,IAApBA,EAAOorG,kBACFprG,EAAOorG,SAKhB6T,GAAkBj/G,IAEM,IAApBA,EAAOorG,kBACFprG,EAAOorG,SAKZprG,EAAOwrG,QACTxrG,EAAOorG,UAAW,EAGlBtpF,EAAMw9F,wBAAwBt/G,MAxB9BA,EAAOqL,GAAK,IAAIzQ,MAAM0R,EAAQ,IAgClC,SAAS9K,GAASH,EAAGrhB,EAAG2rB,GACtB,OAAS,MAALtK,EACKA,EAGA,MAALrhB,EACKA,EAGF2rB,EAGT,SAAS4zG,GAAiBv/G,GAExB,IAAIw/G,EAAW,IAAI5kH,KAAKknB,EAAM/kB,OAE9B,OAAIiD,EAAOy/G,QACF,CAACD,EAASnJ,iBAAkBmJ,EAASE,cAAeF,EAASG,cAG/D,CAACH,EAAS77G,cAAe67G,EAAS30G,WAAY20G,EAASh8G,WAOhE,SAASo8G,GAAgB5/G,GACvB,IAAIlW,EACA4R,EAEAmkH,EACAC,EACAC,EAHAv1H,EAAQ,GAKZ,IAAIwV,EAAOqL,GAAX,CA4BA,IAxBAw0G,EAAcN,GAAiBv/G,GAE3BA,EAAOmzG,IAAyB,MAAnBnzG,EAAOlQ,GAAGyjH,KAAqC,MAApBvzG,EAAOlQ,GAAGwjH,KACpD0M,GAAsBhgH,GAIC,MAArBA,EAAOigH,aACTF,EAAYv+G,GAASxB,EAAOlQ,GAAGujH,IAAOwM,EAAYxM,MAE9CrzG,EAAOigH,WAAapK,GAAWkK,IAAoC,IAAtB//G,EAAOigH,cACtDhV,EAAgBjrG,GAAQu8G,oBAAqB,GAG/C7gH,EAAOy6G,GAAc4J,EAAW,EAAG//G,EAAOigH,YAC1CjgH,EAAOlQ,GAAGwjH,IAAS53G,EAAKgkH,cACxB1/G,EAAOlQ,GAAGyjH,IAAQ73G,EAAKikH,cAQpB71H,EAAI,EAAGA,EAAI,GAAqB,MAAhBkW,EAAOlQ,GAAGhG,KAAcA,EAC3CkW,EAAOlQ,GAAGhG,GAAKU,EAAMV,GAAK+1H,EAAY/1H,GAIxC,KAAOA,EAAI,EAAGA,IACZkW,EAAOlQ,GAAGhG,GAAKU,EAAMV,GAAqB,MAAhBkW,EAAOlQ,GAAGhG,GAAmB,IAANA,EAAU,EAAI,EAAIkW,EAAOlQ,GAAGhG,GAIvD,KAApBkW,EAAOlQ,GAAG0jH,KAAsC,IAAtBxzG,EAAOlQ,GAAG2jH,KAAuC,IAAtBzzG,EAAOlQ,GAAG4jH,KAA4C,IAA3B1zG,EAAOlQ,GAAG6jH,MAC5F3zG,EAAOkgH,UAAW,EAClBlgH,EAAOlQ,GAAG0jH,IAAQ,GAGpBxzG,EAAOqL,IAAMrL,EAAOy/G,QAAUtJ,GAAgBF,IAAY1vH,MAAM,KAAMiE,GACtEs1H,EAAkB9/G,EAAOy/G,QAAUz/G,EAAOqL,GAAGorG,YAAcz2G,EAAOqL,GAAG5H,SAGlD,MAAfzD,EAAOosG,MACTpsG,EAAOqL,GAAG8zG,cAAcn/G,EAAOqL,GAAG+zG,gBAAkBp/G,EAAOosG,MAGzDpsG,EAAOkgH,WACTlgH,EAAOlQ,GAAG0jH,IAAQ,IAIhBxzG,EAAOmzG,IAA6B,qBAAhBnzG,EAAOmzG,GAAG5zH,GAAqBygB,EAAOmzG,GAAG5zH,IAAMugI,IACrE7U,EAAgBjrG,GAAQgrG,iBAAkB,IAI9C,SAASgV,GAAsBhgH,GAC7B,IAAIrI,EAAGwoH,EAAUlgI,EAAM02H,EAASz2H,EAAKC,EAAKigI,EAAMC,EAAiBC,EAGrD,OAFZ3oH,EAAIqI,EAAOmzG,IAELoN,IAAqB,MAAP5oH,EAAEmS,GAAoB,MAAPnS,EAAEoyD,GACnC7pE,EAAM,EACNC,EAAM,EAKNggI,EAAW3+G,GAAS7J,EAAE4oH,GAAIvgH,EAAOlQ,GAAGujH,IAAO0D,GAAWyJ,KAAe,EAAG,GAAGt2G,MAC3EjqB,EAAOuhB,GAAS7J,EAAEmS,EAAG,KACrB6sG,EAAUn1G,GAAS7J,EAAEoyD,EAAG,IAEV,GAAK4sD,EAAU,KAC3B0J,GAAkB,KAGpBngI,EAAM8f,EAAOusG,QAAQ8K,MAAMn3H,IAC3BC,EAAM6f,EAAOusG,QAAQ8K,MAAMl3H,IAC3BmgI,EAAUvJ,GAAWyJ,KAAetgI,EAAKC,GACzCggI,EAAW3+G,GAAS7J,EAAE8oH,GAAIzgH,EAAOlQ,GAAGujH,IAAOiN,EAAQp2G,MAEnDjqB,EAAOuhB,GAAS7J,EAAEA,EAAG2oH,EAAQrgI,MAElB,MAAP0X,EAAEpY,IAEJo3H,EAAUh/G,EAAEpY,GAEE,GAAKo3H,EAAU,KAC3B0J,GAAkB,GAEJ,MAAP1oH,EAAEyF,GAEXu5G,EAAUh/G,EAAEyF,EAAIld,GAEZyX,EAAEyF,EAAI,GAAKzF,EAAEyF,EAAI,KACnBijH,GAAkB,IAIpB1J,EAAUz2H,GAIVD,EAAO,GAAKA,EAAOi3H,GAAYiJ,EAAUjgI,EAAKC,GAChD8qH,EAAgBjrG,GAAQw8G,gBAAiB,EACb,MAAnB6D,EACTpV,EAAgBjrG,GAAQy8G,kBAAmB,GAE3C2D,EAAO1J,GAAmByJ,EAAUlgI,EAAM02H,EAASz2H,EAAKC,GACxD6f,EAAOlQ,GAAGujH,IAAQ+M,EAAKl2G,KACvBlK,EAAOigH,WAAaG,EAAKtJ,WAW7B,SAASiH,GAA0B/9G,GAEjC,GAAIA,EAAOmsG,KAAOrqF,EAAM4+F,SAKxB,GAAI1gH,EAAOmsG,KAAOrqF,EAAM6+F,SAAxB,CAKA3gH,EAAOlQ,GAAK,GACZm7G,EAAgBjrG,GAAQkqG,OAAQ,EAEhC,IACIpgH,EACA60H,EACAlpF,EACAL,EACAwrF,EAGA9V,EARA5+G,EAAS,GAAK8T,EAAO0N,GAMrBmzG,EAAe30H,EAAOxB,OACtBo2H,EAAyB,EAI7B,IAFArrF,EAASq5E,EAAa9uG,EAAOmsG,GAAInsG,EAAOusG,SAAS1iH,MAAMukH,IAAqB,GAEvEtkH,EAAI,EAAGA,EAAI2rC,EAAO/qC,OAAQZ,IAC7BsrC,EAAQK,EAAO3rC,IACf60H,GAAezyH,EAAOrC,MAAM6oH,GAAsBt9E,EAAOp1B,KAAY,IAAI,OAGvE4gH,EAAU10H,EAAOmyD,OAAO,EAAGnyD,EAAO7B,QAAQs0H,KAE9Bj0H,OAAS,GACnBugH,EAAgBjrG,GAAQoqG,YAAY15G,KAAKkwH,GAG3C10H,EAASA,EAAO5B,MAAM4B,EAAO7B,QAAQs0H,GAAeA,EAAYj0H,QAChEo2H,GAA0BnC,EAAYj0H,QAIpC6jH,EAAqBn5E,IACnBupF,EACF1T,EAAgBjrG,GAAQkqG,OAAQ,EAEhCe,EAAgBjrG,GAAQmqG,aAAaz5G,KAAK0kC,GAG5Cg+E,GAAwBh+E,EAAOupF,EAAa3+G,IACnCA,EAAOwrG,UAAYmT,GAC5B1T,EAAgBjrG,GAAQmqG,aAAaz5G,KAAK0kC,GAK9C61E,EAAgBjrG,GAAQsqG,cAAgBuW,EAAeC,EAEnD50H,EAAOxB,OAAS,GAClBugH,EAAgBjrG,GAAQoqG,YAAY15G,KAAKxE,GAIvC8T,EAAOlQ,GAAG0jH,KAAS,KAA0C,IAApCvI,EAAgBjrG,GAAQyrG,SAAoBzrG,EAAOlQ,GAAG0jH,IAAQ,IACzFvI,EAAgBjrG,GAAQyrG,aAAU/hH,GAGpCuhH,EAAgBjrG,GAAQ6qG,gBAAkB7qG,EAAOlQ,GAAGxF,MAAM,GAC1D2gH,EAAgBjrG,GAAQnU,SAAWmU,EAAO66G,UAE1C76G,EAAOlQ,GAAG0jH,IAAQuN,GAAgB/gH,EAAOusG,QAASvsG,EAAOlQ,GAAG0jH,IAAOxzG,EAAO66G,WAI9D,QAFZ/P,EAAMG,EAAgBjrG,GAAQ8qG,OAG5B9qG,EAAOlQ,GAAGujH,IAAQrzG,EAAOusG,QAAQyU,gBAAgBlW,EAAK9qG,EAAOlQ,GAAGujH,MAGlEuM,GAAgB5/G,GAChBivC,GAAcjvC,QAvEZi/G,GAAkBj/G,QALlB29G,GAAc39G,GA+ElB,SAAS+gH,GAAgBxmH,EAAQzO,EAAMD,GACrC,IAAIo1H,EAEJ,OAAgB,MAAZp1H,EAEKC,EAGkB,MAAvByO,EAAO6vB,aACF7vB,EAAO6vB,aAAat+B,EAAMD,GACT,MAAf0O,EAAO3O,OAEhBq1H,EAAO1mH,EAAO3O,KAAKC,KAEPC,EAAO,KACjBA,GAAQ,IAGLm1H,GAAiB,KAATn1H,IACXA,EAAO,GAGFA,GAGAA,EAKX,SAASo1H,GAAyBlhH,GAChC,IAAImhH,EACAC,EACAC,EACAv3H,EACAw3H,EACAC,EACAC,GAAoB,EAExB,GAAyB,IAArBxhH,EAAOmsG,GAAGzhH,OAGZ,OAFAugH,EAAgBjrG,GAAQ0qG,eAAgB,OACxC1qG,EAAOqL,GAAK,IAAIzQ,KAAKgxG,MAIvB,IAAK9hH,EAAI,EAAGA,EAAIkW,EAAOmsG,GAAGzhH,OAAQZ,IAChCw3H,EAAe,EACfC,GAAmB,EACnBJ,EAAanV,EAAW,GAAIhsG,GAEN,MAAlBA,EAAOy/G,UACT0B,EAAW1B,QAAUz/G,EAAOy/G,SAG9B0B,EAAWhV,GAAKnsG,EAAOmsG,GAAGriH,GAC1Bi0H,GAA0BoD,GAEtBhW,EAAQgW,KACVI,GAAmB,GAIrBD,GAAgBrW,EAAgBkW,GAAY7W,cAE5CgX,GAAkE,GAAlDrW,EAAgBkW,GAAYhX,aAAaz/G,OACzDugH,EAAgBkW,GAAYM,MAAQH,EAE/BE,EAUCF,EAAeD,IACjBA,EAAcC,EACdF,EAAaD,IAXI,MAAfE,GAAuBC,EAAeD,GAAeE,KACvDF,EAAcC,EACdF,EAAaD,EAETI,IACFC,GAAoB,IAW5B33F,EAAO7pB,EAAQohH,GAAcD,GAG/B,SAASO,GAAiB1hH,GACxB,IAAIA,EAAOqL,GAAX,CAIA,IAAIvhB,EAAImmH,GAAqBjwG,EAAO0N,IAChCi0G,OAAsBj4H,IAAVI,EAAEsC,IAAoBtC,EAAE4R,KAAO5R,EAAEsC,IACjD4T,EAAOlQ,GAAK4b,EAAI,CAAC5hB,EAAEogB,KAAMpgB,EAAEoL,MAAOysH,EAAW73H,EAAEgC,KAAMhC,EAAEiC,OAAQjC,EAAEiqC,OAAQjqC,EAAE83H,cAAc,SAAUpkH,GACjG,OAAOA,GAAO1C,SAAS0C,EAAK,OAE9BoiH,GAAgB5/G,IAGlB,SAAS6hH,GAAiB7hH,GACxB,IAAI45B,EAAM,IAAI4yE,EAAOv9D,GAAc6yE,GAAc9hH,KAQjD,OANI45B,EAAIsmF,WAENtmF,EAAI5xC,IAAI,EAAG,KACX4xC,EAAIsmF,cAAWx2H,GAGVkwC,EAGT,SAASkoF,GAAc9hH,GACrB,IAAIxV,EAAQwV,EAAO0N,GACfptB,EAAS0f,EAAOmsG,GAGpB,OAFAnsG,EAAOusG,QAAUvsG,EAAOusG,SAAW9xG,GAAUuF,EAAOqwB,IAEtC,OAAV7lC,QAA6Bd,IAAXpJ,GAAkC,KAAVkK,EACrCmhH,EAAc,CACnBpB,WAAW,KAIM,kBAAV//G,IACTwV,EAAO0N,GAAKljB,EAAQwV,EAAOusG,QAAQtgH,SAASzB,IAG1CkiH,EAASliH,GACJ,IAAIgiH,EAAOv9D,GAAczkD,KACvBo/G,EAAOp/G,GAChBwV,EAAOqL,GAAK7gB,EACH4iC,EAAQ9sC,GACjB4gI,GAAyBlhH,GAChB1f,EACTy9H,GAA0B/9G,GAE1B+hH,GAAgB/hH,GAGbmrG,EAAQnrG,KACXA,EAAOqL,GAAK,MAGPrL,IAGT,SAAS+hH,GAAgB/hH,GACvB,IAAIxV,EAAQwV,EAAO0N,GAEfg8F,EAAYl/G,GACdwV,EAAOqL,GAAK,IAAIzQ,KAAKknB,EAAM/kB,OAClB6sG,EAAOp/G,GAChBwV,EAAOqL,GAAK,IAAIzQ,KAAKpQ,EAAMq/G,WACD,kBAAVr/G,EAChB60H,GAAiBr/G,GACRotB,EAAQ5iC,IACjBwV,EAAOlQ,GAAK4b,EAAIlhB,EAAMF,MAAM,IAAI,SAAUkT,GACxC,OAAO1C,SAAS0C,EAAK,OAEvBoiH,GAAgB5/G,IACPlE,EAAStR,GAClBk3H,GAAiB1hH,GACR2pG,EAASn/G,GAElBwV,EAAOqL,GAAK,IAAIzQ,KAAKpQ,GAErBs3B,EAAMw9F,wBAAwBt/G,GAIlC,SAAS+pG,GAAiBv/G,EAAOlK,EAAQia,EAAQmoD,EAAQs/D,GACvD,IAAIr2G,EAAI,GAwBR,OAtBe,IAAXrrB,IAA8B,IAAXA,IACrBoiE,EAASpiE,EACTA,OAASoJ,IAGI,IAAX6Q,IAA8B,IAAXA,IACrBmoD,EAASnoD,EACTA,OAAS7Q,IAGPoS,EAAStR,IAAUi/G,EAAcj/G,IAAU4iC,EAAQ5iC,IAA2B,IAAjBA,EAAME,UACrEF,OAAQd,GAKViiB,EAAEugG,kBAAmB,EACrBvgG,EAAE8zG,QAAU9zG,EAAE0gG,OAAS2V,EACvBr2G,EAAE0kB,GAAK91B,EACPoR,EAAE+B,GAAKljB,EACPmhB,EAAEwgG,GAAK7rH,EACPqrB,EAAE6/F,QAAU9oD,EACLm/D,GAAiBl2G,GAG1B,SAAS60G,GAAYh2H,EAAOlK,EAAQia,EAAQmoD,GAC1C,OAAOqnD,GAAiBv/G,EAAOlK,EAAQia,EAAQmoD,GAAQ,GA7bzD5gC,EAAMw9F,wBAA0BxS,EAAU,kVAAiW,SAAU9sG,GACnZA,EAAOqL,GAAK,IAAIzQ,KAAKoF,EAAO0N,IAAM1N,EAAOy/G,QAAU,OAAS,QA6J9D39F,EAAM4+F,SAAW,aAGjB5+F,EAAM6+F,SAAW,aA+RjB,IAAIsB,GAAenV,EAAU,sGAAsG,WACjI,IAAIoV,EAAQ1B,GAAYj6H,MAAM,KAAMC,WAEpC,OAAI9D,KAAKyoH,WAAa+W,EAAM/W,UACnB+W,EAAQx/H,KAAOA,KAAOw/H,EAEtBvW,OAGPwW,GAAerV,EAAU,sGAAsG,WACjI,IAAIoV,EAAQ1B,GAAYj6H,MAAM,KAAMC,WAEpC,OAAI9D,KAAKyoH,WAAa+W,EAAM/W,UACnB+W,EAAQx/H,KAAOA,KAAOw/H,EAEtBvW,OAQX,SAASyW,GAAOv1G,EAAIw1G,GAClB,IAAIzoF,EAAK9vC,EAMT,GAJuB,IAAnBu4H,EAAQ33H,QAAgB0iC,EAAQi1F,EAAQ,MAC1CA,EAAUA,EAAQ,KAGfA,EAAQ33H,OACX,OAAO81H,KAKT,IAFA5mF,EAAMyoF,EAAQ,GAETv4H,EAAI,EAAGA,EAAIu4H,EAAQ33H,SAAUZ,EAC3Bu4H,EAAQv4H,GAAGqhH,YAAakX,EAAQv4H,GAAG+iB,GAAI+sB,KAC1CA,EAAMyoF,EAAQv4H,IAIlB,OAAO8vC,EAIT,SAAStsB,KAEP,OAAO80G,GAAO,WADH,GAAG93H,MAAM7H,KAAK+D,UAAW,IAItC,SAAS+mB,KAEP,OAAO60G,GAAO,UADH,GAAG93H,MAAM7H,KAAK+D,UAAW,IAItC,IAAIuW,GAAM,WACR,OAAOnC,KAAKmC,IAAMnC,KAAKmC,OAAS,IAAInC,MAGlC0nH,GAAW,CAAC,OAAQ,UAAW,QAAS,OAAQ,MAAO,OAAQ,SAAU,SAAU,eAEvF,SAASC,GAAgBpjI,GACvB,IAAIkG,EAEAyE,EADA04H,GAAiB,EAGrB,IAAKn9H,KAAOlG,EACV,GAAIqqH,EAAWrqH,EAAGkG,MAA2C,IAAjCgF,GAAQ5H,KAAK6/H,GAAUj9H,IAA0B,MAAVlG,EAAEkG,IAAiBwV,MAAM1b,EAAEkG,KAC5F,OAAO,EAIX,IAAKyE,EAAI,EAAGA,EAAIw4H,GAAS53H,SAAUZ,EACjC,GAAI3K,EAAEmjI,GAASx4H,IAAK,CAClB,GAAI04H,EACF,OAAO,EAGLr5G,WAAWhqB,EAAEmjI,GAASx4H,OAAS6mH,GAAMxxH,EAAEmjI,GAASx4H,OAClD04H,GAAiB,GAKvB,OAAO,EAGT,SAASC,KACP,OAAO//H,KAAK0oH,SAGd,SAASsX,KACP,OAAOC,GAAe/W,KAGxB,SAASgX,GAASp1G,GAChB,IAAI4iG,EAAkBH,GAAqBziG,GACvCq1G,EAAQzS,EAAgBlmG,MAAQ,EAChC44G,EAAW1S,EAAgB2S,SAAW,EACtCrlI,EAAS0yH,EAAgBl7G,OAAS,EAClC8tH,EAAQ5S,EAAgBnwH,MAAQmwH,EAAgB6S,SAAW,EAC3DjzG,EAAOogG,EAAgBhkH,KAAO,EAC9BuI,EAAQy7G,EAAgBtkH,MAAQ,EAChC8I,EAAUw7G,EAAgBrkH,QAAU,EACpC0d,EAAU2mG,EAAgBr8E,QAAU,EACpCmvF,EAAe9S,EAAgBwR,aAAe,EAClDl/H,KAAK0oH,SAAWmX,GAAgBnS,GAEhC1tH,KAAKygI,eAAiBD,EAAyB,IAAVz5G,EAC3B,IAAV7U,EACQ,IAARD,EAAe,GAAK,GAIpBjS,KAAK0gI,OAASpzG,EAAe,EAARgzG,EAIrBtgI,KAAK4xH,SAAW52H,EAAoB,EAAXolI,EAAuB,GAARD,EACxCngI,KAAK2gI,MAAQ,GACb3gI,KAAK6pH,QAAU9xG,KAEf/X,KAAK4gI,UAGP,SAASC,GAAW/lH,GAClB,OAAOA,aAAeolH,GAGxB,SAASY,GAASzjI,GAChB,OAAIA,EAAS,GACuB,EAA3Bqb,KAAKwI,OAAO,EAAI7jB,GAEhBqb,KAAKwI,MAAM7jB,GAKtB,SAAS0jI,GAAcC,EAAQC,EAAQC,GACrC,IAGI95H,EAHA2/B,EAAMruB,KAAKkS,IAAIo2G,EAAOh5H,OAAQi5H,EAAOj5H,QACrCm5H,EAAazoH,KAAKC,IAAIqoH,EAAOh5H,OAASi5H,EAAOj5H,QAC7Co5H,EAAQ,EAGZ,IAAKh6H,EAAI,EAAGA,EAAI2/B,EAAK3/B,KACf85H,GAAeF,EAAO55H,KAAO65H,EAAO75H,KAAO85H,GAAejT,GAAM+S,EAAO55H,MAAQ6mH,GAAMgT,EAAO75H,MAC9Fg6H,IAIJ,OAAOA,EAAQD,EAIjB,SAASptG,GAAO2e,EAAO74B,GACrBiyG,EAAep5E,EAAO,EAAG,GAAG,WAC1B,IAAI3e,EAAS/zB,KAAKqhI,YACdC,EAAO,IAOX,OALIvtG,EAAS,IACXA,GAAUA,EACVutG,EAAO,KAGFA,EAAOjW,KAAYt3F,EAAS,IAAK,GAAKla,EAAYwxG,IAAWt3F,EAAS,GAAI,MAIrFA,GAAO,IAAK,KACZA,GAAO,KAAM,IAEb67F,GAAc,IAAKH,IACnBG,GAAc,KAAMH,IACpBc,GAAc,CAAC,IAAK,OAAO,SAAUzoH,EAAOkwB,EAAO1a,GACjDA,EAAOy/G,SAAU,EACjBz/G,EAAOosG,KAAO6X,GAAiB9R,GAAkB3nH,MAMnD,IAAI05H,GAAc,kBAElB,SAASD,GAAiBE,EAASj4H,GACjC,IAEIk4H,EACAxvH,EAHA+pC,GAAWzyC,GAAU,IAAIrC,MAAMs6H,GAKnC,OAAgB,OAAZxlF,EACK,KAMU,KADnB/pC,EAAuB,IADvBwvH,IADQzlF,EAAQA,EAAQj0C,OAAS,IAAM,IACtB,IAAIb,MAAMq6H,KAAgB,CAAC,IAAK,EAAG,IAClC,GAAWvT,GAAMyT,EAAM,KAClB,EAAiB,MAAbA,EAAM,GAAaxvH,GAAWA,EAI3D,SAASyvH,GAAgB75H,EAAO85H,GAC9B,IAAI1qF,EAAK5+B,EAET,OAAIspH,EAAMjY,QACRzyE,EAAM0qF,EAAMC,QACZvpH,GAAQ0xG,EAASliH,IAAUo/G,EAAOp/G,GAASA,EAAMq/G,UAAY2W,GAAYh2H,GAAOq/G,WAAajwE,EAAIiwE,UAEjGjwE,EAAIvuB,GAAGm5G,QAAQ5qF,EAAIvuB,GAAGw+F,UAAY7uG,GAElC8mB,EAAM2qF,aAAa7yE,GAAK,GACjBA,GAEA4mF,GAAYh2H,GAAOi6H,QAI9B,SAASC,GAAcvlI,GAGrB,OAAQic,KAAKwI,MAAMzkB,EAAEksB,GAAGs5G,qBAmB1B,SAASC,GAAap6H,EAAOq6H,EAAeC,GAC1C,IACIC,EADAtuG,EAAS/zB,KAAK4pH,SAAW,EAG7B,IAAK5pH,KAAKyoH,UACR,OAAgB,MAAT3gH,EAAgB9H,KAAOkpH,IAGhC,GAAa,MAATphH,EAAe,CACjB,GAAqB,kBAAVA,GAGT,GAAc,QAFdA,EAAQy5H,GAAiB9R,GAAkB3nH,IAGzC,OAAO9H,UAEA0Y,KAAKC,IAAI7Q,GAAS,KAAOs6H,IAClCt6H,GAAgB,IAwBlB,OArBK9H,KAAK2pH,QAAUwY,IAClBE,EAAcL,GAAchiI,OAG9BA,KAAK4pH,QAAU9hH,EACf9H,KAAK2pH,QAAS,EAEK,MAAf0Y,GACFriI,KAAKsF,IAAI+8H,EAAa,KAGpBtuG,IAAWjsB,KACRq6H,GAAiBniI,KAAKsiI,kBACzBC,GAAYviI,KAAMigI,GAAen4H,EAAQisB,EAAQ,KAAM,GAAG,GAChD/zB,KAAKsiI,oBACftiI,KAAKsiI,mBAAoB,EACzBljG,EAAM2qF,aAAa/pH,MAAM,GACzBA,KAAKsiI,kBAAoB,OAItBtiI,KAEP,OAAOA,KAAK2pH,OAAS51F,EAASiuG,GAAchiI,MAIhD,SAASwiI,GAAW16H,EAAOq6H,GACzB,OAAa,MAATr6H,GACmB,kBAAVA,IACTA,GAASA,GAGX9H,KAAKqhI,UAAUv5H,EAAOq6H,GACfniI,OAECA,KAAKqhI,YAIjB,SAASoB,GAAeN,GACtB,OAAOniI,KAAKqhI,UAAU,EAAGc,GAG3B,SAASO,GAAiBP,GAUxB,OATIniI,KAAK2pH,SACP3pH,KAAKqhI,UAAU,EAAGc,GAClBniI,KAAK2pH,QAAS,EAEVwY,GACFniI,KAAK2iI,SAASX,GAAchiI,MAAO,MAIhCA,KAGT,SAAS4iI,KACP,GAAiB,MAAb5iI,KAAK0pH,KACP1pH,KAAKqhI,UAAUrhI,KAAK0pH,MAAM,GAAO,QAC5B,GAAuB,kBAAZ1pH,KAAKgrB,GAAiB,CACtC,IAAI63G,EAAQtB,GAAiB/R,GAAaxvH,KAAKgrB,IAElC,MAAT63G,EACF7iI,KAAKqhI,UAAUwB,GAEf7iI,KAAKqhI,UAAU,GAAG,GAItB,OAAOrhI,KAGT,SAAS8iI,GAAqBh7H,GAC5B,QAAK9H,KAAKyoH,YAIV3gH,EAAQA,EAAQg2H,GAAYh2H,GAAOu5H,YAAc,GACzCrhI,KAAKqhI,YAAcv5H,GAAS,KAAO,GAG7C,SAASi7H,KACP,OAAO/iI,KAAKqhI,YAAcrhI,KAAK6hI,QAAQrvH,MAAM,GAAG6uH,aAAerhI,KAAKqhI,YAAcrhI,KAAK6hI,QAAQrvH,MAAM,GAAG6uH,YAG1G,SAAS2B,KACP,IAAKhc,EAAYhnH,KAAKijI,eACpB,OAAOjjI,KAAKijI,cAGd,IACIzD,EADAv2G,EAAI,GAYR,OAVAqgG,EAAWrgG,EAAGjpB,OACdipB,EAAIm2G,GAAcn2G,IAEZ7b,IACJoyH,EAAQv2G,EAAE0gG,OAASvC,EAAUn+F,EAAE7b,IAAM0wH,GAAY70G,EAAE7b,IACnDpN,KAAKijI,cAAgBjjI,KAAKyoH,WAAasY,GAAc93G,EAAE7b,GAAIoyH,EAAMvtD,WAAa,GAE9EjyE,KAAKijI,eAAgB,EAGhBjjI,KAAKijI,cAGd,SAASC,KACP,QAAOljI,KAAKyoH,YAAazoH,KAAK2pH,OAGhC,SAASwZ,KACP,QAAOnjI,KAAKyoH,WAAYzoH,KAAK2pH,OAG/B,SAASyZ,KACP,QAAOpjI,KAAKyoH,WAAYzoH,KAAK2pH,QAA2B,IAAjB3pH,KAAK4pH,QAnJ9CxqF,EAAM2qF,aAAe,aAuJrB,IAAIsZ,GAAc,wDAIlBC,GAAW,sKAEX,SAASrD,GAAen4H,EAAOnF,GAC7B,IAGI2+H,EACAzgE,EACA0iE,EALAz4G,EAAWhjB,EAEfX,EAAQ,KA6DR,OAxDI05H,GAAW/4H,GACbgjB,EAAW,CACT0oG,GAAI1rH,EAAM24H,cACV5jI,EAAGiL,EAAM44H,MACT3jI,EAAG+K,EAAM8pH,SAEF3K,EAASn/G,KAAWqQ,OAAOrQ,IACpCgjB,EAAW,GAEPnoB,EACFmoB,EAASnoB,IAAQmF,EAEjBgjB,EAAS01G,cAAgB14H,IAElBX,EAAQk8H,GAAY98H,KAAKuB,KAClCw5H,EAAoB,MAAbn6H,EAAM,IAAc,EAAI,EAC/B2jB,EAAW,CACT7tB,EAAG,EACHJ,EAAGoxH,GAAM9mH,EAAM0pH,KAASyQ,EACxB3kI,EAAGsxH,GAAM9mH,EAAM2pH,KAASwQ,EACxB7kI,EAAGwxH,GAAM9mH,EAAM4pH,KAAWuQ,EAC1B/kI,EAAG0xH,GAAM9mH,EAAM6pH,KAAWsQ,EAC1B9N,GAAIvF,GAAM6S,GAA8B,IAArB35H,EAAM8pH,MAAwBqQ,KAG1Cn6H,EAAQm8H,GAAS/8H,KAAKuB,KAC/Bw5H,EAAoB,MAAbn6H,EAAM,IAAc,EAAI,EAC/B2jB,EAAW,CACT7tB,EAAGumI,GAASr8H,EAAM,GAAIm6H,GACtBvkI,EAAGymI,GAASr8H,EAAM,GAAIm6H,GACtBrsH,EAAGuuH,GAASr8H,EAAM,GAAIm6H,GACtBzkI,EAAG2mI,GAASr8H,EAAM,GAAIm6H,GACtB3kI,EAAG6mI,GAASr8H,EAAM,GAAIm6H,GACtB7kI,EAAG+mI,GAASr8H,EAAM,GAAIm6H,GACtB/kI,EAAGinI,GAASr8H,EAAM,GAAIm6H,KAEH,MAAZx2G,EAETA,EAAW,GACkB,kBAAbA,IAA0B,SAAUA,GAAY,OAAQA,KACxEy4G,EAAUE,GAAkB3F,GAAYhzG,EAASoN,MAAO4lG,GAAYhzG,EAASqN,MAC7ErN,EAAW,IACF0oG,GAAK+P,EAAQ/C,aACtB11G,EAAS/tB,EAAIwmI,EAAQvoI,QAGvB6lE,EAAM,IAAIq/D,GAASp1G,GAEf+1G,GAAW/4H,IAAUg/G,EAAWh/G,EAAO,aACzC+4D,EAAIgpD,QAAU/hH,EAAM+hH,SAGlBgX,GAAW/4H,IAAUg/G,EAAWh/G,EAAO,cACzC+4D,EAAI6nD,SAAW5gH,EAAM4gH,UAGhB7nD,EAMT,SAAS2iE,GAASE,EAAKpC,GAIrB,IAAIpqF,EAAMwsF,GAAOj9G,WAAWi9G,EAAI5lI,QAAQ,IAAK,MAE7C,OAAQqa,MAAM++B,GAAO,EAAIA,GAAOoqF,EAGlC,SAASqC,GAA0BroE,EAAMkkE,GACvC,IAAItoF,EAAM,GAQV,OAPAA,EAAIl8C,OAASwkI,EAAMhtH,QAAU8oD,EAAK9oD,QAAyC,IAA9BgtH,EAAMh4G,OAAS8zC,EAAK9zC,QAE7D8zC,EAAKumE,QAAQv8H,IAAI4xC,EAAIl8C,OAAQ,KAAK4oI,QAAQpE,MAC1CtoF,EAAIl8C,OAGRk8C,EAAIspF,cAAgBhB,GAASlkE,EAAKumE,QAAQv8H,IAAI4xC,EAAIl8C,OAAQ,KACnDk8C,EAGT,SAASusF,GAAkBnoE,EAAMkkE,GAC/B,IAAItoF,EAEJ,OAAMokB,EAAKmtD,WAAa+W,EAAM/W,WAO9B+W,EAAQmC,GAAgBnC,EAAOlkE,GAE3BA,EAAKuoE,SAASrE,GAChBtoF,EAAMysF,GAA0BroE,EAAMkkE,KAEtCtoF,EAAMysF,GAA0BnE,EAAOlkE,IACnCklE,cAAgBtpF,EAAIspF,aACxBtpF,EAAIl8C,QAAUk8C,EAAIl8C,QAGbk8C,GAhBE,CACLspF,aAAc,EACdxlI,OAAQ,GAkBd,SAAS8oI,GAAY32E,EAAWtvC,GAC9B,OAAO,SAAUuM,EAAKjV,GACpB,IAAS02B,EAWT,OATe,OAAX12B,GAAoBgD,OAAOhD,KAC7Bq1G,EAAgB3sG,EAAM,YAAcA,EAAO,uDAAyDA,EAA9E,kGACtBguB,EAAMzhB,EACNA,EAAMjV,EACNA,EAAS02B,GAIX02F,GAAYviI,KADNigI,GAAe71G,EAAKjV,GACHg4C,GAChBntD,MAIX,SAASuiI,GAAYpX,EAAKrgG,EAAUi5G,EAAUha,GAC5C,IAAIyW,EAAe11G,EAAS21G,cACxBnzG,EAAOwzG,GAASh2G,EAAS41G,OACzB1lI,EAAS8lI,GAASh2G,EAAS8mG,SAE1BzG,EAAI1C,YAKTsB,EAA+B,MAAhBA,GAA8BA,EAEzC/uH,GACFurB,GAAS4kG,EAAKzqH,GAAIyqH,EAAK,SAAWnwH,EAAS+oI,GAGzCz2G,GACFghG,GAAMnD,EAAK,OAAQzqH,GAAIyqH,EAAK,QAAU79F,EAAOy2G,GAG3CvD,GACFrV,EAAIxiG,GAAGm5G,QAAQ3W,EAAIxiG,GAAGw+F,UAAYqZ,EAAeuD,GAG/Cha,GACF3qF,EAAM2qF,aAAaoB,EAAK79F,GAAQtyB,IA1FpCilI,GAAe91G,GAAK+1G,GAAS9+H,UAC7B6+H,GAAe+D,QAAUhE,GA6FzB,IAAI16H,GAAMw+H,GAAY,EAAG,OACrBnB,GAAWmB,IAAa,EAAG,YAE/B,SAASG,GAASn8H,GAChB,MAAwB,kBAAVA,GAAsBA,aAAiBrB,OAIvD,SAASy9H,GAAcp8H,GACrB,OAAOkiH,EAASliH,IAAUo/G,EAAOp/G,IAAUm8H,GAASn8H,IAAUm/G,EAASn/G,IAAUq8H,GAAsBr8H,IAAUs8H,GAAoBt8H,IAAoB,OAAVA,QAA4Bd,IAAVc,EAGnK,SAASs8H,GAAoBt8H,GAC3B,IAGIV,EACAoqD,EAJA6yE,EAAajrH,EAAStR,KAAWi/G,EAAcj/G,GAC/Cw8H,GAAe,EACf/8F,EAAa,CAAC,QAAS,OAAQ,IAAK,SAAU,QAAS,IAAK,OAAQ,MAAO,IAAK,QAAS,OAAQ,IAAK,QAAS,OAAQ,IAAK,UAAW,SAAU,IAAK,UAAW,SAAU,IAAK,eAAgB,cAAe,MAInN,IAAKngC,EAAI,EAAGA,EAAImgC,EAAWv/B,OAAQZ,GAAK,EACtCoqD,EAAWjqB,EAAWngC,GACtBk9H,EAAeA,GAAgBxd,EAAWh/G,EAAO0pD,GAGnD,OAAO6yE,GAAcC,EAGvB,SAASH,GAAsBr8H,GAC7B,IAAIy8H,EAAY75F,EAAQ5iC,GACpB08H,GAAe,EAQnB,OANID,IACFC,EAEc,IAFC18H,EAAMixB,QAAO,SAAUkL,GACpC,OAAQgjF,EAAShjF,IAASggG,GAASn8H,MAClCE,QAGEu8H,GAAaC,EAGtB,SAASC,GAAe38H,GACtB,IAGIV,EACAoqD,EAJA6yE,EAAajrH,EAAStR,KAAWi/G,EAAcj/G,GAC/Cw8H,GAAe,EACf/8F,EAAa,CAAC,UAAW,UAAW,UAAW,WAAY,WAAY,YAI3E,IAAKngC,EAAI,EAAGA,EAAImgC,EAAWv/B,OAAQZ,GAAK,EACtCoqD,EAAWjqB,EAAWngC,GACtBk9H,EAAeA,GAAgBxd,EAAWh/G,EAAO0pD,GAGnD,OAAO6yE,GAAcC,EAGvB,SAASI,GAAkBC,EAAUtqH,GACnC,IAAI/B,EAAOqsH,EAASrsH,KAAK+B,EAAK,QAAQ,GACtC,OAAO/B,GAAQ,EAAI,WAAaA,GAAQ,EAAI,WAAaA,EAAO,EAAI,UAAYA,EAAO,EAAI,UAAYA,EAAO,EAAI,UAAYA,EAAO,EAAI,WAAa,WAGxJ,SAASssH,GAAW/gG,EAAM5b,GAEC,IAArBnkB,UAAUkE,SACPlE,UAAU,GAGJogI,GAAcpgI,UAAU,KACjC+/B,EAAO//B,UAAU,GACjBmkB,OAAUjhB,GACDy9H,GAAe3gI,UAAU,MAClCmkB,EAAUnkB,UAAU,GACpB+/B,OAAO78B,IAPP68B,OAAO78B,EACPihB,OAAUjhB,IAYd,IAAIqT,EAAMwpB,GAAQi6F,KACd+G,EAAMlD,GAAgBtnH,EAAKra,MAAM8kI,QAAQ,OACzClnI,EAASwhC,EAAM2lG,eAAe/kI,KAAM6kI,IAAQ,WAC5C3e,EAASj+F,IAAYwiG,EAAWxiG,EAAQrqB,IAAWqqB,EAAQrqB,GAAQmC,KAAKC,KAAMqa,GAAO4N,EAAQrqB,IACjG,OAAOoC,KAAKpC,OAAOsoH,GAAUlmH,KAAKgsH,aAAanwH,SAAS+B,EAAQoC,KAAM89H,GAAYzjH,KAGpF,SAASwnH,KACP,OAAO,IAAI/X,EAAO9pH,MAGpB,SAAS4jI,GAAQ97H,EAAOwlH,GACtB,IAAI0X,EAAahb,EAASliH,GAASA,EAAQg2H,GAAYh2H,GAEvD,SAAM9H,KAAKyoH,YAAauc,EAAWvc,aAMrB,iBAFd6E,EAAQD,GAAeC,IAAU,eAGxBttH,KAAKmnH,UAAY6d,EAAW7d,UAE5B6d,EAAW7d,UAAYnnH,KAAK6hI,QAAQiD,QAAQxX,GAAOnG,WAI9D,SAAS0c,GAAS/7H,EAAOwlH,GACvB,IAAI0X,EAAahb,EAASliH,GAASA,EAAQg2H,GAAYh2H,GAEvD,SAAM9H,KAAKyoH,YAAauc,EAAWvc,aAMrB,iBAFd6E,EAAQD,GAAeC,IAAU,eAGxBttH,KAAKmnH,UAAY6d,EAAW7d,UAE5BnnH,KAAK6hI,QAAQoD,MAAM3X,GAAOnG,UAAY6d,EAAW7d,WAI5D,SAAS38F,GAAU0N,EAAMC,EAAIm1F,EAAO4X,GAClC,IAAIC,EAAYnb,EAAS9xF,GAAQA,EAAO4lG,GAAY5lG,GAChDktG,EAAUpb,EAAS7xF,GAAMA,EAAK2lG,GAAY3lG,GAE9C,SAAMn4B,KAAKyoH,WAAa0c,EAAU1c,WAAa2c,EAAQ3c,aAK5B,OAD3Byc,EAAcA,GAAe,MACT,GAAallI,KAAK4jI,QAAQuB,EAAW7X,IAAUttH,KAAK6jI,SAASsB,EAAW7X,MAA+B,MAAnB4X,EAAY,GAAallI,KAAK6jI,SAASuB,EAAS9X,IAAUttH,KAAK4jI,QAAQwB,EAAS9X,IAG1L,SAAS+X,GAAOv9H,EAAOwlH,GACrB,IACIgY,EADAN,EAAahb,EAASliH,GAASA,EAAQg2H,GAAYh2H,GAGvD,SAAM9H,KAAKyoH,YAAauc,EAAWvc,aAMrB,iBAFd6E,EAAQD,GAAeC,IAAU,eAGxBttH,KAAKmnH,YAAc6d,EAAW7d,WAErCme,EAAUN,EAAW7d,UACdnnH,KAAK6hI,QAAQiD,QAAQxX,GAAOnG,WAAame,GAAWA,GAAWtlI,KAAK6hI,QAAQoD,MAAM3X,GAAOnG,YAIpG,SAASoe,GAAcz9H,EAAOwlH,GAC5B,OAAOttH,KAAKqlI,OAAOv9H,EAAOwlH,IAAUttH,KAAK4jI,QAAQ97H,EAAOwlH,GAG1D,SAASkY,GAAe19H,EAAOwlH,GAC7B,OAAOttH,KAAKqlI,OAAOv9H,EAAOwlH,IAAUttH,KAAK6jI,SAAS/7H,EAAOwlH,GAG3D,SAASh1G,GAAKxQ,EAAOwlH,EAAOmY,GAC1B,IAAIn0F,EAAMo0F,EAAWxf,EAErB,IAAKlmH,KAAKyoH,UACR,OAAOS,IAKT,KAFA53E,EAAOqwF,GAAgB75H,EAAO9H,OAEpByoH,UACR,OAAOS,IAMT,OAHAwc,EAAoD,KAAvCp0F,EAAK+vF,YAAcrhI,KAAKqhI,aACrC/T,EAAQD,GAAeC,IAGrB,IAAK,OACHpH,EAASyf,GAAU3lI,KAAMsxC,GAAQ,GACjC,MAEF,IAAK,QACH40E,EAASyf,GAAU3lI,KAAMsxC,GACzB,MAEF,IAAK,UACH40E,EAASyf,GAAU3lI,KAAMsxC,GAAQ,EACjC,MAEF,IAAK,SACH40E,GAAUlmH,KAAOsxC,GAAQ,IACzB,MAGF,IAAK,SACH40E,GAAUlmH,KAAOsxC,GAAQ,IACzB,MAGF,IAAK,OACH40E,GAAUlmH,KAAOsxC,GAAQ,KACzB,MAGF,IAAK,MACH40E,GAAUlmH,KAAOsxC,EAAOo0F,GAAa,MACrC,MAGF,IAAK,OACHxf,GAAUlmH,KAAOsxC,EAAOo0F,GAAa,OACrC,MAGF,QACExf,EAASlmH,KAAOsxC,EAGpB,OAAOm0F,EAAUvf,EAAS8H,GAAS9H,GAGrC,SAASyf,GAAUhnH,EAAGrhB,GACpB,GAAIqhB,EAAE3F,OAAS1b,EAAE0b,OAGf,OAAQ2sH,GAAUroI,EAAGqhB,GAIvB,IAAIinH,EAAyC,IAAvBtoI,EAAEkqB,OAAS7I,EAAE6I,SAAgBlqB,EAAEkV,QAAUmM,EAAEnM,SAEjEqzH,EAASlnH,EAAEkjH,QAAQv8H,IAAIsgI,EAAgB,UAevC,QAASA,GAXLtoI,EAAIuoI,EAAS,GAGLvoI,EAAIuoI,IAAWA,EAFflnH,EAAEkjH,QAAQv8H,IAAIsgI,EAAiB,EAAG,YAMlCtoI,EAAIuoI,IAFJlnH,EAAEkjH,QAAQv8H,IAAIsgI,EAAiB,EAAG,UAETC,MAIA,EAMvC,SAAS/sH,KACP,OAAO9Y,KAAK6hI,QAAQhqH,OAAO,MAAMja,OAAO,oCAG1C,SAASsqB,GAAY49G,GACnB,IAAK9lI,KAAKyoH,UACR,OAAO,KAGT,IAAInB,GAAqB,IAAfwe,EACNrpI,EAAI6qH,EAAMtnH,KAAK6hI,QAAQva,MAAQtnH,KAEnC,OAAIvD,EAAE+qB,OAAS,GAAK/qB,EAAE+qB,OAAS,KACtB2kG,EAAa1vH,EAAG6qH,EAAM,iCAAmC,gCAG9DmD,EAAWvyG,KAAK9W,UAAU8mB,aAExBo/F,EACKtnH,KAAKiY,SAASiQ,cAEd,IAAIhQ,KAAKlY,KAAKmnH,UAA+B,GAAnBnnH,KAAKqhI,YAAmB,KAAMn5G,cAAcpqB,QAAQ,IAAKquH,EAAa1vH,EAAG,MAIvG0vH,EAAa1vH,EAAG6qH,EAAM,+BAAiC,8BAUhE,SAASx8C,KACP,IAAK9qE,KAAKyoH,UACR,MAAO,qBAAuBzoH,KAAKgrB,GAAK,OAG1C,IAEIjQ,EACAyM,EACAu+G,EACAC,EALAluH,EAAO,SACPmuH,EAAO,GAeX,OATKjmI,KAAKkjI,YACRprH,EAA4B,IAArB9X,KAAKqhI,YAAoB,aAAe,mBAC/C4E,EAAO,KAGTlrH,EAAS,IAAMjD,EAAO,MACtB0P,EAAO,GAAKxnB,KAAKwnB,QAAUxnB,KAAKwnB,QAAU,KAAO,OAAS,SAC1Du+G,EAAW,wBACXC,EAASC,EAAO,OACTjmI,KAAKpC,OAAOmd,EAASyM,EAAOu+G,EAAWC,GAGhD,SAASpoI,GAAOsoI,GACTA,IACHA,EAAclmI,KAAKojI,QAAUhkG,EAAM+mG,iBAAmB/mG,EAAMgnG,eAG9D,IAAIlgB,EAASiG,EAAansH,KAAMkmI,GAChC,OAAOlmI,KAAKgsH,aAAaviH,WAAWy8G,GAGtC,SAAShuF,GAAK2L,EAAMpyB,GAClB,OAAIzR,KAAKyoH,YAAcuB,EAASnmF,IAASA,EAAK4kF,WAAaqV,GAAYj6F,GAAM4kF,WACpEwX,GAAe,CACpB9nG,GAAIn4B,KACJk4B,KAAM2L,IACLhsB,OAAO7X,KAAK6X,UAAUwuH,UAAU50H,GAE5BzR,KAAKgsH,aAAax0G,cAI7B,SAAS8uH,GAAQ70H,GACf,OAAOzR,KAAKk4B,KAAK4lG,KAAersH,GAGlC,SAAS0mB,GAAG0L,EAAMpyB,GAChB,OAAIzR,KAAKyoH,YAAcuB,EAASnmF,IAASA,EAAK4kF,WAAaqV,GAAYj6F,GAAM4kF,WACpEwX,GAAe,CACpB/nG,KAAMl4B,KACNm4B,GAAI0L,IACHhsB,OAAO7X,KAAK6X,UAAUwuH,UAAU50H,GAE5BzR,KAAKgsH,aAAax0G,cAI7B,SAAS+uH,GAAM90H,GACb,OAAOzR,KAAKm4B,GAAG2lG,KAAersH,GAMhC,SAASoG,GAAOlV,GACd,IAAI6jI,EAEJ,YAAYx/H,IAARrE,EACK3C,KAAK6pH,QAAQyP,OAIC,OAFrBkN,EAAgBzuH,GAAUpV,MAGxB3C,KAAK6pH,QAAU2c,GAGVxmI,MApHXo/B,EAAMgnG,cAAgB,uBACtBhnG,EAAM+mG,iBAAmB,yBAuHzB,IAAI/xD,GAAOg2C,EAAU,mJAAmJ,SAAUznH,GAChL,YAAYqE,IAARrE,EACK3C,KAAKgsH,aAELhsH,KAAK6X,OAAOlV,MAIvB,SAASqpH,KACP,OAAOhsH,KAAK6pH,QAGd,IAAI4c,GAAgB,IAChBC,GAAgB,GAAKD,GACrBE,GAAc,GAAKD,GACnBE,GAAmB,QAAwBD,GAE/C,SAASE,GAAMC,EAAUC,GACvB,OAAQD,EAAWC,EAAUA,GAAWA,EAG1C,SAASC,GAAiB/pI,EAAGR,EAAGI,GAE9B,OAAII,EAAI,KAAOA,GAAK,EAEX,IAAIib,KAAKjb,EAAI,IAAKR,EAAGI,GAAK+pI,GAE1B,IAAI1uH,KAAKjb,EAAGR,EAAGI,GAAGsqH,UAI7B,SAAS8f,GAAehqI,EAAGR,EAAGI,GAE5B,OAAII,EAAI,KAAOA,GAAK,EAEXib,KAAKw7G,IAAIz2H,EAAI,IAAKR,EAAGI,GAAK+pI,GAE1B1uH,KAAKw7G,IAAIz2H,EAAGR,EAAGI,GAI1B,SAASioI,GAAQxX,GACf,IAAIzpF,EAAMqjG,EAGV,QAAclgI,KAFdsmH,EAAQD,GAAeC,KAEc,gBAAVA,IAA4BttH,KAAKyoH,UAC1D,OAAOzoH,KAKT,OAFAknI,EAAclnI,KAAK2pH,OAASsd,GAAiBD,GAErC1Z,GACN,IAAK,OACHzpF,EAAOqjG,EAAYlnI,KAAKwnB,OAAQ,EAAG,GACnC,MAEF,IAAK,UACHqc,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAAUxS,KAAKwS,QAAU,EAAG,GACjE,MAEF,IAAK,QACHqxB,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAAS,GAC9C,MAEF,IAAK,OACHqxB,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAASxS,KAAKgZ,OAAShZ,KAAKi0H,WACjE,MAEF,IAAK,UACHpwF,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAASxS,KAAKgZ,QAAUhZ,KAAKmnI,aAAe,IACjF,MAEF,IAAK,MACL,IAAK,OACHtjG,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAASxS,KAAKgZ,QACnD,MAEF,IAAK,OACH6qB,EAAO7jC,KAAK2oB,GAAGw+F,UACftjF,GAAQgjG,GAAMhjG,GAAQ7jC,KAAK2pH,OAAS,EAAI3pH,KAAKqhI,YAAcqF,IAAgBC,IAC3E,MAEF,IAAK,SACH9iG,EAAO7jC,KAAK2oB,GAAGw+F,UACftjF,GAAQgjG,GAAMhjG,EAAM6iG,IACpB,MAEF,IAAK,SACH7iG,EAAO7jC,KAAK2oB,GAAGw+F,UACftjF,GAAQgjG,GAAMhjG,EAAM4iG,IAOxB,OAHAzmI,KAAK2oB,GAAGm5G,QAAQj+F,GAEhBzE,EAAM2qF,aAAa/pH,MAAM,GAClBA,KAGT,SAASilI,GAAM3X,GACb,IAAIzpF,EAAMqjG,EAGV,QAAclgI,KAFdsmH,EAAQD,GAAeC,KAEc,gBAAVA,IAA4BttH,KAAKyoH,UAC1D,OAAOzoH,KAKT,OAFAknI,EAAclnI,KAAK2pH,OAASsd,GAAiBD,GAErC1Z,GACN,IAAK,OACHzpF,EAAOqjG,EAAYlnI,KAAKwnB,OAAS,EAAG,EAAG,GAAK,EAC5C,MAEF,IAAK,UACHqc,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAAUxS,KAAKwS,QAAU,EAAI,EAAG,GAAK,EAC1E,MAEF,IAAK,QACHqxB,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAAU,EAAG,GAAK,EACvD,MAEF,IAAK,OACHqxB,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAASxS,KAAKgZ,OAAShZ,KAAKi0H,UAAY,GAAK,EAClF,MAEF,IAAK,UACHpwF,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAASxS,KAAKgZ,QAAUhZ,KAAKmnI,aAAe,GAAK,GAAK,EAC3F,MAEF,IAAK,MACL,IAAK,OACHtjG,EAAOqjG,EAAYlnI,KAAKwnB,OAAQxnB,KAAKwS,QAASxS,KAAKgZ,OAAS,GAAK,EACjE,MAEF,IAAK,OACH6qB,EAAO7jC,KAAK2oB,GAAGw+F,UACftjF,GAAQ8iG,GAAcE,GAAMhjG,GAAQ7jC,KAAK2pH,OAAS,EAAI3pH,KAAKqhI,YAAcqF,IAAgBC,IAAe,EACxG,MAEF,IAAK,SACH9iG,EAAO7jC,KAAK2oB,GAAGw+F,UACftjF,GAAQ6iG,GAAgBG,GAAMhjG,EAAM6iG,IAAiB,EACrD,MAEF,IAAK,SACH7iG,EAAO7jC,KAAK2oB,GAAGw+F,UACftjF,GAAQ4iG,GAAgBI,GAAMhjG,EAAM4iG,IAAiB,EAOzD,OAHAzmI,KAAK2oB,GAAGm5G,QAAQj+F,GAEhBzE,EAAM2qF,aAAa/pH,MAAM,GAClBA,KAGT,SAASmnH,KACP,OAAOnnH,KAAK2oB,GAAGw+F,UAAkC,KAArBnnH,KAAK4pH,SAAW,GAG9C,SAASwd,KACP,OAAO1uH,KAAKG,MAAM7Y,KAAKmnH,UAAY,KAGrC,SAASlvG,KACP,OAAO,IAAIC,KAAKlY,KAAKmnH,WAGvB,SAASl1C,KACP,IAAIx1E,EAAIuD,KACR,MAAO,CAACvD,EAAE+qB,OAAQ/qB,EAAE+V,QAAS/V,EAAEuc,OAAQvc,EAAE2M,OAAQ3M,EAAE4M,SAAU5M,EAAE40C,SAAU50C,EAAEyiI,eAG7E,SAASvpH,KACP,IAAIlZ,EAAIuD,KACR,MAAO,CACLmgI,MAAO1jI,EAAE+qB,OACTxsB,OAAQyB,EAAE+V,QACVwG,KAAMvc,EAAEuc,OACR/G,MAAOxV,EAAEwV,QACTC,QAASzV,EAAEyV,UACX6U,QAAStqB,EAAEsqB,UACXy5G,aAAc/jI,EAAE+jI,gBAIpB,SAAS7iH,KAEP,OAAO3d,KAAKyoH,UAAYzoH,KAAKkoB,cAAgB,KAG/C,SAASm/G,KACP,OAAO5e,EAAQzoH,MAGjB,SAASsnI,KACP,OAAOngG,EAAO,GAAIohF,EAAgBvoH,OAGpC,SAASunI,KACP,OAAOhf,EAAgBvoH,MAAM2nH,SAG/B,SAAS6f,KACP,MAAO,CACL1/H,MAAO9H,KAAKgrB,GACZptB,OAAQoC,KAAKypH,GACb5xG,OAAQ7X,KAAK6pH,QACbyV,MAAOt/H,KAAK2pH,OACZ3pD,OAAQhgE,KAAK8oH,SA+CjB,SAAS2e,GAAWhrI,EAAGmB,GACrB,IAAIwJ,EACAygB,EACA7O,EACA0uH,EAAO1nI,KAAK2nI,OAAS5vH,GAAU,MAAM4vH,MAEzC,IAAKvgI,EAAI,EAAGygB,EAAI6/G,EAAK1/H,OAAQZ,EAAIygB,IAAKzgB,EAAG,CACvC,cAAesgI,EAAKtgI,GAAGwgI,OACrB,IAAK,SAEH5uH,EAAOomB,EAAMsoG,EAAKtgI,GAAGwgI,OAAO9C,QAAQ,OACpC4C,EAAKtgI,GAAGwgI,MAAQ5uH,EAAKmuG,UAIzB,cAAeugB,EAAKtgI,GAAGygI,OACrB,IAAK,YACHH,EAAKtgI,GAAGygI,MAAQ,IAChB,MAEF,IAAK,SAEH7uH,EAAOomB,EAAMsoG,EAAKtgI,GAAGygI,OAAO/C,QAAQ,OAAO3d,UAC3CugB,EAAKtgI,GAAGygI,MAAQ7uH,EAAKmuG,WAK3B,OAAOugB,EAGT,SAASI,GAAgBC,EAASnqI,EAAQoiE,GACxC,IAAI54D,EACAygB,EAEAhK,EACA27G,EACAwO,EAHAN,EAAO1nI,KAAK0nI,OAMhB,IAFAK,EAAUA,EAAQ/oD,cAEb53E,EAAI,EAAGygB,EAAI6/G,EAAK1/H,OAAQZ,EAAIygB,IAAKzgB,EAKpC,GAJAyW,EAAO6pH,EAAKtgI,GAAGyW,KAAKmhE,cACpBw6C,EAAOkO,EAAKtgI,GAAGoyH,KAAKx6C,cACpBgpD,EAASN,EAAKtgI,GAAG4gI,OAAOhpD,cAEpBhf,EACF,OAAQpiE,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,GAAI47H,IAASuO,EACX,OAAOL,EAAKtgI,GAGd,MAEF,IAAK,OACH,GAAIyW,IAASkqH,EACX,OAAOL,EAAKtgI,GAGd,MAEF,IAAK,QACH,GAAI4gI,IAAWD,EACb,OAAOL,EAAKtgI,QAKb,GAAI,CAACyW,EAAM27G,EAAMwO,GAAQrgI,QAAQogI,IAAY,EAClD,OAAOL,EAAKtgI,GAKlB,SAAS6gI,GAAsB7f,EAAK5gG,GAClC,IAAI8vC,EAAM8wD,EAAIwf,OAASxf,EAAIyf,MAAQ,GAAM,EAEzC,YAAa7gI,IAATwgB,EACK4X,EAAMgpF,EAAIwf,OAAOpgH,OAEjB4X,EAAMgpF,EAAIwf,OAAOpgH,QAAUA,EAAO4gG,EAAIr0F,QAAUujC,EAI3D,SAAS4wE,KACP,IAAI9gI,EACAygB,EACAuC,EACAs9G,EAAO1nI,KAAKgsH,aAAa0b,OAE7B,IAAKtgI,EAAI,EAAGygB,EAAI6/G,EAAK1/H,OAAQZ,EAAIygB,IAAKzgB,EAAG,CAIvC,GAFAgjB,EAAMpqB,KAAK6hI,QAAQiD,QAAQ,OAAO3d,UAE9BugB,EAAKtgI,GAAGwgI,OAASx9G,GAAOA,GAAOs9G,EAAKtgI,GAAGygI,MACzC,OAAOH,EAAKtgI,GAAGyW,KAGjB,GAAI6pH,EAAKtgI,GAAGygI,OAASz9G,GAAOA,GAAOs9G,EAAKtgI,GAAGwgI,MACzC,OAAOF,EAAKtgI,GAAGyW,KAInB,MAAO,GAGT,SAASsqH,KACP,IAAI/gI,EACAygB,EACAuC,EACAs9G,EAAO1nI,KAAKgsH,aAAa0b,OAE7B,IAAKtgI,EAAI,EAAGygB,EAAI6/G,EAAK1/H,OAAQZ,EAAIygB,IAAKzgB,EAAG,CAIvC,GAFAgjB,EAAMpqB,KAAK6hI,QAAQiD,QAAQ,OAAO3d,UAE9BugB,EAAKtgI,GAAGwgI,OAASx9G,GAAOA,GAAOs9G,EAAKtgI,GAAGygI,MACzC,OAAOH,EAAKtgI,GAAG4gI,OAGjB,GAAIN,EAAKtgI,GAAGygI,OAASz9G,GAAOA,GAAOs9G,EAAKtgI,GAAGwgI,MACzC,OAAOF,EAAKtgI,GAAG4gI,OAInB,MAAO,GAGT,SAASI,KACP,IAAIhhI,EACAygB,EACAuC,EACAs9G,EAAO1nI,KAAKgsH,aAAa0b,OAE7B,IAAKtgI,EAAI,EAAGygB,EAAI6/G,EAAK1/H,OAAQZ,EAAIygB,IAAKzgB,EAAG,CAIvC,GAFAgjB,EAAMpqB,KAAK6hI,QAAQiD,QAAQ,OAAO3d,UAE9BugB,EAAKtgI,GAAGwgI,OAASx9G,GAAOA,GAAOs9G,EAAKtgI,GAAGygI,MACzC,OAAOH,EAAKtgI,GAAGoyH,KAGjB,GAAIkO,EAAKtgI,GAAGygI,OAASz9G,GAAOA,GAAOs9G,EAAKtgI,GAAGwgI,MACzC,OAAOF,EAAKtgI,GAAGoyH,KAInB,MAAO,GAGT,SAAS6O,KACP,IAAIjhI,EACAygB,EACAyvC,EACAltC,EACAs9G,EAAO1nI,KAAKgsH,aAAa0b,OAE7B,IAAKtgI,EAAI,EAAGygB,EAAI6/G,EAAK1/H,OAAQZ,EAAIygB,IAAKzgB,EAKpC,GAJAkwD,EAAMowE,EAAKtgI,GAAGwgI,OAASF,EAAKtgI,GAAGygI,MAAQ,GAAM,EAE7Cz9G,EAAMpqB,KAAK6hI,QAAQiD,QAAQ,OAAO3d,UAE9BugB,EAAKtgI,GAAGwgI,OAASx9G,GAAOA,GAAOs9G,EAAKtgI,GAAGygI,OAASH,EAAKtgI,GAAGygI,OAASz9G,GAAOA,GAAOs9G,EAAKtgI,GAAGwgI,MACzF,OAAQ5nI,KAAKwnB,OAAS4X,EAAMsoG,EAAKtgI,GAAGwgI,OAAOpgH,QAAU8vC,EAAMowE,EAAKtgI,GAAG2sB,OAIvE,OAAO/zB,KAAKwnB,OAGd,SAAS8gH,GAAcvY,GAKrB,OAJKjJ,EAAW9mH,KAAM,mBACpBuoI,GAAiBxoI,KAAKC,MAGjB+vH,EAAW/vH,KAAKwoI,eAAiBxoI,KAAKyoI,WAG/C,SAASC,GAAc3Y,GAKrB,OAJKjJ,EAAW9mH,KAAM,mBACpBuoI,GAAiBxoI,KAAKC,MAGjB+vH,EAAW/vH,KAAK2oI,eAAiB3oI,KAAKyoI,WAG/C,SAASG,GAAgB7Y,GAKvB,OAJKjJ,EAAW9mH,KAAM,qBACpBuoI,GAAiBxoI,KAAKC,MAGjB+vH,EAAW/vH,KAAK6oI,iBAAmB7oI,KAAKyoI,WAGjD,SAASK,GAAa/Y,EAAUl4G,GAC9B,OAAOA,EAAO6wH,cAAc3Y,GAG9B,SAASgZ,GAAahZ,EAAUl4G,GAC9B,OAAOA,EAAOywH,cAAcvY,GAG9B,SAASiZ,GAAejZ,EAAUl4G,GAChC,OAAOA,EAAO+wH,gBAAgB7Y,GAGhC,SAASkZ,GAAoBlZ,EAAUl4G,GACrC,OAAOA,EAAOqxH,sBAAwB5Z,GAGxC,SAASiZ,KACP,IAIInhI,EACAygB,EALAshH,EAAa,GACbC,EAAa,GACbC,EAAe,GACfnW,EAAc,GAGdwU,EAAO1nI,KAAK0nI,OAEhB,IAAKtgI,EAAI,EAAGygB,EAAI6/G,EAAK1/H,OAAQZ,EAAIygB,IAAKzgB,EACpCgiI,EAAWp7H,KAAKkiH,GAAYwX,EAAKtgI,GAAGyW,OACpCsrH,EAAWn7H,KAAKkiH,GAAYwX,EAAKtgI,GAAGoyH,OACpC6P,EAAar7H,KAAKkiH,GAAYwX,EAAKtgI,GAAG4gI,SACtC9U,EAAYllH,KAAKkiH,GAAYwX,EAAKtgI,GAAGyW,OACrCq1G,EAAYllH,KAAKkiH,GAAYwX,EAAKtgI,GAAGoyH,OACrCtG,EAAYllH,KAAKkiH,GAAYwX,EAAKtgI,GAAG4gI,SAGvChoI,KAAKyoI,WAAa,IAAIniI,OAAO,KAAO4sH,EAAY98G,KAAK,KAAO,IAAK,KACjEpW,KAAKwoI,eAAiB,IAAIliI,OAAO,KAAO8iI,EAAWhzH,KAAK,KAAO,IAAK,KACpEpW,KAAK2oI,eAAiB,IAAIriI,OAAO,KAAO6iI,EAAW/yH,KAAK,KAAO,IAAK,KACpEpW,KAAK6oI,iBAAmB,IAAIviI,OAAO,KAAO+iI,EAAajzH,KAAK,KAAO,IAAK,KAW1E,SAASkzH,GAAuB52F,EAAO62F,GACrCzd,EAAe,EAAG,CAACp5E,EAAOA,EAAM1qC,QAAS,EAAGuhI,GA6B9C,SAASC,GAAe1hI,GACtB,OAAO2hI,GAAqB1pI,KAAKC,KAAM8H,EAAO9H,KAAKzC,OAAQyC,KAAKi0H,UAAWj0H,KAAKgsH,aAAa2I,MAAMn3H,IAAKwC,KAAKgsH,aAAa2I,MAAMl3H,KAGlI,SAASisI,GAAkB5hI,GACzB,OAAO2hI,GAAqB1pI,KAAKC,KAAM8H,EAAO9H,KAAKugI,UAAWvgI,KAAKmnI,aAAc,EAAG,GAGtF,SAASwC,KACP,OAAOnV,GAAYx0H,KAAKwnB,OAAQ,EAAG,GAGrC,SAASoiH,KACP,OAAOpV,GAAYx0H,KAAK6pI,cAAe,EAAG,GAG5C,SAASC,KACP,IAAIC,EAAW/pI,KAAKgsH,aAAa2I,MAEjC,OAAOH,GAAYx0H,KAAKwnB,OAAQuiH,EAASvsI,IAAKusI,EAAStsI,KAGzD,SAASusI,KACP,IAAID,EAAW/pI,KAAKgsH,aAAa2I,MAEjC,OAAOH,GAAYx0H,KAAKy9H,WAAYsM,EAASvsI,IAAKusI,EAAStsI,KAG7D,SAASgsI,GAAqB3hI,EAAOvK,EAAM02H,EAASz2H,EAAKC,GACvD,IAAIwsI,EAEJ,OAAa,MAATniI,EACKusH,GAAWr0H,KAAMxC,EAAKC,GAAK+pB,MAI9BjqB,GAFJ0sI,EAAczV,GAAY1sH,EAAOtK,EAAKC,MAGpCF,EAAO0sI,GAGFC,GAAWnqI,KAAKC,KAAM8H,EAAOvK,EAAM02H,EAASz2H,EAAKC,IAI5D,SAASysI,GAAWzM,EAAUlgI,EAAM02H,EAASz2H,EAAKC,GAChD,IAAI0sI,EAAgBnW,GAAmByJ,EAAUlgI,EAAM02H,EAASz2H,EAAKC,GACjEub,EAAOy6G,GAAc0W,EAAc3iH,KAAM,EAAG2iH,EAAc/V,WAI9D,OAHAp0H,KAAKwnB,KAAKxO,EAAK26G,kBACf3zH,KAAKwS,MAAMwG,EAAKgkH,eAChBh9H,KAAKgZ,KAAKA,EAAKikH,cACRj9H,KAeT,SAASoqI,GAActiI,GACrB,OAAgB,MAATA,EAAgB4Q,KAAKo6C,MAAM9yD,KAAKwS,QAAU,GAAK,GAAKxS,KAAKwS,MAAoB,GAAb1K,EAAQ,GAAS9H,KAAKwS,QAAU,GA/XzGs5G,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,KAAM,EAAG,EAAG,WAC3BA,EAAe,MAAO,EAAG,EAAG,WAC5BA,EAAe,OAAQ,EAAG,EAAG,WAC7BA,EAAe,QAAS,EAAG,EAAG,aAC9BA,EAAe,IAAK,CAAC,IAAK,GAAI,KAAM,WACpCA,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,WAClCA,EAAe,IAAK,CAAC,MAAO,GAAI,EAAG,WACnCA,EAAe,IAAK,CAAC,OAAQ,GAAI,EAAG,WACpC8D,GAAc,IAAKkZ,IACnBlZ,GAAc,KAAMkZ,IACpBlZ,GAAc,MAAOkZ,IACrBlZ,GAAc,OAAQmZ,IACtBnZ,GAAc,QAASoZ,IACvBzY,GAAc,CAAC,IAAK,KAAM,MAAO,OAAQ,UAAU,SAAUzoH,EAAOkwB,EAAO1a,EAAQo1B,GACjF,IAAI01E,EAAM9qG,EAAOusG,QAAQwgB,UAAUviI,EAAO4qC,EAAOp1B,EAAOwrG,SAEpDV,EACFG,EAAgBjrG,GAAQ8qG,IAAMA,EAE9BG,EAAgBjrG,GAAQwqG,WAAahgH,KAGzC8nH,GAAc,IAAKN,IACnBM,GAAc,KAAMN,IACpBM,GAAc,MAAON,IACrBM,GAAc,OAAQN,IACtBM,GAAc,KAAMqZ,IACpB1Y,GAAc,CAAC,IAAK,KAAM,MAAO,QAASI,IAC1CJ,GAAc,CAAC,OAAO,SAAUzoH,EAAOkwB,EAAO1a,EAAQo1B,GACpD,IAAIvrC,EAEAmW,EAAOusG,QAAQqf,uBACjB/hI,EAAQW,EAAMX,MAAMmW,EAAOusG,QAAQqf,uBAGjC5rH,EAAOusG,QAAQygB,oBACjBtyG,EAAM24F,IAAQrzG,EAAOusG,QAAQygB,oBAAoBxiI,EAAOX,GAExD6wB,EAAM24F,IAAQv4G,SAAStQ,EAAO,OAiPlCgkH,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC9B,OAAO9rH,KAAKy9H,WAAa,OAE3B3R,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC9B,OAAO9rH,KAAK6pI,cAAgB,OAO9BP,GAAuB,OAAQ,YAC/BA,GAAuB,QAAS,YAChCA,GAAuB,OAAQ,eAC/BA,GAAuB,QAAS,eAEhCnc,GAAa,WAAY,MACzBA,GAAa,cAAe,MAE5BS,GAAgB,WAAY,GAC5BA,GAAgB,cAAe,GAE/BgC,GAAc,IAAKL,IACnBK,GAAc,IAAKL,IACnBK,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,OAAQR,GAAWN,IACjCc,GAAc,OAAQR,GAAWN,IACjCc,GAAc,QAASP,GAAWN,IAClCa,GAAc,QAASP,GAAWN,IAClCyB,GAAkB,CAAC,OAAQ,QAAS,OAAQ,UAAU,SAAU1oH,EAAOvK,EAAM+f,EAAQo1B,GACnFn1C,EAAKm1C,EAAMipB,OAAO,EAAG,IAAMsyD,GAAMnmH,MAEnC0oH,GAAkB,CAAC,KAAM,OAAO,SAAU1oH,EAAOvK,EAAM+f,EAAQo1B,GAC7Dn1C,EAAKm1C,GAAStT,EAAMg0F,kBAAkBtrH,MAyDxCgkH,EAAe,IAAK,EAAG,KAAM,WAE7BqB,GAAa,UAAW,KAExBS,GAAgB,UAAW,GAE3BgC,GAAc,IAAKjB,IACnB4B,GAAc,KAAK,SAAUzoH,EAAOkwB,GAClCA,EAAM44F,IAA8B,GAApB3C,GAAMnmH,GAAS,MAQjCgkH,EAAe,IAAK,CAAC,KAAM,GAAI,KAAM,QAErCqB,GAAa,OAAQ,KAErBS,GAAgB,OAAQ,GAExBgC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/BgB,GAAc,MAAM,SAAUG,EAAUl4G,GAEtC,OAAOk4G,EAAWl4G,EAAO+yG,yBAA2B/yG,EAAOgzG,cAAgBhzG,EAAO8yG,kCAEpF4F,GAAc,CAAC,IAAK,MAAOM,IAC3BN,GAAc,MAAM,SAAUzoH,EAAOkwB,GACnCA,EAAM64F,IAAQ5C,GAAMnmH,EAAMX,MAAM6nH,IAAW,OAG7C,IAAIub,GAAmBnc,GAAW,QAAQ,GAe1C,SAASoc,GAAgB1iI,GACvB,IAAIssH,EAAY17G,KAAKwI,OAAOlhB,KAAK6hI,QAAQiD,QAAQ,OAAS9kI,KAAK6hI,QAAQiD,QAAQ,SAAW,OAAS,EACnG,OAAgB,MAATh9H,EAAgBssH,EAAYp0H,KAAKsF,IAAIwC,EAAQssH,EAAW,KAfjEtI,EAAe,MAAO,CAAC,OAAQ,GAAI,OAAQ,aAE3CqB,GAAa,YAAa,OAE1BS,GAAgB,YAAa,GAE7BgC,GAAc,MAAOT,IACrBS,GAAc,OAAQf,IACtB0B,GAAc,CAAC,MAAO,SAAS,SAAUzoH,EAAOkwB,EAAO1a,GACrDA,EAAOigH,WAAatP,GAAMnmH,MAU5BgkH,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAElCqB,GAAa,SAAU,KAEvBS,GAAgB,SAAU,IAE1BgC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/B2B,GAAc,CAAC,IAAK,MAAOQ,IAE3B,IAAI0Z,GAAerc,GAAW,WAAW,GAEzCtC,EAAe,IAAK,CAAC,KAAM,GAAI,EAAG,UAElCqB,GAAa,SAAU,KAEvBS,GAAgB,SAAU,IAE1BgC,GAAc,IAAKZ,IACnBY,GAAc,KAAMZ,GAAWJ,IAC/B2B,GAAc,CAAC,IAAK,MAAOS,IAE3B,IAmCIt+E,GAAOg4F,GAnCPC,GAAevc,GAAW,WAAW,GAqCzC,IAnCAtC,EAAe,IAAK,EAAG,GAAG,WACxB,SAAU9rH,KAAKk/H,cAAgB,QAEjCpT,EAAe,EAAG,CAAC,KAAM,GAAI,GAAG,WAC9B,SAAU9rH,KAAKk/H,cAAgB,OAEjCpT,EAAe,EAAG,CAAC,MAAO,GAAI,EAAG,eACjCA,EAAe,EAAG,CAAC,OAAQ,GAAI,GAAG,WAChC,OAA4B,GAArB9rH,KAAKk/H,iBAEdpT,EAAe,EAAG,CAAC,QAAS,GAAI,GAAG,WACjC,OAA4B,IAArB9rH,KAAKk/H,iBAEdpT,EAAe,EAAG,CAAC,SAAU,GAAI,GAAG,WAClC,OAA4B,IAArB9rH,KAAKk/H,iBAEdpT,EAAe,EAAG,CAAC,UAAW,GAAI,GAAG,WACnC,OAA4B,IAArB9rH,KAAKk/H,iBAEdpT,EAAe,EAAG,CAAC,WAAY,GAAI,GAAG,WACpC,OAA4B,IAArB9rH,KAAKk/H,iBAEdpT,EAAe,EAAG,CAAC,YAAa,GAAI,GAAG,WACrC,OAA4B,IAArB9rH,KAAKk/H,iBAGd/R,GAAa,cAAe,MAE5BS,GAAgB,cAAe,IAE/BgC,GAAc,IAAKT,GAAWR,IAC9BiB,GAAc,KAAMT,GAAWP,IAC/BgB,GAAc,MAAOT,GAAWN,IAG3Bn8E,GAAQ,OAAQA,GAAM1qC,QAAU,EAAG0qC,IAAS,IAC/Ck9E,GAAcl9E,GAAO48E,IAGvB,SAASsb,GAAQ9iI,EAAOkwB,GACtBA,EAAMi5F,IAAehD,GAAuB,KAAhB,KAAOnmH,IAGrC,IAAK4qC,GAAQ,IAAKA,GAAM1qC,QAAU,EAAG0qC,IAAS,IAC5C69E,GAAc79E,GAAOk4F,IAQvB,SAASC,KACP,OAAO7qI,KAAK2pH,OAAS,MAAQ,GAG/B,SAASmhB,KACP,OAAO9qI,KAAK2pH,OAAS,6BAA+B,GAVtD+gB,GAAoBtc,GAAW,gBAAgB,GAE/CtC,EAAe,IAAK,EAAG,EAAG,YAC1BA,EAAe,KAAM,EAAG,EAAG,YAU3B,IAAIh1E,GAAQgzE,EAAO1oH,UA0FnB,SAAS2pI,GAAWjjI,GAClB,OAAOg2H,GAAoB,IAARh2H,GAGrB,SAASkjI,KACP,OAAOlN,GAAYj6H,MAAM,KAAMC,WAAWmnI,YAG5C,SAASC,GAAmB1hI,GAC1B,OAAOA,EAlGTstC,GAAMxxC,IAAMA,GACZwxC,GAAMj7C,SAAW+oI,GACjB9tF,GAAM+qF,MAAQA,GACd/qF,GAAMx+B,KAAOA,GACbw+B,GAAMmuF,MAAQA,GACdnuF,GAAMl5C,OAASA,GACfk5C,GAAM5e,KAAOA,GACb4e,GAAMwvF,QAAUA,GAChBxvF,GAAM3e,GAAKA,GACX2e,GAAMyvF,MAAQA,GACdzvF,GAAMp2C,IAAM6tH,GACZz3E,GAAMywF,UAAYA,GAClBzwF,GAAM8sF,QAAUA,GAChB9sF,GAAM+sF,SAAWA,GACjB/sF,GAAMtsB,UAAYA,GAClBssB,GAAMuuF,OAASA,GACfvuF,GAAMyuF,cAAgBA,GACtBzuF,GAAM0uF,eAAiBA,GACvB1uF,GAAM2xE,QAAU4e,GAChBvwF,GAAMs9B,KAAOA,GACbt9B,GAAMj/B,OAASA,GACfi/B,GAAMk1E,WAAaA,GACnBl1E,GAAMjsB,IAAM40G,GACZ3oF,GAAMlsB,IAAM20G,GACZzoF,GAAMwwF,aAAeA,GACrBxwF,GAAMrxC,IAAM+oH,GACZ13E,GAAMguF,QAAUA,GAChBhuF,GAAM6rF,SAAWA,GACjB7rF,GAAMm7B,QAAUA,GAChBn7B,GAAMnhC,SAAWA,GACjBmhC,GAAM7+B,OAASA,GACf6+B,GAAM5uB,YAAcA,GACpB4uB,GAAMg0B,QAAUA,GAEM,qBAAX70D,QAAwC,MAAdA,OAAOk1H,MAC1Cr0F,GAAM7gC,OAAOk1H,IAAI,+BAAiC,WAChD,MAAO,UAAYnrI,KAAKpC,SAAW,MAIvCk5C,GAAMn5B,OAASA,GACfm5B,GAAMh+B,SAAWA,GACjBg+B,GAAMswF,KAAOA,GACbtwF,GAAMqwE,QAAUA,GAChBrwE,GAAM0wF,aAAeA,GACrB1wF,GAAMixF,QAAUG,GAChBpxF,GAAMs0F,UAAYjD,GAClBrxF,GAAMu0F,QAAUjD,GAChBtxF,GAAMw0F,QAAUjD,GAChBvxF,GAAMtvB,KAAO6rG,GACbv8E,GAAMi3E,WAAauF,GACnBx8E,GAAM2mF,SAAW+L,GACjB1yF,GAAM+yF,YAAcH,GACpB5yF,GAAMupF,QAAUvpF,GAAMspF,SAAWgK,GACjCtzF,GAAMtkC,MAAQigH,GACd37E,GAAM1zB,YAAcwI,GACpBkrB,GAAMv5C,KAAOu5C,GAAMwpF,MAAQvL,GAC3Bj+E,GAAMypF,QAAUzpF,GAAMy0F,SAAWvW,GACjCl+E,GAAM09E,YAAcsV,GACpBhzF,GAAM00F,gBAAkBxB,GACxBlzF,GAAM20F,eAAiB9B,GACvB7yF,GAAM40F,sBAAwB9B,GAC9B9yF,GAAM99B,KAAOuxH,GACbzzF,GAAMptC,IAAMotC,GAAMxpB,KAAOupG,GACzB//E,GAAMm9E,QAAU6C,GAChBhgF,GAAMqwF,WAAapQ,GACnBjgF,GAAMs9E,UAAYoW,GAClB1zF,GAAM1tC,KAAO0tC,GAAM7kC,MAAQumH,GAC3B1hF,GAAMztC,OAASytC,GAAM5kC,QAAUu4H,GAC/B3zF,GAAMzF,OAASyF,GAAM/vB,QAAU4jH,GAC/B7zF,GAAMooF,YAAcpoF,GAAM0pF,aAAekK,GACzC5zF,GAAMuqF,UAAYa,GAClBprF,GAAMwwE,IAAMmb,GACZ3rF,GAAMirF,MAAQW,GACd5rF,GAAMm0F,UAAYrI,GAClB9rF,GAAMgsF,qBAAuBA,GAC7BhsF,GAAM60F,MAAQ5I,GACdjsF,GAAMosF,QAAUA,GAChBpsF,GAAMqsF,YAAcA,GACpBrsF,GAAMssF,MAAQA,GACdtsF,GAAMwoF,MAAQ8D,GACdtsF,GAAM80F,SAAWf,GACjB/zF,GAAM+0F,SAAWf,GACjBh0F,GAAMzc,MAAQ+vF,EAAU,kDAAmDmgB,IAC3EzzF,GAAM97C,OAASovH,EAAU,mDAAoDqI,IAC7E37E,GAAMqpF,MAAQ/V,EAAU,iDAAkDiJ,IAC1Ev8E,GAAMmvF,KAAO7b,EAAU,2GAA4GoY,IACnI1rF,GAAMg1F,aAAe1hB,EAAU,0GAA2G4Y,IAc1I,IAAI+I,GAAU9gB,EAAO7pH,UAkCrB,SAAS4qI,GAAMpuI,EAAQmK,EAAOkkI,EAAOC,GACnC,IAAIr0H,EAASE,KACTuvG,EAAMF,IAAY3hH,IAAIymI,EAAQnkI,GAClC,OAAO8P,EAAOo0H,GAAO3kB,EAAK1pH,GAG5B,SAASuuI,GAAevuI,EAAQmK,EAAOkkI,GAQrC,GAPIhlB,EAASrpH,KACXmK,EAAQnK,EACRA,OAASoJ,GAGXpJ,EAASA,GAAU,GAEN,MAATmK,EACF,OAAOikI,GAAMpuI,EAAQmK,EAAOkkI,EAAO,SAGrC,IAAI7kI,EACAglI,EAAM,GAEV,IAAKhlI,EAAI,EAAGA,EAAI,GAAIA,IAClBglI,EAAIhlI,GAAK4kI,GAAMpuI,EAAQwJ,EAAG6kI,EAAO,SAGnC,OAAOG,EAWT,SAASC,GAAiBC,EAAc1uI,EAAQmK,EAAOkkI,GACzB,mBAAjBK,GACLrlB,EAASrpH,KACXmK,EAAQnK,EACRA,OAASoJ,GAGXpJ,EAASA,GAAU,KAGnBmK,EADAnK,EAAS0uI,EAETA,GAAe,EAEXrlB,EAASrpH,KACXmK,EAAQnK,EACRA,OAASoJ,GAGXpJ,EAASA,GAAU,IAGrB,IAEIwJ,EAFAyQ,EAASE,KACTu4B,EAAQg8F,EAAez0H,EAAO88G,MAAMn3H,IAAM,EAE1C4uI,EAAM,GAEV,GAAa,MAATrkI,EACF,OAAOikI,GAAMpuI,GAASmK,EAAQuoC,GAAS,EAAG27F,EAAO,OAGnD,IAAK7kI,EAAI,EAAGA,EAAI,EAAGA,IACjBglI,EAAIhlI,GAAK4kI,GAAMpuI,GAASwJ,EAAIkpC,GAAS,EAAG27F,EAAO,OAGjD,OAAOG,EAGT,SAASG,GAAW3uI,EAAQmK,GAC1B,OAAOokI,GAAevuI,EAAQmK,EAAO,UAGvC,SAASykI,GAAgB5uI,EAAQmK,GAC/B,OAAOokI,GAAevuI,EAAQmK,EAAO,eAGvC,SAAS0kI,GAAaH,EAAc1uI,EAAQmK,GAC1C,OAAOskI,GAAiBC,EAAc1uI,EAAQmK,EAAO,YAGvD,SAAS2kI,GAAkBJ,EAAc1uI,EAAQmK,GAC/C,OAAOskI,GAAiBC,EAAc1uI,EAAQmK,EAAO,iBAGvD,SAAS4kI,GAAgBL,EAAc1uI,EAAQmK,GAC7C,OAAOskI,GAAiBC,EAAc1uI,EAAQmK,EAAO,eA3HvDgkI,GAAQlwI,SAAWA,EACnBkwI,GAAQzwI,eAAiBA,EACzBywI,GAAQv0H,YAAcA,EACtBu0H,GAAQ3uI,QAAUA,EAClB2uI,GAAQxiI,SAAW2hI,GACnBa,GAAQtiI,WAAayhI,GACrBa,GAAQ3vI,aAAeA,GACvB2vI,GAAQ9e,WAAaA,GACrB8e,GAAQtmI,IAAMA,EACdsmI,GAAQrE,KAAOD,GACfsE,GAAQ1B,UAAYvC,GACpBiE,GAAQzN,gBAAkB2J,GAC1B8D,GAAQrD,cAAgBA,GACxBqD,GAAQzD,cAAgBA,GACxByD,GAAQnD,gBAAkBA,GAC1BmD,GAAQ/wI,OAAS22H,GACjBoa,GAAQ7wI,YAAc22H,GACtBka,GAAQz5H,YAAcggH,GACtByZ,GAAQx5H,YAAcA,GACtBw5H,GAAQt5H,iBAAmBA,GAC3Bs5H,GAAQxuI,KAAOm3H,GACfqX,GAAQa,eAAiB9X,GACzBiX,GAAQ1oH,eAAiBwxG,GACzBkX,GAAQ5wI,SAAW46H,GACnBgW,GAAQ1wI,YAAc86H,GACtB4V,GAAQ3wI,cAAgB66H,GACxB8V,GAAQ7W,cAAgBwB,GACxBqV,GAAQvW,cAAgBA,GACxBuW,GAAQxW,mBAAqBA,GAC7BwW,GAAQzW,iBAAmBA,GAC3ByW,GAAQ7iI,KAAO8uH,GACf+T,GAAQ5iI,SAAWsvH,GA+FnBc,GAAmB,KAAM,CACvBmO,KAAM,CAAC,CACLE,MAAO,aACPC,MAAO,IACP9zG,OAAQ,EACRlW,KAAM,cACNmqH,OAAQ,KACRxO,KAAM,MACL,CACDoO,MAAO,aACPC,OAAO,IACP9zG,OAAQ,EACRlW,KAAM,gBACNmqH,OAAQ,KACRxO,KAAM,OAERr8H,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADmC,IAA7B4wH,GAAM5wH,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,SAK5G8hC,EAAMg1C,KAAOg2C,EAAU,wDAAyDmP,IAChFn6F,EAAMytG,SAAWziB,EAAU,gEAAiEryG,IAC5F,IAAI+0H,GAAUp0H,KAAKC,IAEnB,SAASA,KACP,IAAIvI,EAAOpQ,KAAK2gI,MAUhB,OATA3gI,KAAKygI,cAAgBqM,GAAQ9sI,KAAKygI,eAClCzgI,KAAK0gI,MAAQoM,GAAQ9sI,KAAK0gI,OAC1B1gI,KAAK4xH,QAAUkb,GAAQ9sI,KAAK4xH,SAC5BxhH,EAAKowH,aAAesM,GAAQ18H,EAAKowH,cACjCpwH,EAAK2W,QAAU+lH,GAAQ18H,EAAK2W,SAC5B3W,EAAK8B,QAAU46H,GAAQ18H,EAAK8B,SAC5B9B,EAAK6B,MAAQ66H,GAAQ18H,EAAK6B,OAC1B7B,EAAKpV,OAAS8xI,GAAQ18H,EAAKpV,QAC3BoV,EAAK+vH,MAAQ2M,GAAQ18H,EAAK+vH,OACnBngI,KAGT,SAAS+sI,GAAcjiH,EAAUhjB,EAAOqI,EAAOg9C,GAC7C,IAAIqyE,EAAQS,GAAen4H,EAAOqI,GAIlC,OAHA2a,EAAS21G,eAAiBtzE,EAAYqyE,EAAMiB,cAC5C31G,EAAS41G,OAASvzE,EAAYqyE,EAAMkB,MACpC51G,EAAS8mG,SAAWzkE,EAAYqyE,EAAM5N,QAC/B9mG,EAAS81G,UAIlB,SAASoM,GAAMllI,EAAOqI,GACpB,OAAO48H,GAAc/sI,KAAM8H,EAAOqI,EAAO,GAI3C,SAAS88H,GAAWnlI,EAAOqI,GACzB,OAAO48H,GAAc/sI,KAAM8H,EAAOqI,GAAQ,GAG5C,SAAS+8H,GAAQ7vI,GACf,OAAIA,EAAS,EACJqb,KAAKG,MAAMxb,GAEXqb,KAAKo6C,KAAKz1D,GAIrB,SAAS8vI,KACP,IAIIpmH,EACA7U,EACAD,EACAkuH,EACAiN,EARA5M,EAAexgI,KAAKygI,cACpBnzG,EAAOttB,KAAK0gI,MACZ1lI,EAASgF,KAAK4xH,QACdxhH,EAAOpQ,KAAK2gI,MAkChB,OA1BMH,GAAgB,GAAKlzG,GAAQ,GAAKtyB,GAAU,GAAKwlI,GAAgB,GAAKlzG,GAAQ,GAAKtyB,GAAU,IACjGwlI,GAAuD,MAAvC0M,GAAQG,GAAaryI,GAAUsyB,GAC/CA,EAAO,EACPtyB,EAAS,GAKXoV,EAAKowH,aAAeA,EAAe,IACnCz5G,EAAUinG,GAASwS,EAAe,KAClCpwH,EAAK2W,QAAUA,EAAU,GACzB7U,EAAU87G,GAASjnG,EAAU,IAC7B3W,EAAK8B,QAAUA,EAAU,GACzBD,EAAQ+7G,GAAS97G,EAAU,IAC3B9B,EAAK6B,MAAQA,EAAQ,GACrBqb,GAAQ0gG,GAAS/7G,EAAQ,IAGzBjX,GADAoyI,EAAiBpf,GAASsf,GAAahgH,IAEvCA,GAAQ4/G,GAAQG,GAAaD,IAE7BjN,EAAQnS,GAAShzH,EAAS,IAC1BA,GAAU,GACVoV,EAAKkd,KAAOA,EACZld,EAAKpV,OAASA,EACdoV,EAAK+vH,MAAQA,EACNngI,KAGT,SAASstI,GAAahgH,GAGpB,OAAc,KAAPA,EAAc,OAGvB,SAAS+/G,GAAaryI,GAEpB,OAAgB,OAATA,EAAkB,KAG3B,SAASuyI,GAAGjgB,GACV,IAAKttH,KAAKyoH,UACR,OAAOS,IAGT,IAAI57F,EACAtyB,EACAwlI,EAAexgI,KAAKygI,cAGxB,GAAc,WAFdnT,EAAQD,GAAeC,KAEY,YAAVA,GAAiC,SAAVA,EAI9C,OAHAhgG,EAAOttB,KAAK0gI,MAAQF,EAAe,MACnCxlI,EAASgF,KAAK4xH,QAAU0b,GAAahgH,GAE7BggG,GACN,IAAK,QACH,OAAOtyH,EAET,IAAK,UACH,OAAOA,EAAS,EAElB,IAAK,OACH,OAAOA,EAAS,QAMpB,OAFAsyB,EAAOttB,KAAK0gI,MAAQhoH,KAAKwI,MAAMmsH,GAAartI,KAAK4xH,UAEzCtE,GACN,IAAK,OACH,OAAOhgG,EAAO,EAAIkzG,EAAe,OAEnC,IAAK,MACH,OAAOlzG,EAAOkzG,EAAe,MAE/B,IAAK,OACH,OAAc,GAAPlzG,EAAYkzG,EAAe,KAEpC,IAAK,SACH,OAAc,KAAPlzG,EAAckzG,EAAe,IAEtC,IAAK,SACH,OAAc,MAAPlzG,EAAekzG,EAAe,IAGvC,IAAK,cACH,OAAO9nH,KAAKG,MAAa,MAAPyU,GAAgBkzG,EAEpC,QACE,MAAM,IAAIn+H,MAAM,gBAAkBirH,IAM1C,SAASkgB,KACP,OAAKxtI,KAAKyoH,UAIHzoH,KAAKygI,cAA6B,MAAbzgI,KAAK0gI,MAAgB1gI,KAAK4xH,QAAU,GAAK,OAAoC,QAA3B3D,GAAMjuH,KAAK4xH,QAAU,IAH1F1I,IAMX,SAASukB,GAAOC,GACd,OAAO,WACL,OAAO1tI,KAAKutI,GAAGG,IAInB,IAAIC,GAAiBF,GAAO,MACxBG,GAAYH,GAAO,KACnBI,GAAYJ,GAAO,KACnBK,GAAUL,GAAO,KACjBM,GAASN,GAAO,KAChBO,GAAUP,GAAO,KACjBQ,GAAWR,GAAO,KAClBS,GAAaT,GAAO,KACpBU,GAAUV,GAAO,KAErB,SAASW,KACP,OAAOnO,GAAejgI,MAGxB,SAASquI,GAAM/gB,GAEb,OADAA,EAAQD,GAAeC,GAChBttH,KAAKyoH,UAAYzoH,KAAKstH,EAAQ,OAASpE,IAGhD,SAASolB,GAAWzwH,GAClB,OAAO,WACL,OAAO7d,KAAKyoH,UAAYzoH,KAAK2gI,MAAM9iH,GAAQqrG,KAI/C,IAAIsX,GAAe8N,GAAW,gBAC1BvnH,GAAUunH,GAAW,WACrBp8H,GAAUo8H,GAAW,WACrBr8H,GAAQq8H,GAAW,SACnBhhH,GAAOghH,GAAW,QAClBtzI,GAASszI,GAAW,UACpBnO,GAAQmO,GAAW,SAEvB,SAAShO,KACP,OAAOtS,GAAShuH,KAAKstB,OAAS,GAGhC,IAAIpM,GAAQxI,KAAKwI,MACbqtH,GAAa,CACf/xI,GAAI,GAEJD,EAAG,GAEHE,EAAG,GAEHE,EAAG,GAEHE,EAAG,GAEHoY,EAAG,KAEHlY,EAAG,IAIL,SAASyxI,GAAkBhlI,EAAQnM,EAAQoU,EAAeC,EAAUmG,GAClE,OAAOA,EAAOzb,aAAaiB,GAAU,IAAKoU,EAAejI,EAAQkI,GAGnE,SAAS+8H,GAAeC,EAAgBj9H,EAAe88H,EAAY12H,GACjE,IAAIiT,EAAWm1G,GAAeyO,GAAgB/1H,MAC1CoO,EAAU7F,GAAM4J,EAASyiH,GAAG,MAC5Br7H,EAAUgP,GAAM4J,EAASyiH,GAAG,MAC5Bt7H,EAAQiP,GAAM4J,EAASyiH,GAAG,MAC1BjgH,EAAOpM,GAAM4J,EAASyiH,GAAG,MACzBvyI,EAASkmB,GAAM4J,EAASyiH,GAAG,MAC3BjN,EAAQp/G,GAAM4J,EAASyiH,GAAG,MAC1BpN,EAAQj/G,GAAM4J,EAASyiH,GAAG,MAC1B5uH,EAAIoI,GAAWwnH,EAAW/xI,IAAM,CAAC,IAAKuqB,IAAYA,EAAUwnH,EAAWhyI,GAAK,CAAC,KAAMwqB,IAAY7U,GAAW,GAAK,CAAC,MAAQA,EAAUq8H,EAAW9xI,GAAK,CAAC,KAAMyV,IAAYD,GAAS,GAAK,CAAC,MAAQA,EAAQs8H,EAAW5xI,GAAK,CAAC,KAAMsV,IAAUqb,GAAQ,GAAK,CAAC,MAAQA,EAAOihH,EAAW1xI,GAAK,CAAC,KAAMywB,GAU7R,OARoB,MAAhBihH,EAAWt5H,IACb0J,EAAIA,GAAK2hH,GAAS,GAAK,CAAC,MAAQA,EAAQiO,EAAWt5H,GAAK,CAAC,KAAMqrH,KAGjE3hH,EAAIA,GAAK3jB,GAAU,GAAK,CAAC,MAAQA,EAASuzI,EAAWxxI,GAAK,CAAC,KAAM/B,IAAWmlI,GAAS,GAAK,CAAC,MAAQ,CAAC,KAAMA,IACxG,GAAK1uH,EACPkN,EAAE,IAAM+vH,EAAiB,EACzB/vH,EAAE,GAAK9G,EACA22H,GAAkB3qI,MAAM,KAAM8a,GAIvC,SAASgwH,GAA2BC,GAClC,YAAyB5nI,IAArB4nI,EACK1tH,GAGuB,oBAArB0tH,IACT1tH,GAAQ0tH,GACD,GAOX,SAASC,GAA4BvpF,EAAWwpF,GAC9C,YAA8B9nI,IAA1BunI,GAAWjpF,UAIDt+C,IAAV8nI,EACKP,GAAWjpF,IAGpBipF,GAAWjpF,GAAawpF,EAEN,MAAdxpF,IACFipF,GAAW/xI,GAAKsyI,EAAQ,IAGnB,IAGT,SAASzI,GAAS0I,EAAeC,GAC/B,IAAKhvI,KAAKyoH,UACR,OAAOzoH,KAAKgsH,aAAax0G,cAG3B,IAEIK,EACAquG,EAHA+oB,GAAa,EACbC,EAAKX,GA4BT,MAxB6B,kBAAlBQ,IACTC,EAAgBD,EAChBA,GAAgB,GAGW,mBAAlBA,IACTE,EAAaF,GAGc,kBAAlBC,IACTE,EAAK1uI,OAAOkQ,OAAO,GAAI69H,GAAYS,GAEZ,MAAnBA,EAAczyI,GAAiC,MAApByyI,EAAcxyI,KAC3C0yI,EAAG1yI,GAAKwyI,EAAczyI,EAAI,IAK9B2pH,EAASuoB,GAAezuI,MAAOivI,EAAYC,EAD3Cr3H,EAAS7X,KAAKgsH,cAGVijB,IACF/oB,EAASruG,EAAOo1G,YAAYjtH,KAAMkmH,IAG7BruG,EAAOpO,WAAWy8G,GAG3B,IAAIipB,GAAQz2H,KAAKC,IAEjB,SAAS2oH,GAAK5tH,GACZ,OAAQA,EAAI,IAAMA,EAAI,KAAOA,EAG/B,SAAS07H,KAQP,IAAKpvI,KAAKyoH,UACR,OAAOzoH,KAAKgsH,aAAax0G,cAG3B,IAGItF,EACAD,EACAkuH,EACA5jI,EAEA8yI,EACAC,EACAC,EACAC,EAXAzoH,EAAUooH,GAAMnvI,KAAKygI,eAAiB,IACtCnzG,EAAO6hH,GAAMnvI,KAAK0gI,OAClB1lI,EAASm0I,GAAMnvI,KAAK4xH,SAKpB3lF,EAAQjsC,KAAK4tI,YAMjB,OAAK3hG,GAOL/5B,EAAU87G,GAASjnG,EAAU,IAC7B9U,EAAQ+7G,GAAS97G,EAAU,IAC3B6U,GAAW,GACX7U,GAAW,GAEXiuH,EAAQnS,GAAShzH,EAAS,IAC1BA,GAAU,GAEVuB,EAAIwqB,EAAUA,EAAQ0C,QAAQ,GAAG3rB,QAAQ,SAAU,IAAM,GACzDuxI,EAAYpjG,EAAQ,EAAI,IAAM,GAC9BqjG,EAAShO,GAAKthI,KAAK4xH,WAAa0P,GAAKr1F,GAAS,IAAM,GACpDsjG,EAAWjO,GAAKthI,KAAK0gI,SAAWY,GAAKr1F,GAAS,IAAM,GACpDujG,EAAUlO,GAAKthI,KAAKygI,iBAAmBa,GAAKr1F,GAAS,IAAM,GACpDojG,EAAY,KAAOlP,EAAQmP,EAASnP,EAAQ,IAAM,KAAOnlI,EAASs0I,EAASt0I,EAAS,IAAM,KAAOsyB,EAAOiiH,EAAWjiH,EAAO,IAAM,KAAOrb,GAASC,GAAW6U,EAAU,IAAM,KAAO9U,EAAQu9H,EAAUv9H,EAAQ,IAAM,KAAOC,EAAUs9H,EAAUt9H,EAAU,IAAM,KAAO6U,EAAUyoH,EAAUjzI,EAAI,IAAM,KAjBhS,MAoBX,IAAIkzI,GAAUvP,GAAS9+H,UAkGvB,OAjGAquI,GAAQhnB,QAAUsX,GAClB0P,GAAQ92H,IAAMA,GACd82H,GAAQnqI,IAAM0nI,GACdyC,GAAQ9M,SAAWsK,GACnBwC,GAAQlC,GAAKA,GACbkC,GAAQ9B,eAAiBA,GACzB8B,GAAQ7B,UAAYA,GACpB6B,GAAQ5B,UAAYA,GACpB4B,GAAQ3B,QAAUA,GAClB2B,GAAQ1B,OAASA,GACjB0B,GAAQzB,QAAUA,GAClByB,GAAQxB,SAAWA,GACnBwB,GAAQvB,WAAaA,GACrBuB,GAAQtB,QAAUA,GAClBsB,GAAQtoB,QAAUqmB,GAClBiC,GAAQ7O,QAAUuM,GAClBsC,GAAQ5N,MAAQuM,GAChBqB,GAAQ/uI,IAAM2tI,GACdoB,GAAQjP,aAAeA,GACvBiP,GAAQ1oH,QAAUA,GAClB0oH,GAAQv9H,QAAUA,GAClBu9H,GAAQx9H,MAAQA,GAChBw9H,GAAQniH,KAAOA,GACfmiH,GAAQnP,MAAQA,GAChBmP,GAAQz0I,OAASA,GACjBy0I,GAAQtP,MAAQA,GAChBsP,GAAQpJ,SAAWA,GACnBoJ,GAAQvnH,YAAcknH,GACtBK,GAAQ32H,SAAWs2H,GACnBK,GAAQ9xH,OAASyxH,GACjBK,GAAQ53H,OAASA,GACjB43H,GAAQzjB,WAAaA,GACrByjB,GAAQC,YAActlB,EAAU,sFAAuFglB,IACvHK,GAAQr7D,KAAOA,GAEf03C,EAAe,IAAK,EAAG,EAAG,QAC1BA,EAAe,IAAK,EAAG,EAAG,WAE1B8D,GAAc,IAAKL,IACnBK,GAAc,IAAKF,IACnBa,GAAc,KAAK,SAAUzoH,EAAOkwB,EAAO1a,GACzCA,EAAOqL,GAAK,IAAIzQ,KAAyB,IAApBuO,WAAW3e,OAElCyoH,GAAc,KAAK,SAAUzoH,EAAOkwB,EAAO1a,GACzCA,EAAOqL,GAAK,IAAIzQ,KAAK+1G,GAAMnmH,OAG7Bs3B,EAAMuwG,QAAU,SAChB9oB,EAAgBiX,IAChB1+F,EAAMjV,GAAK2sB,GACX1X,EAAMxU,IAAMA,GACZwU,EAAMvU,IAAMA,GACZuU,EAAM/kB,IAAMA,GACZ+kB,EAAMkoF,IAAMF,EACZhoF,EAAMgoG,KAAO2D,GACb3rG,EAAMpkC,OAASuxI,GACfntG,EAAM8nF,OAASA,EACf9nF,EAAMvnB,OAAS0hH,GACfn6F,EAAM4kG,QAAU/a,EAChB7pF,EAAMtU,SAAWm1G,GACjB7gG,EAAM4qF,SAAWA,EACjB5qF,EAAMjkC,SAAWsxI,GACjBrtG,EAAM6rG,UAAYD,GAClB5rG,EAAM4sF,WAAaj0G,GACnBqnB,EAAMyhG,WAAaA,GACnBzhG,EAAMlkC,YAAcsxI,GACpBptG,EAAM/jC,YAAcsxI,GACpBvtG,EAAMrkC,aAAeA,GACrBqkC,EAAMs6F,aAAeA,GACrBt6F,EAAMw5F,QAAUgB,GAChBx6F,EAAMhkC,cAAgBsxI,GACtBttG,EAAMiuF,eAAiBA,GACvBjuF,EAAMwwG,qBAAuBjB,GAC7BvvG,EAAMywG,sBAAwBhB,GAC9BzvG,EAAM2lG,eAAiBL,GACvBtlG,EAAMh+B,UAAY01C,GAElB1X,EAAM0wG,UAAY,CAChBC,eAAgB,mBAEhBC,uBAAwB,sBAExBC,kBAAmB,0BAEnBpf,KAAM,aAENqf,KAAM,QAENC,aAAc,WAEdC,QAAS,eAETlf,KAAM,aAENN,MAAO,WAGFxxF,EAn+JyE1hC,K,+CCDzE,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,gXAAyEC,MAAM,KACvFC,YAAa,gXAAyED,MAAM,KAC5FE,SAAU,uRAAsDF,MAAM,KACtEG,cAAe,mMAAwCH,MAAM,KAC7DI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,8FACTC,QAAS,kFACTC,SAAU,oEACVC,QAAS,kFACTC,SAAU,oEACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,wBACNC,EAAG,2BACHC,GAAI,oCACJC,EAAG,iCACHC,GAAI,oCACJC,EAAG,2BACHC,GAAI,oCACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,qCAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KA9CuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIE,EAAS,CAAC,iCAAS,6CAAW,2BAAQ,iCAAS,qBAAO,qBAAO,uCAAU,2BAAQ,6CAAW,uCAAU,iCAAS,kCAC7GsyB,EAAO,CAAC,qBAAO,2BAAQ,iCAAS,2BAAQ,2BAAQ,qBAAO,4BAClDxyB,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaF,EACbG,SAAUmyB,EACVlyB,cAAekyB,EACfjyB,YAAaiyB,EACbhyB,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,gCAERqN,cAAe,wCACfC,KAAM,SAAUpB,GACd,MAAO,uBAAUA,GAEnBqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,qBAGF,sBAETvN,SAAU,CACRC,QAAS,oBACTC,QAAS,sCACTC,SAAU,2EACVC,QAAS,sCACTC,SAAU,mFACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,kBACNC,EAAG,oDACHC,GAAI,oCACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,kCACHC,GAAI,yBAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,UAAM,MAE9B2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,KAAM,WAE9BP,KAAM,CACJC,IAAK,EAELC,IAAK,KAhEuFC,CAAQ,EAAQ,U,qBCCjDwK,EAAOC,QAC/D,SAAUkoI,GACjB,aAGA,IAAIC,GADJD,EAAQA,GAASA,EAAM91H,eAAe,WAAa81H,EAAe,QAAIA,GAClDC,QAEhBC,EAAmB,WACrB,GAAsB,qBAAXt5H,OAAwB,CACjC,GAAIA,OAAOs5H,iBACT,OAAOt5H,OAAOs5H,iBAMhB,IAAIr7F,EAASj+B,OAAOi+B,OAEpB,GAAIA,EACF,OAAQA,EAAOs7F,YAAc,IAAMt7F,EAAOu7F,aAAe,GAI7D,OAAO,EAhBc,GAmBnB9kH,EAAQ,CAEV+kH,YAAa,SAAUt+B,GACrB,IACItqG,EADA6oI,EAAQ,GAIZ,IAFAv+B,EAAS,GAAGz7F,OAAOy7F,GAEZA,EAAOpqG,QAGS,kBAFrBF,EAAQsqG,EAAO/oD,OAGbsnF,EAAMn3F,QAAQ31C,MAAM8sI,EAAO7oI,EAAM7M,MAAM,OAC9BwjB,MAAMisB,QAAQ5iC,GACvBsqG,EAAOpkG,KAAKnK,MAAMuuG,EAAQtqG,GAChBwoI,EAAQM,cAAcx+B,IAChCu+B,EAAMn3F,QAAQ,GAAK1xC,GAIvB,OAAO6oI,GAITE,aAAc,SAAUC,GACtB,OAAKA,GAAQR,EAAQM,cAAcE,EAAKx/E,OAASg/E,EAAQM,cAAcE,EAAKC,QACnE,MAGDD,EAAKngI,MAAQmgI,EAAKngI,MAAQ,IAAM,KAAOmgI,EAAKE,OAASF,EAAKE,OAAS,IAAM,IAAMF,EAAKx/E,KAAO,MAAQw/E,EAAKC,QAIlHE,SAAU,SAAUC,EAAKP,EAAOG,GAC9B,IAII1pI,EAJAyvC,EAAQ,GAAGlgC,OAAOg6H,GAClBQ,EAAOt6F,EAAM7uC,OACb80C,EAAOo0F,EAAIJ,KACXtjH,EAAQ,EAIZ,IAFA0jH,EAAIJ,KAAOA,EAAKtnI,OAEXpC,EAAI,EAAGA,EAAI+pI,IAAQ/pI,EACtBomB,EAAQ9U,KAAKmS,IAAIqmH,EAAIE,YAAYv6F,EAAMzvC,IAAIomB,MAAOA,GAIpD,OADA0jH,EAAIJ,KAAOh0F,EACJ,CACL3tC,OAAQgiI,EAAOL,EAAKO,WACpB7jH,MAAOA,IAIX8jH,UAAW,SAAUnhI,GACnB,IAAIlI,EAASooI,EAAMvxH,SAAS7W,OACxBqpD,EAAOg/E,EAAQiB,eAAephI,EAAMmhD,KAAMrpD,EAAOupI,iBACjDV,EAAO,CACTC,OAAQT,EAAQiB,eAAephI,EAAM4gI,OAAQ9oI,EAAOwpI,mBACpDJ,WAAYf,EAAQn5H,QAAQu6H,aAAavhI,EAAMkhI,WAAY//E,GAC3DA,KAAMA,EACN3gD,MAAO2/H,EAAQiB,eAAephI,EAAMQ,MAAO1I,EAAO0pI,kBAClDX,OAAQV,EAAQiB,eAAephI,EAAM6gI,OAAQ,MAC7CxnI,OAAQ,IAGV,OADAsnI,EAAKtnI,OAASmiB,EAAMklH,aAAaC,GAC1BA,GAQTc,MAAO,SAAUhnH,EAAKza,EAAO0a,GAC3B,OAAOnS,KAAKmS,IAAID,EAAKlS,KAAKkS,IAAIza,EAAO0a,KAQvCgnH,UAAW,SAAUC,EAAIC,GACvB,IAEI3qI,EAAGwP,EAAGu6H,EAAMvjG,EAFZkP,EAAOg1F,EAAGlqI,QACVk2D,EAAU,GAGd,IAAK12D,EAAI,EAAG+pI,EAAOY,EAAG/pI,OAAQZ,EAAI+pI,IAAQ/pI,EACxCwmC,EAAImkG,EAAG3qI,IAGI,KAFXwP,EAAIkmC,EAAKn1C,QAAQimC,IAGfkwB,EAAQ9vD,KAAK,CAAC4/B,EAAG,IAEjBkP,EAAKrmB,OAAO7f,EAAG,GAInB,IAAKxP,EAAI,EAAG+pI,EAAOr0F,EAAK90C,OAAQZ,EAAI+pI,IAAQ/pI,EAC1C02D,EAAQ9vD,KAAK,CAAC8uC,EAAK11C,IAAK,IAG1B,OAAO02D,GAMTk0E,UAAW,SAAUpkG,GACnB,OAAOl1B,KAAKwI,MAAM0sB,EAAI2iG,GAAoBA,IAI9C,SAAS0B,EAAOnlG,EAAOuH,GACrB,IAAI69F,EAAK79F,EAAO3gC,EACZy+H,EAAK99F,EAAOp3C,EAEhB,GAAW,OAAPi1I,EACF,MAAO,CACLx+H,EAAG,EACHzW,GAAI,GAIR,GAAW,OAAPk1I,EACF,MAAO,CACLz+H,EAAG,EACHzW,EAAG,GAIP,IAAIm1I,EAAKtlG,EAAMp5B,EAAIw+H,EACfG,EAAKvlG,EAAM7vC,EAAIk1I,EACfG,EAAK55H,KAAKguC,KAAK0rF,EAAKA,EAAKC,EAAKA,GAClC,MAAO,CACL3+H,EAAG4+H,EAAKF,EAAKE,EAAK,EAClBr1I,EAAGq1I,EAAKD,EAAKC,GAAM,GAIvB,SAASC,EAAQ7+H,EAAGzW,EAAGu1I,EAAIC,EAAIC,GAC7B,OAAQA,GACN,IAAK,SACHF,EAAKC,EAAK,EACV,MAEF,IAAK,SACHD,EAAK,EACLC,EAAK,EACL,MAEF,IAAK,QACHD,EAAK,EACLC,EAAK,EACL,MAEF,IAAK,OACHD,GAAM,EACNC,EAAK,EACL,MAEF,IAAK,MACHD,EAAK,EACLC,GAAM,EACN,MAEF,IAAK,QACHD,GAAMA,EACNC,GAAMA,EACN,MAEF,IAAK,MAEH,MAEF,QAEEC,GAASh6H,KAAKouC,GAAK,IACnB0rF,EAAK95H,KAAKi6H,IAAID,GACdD,EAAK/5H,KAAKk6H,IAAIF,GAIlB,MAAO,CACLh/H,EAAGA,EACHzW,EAAGA,EACHu1I,GAAIA,EACJC,GAAIA,GAMR,IAAII,EAAW,EACXC,EAAS,EACTC,EAAU,EACVC,EAAW,EACXC,EAAQ,EAEZ,SAASC,EAAOx/H,EAAGzW,EAAGk2I,GACpB,IAAIj8F,EAAM27F,EAcV,OAZIn/H,EAAIy/H,EAAKr/H,KACXojC,GAAO47F,EACEp/H,EAAIy/H,EAAK52G,QAClB2a,GAAO67F,GAGL91I,EAAIk2I,EAAK/jI,IACX8nC,GAAO+7F,EACEh2I,EAAIk2I,EAAKl3G,SAClBib,GAAO87F,GAGF97F,EAGT,SAASk8F,EAAQC,EAASC,GASxB,IARA,IAMI90H,EAAG9K,EAAGzW,EANNi1I,EAAKmB,EAAQnB,GACbC,EAAKkB,EAAQlB,GACboB,EAAKF,EAAQE,GACbC,EAAKH,EAAQG,GACbC,EAAKP,EAAOhB,EAAIC,EAAImB,GACpBI,EAAKR,EAAOK,EAAIC,EAAIF,GAIhBG,EAAKC,KAAOD,EAAKC,KAMvBl1H,EAAIi1H,GAAMC,GAEFT,GACNv/H,EAAIw+H,GAAMqB,EAAKrB,IAAOoB,EAAKlkI,IAAM+iI,IAAOqB,EAAKrB,GAC7Cl1I,EAAIq2I,EAAKlkI,KACAoP,EAAIw0H,GACbt/H,EAAIw+H,GAAMqB,EAAKrB,IAAOoB,EAAKr3G,OAASk2G,IAAOqB,EAAKrB,GAChDl1I,EAAIq2I,EAAKr3G,QACAzd,EAAIu0H,GACb91I,EAAIk1I,GAAMqB,EAAKrB,IAAOmB,EAAK/2G,MAAQ21G,IAAOqB,EAAKrB,GAC/Cx+H,EAAI4/H,EAAK/2G,OACA/d,EAAIs0H,IACb71I,EAAIk1I,GAAMqB,EAAKrB,IAAOmB,EAAKx/H,KAAOo+H,IAAOqB,EAAKrB,GAC9Cx+H,EAAI4/H,EAAKx/H,MAGP0K,IAAMi1H,EAGRA,EAAKP,EAFLhB,EAAKx+H,EACLy+H,EAAKl1I,EACeq2I,GAIpBI,EAAKR,EAFLK,EAAK7/H,EACL8/H,EAAKv2I,EACeq2I,GAIxB,MAAO,CACLpB,GAAIA,EACJqB,GAAIA,EACJpB,GAAIA,EACJqB,GAAIA,GAIR,SAASG,EAAQ31G,EAAO1gB,GACtB,IAEI5J,EAAGzW,EAFH4oI,EAASvoH,EAAOuoH,OAChBwN,EAAUr1G,EAkBd,OAfI1gB,EAAO0kB,QACTqxG,EAAUD,EAAQC,EAAS/1H,EAAOg2H,OAGrB,UAAXzN,GACFnyH,EAAI2/H,EAAQnB,GACZj1I,EAAIo2I,EAAQlB,IACQ,QAAXtM,GACTnyH,EAAI2/H,EAAQE,GACZt2I,EAAIo2I,EAAQG,KAEZ9/H,GAAK2/H,EAAQnB,GAAKmB,EAAQE,IAAM,EAChCt2I,GAAKo2I,EAAQlB,GAAKkB,EAAQG,IAAM,GAG3BjB,EAAQ7+H,EAAGzW,EAAG+gC,EAAMw0G,GAAIx0G,EAAMy0G,GAAIn1H,EAAOo1H,OAGlD,IAAIkB,EAAc,CAChBC,IAAK,SAAUC,EAAIx2H,GACjB,IAAIy2H,GAASD,EAAGE,WAAaF,EAAGG,UAAY,EACxCzB,EAAK95H,KAAKi6H,IAAIoB,GACdtB,EAAK/5H,KAAKk6H,IAAImB,GACdN,EAAKK,EAAGI,YACRR,EAAKI,EAAGK,YACZ,OAAOR,EAAQ,CACbzB,GAAI4B,EAAGpgI,EAAI8+H,EAAKiB,EAChBtB,GAAI2B,EAAG72I,EAAIw1I,EAAKgB,EAChBF,GAAIO,EAAGpgI,EAAI8+H,EAAKkB,EAChBF,GAAIM,EAAG72I,EAAIw1I,EAAKiB,EAChBlB,GAAIA,EACJC,GAAIA,GACHn1H,IAELwvB,MAAO,SAAUgnG,EAAIx2H,GACnB,IAAIswB,EAAIqkG,EAAO6B,EAAIx2H,EAAO+2B,QACtB+/F,EAAKxmG,EAAEl6B,EAAIogI,EAAGO,OACdC,EAAK1mG,EAAE3wC,EAAI62I,EAAGO,OAClB,OAAOV,EAAQ,CACbzB,GAAI4B,EAAGpgI,EAAI0gI,EACXjC,GAAI2B,EAAG72I,EAAIq3I,EACXf,GAAIO,EAAGpgI,EAAI0gI,EACXZ,GAAIM,EAAG72I,EAAIq3I,EACX9B,GAAI5kG,EAAEl6B,EACN++H,GAAI7kG,EAAE3wC,GACLqgB,IAEL61H,KAAM,SAAUW,EAAIx2H,GAClB,IAAIswB,EAAIqkG,EAAO6B,EAAIx2H,EAAO+2B,QACtB3gC,EAAIogI,EAAGpgI,EACPzW,EAAI62I,EAAG72I,EACPs3I,EAAK,EACLC,EAAK,EAUT,OARIV,EAAGW,YACL/gI,EAAIgF,KAAKkS,IAAIkpH,EAAGpgI,EAAGogI,EAAGx4E,MACtBi5E,EAAK77H,KAAKC,IAAIm7H,EAAGx4E,KAAOw4E,EAAGpgI,KAE3BzW,EAAIyb,KAAKkS,IAAIkpH,EAAG72I,EAAG62I,EAAGx4E,MACtBk5E,EAAK97H,KAAKC,IAAIm7H,EAAGx4E,KAAOw4E,EAAG72I,IAGtB02I,EAAQ,CACbzB,GAAIx+H,EACJy+H,GAAIl1I,EAAIu3I,EACRjB,GAAI7/H,EAAI6gI,EACRf,GAAIv2I,EACJu1I,GAAI5kG,EAAEl6B,EACN++H,GAAI7kG,EAAE3wC,GACLqgB,IAELo3H,SAAU,SAAUZ,EAAIx2H,GACtB,IAAIswB,EAAIqkG,EAAO6B,EAAIx2H,EAAO+2B,QAC1B,OAAOs/F,EAAQ,CACbzB,GAAI4B,EAAGpgI,EACPy+H,GAAI2B,EAAG72I,EACPs2I,GAAIO,EAAGpgI,EACP8/H,GAAIM,EAAG72I,EACPu1I,GAAI5kG,EAAEl6B,EACN++H,GAAI7kG,EAAE3wC,GACLqgB,KAGHq3H,EAAYtE,EAAMC,QAClB0B,EAAYrmH,EAAMqmH,UAEtB,SAAS4C,EAAchT,GACrB,IAAIiT,EAAcjT,EAAMiT,aAAe,EACnCC,EAAUlT,EAAMkT,QAChB5F,EAAKtN,EAAMtwE,KAAKniD,OAChB4lI,EAAKnT,EAAMtwE,KAAK9jC,MAChBwnH,GAAMD,EAAK,EACXE,GAAM/F,EAAK,EACf,MAAO,CACLgG,MAAO,CACLxhI,EAAGshI,EAAKF,EAAQhhI,KAAO+gI,EACvB53I,EAAGg4I,EAAKH,EAAQ1lI,IAAMylI,EACtB5/H,EAAG8/H,EAAKD,EAAQtnH,MAAsB,EAAdqnH,EACxBl4I,EAAGuyI,EAAK4F,EAAQ3lI,OAAuB,EAAd0lI,GAE3B94F,KAAM,CACJroC,EAAGshI,EACH/3I,EAAGg4I,EACHhgI,EAAG8/H,EACHp4I,EAAGuyI,IAKT,SAASiG,EAAe3lI,GACtB,IAAIilI,EAAajlI,EAAG4lI,OAAOX,WACvBY,EAAQ7lI,EAAG8lI,QAAUb,GAAcjlI,EAAG+lI,SAAW/lI,EAAGgmI,QAExD,IAAKH,EACH,OAAO,KAGT,QAAsBruI,IAAlBquI,EAAMI,cAA2CzuI,IAAlBquI,EAAMK,QACvC,MAAO,CACLhiI,EAAG2hI,EAAMI,QACTx4I,EAAGo4I,EAAMK,SAIb,IAAIC,EAAQN,EAAMO,eAClB,OAAOnB,EAAa,CAClB/gI,EAAGiiI,EACH14I,EAAG,MACD,CACFyW,EAAG,KACHzW,EAAG04I,GAIP,SAASE,EAAcrmI,GACrB,OAAIA,aAAc6gI,EAAMt9D,SAAS+iE,IACxBlC,EAAYC,IAGjBrkI,aAAc6gI,EAAMt9D,SAASgjE,MACxBnC,EAAY9mG,MAGjBt9B,aAAc6gI,EAAMt9D,SAASijE,UACxBpC,EAAYT,KAGdS,EAAYc,SAGrB,SAASuB,EAAU/E,EAAKiC,EAAMvR,GAC5B,IAAIsU,EAAUtU,EAAMzqD,gBAChBg/D,EAAcvU,EAAMuU,YACpBtB,EAAcjT,EAAMiT,aAEnBqB,GAAaC,GAAgBtB,KAIlC3D,EAAIkF,YACJzB,EAAU0B,OAAOC,YAAYpF,EAAKc,EAAUmB,EAAKz/H,GAAKmhI,EAAc,EAAG7C,EAAUmB,EAAKl2I,GAAK43I,EAAc,EAAG7C,EAAUmB,EAAKl+H,GAAK4/H,EAAa7C,EAAUmB,EAAKx2I,GAAKk4I,EAAajT,EAAM2U,cACpLrF,EAAIsF,YAEAN,IACFhF,EAAIuF,UAAYP,EAChBhF,EAAIwF,QAGFP,GAAetB,IACjB3D,EAAIyF,YAAcR,EAClBjF,EAAI0F,UAAY/B,EAChB3D,EAAI2F,SAAW,QACf3F,EAAI4F,WAIR,SAASC,EAAa5D,EAAMT,EAAO5B,GACjC,IAAIn0I,EAAIm0I,EAAKO,WACTp8H,EAAIk+H,EAAKl+H,EACTvB,EAAIy/H,EAAKz/H,EASb,MANc,WAAVg/H,EACFh/H,GAAKuB,EAAI,EACU,QAAVy9H,GAA6B,UAAVA,IAC5Bh/H,GAAKuB,GAGA,CACLtY,EAAGA,EACHsY,EAAGA,EACHvB,EAAGA,EACHzW,EAZMk2I,EAAKl2I,EAAIN,EAAI,GAgBvB,SAASq6I,EAAa9F,EAAKn1F,EAAMk7F,GAC/B,IAAIC,EAAShG,EAAIiG,WACbC,EAAUH,EAAIG,QACd1jI,EAAIs+H,EAAUiF,EAAIvjI,GAClBzW,EAAI+0I,EAAUiF,EAAIh6I,GAClBgY,EAAI+8H,EAAUiF,EAAIhiI,GAElBmiI,GACFlG,EAAImG,WAAWt7F,EAAMroC,EAAGzW,EAAGgY,GAGzBgiI,EAAIK,SACFJ,GAAUE,IAGZlG,EAAIiG,WAAa,GAGnBjG,EAAIqG,SAASx7F,EAAMroC,EAAGzW,EAAGgY,GAErBiiI,GAAUE,IACZlG,EAAIiG,WAAaD,IAKvB,SAASM,EAAStG,EAAKP,EAAOwC,EAAMvR,GAClC,IAQIx6H,EARAsrI,EAAQ9Q,EAAM6V,UACdC,EAAQ9V,EAAM8V,MACdJ,IAAWI,EACX5G,EAAOlP,EAAMkP,KACbK,EAAOR,EAAM3oI,OACb2vI,EAAc/V,EAAMgW,gBACpBC,EAAcjW,EAAMkW,gBACpBV,EAAUO,GAAeE,EAG7B,GAAK1G,IAASmG,GAAWF,GAsBzB,IAjBAjE,EAAO4D,EAAa5D,EAAMT,EAAO5B,GACjCI,EAAIJ,KAAOA,EAAKtnI,OAChB0nI,EAAIuG,UAAY/E,EAChBxB,EAAI6G,aAAe,SACnB7G,EAAIiG,WAAavV,EAAMoW,eACvB9G,EAAI+G,YAAcrW,EAAMsW,gBAEpBZ,IACFpG,EAAIuF,UAAYiB,GAGdN,IACFlG,EAAI2F,SAAW,QACf3F,EAAI0F,UAAYiB,EAChB3G,EAAIyF,YAAcgB,GAGfvwI,EAAI,EAAG+pI,EAAOR,EAAM3oI,OAAQZ,EAAI+pI,IAAQ/pI,EAC3C4vI,EAAa9F,EAAKP,EAAMvpI,GAAI,CAC1BgwI,QAASA,EACTE,OAAQA,EACRriI,EAAGk+H,EAAKl+H,EACRvB,EAAGy/H,EAAKz/H,EACRzW,EAAGk2I,EAAKl2I,EAAIk2I,EAAKx2I,EAAIyK,IAK3B,IAAI+wI,EAAQ,SAAU76H,EAAQ4zH,EAAK1hI,EAAIzH,GACrC,IAAIo6B,EAAKniC,KACTmiC,EAAGuoF,QAAUptG,EACb6kB,EAAGi2G,OAASrwI,EACZo6B,EAAGizG,OAAS,KACZjzG,EAAGk2G,OAAS,KACZl2G,EAAGm2G,KAAOpH,EACV/uG,EAAGo2G,IAAM/oI,GAGXmlI,EAAUxtG,OAAOgxG,EAAM/2I,UAAW,CAIhCo3I,UAAW,SAAUrrH,EAASwjH,EAAOrzH,EAAQiH,GAC3C,IAAI4d,EAAKniC,KACL+H,EAAQo6B,EAAGi2G,OACXx1E,EAAU+xE,EAAUx9H,QAAQyrD,QAC5BkuE,EAAOnlH,EAAM2lH,UAAU1uE,EAAQ,CAACtlD,EAAOwzH,KAAM,IAAKvsH,EAASxc,IAC3D2vI,EAAQ90E,EAAQ,CAACtlD,EAAOo6H,MAAOrH,EAAMvxH,SAAS7W,OAAOwwI,kBAAmBl0H,EAASxc,GACrF,MAAO,CACL2qI,MAAO9vE,EAAQ,CAACtlD,EAAOo1H,MAAO,UAAWnuH,EAASxc,GAClD89H,OAAQjjE,EAAQ,CAACtlD,EAAOuoH,OAAQ,UAAWthH,EAASxc,GACpDurI,KAAM/uH,EAAQm0H,MAAMC,UACpBxhE,gBAAiBvU,EAAQ,CAACtlD,EAAO65D,gBAAiB,MAAO5yD,EAASxc,GAClEouI,YAAavzE,EAAQ,CAACtlD,EAAO64H,YAAa,MAAO5xH,EAASxc,GAC1DwuI,aAAc3zE,EAAQ,CAACtlD,EAAOi5H,aAAc,GAAIhyH,EAASxc,GACzD8sI,YAAajyE,EAAQ,CAACtlD,EAAOu3H,YAAa,GAAItwH,EAASxc,GACvDi6B,MAAO4gC,EAAQ,CAACtlD,EAAO0kB,OAAO,GAAQzd,EAASxc,GAC/C6wI,KAAMh2E,EAAQ,CAACtlD,EAAOs7H,MAAM,GAAQr0H,EAASxc,GAC7C2vI,MAAOA,EACPvqH,QAASA,EACT2jH,KAAMA,EACNH,MAAOA,EACP58G,OAAQ6uC,EAAQ,CAACtlD,EAAOyW,OAAQ,GAAIxP,EAASxc,GAC7C46E,QAAS/f,EAAQ,CAACtlD,EAAOqlE,QAAS,GAAIp+D,EAASxc,GAC/CssC,OAAQ8gG,EAAehzG,EAAGo2G,KAC1BzD,QAASH,EAAUx9H,QAAQ0hI,UAAUj2E,EAAQ,CAACtlD,EAAOw3H,QAAS,GAAIvwH,EAASxc,IAC3E+wI,WAAYjD,EAAc1zG,EAAGo2G,KAC7BQ,SAAUn2E,EAAQ,CAACtlD,EAAOy7H,SAAU,GAAIx0H,EAASxc,IAAU2Q,KAAKouC,GAAK,KACrEwK,KAAM3lC,EAAMslH,SAAS9uG,EAAGm2G,KAAM3H,EAAOG,GACrC2G,UAAW70E,EAAQ,CAACtlD,EAAOm6H,UAAW,SAAUlzH,EAASxc,GACzDiwI,eAAgBp1E,EAAQ,CAACtlD,EAAO06H,eAAgB,GAAIzzH,EAASxc,GAC7DmwI,gBAAiBt1E,EAAQ,CAACtlD,EAAO46H,gBAAiBR,GAAQnzH,EAASxc,GACnE6vI,gBAAiBh1E,EAAQ,CAACtlD,EAAOs6H,gBAAiBF,GAAQnzH,EAASxc,GACnE+vI,gBAAiBl1E,EAAQ,CAACtlD,EAAOw6H,gBAAiB,GAAIvzH,EAASxc,KAGnEmpD,OAAQ,SAAU3sC,GAChB,IAKIpU,EAAO9C,EAAOsjI,EALdxuG,EAAKniC,KACL4hI,EAAQ,KACRoX,EAAQ,KACRjxI,EAAQo6B,EAAGi2G,OACX96H,EAAS6kB,EAAGuoF,QAIZv9F,EAAUwnH,EAAUx9H,QAAQyrD,QAAQ,CAACtlD,EAAO6P,SAAS,GAAO5I,EAASxc,GAErEolB,IACFhd,EAAQoU,EAAQ6V,QAAQhqB,KAAKrI,GAC7BsF,EAAQsnI,EAAUpD,eAAeoD,EAAU3xI,SAASsa,EAAOqjD,UAAW,CAACxwD,EAAOoU,IAAWpU,IACzFwgI,EAAQgE,EAAU/D,cAAcvjI,GAAS,GAAKse,EAAM+kH,YAAYrjI,IAEtDrF,SAERgxI,EAAQpE,EADRhT,EAAQz/F,EAAGq2G,UAAUrrH,EAASwjH,EAAOrzH,EAAQiH,MAKjD4d,EAAGizG,OAASxT,EACZz/F,EAAGk2G,OAASW,GAEdC,SAAU,WACR,OAAOj5I,KAAKq4I,OAASr4I,KAAKq4I,OAAOnD,MAAQ,IAE3C6D,SAAU,WACR,OAAO/4I,KAAKo1I,OAASp1I,KAAKo1I,OAAO2D,SAAW,GAE9CG,QAAS,WACP,OAAOl5I,KAAKo1I,QAAUp1I,KAAKo1I,OAAOzyD,SAEpCi/C,MAAO,WACL,OAAO5hI,KAAKo1I,QAEd+D,KAAM,SAAUT,EAAOU,GACrB,IAII9F,EAJAnxG,EAAKniC,KACLkxI,EAAMwH,EAAMxH,IACZtP,EAAQz/F,EAAGizG,OACX4D,EAAQ72G,EAAGk2G,OAGVr4I,KAAKk5I,YAIVhI,EAAImI,OAEAzX,EAAMgX,OACRtF,EAAO1R,EAAM0R,KACbpC,EAAIkF,YACJlF,EAAIiC,KAAKG,EAAKx/H,KAAMw/H,EAAKlkI,IAAKkkI,EAAK/2G,MAAQ+2G,EAAKx/H,KAAMw/H,EAAKr3G,OAASq3G,EAAKlkI,KACzE8hI,EAAI0H,QAGN1H,EAAIoI,YAAc3tH,EAAMimH,MAAM,EAAGhQ,EAAMj/C,QAAS,GAChDuuD,EAAI1/H,UAAUwgI,EAAUoH,EAAO1lI,GAAIs+H,EAAUoH,EAAOn8I,IACpDi0I,EAAIqI,OAAO3X,EAAMmX,UACjB9C,EAAU/E,EAAK8H,EAAM9D,MAAOtT,GAC5B4V,EAAStG,EAAKtP,EAAM+O,MAAOqI,EAAMj9F,KAAM6lF,GACvCsP,EAAIsI,cAGR,IAAIC,EAAYpJ,EAAMC,QAClBoJ,EAAcroF,OAAOsoF,mBAAqB,iBAE1CC,EAAcvoF,OAAOwoF,kBAAoB,iBAE7C,SAASC,EAAQhtG,EAAOssG,EAAQrF,GAC9B,IAAIpB,EAAMj6H,KAAKi6H,IAAIoB,GACfnB,EAAMl6H,KAAKk6H,IAAImB,GACfgG,EAAKX,EAAO1lI,EACZsmI,EAAKZ,EAAOn8I,EAChB,MAAO,CACLyW,EAAGqmI,EAAKpH,GAAO7lG,EAAMp5B,EAAIqmI,GAAMnH,GAAO9lG,EAAM7vC,EAAI+8I,GAChD/8I,EAAG+8I,EAAKpH,GAAO9lG,EAAMp5B,EAAIqmI,GAAMpH,GAAO7lG,EAAM7vC,EAAI+8I,IAIpD,SAASC,EAAUptG,EAAQ+Q,GACzB,IAGIx2C,EAAG8yI,EAAI1H,EAAIC,EAAI0H,EAHfvvH,EAAMgvH,EACN/uH,EAAM6uH,EACNrlG,EAASuJ,EAAKvJ,OAGlB,IAAKjtC,EAAI,EAAGA,EAAIylC,EAAO7kC,SAAUZ,EAE/BorI,GADA0H,EAAKrtG,EAAOzlC,IACJsM,EAAI2gC,EAAO3gC,EACnB++H,EAAKyH,EAAGj9I,EAAIo3C,EAAOp3C,EACnBk9I,EAAKv8F,EAAK40F,GAAKA,EAAK50F,EAAK60F,GAAKA,EAC9B7nH,EAAMlS,KAAKkS,IAAIA,EAAKuvH,GACpBtvH,EAAMnS,KAAKmS,IAAIA,EAAKsvH,GAGtB,MAAO,CACLvvH,IAAKA,EACLC,IAAKA,GAIT,SAASuvH,EAAOC,EAAIlqB,GAClB,IAAIqiB,EAAKriB,EAAGz8G,EAAI2mI,EAAG3mI,EACf++H,EAAKtiB,EAAGlzH,EAAIo9I,EAAGp9I,EACfq1I,EAAK55H,KAAKguC,KAAK8rF,EAAKA,EAAKC,EAAKA,GAClC,MAAO,CACLD,IAAKriB,EAAGz8G,EAAI2mI,EAAG3mI,GAAK4+H,EACpBG,IAAKtiB,EAAGlzH,EAAIo9I,EAAGp9I,GAAKq1I,EACpBj+F,OAAQgmG,EACR/H,GAAIA,GAIR,IAAIgI,EAAS,WACXt6I,KAAKu6I,UAAY,EACjBv6I,KAAKw6I,MAAQ,CACX9mI,EAAG,EACHzW,EAAG,EACHgY,EAAG,EACHtY,EAAG,IAgFP,SAAS89I,EAAYC,EAAM9Y,EAAOqX,GAChC,IAAInsG,EAAQ80F,EAAMkX,WAAW4B,EAAM9Y,GAC/B4Q,EAAK1lG,EAAM0lG,GACXC,EAAK3lG,EAAM2lG,GAEf,IAAKD,IAAOC,EAEV,MAAO,CACL/+H,EAAGo5B,EAAMp5B,EACTzW,EAAG6vC,EAAM7vC,GAIb,IAAIgY,EAAIgkI,EAAShkI,EACbtY,EAAIs8I,EAASt8I,EAEbo8I,EAAWnX,EAAMmX,SACjB3G,EAAK15H,KAAKC,IAAI1D,EAAI,EAAIyD,KAAKi6H,IAAIoG,IAAargI,KAAKC,IAAIhc,EAAI,EAAI+b,KAAKk6H,IAAImG,IACtE1G,EAAK35H,KAAKC,IAAI1D,EAAI,EAAIyD,KAAKk6H,IAAImG,IAAargI,KAAKC,IAAIhc,EAAI,EAAI+b,KAAKi6H,IAAIoG,IAItE4B,EAAK,EAAIjiI,KAAKmS,IAAInS,KAAKC,IAAI65H,GAAK95H,KAAKC,IAAI85H,IAM7C,OALAL,GAAMI,EAAKmI,EACXtI,GAAMI,EAAKkI,EAEXvI,GAAMxQ,EAAM7tG,OAASy+G,EACrBH,GAAMzQ,EAAM7tG,OAAS0+G,EACd,CACL/+H,EAAGo5B,EAAMp5B,EAAI0+H,EACbn1I,EAAG6vC,EAAM7vC,EAAIo1I,GAIjB,SAASuI,EAAQxvC,EAAQyvC,GACvB,IAAIzzI,EAAGwP,EAAGkkI,EAAIC,EAId,IAAK3zI,EAAIgkG,EAAOpjG,OAAS,EAAGZ,GAAK,IAAKA,EAGpC,IAFA0zI,EAAK1vC,EAAOhkG,GAAG4zI,QAEVpkI,EAAIxP,EAAI,EAAGwP,GAAK,GAAKkkI,EAAGG,WAAYrkI,GACvCmkI,EAAK3vC,EAAOx0F,GAAGokI,SAERC,UAAYH,EAAGI,KAAKC,WAAWJ,EAAGG,OACvCL,EAASC,EAAIC,GAKnB,OAAO3vC,EAGT,SAASgwC,EAAUhwC,GACjB,IAAIhkG,EAAG+pI,EAAM9jI,EAAOi4B,EAAO2zG,EAAUG,EAErC,IAAKhyI,EAAI,EAAG+pI,EAAO/lC,EAAOpjG,OAAQZ,EAAI+pI,IAAQ/pI,GAE5Ck+B,GADAj4B,EAAQ+9F,EAAOhkG,IACD4zI,SAEJC,WACRhC,EAAW5rI,EAAM4rI,WACjBG,EAASqB,EAAYptI,EAAMkrI,IAAInD,OAAQ/nI,EAAMu0H,QAASqX,GAEtD3zG,EAAM41G,KAAKhqF,OAAOkoF,EAAQH,EAAU5rI,EAAM0rI,aAK9C,OAAO6B,EAAQxvC,GAAQ,SAAU0vC,EAAIC,GACnC,IAAIM,EAAKP,EAAGQ,SACRC,EAAKR,EAAGO,SAERD,GAAME,GAAMA,EACdR,EAAGE,UAAW,EACLI,IACTP,EAAGG,UAAW,MAzJpBxB,EAAUtyG,OAAOmzG,EAAOl5I,UAAW,CACjCg4I,OAAQ,WACN,IAAI56H,EAAIxe,KAAKw6I,MACb,MAAO,CACL9mI,EAAG8K,EAAE9K,EAAI8K,EAAEvJ,EAAI,EACfhY,EAAGuhB,EAAEvhB,EAAIuhB,EAAE7hB,EAAI,IAGnBu0D,OAAQ,SAAUkoF,EAAQjG,EAAM4F,GAC9B/4I,KAAKu6I,UAAYxB,EACjB/4I,KAAKw6I,MAAQ,CACX9mI,EAAGy/H,EAAKz/H,EAAI0lI,EAAO1lI,EACnBzW,EAAGk2I,EAAKl2I,EAAIm8I,EAAOn8I,EACnBgY,EAAGk+H,EAAKl+H,EACRtY,EAAGw2I,EAAKx2I,IAGZs0B,SAAU,SAAU6b,GAClB,IAAI3K,EAAKniC,KACLw7I,EAAS,EACTrI,EAAOhxG,EAAGq4G,MAEd,SADA1tG,EAAQgtG,EAAQhtG,EAAO3K,EAAGi3G,UAAWj3G,EAAGo4G,YACzB7mI,EAAIy/H,EAAKz/H,EAAI8nI,GAAU1uG,EAAM7vC,EAAIk2I,EAAKl2I,EAAIu+I,GAAU1uG,EAAMp5B,EAAIy/H,EAAKz/H,EAAIy/H,EAAKl+H,EAAa,EAATumI,GAAc1uG,EAAM7vC,EAAIk2I,EAAKl2I,EAAIk2I,EAAKx2I,EAAa,EAAT6+I,IAI3IL,WAAY,SAAU3b,GACpB,IAKIp4H,EAAGq0I,EAAKC,EALRjI,EAAKzzI,KAAK27I,UAEVjI,EAAKlU,EAAMmc,UAEXC,EAAO,CAACxB,EAAO3G,EAAG,GAAIA,EAAG,IAAK2G,EAAO3G,EAAG,GAAIA,EAAG,KASnD,IANIzzI,KAAKu6I,YAAc/a,EAAM+a,WAG3BqB,EAAK5tI,KAAKosI,EAAO1G,EAAG,GAAIA,EAAG,IAAK0G,EAAO1G,EAAG,GAAIA,EAAG,KAG9CtsI,EAAI,EAAGA,EAAIw0I,EAAK5zI,SAAUZ,EAI7B,GAHAq0I,EAAMxB,EAAUxG,EAAImI,EAAKx0I,IACzBs0I,EAAMzB,EAAUvG,EAAIkI,EAAKx0I,IAErBq0I,EAAI5wH,IAAM6wH,EAAI9wH,KAAO8wH,EAAI7wH,IAAM4wH,EAAI7wH,IACrC,OAAO,EAIX,OAAO,GAMT+wH,QAAS,WACP,IAAIx5G,EAAKniC,KACLmzI,EAAOhxG,EAAGq4G,MACVzG,EAAQ5xG,EAAGo4G,UACXnB,EAASj3G,EAAGi3G,SAChB,MAAO,CAACU,EAAQ,CACdpmI,EAAGy/H,EAAKz/H,EACRzW,EAAGk2I,EAAKl2I,GACPm8I,EAAQrF,GAAQ+F,EAAQ,CACzBpmI,EAAGy/H,EAAKz/H,EAAIy/H,EAAKl+H,EACjBhY,EAAGk2I,EAAKl2I,GACPm8I,EAAQrF,GAAQ+F,EAAQ,CACzBpmI,EAAGy/H,EAAKz/H,EAAIy/H,EAAKl+H,EACjBhY,EAAGk2I,EAAKl2I,EAAIk2I,EAAKx2I,GAChBy8I,EAAQrF,GAAQ+F,EAAQ,CACzBpmI,EAAGy/H,EAAKz/H,EACRzW,EAAGk2I,EAAKl2I,EAAIk2I,EAAKx2I,GAChBy8I,EAAQrF,OAsFf,IAAI9mI,EAAS,CACX4uI,QAAS,SAAUC,GACjB,IACI10I,EAAGwP,EAAGu6H,EAAM4K,EAAM1uI,EADlB+9F,EAAS,GAGb,IAAKhkG,EAAI,EAAG+pI,EAAO2K,EAAS9zI,OAAQZ,EAAI+pI,IAAQ/pI,EAC9C,IAAKwP,EAAI,EAAGmlI,EAAOD,EAAS10I,GAAGY,OAAQ4O,EAAImlI,IAAQnlI,EACjDvJ,EAAQyuI,EAAS10I,GAAGwP,GACpBw0F,EAAOp9F,KAAKX,GACZA,EAAM2tI,QAAU,CACdE,KAAM,IAAIZ,EACVgB,UAAU,EACVL,UAAU,EACVe,KAAM50I,EACN60I,KAAMrlI,GAcZ,OANAw0F,EAAOttE,MAAK,SAAUnf,EAAGrhB,GACvB,IAAI4+I,EAAKv9H,EAAEq8H,QACPmB,EAAK7+I,EAAE09I,QACX,OAAOkB,EAAGD,OAASE,EAAGF,KAAOE,EAAGH,KAAOE,EAAGF,KAAOG,EAAGF,KAAOC,EAAGD,QAEhEj8I,KAAKkxD,OAAOk6C,GACLA,GAETl6C,OAAQ,SAAUk6C,GAChB,IACIhkG,EAAG+pI,EAAM9jI,EAAOu0H,EAAOt8F,EADvB82G,GAAQ,EAGZ,IAAKh1I,EAAI,EAAG+pI,EAAO/lC,EAAOpjG,OAAQZ,EAAI+pI,IAAQ/pI,EAE5Cw6H,GADAv0H,EAAQ+9F,EAAOhkG,IACDw6H,SACdt8F,EAAQj4B,EAAM2tI,SACRM,SAAW1Z,GAA2B,SAAlBA,EAAMz0G,QAChCmY,EAAM21G,SAAW5tI,EAAM6rI,UACvBkD,GAAS92G,EAAMg2G,SAGbc,GACFhB,EAAUhwC,IAGdixC,OAAQ,SAAUjxC,EAAQt+D,GACxB,IAAI1lC,EAAGk+B,EAGP,IAAKl+B,EAAIgkG,EAAOpjG,OAAS,EAAGZ,GAAK,IAAKA,EAGpC,IAFAk+B,EAAQ8lE,EAAOhkG,GAAG4zI,UAEL11G,EAAM21G,UAAY31G,EAAM41G,KAAKjqH,SAAS6b,GACjD,OAAOs+D,EAAOhkG,GAIlB,OAAO,MAET+xI,KAAM,SAAUT,EAAOttC,GACrB,IAAIhkG,EAAG+pI,EAAM9jI,EAAOi4B,EAAO2zG,EAAUG,EAErC,IAAKhyI,EAAI,EAAG+pI,EAAO/lC,EAAOpjG,OAAQZ,EAAI+pI,IAAQ/pI,GAE5Ck+B,GADAj4B,EAAQ+9F,EAAOhkG,IACD4zI,SAEJC,WACRhC,EAAW5rI,EAAM4rI,WACjBG,EAASqB,EAAYptI,EAAMkrI,IAAI+D,MAAOjvI,EAAMu0H,QAASqX,GAErD3zG,EAAM41G,KAAKhqF,OAAOkoF,EAAQH,EAAU5rI,EAAM0rI,YAE1C1rI,EAAM8rI,KAAKT,EAAOU,MAKtBmD,EAAYlM,EAAMC,QAiClBxxH,EAAW,CACb4zH,MAAO,SACP7M,OAAQ,SACR1uD,gBAAiB,KACjBg/D,YAAa,KACbI,aAAc,EACd1B,YAAa,EACb7yG,OAAO,EACP42G,MAAM,EACNlB,WAAO1wI,EACPmmB,SAAS,EACT2jH,KAAM,CACJC,YAAQ/pI,EACRqqI,WAAY,IACZ//E,UAAMtqD,EACN2J,WAAO3J,EACPgqI,OAAQ,MAEVrwE,UAjDc,SAAUxwD,GACxB,GAAIosI,EAAU3L,cAAczgI,GAC1B,OAAO,KAGT,IACIuG,EAAM8lI,EAAM99H,EADZrR,EAAQ8C,EAGZ,GAAIosI,EAAUnjI,SAASjJ,GACrB,GAAKosI,EAAU3L,cAAczgI,EAAM9C,OAE5B,GAAKkvI,EAAU3L,cAAczgI,EAAMqO,GAMxC,IAHAnR,EAAQ,GAGHqR,EAAI,EAAG89H,GAFZ9lI,EAAOlW,OAAOkW,KAAKvG,IAEKnI,OAAQ0W,EAAI89H,IAAQ99H,EAC1CrR,IAAgB,IAANqR,EAAU,KAAO,IAAMhI,EAAKgI,GAAK,KAAOvO,EAAMuG,EAAKgI,SAN/DrR,EAAQ8C,EAAMqO,OAFdnR,EAAQ8C,EAAM9C,MAalB,MAAO,GAAKA,GA2BZ+9F,YAAQpkG,EACRotG,UAAW,GACXrgF,OAAQ,EACR4uD,QAAS,EACTmyD,QAAS,CACP1lI,IAAK,EACLmtB,MAAO,EACPN,OAAQ,EACRnoB,KAAM,GAERilI,SAAU,EACVtB,UAAW,QACXG,qBAAiB5wI,EACjB8wI,gBAAiB,EACjBE,eAAgB,EAChBE,qBAAiBlxI,GAMfy1I,EAAYpM,EAAMC,QAClBoM,EAAc,cACdC,EAAc,WAElB,SAASC,EAAUxiH,EAASjjB,GAC1B,IAGIi0F,EAAQ10F,EAHRmmI,EAAWziH,EAAQ0iH,WACnB1oC,EAAY,GACZ2oC,EAAU,GAGd,OAAiB,IAAbF,EACK,OAGQ,IAAbA,IACFA,EAAW,IAGb1lI,EAAUslI,EAAUzqE,MAAM,GAAI,CAAC76D,EAAS0lI,IACxCzxC,EAASj0F,EAAQi0F,QAAU,GAC3B10F,EAAOlW,OAAOkW,KAAK00F,UACZj0F,EAAQi0F,OAEX10F,EAAK1O,OACP0O,EAAK1G,SAAQ,SAAUrN,GACjByoG,EAAOzoG,IACTo6I,EAAQ/uI,KAAKyuI,EAAUzqE,MAAM,GAAI,CAAC76D,EAASi0F,EAAOzoG,GAAM,CACtDk1C,KAAMl1C,SAMZo6I,EAAQ/uI,KAAKmJ,GAIfi9F,EAAY2oC,EAAQzhH,QAAO,SAAU12B,EAAQ0Y,GAM3C,OALAm/H,EAAU3gG,KAAKx+B,EAAO82F,WAAa,IAAI,SAAUjqF,EAAI7b,GACnD1J,EAAO0J,GAAS1J,EAAO0J,IAAU,GACjC1J,EAAO0J,GAAOgP,EAAOu6B,MAAQ8kG,GAAexyH,YAEvC7M,EAAO82F,UACPxvG,IACN,IACI,CACLwmG,OAAQ2xC,EACR3oC,UAAWA,IAIf,SAAShjF,EAAcsnH,EAAOtkC,EAAW/mG,GACvC,GAAK+mG,EAAL,CAIA,IAEIpxG,EAFAuhB,EAAUlX,EAAM2vI,SAChBC,EAAS5vI,EAAM6vI,QAGd9oC,EAAU6oC,EAAOjB,QAItBh5I,EAAWoxG,EAAU6oC,EAAOjB,MAAMiB,EAAOplG,SAMO,IAA5C4kG,EAAUz5I,SAASA,EAAU,CAACuhB,MAKhCm0H,EAAMgE,GAAaS,QAAS,EAC5B9vI,EAAM6jD,OAAO3sC,KAIjB,SAAS64H,EAAmB1E,EAAOtkC,EAAWipC,EAAUhwI,GACtD,IAAIiwI,EAAOC,GAENF,GAAahwI,KAIbgwI,EAEOhwI,EAEDgwI,IAAahwI,IACtBkwI,EAAQD,GAAQ,GAFhBC,GAAQ,EAFRD,GAAQ,EAONC,GACFnsH,EAAcsnH,EAAOtkC,EAAUmpC,MAAOF,GAGpCC,GACFlsH,EAAcsnH,EAAOtkC,EAAUkpC,MAAOjwI,IAI1C,SAASmwI,EAAiB9E,EAAOpqI,GAC/B,IAEI+uI,EAAUhwI,EAFVowI,EAAU/E,EAAMgE,GAChBtoC,EAAYqpC,EAAQC,WAGxB,GAAKtpC,EAAUkpC,OAAUlpC,EAAUmpC,MAAnC,CAIA,GAAmB,cAAfjvI,EAAM0F,KACR3G,EAAQJ,EAAOovI,OAAOoB,EAAQE,QAASrvI,QAClC,GAAmB,aAAfA,EAAM0F,KACf,OAGFqpI,EAAWI,EAAQG,SACnBH,EAAQG,SAAWvwI,EACnB+vI,EAAmB1E,EAAOtkC,EAAWipC,EAAUhwI,IAGjD,SAASwwI,EAAkBnF,EAAOpqI,GAChC,IAAImvI,EAAU/E,EAAMgE,GAChBtiG,EAAWqjG,EAAQC,WAAW7jH,MAC9BxsB,EAAQ+sC,GAAYntC,EAAOovI,OAAOoB,EAAQE,QAASrvI,GAEnDjB,GACF+jB,EAAcsnH,EAAOt+F,EAAU/sC,GAKnC,SAASqsE,EAAWg/D,GAClB,IAAIA,EAAMp1F,UAAV,CAQA,IAFA,IAAIw6F,EAAazN,EAAM0N,iBAAiBD,WAE/B12I,EAAI,EAAG+pI,EAAO2M,EAAW91I,OAAQZ,EAAI+pI,IAAQ/pI,EACpD,GAAI02I,EAAW12I,GAAGsxI,QAAUA,EAC1B,OAOJA,EAAMjhE,OAAO,CACX3sD,SAAU,EACVkzH,MAAM,KAIV3N,EAAMvxH,SAAS7W,OAAOsa,QAAQu6H,WAAah+H,EAC3C,IAAIm/H,EAAS,CACX7oG,GAAI,aACJ8oG,WAAY,SAAUxF,GACpBA,EAAMgE,GAAe,CACnByB,SAAU,KAGdC,aAAc,SAAU1F,GACtB,IAAI+E,EAAU/E,EAAMgE,GACpBe,EAAQY,WAAY,EACpBZ,EAAQC,WAAa,GAErBD,EAAQa,UAAY,GAEpBb,EAAQE,QAAU,IAEpBY,mBAAoB,SAAU7F,EAAOl0H,EAAMrN,GACzC,IAQI/P,EAAGwP,EAAGu6H,EAAM4K,EAAM9E,EAAKt0I,EAAK6M,EAAInC,EARhCmxI,EAAeh6H,EAAKzc,MACpB01I,EAAU/E,EAAMgE,GAChBtxC,EAASqyC,EAAQa,UAAUE,GAAgB,GAC3CtF,EAAUR,EAAM+F,iBAAiBD,GACjCpkH,EAAUs+G,EAAMtoI,KAAK0rI,SAAS0C,GAC9BlhI,EAASs/H,EAAUxiH,EAASjjB,GAC5B47D,EAAWvuD,EAAK+9D,KAAKnyE,MAAQ,GAC7B8gI,EAAMwH,EAAMxH,IAIhB,IAFAA,EAAImI,OAECjyI,EAAI,EAAG+pI,EAAOp+D,EAAS/qE,OAAQZ,EAAI+pI,IAAQ/pI,EAI9C,IAHAoI,EAAKujE,EAAS3rE,IACXs1I,GAAe,GAEdxD,GAAW1pI,IAAOA,EAAG0pE,SAAW1pE,EAAG4lI,OAAO7+E,KAC5C,IAAK3/C,EAAI,EAAGmlI,EAAOz+H,EAAO8tF,OAAOpjG,OAAQ4O,EAAImlI,IAAQnlI,EAEnDjU,GADAs0I,EAAM35H,EAAO8tF,OAAOx0F,IACVihC,MACVxqC,EAAQ,IAAI8qI,EAAMlB,EAAK/F,EAAK1hI,EAAIpI,IAC1B81I,QAAU,CACdlB,KAAMwC,EACN3mG,KAAMl1C,GAAOg6I,GAEftvI,EAAM2vI,SAAW,CACf0B,QAAQ,EACRhG,MAAOA,EACP/9F,UAAWvzC,EACXgzB,QAASA,EACTokH,aAAcA,GAEhBnxI,EAAM6jD,OAAO7jD,EAAM2vI,UACnBxtI,EAAGktI,GAAa1uI,KAAKX,GACrB+9F,EAAOp9F,KAAKX,GAKlB6jI,EAAIsI,UAGJiD,EAAUzqE,MAAMyrE,EAAQC,WAAYpgI,EAAO82F,UAAW,CACpDuqC,OAAQ,SAAUrwI,EAAO1J,EAAQ4C,GAC/B5C,EAAO0J,GAAS1J,EAAO0J,IAAU,GACjC1J,EAAO0J,GAAOkW,EAAKzc,OAASP,EAAO8G,GACnCmvI,EAAQY,WAAY,MAI1BO,YAAa,SAAUlG,EAAOvhI,GAC5BuhI,EAAMgE,GAAaiB,QAAU1wI,EAAO4uI,QAAQnD,EAAMgE,GAAa4B,UAAWnnI,IAK5E0nI,kBAAmB,SAAUnG,GAC3BzrI,EAAOksI,KAAKT,EAAOA,EAAMgE,GAAaiB,UAExCmB,YAAa,SAAUpG,EAAOpqI,GAI5B,GAAIoqI,EAAMgE,GAAa2B,UACrB,OAAQ/vI,EAAM0F,MACZ,IAAK,YACL,IAAK,WACHwpI,EAAiB9E,EAAOpqI,GACxB,MAEF,IAAK,QACHuvI,EAAkBnF,EAAOpqI,KAOjCywI,WAAY,SAAUrG,GACpB,IAKItxI,EAAG+pI,EAAMv6H,EAAGmlI,EAAM7qF,EAAQ7jD,EAAO+9F,EALjCqyC,EAAU/E,EAAMgE,GAChBW,EAAWI,EAAQU,SACnBa,EAAUvB,EAAQU,SAAWzF,EAAMuG,YAAc,GAEjDnhF,EAAUnyC,EAAMkmH,UAAUwL,EAAU2B,GAGxC,IAAK53I,EAAI,EAAG+pI,EAAOrzE,EAAQ91D,OAAQZ,EAAI+pI,IAAQ/pI,EAG7C,IAFA8pD,EAAS4M,EAAQ12D,IAEN,GAGT,IAAKwP,EAAI,EAAGmlI,GAFZ3wC,EAASl6C,EAAO,GAAGwrF,IAAgB,IAET10I,OAAQ4O,EAAImlI,IAAQnlI,GAC5CvJ,EAAQ+9F,EAAOx0F,IACTomI,SAAS0B,OAAuB,IAAdxtF,EAAO,GAC/B7jD,EAAM6jD,OAAO7jD,EAAM2vI,WAKrBS,EAAQN,QAAUr/E,EAAQ91D,UAC5BiF,EAAOikD,OAAOusF,EAAQE,SACtBjkE,EAAWg/D,WAGN+E,EAAQN,SAMnB,OADA9M,EAAM9tH,QAAQ3K,SAASqmI,GAChBA,EApzCyEvgJ,CAAQ,EAAQ,U,qBCPlG,IAAIuK,EAAS,EAAQ,QACjBi3I,EAAe,EAAQ,QACvBC,EAAuB,EAAQ,QAC/BC,EAA8B,EAAQ,QACtCrwG,EAAkB,EAAQ,QAE1BG,EAAWH,EAAgB,YAC3BswG,EAAgBtwG,EAAgB,eAChCuwG,EAAcH,EAAqBptG,OAEvC,IAAK,IAAIwtG,KAAmBL,EAAc,CACxC,IAAIM,EAAav3I,EAAOs3I,GACpBE,EAAsBD,GAAcA,EAAWp+I,UACnD,GAAIq+I,EAAqB,CAEvB,GAAIA,EAAoBvwG,KAAcowG,EAAa,IACjDF,EAA4BK,EAAqBvwG,EAAUowG,GAC3D,MAAOjiI,GACPoiI,EAAoBvwG,GAAYowG,EAKlC,GAHKG,EAAoBJ,IACvBD,EAA4BK,EAAqBJ,EAAeE,GAE9DL,EAAaK,GAAkB,IAAK,IAAIG,KAAeP,EAEzD,GAAIM,EAAoBC,KAAiBP,EAAqBO,GAAc,IAC1EN,EAA4BK,EAAqBC,EAAaP,EAAqBO,IACnF,MAAOriI,GACPoiI,EAAoBC,GAAeP,EAAqBO,O,oCC1BhE,IAAI/zH,EAAQ,EAAQ,QAIhBg0H,EAAoB,CAAC,MAAO,gBAAiB,iBAAkB,eAAgB,OAAQ,UAAW,OAAQ,OAAQ,oBAAqB,sBAAuB,gBAAiB,WAAY,eAAgB,sBAAuB,UAAW,cAAe,cAehQz3I,EAAOC,QAAU,SAAsB+pC,GACrC,IACIvvC,EACAynB,EACAhjB,EAHA6wB,EAAS,GAKb,OAAKia,GAILvmB,EAAM3b,QAAQkiC,EAAQj3C,MAAM,OAAO,SAAgB2kJ,GAKjD,GAJAx4I,EAAIw4I,EAAKj4I,QAAQ,KACjBhF,EAAMgpB,EAAMnoB,KAAKo8I,EAAKjkF,OAAO,EAAGv0D,IAAI4K,cACpCoY,EAAMuB,EAAMnoB,KAAKo8I,EAAKjkF,OAAOv0D,EAAI,IAE7BzE,EAAK,CACP,GAAIs1B,EAAOt1B,IAAQg9I,EAAkBh4I,QAAQhF,IAAQ,EACnD,OAIAs1B,EAAOt1B,GADG,eAARA,GACas1B,EAAOt1B,GAAOs1B,EAAOt1B,GAAO,IAAIgU,OAAO,CAACyT,IAEzC6N,EAAOt1B,GAAOs1B,EAAOt1B,GAAO,KAAOynB,EAAMA,MAItD6N,GApBEA,I,kCC1BX,IAAItM,EAAQ,EAAQ,QAEhBk0H,EAAgB,EAAQ,QAExBrgC,EAAW,EAAQ,QAEnB1gG,EAAW,EAAQ,QAMvB,SAASghI,EAA6BxiI,GAChCA,EAAOyiI,aACTziI,EAAOyiI,YAAYC,mBAWvB93I,EAAOC,QAAU,SAAyBmV,GAYxC,OAXAwiI,EAA6BxiI,GAE7BA,EAAO40B,QAAU50B,EAAO40B,SAAW,GAEnC50B,EAAOlN,KAAOyvI,EAAc9/I,KAAKud,EAAQA,EAAOlN,KAAMkN,EAAO40B,QAAS50B,EAAO2iI,kBAE7E3iI,EAAO40B,QAAUvmB,EAAMqmD,MAAM10D,EAAO40B,QAAQguG,QAAU,GAAI5iI,EAAO40B,QAAQ50B,EAAOmzC,SAAW,GAAInzC,EAAO40B,SACtGvmB,EAAM3b,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAAW,SAA2BygD,UAC7FnzC,EAAO40B,QAAQue,OAEVnzC,EAAOzd,SAAWif,EAASjf,SAC1Byd,GAAQolD,MAAK,SAA6BjlD,GAIvD,OAHAqiI,EAA6BxiI,GAE7BG,EAASrN,KAAOyvI,EAAc9/I,KAAKud,EAAQG,EAASrN,KAAMqN,EAASy0B,QAAS50B,EAAO6iI,mBAC5E1iI,KACN,SAA4Bzb,GAS7B,OARKw9G,EAASx9G,KACZ89I,EAA6BxiI,GAEzBtb,GAAUA,EAAOyb,WACnBzb,EAAOyb,SAASrN,KAAOyvI,EAAc9/I,KAAKud,EAAQtb,EAAOyb,SAASrN,KAAMpO,EAAOyb,SAASy0B,QAAS50B,EAAO6iI,qBAIrGn9E,QAAQh9B,OAAOhkC,Q,qBCrD1B,IAAIo+I,EAAoB,EAAQ,QAEhCl4I,EAAOC,QAAU,SAAU4M,EAAIsrI,GAC7B,IAAItsH,EAASqsH,EAAkBrrI,GAC/B,GAAIgf,EAASssH,EAAO,MAAMrrI,WAAW,gBACrC,OAAO+e,I,kCCHT,IAAIusH,EAAM,EAAQ,QAEdC,EAAa,GAEjB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUvwI,SAAQ,SAAUgE,EAAM5M,GACtFm5I,EAAWvsI,GAAQ,SAAmBwsI,GACpC,cAAcA,IAAUxsI,GAAQ,KAAO5M,EAAI,EAAI,KAAO,KAAO4M,MAGjE,IAAIysI,EAAqB,GACrBC,EAAgBJ,EAAI3Q,QAAQ10I,MAAM,KAQtC,SAAS0lJ,EAAehR,EAASiR,GAI/B,IAHA,IAAIC,EAAgBD,EAAcA,EAAY3lJ,MAAM,KAAOylJ,EACvDI,EAAUnR,EAAQ10I,MAAM,KAEnBmM,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,GAAIy5I,EAAcz5I,GAAK05I,EAAQ15I,GAC7B,OAAO,EACF,GAAIy5I,EAAcz5I,GAAK05I,EAAQ15I,GACpC,OAAO,EAIX,OAAO,EAWTm5I,EAAWQ,aAAe,SAAsBC,EAAWrR,EAAS/xH,GAClE,IAAIqjI,EAAetR,GAAWgR,EAAehR,GAO7C,OAAO,SAAUx/H,EAAO+wI,EAAKhoI,GAC3B,IAAkB,IAAd8nI,EACF,MAAM,IAAI3+I,MAPd,SAAuB6+I,EAAKpiG,GAC1B,MAAO,WAAawhG,EAAI3Q,QAAU,0BAA6BuR,EAAM,IAAOpiG,GAAQlhC,EAAU,KAAOA,EAAU,IAM7FujI,CAAcD,EAAK,wBAA0BvR,IAO/D,OAJIsR,IAAiBR,EAAmBS,KACtCT,EAAmBS,IAAO,IAGrBF,GAAYA,EAAU7wI,EAAO+wI,EAAKhoI,KAwC7ChR,EAAOC,QAAU,CACfw4I,eAAgBA,EAChBS,cA/BF,SAAuBjqI,EAASgjG,EAAQknC,GACtC,GAAuB,kBAAZlqI,EACT,MAAM,IAAI8T,UAAU,6BAMtB,IAHA,IAAIvU,EAAOlW,OAAOkW,KAAKS,GACnB/P,EAAIsP,EAAK1O,OAENZ,KAAM,GAAG,CACd,IAAI85I,EAAMxqI,EAAKtP,GACX45I,EAAY7mC,EAAO+mC,GAEvB,GAAIF,EAAJ,CACE,IAAI7wI,EAAQgH,EAAQ+pI,GAChBvvI,OAAmB3K,IAAVmJ,GAAuB6wI,EAAU7wI,EAAO+wI,EAAK/pI,GAE1D,IAAe,IAAXxF,EACF,MAAM,IAAIsZ,UAAU,UAAYi2H,EAAM,YAAcvvI,QAMxD,IAAqB,IAAjB0vI,EACF,MAAMh/I,MAAM,kBAAoB6+I,KAQpCX,WAAYA,I,sBC/FL,SAAUzlJ,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,0WAAwEC,MAAM,KACtFC,YAAa,0WAAwED,MAAM,KAC3FE,SAAU,uRAAsDF,MAAM,KACtEG,cAAe,mMAAwCH,MAAM,KAC7DI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,8FACTC,QAAS,kFACTC,SAAU,oEACVC,QAAS,kFACTC,SAAU,oEACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,wBACNC,EAAG,2BACHC,GAAI,oCACJC,EAAG,iCACHC,GAAI,oCACJC,EAAG,2BACHC,GAAI,oCACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,qCAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KA9CuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,0KAAwCC,MAAM,KACtDC,YAAa,qGAAyCD,MAAM,KAC5DE,SAAU,uIAA8BF,MAAM,KAC9CG,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,mDAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,2BACJC,IAAK,iCACLC,KAAM,qCACNisB,EAAG,WACHy5H,GAAI,2BACJC,IAAK,iCACLz/E,KAAM,sCAER74D,cAAe,gFACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,iBAAbD,GAAkC,iBAAbA,GAAkC,iBAAbA,EACrCC,EACe,iBAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,iBAAbD,GAAkC,iBAAbA,EACvBC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,IAAIgzH,EAAY,IAAPlzH,EAAaC,EAEtB,OAAIizH,EAAK,IACA,eACEA,EAAK,IACP,eACEA,EAAK,KACP,eACEA,EAAK,KACP,eACEA,EAAK,KACP,eAEA,gBAGXzgI,SAAU,CACRC,QAAS,oBACTC,QAAS,oBACTC,SAAU,kBACVC,QAAS,oBACTC,SAAU,kBACVC,SAAU,KAEZgB,uBAAwB,gCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAO9X,EAAS,SAElB,IAAK,IACH,OAAOA,EAAS,SAElB,IAAK,IACL,IAAK,IACH,OAAOA,EAAS,SAElB,QACE,OAAOA,IAGbjB,aAAc,CACZC,OAAQ,WACRC,KAAM,WACNC,EAAG,eACHC,GAAI,YACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,WACHC,GAAI,YACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,WACHC,GAAI,eA9FwFQ,CAAQ,EAAQ,U,uBCPlH,IAAI4X,EAAc,EAAQ,QACtBI,EAA6B,EAAQ,QACrCsH,EAA2B,EAAQ,QACnCgtB,EAAkB,EAAQ,QAC1B7sB,EAAc,EAAQ,QACtB7C,EAAM,EAAQ,QACdknI,EAAiB,EAAQ,QAEzBC,EAAiCjhJ,OAAOu+C,yBAI5C52C,EAAQqO,EAAIlB,EAAcmsI,EAAiC,SAAkCxnI,EAAG2jG,GAG9F,GAFA3jG,EAAI+vB,EAAgB/vB,GACpB2jG,EAAIzgG,EAAYygG,GAAG,GACf4jC,EAAgB,IAClB,OAAOC,EAA+BxnI,EAAG2jG,GACzC,MAAOvgG,IACT,GAAI/C,EAAIL,EAAG2jG,GAAI,OAAO5gG,GAA0BtH,EAA2Bc,EAAEzW,KAAKka,EAAG2jG,GAAI3jG,EAAE2jG,M,kCCjB7F,IAAI8jC,EAAsB,EAAQ,QAC9B7qI,EAA8C,EAAQ,QAEtD8qI,EAAyBD,EAAoBC,wBAKjD7qI,EAJmC4qI,EAAoB5qI,8BAI1B,MAAM,WAIjC,IAHA,IAAI/O,EAAQ,EACRC,EAASlE,UAAUkE,OACnB2J,EAAS,IAAKgwI,EAAuB3hJ,MAA5B,CAAmCgI,GACzCA,EAASD,GAAO4J,EAAO5J,GAASjE,UAAUiE,KACjD,OAAO4J,IACNkF,I,qBCf+B,EAAQ,OAI1C+qI,CAA4B,SAAS,SAAU51H,GAC7C,OAAO,SAAoB5b,EAAMyxI,EAAY75I,GAC3C,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,Q,kCCExC,SAASs3G,EAAO1hG,GACd5d,KAAK4d,QAAUA,EAGjB0hG,EAAOl+G,UAAU0X,SAAW,WAC1B,MAAO,UAAY9Y,KAAK4d,QAAU,KAAO5d,KAAK4d,QAAU,KAG1D0hG,EAAOl+G,UAAU0gJ,YAAa,EAC9B55I,EAAOC,QAAUm3G,G,oCCfjB,IAAI3zF,EAAQ,EAAQ,QAEhBo2H,EAAS,EAAQ,QAEjBC,EAAU,EAAQ,QAElBC,EAAW,EAAQ,QAEnBC,EAAgB,EAAQ,QAExBC,EAAe,EAAQ,QAEvBC,EAAkB,EAAQ,QAE1BC,EAAc,EAAQ,QAE1Bn6I,EAAOC,QAAU,SAAoBmV,GACnC,OAAO,IAAI0lD,SAAQ,SAA4BJ,EAAS58B,GACtD,IAAIs8G,EAAchlI,EAAOlN,KACrBmyI,EAAiBjlI,EAAO40B,QACxBw+D,EAAepzF,EAAOozF,aAEtB/kF,EAAM62H,WAAWF,WACZC,EAAe,gBAGxB,IAAI/kI,EAAU,IAAIizF,eAElB,GAAInzF,EAAOmlI,KAAM,CACf,IAAIlwG,EAAWj1B,EAAOmlI,KAAKlwG,UAAY,GACnCmwG,EAAWplI,EAAOmlI,KAAKC,SAAWn1C,SAAS3yF,mBAAmB0C,EAAOmlI,KAAKC,WAAa,GAC3FH,EAAeI,cAAgB,SAAW5yC,KAAKx9D,EAAW,IAAMmwG,GAGlE,IAAIE,EAAWV,EAAc5kI,EAAOulI,QAASvlI,EAAO6jB,KAKpD,SAAS2hH,IACP,GAAKtlI,EAAL,CAKA,IAAIulI,EAAkB,0BAA2BvlI,EAAU2kI,EAAa3kI,EAAQwlI,yBAA2B,KAEvGvlI,EAAW,CACbrN,KAFkBsgG,GAAiC,SAAjBA,GAA4C,SAAjBA,EAAiDlzF,EAAQC,SAA/BD,EAAQylI,aAG/FlyC,OAAQvzF,EAAQuzF,OAChBmyC,WAAY1lI,EAAQ0lI,WACpBhxG,QAAS6wG,EACTzlI,OAAQA,EACRE,QAASA,GAEXukI,EAAOn/E,EAAS58B,EAAQvoB,GAExBD,EAAU,MA+DZ,GArFAA,EAAQ/b,KAAK6b,EAAOmzC,OAAOuuB,cAAeijE,EAASW,EAAUtlI,EAAOkpB,OAAQlpB,EAAO6lI,mBAAmB,GAEtG3lI,EAAQ8G,QAAUhH,EAAOgH,QAuBrB,cAAe9G,EAEjBA,EAAQslI,UAAYA,EAGpBtlI,EAAQ4lI,mBAAqB,WACtB5lI,GAAkC,IAAvBA,EAAQ+nB,aAQD,IAAnB/nB,EAAQuzF,QAAkBvzF,EAAQ6lI,aAAwD,IAAzC7lI,EAAQ6lI,YAAY17I,QAAQ,WAMjFhG,WAAWmhJ,IAKftlI,EAAQ8lI,QAAU,WACX9lI,IAILwoB,EAAOq8G,EAAY,kBAAmB/kI,EAAQ,eAAgBE,IAE9DA,EAAU,OAIZA,EAAQm/C,QAAU,WAGhB32B,EAAOq8G,EAAY,gBAAiB/kI,EAAQ,KAAME,IAElDA,EAAU,MAIZA,EAAQ+lI,UAAY,WAClB,IAAIC,EAAsB,cAAgBlmI,EAAOgH,QAAU,cAEvDhH,EAAOkmI,sBACTA,EAAsBlmI,EAAOkmI,qBAG/Bx9G,EAAOq8G,EAAYmB,EAAqBlmI,EAAQA,EAAOyjI,cAAgBzjI,EAAOyjI,aAAa0C,oBAAsB,YAAc,eAAgBjmI,IAE/IA,EAAU,MAMRmO,EAAM+3H,uBAAwB,CAEhC,IAAIC,GAAarmI,EAAOsmI,iBAAmBxB,EAAgBQ,KAActlI,EAAOumI,eAAiB7B,EAAQ8B,KAAKxmI,EAAOumI,qBAAkB78I,EAEnI28I,IACFpB,EAAejlI,EAAOymI,gBAAkBJ,GAKxC,qBAAsBnmI,GACxBmO,EAAM3b,QAAQuyI,GAAgB,SAA0Bn4H,EAAKznB,GAChC,qBAAhB2/I,GAAqD,iBAAtB3/I,EAAIqP,qBAErCuwI,EAAe5/I,GAGtB6a,EAAQmzF,iBAAiBhuG,EAAKynB,MAM/BuB,EAAMq7F,YAAY1pG,EAAOsmI,mBAC5BpmI,EAAQomI,kBAAoBtmI,EAAOsmI,iBAIjClzC,GAAiC,SAAjBA,IAClBlzF,EAAQkzF,aAAepzF,EAAOozF,cAIS,oBAA9BpzF,EAAO0mI,oBAChBxmI,EAAQ1X,iBAAiB,WAAYwX,EAAO0mI,oBAIP,oBAA5B1mI,EAAO2mI,kBAAmCzmI,EAAQ8zF,QAC3D9zF,EAAQ8zF,OAAOxrG,iBAAiB,WAAYwX,EAAO2mI,kBAGjD3mI,EAAOyiI,aAETziI,EAAOyiI,YAAYt9E,QAAQC,MAAK,SAAoBrI,GAC7C78C,IAILA,EAAQ8+D,QACRt2C,EAAOq0B,GAEP78C,EAAU,SAIT8kI,IACHA,EAAc,MAIhB9kI,EAAQgnB,KAAK89G,Q,sBChLR,SAAUxnJ,GACjB,aAEA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAI9T,EAAS,CACXrB,EAAG,CAAC,wFAAmB,2DACvBC,GAAI,CAACa,EAAS,0DAAcA,EAAS,mCACrCZ,EAAG,CAAC,0DAAc,+CAClBC,GAAI,CAACW,EAAS,oDAAaA,EAAS,yCACpCV,EAAG,CAAC,8CAAY,6BAChBC,GAAI,CAACS,EAAS,wCAAWA,EAAS,6BAClCR,EAAG,CAAC,oDAAa,mCACjBC,GAAI,CAACO,EAAS,8CAAYA,EAAS,uBACnCN,EAAG,CAAC,4EAAiB,qDACrBC,GAAI,CAACK,EAAS,gEAAeA,EAAS,yCACtCJ,EAAG,CAAC,0DAAc,yCAClBC,GAAI,CAACG,EAAS,oDAAaA,EAAS,0CAEtC,OAAOqU,EAAW9T,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAGnC7H,EAAOC,aAAa,WAAY,CAC5CC,OAAQ,CACN2C,WAAY,0cAAwF1C,MAAM,KAC1G2C,OAAQ,4yBAAmJ3C,MAAM,KACjK4C,SAAU,mBAEZ3C,YAAa,qVAA4ED,MAAM,KAC/F6W,kBAAkB,EAClB3W,SAAU,iRAAqDF,MAAM,KACrEG,cAAe,wLAA4CH,MAAM,KACjEI,YAAa,mGAAwBJ,MAAM,KAC3C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,gDACJC,IAAK,mDACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4DACLC,KAAM,qEACNkmE,KAAM,kEAERjmE,SAAU,CACRC,QAAS,0BACTC,QAAS,kDACTC,SAAU,8CACVC,QAAS,0BACTC,SAAU,8CACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,KACRC,KAAM,8BACNC,EAAG2nJ,EACH1nJ,GAAI0nJ,EACJznJ,EAAGynJ,EACHxnJ,GAAIwnJ,EACJvnJ,EAAGunJ,EACHtnJ,GAAIsnJ,EACJrnJ,EAAGqnJ,EACHpnJ,GAAIonJ,EACJnnJ,EAAGmnJ,EACHlnJ,GAAIknJ,EACJjnJ,EAAGinJ,EACHhnJ,GAAIgnJ,GAEN/mJ,uBAAwB,8BACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GAEN,IAAK,IACH,OAAO9X,EAAS,qBAElB,QACA,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,IACH,OAAOA,IAGbE,KAAM,CACJC,IAAK,EAELC,IAAK,GAGPwL,cAAe,0IACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,6BAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,yCAAbD,EACFC,EACe,+CAAbD,EACFC,EAAO,GAAKA,EAAOA,EAAO,GACX,mCAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,2BACEA,EAAO,GACT,uCACEA,EAAO,GACT,6CACEA,EAAO,GACT,iCAEA,8BApHmF1L,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIsX,EAAsB,6DAA6DnX,MAAM,KACzFoX,EAAyB,kDAAkDpX,MAAM,KAC5EH,EAAOC,aAAa,KAAM,CACjCC,OAAQ,iGAAiGC,MAAM,KAC/GC,YAAa,SAAUuB,EAAGmB,GACxB,OAAKnB,EAEM,QAAQyB,KAAKN,GACfyU,EAAuB5V,EAAE+V,SAEzBJ,EAAoB3V,EAAE+V,SAJtBJ,GAOXN,kBAAkB,EAClB3W,SAAU,wDAAwDF,MAAM,KACxEG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,iBACTC,SAAU,8BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,SACRC,KAAM,SACNC,EAAG,mBACHC,GAAI,cACJC,EAAG,eACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJC,EAAG,aACHC,GAAI,aACJC,EAAG,WACHC,GAAI,cAENC,uBAAwB,kBACxBC,QAAS,SAAUC,GACjB,OAAOA,GAAqB,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,OAE1EE,KAAM,CACJC,IAAK,EAELC,IAAK,KA7DuFC,CAAQ,EAAQ,U,qBCNlH,IAAIuK,EAAS,EAAQ,QACjBm3I,EAA8B,EAAQ,QACtC9kI,EAAM,EAAQ,QACd6pI,EAAY,EAAQ,QACpBC,EAAgB,EAAQ,QACxB31G,EAAsB,EAAQ,QAE9Bm3E,EAAmBn3E,EAAoB/tC,IACvC2jJ,EAAuB51G,EAAoB61G,QAC3CC,EAAW99I,OAAOA,QAAQxL,MAAM,WAEnCiN,EAAOC,QAAU,SAAU8R,EAAGtX,EAAKwN,EAAOgH,GACzC,IAAIqtI,IAASrtI,KAAYA,EAAQqtI,OAC7BC,IAASttI,KAAYA,EAAQxW,WAC7B+jJ,IAAcvtI,KAAYA,EAAQutI,YAClB,mBAATv0I,IACS,iBAAPxN,GAAoB2X,EAAInK,EAAO,SAASivI,EAA4BjvI,EAAO,OAAQxN,GAC9F0hJ,EAAqBl0I,GAAO3I,OAAS+8I,EAASnuI,KAAmB,iBAAPzT,EAAkBA,EAAM,KAEhFsX,IAAMhS,GAIEu8I,GAEAE,GAAezqI,EAAEtX,KAC3B8hJ,GAAS,UAFFxqI,EAAEtX,GAIP8hJ,EAAQxqI,EAAEtX,GAAOwN,EAChBivI,EAA4BnlI,EAAGtX,EAAKwN,IATnCs0I,EAAQxqI,EAAEtX,GAAOwN,EAChBg0I,EAAUxhJ,EAAKwN,KAUrBkmC,SAASj1C,UAAW,YAAY,WACjC,MAAsB,mBAARpB,MAAsB4lH,EAAiB5lH,MAAMwH,QAAU48I,EAAcpkJ,U,qBChCrF,IAAI2kJ,EAAqB,EAAQ,QAC7BC,EAAc,EAAQ,QAI1B18I,EAAOC,QAAU3H,OAAOkW,MAAQ,SAAcuD,GAC5C,OAAO0qI,EAAmB1qI,EAAG2qI,K,sBCEtB,SAAU9pJ,GACjB,aAEA,IAAIE,EAAS,yGAAoFC,MAAM,KACnGC,EAAc,2DAAkDD,MAAM,KAE1E,SAASqW,EAAOC,GACd,OAAOA,EAAI,GAAKA,EAAI,EAGtB,SAASC,EAAUnU,EAAQoU,EAAe9O,EAAK+O,GAC7C,IAAIC,EAAStU,EAAS,IAEtB,OAAQsF,GACN,IAAK,IAEH,OAAO8O,GAAiBC,EAAW,mBAAe,mBAEpD,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,UAAY,aAEvCsU,EAAS,YAGpB,IAAK,IAEH,OAAOF,EAAgB,YAAWC,EAAW,YAAW,aAE1D,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,YAAW,YAEtCsU,EAAS,cAGpB,IAAK,IAEH,OAAOF,EAAgB,SAAWC,EAAW,SAAW,UAE1D,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,SAAW,YAEtCsU,EAAS,WAGpB,IAAK,IAEH,OAAOF,GAAiBC,EAAW,WAAQ,YAE7C,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,MAAQ,UAEnCsU,EAAS,aAGpB,IAAK,IAEH,OAAOF,GAAiBC,EAAW,SAAW,WAEhD,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,UAAY,YAEvCsU,EAAS,WAGpB,IAAK,IAEH,OAAOF,GAAiBC,EAAW,MAAQ,QAE7C,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,OAAS,SAEpCsU,EAAS,SAMf7W,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaA,EACbC,SAAU,gEAAsDF,MAAM,KACtEG,cAAe,4BAAuBH,MAAM,KAC5CI,YAAa,4BAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,cACTC,QAAS,gBACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,uBAET,KAAK,EACL,KAAK,EACH,MAAO,kBAET,KAAK,EACH,MAAO,kBAET,KAAK,EACH,MAAO,yBAET,KAAK,EACH,MAAO,kBAET,KAAK,EACH,MAAO,oBAGbzN,QAAS,oBACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACH,MAAO,+BAET,KAAK,EACL,KAAK,EACH,MAAO,0BAET,KAAK,EACH,MAAO,0BAET,KAAK,EACL,KAAK,EACH,MAAO,0BAET,KAAK,EACH,MAAO,4BAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,UACNC,EAAGiV,EACHhV,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG6U,EACH5U,GAAI4U,EACJ3U,EAAG2U,EACH1U,GAAI0U,EACJzU,EAAGyU,EACHxU,GAAIwU,EACJvU,EAAGuU,EACHtU,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA7KuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aA+DA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAI9T,EAAS,CACXrB,EAAG,CAAC,kBAAmB,mBACvBC,GAAI,CAACa,EAAS,WAAiBA,EAAS,YACxCZ,EAAG,CAAC,aAAW,iBACfC,GAAI,CAACW,EAAS,YAAeA,EAAS,aACtCV,EAAG,CAAC,aAAW,kBACfC,GAAI,CAACS,EAAS,YAAeA,EAAS,aACtCR,EAAG,CAAC,UAAW,eACfC,GAAI,CAACO,EAAS,SAAeA,EAAS,UACtCN,EAAG,CAAC,SAAU,aACdC,GAAI,CAACK,EAAS,SAAeA,EAAS,UACtCJ,EAAG,CAAC,QAAS,YACbC,GAAI,CAACG,EAAS,OAAaA,EAAS,SAEtC,OAAOqU,GAA4BD,EAAjB7T,EAAO+E,GAAK,GAAsC/E,EAAO+E,GAAK,GA1ExE7H,EAAOC,aAAa,MAAO,CACnCC,OAAQ,kGAAsFC,MAAM,KACpGC,YAAa,qDAAkDD,MAAM,KACrEE,SAAU,8EAAsDF,MAAM,KACtEG,cAAe,gDAA8BH,MAAM,KACnDI,YAAa,mCAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,8BACLC,KAAM,0CAERqN,cAAe,aACfC,KAAM,SAAUpB,GACd,MAAO,QAAUA,EAAMkK,eAEzB7I,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH3I,EAAU,MAAQ,MAElBA,EAAU,MAAQ,OAG7BzN,SAAU,CACRC,QAAS,iBACTC,QAAS,oBACTC,SAAU,iBACVC,QAAS,kBACTC,SAAU,oCACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,YACRC,KAAM,OACNC,EAAG2nJ,EACH1nJ,GAAI0nJ,EACJznJ,EAAGynJ,EACHxnJ,GAAIwnJ,EACJvnJ,EAAGunJ,EACHtnJ,GAAIsnJ,EACJrnJ,EAAGqnJ,EACHpnJ,GAAIonJ,EACJnnJ,EAAGmnJ,EACHlnJ,GAAIknJ,EACJjnJ,EAAGinJ,EACHhnJ,GAAIgnJ,GAEN/mJ,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA5DuFC,CAAQ,EAAQ,U,gGCmBvGmnJ,EACA,UADAA,EAEE,YAFFA,EAGF,QAHEA,EAIC,WAJDA,EAKA,SALAA,EAME,WANFA,EAOJ,MAPIA,EAQH,OARGA,EASG,YATHA,EAUC,UAVDA,EAWI,aAXJA,EAYG,YAZHA,EAaD,SAbCA,EAcD,SAENC,EAAiB,IAAI5iF,IAGzB4iF,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnBC,EAAex/I,IAAIu/I,GACnB,IAAIE,EACS,EADTA,EAEK,GAFLA,EAGQ,GAHRA,EAIO,GAJPA,EAKS,GALTA,EAMG,GANHA,EAOI,GAPJA,EAQU,GARVA,EASQ,GATRA,EAUW,GAVXA,EAWU,GAXVA,EAYM,GAZNA,EAaM,GAENC,EAAiB,IAAIxuG,IAGzBwuG,EAAev/I,IAAIs/I,EAAoBF,GACvCG,EAAev/I,IAAIs/I,EAAgBF,GACnCG,EAAev/I,IAAIs/I,EAAmBF,GACtCG,EAAev/I,IAAIs/I,EAAkBF,GACrCG,EAAev/I,IAAIs/I,EAAoBF,GACvCG,EAAev/I,IAAIs/I,EAAcF,GACjCG,EAAev/I,IAAIs/I,EAAeF,GAClCG,EAAev/I,IAAIs/I,EAAqBF,GACxCG,EAAev/I,IAAIs/I,EAAmBF,GACtCG,EAAev/I,IAAIs/I,EAAsBF,GACzCG,EAAev/I,IAAIs/I,EAAqBF,GACxCG,EAAev/I,IAAIs/I,EAAiBF,GACpCG,EAAev/I,IAAIs/I,EAAiBF,GACpC,IAAII,EAAiB,IAAI/iF,IAelB,SAASgjF,EAAaxiJ,GAC3B,IAAIC,EAAMD,EAAIC,IAEd,GAAImiJ,EAAexqI,IAAI3X,GACrB,OAAOA,EAIT,IAAIwiJ,EAAYH,EAAetkJ,IAAIgC,EAAIE,SAEvC,OAAIuiJ,GAIGN,EA1BTI,EAAe3/I,IAAIu/I,GACnBI,EAAe3/I,IAAIu/I,GACnBI,EAAe3/I,IAAIu/I,GACnBI,EAAe3/I,IAAIu/I,GACnBI,EAAe3/I,IAAIu/I,GACnBI,EAAe3/I,IAAIu/I,GACnBI,EAAe3/I,IAAIu/I,GACnBI,EAAe3/I,IAAIu/I,G,gBC7EfO,EAA0B,CAAC,QAAS,SAAU,WAAY,UAQnDC,EAAsB,SAAU3iJ,GACzC,IAAIkC,EAASlC,EAAIkC,OAEjB,GAAKA,EAAL,CAIA,IAAI+pE,GAAW,GAAK/pE,EAAO+pE,SAAS38D,eAEc,IAA9CozI,EAAwBz9I,QAAQgnE,IAClCjsE,EAAI81B,mBC+DD,SAAS8sH,EAAUpsI,EAAMosB,GAC9B,IAWIv9B,EAXAw9I,EAAWrsI,EAAKqsI,SAChBC,EAAmBtsI,EAAKssI,iBACxBC,EAAyBvsI,EAAKusI,uBAC9BC,EAAmBxsI,EAAKwsI,iBACxBC,EAAYzsI,EAAKysI,UACjBC,EAAwB1sI,EAAK0sI,sBAkBjC,OAjBApkJ,aAAa8jC,EAAMugH,oBACnBvgH,EAAMugH,mBAAqBlkJ,YAAW,WACpCmkJ,EAAYxgH,KACX,IAAQygH,mCACXzgH,EAAM0gH,gBAAkB1gH,EAAM0gH,gBAAkBT,GASjC,KALbx9I,EADmC,IAAjCu9B,EAAM0gH,gBAAgBh+I,OAkB5B,SAAwBy9I,EAAwBC,EAAkBE,EAAuBtgH,GACvF,IAAI2gH,EAAY3gH,EAAM0gH,gBAAgB,GAClCE,EAAyBT,EAAuB/kJ,IAAIulJ,GAExD,IAAKC,EACH,OAAQ,EAMV,GAAID,IAAc3gH,EAAM6gH,kBAAoBD,EAAuB5gH,EAAM8gH,mBAAmBr+I,QAAU29I,EAAkB,CACtHpgH,EAAM8gH,mBAAqB9gH,EAAM8gH,kBAAoB,GAAKF,EAAuBl+I,OACjF,IAAI8vD,EAAWouF,EAAuB5gH,EAAM8gH,mBAAmBr+I,MAE/D,IAAK69I,EAAsB9tF,GACzB,OAAOA,EAQXxyB,EAAM6gH,iBAAmBF,EACzB,IACII,EADAC,GAAqB,EAGzB,IAAKD,EAAiB,EAAGA,EAAiBH,EAAuBl+I,OAAQq+I,IACvE,IAAKT,EAAsBM,EAAuBG,GAAgBt+I,OAAQ,CACxEu+I,EAAoBD,EACpB,MAOJ,KAAOA,EAAiBH,EAAuBl+I,OAAQq+I,IACrD,GAAIH,EAAuBG,GAAgBt+I,MAAQ29I,IAAqBE,EAAsBM,EAAuBG,GAAgBt+I,OAAQ,CAC3Iu+I,EAAoBD,EACpB,MAIJ,IAA2B,IAAvBC,EAEF,OADAhhH,EAAM8gH,kBAAoBE,EACnBJ,EAAuB5gH,EAAM8gH,mBAAmBr+I,MAGzD,OAAQ,EAnEEw+I,CAAed,EAAwBC,EAAkBE,EAAuBtgH,GA2E5F,SAAuBmgH,EAAwBG,EAAuBtgH,GACpE,IAAI2gH,EAAY3gH,EAAM0gH,gBAAgB,GAClCE,EAAyBT,EAAuB/kJ,IAAIulJ,GAExD,IAAKC,EACH,OAAQ,EAIV,IAAIM,EAAeN,EAAuB5gH,EAAM8gH,mBAEhD,GAAgE,IAA5DI,EAAazqG,KAAKg9C,YAAYzzD,EAAM0gH,gBAAiB,KAAaJ,EAAsBY,EAAaz+I,OACvG,OAAOy+I,EAAaz+I,MAKtB,IAAIs+I,GAAkB/gH,EAAM8gH,kBAAoB,GAAKF,EAAuBl+I,OACxEy+I,GAAsB,EAE1B,KAAOJ,IAAmB/gH,EAAM8gH,mBAAmB,CACjD,IAAIM,EAAcR,EAAuBG,GACrCpqG,EAAqE,IAA3DyqG,EAAY3qG,KAAKg9C,YAAYzzD,EAAM0gH,gBAAiB,GAC9DzzH,GAAaqzH,EAAsBc,EAAY3+I,OAEnD,GAAIk0C,GAAW1pB,EAAW,CACxBk0H,EAAqBJ,EACrB,MAGFA,GAAkBA,EAAiB,GAAKH,EAAuBl+I,OAGjE,IAA4B,IAAxBy+I,EAEF,OADAnhH,EAAM8gH,kBAAoBK,EACnBP,EAAuB5gH,EAAM8gH,mBAAmBr+I,MAGzD,OAAQ,EA/GE4+I,CAAclB,EAAwBG,EAAuBtgH,KAGlDqgH,GACnBH,EAAiBz9I,GAGZA,EAiHF,SAAS6+I,EAAmBthH,GACjC,OAAOA,EAAM0gH,gBAAgBh+I,OAAS,EASjC,SAAS89I,EAAYxgH,GAC1BA,EAAM0gH,gBAAkB,GAoBnB,SAAStpI,EAAcxD,EAAMosB,GAClC,IAAIh3B,EAAQ4K,EAAK5K,MACbu4I,EAAmB3tI,EAAK2tI,iBACxBnB,EAAmBxsI,EAAKwsI,iBACxBF,EAAmBtsI,EAAKssI,iBACxBC,EAAyBvsI,EAAKusI,uBAC9BG,EAAwB1sI,EAAK0sI,sBAC7BkB,EAAsC,cAAxB5B,EAAa52I,GAC3By4I,EAAoC,YAAxB7B,EAAa52I,GACzB04I,EAAuC,eAAxB9B,EAAa52I,GAC5B24I,EAAsC,cAAxB/B,EAAa52I,GAC3B44I,EAAiC,SAAxBhC,EAAa52I,GACtB29C,EAAgC,QAAxBi5F,EAAa52I,GACrB64I,EAAkC,UAAxBjC,EAAa52I,GACvB84I,EAAkC,aAAxBlC,EAAa52I,GAE3B,OAAIw4I,GAAeC,GAAaC,GAAgBC,GAAeC,GAAUj7F,GAASk7F,GACxE,EAGYC,GAAgC,IAArB94I,EAAM3L,IAAIqF,OAetCo/I,GAIDP,GACFxB,EAAoB/2I,GAGIu4I,GAAoBD,EAAmBthH,GAYxDggH,EATa,CAClBE,iBAAkBA,EAClBE,iBAAkBA,EAClBH,SAAU,IACVE,uBAAwBA,EACxBE,WAAW,EACXC,sBAAuBA,GAGOtgH,IAG1B,IAtBE,GAbR+/G,EAAoB/2I,GASbg3I,EARa,CAClBE,iBAAkBA,EAClBE,iBAAkBA,EAClBH,SAAUj3I,EAAM3L,IAAIqP,cACpByzI,uBAAwBA,EACxBE,WAAW,EACXC,sBAAuBA,GAEOtgH,IC9QpC,IAAI,EAEJ,SAAU3lC,GAGR,SAAS0nJ,EAAkBxnJ,GACzB,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIqnJ,EAAkBpnJ,gBAAiBJ,KAAaG,KAepG,OAbAF,EAAMwnJ,YAAa,EACnBxnJ,EAAMynJ,aAAc,EACpBznJ,EAAM0nJ,wBAAyB,EAC/B1nJ,EAAM2nJ,eAAiB,IAAQC,YAC/B5nJ,EAAM4lJ,iBAAmB,IAAQgC,YACjC5nJ,EAAM6nJ,oBAAqB,EAC3B7nJ,EAAM8nJ,sBAAwB,KAC9B9nJ,EAAM+nJ,iBAAkB,EACxB/nJ,EAAMgoJ,cAAe,EACrBhoJ,EAAMioJ,cAAe,EAErBjoJ,EAAMkoJ,eDjBI,CACVnC,mBAAoB,EACpBM,iBAAkB,GAClBC,kBAAmB,EACnBJ,gBAAiB,ICcjBlmJ,EAAM2lJ,uBAAyB,IAAIjvG,IAC5B12C,EAwoBT,OA1pBA,YAAUunJ,EAAmB1nJ,GAqB7Ba,OAAOC,eAAe4mJ,EAAmB,UAAW,CAClD3mJ,IAAK,WACH,OAAO,KAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe4mJ,EAAmB,aAAc,CACrD3mJ,IAAK,WACH,OAAO,KAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe4mJ,EAAmB,UAAW,CAClD3mJ,IAAK,WACH,OAAO,KAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe4mJ,EAAmB,iBAAkB,CACzD3mJ,IAAK,WACH,MAAO,CACLunJ,wBAAyB,aAGzBzC,iBAAkB,aAGlB0C,4BAA6B,WAC3B,OAAO,MAETC,uBAAwB,WACtB,OAAO,GAETC,iBAAkB,WAChB,OAAO,GAETC,mBAAoB,WAClB,OAAO,GAETC,gBAAiB,WACf,OAAO,GAETC,yBAA0B,WACxB,OAAO,GAETC,kBAAmB,WACjB,OAAO,GAETC,cAAe,WACb,OAAO,GAETC,wBAAyB,WACvB,OAAO,GAETC,aAAc,aAGdC,2BAA4B,aAG5BC,4BAA6B,aAG7BC,iCAAkC,aAGlCC,+BAAgC,aAGhCC,sBAAuB,WACrB,MAAO,MAIbroJ,YAAY,EACZC,cAAc,IAGhBymJ,EAAkBjmJ,UAAU6L,OAAS,WACK,IAApCjN,KAAKH,QAAQuoJ,qBAIbpoJ,KAAKH,QAAQwoJ,mBAAmB,GAClCroJ,KAAK6nJ,iBAAkB,EACd7nJ,KAAKH,QAAQyoJ,gBAAgB,KACtCtoJ,KAAK8nJ,cAAe,GAGlB9nJ,KAAK+nJ,eACP/nJ,KAAKylJ,uBAAyBzlJ,KAAKipJ,8BAQvC5B,EAAkBjmJ,UAAU8nJ,aAAe,SAAU/4I,GACnDnQ,KAAKsnJ,WAAan3I,GAOpBk3I,EAAkBjmJ,UAAU+nJ,uBAAyB,SAAUh5I,GAC7DnQ,KAAKunJ,YAAcp3I,GAOrBk3I,EAAkBjmJ,UAAUgoJ,mBAAqB,SAAUj5I,GACzDnQ,KAAKwnJ,uBAAyBr3I,GAQhCk3I,EAAkBjmJ,UAAUioJ,gBAAkB,SAAUtB,GACtD/nJ,KAAK+nJ,aAAeA,EAEhBA,IACF/nJ,KAAKylJ,uBAAyBzlJ,KAAKipJ,6BAQvC5B,EAAkBjmJ,UAAUkoJ,sBAAwB,WAClD,OAAOtpJ,KAAK+nJ,cAAgB,EAA6B/nJ,KAAKgoJ,iBAOhEX,EAAkBjmJ,UAAUmoJ,qBAAuB,SAAUC,GAC3DxpJ,KAAK2nJ,mBAAqB6B,GAG5BnC,EAAkBjmJ,UAAUqoJ,iBAAmB,WAC7C,OAAOzpJ,KAAKynJ,gBAGdJ,EAAkBjmJ,UAAUsoJ,iBAAmB,SAAU3hJ,GAClD/H,KAAK2pJ,cAAc5hJ,KAIpB/H,KAAK6nJ,gBACP7nJ,KAAK4pJ,oBAAoB7hJ,GAChB/H,KAAK8nJ,aACd9nJ,KAAK6pJ,iBAAiB9hJ,GAEtB/H,KAAK8pJ,2BAA2B/hJ,KAQpCs/I,EAAkBjmJ,UAAU2oJ,cAAgB,SAAU7iI,EAAG8iI,GACnDA,GAAiB,IACnBhqJ,KAAK0lJ,iBAAmBsE,EACxBhqJ,KAAKH,QAAQkpJ,+BAA+BiB,EAAe,OAQ/D3C,EAAkBjmJ,UAAU6oJ,eAAiB,SAAU/iI,EAAG8iI,GACxD,IAAIlqJ,EAAQE,KAERgqJ,GAAiB,GACnBhqJ,KAAKH,QAAQkpJ,+BAA+BiB,EAAe,MAQ7DroJ,YAAW,WACJ7B,EAAMD,QAAQ2oJ,qBACjB1oJ,EAAMoqJ,oCAEP,IAOL7C,EAAkBjmJ,UAAUsb,cAAgB,SAAUpO,EAAO67I,EAAgBH,GAC3E,IAAIlqJ,EAAQE,KAER8mJ,EAAsC,cAAxB5B,EAAa52I,GAC3By4I,EAAoC,YAAxB7B,EAAa52I,GACzB04I,EAAuC,eAAxB9B,EAAa52I,GAC5B24I,EAAsC,cAAxB/B,EAAa52I,GAC3B44I,EAAiC,SAAxBhC,EAAa52I,GACtB29C,EAAgC,QAAxBi5F,EAAa52I,GACrB64I,EAAkC,UAAxBjC,EAAa52I,GACvB84I,EAAkC,aAAxBlC,EAAa52I,GAE3B,GAAItO,KAAKH,QAAQ4oJ,gBAAjB,CACM1B,GAAa96F,GACf39C,EAAMkqB,iBACNx4B,KAAKoqJ,qBACInD,GAAeC,KACxB54I,EAAMkqB,iBACNx4B,KAAKqqJ,qBAGHrqJ,KAAK+nJ,cAaP,EAZwB,CACtBz5I,MAAOA,EACPk3I,iBAAkB,SAAUz9I,GAC1BjI,EAAM0lJ,iBAAiBz9I,IAEzB29I,kBAAmB,EACnBmB,iBAAkBsD,EAClB1E,uBAAwBzlJ,KAAKylJ,uBAC7BG,sBAAuB,SAAU79I,GAC/B,OAAOjI,EAAMD,QAAQ6oJ,wBAAwB3gJ,EAAO,IAAWuiJ,4BAGxBtqJ,KAAKgoJ,oBAtBpD,CA4BA,IAAIuC,EAAevqJ,KAAKH,QAAQsoJ,yBAEhC,MAAsB,IAAlBoC,IACFA,EAAeP,GAEI,GAHrB,CAUA,GAAIhqJ,KAAKunJ,aAAeN,IAAgBjnJ,KAAKunJ,aAAeP,EAC1D3B,EAAoB/2I,GACpBtO,KAAKwqJ,iBAAiBD,QACjB,GAAIvqJ,KAAKunJ,aAAeR,IAAc/mJ,KAAKunJ,aAAeT,EAC/DzB,EAAoB/2I,GACpBtO,KAAKyqJ,iBAAiBF,QACjB,GAAIrD,EACT7B,EAAoB/2I,GACpBtO,KAAKqqJ,yBACA,GAAIp+F,EACTo5F,EAAoB/2I,GACpBtO,KAAKoqJ,wBACA,IAAIjD,GAAWC,IAChB+C,EAAgB,CAElB,IAAIvlJ,EAAS0J,EAAM1J,OAEnB,GAAIA,GAA6B,MAAnBA,EAAO+pE,SAAmBw4E,EACtC,OAKF,GAFA9B,EAAoB/2I,GAEhBtO,KAAKH,QAAQ6oJ,wBAAwB6B,EAAc,IAAWD,0BAChE,OAGGtqJ,KAAKspJ,0BACJtpJ,KAAK0qJ,qBACP1qJ,KAAK2qJ,0BAA0BJ,GAGjCvqJ,KAAKH,QAAQ8oJ,aAAa4B,IAKhC,GAAIvqJ,KAAK+nJ,aAaP,EAZwB,CACtBz5I,MAAOA,EACPk3I,iBAAkB,SAAUz9I,GAC1BjI,EAAM0lJ,iBAAiBz9I,IAEzB29I,iBAAkB1lJ,KAAK0lJ,iBACvBmB,iBAAkBsD,EAClB1E,uBAAwBzlJ,KAAKylJ,uBAC7BG,sBAAuB,SAAU79I,GAC/B,OAAOjI,EAAMD,QAAQ6oJ,wBAAwB3gJ,EAAO,IAAWuiJ,4BAGxBtqJ,KAAKgoJ,mBAQpDX,EAAkBjmJ,UAAUwpJ,YAAc,SAAU7iJ,EAAO8iJ,GACrD9iJ,IAAU,IAAQ2/I,cAItB1nJ,KAAK8qJ,oBAAoB/iJ,GACzB/H,KAAK0lJ,iBAAmB39I,EAEpB/H,KAAKH,QAAQ6oJ,wBAAwB3gJ,EAAO,IAAWuiJ,4BAIvDtqJ,KAAK0qJ,qBACP1qJ,KAAK2qJ,0BAA0B5iJ,EAAO8iJ,GAGxC7qJ,KAAKH,QAAQ8oJ,aAAa5gJ,MAO5Bs/I,EAAkBjmJ,UAAUopJ,iBAAmB,SAAUziJ,GACvD,IACI62C,EAAY72C,EAAQ,EAExB,GAAI62C,GAHQ5+C,KAAKH,QAAQuoJ,mBAGD,CACtB,IAAIpoJ,KAAKsnJ,WAIP,OAAOv/I,EAHP62C,EAAY,EAQhB,OADA5+C,KAAKwlJ,iBAAiB5mG,GACfA,GAOTyoG,EAAkBjmJ,UAAUqpJ,iBAAmB,SAAU1iJ,GACvD,IAAIowD,EAAYpwD,EAAQ,EAExB,GAAIowD,EAAY,EAAG,CACjB,IAAIn4D,KAAKsnJ,WAIP,OAAOv/I,EAHPowD,EAAYn4D,KAAKH,QAAQuoJ,mBAAqB,EAQlD,OADApoJ,KAAKwlJ,iBAAiBrtF,GACfA,GAGTkvF,EAAkBjmJ,UAAUipJ,kBAAoB,WAE9C,OADArqJ,KAAKwlJ,iBAAiB,GACf,GAGT6B,EAAkBjmJ,UAAUgpJ,iBAAmB,WAC7C,IAAIxjJ,EAAY5G,KAAKH,QAAQuoJ,mBAAqB,EAElD,OADApoJ,KAAKwlJ,iBAAiB5+I,GACfA,GAQTygJ,EAAkBjmJ,UAAU2pJ,WAAa,SAAUC,EAAWz4H,GACvDvyB,KAAK2pJ,cAAcqB,KAIpBz4H,GACFvyB,KAAKH,QAAQ+oJ,2BAA2BoC,EAAW,IAAWV,0BAC9DtqJ,KAAKH,QAAQgpJ,4BAA4BmC,EAAW,IAAQC,cAAe,WAE3EjrJ,KAAKH,QAAQooJ,wBAAwB+C,EAAW,IAAWV,0BAC3DtqJ,KAAKH,QAAQgpJ,4BAA4BmC,EAAW,IAAQC,cAAe,WAI/E5D,EAAkBjmJ,UAAU0oJ,2BAA6B,SAAU/hJ,GACjE,GAAI/H,KAAKynJ,iBAAmB1/I,EAA5B,CAIA,IAAImjJ,EAAoB,IAAWC,yBAE/BnrJ,KAAK2nJ,qBACPuD,EAAoB,IAAWrhH,2BAG7B7pC,KAAKynJ,iBAAmB,IAAQC,aAClC1nJ,KAAKH,QAAQ+oJ,2BAA2B5oJ,KAAKynJ,eAAgByD,GAG/DlrJ,KAAKH,QAAQooJ,wBAAwBlgJ,EAAOmjJ,GAC5ClrJ,KAAKorJ,kCAAkCrjJ,GACvC/H,KAAKynJ,eAAiB1/I,IAOxBs/I,EAAkBjmJ,UAAUgqJ,kCAAoC,SAAUrjJ,GAEpE/H,KAAKynJ,iBAAmB,IAAQC,cAClC1nJ,KAAK4nJ,sBAAwB5nJ,KAAKH,QAAQqoJ,4BAA4BngJ,EAAO,IAAQsjJ,eAGvF,IAAIC,EAA+C,OAA/BtrJ,KAAK4nJ,sBACrB2D,EAAgBD,EAAgB,IAAQD,aAAe,IAAQ3gJ,cAE/D1K,KAAKynJ,iBAAmB,IAAQC,aAClC1nJ,KAAKH,QAAQgpJ,4BAA4B7oJ,KAAKynJ,eAAgB8D,EAAe,SAG/E,IAAIC,EAAqBF,EAAgBtrJ,KAAK4nJ,sBAAwB,OACtE5nJ,KAAKH,QAAQgpJ,4BAA4B9gJ,EAAOwjJ,EAAeC,IAOjEnE,EAAkBjmJ,UAAUyoJ,iBAAmB,SAAU9hJ,GACvD/H,KAAKH,QAAQipJ,iCAAiC/gJ,GAAO,GAEjD/H,KAAKynJ,iBAAmB,IAAQC,aAClC1nJ,KAAKH,QAAQgpJ,4BAA4B7oJ,KAAKynJ,eAAgB,IAAQgE,aAAc,SAGtFzrJ,KAAKH,QAAQgpJ,4BAA4B9gJ,EAAO,IAAQ0jJ,aAAc,QACtEzrJ,KAAKynJ,eAAiB1/I,GAGxBs/I,EAAkBjmJ,UAAUwoJ,oBAAsB,SAAU7hJ,GAC1D,IAAK,IAAIX,EAAI,EAAGA,EAAIpH,KAAKH,QAAQuoJ,mBAAoBhhJ,IAAK,CACxD,IAAIskJ,GAAY,EAEZ3jJ,EAAMJ,QAAQP,IAAM,IACtBskJ,GAAY,GAGd1rJ,KAAKH,QAAQipJ,iCAAiC1hJ,EAAGskJ,GACjD1rJ,KAAKH,QAAQgpJ,4BAA4BzhJ,EAAG,IAAQqkJ,aAAcC,EAAY,OAAS,SAGzF1rJ,KAAKynJ,eAAiB1/I,GAGxBs/I,EAAkBjmJ,UAAU0pJ,oBAAsB,SAAU/iJ,GACtD/H,KAAK0lJ,mBAAqB,IAAQgC,aAAyB,IAAV3/I,EAGnD/H,KAAKH,QAAQgpJ,4BAA4B,EAAG,WAAY,MAC/C7oJ,KAAK0lJ,kBAAoB,GAAK1lJ,KAAK0lJ,mBAAqB39I,GACjE/H,KAAKH,QAAQgpJ,4BAA4B7oJ,KAAK0lJ,iBAAkB,WAAY,MAG9E1lJ,KAAKH,QAAQgpJ,4BAA4B9gJ,EAAO,WAAY,MAO9Ds/I,EAAkBjmJ,UAAUspJ,kBAAoB,WAC9C,OAAO1qJ,KAAKwnJ,wBAA0BxnJ,KAAK6nJ,iBAAmB7nJ,KAAK8nJ,cAGrET,EAAkBjmJ,UAAU8oJ,gCAAkC,WAC5D,IAAIyB,EAAc,EAEd3rJ,KAAK0qJ,sBAC4B,kBAAxB1qJ,KAAKynJ,gBAA+BznJ,KAAKynJ,iBAAmB,IAAQC,YAC7EiE,EAAc3rJ,KAAKynJ,eACIznJ,KAAKynJ,0BAlhBFhpI,OAkhBqBze,KAAKynJ,eAAez/I,OAAS,IAC5E2jJ,EAAc3rJ,KAAKynJ,eAAensH,QAAO,SAAUivH,EAAcqB,GAC/D,OAAOlzI,KAAKkS,IAAI2/H,EAAcqB,QAKpC5rJ,KAAK8qJ,oBAAoBa,IAG3BtE,EAAkBjmJ,UAAUuoJ,cAAgB,SAAU5hJ,GACpD,IAAIjI,EAAQE,KAEZ,GAAI+H,aAAiB0W,MAAO,CAC1B,IAAKze,KAAK6nJ,gBACR,MAAM,IAAIxlJ,MAAM,+EAGlB,OAAqB,IAAjB0F,EAAMC,QAGDD,EAAM4vB,MAAK,SAAUvwB,GAC1B,OAAOtH,EAAM+rJ,gBAAgBzkJ,MAG5B,GAAqB,kBAAVW,EAAoB,CACpC,GAAI/H,KAAK6nJ,gBACP,MAAM,IAAIxlJ,MAAM,sFAAwF0F,GAG1G,OAAO/H,KAAK6rJ,gBAAgB9jJ,GAE5B,OAAO,GAIXs/I,EAAkBjmJ,UAAUyqJ,gBAAkB,SAAU9jJ,GACtD,IAAI+jJ,EAAW9rJ,KAAKH,QAAQuoJ,mBAC5B,OAAOrgJ,GAAS,GAAKA,EAAQ+jJ,GAQ/BzE,EAAkBjmJ,UAAUupJ,0BAA4B,SAAU5iJ,EAAO8iJ,QAChD,IAAnBA,IACFA,GAAiB,GAGf7qJ,KAAK6nJ,gBACP7nJ,KAAK+rJ,uBAAuBhkJ,EAAO8iJ,GAEnC7qJ,KAAK0pJ,iBAAiB3hJ,IAI1Bs/I,EAAkBjmJ,UAAU2qJ,uBAAyB,SAAUhkJ,EAAO8iJ,GACpE,IAAIa,EAAY1rJ,KAAKH,QAAQ0oJ,yBAAyBxgJ,GAElD8iJ,IACFa,GAAaA,EACb1rJ,KAAKH,QAAQipJ,iCAAiC/gJ,EAAO2jJ,IAGvD1rJ,KAAKH,QAAQgpJ,4BAA4B9gJ,EAAO,IAAQ0jJ,aAAcC,EAAY,OAAS,SAE3F,IAAIM,EAAkBhsJ,KAAKynJ,iBAAmB,IAAQC,YAAc,GAAK1nJ,KAAKynJ,eAAe7/I,QAEzF8jJ,EACFM,EAAgBh+I,KAAKjG,GAErBikJ,EAAkBA,EAAgBjzH,QAAO,SAAU3xB,GACjD,OAAOA,IAAMW,KAIjB/H,KAAKynJ,eAAiBuE,GAGxB3E,EAAkBjmJ,UAAUokJ,iBAAmB,SAAUz9I,GACvD/H,KAAK8qJ,oBAAoB/iJ,GACzB/H,KAAKH,QAAQ2lJ,iBAAiBz9I,GAC9B/H,KAAK0lJ,iBAAmB39I,GAiB1Bs/I,EAAkBjmJ,UAAU6qJ,mBAAqB,SAAU1G,EAAU2G,EAAevG,GAClF,IAAI7lJ,EAAQE,KAkBZ,YAhBkB,IAAd2lJ,IACFA,GAAY,GAeP,EAZI,CACTH,iBAAkB,SAAUz9I,GAC1BjI,EAAM0lJ,iBAAiBz9I,IAEzB29I,iBAAkBwG,GAAgClsJ,KAAK0lJ,iBACvDH,SAAUA,EACVE,uBAAwBzlJ,KAAKylJ,uBAC7BE,UAAWA,EACXC,sBAAuB,SAAU79I,GAC/B,OAAOjI,EAAMD,QAAQ6oJ,wBAAwB3gJ,EAAO,IAAWuiJ,4BAGlCtqJ,KAAKgoJ,iBAUxCX,EAAkBjmJ,UAAU6nJ,yBAA2B,WACrD,OD5nBG,SAAyBkD,EAAeC,GAG7C,IAFA,IAAI3G,EAAyB,IAAIjvG,IAExBpvC,EAAI,EAAGA,EAAI+kJ,EAAe/kJ,IAAK,CACtC,IAAIilJ,EAAcD,EAA0BhlJ,GAAG5D,OAE/C,GAAK6oJ,EAAL,CAIA,IAAIpG,EAAYoG,EAAY,GAAGr6I,cAE1ByzI,EAAuBnrI,IAAI2rI,IAC9BR,EAAuBhgJ,IAAIwgJ,EAAW,IAGxCR,EAAuB/kJ,IAAIulJ,GAAWj4I,KAAK,CACzC+tC,KAAMswG,EAAYr6I,cAClBjK,MAAOX,KAWX,OALAq+I,EAAuBz1I,SAAQ,SAAU+hC,GACvCA,EAAOjU,MAAK,SAAUsT,EAAOC,GAC3B,OAAOD,EAAMrpC,MAAQspC,EAAOtpC,YAGzB09I,EC+lBE,CAA0BzlJ,KAAKH,QAAQuoJ,mBAAoBpoJ,KAAKH,QAAQmpJ,wBAOjF3B,EAAkBjmJ,UAAUkrJ,qBAAuB,WACjD,EAAsBtsJ,KAAKgoJ,iBAGtBX,EA3pBT,CA4pBE,M,sBCxrBO,SAAUvsJ,GACjB,aAEA,SAAS0W,EAAUnU,EAAQoU,EAAe9O,EAAK+O,GAC7C,OAAQ/O,GACN,IAAK,IACH,OAAO8O,EAAgB,4EAAkB,wFAE3C,IAAK,KACH,OAAOpU,GAAUoU,EAAgB,wCAAY,qDAE/C,IAAK,IACL,IAAK,KACH,OAAOpU,GAAUoU,EAAgB,kCAAW,+CAE9C,IAAK,IACL,IAAK,KACH,OAAOpU,GAAUoU,EAAgB,sBAAS,yCAE5C,IAAK,IACL,IAAK,KACH,OAAOpU,GAAUoU,EAAgB,4BAAU,yCAE7C,IAAK,IACL,IAAK,KACH,OAAOpU,GAAUoU,EAAgB,sBAAS,mCAE5C,IAAK,IACL,IAAK,KACH,OAAOpU,GAAUoU,EAAgB,sBAAS,yCAE5C,QACE,OAAOpU,GAIJvC,EAAOC,aAAa,KAAM,CACjCC,OAAQ,8+BAA+LC,MAAM,KAC7MC,YAAa,iQAA6ED,MAAM,KAChG6W,kBAAkB,EAClB3W,SAAU,iOAA6CF,MAAM,KAC7DG,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,6FAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,6CACJC,IAAK,mDACLC,KAAM,0DAERqN,cAAe,6BACfC,KAAM,SAAUpB,GACd,MAAiB,iBAAVA,GAETqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,eAEA,gBAGXvN,SAAU,CACRC,QAAS,kDACTC,QAAS,kDACTC,SAAU,qCACVC,QAAS,kDACTC,SAAU,6DACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,oCACRC,KAAM,8BACNC,EAAGiV,EACHhV,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG6U,EACH5U,GAAI4U,EACJ3U,EAAG2U,EACH1U,GAAI0U,EACJzU,EAAGyU,EACHxU,GAAIwU,EACJvU,EAAGuU,EACHtU,GAAIsU,GAENrU,uBAAwB,mCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAO9X,EAAS,4BAElB,QACE,OAAOA,MAjGiFK,CAAQ,EAAQ,U,qBCNlH,IAAI6uJ,EAAyB,EAAQ,QAIrCrkJ,EAAOC,QAAU,SAAUqkJ,GACzB,OAAOhsJ,OAAO+rJ,EAAuBC,M,qBCLvC,IAAI59G,EAAU,EAAQ,QAClB69G,EAAY,EAAQ,QAGpBv9G,EAFkB,EAAQ,OAEfH,CAAgB,YAE/B7mC,EAAOC,QAAU,SAAU4M,GACzB,QAAU/N,GAAN+N,EAAiB,OAAOA,EAAGm6B,IAC1Bn6B,EAAG,eACH03I,EAAU79G,EAAQ75B,M,mBCTzB7M,EAAOC,QAAU,SAAUD,GAsBzB,OArBKA,EAAOwkJ,kBACVxkJ,EAAOkiH,UAAY,aAEnBliH,EAAOykJ,MAAQ,GAEVzkJ,EAAOmrB,WAAUnrB,EAAOmrB,SAAW,IACxC7yB,OAAOC,eAAeyH,EAAQ,SAAU,CACtCvH,YAAY,EACZD,IAAK,WACH,OAAOwH,EAAO2f,KAGlBrnB,OAAOC,eAAeyH,EAAQ,KAAM,CAClCvH,YAAY,EACZD,IAAK,WACH,OAAOwH,EAAOd,KAGlBc,EAAOwkJ,gBAAkB,GAGpBxkJ,I,sBCfA,SAAUpN,GACjB,aAEA,IAAIE,EAAS,8HAAoFC,MAAM,KACnGC,EAAc,yFAAkDD,MAAM,KACtEqX,EAAc,CAAC,QAAS,WAAS,aAAS,QAAS,aAAS,wCAA0B,2CAA6B,QAAS,gBAAS,gBAAS,QAAS,SAG3JC,EAAc,mPAEd,SAASjB,EAAOC,GACd,OAAOA,EAAI,GAAKA,EAAI,GAAoB,OAAZA,EAAI,IAGlC,SAASC,EAAUnU,EAAQoU,EAAe9O,EAAK+O,GAC7C,IAAIC,EAAStU,EAAS,IAEtB,OAAQsF,GACN,IAAK,IAEH,OAAO8O,GAAiBC,EAAW,gBAAe,mBAEpD,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,UAAY,UAEvCsU,EAAS,YAGpB,IAAK,IAEH,OAAOF,EAAgB,SAAWC,EAAW,SAAW,UAE1D,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,SAAW,SAEtCsU,EAAS,WAGpB,IAAK,IAEH,OAAOF,EAAgB,SAAWC,EAAW,SAAW,UAE1D,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,SAAW,SAEtCsU,EAAS,WAGpB,IAAK,IAEH,OAAOF,GAAiBC,EAAW,MAAQ,OAE7C,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,MAAQ,UAEnCsU,EAAS,MAGpB,IAAK,IAEH,OAAOF,GAAiBC,EAAW,gBAAU,kBAE/C,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,iBAAW,uBAEtCsU,EAAS,iBAGpB,IAAK,IAEH,OAAOF,GAAiBC,EAAW,MAAQ,QAE7C,IAAK,KAEH,OAAID,GAAiBC,EACZC,GAAUL,EAAOjU,GAAU,OAAS,OAEpCsU,EAAS,QAMf7W,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaA,EACbqX,YAAaA,EACbE,iBAAkBF,EAGlBG,kBAAmB,gPACnBC,uBAAwB,6FACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,mFAAmDF,MAAM,KACnEG,cAAe,kCAAuBH,MAAM,KAC5CI,YAAa,kCAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,yBACNisB,EAAG,cAELhsB,SAAU,CACRC,QAAS,cACTC,QAAS,kBACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,uBAET,KAAK,EACL,KAAK,EACH,MAAO,kBAET,KAAK,EACH,MAAO,wBAET,KAAK,EACH,MAAO,yBAET,KAAK,EACH,MAAO,oBAET,KAAK,EACH,MAAO,oBAGbzN,QAAS,oBACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACH,MAAO,6BAET,KAAK,EACL,KAAK,EACH,MAAO,0BAET,KAAK,EACH,MAAO,6BAET,KAAK,EACL,KAAK,EACH,MAAO,0BAET,KAAK,EACH,MAAO,0BAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,eACNC,EAAGiV,EACHhV,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG6U,EACH5U,GAAI4U,EACJ3U,EAAG2U,EACH1U,GAAI0U,EACJzU,EAAGyU,EACHxU,GAAIwU,EACJvU,EAAGuU,EACHtU,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA3LuFC,CAAQ,EAAQ,U,sBCEzG,SAAU5C,GACjB,aAEA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAI9T,EAAS,CACXnB,EAAG,CAAC,aAAc,gBAClBE,EAAG,CAAC,YAAa,eACjBE,EAAG,CAAC,UAAW,aACfE,EAAG,CAAC,WAAY,eAChBE,EAAG,CAAC,UAAW,eAEjB,OAAOwU,EAAgB7T,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAGtD,SAASiqJ,EAAkBpjJ,GAGzB,OAAIqjJ,EAFSrjJ,EAAOmyD,OAAO,EAAGnyD,EAAO7B,QAAQ,OAGpC,KAAO6B,EAGT,MAAQA,EAGjB,SAASsjJ,EAAgBtjJ,GAGvB,OAAIqjJ,EAFSrjJ,EAAOmyD,OAAO,EAAGnyD,EAAO7B,QAAQ,OAGpC,QAAU6B,EAGZ,SAAWA,EAWpB,SAASqjJ,EAA4BxvJ,GAGnC,GAFAA,EAAS+a,SAAS/a,EAAQ,IAEtB8a,MAAM9a,GACR,OAAO,EAGT,GAAIA,EAAS,EAEX,OAAO,EACF,GAAIA,EAAS,GAElB,OAAI,GAAKA,GAAUA,GAAU,EAKxB,GAAIA,EAAS,IAAK,CAEvB,IAAIysC,EAAYzsC,EAAS,GAGzB,OACSwvJ,EADS,IAAd/iH,EAFazsC,EAAS,GAMSysC,GAC9B,GAAIzsC,EAAS,IAAO,CAEzB,KAAOA,GAAU,IACfA,GAAkB,GAGpB,OAAOwvJ,EAA4BxvJ,GAInC,OAAOwvJ,EADPxvJ,GAAkB,KAKbvC,EAAOC,aAAa,KAAM,CACjCC,OAAQ,6FAAuFC,MAAM,KACrGC,YAAa,+DAA+DD,MAAM,KAClF6W,kBAAkB,EAClB3W,SAAU,4EAAmEF,MAAM,KACnFG,cAAe,uCAA8BH,MAAM,KACnDI,YAAa,gCAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,cACJC,IAAK,iBACLC,EAAG,aACHC,GAAI,eACJC,IAAK,2BACLC,KAAM,kCAERC,SAAU,CACRC,QAAS,eACTK,SAAU,IACVJ,QAAS,eACTC,SAAU,eACVC,QAAS,sBACTC,SAAU,WAER,OAAQ8D,KAAK0J,OACX,KAAK,EACL,KAAK,EACH,MAAO,0BAET,QACE,MAAO,4BAIftN,aAAc,CACZC,OAAQuwJ,EACRtwJ,KAAMwwJ,EACNvwJ,EAAG,kBACHC,GAAI,cACJC,EAAGynJ,EACHxnJ,GAAI,cACJC,EAAGunJ,EACHtnJ,GAAI,aACJC,EAAGqnJ,EACHpnJ,GAAI,UACJC,EAAGmnJ,EACHlnJ,GAAI,cACJC,EAAGinJ,EACHhnJ,GAAI,WAENC,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA3IuFC,CAAQ,EAAQ,U,mBCPlHwK,EAAOC,QAAU,SAAU4M,GACzB,GAAiB,mBAANA,EACT,MAAMkW,UAAUxkB,OAAOsO,GAAM,sBAC7B,OAAOA,I,sBCIF,SAAUja,GACjB,aAEA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAI9T,EAAS,CACXrB,EAAG,CAAC,qBAAsB,iBAC1BC,GAAI,CAACa,EAAS,cAAeA,EAAS,WACtCZ,EAAG,CAAC,aAAc,YAClBC,GAAI,CAACW,EAAS,YAAaA,EAAS,WACpCV,EAAG,CAAC,YAAa,UACjBC,GAAI,CAACS,EAAS,WAAYA,EAAS,UACnCR,EAAG,CAAC,YAAa,UACjBC,GAAI,CAACO,EAAS,WAAYA,EAAS,QACnCN,EAAG,CAAC,eAAgB,aACpBC,GAAI,CAACK,EAAS,cAAeA,EAAS,WACtCJ,EAAG,CAAC,aAAc,YAClBC,GAAI,CAACG,EAAS,YAAaA,EAAS,YAEtC,OAAOqU,EAAW9T,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAGnC7H,EAAOC,aAAa,WAAY,CAC5CC,OAAQ,CACN2C,WAAY,4EAA4E1C,MAAM,KAC9F2C,OAAQ,wIAAwI3C,MAAM,KACtJ4C,SAAU,mBAEZ3C,YAAa,4DAA4DD,MAAM,KAC/E6W,kBAAkB,EAClB3W,SAAU,uDAAuDF,MAAM,KACvEG,cAAe,qCAAqCH,MAAM,KAC1DI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,iBACJC,IAAK,oBACLC,EAAG,aACHC,GAAI,cACJC,IAAK,6BACLC,KAAM,sCACNkmE,KAAM,mCAERjmE,SAAU,CACRC,QAAS,WACTC,QAAS,cACTC,SAAU,sBACVC,QAAS,WACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,KACRC,KAAM,UACNC,EAAG2nJ,EACH1nJ,GAAI0nJ,EACJznJ,EAAGynJ,EACHxnJ,GAAIwnJ,EACJvnJ,EAAGunJ,EACHtnJ,GAAIsnJ,EACJrnJ,EAAGqnJ,EACHpnJ,GAAIonJ,EACJnnJ,EAAGmnJ,EACHlnJ,GAAIknJ,EACJjnJ,EAAGinJ,EACHhnJ,GAAIgnJ,GAEN/mJ,uBAAwB,cACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GAEN,IAAK,IACH,OAAO9X,EAAS,KAElB,QACA,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,IACH,OAAOA,IAGbE,KAAM,CACJC,IAAK,EAELC,IAAK,GAGPwL,cAAe,+BACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,SAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,aAAbD,EACFC,EACe,aAAbD,EACFC,EAAO,GAAKA,EAAOA,EAAO,GACX,UAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,OACEA,EAAO,GACT,WACEA,EAAO,GACT,WACEA,EAAO,GACT,QAEA,UApHmF1L,CAAQ,EAAQ,U,yDCLlH,IAAIiY,EAAW,EAAQ,QACnBs0B,EAAkB,EAAQ,QAC1Bn1B,EAAW,EAAQ,QAIvB5M,EAAOC,QAAU,SAAcgI,GAO7B,IANA,IAAI8J,EAAItE,EAAS3V,MACbgI,EAAS8M,EAASmF,EAAEjS,QACpBsO,EAAkBxS,UAAUkE,OAC5BD,EAAQkiC,EAAgB3zB,EAAkB,EAAIxS,UAAU,QAAKkD,EAAWgB,GACxEoyD,EAAM9jD,EAAkB,EAAIxS,UAAU,QAAKkD,EAC3C+lJ,OAAiB/lJ,IAARozD,EAAoBpyD,EAASiiC,EAAgBmwB,EAAKpyD,GACxD+kJ,EAAShlJ,GAAOkS,EAAElS,KAAWoI,EACpC,OAAO8J,I,kCCbT,IAAIzF,EAAO,EAAQ,QAGfsE,EAAWtY,OAAOY,UAAU0X,SAQhC,SAAS4xB,EAAQtgB,GACf,MAA8B,mBAAvBtR,EAAS/Y,KAAKqqB,GAUvB,SAAS48F,EAAY58F,GACnB,MAAsB,qBAARA,EAoFhB,SAAShR,EAASgR,GAChB,OAAe,OAARA,GAA+B,kBAARA,EAUhC,SAAS4iI,EAAc5iI,GACrB,GAA2B,oBAAvBtR,EAAS/Y,KAAKqqB,GAChB,OAAO,EAGT,IAAIhpB,EAAYZ,OAAOi1C,eAAerrB,GACtC,OAAqB,OAAdhpB,GAAsBA,IAAcZ,OAAOY,UA2CpD,SAASqpH,EAAWrgG,GAClB,MAA8B,sBAAvBtR,EAAS/Y,KAAKqqB,GAyEvB,SAASpa,EAAQ8K,EAAKqP,GAEpB,GAAY,OAARrP,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGL4vB,EAAQ5vB,GAEV,IAAK,IAAI1T,EAAI,EAAGygB,EAAI/M,EAAI9S,OAAQZ,EAAIygB,EAAGzgB,IACrC+iB,EAAGpqB,KAAK,KAAM+a,EAAI1T,GAAIA,EAAG0T,QAI3B,IAAK,IAAInY,KAAOmY,EACVta,OAAOY,UAAUmZ,eAAexa,KAAK+a,EAAKnY,IAC5CwnB,EAAGpqB,KAAK,KAAM+a,EAAInY,GAAMA,EAAKmY,GAmFrC5S,EAAOC,QAAU,CACfuiC,QAASA,EACTuiH,cA/SF,SAAuB7iI,GACrB,MAA8B,yBAAvBtR,EAAS/Y,KAAKqqB,IA+SrB8iI,SA3TF,SAAkB9iI,GAChB,OAAe,OAARA,IAAiB48F,EAAY58F,IAA4B,OAApBA,EAAIzQ,cAAyBqtG,EAAY58F,EAAIzQ,cAAoD,oBAA7ByQ,EAAIzQ,YAAYuzI,UAA2B9iI,EAAIzQ,YAAYuzI,SAAS9iI,IA2TpLo4H,WAtSF,SAAoBp4H,GAClB,MAA2B,qBAAbunD,UAA4BvnD,aAAeunD,UAsSzDw7E,kBA5RF,SAA2B/iI,GASzB,MAN2B,qBAAhBujF,aAA+BA,YAAYy/C,OAC3Cz/C,YAAYy/C,OAAOhjI,GAEnBA,GAAOA,EAAI2jF,QAAU3jF,EAAI2jF,kBAAkBJ,aAuRtDs2B,SA1QF,SAAkB75G,GAChB,MAAsB,kBAARA,GA0Qd68F,SAhQF,SAAkB78F,GAChB,MAAsB,kBAARA,GAgQdhR,SAAUA,EACV4zI,cAAeA,EACfhmC,YAAaA,EACbE,OA9NF,SAAgB98F,GACd,MAA8B,kBAAvBtR,EAAS/Y,KAAKqqB,IA8NrBijI,OApNF,SAAgBjjI,GACd,MAA8B,kBAAvBtR,EAAS/Y,KAAKqqB,IAoNrBkjI,OA1MF,SAAgBljI,GACd,MAA8B,kBAAvBtR,EAAS/Y,KAAKqqB,IA0MrBqgG,WAAYA,EACZ8iC,SAtLF,SAAkBnjI,GAChB,OAAOhR,EAASgR,IAAQqgG,EAAWrgG,EAAIojI,OAsLvCC,kBA5KF,SAA2BrjI,GACzB,MAAkC,qBAApB4nB,iBAAmC5nB,aAAe4nB,iBA4KhE0xG,qBA9IF,WACE,OAAyB,qBAAdnkI,WAAoD,gBAAtBA,UAAUmuI,SAAmD,iBAAtBnuI,UAAUmuI,SAAoD,OAAtBnuI,UAAUmuI,WAIzG,qBAAXz2I,QAA8C,qBAAbG,WA0I/CpH,QAASA,EACTgiE,MA9EF,SAASA,IAGP,IAAIrgE,EAAS,GAEb,SAASg8I,EAAYvjI,EAAKznB,GACpBqqJ,EAAcr7I,EAAOhP,KAASqqJ,EAAc5iI,GAC9CzY,EAAOhP,GAAOqvE,EAAMrgE,EAAOhP,GAAMynB,GACxB4iI,EAAc5iI,GACvBzY,EAAOhP,GAAOqvE,EAAM,GAAI5nD,GACfsgB,EAAQtgB,GACjBzY,EAAOhP,GAAOynB,EAAIxiB,QAElB+J,EAAOhP,GAAOynB,EAIlB,IAAK,IAAIhjB,EAAI,EAAGygB,EAAI/jB,UAAUkE,OAAQZ,EAAIygB,EAAGzgB,IAC3C4I,EAAQlM,UAAUsD,GAAIumJ,GAGxB,OAAOh8I,GA0DPw1B,OA9CF,SAAgBxoB,EAAGrhB,EAAGogH,GAQpB,OAPA1tG,EAAQ1S,GAAG,SAAqB8sB,EAAKznB,GAEjCgc,EAAEhc,GADA+6G,GAA0B,oBAARtzF,EACX5V,EAAK4V,EAAKszF,GAEVtzF,KAGNzL,GAuCPnb,KAtKF,SAAcyD,GACZ,OAAOA,EAAIzD,KAAOyD,EAAIzD,OAASyD,EAAInJ,QAAQ,aAAc,KAsKzD8vJ,SA9BF,SAAkBh+I,GAKhB,OAJ8B,QAA1BA,EAAQskE,WAAW,KACrBtkE,EAAUA,EAAQhI,MAAM,IAGnBgI,K,oCCtVT1H,EAAOC,QAAUlB,GAAO2T,mBAAmB3T,GAAKnJ,QAAQ,YAAY4V,GAAK,IAAIA,EAAEwgE,WAAW,GAAGp7D,SAAS,IAAIkmE,iB,wBCMjG,SAAUlkF,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,qGAAyCC,MAAM,KACvDC,YAAa,qGAAyCD,MAAM,KAC5DE,SAAU,uIAA8BF,MAAM,KAC9CG,cAAe,mDAAgBH,MAAM,KACrCI,YAAa,mDAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,cACHC,GAAI,0BACJC,IAAK,iCACLC,KAAM,sCACNisB,EAAG,cACHy5H,GAAI,0BACJC,IAAK,iCACLz/E,KAAM,uCAERjmE,SAAU,CACRC,QAAS,kBACTC,QAAS,kBACTC,SAAU,UACVC,QAAS,kBACTC,SAAU,6BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,YACRC,KAAM,YACNC,EAAG,gBACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJC,EAAG,sBACHC,GAAI,iBACJC,EAAG,eACHC,GAAI,WACJC,EAAG,gBACHC,GAAI,WACJC,EAAG,gBACHC,GAAI,YAENC,uBAAwB,gCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAO9X,EAAS,SAElB,IAAK,IACH,OAAOA,EAAS,SAElB,IAAK,IACL,IAAK,IACH,OAAOA,EAAS,SAElB,QACE,OAAOA,IAGb4L,cAAe,4BACfC,KAAM,SAAUwpC,GACd,MAAiB,iBAAVA,GAETvpC,SAAU,SAAUC,EAAMC,EAAQwkJ,GAChC,OAAOzkJ,EAAO,GAAK,eAAO,kBAtEkE1L,CAAQ,EAAQ,U,sBCAzG,SAAU5C,GACjB,aAEA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAI9T,EAAS,CACXnB,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAACO,EAAS,QAASA,EAAS,UAChC4X,EAAG,CAAC,aAAc,eAClBlY,EAAG,CAAC,YAAa,eACjBC,GAAI,CAACK,EAAS,UAAWA,EAAS,YAClCJ,EAAG,CAAC,WAAY,cAChBC,GAAI,CAACG,EAAS,SAAUA,EAAS,YAEnC,OAAOoU,EAAgB7T,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAG3C7H,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAqFC,MAAM,KACnGC,YAAa,gEAA6DD,MAAM,KAChF6W,kBAAkB,EAClB3W,SAAU,8DAA8DF,MAAM,KAC9EG,cAAe,uBAAuBH,MAAM,KAC5CI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEZE,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,oBACHC,GAAI,cACJC,EAAGynJ,EACHxnJ,GAAI,aACJC,EAAGunJ,EACHtnJ,GAAI,aACJC,EAAGqnJ,EACHpnJ,GAAIonJ,EACJjvI,EAAGivI,EACHhvI,GAAI,YACJnY,EAAGmnJ,EACHlnJ,GAAIknJ,EACJjnJ,EAAGinJ,EACHhnJ,GAAIgnJ,GAEN/mJ,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAlEuFC,CAAQ,EAAQ,U,sBCEzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,yFAAyFC,MAAM,KACvGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,+CAA+CF,MAAM,KAC/DG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAERqN,cAAe,6BACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,WAAbD,EACKC,EACe,WAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,WAAbD,GAAsC,UAAbA,EAC3BC,EAAO,QADT,GAITD,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH,SACEA,EAAQ,GACV,SACEA,EAAQ,GACV,SAEA,SAGXpW,SAAU,CACRC,QAAS,2BACTC,QAAS,sBACTC,SAAU,kBACVC,QAAS,wBACTC,SAAU,4BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,gBACRC,KAAM,uBACNC,EAAG,kBACHC,GAAI,WACJC,EAAG,kBACHC,GAAI,WACJC,EAAG,gBACHC,GAAI,SACJC,EAAG,WACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KAtEuFC,CAAQ,EAAQ,U,kCCLlH8C,OAAOC,eAAe0H,EAAS,aAAc,CAC3CgI,OAAO,IAEThI,EAAQ2lJ,iBAAc,EAEtB,IAAIC,EAAgB,EAAQ,QAExBD,EAEJ,WACE,SAASA,EAAYpV,EAAOsV,GAE1BhuJ,KAAKiuJ,WAAQjnJ,EAGbhH,KAAKkuJ,MAAO,EACZ,IAAIjX,EAAM+W,EAAGG,YACbnuJ,KAAK04I,MAAQA,EACb14I,KAAKo6B,QAAU4zH,EACfhuJ,KAAKouJ,eAAiBpuJ,KAAKquJ,eAAeL,EAAG59I,MAC7CpQ,KAAKsuJ,SAAWtuJ,KAAKuuJ,oBAAoBtX,GAEzCj3I,KAAKwuJ,aA0FP,OAlFAV,EAAY1sJ,UAAUitJ,eAAiB,SAAUj+I,GAC/C,IAAItQ,EAAQE,KAEZ,OAAOoQ,EAAK4Y,KAAI,SAAU7Y,EAAOpI,GAC/B,IAAIsW,EASJ,MAPoB,iBAATlO,GAA8B,MAATA,QAA2BnJ,IAAVmJ,EAC/CkO,EAAI,CAACtW,EAAOoI,IAEZrQ,EAAMouJ,MAAO,EACb7vI,EAAI,CAAClO,EAAMuD,EAAGvD,EAAMlT,IAGfohB,MAMXyvI,EAAY1sJ,UAAUmtJ,oBAAsB,SAAUtX,GACpD,IAAIn3I,EAAQE,KAMZ,OAJai3I,EAAIqX,UAAY,CAAC,CAC5Bh7H,WAAY,EACZC,SAAUvzB,KAAKo6B,QAAQhqB,KAAKpI,OAAS,KAEzBghB,KAAI,SAAUzsB,GAC1B,OAAO,IAAIwxJ,EAAcU,YAAYlyJ,EAAGuD,OAM5CguJ,EAAY1sJ,UAAUotJ,WAAa,WACjCxuJ,KAAKsuJ,SAASt+I,SAAQ,SAAU0+I,GAC9B,OAAOA,EAAQC,gBAInBb,EAAY1sJ,UAAUwtJ,aAAe,WACnC,QAAkB5nJ,IAAdhH,KAAK6uJ,KAAT,CACA,IAAIC,EACAC,EACAC,EAAShvJ,KAAK04I,MAAMsW,OACxBxuJ,OAAOkW,KAAKs4I,GAAQh/I,SAAQ,SAAU0O,GACpC,MAAe,KAARA,EAAE,KAAcowI,EAASE,EAAOtwI,MAAQqwI,EAASC,EAAOtwI,OAEjE1e,KAAK6uJ,KAAOE,EAAO3/I,IACnBpP,KAAKivJ,QAAUF,EAAO9yH,OAEtBj8B,KAAKiuJ,MAAQ,SAAUv6I,EAAGzW,GACxB,MAAO,CACLyW,EAAGo7I,EAAOI,iBAAiBx7I,OAAG1M,OAAWA,GAAW,GACpD/J,EAAG8xJ,EAAOG,iBAAiBjyJ,OAKjC6wJ,EAAY1sJ,UAAU+tJ,gBAAkB,WACtC,IAAIje,EAAMlxI,KAAK04I,MAAMA,MAAMxH,IAC3BA,EAAImI,OAEJ,IACEr5I,KAAKsuJ,SAASt+I,SAAQ,SAAU0+I,GAC9B,OAAOA,EAAQS,gBAAgBje,MAEjC,QACAA,EAAIsI,YAIRsU,EAAY1sJ,UAAUguJ,iBAAmB,WACvC,IAAIle,EAAMlxI,KAAK04I,MAAMA,MAAMxH,IAC3BA,EAAImI,OAEJ,IACE,IAAK,IAAIjyI,EAAI,EAAGA,EAAIpH,KAAKsuJ,SAAStmJ,OAAS,EAAGZ,IAAKpH,KAAKsuJ,SAASlnJ,GAAGioJ,gBAAgBne,GACpF,QACAA,EAAIsI,YAIDsU,EAvGT,GA0GA3lJ,EAAQ2lJ,YAAcA,G,mBCpHtB,IAKIwB,EACAC,EANAC,EAAUtnJ,EAAOC,QAAU,GAQ/B,SAASsnJ,IACP,MAAM,IAAIptJ,MAAM,mCAGlB,SAASqtJ,IACP,MAAM,IAAIrtJ,MAAM,qCAyBlB,SAASstJ,EAAWxmC,GAClB,GAAImmC,IAAqB3tJ,WAEvB,OAAOA,WAAWwnH,EAAK,GAIzB,IAAKmmC,IAAqBG,IAAqBH,IAAqB3tJ,WAElE,OADA2tJ,EAAmB3tJ,WACZA,WAAWwnH,EAAK,GAGzB,IAEE,OAAOmmC,EAAiBnmC,EAAK,GAC7B,MAAOzuG,GACP,IAEE,OAAO40I,EAAiBvvJ,KAAK,KAAMopH,EAAK,GACxC,MAAOzuG,GAEP,OAAO40I,EAAiBvvJ,KAAKC,KAAMmpH,EAAK,MA3C9C,WACE,IAEImmC,EADwB,oBAAf3tJ,WACUA,WAEA8tJ,EAErB,MAAO/0I,GACP40I,EAAmBG,EAGrB,IAEIF,EAD0B,oBAAjB/tJ,aACYA,aAEAkuJ,EAEvB,MAAOh1I,GACP60I,EAAqBG,GAlBzB,GA2EA,IAEIE,EAFAC,EAAQ,GACRC,GAAW,EAEXC,GAAc,EAElB,SAASC,IACFF,GAAaF,IAIlBE,GAAW,EAEPF,EAAa5nJ,OACf6nJ,EAAQD,EAAaj5I,OAAOk5I,GAE5BE,GAAc,EAGZF,EAAM7nJ,QACRioJ,KAIJ,SAASA,IACP,IAAIH,EAAJ,CAIA,IAAIxrI,EAAUqrI,EAAWK,GACzBF,GAAW,EAGX,IAFA,IAAI/oH,EAAM8oH,EAAM7nJ,OAET++B,GAAK,CAIV,IAHA6oH,EAAeC,EACfA,EAAQ,KAECE,EAAahpH,GAChB6oH,GACFA,EAAaG,GAAYvjH,MAI7BujH,GAAc,EACdhpH,EAAM8oH,EAAM7nJ,OAGd4nJ,EAAe,KACfE,GAAW,EA1Eb,SAAyBI,GACvB,GAAIX,IAAuB/tJ,aAEzB,OAAOA,aAAa0uJ,GAItB,IAAKX,IAAuBG,IAAwBH,IAAuB/tJ,aAEzE,OADA+tJ,EAAqB/tJ,aACdA,aAAa0uJ,GAGtB,IAESX,EAAmBW,GAC1B,MAAOx1I,GACP,IAEE,OAAO60I,EAAmBxvJ,KAAK,KAAMmwJ,GACrC,MAAOx1I,GAGP,OAAO60I,EAAmBxvJ,KAAKC,KAAMkwJ,KAqDzCC,CAAgB7rI,IAoBlB,SAAS8rI,EAAKjnC,EAAKnxF,GACjBh4B,KAAKmpH,IAAMA,EACXnpH,KAAKg4B,MAAQA,EAef,SAASq4H,KAlCTb,EAAQ/xG,SAAW,SAAU0rE,GAC3B,IAAI3kG,EAAO,IAAI/F,MAAM3a,UAAUkE,OAAS,GAExC,GAAIlE,UAAUkE,OAAS,EACrB,IAAK,IAAIZ,EAAI,EAAGA,EAAItD,UAAUkE,OAAQZ,IACpCod,EAAKpd,EAAI,GAAKtD,UAAUsD,GAI5ByoJ,EAAM7hJ,KAAK,IAAIoiJ,EAAKjnC,EAAK3kG,IAEJ,IAAjBqrI,EAAM7nJ,QAAiB8nJ,GACzBH,EAAWM,IAUfG,EAAKhvJ,UAAUorC,IAAM,WACnBxsC,KAAKmpH,IAAItlH,MAAM,KAAM7D,KAAKg4B,QAG5Bw3H,EAAQl5H,MAAQ,UAChBk5H,EAAQhyG,SAAU,EAClBgyG,EAAQc,IAAM,GACdd,EAAQe,KAAO,GACff,EAAQ7f,QAAU,GAElB6f,EAAQgB,SAAW,GAInBhB,EAAQz3G,GAAKs4G,EACbb,EAAQiB,YAAcJ,EACtBb,EAAQhlG,KAAO6lG,EACfb,EAAQv1G,IAAMo2G,EACdb,EAAQkB,eAAiBL,EACzBb,EAAQmB,mBAAqBN,EAC7Bb,EAAQjqJ,KAAO8qJ,EACfb,EAAQoB,gBAAkBP,EAC1Bb,EAAQqB,oBAAsBR,EAE9Bb,EAAQp7C,UAAY,SAAUv2F,GAC5B,MAAO,IAGT2xI,EAAQl8C,QAAU,SAAUz1F,GAC1B,MAAM,IAAIxb,MAAM,qCAGlBmtJ,EAAQsB,IAAM,WACZ,MAAO,KAGTtB,EAAQuB,MAAQ,SAAUz5F,GACxB,MAAM,IAAIj1D,MAAM,mCAGlBmtJ,EAAQwB,MAAQ,WACd,OAAO,I,kCC9MM,SAAS1gJ,EAAsByM,GAC5C,IAAIo2H,EAAOp2H,EAAQzM,wBACnB,MAAO,CACLkd,MAAO2lH,EAAK3lH,MACZre,OAAQgkI,EAAKhkI,OACbC,IAAK+jI,EAAK/jI,IACVmtB,MAAO42G,EAAK52G,MACZN,OAAQk3G,EAAKl3G,OACbnoB,KAAMq/H,EAAKr/H,KACXJ,EAAGy/H,EAAKr/H,KACR7W,EAAGk2I,EAAK/jI,KCPG,SAASimC,EAAUtwB,GAChC,GAAwB,oBAApBA,EAAKjM,WAAkC,CACzC,IAAImpD,EAAgBl9C,EAAKk9C,cACzB,OAAOA,GAAgBA,EAAcgvF,aAAwBh6I,OAG/D,OAAO8N,ECRM,SAASmsI,EAAgBnsI,GACtC,IAAIuwB,EAAMD,EAAUtwB,GAGpB,MAAO,CACL02B,WAHenG,EAAIlZ,YAInBmf,UAHcjG,EAAInZ,aCAtB,SAASg1H,EAAUpsI,GAEjB,OAAOA,aADUswB,EAAUtwB,GAAMg9C,SACIh9C,aAAgBg9C,QAMvD,SAASqvF,EAAcrsI,GAErB,OAAOA,aADUswB,EAAUtwB,GAAMob,aACIpb,aAAgBob,YCdxC,SAASkxH,EAAYt0I,GAClC,OAAOA,GAAWA,EAAQ8hB,UAAY,IAAI7sB,cAAgB,KCA7C,SAASs/I,EAAmBv0I,GAEzC,QAASo0I,EAAUp0I,GAAWA,EAAQklD,cAAgBllD,EAAQ3F,WAAaH,OAAOG,UAAU01D,gBCA/E,SAASykF,EAAoBx0I,GAQ1C,OAAOzM,EAAsBghJ,EAAmBv0I,IAAUjJ,KAAOo9I,EAAgBn0I,GAAS0+B,WCV7E,SAAS1G,EAAiBh4B,GACvC,OAAOs4B,EAAUt4B,GAASg4B,iBAAiBh4B,GCD9B,SAASy0I,EAAez0I,GAErC,IAAI00I,EAAoB18G,EAAiBh4B,GACrC4qG,EAAW8pC,EAAkB9pC,SAC7B+pC,EAAYD,EAAkBC,UAC9BC,EAAYF,EAAkBE,UAElC,MAAO,6BAA6BzzJ,KAAKypH,EAAWgqC,EAAYD,GCCnD,SAASE,EAAiBC,EAAyBC,EAAcC,QAC9D,IAAZA,IACFA,GAAU,GAGZ,ICVoChtI,ECJOhI,EFcvC+vD,EAAkBwkF,EAAmBQ,GACrC3e,EAAO7iI,EAAsBuhJ,GAC7BG,EAA0BZ,EAAcU,GACxCG,EAAS,CACXx2G,WAAY,EACZF,UAAW,GAET22G,EAAU,CACZx+I,EAAG,EACHzW,EAAG,GAkBL,OAfI+0J,IAA4BA,IAA4BD,MACxB,SAA9BV,EAAYS,IAChBN,EAAe1kF,MACbmlF,GCzBgCltI,EDyBT+sI,KCxBdz8G,EAAUtwB,IAAUqsI,EAAcrsI,GCJxC,CACL02B,YAFyC1+B,EDQbgI,GCNR02B,WACpBF,UAAWx+B,EAAQw+B,WDGZ21G,EAAgBnsI,ID0BnBqsI,EAAcU,KAChBI,EAAU5hJ,EAAsBwhJ,IACxBp+I,GAAKo+I,EAAax2G,WAC1B42G,EAAQj1J,GAAK60J,EAAaz2G,WACjByxB,IACTolF,EAAQx+I,EAAI69I,EAAoBzkF,KAI7B,CACLp5D,EAAGy/H,EAAKr/H,KAAOm+I,EAAOx2G,WAAay2G,EAAQx+I,EAC3CzW,EAAGk2I,EAAK/jI,IAAM6iJ,EAAO12G,UAAY22G,EAAQj1J,EACzCuwB,MAAO2lH,EAAK3lH,MACZre,OAAQgkI,EAAKhkI,QG3CF,SAASgjJ,EAAcp1I,GACpC,MAAO,CACLrJ,EAAGqJ,EAAQq4C,WACXn4D,EAAG8f,EAAQs4C,UACX7nC,MAAOzQ,EAAQwQ,YACfpe,OAAQ4N,EAAQ0e,cCLL,SAAS22H,EAAcr1I,GACpC,MAA6B,SAAzBs0I,EAAYt0I,GACPA,EAIPA,EAAQs1I,cACRt1I,EAAQqI,YAERrI,EAAQy1B,MAER8+G,EAAmBv0I,GCTR,SAASu1I,EAAgBvtI,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAapd,QAAQ0pJ,EAAYtsI,KAAU,EAEvDA,EAAKk9C,cAAcpyC,KAGxBuhI,EAAcrsI,IAASysI,EAAezsI,GACjCA,EAGFutI,EAAgBF,EAAcrtI,ICFxB,SAASwtI,EAAkBx1I,EAASy1I,QACpC,IAATA,IACFA,EAAO,IAGT,IAAIC,EAAeH,EAAgBv1I,GAC/B21I,EAAuC,SAA9BrB,EAAYoB,GACrBn9G,EAAMD,EAAUo9G,GAChB7tJ,EAAS8tJ,EAAS,CAACp9G,GAAK3+B,OAAO2+B,EAAIq9G,gBAAkB,GAAInB,EAAeiB,GAAgBA,EAAe,IAAMA,EAC7GG,EAAcJ,EAAK77I,OAAO/R,GAC9B,OAAO8tJ,EAASE,EAChBA,EAAYj8I,OAAO47I,EAAkBH,EAAcxtJ,KCtBtC,SAASiuJ,EAAe91I,GACrC,MAAO,CAAC,QAAS,KAAM,MAAMpV,QAAQ0pJ,EAAYt0I,KAAa,ECMhE,SAAS+1I,EAAoB/1I,GAC3B,IAAKq0I,EAAcr0I,IACoB,UAAvCg4B,EAAiBh4B,GAASyF,SACxB,OAAO,KAGT,IAAIsvI,EAAe/0I,EAAQ+0I,aAE3B,GAAIA,EAAc,CAChB,IAAI16G,EAAOk6G,EAAmBQ,GAE9B,GAAkC,SAA9BT,EAAYS,IAAwE,WAA5C/8G,EAAiB+8G,GAActvI,UAA6D,WAApCuyB,EAAiBqC,GAAM50B,SACzH,OAAO40B,EAIX,OAAO06G,EAwBM,SAASiB,EAAgBh2I,GAItC,IAHA,IAAI9F,EAASo+B,EAAUt4B,GACnB+0I,EAAegB,EAAoB/1I,GAEhC+0I,GAAgBe,EAAef,IAA6D,WAA5C/8G,EAAiB+8G,GAActvI,UACpFsvI,EAAegB,EAAoBhB,GAGrC,OAAIA,GAA8C,SAA9BT,EAAYS,IAAwE,WAA5C/8G,EAAiB+8G,GAActvI,SAClFvL,EAGF66I,GA/BT,SAA4B/0I,GAG1B,IAFA,IAAIi9E,EAAco4D,EAAcr1I,GAEzBq0I,EAAcp3D,IAAgB,CAAC,OAAQ,QAAQryF,QAAQ0pJ,EAAYr3D,IAAgB,GAAG,CAC3F,IAAIr+C,EAAM5G,EAAiBilD,GAG3B,GAAsB,SAAlBr+C,EAAI7C,WAA4C,SAApB6C,EAAIq3G,aAA0Br3G,EAAIs3G,YAAiC,SAAnBt3G,EAAIs3G,WAClF,OAAOj5D,EAEPA,EAAcA,EAAY50E,WAI9B,OAAO,KAiBgB8tI,CAAmBn2I,IAAY9F,EC5DjD,IAAI,EAAM,MACNglB,EAAS,SACTM,EAAQ,QACRzoB,EAAO,OACPq/I,EAAO,OACPC,EAAiB,CAAC,EAAKn3H,EAAQM,EAAOzoB,GACtC0uB,EAAQ,QACR43B,EAAM,MAENi5F,EAAW,WACX,EAAS,SAETC,EAAmCF,EAAe93H,QAAO,SAAUC,EAAKg4H,GACjF,OAAOh4H,EAAI5kB,OAAO,CAAC48I,EAAY,IAAM/wH,EAAO+wH,EAAY,IAAMn5F,MAC7D,IACQ,EAA0B,GAAGzjD,OAAOy8I,EAAgB,CAACD,IAAO73H,QAAO,SAAUC,EAAKg4H,GAC3F,OAAOh4H,EAAI5kB,OAAO,CAAC48I,EAAWA,EAAY,IAAM/wH,EAAO+wH,EAAY,IAAMn5F,MACxE,IAaQo5F,EAAiB,CAXJ,aACN,OACK,YAEC,aACN,OACK,YAEE,cACN,QACK,cC3BxB,SAAS3oH,EAAM4oH,GACb,IAAIzqI,EAAM,IAAIwtB,IACVk9G,EAAU,IAAIxxF,IACdvwD,EAAS,GAKb,SAASmsB,EAAK61H,GACZD,EAAQpuJ,IAAIquJ,EAAS91I,MACN,GAAGlH,OAAOg9I,EAASC,UAAY,GAAID,EAASE,kBAAoB,IACtE7jJ,SAAQ,SAAU8jJ,GACzB,IAAKJ,EAAQp5I,IAAIw5I,GAAM,CACrB,IAAIC,EAAc/qI,EAAItoB,IAAIozJ,GAEtBC,GACFj2H,EAAKi2H,OAIXpiJ,EAAO3D,KAAK2lJ,GASd,OAzBAF,EAAUzjJ,SAAQ,SAAU2jJ,GAC1B3qI,EAAIvjB,IAAIkuJ,EAAS91I,KAAM81I,MAkBzBF,EAAUzjJ,SAAQ,SAAU2jJ,GACrBD,EAAQp5I,IAAIq5I,EAAS91I,OAExBigB,EAAK61H,MAGFhiJ,ECjBT,IAEIi5B,EAAkB,CACpB2oH,UAAW,SACXE,UAAW,GACXO,SAAU,YAGZ,SAASC,IACP,IAAK,IAAIr8G,EAAO9zC,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAMm5B,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/ErzB,EAAKqzB,GAAQ/zC,UAAU+zC,GAGzB,OAAQrzB,EAAKmT,MAAK,SAAU5a,GAC1B,QAASA,GAAoD,oBAAlCA,EAAQzM,0BAIhC,SAAS4jJ,EAAgBC,QACL,IAArBA,IACFA,EAAmB,IAGrB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBI,eAC3CA,OAA4C,IAA3BD,EAAoC3pH,EAAkB2pH,EAC3E,OAAO,SAAsBE,EAAWC,EAAQv9I,QAC9B,IAAZA,IACFA,EAAUq9I,GAGZ,IC/C6BrqI,EAC3BwqI,ED8CErvH,EAAQ,CACViuH,UAAW,SACXqB,iBAAkB,GAClBz9I,QAAS3W,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAIk6B,GAAkB4pH,GAC3DK,cAAe,GACf9hF,SAAU,CACR0hF,UAAWA,EACXC,OAAQA,GAEVrkH,WAAY,GACZ7/B,OAAQ,IAENskJ,EAAmB,GACnBC,GAAc,EACd3+G,EAAW,CACb9Q,MAAOA,EACP0vH,WAAY,SAAoB79I,GAC9B89I,IACA3vH,EAAMnuB,QAAU3W,OAAOkQ,OAAOlQ,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI8jJ,GAAiBlvH,EAAMnuB,SAAUA,GAC/FmuB,EAAM4vH,cAAgB,CACpBT,UAAWtD,EAAUsD,GAAalC,EAAkBkC,GAAaA,EAAUU,eAAiB5C,EAAkBkC,EAAUU,gBAAkB,GAC1IT,OAAQnC,EAAkBmC,IAI5B,IAAIE,EDtCG,SAAwBnB,GAErC,IAAImB,EAAmB/pH,EAAM4oH,GAE7B,OAAOD,EAAel4H,QAAO,SAAUC,EAAK65H,GAC1C,OAAO75H,EAAI5kB,OAAOi+I,EAAiB77H,QAAO,SAAU46H,GAClD,OAAOA,EAASyB,QAAUA,QAE3B,IC8B0BC,CExEhB,SAAqB5B,GAClC,IAAI6B,EAAS7B,EAAUn4H,QAAO,SAAUg6H,EAAQ7hI,GAC9C,IAAI8hI,EAAWD,EAAO7hI,EAAQ5V,MAK9B,OAJAy3I,EAAO7hI,EAAQ5V,MAAQ03I,EAAW/0J,OAAOkQ,OAAOlQ,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI6kJ,GAAW9hI,GAAU,GAAI,CACvGtc,QAAS3W,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI6kJ,EAASp+I,SAAUsc,EAAQtc,SACpE/G,KAAM5P,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI6kJ,EAASnlJ,MAAOqjB,EAAQrjB,QAC3DqjB,EACE6hI,IACN,IAEH,OAAO90J,OAAOkW,KAAK4+I,GAAQtsI,KAAI,SAAUrmB,GACvC,OAAO2yJ,EAAO3yJ,MF6D4B6yJ,CAAY,GAAG7+I,OAAO29I,EAAkBhvH,EAAMnuB,QAAQs8I,aAqC5F,OAnCAnuH,EAAMsvH,iBAAmBA,EAAiB77H,QAAO,SAAUt8B,GACzD,OAAOA,EAAEq1D,WA4IbxsB,EAAMsvH,iBAAiB5kJ,SAAQ,SAAUylJ,GACvC,IAAI53I,EAAO43I,EAAM53I,KACb63I,EAAgBD,EAAMt+I,QACtBA,OAA4B,IAAlBu+I,EAA2B,GAAKA,EAC1CjoG,EAASgoG,EAAMhoG,OAEnB,GAAsB,oBAAXA,EAAuB,CAChC,IAAIkoG,EAAYloG,EAAO,CACrBnoB,MAAOA,EACPznB,KAAMA,EACNu4B,SAAUA,EACVj/B,QAASA,IAGPy+I,EAAS,aAEbd,EAAiB9mJ,KAAK2nJ,GAAaC,OA1H9Bx/G,EAAS8a,UAOlB2kG,YAAa,WACX,IAAId,EAAJ,CAIA,IAAIe,EAAkBxwH,EAAMytC,SACxB0hF,EAAYqB,EAAgBrB,UAC5BC,EAASoB,EAAgBpB,OAG7B,GAAKT,EAAiBQ,EAAWC,GAAjC,CAOApvH,EAAM0zG,MAAQ,CACZyb,UAAW7C,EAAiB6C,EAAW1B,EAAgB2B,GAAoC,UAA3BpvH,EAAMnuB,QAAQ68I,UAC9EU,OAAQvC,EAAcuC,IAOxBpvH,EAAMwtC,OAAQ,EACdxtC,EAAMiuH,UAAYjuH,EAAMnuB,QAAQo8I,UAKhCjuH,EAAMsvH,iBAAiB5kJ,SAAQ,SAAU2jJ,GACvC,OAAOruH,EAAMuvH,cAAclB,EAAS91I,MAAQrd,OAAOkQ,OAAO,GAAIijJ,EAASvjJ,SAIzE,IAFA,IAESrI,EAAQ,EAAGA,EAAQu9B,EAAMsvH,iBAAiB5sJ,OAAQD,IASzD,IAAoB,IAAhBu9B,EAAMwtC,MAAV,CAMA,IAAIijF,EAAwBzwH,EAAMsvH,iBAAiB7sJ,GAC/CoiB,EAAK4rI,EAAsB5rI,GAC3B6rI,EAAyBD,EAAsB5+I,QAC/C8+I,OAAsC,IAA3BD,EAAoC,GAAKA,EACpDn4I,EAAOk4I,EAAsBl4I,KAEf,oBAAPsM,IACTmb,EAAQnb,EAAG,CACTmb,MAAOA,EACPnuB,QAAS8+I,EACTp4I,KAAMA,EACNu4B,SAAUA,KACN9Q,QAjBNA,EAAMwtC,OAAQ,EACd/qE,GAAS,KAsBfmpD,QC1L2B/mC,ED0LV,WACf,OAAO,IAAI64C,SAAQ,SAAUJ,GAC3BxsB,EAASy/G,cACTjzF,EAAQt9B,OC3LT,WAUL,OATKqvH,IACHA,EAAU,IAAI3xF,SAAQ,SAAUJ,GAC9BI,QAAQJ,UAAUF,MAAK,WACrBiyF,OAAU3tJ,EACV47D,EAAQz4C,YAKPwqI,IDoLLtzJ,QAAS,WACP4zJ,IACAF,GAAc,IAIlB,IAAKd,EAAiBQ,EAAWC,GAG/B,OAAOt+G,EAmCT,SAAS6+G,IACPH,EAAiB9kJ,SAAQ,SAAUma,GACjC,OAAOA,OAET2qI,EAAmB,GAGrB,OAvCA1+G,EAAS4+G,WAAW79I,GAASurD,MAAK,SAAUp9B,IACrCyvH,GAAe59I,EAAQ++I,eAC1B/+I,EAAQ++I,cAAc5wH,MAqCnB8Q,GAGJ,IGpPH7+B,EAAU,CACZA,SAAS,GCHI,SAAS4+I,EAAiB5C,GACvC,OAAOA,EAAUt4J,MAAM,KAAK,GCDf,SAASm7J,EAAa7C,GACnC,OAAOA,EAAUt4J,MAAM,KAAK,GCDf,SAASo7J,EAAyB9C,GAC/C,MAAO,CAAC,MAAO,UAAU5rJ,QAAQ4rJ,IAAc,EAAI,IAAM,ICG5C,SAAS+C,EAAe70G,GACrC,IAOIywG,EAPAuC,EAAYhzG,EAAKgzG,UACjB13I,EAAU0kC,EAAK1kC,QACfw2I,EAAY9xG,EAAK8xG,UACjBgD,EAAgBhD,EAAY4C,EAAiB5C,GAAa,KAC1DiD,EAAYjD,EAAY6C,EAAa7C,GAAa,KAClDkD,EAAUhC,EAAU/gJ,EAAI+gJ,EAAUjnI,MAAQ,EAAIzQ,EAAQyQ,MAAQ,EAC9DkpI,EAAUjC,EAAUx3J,EAAIw3J,EAAUtlJ,OAAS,EAAI4N,EAAQ5N,OAAS,EAGpE,OAAQonJ,GACN,KAAK,EACHrE,EAAU,CACRx+I,EAAG+iJ,EACHx5J,EAAGw3J,EAAUx3J,EAAI8f,EAAQ5N,QAE3B,MAEF,KAAK8sB,EACHi2H,EAAU,CACRx+I,EAAG+iJ,EACHx5J,EAAGw3J,EAAUx3J,EAAIw3J,EAAUtlJ,QAE7B,MAEF,KAAKotB,EACH21H,EAAU,CACRx+I,EAAG+gJ,EAAU/gJ,EAAI+gJ,EAAUjnI,MAC3BvwB,EAAGy5J,GAEL,MAEF,KAAK5iJ,EACHo+I,EAAU,CACRx+I,EAAG+gJ,EAAU/gJ,EAAIqJ,EAAQyQ,MACzBvwB,EAAGy5J,GAEL,MAEF,QACExE,EAAU,CACRx+I,EAAG+gJ,EAAU/gJ,EACbzW,EAAGw3J,EAAUx3J,GAInB,IAAI05J,EAAWJ,EAAgBF,EAAyBE,GAAiB,KAEzE,GAAgB,MAAZI,EAAkB,CACpB,IAAI5vH,EAAmB,MAAb4vH,EAAmB,SAAW,QAExC,OAAQH,GACN,KAAKh0H,EACH0vH,EAAQyE,GAAYj+I,KAAKG,MAAMq5I,EAAQyE,IAAaj+I,KAAKG,MAAM47I,EAAU1tH,GAAO,EAAIhqB,EAAQgqB,GAAO,GACnG,MAEF,KAAKqzB,EACH83F,EAAQyE,GAAYj+I,KAAKG,MAAMq5I,EAAQyE,IAAaj+I,KAAKo6C,KAAK2hG,EAAU1tH,GAAO,EAAIhqB,EAAQgqB,GAAO,IAOxG,OAAOmrH,EClDM,ICXX0E,EAAa,CACfxnJ,IAAK,OACLmtB,MAAO,OACPN,OAAQ,OACRnoB,KAAM,QAgBD,SAAS+iJ,EAAYC,GAC1B,IAAIC,EAEArC,EAASoC,EAAMpC,OACfsC,EAAaF,EAAME,WACnBzD,EAAYuD,EAAMvD,UAClBrB,EAAU4E,EAAM5E,QAChB1vI,EAAWs0I,EAAMt0I,SACjBy0I,EAAkBH,EAAMG,gBACxBC,EAAWJ,EAAMI,SAEjBC,EAtBN,SAAsB11G,GACpB,IAAI/tC,EAAI+tC,EAAK/tC,EACTzW,EAAIwkD,EAAKxkD,EAETm6J,EADMngJ,OACIs5H,kBAAoB,EAClC,MAAO,CACL78H,EAAGgF,KAAKwI,MAAMxN,EAAI0jJ,GAAOA,GAAO,EAChCn6J,EAAGyb,KAAKwI,MAAMjkB,EAAIm6J,GAAOA,GAAO,GAedC,CAAanF,GAC7Bx+I,EAAIyjJ,EAAczjJ,EAClBzW,EAAIk6J,EAAcl6J,EAElBq6J,EAAOpF,EAAQ33I,eAAe,KAC9Bg9I,EAAOrF,EAAQ33I,eAAe,KAC9Bi9I,EAAQ1jJ,EACR2jJ,EAAQ,EACRniH,EAAMr+B,OAEV,GAAIigJ,EAAU,CACZ,IAAIpF,EAAeiB,EAAgB2B,GAE/B5C,IAAiBz8G,EAAUq/G,KAC7B5C,EAAeR,EAAmBoD,IAMhCnB,IAAc,IAChBkE,EAAQx7H,EACRh/B,GAAK60J,EAAa1gG,aAAe4lG,EAAW7nJ,OAC5ClS,GAAKg6J,EAAkB,GAAK,GAG1B1D,IAAcz/I,IAChB0jJ,EAAQj7H,EACR7oB,GAAKo+I,EAAa3gG,YAAc6lG,EAAWxpI,MAC3C9Z,GAAKujJ,EAAkB,GAAK,GAIhC,IAKMS,EALFC,EAAen3J,OAAOkQ,OAAO,CAC/B8R,SAAUA,GACT00I,GAAYN,GAEf,OAAIK,EAGKz2J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAIinJ,GAAe,KAAKD,EAAiB,IAAmBD,GAASF,EAAO,IAAM,GAAIG,EAAeF,GAASF,EAAO,IAAM,GAAII,EAAe5+G,WAAaxD,EAAIi7F,kBAAoB,GAAK,EAAI,aAAe78H,EAAI,OAASzW,EAAI,MAAQ,eAAiByW,EAAI,OAASzW,EAAI,SAAUy6J,IAG9Sl3J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAIinJ,GAAe,KAAKZ,EAAkB,IAAoBU,GAASF,EAAOt6J,EAAI,KAAO,GAAI85J,EAAgBS,GAASF,EAAO5jJ,EAAI,KAAO,GAAIqjJ,EAAgBj+G,UAAY,GAAIi+G,ICnClM,IC9CXtkH,EAAO,CACT3+B,KAAM,QACNyoB,MAAO,OACPN,OAAQ,MACR7sB,IAAK,UAEQ,SAASwoJ,EAAqBrE,GAC3C,OAAOA,EAAUz1J,QAAQ,0BAA0B,SAAU8rB,GAC3D,OAAO6oB,EAAK7oB,MCRhB,IAAI,EAAO,CACT4Y,MAAO,MACP43B,IAAK,SAEQ,SAASy9F,EAA8BtE,GACpD,OAAOA,EAAUz1J,QAAQ,cAAc,SAAU8rB,GAC/C,OAAO,EAAKA,MCLD,SAASqH,EAASksB,EAAQ3hB,GACvC,I9BkBoBzW,E8BlBhB+yI,EAAWt8H,EAAMu8H,aAAev8H,EAAMu8H,cAE1C,GAAI56G,EAAOlsB,SAASuK,GAClB,OAAO,EAEJ,I9BaezW,E8BbE+yI,a9BcLziH,EAAUtwB,GAAMizI,YACIjzI,aAAgBizI,W8BfpB,CAC7B,IAAIlnH,EAAOtV,EAEX,EAAG,CACD,GAAIsV,GAAQqM,EAAO86G,WAAWnnH,GAC5B,OAAO,EAITA,EAAOA,EAAK1rB,YAAc0rB,EAAK0B,WACxB1B,GAIb,OAAO,ECrBM,SAASonH,EAAiB/kB,GACvC,OAAO3yI,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAIyiI,GAAO,GAAI,CAChDr/H,KAAMq/H,EAAKz/H,EACXtE,IAAK+jI,EAAKl2I,EACVs/B,MAAO42G,EAAKz/H,EAAIy/H,EAAK3lH,MACrByO,OAAQk3G,EAAKl2I,EAAIk2I,EAAKhkI,SCsB1B,SAASgpJ,EAA2Bp7I,EAASq7I,GAC3C,OAAOA,IAAmB/E,EAAW6E,ECzBxB,SAAyBn7I,GACtC,IAAIu4B,EAAMD,EAAUt4B,GAChBq6B,EAAOk6G,EAAmBv0I,GAC1B41I,EAAiBr9G,EAAIq9G,eACrBnlI,EAAQ4pB,EAAK+Z,YACbhiD,EAASioC,EAAKga,aACd19C,EAAI,EACJzW,EAAI,EAuBR,OAjBI01J,IACFnlI,EAAQmlI,EAAenlI,MACvBre,EAASwjJ,EAAexjJ,OASnB,iCAAiCjR,KAAKqhB,UAAUC,aACnD9L,EAAIi/I,EAAev9F,WACnBn4D,EAAI01J,EAAet9F,YAIhB,CACL7nC,MAAOA,EACPre,OAAQA,EACRuE,EAAGA,EAAI69I,EAAoBx0I,GAC3B9f,EAAGA,GDTiDo7J,CAAgBt7I,IAAYq0I,EAAcgH,GAdlG,SAAoCr7I,GAClC,IAAIo2H,EAAO7iI,EAAsByM,GASjC,OARAo2H,EAAK/jI,IAAM+jI,EAAK/jI,IAAM2N,EAAQs+B,UAC9B83F,EAAKr/H,KAAOq/H,EAAKr/H,KAAOiJ,EAAQu+B,WAChC63F,EAAKl3G,OAASk3G,EAAK/jI,IAAM2N,EAAQq0C,aACjC+hF,EAAK52G,MAAQ42G,EAAKr/H,KAAOiJ,EAAQo0C,YACjCgiF,EAAK3lH,MAAQzQ,EAAQo0C,YACrBgiF,EAAKhkI,OAAS4N,EAAQq0C,aACtB+hF,EAAKz/H,EAAIy/H,EAAKr/H,KACdq/H,EAAKl2I,EAAIk2I,EAAK/jI,IACP+jI,EAI2GmlB,CAA2BF,GAAkBF,EEtBlJ,SAAyBn7I,GACtC,IAAIq6B,EAAOk6G,EAAmBv0I,GAC1Bw7I,EAAYrH,EAAgBn0I,GAC5B8S,EAAO9S,EAAQklD,cAAcpyC,KAC7BrC,EAAQ9U,KAAKmS,IAAIusB,EAAK0V,YAAa1V,EAAK+Z,YAAathC,EAAOA,EAAKi9B,YAAc,EAAGj9B,EAAOA,EAAKshC,YAAc,GAC5GhiD,EAASuJ,KAAKmS,IAAIusB,EAAK0yC,aAAc1yC,EAAKga,aAAcvhC,EAAOA,EAAKi6D,aAAe,EAAGj6D,EAAOA,EAAKuhC,aAAe,GACjH19C,GAAK6kJ,EAAU98G,WAAa81G,EAAoBx0I,GAChD9f,GAAKs7J,EAAUh9G,UAMnB,MAJiD,QAA7CxG,EAAiBllB,GAAQunB,GAAM+V,YACjCz5C,GAAKgF,KAAKmS,IAAIusB,EAAK+Z,YAAathC,EAAOA,EAAKshC,YAAc,GAAK3jC,GAG1D,CACLA,MAAOA,EACPre,OAAQA,EACRuE,EAAGA,EACHzW,EAAGA,GFK2Ku7J,CAAgBlH,EAAmBv0I,KAuBtM,SAAS07I,EAAgB17I,EAAS27I,EAAUC,GACzD,IAAIC,EAAmC,oBAAbF,EAlB5B,SAA4B37I,GAC1B,IAAI87I,EAAkBtG,EAAkBH,EAAcr1I,IAElD+7I,EADoB,CAAC,WAAY,SAASnxJ,QAAQotC,EAAiBh4B,GAASyF,WAAa,GACnD4uI,EAAcr0I,GAAWg2I,EAAgBh2I,GAAWA,EAE9F,OAAKo0I,EAAU2H,GAKRD,EAAgB9/H,QAAO,SAAUq/H,GACtC,OAAOjH,EAAUiH,IAAmBnnI,EAASmnI,EAAgBU,IAAmD,SAAhCzH,EAAY+G,MALrF,GAYkDW,CAAmBh8I,GAAW,GAAGpG,OAAO+hJ,GAC/FG,EAAkB,GAAGliJ,OAAOiiJ,EAAqB,CAACD,IAClDK,EAAsBH,EAAgB,GACtCI,EAAeJ,EAAgBv9H,QAAO,SAAU49H,EAASd,GAC3D,IAAIjlB,EAAOglB,EAA2Bp7I,EAASq7I,GAK/C,OAJAc,EAAQ9pJ,IAAMsJ,KAAKmS,IAAIsoH,EAAK/jI,IAAK8pJ,EAAQ9pJ,KACzC8pJ,EAAQ38H,MAAQ7jB,KAAKkS,IAAIuoH,EAAK52G,MAAO28H,EAAQ38H,OAC7C28H,EAAQj9H,OAASvjB,KAAKkS,IAAIuoH,EAAKl3G,OAAQi9H,EAAQj9H,QAC/Ci9H,EAAQplJ,KAAO4E,KAAKmS,IAAIsoH,EAAKr/H,KAAMolJ,EAAQplJ,MACpColJ,IACNf,EAA2Bp7I,EAASi8I,IAKvC,OAJAC,EAAazrI,MAAQyrI,EAAa18H,MAAQ08H,EAAanlJ,KACvDmlJ,EAAa9pJ,OAAS8pJ,EAAah9H,OAASg9H,EAAa7pJ,IACzD6pJ,EAAavlJ,EAAIulJ,EAAanlJ,KAC9BmlJ,EAAah8J,EAAIg8J,EAAa7pJ,IACvB6pJ,EGlEM,SAASE,EAAmBC,GACzC,OAAO54J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GCD5B,CACLtB,IAAK,EACLmtB,MAAO,EACPN,OAAQ,EACRnoB,KAAM,IDHsDslJ,GEFjD,SAASC,GAAgBlpJ,EAAOuG,GAC7C,OAAOA,EAAK4kB,QAAO,SAAUg+H,EAAS32J,GAEpC,OADA22J,EAAQ32J,GAAOwN,EACRmpJ,IACN,ICMU,SAASC,GAAej0H,EAAOnuB,QAC5B,IAAZA,IACFA,EAAU,IAGZ,IAAI8+I,EAAW9+I,EACXqiJ,EAAqBvD,EAAS1C,UAC9BA,OAAmC,IAAvBiG,EAAgCl0H,EAAMiuH,UAAYiG,EAC9DC,EAAoBxD,EAASyC,SAC7BA,OAAiC,IAAtBe,EvBXY,kBuBWqCA,EAC5DC,EAAwBzD,EAAS0C,aACjCA,OAAyC,IAA1Be,EAAmCrG,EAAWqG,EAC7DC,EAAwB1D,EAAS2D,eACjCA,OAA2C,IAA1BD,EAAmC,EAASA,EAC7DE,EAAuB5D,EAAS6D,YAChCA,OAAuC,IAAzBD,GAA0CA,EACxDE,EAAmB9D,EAASnhB,QAC5BA,OAA+B,IAArBilB,EAA8B,EAAIA,EAC5CX,EAAgBD,EAAsC,kBAAZrkB,EAAuBA,EAAUukB,GAAgBvkB,EAASse,IACpG4G,EAAaJ,IAAmB,EvBlBf,YuBkBoC,EACrDv/D,EAAmB/0D,EAAMytC,SAAS0hF,UAClCuC,EAAa1xH,EAAM0zG,MAAM0b,OACzB33I,EAAUuoB,EAAMytC,SAAS+mF,EAAcE,EAAaJ,GACpDK,EAAqBxB,EAAgBtH,EAAUp0I,GAAWA,EAAUA,EAAQo4I,gBAAkB7D,EAAmBhsH,EAAMytC,SAAS2hF,QAASgE,EAAUC,GACnJuB,EAAsB5pJ,EAAsB+pF,GAC5C8/D,EAAgB7D,EAAe,CACjC7B,UAAWyF,EACXn9I,QAASi6I,EACThD,SAAU,WACVT,UAAWA,IAET6G,EAAmBlC,EAAiB13J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAIsmJ,GAAamD,IACjFE,EAAoBT,IAAmB,EAASQ,EAAmBF,EAGnEI,EAAkB,CACpBlrJ,IAAK6qJ,EAAmB7qJ,IAAMirJ,EAAkBjrJ,IAAMgqJ,EAAchqJ,IACpE6sB,OAAQo+H,EAAkBp+H,OAASg+H,EAAmBh+H,OAASm9H,EAAcn9H,OAC7EnoB,KAAMmmJ,EAAmBnmJ,KAAOumJ,EAAkBvmJ,KAAOslJ,EAActlJ,KACvEyoB,MAAO89H,EAAkB99H,MAAQ09H,EAAmB19H,MAAQ68H,EAAc78H,OAExEg+H,EAAaj1H,EAAMuvH,cAAc9gI,OAErC,GAAI6lI,IAAmB,GAAUW,EAAY,CAC3C,IAAIxmI,EAASwmI,EAAWhH,GACxB/yJ,OAAOkW,KAAK4jJ,GAAiBtqJ,SAAQ,SAAUrN,GAC7C,IAAI63J,EAAW,CAACj+H,EAAON,GAAQt0B,QAAQhF,IAAQ,EAAI,GAAK,EACpDi7C,EAAO,CAAC,EAAK3hB,GAAQt0B,QAAQhF,IAAQ,EAAI,IAAM,IACnD23J,EAAgB33J,IAAQoxB,EAAO6pB,GAAQ48G,KAI3C,OAAOF,EC9DM,SAASG,GAAO7vI,EAAKza,EAAO0a,GACzC,OAAOnS,KAAKmS,IAAID,EAAKlS,KAAKkS,IAAIza,EAAO0a,ICEvC,SAAS6vI,GAAe/yC,EAAUwrB,EAAMwnB,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBjnJ,EAAG,EACHzW,EAAG,IAIA,CACLmS,IAAKu4G,EAASv4G,IAAM+jI,EAAKhkI,OAASwrJ,EAAiB19J,EACnDs/B,MAAOorF,EAASprF,MAAQ42G,EAAK3lH,MAAQmtI,EAAiBjnJ,EACtDuoB,OAAQ0rF,EAAS1rF,OAASk3G,EAAKhkI,OAASwrJ,EAAiB19J,EACzD6W,KAAM6zG,EAAS7zG,KAAOq/H,EAAK3lH,MAAQmtI,EAAiBjnJ,GAIxD,SAASknJ,GAAsBjzC,GAC7B,MAAO,CAAC,EAAKprF,EAAON,EAAQnoB,GAAM6jB,MAAK,SAAUkjI,GAC/C,OAAOlzC,EAASkzC,IAAS,KAiCd,IC3CX,GAA4B3G,EAAgB,CAC9CI,iBAFqB,CrB+BR,CACbz2I,KAAM,iBACNi0C,SAAS,EACTsjG,MAAO,QACPjrI,GAAI,aACJsjC,OAxCF,SAAgBhM,GACd,IAAInc,EAAQmc,EAAKnc,MACb8Q,EAAWqL,EAAKrL,SAChBj/B,EAAUsqC,EAAKtqC,QACf2jJ,EAAkB3jJ,EAAQ86I,OAC1BA,OAA6B,IAApB6I,GAAoCA,EAC7CC,EAAkB5jJ,EAAQ+pC,OAC1BA,OAA6B,IAApB65G,GAAoCA,EAC7C9jJ,EAASo+B,EAAU/P,EAAMytC,SAAS2hF,QAClCQ,EAAgB,GAAGv+I,OAAO2uB,EAAM4vH,cAAcT,UAAWnvH,EAAM4vH,cAAcR,QAYjF,OAVIzC,GACFiD,EAAcllJ,SAAQ,SAAUyiJ,GAC9BA,EAAa3sJ,iBAAiB,SAAUswC,EAAS8a,OAAQ35C,MAIzD2pC,GACFjqC,EAAOnR,iBAAiB,SAAUswC,EAAS8a,OAAQ35C,GAG9C,WACD06I,GACFiD,EAAcllJ,SAAQ,SAAUyiJ,GAC9BA,EAAa1sJ,oBAAoB,SAAUqwC,EAAS8a,OAAQ35C,MAI5D2pC,GACFjqC,EAAOlR,oBAAoB,SAAUqwC,EAAS8a,OAAQ35C,KAY1DnH,KAAM,IK7BO,CACbyN,KAAM,gBACNi0C,SAAS,EACTsjG,MAAO,OACPjrI,GApBF,SAAuBs3B,GACrB,IAAInc,EAAQmc,EAAKnc,MACbznB,EAAO4jC,EAAK5jC,KAKhBynB,EAAMuvH,cAAch3I,GAAQy4I,EAAe,CACzC7B,UAAWnvH,EAAM0zG,MAAMyb,UACvB13I,QAASuoB,EAAM0zG,MAAM0b,OACrBV,SAAU,WACVT,UAAWjuH,EAAMiuH,aAUnBnjJ,KAAM,IC0GO,CACbyN,KAAM,gBACNi0C,SAAS,EACTsjG,MAAO,cACPjrI,GAjDF,SAAuBsrI,GACrB,IAAInwH,EAAQmwH,EAAMnwH,MACdnuB,EAAUs+I,EAAMt+I,QAChB6jJ,EAAwB7jJ,EAAQ8/I,gBAChCA,OAA4C,IAA1B+D,GAA0CA,EAC5DC,EAAoB9jJ,EAAQ+/I,SAC5BA,OAAiC,IAAtB+D,GAAsCA,EAUjDtD,EAAe,CACjBpE,UAAW4C,EAAiB7wH,EAAMiuH,WAClCmB,OAAQpvH,EAAMytC,SAAS2hF,OACvBsC,WAAY1xH,EAAM0zG,MAAM0b,OACxBuC,gBAAiBA,GAGsB,MAArC3xH,EAAMuvH,cAAcsF,gBACtB70H,EAAM90B,OAAOkkJ,OAASl0J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI40B,EAAM90B,OAAOkkJ,QAASmC,EAAYr2J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAIinJ,GAAe,GAAI,CACzIzF,QAAS5sH,EAAMuvH,cAAcsF,cAC7B33I,SAAU8iB,EAAMnuB,QAAQ68I,SACxBkD,SAAUA,OAImB,MAA7B5xH,EAAMuvH,cAAcqG,QACtB51H,EAAM90B,OAAO0qJ,MAAQ16J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI40B,EAAM90B,OAAO0qJ,OAAQrE,EAAYr2J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAIinJ,GAAe,GAAI,CACvIzF,QAAS5sH,EAAMuvH,cAAcqG,MAC7B14I,SAAU,WACV00I,UAAU,OAId5xH,EAAM+K,WAAWqkH,OAASl0J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI40B,EAAM+K,WAAWqkH,QAAS,GAAI,CACtF,wBAAyBpvH,EAAMiuH,aAUjCnjJ,KAAM,IgBxDO,CACbyN,KAAM,cACNi0C,SAAS,EACTsjG,MAAO,QACPjrI,GA9EF,SAAqBs3B,GACnB,IAAInc,EAAQmc,EAAKnc,MACjB9kC,OAAOkW,KAAK4uB,EAAMytC,UAAU/iE,SAAQ,SAAU6N,GAC5C,IAAIlN,EAAQ20B,EAAM90B,OAAOqN,IAAS,GAC9BwyB,EAAa/K,EAAM+K,WAAWxyB,IAAS,GACvCd,EAAUuoB,EAAMytC,SAASl1D,GAExBuzI,EAAcr0I,IAAas0I,EAAYt0I,KAO5Cvc,OAAOkQ,OAAOqM,EAAQpM,MAAOA,GAC7BnQ,OAAOkW,KAAK25B,GAAYrgC,SAAQ,SAAU6N,GACxC,IAAI1N,EAAQkgC,EAAWxyB,IAET,IAAV1N,EACF4M,EAAQpZ,gBAAgBka,GAExBd,EAAQtZ,aAAaoa,GAAgB,IAAV1N,EAAiB,GAAKA,WA0DvDs9C,OApDF,SAAgBqpG,GACd,IAAIxxH,EAAQwxH,EAAMxxH,MACd61H,EAAgB,CAClBzG,OAAQ,CACNlyI,SAAU8iB,EAAMnuB,QAAQ68I,SACxBlgJ,KAAM,IACN1E,IAAK,IACLosI,OAAQ,KAEV0f,MAAO,CACL14I,SAAU,YAEZiyI,UAAW,IAQb,OANAj0J,OAAOkQ,OAAO40B,EAAMytC,SAAS2hF,OAAO/jJ,MAAOwqJ,EAAczG,QAErDpvH,EAAMytC,SAASmoF,OACjB16J,OAAOkQ,OAAO40B,EAAMytC,SAASmoF,MAAMvqJ,MAAOwqJ,EAAcD,OAGnD,WACL16J,OAAOkW,KAAK4uB,EAAMytC,UAAU/iE,SAAQ,SAAU6N,GAC5C,IAAId,EAAUuoB,EAAMytC,SAASl1D,GACzBwyB,EAAa/K,EAAM+K,WAAWxyB,IAAS,GAGvClN,EAFkBnQ,OAAOkW,KAAK4uB,EAAM90B,OAAO+J,eAAesD,GAAQynB,EAAM90B,OAAOqN,GAAQs9I,EAAct9I,IAE7Eyd,QAAO,SAAU3qB,EAAO6gD,GAElD,OADA7gD,EAAM6gD,GAAY,GACX7gD,IACN,IAEEygJ,EAAcr0I,IAAas0I,EAAYt0I,KAO5Cvc,OAAOkQ,OAAOqM,EAAQpM,MAAOA,GAC7BnQ,OAAOkW,KAAK25B,GAAYrgC,SAAQ,SAAUE,GACxC6M,EAAQpZ,gBAAgBuM,YAa9B0jJ,SAAU,CAAC,kBftCE,CACb/1I,KAAM,SACNi0C,SAAS,EACTsjG,MAAO,OACPxB,SAAU,CAAC,iBACXzpI,GA5BF,SAAgB2sI,GACd,IAAIxxH,EAAQwxH,EAAMxxH,MACdnuB,EAAU2/I,EAAM3/I,QAChB0G,EAAOi5I,EAAMj5I,KACbu9I,EAAkBjkJ,EAAQ4c,OAC1BA,OAA6B,IAApBqnI,EAA6B,CAAC,EAAG,GAAKA,EAC/ChrJ,EAAO,EAAWkrB,QAAO,SAAUC,EAAKg4H,GAE1C,OADAh4H,EAAIg4H,GA5BD,SAAiCA,EAAWva,EAAOjlH,GACxD,IAAIwiI,EAAgBJ,EAAiB5C,GACjC8H,EAAiB,CAACvnJ,EAAM,GAAKnM,QAAQ4uJ,IAAkB,GAAK,EAAI,EAEhE90G,EAAyB,oBAAX1tB,EAAwBA,EAAOvzB,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAIsoI,GAAQ,GAAI,CAC3Fua,UAAWA,KACPx/H,EACFunI,EAAW75G,EAAK,GAChB8H,EAAW9H,EAAK,GAIpB,OAFA65G,EAAWA,GAAY,EACvB/xG,GAAYA,GAAY,GAAK8xG,EACtB,CAACvnJ,EAAMyoB,GAAO50B,QAAQ4uJ,IAAkB,EAAI,CACjD7iJ,EAAG61C,EACHtsD,EAAGq+J,GACD,CACF5nJ,EAAG4nJ,EACHr+J,EAAGssD,GAWcgyG,CAAwBhI,EAAWjuH,EAAM0zG,MAAOjlH,GAC1DwH,IACN,IACCigI,EAAwBprJ,EAAKk1B,EAAMiuH,WACnC7/I,EAAI8nJ,EAAsB9nJ,EAC1BzW,EAAIu+J,EAAsBv+J,EAEW,MAArCqoC,EAAMuvH,cAAcsF,gBACtB70H,EAAMuvH,cAAcsF,cAAczmJ,GAAKA,EACvC4xB,EAAMuvH,cAAcsF,cAAcl9J,GAAKA,GAGzCqoC,EAAMuvH,cAAch3I,GAAQzN,IgB+Ff,CACbyN,KAAM,OACNi0C,SAAS,EACTsjG,MAAO,OACPjrI,GA5HF,SAAcs3B,GACZ,IAAInc,EAAQmc,EAAKnc,MACbnuB,EAAUsqC,EAAKtqC,QACf0G,EAAO4jC,EAAK5jC,KAEhB,IAAIynB,EAAMuvH,cAAch3I,GAAM49I,MAA9B,CAoCA,IAhCA,IAAIC,EAAoBvkJ,EAAQw/I,SAC5BgF,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBzkJ,EAAQ0kJ,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8B5kJ,EAAQ6kJ,mBACtClnB,EAAU39H,EAAQ29H,QAClB4jB,EAAWvhJ,EAAQuhJ,SACnBC,EAAexhJ,EAAQwhJ,aACvBmB,EAAc3iJ,EAAQ2iJ,YACtBmC,EAAwB9kJ,EAAQ+kJ,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwBhlJ,EAAQglJ,sBAChCC,EAAqB92H,EAAMnuB,QAAQo8I,UACnCgD,EAAgBJ,EAAiBiG,GAEjCJ,EAAqBD,IADHxF,IAAkB6F,IACqCF,EAAiB,CAACtE,EAAqBwE,IAjCtH,SAAuC7I,GACrC,GAAI4C,EAAiB5C,KAAeJ,EAClC,MAAO,GAGT,IAAIkJ,EAAoBzE,EAAqBrE,GAC7C,MAAO,CAACsE,EAA8BtE,GAAY8I,EAAmBxE,EAA8BwE,IA2BwCC,CAA8BF,IACrKG,EAAa,CAACH,GAAoBzlJ,OAAOqlJ,GAAoB1gI,QAAO,SAAUC,EAAKg4H,GACrF,OAAOh4H,EAAI5kB,OAAOw/I,EAAiB5C,KAAeJ,ECnCvC,SAA8B7tH,EAAOnuB,QAClC,IAAZA,IACFA,EAAU,IAGZ,IAAI8+I,EAAW9+I,EACXo8I,EAAY0C,EAAS1C,UACrBmF,EAAWzC,EAASyC,SACpBC,EAAe1C,EAAS0C,aACxB7jB,EAAUmhB,EAASnhB,QACnBonB,EAAiBjG,EAASiG,eAC1BM,EAAwBvG,EAASkG,sBACjCA,OAAkD,IAA1BK,EAAmC,EAAgBA,EAC3EhG,EAAYJ,EAAa7C,GACzBgJ,EAAa/F,EAAY0F,EAAiB5I,EAAsBA,EAAoBv6H,QAAO,SAAUw6H,GACvG,OAAO6C,EAAa7C,KAAeiD,KAChCpD,EAEDqJ,EAAoBF,EAAWxjI,QAAO,SAAUw6H,GAClD,OAAO4I,EAAsBx0J,QAAQ4rJ,IAAc,KAGpB,IAA7BkJ,EAAkBz0J,SACpBy0J,EAAoBF,GAMtB,IAAIG,EAAYD,EAAkBnhI,QAAO,SAAUC,EAAKg4H,GAOtD,OANAh4H,EAAIg4H,GAAagG,GAAej0H,EAAO,CACrCiuH,UAAWA,EACXmF,SAAUA,EACVC,aAAcA,EACd7jB,QAASA,IACRqhB,EAAiB5C,IACbh4H,IACN,IACH,OAAO/6B,OAAOkW,KAAKgmJ,GAAW5+H,MAAK,SAAUnf,EAAGrhB,GAC9C,OAAOo/J,EAAU/9I,GAAK+9I,EAAUp/J,MDJyBq/J,CAAqBr3H,EAAO,CACnFiuH,UAAWA,EACXmF,SAAUA,EACVC,aAAcA,EACd7jB,QAASA,EACTonB,eAAgBA,EAChBC,sBAAuBA,IACpB5I,KACJ,IACCqJ,EAAgBt3H,EAAM0zG,MAAMyb,UAC5BuC,EAAa1xH,EAAM0zG,MAAM0b,OACzBmI,EAAY,IAAIrmH,IAChBsmH,GAAqB,EACrBC,EAAwBR,EAAW,GAE9Bn1J,EAAI,EAAGA,EAAIm1J,EAAWv0J,OAAQZ,IAAK,CAC1C,IAAImsJ,EAAYgJ,EAAWn1J,GAEvB41J,EAAiB7G,EAAiB5C,GAElC0J,EAAmB7G,EAAa7C,KAAe/wH,EAC/C6jB,EAAa,CAAC,EAAKpqB,GAAQt0B,QAAQq1J,IAAmB,EACtDj2H,EAAMsf,EAAa,QAAU,SAC7BshE,EAAW4xC,GAAej0H,EAAO,CACnCiuH,UAAWA,EACXmF,SAAUA,EACVC,aAAcA,EACdmB,YAAaA,EACbhlB,QAASA,IAEPooB,EAAoB72G,EAAa42G,EAAmB1gI,EAAQzoB,EAAOmpJ,EAAmBhhI,EAAS,EAE/F2gI,EAAc71H,GAAOiwH,EAAWjwH,KAClCm2H,EAAoBtF,EAAqBsF,IAG3C,IAAIC,EAAmBvF,EAAqBsF,GACxCE,EAAS,GAUb,GARIzB,GACFyB,EAAOpvJ,KAAK25G,EAASq1C,IAAmB,GAGtClB,GACFsB,EAAOpvJ,KAAK25G,EAASu1C,IAAsB,EAAGv1C,EAASw1C,IAAqB,GAG1EC,EAAOC,OAAM,SAAUC,GACzB,OAAOA,KACL,CACFP,EAAwBxJ,EACxBuJ,GAAqB,EACrB,MAGFD,EAAUp3J,IAAI8tJ,EAAW6J,GAG3B,GAAIN,EAqBF,IAnBA,IAEIS,EAAQ,SAAevyI,GACzB,IAAIwyI,EAAmBjB,EAAWvsH,MAAK,SAAUujH,GAC/C,IAAI6J,EAASP,EAAUn8J,IAAI6yJ,GAE3B,GAAI6J,EACF,OAAOA,EAAOx1J,MAAM,EAAGojB,GAAIqyI,OAAM,SAAUC,GACzC,OAAOA,QAKb,GAAIE,EAEF,OADAT,EAAwBS,EACjB,SAIFxyI,EAnBYkxI,EAAiB,EAAI,EAmBZlxI,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFFuyI,EAAMvyI,GAEK,MAItBsa,EAAMiuH,YAAcwJ,IACtBz3H,EAAMuvH,cAAch3I,GAAM49I,OAAQ,EAClCn2H,EAAMiuH,UAAYwJ,EAClBz3H,EAAMwtC,OAAQ,KAUhB+gF,iBAAkB,CAAC,UACnBzjJ,KAAM,CACJqrJ,OAAO,IEhCI,CACb59I,KAAM,kBACNi0C,SAAS,EACTsjG,MAAO,OACPjrI,GAzGF,SAAyBs3B,GACvB,IAAInc,EAAQmc,EAAKnc,MACbnuB,EAAUsqC,EAAKtqC,QACf0G,EAAO4jC,EAAK5jC,KACZ69I,EAAoBvkJ,EAAQw/I,SAC5BgF,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmBzkJ,EAAQ0kJ,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDlD,EAAWvhJ,EAAQuhJ,SACnBC,EAAexhJ,EAAQwhJ,aACvBmB,EAAc3iJ,EAAQ2iJ,YACtBhlB,EAAU39H,EAAQ29H,QAClB2oB,EAAkBtmJ,EAAQumJ,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBxmJ,EAAQymJ,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtDh2C,EAAW4xC,GAAej0H,EAAO,CACnCozH,SAAUA,EACVC,aAAcA,EACd7jB,QAASA,EACTglB,YAAaA,IAEXvD,EAAgBJ,EAAiB7wH,EAAMiuH,WACvCiD,EAAYJ,EAAa9wH,EAAMiuH,WAC/BsK,GAAmBrH,EACnBG,EAAWN,EAAyBE,GACpCsF,ECpCY,MDoCSlF,ECpCH,IAAM,IDqCxBwD,EAAgB70H,EAAMuvH,cAAcsF,cACpCyC,EAAgBt3H,EAAM0zG,MAAMyb,UAC5BuC,EAAa1xH,EAAM0zG,MAAM0b,OACzBoJ,EAA4C,oBAAjBF,EAA8BA,EAAap9J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI40B,EAAM0zG,OAAQ,GAAI,CAC1Hua,UAAWjuH,EAAMiuH,aACbqK,EACFxtJ,EAAO,CACTsD,EAAG,EACHzW,EAAG,GAGL,GAAKk9J,EAAL,CAIA,GAAIwB,EAAe,CACjB,IAAIoC,EAAwB,MAAbpH,EAAmB,EAAM7iJ,EACpCkqJ,EAAuB,MAAbrH,EAAmB16H,EAASM,EACtCwK,EAAmB,MAAb4vH,EAAmB,SAAW,QACpC5iI,EAASomI,EAAcxD,GACvB/rI,EAAMuvI,EAAcxD,GAAYhvC,EAASo2C,GACzClzI,EAAMsvI,EAAcxD,GAAYhvC,EAASq2C,GACzCC,EAAWP,GAAU1G,EAAWjwH,GAAO,EAAI,EAC3Cy4B,EAASg3F,IAAch0H,EAAQo6H,EAAc71H,GAAOiwH,EAAWjwH,GAC/Dm3H,EAAS1H,IAAch0H,GAASw0H,EAAWjwH,IAAQ61H,EAAc71H,GAGjEo3H,EAAe74H,EAAMytC,SAASmoF,MAC9BkD,EAAYV,GAAUS,EAAehM,EAAcgM,GAAgB,CACrE3wI,MAAO,EACPre,OAAQ,GAENkvJ,EAAqB/4H,EAAMuvH,cAAc,oBAAsBvvH,EAAMuvH,cAAc,oBAAoB/f,QTrEtG,CACL1lI,IAAK,EACLmtB,MAAO,EACPN,OAAQ,EACRnoB,KAAM,GSkEFwqJ,EAAkBD,EAAmBN,GACrCQ,EAAkBF,EAAmBL,GAMrCQ,EAAW/D,GAAO,EAAGmC,EAAc71H,GAAMq3H,EAAUr3H,IACnD03H,EAAYZ,EAAkBjB,EAAc71H,GAAO,EAAIk3H,EAAWO,EAAWF,EAAkBR,EAAoBt+F,EAASg/F,EAAWF,EAAkBR,EACzJY,EAAYb,GAAmBjB,EAAc71H,GAAO,EAAIk3H,EAAWO,EAAWD,EAAkBT,EAAoBI,EAASM,EAAWD,EAAkBT,EAC1Ja,GAAoBr5H,EAAMytC,SAASmoF,OAASnI,EAAgBztH,EAAMytC,SAASmoF,OAC3E0D,GAAeD,GAAiC,MAAbhI,EAAmBgI,GAAkBtjH,WAAa,EAAIsjH,GAAkBrjH,YAAc,EAAI,EAC7HujH,GAAsBv5H,EAAMuvH,cAAc9gI,OAASuR,EAAMuvH,cAAc9gI,OAAOuR,EAAMiuH,WAAWoD,GAAY,EAC3GmI,GAAY3E,EAAcxD,GAAY8H,EAAYI,GAAsBD,GACxEG,GAAY5E,EAAcxD,GAAY+H,EAAYG,GAClDG,GAAkBvE,GAAOiD,EAAShlJ,KAAKkS,IAAIA,EAAKk0I,IAAal0I,EAAKmJ,EAAQ2pI,EAAShlJ,KAAKmS,IAAIA,EAAKk0I,IAAal0I,GAClHsvI,EAAcxD,GAAYqI,GAC1B5uJ,EAAKumJ,GAAYqI,GAAkBjrI,EAGrC,GAAI+nI,EAAc,CAChB,IAAImD,GAAyB,MAAbtI,EAAmB,EAAM7iJ,EAErCorJ,GAAwB,MAAbvI,EAAmB16H,EAASM,EAEvCqtF,GAAUuwC,EAAc0B,GAMxBsD,GAAmB1E,GAJZ7wC,GAAUjC,EAASs3C,IAIMr1C,GAFzBA,GAAUjC,EAASu3C,KAI9B/E,EAAc0B,GAAWsD,GACzB/uJ,EAAKyrJ,GAAWsD,GAAmBv1C,GAGrCtkF,EAAMuvH,cAAch3I,GAAQzN,IAS5ByjJ,iBAAkB,CAAC,WE/BN,CACbh2I,KAAM,QACNi0C,SAAS,EACTsjG,MAAO,OACPjrI,GA/EF,SAAes3B,GACb,IAAI29G,EAEA95H,EAAQmc,EAAKnc,MACbznB,EAAO4jC,EAAK5jC,KACZsgJ,EAAe74H,EAAMytC,SAASmoF,MAC9Bf,EAAgB70H,EAAMuvH,cAAcsF,cACpC5D,EAAgBJ,EAAiB7wH,EAAMiuH,WACvC31G,EAAOy4G,EAAyBE,GAEhCxvH,EADa,CAACjzB,EAAMyoB,GAAO50B,QAAQ4uJ,IAAkB,EAClC,SAAW,QAElC,GAAK4H,GAAiBhE,EAAtB,CAIA,IAAIf,EAAgB9zH,EAAMuvH,cAAch3I,EAAO,eAAei3H,QAC1DspB,EAAYjM,EAAcgM,GAC1BkB,EAAmB,MAATzhH,EAAe,EAAM9pC,EAC/BwrJ,EAAmB,MAAT1hH,EAAe3hB,EAASM,EAClCgjI,EAAUj6H,EAAM0zG,MAAMyb,UAAU1tH,GAAOzB,EAAM0zG,MAAMyb,UAAU72G,GAAQu8G,EAAcv8G,GAAQtY,EAAM0zG,MAAM0b,OAAO3tH,GAC9Gy4H,EAAYrF,EAAcv8G,GAAQtY,EAAM0zG,MAAMyb,UAAU72G,GACxD+gH,EAAoB5L,EAAgBoL,GACpCsB,EAAad,EAA6B,MAAT/gH,EAAe+gH,EAAkBvtG,cAAgB,EAAIutG,EAAkBxtG,aAAe,EAAI,EAC3HuuG,EAAoBH,EAAU,EAAIC,EAAY,EAG9C50I,EAAMwuI,EAAciG,GACpBx0I,EAAM40I,EAAarB,EAAUr3H,GAAOqyH,EAAckG,GAClDlmB,EAASqmB,EAAa,EAAIrB,EAAUr3H,GAAO,EAAI24H,EAC/C3rI,EAAS0mI,GAAO7vI,EAAKwuH,EAAQvuH,GAE7B80I,EAAW/hH,EACftY,EAAMuvH,cAAch3I,KAASuhJ,EAAwB,IAA0BO,GAAY5rI,EAAQqrI,EAAsBQ,aAAe7rI,EAASqlH,EAAQgmB,KA+CzJ3xG,OA5CF,SAAgBqpG,GACd,IAAIxxH,EAAQwxH,EAAMxxH,MACdnuB,EAAU2/I,EAAM3/I,QAChB0G,EAAOi5I,EAAMj5I,KACbgiJ,EAAmB1oJ,EAAQ4F,QAC3BohJ,OAAoC,IAArB0B,EAA8B,sBAAwBA,EACrE9F,EAAmB5iJ,EAAQ29H,QAC3BA,OAA+B,IAArBilB,EAA8B,EAAIA,EAE5B,MAAhBoE,IAKwB,kBAAjBA,IACTA,EAAe74H,EAAMytC,SAAS2hF,OAAOpwJ,cAAc65J,MAWhDltI,EAASqU,EAAMytC,SAAS2hF,OAAQyJ,KAMrC74H,EAAMytC,SAASmoF,MAAQiD,EACvB74H,EAAMuvH,cAAch3I,EAAO,eAAiB,CAC1Ci3H,QAASqkB,EAAsC,kBAAZrkB,EAAuBA,EAAUukB,GAAgBvkB,EAASse,OAW/FQ,SAAU,CAAC,iBACXC,iBAAkB,CAAC,oBPvCN,CACbh2I,KAAM,OACNi0C,SAAS,EACTsjG,MAAO,OACPvB,iBAAkB,CAAC,mBACnB1pI,GAlCF,SAAcs3B,GACZ,IAAInc,EAAQmc,EAAKnc,MACbznB,EAAO4jC,EAAK5jC,KACZ++I,EAAgBt3H,EAAM0zG,MAAMyb,UAC5BuC,EAAa1xH,EAAM0zG,MAAM0b,OACzBiG,EAAmBr1H,EAAMuvH,cAAciL,gBACvCC,EAAoBxG,GAAej0H,EAAO,CAC5Cs0H,eAAgB,cAEdoG,EAAoBzG,GAAej0H,EAAO,CAC5Cw0H,aAAa,IAEXmG,EAA2BvF,GAAeqF,EAAmBnD,GAC7DsD,EAAsBxF,GAAesF,EAAmBhJ,EAAY2D,GACpEwF,EAAoBvF,GAAsBqF,GAC1CG,EAAmBxF,GAAsBsF,GAC7C56H,EAAMuvH,cAAch3I,GAAQ,CAC1BoiJ,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpB96H,EAAM+K,WAAWqkH,OAASl0J,OAAOkQ,OAAOlQ,OAAOkQ,OAAO,GAAI40B,EAAM+K,WAAWqkH,QAAS,GAAI,CACtF,+BAAgCyL,EAChC,sBAAuBC,SQzCvBC,GAAgB,gBAChBC,GAAiB,iBACjBC,GAAc,cACdC,GAAkB,kBAClBC,GAAgB,CAClBlpJ,SAAS,EACTyY,SAAS,GAOX,SAAS0wI,GAAwBvwJ,EAAOpI,EAAOm3B,GAC7C,GAAIzgB,MAAMisB,QAAQv6B,GAAQ,CACxB,IAAIy9B,EAAIz9B,EAAMpI,GACd,OAAY,MAAL6lC,EAAYnvB,MAAMisB,QAAQxL,GAAgBA,EAAan3B,GAASm3B,EAAe0O,EAGxF,OAAOz9B,EAGT,SAASwwJ,GAAOxwJ,EAAO6D,GACrB,IAAI/M,EAAM,GAAG6R,SAAS/Y,KAAKoQ,GAC3B,OAAkC,IAA3BlJ,EAAIU,QAAQ,YAAoBV,EAAIU,QAAQqM,EAAO,MAAQ,EAGpE,SAAS4sJ,GAAuBzwJ,EAAOqU,GACrC,MAAwB,oBAAVrU,EAAuBA,EAAMtM,WAAM,EAAQ2gB,GAAQrU,EAGnE,SAAS,GAASga,EAAIqpG,GAEpB,OAAW,IAAPA,EACKrpG,EAIF,SAAU2a,GACftjC,aAAa8iB,GACbA,EAAU3iB,YAAW,WACnBwoB,EAAG2a,KACF0uF,IALL,IAAIlvG,EAqBN,SAASu8I,GAAiB1wJ,GACxB,MAAO,GAAGwG,OAAOxG,GAGnB,SAAS2wJ,GAAa53I,EAAK/Y,IACG,IAAxB+Y,EAAIvhB,QAAQwI,IACd+Y,EAAIlb,KAAKmC,GAUb,SAAS,GAAiBojJ,GACxB,OAAOA,EAAUt4J,MAAM,KAAK,GAG9B,SAAS8lK,GAAU5wJ,GACjB,MAAO,GAAGvI,MAAM7H,KAAKoQ,GAavB,SAAS6wJ,KACP,OAAO5pJ,SAASwN,cAAc,OAGhC,SAAS,GAAUzU,GACjB,MAAO,CAAC,UAAW,YAAYwnB,MAAK,SAAU3jB,GAC5C,OAAO2sJ,GAAOxwJ,EAAO6D,MAQzB,SAASitJ,GAAa9wJ,GACpB,OAAOwwJ,GAAOxwJ,EAAO,cAGvB,SAAS+wJ,GAAmB/wJ,GAC1B,SAAUA,IAASA,EAAMgxJ,QAAUhxJ,EAAMgxJ,OAAO1M,YAActkJ,GAGhE,SAASixJ,GAAmBjxJ,GAC1B,OAAI,GAAUA,GACL,CAACA,GAdZ,SAAoBA,GAClB,OAAOwwJ,GAAOxwJ,EAAO,YAgBjBkxJ,CAAWlxJ,GACN4wJ,GAAU5wJ,GAGfsO,MAAMisB,QAAQv6B,GACTA,EAGF4wJ,GAAU3pJ,SAASvH,iBAAiBM,IAG7C,SAASmxJ,GAAsBC,EAAKpxJ,GAClCoxJ,EAAIvxJ,SAAQ,SAAUR,GAChBA,IACFA,EAAGmB,MAAMqoC,mBAAqB7oC,EAAQ,SAK5C,SAASqxJ,GAAmBD,EAAKj8H,GAC/Bi8H,EAAIvxJ,SAAQ,SAAUR,GAChBA,GACFA,EAAG/L,aAAa,aAAc6hC,MAKpC,SAASm8H,GAAiBC,GACxB,IACI3kJ,EADoB8jJ,GAAiBa,GACT,GAEhC,OAAO3kJ,GAAUA,EAAQklD,eAA4B7qD,SA8BvD,SAASuqJ,GAA4BvmH,EAAK/T,EAAQgS,GAChD,IAAIoX,EAASppB,EAAS,gBAGtB,CAAC,gBAAiB,uBAAuBr3B,SAAQ,SAAU1B,GACzD8sC,EAAIqV,GAAQniD,EAAO+qC,MAIvB,IAAIuoH,GAAe,CACjBC,SAAS,GAEPC,GAAoB,EAQxB,SAASC,KACHH,GAAaC,UAIjBD,GAAaC,SAAU,EAEnB5qJ,OAAOsuD,aACTnuD,SAAStR,iBAAiB,YAAak8J,KAU3C,SAASA,KACP,IAAI3nJ,EAAMkrD,YAAYlrD,MAElBA,EAAMynJ,GAAoB,KAC5BF,GAAaC,SAAU,EACvBzqJ,SAASrR,oBAAoB,YAAai8J,KAG5CF,GAAoBznJ,EAUtB,SAAS4nJ,KACP,IAAI/tI,EAAgB9c,SAAS8c,cAE7B,GAAIgtI,GAAmBhtI,GAAgB,CACrC,IAAIkiB,EAAWliB,EAAcitI,OAEzBjtI,EAAcoE,OAAS8d,EAAS9Q,MAAM48H,WACxChuI,EAAcoE,QAUpB,IACI0nB,GAD8B,qBAAX/oC,QAA8C,qBAAbG,SACnCmI,UAAUC,UAAY,GACvC4mD,GAAO,kBAAkBloE,KAAK8hD,IA8DlC,IAAImiH,GAAc,CAChBC,aAAa,EACbC,cAAc,EACdC,mBAAmB,EACnBh7J,QAAQ,GAaNi7J,GAAe/hK,OAAOkQ,OAAO,CAC/BshB,SAAU,WACR,OAAO5a,SAASyY,MAElB2yI,KAAM,CACJ5yJ,QAAS,OACT6yJ,SAAU,QAEZ/kH,MAAO,EACP5yB,SAAU,CAAC,IAAK,KAChB43I,uBAAwB,KACxBC,aAAa,EACbC,kBAAkB,EAClBC,aAAa,EACbC,kBAAmB,EACnBC,oBAAqB,EACrBC,eAAgB,GAChBjvI,OAAQ,CAAC,EAAG,IACZkvI,cAAe,aACfC,eAAgB,aAChBC,SAAU,aACVrhJ,UAAW,aACXshJ,SAAU,aACVC,OAAQ,aACRC,QAAS,aACTC,OAAQ,aACRC,QAAS,aACTC,UAAW,aACXC,YAAa,aACbC,eAAgB,aAChBpQ,UAAW,MACXhxI,QAAS,GACTqhJ,cAAe,GACfnsF,OAAQ,KACRosF,cAAc,EACd5kH,OAAO,EACPnH,QAAS,mBACTgsH,cAAe,MACd3B,GAAa,GAjDE,CAChB4B,WAAW,EACXC,UAAW,OACX9I,OAAO,EACPtrJ,QAAS,GACTq0J,SAAS,EACTC,SAAU,IACVC,KAAM,UACNC,MAAO,GACPC,OAAQ,OAyCNC,GAAc9jK,OAAOkW,KAAK6rJ,IAc9B,SAASgC,GAAuBC,GAC9B,IACIrC,GADUqC,EAAYjiJ,SAAW,IACX+Y,QAAO,SAAUC,EAAK0iH,GAC9C,IAAIpgI,EAAOogI,EAAOpgI,KACdqhB,EAAe++G,EAAO/+G,aAM1B,OAJIrhB,IACF0d,EAAI1d,QAA8B7W,IAAtBw9J,EAAY3mJ,GAAsB2mJ,EAAY3mJ,GAAQqhB,GAG7D3D,IACN,IACH,OAAO/6B,OAAOkQ,OAAO,GAAI8zJ,EAAa,GAAIrC,GA6B5C,SAASsC,GAAchQ,EAAW74G,GAChC,IAAIwwF,EAAM5rI,OAAOkQ,OAAO,GAAIkrC,EAAO,CACjChsC,QAASgxJ,GAAuBhlH,EAAMhsC,QAAS,CAAC6kJ,KAC/C74G,EAAMgnH,iBAAmB,GA7B9B,SAA+BnO,EAAWlyI,GAuBxC,OAtBeA,EAAU/hB,OAAOkW,KAAK6tJ,GAAuB/jK,OAAOkQ,OAAO,GAAI6xJ,GAAc,CAC1FhgJ,QAASA,MACJ+hJ,IACchpI,QAAO,SAAUC,EAAK54B,GACzC,IAAI+hK,GAAiBjQ,EAAUpxJ,aAAa,cAAgBV,IAAQ,IAAIa,OAExE,IAAKkhK,EACH,OAAOnpI,EAGT,GAAY,YAAR54B,EACF44B,EAAI54B,GAAO+hK,OAEX,IACEnpI,EAAI54B,GAAOw3B,KAAKjf,MAAMwpJ,GACtB,MAAOhqJ,GACP6gB,EAAI54B,GAAO+hK,EAIf,OAAOnpI,IACN,IAO8BopI,CAAsBlQ,EAAW74G,EAAMr5B,UAMxE,OALA6pH,EAAIo2B,KAAOhiK,OAAOkQ,OAAO,GAAI6xJ,GAAaC,KAAM,GAAIp2B,EAAIo2B,MACxDp2B,EAAIo2B,KAAO,CACTC,SAAgC,SAAtBr2B,EAAIo2B,KAAKC,SAAsB7mH,EAAMinH,YAAcz2B,EAAIo2B,KAAKC,SACtE7yJ,QAA8B,SAArBw8H,EAAIo2B,KAAK5yJ,QAAqBgsC,EAAMinH,YAAc,KAAO,cAAgBz2B,EAAIo2B,KAAK5yJ,SAEtFw8H,EA+BT,SAASw4B,GAAwB7nJ,EAASq6B,GACxCr6B,EAAmB,UAAIq6B,EAGzB,SAASytH,GAAmB10J,GAC1B,IAAI+qJ,EAAQ8F,KAcZ,OAZc,IAAV7wJ,EACF+qJ,EAAM91J,UAAYm7J,IAElBrF,EAAM91J,UAAYo7J,GAEd,GAAUrwJ,GACZ+qJ,EAAMt1I,YAAYzV,GAElBy0J,GAAwB1J,EAAO/qJ,IAI5B+qJ,EAGT,SAAS,GAAWtrJ,EAASgsC,GACvB,GAAUA,EAAMhsC,UAClBg1J,GAAwBh1J,EAAS,IACjCA,EAAQgW,YAAYg2B,EAAMhsC,UACQ,oBAAlBgsC,EAAMhsC,UAClBgsC,EAAMmoH,UACRa,GAAwBh1J,EAASgsC,EAAMhsC,SAEvCA,EAAQrM,YAAcq4C,EAAMhsC,SAKlC,SAASk1J,GAAYpQ,GACnB,IAAIt5G,EAAMs5G,EAAOx7H,kBACb6rI,EAAchE,GAAU3lH,EAAI/nB,UAChC,MAAO,CACL+nB,IAAKA,EACLxrC,QAASm1J,EAAY/0H,MAAK,SAAUjrB,GAClC,OAAOA,EAAK1f,UAAU4rB,SAASovI,OAEjCnF,MAAO6J,EAAY/0H,MAAK,SAAUjrB,GAChC,OAAOA,EAAK1f,UAAU4rB,SAASsvI,KAAgBx7I,EAAK1f,UAAU4rB,SAASuvI,OAEzEwE,SAAUD,EAAY/0H,MAAK,SAAUjrB,GACnC,OAAOA,EAAK1f,UAAU4rB,SAASqvI,QAKrC,SAAS7oF,GAAOrhC,GACd,IAAIs+G,EAASsM,KACT5lH,EAAM4lH,KACV5lH,EAAIh2C,UA5gBU,YA6gBdg2C,EAAI33C,aAAa,aAAc,UAC/B23C,EAAI33C,aAAa,WAAY,MAC7B,IAAImM,EAAUoxJ,KAQd,SAASiE,EAASC,EAAWC,GAC3B,IAAIC,EAAeN,GAAYpQ,GAC3Bt5G,EAAMgqH,EAAahqH,IACnBxrC,EAAUw1J,EAAax1J,QACvBsrJ,EAAQkK,EAAalK,MAErBiK,EAAUf,MACZhpH,EAAI33C,aAAa,aAAc0hK,EAAUf,OAEzChpH,EAAIz3C,gBAAgB,cAGa,kBAAxBwhK,EAAUnB,UACnB5oH,EAAI33C,aAAa,iBAAkB0hK,EAAUnB,WAE7C5oH,EAAIz3C,gBAAgB,kBAGlBwhK,EAAUlB,QACZ7oH,EAAI33C,aAAa,eAAgB,IAEjC23C,EAAIz3C,gBAAgB,gBAGtBy3C,EAAIzqC,MAAMuzJ,SAAyC,kBAAvBiB,EAAUjB,SAAwBiB,EAAUjB,SAAW,KAAOiB,EAAUjB,SAEhGiB,EAAUhB,KACZ/oH,EAAI33C,aAAa,OAAQ0hK,EAAUhB,MAEnC/oH,EAAIz3C,gBAAgB,QAGlBuhK,EAAUt1J,UAAYu1J,EAAUv1J,SAAWs1J,EAAUnB,YAAcoB,EAAUpB,WAC/E,GAAWn0J,EAASwmC,EAASwF,OAG3BupH,EAAUjK,MACPA,EAEMgK,EAAUhK,QAAUiK,EAAUjK,QACvC9/G,EAAIn2B,YAAYi2I,GAChB9/G,EAAIx1B,YAAYi/I,GAAmBM,EAAUjK,SAH7C9/G,EAAIx1B,YAAYi/I,GAAmBM,EAAUjK,QAKtCA,GACT9/G,EAAIn2B,YAAYi2I,GAIpB,OAvDAtrJ,EAAQxK,UAAYi7J,GACpBzwJ,EAAQnM,aAAa,aAAc,UACnC,GAAWmM,EAASwmC,EAASwF,OAC7B84G,EAAO9uI,YAAYw1B,GACnBA,EAAIx1B,YAAYhW,GAChBq1J,EAAS7uH,EAASwF,MAAOxF,EAASwF,OAkD3B,CACL84G,OAAQA,EACRuQ,SAAUA,GAMdxtF,GAAO4tF,SAAU,EACjB,IAAIC,GAAY,EACZC,GAAqB,GAErBC,GAAmB,GAEvB,SAASC,GAAYhR,EAAW+P,GAC9B,IAngB4B1pJ,EAugBxB4qJ,EACAC,EACAC,EAKAC,EACAC,EACA5P,EAGA6P,EAjiBU78I,EAihBV0yB,EAAQ6oH,GAAchQ,EAAWj0J,OAAOkQ,OAAO,GAAI6xJ,GAAc,GAAIgC,IAngB7CzpJ,EAmgByF0pJ,EAlgB9GhkK,OAAOkW,KAAKoE,GAAKwgB,QAAO,SAAUC,EAAK54B,GAK5C,YAJiBqE,IAAb8T,EAAInY,KACN44B,EAAI54B,GAAOmY,EAAInY,IAGV44B,IACN,QAmgBCyqI,GAAqB,EACrBC,GAAgC,EAChCC,GAAe,EACfC,GAAsB,EAItB/xD,EAAY,GACZgyD,EAAuB,GAASC,EAAazqH,EAAMmnH,qBAKnD3tH,EAAKkwH,KAEL/iJ,GAviBU2G,EAuiBO0yB,EAAMr5B,SAtiBhBwW,QAAO,SAAUkL,EAAMl8B,GAChC,OAAOmhB,EAAIvhB,QAAQs8B,KAAUl8B,KAkjB3BquC,EAAW,CAEbhB,GAAIA,EACJq/G,UAAWA,EACXC,OAAQsM,KACRsF,eAnBmB,KAoBnB1qH,MAAOA,EACPtW,MAnBU,CAEV/S,WAAW,EAEX2vI,WAAW,EAEXnN,aAAa,EAEbwR,WAAW,EAEXC,SAAS,GAUTjkJ,QAASA,EAETkkJ,mBAqoBF,WACEjlK,aAAakkK,GACblkK,aAAamkK,GACbpkK,qBAAqBqkK,IAvoBrBc,SA0oBF,SAAkBC,GAEZ,EAIJ,GAAIvwH,EAAS9Q,MAAMyvH,YACjB,OAGF6R,EAAW,iBAAkB,CAACxwH,EAAUuwH,IACxC/hG,IACA,IAAIsgG,EAAY9uH,EAASwF,MACrBupH,EAAYV,GAAchQ,EAAWj0J,OAAOkQ,OAAO,GAAI0lC,EAASwF,MAAO,GAAI+qH,EAAc,CAC3F/D,kBAAkB,KAEpBxsH,EAASwF,MAAQupH,EACjBtgG,IAEIqgG,EAAUnC,sBAAwBoC,EAAUpC,sBAC9C8D,IACAT,EAAuB,GAASC,EAAalB,EAAUpC,sBAIrDmC,EAAUpB,gBAAkBqB,EAAUrB,cACxCjD,GAAiBqE,EAAUpB,eAAe9zJ,SAAQ,SAAU+U,GAC1DA,EAAKphB,gBAAgB,oBAEdwhK,EAAUrB,eACnBrP,EAAU9wJ,gBAAgB,iBAG5BmjK,IACAC,IAEI9B,GACFA,EAASC,EAAWC,GAGlB/uH,EAASkwH,iBACXU,IAKAC,KAAsBj3J,SAAQ,SAAUk3J,GAGtCjkK,sBAAsBikK,EAAa/F,OAAOmF,eAAezQ,iBAI7D+Q,EAAW,gBAAiB,CAACxwH,EAAUuwH,KA9rBvCQ,WAisBF,SAAoBv3J,GAClBwmC,EAASswH,SAAS,CAChB92J,QAASA,KAlsBXw3J,KAssBF,WAEM,EAKJ,IAAIC,EAAmBjxH,EAAS9Q,MAAM48H,UAClCnN,EAAc3+G,EAAS9Q,MAAMyvH,YAC7BuS,GAAclxH,EAAS9Q,MAAM/S,UAC7Bg1I,EAA0B3F,GAAaC,UAAYzrH,EAASwF,MAAMqD,MAClEn0B,EAAW41I,GAAwBtqH,EAASwF,MAAM9wB,SAAU,EAAGy3I,GAAaz3I,UAEhF,GAAIu8I,GAAoBtS,GAAeuS,GAAcC,EACnD,OAMF,GAAIC,IAAmBz6E,aAAa,YAClC,OAKF,GAFA65E,EAAW,SAAU,CAACxwH,IAAW,IAEO,IAApCA,EAASwF,MAAM2nH,OAAOntH,GACxB,OAGFA,EAAS9Q,MAAM48H,WAAY,EAEvBuF,MACF/S,EAAO/jJ,MAAMuc,WAAa,WAG5B65I,IACAW,IAEKtxH,EAAS9Q,MAAMihI,YAClB7R,EAAO/jJ,MAAMooC,WAAa,QAK5B,GAAI0uH,IAAwB,CAC1B,IAAIE,EAAyBC,IACzBxsH,EAAMusH,EAAuBvsH,IAC7BxrC,EAAU+3J,EAAuB/3J,QAErC0xJ,GAAsB,CAAClmH,EAAKxrC,GAAU,GAGxCsmJ,EAAgB,WACd,GAAK9/G,EAAS9Q,MAAM48H,YAAaiE,EAAjC,CASA,GALAA,GAAsB,EAEjBzR,EAAOj5H,aACZi5H,EAAO/jJ,MAAMooC,WAAa3C,EAASwF,MAAMonH,eAErCyE,KAA0BrxH,EAASwF,MAAMooH,UAAW,CACtD,IAAI6D,EAAyBD,IACzB1sB,EAAO2sB,EAAuBzsH,IAC9B0sH,EAAWD,EAAuBj4J,QAEtC0xJ,GAAsB,CAACpmB,EAAM4sB,GAAWh9I,GACxC02I,GAAmB,CAACtmB,EAAM4sB,GAAW,WAGvCC,IACAjB,IACAhG,GAAa0E,GAAkBpvH,GAC/BA,EAAS9Q,MAAMihI,WAAY,EAC3BK,EAAW,UAAW,CAACxwH,IAEnBA,EAASwF,MAAMooH,WAAayD,KAzhBpC,SAA0B38I,EAAU9nB,GAClCglK,EAAgBl9I,EAAU9nB,GAyhBtBilK,CAAiBn9I,GAAU,WACzBsrB,EAAS9Q,MAAMkhI,SAAU,EACzBI,EAAW,UAAW,CAACxwH,SAnQ/B,WACE,IACIhxB,EADA4M,EAAWokB,EAASwF,MAAM5pB,SAO1BjN,EAAOyiJ,IAGTpiJ,EADEgxB,EAASwF,MAAMinH,aAAe7wI,IAAauwI,GAAavwI,UAAyB,WAAbA,EACzDjN,EAAKK,WAELw7I,GAAuB5uI,EAAU,CAACjN,IAK5CK,EAAW6L,SAASyjI,IACvBtvI,EAAWQ,YAAY8uI,GAGzBsS,KAGI,EA+OJ3oG,IA3xBA6pG,KA8xBF,WAEM,EAKJ,IAAIC,GAAmB/xH,EAAS9Q,MAAM48H,UAClCnN,EAAc3+G,EAAS9Q,MAAMyvH,YAC7BuS,GAAclxH,EAAS9Q,MAAM/S,UAC7BzH,EAAW41I,GAAwBtqH,EAASwF,MAAM9wB,SAAU,EAAGy3I,GAAaz3I,UAEhF,GAAIq9I,GAAmBpT,GAAeuS,EACpC,OAKF,GAFAV,EAAW,SAAU,CAACxwH,IAAW,IAEO,IAApCA,EAASwF,MAAMynH,OAAOjtH,GACxB,OAGFA,EAAS9Q,MAAM48H,WAAY,EAC3B9rH,EAAS9Q,MAAMkhI,SAAU,EACzBL,GAAsB,EACtBH,GAAqB,EAEjByB,MACF/S,EAAO/jJ,MAAMuc,WAAa,UAO5B,GAJA25I,IACAuB,IACArB,IAEIU,IAAwB,CAC1B,IAAIY,EAAyBT,IACzBxsH,EAAMitH,EAAuBjtH,IAC7BxrC,EAAUy4J,EAAuBz4J,QAEjCwmC,EAASwF,MAAMooH,YACjB1C,GAAsB,CAAClmH,EAAKxrC,GAAUkb,GACtC02I,GAAmB,CAACpmH,EAAKxrC,GAAU,WAIvCm4J,IACAjB,IAEI1wH,EAASwF,MAAMooH,UACbyD,KA9lBR,SAA2B38I,EAAU9nB,GACnCglK,EAAgBl9I,GAAU,YACnBsrB,EAAS9Q,MAAM48H,WAAaxN,EAAOtvI,YAAcsvI,EAAOtvI,WAAW6L,SAASyjI,IAC/E1xJ,OA4lBAslK,CAAkBx9I,EAAUsrB,EAASmyH,SAGvCnyH,EAASmyH,WAn1BXC,sBAu1BF,SAA+Bl6J,GAEzB,EAIJimC,IAAczuC,iBAAiB,YAAasgK,GAC5CtF,GAAayE,GAAoBa,GACjCA,EAAqB93J,IA91BrB8R,OAonBF,WACEg2B,EAAS9Q,MAAM/S,WAAY,GApnB3BrS,QAunBF,WAGEk2B,EAAS8xH,OACT9xH,EAAS9Q,MAAM/S,WAAY,GA1nB3Bg2I,QA+1BF,WAEM,EAIAnyH,EAAS9Q,MAAM48H,WACjB9rH,EAAS8xH,OAGX,IAAK9xH,EAAS9Q,MAAMihI,UAClB,OAGFkC,IAIAxB,KAAsBj3J,SAAQ,SAAUk3J,GACtCA,EAAa/F,OAAOoH,aAGlB7T,EAAOtvI,YACTsvI,EAAOtvI,WAAWH,YAAYyvI,GAGhC8Q,GAAmBA,GAAiBzsI,QAAO,SAAU3xB,GACnD,OAAOA,IAAMgvC,KAEfA,EAAS9Q,MAAMihI,WAAY,EAC3BK,EAAW,WAAY,CAACxwH,KA53BxB/0C,QA+3BF,WAEM,EAIJ,GAAI+0C,EAAS9Q,MAAMyvH,YACjB,OAGF3+G,EAASqwH,qBACTrwH,EAASmyH,UACT3jG,WACO6vF,EAAU0M,OACjB/qH,EAAS9Q,MAAMyvH,aAAc,EAC7B6R,EAAW,YAAa,CAACxwH,MAx4B3B,IAAKwF,EAAM67B,OAKT,OAAOrhC,EAMT,IAAIsyH,EAAgB9sH,EAAM67B,OAAOrhC,GAC7Bs+G,EAASgU,EAAchU,OACvBuQ,EAAWyD,EAAczD,SAE7BvQ,EAAOjxJ,aAAa,kBAAmB,IACvCixJ,EAAOt/G,GAAK,SAAWgB,EAAShB,GAChCgB,EAASs+G,OAASA,EAClBD,EAAU0M,OAAS/qH,EACnBs+G,EAAOyM,OAAS/qH,EAChB,IAAIuyH,EAAepmJ,EAAQyG,KAAI,SAAUi1H,GACvC,OAAOA,EAAO9zH,GAAGisB,MAEfwyH,EAAkBnU,EAAU1nE,aAAa,iBAuB7C,OAtBAloB,IACAiiG,IACAC,IACAH,EAAW,WAAY,CAACxwH,IAEpBwF,EAAMioH,cACRgF,KAKFnU,EAAO5uJ,iBAAiB,cAAc,WAChCswC,EAASwF,MAAMinH,aAAezsH,EAAS9Q,MAAM48H,WAC/C9rH,EAASqwH,wBAGb/R,EAAO5uJ,iBAAiB,cAAc,SAAUwI,GAC1C8nC,EAASwF,MAAMinH,aAAezsH,EAASwF,MAAM9D,QAAQnwC,QAAQ,eAAiB,IAChF4sC,IAAczuC,iBAAiB,YAAasgK,GAC5CA,EAAqB93J,OAGlB8nC,EAIP,SAAS0yH,IACP,IAAI7pH,EAAQ7I,EAASwF,MAAMqD,MAC3B,OAAOxgC,MAAMisB,QAAQuU,GAASA,EAAQ,CAACA,EAAO,GAGhD,SAAS8pH,IACP,MAA2C,SAApCD,IAA6B,GAGtC,SAASrB,IACP,IAAIuB,EAGJ,SAA6D,OAAlDA,EAAwB5yH,EAASwF,MAAM67B,aAAkB,EAASuxF,EAAsB3D,SAGrG,SAASmC,IACP,OAAOzB,GAAiBtR,EAG1B,SAASlgH,IACP,IAAI4I,EAASqqH,IAAmBpiJ,WAChC,OAAO+3B,EAASskH,GAAiBtkH,GAAU/lC,SAG7C,SAASwwJ,IACP,OAAO9C,GAAYpQ,GAGrB,SAASuU,EAASC,GAIhB,OAAI9yH,EAAS9Q,MAAMihI,YAAcnwH,EAAS9Q,MAAM48H,WAAaN,GAAaC,SAAWgE,GAA8C,UAA1BA,EAAiB7xJ,KACjH,EAGF0sJ,GAAwBtqH,EAASwF,MAAM8B,MAAOwrH,EAAS,EAAI,EAAG3G,GAAa7kH,OAGpF,SAASqpH,IACPrS,EAAO/jJ,MAAMwuC,cAAgB/I,EAASwF,MAAMinH,aAAezsH,EAAS9Q,MAAM48H,UAAY,GAAK,OAC3FxN,EAAO/jJ,MAAM0zJ,OAAS,GAAKjuH,EAASwF,MAAMyoH,OAG5C,SAASuC,EAAW7rI,EAAMvW,EAAM2kJ,GAY5B,IAAIC,QAXwB,IAA1BD,IACFA,GAAwB,GAG1BR,EAAa34J,SAAQ,SAAUq5J,GACzBA,EAAYtuI,IACdsuI,EAAYtuI,GAAMl3B,WAAM,EAAQ2gB,MAIhC2kJ,KAGDC,EAAkBhzH,EAASwF,OAAO7gB,GAAMl3B,MAAMulK,EAAiB5kJ,GAIpE,SAASujJ,IACP,IAAIvF,EAAOpsH,EAASwF,MAAM4mH,KAE1B,GAAKA,EAAK5yJ,QAAV,CAIA,IAAIsB,EAAO,QAAUsxJ,EAAK5yJ,QACtBwlC,EAAKs/G,EAAOt/G,GACJyrH,GAAiBzqH,EAASwF,MAAMkoH,eAAiBrP,GACvDzkJ,SAAQ,SAAU+U,GACtB,IAAIukJ,EAAevkJ,EAAK1hB,aAAa6N,GAErC,GAAIklC,EAAS9Q,MAAM48H,UACjBn9I,EAAKthB,aAAayN,EAAMo4J,EAAeA,EAAe,IAAMl0H,EAAKA,OAC5D,CACL,IAAIm0H,EAAYD,GAAgBA,EAAaxrK,QAAQs3C,EAAI,IAAI5xC,OAEzD+lK,EACFxkJ,EAAKthB,aAAayN,EAAMq4J,GAExBxkJ,EAAKphB,gBAAgBuN,QAM7B,SAAS41J,KACH8B,GAAoBxyH,EAASwF,MAAM4mH,KAAKC,UAIhC5B,GAAiBzqH,EAASwF,MAAMkoH,eAAiBrP,GACvDzkJ,SAAQ,SAAU+U,GAClBqxB,EAASwF,MAAMinH,YACjB99I,EAAKthB,aAAa,gBAAiB2yC,EAAS9Q,MAAM48H,WAAan9I,IAASyiJ,IAAqB,OAAS,SAEtGziJ,EAAKphB,gBAAgB,oBAK3B,SAASkjK,IACPtyH,IAAcxuC,oBAAoB,YAAaqgK,GAC/Cb,GAAqBA,GAAmBxsI,QAAO,SAAUsgB,GACvD,OAAOA,IAAa+sH,KAIxB,SAASoD,EAAgBl7J,GAEvB,KAAIszJ,GAAaC,UACXqE,GAA+B,cAAf53J,EAAM0F,SAMxBoiC,EAASwF,MAAMinH,cAAenO,EAAOzjI,SAAS3iB,EAAM1J,SAAxD,CAKA,GAAI4iK,IAAmBv2I,SAAS3iB,EAAM1J,QAAS,CAC7C,GAAIg9J,GAAaC,QACf,OAGF,GAAIzrH,EAAS9Q,MAAM48H,WAAa9rH,EAASwF,MAAM9D,QAAQnwC,QAAQ,UAAY,EACzE,YAGFi/J,EAAW,iBAAkB,CAACxwH,EAAU9nC,KAGP,IAA/B8nC,EAASwF,MAAM+mH,cACjBvsH,EAASqwH,qBACTrwH,EAAS8xH,OAITjC,GAAgC,EAChCtkK,YAAW,WACTskK,GAAgC,KAK7B7vH,EAAS9Q,MAAMihI,WAClB6B,MAKN,SAAStiH,IACPogH,GAAe,EAGjB,SAAS/iH,IACP+iH,GAAe,EAGjB,SAASwB,IACP,IAAIhrI,EAAM6X,IACV7X,EAAI52B,iBAAiB,YAAa0jK,GAAiB,GACnD9sI,EAAI52B,iBAAiB,WAAY0jK,EAAiB/I,IAClD/jI,EAAI52B,iBAAiB,aAAcq9C,EAAcs9G,IACjD/jI,EAAI52B,iBAAiB,YAAaggD,EAAa26G,IAGjD,SAAS2H,IACP,IAAI1rI,EAAM6X,IACV7X,EAAI32B,oBAAoB,YAAayjK,GAAiB,GACtD9sI,EAAI32B,oBAAoB,WAAYyjK,EAAiB/I,IACrD/jI,EAAI32B,oBAAoB,aAAco9C,EAAcs9G,IACpD/jI,EAAI32B,oBAAoB,YAAa+/C,EAAa26G,IAepD,SAASuH,EAAgBl9I,EAAU9nB,GACjC,IAAIo4C,EAAMwsH,IAA6BxsH,IAEvC,SAAS/B,EAAS/qC,GACZA,EAAM1J,SAAWw2C,IACnBumH,GAA4BvmH,EAAK,SAAU/B,GAC3Cr2C,KAMJ,GAAiB,IAAb8nB,EACF,OAAO9nB,IAGT2+J,GAA4BvmH,EAAK,SAAU0qH,GAC3CnE,GAA4BvmH,EAAK,MAAO/B,GACxCysH,EAA+BzsH,EAGjC,SAAStB,EAAGoB,EAAWxzC,EAASwR,QACd,IAAZA,IACFA,GAAU,GAGA0pJ,GAAiBzqH,EAASwF,MAAMkoH,eAAiBrP,GACvDzkJ,SAAQ,SAAU+U,GACtBA,EAAKjf,iBAAiBqzC,EAAWxzC,EAASwR,GAC1Ci9F,EAAUpmG,KAAK,CACb+W,KAAMA,EACNo0B,UAAWA,EACXxzC,QAASA,EACTwR,QAASA,OAKf,SAAS0tD,IAp3BX,IAAuB10D,EAq3Bf44J,MACFhxH,EAAG,aAAc0rH,EAAW,CAC1BlsJ,SAAS,IAEXwgC,EAAG,WAAY0xH,EAAc,CAC3BlyJ,SAAS,MA13BMpH,EA83BLimC,EAASwF,MAAM9D,QA73BxB3nC,EAAMlV,MAAM,OAAO89B,OAAO/yB,UA63BOgK,SAAQ,SAAUmpC,GACtD,GAAkB,WAAdA,EAMJ,OAFApB,EAAGoB,EAAWsqH,GAENtqH,GACN,IAAK,aACHpB,EAAG,aAAc0xH,GACjB,MAEF,IAAK,QACH1xH,EAAGquB,GAAO,WAAa,OAAQsjG,GAC/B,MAEF,IAAK,UACH3xH,EAAG,WAAY2xH,OAMvB,SAAS9kG,IACPwvC,EAAUpkG,SAAQ,SAAUyxC,GAC1B,IAAI18B,EAAO08B,EAAK18B,KACZo0B,EAAYsI,EAAKtI,UACjBxzC,EAAU87C,EAAK97C,QACfwR,EAAUsqC,EAAKtqC,QACnB4N,EAAKhf,oBAAoBozC,EAAWxzC,EAASwR,MAE/Ci9F,EAAY,GAGd,SAASqvD,EAAUn1J,GACjB,IAAIq7J,EAEAC,GAA0B,EAE9B,GAAKxzH,EAAS9Q,MAAM/S,YAAas3I,EAAuBv7J,KAAU23J,EAAlE,CAIA,IAAI6D,EAAoG,WAA5C,OAAzCH,EAAoB9D,QAA4B,EAAS8D,EAAkB31J,MAC9F6xJ,EAAmBv3J,EACnBy3J,EAAgBz3J,EAAMy3J,cACtBe,KAEK1wH,EAAS9Q,MAAM48H,WAAajB,GAAa3yJ,IAK5Ci3J,GAAmBv1J,SAAQ,SAAUqpC,GACnC,OAAOA,EAAS/qC,MAKD,UAAfA,EAAM0F,OAAqBoiC,EAASwF,MAAM9D,QAAQnwC,QAAQ,cAAgB,GAAKq+J,KAAsD,IAA/B5vH,EAASwF,MAAM+mH,aAAyBvsH,EAAS9Q,MAAM48H,UAC/J0H,GAA0B,EAE1Bf,GAAav6J,GAGI,UAAfA,EAAM0F,OACRgyJ,GAAsB4D,GAGpBA,IAA4BE,GAC9BC,GAAaz7J,IAIjB,SAAS+3J,EAAY/3J,GACnB,IAAI1J,EAAS0J,EAAM1J,OACfolK,EAAgCxC,IAAmBv2I,SAASrsB,IAAW8vJ,EAAOzjI,SAASrsB,GAExE,cAAf0J,EAAM0F,MAAwBg2J,GAz2BtC,SAA0CC,EAAgB37J,GACxD,IAAIoxE,EAAUpxE,EAAMoxE,QAChBC,EAAUrxE,EAAMqxE,QACpB,OAAOsqF,EAAe5M,OAAM,SAAU57G,GACpC,IAAIu1G,EAAav1G,EAAKu1G,WAClBkT,EAAczoH,EAAKyoH,YAEnBpH,EADQrhH,EAAK7F,MACaknH,kBAC1BvM,EAAgB,GAAiB2T,EAAY3W,WAC7CgH,EAAa2P,EAAYrV,cAAc9gI,OAE3C,IAAKwmI,EACH,OAAO,EAGT,IAAI4P,EAAgC,WAAlB5T,EAA6BgE,EAAWnrJ,IAAInS,EAAI,EAC9DmtK,EAAmC,QAAlB7T,EAA0BgE,EAAWt+H,OAAOh/B,EAAI,EACjEotK,EAAiC,UAAlB9T,EAA4BgE,EAAWzmJ,KAAKJ,EAAI,EAC/D42J,EAAkC,SAAlB/T,EAA2BgE,EAAWh+H,MAAM7oB,EAAI,EAChE62J,EAAavT,EAAW5nJ,IAAMuwE,EAAUwqF,EAAcrH,EACtD0H,EAAgB7qF,EAAUq3E,EAAW/6H,OAASmuI,EAAiBtH,EAC/D2H,EAAczT,EAAWljJ,KAAO4rE,EAAU2qF,EAAevH,EACzD4H,EAAehrF,EAAUs3E,EAAWz6H,MAAQ+tI,EAAgBxH,EAChE,OAAOyH,GAAcC,GAAiBC,GAAeC,KAu2BjDC,CAjBiB1D,KAAsBtwJ,OAAO+9I,GAAQ1rI,KAAI,SAAU0rI,GACtE,IAAIkW,EAGAtlI,EAA6D,OAApDslI,EADElW,EAAOyM,OACwBmF,qBAA0B,EAASsE,EAAsBtlI,MAEvG,OAAIA,EACK,CACL0xH,WAAYtC,EAAOpkJ,wBACnB45J,YAAa5kI,EACbsW,MAAOA,GAIJ,QACN7iB,OAAO/yB,SAE2CsI,KACnDu4J,IACAkD,GAAaz7J,IAIjB,SAASm7J,EAAan7J,GACHu7J,EAAuBv7J,IAAU8nC,EAASwF,MAAM9D,QAAQnwC,QAAQ,UAAY,GAAKq+J,IAM9F5vH,EAASwF,MAAMinH,YACjBzsH,EAASoyH,sBAAsBl6J,GAIjCy7J,GAAaz7J,IAGf,SAASo7J,EAAiBp7J,GACpB8nC,EAASwF,MAAM9D,QAAQnwC,QAAQ,WAAa,GAAK2G,EAAM1J,SAAW4iK,KAKlEpxH,EAASwF,MAAMinH,aAAev0J,EAAMmpB,eAAiBi9H,EAAOzjI,SAAS3iB,EAAMmpB,gBAI/EsyI,GAAaz7J,GAGf,SAASu7J,EAAuBv7J,GAC9B,QAAOszJ,GAAaC,SAAUkH,MAA+Bz6J,EAAM0F,KAAKrM,QAAQ,UAAY,EAG9F,SAASq/J,IACPyB,IACA,IAAIoC,EAAmBz0H,EAASwF,MAC5BgoH,EAAgBiH,EAAiBjH,cACjCrQ,EAAYsX,EAAiBtX,UAC7Bx/H,EAAS82I,EAAiB92I,OAC1B2uI,EAAyBmI,EAAiBnI,uBAC1CM,EAAiB6H,EAAiB7H,eAClC9H,EAAQuM,IAAyB3C,GAAYpQ,GAAQwG,MAAQ,KAC7D4P,EAAoBpI,EAAyB,CAC/CpyJ,sBAAuBoyJ,EACvBvN,eAAgBuN,EAAuBvN,gBAAkBqS,KACvD/S,EA4BAhB,EAAY,CAAC,CACf51I,KAAM,SACN1G,QAAS,CACP4c,OAAQA,IAET,CACDlW,KAAM,kBACN1G,QAAS,CACP29H,QAAS,CACP1lI,IAAK,EACL6sB,OAAQ,EACRnoB,KAAM,EACNyoB,MAAO,KAGV,CACD1e,KAAM,OACN1G,QAAS,CACP29H,QAAS,IAEV,CACDj3H,KAAM,gBACN1G,QAAS,CACP+/I,UAAW8L,IAlDK,CAClBnlJ,KAAM,UACNi0C,SAAS,EACTsjG,MAAO,cACPxB,SAAU,CAAC,iBACXzpI,GAAI,SAAY2sI,GACd,IAAIxxH,EAAQwxH,EAAMxxH,MAElB,GAAImiI,IAAwB,CAC1B,IACIrsH,EADwBwsH,IACIxsH,IAEhC,CAAC,YAAa,mBAAoB,WAAWprC,SAAQ,SAAUkB,GAChD,cAATA,EACFkqC,EAAI33C,aAAa,iBAAkB6hC,EAAMiuH,WAErCjuH,EAAM+K,WAAWqkH,OAAO,eAAiBxjJ,GAC3CkqC,EAAI33C,aAAa,QAAUyN,EAAM,IAEjCkqC,EAAIz3C,gBAAgB,QAAUuN,MAIpCo0B,EAAM+K,WAAWqkH,OAAS,OA+B5B+S,KAA0BvM,GAC5BzH,EAAUzlJ,KAAK,CACb6P,KAAM,QACN1G,QAAS,CACP4F,QAASm+I,EACTpmB,QAAS,KAKf2e,EAAUzlJ,KAAKnK,MAAM4vJ,GAA6B,MAAjBmQ,OAAwB,EAASA,EAAcnQ,YAAc,IAC9Fr9G,EAASkwH,eAAiB,GAAawE,EAAmBpW,EAAQl0J,OAAOkQ,OAAO,GAAIkzJ,EAAe,CACjGrQ,UAAWA,EACX2C,cAAeA,EACfzC,UAAWA,KAIf,SAASgV,IACHryH,EAASkwH,iBACXlwH,EAASkwH,eAAejlK,UACxB+0C,EAASkwH,eAAiB,MAmC9B,SAASW,KACP,OAAOlG,GAAUrM,EAAO7kJ,iBAAiB,sBAG3C,SAASg5J,GAAav6J,GACpB8nC,EAASqwH,qBAELn4J,GACFs4J,EAAW,YAAa,CAACxwH,EAAU9nC,IAGrCo5J,IACA,IAAIhqH,EAAQurH,GAAS,GAEjB8B,EAAwBjC,IACxBkC,EAAaD,EAAsB,GACnCE,EAAaF,EAAsB,GAEnCnJ,GAAaC,SAA0B,SAAfmJ,GAAyBC,IACnDvtH,EAAQutH,GAGNvtH,EACFgoH,EAAc/jK,YAAW,WACvBy0C,EAASgxH,SACR1pH,GAEHtH,EAASgxH,OAIb,SAAS2C,GAAaz7J,GAIpB,GAHA8nC,EAASqwH,qBACTG,EAAW,cAAe,CAACxwH,EAAU9nC,IAEhC8nC,EAAS9Q,MAAM48H,WASpB,KAAI9rH,EAASwF,MAAM9D,QAAQnwC,QAAQ,eAAiB,GAAKyuC,EAASwF,MAAM9D,QAAQnwC,QAAQ,UAAY,GAAK,CAAC,aAAc,aAAaA,QAAQ2G,EAAM0F,OAAS,GAAKgyJ,GAAjK,CAIA,IAAItoH,EAAQurH,GAAS,GAEjBvrH,EACFioH,EAAchkK,YAAW,WACnBy0C,EAAS9Q,MAAM48H,WACjB9rH,EAAS8xH,SAEVxqH,GAIHkoH,EAA6B3iK,uBAAsB,WACjDmzC,EAAS8xH,gBAxBXE,KAiUN,SAAS8C,GAAM/uD,EAASgvD,QACA,IAAlBA,IACFA,EAAgB,IAGlB,IAAI5oJ,EAAUggJ,GAAahgJ,QAAQ5L,OAAOw0J,EAAc5oJ,SAAW,IAzyCnEnL,SAAStR,iBAAiB,aAAci8J,GAAsBtB,IAC9DxpJ,OAAOnR,iBAAiB,OAAQm8J,IAizChC,IAAIuC,EAAchkK,OAAOkQ,OAAO,GAAIy6J,EAAe,CACjD5oJ,QAASA,IAWP6d,EATWghI,GAAmBjlD,GAST7gF,QAAO,SAAUC,EAAKk5H,GAC7C,IAAIr+G,EAAWq+G,GAAagR,GAAYhR,EAAW+P,GAMnD,OAJIpuH,GACF7a,EAAIvtB,KAAKooC,GAGJ7a,IACN,IACH,OAAO,GAAU4gF,GAAW/7E,EAAU,GAAKA,EAG7C8qI,GAAM3I,aAAeA,GACrB2I,GAAME,gBA7sCgB,SAAyBzE,GAMlCnmK,OAAOkW,KAAKiwJ,GAClB32J,SAAQ,SAAUrN,GACrB4/J,GAAa5/J,GAAOgkK,EAAahkK,OAssCrCuoK,GAAMtJ,aAAeA,GA8tBrBsJ,GAAME,gBAAgB,CACpB3zF,OAAQA,KAEK,Q,qBC9yEf,IAAI7oC,EAAU,EAAQ,QAClBy8H,EAAa,EAAQ,QAIzBnjK,EAAOC,QAAU,SAAUw4E,EAAGvrE,GAC5B,IAAI7O,EAAOo6E,EAAEp6E,KACb,GAAoB,oBAATA,EAAqB,CAC9B,IAAIoL,EAASpL,EAAKxG,KAAK4gF,EAAGvrE,GAC1B,GAAsB,kBAAXzD,EACT,MAAMsZ,UAAU,sEAElB,OAAOtZ,EAGT,GAAmB,WAAfi9B,EAAQ+xC,GACV,MAAM11D,UAAU,+CAGlB,OAAOogJ,EAAWtrK,KAAK4gF,EAAGvrE,K,wBCXnB,SAAUta,GACjB,aAEA,IAAIwwK,EAAa,CACfC,MAAO,CAEL/uK,GAAI,CAAC,6CAAW,6CAAW,8CAC3BC,EAAG,CAAC,gEAAe,uEACnBC,GAAI,CAAC,iCAAS,uCAAU,wCACxBC,EAAG,CAAC,oDAAa,iEACjBC,GAAI,CAAC,qBAAO,2BAAQ,4BACpBE,GAAI,CAAC,qBAAO,2BAAQ,4BACpBE,GAAI,CAAC,iCAAS,uCAAU,wCACxBE,GAAI,CAAC,uCAAU,uCAAU,yCAE3BsuK,uBAAwB,SAAUnuK,EAAQouK,GACxC,OAAkB,IAAXpuK,EAAeouK,EAAQ,GAAKpuK,GAAU,GAAKA,GAAU,EAAIouK,EAAQ,GAAKA,EAAQ,IAEvFj6J,UAAW,SAAUnU,EAAQoU,EAAe9O,GAC1C,IAAI8oK,EAAUH,EAAWC,MAAM5oK,GAE/B,OAAmB,IAAfA,EAAIqF,OACCyJ,EAAgBg6J,EAAQ,GAAKA,EAAQ,GAErCpuK,EAAS,IAAMiuK,EAAWE,uBAAuBnuK,EAAQouK,KAIzD3wK,EAAOC,aAAa,UAAW,CAC1CC,OAAQ,4aAAmFC,MAAM,KACjGC,YAAa,+OAA2DD,MAAM,KAC9E6W,kBAAkB,EAClB3W,SAAU,uRAAsDF,MAAM,KACtEG,cAAe,8IAAqCH,MAAM,KAC1DI,YAAa,6FAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,6CACTC,QAAS,6CACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,8DAET,KAAK,EACH,MAAO,wDAET,KAAK,EACH,MAAO,8DAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,8BAGbzN,QAAS,uCACTC,SAAU,WAER,MADmB,CAAC,4FAA4B,oHAAgC,kGAA6B,sFAA2B,8GAA+B,4FAA4B,6FAC/K8D,KAAK0J,QAE3BvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,wBACNC,EAAG,8FACHC,GAAI8uK,EAAW95J,UACf/U,EAAG6uK,EAAW95J,UACd9U,GAAI4uK,EAAW95J,UACf7U,EAAG2uK,EAAW95J,UACd5U,GAAI0uK,EAAW95J,UACf3U,EAAG,qBACHC,GAAIwuK,EAAW95J,UACfzU,EAAG,iCACHC,GAAIsuK,EAAW95J,UACfvU,EAAG,uCACHC,GAAIouK,EAAW95J,WAEjBrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA9FuFC,CAAQ,EAAQ,U,slECevGS,EAAa,CACtButK,kBAAmB,kCACnBC,eAAgB,+BAChBC,YAAa,4BACbnwJ,KAAM,sBCAJ,EAEJ,SAAU9b,GAGR,SAASksK,EAA2BhsK,GAClC,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI6rK,EAA2B5rK,gBAAiBJ,KAAaG,KAM7G,OAJAF,EAAMgsK,0BAA4B,WAChC,OAAOhsK,EAAMisK,4BAGRjsK,EA2GT,OApHA,YAAU+rK,EAA4BlsK,GAYtCa,OAAOC,eAAeorK,EAA4B,aAAc,CAC9DnrK,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeorK,EAA4B,iBAAkB,CAIlEnrK,IAAK,WAEH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb6qF,SAAU,WACR,OAAO,GAET+2B,2BAA4B,aAG5BP,6BAA8B,eAKlC7hH,YAAY,EACZC,cAAc,IAGhBirK,EAA2BzqK,UAAU4qB,KAAO,WAC1ChsB,KAAKH,QAAQkjH,2BAA2B,eAAgB/iH,KAAK8rK,4BAG/DD,EAA2BzqK,UAAUC,QAAU,WAC7CrB,KAAKH,QAAQ2iH,6BAA6B,eAAgBxiH,KAAK8rK,4BAOjED,EAA2BzqK,UAAU4qF,SAAW,WAC9C,OAAOhsF,KAAKH,QAAQmsF,YAQtB6/E,EAA2BzqK,UAAU4qK,MAAQ,SAAUC,GACrD,IAAIL,EAAcC,EAA2B1tK,WAAWytK,YAEpDK,EACFjsK,KAAKH,QAAQgB,SAAS+qK,GAEtB5rK,KAAKH,QAAQsB,YAAYyqK,IAS7BC,EAA2BzqK,UAAU8qK,MAAQ,SAAUC,GACrD,IAAI/+J,EAAKy+J,EAA2B1tK,WAChCutK,EAAoBt+J,EAAGs+J,kBACvBE,EAAcx+J,EAAGw+J,YAEjBO,EACFnsK,KAAKH,QAAQgB,SAAS6qK,IAEtB1rK,KAAKH,QAAQsB,YAAYuqK,GACzB1rK,KAAKH,QAAQsB,YAAYyqK,KAS7BC,EAA2BzqK,UAAUgrK,YAAc,SAAUC,GAC3D,IAAIV,EAAiBE,EAA2B1tK,WAAWwtK,eAEvDU,EACFrsK,KAAKH,QAAQgB,SAAS8qK,GAEtB3rK,KAAKH,QAAQsB,YAAYwqK,IAI7BE,EAA2BzqK,UAAU2qK,yBAA2B,WAC9D,IAAIH,EAAcC,EAA2B1tK,WAAWytK,YACxD5rK,KAAKH,QAAQsB,YAAYyqK,IAGpBC,EArHT,CAsHE,KCvHE,EAEJ,SAAUlsK,GAGR,SAAS2sK,IACP,OAAkB,OAAX3sK,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAiE7D,OApEA,YAAUssK,EAAkB3sK,GAM5B2sK,EAAiBvoK,SAAW,SAAUC,GACpC,OAAO,IAAIsoK,EAAiBtoK,IAQ9BsoK,EAAiBlrK,UAAU4qK,MAAQ,SAAUC,GAC3CjsK,KAAK0E,WAAWsnK,MAAMC,IAQxBK,EAAiBlrK,UAAU8qK,MAAQ,SAAUC,GAC3CnsK,KAAK0E,WAAWwnK,MAAMC,IAQxBG,EAAiBlrK,UAAUgrK,YAAc,SAAUC,GACjDrsK,KAAK0E,WAAW0nK,YAAYC,IAG9BC,EAAiBlrK,UAAU4qF,SAAW,WACpC,OAAOhsF,KAAK0E,WAAWsnF,YAGzBsgF,EAAiBlrK,UAAU+D,qBAAuB,WAChD,IAAIrF,EAAQE,KAuBZ,OAAO,IAAI,EAlBG,CACZa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErC4mF,SAAU,WACR,OAAO,YAAoBlsF,EAAMkE,OAEnC++G,2BAA4B,SAAUwB,EAAS5+G,GAC7C,OAAO7F,EAAM8F,OAAO2+G,EAAS5+G,IAE/B68G,6BAA8B,SAAU+B,EAAS5+G,GAC/C,OAAO7F,EAAM+F,SAAS0+G,EAAS5+G,OAO9B2mK,EArET,CAsEE,KC7EE,EAAa,CACfC,mBAAoB,0BACpBC,yBAA0B,iCCExB,EAEJ,SAAU7sK,GAGR,SAAS8sK,EAAwB5sK,GAC/B,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIysK,EAAwBxsK,gBAAiBJ,KAAaG,KAM1G,OAJAF,EAAM4sK,sBAAwB,SAAUhqK,GACtC,OAAO5C,EAAM6c,oBAAoBja,IAG5B5C,EA2ET,OApFA,YAAU2sK,EAAyB9sK,GAYnCa,OAAOC,eAAegsK,EAAyB,aAAc,CAC3D/rK,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAegsK,EAAyB,iBAAkB,CAI/D/rK,IAAK,WAEH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb4a,SAAU,WACR,OAAO,GAET4wJ,SAAU,aAGVC,qBAAsB,aAGtBC,uBAAwB,eAK5BlsK,YAAY,EACZC,cAAc,IAGhB6rK,EAAwBrrK,UAAU4qB,KAAO,WACvChsB,KAAKH,QAAQ+sK,qBAAqB,gBAAiB5sK,KAAK0sK,wBAG1DD,EAAwBrrK,UAAUC,QAAU,WAC1CrB,KAAKH,QAAQgtK,uBAAuB,gBAAiB7sK,KAAK0sK,wBAG5DD,EAAwBrrK,UAAUyiH,SAAW,WAC3C7jH,KAAKH,QAAQsB,YAAY,EAAWqrK,0BACpCxsK,KAAKH,QAAQgB,SAAS,EAAW0rK,qBAGnCE,EAAwBrrK,UAAU0rK,gBAAkB,SAAUC,GAC5D/sK,KAAKH,QAAQ8sK,SAAS,mBAAoBI,EAAc,cAG1DN,EAAwBrrK,UAAU0iH,WAAa,WAC7C9jH,KAAKH,QAAQgB,SAAS,EAAW2rK,2BAGnCC,EAAwBrrK,UAAUub,oBAAsB,SAAUja,GAGhE,IAAIsqK,EAAiBhtK,KAAKH,QAAQkc,SAAS,EAAWywJ,0BAE7B,YAArB9pK,EAAIuqK,cACFD,IACFhtK,KAAKH,QAAQsB,YAAY,EAAWorK,oBACpCvsK,KAAKH,QAAQsB,YAAY,EAAWqrK,4BAKnCC,EArFT,CAsFE,KCxFE,EAEJ,SAAU9sK,GAGR,SAASutK,IACP,OAAkB,OAAXvtK,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA8D7D,OAjEA,YAAUktK,EAAevtK,GAMzButK,EAAcnpK,SAAW,SAAUC,GACjC,OAAO,IAAIkpK,EAAclpK,IAO3BkpK,EAAc9rK,UAAUyiH,SAAW,WACjC7jH,KAAK0E,WAAWm/G,YAOlBqpD,EAAc9rK,UAAU0iH,WAAa,WACnC9jH,KAAK0E,WAAWo/G,cAQlBopD,EAAc9rK,UAAU0rK,gBAAkB,SAAUC,GAClD/sK,KAAK0E,WAAWooK,gBAAgBC,IAGlCG,EAAc9rK,UAAU+D,qBAAuB,WAC7C,IAAIrF,EAAQE,KA0BZ,OAAO,IAAI,EArBG,CACZa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErC2W,SAAU,SAAU3W,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAU4rB,SAAS7rB,IAEvCunK,SAAU,SAAUM,EAAc98J,GAChC,OAAOrQ,EAAMkE,KAAK2M,MAAMw8J,YAAYF,EAAc98J,IAEpDy8J,qBAAsB,SAAUroD,EAAS5+G,GACvC,OAAO7F,EAAM8F,OAAO2+G,EAAS5+G,IAE/BknK,uBAAwB,SAAUtoD,EAAS5+G,GACzC,OAAO7F,EAAM+F,SAAS0+G,EAAS5+G,OAO9BunK,EAlET,CAmEE,KCzEE3uK,EAAU,CACZ6uK,uBAAwB,+BAEtBjuK,EAAU,CAEZkuK,sBAAuB,GAErB,EAAa,CACfC,SAAU,gCACVC,gBAAiB,+BACjBC,iBAAkB,iCCNhB,EAEJ,SAAU7tK,GAGR,SAAS8tK,EAA4B5tK,GACnC,OAAOF,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIytK,EAA4BxtK,gBAAiBJ,KAAaG,KAyE3G,OA5EA,YAAUytK,EAA6B9tK,GAMvCa,OAAOC,eAAegtK,EAA6B,UAAW,CAC5D/sK,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAegtK,EAA6B,aAAc,CAC/D/sK,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAegtK,EAA6B,UAAW,CAC5D/sK,IAAK,WACH,OAAOvB,GAETwB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAegtK,EAA6B,iBAAkB,CAInE/sK,IAAK,WAEH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGbusK,sBAAuB,aAGvBC,yBAA0B,eAK9BhtK,YAAY,EACZC,cAAc,IAMhB6sK,EAA4BrsK,UAAUwsK,MAAQ,SAAUC,GACtD,IAAIN,EAAkBE,EAA4BtvK,WAAWovK,gBAEzDM,EAAa,IACfA,GAAc1uK,EAAQkuK,uBAGxBrtK,KAAKH,QAAQ6tK,sBAAsBG,GACnC7tK,KAAKH,QAAQgB,SAAS0sK,IAOxBE,EAA4BrsK,UAAU0sK,WAAa,WACjD,IAAIP,EAAkBE,EAA4BtvK,WAAWovK,gBAC7DvtK,KAAKH,QAAQsB,YAAYosK,GACzBvtK,KAAKH,QAAQ8tK,4BAGRF,EA7ET,CA8EE,KC9EE,EAEJ,SAAU9tK,GAGR,SAASouK,IACP,OAAkB,OAAXpuK,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA+D7D,OAlEA,YAAU+tK,EAAmBpuK,GAM7BouK,EAAkBhqK,SAAW,SAAUC,GACrC,OAAO,IAAI+pK,EAAkB/pK,IAG/B+pK,EAAkB3sK,UAAUgD,mBAAqB,WAC/CpE,KAAKguK,cAAgBhuK,KAAKgE,KAAKM,cAAc/F,EAAQ6uK,wBACrD,IAAI//J,EAAQrN,KAAKgE,KAAKM,cAAc,IAAM,EAA2BnG,WAAWsd,MAE5EpO,GACFA,EAAMsD,MAAMqoC,mBAAqB,KACjCh5C,KAAKgE,KAAKqB,UAAUC,IAAI,EAAWkoK,kBACnCvqK,uBAAsB,WACpBoK,EAAMsD,MAAMqoC,mBAAqB,OAGnCh5C,KAAKgE,KAAKqB,UAAUC,IAAI,EAAWgoK,WASvCS,EAAkB3sK,UAAUwsK,MAAQ,SAAUC,GAC5C7tK,KAAK0E,WAAWkpK,MAAMC,IAOxBE,EAAkB3sK,UAAU0sK,WAAa,WACvC9tK,KAAK0E,WAAWopK,cAGlBC,EAAkB3sK,UAAU+D,qBAAuB,WACjD,IAAIrF,EAAQE,KAoBZ,OAAO,IAAI,EAfG,CACZa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErCsoK,sBAAuB,SAAUlgJ,GAC/B,OAAO1tB,EAAMkuK,cAAcr9J,MAAMw8J,YAAY,QAAS3/I,EAAQ,OAEhEmgJ,yBAA0B,WACxB,OAAO7tK,EAAMkuK,cAAcr9J,MAAM+c,eAAe,aAO/CqgJ,EAnET,CAoEE,K,wBC5EE,EAAa,CACftyJ,KAAM,oCAEJ,EAAU,CACZwyJ,cAAe,IAAM,EAAWxyJ,MCA9B,EAEJ,SAAU9b,GAGR,SAASuuK,EAAuCruK,GAC9C,OAAOF,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIkuK,EAAuCjuK,gBAAiBJ,KAAaG,KAqCtH,OAxCA,YAAUkuK,EAAwCvuK,GAMlDa,OAAOC,eAAeytK,EAAwC,aAAc,CAC1ExtK,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeytK,EAAwC,UAAW,CACvExtK,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeytK,EAAwC,iBAAkB,CAI9ExtK,IAAK,WACH,MAAO,CACLymK,WAAY,eAKhBxmK,YAAY,EACZC,cAAc,IAGhBstK,EAAuC9sK,UAAU+sK,gBAAkB,SAAUC,EAAeC,GAC1FD,EAAgB11J,KAAKkS,IAAIwjJ,EAAeC,GACxCruK,KAAKH,QAAQsnK,WAAWiH,EAAgB,MAAQC,IAG3CH,EAzCT,CA0CE,KC5CE,EAEJ,SAAUvuK,GAGR,SAAS2uK,IACP,OAAkB,OAAX3uK,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA6B7D,OAhCA,YAAUsuK,EAA8B3uK,GAMxC2uK,EAA6BvqK,SAAW,SAAUC,GAChD,OAAO,IAAIsqK,EAA6BtqK,IAG1CxD,OAAOC,eAAe6tK,EAA6BltK,UAAW,yBAA0B,CAEtFV,IAAK,WACH,OAAOV,KAAK0E,YAEd/D,YAAY,EACZC,cAAc,IAGhB0tK,EAA6BltK,UAAU+D,qBAAuB,WAC5D,IAAIrF,EAAQE,KASZ,OAAO,IAAI,EALG,CACZmnK,WAAY,SAAUv3J,GACpB9P,EAAMkE,KAAKT,YAAcqM,MAMxB0+J,EAjCT,CAkCE,KCxCE,EAAU,CACZC,cAAe,gBACfC,eAAgB,yBAChB3vK,eAAgB,sBAChB4vK,sBAAuB,iCACvBC,qBAAsB,mBACtBC,iBAAkB,uBAClBC,gBAAiB,iCACjBC,gBAAiB,iCACjBC,uBAAwB,mCAEtB,EAAa,CACfC,SAAU,2BACVC,QAAS,0BACTC,UAAW,4BACXC,YAAa,6BACbC,QAAS,0BACTC,eAAgB,iCAChB9B,SAAU,2BACV+B,SAAU,2BACV5zJ,KAAM,iBACN6zJ,SAAU,2BACVC,kBAAmB,oCACnBC,mBAAoB,sCAElB,EAAU,CACZC,YAAa,KAOXC,EAA4B,CAAC,UAAW,MAAO,MAAO,WAAY,OAAQ,YAAa,aAKvFC,EAAqB,CAAC,QAAS,OAAQ,iBAAkB,QAAS,QAAS,OAAQ,QCnCnFC,EAAqB,CAAC,YAAa,cACnCC,EAAqB,CAAC,QAAS,WAE/B,EAEJ,SAAUlwK,GAQR,SAASmwK,EAAuBjwK,EAASkwK,QACjB,IAAlBA,IACFA,EAAgB,IAGlB,IAAIjwK,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI8vK,EAAuB7vK,gBAAiBJ,KAAaG,KAmCzG,OAjCAF,EAAMkwK,YAAa,EACnBlwK,EAAMmwK,oBAAqB,EAC3BnwK,EAAMowK,UAAW,EACjBpwK,EAAMqwK,sBAAuB,EAC7BrwK,EAAMswK,YAAcL,EAAcM,WAClCvwK,EAAMwwK,kBAAoBP,EAAcQ,iBACxCzwK,EAAM0wK,aAAeT,EAAcU,YACnC3wK,EAAM4wK,cAAgBX,EAAcY,aAEpC7wK,EAAM8wK,mBAAqB,WACzB,OAAO9wK,EAAM+wK,iBAGf/wK,EAAMgxK,kBAAoB,WACxB,OAAOhxK,EAAMixK,mBAGfjxK,EAAMkxK,mBAAqB,WACzB,OAAOlxK,EAAMm9E,eAGfn9E,EAAMmxK,mBAAqB,SAAUvuK,GACnC,OAAO5C,EAAMoxK,mBAAmBxuK,IAGlC5C,EAAMqxK,6BAA+B,WACnC,OAAOrxK,EAAMsxK,8BAGftxK,EAAMuxK,kCAAoC,SAAUC,GAClD,OAAOxxK,EAAMyxK,gCAAgCD,IAGxCxxK,EA0iBT,OAzlBA,YAAUgwK,EAAwBnwK,GAkDlCa,OAAOC,eAAeqvK,EAAwB,aAAc,CAC1DpvK,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqvK,EAAwB,UAAW,CACvDpvK,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqvK,EAAwB,UAAW,CACvDpvK,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqvK,EAAuB1uK,UAAW,qBAAsB,CAC5EV,IAAK,WACH,IAAIsT,EAAOhU,KAAKwxK,kBAAkBx9J,KAClC,OAAO27J,EAAmBhoK,QAAQqM,IAAS,GAE7CrT,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqvK,EAAuB1uK,UAAW,cAAe,CACrEV,IAAK,WACH,OAAOV,KAAKyxK,oBAAsBzxK,KAAKgwK,cAAgBhwK,KAAK2zF,YAAc3zF,KAAK0xK,eAEjF/wK,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqvK,EAAuB1uK,UAAW,cAAe,CACrEV,IAAK,WACH,OAAQV,KAAKgwK,aAAehwK,KAAKyoH,aAAezoH,KAAK2zF,YAEvDhzF,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqvK,EAAwB,iBAAkB,CAI9DpvK,IAAK,WAEH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb4a,SAAU,WACR,OAAO,GAET41J,oCAAqC,aAGrCC,sCAAuC,aAGvCC,gCAAiC,aAGjCC,kCAAmC,aAGnCC,yCAA0C,WACxC,OAAO,IAAIzvH,kBAAiB,gBAI9B0vH,2CAA4C,aAG5CC,eAAgB,WACd,OAAO,MAETvoE,UAAW,WACT,OAAO,GAETwoE,mBAAoB,aAGpBC,qBAAsB,aAGtBC,6BAA8B,aAG9BC,WAAY,aAGZC,WAAY,aAGZC,iBAAkB,aAGlBC,SAAU,WACR,OAAO,GAETC,cAAe,WACb,OAAO,GAETC,WAAY,WACV,OAAO,GAETC,aAAc,aAGdC,aAAc,eAKlBjyK,YAAY,EACZC,cAAc,IAGhBkvK,EAAuB1uK,UAAU4qB,KAAO,WACtC,IAAIlsB,EAAQE,KAERA,KAAKH,QAAQ2yK,YAAcxyK,KAAKwxK,kBAAkBzyI,UACpD/+B,KAAKH,QAAQ0yK,kBAAiB,GAG5BvyK,KAAKH,QAAQ6pG,YACf1pG,KAAK4wK,qBACI5wK,KAAKH,QAAQ2yK,YAAcxyK,KAAKmsK,cACzCnsK,KAAK2yK,cAAa,GAClB3yK,KAAKH,QAAQyyK,YAAW,GACxBtyK,KAAK6yK,gBAAe,IAGtB7yK,KAAKH,QAAQgyK,gCAAgC,QAAS7xK,KAAK4wK,oBAC3D5wK,KAAKH,QAAQgyK,gCAAgC,OAAQ7xK,KAAK8wK,mBAC1D9wK,KAAKH,QAAQgyK,gCAAgC,QAAS7xK,KAAKgxK,oBAC3DpB,EAAmB5/J,SAAQ,SAAUu0G,GACnCzkH,EAAMD,QAAQgyK,gCAAgCttD,EAASzkH,EAAMmxK,uBAE/DpB,EAAmB7/J,SAAQ,SAAUu0G,GACnCzkH,EAAMD,QAAQ8xK,oCAAoCptD,EAASzkH,EAAMqxK,iCAEnEnxK,KAAK8yK,oBAAsB9yK,KAAKH,QAAQkyK,yCAAyC/xK,KAAKqxK,mCACtFrxK,KAAK+yK,qBAAqB/yK,KAAK2zF,WAAW3rF,SAG5C8nK,EAAuB1uK,UAAUC,QAAU,WACzC,IAAIvB,EAAQE,KAEZA,KAAKH,QAAQiyK,kCAAkC,QAAS9xK,KAAK4wK,oBAC7D5wK,KAAKH,QAAQiyK,kCAAkC,OAAQ9xK,KAAK8wK,mBAC5D9wK,KAAKH,QAAQiyK,kCAAkC,QAAS9xK,KAAKgxK,oBAC7DpB,EAAmB5/J,SAAQ,SAAUu0G,GACnCzkH,EAAMD,QAAQiyK,kCAAkCvtD,EAASzkH,EAAMmxK,uBAEjEpB,EAAmB7/J,SAAQ,SAAUu0G,GACnCzkH,EAAMD,QAAQ+xK,sCAAsCrtD,EAASzkH,EAAMqxK,iCAErEnxK,KAAKH,QAAQmyK,2CAA2ChyK,KAAK8yK,sBAO/DhD,EAAuB1uK,UAAUgwK,2BAA6B,WAC5D,IAAI4B,EAAchzK,KAAKH,QAAQoyK,iBAE3Be,GAAeA,EAAYv9I,WAI/Bz1B,KAAKiwK,oBAAqB,IAO5BH,EAAuB1uK,UAAUmwK,gCAAkC,SAAUD,GAC3E,IAAIxxK,EAAQE,KAEZsxK,EAAe35I,MAAK,SAAUqsC,GAC5B,OAAI0rG,EAA0B/nK,QAAQq8D,IAAkB,IACtDlkE,EAAMmzK,gBAAe,GAErBnzK,EAAMD,QAAQ0yK,iBAAiBzyK,EAAM0xK,kBAAkBzyI,WAEhD,MAMPuyI,EAAe3pK,QAAQ,cAAgB,GACzC3H,KAAK+yK,qBAAqB/yK,KAAK2zF,WAAW3rF,SAQ9C8nK,EAAuB1uK,UAAUuxK,aAAe,SAAUO,GACxD,GAAKlzK,KAAKH,QAAQ6yK,aAIlB,GAAIQ,EAAW,CACb,IAAIC,EAAanzK,KAAKH,QAAQ4yK,gBAAkB,EAAQhD,YACxDzvK,KAAKH,QAAQ8yK,aAAaQ,QAE1BnzK,KAAKH,QAAQ+yK,gBAQjB9C,EAAuB1uK,UAAUyvK,cAAgB,WAC/C7wK,KAAKgwK,YAAa,EAClBhwK,KAAKozK,cAAcpzK,KAAKgwK,YACxBhwK,KAAKH,QAAQqyK,qBAETlyK,KAAKH,QAAQ2yK,aACfxyK,KAAK2yK,aAAa3yK,KAAKmsK,aACvBnsK,KAAKH,QAAQyyK,WAAWtyK,KAAKmsK,aAC7BnsK,KAAK6yK,eAAe7yK,KAAKmsK,aACzBnsK,KAAKH,QAAQwyK,WAAWryK,KAAKisK,cAG3BjsK,KAAKowK,aACPpwK,KAAKowK,YAAYiD,sBASrBvD,EAAuB1uK,UAAU8vK,mBAAqB,SAAUxuK,GAC9D,IAAI1C,KAAKsnK,eAAgBtnK,KAAKH,QAAQ6yK,aAAtC,CAIA,IAAIrvH,EAAU3gD,EAAI2gD,QACdiwH,EAAcjwH,EAAUA,EAAQ,GAAK3gD,EACrC6wK,EAAmBD,EAAY1uK,OAAO0L,wBACtCqD,EAAc2/J,EAAY5zF,QAAU6zF,EAAiBz/J,KACzD9T,KAAKH,QAAQuyK,6BAA6Bz+J,KAO5Cm8J,EAAuB1uK,UAAU67E,YAAc,WAC7Cj9E,KAAKwzK,oBACLxzK,KAAK+yK,qBAAqB/yK,KAAK2zF,WAAW3rF,SAQ5C8nK,EAAuB1uK,UAAUoyK,kBAAoB,WAC9CxzK,KAAKiwK,oBACRjwK,KAAK6wK,iBAQTf,EAAuB1uK,UAAU2vK,gBAAkB,WACjD/wK,KAAKgwK,YAAa,EAClBhwK,KAAKH,QAAQsyK,uBACb,IAAI1pD,EAAUzoH,KAAKyoH,UACnBzoH,KAAKizK,eAAexqD,GACpBzoH,KAAKozK,cAAcpzK,KAAKgwK,YAEpBhwK,KAAKH,QAAQ2yK,aACfxyK,KAAK2yK,aAAa3yK,KAAKmsK,aACvBnsK,KAAKH,QAAQyyK,WAAWtyK,KAAKmsK,aAC7BnsK,KAAK6yK,eAAe7yK,KAAKmsK,aACzBnsK,KAAKH,QAAQwyK,WAAWryK,KAAKisK,cAG1BjsK,KAAKmsK,cACRnsK,KAAKiwK,oBAAqB,IAI9BH,EAAuB1uK,UAAUuyF,SAAW,WAC1C,OAAO3zF,KAAKwxK,kBAAkBrhK,OAOhC2/J,EAAuB1uK,UAAUqyK,SAAW,SAAUtjK,GAEhDnQ,KAAK2zF,aAAexjF,IACtBnQ,KAAKwxK,kBAAkBrhK,MAAQA,GAGjCnQ,KAAK+yK,qBAAqB5iK,EAAMnI,QAChC,IAAIygH,EAAUzoH,KAAKyoH,UACnBzoH,KAAKizK,eAAexqD,GAEhBzoH,KAAKH,QAAQ2yK,aACfxyK,KAAK2yK,aAAa3yK,KAAKmsK,aACvBnsK,KAAKH,QAAQyyK,WAAWtyK,KAAKmsK,aAC7BnsK,KAAK6yK,eAAe7yK,KAAKmsK,aACzBnsK,KAAKH,QAAQwyK,WAAWryK,KAAKisK,eAQjC6D,EAAuB1uK,UAAUqnH,QAAU,WACzC,OAAOzoH,KAAKmwK,qBAAuBnwK,KAAK0zK,sBAAwB1zK,KAAKkwK,UAOvEJ,EAAuB1uK,UAAUuyK,SAAW,SAAUlrD,GACpDzoH,KAAKkwK,SAAWznD,EAChBzoH,KAAKizK,eAAexqD,GACpB,IAAIwjD,GAAexjD,IAAYzoH,KAAKgwK,cAAgBhwK,KAAK2zF,WAErD3zF,KAAKH,QAAQ2yK,YACfxyK,KAAKH,QAAQwyK,WAAWpG,IAS5B6D,EAAuB1uK,UAAUwyK,uBAAyB,SAAUC,GAClE7zK,KAAKmwK,qBAAuB0D,GAG9B/D,EAAuB1uK,UAAUkmK,WAAa,WAC5C,OAAOtnK,KAAKwxK,kBAAkB/7I,UAOhCq6I,EAAuB1uK,UAAU0yK,YAAc,SAAUr+I,GACvDz1B,KAAKwxK,kBAAkB/7I,SAAWA,EAClCz1B,KAAK+zK,eAAet+I,IAOtBq6I,EAAuB1uK,UAAU4yK,qBAAuB,SAAUpkK,GAC5D5P,KAAKowK,aACPpwK,KAAKowK,YAAYjJ,WAAWv3J,IAQhCkgK,EAAuB1uK,UAAU6yK,wBAA0B,SAAU5mK,GAC/DrN,KAAKwwK,cACPxwK,KAAKwwK,aAAa0D,aAAa7mK,IAQnCyiK,EAAuB1uK,UAAU+yK,sBAAwB,SAAUvkK,GAC7D5P,KAAKwwK,cACPxwK,KAAKwwK,aAAarJ,WAAWv3J,IAQjCkgK,EAAuB1uK,UAAUgzK,yBAA2B,SAAU/mK,GAChErN,KAAK0wK,eACP1wK,KAAK0wK,cAAcwD,aAAa7mK,IAQpCyiK,EAAuB1uK,UAAUizK,uBAAyB,SAAUzkK,GAC9D5P,KAAK0wK,eACP1wK,KAAK0wK,cAAcvJ,WAAWv3J,IAQlCkgK,EAAuB1uK,UAAU2xK,qBAAuB,SAAU3E,GAChE,GAAKpuK,KAAKswK,kBAAV,CAIA,IAAIjC,EAAYruK,KAAKwxK,kBAAkBnD,UAEvC,IAAmB,IAAfA,EACF,MAAM,IAAIhsK,MAAM,uFAGlBrC,KAAKswK,kBAAkBnC,gBAAgBC,EAAeC,KAOxDyB,EAAuB1uK,UAAUswK,YAAc,WAE7C,OAAO1xK,KAAKwxK,kBAAkB8C,SAASC,WAAY,GAOrDzE,EAAuB1uK,UAAUsyK,oBAAsB,WACrD,OAAO1zK,KAAKwxK,kBAAkB8C,SAASE,OAOzC1E,EAAuB1uK,UAAU6xK,eAAiB,SAAUxqD,GAC1D,IAAI0mD,EAAUW,EAAuB3xK,WAAWgxK,QAE5C1mD,EACFzoH,KAAKH,QAAQsB,YAAYguK,GAEzBnvK,KAAKH,QAAQgB,SAASsuK,GAGpBnvK,KAAKowK,aACPpwK,KAAKowK,YAAYqE,YAAYhsD,IAQjCqnD,EAAuB1uK,UAAUgyK,cAAgB,SAAU1pE,GACzD,IAAIslE,EAAUc,EAAuB3xK,WAAW6wK,QAE5CtlE,EACF1pG,KAAKH,QAAQgB,SAASmuK,GAEtBhvK,KAAKH,QAAQsB,YAAY6tK,IAQ7Bc,EAAuB1uK,UAAU2yK,eAAiB,SAAUzM,GAC1D,IAAIl6J,EAAK0iK,EAAuB3xK,WAC5B4wK,EAAW3hK,EAAG2hK,SACdI,EAAU/hK,EAAG+hK,QAEb7H,GACFtnK,KAAKH,QAAQgB,SAASkuK,GACtB/uK,KAAKH,QAAQsB,YAAYguK,IAEzBnvK,KAAKH,QAAQsB,YAAY4tK,GAGvB/uK,KAAKwwK,cACPxwK,KAAKwwK,aAAasD,YAAYxM,GAG5BtnK,KAAK0wK,eACP1wK,KAAK0wK,cAAcoD,YAAYxM,IAQnCwI,EAAuB1uK,UAAUyxK,eAAiB,SAAU6B,GAC1D,IAAItF,EAAiBU,EAAuB3xK,WAAWixK,eAEnDsF,EACF10K,KAAKH,QAAQgB,SAASuuK,GAEtBpvK,KAAKH,QAAQsB,YAAYiuK,IAQ7BU,EAAuB1uK,UAAUowK,gBAAkB,WAKjD,OADkBxxK,KAAKH,QAAUG,KAAKH,QAAQoyK,iBAAmB,OAC3C,CACpBx8I,UAAU,EACV44I,WAAY,EACZtvI,UAAU,EACV/qB,KAAM,QACNsgK,SAAU,CACRC,UAAU,EACVC,OAAO,GAETrkK,MAAO,KAIJ2/J,EA1lBT,CA2lBE,KCnmBE,EAAa,CACf6E,uBAAwB,yCACxBC,2BAA4B,6CAC5Bn5J,KAAM,8BAEJ,EAAU,CACZo5J,YAAa,cACbC,KAAM,OACN7G,cAAe,IAAM,EAAWxyJ,MCJ9B,EAEJ,SAAU9b,GAGR,SAASo1K,EAAiCl1K,GACxC,OAAOF,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI+0K,EAAiC90K,gBAAiBJ,KAAaG,KAmHhH,OAtHA,YAAU+0K,EAAkCp1K,GAM5Ca,OAAOC,eAAes0K,EAAkC,aAAc,CACpEr0K,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes0K,EAAkC,UAAW,CACjEr0K,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes0K,EAAkC,iBAAkB,CAIxEr0K,IAAK,WAEH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb4a,SAAU,WACR,OAAO,GAETi5J,QAAS,aAGTn8H,WAAY,aAGZsuH,WAAY,eAKhBxmK,YAAY,EACZC,cAAc,IAMhBm0K,EAAiC3zK,UAAU+lK,WAAa,SAAUv3J,GAChE5P,KAAKH,QAAQsnK,WAAWv3J,IAO1BmlK,EAAiC3zK,UAAU6zK,cAAgB,SAAUC,GAC/DA,EACFl1K,KAAKH,QAAQgB,SAAS,EAAW8zK,wBAEjC30K,KAAKH,QAAQsB,YAAY,EAAWwzK,yBAQxCI,EAAiC3zK,UAAU+zK,cAAgB,SAAUC,GAC/DA,EACFp1K,KAAKH,QAAQgB,SAAS,EAAW+zK,4BAEjC50K,KAAKH,QAAQsB,YAAY,EAAWyzK,6BAQxCG,EAAiC3zK,UAAUiyK,mBAAqB,WAC9DrzK,KAAKH,QAAQg5C,WAAW,EAAQg8H,cAOlCE,EAAiC3zK,UAAUqzK,YAAc,SAAUY,GACjE,IAAIC,EAAyBt1K,KAAKH,QAAQkc,SAAS,EAAW44J,wBAE1DY,EAD4Bv1K,KAAKH,QAAQkc,SAAS,EAAW64J,8BACHS,EAE1DE,EACFv1K,KAAKH,QAAQm1K,QAAQ,EAAQF,KAAM,SAEnC90K,KAAKH,QAAQg5C,WAAW,EAAQi8H,MAG7BQ,GAA2BC,GAC9Bv1K,KAAKw1K,SAQTT,EAAiC3zK,UAAUo0K,MAAQ,WACjDx1K,KAAKH,QAAQm1K,QAAQ,EAAQH,YAAa,SAGrCE,EAvHT,CAwHE,KC1HE,EAEJ,SAAUp1K,GAGR,SAAS81K,IACP,OAAkB,OAAX91K,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA8C7D,OAjDA,YAAUy1K,EAAwB91K,GAMlC81K,EAAuB1xK,SAAW,SAAUC,GAC1C,OAAO,IAAIyxK,EAAuBzxK,IAGpCxD,OAAOC,eAAeg1K,EAAuBr0K,UAAW,yBAA0B,CAEhFV,IAAK,WACH,OAAOV,KAAK0E,YAEd/D,YAAY,EACZC,cAAc,IAGhB60K,EAAuBr0K,UAAU+D,qBAAuB,WACtD,IAAIrF,EAAQE,KA0BZ,OAAO,IAAI,EArBG,CACZa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErC2W,SAAU,SAAU3W,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAU4rB,SAAS7rB,IAEvC4vK,QAAS,SAAU9jK,EAAMf,GACvB,OAAOrQ,EAAMkE,KAAKP,aAAayN,EAAMf,IAEvC0oC,WAAY,SAAU3nC,GACpB,OAAOpR,EAAMkE,KAAKL,gBAAgBuN,IAEpCi2J,WAAY,SAAUv3J,GACpB9P,EAAMkE,KAAKT,YAAcqM,MAOxB6lK,EAlDT,CAmDE,KCzDE,EAAU,CACZC,WAAY,oBACZC,UAAW,UAET,EAAa,CACfl6J,KAAM,wBCFJ,EAAqB,CAAC,QAAS,WAE/B,EAEJ,SAAU9b,GAGR,SAASi2K,EAA2B/1K,GAClC,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI41K,EAA2B31K,gBAAiBJ,KAAaG,KAQ7G,OANAF,EAAM+1K,eAAiB,KAEvB/1K,EAAMg2K,oBAAsB,SAAUpzK,GACpC,OAAO5C,EAAMi2K,kBAAkBrzK,IAG1B5C,EAqGT,OAhHA,YAAU81K,EAA4Bj2K,GActCa,OAAOC,eAAem1K,EAA4B,UAAW,CAC3Dl1K,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAem1K,EAA4B,aAAc,CAC9Dl1K,IAAK,WACH,OAAO,GAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAem1K,EAA4B,iBAAkB,CAIlEl1K,IAAK,WAEH,MAAO,CACLs1K,QAAS,WACP,OAAO,MAEThB,QAAS,aAGTn8H,WAAY,aAGZsuH,WAAY,aAGZpkD,2BAA4B,aAG5BP,6BAA8B,aAG9ByzD,iBAAkB,eAKtBt1K,YAAY,EACZC,cAAc,IAGhBg1K,EAA2Bx0K,UAAU4qB,KAAO,WAC1C,IAAIlsB,EAAQE,KAEZA,KAAK61K,eAAiB71K,KAAKH,QAAQm2K,QAAQ,YAC3C,EAAmBhmK,SAAQ,SAAUu0G,GACnCzkH,EAAMD,QAAQkjH,2BAA2BwB,EAASzkH,EAAMg2K,yBAI5DF,EAA2Bx0K,UAAUC,QAAU,WAC7C,IAAIvB,EAAQE,KAEZ,EAAmBgQ,SAAQ,SAAUu0G,GACnCzkH,EAAMD,QAAQ2iH,6BAA6B+B,EAASzkH,EAAMg2K,yBAI9DF,EAA2Bx0K,UAAU0yK,YAAc,SAAUr+I,GACtDz1B,KAAK61K,iBAINpgJ,GACFz1B,KAAKH,QAAQm1K,QAAQ,WAAY,MACjCh1K,KAAKH,QAAQg5C,WAAW,UAExB74C,KAAKH,QAAQm1K,QAAQ,WAAYh1K,KAAK61K,gBACtC71K,KAAKH,QAAQm1K,QAAQ,OAAQ,EAAQW,cAIzCC,EAA2Bx0K,UAAU8yK,aAAe,SAAU7mK,GAC5DrN,KAAKH,QAAQm1K,QAAQ,aAAc3nK,IAGrCuoK,EAA2Bx0K,UAAU+lK,WAAa,SAAUv3J,GAC1D5P,KAAKH,QAAQsnK,WAAWv3J,IAG1BgmK,EAA2Bx0K,UAAU20K,kBAAoB,SAAUrzK,GACjE,IAAIwzK,EAAyB,UAAZxzK,EAAIC,KAAmC,KAAhBD,EAAIE,SAE3B,UAAbF,EAAIsR,MAAoBkiK,KAC1BxzK,EAAI81B,iBAGJx4B,KAAKH,QAAQo2K,qBAIVL,EAjHT,CAkHE,KCrHE,EAEJ,SAAUj2K,GAGR,SAASw2K,IACP,OAAkB,OAAXx2K,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAqD7D,OAxDA,YAAUm2K,EAAkBx2K,GAM5Bw2K,EAAiBpyK,SAAW,SAAUC,GACpC,OAAO,IAAImyK,EAAiBnyK,IAG9BxD,OAAOC,eAAe01K,EAAiB/0K,UAAW,yBAA0B,CAE1EV,IAAK,WACH,OAAOV,KAAK0E,YAEd/D,YAAY,EACZC,cAAc,IAGhBu1K,EAAiB/0K,UAAU+D,qBAAuB,WAChD,IAAIrF,EAAQE,KAiCZ,OAAO,IAAI,EA5BG,CACZg2K,QAAS,SAAU9kK,GACjB,OAAOpR,EAAMkE,KAAKX,aAAa6N,IAEjC8jK,QAAS,SAAU9jK,EAAMf,GACvB,OAAOrQ,EAAMkE,KAAKP,aAAayN,EAAMf,IAEvC0oC,WAAY,SAAU3nC,GACpB,OAAOpR,EAAMkE,KAAKL,gBAAgBuN,IAEpCi2J,WAAY,SAAUv3J,GACpB9P,EAAMkE,KAAKT,YAAcqM,GAE3BmzG,2BAA4B,SAAUwB,EAAS5+G,GAC7C,OAAO7F,EAAM8F,OAAO2+G,EAAS5+G,IAE/B68G,6BAA8B,SAAU+B,EAAS5+G,GAC/C,OAAO7F,EAAM+F,SAAS0+G,EAAS5+G,IAEjCswK,iBAAkB,WAChB,OAAOn2K,EAAMyF,KAAK,EAA2BhH,QAAQm3K,WAAY,IAE/D,OASDS,EAzDT,CA0DE,KC/CE,EAEJ,SAAUx2K,GAGR,SAASy2K,IACP,OAAkB,OAAXz2K,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAsjB7D,OAzjBA,YAAUo2K,EAAcz2K,GAMxBy2K,EAAaryK,SAAW,SAAUC,GAChC,OAAO,IAAIoyK,EAAapyK,IAG1BoyK,EAAah1K,UAAU6C,WAAa,SAAUoyK,EAAeC,EAAmBC,EAAmBC,EAAyBC,EAAaC,EAAcC,QAC/H,IAAlBN,IACFA,EAAgB,SAAU7mK,EAAI9K,GAC5B,OAAO,IAAI,IAAU8K,EAAI9K,UAIH,IAAtB4xK,IACFA,EAAoB,SAAU9mK,GAC5B,OAAO,IAAI,EAAcA,UAIH,IAAtB+mK,IACFA,EAAoB,SAAU/mK,GAC5B,OAAO,IAAI,EAAuBA,UAIN,IAA5BgnK,IACFA,EAA0B,SAAUhnK,GAClC,OAAO,IAAI,EAA6BA,UAIxB,IAAhBinK,IACFA,EAAc,SAAUjnK,GACtB,OAAO,IAAI,EAAiBA,UAIX,IAAjBknK,IACFA,EAAe,SAAUlnK,GACvB,OAAO,IAAI,EAAiBA,UAIT,IAAnBmnK,IACFA,EAAiB,SAAUnnK,GACzB,OAAO,IAAI,EAAkBA,KAIjCxP,KAAK42K,OAAS52K,KAAKgE,KAAKM,cAAc,EAAQkqK,gBAC9C,IAAIqI,EAAe72K,KAAKgE,KAAKM,cAAc,EAAQzF,gBACnDmB,KAAK82K,OAASD,EAAeH,EAAaG,GAAgB,KAC1D,IAAIE,EAAoB/2K,KAAKgE,KAAKM,cAAc,EAAQoqK,sBACxD1uK,KAAKg3K,YAAcD,EAAoBT,EAAkBS,GAAqB,KAC9E,IAAIE,EAAiBj3K,KAAKgE,KAAKM,cAAc,EAAQqqK,kBACrD3uK,KAAKk3K,SAAWD,EAAiBN,EAAeM,GAAkB,KAElE,IAAIE,EAAoB,EAAiC54K,QACrDm+C,EAAqB18C,KAAKgE,KAAK04C,mBAC/B06H,EAAgB16H,GAAsBA,EAAmBr3C,UAAU4rB,SAAS,EAAWi+I,aACvFmI,EAAeD,GAAiB16H,GAAsBA,EAAmBp4C,cAAc6yK,EAAkBlJ,eAC7GjuK,KAAKowK,YAAciH,EAAed,EAAkBc,GAAgB,KAEpE,IAAIC,EAA0B,EAAuC/4K,QACjEg5K,EAAqBv3K,KAAKgE,KAAKM,cAAcgzK,EAAwBrJ,gBAEpEsJ,GAAsBH,GAAiB16H,IAC1C66H,EAAqB76H,EAAmBp4C,cAAcgzK,EAAwBrJ,gBAGhFjuK,KAAKswK,kBAAoBiH,EAAqBf,EAAwBe,GAAsB,KAE5F,IAAIC,EAAgBx3K,KAAKgE,KAAKM,cAAc,EAAQmqK,uBACpDzuK,KAAKwwK,aAAegH,EAAgBf,EAAYe,GAAiB,KAEjE,IAAIC,EAAiBz3K,KAAKgE,KAAKM,cAAc,EAAQwqK,wBACrD9uK,KAAK0wK,cAAgB+G,EAAiBhB,EAAYgB,GAAkB,KAEpEz3K,KAAK03K,QAAU13K,KAAKgE,KAAKM,cAAc,EAAQsqK,iBAC/C5uK,KAAK23K,QAAU33K,KAAKgE,KAAKM,cAAc,EAAQuqK,iBAC/C7uK,KAAK43K,OAAS53K,KAAK63K,cAAcxB,IAGnCD,EAAah1K,UAAUC,QAAU,WAC3BrB,KAAK43K,QACP53K,KAAK43K,OAAOv2K,UAGVrB,KAAKg3K,aACPh3K,KAAKg3K,YAAY31K,UAGfrB,KAAKowK,aACPpwK,KAAKowK,YAAY/uK,UAGfrB,KAAKswK,mBACPtwK,KAAKswK,kBAAkBjvK,UAGrBrB,KAAKwwK,cACPxwK,KAAKwwK,aAAanvK,UAGhBrB,KAAK0wK,eACP1wK,KAAK0wK,cAAcrvK,UAGjBrB,KAAK82K,QACP92K,KAAK82K,OAAOz1K,UAGVrB,KAAKk3K,UACPl3K,KAAKk3K,SAAS71K,UAGhB1B,EAAOyB,UAAUC,QAAQtB,KAAKC,OAQhCo2K,EAAah1K,UAAUgD,mBAAqB,WAC1CpE,KAAKy1B,SAAWz1B,KAAK42K,OAAOnhJ,UAG9Bj1B,OAAOC,eAAe21K,EAAah1K,UAAW,QAAS,CACrDV,IAAK,WACH,OAAOV,KAAK0E,WAAWivF,YAMzBluF,IAAK,SAAU0K,GACbnQ,KAAK0E,WAAW+uK,SAAStjK,IAE3BxP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,WAAY,CACxDV,IAAK,WACH,OAAOV,KAAK0E,WAAW4iK,cAMzB7hK,IAAK,SAAUgwB,GACbz1B,KAAK0E,WAAWovK,YAAYr+I,IAE9B90B,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,QAAS,CACrDV,IAAK,WACH,OAAOV,KAAK0E,WAAW+jH,WAMzBhjH,IAAK,SAAU+uK,GACbx0K,KAAK0E,WAAWivK,SAASa,IAE3B7zK,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,WAAY,CACxDV,IAAK,WACH,OAAOV,KAAK42K,OAAO73I,UAMrBt5B,IAAK,SAAUs5B,GACb/+B,KAAK42K,OAAO73I,SAAWA,GAEzBp+B,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,UAAW,CACvDV,IAAK,WACH,OAAOV,KAAK42K,OAAOjxJ,SAMrBlgB,IAAK,SAAUkgB,GACb3lB,KAAK42K,OAAOjxJ,QAAUA,GAExBhlB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,YAAa,CACzDV,IAAK,WACH,OAAOV,KAAK42K,OAAO9uF,WAMrBriF,IAAK,SAAUqiF,GACb9nF,KAAK42K,OAAO9uF,UAAYA,GAE1BnnF,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,YAAa,CACzDV,IAAK,WACH,OAAOV,KAAK42K,OAAOvI,WAMrB5oK,IAAK,SAAU4oK,GAETA,EAAY,EACdruK,KAAK42K,OAAOjzK,gBAAgB,aAE5B3D,KAAK42K,OAAOvI,UAAYA,GAG5B1tK,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,MAAO,CACnDV,IAAK,WACH,OAAOV,KAAK42K,OAAOhsJ,KAMrBnlB,IAAK,SAAUmlB,GACb5qB,KAAK42K,OAAOhsJ,IAAMA,GAEpBjqB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,MAAO,CACnDV,IAAK,WACH,OAAOV,KAAK42K,OAAO/rJ,KAMrBplB,IAAK,SAAUolB,GACb7qB,KAAK42K,OAAO/rJ,IAAMA,GAEpBlqB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,OAAQ,CACpDV,IAAK,WACH,OAAOV,KAAK42K,OAAOz3I,MAMrB15B,IAAK,SAAU05B,GACbn/B,KAAK42K,OAAOz3I,KAAOA,GAErBx+B,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,oBAAqB,CAIjEqE,IAAK,SAAUmK,GACb5P,KAAK0E,WAAWsvK,qBAAqBpkK,IAEvCjP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,uBAAwB,CAIpEqE,IAAK,SAAU4H,GACbrN,KAAK0E,WAAWuvK,wBAAwB5mK,IAE1C1M,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,qBAAsB,CAIlEqE,IAAK,SAAUmK,GACb5P,KAAK0E,WAAWyvK,sBAAsBvkK,IAExCjP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,wBAAyB,CAIrEqE,IAAK,SAAU4H,GACbrN,KAAK0E,WAAW0vK,yBAAyB/mK,IAE3C1M,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,sBAAuB,CAInEqE,IAAK,SAAUmK,GACb5P,KAAK0E,WAAW2vK,uBAAuBzkK,IAEzCjP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,sBAAuB,CAKnEqE,IAAK,SAAUouK,GACb7zK,KAAK0E,WAAWkvK,uBAAuBC,IAEzClzK,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,aAAc,CAI1DV,IAAK,WACH,OAAOV,KAAK03K,QAAU13K,KAAK03K,QAAQn0K,YAAc,MAMnDkC,IAAK,SAAUqyK,GACT93K,KAAK03K,UACP13K,KAAK03K,QAAQn0K,YAAcu0K,IAG/Bn3K,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe21K,EAAah1K,UAAW,aAAc,CAI1DV,IAAK,WACH,OAAOV,KAAK23K,QAAU33K,KAAK23K,QAAQp0K,YAAc,MAMnDkC,IAAK,SAAUsyK,GACT/3K,KAAK23K,UACP33K,KAAK23K,QAAQp0K,YAAcw0K,IAG/Bp3K,YAAY,EACZC,cAAc,IAMhBw1K,EAAah1K,UAAU6xB,MAAQ,WAC7BjzB,KAAK42K,OAAO3jJ,SAOdmjJ,EAAah1K,UAAU6L,OAAS,WAC9B,IAAIimK,EAAYlzK,KAAK0E,WAAWynK,YAChCnsK,KAAK0E,WAAWiuK,aAAaO,IAG/BkD,EAAah1K,UAAU+D,qBAAuB,WAI5C,IAAItF,EAAU,YAAS,YAAS,YAAS,YAAS,YAAS,GAAIG,KAAKg4K,0BAA2Bh4K,KAAKi4K,2BAA4Bj4K,KAAKk4K,2BAA4Bl4K,KAAKm4K,gCAAiCn4K,KAAKo4K,6BAG5M,OAAO,IAAI,EAAuBv4K,EAASG,KAAKq4K,sBAGlDjC,EAAah1K,UAAU42K,uBAAyB,WAC9C,IAAIl4K,EAAQE,KAGZ,MAAO,CACLa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErC2W,SAAU,SAAU3W,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAU4rB,SAAS7rB,IAEvCusK,oCAAqC,SAAUptD,EAAS5+G,GACtD,OAAO7F,EAAM8F,OAAO2+G,EAAS5+G,IAE/BisK,sCAAuC,SAAUrtD,EAAS5+G,GACxD,OAAO7F,EAAM+F,SAAS0+G,EAAS5+G,IAEjCosK,yCAA0C,SAAUpsK,GAClD,IAQI25C,EAAW,IAAIgD,kBAAiB,SAAUg2H,GAC5C,OAAO3yK,EATe,SAAU2yK,GAChC,OAAOA,EAActvJ,KAAI,SAAU+sF,GACjC,OAAOA,EAAS/xC,iBACfjrC,QAAO,SAAUirC,GAClB,OAAOA,KAKMu0G,CAAkBD,OAMnC,OADAh5H,EAASyC,QAAQjiD,EAAM82K,OAHV,CACXvmI,YAAY,IAGPiP,GAET0yH,2CAA4C,SAAU1yH,GACpD,OAAOA,EAAS7X,gBAKtB2uI,EAAah1K,UAAU62K,wBAA0B,WAC/C,IAAIn4K,EAAQE,KAGZ,MAAO,CACLiyK,eAAgB,WACd,OAAOnyK,EAAM82K,QAEfltE,UAAW,WACT,OAAOtyF,SAAS8c,gBAAkBp0B,EAAM82K,QAE1C/E,gCAAiC,SAAUttD,EAAS5+G,GAClD,OAAO7F,EAAM82K,OAAO9wK,iBAAiBy+G,EAAS5+G,EAAS,gBAEzDmsK,kCAAmC,SAAUvtD,EAAS5+G,GACpD,OAAO7F,EAAM82K,OAAO7wK,oBAAoBw+G,EAAS5+G,EAAS,kBAKhEywK,EAAah1K,UAAU82K,wBAA0B,WAC/C,IAAIp4K,EAAQE,KAEZ,MAAO,CACLsyK,WAAY,SAAUnG,GACpB,OAAOrsK,EAAMg3K,QAAUh3K,EAAMg3K,OAAO5K,MAAMC,IAE5CsG,cAAe,WACb,OAAO3yK,EAAMg3K,OAASh3K,EAAMg3K,OAAO9qF,WAAa,GAElDwmF,SAAU,WACR,OAAOxsK,QAAQlG,EAAMg3K,SAEvBzE,WAAY,SAAUpG,GACpB,OAAOnsK,EAAMg3K,QAAUh3K,EAAMg3K,OAAO9K,MAAMC,IAE5CsG,iBAAkB,SAAUlG,GAC1B,OAAOvsK,EAAMg3K,QAAUh3K,EAAMg3K,OAAO1K,YAAYC,MAKtD+J,EAAah1K,UAAU+2K,6BAA+B,WACpD,IAAIr4K,EAAQE,KAEZ,MAAO,CACLkyK,mBAAoB,WACdpyK,EAAMk3K,aACRl3K,EAAMk3K,YAAYnzD,YAGtBsuD,qBAAsB,WAChBryK,EAAMk3K,aACRl3K,EAAMk3K,YAAYlzD,cAGtBsuD,6BAA8B,SAAUz+J,GAClC7T,EAAMk3K,aACRl3K,EAAMk3K,YAAYlK,gBAAgBn5J,MAM1CyiK,EAAah1K,UAAUg3K,0BAA4B,WACjD,IAAIt4K,EAAQE,KAEZ,MAAO,CACL4yK,aAAc,WACZ,OAAO9yK,EAAMo3K,UAAYp3K,EAAMo3K,SAASpJ,cAE1C4E,WAAY,WACV,OAAO1sK,QAAQlG,EAAMo3K,WAEvBvE,aAAc,SAAUQ,GACtB,OAAOrzK,EAAMo3K,UAAYp3K,EAAMo3K,SAAStJ,MAAMuF,MASpDiD,EAAah1K,UAAUi3K,kBAAoB,WACzC,MAAO,CACL9H,iBAAkBvwK,KAAKswK,kBAAoBtwK,KAAKswK,kBAAkBkI,4BAAyBxxK,EAC3FqpK,WAAYrwK,KAAKowK,YAAcpwK,KAAKowK,YAAYoI,4BAAyBxxK,EACzEypK,YAAazwK,KAAKwwK,aAAexwK,KAAKwwK,aAAagI,4BAAyBxxK,EAC5E2pK,aAAc3wK,KAAK0wK,cAAgB1wK,KAAK0wK,cAAc8H,4BAAyBxxK,IAInFovK,EAAah1K,UAAUy2K,cAAgB,SAAUxB,GAC/C,IAAIv2K,EAAQE,KAERy4K,EAAaz4K,KAAKgE,KAAKqB,UAAU4rB,SAAS,EAAWq+I,UACrDoJ,EAAa14K,KAAKgE,KAAKqB,UAAU4rB,SAAS,EAAWo+I,UAEzD,GAAIoJ,GAAcC,EAChB,OAAO,KAMT,IAAI74K,EAAU,YAAS,YAAS,GAAI,IAAU84K,cAAc34K,OAAQ,CAClE2iH,gBAAiB,WACf,OAAOi2D,EAAA,EAAiB94K,EAAM82K,OAAQ,YAExC7zD,2BAA4B,SAAUwB,EAAS5+G,GAC7C,OAAO7F,EAAM82K,OAAO9wK,iBAAiBy+G,EAAS5+G,EAAS,gBAEzD68G,6BAA8B,SAAU+B,EAAS5+G,GAC/C,OAAO7F,EAAM82K,OAAO7wK,oBAAoBw+G,EAAS5+G,EAAS,kBAK9D,OAAO0wK,EAAcr2K,KAAKgE,KAAM,IAAI,IAAoBnE,KAGnDu2K,EA1jBT,CA2jBE,M,kCClmBF,IAAIzqJ,EAAQ,EAAQ,QAEhB7M,EAAW,EAAQ,QAWvB5W,EAAOC,QAAU,SAAuBiI,EAAM8hC,EAAS2mI,GACrD,IAAIt0J,EAAUvkB,MAAQ8e,EAMtB,OAHA6M,EAAM3b,QAAQ6oK,GAAK,SAAmB1uJ,GACpC/Z,EAAO+Z,EAAGpqB,KAAKwkB,EAASnU,EAAM8hC,MAEzB9hC,I,kCCpBTlI,EAAOC,QAAU,CAACqB,EAAQqQ,KACxB,GAAwB,kBAAXrQ,GAA4C,kBAAdqQ,EACzC,MAAM,IAAIoR,UAAU,iDAGtB,GAAkB,KAAdpR,EACF,MAAO,CAACrQ,GAGV,MAAMsvK,EAAiBtvK,EAAO7B,QAAQkS,GAEtC,OAAwB,IAApBi/J,EACK,CAACtvK,GAGH,CAACA,EAAO5B,MAAM,EAAGkxK,GAAiBtvK,EAAO5B,MAAMkxK,EAAiBj/J,EAAU7R,W,kCCjBnF,sGAsBA,IAAI7J,EAAa,CACf0rC,0BAA2B,2BAC3BkvI,gBAAiB,gBACjBzuB,yBAA0B,0BAC1Ba,yBAA0B,0BAC1B6tB,qBAAsB,sBACtBC,6BAA8B,8BAC9Bx9J,KAAM,YAEJld,EAAU,CACZ26K,aAAc,iBACdztB,aAAc,eACd0tB,+BAAgC,yCAChCC,4BAA6B,sCAC7B/tB,aAAc,eACdJ,cAAe,gBACfouB,iBAAkB,mBAClBC,4BAA6B,aAC7BC,4BAA6B,oBAC7B7uK,cAAe,gBACf8uK,wBAAyB,8CACzBC,kBAAmB,yBACnBC,kCAAmC,UAAYv7K,EAAW46K,gBAAkB,iCAAmC56K,EAAW46K,gBAAkB,SAC5IY,yBAA0B,UAAYx7K,EAAW46K,gBAAkB,iCAAmC56K,EAAW46K,gBAAkB,aAAe56K,EAAW46K,gBAAkB,8CAAkD56K,EAAW46K,gBAAkB,6CAC9Pa,eAAgB,uBAEdz6K,EAAU,CACZuoJ,aAAc,EACd3B,kCAAmC,M,kCC1CrC79I,EAAOC,QAAU,SAAuBg5B,GAItC,MAAO,gCAAgCjjC,KAAKijC,K,sBCLrC,SAAUrmC,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,8bAAsFC,MAAM,KACpGC,YAAa,8bAAsFD,MAAM,KACzGE,SAAU,ySAAyDF,MAAM,KACzEG,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,gGACJC,IAAK,4GACLC,KAAM,wHAERqN,cAAe,uQACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,4DAAbD,GAA0C,mCAAbA,GAAqC,wEAAbA,EAChDC,EACe,wEAAbD,GAA4C,uBAAbA,EACjCC,EAAO,GAEPA,GAAQ,GAAKA,EAAOA,EAAO,IAGtCD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,IAAIgzH,EAAY,IAAPlzH,EAAaC,EAEtB,OAAIizH,EAAK,IACA,0DACEA,EAAK,IACP,iCACEA,EAAK,KACP,sEACEA,EAAK,KACP,qBACEA,EAAK,KACP,sEAEA,sBAGXzgI,SAAU,CACRC,QAAS,qEACTC,QAAS,+DACTC,SAAU,wFACVC,QAAS,kDACTC,SAAU,8FACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,oCACRC,KAAM,oCACNC,EAAG,sEACHC,GAAI,0CACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,wCACHC,GAAI,yBAENC,uBAAwB,yFACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAO9X,EAAS,4BAElB,IAAK,IACL,IAAK,IACH,OAAOA,EAAS,kCAElB,QACE,OAAOA,IAGbkM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,UAAM,MAE9B2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,KAAM,WAE9BP,KAAM,CAEJC,IAAK,EAELC,IAAK,KAnGuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEIjO,EAAOC,aAAa,QAAS,CAEtCC,OAAQ,8VAAsEC,MAAM,KACpFC,YAAa,8VAAsED,MAAM,KACzFE,SAAU,ySAAyDF,MAAM,KACzEG,cAAe,yJAAiCH,MAAM,KACtDI,YAAa,yJAAiCJ,MAAM,KACpDK,eAAgB,CACdC,GAAI,4BACJC,IAAK,+BACLC,EAAG,aACHC,GAAI,cACJC,IAAK,yCACLC,KAAM,gDAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,oBACTC,SAAU,sCACVC,QAAS,oBACTC,SAAU,4CACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,8BACRC,KAAM,oCACNC,EAAG,oDACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,8CACHC,GAAI,8BACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,yBAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAKrB8B,cAAe,4GACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,uBAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,6BAAbD,EACFC,EACe,yCAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,6BAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,qBACEA,EAAO,GACT,2BACEA,EAAO,GACT,uCACEA,EAAO,GACT,2BAEA,sBAGX7L,KAAM,CACJC,IAAK,EAELC,IAAK,KA/GuFC,CAAQ,EAAQ,U,qBCNhF,EAAQ,OAI1CkkJ,CAA4B,SAAS,SAAU51H,GAC7C,OAAO,SAAoB5b,EAAMyxI,EAAY75I,GAC3C,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,Q,qBCNxC,IAAI6xK,EAAY,EAAQ,QAGxB3xK,EAAOC,QAAU,SAAUgiB,EAAImnB,EAAMtpC,GAEnC,GADA6xK,EAAU1vJ,QACGnjB,IAATsqC,EAAoB,OAAOnnB,EAC/B,OAAQniB,GACN,KAAK,EAAG,OAAO,WACb,OAAOmiB,EAAGpqB,KAAKuxC,IAEjB,KAAK,EAAG,OAAO,SAAU3yB,GACvB,OAAOwL,EAAGpqB,KAAKuxC,EAAM3yB,IAEvB,KAAK,EAAG,OAAO,SAAUA,EAAGrhB,GAC1B,OAAO6sB,EAAGpqB,KAAKuxC,EAAM3yB,EAAGrhB,IAE1B,KAAK,EAAG,OAAO,SAAUqhB,EAAGrhB,EAAG2rB,GAC7B,OAAOkB,EAAGpqB,KAAKuxC,EAAM3yB,EAAGrhB,EAAG2rB,IAG/B,OAAO,WACL,OAAOkB,EAAGtmB,MAAMytC,EAAMxtC,c,kCCnB1B,IAAIg2K,EAAgB,EAAQ,QAExBC,EAAc,EAAQ,QAY1B7xK,EAAOC,QAAU,SAAuB06I,EAASm3B,GAC/C,OAAIn3B,IAAYi3B,EAAcE,GACrBD,EAAYl3B,EAASm3B,GAGvBA,I,wBCbA,SAAUl/K,GACjB,aAEA,SAAS0W,EAAUnU,EAAQoU,EAAe9O,GACxC,IAAIgP,EAAStU,EAAS,IAEtB,OAAQsF,GACN,IAAK,KASH,OAPEgP,GADa,IAAXtU,EACQ,UACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,UAEA,UAKd,IAAK,IACH,OAAOoU,EAAgB,eAAiB,eAE1C,IAAK,KASH,OAPEE,GADa,IAAXtU,EACQ,SACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,SAEA,SAKd,IAAK,IACH,OAAOoU,EAAgB,YAAc,cAEvC,IAAK,KASH,OAPEE,GADa,IAAXtU,EACQ,MACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,OAEA,OAKd,IAAK,KAOH,OALEsU,GADa,IAAXtU,EACQ,MAEA,OAKd,IAAK,KASH,OAPEsU,GADa,IAAXtU,EACQ,SACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,UAEA,UAKd,IAAK,KASH,OAPEsU,GADa,IAAXtU,EACQ,SACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,SAEA,UAOTvC,EAAOC,aAAa,KAAM,CACjCC,OAAQ,qFAAqFC,MAAM,KACnGC,YAAa,8DAA8DD,MAAM,KACjF6W,kBAAkB,EAClB3W,SAAU,iEAA4DF,MAAM,KAC5EG,cAAe,0CAAqCH,MAAM,KAC1DI,YAAa,4BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,eACTC,QAAS,eACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,wBAET,KAAK,EACH,MAAO,uBAET,KAAK,EACH,MAAO,sBAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,oBAGbzN,QAAS,oBACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACL,KAAK,EACH,MAAO,4BAET,KAAK,EACH,MAAO,gCAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,8BAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,WACNC,EAAG,cACHC,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG6U,EACH5U,GAAI4U,EACJ3U,EAAG,MACHC,GAAI0U,EACJzU,EAAG,SACHC,GAAIwU,EACJvU,EAAG,SACHC,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA7JuFC,CAAQ,EAAQ,U,qBCPlH,IAAIuK,EAAS,EAAQ,QAErBC,EAAOC,QAAUF,G,gJCoBN9J,EAAa,CACtBC,QAAS,sBACTC,KAAM,mBACNC,QAAS,sBACT27K,WAAY,yBACZC,YAAa,yBACbC,QAAS,uBAEA57K,EAAU,CACnB67K,iBAAkB,yBAClBC,yBAA0B,iCAC1BC,gBAAiB,sBACjB57K,aAAc,mBACd67K,aAAc,QACd57K,cAAe,oBACf67K,mBAAoB,yBACpBC,iBAAkB,uBAClBC,eAAgB,UAChBC,wBAAyB,gCACzB77K,aAAc,mBACdC,cAAe,oBACf8c,eAAgB,qBAChB++J,gCAAiC,CAAC,WAAY,4BAA4BxkK,KAAK,MAC/ElX,iBAAkB,wBAETC,EAAU,CACnB07K,+BAAgC,GAChCC,8BAA+B,KCvB7B,EAEJ,SAAUn7K,GAGR,SAASo7K,EAAoBl7K,GAC3B,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI+6K,EAAoB96K,gBAAiBJ,KAAaG,KAUtG,OARAF,EAAMI,SAAU,EAChBJ,EAAMK,gBAAkB,EACxBL,EAAMM,gBAAkB,EACxBN,EAAMshH,aAAe,EACrBthH,EAAMk7K,iBAAmBz8K,EAAQg8K,aACjCz6K,EAAMm7K,kBAAoB18K,EAAQg8K,aAClCz6K,EAAMo7K,mBAAoB,EAC1Bp7K,EAAMq7K,oBAAqB,EACpBr7K,EAmTT,OAhUA,YAAUi7K,EAAqBp7K,GAgB/Ba,OAAOC,eAAes6K,EAAqB,aAAc,CACvDr6K,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes6K,EAAqB,UAAW,CACpDr6K,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes6K,EAAqB,UAAW,CACpDr6K,IAAK,WACH,OAAOvB,GAETwB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAes6K,EAAqB,iBAAkB,CAC3Dr6K,IAAK,WACH,MAAO,CACL06K,aAAc,aAGdv6K,SAAU,aAGVw6K,kBAAmB,WACjB,OAAO,GAETC,mBAAoB,aAGpBC,mBAAoB,WAClB,OAAO,GAETC,mBAAoB,WAClB,MAAO,IAETC,kBAAmB,WACjB,OAAO,MAET1/J,SAAU,WACR,OAAO,GAET2/J,oBAAqB,WACnB,OAAO,GAET36K,aAAc,aAGdC,cAAe,aAGfC,aAAc,aAGdC,cAAe,aAGfqb,aAAc,aAGdo/J,gBAAiB,aAGjBx6K,YAAa,aAGby6K,eAAgB,aAGhBt/J,UAAW,eAKf3b,YAAY,EACZC,cAAc,IAGhBm6K,EAAoB35K,UAAU4qB,KAAO,WAC/BhsB,KAAKH,QAAQkc,SAAS5d,EAAWg8K,UACnCn6K,KAAK67K,qBAAoB,IAI7Bd,EAAoB35K,UAAUC,QAAU,WAClCrB,KAAKE,SACPF,KAAK+B,MAAMxD,EAAQm8K,gBAGjB16K,KAAKI,kBACPoB,aAAaxB,KAAKI,iBAClBJ,KAAK8B,4BAGH9B,KAAKohH,eACP7/G,qBAAqBvB,KAAKohH,cAC1BphH,KAAKohH,aAAe,IAIxB25D,EAAoB35K,UAAUK,KAAO,WACnC,IAAI3B,EAAQE,KAEZA,KAAKE,SAAU,EACfF,KAAKH,QAAQqB,gBACblB,KAAKH,QAAQgB,SAAS1C,EAAWG,SAEjC0B,KAAK0B,wBAAuB,WAC1B5B,EAAMD,QAAQgB,SAAS1C,EAAWE,MAElCyB,EAAMD,QAAQu7K,aAAaj9K,EAAW+7K,aAEtCp6K,EAAMmN,SAENnN,EAAMM,gBAAkBuB,YAAW,WACjC7B,EAAMgC,2BAENhC,EAAMD,QAAQyc,UAAUxc,EAAMD,QAAQ47K,qBAEtC37K,EAAMD,QAAQoB,iBACb9B,EAAQ27K,mCAIfC,EAAoB35K,UAAUW,MAAQ,SAAUslC,GAC9C,IAAIvnC,EAAQE,UAEG,IAAXqnC,IACFA,EAAS,IAGNrnC,KAAKE,UAKVF,KAAKE,SAAU,EACfF,KAAKH,QAAQmB,cAAcqmC,GAC3BrnC,KAAKH,QAAQgB,SAAS1C,EAAWC,SACjC4B,KAAKH,QAAQsB,YAAYhD,EAAWE,MACpC2B,KAAKH,QAAQ87K,gBAAgBx9K,EAAW+7K,aACxC34K,qBAAqBvB,KAAKG,iBAC1BH,KAAKG,gBAAkB,EACvBqB,aAAaxB,KAAKI,iBAClBJ,KAAKI,gBAAkBuB,YAAW,WAChC7B,EAAMD,QAAQ0c,eAEdzc,EAAMgC,2BAENhC,EAAMD,QAAQkB,aAAasmC,KAC1BloC,EAAQ07K,kCAGbE,EAAoB35K,UAAUa,OAAS,WACrC,OAAOjC,KAAKE,SAGd66K,EAAoB35K,UAAU06K,mBAAqB,WACjD,OAAO97K,KAAKg7K,kBAGdD,EAAoB35K,UAAU26K,mBAAqB,SAAU10I,GAC3DrnC,KAAKg7K,iBAAmB3zI,GAG1B0zI,EAAoB35K,UAAU46K,oBAAsB,WAClD,OAAOh8K,KAAKi7K,mBAGdF,EAAoB35K,UAAU66K,oBAAsB,SAAU50I,GAC5DrnC,KAAKi7K,kBAAoB5zI,GAG3B0zI,EAAoB35K,UAAU86K,oBAAsB,WAClD,OAAOl8K,KAAKk7K,mBAGdH,EAAoB35K,UAAUy6K,oBAAsB,SAAUM,GAC5Dn8K,KAAKk7K,kBAAoBiB,GAG3BpB,EAAoB35K,UAAU6L,OAAS,WACrC,IAAInN,EAAQE,KAERA,KAAKohH,cACP7/G,qBAAqBvB,KAAKohH,cAG5BphH,KAAKohH,aAAen+G,uBAAsB,WACxCnD,EAAMyjH,kBAENzjH,EAAMshH,aAAe,MAMzB25D,EAAoB35K,UAAUwpJ,YAAc,SAAUloJ,GAGpD,GAFc1C,KAAKH,QAAQ07K,mBAAmB74K,EAAIkC,OAAQrG,EAAQsd,iBAExB,KAA3B7b,KAAKi7K,kBAClBj7K,KAAK+B,MAAM/B,KAAKi7K,uBACX,CACL,IAAI5zI,EAASrnC,KAAKH,QAAQ27K,mBAAmB94K,GAEzC2kC,GACFrnC,KAAK+B,MAAMslC,KAOjB0zI,EAAoB35K,UAAUsb,cAAgB,SAAUha,GACtD,IAAIykJ,EAAsB,UAAZzkJ,EAAIC,KAAmC,KAAhBD,EAAIE,QAEzC,GAAKukJ,IAIQnnJ,KAAKH,QAAQ27K,mBAAmB94K,GAE7C,CAMA,IAAI05K,GAAap8K,KAAKH,QAAQ07K,mBAAmB74K,EAAIkC,OAAQrG,EAAQq8K,iCAEjEzzB,GAAWi1B,GACbp8K,KAAKH,QAAQy7K,uBAMjBP,EAAoB35K,UAAUi7K,sBAAwB,SAAU35K,IACnC,WAAZA,EAAIC,KAAoC,KAAhBD,EAAIE,UAED,KAA1B5C,KAAKg7K,kBACnBh7K,KAAK+B,MAAM/B,KAAKg7K,mBAIpBD,EAAoB35K,UAAUmiH,gBAAkB,WAC1CvjH,KAAKk7K,mBACPl7K,KAAKs8K,wBAGPt8K,KAAKu8K,4BAGPxB,EAAoB35K,UAAUU,yBAA2B,WACvD9B,KAAKI,gBAAkB,EACvBJ,KAAKH,QAAQsB,YAAYhD,EAAWG,SACpC0B,KAAKH,QAAQsB,YAAYhD,EAAWC,UAOtC28K,EAAoB35K,UAAUM,uBAAyB,SAAUsB,GAC/D,IAAIlD,EAAQE,KAEZuB,qBAAqBvB,KAAKG,iBAC1BH,KAAKG,gBAAkB8C,uBAAsB,WAC3CnD,EAAMK,gBAAkB,EACxBqB,aAAa1B,EAAMM,iBACnBN,EAAMM,gBAAkBuB,WAAWqB,EAAU,OAIjD+3K,EAAoB35K,UAAUk7K,sBAAwB,WAEpDt8K,KAAKH,QAAQsB,YAAYhD,EAAWg8K,SACpC,IAAIkB,EAAoBr7K,KAAKH,QAAQw7K,oBAEjCA,GACFr7K,KAAKH,QAAQgB,SAAS1C,EAAWg8K,SAG/BkB,IAAsBr7K,KAAKm7K,qBAC7Bn7K,KAAKH,QAAQ+7K,iBACb57K,KAAKm7K,mBAAqBE,IAI9BN,EAAoB35K,UAAUm7K,yBAA2B,WAEvDv8K,KAAKH,QAAQsB,YAAYhD,EAAW87K,YAEhCj6K,KAAKH,QAAQ67K,uBACf17K,KAAKH,QAAQgB,SAAS1C,EAAW87K,aAI9Bc,EAjUT,CAkUE,KCjUF,IAAI,EAAU,EAAoBx8K,QAE9B,EAEJ,SAAUoB,GAGR,SAAS68K,IACP,OAAkB,OAAX78K,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAiO7D,OApOA,YAAUw8K,EAAW78K,GAMrBa,OAAOC,eAAe+7K,EAAUp7K,UAAW,SAAU,CACnDV,IAAK,WACH,OAAOV,KAAK0E,WAAWzC,UAEzBtB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe+7K,EAAUp7K,UAAW,kBAAmB,CAC5DV,IAAK,WACH,OAAOV,KAAK0E,WAAWo3K,sBAEzBr2K,IAAK,SAAU4hC,GACbrnC,KAAK0E,WAAWq3K,mBAAmB10I,IAErC1mC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe+7K,EAAUp7K,UAAW,mBAAoB,CAC7DV,IAAK,WACH,OAAOV,KAAK0E,WAAWs3K,uBAEzBv2K,IAAK,SAAU4hC,GACbrnC,KAAK0E,WAAWu3K,oBAAoB50I,IAEtC1mC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe+7K,EAAUp7K,UAAW,mBAAoB,CAC7DV,IAAK,WACH,OAAOV,KAAK0E,WAAWw3K,uBAEzBz2K,IAAK,SAAU02K,GACbn8K,KAAK0E,WAAWm3K,oBAAoBM,IAEtCx7K,YAAY,EACZC,cAAc,IAGhB47K,EAAUz4K,SAAW,SAAUC,GAC7B,OAAO,IAAIw4K,EAAUx4K,IAGvBw4K,EAAUp7K,UAAU6C,WAAa,SAAU6kC,GACzC,IAAI2zI,EAAKrvK,OAEgB,IAArB07B,IACFA,EAAmB,SAAUt5B,EAAIktK,GAC/B,OAAO,IAAI,IAAUltK,EAAIktK,KAI7B,IAAIxnJ,EAAYl1B,KAAKgE,KAAKM,cAAc,EAAQk2K,oBAEhD,IAAKtlJ,EACH,MAAM,IAAI7yB,MAAM,+BAAiC,EAAQm4K,mBAAqB,sBAGhFx6K,KAAK28K,WAAaznJ,EAClBl1B,KAAK48K,SAAW58K,KAAKgE,KAAKM,cAAc,EAAQm2K,kBAChDz6K,KAAK68K,SAAW,GAAGj1K,MAAM7H,KAAKC,KAAKgE,KAAK6L,iBAAiB,EAAQyqK,kBACjEt6K,KAAK88K,eAAiB98K,KAAKgE,KAAKM,cAAc,IAAM,EAAQ+1K,yBAA2B,KACvFr6K,KAAKkpC,kBAAoBJ,EACzB9oC,KAAK+8K,eAAiB,GAEtB,IACE,IAAK,IAAIv0J,EAAK,YAASxoB,KAAK68K,UAAWp0J,EAAKD,EAAGsoB,QAASroB,EAAGsoB,KAAMtoB,EAAKD,EAAGsoB,OAAQ,CAC/E,IAAIksI,EAAWv0J,EAAGtY,MAClBnQ,KAAK+8K,eAAe/uK,KAAK,IAAI,IAAUgvK,KAEzC,MAAOC,GACPR,EAAM,CACJp/J,MAAO4/J,GAET,QACA,IACMx0J,IAAOA,EAAGsoB,OAAS3jC,EAAKob,EAAG00J,SAAS9vK,EAAGrN,KAAKyoB,GAChD,QACA,GAAIi0J,EAAK,MAAMA,EAAIp/J,SAKzBm/J,EAAUp7K,UAAUgD,mBAAqB,WACvC,ICrGoC+kC,EAAWL,EAAkBq0I,EDqG7Dr9K,EAAQE,KAEZA,KAAKspC,YCvG+BH,EDuGWnpC,KAAK28K,WCvGL7zI,EDuGiB9oC,KAAKkpC,kBCvGJi0I,EDuGuBn9K,KAAKo9K,2BAAwBp2K,ECtGhH8hC,EAAiBK,EAAW,CACjCg0I,eAAgBA,KDsGhBn9K,KAAKq9K,aAAer9K,KAAK0E,WAAWkmJ,YAAYp2I,KAAKxU,KAAK0E,YAC1D1E,KAAKwpC,eAAiBxpC,KAAK0E,WAAWgY,cAAclI,KAAKxU,KAAK0E,YAC9D1E,KAAKs9K,uBAAyBt9K,KAAK0E,WAAW23K,sBAAsB7nK,KAAKxU,KAAK0E,YAC9E1E,KAAKu9K,cAAgBv9K,KAAKiN,OAAOuH,KAAKxU,MACtC,IAAIw9K,EAAgB,CAAC,SAAU,qBAE/Bx9K,KAAKy9K,eAAiB,WACpBD,EAAcxtK,SAAQ,SAAUu0G,GAC9B,OAAOttG,OAAOnR,iBAAiBy+G,EAASzkH,EAAMy9K,kBAEhDnmK,SAAStR,iBAAiB,UAAWhG,EAAMw9K,yBAG7Ct9K,KAAK09K,eAAiB,WACpBF,EAAcxtK,SAAQ,SAAUu0G,GAC9B,OAAOttG,OAAOlR,oBAAoBw+G,EAASzkH,EAAMy9K,kBAEnDnmK,SAASrR,oBAAoB,UAAWjG,EAAMw9K,yBAGhDt9K,KAAK4F,OAAO,QAAS5F,KAAKq9K,cAC1Br9K,KAAK4F,OAAO,UAAW5F,KAAKwpC,gBAC5BxpC,KAAK4F,OAAO,EAAQ7G,cAAeiB,KAAKy9K,gBACxCz9K,KAAK4F,OAAO,EAAQjH,cAAeqB,KAAK09K,iBAG1ClB,EAAUp7K,UAAUC,QAAU,WAC5BrB,KAAK6F,SAAS,QAAS7F,KAAKq9K,cAC5Br9K,KAAK6F,SAAS,UAAW7F,KAAKwpC,gBAC9BxpC,KAAK6F,SAAS,EAAQ9G,cAAeiB,KAAKy9K,gBAC1Cz9K,KAAK6F,SAAS,EAAQlH,cAAeqB,KAAK09K,gBAC1C19K,KAAK09K,iBACL19K,KAAK+8K,eAAe/sK,SAAQ,SAAU4nK,GACpC,OAAOA,EAAOv2K,aAGhB1B,EAAOyB,UAAUC,QAAQtB,KAAKC,OAGhCw8K,EAAUp7K,UAAU6L,OAAS,WAC3BjN,KAAK0E,WAAWuI,UAGlBuvK,EAAUp7K,UAAUK,KAAO,WACzBzB,KAAK0E,WAAWjD,QAGlB+6K,EAAUp7K,UAAUW,MAAQ,SAAUslC,QACrB,IAAXA,IACFA,EAAS,IAGXrnC,KAAK0E,WAAW3C,MAAMslC,IAGxBm1I,EAAUp7K,UAAU+D,qBAAuB,WACzC,IAAIrF,EAAQE,KAyEZ,OAAO,IAAI,EArEG,CACZo7K,aAAc,SAAUh2K,GACtB,OAAOgS,SAASyY,KAAKxqB,UAAUC,IAAIF,IAErCvE,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCi2K,kBAAmB,WACjB,OCpK0B9Z,EDoKIzhK,EAAM+8K,SCnKtCc,EAAO,IAAIz7G,IACf,GAAGlyD,QAAQjQ,KAAKwhK,GAAK,SAAU/xJ,GAC7B,OAAOmuK,EAAKr4K,IAAIkK,EAAG6lD,cAEdsoH,EAAKrsH,KAAO,EALd,IAA2BiwG,EAC5Boc,GDqKArC,mBAAoB,WAClB,OAAOx7K,EAAMg9K,gBAAkBh9K,EAAMg9K,eAAejjJ,SAEtD0hJ,mBAAoB,SAAU32K,EAAQ27B,GACpC,QAAO37B,GAAS,YAAQA,EAAQ27B,IAElCi7I,mBAAoB,SAAU94K,GAC5B,IAAKA,EAAIkC,OACP,MAAO,GAGT,IAAImY,EAAU,YAAQra,EAAIkC,OAAQ,IAAM,EAAQw1K,iBAAmB,KACnE,OAAOr9J,GAAWA,EAAQ1Z,aAAa,EAAQ+2K,mBAEjDqB,kBAAmB,WACjB,OAAO37K,EAAMs9K,sBAEfrhK,SAAU,SAAU3W,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAU4rB,SAAS7rB,IAEvCs2K,oBAAqB,WACnB,SC9LqBlsK,ED8LI1P,EAAM88K,WC7LzBptK,EAAGs6E,aAAet6E,EAAGisB,aAD5B,IAAsBjsB,GDgMvBzO,aAAc,SAAUsmC,GACtB,OAAOvnC,EAAMyF,KAAK,EAAQ7G,aAAc2oC,EAAS,CAC/CA,OAAQA,GACN,KAENrmC,cAAe,SAAUqmC,GACvB,OAAOvnC,EAAMyF,KAAK,EAAQ5G,cAAe0oC,EAAS,CAChDA,OAAQA,GACN,KAENpmC,aAAc,WACZ,OAAOnB,EAAMyF,KAAK,EAAQzG,aAAc,KAE1CoC,cAAe,WACb,OAAOpB,EAAMyF,KAAK,EAAQxG,cAAe,KAE3Cwd,aAAc,WACZ,OAAOzc,EAAMwpC,WAAW/sB,gBAE1Bo/J,gBAAiB,SAAUv2K,GACzB,OAAOgS,SAASyY,KAAKxqB,UAAUG,OAAOJ,IAExCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErCw2K,eAAgB,WACd97K,EAAM+8K,SAAS/uI,UAEfhuC,EAAM+8K,SAAS7sK,SAAQ,SAAU6zC,GAC/BA,EAAOkmC,cAAcnkE,YAAYi+B,OAGrCvnC,UAAW,WACT,OAAOxc,EAAMwpC,WAAWhtB,gBAM9BkgK,EAAUp7K,UAAUg8K,mBAAqB,WACvC,OAAOhmK,SAAS9S,cAAc,IAAM,EAAQq2K,wBAA0B,MAGjE6B,EArOT,CAsOE,M,sBE9PO,SAAU1hL,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,0KAAwCC,MAAM,KACtDC,YAAa,qGAAyCD,MAAM,KAC5DE,SAAU,uIAA8BF,MAAM,KAC9CG,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,mDAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,2BACJC,IAAK,iCACLC,KAAM,qCACNisB,EAAG,WACHy5H,GAAI,2BACJC,IAAK,iCACLz/E,KAAM,sCAER74D,cAAe,gFACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,iBAAbD,GAAkC,iBAAbA,GAAkC,iBAAbA,EACrCC,EACe,iBAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,iBAAbD,GAAkC,iBAAbA,EACvBC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,IAAIgzH,EAAY,IAAPlzH,EAAaC,EAEtB,OAAIizH,EAAK,IACA,eACEA,EAAK,IACP,eACEA,EAAK,KACP,eACEA,EAAK,KACP,eACEA,EAAK,KACP,eAEA,gBAGXzgI,SAAU,CACRC,QAAS,oBACTC,QAAS,oBACTC,SAAU,kBACVC,QAAS,oBACTC,SAAU,kBACVC,SAAU,KAEZgB,uBAAwB,gCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAO9X,EAAS,SAElB,IAAK,IACH,OAAOA,EAAS,SAElB,IAAK,IACL,IAAK,IACH,OAAOA,EAAS,SAElB,QACE,OAAOA,IAGbjB,aAAc,CACZC,OAAQ,WACRC,KAAM,WACNC,EAAG,eACHC,GAAI,YACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,WACHC,GAAI,YACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,WACHC,GAAI,eA9FwFQ,CAAQ,EAAQ,U,qBCDlH,IAAIkgL,EAAW,SAAUz1K,GACvB,aAEA,IAEInB,EAFA62K,EAAKr9K,OAAOY,UACZutC,EAASkvI,EAAGtjK,eAEZujK,EAA4B,oBAAX7nK,OAAwBA,OAAS,GAClD8nK,EAAiBD,EAAQjtI,UAAY,aACrCmtI,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQK,aAAe,gBAE/C,SAAS/tG,EAAOt1D,EAAKnY,EAAKwN,GAOxB,OANA3P,OAAOC,eAAeqa,EAAKnY,EAAK,CAC9BwN,MAAOA,EACPxP,YAAY,EACZC,cAAc,EACd2pC,UAAU,IAELzvB,EAAInY,GAEb,IAEEytE,EAAO,GAAI,IACX,MAAO/4D,GACP+4D,EAAS,SAASt1D,EAAKnY,EAAKwN,GAC1B,OAAO2K,EAAInY,GAAOwN,GAItB,SAAS6S,EAAKo7J,EAASC,EAAS9yJ,EAAM+yJ,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQj9K,qBAAqBo9K,EAAYH,EAAUG,EAC/E3gE,EAAYr9G,OAAO4lC,OAAOm4I,EAAen9K,WACzCmjB,EAAU,IAAI+1F,EAAQgkE,GAAe,IAMzC,OAFAzgE,EAAU4gE,QAsMZ,SAA0BL,EAAS7yJ,EAAMhH,GACvC,IAAI+gB,EAAQo5I,EAEZ,OAAO,SAAgBjuH,EAAQ3rB,GAC7B,GAAIQ,IAAUq5I,EACZ,MAAM,IAAIt8K,MAAM,gCAGlB,GAAIijC,IAAUs5I,EAAmB,CAC/B,GAAe,UAAXnuH,EACF,MAAM3rB,EAKR,OAAO+5I,IAMT,IAHAt6J,EAAQksC,OAASA,EACjBlsC,EAAQugB,IAAMA,IAED,CACX,IAAIu2C,EAAW92D,EAAQ82D,SACvB,GAAIA,EAAU,CACZ,IAAIyjG,EAAiBC,EAAoB1jG,EAAU92D,GACnD,GAAIu6J,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBv6J,EAAQksC,OAGVlsC,EAAQjX,KAAOiX,EAAQ06J,MAAQ16J,EAAQugB,SAElC,GAAuB,UAAnBvgB,EAAQksC,OAAoB,CACrC,GAAInrB,IAAUo5I,EAEZ,MADAp5I,EAAQs5I,EACFr6J,EAAQugB,IAGhBvgB,EAAQ26J,kBAAkB36J,EAAQugB,SAEN,WAAnBvgB,EAAQksC,QACjBlsC,EAAQ46J,OAAO,SAAU56J,EAAQugB,KAGnCQ,EAAQq5I,EAER,IAAIS,EAASC,EAASjB,EAAS7yJ,EAAMhH,GACrC,GAAoB,WAAhB66J,EAAOprK,KAAmB,CAO5B,GAJAsxB,EAAQ/gB,EAAQwsB,KACZ6tI,EACAU,EAEAF,EAAOt6I,MAAQk6I,EACjB,SAGF,MAAO,CACL7uK,MAAOivK,EAAOt6I,IACdiM,KAAMxsB,EAAQwsB,MAGS,UAAhBquI,EAAOprK,OAChBsxB,EAAQs5I,EAGRr6J,EAAQksC,OAAS,QACjBlsC,EAAQugB,IAAMs6I,EAAOt6I,OA9QPy6I,CAAiBnB,EAAS7yJ,EAAMhH,GAE7Cs5F,EAcT,SAASwhE,EAASl1J,EAAIrP,EAAKgqB,GACzB,IACE,MAAO,CAAE9wB,KAAM,SAAU8wB,IAAK3a,EAAGpqB,KAAK+a,EAAKgqB,IAC3C,MAAOztB,GACP,MAAO,CAAErD,KAAM,QAAS8wB,IAAKztB,IAhBjClP,EAAQ6a,KAAOA,EAoBf,IAAI07J,EAAyB,iBACzBY,EAAyB,iBACzBX,EAAoB,YACpBC,EAAoB,YAIpBI,EAAmB,GAMvB,SAASR,KACT,SAASgB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkB3B,GAAkB,WAClC,OAAO/9K,MAGT,IAAI2/K,EAAWn/K,OAAOi1C,eAClBmqI,EAA0BD,GAAYA,EAASA,EAAS5tI,EAAO,MAC/D6tI,GACAA,IAA4B/B,GAC5BlvI,EAAO5uC,KAAK6/K,EAAyB7B,KAGvC2B,EAAoBE,GAGtB,IAAIC,EAAKJ,EAA2Br+K,UAClCo9K,EAAUp9K,UAAYZ,OAAO4lC,OAAOs5I,GAWtC,SAASI,EAAsB1+K,GAC7B,CAAC,OAAQ,QAAS,UAAU4O,SAAQ,SAASygD,GAC3C2f,EAAOhvE,EAAWqvD,GAAQ,SAAS3rB,GACjC,OAAO9kC,KAAKy+K,QAAQhuH,EAAQ3rB,SAkClC,SAASi7I,EAAcliE,EAAWmiE,GAChC,SAASC,EAAOxvH,EAAQ3rB,EAAK89B,EAAS58B,GACpC,IAAIo5I,EAASC,EAASxhE,EAAUptD,GAASotD,EAAW/4E,GACpD,GAAoB,UAAhBs6I,EAAOprK,KAEJ,CACL,IAAIrC,EAASytK,EAAOt6I,IAChB30B,EAAQwB,EAAOxB,MACnB,OAAIA,GACiB,kBAAVA,GACPw+B,EAAO5uC,KAAKoQ,EAAO,WACd6vK,EAAYp9G,QAAQzyD,EAAM+vK,SAASx9G,MAAK,SAASvyD,GACtD8vK,EAAO,OAAQ9vK,EAAOyyD,EAAS58B,MAC9B,SAAS3uB,GACV4oK,EAAO,QAAS5oK,EAAKurD,EAAS58B,MAI3Bg6I,EAAYp9G,QAAQzyD,GAAOuyD,MAAK,SAASy9G,GAI9CxuK,EAAOxB,MAAQgwK,EACfv9G,EAAQjxD,MACP,SAAS0L,GAGV,OAAO4iK,EAAO,QAAS5iK,EAAOulD,EAAS58B,MAvBzCA,EAAOo5I,EAAOt6I,KA4BlB,IAAIs7I,EAgCJpgL,KAAKy+K,QA9BL,SAAiBhuH,EAAQ3rB,GACvB,SAASu7I,IACP,OAAO,IAAIL,GAAY,SAASp9G,EAAS58B,GACvCi6I,EAAOxvH,EAAQ3rB,EAAK89B,EAAS58B,MAIjC,OAAOo6I,EAaLA,EAAkBA,EAAgB19G,KAChC29G,EAGAA,GACEA,KAkHV,SAAStB,EAAoB1jG,EAAU92D,GACrC,IAAIksC,EAAS4qB,EAASxqC,SAAStsB,EAAQksC,QACvC,GAAIA,IAAWzpD,EAAW,CAKxB,GAFAud,EAAQ82D,SAAW,KAEI,UAAnB92D,EAAQksC,OAAoB,CAE9B,GAAI4qB,EAASxqC,SAAiB,SAG5BtsB,EAAQksC,OAAS,SACjBlsC,EAAQugB,IAAM99B,EACd+3K,EAAoB1jG,EAAU92D,GAEP,UAAnBA,EAAQksC,QAGV,OAAOuuH,EAIXz6J,EAAQksC,OAAS,QACjBlsC,EAAQugB,IAAM,IAAI7Z,UAChB,kDAGJ,OAAO+zJ,EAGT,IAAII,EAASC,EAAS5uH,EAAQ4qB,EAASxqC,SAAUtsB,EAAQugB,KAEzD,GAAoB,UAAhBs6I,EAAOprK,KAIT,OAHAuQ,EAAQksC,OAAS,QACjBlsC,EAAQugB,IAAMs6I,EAAOt6I,IACrBvgB,EAAQ82D,SAAW,KACZ2jG,EAGT,IAAIsB,EAAOlB,EAAOt6I,IAElB,OAAMw7I,EAOFA,EAAKvvI,MAGPxsB,EAAQ82D,EAASklG,YAAcD,EAAKnwK,MAGpCoU,EAAQusB,KAAOuqC,EAASmlG,QAQD,WAAnBj8J,EAAQksC,SACVlsC,EAAQksC,OAAS,OACjBlsC,EAAQugB,IAAM99B,GAUlBud,EAAQ82D,SAAW,KACZ2jG,GANEsB,GA3BP/7J,EAAQksC,OAAS,QACjBlsC,EAAQugB,IAAM,IAAI7Z,UAAU,oCAC5B1G,EAAQ82D,SAAW,KACZ2jG,GAoDX,SAASyB,EAAaC,GACpB,IAAItwI,EAAQ,CAAEuwI,OAAQD,EAAK,IAEvB,KAAKA,IACPtwI,EAAMwwI,SAAWF,EAAK,IAGpB,KAAKA,IACPtwI,EAAMywI,WAAaH,EAAK,GACxBtwI,EAAM0wI,SAAWJ,EAAK,IAGxB1gL,KAAK+gL,WAAW/yK,KAAKoiC,GAGvB,SAAS4wI,EAAc5wI,GACrB,IAAIgvI,EAAShvI,EAAM6wI,YAAc,GACjC7B,EAAOprK,KAAO,gBACPorK,EAAOt6I,IACdsL,EAAM6wI,WAAa7B,EAGrB,SAAS9kE,EAAQgkE,GAIft+K,KAAK+gL,WAAa,CAAC,CAAEJ,OAAQ,SAC7BrC,EAAYtuK,QAAQywK,EAAczgL,MAClCA,KAAK8yE,OAAM,GA8Bb,SAAS/gC,EAAOmvI,GACd,GAAIA,EAAU,CACZ,IAAIjwI,EAAiBiwI,EAASnD,GAC9B,GAAI9sI,EACF,OAAOA,EAAelxC,KAAKmhL,GAG7B,GAA6B,oBAAlBA,EAASpwI,KAClB,OAAOowI,EAGT,IAAK/oK,MAAM+oK,EAASl5K,QAAS,CAC3B,IAAIZ,GAAK,EAAG0pC,EAAO,SAASA,IAC1B,OAAS1pC,EAAI85K,EAASl5K,QACpB,GAAI2mC,EAAO5uC,KAAKmhL,EAAU95K,GAGxB,OAFA0pC,EAAK3gC,MAAQ+wK,EAAS95K,GACtB0pC,EAAKC,MAAO,EACLD,EAOX,OAHAA,EAAK3gC,MAAQnJ,EACb8pC,EAAKC,MAAO,EAELD,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAM+tI,GAIjB,SAASA,IACP,MAAO,CAAE1uK,MAAOnJ,EAAW+pC,MAAM,GA+MnC,OA5mBAyuI,EAAkBp+K,UAAYy+K,EAAGlmK,YAAc8lK,EAC/CA,EAA2B9lK,YAAc6lK,EACzCA,EAAkB2B,YAAc/wG,EAC9BqvG,EACAvB,EACA,qBAaF/1K,EAAQi5K,oBAAsB,SAASC,GACrC,IAAIz4G,EAAyB,oBAAXy4G,GAAyBA,EAAO1nK,YAClD,QAAOivD,IACHA,IAAS42G,GAG2B,uBAAnC52G,EAAKu4G,aAAev4G,EAAK/qD,QAIhC1V,EAAQm5K,KAAO,SAASD,GAQtB,OAPI7gL,OAAO6Y,eACT7Y,OAAO6Y,eAAegoK,EAAQ5B,IAE9B4B,EAAO3rI,UAAY+pI,EACnBrvG,EAAOixG,EAAQnD,EAAmB,sBAEpCmD,EAAOjgL,UAAYZ,OAAO4lC,OAAOy5I,GAC1BwB,GAOTl5K,EAAQo5K,MAAQ,SAASz8I,GACvB,MAAO,CAAEo7I,QAASp7I,IAsEpBg7I,EAAsBC,EAAc3+K,WACpC2+K,EAAc3+K,UAAU48K,GAAuB,WAC7C,OAAOh+K,MAETmI,EAAQ43K,cAAgBA,EAKxB53K,EAAQq5K,MAAQ,SAASpD,EAASC,EAAS9yJ,EAAM+yJ,EAAa0B,QACxC,IAAhBA,IAAwBA,EAAch9G,SAE1C,IAAIy+G,EAAO,IAAI1B,EACb/8J,EAAKo7J,EAASC,EAAS9yJ,EAAM+yJ,GAC7B0B,GAGF,OAAO73K,EAAQi5K,oBAAoB/C,GAC/BoD,EACAA,EAAK3wI,OAAO4xB,MAAK,SAAS/wD,GACxB,OAAOA,EAAOo/B,KAAOp/B,EAAOxB,MAAQsxK,EAAK3wI,WAuKjDgvI,EAAsBD,GAEtBzvG,EAAOyvG,EAAI3B,EAAmB,aAO9B2B,EAAG9B,GAAkB,WACnB,OAAO/9K,MAGT6/K,EAAG/mK,SAAW,WACZ,MAAO,sBAkCT3Q,EAAQuO,KAAO,SAASuG,GACtB,IAAIvG,EAAO,GACX,IAAK,IAAI/T,KAAOsa,EACdvG,EAAK1I,KAAKrL,GAMZ,OAJA+T,EAAKo3B,UAIE,SAASgD,IACd,KAAOp6B,EAAK1O,QAAQ,CAClB,IAAIrF,EAAM+T,EAAK2yC,MACf,GAAI1mD,KAAOsa,EAGT,OAFA6zB,EAAK3gC,MAAQxN,EACbmuC,EAAKC,MAAO,EACLD,EAQX,OADAA,EAAKC,MAAO,EACLD,IAsCX3oC,EAAQ4pC,OAASA,EAMjBuoE,EAAQl5G,UAAY,CAClBuY,YAAa2gG,EAEbxnC,MAAO,SAAS4uG,GAcd,GAbA1hL,KAAK88C,KAAO,EACZ98C,KAAK8wC,KAAO,EAGZ9wC,KAAKsN,KAAOtN,KAAKi/K,MAAQj4K,EACzBhH,KAAK+wC,MAAO,EACZ/wC,KAAKq7E,SAAW,KAEhBr7E,KAAKywD,OAAS,OACdzwD,KAAK8kC,IAAM99B,EAEXhH,KAAK+gL,WAAW/wK,QAAQgxK,IAEnBU,EACH,IAAK,IAAI7jK,KAAQ7d,KAEQ,MAAnB6d,EAAK9L,OAAO,IACZ48B,EAAO5uC,KAAKC,KAAM6d,KACjB1F,OAAO0F,EAAKjW,MAAM,MACrB5H,KAAK6d,GAAQ7W,IAMrB87B,KAAM,WACJ9iC,KAAK+wC,MAAO,EAEZ,IACI4wI,EADY3hL,KAAK+gL,WAAW,GACLE,WAC3B,GAAwB,UAApBU,EAAW3tK,KACb,MAAM2tK,EAAW78I,IAGnB,OAAO9kC,KAAK4hL,MAGd1C,kBAAmB,SAAS2C,GAC1B,GAAI7hL,KAAK+wC,KACP,MAAM8wI,EAGR,IAAIt9J,EAAUvkB,KACd,SAAS8hL,EAAOC,EAAKC,GAYnB,OAXA5C,EAAOprK,KAAO,QACdorK,EAAOt6I,IAAM+8I,EACbt9J,EAAQusB,KAAOixI,EAEXC,IAGFz9J,EAAQksC,OAAS,OACjBlsC,EAAQugB,IAAM99B,KAGNg7K,EAGZ,IAAK,IAAI56K,EAAIpH,KAAK+gL,WAAW/4K,OAAS,EAAGZ,GAAK,IAAKA,EAAG,CACpD,IAAIgpC,EAAQpwC,KAAK+gL,WAAW35K,GACxBg4K,EAAShvI,EAAM6wI,WAEnB,GAAqB,SAAjB7wI,EAAMuwI,OAIR,OAAOmB,EAAO,OAGhB,GAAI1xI,EAAMuwI,QAAU3gL,KAAK88C,KAAM,CAC7B,IAAImlI,EAAWtzI,EAAO5uC,KAAKqwC,EAAO,YAC9B8xI,EAAavzI,EAAO5uC,KAAKqwC,EAAO,cAEpC,GAAI6xI,GAAYC,EAAY,CAC1B,GAAIliL,KAAK88C,KAAO1M,EAAMwwI,SACpB,OAAOkB,EAAO1xI,EAAMwwI,UAAU,GACzB,GAAI5gL,KAAK88C,KAAO1M,EAAMywI,WAC3B,OAAOiB,EAAO1xI,EAAMywI,iBAGjB,GAAIoB,GACT,GAAIjiL,KAAK88C,KAAO1M,EAAMwwI,SACpB,OAAOkB,EAAO1xI,EAAMwwI,UAAU,OAG3B,KAAIsB,EAMT,MAAM,IAAI7/K,MAAM,0CALhB,GAAIrC,KAAK88C,KAAO1M,EAAMywI,WACpB,OAAOiB,EAAO1xI,EAAMywI,gBAU9B1B,OAAQ,SAASnrK,EAAM8wB,GACrB,IAAK,IAAI19B,EAAIpH,KAAK+gL,WAAW/4K,OAAS,EAAGZ,GAAK,IAAKA,EAAG,CACpD,IAAIgpC,EAAQpwC,KAAK+gL,WAAW35K,GAC5B,GAAIgpC,EAAMuwI,QAAU3gL,KAAK88C,MACrBnO,EAAO5uC,KAAKqwC,EAAO,eACnBpwC,KAAK88C,KAAO1M,EAAMywI,WAAY,CAChC,IAAIsB,EAAe/xI,EACnB,OAIA+xI,IACU,UAATnuK,GACS,aAATA,IACDmuK,EAAaxB,QAAU77I,GACvBA,GAAOq9I,EAAatB,aAGtBsB,EAAe,MAGjB,IAAI/C,EAAS+C,EAAeA,EAAalB,WAAa,GAItD,OAHA7B,EAAOprK,KAAOA,EACdorK,EAAOt6I,IAAMA,EAETq9I,GACFniL,KAAKywD,OAAS,OACdzwD,KAAK8wC,KAAOqxI,EAAatB,WAClB7B,GAGFh/K,KAAKy8D,SAAS2iH,IAGvB3iH,SAAU,SAAS2iH,EAAQ0B,GACzB,GAAoB,UAAhB1B,EAAOprK,KACT,MAAMorK,EAAOt6I,IAcf,MAXoB,UAAhBs6I,EAAOprK,MACS,aAAhBorK,EAAOprK,KACThU,KAAK8wC,KAAOsuI,EAAOt6I,IACM,WAAhBs6I,EAAOprK,MAChBhU,KAAK4hL,KAAO5hL,KAAK8kC,IAAMs6I,EAAOt6I,IAC9B9kC,KAAKywD,OAAS,SACdzwD,KAAK8wC,KAAO,OACa,WAAhBsuI,EAAOprK,MAAqB8sK,IACrC9gL,KAAK8wC,KAAOgwI,GAGP9B,GAGToD,OAAQ,SAASvB,GACf,IAAK,IAAIz5K,EAAIpH,KAAK+gL,WAAW/4K,OAAS,EAAGZ,GAAK,IAAKA,EAAG,CACpD,IAAIgpC,EAAQpwC,KAAK+gL,WAAW35K,GAC5B,GAAIgpC,EAAMywI,aAAeA,EAGvB,OAFA7gL,KAAKy8D,SAASrsB,EAAM6wI,WAAY7wI,EAAM0wI,UACtCE,EAAc5wI,GACP4uI,IAKb,MAAS,SAAS2B,GAChB,IAAK,IAAIv5K,EAAIpH,KAAK+gL,WAAW/4K,OAAS,EAAGZ,GAAK,IAAKA,EAAG,CACpD,IAAIgpC,EAAQpwC,KAAK+gL,WAAW35K,GAC5B,GAAIgpC,EAAMuwI,SAAWA,EAAQ,CAC3B,IAAIvB,EAAShvI,EAAM6wI,WACnB,GAAoB,UAAhB7B,EAAOprK,KAAkB,CAC3B,IAAIquK,EAASjD,EAAOt6I,IACpBk8I,EAAc5wI,GAEhB,OAAOiyI,GAMX,MAAM,IAAIhgL,MAAM,0BAGlBigL,cAAe,SAASpB,EAAUX,EAAYC,GAa5C,OAZAxgL,KAAKq7E,SAAW,CACdxqC,SAAUkB,EAAOmvI,GACjBX,WAAYA,EACZC,QAASA,GAGS,SAAhBxgL,KAAKywD,SAGPzwD,KAAK8kC,IAAM99B,GAGNg4K,IAQJ72K,EA7sBK,CAotBiBD,EAAOC,SAGtC,IACEo6K,mBAAqB3E,EACrB,MAAO4E,GAUPnsI,SAAS,IAAK,yBAAdA,CAAwCunI,K,kCCxuB1C,IAAIjyJ,EAAQ,EAAQ,QAEpB,SAAS82J,IACPziL,KAAKo6C,SAAW,GAYlBqoI,EAAmBrhL,UAAUw9D,IAAM,SAAak/C,EAAWC,EAAU5mG,GAOnE,OANAnX,KAAKo6C,SAASpsC,KAAK,CACjB8vG,UAAWA,EACXC,SAAUA,EACV2kE,cAAavrK,GAAUA,EAAQurK,YAC/BC,QAASxrK,EAAUA,EAAQwrK,QAAU,OAEhC3iL,KAAKo6C,SAASpyC,OAAS,GAShCy6K,EAAmBrhL,UAAUwhL,MAAQ,SAAextI,GAC9Cp1C,KAAKo6C,SAAShF,KAChBp1C,KAAKo6C,SAAShF,GAAM,OAaxBqtI,EAAmBrhL,UAAU4O,QAAU,SAAiBma,GACtDwB,EAAM3b,QAAQhQ,KAAKo6C,UAAU,SAAwBz9C,GACzC,OAANA,GACFwtB,EAAGxtB,OAKTuL,EAAOC,QAAUs6K,G,sBCjDR,SAAU3nL,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,uKAA8IC,MAAM,KAC5JC,YAAa,gEAAiDD,MAAM,KACpEE,SAAU,yDAA+CF,MAAM,KAC/DG,cAAe,mCAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,2BACJC,IAAK,kDACLC,KAAM,wDAERC,SAAU,CACRC,QAAS,yBACTC,QAAS,2BACTC,SAAU,+BACVC,QAAS,2BACTC,SAAU,6CACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,oBACRC,KAAM,uBACNC,EAAG,kBACHC,GAAI,aACJC,EAAG,eACHC,GAAI,YACJC,EAAG,uBACHC,GAAI,oBACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJC,EAAG,YACHC,GAAI,UAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KA7CuFC,CAAQ,EAAQ,U,gJCgB9Ga,EAAU,CACZskL,wBAAyB,8BAEvB1kL,EAAa,CACf4wK,SAAU,sBACVtzJ,KAAM,aCDJ,EAEJ,SAAU9b,GAGR,SAASmjL,EAAmBjjL,GAC1B,OAAOF,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI8iL,EAAmB7iL,gBAAiBJ,KAAaG,KA8ClG,OAjDA,YAAU8iL,EAAoBnjL,GAM9Ba,OAAOC,eAAeqiL,EAAoB,aAAc,CACtDpiL,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqiL,EAAoB,UAAW,CACnDpiL,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeqiL,EAAoB,iBAAkB,CAC1DpiL,IAAK,WACH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb4hL,yBAA0B,eAK9BpiL,YAAY,EACZC,cAAc,IAGhBkiL,EAAmB1hL,UAAU0yK,YAAc,SAAUr+I,GACnD,IAAIs5I,EAAW+T,EAAmB3kL,WAAW4wK,SAC7C/uK,KAAKH,QAAQkjL,yBAAyBttJ,GAElCA,EACFz1B,KAAKH,QAAQgB,SAASkuK,GAEtB/uK,KAAKH,QAAQsB,YAAY4tK,IAItB+T,EAlDT,CAmDE,KClDE,EAEJ,SAAUnjL,GAGR,SAASqjL,IACP,IAAIljL,EAAmB,OAAXH,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAGhE,OADAF,EAAMmjL,QAAUnjL,EAAM+3K,gBACf/3K,EA+GT,OArHA,YAAUkjL,EAAUrjL,GASpBqjL,EAASj/K,SAAW,SAAUC,GAC5B,OAAO,IAAIg/K,EAASh/K,IAGtBxD,OAAOC,eAAeuiL,EAAS5hL,UAAW,UAAW,CACnDV,IAAK,WACH,OAAOV,KAAKkjL,eAAetyK,SAE7BnL,IAAK,SAAUmL,GACb5Q,KAAKkjL,eAAetyK,QAAUA,GAEhCjQ,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeuiL,EAAS5hL,UAAW,WAAY,CACpDV,IAAK,WACH,OAAOV,KAAKkjL,eAAeztJ,UAE7BhwB,IAAK,SAAUgwB,GACbz1B,KAAK0E,WAAWovK,YAAYr+I,IAE9B90B,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeuiL,EAAS5hL,UAAW,QAAS,CACjDV,IAAK,WACH,OAAOV,KAAKkjL,eAAe/yK,OAE7B1K,IAAK,SAAU0K,GACbnQ,KAAKkjL,eAAe/yK,MAAQA,GAE9BxP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeuiL,EAAS5hL,UAAW,SAAU,CAClDV,IAAK,WACH,OAAOV,KAAKijL,SAEdtiL,YAAY,EACZC,cAAc,IAGhBoiL,EAAS5hL,UAAUC,QAAU,WAC3BrB,KAAKijL,QAAQ5hL,UAEb1B,EAAOyB,UAAUC,QAAQtB,KAAKC,OAGhCgjL,EAAS5hL,UAAU+D,qBAAuB,WACxC,IAAIrF,EAAQE,KAeZ,OAAO,IAAI,EAXG,CACZa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErC29K,yBAA0B,SAAUttJ,GAClC,OAAO31B,EAAMojL,eAAeztJ,SAAWA,MAM7CutJ,EAAS5hL,UAAUy2K,cAAgB,WACjC,IAAI/3K,EAAQE,KAKRH,EAAU,YAAS,YAAS,GAAI,IAAU84K,cAAc34K,OAAQ,CAClE+iH,2BAA4B,SAAUwB,EAAS5+G,GAC7C,OAAO7F,EAAMojL,eAAep9K,iBAAiBy+G,EAAS5+G,EAAS,gBAEjE68G,6BAA8B,SAAU+B,EAAS5+G,GAC/C,OAAO7F,EAAMojL,eAAen9K,oBAAoBw+G,EAAS5+G,EAAS,gBAIpEg9G,gBAAiB,WACf,OAAO,GAETE,YAAa,WACX,OAAO,KAKX,OAAO,IAAI,IAAU7iH,KAAKgE,KAAM,IAAI,IAAoBnE,KAG1DW,OAAOC,eAAeuiL,EAAS5hL,UAAW,iBAAkB,CAC1DV,IAAK,WACH,IAAImiL,EAA0B,EAAmBtkL,QAAQskL,wBACrDrzK,EAAKxP,KAAKgE,KAAKM,cAAcu+K,GAEjC,IAAKrzK,EACH,MAAM,IAAInN,MAAM,8BAAgCwgL,EAA0B,YAG5E,OAAOrzK,GAET7O,YAAY,EACZC,cAAc,IAEToiL,EAtHT,CAuHE,M,qBCtJF96K,EAAOC,QAAU,EAAQ,S,kCCAzB,8GA6BIg7K,EAEJ,SAAUxjL,GAGR,SAASwjL,IACP,IAAIrjL,EAAmB,OAAXH,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAGhE,OADAF,EAAM21B,UAAW,EACV31B,EAuHT,OA7HA,YAAUqjL,EAAWxjL,GASrBwjL,EAAUp/K,SAAW,SAAUC,EAAMkV,QACtB,IAATA,IACFA,EAAO,CACL2pG,iBAAa77G,IAIjB,IAAI4wK,EAAS,IAAIuL,EAAUn/K,GAM3B,YAJyBgD,IAArBkS,EAAK2pG,cACP+0D,EAAO5zD,UAAY9qG,EAAK2pG,aAGnB+0D,GAGTuL,EAAUxK,cAAgB,SAAUviI,GAClC,MAAO,CACLv1C,SAAU,SAAUuE,GAClB,OAAOgxC,EAASpyC,KAAKqB,UAAUC,IAAIF,IAErCg9G,uBAAwB,WACtB,OAAO,IAA0BnrG,SAEnCorG,oBAAqB,WACnB,OAAOjsE,EAASpyC,KAAKsM,yBAEvBgyG,oBAAqB,SAAU19G,GAC7B,OAAOwxC,EAASpyC,KAAKitB,SAASrsB,IAEhC29G,qCAAsC,SAAUgC,EAAS5+G,GACvD,OAAOyR,SAAS01D,gBAAgB/mE,oBAAoBw+G,EAAS5+G,EAAS,gBAExE68G,6BAA8B,SAAU+B,EAAS5+G,GAC/C,OAAOywC,EAASpyC,KAAK+B,oBAAoBw+G,EAAS5+G,EAAS,gBAE7D88G,wBAAyB,SAAU98G,GACjC,OAAOsR,OAAOlR,oBAAoB,SAAUJ,IAE9C+8G,oBAAqB,WACnB,MAAO,CACLhvG,EAAGuD,OAAOmlB,YACVn/B,EAAGga,OAAOklB,cAGdwmF,gBAAiB,WACf,OAAO,YAAQvsE,EAASpyC,KAAM,YAEhC4+G,kBAAmB,WACjB,OAAO58G,QAAQowC,EAAS3gB,WAE1BotF,YAAa,WACX,OAAO78G,QAAQowC,EAAS4tE,YAE1BlB,mCAAoC,SAAUyB,EAAS5+G,GACrD,OAAOyR,SAAS01D,gBAAgBhnE,iBAAiBy+G,EAAS5+G,EAAS,gBAErEo9G,2BAA4B,SAAUwB,EAAS5+G,GAC7C,OAAOywC,EAASpyC,KAAK8B,iBAAiBy+G,EAAS5+G,EAAS,gBAE1Dq9G,sBAAuB,SAAUr9G,GAC/B,OAAOsR,OAAOnR,iBAAiB,SAAUH,IAE3CxE,YAAa,SAAUiE,GACrB,OAAOgxC,EAASpyC,KAAKqB,UAAUG,OAAOJ,IAExC69G,kBAAmB,SAAUmgE,EAASjzK,GACpC,OAAOimC,EAASpyC,KAAK2M,MAAMw8J,YAAYiW,EAASjzK,MAKtD3P,OAAOC,eAAe0iL,EAAU/hL,UAAW,YAAa,CACtDV,IAAK,WACH,OAAOsF,QAAQhG,KAAKqjL,aAEtB59K,IAAK,SAAUu+G,GACbhkH,KAAKqjL,WAAar9K,QAAQg+G,GAC1BhkH,KAAKsjL,iBAEP3iL,YAAY,EACZC,cAAc,IAGhBuiL,EAAU/hL,UAAUyiH,SAAW,WAC7B7jH,KAAK0E,WAAWm/G,YAGlBs/D,EAAU/hL,UAAU0iH,WAAa,WAC/B9jH,KAAK0E,WAAWo/G,cAGlBq/D,EAAU/hL,UAAU6L,OAAS,WAC3BjN,KAAK0E,WAAWuI,UAGlBk2K,EAAU/hL,UAAU+D,qBAAuB,WACzC,OAAO,IAAI,IAAoBg+K,EAAUxK,cAAc34K,QAGzDmjL,EAAU/hL,UAAUgD,mBAAqB,WACvC,IAAIJ,EAAOhE,KAAKgE,KAChBhE,KAAKgkH,UAAY,yBAA0BhgH,EAAKo2B,SAUlD+oJ,EAAU/hL,UAAUkiL,cAAgB,WAClCtjL,KAAK0E,WAAWq/G,aAAa/9G,QAAQhG,KAAKqjL,cAGrCF,EA9HT,CA+HE,M,sBCxJO,SAAUroL,GACjB,aAEA,IAAIoiB,EAAiB,8DAA8DjiB,MAAM,KACrFC,EAAc,kDAAkDD,MAAM,KACtEqX,EAAc,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAClHC,EAAc,mLACPzX,EAAOC,aAAa,QAAS,CACtCC,OAAQ,2FAA2FC,MAAM,KACzGC,YAAa,SAAUuB,EAAGmB,GACxB,OAAKnB,EAEM,QAAQyB,KAAKN,GACf1C,EAAYuB,EAAE+V,SAEd0K,EAAezgB,EAAE+V,SAJjB0K,GAOX3K,YAAaA,EACbE,iBAAkBF,EAClBG,kBAAmB,+FACnBC,uBAAwB,0FACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,6DAAuDF,MAAM,KACvEG,cAAe,2CAAqCH,MAAM,KAC1DI,YAAa,0BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,+BACLC,KAAM,sCAERC,SAAU,CACRC,QAAS,WACP,MAAO,aAAgC,IAAjBkE,KAAKiS,QAAgB,IAAM,IAAM,QAEzDlW,QAAS,WACP,MAAO,mBAAmC,IAAjBiE,KAAKiS,QAAgB,IAAM,IAAM,QAE5DjW,SAAU,WACR,MAAO,cAAiC,IAAjBgE,KAAKiS,QAAgB,IAAM,IAAM,QAE1DhW,QAAS,WACP,MAAO,cAAiC,IAAjB+D,KAAKiS,QAAgB,IAAM,IAAM,QAE1D/V,SAAU,WACR,MAAO,0BAA6C,IAAjB8D,KAAKiS,QAAgB,IAAM,IAAM,QAEtE9V,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,YACHC,GAAI,aACJmY,EAAG,aACHC,GAAI,aACJnY,EAAG,SACHC,GAAI,WACJC,EAAG,YACHC,GAAI,cAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA/EuFC,CAAQ,EAAQ,U,kCCLlH,kCAsBA,IAAI6lL,EAEJ,WACE,SAASA,EAAc1jL,QACL,IAAZA,IACFA,EAAU,IAGZG,KAAKH,QAAUA,EA+CjB,OA5CAW,OAAOC,eAAe8iL,EAAe,aAAc,CACjD7iL,IAAK,WAGH,MAAO,IAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe8iL,EAAe,UAAW,CAC9C7iL,IAAK,WAGH,MAAO,IAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe8iL,EAAe,UAAW,CAC9C7iL,IAAK,WAGH,MAAO,IAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe8iL,EAAe,iBAAkB,CACrD7iL,IAAK,WAIH,MAAO,IAETC,YAAY,EACZC,cAAc,IAGhB2iL,EAAcniL,UAAU4qB,KAAO,aAG/Bu3J,EAAcniL,UAAUC,QAAU,aAG3BkiL,EArDT,I,kCCtBA,IAAIC,EAAe,EAAQ,QAa3Bt7K,EAAOC,QAAU,SAAqByV,EAASN,EAAQC,EAAMC,EAASC,GACpE,IAAIJ,EAAQ,IAAIhb,MAAMub,GACtB,OAAO4lK,EAAanmK,EAAOC,EAAQC,EAAMC,EAASC,K,4JCOhDtf,EAAa,CAEfslL,QAAS,sBAGT1U,SAAU,wBAIRxwK,EAAU,CAEZmlL,kBAAmB,eAGnBb,wBAAyB,8BAGzBc,wBAAyB,+BCfvB,EAEJ,SAAUhkL,GAGR,SAASikL,EAAoB/jL,GAC3B,OAAOF,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI4jL,EAAoB3jL,gBAAiBJ,KAAaG,KAqFnG,OAxFA,YAAU4jL,EAAqBjkL,GAM/Ba,OAAOC,eAAemjL,EAAqB,UAAW,CAEpDljL,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAemjL,EAAqB,aAAc,CAEvDljL,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAemjL,EAAqB,iBAAkB,CAE3DljL,IAAK,WACH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb0iL,wBAAyB,aAGzBd,yBAA0B,aAG1Be,qBAAsB,eAK1BnjL,YAAY,EACZC,cAAc,IAIhBgjL,EAAoBxiL,UAAU2iL,WAAa,SAAUnzK,GACnD5Q,KAAKH,QAAQgkL,wBAAwBjzK,GACrC5Q,KAAKgkL,mBAAmBpzK,GACxB5Q,KAAKikL,sBAAsBrzK,IAK7BgzK,EAAoBxiL,UAAU0yK,YAAc,SAAUr+I,GACpDz1B,KAAKH,QAAQkjL,yBAAyBttJ,GAElCA,EACFz1B,KAAKH,QAAQgB,SAAS1C,EAAW4wK,UAEjC/uK,KAAKH,QAAQsB,YAAYhD,EAAW4wK,WAMxC6U,EAAoBxiL,UAAU8iL,aAAe,SAAUxhL,GACrD,IAAIyhL,EAAgBzhL,EAAIkC,OACxB5E,KAAKgkL,mBAAmBG,EAAcvzK,SACtC5Q,KAAKikL,sBAAsBE,EAAcvzK,UAK3CgzK,EAAoBxiL,UAAU6iL,sBAAwB,SAAUrzK,GAC1DA,EACF5Q,KAAKH,QAAQgB,SAAS1C,EAAWslL,SAEjCzjL,KAAKH,QAAQsB,YAAYhD,EAAWslL,UAIxCG,EAAoBxiL,UAAU4iL,mBAAqB,SAAUpzK,GAC3D5Q,KAAKH,QAAQikL,qBAAqBvlL,EAAQmlL,kBAAmB,KAAO9yK,IAG/DgzK,EAzFT,CA0FE,KCxFE,EAEJ,SAAUjkL,GAGR,SAASykL,IACP,IAAItkL,EAAmB,OAAXH,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAGhE,OADAF,EAAMmjL,QAAUnjL,EAAM+3K,gBACf/3K,EAsIT,OA5IA,YAAUskL,EAAWzkL,GASrBykL,EAAUrgL,SAAW,SAAUC,GAC7B,OAAO,IAAIogL,EAAUpgL,IAGvBogL,EAAUhjL,UAAUC,QAAU,WAC5B1B,EAAOyB,UAAUC,QAAQtB,KAAKC,MAE9BA,KAAKijL,QAAQ5hL,UACbrB,KAAKkjL,eAAen9K,oBAAoB,SAAU/F,KAAKqkL,iBAGzDD,EAAUhjL,UAAUgD,mBAAqB,WACvC,IAAItE,EAAQE,KAEZA,KAAKqkL,eAAiB,WAKpB,IAJA,IAAIj3K,EAEAoX,EAAO,GAEFwG,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtCxG,EAAKwG,GAAMlnB,UAAUknB,GAGvB,OAAQ5d,EAAKtN,EAAM4E,YAAYw/K,aAAargL,MAAMuJ,EAAI,YAASoX,KAGjExkB,KAAKkjL,eAAep9K,iBAAiB,SAAU9F,KAAKqkL,gBAIpDrkL,KAAK4Q,QAAU5Q,KAAK4Q,SAGtBwzK,EAAUhjL,UAAU+D,qBAAuB,WACzC,IAAIrF,EAAQE,KAqBZ,OAAO,IAAI,EAjBG,CACZa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErCy+K,wBAAyB,SAAUjzK,GACjC,OAAO9Q,EAAMojL,eAAetyK,QAAUA,GAExCmyK,yBAA0B,SAAUttJ,GAClC,OAAO31B,EAAMojL,eAAeztJ,SAAWA,GAEzCquJ,qBAAsB,SAAU5yK,EAAMf,GACpC,OAAOrQ,EAAMojL,eAAez/K,aAAayN,EAAMf,OAMrD3P,OAAOC,eAAe2jL,EAAUhjL,UAAW,SAAU,CACnDV,IAAK,WACH,OAAOV,KAAKijL,SAEdtiL,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe2jL,EAAUhjL,UAAW,UAAW,CACpDV,IAAK,WACH,OAAOV,KAAKkjL,eAAetyK,SAE7BnL,IAAK,SAAUmL,GACb5Q,KAAK0E,WAAWq/K,WAAWnzK,IAE7BjQ,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe2jL,EAAUhjL,UAAW,WAAY,CACrDV,IAAK,WACH,OAAOV,KAAKkjL,eAAeztJ,UAE7BhwB,IAAK,SAAUgwB,GACbz1B,KAAK0E,WAAWovK,YAAYr+I,IAE9B90B,YAAY,EACZC,cAAc,IAGhBwjL,EAAUhjL,UAAUy2K,cAAgB,WAClC,IAAI/3K,EAAQE,KAER2jL,EAA0B,EAAoBplL,QAAQolL,wBACtDW,EAAgBtkL,KAAKgE,KAAKM,cAAcq/K,GAGxC9jL,EAAU,YAAS,YAAS,GAAI,IAAU84K,cAAc34K,OAAQ,CAClEa,SAAU,SAAUuE,GAClB,OAAOk/K,EAAcj/K,UAAUC,IAAIF,IAErCi9G,oBAAqB,WACnB,OAAOiiE,EAAch0K,yBAEvBkyG,6BAA8B,SAAU+B,EAAS5+G,GAC/C7F,EAAMojL,eAAen9K,oBAAoBw+G,EAAS5+G,EAAS,gBAE7Dg9G,gBAAiB,WACf,OAAO,YAAQ7iH,EAAMojL,eAAgB,YAEvCrgE,YAAa,WACX,OAAO,GAETE,2BAA4B,SAAUwB,EAAS5+G,GAC7C7F,EAAMojL,eAAep9K,iBAAiBy+G,EAAS5+G,EAAS,gBAE1DxE,YAAa,SAAUiE,GACrBk/K,EAAcj/K,UAAUG,OAAOJ,IAEjC69G,kBAAmB,SAAUmgE,EAASjzK,GACpCm0K,EAAc3zK,MAAMw8J,YAAYiW,EAASjzK,MAI7C,OAAO,IAAI,IAAUnQ,KAAKgE,KAAM,IAAI,IAAoBnE,KAG1DW,OAAOC,eAAe2jL,EAAUhjL,UAAW,iBAAkB,CAC3DV,IAAK,WACH,IAAImiL,EAA0B,EAAoBtkL,QAAQskL,wBAC1D,OAAO7iL,KAAKgE,KAAKM,cAAcu+K,IAEjCliL,YAAY,EACZC,cAAc,IAETwjL,EA7IT,CA8IE,M,qBC9KgC,EAAQ,OAI1CxiC,CAA4B,SAAS,SAAU51H,GAC7C,OAAO,SAAoB5b,EAAMyxI,EAAY75I,GAC3C,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,Q,mBCJxCE,EAAOC,QAAU,CACfo8K,YAAa,EACbC,oBAAqB,EACrBC,aAAc,EACdC,eAAgB,EAChBC,YAAa,EACbC,cAAe,EACfC,aAAc,EACdC,qBAAsB,EACtBC,SAAU,EACVC,kBAAmB,EACnB3kJ,eAAgB,EAChB4kJ,gBAAiB,EACjBC,kBAAmB,EACnBC,UAAW,EACXC,cAAe,EACfC,aAAc,EACd/kJ,SAAU,EACVglJ,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,sBC1BJ,SAAUrrL,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wzBAAqJC,MAAM,KACnKC,YAAa,qPAAiED,MAAM,KACpFwX,iBAAkB,+BAClBX,kBAAkB,EAClB3W,SAAU,mbAAgFF,MAAM,KAChGG,cAAe,2QAAoDH,MAAM,KACzEI,YAAa,iIAA6BJ,MAAM,KAChDK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAERC,SAAU,CACRC,QAAS,4CACTC,QAAS,4CACTC,SAAU,mGACVC,QAAS,gCACTC,SAAU,kGACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,oCACNC,EAAG,iCACHC,GAAI,0CACJC,EAAG,+DACHC,GAAI,oCACJC,EAAG,qEACHC,GAAI,0CACJC,EAAG,mDACHC,GAAI,8BACJC,EAAG,yDACHC,GAAI,8BACJC,EAAG,6CACHC,GAAI,mBAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAGrB8B,cAAe,6MACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,yCAAbD,GAAyBC,GAAQ,GAAkB,+CAAbD,GAA0BC,EAAO,GAAkB,+CAAbD,EACvEC,EAAO,GAEPA,GAGXD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,uCACEA,EAAO,GACT,6CACEA,EAAO,GACT,6CACEA,EAAO,GACT,6CAEA,wCAGX7L,KAAM,CACJC,IAAK,EAELC,IAAK,KA1GuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,khBAAoGC,MAAM,KAClHC,YAAa,wMAAiED,MAAM,KACpF6W,kBAAkB,EAClB3W,SAAU,yPAAiDF,MAAM,KACjEG,cAAe,uOAA8CH,MAAM,KAEnEI,YAAa,sEAAyBJ,MAAM,KAC5C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4CACLC,KAAM,sFAERqN,cAAe,4HACfC,KAAM,SAAUpB,GACd,MAAiB,iEAAVA,GAETqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,+DAEA,gEAGXvN,SAAU,CACRC,QAAS,qEACTC,QAAS,iFACTC,SAAU,6DACVC,QAAS,mGACTC,SAAU,mGACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,+CACNC,EAAG,2EACHC,GAAI,0CACJC,EAAG,6BACHC,GAAI,8BACJC,EAAG,+CACHC,GAAI,gDACJC,EAAG,uBACHC,GAAI,wBACJmY,EAAG,+CACHC,GAAI,gDACJnY,EAAG,mCACHC,GAAI,oCACJC,EAAG,iBACHC,GAAI,qBAxDwFQ,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,OAGvGC,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,kCCLlH,IAAIyU,EAAa,EAAQ,QACrB2H,EAAuB,EAAQ,QAC/Bi1B,EAAkB,EAAQ,QAC1Bz5B,EAAc,EAAQ,QAEtB8wK,EAAUr3I,EAAgB,WAE9B7mC,EAAOC,QAAU,SAAUk+K,GACzB,IAAIl4I,EAAch8B,EAAWk0K,GACzB5lL,EAAiBqZ,EAAqBtD,EAEtClB,GAAe64B,IAAgBA,EAAYi4I,IAC7C3lL,EAAe0tC,EAAai4I,EAAS,CACnCxlL,cAAc,EACdF,IAAK,WAAc,OAAOV,U,qBCfhC,IAAI6U,EAAY,EAAQ,QAEpB+V,EAAMlS,KAAKkS,IAIf1iB,EAAOC,QAAU,SAAUqkJ,GACzB,OAAOA,EAAW,EAAI5hI,EAAI/V,EAAU23I,GAAW,kBAAoB,I,qBCPrE,IAiBIphF,EAAO7kC,EAAS+/I,EAjBhBr+K,EAAS,EAAQ,QACjBsN,EAAQ,EAAQ,QAChBq5B,EAAU,EAAQ,QAClBp6B,EAAO,EAAQ,QACf4iC,EAAO,EAAQ,QACfxyB,EAAgB,EAAQ,QACxB2hK,EAAS,EAAQ,QAEjBpyI,EAAWlsC,EAAOksC,SAClB1uC,EAAMwC,EAAOyM,aACbE,EAAQ3M,EAAO0M,eACf66I,EAAUvnJ,EAAOunJ,QACjBg3B,EAAiBv+K,EAAOu+K,eACxBC,EAAWx+K,EAAOw+K,SAClBC,EAAU,EACV72B,EAAQ,GACR82B,EAAqB,qBAGrBn6I,EAAM,SAAU4I,GAElB,GAAIy6G,EAAMt1I,eAAe66B,GAAK,CAC5B,IAAIjrB,EAAK0lI,EAAMz6G,UACRy6G,EAAMz6G,GACbjrB,MAIAy8J,EAAS,SAAUxxI,GACrB,OAAO,WACL5I,EAAI4I,KAIJiE,EAAW,SAAU/qC,GACvBk+B,EAAIl+B,EAAM8B,OAGRy2K,EAAO,SAAUzxI,GAEnBntC,EAAOo8D,YAAYjvB,EAAK,GAAIjB,EAASzS,SAAW,KAAOyS,EAAS3B,OAI7D/sC,GAAQmP,IACXnP,EAAM,SAAsB0kB,GAG1B,IAFA,IAAI3F,EAAO,GACPpd,EAAI,EACDtD,UAAUkE,OAASZ,GAAGod,EAAKxW,KAAKlK,UAAUsD,MAMjD,OALAyoJ,IAAQ62B,GAAW,YAEH,mBAANv8J,EAAmBA,EAAKksB,SAASlsB,IAAKtmB,WAAMmD,EAAWwd,IAEjE4mD,EAAMs7G,GACCA,GAET9xK,EAAQ,SAAwBwgC,UACvBy6G,EAAMz6G,IAGS,WAApBxG,EAAQ4gH,GACVpkF,EAAQ,SAAUh2B,GAChBo6G,EAAQ/xG,SAASmpI,EAAOxxI,KAGjBqxI,GAAYA,EAASpsK,IAC9B+wD,EAAQ,SAAUh2B,GAChBqxI,EAASpsK,IAAIusK,EAAOxxI,KAIboxI,IAAmBD,GAE5BD,GADA//I,EAAU,IAAIigJ,GACCM,MACfvgJ,EAAQwgJ,MAAMC,UAAY3tI,EAC1B+xB,EAAQ52D,EAAK8xK,EAAKjiH,YAAaiiH,EAAM,KAIrCr+K,EAAOnC,kBACe,mBAAfu+D,aACNp8D,EAAOg/K,eACP1xK,EAAMsxK,IACe,UAAtB1yI,EAASzS,SAMT0pC,EADSu7G,KAAsB/hK,EAAc,UACrC,SAAUwwB,GAChBgC,EAAKxxB,YAAYhB,EAAc,WAA6B,mBAAI,WAC9DwyB,EAAKnyB,YAAYjlB,MACjBwsC,EAAI4I,KAKA,SAAUA,GAChBzzC,WAAWilL,EAAOxxI,GAAK,KAbzBg2B,EAAQy7G,EACR5+K,EAAOnC,iBAAiB,UAAWuzC,GAAU,KAiBjDnxC,EAAOC,QAAU,CACf1C,IAAKA,EACLmP,MAAOA,I,oCCvGT,IAAI+W,EAAQ,EAAQ,QAEhBs2H,EAAW,EAAQ,QAEnBwgC,EAAqB,EAAQ,QAE7ByE,EAAkB,EAAQ,QAE1B/nE,EAAc,EAAQ,QAEtB6hC,EAAY,EAAQ,QAEpBT,EAAaS,EAAUT,WAO3B,SAASrhC,EAAM5zF,GACbtrB,KAAK8e,SAAWwM,EAChBtrB,KAAKmnL,aAAe,CAClB3pK,QAAS,IAAIilK,EACbhlK,SAAU,IAAIglK,GAUlBvjE,EAAM99G,UAAUoc,QAAU,SAAiBF,GAGnB,kBAAXA,GACTA,EAASxZ,UAAU,IAAM,IAClBq9B,IAAMr9B,UAAU,GAEvBwZ,EAASA,GAAU,IAGrBA,EAAS6hG,EAAYn/G,KAAK8e,SAAUxB,IAEzBmzC,OACTnzC,EAAOmzC,OAASnzC,EAAOmzC,OAAOz+C,cACrBhS,KAAK8e,SAAS2xC,OACvBnzC,EAAOmzC,OAASzwD,KAAK8e,SAAS2xC,OAAOz+C,cAErCsL,EAAOmzC,OAAS,MAGlB,IAAIswF,EAAezjI,EAAOyjI,kBAEL/5I,IAAjB+5I,GACFC,EAAUI,cAAcL,EAAc,CACpCqmC,kBAAmB7mC,EAAWQ,aAAaR,EAAW8mC,QAAS,SAC/DC,kBAAmB/mC,EAAWQ,aAAaR,EAAW8mC,QAAS,SAC/D5jC,oBAAqBlD,EAAWQ,aAAaR,EAAW8mC,QAAS,WAChE,GAIL,IAAIE,EAA0B,GAC1BC,GAAiC,EACrCxnL,KAAKmnL,aAAa3pK,QAAQxN,SAAQ,SAAoCy3K,GACjC,oBAAxBA,EAAY9E,UAA0D,IAAhC8E,EAAY9E,QAAQrlK,KAIrEkqK,EAAiCA,GAAkCC,EAAY/E,YAC/E6E,EAAwB/tI,QAAQiuI,EAAY3pE,UAAW2pE,EAAY1pE,cAErE,IAIIt7C,EAJAilH,EAA2B,GAM/B,GALA1nL,KAAKmnL,aAAa1pK,SAASzN,SAAQ,SAAkCy3K,GACnEC,EAAyB15K,KAAKy5K,EAAY3pE,UAAW2pE,EAAY1pE,cAI9DypE,EAAgC,CACnC,IAAIG,EAAQ,CAACT,OAAiBlgL,GAK9B,IAJAyX,MAAMrd,UAAUo4C,QAAQ31C,MAAM8jL,EAAOJ,GACrCI,EAAMhxK,OAAO+wK,GACbjlH,EAAUO,QAAQJ,QAAQtlD,GAEnBqqK,EAAM3/K,QACXy6D,EAAUA,EAAQC,KAAKilH,EAAMr3I,QAASq3I,EAAMr3I,SAG9C,OAAOmyB,EAKT,IAFA,IAAImlH,EAAYtqK,EAETiqK,EAAwBv/K,QAAQ,CACrC,IAAIu6D,EAAcglH,EAAwBj3I,QACtCkyB,EAAa+kH,EAAwBj3I,QAEzC,IACEs3I,EAAYrlH,EAAYqlH,GACxB,MAAOvqK,GACPmlD,EAAWnlD,GACX,OAIJ,IACEolD,EAAUykH,EAAgBU,GAC1B,MAAOvqK,GACP,OAAO2lD,QAAQh9B,OAAO3oB,GAGxB,KAAOqqK,EAAyB1/K,QAC9By6D,EAAUA,EAAQC,KAAKglH,EAAyBp3I,QAASo3I,EAAyBp3I,SAGpF,OAAOmyB,GAGTy8C,EAAM99G,UAAUymL,OAAS,SAAgBvqK,GAEvC,OADAA,EAAS6hG,EAAYn/G,KAAK8e,SAAUxB,GAC7B2kI,EAAS3kI,EAAO6jB,IAAK7jB,EAAOkpB,OAAQlpB,EAAO6lI,kBAAkBrlJ,QAAQ,MAAO,KAIrF6tB,EAAM3b,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BygD,GAE/EyuD,EAAM99G,UAAUqvD,GAAU,SAAUtvB,EAAK7jB,GACvC,OAAOtd,KAAKwd,QAAQ2hG,EAAY7hG,GAAU,GAAI,CAC5CmzC,OAAQA,EACRtvB,IAAKA,EACL/wB,MAAOkN,GAAU,IAAIlN,YAI3Bub,EAAM3b,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BygD,GAErEyuD,EAAM99G,UAAUqvD,GAAU,SAAUtvB,EAAK/wB,EAAMkN,GAC7C,OAAOtd,KAAKwd,QAAQ2hG,EAAY7hG,GAAU,GAAI,CAC5CmzC,OAAQA,EACRtvB,IAAKA,EACL/wB,KAAMA,SAIZlI,EAAOC,QAAU+2G,G,kCClJjB,IAAII,EAAS,EAAQ,QASrB,SAASC,EAAYuoE,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAI78J,UAAU,gCAGtB,IAAI88J,EACJ/nL,KAAKyiE,QAAU,IAAIO,SAAQ,SAAyBJ,GAClDmlH,EAAiBnlH,KAEnB,IAAIlwB,EAAQ1yC,KACZ8nL,GAAS,SAAgBlqK,GACnB80B,EAAM1wC,SAKV0wC,EAAM1wC,OAAS,IAAIs9G,EAAO1hG,GAC1BmqK,EAAer1I,EAAM1wC,YAQzBu9G,EAAYn+G,UAAU4+I,iBAAmB,WACvC,GAAIhgJ,KAAKgC,OACP,MAAMhC,KAAKgC,QASfu9G,EAAY/3G,OAAS,WACnB,IAAI6yD,EAIJ,MAAO,CACL3nB,MAJU,IAAI6sE,GAAY,SAAkBt2F,GAC5CoxC,EAASpxC,KAIToxC,OAAQA,IAIZnyD,EAAOC,QAAUo3G,G,sBCnDR,SAAUzkH,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,sFAAsFC,MAAM,KACpGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAAqDF,MAAM,KACrEG,cAAe,oCAA8BH,MAAM,KACnDI,YAAa,6BAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,sCAERC,SAAU,CACRC,QAAS,iBACTC,QAAS,oBACTC,SAAU,sBACVC,QAAS,oBACTC,SAAU,qBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,WACNC,EAAG,iBACHC,GAAI,cACJC,EAAG,WACHC,GAAI,cACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,cACHC,GAAI,gBACJC,EAAG,WACHC,GAAI,YAENC,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA/CuFC,CAAQ,EAAQ,U,4GCgB9GS,EAAa,CACf6pL,YAAa,yBACbC,qBAAsB,kCACtBC,YAAa,yBACbC,sBAAuB,mCACvBC,4BAA6B,0CAE3BjpL,EAAU,CACZkpL,iCAAkC,IAClCC,uBAAwB,KAEtB/pL,EAAU,CACZgqL,qBAAsB,gCACtBC,iBAAkB,mBAClBC,yBAA0B,oCAC1Bxa,cAAe,mBACfya,eAAgB,2BCZd,EAEJ,SAAU/oL,GAKR,SAASgpL,EAA2B9oL,GAClC,OAAOF,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI2oL,EAA2B1oL,gBAAiBJ,KAAaG,KA0E1G,OA/EA,YAAU2oL,EAA4BhpL,GAQtCa,OAAOC,eAAekoL,EAA4B,UAAW,CAC3DjoL,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAekoL,EAA4B,aAAc,CAC9DjoL,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAekoL,EAA4B,UAAW,CAC3DjoL,IAAK,WACH,OAAOvB,GAETwB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAekoL,EAA4B,iBAAkB,CAIlEjoL,IAAK,WAEH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb4a,SAAU,WACR,OAAO,GAET4wJ,SAAU,aAGVic,mBAAoB,WAClB,OAAO,GAETC,4BAA6B,aAG7BC,mBAAoB,WAClB,OAAO,GAETC,oBAAqB,WACnB,OAAO,KAIbpoL,YAAY,EACZC,cAAc,IAIhB+nL,EAA2BvnL,UAAU4nL,mBAAqB,aAK1DL,EAA2BvnL,UAAU6nL,mBAAqB,aAG1DN,EAA2BvnL,UAAU8nL,sBAAwB,WAC3DlpL,KAAKH,QAAQgpL,+BAGRF,EAhFT,C,UAiFE,GClFE,EAEJ,SAAUhpL,GAKR,SAASwpL,EAAuBtpL,GAC9B,IAAIC,EAAQH,EAAOI,KAAKC,KAAMH,IAAYG,KAkC1C,OA5BAF,EAAMspL,YAAa,EAKnBtpL,EAAMupL,kBAAmB,EAKzBvpL,EAAMwpL,wBAA0B,EAKhCxpL,EAAMypL,0BAA2B,EAKjCzpL,EAAM0pL,kBApCU,EAyChB1pL,EAAM2pL,kBAzCU,EA0ChB3pL,EAAM4pL,oBAAsB5pL,EAAMD,QAAQipL,qBAC1ChpL,EAAM6pL,iBAAmB7pL,EAAMD,QAAQ+oL,qBAChC9oL,EAgIT,OAvKA,YAAUqpL,EAAwBxpL,GA0ClCwpL,EAAuB/nL,UAAUC,QAAU,WACzC1B,EAAOyB,UAAUC,QAAQtB,KAAKC,MAE9BA,KAAKH,QAAQ8sK,SAAS,MAAO,KAQ/Bwc,EAAuB/nL,UAAU4nL,mBAAqB,WACpD,IAAIY,EAAwBlxK,KAAKmS,IAAI7qB,KAAKH,QAAQipL,qBAAsB,GACpExwK,EAAOsxK,EAAwB5pL,KAAK0pL,oBACxC1pL,KAAK0pL,oBAAsBE,EAGtB5pL,KAAKupL,2BACRvpL,KAAKspL,yBAA2BhxK,EAE5BtY,KAAKspL,wBAA0B,EACjCtpL,KAAKspL,wBAA0B,EACtB5wK,KAAKC,IAAI3Y,KAAKspL,yBAA2BtpL,KAAK2pL,mBACvD3pL,KAAKspL,yBAA2BtpL,KAAK2pL,kBAGvC3pL,KAAK6pL,mBASTV,EAAuB/nL,UAAU6nL,mBAAqB,WACpD,IAAInpL,EAAQE,KAGPA,KAAKwpL,oBACRxpL,KAAKwpL,kBAAoB7nL,YAAW,WAClC7B,EAAM0pL,kBAxFM,EA0FZ1pL,EAAMgqL,4BACL3qL,EAAQkpL,mCAGbroL,KAAKupL,0BAA2B,EAE5BvpL,KAAKypL,mBACPjoL,aAAaxB,KAAKypL,mBAGpBzpL,KAAKypL,kBAAoB9nL,YAAW,WAClC7B,EAAMkpL,qBAENlpL,EAAMypL,0BAA2B,EACjCzpL,EAAM2pL,kBAxGQ,IAyGbtqL,EAAQkpL,mCAObc,EAAuB/nL,UAAU2oL,gBAAkB,WACjD,IAAIC,GAAwBhqL,KAAK2pL,iBAC7BM,EAAwBjqL,KAAKspL,wBAA0B,EACvDY,EAAuBlqL,KAAKspL,wBAA0BU,EACtDG,EAAmBF,GAAyBC,EAEhD,GAAIC,EACFnqL,KAAKopL,YAAa,MACb,CAEL,IAAKppL,KAAKopL,WAER,OADAppL,KAAKopL,YAAa,GACX,EACF,GAAIppL,KAAKqpL,mBAAqBa,EAEnC,OADAlqL,KAAKqpL,iBAAmBa,GACjB,EAIX,OAAOC,GAOThB,EAAuB/nL,UAAUyoL,eAAiB,WAChD,GAAI7pL,KAAK+pL,kBAAmB,CAG1B,IAAIh2J,EAAS/zB,KAAKspL,wBAEd5wK,KAAKC,IAAIob,IAAW/zB,KAAK2pL,mBAC3B51J,GAAU50B,EAAQmpL,wBAGpBtoL,KAAKH,QAAQ8sK,SAAS,MAAO54I,EAAS,QAS1Co1J,EAAuB/nL,UAAU0oL,wBAA0B,WACzD,IAAIruH,EAAgBz7D,KAAKH,QAAQ+oL,qBAE7B5oL,KAAK2pL,mBAAqBluH,IAC5Bz7D,KAAKopL,YAAa,EAIlBppL,KAAKspL,yBAA2BtpL,KAAK2pL,iBAAmBluH,EACxDz7D,KAAK2pL,iBAAmBluH,GAG1Bz7D,KAAKgpL,sBAGAG,EAxKT,CAyKE,GC5KE,EAEJ,SAAUxpL,GAGR,SAASyqL,IACP,IAAItqL,EAAmB,OAAXH,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAOhE,OADAF,EAAMuqL,cAAe,EACdvqL,EAwBT,OAlCA,YAAUsqL,EAA6BzqL,GAkBvCyqL,EAA4BhpL,UAAU4nL,mBAAqB,WACrChpL,KAAKH,QAAQipL,sBAEZ,EACf9oL,KAAKqqL,eACPrqL,KAAKH,QAAQsB,YAAYhD,EAAW8pL,sBACpCjoL,KAAKqqL,cAAe,GAGjBrqL,KAAKqqL,eACRrqL,KAAKH,QAAQgB,SAAS1C,EAAW8pL,sBACjCjoL,KAAKqqL,cAAe,IAKnBD,EAnCT,CAoCE,GCtCE,EAEJ,SAAUzqL,GAKR,SAAS2qL,EAA4BzqL,GACnC,IAAIC,EAAQH,EAAOI,KAAKC,KAAMH,IAAYG,KAI1C,OAFAF,EAAMyqL,cAAe,EACrBzqL,EAAM0qL,oBAAqB,EACpB1qL,EAiFT,OA1FA,YAAUwqL,EAA6B3qL,GAYvCa,OAAOC,eAAe6pL,EAA4BlpL,UAAW,cAAe,CAE1EV,IAAK,WACH,OAAOV,KAAKuqL,cAEd5pL,YAAY,EACZC,cAAc,IAGhB0pL,EAA4BlpL,UAAU4qB,KAAO,WAC3CrsB,EAAOyB,UAAU4qB,KAAKjsB,KAAKC,MAEvBA,KAAKH,QAAQkpL,sBAAwB,GACvC/oL,KAAKH,QAAQgB,SAAS1C,EAAWiqL,6BAInCpoL,KAAKyqL,mBAAmBzqL,KAAKH,QAAQkc,SAAS5d,EAAWgqL,yBAS3DmC,EAA4BlpL,UAAUqpL,mBAAqB,SAAUt6K,GACnEnQ,KAAKwqL,qBAAuBr6K,EAExBnQ,KAAKwqL,mBACPxqL,KAAK0qL,YAGL1qL,KAAK2qL,qBAITL,EAA4BlpL,UAAUwpL,mBAAqB,WACzD,OAAO5qL,KAAKwqL,oBAQdF,EAA4BlpL,UAAU4nL,mBAAqB,WACzDhpL,KAAK2qL,qBAGPL,EAA4BlpL,UAAUupL,kBAAoB,WACpD3qL,KAAKwqL,qBAIWxqL,KAAKH,QAAQipL,sBAEZ,EACf9oL,KAAKuqL,cACPvqL,KAAK6qL,cAGF7qL,KAAKuqL,cACRvqL,KAAK0qL,cAKXJ,EAA4BlpL,UAAUypL,YAAc,WAClD7qL,KAAKH,QAAQsB,YAAYhD,EAAWgqL,uBACpCnoL,KAAKuqL,cAAe,GAGtBD,EAA4BlpL,UAAUspL,UAAY,WAChD1qL,KAAKH,QAAQgB,SAAS1C,EAAWgqL,uBACjCnoL,KAAKuqL,cAAe,GAGfD,EA3FT,CA4FE,GC1FE,EAEJ,SAAU3qL,GAGR,SAASmrL,IACP,OAAkB,OAAXnrL,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA6H7D,OAhIA,YAAU8qL,EAAcnrL,GAMxBmrL,EAAa/mL,SAAW,SAAUC,GAChC,OAAO,IAAI8mL,EAAa9mL,IAG1B8mL,EAAa1pL,UAAU6C,WAAa,SAAUoyK,QACtB,IAAlBA,IACFA,EAAgB,SAAU7mK,GACxB,OAAO,IAAUzL,SAASyL,KAI9BxP,KAAK+qL,SAAW/qL,KAAKgE,KAAKM,cAAc/F,EAAQkqL,0BAEhD,IAAIuC,EAAQ,GAAGpjL,MAAM7H,KAAKC,KAAKgE,KAAK6L,iBAAiBtR,EAAQgqL,uBAEzDvoL,KAAK+qL,UACPC,EAAMh9K,KAAKhO,KAAK+qL,UAGlB/qL,KAAKirL,aAAeD,EAAMhiK,KAAI,SAAUkiK,GACtC,IAAItT,EAASvB,EAAc6U,GAE3B,OADAtT,EAAO5zD,WAAY,EACZ4zD,KAET53K,KAAKmrL,cAAgBl0K,QAGvB6zK,EAAa1pL,UAAUgD,mBAAqB,WAC1CpE,KAAKorL,uBAAyBprL,KAAK0E,WAAWwkL,sBAAsB10K,KAAKxU,KAAK0E,YAC9E1E,KAAKqrL,oBAAsBrrL,KAAK0E,WAAWukL,mBAAmBz0K,KAAKxU,KAAK0E,YACxE1E,KAAKsrL,oBAAsBtrL,KAAK0E,WAAWskL,mBAAmBx0K,KAAKxU,KAAK0E,YACxE1E,KAAKmrL,cAAcrlL,iBAAiB,SAAU9F,KAAKsrL,qBAE/CtrL,KAAK+qL,UACP/qL,KAAK+qL,SAASjlL,iBAAiB,QAAS9F,KAAKorL,wBAG/C,IAAIr5B,EAAU/xJ,KAAKgE,KAAKqB,UAAU4rB,SAAS9yB,EAAW6pL,aACxChoL,KAAKgE,KAAKqB,UAAU4rB,SAAS9yB,EAAW+pL,cAErCn2B,GACf96I,OAAOnR,iBAAiB,SAAU9F,KAAKqrL,sBAI3CP,EAAa1pL,UAAUC,QAAU,WAC/BrB,KAAKirL,aAAaj7K,SAAQ,SAAUu7K,GAClC,OAAOA,EAAWlqL,aAEpBrB,KAAKmrL,cAAcplL,oBAAoB,SAAU/F,KAAKsrL,qBAElDtrL,KAAK+qL,UACP/qL,KAAK+qL,SAAShlL,oBAAoB,QAAS/F,KAAKorL,wBAGlD,IAAIr5B,EAAU/xJ,KAAKgE,KAAKqB,UAAU4rB,SAAS9yB,EAAW6pL,aACxChoL,KAAKgE,KAAKqB,UAAU4rB,SAAS9yB,EAAW+pL,cAErCn2B,GACf96I,OAAOlR,oBAAoB,SAAU/F,KAAKqrL,qBAG5C1rL,EAAOyB,UAAUC,QAAQtB,KAAKC,OAGhC8qL,EAAa1pL,UAAUoqL,gBAAkB,SAAU5mL,GAEjD5E,KAAKmrL,cAAcplL,oBAAoB,SAAU/F,KAAKsrL,qBACtDtrL,KAAKmrL,cAAgBvmL,EAErB5E,KAAKsrL,oBAAsBtrL,KAAK0E,WAAWskL,mBAAmBx0K,KAAKxU,KAAK0E,YACxE1E,KAAKmrL,cAAcrlL,iBAAiB,SAAU9F,KAAKsrL,sBAGrDR,EAAa1pL,UAAU+D,qBAAuB,WAC5C,IAAIrF,EAAQE,KAKRH,EAAU,CACZkc,SAAU,SAAU3W,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAU4rB,SAAS7rB,IAEvCvE,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErCunK,SAAU,SAAUn7G,EAAUrhD,GAC5B,OAAOrQ,EAAMkE,KAAK2M,MAAMw8J,YAAY37G,EAAUrhD,IAEhDy4K,mBAAoB,WAClB,OAAO9oL,EAAMkE,KAAKotD,cAEpBy3H,4BAA6B,WAC3B,OAAO/oL,EAAMyF,KAAKhH,EAAQiqL,iBAAkB,KAE9CM,mBAAoB,WAClB,IAAIxzI,EAAMx1C,EAAMqrL,cACZ37K,EAAK1P,EAAMqrL,cACf,YAA2BnkL,IAApBsuC,EAAInZ,YAA4BmZ,EAAInZ,YAAc3sB,EAAG+rC,WAE9DwtI,oBAAqB,WACnB,OAAOjpL,EAAMkE,KAAK6L,iBAAiBtR,EAAQgqL,sBAAsBvgL,SAcrE,OARIhI,KAAKgE,KAAKqB,UAAU4rB,SAAS9yB,EAAW+pL,aAC7B,IAAI,EAA4BroL,GACpCG,KAAKgE,KAAKqB,UAAU4rB,SAAS9yB,EAAW6pL,aACpC,IAAI,EAA4BnoL,GAEhC,IAAI,EAAuBA,IAMrCirL,EAjIT,CAkIE,M,kCChKF,IAAIW,EAAS,WASTC,EAAgB,eAChBC,EAAkB,yBAClBC,EAAiB,kDAEjB/yK,EAAQH,KAAKG,MACbgzK,EAAqBplL,OAAO0tE,aAoC5B23G,EAAe,SAAUC,GAG3B,OAAOA,EAAQ,GAAK,IAAMA,EAAQ,KAOhCC,EAAQ,SAAU58J,EAAO68J,EAAW5hE,GACtC,IAAI3rG,EAAI,EAGR,IAFA0Q,EAAQi7F,EAAYxxG,EAAMuW,EAzDjB,KAyDiCA,GAAS,EACnDA,GAASvW,EAAMuW,EAAQ68J,GAChB78J,EAAQ88J,IAA2BxtK,GA/DjC,GAgEP0Q,EAAQvW,EAAMuW,EArDEksC,IAuDlB,OAAOziD,EAAM6F,EAAI,GAAsB0Q,GAASA,EA/DvC,MAuEPzU,EAAS,SAAU7S,GACrB,IAYIV,EAAGkiK,EAZHpjD,EAAS,GAMTimE,GAHJrkL,EAxDe,SAAU0B,GAIzB,IAHA,IAAI08G,EAAS,GACTwgE,EAAU,EACV1+K,EAASwB,EAAOxB,OACb0+K,EAAU1+K,GAAQ,CACvB,IAAImI,EAAQ3G,EAAO0qE,WAAWwyG,KAC9B,GAAIv2K,GAAS,OAAUA,GAAS,OAAUu2K,EAAU1+K,EAAQ,CAE1D,IAAIokL,EAAQ5iL,EAAO0qE,WAAWwyG,KACN,QAAX,MAAR0F,GACHlmE,EAAOl4G,OAAe,KAARmC,IAAkB,KAAe,KAARi8K,GAAiB,QAIxDlmE,EAAOl4G,KAAKmC,GACZu2K,UAGFxgE,EAAOl4G,KAAKmC,GAGhB,OAAO+1G,EAmCCmmE,CAAWvkL,IAGKE,OAGpBuJ,EA9ES,IA+ET6d,EAAQ,EACRk9J,EAjFY,GAqFhB,IAAKllL,EAAI,EAAGA,EAAIU,EAAME,OAAQZ,KAC5BkiK,EAAexhK,EAAMV,IACF,KACjB8+G,EAAOl4G,KAAK69K,EAAmBviB,IAInC,IAAIijB,EAAcrmE,EAAOl+G,OACrBwkL,EAAiBD,EAQrB,IALIA,GACFrmE,EAAOl4G,KA/FK,KAmGPw+K,EAAiBL,GAAa,CAEnC,IAAI1vL,EAAIgvL,EACR,IAAKrkL,EAAI,EAAGA,EAAIU,EAAME,OAAQZ,KAC5BkiK,EAAexhK,EAAMV,KACDmK,GAAK+3J,EAAe7sK,IACtCA,EAAI6sK,GAKR,IAAImjB,EAAwBD,EAAiB,EAC7C,GAAI/vL,EAAI8U,EAAIsH,GAAO4yK,EAASr8J,GAASq9J,GACnC,MAAMz3K,WAAW42K,GAMnB,IAHAx8J,IAAU3yB,EAAI8U,GAAKk7K,EACnBl7K,EAAI9U,EAEC2K,EAAI,EAAGA,EAAIU,EAAME,OAAQZ,IAAK,CAEjC,IADAkiK,EAAexhK,EAAMV,IACFmK,KAAO6d,EAAQq8J,EAChC,MAAMz2K,WAAW42K,GAEnB,GAAItiB,GAAgB/3J,EAAG,CAGrB,IADA,IAAIm7K,EAAIt9J,EACC1Q,EArIN,IAqIoCA,GArIpC,GAqI+C,CAChD,IAAIN,EAAIM,GAAK4tK,EArIZ,EAqI2B5tK,GAAK4tK,EApIhC,MAoIqD5tK,EAAI4tK,EAC1D,GAAII,EAAItuK,EAAG,MACX,IAAIuuK,EAAUD,EAAItuK,EACdwuK,EAzIH,GAyIuBxuK,EACxB8nG,EAAOl4G,KAAK69K,EAAmBC,EAAa1tK,EAAIuuK,EAAUC,KAC1DF,EAAI7zK,EAAM8zK,EAAUC,GAGtB1mE,EAAOl4G,KAAK69K,EAAmBC,EAAaY,KAC5CJ,EAAON,EAAM58J,EAAOq9J,EAAuBD,GAAkBD,GAC7Dn9J,EAAQ,IACNo9J,KAIJp9J,IACA7d,EAEJ,OAAO20G,EAAO9vG,KAAK,KAGrBlO,EAAOC,QAAU,SAAUL,GACzB,IAEIV,EAAGiG,EAFHw/K,EAAU,GACVzhF,EAAStjG,EAAMkK,cAAclU,QAAQ6tL,EAAiB,KAAU1wL,MAAM,KAE1E,IAAKmM,EAAI,EAAGA,EAAIgkG,EAAOpjG,OAAQZ,IAC7BiG,EAAQ+9F,EAAOhkG,GACfylL,EAAQ7+K,KAAK09K,EAAcxtL,KAAKmP,GAAS,OAASsN,EAAOtN,GAASA,GAEpE,OAAOw/K,EAAQz2K,KAAK,O,qBCtKtB,IAAIoJ,EAAY,EAAQ,QAExBtX,EAAOC,QAAU,mCAAmCjK,KAAKshB,I,qBCFzD,IAAIuvB,EAAkB,EAAQ,QAC1B3I,EAAS,EAAQ,QACjBtsB,EAAuB,EAAQ,QAE/BgzK,EAAc/9I,EAAgB,eAC9Bg+I,EAAiBtuK,MAAMrd,eAIQ4F,GAA/B+lL,EAAeD,IACjBhzK,EAAqBtD,EAAEu2K,EAAgBD,EAAa,CAClDlsL,cAAc,EACduP,MAAOi2B,EAAO,QAKlBl+B,EAAOC,QAAU,SAAUxF,GACzBoqL,EAAeD,GAAanqL,IAAO,I,sBCX5B,SAAU7H,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjC2sI,KAAM,CAAC,CACLE,MAAO,aACP7zG,OAAQ,EACRlW,KAAM,eACNmqH,OAAQ,SACRxO,KAAM,KACL,CACDoO,MAAO,aACPC,MAAO,aACP9zG,OAAQ,EACRlW,KAAM,eACNmqH,OAAQ,SACRxO,KAAM,KACL,CACDoO,MAAO,aACPC,MAAO,aACP9zG,OAAQ,EACRlW,KAAM,eACNmqH,OAAQ,SACRxO,KAAM,KACL,CACDoO,MAAO,aACPC,MAAO,aACP9zG,OAAQ,EACRlW,KAAM,eACNmqH,OAAQ,SACRxO,KAAM,KACL,CACDoO,MAAO,aACPC,MAAO,aACP9zG,OAAQ,EACRlW,KAAM,eACNmqH,OAAQ,SACRxO,KAAM,KACL,CACDoO,MAAO,aACPC,MAAO,aACP9zG,OAAQ,EACRlW,KAAM,eACNmqH,OAAQ,KACRxO,KAAM,MACL,CACDoO,MAAO,aACPC,OAAO,IACP9zG,OAAQ,EACRlW,KAAM,qBACNmqH,OAAQ,KACRxO,KAAM,OAERwzD,oBAAqB,qBACrB1iD,oBAAqB,SAAUxiI,EAAOX,GACpC,MAAoB,WAAbA,EAAM,GAAa,EAAIiR,SAASjR,EAAM,IAAMW,EAAO,KAE5D9M,OAAQ,qGAAyCC,MAAM,KACvDC,YAAa,qGAAyCD,MAAM,KAC5DE,SAAU,uIAA8BF,MAAM,KAC9CG,cAAe,mDAAgBH,MAAM,KACrCI,YAAa,mDAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,2BACJC,IAAK,iCACLC,KAAM,sCACNisB,EAAG,aACHy5H,GAAI,2BACJC,IAAK,iCACLz/E,KAAM,uCAER74D,cAAe,6BACfC,KAAM,SAAUpB,GACd,MAAiB,iBAAVA,GAETqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,eAEA,gBAGXvN,SAAU,CACRC,QAAS,oBACTC,QAAS,oBACTC,SAAU,SAAUqe,GAClB,OAAIA,EAAI9c,SAAWyC,KAAKzC,OACf,wBAEA,WAGXtB,QAAS,oBACTC,SAAU,SAAUme,GAClB,OAAIra,KAAKzC,SAAW8c,EAAI9c,OACf,wBAEA,WAGXpB,SAAU,KAEZgB,uBAAwB,gBACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACH,OAAkB,IAAX9X,EAAe,eAAOA,EAAS,SAExC,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAOA,EAAS,SAElB,QACE,OAAOA,IAGbjB,aAAc,CACZC,OAAQ,WACRC,KAAM,WACNC,EAAG,eACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJC,EAAG,gBACHC,GAAI,iBACJC,EAAG,UACHC,GAAI,WACJC,EAAG,gBACHC,GAAI,iBACJC,EAAG,UACHC,GAAI,cAvIwFQ,CAAQ,EAAQ,U,qBCNlH,IAAI6X,EAAQ,EAAQ,QAGpBrN,EAAOC,SAAWoN,GAAM,WACtB,OAA8E,GAAvE/U,OAAOC,eAAe,GAAI,EAAG,CAAEC,IAAK,WAAc,OAAO,KAAQ,O,mBCJ1E,IAAI0iE,EAEJA,EAAI,WACF,OAAOpjE,KADL,GAIJ,IAEEojE,EAAIA,GAAK,IAAI/sB,SAAS,cAAb,GACT,MAAO37B,GAEe,kBAAXzD,SAAqBmsD,EAAInsD,QAMtC/O,EAAOC,QAAUi7D,G,oCCRjBl7D,EAAOC,QAAU,SAAqB06I,EAASoqC,GAC7C,OAAOA,EAAcpqC,EAAQ/kJ,QAAQ,OAAQ,IAAM,IAAMmvL,EAAYnvL,QAAQ,OAAQ,IAAM+kJ,I,sBCFpF,SAAU/nJ,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAGP,SAASmkL,EAAe7vL,EAAQoU,EAAejI,EAAQkI,GACrD,IAAIw0G,EAAS,GAEb,GAAIz0G,EACF,OAAQjI,GACN,IAAK,IACH08G,EAAS,0DACT,MAEF,IAAK,KACHA,EAAS,oCACT,MAEF,IAAK,IACHA,EAAS,8CACT,MAEF,IAAK,KACHA,EAAS,0CACT,MAEF,IAAK,IACHA,EAAS,kCACT,MAEF,IAAK,KACHA,EAAS,wBACT,MAEF,IAAK,IACHA,EAAS,wCACT,MAEF,IAAK,KACHA,EAAS,8BACT,MAEF,IAAK,IACHA,EAAS,8CACT,MAEF,IAAK,KACHA,EAAS,oCACT,MAEF,IAAK,IACHA,EAAS,wCACT,MAEF,IAAK,KACHA,EAAS,yCAIb,OAAQ18G,GACN,IAAK,IACH08G,EAAS,sEACT,MAEF,IAAK,KACHA,EAAS,gDACT,MAEF,IAAK,IACHA,EAAS,0DACT,MAEF,IAAK,KACHA,EAAS,gDACT,MAEF,IAAK,IACHA,EAAS,8CACT,MAEF,IAAK,KACHA,EAAS,oCACT,MAEF,IAAK,IACHA,EAAS,oDACT,MAEF,IAAK,KACHA,EAAS,0CACT,MAEF,IAAK,IACHA,EAAS,gEACT,MAEF,IAAK,KACHA,EAAS,sDACT,MAEF,IAAK,IACHA,EAAS,oDACT,MAEF,IAAK,KACHA,EAAS,0CAKf,OAAOA,EAAOpoH,QAAQ,MAAOT,GAGtBvC,EAAOC,aAAa,KAAM,CACjCC,OAAQ,0cAAwFC,MAAM,KACtGC,YAAa,8VAAgFD,MAAM,KACnG6W,kBAAkB,EAClB3W,SAAU,6RAAuDF,MAAM,KACvEG,cAAe,+JAAkCH,MAAM,KACvDI,YAAa,iFAAqBJ,MAAM,KACxCK,eAAgB,CACdC,GAAI,wCACJC,IAAK,2CACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qDACLC,KAAM,4DAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,sCACTC,SAAU,WACVC,QAAS,0BACTC,SAAU,4CACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,mCACRC,KAAM,yCACNC,EAAG2wL,EACH1wL,GAAI0wL,EACJzwL,EAAGywL,EACHxwL,GAAIwwL,EACJvwL,EAAGuwL,EACHtwL,GAAIswL,EACJrwL,EAAGqwL,EACHpwL,GAAIowL,EACJnwL,EAAGmwL,EACHlwL,GAAIkwL,EACJjwL,EAAGiwL,EACHhwL,GAAIgwL,GAEN3jL,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAGrB8B,cAAe,2LACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,mCAAbD,GAAqC,mCAAbA,EACnBC,EACe,yCAAbD,GAAsC,qDAAbA,GAAwC,yCAAbA,EACtDC,GAAQ,GAAKA,EAAOA,EAAO,QAD7B,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,GAAQ,GAAKA,EAAO,EACf,iCACEA,EAAO,GACT,iCACEA,EAAO,GACT,uCACEA,EAAO,GACT,mDAEA,wCAGX7L,KAAM,CACJC,IAAK,EAELC,IAAK,KAtNuFC,CAAQ,EAAQ,U,sBCEzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,qFAAqFC,MAAM,KACnGC,YAAa,6DAA6DD,MAAM,KAChF6W,kBAAkB,EAClB3W,SAAU,2DAAqDF,MAAM,KACrEG,cAAe,oCAA8BH,MAAM,KACnDI,YAAa,6BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,2BACLC,KAAM,iCAERC,SAAU,CACRC,QAAS,iBACTC,QAAS,oBACTC,SAAU,gBACVC,QAAS,oBACTC,SAAU,0BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,WACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,cACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WACJmY,EAAG,SACHC,GAAI,UACJnY,EAAG,cACHC,GAAI,gBACJC,EAAG,YACHC,GAAI,YAENC,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,sBCEzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,0KAAwCC,MAAM,KACtDC,YAAa,qGAAyCD,MAAM,KAC5DE,SAAU,uIAA8BF,MAAM,KAC9CG,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,mDAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,2BACJC,IAAK,iCACLC,KAAM,qCACNisB,EAAG,WACHy5H,GAAI,2BACJC,IAAK,iCACLz/E,KAAM,sCAER74D,cAAe,gFACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,iBAAbD,GAAkC,iBAAbA,GAAkC,iBAAbA,EACrCC,EACe,iBAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,iBAAbD,GAAkC,iBAAbA,EACvBC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,IAAIgzH,EAAY,IAAPlzH,EAAaC,EAEtB,OAAIizH,EAAK,IACA,eACEA,EAAK,IACP,eACEA,EAAK,KACP,eACS,OAAPA,EACF,eACEA,EAAK,KACP,eAEA,gBAGXzgI,SAAU,CACRC,QAAS,mBACTC,QAAS,mBACTC,SAAU,iBACVC,QAAS,mBACTC,SAAU,iBACVC,SAAU,KAEZgB,uBAAwB,gCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAO9X,EAAS,SAElB,IAAK,IACH,OAAOA,EAAS,SAElB,IAAK,IACL,IAAK,IACH,OAAOA,EAAS,SAElB,QACE,OAAOA,IAGbjB,aAAc,CACZC,OAAQ,WACRC,KAAM,WACNC,EAAG,eACHC,GAAI,YACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,WACHC,GAAI,YACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,WACHC,GAAI,eA9FwFQ,CAAQ,EAAQ,U,kCCPlH,IAAIiuB,EAAQ,EAAQ,QAEpBzjB,EAAOC,QAAUwjB,EAAM+3H,uBAEvB,WACE,IAEIypC,EAFAC,EAAO,kBAAkBlvL,KAAKqhB,UAAUC,WACxC6tK,EAAiBj2K,SAASwN,cAAc,KAS5C,SAAS0oK,EAAWnsJ,GAClB,IAAIM,EAAON,EAUX,OARIisJ,IAEFC,EAAe5pL,aAAa,OAAQg+B,GACpCA,EAAO4rJ,EAAe5rJ,MAGxB4rJ,EAAe5pL,aAAa,OAAQg+B,GAE7B,CACLA,KAAM4rJ,EAAe5rJ,KACrBC,SAAU2rJ,EAAe3rJ,SAAW2rJ,EAAe3rJ,SAAS5jC,QAAQ,KAAM,IAAM,GAChF00C,KAAM66I,EAAe76I,KACrB8B,OAAQ+4I,EAAe/4I,OAAS+4I,EAAe/4I,OAAOx2C,QAAQ,MAAO,IAAM,GAC3E20C,KAAM46I,EAAe56I,KAAO46I,EAAe56I,KAAK30C,QAAQ,KAAM,IAAM,GACpEs2C,SAAUi5I,EAAej5I,SACzBkyI,KAAM+G,EAAe/G,KACrBh0I,SAAgD,MAAtC+6I,EAAe/6I,SAASvgC,OAAO,GAAas7K,EAAe/6I,SAAW,IAAM+6I,EAAe/6I,UAYzG,OARA66I,EAAYG,EAAWr2K,OAAOk9B,SAAS1S,MAQhC,SAAyB8rJ,GAC9B,IAAIt1J,EAAStM,EAAMs4G,SAASspD,GAAcD,EAAWC,GAAcA,EACnE,OAAOt1J,EAAOyJ,WAAayrJ,EAAUzrJ,UAAYzJ,EAAOua,OAAS26I,EAAU36I,MA5C/E,GAgDS,WACL,OAAO,I,qBCvDX,IAAIj9B,EAAQ,EAAQ,QAEpBrN,EAAOC,SAAWoN,GAAM,WACtB,SAAS6Q,KAET,OADAA,EAAEhlB,UAAUuY,YAAc,KACnBnZ,OAAOi1C,eAAe,IAAIrvB,KAASA,EAAEhlB,c,qBCL9C,SAMA,YAEE,YACE,WACEpB,KAAKwtL,MAAQ,CACXC,kBAAmB,yGACnBC,oBAAqB,CACnBntJ,SAAU,oEACVotJ,QAAS,eAEXC,oBAAqB,iEACrBC,mBAAoB,OACpBC,uBAAwB,6MACxBC,oBAAqB,sMACrBC,mBAAoB,4MACpBC,kBAAmB,yCACnBC,oBAAqB,wCACrBC,sBAAuB,+EAExBpuL,KAAKC,QACPD,KAnBWC,MAoBd,IAAIwtL,EApBUxtL,KAoBMwtL,OACpB,YACE,WACE,IAAIY,EACJA,EAAQ,KAERZ,EAAMa,aAAe,WACnB,IAAIjtJ,EACJ,OAAOgtJ,EAAkE,OAAzDhtJ,EAAMhqB,SAAS9S,cAAc,yBAAmC88B,EAAIxxB,aAAU,GAGhG49K,EAAMc,SAAW,WACf,OAAgB,MAATF,EAAgBA,EAAQZ,EAAMa,kBAEtCtuL,KAAKC,MACR,WACE,IAAavD,EACbA,EAAIslE,QAAQ3gE,UAAU66C,SAAW8lB,QAAQ3gE,UAAU2rE,iBAAmBhL,QAAQ3gE,UAAU4gE,oBAAsBD,QAAQ3gE,UAAU+6C,mBAAqB4lB,QAAQ3gE,UAAUmtL,kBAAoBxsH,QAAQ3gE,UAAU86C,sBAE7MsxI,EAAMvxI,QAAU,SAAUl/B,EAASwjB,GACjC,OAAwB,MAApBA,EAASotJ,QACJlxL,EAAEsD,KAAKgd,EAASwjB,EAASA,YAAc9jC,EAAEsD,KAAKgd,EAASwjB,EAASotJ,SAEhElxL,EAAEsD,KAAKgd,EAASwjB,IAM3BitJ,EAAMv8G,QAAU,SAAUl0D,EAASpa,GACjC,IAAIy+B,EACJ,OAAmC,OAA3BA,EAAMrkB,EAAe,UAAaqkB,EAAIz+B,QAAO,GAGvD6qL,EAAMn8G,QAAU,SAAUt0D,EAASpa,EAAKwN,GAKtC,OAJwB,MAApB4M,EAAe,WACjBA,EAAe,SAAI,IAGdA,EAAe,SAAEpa,GAAOwN,GAGjCq9K,EAAMl5K,EAAI,SAAUisB,GAClB,OAAO9hB,MAAMrd,UAAUwG,MAAM7H,KAAKqX,SAASvH,iBAAiB0wB,MAE7DxgC,KAAKC,MACR,WACE,IAAIsU,EAAGk6K,EAAWC,EAClBn6K,EAAIk5K,EAAMl5K,EAEVm6K,EAAYjB,EAAMiB,UAAY,WAC5B,IAAIlsG,EAEJ,OADAA,EAAOnrE,SAAS9S,cAAc,2BACfi+E,EAAK3yE,SAGtB4+K,EAAYhB,EAAMgB,UAAY,WAC5B,IAAIjsG,EAEJ,OADAA,EAAOnrE,SAAS9S,cAAc,2BACfi+E,EAAK3yE,SAGtB49K,EAAMkB,eAAiB,SAAUl+E,GAC/B,IAAI99D,EAGJ,GAAa,OAFbA,EAAQ+7I,KAGN,OAAOj+E,EAAIG,iBAAiB,eAAgBj+D,IAIhD86I,EAAMmB,kBAAoB,WACxB,IAAI/zH,EAAOloB,EAIX,GAHAA,EAAQ+7I,IACR7zH,EAAQ4zH,IAEK,MAAT97I,GAA0B,MAATkoB,EACnB,OAAOtmD,EAAE,oBAAsBsmD,EAAQ,MAAM5qD,SAAQ,SAAUlI,GAC7D,OAAOA,EAAMqI,MAAQuiC,OAI1B3yC,KAAKC,MACR,WACE,IAAI80C,EAAa85I,EAAM3yI,EAASzjB,EAChCyjB,EAAUuxI,EAAMvxI,QAGW,oBAF3BnH,EAAc79B,OAAO69B,gBAGnBA,EAAc,SAAUxmC,EAAOk4B,GAC7B,IAAI9jC,EAGJ,OAFAA,EAAM0U,SAAS+Z,YAAY,gBACvB20C,gBAAgBx3D,EAAOk4B,EAAOiU,QAASjU,EAAOkU,WAAYlU,EAAOgU,QAC9D93C,IAGGtB,UAAY6V,OAAO4uD,MAAMzkE,UACrCo3B,EAAiBsc,EAAY1zC,UAAUo3B,eAEvCsc,EAAY1zC,UAAUo3B,eAAiB,WACrC,IAAI7mB,EAWJ,OAVAA,EAAS6mB,EAAez4B,KAAKC,MAEzBA,KAAK06C,aAAe16C,KAAK4lE,kBAC3BplE,OAAOC,eAAeT,KAAM,mBAAoB,CAC9CU,IAAK,WACH,OAAO,KAKNiR,IAIXi9K,EAAOpB,EAAMoB,KAAO,SAAU9zK,EAAK+C,EAAMzN,GACvC,IAAI9B,EAOJ,OANAA,EAAQ,IAAIwmC,EAAYj3B,EAAM,CAC5B48B,SAAS,EACTC,YAAY,EACZF,OAAQpqC,IAEV0K,EAAIsW,cAAc9iB,IACVA,EAAMs3D,kBAGhB4nH,EAAMqB,eAAiB,SAAUn0K,GAI/B,OAHAk0K,EAAKl0K,EAAE9V,OAAQ,yBACf8V,EAAE8d,iBACF9d,EAAEke,kBACKle,EAAEiyC,4BAGX6gI,EAAMnyG,SAAW,SAAUt+D,EAASwjB,EAAU4Y,EAAWxzC,GACvD,OAAOoX,EAAQjX,iBAAiBqzC,GAAW,SAAUz+B,GACnD,IAAI9V,EAGJ,IAFAA,EAAS8V,EAAE9V,OAEAA,aAAkBm9D,UAAY9lB,EAAQr3C,EAAQ27B,IACvD37B,EAASA,EAAOwgB,WAGlB,GAAIxgB,aAAkBm9D,UAAuC,IAA5Bp8D,EAAQ5F,KAAK6E,EAAQ8V,GAEpD,OADAA,EAAE8d,iBACK9d,EAAEke,uBAId74B,KAAKC,MACR,WACE,IAAI8uL,EAAeJ,EAAgBK,EAAWT,EAAgBU,EAAgBC,EAC9EX,EAAWd,EAAMc,SAAUI,EAAiBlB,EAAMkB,eAAuBlB,EAAMoB,KAC/EE,EAAgB,CACd,IAAK,MACL/yI,KAAM,aACN3E,KAAM,YACN83I,IAAK,4BACLC,KAAM,oCACNC,OAAQ,6FAGV5B,EAAM6B,KAAO,SAAUl4K,GACrB,IAAIq5F,EAmBJ,OAlBAr5F,EAAU63K,EAAe73K,GACzBq5F,EAAMu+E,EAAU53K,GAAS,WACvB,IAAIiqB,EAAK3jB,EAaT,OAZAA,EAAWwxK,EAAwC,OAAvB7tJ,EAAMovE,EAAI/yF,UAAoB2jB,EAAMovE,EAAIyyC,aAAczyC,EAAI8+E,kBAAkB,iBAEnE,IAAjC52K,KAAKG,MAAM23F,EAAIO,OAAS,KACK,oBAApB55F,EAAQo4K,SACjBp4K,EAAQo4K,QAAQ9xK,EAAU+yF,EAAI0yC,WAAY1yC,GAGf,oBAAlBr5F,EAAQkG,OACjBlG,EAAQkG,MAAMI,EAAU+yF,EAAI0yC,WAAY1yC,GAIT,oBAArBr5F,EAAQslD,SAA0BtlD,EAAQslD,SAAS+zC,EAAKA,EAAI0yC,iBAAc,OAGhE,MAAtB/rI,EAAQq4K,aAAuBr4K,EAAQq4K,WAAWh/E,EAAKr5F,MAIvDq5F,EAAIjrE,aAAekrE,eAAeg/E,OAC7Bj/E,EAAIhsE,KAAKrtB,EAAQ/G,WAD1B,IAKF4+K,EAAiB,SAAU73K,GAsBzB,OArBAA,EAAQgqB,IAAMhqB,EAAQgqB,KAAOgT,SAAS1S,KACtCtqB,EAAQnD,KAAOmD,EAAQnD,KAAKgrE,cAEP,QAAjB7nE,EAAQnD,MAAkBmD,EAAQ/G,OAChC+G,EAAQgqB,IAAIx5B,QAAQ,KAAO,EAC7BwP,EAAQgqB,KAAO,IAAMhqB,EAAQ/G,KAE7B+G,EAAQgqB,KAAO,IAAMhqB,EAAQ/G,MAIM,MAAnC0+K,EAAc33K,EAAQu4K,YACxBv4K,EAAQu4K,SAAW,KAGrBv4K,EAAQw4K,OAASb,EAAc33K,EAAQu4K,UAEd,MAArBv4K,EAAQu4K,WACVv4K,EAAQw4K,QAAU,iBAGbx4K,GAGT43K,EAAY,SAAU53K,EAAS45B,GAC7B,IAAIy/D,EAsBJ,OArBAA,EAAM,IAAIC,gBACNhvG,KAAK0V,EAAQnD,KAAMmD,EAAQgqB,KAAK,GACpCqvE,EAAIG,iBAAiB,SAAUx5F,EAAQw4K,QAEX,kBAAjBx4K,EAAQ/G,MACjBogG,EAAIG,iBAAiB,eAAgB,oDAGlCx5F,EAAQy4K,aACXp/E,EAAIG,iBAAiB,mBAAoB,kBAG3C+9E,EAAel+E,GACfA,EAAIozC,kBAAoBzsI,EAAQysI,gBAEhCpzC,EAAI4yC,mBAAqB,WACvB,GAAI5yC,EAAIjrE,aAAekrE,eAAeo/E,KACpC,OAAO9+I,EAAKy/D,IAITA,GAGTy+E,EAAkB,SAAUxxK,EAAUzJ,GACpC,IAAIqH,EAAQ+zK,EAEZ,GAAwB,kBAAb3xK,GAAyC,kBAATzJ,EACzC,GAAIA,EAAK7M,MAAM,YACb,IACEsW,EAAW0c,KAAKjf,MAAMuC,GACtB,MAAOJ,SACJ,GAAIrJ,EAAK7M,MAAM,4BACpBioL,EAASh4K,SAASwN,cAAc,WACzBnhB,aAAa,QAAS6qL,KAC7Bc,EAAOrzI,KAAOt+B,EACdrG,SAASomB,KAAK5X,YAAYwpK,GAAQhqK,WAAWH,YAAYmqK,QACpD,GAAIp7K,EAAK7M,MAAM,sBAAuB,CAC3CkU,EAAS,IAAI61D,UACbl9D,EAAOA,EAAKlW,QAAQ,MAAO,IAE3B,IACE2f,EAAWpC,EAAO81D,gBAAgB1zD,EAAUzJ,GAC5C,MAAOqJ,KAIb,OAAOI,GAGT+vK,EAAM/rJ,KAAO,SAAU1kB,GACrB,OAAOA,EAAQ0kB,MAGjB+rJ,EAAMsC,cAAgB,SAAU3uJ,GAC9B,IAAO4uJ,EAAcC,GACrBD,EAAe34K,SAASwN,cAAc,MACzB6c,KAAO0S,SAAS1S,KAC7BuuJ,EAAY54K,SAASwN,cAAc,KAEnC,IAEE,OADAorK,EAAUvuJ,KAAON,MACN6uJ,EAAUtuJ,UAAmC,MAAvBsuJ,EAAUtuJ,YAAsBsuJ,EAAUx9I,MAAQu9I,EAAaruJ,SAAW,KAAOquJ,EAAav9I,OAASw9I,EAAUtuJ,SAAW,KAAOsuJ,EAAUx9I,MAC9K,MAAOn1B,GAEP,OADIA,GACG,KAGVtd,KAAKC,MACR,WACE,IAAIi8C,EAASg2B,EACbh2B,EAAUuxI,EAAMvxI,QAEhBg2B,EAAU,SAAUv3D,GAClB,OAAO+D,MAAMrd,UAAUwG,MAAM7H,KAAK2a,IAGpC8yK,EAAMyC,iBAAmB,SAAUlzK,EAASmzK,GAC1C,IAAI99E,EAAQ5rE,EAsCZ,OArCA4rE,EAAS,CAACr1F,GAENk/B,EAAQl/B,EAAS,UACnBq1F,EAASngC,EAAQl1D,EAAQg2D,WAG3BvsC,EAAS,GACT4rE,EAAOpiG,SAAQ,SAAUlI,GACvB,GAAKA,EAAM+V,OAAQ/V,EAAM2tB,WAIrBwmB,EAAQn0C,EAAO,wBAInB,OAAIm0C,EAAQn0C,EAAO,UACVmqE,EAAQnqE,EAAMqP,SAASnH,SAAQ,SAAUwuB,GAC9C,GAAIA,EAAOjwB,SACT,OAAOi4B,EAAOx4B,KAAK,CACjB6P,KAAM/V,EAAM+V,KACZ1N,MAAOquB,EAAOruB,WAIXrI,EAAM8I,UAAoE,IAAzD,CAAC,QAAS,WAAY,UAAUjJ,QAAQG,EAAMkM,MACjEwyB,EAAOx4B,KAAK,CACjB6P,KAAM/V,EAAM+V,KACZ1N,MAAOrI,EAAMqI,aAHV,KAQL+/K,GACF1pJ,EAAOx4B,KAAKkiL,GAGP1pJ,EAAOxd,KAAI,SAAU4xC,GAC1B,OAAkB,MAAdA,EAAM/8C,KACDjD,mBAAmBggD,EAAM/8C,MAAQ,IAAMjD,mBAAmBggD,EAAMzqD,OAEhEyqD,KAERxkD,KAAK,MAGVo3K,EAAMhoI,aAAe,SAAUumD,EAAMxrE,GACnC,OAAI0b,EAAQ8vD,EAAM,QACT95B,EAAQ85B,EAAKh5B,UAAUh6C,QAAO,SAAUvpB,GAC7C,OAAOysC,EAAQzsC,EAAI+wB,MAGd0xC,EAAQ85B,EAAKl8F,iBAAiB0wB,MAGxCxgC,KAAKC,MACR,WACE,IAAImwL,EAAavB,EAAMC,EACvBD,EAAOpB,EAAMoB,KAAMC,EAAiBrB,EAAMqB,eAE1CrB,EAAM4C,cAAgB,SAAU11K,GAC9B,IAAKy1K,EAAYnwL,MACf,OAAO6uL,EAAen0K,IAI1B8yK,EAAM6C,QAAU,SAAUzyK,EAASb,GACjC,OAAOszK,QAAQzyK,IAGjBuyK,EAAc,SAAUpzK,GACtB,IAAIuzK,EAAQttL,EAAU4a,EAGtB,KAFAA,EAAUb,EAAQ1Z,aAAa,iBAG7B,OAAO,EAKT,GAFAitL,GAAS,EAEL1B,EAAK7xK,EAAS,WAAY,CAC5B,IACEuzK,EAAS9C,EAAM6C,QAAQzyK,EAASb,GAChC,MAAOM,IAETra,EAAW4rL,EAAK7xK,EAAS,mBAAoB,CAACuzK,IAGhD,OAAOA,GAAUttL,IAElBjD,KAAKC,MACR,WACE,IAAIuwL,EAAoBC,EAAqBC,EAAoBC,EAAmBC,EAAoBC,EAAmBprI,EAAcyrB,EAAS4/G,EAAe50I,EAASo1B,EAASw9G,EACnL5yI,EAAUuxI,EAAMvxI,QAASg1B,EAAUu8G,EAAMv8G,QAASI,EAAUm8G,EAAMn8G,QAASw9G,EAAiBrB,EAAMqB,eAAgBrpI,EAAegoI,EAAMhoI,aAEvIgoI,EAAMsD,sBAAwB,SAAUp2K,GAItC,GAFU1a,UAEEy1B,SACV,OAAOo5J,EAAen0K,IAI1B8yK,EAAMuD,cAAgB,SAAUr2K,GAC9B,IAAIqC,EAEJ,GAAIrC,aAAamrD,MAAO,CACtB,GAAIgrH,EAAcn2K,GAChB,OAGFqC,EAAUrC,EAAE9V,YAEZmY,EAAUrC,EAGZ,OAAIuhC,EAAQl/B,EAASywK,EAAMU,qBAClB0C,EAAkB7zK,GAChBk/B,EAAQl/B,EAASywK,EAAMW,wBAA0BlyI,EAAQl/B,EAASywK,EAAMQ,oBAC1E0C,EAAkB3zK,GAChBk/B,EAAQl/B,EAASywK,EAAMK,oBACzB8C,EAAmB5zK,QADrB,GAKTywK,EAAMwD,eAAiB,SAAUt2K,GAC/B,IAAIqC,EAGJ,OAFAA,EAAUrC,aAAamrD,MAAQnrD,EAAE9V,OAAS8V,EAEtCuhC,EAAQl/B,EAASywK,EAAMU,qBAClBuC,EAAmB1zK,GACjBk/B,EAAQl/B,EAASywK,EAAMW,wBAA0BlyI,EAAQl/B,EAASywK,EAAMO,qBAC1EwC,EAAmBxzK,GACjBk/B,EAAQl/B,EAASywK,EAAMK,oBACzB2C,EAAoBzzK,QADtB,GAKT0zK,EAAqB,SAAU1zK,GAC7B,IAAIk0K,EAEJ,IAAIhgH,EAAQl0D,EAAS,gBAYrB,OANmB,OAFnBk0K,EAAcl0K,EAAQ1Z,aAAa,wBAGjCguE,EAAQt0D,EAAS,kBAAmBA,EAAQrZ,WAC5CqZ,EAAQrZ,UAAYutL,GAGtBl0K,EAAQjX,iBAAiB,QAAS+oL,GAC3Bx9G,EAAQt0D,EAAS,gBAAgB,IAG1C6zK,EAAoB,SAAU7zK,GAC5B,IAAIm0K,EASJ,OANoB,OAFpBA,EAAejgH,EAAQl0D,EAAS,sBAG9BA,EAAQrZ,UAAYwtL,EACpB7/G,EAAQt0D,EAAS,kBAAmB,OAGtCA,EAAQhX,oBAAoB,QAAS8oL,GAC9Bx9G,EAAQt0D,EAAS,eAAgB,OAG1CyzK,EAAsB,SAAUzkF,GAC9B,OAAOvmD,EAAaumD,EAAMyhF,EAAMO,qBAAqB/9K,QAAQugL,IAG/DA,EAAqB,SAAUxzK,GAC7B,IAAIk0K,EAEJ,IAAIhgH,EAAQl0D,EAAS,gBAiBrB,OAXmB,OAFnBk0K,EAAcl0K,EAAQ1Z,aAAa,wBAG7B44C,EAAQl/B,EAAS,WACnBs0D,EAAQt0D,EAAS,kBAAmBA,EAAQrZ,WAC5CqZ,EAAQrZ,UAAYutL,IAEpB5/G,EAAQt0D,EAAS,kBAAmBA,EAAQ5M,OAC5C4M,EAAQ5M,MAAQ8gL,IAIpBl0K,EAAQ0Y,UAAW,EACZ47C,EAAQt0D,EAAS,gBAAgB,IAG1C4zK,EAAqB,SAAU5kF,GAC7B,OAAOvmD,EAAaumD,EAAMyhF,EAAMQ,oBAAoBh+K,QAAQ0gL,IAG9DA,EAAoB,SAAU3zK,GAC5B,IAAIm0K,EAcJ,OAXoB,OAFpBA,EAAejgH,EAAQl0D,EAAS,sBAG1Bk/B,EAAQl/B,EAAS,UACnBA,EAAQrZ,UAAYwtL,EAEpBn0K,EAAQ5M,MAAQ+gL,EAGlB7/G,EAAQt0D,EAAS,kBAAmB,OAGtCA,EAAQ0Y,UAAW,EACZ47C,EAAQt0D,EAAS,eAAgB,OAG1C8zK,EAAgB,SAAUviL,GACxB,IAAI8yB,EAAKovE,EAET,OAA2E,OAA5D,OADfA,EAA8B,OAAvBpvE,EAAM9yB,EAAMksC,QAAkBpZ,EAAI,QAAK,GACxBovE,EAAI8+E,kBAAkB,uBAAoB,KAEjEvvL,KAAKC,MACR,WACE,IAAI6uL,EACJA,EAAiBrB,EAAMqB,eAEvBrB,EAAM2D,aAAe,SAAUz2K,GAC7B,IAAI8zK,EAAWC,EAAW1iF,EAAMqlF,EAAa3vJ,EAAMmzC,EAAMnkB,EAIzD,GAFAA,GADAmkB,EAAO50E,MACOqD,aAAa,eAwB3B,OAlBAo+B,EAAO+rJ,EAAM/rJ,KAAKmzC,GAClB65G,EAAYjB,EAAMiB,YAClBD,EAAYhB,EAAMgB,YAClBziF,EAAO30F,SAASwN,cAAc,QAC9BwsK,EAAc,gCAAkC3gI,EAAS,qBAExC,MAAb+9H,GAAkC,MAAbC,GAAsBjB,EAAMsC,cAAcruJ,KACjE2vJ,GAAe,gBAAkB5C,EAAY,YAAcC,EAAY,sBAGzE2C,GAAe,0BACfrlF,EAAKt7C,OAAS,OACds7C,EAAK1kE,OAAS5F,EACdsqE,EAAKnnG,OAASgwE,EAAKhwE,OACnBmnG,EAAKroG,UAAY0tL,EACjBrlF,EAAKp7F,MAAMwc,QAAU,OACrB/V,SAASyY,KAAKjK,YAAYmmF,GAC1BA,EAAKznG,cAAc,mBAAmBu1B,QAC/Bg1J,EAAen0K,KAEvB3a,KAAKC,MACR,WACE,IAAIqvL,EACAT,EACA39G,EACA6+G,EACAuB,EACAp1I,EACAg0I,EACA5+G,EACAw9G,EACAjnL,EAAQ,GAAGA,MACfq0C,EAAUuxI,EAAMvxI,QAASg1B,EAAUu8G,EAAMv8G,QAASI,EAAUm8G,EAAMn8G,QAASu9G,EAAOpB,EAAMoB,KAAMC,EAAiBrB,EAAMqB,eAAgBQ,EAAO7B,EAAM6B,KAAMS,EAAgBtC,EAAMsC,cAAeG,EAAmBzC,EAAMyC,iBAEtNoB,EAAW,SAAUt0K,GACnB,IAAI5M,EAEJ,OAAgB,OADhBA,EAAQ4M,EAAQ1Z,aAAa,iBACK,UAAV8M,GAG1Bq9K,EAAM8D,aAAe,SAAU52K,GAC7B,IAAImpC,EAAQzzC,EAAMs/K,EAAU3yK,EAAS0zC,EAAQtvB,EAAKyiH,EAGlD,OAAKytC,EAFLt0K,EAAU/c,QAML4uL,EAAK7xK,EAAS,gBAKnB6mI,EAAkB7mI,EAAQ1Z,aAAa,yBACvCqsL,EAAW3yK,EAAQ1Z,aAAa,cAAgB,SAE5C44C,EAAQl/B,EAASywK,EAAMK,qBACzBhqI,EAASotB,EAAQl0D,EAAS,qBAC1B0zC,EAASwgB,EAAQl0D,EAAS,iCAAmCA,EAAQ0zC,OACrEtvB,EAAM8vC,EAAQl0D,EAAS,iCAAmCA,EAAQ1Z,aAAa,WAAa8wC,SAAS1S,KAExE,QAAzBgvB,EAAOuuB,gBACT79C,EAAMA,EAAIrjC,QAAQ,QAAS,KAGL,wBAApBif,EAAQw0K,SACVnhL,EAAO,IAAIuhE,SAAS50D,GAEN,MAAV8mC,GACFzzC,EAAKqhC,OAAOoS,EAAOhmC,KAAMgmC,EAAO1zC,QAGlCC,EAAO6/K,EAAiBlzK,EAAS8mC,GAGnCwtB,EAAQt0D,EAAS,oBAAqB,MACtCs0D,EAAQt0D,EAAS,+BAAgC,MACjDs0D,EAAQt0D,EAAS,+BAAgC,OACxCk/B,EAAQl/B,EAASywK,EAAME,sBAAwBzxI,EAAQl/B,EAASywK,EAAMI,sBAC/En9H,EAAS1zC,EAAQ1Z,aAAa,eAC9B89B,EAAMpkB,EAAQ1Z,aAAa,YAC3B+M,EAAO6/K,EAAiBlzK,EAASA,EAAQ1Z,aAAa,kBAEtDotD,EAAS1zC,EAAQ1Z,aAAa,eAC9B89B,EAAMqsJ,EAAM/rJ,KAAK1kB,GACjB3M,EAAO2M,EAAQ1Z,aAAa,gBAG9BgsL,EAAK,CACHr7K,KAAMy8C,GAAU,MAChBtvB,IAAKA,EACL/wB,KAAMA,EACNs/K,SAAUA,EACVF,WAAY,SAAUh/E,EAAKr5F,GACzB,OAAIy3K,EAAK7xK,EAAS,kBAAmB,CAACyzF,EAAKr5F,IAClCy3K,EAAK7xK,EAAS,YAAa,CAACyzF,KAEnCo+E,EAAK7xK,EAAS,iBACP,IAGXwyK,QAAS,WACP,IAAI/qK,EAEJ,OADAA,EAAO,GAAK1gB,UAAUkE,OAASJ,EAAM7H,KAAK+D,UAAW,GAAK,GACnD8qL,EAAK7xK,EAAS,eAAgByH,IAEvCnH,MAAO,WACL,IAAImH,EAEJ,OADAA,EAAO,GAAK1gB,UAAUkE,OAASJ,EAAM7H,KAAK+D,UAAW,GAAK,GACnD8qL,EAAK7xK,EAAS,aAAcyH,IAErCi4C,SAAU,WACR,IAAIj4C,EAEJ,OADAA,EAAO,GAAK1gB,UAAUkE,OAASJ,EAAM7H,KAAK+D,UAAW,GAAK,GACnD8qL,EAAK7xK,EAAS,gBAAiByH,IAExCorK,YAAaE,EAAc3uJ,GAC3ByiH,gBAAoC,MAAnBA,GAA+C,UAApBA,IAEvCirC,EAAen0K,KAtEpBk0K,EAAK7xK,EAAS,iBACP,KAwEXywK,EAAMgE,sBAAwB,SAAU92K,GACtC,IAAImpC,EAAQkoD,EAIZ,GAFAA,GADAloD,EAAS7jD,MACK+rG,KAed,OATIloD,EAAOhmC,MACTwzD,EAAQ06B,EAAM,oBAAqB,CACjCluF,KAAMgmC,EAAOhmC,KACb1N,MAAO0zC,EAAO1zC,QAIlBkhE,EAAQ06B,EAAM,4BAA6BloD,EAAO4tI,gBAClDpgH,EAAQ06B,EAAM,+BAAgCloD,EAAOxgD,aAAa,eAC3DguE,EAAQ06B,EAAM,+BAAgCloD,EAAOxgD,aAAa,gBAG3EmqL,EAAMkE,0BAA4B,SAAUh3K,GAC1C,IAAItK,EAAMuhL,EAAyClhI,EAQnD,GAPOzwD,KACPywD,GADOzwD,KACQqD,aAAa,gBAAkB,OAAO27E,cACrD5uE,EAFOpQ,KAEKqD,aAAa,eAEzBsuL,GADYj3K,EAAE62D,SAAW72D,EAAEie,UACsB,QAAX83B,IAAqBrgD,EACxB,MAAZsK,EAAEmpC,QAA+B,IAAbnpC,EAAEmpC,QAEjB8tI,EAC1B,OAAOj3K,EAAEiyC,6BAGZ5sD,KAAKC,MACR,WACE,IAAIsU,EAAGo6K,EAAgBrzG,EAAU21G,EAAgBD,EAAenC,EAAM4C,EAAuBvgH,EAASm/G,EAAeU,EAAuBK,EAAcG,EAAcjD,EAAcqD,EAA2B/C,EAGjN,GAFAC,EAAOpB,EAAMoB,KAAMvzG,EAAWmyG,EAAMnyG,SAAUpK,EAAUu8G,EAAMv8G,QAAS38D,EAAIk5K,EAAMl5K,EAAGq6K,EAAoBnB,EAAMmB,kBAAmBD,EAAiBlB,EAAMkB,eAAgBL,EAAeb,EAAMa,aAAc0C,EAAgBvD,EAAMuD,cAAeC,EAAiBxD,EAAMwD,eAAgBF,EAAwBtD,EAAMsD,sBAAuBV,EAAgB5C,EAAM4C,cAAesB,EAA4BlE,EAAMkE,0BAA2BJ,EAAe9D,EAAM8D,aAAcE,EAAwBhE,EAAMgE,sBAAuBL,EAAe3D,EAAM2D,aAErgB,qBAAXvwJ,QAAqC,OAAXA,QAAkC,MAAfA,OAAOyuJ,KAAc,CAC3E,GAAIzuJ,OAAOgxJ,MACT,MAAM,IAAIvvL,MAAM,kEAGlBu+B,OAAOgxJ,MAAQpE,EACf5sJ,OAAOixJ,eAAc,SAAU16K,EAAS26K,EAAiBthF,GACvD,IAAKr5F,EAAQy4K,YACX,OAAOlB,EAAel+E,MAK5Bg9E,EAAMhrJ,MAAQ,WACZ,GAAIvrB,OAAO86K,cACT,MAAM,IAAI1vL,MAAM,sCAiDlB,OA9CA4U,OAAOnR,iBAAiB,YAAY,WAMlC,OALAwO,EAAEk5K,EAAMQ,oBAAoBh+K,SAAQ,SAAUR,GAC5C,GAAIyhE,EAAQzhE,EAAI,gBACd,OAAOuhL,EAAcvhL,MAGlB8E,EAAEk5K,EAAMU,qBAAqBl+K,SAAQ,SAAUR,GACpD,GAAIyhE,EAAQzhE,EAAI,gBACd,OAAOuhL,EAAcvhL,SAI3B6rE,EAASjkE,SAAUo2K,EAAMU,oBAAqB,gBAAiB6C,GAC/D11G,EAASjkE,SAAUo2K,EAAMU,oBAAqB,eAAgB6C,GAC9D11G,EAASjkE,SAAUo2K,EAAMW,sBAAuB,gBAAiB4C,GACjE11G,EAASjkE,SAAUo2K,EAAMW,sBAAuB,eAAgB4C,GAChE11G,EAASjkE,SAAUo2K,EAAMC,kBAAmB,QAASiE,GACrDr2G,EAASjkE,SAAUo2K,EAAMC,kBAAmB,QAASqD,GACrDz1G,EAASjkE,SAAUo2K,EAAMC,kBAAmB,QAAS2C,GACrD/0G,EAASjkE,SAAUo2K,EAAMC,kBAAmB,QAASuD,GACrD31G,EAASjkE,SAAUo2K,EAAMC,kBAAmB,QAAS6D,GACrDj2G,EAASjkE,SAAUo2K,EAAMC,kBAAmB,QAAS0D,GACrD91G,EAASjkE,SAAUo2K,EAAME,oBAAqB,QAASgE,GACvDr2G,EAASjkE,SAAUo2K,EAAME,oBAAqB,QAASoD,GACvDz1G,EAASjkE,SAAUo2K,EAAME,oBAAqB,QAAS0C,GACvD/0G,EAASjkE,SAAUo2K,EAAME,oBAAqB,QAASsD,GACvD31G,EAASjkE,SAAUo2K,EAAME,oBAAqB,QAAS4D,GACvDj2G,EAASjkE,SAAUo2K,EAAMI,oBAAqB,SAAUkD,GACxDz1G,EAASjkE,SAAUo2K,EAAMI,oBAAqB,SAAUwC,GACxD/0G,EAASjkE,SAAUo2K,EAAMI,oBAAqB,SAAU0D,GACxDj2G,EAASjkE,SAAUo2K,EAAMK,mBAAoB,SAAUiD,GACvDz1G,EAASjkE,SAAUo2K,EAAMK,mBAAoB,SAAUuC,GACvD/0G,EAASjkE,SAAUo2K,EAAMK,mBAAoB,SAAUyD,GACvDj2G,EAASjkE,SAAUo2K,EAAMK,mBAAoB,UAAU,SAAUnzK,GAC/D,OAAO/Y,YAAW,WAChB,OAAOqvL,EAAet2K,KACrB,OAEL2gE,EAASjkE,SAAUo2K,EAAMK,mBAAoB,YAAamD,GAC1D31G,EAASjkE,SAAUo2K,EAAMK,mBAAoB,gBAAiBkD,GAC9D11G,EAASjkE,SAAUo2K,EAAMM,uBAAwB,QAAS4D,GAC1Dr2G,EAASjkE,SAAUo2K,EAAMM,uBAAwB,QAASgD,GAC1Dz1G,EAASjkE,SAAUo2K,EAAMM,uBAAwB,QAASsC,GAC1D/0G,EAASjkE,SAAUo2K,EAAMM,uBAAwB,QAAS0D,GAC1Dp6K,SAAStR,iBAAiB,mBAAoB6oL,GAC9Cv3K,SAAStR,iBAAiB,mBAAoBuoL,GACvCp3K,OAAO86K,eAAgB,GAG5B96K,OAAOu2K,QAAUA,GAASoB,EAAKx3K,SAAU,yBAC3Co2K,EAAMhrJ,SAEPziC,KAAKC,QACPD,KAAKC,MAE0BkI,EAAOC,QACvCD,EAAOC,QAAUqlL,OAEL,2BAAZ,KAAY,oCAEbztL,KAAKC,O,qBChyBR,IAAIua,EAAiB,GAAGA,eAExBrS,EAAOC,QAAU,SAAU4M,EAAIpS,GAC7B,OAAO4X,EAAexa,KAAKgV,EAAIpS,K,kCCDjCnC,OAAOC,eAAe0H,EAAS,aAAc,CAC3CgI,OAAO,K,sBCIA,SAAUrV,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,OAGvGC,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,kCCLlH,IAAIgiL,EAAoB,EAAQ,QAA+BA,kBAC3Dt5I,EAAS,EAAQ,QACjBppB,EAA2B,EAAQ,QACnCuxB,EAAiB,EAAQ,QACzBk+G,EAAY,EAAQ,QAEpBulC,EAAa,WAAc,OAAOhyL,MAEtCkI,EAAOC,QAAU,SAAU8pL,EAAqBC,EAAMphJ,GACpD,IAAIuuG,EAAgB6yC,EAAO,YAI3B,OAHAD,EAAoB7wL,UAAYglC,EAAOs5I,EAAmB,CAAE5uI,KAAM9zB,EAAyB,EAAG8zB,KAC9FvC,EAAe0jJ,EAAqB5yC,GAAe,GAAO,GAC1DoN,EAAUpN,GAAiB2yC,EACpBC,I,sBCNA,SAAUn3L,GACjB,aAEA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAI9T,EAAS,CACXrB,EAAG,CAAC,kBAAgB,iBAAe,iBACnCC,GAAI,CAACa,EAAS,UAAWA,EAAS,YAClCZ,EAAG,CAAC,gBAAc,gBAClBC,GAAI,CAACW,EAAS,UAAWA,EAAS,YAClCV,EAAG,CAAC,eAAa,YAAa,eAC9BC,GAAI,CAACS,EAAS,SAAUA,EAAS,UACjCR,EAAG,CAAC,kBAAa,kBACjBE,EAAG,CAAC,UAAW,WAAY,cAC3BC,GAAI,CAACK,EAAS,OAAQA,EAAS,SAC/BJ,EAAG,CAAC,eAAa,QAAS,gBAC1BC,GAAI,CAACG,EAAS,SAAUA,EAAS,YAGnC,OAAIoU,EACK7T,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAGhD+O,EAAW9T,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAGxC7H,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gGAA6FC,MAAM,KAC3GC,YAAa,gEAA6DD,MAAM,KAChFE,SAAU,sFAAiEF,MAAM,KACjFG,cAAe,gBAAgBH,MAAM,KACrCI,YAAa,gBAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,cACTC,SAAU,wBACVC,QAAS,aACTC,SAAU,oBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,eACRC,KAAM,YACNC,EAAG2nJ,EACH1nJ,GAAI0nJ,EACJznJ,EAAGynJ,EACHxnJ,GAAIwnJ,EACJvnJ,EAAGunJ,EACHtnJ,GAAIsnJ,EACJrnJ,EAAGqnJ,EACHpnJ,GAAI,cACJC,EAAGmnJ,EACHlnJ,GAAIknJ,EACJjnJ,EAAGinJ,EACHhnJ,GAAIgnJ,GAEN/mJ,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KArEuFC,CAAQ,EAAQ,U,kCCNlH,IAAIssC,EAAkB,EAAQ,QAC1BmoJ,EAAmB,EAAQ,QAC3B1lC,EAAY,EAAQ,QACpBh+G,EAAsB,EAAQ,QAC9Bi3E,EAAiB,EAAQ,QAEzB0sE,EAAiB,iBACjB/iJ,EAAmBZ,EAAoBhpC,IACvCmgH,EAAmBn3E,EAAoBc,UAAU6iJ,GAYrDlqL,EAAOC,QAAUu9G,EAAejnG,MAAO,SAAS,SAAUonG,EAAUj1E,GAClEvB,EAAiBrvC,KAAM,CACrBgU,KAAMo+K,EACNxtL,OAAQolC,EAAgB67E,GACxB99G,MAAO,EACP6oC,KAAMA,OAIP,WACD,IAAItL,EAAQsgF,EAAiB5lH,MACzB4E,EAAS0gC,EAAM1gC,OACfgsC,EAAOtL,EAAMsL,KACb7oC,EAAQu9B,EAAMv9B,QAClB,OAAKnD,GAAUmD,GAASnD,EAAOoD,QAC7Bs9B,EAAM1gC,YAASoC,EACR,CAAEmJ,WAAOnJ,EAAW+pC,MAAM,IAEvB,QAARH,EAAuB,CAAEzgC,MAAOpI,EAAOgpC,MAAM,GACrC,UAARH,EAAyB,CAAEzgC,MAAOvL,EAAOmD,GAAQgpC,MAAM,GACpD,CAAE5gC,MAAO,CAACpI,EAAOnD,EAAOmD,IAASgpC,MAAM,KAC7C,UAKH07G,EAAU4lC,UAAY5lC,EAAUhuI,MAGhC0zK,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,Y,sBCpDjB,YAUA,IASIG,EAAS,aAGTC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAet6K,SAGfu6K,EAA8B,iBAAV1qL,GAAsBA,GAAUA,EAAOzH,SAAWA,QAAUyH,EAGhF2qL,EAA0B,iBAARrnK,MAAoBA,MAAQA,KAAK/qB,SAAWA,QAAU+qB,KAGxEvnB,EAAO2uL,GAAcC,GAAYv8I,SAAS,cAATA,GAUjCw8I,EAPcryL,OAAOY,UAOQ0X,SAG7Bg6K,EAAYp6K,KAAKmS,IACjBkoK,EAAYr6K,KAAKkS,IAkBjBvQ,EAAM,WACR,OAAOrW,EAAKkU,KAAKmC,OAkNnB,SAASjB,EAASjJ,GAChB,IAAI6D,SAAc7D,EAClB,QAASA,IAAkB,UAAR6D,GAA4B,YAARA,GA8EzC,SAASg/K,EAAS7iL,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAGT,GAjCF,SAAkBA,GAChB,MAAuB,iBAATA,GAvBhB,SAAsBA,GACpB,QAASA,GAAyB,iBAATA,EAsBU8iL,CAAa9iL,IAhUlC,mBAgU4C0iL,EAAe9yL,KAAKoQ,GAgC1E+iL,CAAS/iL,GACX,OApWM,IAuWR,GAAIiJ,EAASjJ,GAAQ,CACnB,IAAIqvH,EAAgC,mBAAjBrvH,EAAMg3G,QAAwBh3G,EAAMg3G,UAAYh3G,EACnEA,EAAQiJ,EAASomH,GAASA,EAAQ,GAAKA,EAGzC,GAAoB,iBAATrvH,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAGhCA,EAAQA,EAAMrS,QAAQw0L,EAAQ,IAC9B,IAAIa,EAAWX,EAAWt0L,KAAKiS,GAC/B,OAAOgjL,GAAYV,EAAUv0L,KAAKiS,GAASuiL,EAAaviL,EAAMvI,MAAM,GAAIurL,EAAW,EAAI,GAAKZ,EAAWr0L,KAAKiS,GAlXpG,KAkXoHA,EAG9HjI,EAAOC,QA/PP,SAAkB2P,EAAMsM,EAAMjN,GAC5B,IAAIi8K,EACAC,EACAC,EACA3hL,EACA4hL,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAAR97K,EACT,MAAM,IAAImT,UAtIQ,uBAkJpB,SAAS4oK,EAAWhwJ,GAClB,IAAIrf,EAAO4uK,EACP11E,EAAU21E,EAId,OAHAD,EAAWC,OAAWrsL,EACtBysL,EAAiB5vJ,EACjBlyB,EAASmG,EAAKjU,MAAM65G,EAASl5F,GAI/B,SAASsvK,EAAYjwJ,GAMnB,OAJA4vJ,EAAiB5vJ,EAEjB0vJ,EAAU5xL,WAAWoyL,EAAc3vK,GAE5BsvK,EAAUG,EAAWhwJ,GAAQlyB,EAUtC,SAASqiL,EAAanwJ,GACpB,IAAIowJ,EAAoBpwJ,EAAO2vJ,EAK/B,YAAwBxsL,IAAjBwsL,GAA8BS,GAAqB7vK,GAAQ6vK,EAAoB,GAAKN,GAJjE9vJ,EAAO4vJ,GAI2FH,EAG9H,SAASS,IACP,IAAIlwJ,EAAOxpB,IAEX,GAAI25K,EAAanwJ,GACf,OAAOqwJ,EAAarwJ,GAItB0vJ,EAAU5xL,WAAWoyL,EAxBvB,SAAuBlwJ,GACrB,IAEIlyB,EAASyS,GAFWyf,EAAO2vJ,GAG/B,OAAOG,EAASZ,EAAUphL,EAAQ2hL,GAFRzvJ,EAAO4vJ,IAEkC9hL,EAoBhCwiL,CAActwJ,IAGnD,SAASqwJ,EAAarwJ,GAIpB,OAHA0vJ,OAAUvsL,EAGN4sL,GAAYR,EACPS,EAAWhwJ,IAGpBuvJ,EAAWC,OAAWrsL,EACf2K,GAgBT,SAASyiL,IACP,IAAIvwJ,EAAOxpB,IACPg6K,EAAaL,EAAanwJ,GAK9B,GAJAuvJ,EAAWtvL,UACXuvL,EAAWrzL,KACXwzL,EAAe3vJ,EAEXwwJ,EAAY,CACd,QAAgBrtL,IAAZusL,EACF,OAAOO,EAAYN,GAGrB,GAAIG,EAGF,OADAJ,EAAU5xL,WAAWoyL,EAAc3vK,GAC5ByvK,EAAWL,GAQtB,YAJgBxsL,IAAZusL,IACFA,EAAU5xL,WAAWoyL,EAAc3vK,IAG9BzS,EAKT,OA3GAyS,EAAO4uK,EAAS5uK,IAAS,EAErBhL,EAASjC,KACXu8K,IAAYv8K,EAAQu8K,QAEpBJ,GADAK,EAAS,YAAax8K,GACH27K,EAAUE,EAAS77K,EAAQm8K,UAAY,EAAGlvK,GAAQkvK,EACrEM,EAAW,aAAcz8K,IAAYA,EAAQy8K,SAAWA,GAmG1DQ,EAAU/5H,OAvCV,gBACkBrzD,IAAZusL,GACF/xL,aAAa+xL,GAGfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUvsL,GAkCjDotL,EAAUE,MA/BV,WACE,YAAmBttL,IAAZusL,EAAwB5hL,EAASuiL,EAAa75K,MA+BhD+5K,K,4CCtPA,SAAUt5L,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,yFAAyFC,MAAM,KACvGC,YAAa,qDAAqDD,MAAM,KACxEE,SAAU,+EAA+EF,MAAM,KAC/FG,cAAe,+BAA+BH,MAAM,KACpDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EAEpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,iBACTC,QAAS,gBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,wBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,UACRC,KAAM,cACNC,EAAG,mBACHC,GAAI,YACJC,EAAG,QACHC,GAAI,WACJC,EAAG,MACHC,GAAI,SACJC,EAAG,UACHC,GAAI,aACJC,EAAG,MACHC,GAAI,SACJC,EAAG,WACHC,GAAI,cAENC,uBAAwB,mCAExBC,QAAS,SAAUC,GACjB,IACI6oH,EAAS,GAeb,OAhBQ7oH,EAMA,GAEJ6oH,EADQ,KAPJ7oH,GAOgB,KAPhBA,GAO4B,KAP5BA,GAOwC,KAPxCA,GAOoD,MAPpDA,EAQK,MAEA,MAVLA,EAYO,IACb6oH,EAXW,CAAC,GAAI,KAAM,KAAM,MAAO,MAAO,KAAM,KAAM,KAAM,MAAO,MAAO,MAC5E,KAAM,MAAO,KAAM,KAAM,MAAO,KAAM,KAAM,MAAO,KAAM,OAHjD7oH,IAgBDA,EAAS6oH,GAElB3oH,KAAM,CACJC,IAAK,EAELC,IAAK,KApEuFC,CAAQ,EAAQ,U,sBCAzG,SAAU5C,GACjB,aAEA,IAAIwyH,EAAQ,CACV9wH,GAAI,4CACJC,EAAG,uCACHC,GAAI,yCACJC,EAAG,gCACHC,GAAI,iCACJC,EAAG,0BACHC,GAAI,2BACJC,EAAG,2CACHC,GAAI,gDACJC,EAAG,wBACHC,GAAI,yBAGN,SAASq3L,EAAiBl3L,EAAQoU,EAAe9O,EAAK+O,GACpD,OAAID,EACK,uBAEAC,EAAW,iCAAoB,kBAI1C,SAAS8iL,EAAkBn3L,EAAQoU,EAAe9O,EAAK+O,GACrD,OAAOD,EAAgB2I,EAAMzX,GAAK,GAAK+O,EAAW0I,EAAMzX,GAAK,GAAKyX,EAAMzX,GAAK,GAG/E,SAAS8xL,EAAQp3L,GACf,OAAOA,EAAS,KAAO,GAAKA,EAAS,IAAMA,EAAS,GAGtD,SAAS+c,EAAMzX,GACb,OAAO2qH,EAAM3qH,GAAK1H,MAAM,KAG1B,SAASuW,EAAUnU,EAAQoU,EAAe9O,EAAK+O,GAC7C,IAAIC,EAAStU,EAAS,IAEtB,OAAe,IAAXA,EACKsU,EAAS6iL,EAAkBn3L,EAAQoU,EAAe9O,EAAI,GAAI+O,GACxDD,EACFE,GAAU8iL,EAAQp3L,GAAU+c,EAAMzX,GAAK,GAAKyX,EAAMzX,GAAK,IAE1D+O,EACKC,EAASyI,EAAMzX,GAAK,GAEpBgP,GAAU8iL,EAAQp3L,GAAU+c,EAAMzX,GAAK,GAAKyX,EAAMzX,GAAK,IAK3D7H,EAAOC,aAAa,KAAM,CACjCC,OAAQ,CACN4C,OAAQ,iJAAoG3C,MAAM,KAClH0C,WAAY,2HAAkG1C,MAAM,KACpH4C,SAAU,+DAEZ3C,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,CACRyC,OAAQ,sIAAoF3C,MAAM,KAClG0C,WAAY,0GAA2F1C,MAAM,KAC7G4C,SAAU,cAEZzC,cAAe,wCAA8BH,MAAM,KACnDI,YAAa,sBAAiBJ,MAAM,KACpC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,sCACLC,KAAM,4CACNisB,EAAG,aACHy5H,GAAI,wBACJC,IAAK,sCACLz/E,KAAM,4CAERjmE,SAAU,CACRC,QAAS,qBACTC,QAAS,aACTC,SAAU,UACVC,QAAS,aACTC,SAAU,+BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,gBACNC,EAAGg4L,EACH/3L,GAAIgV,EACJ/U,EAAG+3L,EACH93L,GAAI8U,EACJ7U,EAAG63L,EACH53L,GAAI4U,EACJ3U,EAAG23L,EACH13L,GAAI0U,EACJzU,EAAGy3L,EACHx3L,GAAIwU,EACJvU,EAAGu3L,EACHt3L,GAAIsU,GAENrU,uBAAwB,cACxBC,QAAS,SAAUC,GACjB,OAAOA,EAAS,QAElBE,KAAM,CACJC,IAAK,EAELC,IAAK,KAhHuFC,CAAQ,EAAQ,U,qBCNlH,IAAIuK,EAAS,EAAQ,QACjB82C,EAA2B,EAAQ,QAAmDvoC,EACtF4oI,EAA8B,EAAQ,QACtC/wG,EAAW,EAAQ,QACnB81G,EAAY,EAAQ,QACpBuwC,EAA4B,EAAQ,QACpCC,EAAW,EAAQ,QAgBvBzsL,EAAOC,QAAU,SAAUgP,EAAS3P,GAClC,IAGY5C,EAAQjC,EAAKiyL,EAAgBC,EAAgBhlI,EAHrDilI,EAAS39K,EAAQvS,OACjBmwL,EAAS59K,EAAQlP,OACjB+sL,EAAS79K,EAAQ89K,KASrB,GANErwL,EADEmwL,EACO9sL,EACA+sL,EACA/sL,EAAO6sL,IAAW3wC,EAAU2wC,EAAQ,KAEnC7sL,EAAO6sL,IAAW,IAAI1zL,UAEtB,IAAKuB,KAAO6E,EAAQ,CAQ9B,GAPAqtL,EAAiBrtL,EAAO7E,GAGtBiyL,EAFEz9K,EAAQutI,aACV70F,EAAa9Q,EAAyBn6C,EAAQjC,KACfktD,EAAW1/C,MACpBvL,EAAOjC,IACtBgyL,EAASI,EAASpyL,EAAMmyL,GAAUE,EAAS,IAAM,KAAOryL,EAAKwU,EAAQ1C,cAE5CzN,IAAnB4tL,EAA8B,CAC3C,UAAWC,WAA0BD,EAAgB,SACrDF,EAA0BG,EAAgBD,IAGxCz9K,EAAQ4+B,MAAS6+I,GAAkBA,EAAe7+I,OACpDqpG,EAA4By1C,EAAgB,QAAQ,GAGtDxmJ,EAASzpC,EAAQjC,EAAKkyL,EAAgB19K,M,kCClD1C,IAAI+9K,EAAgC,EAAQ,QACxCn7K,EAAW,EAAQ,QACnBpE,EAAW,EAAQ,QACnBb,EAAW,EAAQ,QACnBD,EAAY,EAAQ,QACpB03I,EAAyB,EAAQ,QACjC4oC,EAAqB,EAAQ,QAC7BC,EAAa,EAAQ,QAErBvqK,EAAMnS,KAAKmS,IACXD,EAAMlS,KAAKkS,IACX/R,EAAQH,KAAKG,MACbw8K,EAAuB,4BACvBC,EAAgC,oBAOpCJ,EAA8B,UAAW,GAAG,SAAUK,EAAS/uL,EAAegvL,EAAiBxzL,GAC7F,IAAIyzL,EAA+CzzL,EAAOyzL,6CACtDC,EAAmB1zL,EAAO0zL,iBAC1BC,EAAoBF,EAA+C,IAAM,KAE7E,MAAO,CAGL,SAAiBG,EAAaC,GAC5B,IAAI57K,EAAIsyI,EAAuBvsJ,MAC3BiwC,OAA0BjpC,GAAf4uL,OAA2B5uL,EAAY4uL,EAAYL,GAClE,YAAoBvuL,IAAbipC,EACHA,EAASlwC,KAAK61L,EAAa37K,EAAG47K,GAC9BrvL,EAAczG,KAAK0G,OAAOwT,GAAI27K,EAAaC,IAIjD,SAAUC,EAAQD,GAChB,IACIJ,GAAgDC,GACzB,kBAAjBG,IAA0E,IAA7CA,EAAaluL,QAAQguL,GAC1D,CACA,IAAIz+I,EAAMs+I,EAAgBhvL,EAAesvL,EAAQ91L,KAAM61L,GACvD,GAAI3+I,EAAInG,KAAM,OAAOmG,EAAI/mC,MAG3B,IAAIikI,EAAKr6H,EAAS+7K,GACd1gL,EAAI3O,OAAOzG,MAEX+1L,EAA4C,oBAAjBF,EAC1BE,IAAmBF,EAAepvL,OAAOovL,IAE9C,IAAI5tL,EAASmsI,EAAGnsI,OAChB,GAAIA,EAAQ,CACV,IAAI+tL,EAAc5hD,EAAG/+H,QACrB++H,EAAGxtI,UAAY,EAGjB,IADA,IAAIogC,EAAU,KACD,CACX,IAAIr1B,EAASyjL,EAAWhhD,EAAIh/H,GAC5B,GAAe,OAAXzD,EAAiB,MAGrB,GADAq1B,EAAQh5B,KAAK2D,IACR1J,EAAQ,MAGI,KADFxB,OAAOkL,EAAO,MACRyiI,EAAGxtI,UAAYuuL,EAAmB//K,EAAGN,EAASs/H,EAAGxtI,WAAYovL,IAKpF,IAFA,IAtDwBjhL,EAsDpBkhL,EAAoB,GACpBC,EAAqB,EAChB9uL,EAAI,EAAGA,EAAI4/B,EAAQh/B,OAAQZ,IAAK,CACvCuK,EAASq1B,EAAQ5/B,GAUjB,IARA,IAAIwiB,EAAUnjB,OAAOkL,EAAO,IACxB6Q,EAAWqI,EAAID,EAAI/V,EAAUlD,EAAO5J,OAAQqN,EAAEpN,QAAS,GACvDmuL,EAAW,GAMNv/K,EAAI,EAAGA,EAAIjF,EAAO3J,OAAQ4O,IAAKu/K,EAASnoL,UAlEzChH,KADc+N,EAmE8CpD,EAAOiF,IAlEvD7B,EAAKtO,OAAOsO,IAmEhC,IAAIqhL,EAAgBzkL,EAAOsrI,OAC3B,GAAI84C,EAAmB,CACrB,IAAIM,EAAe,CAACzsK,GAASjT,OAAOw/K,EAAU3zK,EAAUpN,QAClCpO,IAAlBovL,GAA6BC,EAAaroL,KAAKooL,GACnD,IAAInF,EAAcxqL,OAAOovL,EAAahyL,WAAMmD,EAAWqvL,SAEvDpF,EAAcqF,EAAgB1sK,EAASxU,EAAGoN,EAAU2zK,EAAUC,EAAeP,GAE3ErzK,GAAY0zK,IACdD,GAAqB7gL,EAAExN,MAAMsuL,EAAoB1zK,GAAYyuK,EAC7DiF,EAAqB1zK,EAAWoH,EAAQ5hB,QAG5C,OAAOiuL,EAAoB7gL,EAAExN,MAAMsuL,KAKvC,SAASI,EAAgB1sK,EAAS3iB,EAAKub,EAAU2zK,EAAUC,EAAenF,GACxE,IAAIsF,EAAU/zK,EAAWoH,EAAQ5hB,OAC7BvL,EAAI05L,EAASnuL,OACbwuL,EAAUlB,EAKd,YAJsBtuL,IAAlBovL,IACFA,EAAgBzgL,EAASygL,GACzBI,EAAUnB,GAEL7uL,EAAczG,KAAKkxL,EAAauF,GAAS,SAAUrvL,EAAOsvL,GAC/D,IAAIzmK,EACJ,OAAQymK,EAAG1kL,OAAO,IAChB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAO6X,EACjB,IAAK,IAAK,OAAO3iB,EAAIW,MAAM,EAAG4a,GAC9B,IAAK,IAAK,OAAOvb,EAAIW,MAAM2uL,GAC3B,IAAK,IACHvmK,EAAUomK,EAAcK,EAAG7uL,MAAM,GAAI,IACrC,MACF,QACE,IAAI2J,GAAKklL,EACT,GAAU,IAANllL,EAAS,OAAOpK,EACpB,GAAIoK,EAAI9U,EAAG,CACT,IAAI+Z,EAAIqC,EAAMtH,EAAI,IAClB,OAAU,IAANiF,EAAgBrP,EAChBqP,GAAK/Z,OAA8BuK,IAApBmvL,EAAS3/K,EAAI,GAAmBigL,EAAG1kL,OAAO,GAAKokL,EAAS3/K,EAAI,GAAKigL,EAAG1kL,OAAO,GACvF5K,EAET6oB,EAAUmmK,EAAS5kL,EAAI,GAE3B,YAAmBvK,IAAZgpB,EAAwB,GAAKA,U,wBC5HjC,SAAUl1B,GACjB,aAEYA,EAAOC,aAAa,SAAU,CACxCC,OAAQ,CACN2C,WAAY,iGAAqF1C,MAAM,KACvG2C,OAAQ,kIAAsH3C,MAAM,KACpI4C,SAAU,mBAEZ3C,YAAa,kEAA+DD,MAAM,KAClF6W,kBAAkB,EAClB3W,SAAU,iEAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,mBACJ4lJ,GAAI,aACJ3lJ,IAAK,4BACL4lJ,IAAK,mBACL3lJ,KAAM,iCACNkmE,KAAM,wBAERjmE,SAAU,CACRC,QAAS,gBACTC,QAAS,eACTC,SAAU,cACVC,QAAS,gBACTC,SAAU,qBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,eACRC,KAAM,QACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,UACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UAENC,uBAAwB,wBACxBC,QAAS,SAAUC,EAAQ8X,GACzB,IAAI+wG,EAAoB,IAAX7oH,EAAe,IAAiB,IAAXA,EAAe,IAAiB,IAAXA,EAAe,IAAiB,IAAXA,EAAe,IAAM,OAMjG,MAJe,MAAX8X,GAA6B,MAAXA,IACpB+wG,EAAS,KAGJ7oH,EAAS6oH,GAElB3oH,KAAM,CACJC,IAAK,EAELC,IAAK,KAhEuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,+FAA+FC,MAAM,KAC7GC,YAAa,8DAA8DD,MAAM,KACjF6W,kBAAkB,EAClB3W,SAAU,sEAAsEF,MAAM,KACtFG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,0BACJC,IAAK,gCACLC,KAAM,sCACNisB,EAAG,WACHy5H,GAAI,oBACJC,IAAK,0BACLz/E,KAAM,gCAERjmE,SAAU,CACRC,QAAS,kBACTC,QAAS,mBACTC,SAAU,gBACVC,QAAS,kBACTC,SAAU,0BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,WACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,WACHC,GAAI,UACJC,EAAG,eACHC,GAAI,cACJC,EAAG,WACHC,GAAI,WAENC,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KArDuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,SAAS0W,EAAUnU,EAAQoU,EAAe9O,GACxC,IAAIgP,EAAStU,EAAS,IAEtB,OAAQsF,GACN,IAAK,KASH,OAPEgP,GADa,IAAXtU,EACQ,UACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,UAEA,UAKd,IAAK,IACH,OAAOoU,EAAgB,eAAiB,eAE1C,IAAK,KASH,OAPEE,GADa,IAAXtU,EACQ,SACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,SAEA,SAKd,IAAK,IACH,OAAOoU,EAAgB,YAAc,cAEvC,IAAK,KASH,OAPEE,GADa,IAAXtU,EACQ,MACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,OAEA,OAKd,IAAK,KAOH,OALEsU,GADa,IAAXtU,EACQ,MAEA,OAKd,IAAK,KASH,OAPEsU,GADa,IAAXtU,EACQ,SACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,UAEA,UAKd,IAAK,KASH,OAPEsU,GADa,IAAXtU,EACQ,SACU,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAC/B,SAEA,UAOTvC,EAAOC,aAAa,KAAM,CACjCC,OAAQ,CACN4C,OAAQ,mHAAoG3C,MAAM,KAClH0C,WAAY,+GAAgG1C,MAAM,MAEpHC,YAAa,oEAA+DD,MAAM,KAClF6W,kBAAkB,EAClB3W,SAAU,iEAA4DF,MAAM,KAC5EG,cAAe,0CAAqCH,MAAM,KAC1DI,YAAa,4BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,eACTC,QAAS,eACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,wBAET,KAAK,EACH,MAAO,uBAET,KAAK,EACH,MAAO,sBAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,oBAGbzN,QAAS,oBACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACH,MAAO,kCAET,KAAK,EACH,MAAO,iCAET,KAAK,EACH,MAAO,gCAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,8BAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,WACNC,EAAG,cACHC,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG6U,EACH5U,GAAI4U,EACJ3U,EAAG,MACHC,GAAI0U,EACJzU,EAAG,SACHC,GAAIwU,EACJvU,EAAG,SACHC,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAlKuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,SA7CTI,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,OAGvGC,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,sBCGzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,mFAAgFC,MAAM,KAC9FC,YAAa,qDAAkDD,MAAM,KACrEE,SAAU,8EAA4DF,MAAM,KAC5EG,cAAe,oCAA8BH,MAAM,KACnDI,YAAa,sBAAmBJ,MAAM,KACtC+N,oBAAoB,EACpBC,cAAe,QACfC,KAAM,SAAUpB,GACd,MAA2B,MAApBA,EAAMiK,OAAO,IAEtB5I,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAO2I,EAAQ,GAAK,KAAO,MAE7B3W,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,iBACTC,QAAS,sBACTC,SAAU,kBACVC,QAAS,iBACTC,SAAU,2BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,mBACNC,EAAG,eACHC,GAAI,aACJC,EAAG,mBACHC,GAAI,YACJC,EAAG,gBACHC,GAAI,YACJC,EAAG,iBACHC,GAAI,aACJC,EAAG,cACHC,GAAI,UACJC,EAAG,aACHC,GAAI,WAENC,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAvDuFC,CAAQ,EAAQ,U,mBCPlHwK,EAAOC,QAAU,CACf,cACA,iBACA,gBACA,uBACA,iBACA,WACA,Y,wBCDO,SAAUrN,GACjB,aAEA,IAAI47L,EAAc,iFAAwEz7L,MAAM,KAC5F07L,EAAgB,CAAC,QAAS,QAAS,SAAU,SAAU,YAAU,SAAU,SAAUD,EAAY,GAAIA,EAAY,GAAIA,EAAY,IAErI,SAASllL,EAAUnU,EAAQoU,EAAe9O,EAAK+O,GAC7C,IAAIC,EAAS,GAEb,OAAQhP,GACN,IAAK,IACH,OAAO+O,EAAW,oBAAsB,kBAE1C,IAAK,KACHC,EAASD,EAAW,WAAa,WACjC,MAEF,IAAK,IACH,OAAOA,EAAW,WAAa,WAEjC,IAAK,KACHC,EAASD,EAAW,WAAa,YACjC,MAEF,IAAK,IACH,OAAOA,EAAW,SAAW,QAE/B,IAAK,KACHC,EAASD,EAAW,SAAW,SAC/B,MAEF,IAAK,IACH,OAAOA,EAAW,eAAW,cAE/B,IAAK,KACHC,EAASD,EAAW,eAAW,kBAC/B,MAEF,IAAK,IACH,OAAOA,EAAW,YAAc,WAElC,IAAK,KACHC,EAASD,EAAW,YAAc,YAClC,MAEF,IAAK,IACH,OAAOA,EAAW,SAAW,QAE/B,IAAK,KACHC,EAASD,EAAW,SAAW,SAKnC,OADAC,EAASilL,EAAav5L,EAAQqU,GAAY,IAAMC,EAIlD,SAASilL,EAAav5L,EAAQqU,GAC5B,OAAOrU,EAAS,GAAKqU,EAAWilL,EAAct5L,GAAUq5L,EAAYr5L,GAAUA,EAGvEvC,EAAOC,aAAa,KAAM,CACjCC,OAAQ,iHAA2GC,MAAM,KACzHC,YAAa,6EAAuED,MAAM,KAC1FE,SAAU,qEAAqEF,MAAM,KACrFG,cAAe,uBAAuBH,MAAM,KAC5CI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,mBACJC,IAAK,gCACLC,KAAM,sCACNisB,EAAG,WACHy5H,GAAI,cACJC,IAAK,2BACLz/E,KAAM,iCAERjmE,SAAU,CACRC,QAAS,6BACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,mBACTC,SAAU,4BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,qBACRC,KAAM,YACNC,EAAGiV,EACHhV,GAAIgV,EACJ/U,EAAG+U,EACH9U,GAAI8U,EACJ7U,EAAG6U,EACH5U,GAAI4U,EACJ3U,EAAG2U,EACH1U,GAAI0U,EACJzU,EAAGyU,EACHxU,GAAIwU,EACJvU,EAAGuU,EACHtU,GAAIsU,GAENrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA7GuFC,CAAQ,EAAQ,U,mBCNlH,IAAIo1D,EAAOp6C,KAAKo6C,KACZj6C,EAAQH,KAAKG,MAIjB3Q,EAAOC,QAAU,SAAUqkJ,GACzB,OAAOr0I,MAAMq0I,GAAYA,GAAY,GAAKA,EAAW,EAAI3zI,EAAQi6C,GAAM05F,K,qBCNzE,IAAIl3I,EAAc,EAAQ,QACtBC,EAAQ,EAAQ,QAChBqP,EAAgB,EAAQ,QAG5B1c,EAAOC,SAAWmN,IAAgBC,GAAM,WACtC,OAEQ,GAFD/U,OAAOC,eAAemkB,EAAc,OAAQ,IAAK,CACtDlkB,IAAK,WAAc,OAAO,KACzBie,M,mBCRLzW,EAAOC,SAAU,G,qBCAjB,IAAIgqC,EAAU,EAAQ,QAClB0kJ,EAAQ,EAAQ,SAEnB3uL,EAAOC,QAAU,SAAUxF,EAAKwN,GAC/B,OAAO0mL,EAAMl0L,KAASk0L,EAAMl0L,QAAiBqE,IAAVmJ,EAAsBA,EAAQ,MAChE,WAAY,IAAInC,KAAK,CACtB2hI,QAAS,QACTpuH,KAAM4wB,EAAU,OAAS,SACzB2kJ,UAAW,6C,kCCmBN,SAASz5I,EAAQtgC,EAASwjB,GAC/B,GAAIxjB,EAAQsgC,QACV,OAAOtgC,EAAQsgC,QAAQ9c,GAKzB,IAFA,IAAI/wB,EAAKuN,EAEFvN,GAAI,CACT,GAAIysC,EAAQzsC,EAAI+wB,GACd,OAAO/wB,EAGTA,EAAKA,EAAGu6E,cAGV,OAAO,KAEF,SAAS9tC,EAAQl/B,EAASwjB,GAE/B,OADoBxjB,EAAQk/B,SAAWl/B,EAAQm/B,uBAAyBn/B,EAAQo/B,mBAC3Dp8C,KAAKgd,EAASwjB,GAW9B,SAASw2J,EAAoBh6K,GAKlC,IAAIi6K,EAASj6K,EAEb,GAA4B,OAAxBi6K,EAAOllC,aACT,OAAOklC,EAAOlqI,YAGhB,IAAI+0E,EAAQm1D,EAAOj+H,WAAU,GAC7B8oE,EAAMlxH,MAAMw8J,YAAY,WAAY,YACpCtrC,EAAMlxH,MAAMw8J,YAAY,YAAa,+BACrC/1J,SAAS01D,gBAAgBlnD,YAAYi8G,GACrC,IAAI/0E,EAAc+0E,EAAM/0E,YAExB,OADA11C,SAAS01D,gBAAgB7nD,YAAY48G,GAC9B/0E,EA1ET,uG,sBCQS,SAAUhyD,GACjB,aAEA,IAAIq4C,EAAW,CACb9qC,EAAG,QACHI,EAAG,QACHG,EAAG,QACHwqC,GAAI,QACJC,GAAI,QACJ/qC,EAAG,OACHK,EAAG,OACH2qC,GAAI,OACJC,GAAI,OACJhrC,EAAG,cACHC,EAAG,cACHgrC,IAAK,cACL9qC,EAAG,YACHG,EAAG,QACH4qC,GAAI,QACJC,GAAI,QACJC,GAAI,kBACJC,GAAI,mBAEG94C,EAAOC,aAAa,KAAM,CACjCC,OAAQ,yGAA6EC,MAAM,KAC3FC,YAAa,4DAAkDD,MAAM,KACrEE,SAAU,0EAAwDF,MAAM,KACxEG,cAAe,iCAA8BH,MAAM,KACnDI,YAAa,0BAAuBJ,MAAM,KAC1CkO,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH3I,EAAU,WAAO,WAEjBA,EAAU,QAAO,SAG5BL,cAAe,gCACfC,KAAM,SAAUpB,GACd,MAAiB,UAAVA,GAA4B,UAAVA,GAE3BxM,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,qBACTC,QAAS,uBACTC,SAAU,2BACVC,QAAS,cACTC,SAAU,4BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,aACNC,EAAG,mBACHC,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,UACJC,EAAG,aACHC,GAAI,YACJmY,EAAG,YACHC,GAAI,WACJnY,EAAG,SACHC,GAAI,QACJC,EAAG,eACHC,GAAI,eAENE,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACH,OAAO9X,EAET,QACE,GAAe,IAAXA,EAEF,OAAOA,EAAS,kBAGlB,IAAIshB,EAAIthB,EAAS,GACbC,EAAID,EAAS,IAAMshB,EACnBsK,EAAI5rB,GAAU,IAAM,IAAM,KAC9B,OAAOA,GAAU81C,EAASx0B,IAAMw0B,EAAS71C,IAAM61C,EAASlqB,MAG9D1rB,KAAM,CACJC,IAAK,EAELC,IAAK,KAlGuFC,CAAQ,EAAQ,U,qBCPhF,EAAQ,OAI1CkkJ,CAA4B,SAAS,SAAU51H,GAC7C,OAAO,SAA2B5b,EAAMyxI,EAAY75I,GAClD,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,OAErC,I,sBCDM,SAAUlN,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,eACJC,IAAK,sBACLC,KAAM,6BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,SA7CTI,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,0WAAwEC,MAAM,KACtFC,YAAa,0WAAwED,MAAM,KAC3FE,SAAU,uRAAsDF,MAAM,KACtEG,cAAe,mMAAwCH,MAAM,KAC7DI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,8FACTC,QAAS,kFACTC,SAAU,oEACVC,QAAS,kFACTC,SAAU,oEACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,wBACNC,EAAG,2BACHC,GAAI,oCACJC,EAAG,iCACHC,GAAI,oCACJC,EAAG,2BACHC,GAAI,oCACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,qCAENK,KAAM,CACJC,IAAK,EAELC,IAAK,MA9CuFC,CAAQ,EAAQ,U,qBCNlH,IAAI0b,EAAW,EAAQ,QAEvBlR,EAAOC,QAAU,SAAU4M,GACzB,IAAKqE,EAASrE,IAAc,OAAPA,EACnB,MAAMkW,UAAU,aAAexkB,OAAOsO,GAAM,mBAC5C,OAAOA,I,qBCLX,IAAI4vI,EAAqB,EAAQ,QAG7BsyC,EAFc,EAAQ,QAEGtgL,OAAO,SAAU,aAI9CxO,EAAQqO,EAAIhW,OAAO0nE,qBAAuB,SAA6BjuD,GACrE,OAAO0qI,EAAmB1qI,EAAGg9K,K,sBCDtB,SAAUn8L,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,IACHC,EAAG,KAEDouL,EAAa,SAAU3lL,GACzB,OAAa,IAANA,EAAU,EAAU,IAANA,EAAU,EAAU,IAANA,EAAU,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,KAAO,GAAK,EAAI,GAEvG4lL,EAAU,CACZ56L,EAAG,CAAC,iEAAgB,gEAAe,CAAC,6CAAW,8CAAY,8BAAW,oCAAY,qCAClFE,EAAG,CAAC,iEAAgB,gEAAe,CAAC,6CAAW,8CAAY,oCAAY,oCAAY,qCACnFE,EAAG,CAAC,2DAAe,0DAAc,CAAC,uCAAU,wCAAW,oCAAY,8BAAW,+BAC9EE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,8BAAW,oCAAY,yBACzEE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,8BAAW,8BAAW,yBACxEE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,oCAAY,oCAAY,0BAExEm6L,EAAY,SAAUtvK,GACxB,OAAO,SAAUzqB,EAAQoU,EAAejI,EAAQkI,GAC9C,IAAI8E,EAAI0gL,EAAW75L,GACf4J,EAAMkwL,EAAQrvK,GAAGovK,EAAW75L,IAMhC,OAJU,IAANmZ,IACFvP,EAAMA,EAAIwK,EAAgB,EAAI,IAGzBxK,EAAInJ,QAAQ,MAAOT,KAG1BrC,EAAS,CAAC,iCAAS,uCAAU,2BAAQ,iCAAS,2BAAQ,iCAAS,iCAAS,iCAAS,uCAAU,uCAAU,uCAAU,wCAExGF,EAAOC,aAAa,QAAS,CACtCC,OAAQA,EACRE,YAAaF,EACbG,SAAU,uRAAsDF,MAAM,KACtEG,cAAe,mMAAwCH,MAAM,KAC7DI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,uBACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERqN,cAAe,gBACfC,KAAM,SAAUpB,GACd,MAAO,WAAQA,GAEjBqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,SAEA,UAGXvN,SAAU,CACRC,QAAS,8FACTC,QAAS,wFACTC,SAAU,oEACVC,QAAS,kFACTC,SAAU,oEACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,wBACNC,EAAG66L,EAAU,KACb56L,GAAI46L,EAAU,KACd36L,EAAG26L,EAAU,KACb16L,GAAI06L,EAAU,KACdz6L,EAAGy6L,EAAU,KACbx6L,GAAIw6L,EAAU,KACdv6L,EAAGu6L,EAAU,KACbt6L,GAAIs6L,EAAU,KACdr6L,EAAGq6L,EAAU,KACbp6L,GAAIo6L,EAAU,KACdn6L,EAAGm6L,EAAU,KACbl6L,GAAIk6L,EAAU,MAEhB7tL,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,UAAM,MAE9B2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,MAChBrJ,QAAQ,KAAM,WAEnBP,KAAM,CACJC,IAAK,EAELC,IAAK,MAtGuFC,CAAQ,EAAQ,U,kCCJlH,IAAI25L,EAAkBr3L,MAAQA,KAAKq3L,kBAAoB72L,OAAO4lC,OAAS,SAAUoP,EAAG/4C,EAAGiiB,EAAG44K,QAC7EtwL,IAAPswL,IAAkBA,EAAK54K,GAC3Ble,OAAOC,eAAe+0C,EAAG8hJ,EAAI,CAC3B32L,YAAY,EACZD,IAAK,WACH,OAAOjE,EAAEiiB,OAGX,SAAU82B,EAAG/4C,EAAGiiB,EAAG44K,QACVtwL,IAAPswL,IAAkBA,EAAK54K,GAC3B82B,EAAE8hJ,GAAM76L,EAAEiiB,KAGR64K,EAAev3L,MAAQA,KAAKu3L,cAAgB,SAAU96L,EAAG0L,GAC3D,IAAK,IAAIkW,KAAK5hB,EAAa,YAAN4hB,GAAoBlW,EAAQoS,eAAe8D,IAAIg5K,EAAgBlvL,EAAS1L,EAAG4hB,IAGlG7d,OAAOC,eAAe0H,EAAS,aAAc,CAC3CgI,OAAO,IAGTonL,EAAa,EAAQ,QAAYpvL,GAEjCovL,EAAa,EAAQ,QAAepvL,GAEpCovL,EAAa,EAAQ,QAAkBpvL,GAEvCovL,EAAa,EAAQ,QAAwBpvL,I,sBCtBpC,SAAUrN,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,0TAAgEC,MAAM,KAC9EC,YAAa,sOAAkDD,MAAM,KACrEE,SAAU,2WAAoEF,MAAM,KACpFG,cAAe,iIAA6BH,MAAM,KAClDI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,iHACJC,IAAK,wHACLC,KAAM,+HAERC,SAAU,CACRC,QAAS,6EACTC,QAAS,6EACTE,QAAS,6EACTD,SAAU,wFACVE,SAAU,wFACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,SAAU6pH,GAEhB,OAAOA,GADK,mCAAU3/G,KAAK2/G,GAAU,qBAAQ,uBAAQ3/G,KAAK2/G,GAAU,qBAAQ,uBAG9E5pH,KAAM,0CACNC,EAAG,6EACHC,GAAI,gDACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,8CACHC,GAAI,8BACJC,EAAG,wCACHC,GAAI,yBAENC,uBAAwB,6BACxBC,QAAS,wBACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAlDuFC,CAAQ,EAAQ,U,kCCLlH,IAAI4W,EAAI,EAAQ,QACZrM,EAAS,EAAQ,QACjBqN,EAAc,EAAQ,QACtBuB,EAA8C,EAAQ,QACtD6qI,EAAsB,EAAQ,QAC9B81C,EAAoB,EAAQ,QAC5B9oJ,EAAa,EAAQ,QACrB1xB,EAA2B,EAAQ,QACnCoiI,EAA8B,EAAQ,QACtCtqI,EAAW,EAAQ,QACnB2iL,EAAU,EAAQ,QAClBC,EAAW,EAAQ,QACnBv6K,EAAc,EAAQ,QACtB7C,EAAM,EAAQ,QACds0B,EAAU,EAAQ,QAClBx1B,EAAW,EAAQ,QACnBgtB,EAAS,EAAQ,QACjB/sB,EAAiB,EAAQ,QACzB6uD,EAAsB,EAAQ,QAA8C1xD,EAC5EmhL,EAAiB,EAAQ,QACzB3nL,EAAU,EAAQ,QAAgCA,QAClD4nL,EAAa,EAAQ,QACrB99K,EAAuB,EAAQ,QAC/BisG,EAAiC,EAAQ,QACzCt3E,EAAsB,EAAQ,QAC9BopJ,EAAoB,EAAQ,QAE5BjyE,EAAmBn3E,EAAoB/tC,IACvC2uC,EAAmBZ,EAAoBhpC,IACvCqyL,EAAuBh+K,EAAqBtD,EAC5CirI,EAAiC17B,EAA+BvvG,EAChE0K,EAAQxI,KAAKwI,MACblM,EAAa/M,EAAO+M,WACpB24F,EAAc6pF,EAAkB7pF,YAChCoqF,EAAWP,EAAkBO,SAC7BC,EAA4Bt2C,EAAoBs2C,0BAChDC,EAAkBv2C,EAAoBu2C,gBACtCC,EAAax2C,EAAoBw2C,WACjCC,EAAsBz2C,EAAoBy2C,oBAC1Cx2C,EAAyBD,EAAoBC,uBAC7Cy2C,EAAe12C,EAAoB02C,aACnCC,EAAoB,oBACpBC,EAAe,eAEfC,EAAW,SAAU10H,EAAG2uF,GAI1B,IAHA,IAAIzqJ,EAAQ,EACRC,EAASwqJ,EAAKxqJ,OACd2J,EAAS,IAAKgwI,EAAuB99E,GAA5B,CAAgC77D,GACtCA,EAASD,GAAO4J,EAAO5J,GAASyqJ,EAAKzqJ,KAC5C,OAAO4J,GAGL6mL,EAAY,SAAUzjL,EAAIpS,GAC5Bm1L,EAAqB/iL,EAAIpS,EAAK,CAAEjC,IAAK,WACnC,OAAOklH,EAAiB5lH,MAAM2C,OAI9BsqJ,EAAgB,SAAUl4I,GAC5B,IAAI0jL,EACJ,OAAO1jL,aAAc44F,GAAwC,gBAAxB8qF,EAAQ7pJ,EAAQ75B,KAAkC,qBAAT0jL,GAG5EC,EAAoB,SAAU9zL,EAAQjC,GACxC,OAAOy1L,EAAaxzL,IACD,iBAAPjC,GACPA,KAAOiC,GACP6B,QAAQ9D,IAAQ8D,OAAO9D,IAG1Bg2L,EAAkC,SAAkC/zL,EAAQjC,GAC9E,OAAO+1L,EAAkB9zL,EAAQjC,EAAMwa,EAAYxa,GAAK,IACpDqa,EAAyB,EAAGpY,EAAOjC,IACnC8+I,EAA+B78I,EAAQjC,IAGzCi2L,EAAwB,SAAwBh0L,EAAQjC,EAAKktD,GAC/D,QAAI6oI,EAAkB9zL,EAAQjC,EAAMwa,EAAYxa,GAAK,KAChDyW,EAASy2C,IACTv1C,EAAIu1C,EAAY,WACfv1C,EAAIu1C,EAAY,QAChBv1C,EAAIu1C,EAAY,QAEhBA,EAAWjvD,cACV0Z,EAAIu1C,EAAY,cAAeA,EAAWtlB,UAC1CjwB,EAAIu1C,EAAY,gBAAiBA,EAAWlvD,WAI1Cm3L,EAAqBlzL,EAAQjC,EAAKktD,IAFzCjrD,EAAOjC,GAAOktD,EAAW1/C,MAClBvL,IAIP0Q,GACG0iL,IACHjyE,EAA+BvvG,EAAImiL,EACnC7+K,EAAqBtD,EAAIoiL,EACzBJ,EAAUL,EAAqB,UAC/BK,EAAUL,EAAqB,cAC/BK,EAAUL,EAAqB,cAC/BK,EAAUL,EAAqB,WAGjC7jL,EAAE,CAAE1P,OAAQ,SAAUqwL,MAAM,EAAMxgL,QAASujL,GAA6B,CACtEj5I,yBAA0B45I,EAC1Bl4L,eAAgBm4L,IAGlB1wL,EAAOC,QAAU,SAAU0wL,EAAMtzK,EAASuzK,GACxC,IAAIz4C,EAAQw4C,EAAK1xL,MAAM,QAAQ,GAAK,EAChCk/K,EAAmBwS,GAAQC,EAAU,UAAY,IAAM,QACvDC,EAAS,MAAQF,EACjBG,EAAS,MAAQH,EACjBI,EAA8BhxL,EAAOo+K,GACrC6S,EAAwBD,EACxBE,EAAiCD,GAAyBA,EAAsB93L,UAChFg4L,EAAW,GAaXvjF,EAAa,SAAUvkE,EAAMvpC,GAC/B+vL,EAAqBxmJ,EAAMvpC,EAAO,CAChCrH,IAAK,WACH,OAdO,SAAU4wC,EAAMvpC,GAC3B,IAAIqI,EAAOw1G,EAAiBt0E,GAC5B,OAAOlhC,EAAKsqI,KAAKq+C,GAAQhxL,EAAQs4I,EAAQjwI,EAAKyxI,YAAY,GAY/CtY,CAAOvpI,KAAM+H,IAEtBtC,IAAK,SAAU0K,GACb,OAZO,SAAUmhC,EAAMvpC,EAAOoI,GAClC,IAAIC,EAAOw1G,EAAiBt0E,GACxBwnJ,IAAS3oL,GAASA,EAAQ+Q,EAAM/Q,IAAU,EAAI,EAAIA,EAAQ,IAAO,IAAe,IAARA,GAC5EC,EAAKsqI,KAAKs+C,GAAQjxL,EAAQs4I,EAAQjwI,EAAKyxI,WAAY1xI,GAAO,GAS/C+7H,CAAOlsI,KAAM+H,EAAOoI,IAE7BxP,YAAY,KAIXq3L,EAwCMnhL,IACTqiL,EAAwB3zK,GAAQ,SAAUhM,EAAOnJ,EAAMipL,EAAkBC,GAEvE,OADA5qJ,EAAWn1B,EAAO2/K,EAAuB7S,GAClCwR,EACAz+K,EAAShJ,GACV68I,EAAc78I,QAA0BpJ,IAAZsyL,EAC5B,IAAIL,EAA4B7oL,EAAMsnL,EAAS2B,EAAkBh5C,GAAQi5C,QACpDtyL,IAArBqyL,EACE,IAAIJ,EAA4B7oL,EAAMsnL,EAAS2B,EAAkBh5C,IACjE,IAAI44C,EAA4B7oL,GAClCgoL,EAAahoL,GAAcmoL,EAASW,EAAuB9oL,GACxDunL,EAAe53L,KAAKm5L,EAAuB9oL,GAPtB,IAAI6oL,EAA4BxB,EAAQrnL,IAQjEmJ,EAAO2/K,MAGV7/K,GAAgBA,EAAe6/K,EAAuBhB,GAC1DloL,EAAQk4D,EAAoB+wH,IAA8B,SAAUt2L,GAC5DA,KAAOu2L,GACX95C,EAA4B85C,EAAuBv2L,EAAKs2L,EAA4Bt2L,OAGxFu2L,EAAsB93L,UAAY+3L,IA5DlCD,EAAwB3zK,GAAQ,SAAU+rB,EAAMlhC,EAAM2jB,EAAQulK,GAC5D5qJ,EAAW4C,EAAM4nJ,EAAuB7S,GACxC,IAEIt4E,EAAQD,EAAY9lG,EAFpBD,EAAQ,EACR85I,EAAa,EAEjB,GAAKzoI,EAAShJ,GAIP,KAAI68I,EAAc78I,GAalB,OAAIgoL,EAAahoL,GACfmoL,EAASW,EAAuB9oL,GAEhCunL,EAAe53L,KAAKm5L,EAAuB9oL,GAflD29F,EAAS39F,EACTyxI,EAAa61C,EAAS3jK,EAAQssH,GAC9B,IAAIk5C,EAAOnpL,EAAK09F,WAChB,QAAgB9mG,IAAZsyL,EAAuB,CACzB,GAAIC,EAAOl5C,EAAO,MAAMrrI,EAAWsjL,GAEnC,IADAxqF,EAAayrF,EAAO13C,GACH,EAAG,MAAM7sI,EAAWsjL,QAGrC,IADAxqF,EAAah5F,EAASwkL,GAAWj5C,GAChBwB,EAAa03C,EAAM,MAAMvkL,EAAWsjL,GAEvDtwL,EAAS8lG,EAAauyC,OAftBr4I,EAASyvL,EAAQrnL,GAEjB29F,EAAS,IAAIJ,EADbG,EAAa9lG,EAASq4I,GA2BxB,IAPAhxG,EAAiBiC,EAAM,CACrBy8D,OAAQA,EACR8zC,WAAYA,EACZ/zC,WAAYA,EACZ9lG,OAAQA,EACR0yI,KAAM,IAAIq9C,EAAShqF,KAEdhmG,EAAQC,GAAQ6tG,EAAWvkE,EAAMvpC,QAGtCsR,GAAgBA,EAAe6/K,EAAuBhB,GAC1DiB,EAAiCD,EAAsB93L,UAAYglC,EAAO+xJ,IAyBxEgB,EAA+Bx/K,cAAgBu/K,GACjD95C,EAA4B+5C,EAAgC,cAAeD,GAGzEjB,GACF74C,EAA4B+5C,EAAgClB,EAAiB5R,GAG/E+S,EAAS/S,GAAoB6S,EAE7B5kL,EAAE,CACArM,QAAQ,EAAMwM,OAAQykL,GAAyBD,EAA6BljJ,MAAOiiJ,GAClFoB,GAEGf,KAAqBa,GACzB95C,EAA4B85C,EAAuBb,EAAmBh4C,GAGlEg4C,KAAqBc,GACzB/5C,EAA4B+5C,EAAgCd,EAAmBh4C,GAGjFu3C,EAAWvR,KAERn+K,EAAOC,QAAU,c,sBC9Nf,SAAUrN,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,gGAAuFC,MAAM,KACrGC,YAAa,0EAAiED,MAAM,KACpF6W,kBAAkB,EAClB3W,SAAU,sDAAsDF,MAAM,KACtEG,cAAe,qCAAqCH,MAAM,KAC1DI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,6BACTC,QAAS,mBACTC,SAAU,iBACVC,QAAS,iBACTC,SAAU,yBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,UACRC,KAAM,YACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,aACJC,EAAG,YACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,UACJC,EAAG,QACHC,GAAI,UAENC,uBAAwB,gBACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GAEN,QACA,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACH,OAAO9X,GAAqB,IAAXA,EAAe,KAAO,KAGzC,IAAK,IACL,IAAK,IACH,OAAOA,GAAqB,IAAXA,EAAe,KAAO,SA3DiDK,CAAQ,EAAQ,U,mBCNlHwK,EAAOC,QAAU,SAAUqxL,EAAQrpL,GACjC,MAAO,CACLxP,aAAuB,EAAT64L,GACd54L,eAAyB,EAAT44L,GAChBjvJ,WAAqB,EAATivJ,GACZrpL,MAAOA,K,kCCqEI,IAnEf,SAAevL,EAAQ60L,GACrB,IAAIvgL,EAAOpV,UAAUkE,OAAS,QAAsBhB,IAAjBlD,UAAU,GAAmBA,UAAU,GAAK,GAC/E,GAAyB,qBAAd21L,GAA6BthL,MAAMshL,GAAY,MAAMp3L,MAAM,yBACtE,IAAIk/J,EAAwB,kBAAX38J,EAAsBwS,SAASvH,iBAAiBjL,GAAUA,EAC3E,GAAK28J,EAAL,CACA,IAAIm4B,EAAYxgL,EAAKwgL,WAAa,SAC9BC,EAAYzgL,EAAKygL,WAAa,WAC9BC,EAAgC,mBAAhB1gL,EAAK0gL,QAAuB1gL,EAAK0gL,OACjDC,EAAW,+BAAiCljL,OAAO+iL,EAAW,WAC5D,WAAYn4B,IAAMA,EAAM,CAACA,IAE/B,IAAK,IAAIn6J,EAAI,EAAGA,EAAIm6J,EAAIv5J,OAAQZ,GAAK,EAAG,CACtC,IAAIoI,EAAK+xJ,EAAIn6J,GACToJ,EAAShB,EAAGmB,MACZmpL,EAAOtqL,EAAGlL,cAAc,IAAIqS,OAAOgjL,IACnCI,OAA8B/yL,IAAnBwI,EAAGjM,YAA4B,YAAc,cAExDu2L,IAEFtqL,EAAGyV,YAAYzV,EAAGlL,cAAc,mBAChCkL,EAAGuqL,GAAYvqL,EAAGuqL,IAIpB,IAAIC,EAAWxqL,EAAGuqL,GACdxuB,EAAQquB,EAASI,EAAS/+L,MAAM,KAAO++L,EAE3C,KAAIzuB,EAAMvjK,OAAS,GAAnB,CAEA,IAAIiyL,EAAczpL,EAAOrB,OACzBqB,EAAOrB,OAAS,OAChB,IAAI+qL,EAAiB1pL,EAAOipL,UAG5B,GAFAjpL,EAAOipL,UAAY,OAEfjqL,EAAGisB,cAAgBg+J,EACrBjpL,EAAOrB,OAAS8qL,EAChBzpL,EAAOipL,UAAYS,MAFrB,CAWA,IAJA,IAAIrvK,EAAM0gJ,EAAMvjK,OAAS,EACrB4iB,EAAM,EACNuvK,OAAQ,EAELvvK,EAAMC,GACXsvK,EAAQvvK,EAAMC,EAAM,GAAK,EAEzBrb,EAAGuqL,GAAYH,EAASruB,EAAM3jK,MAAM,EAAGuyL,GAAO/jL,KAAK,KAAOm1J,EAAM3jK,MAAM,EAAGuyL,GACzE3qL,EAAGsjB,mBAAmB,YAAa+mK,GAC/BrqL,EAAGisB,aAAeg+J,EAAW5uK,EAAMsvK,EAAQ,EAAOvvK,EAAMuvK,EAG9D3qL,EAAGuqL,GAAYH,EAASruB,EAAM3jK,MAAM,EAAGijB,GAAKzU,KAAK,KAAOm1J,EAAM3jK,MAAM,EAAGijB,GACvErb,EAAGsjB,mBAAmB,YAAa+mK,GACnC,IAAIvhL,EAAOshL,EAAS,IAAIjjL,OAAO40J,EAAM3jK,MAAMijB,GAAKzU,KAAK,MAAQm1J,EAAM3jK,MAAMijB,GACrEuvK,EAAahjL,SAAS2zE,eAAezyE,GACrC+hL,EAAmBjjL,SAASwN,cAAc,QAC9Cy1K,EAAiBh1L,UAAUC,IAAIq0L,GAC/BU,EAAiB1pL,MAAMwc,QAAU,OACjCktK,EAAiBz0K,YAAYw0K,GAC7B5qL,EAAGmiG,sBAAsB,YAAa0oF,GACtC7pL,EAAOrB,OAAS8qL,EAChBzpL,EAAOipL,UAAYS,Q,kCChDvBhyL,EAAOC,QAAU,SAAgBnF,GAC/B,OAAO,SAAckmB,GACnB,OAAOlmB,EAASa,MAAM,KAAMqlB,M,sBCjBvB,SAAUpuB,GACjB,aAEA,SAASw/L,EAAyBj9L,EAAQoU,EAAe9O,GAMvD,OAAOtF,EAAS,IAAM04G,EALT,CACXr5G,GAAI,WACJM,GAAI,MACJF,GAAI,UAEgC6F,GAAMtF,GAG9C,SAASk9L,EAAwBl9L,GAC/B,OAAQm9L,EAAWn9L,IACjB,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAOA,EAAS,SAElB,QACE,OAAOA,EAAS,UAItB,SAASm9L,EAAWn9L,GAClB,OAAIA,EAAS,EACJm9L,EAAWn9L,EAAS,IAGtBA,EAGT,SAAS04G,EAASh6D,EAAM1+C,GACtB,OAAe,IAAXA,EACKo9L,EAAa1+I,GAGfA,EAGT,SAAS0+I,EAAa1+I,GACpB,IAAI2+I,EAAgB,CAClBj+L,EAAG,IACHa,EAAG,IACHT,EAAG,KAGL,YAAsCmK,IAAlC0zL,EAAc3+I,EAAKhqC,OAAO,IACrBgqC,EAGF2+I,EAAc3+I,EAAKhqC,OAAO,IAAMgqC,EAAKzzB,UAAU,GAGxD,IAAIhW,EAAc,CAAC,QAAS,mBAAe,QAAS,QAAS,QAAS,cAAe,QAAS,QAAS,QAAS,QAAS,OAAQ,SAC7HC,EAAc,uJACdG,EAAoB,6FACpBC,EAAyB,gEACzBgoL,EAAoB,CAAC,QAAS,QAAS,WAAY,sBAAkB,SAAU,WAAY,YAC3FC,EAAqB,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAC5EC,EAAmB,CAAC,OAAQ,OAAQ,eAAgB,QAAS,OAAQ,OAAQ,QACxE//L,EAAOC,aAAa,KAAM,CACjCC,OAAQ,qFAAgFC,MAAM,KAC9FC,YAAa,wDAAmDD,MAAM,KACtEE,SAAU,kDAA6CF,MAAM,KAC7DG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,wBAAwBJ,MAAM,KAC3Ci6H,cAAe2lE,EACfF,kBAAmBA,EACnBC,mBAAoBA,EACpBC,iBAAkBA,EAClBtoL,YAAaA,EACbE,iBAAkBF,EAClBG,kBAAmBA,EACnBC,uBAAwBA,EACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBhX,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,4BACLC,KAAM,mCAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,0BACTC,SAAU,eACVC,QAAS,qBACTC,SAAU,qBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,YACRC,KAAM,cACNC,EAAG,2BACHC,GAAI,YACJC,EAAG,cACHC,GAAI49L,EACJ39L,EAAG,SACHC,GAAI,SACJC,EAAG,YACHC,GAAIw9L,EACJv9L,EAAG,SACHC,GAAIs9L,EACJr9L,EAAG,WACHC,GAAIq9L,GAENp9L,uBAAwB,qBACxBC,QAAS,SAAUC,GAEjB,OAAOA,GADiB,IAAXA,EAAe,QAAO,QAGrCE,KAAM,CACJC,IAAK,EAELC,IAAK,GAGPwL,cAAe,YAEfC,KAAM,SAAUwpC,GACd,MAAiB,SAAVA,GAETvpC,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAOF,EAAO,GAAK,OAAS,UAlIgE1L,CAAQ,EAAQ,U,qBCNlH,IAAI4W,EAAI,EAAQ,QAEZwmL,EAASpiL,KAAKqiL,MACdpiL,EAAMD,KAAKC,IACX+tC,EAAOhuC,KAAKguC,KAQhBpyC,EAAE,CAAE1P,OAAQ,OAAQqwL,MAAM,EAAMxgL,SAJlBqmL,GAAUA,EAAOE,IAAU9xE,OAAS8xE,KAID,CAC/CD,MAAO,SAAeE,EAAQC,GAM5B,IALA,IAIIp2J,EAAKk8H,EAJLz0H,EAAM,EACNnlC,EAAI,EACJ+zL,EAAOr3L,UAAUkE,OACjBozL,EAAO,EAEJh0L,EAAI+zL,GAELC,GADJt2J,EAAMnsB,EAAI7U,UAAUsD,QAGlBmlC,EAAMA,GADNy0H,EAAMo6B,EAAOt2J,GACKk8H,EAAM,EACxBo6B,EAAOt2J,GAGPyH,GAFSzH,EAAM,GACfk8H,EAAMl8H,EAAMs2J,GACCp6B,EACDl8H,EAEhB,OAAOs2J,IAASJ,IAAWA,IAAWI,EAAO10I,EAAKna,O,sBCvB7C,SAAUzxC,GACjB,aAEA,IAAIwwK,EAAa,CACfC,MAAO,CAEL/uK,GAAI,CAAC,SAAU,UAAW,WAC1BC,EAAG,CAAC,cAAe,iBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,SAAU,UAAW,WAC1BE,GAAI,CAAC,SAAU,SAAU,WAE3BsuK,uBAAwB,SAAUnuK,EAAQouK,GACxC,OAAkB,IAAXpuK,EAAeouK,EAAQ,GAAKpuK,GAAU,GAAKA,GAAU,EAAIouK,EAAQ,GAAKA,EAAQ,IAEvFj6J,UAAW,SAAUnU,EAAQoU,EAAe9O,GAC1C,IAAI8oK,EAAUH,EAAWC,MAAM5oK,GAE/B,OAAmB,IAAfA,EAAIqF,OACCyJ,EAAgBg6J,EAAQ,GAAKA,EAAQ,GAErCpuK,EAAS,IAAMiuK,EAAWE,uBAAuBnuK,EAAQouK,KAI7D3wK,EAAOC,aAAa,KAAM,CACjCC,OAAQ,mFAAmFC,MAAM,KACjGC,YAAa,2DAA2DD,MAAM,KAC9E6W,kBAAkB,EAClB3W,SAAU,iEAA4DF,MAAM,KAC5EG,cAAe,0CAAqCH,MAAM,KAC1DI,YAAa,4BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,eACTC,QAAS,gBACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,wBAET,KAAK,EACH,MAAO,uBAET,KAAK,EACH,MAAO,sBAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,oBAGbzN,QAAS,mBACTC,SAAU,WAER,MADmB,CAAC,kCAA8B,sCAAkC,iCAA6B,iCAA6B,wCAA+B,gCAA4B,iCACrL8D,KAAK0J,QAE3BvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,WACNC,EAAG,mBACHC,GAAI8uK,EAAW95J,UACf/U,EAAG6uK,EAAW95J,UACd9U,GAAI4uK,EAAW95J,UACf7U,EAAG2uK,EAAW95J,UACd5U,GAAI0uK,EAAW95J,UACf3U,EAAG,MACHC,GAAIwuK,EAAW95J,UACfzU,EAAG,SACHC,GAAIsuK,EAAW95J,UACfvU,EAAG,SACHC,GAAIouK,EAAW95J,WAEjBrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA9FuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,8FAA8FC,MAAM,KAC5GC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,4DAA4DF,MAAM,KAC5EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CgO,cAAe,SACfC,KAAM,SAAUpB,GACd,MAAO,QAAQ5J,KAAK4J,IAEtBqB,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH3I,EAAU,KAAO,KAEjBA,EAAU,KAAO,MAG5BhO,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,iBACTC,QAAS,kBACTC,SAAU,eACVC,QAAS,iBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,SACRC,KAAM,YACNC,EAAG,mBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,SACJC,EAAG,SACHC,GAAI,SACJC,EAAG,WACHC,GAAI,YACJC,EAAG,UACHC,GAAI,WAENC,uBAAwB,kBACxBC,QAAS,SAAUC,GACjB,OAAOA,GAAqB,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,OAE1EE,KAAM,CACJC,IAAK,EAELC,IAAK,KA5DuFC,CAAQ,EAAQ,U,kCCNlH,kCAsBA,IAAI29L,EAAuB,yBASvBC,EAEJ,WACE,SAASA,EAAUt3L,EAAMmT,QACP,IAAZA,IACFA,EAAU,IAGZnX,KAAKgE,KAAOA,EACZhE,KAAKmX,QAAUA,EAEfnX,KAAKu7L,yBAA2B,KAuGlC,OA/FAD,EAAUl6L,UAAUkb,UAAY,WAC9B,IAAIk/K,EAAex7L,KAAKy7L,qBAAqBz7L,KAAKgE,MAElD,GAA4B,IAAxBw3L,EAAaxzL,OACf,MAAM,IAAI3F,MAAM,8DAGlBrC,KAAKu7L,yBAA2BnkL,SAAS8c,yBAAyBiM,YAAc/oB,SAAS8c,cAAgB,KACzGl0B,KAAK07L,aAAa17L,KAAKgE,KAAMw3L,GAExBx7L,KAAKmX,QAAQoyB,kBAChBvpC,KAAK27L,oBAAoBH,EAAcx7L,KAAKmX,QAAQgmK,iBASxDme,EAAUl6L,UAAUmb,aAAe,WACjC,GAAG3U,MAAM7H,KAAKC,KAAKgE,KAAK6L,iBAAiB,IAAMwrL,IAAuBrrL,SAAQ,SAAU4rL,GACtFA,EAAW7xG,cAAc9kE,YAAY22K,MAGnC57L,KAAKu7L,0BACPv7L,KAAKu7L,yBAAyBtoK,SAYlCqoK,EAAUl6L,UAAUs6L,aAAe,SAAUlsL,EAAIgsL,GAC/C,IAAIK,EAAgB77L,KAAK87L,iBACrBC,EAAc/7L,KAAK87L,iBACvBD,EAAc/1L,iBAAiB,SAAS,WAClC01L,EAAaxzL,OAAS,GACxBwzL,EAAaA,EAAaxzL,OAAS,GAAGirB,WAG1C8oK,EAAYj2L,iBAAiB,SAAS,WAChC01L,EAAaxzL,OAAS,GACxBwzL,EAAa,GAAGvoK,WAGpBzjB,EAAG0iB,aAAa2pK,EAAersL,EAAG6jB,SAAS,IAC3C7jB,EAAGoW,YAAYm2K,IAQjBT,EAAUl6L,UAAUu6L,oBAAsB,SAAUH,EAAcre,GAChE,IAAI6e,EAAa,EAEb7e,IACF6e,EAAatjL,KAAKmS,IAAI2wK,EAAa7zL,QAAQw1K,GAAiB,IAG9Dqe,EAAaQ,GAAY/oK,SAG3BqoK,EAAUl6L,UAAUq6L,qBAAuB,SAAUz3L,GAEnD,MADmB,GAAG4D,MAAM7H,KAAKiE,EAAK6L,iBAAiB,gEACnCkpB,QAAO,SAAUvpB,GACnC,IAAIysL,EAA0D,SAArCzsL,EAAGnM,aAAa,kBAA8D,MAA/BmM,EAAGnM,aAAa,aAAoD,MAA7BmM,EAAGnM,aAAa,WAAwD,SAAnCmM,EAAGnM,aAAa,eAChK64L,EAAuB1sL,EAAG+hB,UAAY,GAAK/hB,EAAGc,wBAAwBkd,MAAQ,IAAMhe,EAAGnK,UAAU4rB,SAASoqK,KAA0BY,EACpIE,GAA2B,EAE/B,GAAID,EAAsB,CACxB,IAAIvrL,EAAQokC,iBAAiBvlC,GAC7B2sL,EAA6C,SAAlBxrL,EAAMwc,SAA2C,WAArBxc,EAAMuc,WAG/D,OAAOgvK,IAAyBC,MAIpCb,EAAUl6L,UAAU06L,eAAiB,WACnC,IAAIM,EAAWhlL,SAASwN,cAAc,OAKtC,OAJAw3K,EAAS34L,aAAa,WAAY,KAElC24L,EAAS34L,aAAa,cAAe,QACrC24L,EAAS/2L,UAAUC,IAAI+1L,GAChBe,GAGFd,EAhHT,I,qBCjCA,IAAIrzL,EAAS,EAAQ,QACjBm3I,EAA8B,EAAQ,QAE1Cl3I,EAAOC,QAAU,SAAUxF,EAAKwN,GAC9B,IACEivI,EAA4Bn3I,EAAQtF,EAAKwN,GACzC,MAAOkN,GACPpV,EAAOtF,GAAOwN,EACd,OAAOA,I,wBCRX,8BACE,OAAO4E,GAAMA,EAAG2D,MAAQA,MAAQ3D,GAIlC7M,EAAOC,QAELm1J,EAA2B,iBAAd++B,YAA0BA,aACvC/+B,EAAuB,iBAAVrmJ,QAAsBA,SACnCqmJ,EAAqB,iBAAR/xI,MAAoBA,OACjC+xI,EAAuB,iBAAVr1J,GAAsBA,IAEnCouC,SAAS,cAATA,K,yCCZFluC,EAAQqO,EAAIhW,OAAO+V,uB,sBCOV,SAAUzb,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEIjO,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wYAA6EC,MAAM,KAC3FC,YAAa,wYAA6ED,MAAM,KAChGE,SAAU,uRAAsDF,MAAM,KACtEG,cAAe,mMAAwCH,MAAM,KAC7DI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERqN,cAAe,gBACfC,KAAM,SAAUpB,GACd,MAAO,WAAQA,GAEjBqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,SAEA,UAGXvN,SAAU,CACRC,QAAS,8FACTC,QAAS,kFACTC,SAAU,oEACVC,QAAS,kFACTC,SAAU,oEACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,wBACNC,EAAG,2BACHC,GAAI,oCACJC,EAAG,iCACHC,GAAI,oCACJC,EAAG,2BACHC,GAAI,oCACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,qCAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,MAChBrJ,QAAQ,UAAM,MAEnB2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,MAChBrJ,QAAQ,KAAM,WAEnBP,KAAM,CACJC,IAAK,EAELC,IAAK,KA3FuFC,CAAQ,EAAQ,U,qBCNlH,IAAI0b,EAAW,EAAQ,QACnBsxB,EAAU,EAAQ,QAGlB07I,EAFkB,EAAQ,OAEhBr3I,CAAgB,WAI9B7mC,EAAOC,QAAU,SAAUm0L,EAAet0L,GACxC,IAAI67D,EASF,OAREn5B,EAAQ4xJ,KAGM,mBAFhBz4H,EAAIy4H,EAAc3iL,cAEakqD,IAAMplD,QAASisB,EAAQm5B,EAAEziE,WAC/CgY,EAASyqD,IAEN,QADVA,EAAIA,EAAEuiH,MACUviH,OAAI78D,GAH+C68D,OAAI78D,GAKlE,SAAWA,IAAN68D,EAAkBplD,MAAQolD,GAAc,IAAX77D,EAAe,EAAIA,K,qBCXCE,EAAOC,QAW/D,SAAUrN,GACjB,aAIA,SAASwxG,EAAqBniF,EAAIjiB,GAChC,OAEGiiB,EAFIjiB,EAAS,CACdC,QAAS,IACGD,EAAOC,SAAUD,EAAOC,QAGxC,SAASo0L,EAA0BhrL,GACjC,OAAOA,GAAKA,EAAW,SAAKA,EAT9BzW,EAASA,GAAUA,EAAOyf,eAAe,WAAazf,EAAgB,QAAIA,EAY1E,IAAI0hM,EAAY,CACd,UAAa,CAAC,IAAK,IAAK,KACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,KAAQ,CAAC,EAAG,IAAK,KACjB,WAAc,CAAC,IAAK,IAAK,KACzB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,EAAG,EAAG,GAChB,eAAkB,CAAC,IAAK,IAAK,KAC7B,KAAQ,CAAC,EAAG,EAAG,KACf,WAAc,CAAC,IAAK,GAAI,KACxB,MAAS,CAAC,IAAK,GAAI,IACnB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,WAAc,CAAC,IAAK,IAAK,GACzB,UAAa,CAAC,IAAK,IAAK,IACxB,MAAS,CAAC,IAAK,IAAK,IACpB,eAAkB,CAAC,IAAK,IAAK,KAC7B,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,GAAI,IACrB,KAAQ,CAAC,EAAG,IAAK,KACjB,SAAY,CAAC,EAAG,EAAG,KACnB,SAAY,CAAC,EAAG,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,IAC5B,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,EAAG,IAAK,GACtB,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,EAAG,KACxB,eAAkB,CAAC,GAAI,IAAK,IAC5B,WAAc,CAAC,IAAK,IAAK,GACzB,WAAc,CAAC,IAAK,GAAI,KACxB,QAAW,CAAC,IAAK,EAAG,GACpB,WAAc,CAAC,IAAK,IAAK,KACzB,aAAgB,CAAC,IAAK,IAAK,KAC3B,cAAiB,CAAC,GAAI,GAAI,KAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,EAAG,IAAK,KAC1B,WAAc,CAAC,IAAK,EAAG,KACvB,SAAY,CAAC,IAAK,GAAI,KACtB,YAAe,CAAC,EAAG,IAAK,KACxB,QAAW,CAAC,IAAK,IAAK,KACtB,QAAW,CAAC,IAAK,IAAK,KACtB,WAAc,CAAC,GAAI,IAAK,KACxB,UAAa,CAAC,IAAK,GAAI,IACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,YAAe,CAAC,GAAI,IAAK,IACzB,QAAW,CAAC,IAAK,EAAG,KACpB,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,KAAQ,CAAC,IAAK,IAAK,GACnB,UAAa,CAAC,IAAK,IAAK,IACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,MAAS,CAAC,EAAG,IAAK,GAClB,YAAe,CAAC,IAAK,IAAK,IAC1B,KAAQ,CAAC,IAAK,IAAK,KACnB,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,IACvB,OAAU,CAAC,GAAI,EAAG,KAClB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,SAAY,CAAC,IAAK,IAAK,KACvB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,GACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,qBAAwB,CAAC,IAAK,IAAK,KACnC,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,IAAK,KAC1B,cAAiB,CAAC,GAAI,IAAK,KAC3B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,IAAK,GACjB,UAAa,CAAC,GAAI,IAAK,IACvB,MAAS,CAAC,IAAK,IAAK,KACpB,QAAW,CAAC,IAAK,EAAG,KACpB,OAAU,CAAC,IAAK,EAAG,GACnB,iBAAoB,CAAC,IAAK,IAAK,KAC/B,WAAc,CAAC,EAAG,EAAG,KACrB,aAAgB,CAAC,IAAK,GAAI,KAC1B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,GAAI,IAAK,KAC5B,gBAAmB,CAAC,IAAK,IAAK,KAC9B,kBAAqB,CAAC,EAAG,IAAK,KAC9B,gBAAmB,CAAC,GAAI,IAAK,KAC7B,gBAAmB,CAAC,IAAK,GAAI,KAC7B,aAAgB,CAAC,GAAI,GAAI,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,SAAY,CAAC,IAAK,IAAK,KACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,EAAG,KACf,QAAW,CAAC,IAAK,IAAK,KACtB,MAAS,CAAC,IAAK,IAAK,GACpB,UAAa,CAAC,IAAK,IAAK,IACxB,OAAU,CAAC,IAAK,IAAK,GACrB,UAAa,CAAC,IAAK,GAAI,GACvB,OAAU,CAAC,IAAK,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,KACxB,cAAiB,CAAC,IAAK,IAAK,KAC5B,cAAiB,CAAC,IAAK,IAAK,KAC5B,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,IACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,EAAG,KACnB,cAAiB,CAAC,IAAK,GAAI,KAC3B,IAAO,CAAC,IAAK,EAAG,GAChB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,YAAe,CAAC,IAAK,GAAI,IACzB,OAAU,CAAC,IAAK,IAAK,KACrB,WAAc,CAAC,IAAK,IAAK,IACzB,SAAY,CAAC,GAAI,IAAK,IACtB,SAAY,CAAC,IAAK,IAAK,KACvB,OAAU,CAAC,IAAK,GAAI,IACpB,OAAU,CAAC,IAAK,IAAK,KACrB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,YAAe,CAAC,EAAG,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,IAAO,CAAC,IAAK,IAAK,KAClB,KAAQ,CAAC,EAAG,IAAK,KACjB,QAAW,CAAC,IAAK,IAAK,KACtB,OAAU,CAAC,IAAK,GAAI,IACpB,UAAa,CAAC,GAAI,IAAK,KACvB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,IAAK,GACrB,YAAe,CAAC,IAAK,IAAK,KAExBC,EAAcnwF,GAAqB,SAAUpkG,GAK/C,IAAIw0L,EAAkB,GAEtB,IAAK,IAAI/5L,KAAO65L,EACVA,EAAUjiL,eAAe5X,KAC3B+5L,EAAgBF,EAAU75L,IAAQA,GAItC,IAAIg6L,EAAUz0L,EAAOC,QAAU,CAC7By0L,IAAK,CACHC,SAAU,EACVzxF,OAAQ,OAEV0xF,IAAK,CACHD,SAAU,EACVzxF,OAAQ,OAEV2xF,IAAK,CACHF,SAAU,EACVzxF,OAAQ,OAEV4xF,IAAK,CACHH,SAAU,EACVzxF,OAAQ,OAEV6xF,KAAM,CACJJ,SAAU,EACVzxF,OAAQ,QAEV8xF,IAAK,CACHL,SAAU,EACVzxF,OAAQ,OAEV+xF,IAAK,CACHN,SAAU,EACVzxF,OAAQ,OAEVgyF,IAAK,CACHP,SAAU,EACVzxF,OAAQ,OAEViC,IAAK,CACHwvF,SAAU,EACVzxF,OAAQ,CAAC,QAEXiyF,QAAS,CACPR,SAAU,EACVzxF,OAAQ,CAAC,YAEXkyF,OAAQ,CACNT,SAAU,EACVzxF,OAAQ,CAAC,WAEXmyF,QAAS,CACPV,SAAU,EACVzxF,OAAQ,CAAC,YAEXoyF,IAAK,CACHX,SAAU,EACVzxF,OAAQ,CAAC,IAAK,IAAK,MAErBqyF,MAAO,CACLZ,SAAU,EACVzxF,OAAQ,CAAC,MAAO,MAAO,QAEzBsyF,KAAM,CACJb,SAAU,EACVzxF,OAAQ,CAAC,UAIb,IAAK,IAAIw2B,KAAS+6D,EAChB,GAAIA,EAAQpiL,eAAeqnH,GAAQ,CACjC,KAAM,aAAc+6D,EAAQ/6D,IAC1B,MAAM,IAAIv/H,MAAM,8BAAgCu/H,GAGlD,KAAM,WAAY+6D,EAAQ/6D,IACxB,MAAM,IAAIv/H,MAAM,oCAAsCu/H,GAGxD,GAAI+6D,EAAQ/6D,GAAOx2B,OAAOpjG,SAAW20L,EAAQ/6D,GAAOi7D,SAClD,MAAM,IAAIx6L,MAAM,sCAAwCu/H,GAG1D,IAAIi7D,EAAWF,EAAQ/6D,GAAOi7D,SAC1BzxF,EAASuxF,EAAQ/6D,GAAOx2B,cACrBuxF,EAAQ/6D,GAAOi7D,gBACfF,EAAQ/6D,GAAOx2B,OACtB5qG,OAAOC,eAAek8L,EAAQ/6D,GAAQ,WAAY,CAChDzxH,MAAO0sL,IAETr8L,OAAOC,eAAek8L,EAAQ/6D,GAAQ,SAAU,CAC9CzxH,MAAOi7F,IAoHb,SAASuyF,EAAoBjqL,EAAGzW,GAC9B,OAAOyb,KAAK0zB,IAAI14B,EAAE,GAAKzW,EAAE,GAAI,GAAKyb,KAAK0zB,IAAI14B,EAAE,GAAKzW,EAAE,GAAI,GAAKyb,KAAK0zB,IAAI14B,EAAE,GAAKzW,EAAE,GAAI,GAhHrF0/L,EAAQC,IAAIE,IAAM,SAAUF,GAC1B,IAMIjgM,EAEAkrB,EARArJ,EAAIo+K,EAAI,GAAK,IACbx5H,EAAIw5H,EAAI,GAAK,IACbt/L,EAAIs/L,EAAI,GAAK,IACbhyK,EAAMlS,KAAKkS,IAAIpM,EAAG4kD,EAAG9lE,GACrButB,EAAMnS,KAAKmS,IAAIrM,EAAG4kD,EAAG9lE,GACrB8xB,EAAQvE,EAAMD,EA+BlB,OA1BIC,IAAQD,EACVjuB,EAAI,EACK6hB,IAAMqM,EACfluB,GAAKymE,EAAI9lE,GAAK8xB,EACLg0C,IAAMv4C,EACfluB,EAAI,GAAKW,EAAIkhB,GAAK4Q,EACT9xB,IAAMutB,IACfluB,EAAI,GAAK6hB,EAAI4kD,GAAKh0C,IAGpBzyB,EAAI+b,KAAKkS,IAAQ,GAAJjuB,EAAQ,MAEb,IACNA,GAAK,KAGPkrB,GAAK+C,EAAMC,GAAO,EAUX,CAACluB,EAAO,KARXkuB,IAAQD,EACN,EACK/C,GAAK,GACVuH,GAASvE,EAAMD,GAEfwE,GAAS,EAAIvE,EAAMD,IAGD,IAAJ/C,IAGtB80K,EAAQC,IAAIG,IAAM,SAAUH,GAC1B,IAAIgB,EACAC,EACAC,EACAnhM,EACAJ,EACAiiB,EAAIo+K,EAAI,GAAK,IACbx5H,EAAIw5H,EAAI,GAAK,IACbt/L,EAAIs/L,EAAI,GAAK,IACbhvJ,EAAIl1B,KAAKmS,IAAIrM,EAAG4kD,EAAG9lE,GACnBgb,EAAOs1B,EAAIl1B,KAAKkS,IAAIpM,EAAG4kD,EAAG9lE,GAE1BygM,EAAQ,SAAU90K,GACpB,OAAQ2kB,EAAI3kB,GAAK,EAAI3Q,EAAO,IA0B9B,OAvBa,IAATA,EACF3b,EAAIJ,EAAI,GAERA,EAAI+b,EAAOs1B,EACXgwJ,EAAOG,EAAMv/K,GACbq/K,EAAOE,EAAM36H,GACb06H,EAAOC,EAAMzgM,GAETkhB,IAAMovB,EACRjxC,EAAImhM,EAAOD,EACFz6H,IAAMx1B,EACfjxC,EAAI,EAAI,EAAIihM,EAAOE,EACVxgM,IAAMswC,IACfjxC,EAAI,EAAI,EAAIkhM,EAAOD,GAGjBjhM,EAAI,EACNA,GAAK,EACIA,EAAI,IACbA,GAAK,IAIF,CAAK,IAAJA,EAAa,IAAJJ,EAAa,IAAJqxC,IAG5B+uJ,EAAQC,IAAII,IAAM,SAAUJ,GAC1B,IAAIp+K,EAAIo+K,EAAI,GACRx5H,EAAIw5H,EAAI,GACRt/L,EAAIs/L,EAAI,GAIZ,MAAO,CAHCD,EAAQC,IAAIE,IAAIF,GAAK,GACrB,EAAI,IAAMlkL,KAAKkS,IAAIpM,EAAG9F,KAAKkS,IAAIw4C,EAAG9lE,IAE3B,IAAS,KADxBA,EAAI,EAAI,EAAI,IAAMob,KAAKmS,IAAIrM,EAAG9F,KAAKmS,IAAIu4C,EAAG9lE,OAI5Cq/L,EAAQC,IAAIK,KAAO,SAAUL,GAC3B,IAMIl+K,EANAF,EAAIo+K,EAAI,GAAK,IACbx5H,EAAIw5H,EAAI,GAAK,IACbt/L,EAAIs/L,EAAI,GAAK,IASjB,MAAO,CAAK,MAHP,EAAIp+K,GADTE,EAAIhG,KAAKkS,IAAI,EAAIpM,EAAG,EAAI4kD,EAAG,EAAI9lE,MACZ,EAAIohB,IAAM,GAGR,MAFhB,EAAI0kD,EAAI1kD,IAAM,EAAIA,IAAM,GAEC,MADzB,EAAIphB,EAAIohB,IAAM,EAAIA,IAAM,GACU,IAAJA,IAWrCi+K,EAAQC,IAAIS,QAAU,SAAUT,GAC9B,IAAIoB,EAAWtB,EAAgBE,GAE/B,GAAIoB,EACF,OAAOA,EAGT,IACIC,EADAC,EAAyBlD,IAG7B,IAAK,IAAIqC,KAAWb,EAClB,GAAIA,EAAUjiL,eAAe8iL,GAAU,CACrC,IAEI9zI,EAAWo0I,EAAoBf,EAFvBJ,EAAUa,IAIlB9zI,EAAW20I,IACbA,EAAyB30I,EACzB00I,EAAwBZ,GAK9B,OAAOY,GAGTtB,EAAQU,QAAQT,IAAM,SAAUS,GAC9B,OAAOb,EAAUa,IAGnBV,EAAQC,IAAIM,IAAM,SAAUN,GAC1B,IAAIp+K,EAAIo+K,EAAI,GAAK,IACbx5H,EAAIw5H,EAAI,GAAK,IACbt/L,EAAIs/L,EAAI,GAAK,IAQjB,MAAO,CAAK,KAHA,OAHZp+K,EAAIA,EAAI,OAAU9F,KAAK0zB,KAAK5tB,EAAI,MAAS,MAAO,KAAOA,EAAI,OAGlC,OAFzB4kD,EAAIA,EAAI,OAAU1qD,KAAK0zB,KAAKg3B,EAAI,MAAS,MAAO,KAAOA,EAAI,OAErB,OADtC9lE,EAAIA,EAAI,OAAUob,KAAK0zB,KAAK9uC,EAAI,MAAS,MAAO,KAAOA,EAAI,QAItC,KAFT,MAAJkhB,EAAiB,MAAJ4kD,EAAiB,MAAJ9lE,GAEJ,KADlB,MAAJkhB,EAAiB,MAAJ4kD,EAAiB,MAAJ9lE,KAIpCq/L,EAAQC,IAAIO,IAAM,SAAUP,GAC1B,IAAIM,EAAMP,EAAQC,IAAIM,IAAIN,GACtBlpL,EAAIwpL,EAAI,GACRjgM,EAAIigM,EAAI,GACRiB,EAAIjB,EAAI,GAaZ,OARAjgM,GAAK,IACLkhM,GAAK,QACLzqL,GAHAA,GAAK,QAGG,QAAWgF,KAAK0zB,IAAI14B,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,IAMlD,CAHH,KAFJzW,EAAIA,EAAI,QAAWyb,KAAK0zB,IAAInvC,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,KAE3C,GACV,KAAOyW,EAAIzW,GACX,KAAOA,GAHXkhM,EAAIA,EAAI,QAAWzlL,KAAK0zB,IAAI+xJ,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,QAO3DxB,EAAQG,IAAIF,IAAM,SAAUE,GAC1B,IAGIsB,EACAC,EACAC,EACA1B,EACAxyK,EAPAztB,EAAImgM,EAAI,GAAK,IACbvgM,EAAIugM,EAAI,GAAK,IACbj1K,EAAIi1K,EAAI,GAAK,IAOjB,GAAU,IAANvgM,EAEF,MAAO,CADP6tB,EAAU,IAAJvC,EACOuC,EAAKA,GASpBg0K,EAAK,EAAIv2K,GALPw2K,EADEx2K,EAAI,GACDA,GAAK,EAAItrB,GAETsrB,EAAItrB,EAAIsrB,EAAItrB,GAInBqgM,EAAM,CAAC,EAAG,EAAG,GAEb,IAAK,IAAIx1L,EAAI,EAAGA,EAAI,EAAGA,KACrBk3L,EAAK3hM,EAAI,EAAI,IAAMyK,EAAI,IAEd,GACPk3L,IAGEA,EAAK,GACPA,IAIAl0K,EADE,EAAIk0K,EAAK,EACLF,EAAiB,GAAXC,EAAKD,GAAUE,EAClB,EAAIA,EAAK,EACZD,EACG,EAAIC,EAAK,EACZF,GAAMC,EAAKD,IAAO,EAAI,EAAIE,GAAM,EAEhCF,EAGRxB,EAAIx1L,GAAW,IAANgjB,EAGX,OAAOwyK,GAGTD,EAAQG,IAAIC,IAAM,SAAUD,GAC1B,IAAIngM,EAAImgM,EAAI,GACRvgM,EAAIugM,EAAI,GAAK,IACbj1K,EAAIi1K,EAAI,GAAK,IACbyB,EAAOhiM,EACPiiM,EAAO9lL,KAAKmS,IAAIhD,EAAG,KAQvB,OAJAtrB,IADAsrB,GAAK,IACK,EAAIA,EAAI,EAAIA,EACtB02K,GAAQC,GAAQ,EAAIA,EAAO,EAAIA,EAGxB,CAAC7hM,EAAQ,KADL,IAANkrB,EAAU,EAAI02K,GAAQC,EAAOD,GAAQ,EAAIhiM,GAAKsrB,EAAItrB,KADlDsrB,EAAItrB,GAAK,EAEW,MAG3BogM,EAAQI,IAAIH,IAAM,SAAUG,GAC1B,IAAIpgM,EAAIogM,EAAI,GAAK,GACbxgM,EAAIwgM,EAAI,GAAK,IACbnvJ,EAAImvJ,EAAI,GAAK,IACb/vF,EAAKt0F,KAAKG,MAAMlc,GAAK,EACrB6Z,EAAI7Z,EAAI+b,KAAKG,MAAMlc,GACnB0hB,EAAI,IAAMuvB,GAAK,EAAIrxC,GACnBmwL,EAAI,IAAM9+I,GAAK,EAAIrxC,EAAIia,GACvB4H,EAAI,IAAMwvB,GAAK,EAAIrxC,GAAK,EAAIia,IAGhC,OAFAo3B,GAAK,IAEGo/D,GACN,KAAK,EACH,MAAO,CAACp/D,EAAGxvB,EAAGC,GAEhB,KAAK,EACH,MAAO,CAACquK,EAAG9+I,EAAGvvB,GAEhB,KAAK,EACH,MAAO,CAACA,EAAGuvB,EAAGxvB,GAEhB,KAAK,EACH,MAAO,CAACC,EAAGquK,EAAG9+I,GAEhB,KAAK,EACH,MAAO,CAACxvB,EAAGC,EAAGuvB,GAEhB,KAAK,EACH,MAAO,CAACA,EAAGvvB,EAAGquK,KAIpBiQ,EAAQI,IAAID,IAAM,SAAUC,GAC1B,IAIIyB,EACAC,EACA52K,EANAlrB,EAAIogM,EAAI,GACRxgM,EAAIwgM,EAAI,GAAK,IACbnvJ,EAAImvJ,EAAI,GAAK,IACb2B,EAAOhmL,KAAKmS,IAAI+iB,EAAG,KAUvB,OANA/lB,GAAK,EAAItrB,GAAKqxC,EAEd6wJ,EAAKliM,EAAImiM,EAIF,CAAC/hM,EAAQ,KAFhB8hM,GADAA,IAFAD,GAAQ,EAAIjiM,GAAKmiM,IAEH,EAAIF,EAAO,EAAIA,IAClB,GAEc,KADzB32K,GAAK,KAKP80K,EAAQK,IAAIJ,IAAM,SAAUI,GAC1B,IAII51L,EACAwmC,EACAp3B,EACAjF,EAiBAiN,EACA4kD,EACA9lE,EA1BAX,EAAIqgM,EAAI,GAAK,IACb2B,EAAK3B,EAAI,GAAK,IACd4B,EAAK5B,EAAI,GAAK,IACd3xI,EAAQszI,EAAKC,EAyBjB,OAnBIvzI,EAAQ,IACVszI,GAAMtzI,EACNuzI,GAAMvzI,GAKR70C,EAAI,EAAI7Z,GAFRyK,EAAIsR,KAAKG,MAAM,EAAIlc,IAIA,KAAV,EAAJyK,KACHoP,EAAI,EAAIA,GAGVjF,EAAIotL,EAAKnoL,IAPTo3B,EAAI,EAAIgxJ,GAOUD,GAMVv3L,GACN,QACA,KAAK,EACL,KAAK,EACHoX,EAAIovB,EACJw1B,EAAI7xD,EACJjU,EAAIqhM,EACJ,MAEF,KAAK,EACHngL,EAAIjN,EACJ6xD,EAAIx1B,EACJtwC,EAAIqhM,EACJ,MAEF,KAAK,EACHngL,EAAImgL,EACJv7H,EAAIx1B,EACJtwC,EAAIiU,EACJ,MAEF,KAAK,EACHiN,EAAImgL,EACJv7H,EAAI7xD,EACJjU,EAAIswC,EACJ,MAEF,KAAK,EACHpvB,EAAIjN,EACJ6xD,EAAIu7H,EACJrhM,EAAIswC,EACJ,MAEF,KAAK,EACHpvB,EAAIovB,EACJw1B,EAAIu7H,EACJrhM,EAAIiU,EAIR,MAAO,CAAK,IAAJiN,EAAa,IAAJ4kD,EAAa,IAAJ9lE,IAG5Bq/L,EAAQM,KAAKL,IAAM,SAAUK,GAC3B,IAAIh0K,EAAIg0K,EAAK,GAAK,IACdxgM,EAAIwgM,EAAK,GAAK,IACdhgM,EAAIggM,EAAK,GAAK,IACdv+K,EAAIu+K,EAAK,GAAK,IAOlB,MAAO,CAAK,KAHR,EAAIvkL,KAAKkS,IAAI,EAAG3B,GAAK,EAAIvK,GAAKA,IAGb,KAFjB,EAAIhG,KAAKkS,IAAI,EAAGnuB,GAAK,EAAIiiB,GAAKA,IAEJ,KAD1B,EAAIhG,KAAKkS,IAAI,EAAG3tB,GAAK,EAAIyhB,GAAKA,MAIpCi+K,EAAQO,IAAIN,IAAM,SAAUM,GAC1B,IAGI1+K,EACA4kD,EACA9lE,EALAoW,EAAIwpL,EAAI,GAAK,IACbjgM,EAAIigM,EAAI,GAAK,IACbiB,EAAIjB,EAAI,GAAK,IAcjB,OATA95H,GAAS,MAAL1vD,EAAkB,OAAJzW,EAAiB,MAAJkhM,EAC/B7gM,EAAQ,MAAJoW,GAAkB,KAALzW,EAAkB,MAAJkhM,EAE/B3/K,GAJAA,EAAQ,OAAJ9K,GAAkB,OAALzW,GAAmB,MAALkhM,GAIvB,SAAY,MAAQzlL,KAAK0zB,IAAI5tB,EAAG,EAAM,KAAO,KAAY,MAAJA,EAC7D4kD,EAAIA,EAAI,SAAY,MAAQ1qD,KAAK0zB,IAAIg3B,EAAG,EAAM,KAAO,KAAY,MAAJA,EAC7D9lE,EAAIA,EAAI,SAAY,MAAQob,KAAK0zB,IAAI9uC,EAAG,EAAM,KAAO,KAAY,MAAJA,EAItD,CAAK,KAHZkhB,EAAI9F,KAAKkS,IAAIlS,KAAKmS,IAAI,EAAGrM,GAAI,IAGR,KAFrB4kD,EAAI1qD,KAAKkS,IAAIlS,KAAKmS,IAAI,EAAGu4C,GAAI,IAEC,KAD9B9lE,EAAIob,KAAKkS,IAAIlS,KAAKmS,IAAI,EAAGvtB,GAAI,MAI/Bq/L,EAAQO,IAAIC,IAAM,SAAUD,GAC1B,IAAIxpL,EAAIwpL,EAAI,GACRjgM,EAAIigM,EAAI,GACRiB,EAAIjB,EAAI,GAaZ,OARAjgM,GAAK,IACLkhM,GAAK,QACLzqL,GAHAA,GAAK,QAGG,QAAWgF,KAAK0zB,IAAI14B,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,IAMlD,CAHH,KAFJzW,EAAIA,EAAI,QAAWyb,KAAK0zB,IAAInvC,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,KAE3C,GACV,KAAOyW,EAAIzW,GACX,KAAOA,GAHXkhM,EAAIA,EAAI,QAAWzlL,KAAK0zB,IAAI+xJ,EAAG,EAAI,GAAK,MAAQA,EAAI,GAAK,QAO3DxB,EAAQQ,IAAID,IAAM,SAAUC,GAC1B,IAGIzpL,EACAzW,EACAkhM,EALAt2K,EAAIs1K,EAAI,GAOZzpL,EANQypL,EAAI,GAMJ,KADRlgM,GAAK4qB,EAAI,IAAM,KAEfs2K,EAAIlhM,EANIkgM,EAAI,GAMA,IACZ,IAAI0B,EAAKnmL,KAAK0zB,IAAInvC,EAAG,GACjB6hM,EAAKpmL,KAAK0zB,IAAI14B,EAAG,GACjBqrL,EAAKrmL,KAAK0zB,IAAI+xJ,EAAG,GAOrB,OANAlhM,EAAI4hM,EAAK,QAAWA,GAAM5hM,EAAI,GAAK,KAAO,MAC1CyW,EAAIorL,EAAK,QAAWA,GAAMprL,EAAI,GAAK,KAAO,MAC1CyqL,EAAIY,EAAK,QAAWA,GAAMZ,EAAI,GAAK,KAAO,MAInC,CAHPzqL,GAAK,OACLzW,GAAK,IACLkhM,GAAK,UAIPxB,EAAQQ,IAAIC,IAAM,SAAUD,GAC1B,IAIIxgM,EAJAkrB,EAAIs1K,EAAI,GACRx+K,EAAIw+K,EAAI,GACR7/L,EAAI6/L,EAAI,GAYZ,OAPAxgM,EAAS,IADJ+b,KAAKmuC,MAAMvpD,EAAGqhB,GACJ,EAAIjG,KAAKouC,IAEhB,IACNnqD,GAAK,KAIA,CAACkrB,EADJnP,KAAKguC,KAAK/nC,EAAIA,EAAIrhB,EAAIA,GACZX,IAGhBggM,EAAQS,IAAID,IAAM,SAAUC,GAC1B,IAKI4B,EALAn3K,EAAIu1K,EAAI,GACRn0K,EAAIm0K,EAAI,GAQZ,OAHA4B,EAJQ5B,EAAI,GAIH,IAAM,EAAI1kL,KAAKouC,GAGjB,CAACj/B,EAFJoB,EAAIvQ,KAAKi6H,IAAIqsD,GACb/1K,EAAIvQ,KAAKk6H,IAAIosD,KAInBrC,EAAQC,IAAIU,OAAS,SAAU94K,GAC7B,IAAIhG,EAAIgG,EAAK,GACT4+C,EAAI5+C,EAAK,GACTlnB,EAAIknB,EAAK,GACTrU,EAAQ,KAAKrM,UAAYA,UAAU,GAAK64L,EAAQC,IAAIG,IAAIv4K,GAAM,GAIlE,GAAc,KAFdrU,EAAQuI,KAAKwI,MAAM/Q,EAAQ,KAGzB,OAAO,GAGT,IAAI8uL,EAAO,IAAMvmL,KAAKwI,MAAM5jB,EAAI,MAAQ,EAAIob,KAAKwI,MAAMkiD,EAAI,MAAQ,EAAI1qD,KAAKwI,MAAM1C,EAAI,MAMtF,OAJc,IAAVrO,IACF8uL,GAAQ,IAGHA,GAGTtC,EAAQI,IAAIO,OAAS,SAAU94K,GAG7B,OAAOm4K,EAAQC,IAAIU,OAAOX,EAAQI,IAAIH,IAAIp4K,GAAOA,EAAK,KAGxDm4K,EAAQC,IAAIW,QAAU,SAAU/4K,GAC9B,IAAIhG,EAAIgG,EAAK,GACT4+C,EAAI5+C,EAAK,GACTlnB,EAAIknB,EAAK,GAGb,OAAIhG,IAAM4kD,GAAKA,IAAM9lE,EACfkhB,EAAI,EACC,GAGLA,EAAI,IACC,IAGF9F,KAAKwI,OAAO1C,EAAI,GAAK,IAAM,IAAM,IAG/B,GAAK,GAAK9F,KAAKwI,MAAM1C,EAAI,IAAM,GAAK,EAAI9F,KAAKwI,MAAMkiD,EAAI,IAAM,GAAK1qD,KAAKwI,MAAM5jB,EAAI,IAAM,IAIpGq/L,EAAQW,OAAOV,IAAM,SAAUp4K,GAC7B,IAAIkzH,EAAQlzH,EAAO,GAEnB,GAAc,IAAVkzH,GAAyB,IAAVA,EAMjB,OALIlzH,EAAO,KACTkzH,GAAS,KAIJ,CADPA,EAAQA,EAAQ,KAAO,IACRA,EAAOA,GAGxB,IAAIwnD,EAA6B,IAAL,KAAb16K,EAAO,KAItB,MAAO,EAHU,EAARkzH,GAAawnD,EAAO,KACpBxnD,GAAS,EAAI,GAAKwnD,EAAO,KACzBxnD,GAAS,EAAI,GAAKwnD,EAAO,MAIpCvC,EAAQY,QAAQX,IAAM,SAAUp4K,GAE9B,GAAIA,GAAQ,IAAK,CACf,IAAIyE,EAAmB,IAAdzE,EAAO,KAAY,EAC5B,MAAO,CAACyE,EAAGA,EAAGA,GAIhB,IAAIk2K,EAIJ,OALA36K,GAAQ,GAKD,CAHC9L,KAAKG,MAAM2L,EAAO,IAAM,EAAI,IAC5B9L,KAAKG,OAAOsmL,EAAM36K,EAAO,IAAM,GAAK,EAAI,IACxC26K,EAAM,EAAI,EAAI,MAIxBxC,EAAQC,IAAIvvF,IAAM,SAAU7oF,GAC1B,IACIhb,KADkC,IAAtBkP,KAAKwI,MAAMsD,EAAK,MAAe,MAA8B,IAAtB9L,KAAKwI,MAAMsD,EAAK,MAAe,IAA4B,IAAtB9L,KAAKwI,MAAMsD,EAAK,MACvF1L,SAAS,IAAIkmE,cAClC,MAAO,SAAS12D,UAAU9e,EAAOxB,QAAUwB,GAG7CmzL,EAAQtvF,IAAIuvF,IAAM,SAAUp4K,GAC1B,IAAIrd,EAAQqd,EAAK1L,SAAS,IAAI3R,MAAM,4BAEpC,IAAKA,EACH,MAAO,CAAC,EAAG,EAAG,GAGhB,IAAIi4L,EAAcj4L,EAAM,GAEA,IAApBA,EAAM,GAAGa,SACXo3L,EAAcA,EAAYnkM,MAAM,IAAI+tB,KAAI,SAAUwyF,GAChD,OAAOA,EAAOA,KACbplG,KAAK,KAGV,IAAIipL,EAAUjnL,SAASgnL,EAAa,IAIpC,MAAO,CAHCC,GAAW,GAAK,IAChBA,GAAW,EAAI,IACL,IAAVA,IAIV1C,EAAQC,IAAIY,IAAM,SAAUZ,GAC1B,IAOI0C,EAPA9gL,EAAIo+K,EAAI,GAAK,IACbx5H,EAAIw5H,EAAI,GAAK,IACbt/L,EAAIs/L,EAAI,GAAK,IACb/xK,EAAMnS,KAAKmS,IAAInS,KAAKmS,IAAIrM,EAAG4kD,GAAI9lE,GAC/BstB,EAAMlS,KAAKkS,IAAIlS,KAAKkS,IAAIpM,EAAG4kD,GAAI9lE,GAC/BiiM,EAAS10K,EAAMD,EAsBnB,OAXE00K,EADEC,GAAU,EACN,EACG10K,IAAQrM,GACV4kD,EAAI9lE,GAAKiiM,EAAS,EAChB10K,IAAQu4C,EACX,GAAK9lE,EAAIkhB,GAAK+gL,EAEd,GAAK/gL,EAAI4kD,GAAKm8H,EAAS,EAG/BD,GAAO,EAEA,CAAO,KADdA,GAAO,GACqB,IAATC,EAA0B,KAlBzCA,EAAS,EACC30K,GAAO,EAAI20K,GAEX,KAkBhB5C,EAAQG,IAAIU,IAAM,SAAUV,GAC1B,IAAIvgM,EAAIugM,EAAI,GAAK,IACbj1K,EAAIi1K,EAAI,GAAK,IACb7zK,EAAI,EACJzS,EAAI,EAYR,OATEyS,EADEpB,EAAI,GACF,EAAMtrB,EAAIsrB,EAEV,EAAMtrB,GAAK,EAAMsrB,IAGf,IACNrR,GAAKqR,EAAI,GAAMoB,IAAM,EAAMA,IAGtB,CAAC6zK,EAAI,GAAQ,IAAJ7zK,EAAa,IAAJzS,IAG3BmmL,EAAQI,IAAIS,IAAM,SAAUT,GAC1B,IAAIxgM,EAAIwgM,EAAI,GAAK,IACbnvJ,EAAImvJ,EAAI,GAAK,IACb9zK,EAAI1sB,EAAIqxC,EACRp3B,EAAI,EAMR,OAJIyS,EAAI,IACNzS,GAAKo3B,EAAI3kB,IAAM,EAAIA,IAGd,CAAC8zK,EAAI,GAAQ,IAAJ9zK,EAAa,IAAJzS,IAG3BmmL,EAAQa,IAAIZ,IAAM,SAAUY,GAC1B,IAAI7gM,EAAI6gM,EAAI,GAAK,IACbv0K,EAAIu0K,EAAI,GAAK,IACbp6H,EAAIo6H,EAAI,GAAK,IAEjB,GAAU,IAANv0K,EACF,MAAO,CAAK,IAAJm6C,EAAa,IAAJA,EAAa,IAAJA,GAG5B,IAAIo8H,EAAO,CAAC,EAAG,EAAG,GACdxyF,EAAKrwG,EAAI,EAAI,EACbixC,EAAIo/D,EAAK,EACT/3F,EAAI,EAAI24B,EACR6xJ,EAAK,EAET,OAAQ/mL,KAAKG,MAAMm0F,IACjB,KAAK,EACHwyF,EAAK,GAAK,EACVA,EAAK,GAAK5xJ,EACV4xJ,EAAK,GAAK,EACV,MAEF,KAAK,EACHA,EAAK,GAAKvqL,EACVuqL,EAAK,GAAK,EACVA,EAAK,GAAK,EACV,MAEF,KAAK,EACHA,EAAK,GAAK,EACVA,EAAK,GAAK,EACVA,EAAK,GAAK5xJ,EACV,MAEF,KAAK,EACH4xJ,EAAK,GAAK,EACVA,EAAK,GAAKvqL,EACVuqL,EAAK,GAAK,EACV,MAEF,KAAK,EACHA,EAAK,GAAK5xJ,EACV4xJ,EAAK,GAAK,EACVA,EAAK,GAAK,EACV,MAEF,QACEA,EAAK,GAAK,EACVA,EAAK,GAAK,EACVA,EAAK,GAAKvqL,EAId,OADAwqL,GAAM,EAAMx2K,GAAKm6C,EACV,CAAsB,KAApBn6C,EAAIu2K,EAAK,GAAKC,GAAgC,KAApBx2K,EAAIu2K,EAAK,GAAKC,GAAgC,KAApBx2K,EAAIu2K,EAAK,GAAKC,KAG7E9C,EAAQa,IAAIT,IAAM,SAAUS,GAC1B,IAAIv0K,EAAIu0K,EAAI,GAAK,IAEb5vJ,EAAI3kB,EADAu0K,EAAI,GAAK,KACA,EAAMv0K,GACnBzS,EAAI,EAMR,OAJIo3B,EAAI,IACNp3B,EAAIyS,EAAI2kB,GAGH,CAAC4vJ,EAAI,GAAQ,IAAJhnL,EAAa,IAAJo3B,IAG3B+uJ,EAAQa,IAAIV,IAAM,SAAUU,GAC1B,IAAIv0K,EAAIu0K,EAAI,GAAK,IAEb31K,EADI21K,EAAI,GAAK,KACJ,EAAMv0K,GAAK,GAAMA,EAC1B1sB,EAAI,EAQR,OANIsrB,EAAI,GAAOA,EAAI,GACjBtrB,EAAI0sB,GAAK,EAAIpB,GACJA,GAAK,IAAOA,EAAI,IACzBtrB,EAAI0sB,GAAK,GAAK,EAAIpB,KAGb,CAAC21K,EAAI,GAAQ,IAAJjhM,EAAa,IAAJsrB,IAG3B80K,EAAQa,IAAIR,IAAM,SAAUQ,GAC1B,IAAIv0K,EAAIu0K,EAAI,GAAK,IAEb5vJ,EAAI3kB,EADAu0K,EAAI,GAAK,KACA,EAAMv0K,GACvB,MAAO,CAACu0K,EAAI,GAAc,KAAT5vJ,EAAI3kB,GAAoB,KAAT,EAAI2kB,KAGtC+uJ,EAAQK,IAAIQ,IAAM,SAAUR,GAC1B,IAAI/nL,EAAI+nL,EAAI,GAAK,IAEbpvJ,EAAI,EADAovJ,EAAI,GAAK,IAEb/zK,EAAI2kB,EAAI34B,EACRmuD,EAAI,EAMR,OAJIn6C,EAAI,IACNm6C,GAAKx1B,EAAI3kB,IAAM,EAAIA,IAGd,CAAC+zK,EAAI,GAAQ,IAAJ/zK,EAAa,IAAJm6C,IAG3Bu5H,EAAQc,MAAMb,IAAM,SAAUa,GAC5B,MAAO,CAACA,EAAM,GAAK,MAAQ,IAAKA,EAAM,GAAK,MAAQ,IAAKA,EAAM,GAAK,MAAQ,MAG7Ed,EAAQC,IAAIa,MAAQ,SAAUb,GAC5B,MAAO,CAACA,EAAI,GAAK,IAAM,MAAOA,EAAI,GAAK,IAAM,MAAOA,EAAI,GAAK,IAAM,QAGrED,EAAQe,KAAKd,IAAM,SAAUp4K,GAC3B,MAAO,CAACA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,IAAKA,EAAK,GAAK,IAAM,MAGpEm4K,EAAQe,KAAKZ,IAAMH,EAAQe,KAAKX,IAAM,SAAUv4K,GAC9C,MAAO,CAAC,EAAG,EAAGA,EAAK,KAGrBm4K,EAAQe,KAAKV,IAAM,SAAUU,GAC3B,MAAO,CAAC,EAAG,IAAKA,EAAK,KAGvBf,EAAQe,KAAKT,KAAO,SAAUS,GAC5B,MAAO,CAAC,EAAG,EAAG,EAAGA,EAAK,KAGxBf,EAAQe,KAAKP,IAAM,SAAUO,GAC3B,MAAO,CAACA,EAAK,GAAI,EAAG,IAGtBf,EAAQe,KAAKrwF,IAAM,SAAUqwF,GAC3B,IAAItzK,EAAwC,IAAlC1R,KAAKwI,MAAMw8K,EAAK,GAAK,IAAM,KAEjCl0L,IADW4gB,GAAO,KAAOA,GAAO,GAAKA,GACpBtR,SAAS,IAAIkmE,cAClC,MAAO,SAAS12D,UAAU9e,EAAOxB,QAAUwB,GAG7CmzL,EAAQC,IAAIc,KAAO,SAAUd,GAE3B,MAAO,EADIA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAAM,EACzB,IAAM,SA6BxB,SAAS8C,IAKP,IAJA,IAAIC,EAAQ,GAERC,EAASp/L,OAAOkW,KAAK+lL,GAEhB11J,EAAM64J,EAAO53L,OAAQZ,EAAI,EAAGA,EAAI2/B,EAAK3/B,IAC5Cu4L,EAAMC,EAAOx4L,IAAM,CAGjBmiD,UAAW,EACXpM,OAAQ,MAIZ,OAAOwiJ,EAIT,SAASE,EAAUC,GACjB,IAAIH,EAAQD,IACR7vC,EAAQ,CAACiwC,GAIb,IAFAH,EAAMG,GAAWv2I,SAAW,EAErBsmG,EAAM7nJ,QAIX,IAHA,IAAIyrB,EAAUo8H,EAAMxmG,MAChB02I,EAAYv/L,OAAOkW,KAAK+lL,EAAYhpK,IAE/BsT,EAAMg5J,EAAU/3L,OAAQZ,EAAI,EAAGA,EAAI2/B,EAAK3/B,IAAK,CACpD,IAAI44L,EAAWD,EAAU34L,GACrB2d,EAAO46K,EAAMK,IAEM,IAAnBj7K,EAAKwkC,WACPxkC,EAAKwkC,SAAWo2I,EAAMlsK,GAAS81B,SAAW,EAC1CxkC,EAAKo4B,OAAS1pB,EACdo8H,EAAMr2G,QAAQwmJ,IAKpB,OAAOL,EAGT,SAAS/qH,EAAK18C,EAAMC,GAClB,OAAO,SAAU3T,GACf,OAAO2T,EAAGD,EAAK1T,KAInB,SAASy7K,EAAeC,EAASP,GAK/B,IAJA,IAAIpoK,EAAO,CAACooK,EAAMO,GAAS/iJ,OAAQ+iJ,GAC/B/1K,EAAKsyK,EAAYkD,EAAMO,GAAS/iJ,QAAQ+iJ,GACxCC,EAAMR,EAAMO,GAAS/iJ,OAElBwiJ,EAAMQ,GAAKhjJ,QAChB5lB,EAAKiiB,QAAQmmJ,EAAMQ,GAAKhjJ,QACxBhzB,EAAKyqD,EAAK6nH,EAAYkD,EAAMQ,GAAKhjJ,QAAQgjJ,GAAMh2K,GAC/Cg2K,EAAMR,EAAMQ,GAAKhjJ,OAInB,OADAhzB,EAAGi2K,WAAa7oK,EACTpN,EAvFWsyK,EAAYG,IACZH,EAAYK,IACZL,EAAYM,IACZN,EAAYO,IACZP,EAAYQ,KACZR,EAAYS,IACZT,EAAYU,IACZV,EAAYW,IACZX,EAAYpvF,IACXovF,EAAYY,QACZZ,EAAYa,OACZb,EAAYc,QACZd,EAAYe,IACZf,EAAYgB,MACZhB,EAAYiB,KA4EjC,IAAI2C,EAAQ,SAAUP,GAKpB,IAJA,IAAIH,EAAQE,EAAUC,GAClBM,EAAa,GACbR,EAASp/L,OAAOkW,KAAKipL,GAEhB54J,EAAM64J,EAAO53L,OAAQZ,EAAI,EAAGA,EAAI2/B,EAAK3/B,IAAK,CACjD,IAAI84L,EAAUN,EAAOx4L,GAGD,OAFTu4L,EAAMO,GAER/iJ,SAKTijJ,EAAWF,GAAWD,EAAeC,EAASP,IAGhD,OAAOS,GAGLzD,EAAU,GAGd,SAAS2D,EAAQn2K,GACf,IAAIo2K,EAAY,SAAU/7K,GACxB,YAAaxd,IAATwd,GAA+B,OAATA,EACjBA,GAGL1gB,UAAUkE,OAAS,IACrBwc,EAAO/F,MAAMrd,UAAUwG,MAAM7H,KAAK+D,YAG7BqmB,EAAG3F,KAQZ,MAJI,eAAgB2F,IAClBo2K,EAAUH,WAAaj2K,EAAGi2K,YAGrBG,EAGT,SAASC,EAAYr2K,GACnB,IAAIo2K,EAAY,SAAU/7K,GACxB,QAAaxd,IAATwd,GAA+B,OAATA,EACxB,OAAOA,EAGL1gB,UAAUkE,OAAS,IACrBwc,EAAO/F,MAAMrd,UAAUwG,MAAM7H,KAAK+D,YAGpC,IAAI6N,EAASwY,EAAG3F,GAIhB,GAAsB,kBAAX7S,EACT,IAAK,IAAIo1B,EAAMp1B,EAAO3J,OAAQZ,EAAI,EAAGA,EAAI2/B,EAAK3/B,IAC5CuK,EAAOvK,GAAKsR,KAAKwI,MAAMvP,EAAOvK,IAIlC,OAAOuK,GAQT,MAJI,eAAgBwY,IAClBo2K,EAAUH,WAAaj2K,EAAGi2K,YAGrBG,EAnDI//L,OAAOkW,KAAK+lL,GAsDlBzsL,SAAQ,SAAU8vL,GACvBnD,EAAQmD,GAAa,GACrBt/L,OAAOC,eAAek8L,EAAQmD,GAAY,WAAY,CACpD3vL,MAAOssL,EAAYqD,GAAWjD,WAEhCr8L,OAAOC,eAAek8L,EAAQmD,GAAY,SAAU,CAClD3vL,MAAOssL,EAAYqD,GAAW10F,SAEhC,IAAIq1F,EAASJ,EAAMP,GACDt/L,OAAOkW,KAAK+pL,GAClBzwL,SAAQ,SAAUkwL,GAC5B,IAAI/1K,EAAKs2K,EAAOP,GAChBvD,EAAQmD,GAAWI,GAAWM,EAAYr2K,GAC1CwyK,EAAQmD,GAAWI,GAASxxF,IAAM4xF,EAAQn2K,SAG9C,IAAIu2K,EAAe/D,EACfgE,EAAc,CAChB,UAAa,CAAC,IAAK,IAAK,KACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,KAAQ,CAAC,EAAG,IAAK,KACjB,WAAc,CAAC,IAAK,IAAK,KACzB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,EAAG,EAAG,GAChB,eAAkB,CAAC,IAAK,IAAK,KAC7B,KAAQ,CAAC,EAAG,EAAG,KACf,WAAc,CAAC,IAAK,GAAI,KACxB,MAAS,CAAC,IAAK,GAAI,IACnB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,WAAc,CAAC,IAAK,IAAK,GACzB,UAAa,CAAC,IAAK,IAAK,IACxB,MAAS,CAAC,IAAK,IAAK,IACpB,eAAkB,CAAC,IAAK,IAAK,KAC7B,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,GAAI,IACrB,KAAQ,CAAC,EAAG,IAAK,KACjB,SAAY,CAAC,EAAG,EAAG,KACnB,SAAY,CAAC,EAAG,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,IAC5B,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,EAAG,IAAK,GACtB,SAAY,CAAC,IAAK,IAAK,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,EAAG,KACxB,eAAkB,CAAC,GAAI,IAAK,IAC5B,WAAc,CAAC,IAAK,IAAK,GACzB,WAAc,CAAC,IAAK,GAAI,KACxB,QAAW,CAAC,IAAK,EAAG,GACpB,WAAc,CAAC,IAAK,IAAK,KACzB,aAAgB,CAAC,IAAK,IAAK,KAC3B,cAAiB,CAAC,GAAI,GAAI,KAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,GAAI,GAAI,IAC1B,cAAiB,CAAC,EAAG,IAAK,KAC1B,WAAc,CAAC,IAAK,EAAG,KACvB,SAAY,CAAC,IAAK,GAAI,KACtB,YAAe,CAAC,EAAG,IAAK,KACxB,QAAW,CAAC,IAAK,IAAK,KACtB,QAAW,CAAC,IAAK,IAAK,KACtB,WAAc,CAAC,GAAI,IAAK,KACxB,UAAa,CAAC,IAAK,GAAI,IACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,YAAe,CAAC,GAAI,IAAK,IACzB,QAAW,CAAC,IAAK,EAAG,KACpB,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,KAAQ,CAAC,IAAK,IAAK,GACnB,UAAa,CAAC,IAAK,IAAK,IACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,MAAS,CAAC,EAAG,IAAK,GAClB,YAAe,CAAC,IAAK,IAAK,IAC1B,KAAQ,CAAC,IAAK,IAAK,KACnB,SAAY,CAAC,IAAK,IAAK,KACvB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,IACvB,OAAU,CAAC,GAAI,EAAG,KAClB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,SAAY,CAAC,IAAK,IAAK,KACvB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,GACxB,aAAgB,CAAC,IAAK,IAAK,KAC3B,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,qBAAwB,CAAC,IAAK,IAAK,KACnC,UAAa,CAAC,IAAK,IAAK,KACxB,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,YAAe,CAAC,IAAK,IAAK,KAC1B,cAAiB,CAAC,GAAI,IAAK,KAC3B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,eAAkB,CAAC,IAAK,IAAK,KAC7B,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,IAAK,GACjB,UAAa,CAAC,GAAI,IAAK,IACvB,MAAS,CAAC,IAAK,IAAK,KACpB,QAAW,CAAC,IAAK,EAAG,KACpB,OAAU,CAAC,IAAK,EAAG,GACnB,iBAAoB,CAAC,IAAK,IAAK,KAC/B,WAAc,CAAC,EAAG,EAAG,KACrB,aAAgB,CAAC,IAAK,GAAI,KAC1B,aAAgB,CAAC,IAAK,IAAK,KAC3B,eAAkB,CAAC,GAAI,IAAK,KAC5B,gBAAmB,CAAC,IAAK,IAAK,KAC9B,kBAAqB,CAAC,EAAG,IAAK,KAC9B,gBAAmB,CAAC,GAAI,IAAK,KAC7B,gBAAmB,CAAC,IAAK,GAAI,KAC7B,aAAgB,CAAC,GAAI,GAAI,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,SAAY,CAAC,IAAK,IAAK,KACvB,YAAe,CAAC,IAAK,IAAK,KAC1B,KAAQ,CAAC,EAAG,EAAG,KACf,QAAW,CAAC,IAAK,IAAK,KACtB,MAAS,CAAC,IAAK,IAAK,GACpB,UAAa,CAAC,IAAK,IAAK,IACxB,OAAU,CAAC,IAAK,IAAK,GACrB,UAAa,CAAC,IAAK,GAAI,GACvB,OAAU,CAAC,IAAK,IAAK,KACrB,cAAiB,CAAC,IAAK,IAAK,KAC5B,UAAa,CAAC,IAAK,IAAK,KACxB,cAAiB,CAAC,IAAK,IAAK,KAC5B,cAAiB,CAAC,IAAK,IAAK,KAC5B,WAAc,CAAC,IAAK,IAAK,KACzB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,IACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,KAAQ,CAAC,IAAK,IAAK,KACnB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,EAAG,KACnB,cAAiB,CAAC,IAAK,GAAI,KAC3B,IAAO,CAAC,IAAK,EAAG,GAChB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,YAAe,CAAC,IAAK,GAAI,IACzB,OAAU,CAAC,IAAK,IAAK,KACrB,WAAc,CAAC,IAAK,IAAK,IACzB,SAAY,CAAC,GAAI,IAAK,IACtB,SAAY,CAAC,IAAK,IAAK,KACvB,OAAU,CAAC,IAAK,GAAI,IACpB,OAAU,CAAC,IAAK,IAAK,KACrB,QAAW,CAAC,IAAK,IAAK,KACtB,UAAa,CAAC,IAAK,GAAI,KACvB,UAAa,CAAC,IAAK,IAAK,KACxB,UAAa,CAAC,IAAK,IAAK,KACxB,KAAQ,CAAC,IAAK,IAAK,KACnB,YAAe,CAAC,EAAG,IAAK,KACxB,UAAa,CAAC,GAAI,IAAK,KACvB,IAAO,CAAC,IAAK,IAAK,KAClB,KAAQ,CAAC,EAAG,IAAK,KACjB,QAAW,CAAC,IAAK,IAAK,KACtB,OAAU,CAAC,IAAK,GAAI,IACpB,UAAa,CAAC,GAAI,IAAK,KACvB,OAAU,CAAC,IAAK,IAAK,KACrB,MAAS,CAAC,IAAK,IAAK,KACpB,MAAS,CAAC,IAAK,IAAK,KACpB,WAAc,CAAC,IAAK,IAAK,KACzB,OAAU,CAAC,IAAK,IAAK,GACrB,YAAe,CAAC,IAAK,IAAK,KAIxBvB,EAAc,CAChBwB,QAASA,EACTC,QAASA,EACTC,OAAQA,EACRC,OAAQA,EACRC,OAAQA,EACRC,SAAUA,EACVC,UAAWA,EACXC,UAAWA,EACXC,WAAYA,EACZC,cAAeA,EACfC,eAAgBA,EAChBC,UAAWA,EACXC,WAAYA,EACZC,UAAWA,EACXpE,QAASA,GAGX,SAASuD,EAAQp3L,GACf,GAAKA,EAAL,CAIA,IAAIgwH,EAAO,yBACPnsB,EAAM,wCACNq0F,EAAO,2FACPC,EAAM,6GACNtE,EAAU,QACVT,EAAM,CAAC,EAAG,EAAG,GACbj+K,EAAI,EACJxX,EAAQqC,EAAOrC,MAAMqyH,GACrBooE,EAAW,GAEf,GAAIz6L,EAAO,CAETy6L,GADAz6L,EAAQA,EAAM,IACG,GAEjB,IAAK,IAAIC,EAAI,EAAGA,EAAIw1L,EAAI50L,OAAQZ,IAC9Bw1L,EAAIx1L,GAAKgR,SAASjR,EAAMC,GAAKD,EAAMC,GAAI,IAGrCw6L,IACFjjL,EAAIjG,KAAKwI,MAAM9I,SAASwpL,EAAWA,EAAU,IAAM,IAAM,KAAO,UAE7D,GAAIz6L,EAAQqC,EAAOrC,MAAMkmG,GAAM,CAIpC,IAHAu0F,EAAWz6L,EAAM,GACjBA,EAAQA,EAAM,GAELC,EAAI,EAAGA,EAAIw1L,EAAI50L,OAAQZ,IAC9Bw1L,EAAIx1L,GAAKgR,SAASjR,EAAMS,MAAU,EAAJR,EAAW,EAAJA,EAAQ,GAAI,IAG/Cw6L,IACFjjL,EAAIjG,KAAKwI,MAAM9I,SAASwpL,EAAU,IAAM,IAAM,KAAO,UAElD,GAAIz6L,EAAQqC,EAAOrC,MAAMu6L,GAAO,CACrC,IAASt6L,EAAI,EAAGA,EAAIw1L,EAAI50L,OAAQZ,IAC9Bw1L,EAAIx1L,GAAKgR,SAASjR,EAAMC,EAAI,IAG9BuX,EAAI8H,WAAWtf,EAAM,SAChB,GAAIA,EAAQqC,EAAOrC,MAAMw6L,GAAM,CACpC,IAASv6L,EAAI,EAAGA,EAAIw1L,EAAI50L,OAAQZ,IAC9Bw1L,EAAIx1L,GAAKsR,KAAKwI,MAAiC,KAA3BuF,WAAWtf,EAAMC,EAAI,KAG3CuX,EAAI8H,WAAWtf,EAAM,SAChB,GAAIA,EAAQqC,EAAOrC,MAAMk2L,GAAU,CACxC,GAAgB,eAAZl2L,EAAM,GACR,MAAO,CAAC,EAAG,EAAG,EAAG,GAKnB,KAFAy1L,EAAM+D,EAAYx5L,EAAM,KAGtB,OAIJ,IAASC,EAAI,EAAGA,EAAIw1L,EAAI50L,OAAQZ,IAC9Bw1L,EAAIx1L,GAAKiuI,EAAMunD,EAAIx1L,GAAI,EAAG,KAU5B,OAJEuX,EAHGA,GAAU,GAALA,EAGJ02H,EAAM12H,EAAG,EAAG,GAFZ,EAKNi+K,EAAI,GAAKj+K,EACFi+K,GAGT,SAASiE,EAAQr3L,GACf,GAAKA,EAAL,CAIA,IAAIszL,EAAM,2GACN31L,EAAQqC,EAAOrC,MAAM21L,GAEzB,GAAI31L,EAAO,CACT,IAAI06L,EAAQp7K,WAAWtf,EAAM,IAK7B,MAAO,CAJCkuI,EAAMj9H,SAASjR,EAAM,IAAK,EAAG,KAC7BkuI,EAAM5uH,WAAWtf,EAAM,IAAK,EAAG,KAC/BkuI,EAAM5uH,WAAWtf,EAAM,IAAK,EAAG,KAC/BkuI,EAAMl9H,MAAM0pL,GAAS,EAAIA,EAAO,EAAG,MAK/C,SAASb,EAAOx3L,GACd,GAAKA,EAAL,CAIA,IAAIwzL,EAAM,yGACN71L,EAAQqC,EAAOrC,MAAM61L,GAEzB,GAAI71L,EAAO,CACT,IAAI06L,EAAQp7K,WAAWtf,EAAM,IAK7B,MAAO,CAJCkuI,EAAMj9H,SAASjR,EAAM,IAAK,EAAG,KAC7BkuI,EAAM5uH,WAAWtf,EAAM,IAAK,EAAG,KAC/BkuI,EAAM5uH,WAAWtf,EAAM,IAAK,EAAG,KAC/BkuI,EAAMl9H,MAAM0pL,GAAS,EAAIA,EAAO,EAAG,MAK/C,SAASf,EAAOt3L,GACd,IAAIk4L,EAAOd,EAAQp3L,GACnB,OAAOk4L,GAAQA,EAAK95L,MAAM,EAAG,GAG/B,SAASm5L,EAAOv3L,GACd,IAAIs4L,EAAOjB,EAAQr3L,GACnB,OAAOs4L,GAAQA,EAAKl6L,MAAM,EAAG,GAG/B,SAASq5L,EAASz3L,GAChB,IAAIu4L,EAAOnB,EAAQp3L,GAEnB,OAAIu4L,IAEOA,EAAOlB,EAAQr3L,MAEfu4L,EAAOf,EAAOx3L,IAHhBu4L,EAAK,QAGP,EAMT,SAASb,EAAUQ,EAAM/iL,GAEvB,OADIA,OAAU3X,IAAN2X,GAAmC,IAAhB+iL,EAAK15L,OAAe2W,EAAI+iL,EAAK,GACjD,IAAMM,EAAUN,EAAK,IAAMM,EAAUN,EAAK,IAAMM,EAAUN,EAAK,KAAO/iL,GAAK,GAAKA,EAAI,EAAIqjL,EAAUtpL,KAAKwI,MAAU,IAAJvC,IAAY,IAGlI,SAASwiL,EAAUO,EAAMG,GACvB,OAAIA,EAAQ,GAAKH,EAAK,IAAMA,EAAK,GAAK,EAC7BN,EAAWM,EAAMG,GAGnB,OAASH,EAAK,GAAK,KAAOA,EAAK,GAAK,KAAOA,EAAK,GAAK,IAG9D,SAASN,EAAWM,EAAMG,GAKxB,YAJc76L,IAAV66L,IACFA,OAAoB76L,IAAZ06L,EAAK,GAAmBA,EAAK,GAAK,GAGrC,QAAUA,EAAK,GAAK,KAAOA,EAAK,GAAK,KAAOA,EAAK,GAAK,KAAOG,EAAQ,IAG9E,SAASR,EAAcK,EAAMG,GAC3B,OAAIA,EAAQ,GAAKH,EAAK,IAAMA,EAAK,GAAK,EAC7BJ,EAAeI,EAAMG,GAMvB,OAHCnpL,KAAKwI,MAAMwgL,EAAK,GAAK,IAAM,KAGf,MAFZhpL,KAAKwI,MAAMwgL,EAAK,GAAK,IAAM,KAEH,MADxBhpL,KAAKwI,MAAMwgL,EAAK,GAAK,IAAM,KACS,KAG9C,SAASJ,EAAeI,EAAMG,GAI5B,MAAO,QAHCnpL,KAAKwI,MAAMwgL,EAAK,GAAK,IAAM,KAGd,MAFbhpL,KAAKwI,MAAMwgL,EAAK,GAAK,IAAM,KAEF,MADzBhpL,KAAKwI,MAAMwgL,EAAK,GAAK,IAAM,KACU,OAASG,GAASH,EAAK,IAAM,GAAK,IAGjF,SAASH,EAAUO,EAAMD,GACvB,OAAIA,EAAQ,GAAKC,EAAK,IAAMA,EAAK,GAAK,EAC7BN,EAAWM,EAAMD,GAGnB,OAASC,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,KAG/D,SAASN,EAAWM,EAAMD,GAKxB,YAJc76L,IAAV66L,IACFA,OAAoB76L,IAAZ86L,EAAK,GAAmBA,EAAK,GAAK,GAGrC,QAAUA,EAAK,GAAK,KAAOA,EAAK,GAAK,MAAQA,EAAK,GAAK,MAAQD,EAAQ,IAKhF,SAASJ,EAAUzE,EAAK6E,GAKtB,YAJc76L,IAAV66L,IACFA,OAAmB76L,IAAXg2L,EAAI,GAAmBA,EAAI,GAAK,GAGnC,OAASA,EAAI,GAAK,KAAOA,EAAI,GAAK,MAAQA,EAAI,GAAK,UAAiBh2L,IAAV66L,GAAiC,IAAVA,EAAc,KAAOA,EAAQ,IAAM,IAG7H,SAASxE,EAAQT,GACf,OAAOqF,EAAarF,EAAIh1L,MAAM,EAAG,IAInC,SAASytI,EAAMxjI,EAAK+Y,EAAKC,GACvB,OAAOnS,KAAKkS,IAAIlS,KAAKmS,IAAID,EAAK/Y,GAAMgZ,GAGtC,SAASm3K,EAAUnwL,GACjB,IAAI5K,EAAM4K,EAAIiH,SAAS,IAAIkmE,cAC3B,OAAO/3E,EAAIe,OAAS,EAAI,IAAMf,EAAMA,EAItC,IAAIg7L,EAAe,GAEnB,IAAK,IAAIpkL,KAAQ8iL,EACfsB,EAAatB,EAAY9iL,IAASA,EAKpC,IAAIqkL,EAAQ,SAAUpnL,GACpB,OAAIA,aAAeonL,EACVpnL,EAGH9a,gBAAgBkiM,GAItBliM,KAAKw0K,OAAQ,EACbx0K,KAAK+xC,OAAS,CACZ6qJ,IAAK,CAAC,EAAG,EAAG,GACZE,IAAK,CAAC,EAAG,EAAG,GACZC,IAAK,CAAC,EAAG,EAAG,GACZC,IAAK,CAAC,EAAG,EAAG,GACZC,KAAM,CAAC,EAAG,EAAG,EAAG,GAChB4E,MAAO,QAKU,kBAAR/mL,GACTinL,EAAO3C,EAAYwB,QAAQ9lL,IAGzB9a,KAAKmiM,UAAU,MAAOJ,IACbA,EAAO3C,EAAYyB,QAAQ/lL,IACpC9a,KAAKmiM,UAAU,MAAOJ,IACbA,EAAO3C,EAAY4B,OAAOlmL,KACnC9a,KAAKmiM,UAAU,MAAOJ,GAEA,kBAARjnL,SAGD9T,KAFf+6L,EAAOjnL,GAEE0D,QAAgCxX,IAAb+6L,EAAKK,IAC/BpiM,KAAKmiM,UAAU,MAAOJ,QACF/6L,IAAX+6L,EAAKl6K,QAAsC7gB,IAAnB+6L,EAAKM,UACtCriM,KAAKmiM,UAAU,MAAOJ,QACF/6L,IAAX+6L,EAAKn0J,QAAkC5mC,IAAf+6L,EAAK5xL,MACtCnQ,KAAKmiM,UAAU,MAAOJ,QACF/6L,IAAX+6L,EAAK9sL,QAAsCjO,IAAnB+6L,EAAKO,UACtCtiM,KAAKmiM,UAAU,MAAOJ,QACF/6L,IAAX+6L,EAAK94K,QAAiCjiB,IAAd+6L,EAAKQ,MACtCviM,KAAKmiM,UAAU,OAAQJ,MArClB,IAAIG,EAAMpnL,GAanB,IAAIinL,GA6BNG,EAAM9gM,UAAY,CAChBqnH,QAAS,WACP,OAAOzoH,KAAKw0K,OAEdooB,IAAK,WACH,OAAO58L,KAAKwiM,SAAS,MAAO1+L,YAE9Bg5L,IAAK,WACH,OAAO98L,KAAKwiM,SAAS,MAAO1+L,YAE9Bi5L,IAAK,WACH,OAAO/8L,KAAKwiM,SAAS,MAAO1+L,YAE9Bk5L,IAAK,WACH,OAAOh9L,KAAKwiM,SAAS,MAAO1+L,YAE9Bm5L,KAAM,WACJ,OAAOj9L,KAAKwiM,SAAS,OAAQ1+L,YAE/B2+L,SAAU,WACR,OAAOziM,KAAK+xC,OAAO6qJ,KAErB8F,SAAU,WACR,OAAO1iM,KAAK+xC,OAAO+qJ,KAErB6F,SAAU,WACR,OAAO3iM,KAAK+xC,OAAOgrJ,KAErB6F,SAAU,WACR,IAAI7wJ,EAAS/xC,KAAK+xC,OAElB,OAAqB,IAAjBA,EAAO8vJ,MACF9vJ,EAAOirJ,IAAIrmL,OAAO,CAACo7B,EAAO8vJ,QAG5B9vJ,EAAOirJ,KAEhB6F,UAAW,WACT,OAAO7iM,KAAK+xC,OAAOkrJ,MAErB6F,UAAW,WACT,IAAI/wJ,EAAS/xC,KAAK+xC,OAClB,OAAOA,EAAO6qJ,IAAIjmL,OAAO,CAACo7B,EAAO8vJ,SAEnCkB,UAAW,WACT,IAAIhxJ,EAAS/xC,KAAK+xC,OAClB,OAAOA,EAAO+qJ,IAAInmL,OAAO,CAACo7B,EAAO8vJ,SAEnCA,MAAO,SAAUz3K,GACf,YAAYpjB,IAARojB,EACKpqB,KAAK+xC,OAAO8vJ,OAGrB7hM,KAAKmiM,UAAU,QAAS/3K,GACjBpqB,OAEToiM,IAAK,SAAUh4K,GACb,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnC64K,MAAO,SAAU74K,GACf,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnC84K,KAAM,SAAU94K,GACd,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnCk1K,IAAK,SAAUl1K,GAMb,OALIA,IAEFA,GADAA,GAAO,KACK,EAAI,IAAMA,EAAMA,GAGvBpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnC+4K,WAAY,SAAU/4K,GACpB,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnCi4K,UAAW,SAAUj4K,GACnB,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnCg5K,YAAa,SAAUh5K,GACrB,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnCk4K,UAAW,SAAUl4K,GACnB,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnCi5K,UAAW,SAAUj5K,GACnB,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnCja,MAAO,SAAUia,GACf,OAAOpqB,KAAKgjM,WAAW,MAAO,EAAG54K,IAEnCm4K,KAAM,SAAUn4K,GACd,OAAOpqB,KAAKgjM,WAAW,OAAQ,EAAG54K,IAEpCk5K,QAAS,SAAUl5K,GACjB,OAAOpqB,KAAKgjM,WAAW,OAAQ,EAAG54K,IAEpCm5K,OAAQ,SAAUn5K,GAChB,OAAOpqB,KAAKgjM,WAAW,OAAQ,EAAG54K,IAEpCo5K,MAAO,SAAUp5K,GACf,OAAOpqB,KAAKgjM,WAAW,OAAQ,EAAG54K,IAEpC82K,UAAW,WACT,OAAO9B,EAAY8B,UAAUlhM,KAAK+xC,OAAO6qJ,MAE3CuE,UAAW,WACT,OAAO/B,EAAY+B,UAAUnhM,KAAK+xC,OAAO6qJ,IAAK58L,KAAK+xC,OAAO8vJ,QAE5DT,WAAY,WACV,OAAOhC,EAAYgC,WAAWphM,KAAK+xC,OAAO6qJ,IAAK58L,KAAK+xC,OAAO8vJ,QAE7DR,cAAe,WACb,OAAOjC,EAAYiC,cAAcrhM,KAAK+xC,OAAO6qJ,IAAK58L,KAAK+xC,OAAO8vJ,QAEhEN,UAAW,WACT,OAAOnC,EAAYmC,UAAUvhM,KAAK+xC,OAAO+qJ,IAAK98L,KAAK+xC,OAAO8vJ,QAE5DL,WAAY,WACV,OAAOpC,EAAYoC,WAAWxhM,KAAK+xC,OAAO+qJ,IAAK98L,KAAK+xC,OAAO8vJ,QAE7DJ,UAAW,WACT,OAAOrC,EAAYqC,UAAUzhM,KAAK+xC,OAAOirJ,IAAKh9L,KAAK+xC,OAAO8vJ,QAE5DxE,QAAS,WACP,OAAO+B,EAAY/B,QAAQr9L,KAAK+xC,OAAO6qJ,IAAK58L,KAAK+xC,OAAO8vJ,QAE1D4B,UAAW,WACT,IAAI7G,EAAM58L,KAAK+xC,OAAO6qJ,IACtB,OAAOA,EAAI,IAAM,GAAKA,EAAI,IAAM,EAAIA,EAAI,IAE1C8G,WAAY,WAKV,IAHA,IAAI9G,EAAM58L,KAAK+xC,OAAO6qJ,IAClB+G,EAAM,GAEDv8L,EAAI,EAAGA,EAAIw1L,EAAI50L,OAAQZ,IAAK,CACnC,IAAIw8L,EAAOhH,EAAIx1L,GAAK,IACpBu8L,EAAIv8L,GAAKw8L,GAAQ,OAAUA,EAAO,MAAQlrL,KAAK0zB,KAAKw3J,EAAO,MAAS,MAAO,KAG7E,MAAO,MAASD,EAAI,GAAK,MAASA,EAAI,GAAK,MAASA,EAAI,IAE1DE,SAAU,SAAUC,GAElB,IAAIC,EAAO/jM,KAAK0jM,aACZM,EAAOF,EAAOJ,aAElB,OAAIK,EAAOC,GACDD,EAAO,MAASC,EAAO,MAGzBA,EAAO,MAASD,EAAO,MAEjCE,MAAO,SAAUH,GACf,IAAII,EAAgBlkM,KAAK6jM,SAASC,GAElC,OAAII,GAAiB,IACZ,MAGFA,GAAiB,IAAM,KAAO,IAEvCC,KAAM,WAEJ,IAAIvH,EAAM58L,KAAK+xC,OAAO6qJ,IAEtB,OADoB,IAATA,EAAI,GAAoB,IAATA,EAAI,GAAoB,IAATA,EAAI,IAAY,IAC5C,KAEfwH,MAAO,WACL,OAAQpkM,KAAKmkM,QAEfE,OAAQ,WAGN,IAFA,IAAIzH,EAAM,GAEDx1L,EAAI,EAAGA,EAAI,EAAGA,IACrBw1L,EAAIx1L,GAAK,IAAMpH,KAAK+xC,OAAO6qJ,IAAIx1L,GAIjC,OADApH,KAAKmiM,UAAU,MAAOvF,GACf58L,MAETskM,QAAS,SAAUj5I,GACjB,IAAIyxI,EAAM98L,KAAK+xC,OAAO+qJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKzxI,EACnBrrD,KAAKmiM,UAAU,MAAOrF,GACf98L,MAETukM,OAAQ,SAAUl5I,GAChB,IAAIyxI,EAAM98L,KAAK+xC,OAAO+qJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKzxI,EACnBrrD,KAAKmiM,UAAU,MAAOrF,GACf98L,MAETwkM,SAAU,SAAUn5I,GAClB,IAAIyxI,EAAM98L,KAAK+xC,OAAO+qJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKzxI,EACnBrrD,KAAKmiM,UAAU,MAAOrF,GACf98L,MAETykM,WAAY,SAAUp5I,GACpB,IAAIyxI,EAAM98L,KAAK+xC,OAAO+qJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAKzxI,EACnBrrD,KAAKmiM,UAAU,MAAOrF,GACf98L,MAET0kM,OAAQ,SAAUr5I,GAChB,IAAI2xI,EAAMh9L,KAAK+xC,OAAOirJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAK3xI,EACnBrrD,KAAKmiM,UAAU,MAAOnF,GACfh9L,MAET2kM,QAAS,SAAUt5I,GACjB,IAAI2xI,EAAMh9L,KAAK+xC,OAAOirJ,IAGtB,OAFAA,EAAI,IAAMA,EAAI,GAAK3xI,EACnBrrD,KAAKmiM,UAAU,MAAOnF,GACfh9L,MAET4kM,UAAW,WACT,IAAIhI,EAAM58L,KAAK+xC,OAAO6qJ,IAElBxyK,EAAe,GAATwyK,EAAI,GAAoB,IAATA,EAAI,GAAqB,IAATA,EAAI,GAE7C,OADA58L,KAAKmiM,UAAU,MAAO,CAAC/3K,EAAKA,EAAKA,IAC1BpqB,MAET6kM,QAAS,SAAUx5I,GACjB,IAAIw2I,EAAQ7hM,KAAK+xC,OAAO8vJ,MAExB,OADA7hM,KAAKmiM,UAAU,QAASN,EAAQA,EAAQx2I,GACjCrrD,MAET8kM,QAAS,SAAUz5I,GACjB,IAAIw2I,EAAQ7hM,KAAK+xC,OAAO8vJ,MAExB,OADA7hM,KAAKmiM,UAAU,QAASN,EAAQA,EAAQx2I,GACjCrrD,MAETu5I,OAAQ,SAAUwrD,GAChB,IAAIjI,EAAM98L,KAAK+xC,OAAO+qJ,IAClBwC,GAAOxC,EAAI,GAAKiI,GAAW,IAG/B,OAFAjI,EAAI,GAAKwC,EAAM,EAAI,IAAMA,EAAMA,EAC/Bt/L,KAAKmiM,UAAU,MAAOrF,GACf98L,MAOTglM,IAAK,SAAUC,EAAYj0D,GACzB,IAAIk0D,EAASllM,KACT8jM,EAASmB,EACT5mL,OAAerX,IAAXgqI,EAAuB,GAAMA,EACjC/7H,EAAI,EAAIoJ,EAAI,EACZM,EAAIumL,EAAOrD,QAAUiC,EAAOjC,QAC5BsD,IAAOlwL,EAAI0J,KAAO,EAAI1J,GAAKA,EAAI0J,IAAM,EAAI1J,EAAI0J,IAAM,GAAK,EACxDymL,EAAK,EAAID,EACb,OAAOnlM,KAAK48L,IAAIuI,EAAKD,EAAO9C,MAAQgD,EAAKtB,EAAO1B,MAAO+C,EAAKD,EAAOjC,QAAUmC,EAAKtB,EAAOb,QAASkC,EAAKD,EAAOhC,OAASkC,EAAKtB,EAAOZ,QAAQrB,MAAMqD,EAAOrD,QAAUxjL,EAAIylL,EAAOjC,SAAW,EAAIxjL,KAE9LV,OAAQ,WACN,OAAO3d,KAAK48L,OAEd/6D,MAAO,WAKL,IAGI1xH,EAAO6D,EAHPrC,EAAS,IAAIuwL,EACb16L,EAASxH,KAAK+xC,OACdntC,EAAS+M,EAAOogC,OAGpB,IAAK,IAAIw3E,KAAQ/hH,EACXA,EAAO+S,eAAegvG,KACxBp5G,EAAQ3I,EAAO+hH,GAGF,oBAFbv1G,EAAO,GAAG8E,SAAS/Y,KAAKoQ,IAGtBvL,EAAO2kH,GAAQp5G,EAAMvI,MAAM,GACT,oBAAToM,IACTpP,EAAO2kH,GAAQp5G,IAKrB,OAAOwB,IAGXuwL,EAAM9gM,UAAUw4L,OAAS,CACvBgD,IAAK,CAAC,MAAO,QAAS,QACtBE,IAAK,CAAC,MAAO,aAAc,aAC3BC,IAAK,CAAC,MAAO,aAAc,SAC3BC,IAAK,CAAC,MAAO,YAAa,aAC1BC,KAAM,CAAC,OAAQ,UAAW,SAAU,UAEtCiF,EAAM9gM,UAAUikM,MAAQ,CACtBzI,IAAK,CAAC,IAAK,IAAK,KAChBE,IAAK,CAAC,IAAK,IAAK,KAChBC,IAAK,CAAC,IAAK,IAAK,KAChBC,IAAK,CAAC,IAAK,IAAK,KAChBC,KAAM,CAAC,IAAK,IAAK,IAAK,MAGxBiF,EAAM9gM,UAAUkkM,UAAY,SAAUC,GAIpC,IAHA,IAAIxzJ,EAAS/xC,KAAK+xC,OACdgwJ,EAAO,GAEF36L,EAAI,EAAGA,EAAIm+L,EAAMv9L,OAAQZ,IAChC26L,EAAKwD,EAAMxzL,OAAO3K,IAAM2qC,EAAOwzJ,GAAOn+L,GAQxC,OALqB,IAAjB2qC,EAAO8vJ,QACTE,EAAKpjL,EAAIozB,EAAO8vJ,OAIXE,GAGTG,EAAM9gM,UAAU+gM,UAAY,SAAUoD,EAAOxD,GAC3C,IAII36L,EAiCAo+L,EArCAzzJ,EAAS/xC,KAAK+xC,OACd6nJ,EAAS55L,KAAK45L,OACdyL,EAAQrlM,KAAKqlM,MACbxD,EAAQ,EAIZ,GAFA7hM,KAAKw0K,OAAQ,EAEC,UAAV+wB,EACF1D,EAAQE,OACH,GAAIA,EAAK/5L,OAEd+pC,EAAOwzJ,GAASxD,EAAKn6L,MAAM,EAAG29L,EAAMv9L,QACpC65L,EAAQE,EAAKwD,EAAMv9L,aACd,QAA8BhB,IAA1B+6L,EAAKwD,EAAMxzL,OAAO,IAAmB,CAE9C,IAAK3K,EAAI,EAAGA,EAAIm+L,EAAMv9L,OAAQZ,IAC5B2qC,EAAOwzJ,GAAOn+L,GAAK26L,EAAKwD,EAAMxzL,OAAO3K,IAGvCy6L,EAAQE,EAAKpjL,OACR,QAA+B3X,IAA3B+6L,EAAKnI,EAAO2L,GAAO,IAAmB,CAE/C,IAAIE,EAAQ7L,EAAO2L,GAEnB,IAAKn+L,EAAI,EAAGA,EAAIm+L,EAAMv9L,OAAQZ,IAC5B2qC,EAAOwzJ,GAAOn+L,GAAK26L,EAAK0D,EAAMr+L,IAGhCy6L,EAAQE,EAAKF,MAKf,GAFA9vJ,EAAO8vJ,MAAQnpL,KAAKmS,IAAI,EAAGnS,KAAKkS,IAAI,OAAa5jB,IAAV66L,EAAsB9vJ,EAAO8vJ,MAAQA,IAE9D,UAAV0D,EACF,OAAO,EAKT,IAAKn+L,EAAI,EAAGA,EAAIm+L,EAAMv9L,OAAQZ,IAC5Bo+L,EAAS9sL,KAAKmS,IAAI,EAAGnS,KAAKkS,IAAIy6K,EAAME,GAAOn+L,GAAI2qC,EAAOwzJ,GAAOn+L,KAC7D2qC,EAAOwzJ,GAAOn+L,GAAKsR,KAAKwI,MAAMskL,GAIhC,IAAK,IAAIE,KAAS9L,EACZ8L,IAAUH,IACZxzJ,EAAO2zJ,GAAShF,EAAa6E,GAAOG,GAAO3zJ,EAAOwzJ,KAItD,OAAO,GAGTrD,EAAM9gM,UAAUohM,SAAW,SAAU+C,EAAO/gL,GAC1C,IAAIu9K,EAAOv9K,EAAK,GAEhB,YAAaxd,IAAT+6L,EAEK/hM,KAAKslM,UAAUC,IAIJ,kBAATxD,IACTA,EAAOtjL,MAAMrd,UAAUwG,MAAM7H,KAAKykB,IAGpCxkB,KAAKmiM,UAAUoD,EAAOxD,GACf/hM,OAGTkiM,EAAM9gM,UAAU4hM,WAAa,SAAUuC,EAAOx9L,EAAOqiB,GACnD,IAAIu7K,EAAU3lM,KAAK+xC,OAAOwzJ,GAE1B,YAAYv+L,IAARojB,EAEKu7K,EAAQ59L,IACNqiB,IAAQu7K,EAAQ59L,KAM3B49L,EAAQ59L,GAASqiB,EACjBpqB,KAAKmiM,UAAUoD,EAAOI,IALb3lM,OASW,qBAAXiX,SACTA,OAAOirL,MAAQA,GAGjB,IAAI0D,EAAe1D,EAEnB,SAAS2D,EAAWljM,GAClB,OAAmE,IAA5D,CAAC,YAAa,YAAa,eAAegF,QAAQhF,GAO3D,IAYQyyC,EAZJk7F,EAAU,CAIZ+f,KAAM,aAONy1C,KACM1wJ,EAAK,EACF,WACL,OAAOA,MAUXw7F,cAAe,SAAUzgI,GACvB,OAAiB,OAAVA,GAAmC,qBAAVA,GASlCu6B,QAAS,SAAUv6B,GACjB,GAAIsO,MAAMisB,SAAWjsB,MAAMisB,QAAQv6B,GACjC,OAAO,EAGT,IAAI6D,EAAOxT,OAAOY,UAAU0X,SAAS/Y,KAAKoQ,GAE1C,MAA0B,YAAtB6D,EAAK2nD,OAAO,EAAG,IAAwC,WAApB3nD,EAAK2nD,QAAQ,IAatDviD,SAAU,SAAUjJ,GAClB,OAAiB,OAAVA,GAA4D,oBAA1C3P,OAAOY,UAAU0X,SAAS/Y,KAAKoQ,IAQ1DqnD,SAAU,SAAUrnD,GAClB,OAAyB,kBAAVA,GAAsBA,aAAiBkhD,SAAWmG,SAASrnD,IAS5EohI,eAAgB,SAAUphI,EAAO+uB,GAC/B,MAAwB,qBAAV/uB,EAAwB+uB,EAAe/uB,GAUvD41L,sBAAuB,SAAU51L,EAAOpI,EAAOm3B,GAC7C,OAAOoxG,EAAQiB,eAAejB,EAAQ5lG,QAAQv6B,GAASA,EAAMpI,GAASoI,EAAO+uB,IAW/El8B,SAAU,SAAUmnB,EAAI3F,EAAMk5F,GAC5B,GAAIvzF,GAAyB,oBAAZA,EAAGpqB,KAClB,OAAOoqB,EAAGtmB,MAAM65G,EAASl5F,IAa7Bs3B,KAAM,SAAUkqJ,EAAU77K,EAAIuzF,EAAS5vE,GACrC,IAAI1mC,EAAG2/B,EAAKrwB,EAEZ,GAAI45H,EAAQ5lG,QAAQs7J,GAGlB,GAFAj/J,EAAMi/J,EAASh+L,OAEX8lC,EACF,IAAK1mC,EAAI2/B,EAAM,EAAG3/B,GAAK,EAAGA,IACxB+iB,EAAGpqB,KAAK29G,EAASsoF,EAAS5+L,GAAIA,QAGhC,IAAKA,EAAI,EAAGA,EAAI2/B,EAAK3/B,IACnB+iB,EAAGpqB,KAAK29G,EAASsoF,EAAS5+L,GAAIA,QAG7B,GAAIkpI,EAAQl3H,SAAS4sL,GAI1B,IAFAj/J,GADArwB,EAAOlW,OAAOkW,KAAKsvL,IACRh+L,OAENZ,EAAI,EAAGA,EAAI2/B,EAAK3/B,IACnB+iB,EAAGpqB,KAAK29G,EAASsoF,EAAStvL,EAAKtP,IAAKsP,EAAKtP,KAY/C6+L,YAAa,SAAUn0D,EAAIC,GACzB,IAAI3qI,EAAG+pI,EAAM+0D,EAAIC,EAEjB,IAAKr0D,IAAOC,GAAMD,EAAG9pI,SAAW+pI,EAAG/pI,OACjC,OAAO,EAGT,IAAKZ,EAAI,EAAG+pI,EAAOW,EAAG9pI,OAAQZ,EAAI+pI,IAAQ/pI,EAIxC,GAHA8+L,EAAKp0D,EAAG1qI,GACR++L,EAAKp0D,EAAG3qI,GAEJ8+L,aAAcznL,OAAS0nL,aAAc1nL,OACvC,IAAK6xH,EAAQ21D,YAAYC,EAAIC,GAC3B,OAAO,OAEJ,GAAID,IAAOC,EAEhB,OAAO,EAIX,OAAO,GAQTtkE,MAAO,SAAUr6H,GACf,GAAI8oI,EAAQ5lG,QAAQljC,GAClB,OAAOA,EAAOwhB,IAAIsnH,EAAQzO,OAG5B,GAAIyO,EAAQl3H,SAAS5R,GAAS,CAM5B,IALA,IAAI5C,EAASpE,OAAO4lC,OAAO5+B,GACvBkP,EAAOlW,OAAOkW,KAAKlP,GACnBg1I,EAAO9lI,EAAK1O,OACZ0W,EAAI,EAEDA,EAAI89H,IAAQ99H,EACjB9Z,EAAO8R,EAAKgI,IAAM4xH,EAAQzO,MAAMr6H,EAAOkP,EAAKgI,KAG9C,OAAO9Z,EAGT,OAAO4C,GAQT4+L,QAAS,SAAUzjM,EAAKiC,EAAQ4C,EAAQ2P,GACtC,GAAK0uL,EAAWljM,GAAhB,CAMA,IAAI0jM,EAAOzhM,EAAOjC,GACd2jM,EAAO9+L,EAAO7E,GAEd2tI,EAAQl3H,SAASitL,IAAS/1D,EAAQl3H,SAASktL,GAC7Ch2D,EAAQt+D,MAAMq0H,EAAMC,EAAMnvL,GAE1BvS,EAAOjC,GAAO2tI,EAAQzO,MAAMykE,KAQhCC,UAAW,SAAU5jM,EAAKiC,EAAQ4C,GAChC,GAAKq+L,EAAWljM,GAAhB,CAMA,IAAI0jM,EAAOzhM,EAAOjC,GACd2jM,EAAO9+L,EAAO7E,GAEd2tI,EAAQl3H,SAASitL,IAAS/1D,EAAQl3H,SAASktL,GAC7Ch2D,EAAQk2D,QAAQH,EAAMC,GACZ1hM,EAAO2V,eAAe5X,KAChCiC,EAAOjC,GAAO2tI,EAAQzO,MAAMykE,MAahCt0H,MAAO,SAAUptE,EAAQ4C,EAAQ2P,GAC/B,IAEI66D,EAAO5qE,EAAGsP,EAAM8lI,EAAM99H,EAFtB+nL,EAAUn2D,EAAQ5lG,QAAQljC,GAAUA,EAAS,CAACA,GAC9C2pI,EAAOs1D,EAAQz+L,OAGnB,IAAKsoI,EAAQl3H,SAASxU,GACpB,OAAOA,EAMT,IAFAotE,GADA76D,EAAUA,GAAW,IACLwnI,QAAUrO,EAAQ81D,QAE7Bh/L,EAAI,EAAGA,EAAI+pI,IAAQ/pI,EAGtB,GAFAI,EAASi/L,EAAQr/L,GAEZkpI,EAAQl3H,SAAS5R,GAMtB,IAAKkX,EAAI,EAAG89H,GAFZ9lI,EAAOlW,OAAOkW,KAAKlP,IAEKQ,OAAQ0W,EAAI89H,IAAQ99H,EAC1CszD,EAAMt7D,EAAKgI,GAAI9Z,EAAQ4C,EAAQ2P,GAInC,OAAOvS,GAUT4hM,QAAS,SAAU5hM,EAAQ4C,GACzB,OAAO8oI,EAAQt+D,MAAMptE,EAAQ4C,EAAQ,CACnCm3I,OAAQrO,EAAQi2D,aAWpBp/J,OAAQ3mC,OAAOkQ,QAAU,SAAU9L,GACjC,OAAO0rI,EAAQt+D,MAAMptE,EAAQ,GAAGgD,MAAM7H,KAAK+D,UAAW,GAAI,CACxD66I,OAAQ,SAAUh8I,EAAK+jM,EAAK7yJ,GAC1B6yJ,EAAI/jM,GAAOkxC,EAAIlxC,OAQrBgkM,SAAU,SAAUC,GAClB,IAAIzkK,EAAKniC,KACL6mM,EAAeD,GAAcA,EAAWrsL,eAAe,eAAiBqsL,EAAWjtL,YAAc,WACnG,OAAOwoB,EAAGt+B,MAAM7D,KAAM8D,YAGpBgjM,EAAY,WACd9mM,KAAK2Z,YAAcktL,GAYrB,OATAC,EAAU1lM,UAAY+gC,EAAG/gC,UACzBylM,EAAazlM,UAAY,IAAI0lM,EAC7BD,EAAa1/J,OAASmpG,EAAQq2D,SAE1BC,GACFt2D,EAAQnpG,OAAO0/J,EAAazlM,UAAWwlM,GAGzCC,EAAap8H,UAAYtoC,EAAG/gC,UACrBylM,GAETE,YAAa,SAAUxxF,EAAOplG,EAAOktI,EAAU5pH,MAI7CuzK,EAAe12D,EAUnBA,EAAQ22D,aAAe32D,EAAQttI,SAU/BstI,EAAQ3oI,QAAU,SAAUqwB,EAAOiM,EAAMmG,GACvC,OAAO3rB,MAAMrd,UAAUuG,QAAQ5H,KAAKi4B,EAAOiM,EAAMmG,IAWnDkmG,EAAQ42D,kBAAoB52D,EAAQiB,eASpCjB,EAAQ62D,yBAA2B72D,EAAQy1D,sBAO3C,IAAIqB,EAAU,CACZ96J,OAAQ,SAAUluB,GAChB,OAAOA,GAETipL,WAAY,SAAUjpL,GACpB,OAAOA,EAAIA,GAEbkpL,YAAa,SAAUlpL,GACrB,OAAQA,GAAKA,EAAI,IAEnBmpL,cAAe,SAAUnpL,GACvB,OAAKA,GAAK,IAAO,EACR,GAAMA,EAAIA,GAGX,MAASA,GAAKA,EAAI,GAAK,IAEjCopL,YAAa,SAAUppL,GACrB,OAAOA,EAAIA,EAAIA,GAEjBqpL,aAAc,SAAUrpL,GACtB,OAAQA,GAAQ,GAAKA,EAAIA,EAAI,GAE/BspL,eAAgB,SAAUtpL,GACxB,OAAKA,GAAK,IAAO,EACR,GAAMA,EAAIA,EAAIA,EAGhB,KAAQA,GAAK,GAAKA,EAAIA,EAAI,IAEnCupL,YAAa,SAAUvpL,GACrB,OAAOA,EAAIA,EAAIA,EAAIA,GAErBwpL,aAAc,SAAUxpL,GACtB,SAAUA,GAAQ,GAAKA,EAAIA,EAAIA,EAAI,IAErCypL,eAAgB,SAAUzpL,GACxB,OAAKA,GAAK,IAAO,EACR,GAAMA,EAAIA,EAAIA,EAAIA,GAGnB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAExC0pL,YAAa,SAAU1pL,GACrB,OAAOA,EAAIA,EAAIA,EAAIA,EAAIA,GAEzB2pL,aAAc,SAAU3pL,GACtB,OAAQA,GAAQ,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GAEvC4pL,eAAgB,SAAU5pL,GACxB,OAAKA,GAAK,IAAO,EACR,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EAGxB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,IAE3C6pL,WAAY,SAAU7pL,GACpB,OAAsC,EAA9B1F,KAAKi6H,IAAIv0H,GAAK1F,KAAKouC,GAAK,KAElCohJ,YAAa,SAAU9pL,GACrB,OAAO1F,KAAKk6H,IAAIx0H,GAAK1F,KAAKouC,GAAK,KAEjCqhJ,cAAe,SAAU/pL,GACvB,OAAQ,IAAO1F,KAAKi6H,IAAIj6H,KAAKouC,GAAK1oC,GAAK,IAEzCgqL,WAAY,SAAUhqL,GACpB,OAAa,IAANA,EAAU,EAAI1F,KAAK0zB,IAAI,EAAG,IAAMhuB,EAAI,KAE7CiqL,YAAa,SAAUjqL,GACrB,OAAa,IAANA,EAAU,EAA4B,EAAvB1F,KAAK0zB,IAAI,GAAI,GAAKhuB,IAE1CkqL,cAAe,SAAUlqL,GACvB,OAAU,IAANA,EACK,EAGC,IAANA,EACK,GAGJA,GAAK,IAAO,EACR,GAAM1F,KAAK0zB,IAAI,EAAG,IAAMhuB,EAAI,IAG9B,IAAiC,EAAzB1F,KAAK0zB,IAAI,GAAI,KAAOhuB,KAErCmqL,WAAY,SAAUnqL,GACpB,OAAIA,GAAK,EACAA,IAGA1F,KAAKguC,KAAK,EAAItoC,EAAIA,GAAK,IAElCoqL,YAAa,SAAUpqL,GACrB,OAAO1F,KAAKguC,KAAK,GAAKtoC,GAAQ,GAAKA,IAErCqqL,cAAe,SAAUrqL,GACvB,OAAKA,GAAK,IAAO,GACP,IAAO1F,KAAKguC,KAAK,EAAItoC,EAAIA,GAAK,GAGjC,IAAO1F,KAAKguC,KAAK,GAAKtoC,GAAK,GAAKA,GAAK,IAE9CsqL,cAAe,SAAUtqL,GACvB,IAAI7hB,EAAI,QACJ8hB,EAAI,EACJM,EAAI,EAER,OAAU,IAANP,EACK,EAGC,IAANA,EACK,GAGJC,IACHA,EAAI,IAGFM,EAAI,GACNA,EAAI,EACJpiB,EAAI8hB,EAAI,GAER9hB,EAAI8hB,GAAK,EAAI3F,KAAKouC,IAAMpuC,KAAKiwL,KAAK,EAAIhqL,IAG/BA,EAAIjG,KAAK0zB,IAAI,EAAG,IAAMhuB,GAAK,IAAM1F,KAAKk6H,KAAKx0H,EAAI7hB,IAAM,EAAImc,KAAKouC,IAAMzoC,KAE/EuqL,eAAgB,SAAUxqL,GACxB,IAAI7hB,EAAI,QACJ8hB,EAAI,EACJM,EAAI,EAER,OAAU,IAANP,EACK,EAGC,IAANA,EACK,GAGJC,IACHA,EAAI,IAGFM,EAAI,GACNA,EAAI,EACJpiB,EAAI8hB,EAAI,GAER9hB,EAAI8hB,GAAK,EAAI3F,KAAKouC,IAAMpuC,KAAKiwL,KAAK,EAAIhqL,GAGjCA,EAAIjG,KAAK0zB,IAAI,GAAI,GAAKhuB,GAAK1F,KAAKk6H,KAAKx0H,EAAI7hB,IAAM,EAAImc,KAAKouC,IAAMzoC,GAAK,IAE5EwqL,iBAAkB,SAAUzqL,GAC1B,IAAI7hB,EAAI,QACJ8hB,EAAI,EACJM,EAAI,EAER,OAAU,IAANP,EACK,EAGU,KAAdA,GAAK,IACD,GAGJC,IACHA,EAAI,KAGFM,EAAI,GACNA,EAAI,EACJpiB,EAAI8hB,EAAI,GAER9hB,EAAI8hB,GAAK,EAAI3F,KAAKouC,IAAMpuC,KAAKiwL,KAAK,EAAIhqL,GAGpCP,EAAI,EACSO,EAAIjG,KAAK0zB,IAAI,EAAG,IAAMhuB,GAAK,IAAM1F,KAAKk6H,KAAKx0H,EAAI7hB,IAAM,EAAImc,KAAKouC,IAAMzoC,IAA3E,GAGHM,EAAIjG,KAAK0zB,IAAI,GAAI,IAAMhuB,GAAK,IAAM1F,KAAKk6H,KAAKx0H,EAAI7hB,IAAM,EAAImc,KAAKouC,IAAMzoC,GAAK,GAAM,IAEzFyqL,WAAY,SAAU1qL,GACpB,IAAI7hB,EAAI,QACR,OAAO6hB,EAAIA,IAAM7hB,EAAI,GAAK6hB,EAAI7hB,IAEhCwsM,YAAa,SAAU3qL,GACrB,IAAI7hB,EAAI,QACR,OAAQ6hB,GAAQ,GAAKA,IAAM7hB,EAAI,GAAK6hB,EAAI7hB,GAAK,GAE/CysM,cAAe,SAAU5qL,GACvB,IAAI7hB,EAAI,QAER,OAAK6hB,GAAK,IAAO,EACDA,EAAIA,IAAqB,GAAd7hB,GAAK,QAAc6hB,EAAI7hB,GAAzC,GAGF,KAAQ6hB,GAAK,GAAKA,IAAqB,GAAd7hB,GAAK,QAAc6hB,EAAI7hB,GAAK,IAE9D0sM,aAAc,SAAU7qL,GACtB,OAAO,EAAIgpL,EAAQ8B,cAAc,EAAI9qL,IAEvC8qL,cAAe,SAAU9qL,GACvB,OAAIA,EAAI,EAAI,KACH,OAASA,EAAIA,EAGlBA,EAAI,EAAI,KACH,QAAUA,GAAK,IAAM,MAAQA,EAAI,IAGtCA,EAAI,IAAM,KACL,QAAUA,GAAK,KAAO,MAAQA,EAAI,MAGpC,QAAUA,GAAK,MAAQ,MAAQA,EAAI,SAE5C+qL,gBAAiB,SAAU/qL,GACzB,OAAIA,EAAI,GAC+B,GAA9BgpL,EAAQ6B,aAAiB,EAAJ7qL,GAGY,GAAnCgpL,EAAQ8B,cAAkB,EAAJ9qL,EAAQ,GAAW,KAGhDgrL,EAAiB,CACnBhC,QAASA,GAWXJ,EAAaqC,cAAgBjC,EAC7B,IAAItgJ,EAAKpuC,KAAKouC,GACVwiJ,EAAcxiJ,EAAK,IACnByiJ,EAAiB,EAALziJ,EACZ0iJ,EAAU1iJ,EAAK,EACf2iJ,EAAa3iJ,EAAK,EAClB4iJ,EAAqB,EAAL5iJ,EAAS,EAKzB6iJ,EAAY,CAKd/0L,MAAO,SAAU8jI,GACfA,EAAMxH,IAAI04D,UAAU,EAAG,EAAGlxD,EAAMlrH,MAAOkrH,EAAMvpI,SAc/CmnI,YAAa,SAAUpF,EAAKx9H,EAAGzW,EAAGuwB,EAAOre,EAAQklI,GAC/C,GAAIA,EAAQ,CACV,IAAI71H,EAAI9F,KAAKkS,IAAIypH,EAAQllI,EAAS,EAAGqe,EAAQ,GACzC1Z,EAAOJ,EAAI8K,EACXpP,EAAMnS,EAAIuhB,EACV+d,EAAQ7oB,EAAI8Z,EAAQhP,EACpByd,EAASh/B,EAAIkS,EAASqP,EAC1B0yH,EAAI24D,OAAOn2L,EAAGtE,GAEV0E,EAAOyoB,GAASntB,EAAM6sB,GACxBi1G,EAAI2C,IAAI//H,EAAM1E,EAAKoP,GAAIsoC,GAAK0iJ,GAC5Bt4D,EAAI2C,IAAIt3G,EAAOntB,EAAKoP,GAAIgrL,EAAS,GACjCt4D,EAAI2C,IAAIt3G,EAAON,EAAQzd,EAAG,EAAGgrL,GAC7Bt4D,EAAI2C,IAAI//H,EAAMmoB,EAAQzd,EAAGgrL,EAAS1iJ,IACzBhzC,EAAOyoB,GAChB20G,EAAI24D,OAAO/1L,EAAM7W,GACjBi0I,EAAI2C,IAAIt3G,EAAOntB,EAAKoP,GAAIgrL,EAASA,GACjCt4D,EAAI2C,IAAI//H,EAAM1E,EAAKoP,EAAGgrL,EAAS1iJ,EAAK0iJ,IAC3Bp6L,EAAM6sB,GACfi1G,EAAI2C,IAAI//H,EAAM1E,EAAKoP,GAAIsoC,EAAI,GAC3BoqF,EAAI2C,IAAI//H,EAAMmoB,EAAQzd,EAAG,EAAGsoC,IAE5BoqF,EAAI2C,IAAI//H,EAAM1E,EAAKoP,GAAIsoC,EAAIA,GAG7BoqF,EAAIsF,YACJtF,EAAI24D,OAAOn2L,EAAGzW,QAEdi0I,EAAIiC,KAAKz/H,EAAGzW,EAAGuwB,EAAOre,IAG1B26L,UAAW,SAAU54D,EAAKvgI,EAAO0jI,EAAQ3gI,EAAGzW,EAAG87I,GAC7C,IAAI/kI,EAAM+1L,EAASC,EAAS14I,EAAM24I,EAC9BC,GAAOnxD,GAAY,GAAKuwD,EAE5B,GAAI34L,GAA0B,kBAAVA,IAGL,+BAFbqD,EAAOrD,EAAMmI,aAEwC,+BAAT9E,GAM1C,OALAk9H,EAAImI,OACJnI,EAAI1/H,UAAUkC,EAAGzW,GACjBi0I,EAAIqI,OAAO2wD,GACXh5D,EAAIi5D,UAAUx5L,GAAQA,EAAM6c,MAAQ,GAAI7c,EAAMxB,OAAS,EAAGwB,EAAM6c,MAAO7c,EAAMxB,aAC7E+hI,EAAIsI,UAKR,KAAIrhI,MAAMk8H,IAAWA,GAAU,GAA/B,CAMA,OAFAnD,EAAIkF,YAEIzlI,GAEN,QACEugI,EAAI2C,IAAIngI,EAAGzW,EAAGo3I,EAAQ,EAAGk1D,GACzBr4D,EAAIsF,YACJ,MAEF,IAAK,WACHtF,EAAI24D,OAAOn2L,EAAIgF,KAAKk6H,IAAIs3D,GAAO71D,EAAQp3I,EAAIyb,KAAKi6H,IAAIu3D,GAAO71D,GAC3D61D,GAAOR,EACPx4D,EAAIk5D,OAAO12L,EAAIgF,KAAKk6H,IAAIs3D,GAAO71D,EAAQp3I,EAAIyb,KAAKi6H,IAAIu3D,GAAO71D,GAC3D61D,GAAOR,EACPx4D,EAAIk5D,OAAO12L,EAAIgF,KAAKk6H,IAAIs3D,GAAO71D,EAAQp3I,EAAIyb,KAAKi6H,IAAIu3D,GAAO71D,GAC3DnD,EAAIsF,YACJ,MAEF,IAAK,cASHllF,EAAO+iF,GADP41D,EAAwB,KAAT51D,GAEf01D,EAAUrxL,KAAKi6H,IAAIu3D,EAAMT,GAAcn4I,EACvC04I,EAAUtxL,KAAKk6H,IAAIs3D,EAAMT,GAAcn4I,EACvC4/E,EAAI2C,IAAIngI,EAAIq2L,EAAS9sM,EAAI+sM,EAASC,EAAcC,EAAMpjJ,EAAIojJ,EAAMV,GAChEt4D,EAAI2C,IAAIngI,EAAIs2L,EAAS/sM,EAAI8sM,EAASE,EAAcC,EAAMV,EAASU,GAC/Dh5D,EAAI2C,IAAIngI,EAAIq2L,EAAS9sM,EAAI+sM,EAASC,EAAcC,EAAKA,EAAMV,GAC3Dt4D,EAAI2C,IAAIngI,EAAIs2L,EAAS/sM,EAAI8sM,EAASE,EAAcC,EAAMV,EAASU,EAAMpjJ,GACrEoqF,EAAIsF,YACJ,MAEF,IAAK,OACH,IAAKuC,EAAU,CACbznF,EAAO54C,KAAK2xL,QAAUh2D,EACtBnD,EAAIiC,KAAKz/H,EAAI49C,EAAMr0D,EAAIq0D,EAAM,EAAIA,EAAM,EAAIA,GAC3C,MAGF44I,GAAOT,EAIT,IAAK,UACHM,EAAUrxL,KAAKi6H,IAAIu3D,GAAO71D,EAC1B21D,EAAUtxL,KAAKk6H,IAAIs3D,GAAO71D,EAC1BnD,EAAI24D,OAAOn2L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAIk5D,OAAO12L,EAAIs2L,EAAS/sM,EAAI8sM,GAC5B74D,EAAIk5D,OAAO12L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAIk5D,OAAO12L,EAAIs2L,EAAS/sM,EAAI8sM,GAC5B74D,EAAIsF,YACJ,MAEF,IAAK,WACH0zD,GAAOT,EAIT,IAAK,QACHM,EAAUrxL,KAAKi6H,IAAIu3D,GAAO71D,EAC1B21D,EAAUtxL,KAAKk6H,IAAIs3D,GAAO71D,EAC1BnD,EAAI24D,OAAOn2L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAIk5D,OAAO12L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAI24D,OAAOn2L,EAAIs2L,EAAS/sM,EAAI8sM,GAC5B74D,EAAIk5D,OAAO12L,EAAIs2L,EAAS/sM,EAAI8sM,GAC5B,MAEF,IAAK,OACHA,EAAUrxL,KAAKi6H,IAAIu3D,GAAO71D,EAC1B21D,EAAUtxL,KAAKk6H,IAAIs3D,GAAO71D,EAC1BnD,EAAI24D,OAAOn2L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAIk5D,OAAO12L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAI24D,OAAOn2L,EAAIs2L,EAAS/sM,EAAI8sM,GAC5B74D,EAAIk5D,OAAO12L,EAAIs2L,EAAS/sM,EAAI8sM,GAC5BG,GAAOT,EACPM,EAAUrxL,KAAKi6H,IAAIu3D,GAAO71D,EAC1B21D,EAAUtxL,KAAKk6H,IAAIs3D,GAAO71D,EAC1BnD,EAAI24D,OAAOn2L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAIk5D,OAAO12L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAI24D,OAAOn2L,EAAIs2L,EAAS/sM,EAAI8sM,GAC5B74D,EAAIk5D,OAAO12L,EAAIs2L,EAAS/sM,EAAI8sM,GAC5B,MAEF,IAAK,OACHA,EAAUrxL,KAAKi6H,IAAIu3D,GAAO71D,EAC1B21D,EAAUtxL,KAAKk6H,IAAIs3D,GAAO71D,EAC1BnD,EAAI24D,OAAOn2L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B94D,EAAIk5D,OAAO12L,EAAIq2L,EAAS9sM,EAAI+sM,GAC5B,MAEF,IAAK,OACH94D,EAAI24D,OAAOn2L,EAAGzW,GACdi0I,EAAIk5D,OAAO12L,EAAIgF,KAAKi6H,IAAIu3D,GAAO71D,EAAQp3I,EAAIyb,KAAKk6H,IAAIs3D,GAAO71D,GAI/DnD,EAAIwF,OACJxF,EAAI4F,WAUNwzD,eAAgB,SAAUx9J,EAAOwmG,GAC/B,IAAIi3D,EAAU,KAEd,OAAOz9J,EAAMp5B,EAAI4/H,EAAKx/H,KAAOy2L,GAAWz9J,EAAMp5B,EAAI4/H,EAAK/2G,MAAQguK,GAAWz9J,EAAM7vC,EAAIq2I,EAAKlkI,IAAMm7L,GAAWz9J,EAAM7vC,EAAIq2I,EAAKr3G,OAASsuK,GAEpIC,SAAU,SAAUt5D,EAAKoC,GACvBpC,EAAImI,OACJnI,EAAIkF,YACJlF,EAAIiC,KAAKG,EAAKx/H,KAAMw/H,EAAKlkI,IAAKkkI,EAAK/2G,MAAQ+2G,EAAKx/H,KAAMw/H,EAAKr3G,OAASq3G,EAAKlkI,KACzE8hI,EAAI0H,QAEN6xD,WAAY,SAAUv5D,GACpBA,EAAIsI,WAEN4wD,OAAQ,SAAUl5D,EAAKmM,EAAUz4I,EAAQ8lM,GACvC,IAAIC,EAAU/lM,EAAOgmM,YAErB,GAAID,EAAJ,CACE,GAAgB,WAAZA,EAAsB,CACxB,IAAIE,GAAYxtD,EAAS3pI,EAAI9O,EAAO8O,GAAK,EACzCw9H,EAAIk5D,OAAOS,EAAUH,EAAO9lM,EAAO3H,EAAIogJ,EAASpgJ,GAChDi0I,EAAIk5D,OAAOS,EAAUH,EAAOrtD,EAASpgJ,EAAI2H,EAAO3H,OAC3B,UAAZ0tM,IAAwBD,GAAoB,UAAZC,GAAuBD,EAChEx5D,EAAIk5D,OAAO/sD,EAAS3pI,EAAG9O,EAAO3H,GAE9Bi0I,EAAIk5D,OAAOxlM,EAAO8O,EAAG2pI,EAASpgJ,GAGhCi0I,EAAIk5D,OAAOxlM,EAAO8O,EAAG9O,EAAO3H,QAIzB2H,EAAOkmM,QAKZ55D,EAAI65D,cAAcL,EAAOrtD,EAAS2tD,sBAAwB3tD,EAAS4tD,kBAAmBP,EAAOrtD,EAAS6tD,sBAAwB7tD,EAAS8tD,kBAAmBT,EAAO9lM,EAAOqmM,kBAAoBrmM,EAAOomM,sBAAuBN,EAAO9lM,EAAOumM,kBAAoBvmM,EAAOsmM,sBAAuBtmM,EAAO8O,EAAG9O,EAAO3H,GAJzSi0I,EAAIk5D,OAAOxlM,EAAO8O,EAAG9O,EAAO3H,KAO9BmuM,EAAiBzB,EAUrB3C,EAAapyL,MAAQ+0L,EAAU/0L,MAS/BoyL,EAAaqE,qBAAuB,SAAUn6D,GAC5CA,EAAIkF,YACJuzD,EAAUrzD,YAAYzyI,MAAM8lM,EAAW7lM,YAGzC,IAAIgb,EAAW,CAIbk9H,KAAM,SAAUzmC,EAAOxjE,GACrB,OAAOi1J,EAAah1H,MAAMhyE,KAAKu1G,KAAWv1G,KAAKu1G,GAAS,IAAKxjE,KAKjEjzB,EAASk9H,KAAK,SAAU,CACtBsvD,aAAc,kBACd7yD,iBAAkB,OAClBhH,kBAAmB,qDACnBD,gBAAiB,GACjBG,iBAAkB,SAClB45D,kBAAmB,IACnBC,WAAW,IAGb,IAAIC,EAAgB3sL,EAChByyH,EAAiBy1D,EAAaz1D,eAQlC,SAASV,GAAaC,GACpB,OAAKA,GAAQk2D,EAAap2D,cAAcE,EAAKx/E,OAAS01I,EAAap2D,cAAcE,EAAKC,QAC7E,MAGDD,EAAKngI,MAAQmgI,EAAKngI,MAAQ,IAAM,KAAOmgI,EAAKE,OAASF,EAAKE,OAAS,IAAM,IAAMF,EAAKx/E,KAAO,MAAQw/E,EAAKC,OAQlH,IAAI26D,GAAkB,CASpBh6D,aAAc,SAAUvhI,EAAOmhD,GAC7B,IAAIrV,GAAW,GAAK9rC,GAAOhJ,MAAM,wCAEjC,IAAK80C,GAA0B,WAAfA,EAAQ,GACtB,OAAc,IAAPqV,EAKT,OAFAnhD,GAAS8rC,EAAQ,GAETA,EAAQ,IACd,IAAK,KACH,OAAO9rC,EAET,IAAK,IACHA,GAAS,IAIb,OAAOmhD,EAAOnhD,GAUhB0oI,UAAW,SAAU1oI,GACnB,IAAIiO,EAAGI,EAAGlhB,EAAGuqB,EAWb,OATIm/K,EAAa5tL,SAASjJ,IACxBiO,GAAKjO,EAAMf,KAAO,EAClBoP,GAAKrO,EAAMosB,OAAS,EACpBj/B,GAAK6S,EAAM8rB,QAAU,EACrBpU,GAAK1X,EAAM2D,MAAQ,GAEnBsK,EAAII,EAAIlhB,EAAIuqB,GAAK1X,GAAS,EAGrB,CACLf,IAAKgP,EACLme,MAAO/d,EACPyd,OAAQ3+B,EACRwW,KAAM+T,EACN1Y,OAAQiP,EAAI9gB,EACZkwB,MAAO3F,EAAIrJ,IAWfmtL,WAAY,SAAUx0L,GACpB,IAAIy0L,EAAiBH,EAAcxjM,OAC/BqpD,EAAOigF,EAAep6H,EAAQ00L,SAAUD,EAAep6D,iBACvDV,EAAO,CACTC,OAAQQ,EAAep6H,EAAQ20L,WAAYF,EAAen6D,mBAC1DJ,WAAY21D,EAAa7vL,QAAQu6H,aAAaH,EAAep6H,EAAQk6H,WAAYu6D,EAAeL,mBAAoBj6I,GACpHA,KAAMA,EACN3gD,MAAO4gI,EAAep6H,EAAQ6/D,UAAW40H,EAAej6D,kBACxDX,OAAQ,KACRxnI,OAAQ,IAGV,OADAsnI,EAAKtnI,OAASqnI,GAAaC,GACpBA,GAcTluE,QAAS,SAAUwvC,EAAQ7tF,EAASxc,EAAOu4K,GACzC,IACIl5K,EAAG+pI,EAAMhhI,EADT47L,GAAY,EAGhB,IAAK3kM,EAAI,EAAG+pI,EAAO/+B,EAAOpqG,OAAQZ,EAAI+pI,IAAQ/pI,EAG5C,QAAcJ,KAFdmJ,EAAQiiG,EAAOhrG,WAMCJ,IAAZud,GAA0C,oBAAVpU,IAClCA,EAAQA,EAAMoU,GACdwnL,GAAY,QAGA/kM,IAAVe,GAAuBi/L,EAAat8J,QAAQv6B,KAC9CA,EAAQA,EAAMpI,GACdgkM,GAAY,QAGA/kM,IAAVmJ,GAKF,OAJImwK,IAASyrB,IACXzrB,EAAKyrB,WAAY,GAGZ57L,IAUX67L,GAAY,CAKdC,WAAY,SAAU97L,GACpB,IAEI/I,EAFAuK,EAAS,GACT+0C,EAAOhuC,KAAKguC,KAAKv2C,GAGrB,IAAK/I,EAAI,EAAGA,EAAIs/C,EAAMt/C,IAChB+I,EAAQ/I,IAAM,IAChBuK,EAAO3D,KAAK5G,GACZuK,EAAO3D,KAAKmC,EAAQ/I,IAYxB,OARIs/C,KAAiB,EAAPA,IAEZ/0C,EAAO3D,KAAK04C,GAGd/0C,EAAOmsB,MAAK,SAAUnf,EAAGrhB,GACvB,OAAOqhB,EAAIrhB,KACV+rD,MACI13C,GAETu6L,MAAOxzL,KAAKwzL,OAAS,SAAUx4L,GAC7B,IAAIy4L,EAAWzzL,KAAKopB,IAAIpuB,GAAKgF,KAAK0zL,OAI9BC,EAAY3zL,KAAKwI,MAAMirL,GAE3B,OADkBz4L,IAAMgF,KAAK0zB,IAAI,GAAIigK,GAChBA,EAAYF,IAGjCG,GAAeN,GAUnBhF,EAAakF,MAAQF,GAAUE,MAE/B,IAAIK,GAAgB,SAAUC,EAAOh/K,GACnC,MAAO,CACL9Z,EAAG,SAAUA,GACX,OAAO84L,EAAQA,EAAQh/K,EAAQ9Z,GAEjC+4L,SAAU,SAAUx3L,GAClBuY,EAAQvY,GAEVwiI,UAAW,SAAU/E,GACnB,MAAc,WAAVA,EACKA,EAGQ,UAAVA,EAAoB,OAAS,SAEtCg6D,MAAO,SAAUh5L,EAAGvD,GAClB,OAAOuD,EAAIvD,GAEbw8L,WAAY,SAAUj5L,EAAGk5L,GACvB,OAAOl5L,EAAIk5L,KAKbC,GAAgB,WAClB,MAAO,CACLn5L,EAAG,SAAUA,GACX,OAAOA,GAET+4L,SAAU,SAAUx3L,KAEpBwiI,UAAW,SAAU/E,GACnB,OAAOA,GAETg6D,MAAO,SAAUh5L,EAAGvD,GAClB,OAAOuD,EAAIvD,GAEbw8L,WAAY,SAAUj5L,EAAGo5L,GAEvB,OAAOp5L,KAkCTihI,GAAYqyD,EACZ+F,GAAS3D,EACT/yD,GAAS+0D,EACTj0L,GAAUu0L,GACVsB,GAAOV,GACPvmJ,GAVc,CAChBwmJ,cAzBe,SAAUxmJ,EAAKymJ,EAAOh/K,GACrC,OAAOu4B,EAAMwmJ,GAAcC,EAAOh/K,GAASq/K,MAyB3CI,sBAtB0B,SAAU/7D,EAAK/jF,GACzC,IAAIx8C,EAAOu8L,EAEO,QAAd//I,GAAqC,QAAdA,IAEzB+/I,EAAW,EADXv8L,EAAQugI,EAAImF,OAAO1lI,OACDqkC,iBAAiB,aAAcrkC,EAAMw8L,oBAAoB,cAC3Ex8L,EAAMw8J,YAAY,YAAahgH,EAAW,aAC1C+jF,EAAIk8D,kBAAoBF,IAgB1BG,qBAZyB,SAAUn8D,GACnC,IAAIg8D,EAAWh8D,EAAIk8D,uBAEFpmM,IAAbkmM,WACKh8D,EAAIk8D,kBACXl8D,EAAImF,OAAO1lI,MAAMw8J,YAAY,YAAa+/B,EAAS,GAAIA,EAAS,OAqBpE,SAASI,GAAY9qK,EAAOk4G,EAAM9Y,EAAO2rE,GACvC,IACInmM,EAAG+pI,EAAMxuI,EAAK6qM,EAAQn5J,EAAQzvC,EAAQoP,EAAMy5L,EAAIC,EADhDh3L,EAAOlW,OAAOkW,KAAKkrH,GAGvB,IAAKx6H,EAAI,EAAG+pI,EAAOz6H,EAAK1O,OAAQZ,EAAI+pI,IAAQ/pI,EAW1C,GATAxC,EAASg9H,EADTj/H,EAAM+T,EAAKtP,IAINszI,EAAKngI,eAAe5X,KACvB+3I,EAAK/3I,GAAOiC,IAGd4oM,EAAS9yD,EAAK/3I,MAECiC,GAAqB,MAAXjC,EAAI,GAA7B,CAWA,GAPK6/B,EAAMjoB,eAAe5X,KACxB6/B,EAAM7/B,GAAO6qM,IAIfx5L,SAAcpP,YADdyvC,EAAS7R,EAAM7/B,IAIb,GAAa,WAATqR,GAGF,IAFAy5L,EAAK7H,EAAavxJ,IAEXmgI,QACLk5B,EAAK9H,EAAahhM,IAEX4vK,MAAO,CACZ95B,EAAK/3I,GAAO+qM,EAAG1I,IAAIyI,EAAIF,GAAMpM,YAC7B,eAGC,GAAIxsD,GAAUn9E,SAASnjB,IAAWsgG,GAAUn9E,SAAS5yD,GAAS,CACnE81I,EAAK/3I,GAAO0xC,GAAUzvC,EAASyvC,GAAUk5J,EACzC,SAIJ7yD,EAAK/3I,GAAOiC,GAlDhB+vI,GAAUo4D,OAASA,GACnBp4D,GAAU0B,OAASA,GACnB1B,GAAUx9H,QAAUA,GACpBw9H,GAAUq4D,KAAOA,GACjBr4D,GAAU5uF,IAAMA,GAkDhB,IAAIgc,GAAU,SAAU4rI,GACtBh5D,GAAUxtG,OAAOnnC,KAAM2tM,GACvB3tM,KAAKiE,WAAWJ,MAAM7D,KAAM8D,YAG9B6wI,GAAUxtG,OAAO46B,GAAQ3gE,UAAW,CAClC81B,WAAOlwB,EACP/C,WAAY,WACVjE,KAAKk5E,QAAS,GAEhBihH,MAAO,WACL,IAAIh4J,EAAKniC,KAOT,OALKmiC,EAAGm6G,QACNn6G,EAAGm6G,MAAQ3H,GAAUxtG,OAAO,GAAIhF,EAAGizG,SAGrCjzG,EAAGyrK,OAAS,GACLzrK,GAET4W,WAAY,SAAUw0J,GACpB,IAAIprK,EAAKniC,KACL4hI,EAAQz/F,EAAGizG,OACX5yG,EAAQL,EAAGyrK,OACXlzD,EAAOv4G,EAAGm6G,MAEd,OAAK1a,GAAkB,IAAT2rE,GAMT7yD,IACHA,EAAOv4G,EAAGm6G,MAAQ,IAGf95G,IACHA,EAAQL,EAAGyrK,OAAS,IAGtBN,GAAY9qK,EAAOk4G,EAAM9Y,EAAO2rE,GACzBprK,IAdLA,EAAGm6G,MAAQ3H,GAAUxtG,OAAO,GAAIy6F,GAChCz/F,EAAGyrK,OAAS,KACLzrK,IAcX0rK,gBAAiB,WACf,MAAO,CACLn6L,EAAG1T,KAAKo1I,OAAO1hI,EACfzW,EAAG+C,KAAKo1I,OAAOn4I,IAGnBw6G,SAAU,WACR,OAAOk9B,GAAU1tB,SAASjnH,KAAKo1I,OAAO1hI,IAAMihI,GAAU1tB,SAASjnH,KAAKo1I,OAAOn4I,MAG/E8kE,GAAQ56B,OAASwtG,GAAUgyD,SAC3B,IAAImH,GAAe/rI,GACfgsI,GAAYD,GAAa3mK,OAAO,CAClCuxG,MAAO,KAEPs1D,YAAa,EAEbC,SAAU,GAEVlB,OAAQ,GAERt1H,OAAQ,KAERy2H,oBAAqB,KAErBC,oBAAqB,OAGnBC,GAAiBL,GASrBvtM,OAAOC,eAAestM,GAAU3sM,UAAW,kBAAmB,CAC5DV,IAAK,WACH,OAAOV,QAUXQ,OAAOC,eAAestM,GAAU3sM,UAAW,gBAAiB,CAC1DV,IAAK,WACH,OAAOV,KAAK04I,OAEdjzI,IAAK,SAAU0K,GACbnQ,KAAK04I,MAAQvoI,KAIjBs7L,EAAczvD,KAAK,SAAU,CAC3BgoB,UAAW,CACTl5I,SAAU,IACViiL,OAAQ,eACRsB,WAAY15D,GAAU0b,KACtBi+C,WAAY35D,GAAU0b,QAI1B,IAAIk+C,GAAkB,CACpBzwD,WAAY,GACZtgI,QAAS,KAQTgxL,aAAc,SAAU91D,EAAOsrB,EAAWl5I,EAAUkzH,GAClD,IACI52I,EAAG+pI,EADH2M,EAAa99I,KAAK89I,WAUtB,IARAkmB,EAAUtrB,MAAQA,EAClBsrB,EAAUyqC,UAAYv2L,KAAKmC,MAC3B2pJ,EAAUl5I,SAAWA,EAEhBkzH,IACHtF,EAAMp1F,WAAY,GAGfl8C,EAAI,EAAG+pI,EAAO2M,EAAW91I,OAAQZ,EAAI+pI,IAAQ/pI,EAChD,GAAI02I,EAAW12I,GAAGsxI,QAAUA,EAE1B,YADAoF,EAAW12I,GAAK48J,GAKpBlmB,EAAW9vI,KAAKg2J,GAEU,IAAtBlmB,EAAW91I,QACbhI,KAAKiD,yBAGTyrM,gBAAiB,SAAUh2D,GACzB,IAAI3wI,EAAQ4sI,GAAU77B,UAAU94G,KAAK89I,YAAY,SAAUkmB,GACzD,OAAOA,EAAUtrB,QAAUA,MAGd,IAAX3wI,IACF/H,KAAK89I,WAAWrnH,OAAO1uB,EAAO,GAC9B2wI,EAAMp1F,WAAY,IAGtBrgD,sBAAuB,WACrB,IAAIk/B,EAAKniC,KAEU,OAAfmiC,EAAG3kB,UAIL2kB,EAAG3kB,QAAUm3H,GAAUg6D,iBAAiB5uM,KAAKkX,QAAQ,WACnDkrB,EAAG3kB,QAAU,KACb2kB,EAAGysK,mBAQTA,YAAa,WACX,IAAIzsK,EAAKniC,KACTmiC,EAAG0sK,UAEC1sK,EAAG27G,WAAW91I,OAAS,GACzBm6B,EAAGl/B,yBAOP4rM,QAAS,WAKP,IAJA,IACI7qC,EAAWtrB,EAAOu1D,EAAUa,EAD5BhxD,EAAa99I,KAAK89I,WAElB12I,EAAI,EAEDA,EAAI02I,EAAW91I,QAEpB0wI,GADAsrB,EAAYlmB,EAAW12I,IACLsxI,MAClBu1D,EAAWjqC,EAAUiqC,SAGrBa,EAAWp2L,KAAKG,OAAOX,KAAKmC,MAAQ2pJ,EAAUyqC,WAAazqC,EAAUl5I,SAAWmjL,GAAY,EAC5FjqC,EAAUgqC,YAAct1L,KAAKkS,IAAIkkL,EAAUb,GAC3Ct5D,GAAU3xI,SAASghK,EAAUvsF,OAAQ,CAACihE,EAAOsrB,GAAYtrB,GACzD/D,GAAU3xI,SAASghK,EAAUkqC,oBAAqB,CAAClqC,GAAYtrB,GAE3DsrB,EAAUgqC,aAAeC,GAC3Bt5D,GAAU3xI,SAASghK,EAAUmqC,oBAAqB,CAACnqC,GAAYtrB,GAC/DA,EAAMp1F,WAAY,EAClBw6F,EAAWrnH,OAAOrvB,EAAG,MAEnBA,IAKNw7D,GAAU+xE,GAAUx9H,QAAQyrD,QAC5BmsI,GAAc,CAAC,OAAQ,MAAO,QAAS,SAAU,WAOrD,SAASC,GAAkBh3K,EAAOqhB,GAC5BrhB,EAAMi3K,SACRj3K,EAAMi3K,SAAS76F,UAAUpmG,KAAKqrC,IAKhC74C,OAAOC,eAAeu3B,EAAO,WAAY,CACvCp3B,cAAc,EACdD,YAAY,EACZwP,MAAO,CACLikG,UAAW,CAAC/6D,MAGhB01J,GAAY/+L,SAAQ,SAAUrN,GAC5B,IAAI8tD,EAAS,SAAW9tD,EAAIoP,OAAO,GAAGitE,cAAgBr8E,EAAIiF,MAAM,GAC5D0zD,EAAOtjC,EAAMr1B,GACjBnC,OAAOC,eAAeu3B,EAAOr1B,EAAK,CAChC/B,cAAc,EACdD,YAAY,EACZwP,MAAO,WACL,IAAIqU,EAAO/F,MAAMrd,UAAUwG,MAAM7H,KAAK+D,WAClCozC,EAAMokB,EAAKz3D,MAAM7D,KAAMwkB,GAM3B,OALAmwH,GAAU74F,KAAK9jB,EAAMi3K,SAAS76F,WAAW,SAAUn3F,GACnB,oBAAnBA,EAAOwzC,IAChBxzC,EAAOwzC,GAAQ5sD,MAAMoZ,EAAQuH,MAG1B0yB,SAWf,SAASg4J,GAAoBl3K,EAAOqhB,GAClC,IAAI81J,EAAOn3K,EAAMi3K,SAEjB,GAAKE,EAAL,CAIA,IAAI/6F,EAAY+6F,EAAK/6F,UACjBrsG,EAAQqsG,EAAUzsG,QAAQ0xC,IAEf,IAAXtxC,GACFqsG,EAAU39E,OAAO1uB,EAAO,GAGtBqsG,EAAUpsG,OAAS,IAIvB+mM,GAAY/+L,SAAQ,SAAUrN,UACrBq1B,EAAMr1B,aAERq1B,EAAMi3K,WAIf,IAAIG,GAAoB,SAAU12D,EAAO8F,GACvCx+I,KAAKiE,WAAWy0I,EAAO8F,IAGzB7J,GAAUxtG,OAAOioK,GAAkBhuM,UAAW,CAK5CiuM,mBAAoB,KAMpBC,gBAAiB,KAQjBC,uBAAwB,CAAC,kBAAmB,iBAAkB,cAAe,aAAc,mBAAoB,kBAAmB,eAQlIC,oBAAqB,CAAC,kBAAmB,cAAe,cAAe,cACvEvrM,WAAY,SAAUy0I,EAAO8F,GAC3B,IAAIr8G,EAAKniC,KACTmiC,EAAGu2G,MAAQA,EACXv2G,EAAGp6B,MAAQy2I,EACXr8G,EAAGstK,aACHttK,EAAGutK,cACHvtK,EAAGjL,MAAQiL,EAAGwtK,UAAU37L,MAE1B47L,YAAa,SAAUpxD,GACrBx+I,KAAK+H,MAAQy2I,GAEfixD,WAAY,WACV,IAAIttK,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACVj3D,EAAQv2G,EAAGu2G,MACXsW,EAAStW,EAAMsW,OACf50H,EAAU+H,EAAG0tK,aACbC,EAAap3D,EAAMvhI,QAAQ63I,OAEV,OAAjBzsE,EAAKwtH,SAAsBxtH,EAAKwtH,WAAW/gD,IAAW50H,EAAQ21K,UAChExtH,EAAKwtH,QAAU31K,EAAQ21K,SAAWD,EAAWE,MAAM,GAAG56J,IAGnC,OAAjBmtC,EAAK0tH,SAAsB1tH,EAAK0tH,WAAWjhD,IAAW50H,EAAQ61K,UAChE1tH,EAAK0tH,QAAU71K,EAAQ61K,SAAWH,EAAWI,MAAM,GAAG96J,KAG1Dy6J,WAAY,WACV,OAAO7vM,KAAK04I,MAAMtoI,KAAK0rI,SAAS97I,KAAK+H,QAEvC4nM,QAAS,WACP,OAAO3vM,KAAK04I,MAAMy3D,eAAenwM,KAAK+H,QAExCqoM,cAAe,SAAUC,GACvB,OAAOrwM,KAAK04I,MAAMsW,OAAOqhD,IAM3BC,iBAAkB,WAChB,OAAOtwM,KAAK2vM,UAAUM,SAMxBM,iBAAkB,WAChB,OAAOvwM,KAAK2vM,UAAUI,SAMxBS,eAAgB,WACd,OAAOxwM,KAAKowM,cAAcpwM,KAAKswM,qBAMjCG,eAAgB,WACd,OAAOzwM,KAAKowM,cAAcpwM,KAAKuwM,qBAEjCz9H,MAAO,WACL9yE,KAAK0wM,SAAQ,IAMfrvM,QAAS,WACHrB,KAAK2gI,OACPuuE,GAAoBlvM,KAAK2gI,MAAO3gI,OAGpC2wM,kBAAmB,WACjB,IAAIxuK,EAAKniC,KACLgU,EAAOmuB,EAAGktK,mBACd,OAAOr7L,GAAQ,IAAIA,EAAK,CACtB48L,OAAQzuK,EAAGu2G,MACXm4D,cAAe1uK,EAAGp6B,SAGtB+oM,eAAgB,SAAU/oM,GACxB,IAAIo6B,EAAKniC,KACLgU,EAAOmuB,EAAGmtK,gBACd,OAAOt7L,GAAQ,IAAIA,EAAK,CACtB48L,OAAQzuK,EAAGu2G,MACXm4D,cAAe1uK,EAAGp6B,MAClBqwI,OAAQrwI,KAGZ2nM,YAAa,WACX,IAIItoM,EAAG+pI,EAJHhvG,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACVv/L,EAAO+xB,EAAG0tK,aAAaz/L,MAAQ,GAC/B2gM,EAAWxuH,EAAKnyE,KAGpB,IAAKhJ,EAAI,EAAG+pI,EAAO/gI,EAAKpI,OAAQZ,EAAI+pI,IAAQ/pI,EAC1C2pM,EAAS3pM,GAAK2pM,EAAS3pM,IAAM+6B,EAAG2uK,eAAe1pM,GAGjDm7E,EAAKnoD,QAAUmoD,EAAKnoD,SAAW+H,EAAGwuK,qBAEpCK,mBAAoB,SAAUjpM,GAC5B,IAAIgV,EAAU/c,KAAK8wM,eAAe/oM,GAClC/H,KAAK2vM,UAAUv/L,KAAKqmB,OAAO1uB,EAAO,EAAGgV,GACrC/c,KAAKixM,cAAcl0L,EAAShV,GAAO,IAErCmpM,sBAAuB,WACrB,IAAI/uK,EAAKniC,KACLo6B,EAAU+H,EAAG0tK,aACbz/L,EAAOgqB,EAAQhqB,OAASgqB,EAAQhqB,KAAO,IAIvC+xB,EAAGw+F,QAAUvwH,IACX+xB,EAAGw+F,OAELuuE,GAAoB/sK,EAAGw+F,MAAOx+F,GAG5B/xB,GAAQ5P,OAAO2wM,aAAa/gM,IAC9B4+L,GAAkB5+L,EAAM+xB,GAG1BA,EAAGw+F,MAAQvwH,GAKb+xB,EAAGivK,kBAOLC,WAAY,WACV,IAAIlvK,EAAKniC,KACTmiC,EAAGuoF,QAAUiqB,GAAU3iE,MAAMxxE,OAAO4lC,OAAO,MAAO,CAACjE,EAAGu2G,MAAMvhI,QAAQ2kI,SAAS35G,EAAGjL,OAAQiL,EAAG0tK,cAAe,CACxGlxD,OAAQ,SAAUh8I,EAAKiC,EAAQ4C,GACjB,UAAR7E,GAA2B,SAARA,GACrBgyI,GAAUyxD,QAAQzjM,EAAKiC,EAAQ4C,OAKvCkpM,QAAS,SAAU59H,GACjB,IAAI3wC,EAAKniC,KAETmiC,EAAGkvK,aAEHlvK,EAAGmvK,gBAAkB,KACrBnvK,EAAG+uB,OAAO4hB,IAEZ5hB,OAAQyjF,GAAU0b,KAClBt3G,WAAY,SAAUw4J,GAMpB,IALA,IAAIhvH,EAAOviF,KAAK2vM,UACZ58H,EAAWwP,EAAKnyE,MAAQ,GACxB+gI,EAAOp+D,EAAS/qE,OAChBZ,EAAI,EAEDA,EAAI+pI,IAAQ/pI,EACjB2rE,EAAS3rE,GAAG2xC,WAAWw4J,GAGrBhvH,EAAKnoD,SACPmoD,EAAKnoD,QAAQ2e,WAAWw4J,IAG5Bp4D,KAAM,WACJ,IAAI52D,EAAOviF,KAAK2vM,UACZ58H,EAAWwP,EAAKnyE,MAAQ,GACxB+gI,EAAOp+D,EAAS/qE,OAChBZ,EAAI,EAMR,IAJIm7E,EAAKnoD,SACPmoD,EAAKnoD,QAAQ++G,OAGR/xI,EAAI+pI,IAAQ/pI,EACjB2rE,EAAS3rE,GAAG+xI,QAUhBq4D,SAAU,SAAUzpM,GAClB,IAGI4I,EAHAwxB,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACVv1K,EAAUmoD,EAAKnoD,QAgBnB,OAbA+H,EAAGkvK,aAECj3K,QAAqBpzB,IAAVe,EACb4I,EAAQwxB,EAAGsvK,8BAA8Br3K,GAAW,KAEpDryB,EAAQA,GAAS,EACjB4I,EAAQwxB,EAAGuvK,2BAA2BnvH,EAAKnyE,KAAKrI,IAAU,GAAIA,KAG7C,IAAf4I,EAAM+lI,MAAiC,OAAf/lI,EAAM+lI,OAChC/lI,EAAMwmE,gBAAkBxmE,EAAMwlI,aAGzBxlI,GAMT8gM,8BAA+B,SAAU10L,EAAS40L,GAChD,IAOIvqM,EAAG+pI,EAAMxuI,EAAKivM,EAPdzvK,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXm5D,EAAc1vK,EAAGuoF,QACjBonF,EAAS/0L,EAAQ+0L,QAAU,GAC3B36L,EAAUuhI,EAAMvhI,QAAQ47D,SAAS5wC,EAAGktK,mBAAmBjuM,UAAU81B,QAAU,GAC3E66K,EAAiB5vK,EAAGotK,uBACpBx9J,EAAS,GAGTxtB,EAAU,CACZm0H,MAAOA,EACPt+G,QAAS+H,EAAG0tK,aACZrxD,aAAcr8G,EAAGp6B,MACjB4pM,MAAOA,GAGT,IAAKvqM,EAAI,EAAG+pI,EAAO4gE,EAAe/pM,OAAQZ,EAAI+pI,IAAQ/pI,EACpDzE,EAAMovM,EAAe3qM,GACrBwqM,EAAUD,EAAQ,QAAUhvM,EAAIoP,OAAO,GAAGitE,cAAgBr8E,EAAIiF,MAAM,GAAKjF,EACzEovC,EAAOpvC,GAAOigE,GAAQ,CAACkvI,EAAOF,GAAUC,EAAYD,GAAUz6L,EAAQy6L,IAAWrtL,GAGnF,OAAOwtB,GAMT2/J,2BAA4B,SAAU30L,EAAShV,GAC7C,IAAIo6B,EAAKniC,KACL8xM,EAAS/0L,GAAWA,EAAQ+0L,OAC5BE,EAAS7vK,EAAGmvK,gBAEhB,GAAIU,IAAWF,EACb,OAAOE,EAGT,IAgBIt7L,EAAMtP,EAAG+pI,EAAMxuI,EAhBf+1I,EAAQv2G,EAAGu2G,MACXm5D,EAAc1vK,EAAGuoF,QACjBvzG,EAAUuhI,EAAMvhI,QAAQ47D,SAAS5wC,EAAGmtK,gBAAgBluM,UAAU81B,QAAU,GACxE66K,EAAiB5vK,EAAGqtK,oBACpBz9J,EAAS,GAETxtB,EAAU,CACZm0H,MAAOA,EACP/9F,UAAW5yC,EACXqyB,QAAS+H,EAAG0tK,aACZrxD,aAAcr8G,EAAGp6B,OAGfu4K,EAAO,CACTyrB,WAAY+F,GAKd,GAFAA,EAASA,GAAU,GAEfn9D,GAAUjqG,QAAQqnK,GACpB,IAAK3qM,EAAI,EAAG+pI,EAAO4gE,EAAe/pM,OAAQZ,EAAI+pI,IAAQ/pI,EAEpD2qC,EADApvC,EAAMovM,EAAe3qM,IACPw7D,GAAQ,CAACkvI,EAAOnvM,GAAMkvM,EAAYlvM,GAAMwU,EAAQxU,IAAO4hB,EAASxc,EAAOu4K,QAKvF,IAAKl5K,EAAI,EAAG+pI,GAFZz6H,EAAOlW,OAAOkW,KAAKq7L,IAEK/pM,OAAQZ,EAAI+pI,IAAQ/pI,EAE1C2qC,EADApvC,EAAM+T,EAAKtP,IACGw7D,GAAQ,CAACkvI,EAAOnvM,GAAMkvM,EAAYE,EAAepvM,IAAOkvM,EAAYlvM,GAAMwU,EAAQxU,IAAO4hB,EAASxc,EAAOu4K,GAQ3H,OAJIA,EAAKyrB,YACP5pK,EAAGmvK,gBAAkB9wM,OAAOyxM,OAAOlgK,IAG9BA,GAETmgK,iBAAkB,SAAUn1L,GAC1B43H,GAAU3iE,MAAMj1D,EAAQq4H,OAAQr4H,EAAQo1L,gBAAkB,WACnDp1L,EAAQo1L,gBAEjBC,cAAe,SAAUr1L,GACvB,IAAIqd,EAAUp6B,KAAK04I,MAAMtoI,KAAK0rI,SAAS/+H,EAAQ8zL,eAC3C9oM,EAAQgV,EAAQq7H,OAChB05D,EAAS/0L,EAAQ+0L,QAAU,GAC3BlwE,EAAQ7kH,EAAQq4H,OAChBi9D,EAAgB19D,GAAU09D,cAC9Bt1L,EAAQo1L,eAAiB,CACvBh7H,gBAAiByqD,EAAMzqD,gBACvBg/D,YAAavU,EAAMuU,YACnBtB,YAAajT,EAAMiT,aAErBjT,EAAMzqD,gBAAkBvU,GAAQ,CAACkvI,EAAOQ,qBAAsBl4K,EAAQk4K,qBAAsBD,EAAczwE,EAAMzqD,uBAAmBnwE,EAAWe,GAC9I65H,EAAMuU,YAAcvzE,GAAQ,CAACkvI,EAAOS,iBAAkBn4K,EAAQm4K,iBAAkBF,EAAczwE,EAAMuU,mBAAenvI,EAAWe,GAC9H65H,EAAMiT,YAAcjyE,GAAQ,CAACkvI,EAAOU,iBAAkBp4K,EAAQo4K,iBAAkB5wE,EAAMiT,kBAAc7tI,EAAWe,IAMjH0qM,yBAA0B,WACxB,IAAI11L,EAAU/c,KAAK2vM,UAAUv1K,QAEzBrd,GACF/c,KAAKkyM,iBAAiBn1L,IAO1B21L,sBAAuB,WACrB,IAEItrM,EAAG+pI,EAAMxuI,EAAK+T,EAAMi8L,EAAc/wE,EAFlC7kH,EAAU/c,KAAK2vM,UAAUv1K,QACzB0iB,EAAO,GAGX,GAAK//B,EAAL,CAQA,IAJA6kH,EAAQ7kH,EAAQq4H,OAChBu9D,EAAe3yM,KAAKyxM,8BAA8B10L,GAAS,GAGtD3V,EAAI,EAAG+pI,GAFZz6H,EAAOlW,OAAOkW,KAAKi8L,IAEK3qM,OAAQZ,EAAI+pI,IAAQ/pI,EAE1C01C,EADAn6C,EAAM+T,EAAKtP,IACCw6H,EAAMj/H,GAClBi/H,EAAMj/H,GAAOgwM,EAAahwM,GAG5Boa,EAAQo1L,eAAiBr1J,IAM3Bs0J,eAAgB,WACd,IAAIjvK,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACVv/L,EAAO+xB,EAAG0tK,aAAaz/L,KACvBwiM,EAAUrwH,EAAKnyE,KAAKpI,OACpB6qM,EAAUziM,EAAKpI,OAEf6qM,EAAUD,EACZrwH,EAAKnyE,KAAKqmB,OAAOo8K,EAASD,EAAUC,GAC3BA,EAAUD,GACnBzwK,EAAG2wK,eAAeF,EAASC,EAAUD,IAOzCE,eAAgB,SAAUtwK,EAAOuwK,GAC/B,IAAK,IAAI3rM,EAAI,EAAGA,EAAI2rM,IAAS3rM,EAC3BpH,KAAKgxM,mBAAmBxuK,EAAQp7B,IAOpC4rM,WAAY,WACV,IAAID,EAAQjvM,UAAUkE,OACtBhI,KAAK8yM,eAAe9yM,KAAK6vM,aAAaz/L,KAAKpI,OAAS+qM,EAAOA,IAM7DE,UAAW,WACTjzM,KAAK2vM,UAAUv/L,KAAKi5C,OAMtB6pJ,YAAa,WACXlzM,KAAK2vM,UAAUv/L,KAAKkgC,SAMtB6iK,aAAc,SAAU3wK,EAAOuwK,GAC7B/yM,KAAK2vM,UAAUv/L,KAAKqmB,OAAO+L,EAAOuwK,GAClC/yM,KAAK8yM,eAAetwK,EAAO1+B,UAAUkE,OAAS,IAMhDorM,cAAe,WACbpzM,KAAK8yM,eAAe,EAAGhvM,UAAUkE,WAGrConM,GAAkBjoK,OAASwtG,GAAUgyD,SACrC,IAAI0M,GAAyBjE,GACzBkE,GAAgB,EAAV56L,KAAKouC,GAaf,SAASysJ,GAAQriE,EAAK2C,GACpB,IAAIG,EAAaH,EAAIG,WACjBC,EAAWJ,EAAII,SACfu/D,EAAc3/D,EAAI2/D,YAClBC,EAAcD,EAAc3/D,EAAIM,YAChCzgI,EAAImgI,EAAIngI,EACRzW,EAAI42I,EAAI52I,EAGZi0I,EAAIkF,YACJlF,EAAI2C,IAAIngI,EAAGzW,EAAG42I,EAAIM,YAAaH,EAAay/D,EAAax/D,EAAWw/D,GAEhE5/D,EAAIK,YAAcs/D,GACpBC,EAAcD,EAAc3/D,EAAIK,YAChChD,EAAI2C,IAAIngI,EAAGzW,EAAG42I,EAAIK,YAAcs/D,EAAav/D,EAAWw/D,EAAaz/D,EAAay/D,GAAa,IAE/FviE,EAAI2C,IAAIngI,EAAGzW,EAAGu2M,EAAav/D,EAAWv7H,KAAKouC,GAAK,EAAGktF,EAAat7H,KAAKouC,GAAK,GAG5EoqF,EAAIsF,YACJtF,EAAI0H,OAGN,SAAS86D,GAAsBxiE,EAAK4C,EAAID,EAAK8/D,GAC3C,IACIvsM,EADA6sI,EAAWJ,EAAII,SAiBnB,IAdI0/D,IACF9/D,EAAII,SAAWJ,EAAIG,WAAas/D,GAChCC,GAAQriE,EAAK2C,GACbA,EAAII,SAAWA,EAEXJ,EAAII,WAAaJ,EAAIG,YAAcH,EAAI+/D,cACzC//D,EAAII,UAAYq/D,GAChBz/D,EAAI+/D,gBAIR1iE,EAAIkF,YACJlF,EAAI2C,IAAIA,EAAIngI,EAAGmgI,EAAI52I,EAAG42I,EAAIK,YAAaL,EAAIG,WAAas/D,GAAKz/D,EAAIG,YAAY,GAExE5sI,EAAI,EAAGA,EAAIysI,EAAI+/D,cAAexsM,EACjC8pI,EAAI4F,SAMN,IAHA5F,EAAIkF,YACJlF,EAAI2C,IAAIA,EAAIngI,EAAGmgI,EAAI52I,EAAG62I,EAAGK,YAAaN,EAAIG,WAAYH,EAAIG,WAAas/D,IAElElsM,EAAI,EAAGA,EAAIysI,EAAI+/D,cAAexsM,EACjC8pI,EAAI4F,SAIR,SAAS+8D,GAAW3iE,EAAK4C,EAAID,GAC3B,IAAI8/D,EAA2B,UAAnB7/D,EAAGggE,YAEXH,GACFziE,EAAI0F,UAA6B,EAAjB9C,EAAGe,YACnB3D,EAAI2F,SAAW,UAEf3F,EAAI0F,UAAY9C,EAAGe,YACnB3D,EAAI2F,SAAW,SAGbhD,EAAI+/D,aACNF,GAAsBxiE,EAAK4C,EAAID,EAAK8/D,GAGlCA,GACFJ,GAAQriE,EAAK2C,GAGf3C,EAAIkF,YACJlF,EAAI2C,IAAIA,EAAIngI,EAAGmgI,EAAI52I,EAAG62I,EAAGK,YAAaN,EAAIG,WAAYH,EAAII,UAC1D/C,EAAI2C,IAAIA,EAAIngI,EAAGmgI,EAAI52I,EAAG42I,EAAIK,YAAaL,EAAII,SAAUJ,EAAIG,YAAY,GACrE9C,EAAIsF,YACJtF,EAAI4F,SAvFN20D,EAAczvD,KAAK,SAAU,CAC3BjpE,SAAU,CACR8gE,IAAK,CACH18D,gBAAiBs0H,EAAcxjM,OAAOqjM,aACtCn1D,YAAa,OACbtB,YAAa,EACbi/D,YAAa,aAoFnB,IAAIC,GAAcjG,GAAa3mK,OAAO,CACpCjQ,MAAO,MACP88K,aAAc,SAAUC,GACtB,IAAIngE,EAAK9zI,KAAKs8I,MAEd,QAAIxI,GACKp7H,KAAK0zB,IAAI6nK,EAASngE,EAAGpgI,EAAG,GAAKgF,KAAK0zB,IAAI0nG,EAAGO,OAASP,EAAGogE,YAAa,IAK7EC,QAAS,SAAUC,EAAQC,GACzB,IAAIvgE,EAAK9zI,KAAKs8I,MAEd,GAAIxI,EAAI,CAWN,IAVA,IAAIwgE,EAAwB3/D,GAAU4/D,kBAAkBzgE,EAAI,CAC1DpgI,EAAG0gM,EACHn3M,EAAGo3M,IAEDtgE,EAAQugE,EAAsBvgE,MAC9BxqF,EAAW+qJ,EAAsB/qJ,SAEjCyqF,EAAaF,EAAGE,WAChBC,EAAWH,EAAGG,SAEXA,EAAWD,GAChBC,GAAYq/D,GAGd,KAAOv/D,EAAQE,GACbF,GAASu/D,GAGX,KAAOv/D,EAAQC,GACbD,GAASu/D,GAIX,IAAIkB,EAAgBzgE,GAASC,GAAcD,GAASE,EAChDwgE,EAAelrJ,GAAYuqF,EAAGI,aAAe3qF,GAAYuqF,EAAGK,YAChE,OAAOqgE,GAAiBC,EAG1B,OAAO,GAETC,eAAgB,WACd,IAAI5gE,EAAK9zI,KAAKs8I,MACVq4D,GAAa7gE,EAAGE,WAAaF,EAAGG,UAAY,EAC5C2gE,GAAc9gE,EAAGI,YAAcJ,EAAGK,aAAe,EACrD,MAAO,CACLzgI,EAAGogI,EAAGpgI,EAAIgF,KAAKi6H,IAAIgiE,GAAaC,EAChC33M,EAAG62I,EAAG72I,EAAIyb,KAAKk6H,IAAI+hE,GAAaC,IAGpCC,QAAS,WACP,IAAI/gE,EAAK9zI,KAAKs8I,MACd,OAAO5jI,KAAKouC,KAAOgtF,EAAGG,SAAWH,EAAGE,aAAe,EAAIt7H,KAAKouC,MAAQpuC,KAAK0zB,IAAI0nG,EAAGK,YAAa,GAAKz7H,KAAK0zB,IAAI0nG,EAAGI,YAAa,KAE7H25D,gBAAiB,WACf,IAAI/5D,EAAK9zI,KAAKs8I,MACVw4D,EAAchhE,EAAGE,YAAcF,EAAGG,SAAWH,EAAGE,YAAc,EAC9D+gE,GAAmBjhE,EAAGK,YAAcL,EAAGI,aAAe,EAAIJ,EAAGI,YACjE,MAAO,CACLxgI,EAAGogI,EAAGpgI,EAAIgF,KAAKi6H,IAAImiE,GAAeC,EAClC93M,EAAG62I,EAAG72I,EAAIyb,KAAKk6H,IAAIkiE,GAAeC,IAGtC57D,KAAM,WACJ,IAaI/xI,EAbA8pI,EAAMlxI,KAAK4wM,OAAO1/D,IAClB4C,EAAK9zI,KAAKs8I,MACVk3D,EAAiC,UAAnB1/D,EAAGggE,YAA0B,IAAO,EAClDjgE,EAAM,CACRngI,EAAGogI,EAAGpgI,EACNzW,EAAG62I,EAAG72I,EACNi3I,YAAaJ,EAAGI,YAChBC,YAAaz7H,KAAKmS,IAAIipH,EAAGK,YAAcq/D,EAAa,GACpDA,YAAaA,EACbx/D,WAAYF,EAAGE,WACfC,SAAUH,EAAGG,SACb2/D,YAAal7L,KAAKG,MAAMi7H,EAAGkhE,cAAgB1B,KAO7C,GAJApiE,EAAImI,OACJnI,EAAIuF,UAAY3C,EAAG38D,gBACnB+5D,EAAIyF,YAAc7C,EAAGqC,YAEjBtC,EAAI+/D,YAAa,CAOnB,IANA//D,EAAII,SAAWJ,EAAIG,WAAas/D,GAChCpiE,EAAIkF,YACJlF,EAAI2C,IAAIA,EAAIngI,EAAGmgI,EAAI52I,EAAG42I,EAAIM,YAAaN,EAAIG,WAAYH,EAAII,UAC3D/C,EAAI2C,IAAIA,EAAIngI,EAAGmgI,EAAI52I,EAAG42I,EAAIK,YAAaL,EAAII,SAAUJ,EAAIG,YAAY,GACrE9C,EAAIsF,YAECpvI,EAAI,EAAGA,EAAIysI,EAAI+/D,cAAexsM,EACjC8pI,EAAIwF,OAGN7C,EAAII,SAAWJ,EAAIG,WAAaF,EAAGkhE,cAAgB1B,GAGrDpiE,EAAIkF,YACJlF,EAAI2C,IAAIA,EAAIngI,EAAGmgI,EAAI52I,EAAG42I,EAAIM,YAAaN,EAAIG,WAAYH,EAAII,UAC3D/C,EAAI2C,IAAIA,EAAIngI,EAAGmgI,EAAI52I,EAAG42I,EAAIK,YAAaL,EAAII,SAAUJ,EAAIG,YAAY,GACrE9C,EAAIsF,YACJtF,EAAIwF,OAEA5C,EAAGe,aACLg/D,GAAW3iE,EAAK4C,EAAID,GAGtB3C,EAAIsI,aAGJy7D,GAAmBtgE,GAAUpD,eAC7B+5D,GAAeG,EAAcxjM,OAAOqjM,aAExCG,EAAczvD,KAAK,SAAU,CAC3BjpE,SAAU,CACR6sE,KAAM,CACJkrD,QAAS,GACT3zH,gBAAiBm0H,GACjBz2D,YAAa,EACbsB,YAAam1D,GACb4J,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjBC,iBAAiB,EACjB5+D,MAAM,MAMZ,IAAI6+D,GAAezH,GAAa3mK,OAAO,CACrCjQ,MAAO,OACPiiH,KAAM,WACJ,IAYIpxI,EAAOs1I,EAAUm4D,EAZjBrzK,EAAKniC,KACL8zI,EAAK3xG,EAAGm6G,MACRpL,EAAM/uG,EAAGyuK,OAAO1/D,IAChBukE,EAAW3hE,EAAG2hE,SAEd5oK,EAAS1K,EAAGuzK,UAAU9tM,QAGtBgkM,EAAiBH,EAAcxjM,OAC/B0tM,EAA2B/J,EAAe74H,SAAS6sE,KACnDg2D,GAAkB,EAClBp/D,EAAYr0G,EAAGo7H,MAGnB,GAAK1wH,EAAO7kC,OAAZ,CAIA,GAAIm6B,EAAGo7H,MAAO,CACZ,IAAKx1J,EAAQ,EAAGA,EAAQ8kC,EAAO7kC,SAAUD,EAGvC,GAFAs1I,EAAW1I,GAAUkhE,aAAahpK,EAAQ9kC,IAErC8kC,EAAO9kC,GAAOu0I,MAAM/lF,MAAQ8mF,EAASf,MAAM/lF,KAAM,CACpD1pB,EAASA,EAAOjlC,MAAMG,GAAO4O,OAAOk2B,EAAOjlC,MAAM,EAAGG,IACpDyuI,EAAYi/D,EACZ,MAKAj/D,GACF3pG,EAAO7+B,KAAK6+B,EAAO,IA0BvB,IAtBAqkG,EAAImI,OAEJnI,EAAI4kE,QAAUhiE,EAAGohE,gBAAkBS,EAAyBT,eAExDhkE,EAAI6kE,aACN7kE,EAAI6kE,YAAYjiE,EAAGqhE,YAAcQ,EAAyBR,YAG5DjkE,EAAI8kE,eAAiBf,GAAiBnhE,EAAGshE,iBAAkBO,EAAyBP,kBACpFlkE,EAAI2F,SAAW/C,EAAGuhE,iBAAmBM,EAAyBN,gBAC9DnkE,EAAI0F,UAAYq+D,GAAiBnhE,EAAGe,YAAa8gE,EAAyB9gE,aAC1E3D,EAAIyF,YAAc7C,EAAGqC,aAAey1D,EAAeN,aAEnDp6D,EAAIkF,aAEJo/D,EAAY3oK,EAAO,GAAGyvG,OAEP/lF,OACb26E,EAAI24D,OAAO2L,EAAU9hM,EAAG8hM,EAAUv4M,GAClC24M,EAAiB,GAGd7tM,EAAQ,EAAGA,EAAQ8kC,EAAO7kC,SAAUD,EACvCytM,EAAY3oK,EAAO9kC,GAAOu0I,MAC1Be,GAA+B,IAApBu4D,EAAwBjhE,GAAUkhE,aAAahpK,EAAQ9kC,GAAS8kC,EAAO+oK,GAE7EJ,EAAUj/I,OACTq/I,IAAmB7tM,EAAQ,IAAM0tM,IAAgC,IAApBG,EAE/C1kE,EAAI24D,OAAO2L,EAAU9hM,EAAG8hM,EAAUv4M,GAGlC03I,GAAU0B,OAAO+zD,OAAOl5D,EAAKmM,EAASf,MAAOk5D,GAG/CI,EAAiB7tM,GAIjByuI,GACFtF,EAAIsF,YAGNtF,EAAI4F,SACJ5F,EAAIsI,cAGJy8D,GAAmBthE,GAAUpD,eAC7B2kE,GAAiBzK,EAAcxjM,OAAOqjM,aAkB1C,SAAS6K,GAAOlC,GACd,IAAIngE,EAAK9zI,KAAKs8I,MACd,QAAOxI,GAAKp7H,KAAKC,IAAIs7L,EAASngE,EAAGpgI,GAAKogI,EAAGO,OAASP,EAAGsiE,UAGvD,SAASC,GAAOC,GACd,IAAIxiE,EAAK9zI,KAAKs8I,MACd,QAAOxI,GAAKp7H,KAAKC,IAAI29L,EAASxiE,EAAG72I,GAAK62I,EAAGO,OAASP,EAAGsiE,UAvBvD3K,EAAczvD,KAAK,SAAU,CAC3BjpE,SAAU,CACRjmC,MAAO,CACLunG,OAAQ,EACRkiE,WAAY,SACZp/H,gBAAiB++H,GACjB//D,YAAa+/D,GACbrhE,YAAa,EAEbuhE,UAAW,EACXlC,YAAa,EACb1B,iBAAkB,MAexB,IAAIgE,GAAgB1I,GAAa3mK,OAAO,CACtCjQ,MAAO,QACPi9K,QAAS,SAAUF,EAAQqC,GACzB,IAAIxiE,EAAK9zI,KAAKs8I,MACd,QAAOxI,GAAKp7H,KAAK0zB,IAAI6nK,EAASngE,EAAGpgI,EAAG,GAAKgF,KAAK0zB,IAAIkqK,EAASxiE,EAAG72I,EAAG,GAAKyb,KAAK0zB,IAAI0nG,EAAGsiE,UAAYtiE,EAAGO,OAAQ,IAE3G2/D,aAAcmC,GACdM,SAAUN,GACVO,SAAUL,GACV3B,eAAgB,WACd,IAAI5gE,EAAK9zI,KAAKs8I,MACd,MAAO,CACL5oI,EAAGogI,EAAGpgI,EACNzW,EAAG62I,EAAG72I,IAGV43M,QAAS,WACP,OAAOn8L,KAAKouC,GAAKpuC,KAAK0zB,IAAIpsC,KAAKs8I,MAAMjI,OAAQ,IAE/Cw5D,gBAAiB,WACf,IAAI/5D,EAAK9zI,KAAKs8I,MACd,MAAO,CACL5oI,EAAGogI,EAAGpgI,EACNzW,EAAG62I,EAAG72I,EACN63I,QAAShB,EAAGO,OAASP,EAAGe,cAG5BsE,KAAM,SAAUR,GACd,IAAI7E,EAAK9zI,KAAKs8I,MACVpL,EAAMlxI,KAAK4wM,OAAO1/D,IAClBqlE,EAAaziE,EAAGyiE,WAChBx9D,EAAWjF,EAAGiF,SACd1E,EAASP,EAAGO,OACZ3gI,EAAIogI,EAAGpgI,EACPzW,EAAI62I,EAAG72I,EACP2uM,EAAiBH,EAAcxjM,OAC/BqjM,EAAeM,EAAeN,aAE9Bx3D,EAAGv9E,YAKWvvD,IAAd2xI,GAA2BhE,GAAU0B,OAAOi0D,eAAex2D,EAAI6E,MACjEzH,EAAIyF,YAAc7C,EAAGqC,aAAem1D,EACpCp6D,EAAI0F,UAAYq/D,GAAiBniE,EAAGe,YAAa+2D,EAAe74H,SAASjmC,MAAM+nG,aAC/E3D,EAAIuF,UAAY3C,EAAG38D,iBAAmBm0H,EACtC32D,GAAU0B,OAAOyzD,UAAU54D,EAAKqlE,EAAYliE,EAAQ3gI,EAAGzW,EAAG87I,OAI5D49D,GAAiBlL,EAAcxjM,OAAOqjM,aAa1C,SAASjlJ,GAAWytF,GAClB,OAAOA,QAAmB9sI,IAAb8sI,EAAGtmH,MAUlB,SAASopL,GAAa9iE,GACpB,IAAIP,EAAIurD,EAAItrD,EAAIqrD,EAAIgY,EAgBpB,OAdIxwJ,GAAWytF,IACb+iE,EAAO/iE,EAAGtmH,MAAQ,EAClB+lH,EAAKO,EAAGpgI,EAAImjM,EACZ/X,EAAKhrD,EAAGpgI,EAAImjM,EACZrjE,EAAK96H,KAAKkS,IAAIkpH,EAAG72I,EAAG62I,EAAGx4E,MACvBujI,EAAKnmL,KAAKmS,IAAIipH,EAAG72I,EAAG62I,EAAGx4E,QAEvBu7I,EAAO/iE,EAAG3kI,OAAS,EACnBokI,EAAK76H,KAAKkS,IAAIkpH,EAAGpgI,EAAGogI,EAAGx4E,MACvBwjI,EAAKpmL,KAAKmS,IAAIipH,EAAGpgI,EAAGogI,EAAGx4E,MACvBk4E,EAAKM,EAAG72I,EAAI45M,EACZhY,EAAK/qD,EAAG72I,EAAI45M,GAGP,CACL/iM,KAAMy/H,EACNnkI,IAAKokI,EACLj3G,MAAOuiK,EACP7iK,OAAQ4iK,GAIZ,SAASiY,GAAKC,EAAM5Q,EAAI6Q,GACtB,OAAOD,IAAS5Q,EAAK6Q,EAAKD,IAASC,EAAK7Q,EAAK4Q,EAG/C,SAASE,GAAmBnjE,GAC1B,IAAIojE,EAAOpjE,EAAGqjE,cACVjgK,EAAM,GAEV,OAAKggK,GAIDpjE,EAAGW,WACDX,EAAGx4E,KAAOw4E,EAAGpgI,IACfwjM,EAAOJ,GAAKI,EAAM,OAAQ,UAEnBpjE,EAAGx4E,KAAOw4E,EAAG72I,IACtBi6M,EAAOJ,GAAKI,EAAM,SAAU,QAG9BhgK,EAAIggK,IAAQ,EACLhgK,GAZEA,EAeX,SAASkgK,GAAiBtjE,EAAIujE,EAAMC,GAClC,IAEIl5L,EAAGI,EAAGlhB,EAAGuqB,EAFT1X,EAAQ2jI,EAAGe,YACXt+E,EAAO0gJ,GAAmBnjE,GAY9B,OATIa,GAAUv7H,SAASjJ,IACrBiO,GAAKjO,EAAMf,KAAO,EAClBoP,GAAKrO,EAAMosB,OAAS,EACpBj/B,GAAK6S,EAAM8rB,QAAU,EACrBpU,GAAK1X,EAAM2D,MAAQ,GAEnBsK,EAAII,EAAIlhB,EAAIuqB,GAAK1X,GAAS,EAGrB,CACLiO,EAAGm4C,EAAKnnD,KAAOgP,EAAI,EAAI,EAAIA,EAAIk5L,EAAOA,EAAOl5L,EAC7CI,EAAG+3C,EAAKh6B,OAAS/d,EAAI,EAAI,EAAIA,EAAI64L,EAAOA,EAAO74L,EAC/ClhB,EAAGi5D,EAAKt6B,QAAU3+B,EAAI,EAAI,EAAIA,EAAIg6M,EAAOA,EAAOh6M,EAChDuqB,EAAG0uC,EAAKziD,MAAQ+T,EAAI,EAAI,EAAIA,EAAIwvL,EAAOA,EAAOxvL,GAIlD,SAAS+sH,GAAcd,GACrB,IAAIyjE,EAASX,GAAa9iE,GACtBtmH,EAAQ+pL,EAAOh7K,MAAQg7K,EAAOzjM,KAC9B3E,EAASooM,EAAOt7K,OAASs7K,EAAOnoM,IAChCooM,EAASJ,GAAiBtjE,EAAItmH,EAAQ,EAAGre,EAAS,GACtD,MAAO,CACLsoM,MAAO,CACL/jM,EAAG6jM,EAAOzjM,KACV7W,EAAGs6M,EAAOnoM,IACV6F,EAAGuY,EACH7wB,EAAGwS,GAELwkM,MAAO,CACLjgM,EAAG6jM,EAAOzjM,KAAO0jM,EAAO3vL,EACxB5qB,EAAGs6M,EAAOnoM,IAAMooM,EAAOp5L,EACvBnJ,EAAGuY,EAAQgqL,EAAO3vL,EAAI2vL,EAAOh5L,EAC7B7hB,EAAGwS,EAASqoM,EAAOp5L,EAAIo5L,EAAOl6M,IAKpC,SAAS62M,GAAQrgE,EAAIpgI,EAAGzW,GACtB,IAAIy6M,EAAc,OAANhkM,EACRikM,EAAc,OAAN16M,EACRs6M,KAAUzjE,GAAM4jE,GAASC,IAAgBf,GAAa9iE,GAC1D,OAAOyjE,IAAWG,GAAShkM,GAAK6jM,EAAOzjM,MAAQJ,GAAK6jM,EAAOh7K,SAAWo7K,GAAS16M,GAAKs6M,EAAOnoM,KAAOnS,GAAKs6M,EAAOt7K,QAtHhHwvK,EAAczvD,KAAK,SAAU,CAC3BjpE,SAAU,CACR6kI,UAAW,CACTzgI,gBAAiBw/H,GACjBxgE,YAAawgE,GACbQ,cAAe,SACftiE,YAAa,MAmHnB,IAAIgjE,GAAoB/J,GAAa3mK,OAAO,CAC1CjQ,MAAO,YACPiiH,KAAM,WACJ,IAAIjI,EAAMlxI,KAAK4wM,OAAO1/D,IAClB4C,EAAK9zI,KAAKs8I,MACVtD,EAAQpE,GAAcd,GACtB2jE,EAAQz+D,EAAMy+D,MACd9D,EAAQ36D,EAAM26D,MAClBziE,EAAIuF,UAAY3C,EAAG38D,gBACnB+5D,EAAI4mE,SAASL,EAAM/jM,EAAG+jM,EAAMx6M,EAAGw6M,EAAMxiM,EAAGwiM,EAAM96M,GAE1C86M,EAAMxiM,IAAM0+L,EAAM1+L,GAAKwiM,EAAM96M,IAAMg3M,EAAMh3M,IAI7Cu0I,EAAImI,OACJnI,EAAIkF,YACJlF,EAAIiC,KAAKskE,EAAM/jM,EAAG+jM,EAAMx6M,EAAGw6M,EAAMxiM,EAAGwiM,EAAM96M,GAC1Cu0I,EAAI0H,OACJ1H,EAAIuF,UAAY3C,EAAGqC,YACnBjF,EAAIiC,KAAKwgE,EAAMjgM,EAAGigM,EAAM12M,EAAG02M,EAAM1+L,EAAG0+L,EAAMh3M,GAC1Cu0I,EAAIwF,KAAK,WACTxF,EAAIsI,YAENrqI,OAAQ,WACN,IAAI2kI,EAAK9zI,KAAKs8I,MACd,OAAOxI,EAAGx4E,KAAOw4E,EAAG72I,GAEtBk3M,QAAS,SAAUF,EAAQqC,GACzB,OAAOnC,GAAQn0M,KAAKs8I,MAAO23D,EAAQqC,IAErCtC,aAAc,SAAUC,EAAQqC,GAC9B,IAAIxiE,EAAK9zI,KAAKs8I,MACd,OAAOj2F,GAAWytF,GAAMqgE,GAAQrgE,EAAImgE,EAAQ,MAAQE,GAAQrgE,EAAI,KAAMwiE,IAExEG,SAAU,SAAUxC,GAClB,OAAOE,GAAQn0M,KAAKs8I,MAAO23D,EAAQ,OAErCyC,SAAU,SAAUJ,GAClB,OAAOnC,GAAQn0M,KAAKs8I,MAAO,KAAMg6D,IAEnC5B,eAAgB,WACd,IACIhhM,EAAGzW,EADH62I,EAAK9zI,KAAKs8I,MAWd,OARIj2F,GAAWytF,IACbpgI,EAAIogI,EAAGpgI,EACPzW,GAAK62I,EAAG72I,EAAI62I,EAAGx4E,MAAQ,IAEvB5nD,GAAKogI,EAAGpgI,EAAIogI,EAAGx4E,MAAQ,EACvBr+D,EAAI62I,EAAG72I,GAGF,CACLyW,EAAGA,EACHzW,EAAGA,IAGP43M,QAAS,WACP,IAAI/gE,EAAK9zI,KAAKs8I,MACd,OAAOj2F,GAAWytF,GAAMA,EAAGtmH,MAAQ9U,KAAKC,IAAIm7H,EAAG72I,EAAI62I,EAAGx4E,MAAQw4E,EAAG3kI,OAASuJ,KAAKC,IAAIm7H,EAAGpgI,EAAIogI,EAAGx4E,OAE/FuyI,gBAAiB,WACf,IAAI/5D,EAAK9zI,KAAKs8I,MACd,MAAO,CACL5oI,EAAGogI,EAAGpgI,EACNzW,EAAG62I,EAAG72I,MAIR81E,GAAW,GACX+iE,GAAMi+D,GACNgE,GAAOxC,GACPx/D,GAAQygE,GACRxgE,GAAY6hE,GAChB9kI,GAAS+iE,IAAMA,GACf/iE,GAASglI,KAAOA,GAChBhlI,GAASgjE,MAAQA,GACjBhjE,GAASijE,UAAYA,GACrB,IAAIgiE,GAAarjE,GAAUoyD,YACvBkR,GAAmBtjE,GAAUpD,eAkCjC,SAAS2mE,GAAqB7iE,EAAO8iE,GACnC,IACIr7J,EAAMs7J,EAAMhxM,EAAG+pI,EADfvmH,EAAMyqH,EAAM7mC,QAGhB,IAAKpnG,EAAI,EAAG+pI,EAAOgnE,EAAOnwM,OAAQZ,EAAI+pI,IAAQ/pI,EAC5CwjB,EAAMlS,KAAKkS,IAAIA,EAAKlS,KAAKC,IAAIw/L,EAAO/wM,GAAK+wM,EAAO/wM,EAAI,KAGtD,IAAKA,EAAI,EAAG+pI,EAAOkE,EAAMgjE,WAAWrwM,OAAQZ,EAAI+pI,IAAQ/pI,EACtDgxM,EAAO/iE,EAAMijE,gBAAgBlxM,GAC7BwjB,EAAMxjB,EAAI,EAAIsR,KAAKkS,IAAIA,EAAKlS,KAAKC,IAAIy/L,EAAOt7J,IAASlyB,EACrDkyB,EAAOs7J,EAGT,OAAOxtL,EAUT,SAAS2tL,GAAyBxwM,EAAOywM,EAAOrhM,GAC9C,IAIIm6C,EAAMjG,EAJNotJ,EAAYthM,EAAQuhM,aACpB3F,EAAQyF,EAAMG,WACdP,EAAOI,EAAML,OAAOpwM,GACpB6iB,EAAM+pH,GAAU/D,cAAc6nE,GAAaP,GAAqBM,EAAMnjE,MAAOmjE,EAAML,SAAW,EAclG,OAXIxjE,GAAU/D,cAAc6nE,IAC1BnnJ,EAAO1mC,EAAMzT,EAAQyhM,mBACrBvtJ,EAAQl0C,EAAQ0hM,gBAKhBvnJ,EAAOmnJ,EAAY1F,EACnB1nJ,EAAQ,GAGH,CACLytJ,MAAOxnJ,EAAOyhJ,EACd1nJ,MAAOA,EACP7oB,MAAO41K,EAAO9mJ,EAAO,GAWzB,SAASynJ,GAA0BhxM,EAAOywM,EAAOrhM,GAC/C,IAKIqrB,EALA21K,EAASK,EAAML,OACfC,EAAOD,EAAOpwM,GACd+0C,EAAO/0C,EAAQ,EAAIowM,EAAOpwM,EAAQ,GAAK,KACvC+oC,EAAO/oC,EAAQowM,EAAOnwM,OAAS,EAAImwM,EAAOpwM,EAAQ,GAAK,KACvDixM,EAAU7hM,EAAQyhM,mBAgBtB,OAba,OAAT97J,IAGFA,EAAOs7J,GAAiB,OAATtnK,EAAgB0nK,EAAMp+I,IAAMo+I,EAAMh2K,MAAQsO,EAAOsnK,IAGrD,OAATtnK,IAEFA,EAAOsnK,EAAOA,EAAOt7J,GAGvBta,EAAQ41K,GAAQA,EAAO1/L,KAAKkS,IAAIkyB,EAAMhM,IAAS,EAAIkoK,EAE5C,CACLF,MAFKpgM,KAAKC,IAAIm4B,EAAOgM,GAAQ,EAAIk8J,EAEnBR,EAAMG,WACpBttJ,MAAOl0C,EAAQ0hM,cACfr2K,MAAOA,GAhHXipK,EAAczvD,KAAK,MAAO,CACxB21D,MAAO,CACLpwL,KAAM,SAERytI,OAAQ,CACNghD,MAAO,CAAC,CACNh8L,KAAM,WACN+f,QAAQ,EACRklL,UAAW,CACTC,iBAAiB,KAGrBhJ,MAAO,CAAC,CACNl8L,KAAM,cAKZy3L,EAAczvD,KAAK,SAAU,CAC3BF,SAAU,CACRq9D,IAAK,CACHP,mBAAoB,GACpBC,cAAe,OA8FrB,IAAIO,GAAiB/F,GAAuBlsK,OAAO,CACjDmoK,gBAAiBv8H,GAASijE,UAK1Bw5D,oBAAqB,CAAC,kBAAmB,cAAe,gBAAiB,cAAe,gBAAiB,eAAgB,qBAAsB,kBAAmB,gBAClKvrM,WAAY,WACV,IACIs+E,EAAM82H,EADNl3K,EAAKniC,KAETqzM,GAAuBjyM,UAAU6C,WAAWJ,MAAMs+B,EAAIr+B,YACtDy+E,EAAOpgD,EAAGwtK,WACLzxL,MAAQikB,EAAG0tK,aAAa3xL,MAC7BqkE,EAAK42H,KAAM,EACXE,EAAYl3K,EAAGsuK,iBAAiBt5L,QAChC6gM,GAAW,YAAaqB,EAAUR,cAAe,iCAAkC,yBACnFb,GAAW,YAAaqB,EAAUX,aAAc,gCAAiC,wBACjFV,GAAW,YAAaqB,EAAUT,mBAAoB,sCAAuC,8BAC7FZ,GAAW,YAAa71K,EAAGquK,iBAAiBr5L,QAAQmiM,aAAc,gCAAiC,wBACnGtB,GAAW,YAAaqB,EAAUE,gBAAiB,mCAAoC,4BAEzFroJ,OAAQ,SAAU4hB,GAChB,IAEI1rE,EAAG+pI,EAFHhvG,EAAKniC,KACLg5I,EAAQ72G,EAAGwtK,UAAUv/L,KAIzB,IAFA+xB,EAAGq3K,OAASr3K,EAAGs3K,WAEVryM,EAAI,EAAG+pI,EAAO6H,EAAMhxI,OAAQZ,EAAI+pI,IAAQ/pI,EAC3C+6B,EAAG8uK,cAAcj4D,EAAM5xI,GAAIA,EAAG0rE,IAGlCm+H,cAAe,SAAU2G,EAAW7vM,EAAO+qE,GACzC,IAAI3wC,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACVv1K,EAAU+H,EAAG0tK,aAEb14L,EAAUgrB,EAAGuvK,2BAA2BkG,EAAW7vM,GAEvD6vM,EAAUriE,QAAUpzG,EAAGiuK,cAAc7tH,EAAKwtH,SAC1C6H,EAAUpiE,QAAUrzG,EAAGiuK,cAAc7tH,EAAK0tH,SAC1C2H,EAAU/G,cAAgB1uK,EAAGp6B,MAC7B6vM,EAAUx/D,OAASrwI,EACnB6vM,EAAUxiE,OAAS,CACjBj+D,gBAAiBhgE,EAAQggE,gBACzBg/D,YAAah/H,EAAQg/H,YACrBghE,cAAehgM,EAAQggM,cACvBtiE,YAAa19H,EAAQ09H,YACrB6kE,aAAct/K,EAAQ/sB,MACtBA,MAAO80B,EAAGu2G,MAAMtoI,KAAKg7F,OAAOrjG,IAG1B4sI,GAAUjqG,QAAQtQ,EAAQhqB,KAAKrI,MACjC6vM,EAAUxiE,OAAO+hE,cAAgB,MAGnCh1K,EAAGw3K,uBAAuB/B,EAAW7vM,EAAO+qE,EAAO37D,GAEnDygM,EAAUzd,SAMZwf,uBAAwB,SAAU/B,EAAW7vM,EAAO+qE,EAAO37D,GACzD,IAAIgrB,EAAKniC,KACL4hI,EAAQg2E,EAAUxiE,OAElBwkE,EAASz3K,EAAGquK,iBAEZl1I,EAAOs+I,EAAOhkE,eACdnB,EAAamlE,EAAOhzJ,eACpB4xJ,EAAQr2K,EAAGq3K,QAAUr3K,EAAGs3K,WACxBI,EAAU13K,EAAG23K,wBAAwB33K,EAAGp6B,MAAOA,EAAOoP,GACtD4iM,EAAU53K,EAAG63K,wBAAwB73K,EAAGp6B,MAAOA,EAAOywM,EAAOrhM,GACjEyqH,EAAM6S,WAAaA,EACnB7S,EAAMtmE,KAAOwX,EAAQxX,EAAOu+I,EAAQv+I,KACpCsmE,EAAMluH,EAAI+gI,EAAa3hE,EAAQxX,EAAOu+I,EAAQr8K,KAAOu8K,EAAQ3gE,OAC7DxX,EAAM3kI,EAAIw3I,EAAaslE,EAAQ3gE,OAAStmE,EAAQxX,EAAOu+I,EAAQr8K,KAC/DokG,EAAMzyH,OAASslI,EAAaslE,EAAQzoJ,UAAOtqD,EAC3C46H,EAAMp0G,MAAQinH,OAAaztI,EAAY+yM,EAAQzoJ,MASjD2oJ,WAAY,SAAUC,GACpB,IASI9yM,EAAGm7E,EATHpgD,EAAKniC,KAELq1I,EAAQlzG,EAAGsuK,iBAEX0J,EAAW9kE,EAAM+kE,yBAAyBj4K,EAAGjL,OAE7CmjL,EAAUhlE,EAAMl+H,QAAQkjM,QACxBlpE,EAAOgpE,EAASnyM,OAChBsyM,EAAS,GAGb,IAAKlzM,EAAI,EAAGA,EAAI+pI,IACd5uD,EAAO43H,EAAS/yM,KAMA,IAAZizM,IAAqD,IAAhCC,EAAO3yM,QAAQ46E,EAAKrkE,aAA6BlX,IAAZqzM,QAAwCrzM,IAAfu7E,EAAKrkE,QAC1Fo8L,EAAOtsM,KAAKu0E,EAAKrkE,OAGfqkE,EAAKx6E,QAAUmyM,KAXG9yM,GAgBxB,OAAOkzM,GAOTC,cAAe,WACb,OAAOv6M,KAAKi6M,aAAajyM,QAU3BwyM,cAAe,SAAUh8D,EAAc3gI,GACrC,IAAIy8L,EAASt6M,KAAKi6M,WAAWz7D,GAEzBz2I,OAAiBf,IAAT6W,EAAqBy8L,EAAO3yM,QAAQkW,IAAS,EAEzD,OAAkB,IAAX9V,EAAeuyM,EAAOtyM,OAAS,EAAID,GAM5C0xM,SAAU,WACR,IAKIryM,EAAG+pI,EALHhvG,EAAKniC,KAELq1I,EAAQlzG,EAAGsuK,iBAEX0H,EAAS,GAGb,IAAK/wM,EAAI,EAAG+pI,EAAOhvG,EAAGwtK,UAAUv/L,KAAKpI,OAAQZ,EAAI+pI,IAAQ/pI,EACvD+wM,EAAOnqM,KAAKqnI,EAAM6Z,iBAAiB,KAAM9nJ,EAAG+6B,EAAGp6B,QAGjD,MAAO,CACLowM,OAAQA,EACR31K,MAAO6yG,EAAMolE,YACbrgJ,IAAKi7E,EAAMqlE,UACX/B,WAAYx2K,EAAGo4K,gBACfllE,MAAOA,IAQXykE,wBAAyB,SAAUt7D,EAAcz2I,EAAOoP,GACtD,IAkBI/P,EAAGuzM,EAAOC,EAAQt/I,EAAM99B,EAAM8zB,EAAMupJ,EAlBpC14K,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MAEXrD,EAAQlzG,EAAGquK,iBAEX5pJ,EAAeyuF,EAAMzuF,eACrBk1F,EAAWpD,EAAMtoI,KAAK0rI,SAEtBq+D,EAAW9kE,EAAM+kE,yBAAyBj4K,EAAGjL,OAE7C/mB,EAAQklI,EAAMylE,YAAYh/D,EAAS0C,GAAcpuI,KAAKrI,IAEtDuxM,EAAeniM,EAAQmiM,aACvBe,EAAUhlE,EAAMl+H,QAAQkjM,QACxBn8L,EAAQikB,EAAGwtK,UAAUzxL,MACrBskB,OAAwBx7B,IAAhBmJ,EAAMqyB,MAAsB,EAAIryB,EAAM0a,KAAO,GAAK1a,EAAMya,KAAO,EAAIza,EAAMya,IAAMza,EAAM0a,IAC7F7iB,OAAyBhB,IAAhBmJ,EAAMqyB,MAAsBryB,EAAMiqD,IAAMjqD,EAAM0a,KAAO,GAAK1a,EAAMya,KAAO,EAAIza,EAAM0a,IAAM1a,EAAMya,IAAMza,EAAMya,IAAMza,EAAM0a,IAC9HsmH,EAAOgpE,EAASnyM,OAGpB,GAAIqyM,QAAuBrzM,IAAZqzM,QAAmCrzM,IAAVkX,EACtC,IAAK9W,EAAI,EAAGA,EAAI+pI,IACdwpE,EAAQR,EAAS/yM,IAEPW,QAAUy2I,IAHEp3I,EAOlBuzM,EAAMz8L,QAAUA,IAElB08L,OAA+B5zM,KAD/B6zM,EAAcxlE,EAAMylE,YAAYh/D,EAAS6+D,EAAM5yM,OAAOqI,KAAKrI,KACtCy6B,MAAsBq4K,EAAYzgJ,IAAMygJ,EAAYjwL,KAAO,GAAKiwL,EAAYhwL,KAAO,EAAIgwL,EAAYhwL,IAAMgwL,EAAYjwL,KAEtIza,EAAMya,IAAM,GAAKgwL,EAAS,GAAKzqM,EAAM0a,KAAO,GAAK+vL,EAAS,KAC5Dp4K,GAASo4K,IAoBjB,OAdAt/I,EAAO+5E,EAAM6Z,iBAAiB1sH,GAE9B8uB,GADA9zB,EAAO63G,EAAM6Z,iBAAiB1sH,EAAQx6B,IACxBszD,OAEOt0D,IAAjBsyM,GAA8B5gM,KAAKC,IAAI24C,GAAQgoJ,IACjDhoJ,EAAOgoJ,EAGL97K,EADEx1B,GAAU,IAAM4+C,GAAgB5+C,EAAS,GAAK4+C,EACzC0U,EAAOg+I,EAEPh+I,EAAOg+I,GAIX,CACLhoJ,KAAMA,EACNgK,KAAMA,EACN99B,KAAMA,EACN47G,OAAQ57G,EAAO8zB,EAAO,IAO1B0oJ,wBAAyB,SAAUx7D,EAAcz2I,EAAOywM,EAAOrhM,GAC7D,IAAIgrB,EAAKniC,KACLg+B,EAAiC,SAAzB7mB,EAAQuhM,aAA0BK,GAA0BhxM,EAAOywM,EAAOrhM,GAAWohM,GAAyBxwM,EAAOywM,EAAOrhM,GACpI4jM,EAAa54K,EAAGq4K,cAAch8D,EAAcr8G,EAAGwtK,UAAUzxL,OACzDk7H,EAASp7G,EAAMwE,MAAQxE,EAAM86K,MAAQiC,EAAa/8K,EAAM86K,MAAQ,EAChExnJ,EAAO54C,KAAKkS,IAAIqtL,GAAiB9gM,EAAQoiM,gBAAiBve,KAAWh9J,EAAM86K,MAAQ96K,EAAMqtB,OAC7F,MAAO,CACLiQ,KAAM89E,EAAS9nF,EAAO,EACtB9zB,KAAM47G,EAAS9nF,EAAO,EACtB8nF,OAAQA,EACR9nF,KAAMA,IAGV6nF,KAAM,WACJ,IAAIh3G,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MAEXrD,EAAQlzG,EAAGquK,iBAEXx3D,EAAQ72G,EAAGwtK,UAAUv/L,KACrBgqB,EAAU+H,EAAG0tK,aACb1+D,EAAO6H,EAAMhxI,OACbZ,EAAI,EAGR,IAFAutI,GAAU0B,OAAOm0D,SAAS9xD,EAAMxH,IAAKwH,EAAMC,WAEpCvxI,EAAI+pI,IAAQ/pI,EAAG,CACpB,IAAIgjB,EAAMirH,EAAMylE,YAAY1gL,EAAQhqB,KAAKhJ,IAEpC+Q,MAAMiS,EAAIQ,MAASzS,MAAMiS,EAAIS,MAChCmuH,EAAM5xI,GAAG+xI,OAIbxE,GAAU0B,OAAOo0D,WAAW/xD,EAAMxH,MAMpCwgE,2BAA4B,WAC1B,IAAIvvK,EAAKniC,KACL+xC,EAAS4iG,GAAUxtG,OAAO,GAAIksK,GAAuBjyM,UAAUswM,2BAA2B7tM,MAAMs+B,EAAIr+B,YAEpGk3M,EAAY74K,EAAGsuK,iBAAiBt5L,QAEhC8jM,EAAY94K,EAAGquK,iBAAiBr5L,QAOpC,OALA46B,EAAO8mK,cAAgBZ,GAAiB+C,EAAUnC,cAAe9mK,EAAO8mK,eACxE9mK,EAAO2mK,aAAeT,GAAiB+C,EAAUtC,aAAc3mK,EAAO2mK,cACtE3mK,EAAO6mK,mBAAqBX,GAAiB+C,EAAUpC,mBAAoB7mK,EAAO6mK,oBAClF7mK,EAAOwnK,gBAAkBtB,GAAiB+C,EAAUzB,gBAAiBxnK,EAAOwnK,iBAC5ExnK,EAAOunK,aAAerB,GAAiBgD,EAAU3B,aAAcvnK,EAAOunK,cAC/DvnK,KAGPmpK,GAAmBvmE,GAAUpD,eAC7B4pE,GAAYxmE,GAAUx9H,QAAQyrD,QAElC6oI,EAAczvD,KAAK,SAAU,CAC3B21D,MAAO,CACLpwL,KAAM,UAERytI,OAAQ,CACNghD,MAAO,CAAC,CACNh8L,KAAM,SAENwO,SAAU,SACV4yB,GAAI,aAGN86J,MAAO,CAAC,CACNl8L,KAAM,SACNwO,SAAU,OACV4yB,GAAI,cAGRgmK,SAAU,CACRC,UAAW,CACT/kL,MAAO,WAEL,MAAO,IAETjpB,MAAO,SAAU42B,EAAM7zB,GACrB,IAAIspM,EAAetpM,EAAK0rI,SAAS73G,EAAKu6G,cAAcnxI,OAAS,GACzDiuM,EAAYlrM,EAAK0rI,SAAS73G,EAAKu6G,cAAcpuI,KAAK6zB,EAAKl8B,OAC3D,OAAO2xM,EAAe,MAAQz1K,EAAKs3K,OAAS,KAAOt3K,EAAKu3K,OAAS,KAAOF,EAAU98L,EAAI,SAM9F,IAAIi9L,GAAoBpI,GAAuBlsK,OAAO,CAIpDmoK,gBAAiBv8H,GAASgjE,MAK1By5D,oBAAqB,CAAC,kBAAmB,cAAe,cAAe,uBAAwB,mBAAoB,mBAAoB,cAAe,YAAa,aAAc,YAKjLt+I,OAAQ,SAAU4hB,GAChB,IAAI3wC,EAAKniC,KAEL6sC,EADO1K,EAAGwtK,UACIv/L,KAElBukI,GAAU74F,KAAKjP,GAAQ,SAAUC,EAAO/kC,GACtCo6B,EAAG8uK,cAAcnkK,EAAO/kC,EAAO+qE,OAOnCm+H,cAAe,SAAUnkK,EAAO/kC,EAAO+qE,GACrC,IAAI3wC,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACVmC,EAAShlK,EAAMglK,QAAU,GACzBhjD,EAAS3sH,EAAGiuK,cAAc7tH,EAAKwtH,SAC/BhhD,EAAS5sH,EAAGiuK,cAAc7tH,EAAK0tH,SAE/B94L,EAAUgrB,EAAGuvK,2BAA2B5kK,EAAO/kC,GAE/CqI,EAAO+xB,EAAG0tK,aAAaz/L,KAAKrI,GAC5B2zM,EAAUv5K,EAAGp6B,MACb2L,EAAIo/D,EAAQg8E,EAAO6sD,mBAAmB,IAAO7sD,EAAOI,iBAAiC,kBAAT9+I,EAAoBA,EAAO84G,IAAKnhH,EAAO2zM,GACnHz+M,EAAI61E,EAAQi8E,EAAOnZ,eAAiBmZ,EAAOG,iBAAiB9+I,EAAMrI,EAAO2zM,GAC7E5uK,EAAMyoG,QAAUuZ,EAChBhiH,EAAM0oG,QAAUuZ,EAChBjiH,EAAMmpH,SAAW9+I,EACjB21B,EAAM+jK,cAAgB6K,EACtB5uK,EAAMsrG,OAASrwI,EACf+kC,EAAMsoG,OAAS,CACbj+D,gBAAiBhgE,EAAQggE,gBACzBg/D,YAAah/H,EAAQg/H,YACrBtB,YAAa19H,EAAQ09H,YACrBuhE,UAAWj/L,EAAQi/L,UACnBG,WAAYp/L,EAAQo/L,WACpBx9D,SAAU5hI,EAAQ4hI,SAClB1E,OAAQvhE,EAAQ,EAAI37D,EAAQk9H,OAC5B99E,KAAMu7I,EAAOv7I,MAAQp+C,MAAMzE,IAAMyE,MAAMlb,GACvCyW,EAAGA,EACHzW,EAAGA,GAEL6vC,EAAMqtJ,SAMRiY,cAAe,SAAUtlK,GACvB,IAAI80F,EAAQ90F,EAAMsoG,OACdj+H,EAAU21B,EAAMmpH,SAChBo8C,EAAgB19D,GAAU09D,cAC9BvlK,EAAMqlK,eAAiB,CACrBh7H,gBAAiByqD,EAAMzqD,gBACvBg/D,YAAavU,EAAMuU,YACnBtB,YAAajT,EAAMiT,YACnBR,OAAQzS,EAAMyS,QAEhBzS,EAAMzqD,gBAAkB+jI,GAAiB/jM,EAAQm7L,qBAAsBD,EAAcl7L,EAAQggE,kBAC7FyqD,EAAMuU,YAAc+kE,GAAiB/jM,EAAQo7L,iBAAkBF,EAAcl7L,EAAQg/H,cACrFvU,EAAMiT,YAAcqmE,GAAiB/jM,EAAQq7L,iBAAkBr7L,EAAQ09H,aACvEjT,EAAMyS,OAASl9H,EAAQk9H,OAASl9H,EAAQ+8L,aAM1CxC,2BAA4B,SAAU5kK,EAAO/kC,GAC3C,IAAIo6B,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXt+G,EAAU+H,EAAG0tK,aACbiC,EAAShlK,EAAMglK,QAAU,GACzB1hM,EAAOgqB,EAAQhqB,KAAKrI,IAAU,GAE9BgqC,EAASshK,GAAuBjyM,UAAUswM,2BAA2B7tM,MAAMs+B,EAAIr+B,WAG/EygB,EAAU,CACZm0H,MAAOA,EACP/9F,UAAW5yC,EACXqyB,QAASA,EACTokH,aAAcr8G,EAAGp6B,OASnB,OANIo6B,EAAGmvK,kBAAoBv/J,IACzBA,EAAS4iG,GAAUxtG,OAAO,GAAI4K,IAIhCA,EAAOsiG,OAAS8mE,GAAU,CAACrJ,EAAOz9D,OAAQjkI,EAAKoO,EAAG2jB,EAAGuoF,QAAQ2pB,OAAQqE,EAAMvhI,QAAQ47D,SAASjmC,MAAMunG,QAAS9vH,EAASxc,GAC7GgqC,KAGP6pK,GAAmBjnE,GAAUpD,eAC7BsqE,GAAOnjM,KAAKouC,GACZg1J,GAAqB,EAAPD,GACdE,GAAYF,GAAO,EAEvBpQ,EAAczvD,KAAK,WAAY,CAC7BgoB,UAAW,CAETg4C,eAAe,EAEfC,cAAc,GAEhBtK,MAAO,CACLpwL,KAAM,UAER26L,eAAgB,SAAUxjE,GACxB,IAIItxI,EAAG+pI,EAAMgrE,EAJT3pD,EAAOp7I,SAASwN,cAAc,MAC9BxU,EAAOsoI,EAAMtoI,KACb0rI,EAAW1rI,EAAK0rI,SAChB1wC,EAASh7F,EAAKg7F,OAIlB,GAFAonD,EAAK/uJ,aAAa,QAASi1I,EAAMtjG,GAAK,WAElC0mG,EAAS9zI,OACX,IAAKZ,EAAI,EAAG+pI,EAAO2K,EAAS,GAAG1rI,KAAKpI,OAAQZ,EAAI+pI,IAAQ/pI,GACtD+0M,EAAW3pD,EAAK5sI,YAAYxO,SAASwN,cAAc,QAC3BgB,YAAYxO,SAASwN,cAAc,SAC9CjU,MAAMwmE,gBAAkB2kE,EAAS,GAAG3kE,gBAAgB/vE,GAE7DgkG,EAAOhkG,IACT+0M,EAASv2L,YAAYxO,SAAS2zE,eAAeqgB,EAAOhkG,KAK1D,OAAOorJ,EAAKh1E,WAEd4+H,OAAQ,CACNhxG,OAAQ,CACNixG,eAAgB,SAAU3jE,GACxB,IAAItoI,EAAOsoI,EAAMtoI,KAEjB,OAAIA,EAAKg7F,OAAOpjG,QAAUoI,EAAK0rI,SAAS9zI,OAC/BoI,EAAKg7F,OAAOpiF,KAAI,SAAU3b,EAAOjG,GACtC,IAAIm7E,EAAOm2D,EAAMy3D,eAAe,GAC5Bx/L,EAAQ4xE,EAAKiwB,WAAWg/F,SAASpqM,GACrC,MAAO,CACL20C,KAAM1uC,EACNopI,UAAW9lI,EAAMwmE,gBACjBw/D,YAAahmI,EAAMwlI,YACnBS,UAAWjmI,EAAMkkI,YACjB37D,OAAQ/gE,MAAM/H,EAAK0rI,SAAS,GAAG1rI,KAAKhJ,KAAOm7E,EAAKnyE,KAAKhJ,GAAG8xE,OAExDnxE,MAAOX,MAKN,KAGXolD,QAAS,SAAU9xC,EAAG4hM,GACpB,IAEIl1M,EAAG+pI,EAAM5uD,EAFTx6E,EAAQu0M,EAAWv0M,MACnB2wI,EAAQ14I,KAAK04I,MAGjB,IAAKtxI,EAAI,EAAG+pI,GAAQuH,EAAMtoI,KAAK0rI,UAAY,IAAI9zI,OAAQZ,EAAI+pI,IAAQ/pI,GACjEm7E,EAAOm2D,EAAMy3D,eAAe/oM,IAEnBgJ,KAAKrI,KACZw6E,EAAKnyE,KAAKrI,GAAOmxE,QAAUqJ,EAAKnyE,KAAKrI,GAAOmxE,QAIhDw/D,EAAMxnF,WAIVqrJ,iBAAkB,GAElBxjE,UAAWgjE,GAEX/G,cAAe8G,GAEfV,SAAU,CACRC,UAAW,CACT/kL,MAAO,WACL,MAAO,IAETjpB,MAAO,SAAUmvM,EAAapsM,GAC5B,IAAIqsM,EAAYrsM,EAAKg7F,OAAOoxG,EAAYz0M,OACpCoI,EAAQ,KAAOC,EAAK0rI,SAAS0gE,EAAYh+D,cAAcpuI,KAAKosM,EAAYz0M,OAW5E,OATI4sI,GAAUjqG,QAAQ+xK,IAGpBA,EAAYA,EAAU70M,SACZ,IAAMuI,EAEhBssM,GAAatsM,EAGRssM,OAMf,IAAIC,GAAsBrJ,GAAuBlsK,OAAO,CACtDmoK,gBAAiBv8H,GAAS+iE,IAC1B25D,WAAY96D,GAAU0b,KAKtBm/C,oBAAqB,CAAC,kBAAmB,cAAe,cAAe,cAAe,uBAAwB,mBAAoB,oBAElImN,aAAc,SAAUn+D,GAGtB,IAFA,IAAIo+D,EAAY,EAEPhmM,EAAI,EAAGA,EAAI4nI,IAAgB5nI,EAC9B5W,KAAK04I,MAAM+F,iBAAiB7nI,MAC5BgmM,EAIN,OAAOA,GAET1rJ,OAAQ,SAAU4hB,GAChB,IAeIoxF,EAAUu1B,EAAWryL,EAAG+pI,EAfxBhvG,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXC,EAAYD,EAAMC,UAClBz/H,EAAOw/H,EAAMvhI,QACb0lM,EAAS,EACTC,EAAS,EACTC,EAAU,EACVC,EAAU,EACVz6H,EAAOpgD,EAAGwtK,UACVsN,EAAO16H,EAAKnyE,KACZ8sM,EAAShkM,EAAKqjM,iBAAmB,KAAO,EACxCvH,EAAgB97L,EAAK87L,cAErBmI,EAAch7K,EAAGi7K,eAAej7K,EAAGp6B,OAIvC,GAAIitM,EAAgB8G,GAAa,CAC/B,IAAI9nE,EAAa96H,EAAK6/H,SAAW+iE,GAE7B7nE,GADJD,GAAcA,GAAc6nE,IAAQC,GAAc9nE,GAAc6nE,GAAOC,GAAc,GACzD9G,EACxBvwJ,EAAS/rC,KAAKi6H,IAAIqB,GAClBtvF,EAAShsC,KAAKk6H,IAAIoB,GAClBqpE,EAAO3kM,KAAKi6H,IAAIsB,GAChBqpE,EAAO5kM,KAAKk6H,IAAIqB,GAChBspE,EAAYvpE,GAAc,GAAKC,GAAY,GAAKA,GAAY6nE,GAC5D0B,EAAaxpE,GAAc+nE,IAAa9nE,GAAY8nE,IAAa9nE,GAAY6nE,GAAcC,GAE3F0B,EAAczpE,IAAe+nE,IAAa9nE,IAAa8nE,IAAa9nE,GAAY4nE,GAAOE,GACvF2B,EAFc1pE,KAAgB6nE,IAAQ5nE,GAAY4nE,IAE5B,EAAInjM,KAAKkS,IAAI65B,EAAQA,EAASy4J,EAAQG,EAAMA,EAAOH,GACzES,EAAOF,GAAe,EAAI/kM,KAAKkS,IAAI85B,EAAQA,EAASw4J,EAAQI,EAAMA,EAAOJ,GACzEU,EAAOL,EAAY,EAAI7kM,KAAKmS,IAAI45B,EAAQA,EAASy4J,EAAQG,EAAMA,EAAOH,GACtEW,EAAOL,EAAa,EAAI9kM,KAAKmS,IAAI65B,EAAQA,EAASw4J,EAAQI,EAAMA,EAAOJ,GAC3EL,GAAUe,EAAOF,GAAQ,EACzBZ,GAAUe,EAAOF,GAAQ,EACzBZ,IAAYa,EAAOF,GAAQ,EAC3BV,IAAYa,EAAOF,GAAQ,EAG7B,IAAKv2M,EAAI,EAAG+pI,EAAO8rE,EAAKj1M,OAAQZ,EAAI+pI,IAAQ/pI,EAC1C61M,EAAK71M,GAAG6uJ,SAAW9zH,EAAGuvK,2BAA2BuL,EAAK71M,GAAIA,GAe5D,IAZAsxI,EAAM7D,YAAc1yG,EAAG27K,oBACvB55C,GAAYvrB,EAAUp8G,MAAQo8G,EAAU7kI,KAAO4kI,EAAM7D,aAAegoE,EACpEpjB,GAAa9gD,EAAU18G,OAAS08G,EAAUvpI,IAAMspI,EAAM7D,aAAeioE,EACrEpkE,EAAMvE,YAAcz7H,KAAKmS,IAAInS,KAAKkS,IAAIs5I,EAAUu1B,GAAa,EAAG,GAChE/gD,EAAMxE,YAAcx7H,KAAKmS,IAAI6tH,EAAMvE,YAAc+oE,EAAQ,GACzDxkE,EAAMqlE,cAAgBrlE,EAAMvE,YAAcuE,EAAMxE,cAAgB/xG,EAAG67K,iCAAmC,GACtGtlE,EAAMqkE,QAAUA,EAAUrkE,EAAMvE,YAChCuE,EAAMskE,QAAUA,EAAUtkE,EAAMvE,YAChC5xD,EAAKt2C,MAAQ9J,EAAG87K,iBAChB97K,EAAGgyG,YAAcuE,EAAMvE,YAAcuE,EAAMqlE,aAAe57K,EAAG+7K,qBAAqB/7K,EAAGp6B,OACrFo6B,EAAG+xG,YAAcx7H,KAAKmS,IAAIsX,EAAGgyG,YAAcuE,EAAMqlE,aAAeZ,EAAa,GAExE/1M,EAAI,EAAG+pI,EAAO8rE,EAAKj1M,OAAQZ,EAAI+pI,IAAQ/pI,EAC1C+6B,EAAG8uK,cAAcgM,EAAK71M,GAAIA,EAAG0rE,IAGjCm+H,cAAe,SAAUp9D,EAAK9rI,EAAO+qE,GACnC,IAAI3wC,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXC,EAAYD,EAAMC,UAClBz/H,EAAOw/H,EAAMvhI,QACbgnM,EAAgBjlM,EAAK8qJ,UACrBo6C,GAAWzlE,EAAU7kI,KAAO6kI,EAAUp8G,OAAS,EAC/C8hL,GAAW1lE,EAAUvpI,IAAMupI,EAAU18G,QAAU,EAC/C+3G,EAAa96H,EAAK6/H,SAElB9E,EAAW/6H,EAAK6/H,SAEhB3+G,EAAU+H,EAAG0tK,aACbmF,EAAgBliI,GAASqrI,EAAcnC,eAAoBnoE,EAAI36D,OAAR,EAAqB/2C,EAAGm8K,uBAAuBlkL,EAAQhqB,KAAKrI,KAAWmR,EAAK87L,cAAgB8G,IACnJ5nE,EAAcphE,GAASqrI,EAAclC,aAAe,EAAI95K,EAAG+xG,YAC3DC,EAAcrhE,GAASqrI,EAAclC,aAAe,EAAI95K,EAAGgyG,YAC3Dh9H,EAAU08H,EAAIoiB,UAAY,GAC9BthB,GAAUxtG,OAAO0sG,EAAK,CAEpBg9D,cAAe1uK,EAAGp6B,MAClBqwI,OAAQrwI,EAERqtI,OAAQ,CACNj+D,gBAAiBhgE,EAAQggE,gBACzBg/D,YAAah/H,EAAQg/H,YACrBtB,YAAa19H,EAAQ09H,YACrBi/D,YAAa38L,EAAQ28L,YACrBpgM,EAAG0qM,EAAU1lE,EAAMqkE,QACnB9/M,EAAGohN,EAAU3lE,EAAMskE,QACnBhpE,WAAYA,EACZC,SAAUA,EACV+gE,cAAeA,EACf7gE,YAAaA,EACbD,YAAaA,EACb7mI,MAAOsnI,GAAUoxD,sBAAsB3rK,EAAQ/sB,MAAOtF,EAAO2wI,EAAMtoI,KAAKg7F,OAAOrjG,OAGnF,IAAI65H,EAAQiS,EAAIuB,OAEXtiE,GAAUqrI,EAAcnC,gBAEzBp6E,EAAMoS,WADM,IAAVjsI,EACiBmR,EAAK6/H,SAEL52G,EAAGwtK,UAAUv/L,KAAKrI,EAAQ,GAAGqtI,OAAOnB,SAGzDrS,EAAMqS,SAAWrS,EAAMoS,WAAapS,EAAMozE,eAG5CnhE,EAAIsmD,SAEN8jB,eAAgB,WACd,IAGI9tM,EAHAiqB,EAAUp6B,KAAK6vM,aACfttH,EAAOviF,KAAK2vM,UACZ1jK,EAAQ,EAaZ,OAXA0oG,GAAU74F,KAAKymC,EAAKnyE,MAAM,SAAU2M,EAAShV,GAC3CoI,EAAQiqB,EAAQhqB,KAAKrI,GAEhBoQ,MAAMhI,IAAW4M,EAAQm8D,SAC5BjtC,GAASvzB,KAAKC,IAAIxI,OAOf87B,GAETqyK,uBAAwB,SAAUnuM,GAChC,IAAI87B,EAAQjsC,KAAK2vM,UAAU1jK,MAE3B,OAAIA,EAAQ,IAAM9zB,MAAMhI,GACf2rM,IAAepjM,KAAKC,IAAIxI,GAAS87B,GAGnC,GAGT6xK,kBAAmB,SAAUb,GAC3B,IAGI71M,EAAG+pI,EAAM5uD,EAAMsxD,EAAKrhC,EAAYr7F,EAAS09H,EAAa0pE,EAHtDp8K,EAAKniC,KACL6qB,EAAM,EACN6tH,EAAQv2G,EAAGu2G,MAGf,IAAKukE,EAEH,IAAK71M,EAAI,EAAG+pI,EAAOuH,EAAMtoI,KAAK0rI,SAAS9zI,OAAQZ,EAAI+pI,IAAQ/pI,EACzD,GAAIsxI,EAAM+F,iBAAiBr3I,GAAI,CAE7B61M,GADA16H,EAAOm2D,EAAMy3D,eAAe/oM,IAChBgJ,KAERhJ,IAAM+6B,EAAGp6B,QACXyqG,EAAajwB,EAAKiwB,YAGpB,MAKN,IAAKyqG,EACH,OAAO,EAGT,IAAK71M,EAAI,EAAG+pI,EAAO8rE,EAAKj1M,OAAQZ,EAAI+pI,IAAQ/pI,EAC1CysI,EAAMopE,EAAK71M,GAEPorG,GACFA,EAAW6+F,aAEXl6L,EAAUq7F,EAAWk/F,2BAA2B79D,EAAKzsI,IAErD+P,EAAU08H,EAAIoiB,SAGY,UAAxB9+I,EAAQ28L,cACVj/D,EAAc19H,EAAQ09H,YAGtBhqH,GAFA0zL,EAAapnM,EAAQq7L,mBACrB3nL,EAAMgqH,EAAchqH,EAAMgqH,EAAchqH,GACf0zL,EAAa1zL,GAI1C,OAAOA,GAMTunL,cAAe,SAAUv+D,GACvB,IAAIjS,EAAQiS,EAAIuB,OACZj+H,EAAU08H,EAAIoiB,SACdo8C,EAAgB19D,GAAU09D,cAC9Bx+D,EAAIs+D,eAAiB,CACnBh7H,gBAAiByqD,EAAMzqD,gBACvBg/D,YAAavU,EAAMuU,YACnBtB,YAAajT,EAAMiT,aAErBjT,EAAMzqD,gBAAkBykI,GAAiBzkM,EAAQm7L,qBAAsBD,EAAcl7L,EAAQggE,kBAC7FyqD,EAAMuU,YAAcylE,GAAiBzkM,EAAQo7L,iBAAkBF,EAAcl7L,EAAQg/H,cACrFvU,EAAMiT,YAAc+mE,GAAiBzkM,EAAQq7L,iBAAkBr7L,EAAQ09H,cAOzEqpE,qBAAsB,SAAU1/D,GAG9B,IAFA,IAAIggE,EAAmB,EAEdp3M,EAAI,EAAGA,EAAIo3I,IAAgBp3I,EAC9BpH,KAAK04I,MAAM+F,iBAAiBr3I,KAC9Bo3M,GAAoBx+M,KAAKo9M,eAAeh2M,IAI5C,OAAOo3M,GAMTpB,eAAgB,SAAUqB,GACxB,OAAO/lM,KAAKmS,IAAI+wL,GAAiB57M,KAAK04I,MAAMtoI,KAAK0rI,SAAS2iE,GAAcztE,OAAQ,GAAI,IAOtFgtE,8BAA+B,WAC7B,OAAOh+M,KAAKk+M,qBAAqBl+M,KAAK04I,MAAMtoI,KAAK0rI,SAAS9zI,WAI9DyjM,EAAczvD,KAAK,gBAAiB,CAClC21D,MAAO,CACLpwL,KAAM,QACNq8B,KAAM,KAERoxG,OAAQ,CACNghD,MAAO,CAAC,CACNh8L,KAAM,SACNwO,SAAU,WAEZ0tL,MAAO,CAAC,CACNl8L,KAAM,WACNwO,SAAU,OACVuR,QAAQ,EACRklL,UAAW,CACTC,iBAAiB,MAIvBnmI,SAAU,CACR6kI,UAAW,CACTT,cAAe,SAGnBiE,SAAU,CACR75L,KAAM,QACNq8B,KAAM,OAIV6tJ,EAAczvD,KAAK,SAAU,CAC3BF,SAAU,CACR4iE,cAAe,CACb9F,mBAAoB,GACpBC,cAAe,OAKrB,IAAI8F,GAA2BvF,GAAejyK,OAAO,CAInDmpK,iBAAkB,WAChB,OAAOtwM,KAAK2vM,UAAUI,SAMxBQ,iBAAkB,WAChB,OAAOvwM,KAAK2vM,UAAUM,WAGtB2O,GAAmBjqE,GAAUpD,eAC7BstE,GAAYlqE,GAAUx9H,QAAQyrD,QAC9Bk8I,GAAgBnqE,GAAU0B,OAAOi0D,eAoBrC,SAASyU,GAAU1pE,EAAO2pE,GACxB,IAAIC,EAAW5pE,GAASA,EAAMl+H,QAAQ+nM,OAAS,GAC3CpxK,EAAUmxK,EAASnxK,QACnBljB,OAAuB5jB,IAAjBi4M,EAASr0L,IAAoBo0L,EAAkB,EACrDn0L,OAAuB7jB,IAAjBi4M,EAASp0L,IAAoBm0L,EAAkB,EACzD,MAAO,CACLx8K,MAAOsL,EAAUjjB,EAAMD,EACvBwvC,IAAKtsB,EAAUljB,EAAMC,GAIzB,SAASs0L,GAAYrwD,EAAQC,EAAQla,GACnC,IAAImqE,EAAkBnqE,EAAc,EAChCnhI,EAAIqrM,GAAUjwD,EAAQkwD,GACtB/hN,EAAI8hN,GAAUhwD,EAAQiwD,GAC1B,MAAO,CACL5vM,IAAKnS,EAAEm9D,IACP79B,MAAO7oB,EAAE0mD,IACTn+B,OAAQh/B,EAAEulC,MACV1uB,KAAMJ,EAAE8uB,OAIZ,SAAS48K,GAAOjvM,GACd,IAAIiO,EAAGI,EAAGlhB,EAAGuqB,EAWb,OATI8sH,GAAUv7H,SAASjJ,IACrBiO,EAAIjO,EAAMf,IACVoP,EAAIrO,EAAMosB,MACVj/B,EAAI6S,EAAM8rB,OACVpU,EAAI1X,EAAM2D,MAEVsK,EAAII,EAAIlhB,EAAIuqB,EAAI1X,EAGX,CACLf,IAAKgP,EACLme,MAAO/d,EACPyd,OAAQ3+B,EACRwW,KAAM+T,GAzDV4jL,EAAczvD,KAAK,OAAQ,CACzBwvD,WAAW,EACXiK,UAAU,EACV9D,MAAO,CACLpwL,KAAM,SAERytI,OAAQ,CACNghD,MAAO,CAAC,CACNh8L,KAAM,WACNohC,GAAI,aAEN86J,MAAO,CAAC,CACNl8L,KAAM,SACNohC,GAAI,gBAgDV,IAAIiqK,GAAkBhM,GAAuBlsK,OAAO,CAClDkoK,mBAAoBt8H,GAASglI,KAC7BzI,gBAAiBv8H,GAASgjE,MAK1Bw5D,uBAAwB,CAAC,kBAAmB,iBAAkB,cAAe,aAAc,mBAAoB,kBAAmB,cAAe,yBAA0B,QAK3KC,oBAAqB,CACnBr4H,gBAAiB,uBACjBg/D,YAAa,mBACbtB,YAAa,mBACbuhE,UAAW,iBACX9D,qBAAsB,4BACtBC,iBAAkB,wBAClBC,iBAAkB,wBAClB0B,YAAa,mBACbqC,WAAY,aACZliE,OAAQ,cACR0E,SAAU,iBAEZ7nF,OAAQ,SAAU4hB,GAChB,IAOI1rE,EAAG+pI,EAPHhvG,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACV/vD,EAAOr9D,EAAKnoD,QACZyS,EAAS01C,EAAKnyE,MAAQ,GACtB+G,EAAUgrB,EAAGu2G,MAAMvhI,QACnBmG,EAAS6kB,EAAGuoF,QACZ40F,EAAWn9K,EAAGo9K,UAAYX,GAAiBthM,EAAOgiM,SAAUnoM,EAAQq0L,WAsBxE,IApBArpK,EAAGozG,QAAUpzG,EAAGiuK,cAAc7tH,EAAKwtH,SACnC5tK,EAAGqzG,QAAUrzG,EAAGiuK,cAAc7tH,EAAK0tH,SAE/BqP,SAEqBt4M,IAAnBsW,EAAOwtL,cAAgD9jM,IAAvBsW,EAAOkiM,cACzCliM,EAAOkiM,YAAcliM,EAAOwtL,SAI9BlrD,EAAKtK,OAASnzG,EAAGqzG,QACjBoK,EAAKixD,cAAgB1uK,EAAGp6B,MAExB63I,EAAK81D,UAAY7oK,EAEjB+yG,EAAKxK,OAASjzG,EAAGsvK,8BAA8B7xD,GAC/CA,EAAKu6C,SAIF/yL,EAAI,EAAG+pI,EAAOtkG,EAAO7kC,OAAQZ,EAAI+pI,IAAQ/pI,EAC5C+6B,EAAG8uK,cAAcpkK,EAAOzlC,GAAIA,EAAG0rE,GAQjC,IALIwsI,GAAoC,IAAxB1/D,EAAKxK,OAAO01D,SAC1B3oK,EAAGs9K,4BAIAr4M,EAAI,EAAG+pI,EAAOtkG,EAAO7kC,OAAQZ,EAAI+pI,IAAQ/pI,EAC5CylC,EAAOzlC,GAAG+yL,SAGd8W,cAAe,SAAUnkK,EAAO/kC,EAAO+qE,GACrC,IASIp/D,EAAGzW,EATHklC,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACVmC,EAAShlK,EAAMglK,QAAU,GACzB13K,EAAU+H,EAAG0tK,aACbrxD,EAAer8G,EAAGp6B,MAClBoI,EAAQiqB,EAAQhqB,KAAKrI,GACrB+mJ,EAAS3sH,EAAGozG,QACZwZ,EAAS5sH,EAAGqzG,QACZkqE,EAAYn9H,EAAKnoD,QAAQg7G,OAGzBj+H,EAAUgrB,EAAGuvK,2BAA2B5kK,EAAO/kC,GAEnD2L,EAAIo7I,EAAOI,iBAAkC,kBAAV/+I,EAAqBA,EAAQ+4G,IAAKnhH,EAAOy2I,GAC5EvhJ,EAAI61E,EAAQi8E,EAAOnZ,eAAiBzzG,EAAGw9K,gBAAgBxvM,EAAOpI,EAAOy2I,GAErE1xG,EAAMyoG,QAAUuZ,EAChBhiH,EAAM0oG,QAAUuZ,EAChBjiH,EAAMmpH,SAAW9+I,EACjB21B,EAAM+jK,cAAgBryD,EACtB1xG,EAAMsrG,OAASrwI,EAEf+kC,EAAMsoG,OAAS,CACb1hI,EAAGA,EACHzW,EAAGA,EACHs5D,KAAMu7I,EAAOv7I,MAAQp+C,MAAMzE,IAAMyE,MAAMlb,GAEvCo3I,OAAQl9H,EAAQk9H,OAChBkiE,WAAYp/L,EAAQo/L,WACpBx9D,SAAU5hI,EAAQ4hI,SAClB5hE,gBAAiBhgE,EAAQggE,gBACzBg/D,YAAah/H,EAAQg/H,YACrBtB,YAAa19H,EAAQ09H,YACrBi2D,QAAS8T,GAAiB9M,EAAOhH,QAAS4U,EAAYA,EAAU5U,QAAU,GAC1EF,cAAa8U,GAAYA,EAAU9U,YAEnCwL,UAAWj/L,EAAQi/L,YAOvB3E,8BAA+B,SAAU10L,GACvC,IAAIolB,EAAKniC,KACLsd,EAAS6kB,EAAGuoF,QACZonF,EAAS/0L,EAAQ+0L,QAAU,GAC3B36L,EAAUgrB,EAAGu2G,MAAMvhI,QACnByoM,EAAczoM,EAAQ47D,SAAS6sE,KAE/B7tG,EAASshK,GAAuBjyM,UAAUqwM,8BAA8B5tM,MAAMs+B,EAAIr+B,WAStF,OAJAiuC,EAAO0jK,SAAWmJ,GAAiBthM,EAAOm4L,SAAUt+L,EAAQs+L,UAC5D1jK,EAAO+4J,QAAU8T,GAAiBthM,EAAOkiM,YAAaI,EAAY9U,SAClE/4J,EAAO64J,YAAciU,GAAU,CAAC/M,EAAOlH,YAAattL,EAAOstL,YAAagV,EAAYjV,UACpF54J,EAAO6mG,KAAOwmE,GAAOR,GAAiBthM,EAAOs7H,KAAMumE,GAAYh9K,EAAGozG,QAASpzG,EAAGqzG,QAASzjG,EAAO8iG,eACvF9iG,GAET4tK,gBAAiB,SAAUxvM,EAAOpI,EAAOy2I,GACvC,IAKIp3I,EAAG4mJ,EAAI6xD,EAAQC,EAAmBC,EAAY5F,EAAUhpE,EALxDhvG,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXqW,EAAS5sH,EAAGqzG,QACZwqE,EAAS,EACTC,EAAS,EAGb,GAAIlxD,EAAO53I,QAAQkjM,QAAS,CAK1B,IAJA0F,GAAchxD,EAAOmxD,cAAc/vM,GAEnCghI,GADAgpE,EAAWzhE,EAAMynE,iCACDn4M,OAEXZ,EAAI,EAAGA,EAAI+pI,IACd0uE,EAAS1F,EAAS/yM,IAEPW,QAAUy2I,IAHCp3I,EAOtB4mJ,EAAKtV,EAAMtoI,KAAK0rI,SAAS+jE,EAAO93M,OAEZ,SAAhB83M,EAAO7rM,MAAmB6rM,EAAO5P,UAAYlhD,EAAO35G,MACtD0qK,GAAqB/wD,EAAOmxD,cAAclyD,EAAG59I,KAAKrI,KAE1B,EACtBk4M,GAAUH,GAAqB,EAE/BE,GAAUF,GAAqB,GAKrC,OAAIC,EAAa,EACRhxD,EAAOG,iBAAiB+wD,EAASF,GAGnChxD,EAAOG,iBAAiB8wD,EAASD,GAG1C,OAAOhxD,EAAOG,iBAAiB/+I,IAEjCsvM,0BAA2B,WACzB,IAMIr4M,EAAG+pI,EAAMvP,EAAOw+E,EANhBj+K,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXn2D,EAAOpgD,EAAGwtK,UACV+P,EAAYn9H,EAAKnoD,QAAQg7G,OACzB9B,EAAOoF,EAAMC,UACb9rG,EAAS01C,EAAKnyE,MAAQ,GAS1B,SAASiwM,EAAgBnmE,EAAItvH,EAAKC,GAChC,OAAOnS,KAAKmS,IAAInS,KAAKkS,IAAIsvH,EAAIrvH,GAAMD,GAGrC,GAVI80L,EAAUjK,WACZ5oK,EAASA,EAAO9T,QAAO,SAAUmhH,GAC/B,OAAQA,EAAG9E,OAAO7+E,SAQmB,aAArCmpJ,EAAUY,uBACZ3rE,GAAU4rE,oBAAoB1zK,QAE9B,IAAKzlC,EAAI,EAAG+pI,EAAOtkG,EAAO7kC,OAAQZ,EAAI+pI,IAAQ/pI,EAC5Cw6H,EAAQ/0F,EAAOzlC,GAAGguI,OAClBgrE,EAAgBzrE,GAAU6rE,YAAY7rE,GAAUkhE,aAAahpK,EAAQzlC,GAAGguI,OAAQxT,EAAO+S,GAAU8rE,SAAS5zK,EAAQzlC,GAAGguI,OAAQsqE,EAAU5U,SACvIlpE,EAAMopE,sBAAwBoV,EAAc/iE,SAAS3pI,EACrDkuH,EAAMspE,sBAAwBkV,EAAc/iE,SAASpgJ,EACrD2kI,EAAMqpE,kBAAoBmV,EAActvK,KAAKp9B,EAC7CkuH,EAAMupE,kBAAoBiV,EAActvK,KAAK7zC,EAIjD,GAAIy7I,EAAMvhI,QAAQ47D,SAAS6sE,KAAK01D,gBAC9B,IAAKluM,EAAI,EAAG+pI,EAAOtkG,EAAO7kC,OAAQZ,EAAI+pI,IAAQ/pI,EAC5Cw6H,EAAQ/0F,EAAOzlC,GAAGguI,OAEd0pE,GAAcl9E,EAAO0R,KACnBlsI,EAAI,GAAK03M,GAAcjyK,EAAOzlC,EAAI,GAAGguI,OAAQ9B,KAC/C1R,EAAMopE,sBAAwBqV,EAAgBz+E,EAAMopE,sBAAuB13D,EAAKx/H,KAAMw/H,EAAK/2G,OAC3FqlG,EAAMspE,sBAAwBmV,EAAgBz+E,EAAMspE,sBAAuB53D,EAAKlkI,IAAKkkI,EAAKr3G,SAGxF70B,EAAIylC,EAAO7kC,OAAS,GAAK82M,GAAcjyK,EAAOzlC,EAAI,GAAGguI,OAAQ9B,KAC/D1R,EAAMqpE,kBAAoBoV,EAAgBz+E,EAAMqpE,kBAAmB33D,EAAKx/H,KAAMw/H,EAAK/2G,OACnFqlG,EAAMupE,kBAAoBkV,EAAgBz+E,EAAMupE,kBAAmB73D,EAAKlkI,IAAKkkI,EAAKr3G,WAM5Fk9G,KAAM,WACJ,IAQIP,EARAz2G,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXn2D,EAAOpgD,EAAGwtK,UACV9iK,EAAS01C,EAAKnyE,MAAQ,GACtBkjI,EAAOoF,EAAMC,UACbtC,EAASqC,EAAMrC,OACfjvI,EAAI,EACJ+pI,EAAOtkG,EAAO7kC,OAgBlB,IAbIm6B,EAAGo9K,YACL3mE,EAAOr2D,EAAKnoD,QAAQg7G,OAAOwD,KAC3BjE,GAAU0B,OAAOm0D,SAAS9xD,EAAMxH,IAAK,CACnCp9H,MAAoB,IAAd8kI,EAAK9kI,KAAiB,EAAIw/H,EAAKx/H,KAAO8kI,EAAK9kI,KACjDyoB,OAAsB,IAAfq8G,EAAKr8G,MAAkB85G,EAAO7oH,MAAQ8lH,EAAK/2G,MAAQq8G,EAAKr8G,MAC/DntB,KAAkB,IAAbwpI,EAAKxpI,IAAgB,EAAIkkI,EAAKlkI,IAAMwpI,EAAKxpI,IAC9C6sB,QAAwB,IAAhB28G,EAAK38G,OAAmBo6G,EAAOlnI,OAASmkI,EAAKr3G,OAAS28G,EAAK38G,SAErEsmD,EAAKnoD,QAAQ++G,OACbxE,GAAU0B,OAAOo0D,WAAW/xD,EAAMxH,MAI7B9pI,EAAI+pI,IAAQ/pI,EACjBylC,EAAOzlC,GAAG+xI,KAAK7F,IAOnB8+D,cAAe,SAAUtlK,GACvB,IAAI80F,EAAQ90F,EAAMsoG,OACdj+H,EAAU21B,EAAMmpH,SAChBo8C,EAAgB19D,GAAU09D,cAC9BvlK,EAAMqlK,eAAiB,CACrBh7H,gBAAiByqD,EAAMzqD,gBACvBg/D,YAAavU,EAAMuU,YACnBtB,YAAajT,EAAMiT,YACnBR,OAAQzS,EAAMyS,QAEhBzS,EAAMzqD,gBAAkBynI,GAAiBznM,EAAQm7L,qBAAsBD,EAAcl7L,EAAQggE,kBAC7FyqD,EAAMuU,YAAcyoE,GAAiBznM,EAAQo7L,iBAAkBF,EAAcl7L,EAAQg/H,cACrFvU,EAAMiT,YAAc+pE,GAAiBznM,EAAQq7L,iBAAkBr7L,EAAQ09H,aACvEjT,EAAMyS,OAASuqE,GAAiBznM,EAAQ+8L,YAAa/8L,EAAQk9H,WAG7DqsE,GAAY/rE,GAAUx9H,QAAQyrD,QAElC6oI,EAAczvD,KAAK,YAAa,CAC9B3G,MAAO,CACLrhI,KAAM,eACN2sM,WAAY,CACVxzL,SAAS,GAEX8rL,UAAW,CACT2H,UAAU,GAEZC,YAAa,CACX1zL,SAAS,GAEX+xL,MAAO,CACL4B,aAAa,IAIjB98C,UAAW,CACTg4C,eAAe,EACfC,cAAc,GAEhBjoE,YAAa,GAAMt7H,KAAKouC,GACxBo1J,eAAgB,SAAUxjE,GACxB,IAIItxI,EAAG+pI,EAAMgrE,EAJT3pD,EAAOp7I,SAASwN,cAAc,MAC9BxU,EAAOsoI,EAAMtoI,KACb0rI,EAAW1rI,EAAK0rI,SAChB1wC,EAASh7F,EAAKg7F,OAIlB,GAFAonD,EAAK/uJ,aAAa,QAASi1I,EAAMtjG,GAAK,WAElC0mG,EAAS9zI,OACX,IAAKZ,EAAI,EAAG+pI,EAAO2K,EAAS,GAAG1rI,KAAKpI,OAAQZ,EAAI+pI,IAAQ/pI,GACtD+0M,EAAW3pD,EAAK5sI,YAAYxO,SAASwN,cAAc,QAC3BgB,YAAYxO,SAASwN,cAAc,SAC9CjU,MAAMwmE,gBAAkB2kE,EAAS,GAAG3kE,gBAAgB/vE,GAE7DgkG,EAAOhkG,IACT+0M,EAASv2L,YAAYxO,SAAS2zE,eAAeqgB,EAAOhkG,KAK1D,OAAOorJ,EAAKh1E,WAEd4+H,OAAQ,CACNhxG,OAAQ,CACNixG,eAAgB,SAAU3jE,GACxB,IAAItoI,EAAOsoI,EAAMtoI,KAEjB,OAAIA,EAAKg7F,OAAOpjG,QAAUoI,EAAK0rI,SAAS9zI,OAC/BoI,EAAKg7F,OAAOpiF,KAAI,SAAU3b,EAAOjG,GACtC,IAAIm7E,EAAOm2D,EAAMy3D,eAAe,GAC5Bx/L,EAAQ4xE,EAAKiwB,WAAWg/F,SAASpqM,GACrC,MAAO,CACL20C,KAAM1uC,EACNopI,UAAW9lI,EAAMwmE,gBACjBw/D,YAAahmI,EAAMwlI,YACnBS,UAAWjmI,EAAMkkI,YACjB37D,OAAQ/gE,MAAM/H,EAAK0rI,SAAS,GAAG1rI,KAAKhJ,KAAOm7E,EAAKnyE,KAAKhJ,GAAG8xE,OAExDnxE,MAAOX,MAKN,KAGXolD,QAAS,SAAU9xC,EAAG4hM,GACpB,IAEIl1M,EAAG+pI,EAAM5uD,EAFTx6E,EAAQu0M,EAAWv0M,MACnB2wI,EAAQ14I,KAAK04I,MAGjB,IAAKtxI,EAAI,EAAG+pI,GAAQuH,EAAMtoI,KAAK0rI,UAAY,IAAI9zI,OAAQZ,EAAI+pI,IAAQ/pI,GACjEm7E,EAAOm2D,EAAMy3D,eAAe/oM,IACvBgJ,KAAKrI,GAAOmxE,QAAUqJ,EAAKnyE,KAAKrI,GAAOmxE,OAG9Cw/D,EAAMxnF,WAIVkqJ,SAAU,CACRC,UAAW,CACT/kL,MAAO,WACL,MAAO,IAETjpB,MAAO,SAAU42B,EAAM7zB,GACrB,OAAOA,EAAKg7F,OAAOnnE,EAAKl8B,OAAS,KAAOk8B,EAAKu3K,YAMrD,IAAIuF,GAAuB1N,GAAuBlsK,OAAO,CACvDmoK,gBAAiBv8H,GAAS+iE,IAC1B25D,WAAY96D,GAAU0b,KAKtBm/C,oBAAqB,CAAC,kBAAmB,cAAe,cAAe,cAAe,uBAAwB,mBAAoB,oBAKlIe,iBAAkB,WAChB,OAAOvwM,KAAK04I,MAAMrD,MAAMjgG,IAM1Bk7J,iBAAkB,WAChB,OAAOtwM,KAAK04I,MAAMrD,MAAMjgG,IAE1B8b,OAAQ,SAAU4hB,GAChB,IAOI1rE,EAAG+pI,EAAM4C,EAPT5xG,EAAKniC,KACLo6B,EAAU+H,EAAG0tK,aACbttH,EAAOpgD,EAAGwtK,UACVntK,EAAQL,EAAGu2G,MAAMvhI,QAAQ68H,YAAc,EACvCgtE,EAAS7+K,EAAG8+K,QAAU,GACtBC,EAAS/+K,EAAGg/K,QAAU,GACtBlE,EAAO16H,EAAKnyE,KAOhB,IAJA+xB,EAAGi/K,gBAEH7+H,EAAKwwH,MAAQ5wK,EAAGk/K,uBAEXj6M,EAAI,EAAG+pI,EAAO/2G,EAAQhqB,KAAKpI,OAAQZ,EAAI+pI,EAAM/pI,IAChD45M,EAAO55M,GAAKo7B,EACZuxG,EAAQ5xG,EAAGm/K,cAAcl6M,GACzB85M,EAAO95M,GAAK2sI,EACZvxG,GAASuxG,EAGX,IAAK3sI,EAAI,EAAG+pI,EAAO8rE,EAAKj1M,OAAQZ,EAAI+pI,IAAQ/pI,EAC1C61M,EAAK71M,GAAG6uJ,SAAW9zH,EAAGuvK,2BAA2BuL,EAAK71M,GAAIA,GAC1D+6B,EAAG8uK,cAAcgM,EAAK71M,GAAIA,EAAG0rE,IAOjCsuI,cAAe,WACb,IAAIj/K,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXC,EAAYD,EAAMC,UAClBz/H,EAAOw/H,EAAMvhI,QACboqM,EAAU7oM,KAAKkS,IAAI+tH,EAAUp8G,MAAQo8G,EAAU7kI,KAAM6kI,EAAU18G,OAAS08G,EAAUvpI,KACtFspI,EAAMvE,YAAcz7H,KAAKmS,IAAI02L,EAAU,EAAG,GAC1C7oE,EAAMxE,YAAcx7H,KAAKmS,IAAI3R,EAAKqjM,iBAAmB7jE,EAAMvE,YAAc,IAAMj7H,EAAKqjM,iBAAmB,EAAG,GAC1G7jE,EAAMqlE,cAAgBrlE,EAAMvE,YAAcuE,EAAMxE,aAAewE,EAAM8oE,yBACrEr/K,EAAGgyG,YAAcuE,EAAMvE,YAAcuE,EAAMqlE,aAAe57K,EAAGp6B,MAC7Do6B,EAAG+xG,YAAc/xG,EAAGgyG,YAAcuE,EAAMqlE,cAE1C9M,cAAe,SAAUp9D,EAAK9rI,EAAO+qE,GACnC,IAAI3wC,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXt+G,EAAU+H,EAAG0tK,aACb32L,EAAOw/H,EAAMvhI,QACbgnM,EAAgBjlM,EAAK8qJ,UACrB3uB,EAAQqD,EAAMrD,MACdjqC,EAASstC,EAAMtoI,KAAKg7F,OACpBgzG,EAAU/oE,EAAMI,QAChB4oE,EAAUhpE,EAAMK,QAEhB+rE,EAAoBvoM,EAAK86H,WACzBzqF,EAAWsqF,EAAI36D,OAAS,EAAIm8D,EAAMqsE,8BAA8BtnL,EAAQhqB,KAAKrI,IAC7EisI,EAAa7xG,EAAG8+K,QAAQl5M,GACxBksI,EAAWD,GAAcH,EAAI36D,OAAS,EAAI/2C,EAAGg/K,QAAQp5M,IACrD45M,EAAcxD,EAAclC,aAAe,EAAI5mE,EAAMqsE,8BAA8BtnL,EAAQhqB,KAAKrI,IAChGoP,EAAU08H,EAAIoiB,UAAY,GAC9BthB,GAAUxtG,OAAO0sG,EAAK,CAEpBg9D,cAAe1uK,EAAGp6B,MAClBqwI,OAAQrwI,EACRutI,OAAQD,EAERD,OAAQ,CACNj+D,gBAAiBhgE,EAAQggE,gBACzBg/D,YAAah/H,EAAQg/H,YACrBtB,YAAa19H,EAAQ09H,YACrBi/D,YAAa38L,EAAQ28L,YACrBpgM,EAAG0qM,EACHnhN,EAAGohN,EACHnqE,YAAa,EACbC,YAAarhE,EAAQ6uI,EAAcp4J,EACnCyqF,WAAYlhE,GAASqrI,EAAcnC,cAAgByF,EAAoBztE,EACvEC,SAAUnhE,GAASqrI,EAAcnC,cAAgByF,EAAoBxtE,EACrE5mI,MAAOsnI,GAAUoxD,sBAAsB36F,EAAQrjG,EAAOqjG,EAAOrjG,OAGjE8rI,EAAIsmD,SAENknB,qBAAsB,WACpB,IAAIjnL,EAAUp6B,KAAK6vM,aACfttH,EAAOviF,KAAK2vM,UACZoD,EAAQ,EAMZ,OALAp+D,GAAU74F,KAAKymC,EAAKnyE,MAAM,SAAU2M,EAAShV,GACtCoQ,MAAMiiB,EAAQhqB,KAAKrI,KAAYgV,EAAQm8D,QAC1C65H,OAGGA,GAMTX,cAAe,SAAUv+D,GACvB,IAAIjS,EAAQiS,EAAIuB,OACZj+H,EAAU08H,EAAIoiB,SACdo8C,EAAgB19D,GAAU09D,cAC1B9gE,EAAiBoD,GAAUpD,eAC/BsC,EAAIs+D,eAAiB,CACnBh7H,gBAAiByqD,EAAMzqD,gBACvBg/D,YAAavU,EAAMuU,YACnBtB,YAAajT,EAAMiT,aAErBjT,EAAMzqD,gBAAkBo6D,EAAep6H,EAAQm7L,qBAAsBD,EAAcl7L,EAAQggE,kBAC3FyqD,EAAMuU,YAAc5E,EAAep6H,EAAQo7L,iBAAkBF,EAAcl7L,EAAQg/H,cACnFvU,EAAMiT,YAActD,EAAep6H,EAAQq7L,iBAAkBr7L,EAAQ09H,cAMvEysE,cAAe,SAAUv5M,GACvB,IAAIo6B,EAAKniC,KACL+yM,EAAQ/yM,KAAK2vM,UAAUoD,MACvB34K,EAAU+H,EAAG0tK,aACbttH,EAAOpgD,EAAGwtK,UAEd,GAAIx3L,MAAMiiB,EAAQhqB,KAAKrI,KAAWw6E,EAAKnyE,KAAKrI,GAAOmxE,OACjD,OAAO,EAIT,IAAI30D,EAAU,CACZm0H,MAAOv2G,EAAGu2G,MACV/9F,UAAW5yC,EACXqyB,QAASA,EACTokH,aAAcr8G,EAAGp6B,OAEnB,OAAO24M,GAAU,CAACv+K,EAAGu2G,MAAMvhI,QAAQ47D,SAAS8gE,IAAIE,MAAO,EAAIr7H,KAAKouC,GAAKisJ,GAAQxuL,EAASxc,MAI1F0jM,EAAczvD,KAAK,MAAOrH,GAAU9S,MAAM4pE,EAAcmW,WAExDnW,EAAczvD,KAAK,MAAO,CACxBugE,iBAAkB,IAIpB,IAAIsF,GAAiBnF,GACjBoF,GAAmBntE,GAAUpD,eAEjCk6D,EAAczvD,KAAK,QAAS,CAC1By5D,UAAU,EACVpgE,MAAO,CACLrhI,KAAM,gBAER++D,SAAU,CACR6sE,KAAM,CACJlJ,KAAM,QACNo0D,QAAS,MAMf,IAAIiX,GAAmB1O,GAAuBlsK,OAAO,CACnDkoK,mBAAoBt8H,GAASglI,KAC7BzI,gBAAiBv8H,GAASgjE,MAC1B05D,WAAY96D,GAAU0b,KAKtBk/C,uBAAwB,CAAC,kBAAmB,cAAe,cAAe,iBAAkB,aAAc,mBAAoB,kBAAmB,QAKjJC,oBAAqB,CACnBr4H,gBAAiB,uBACjBg/D,YAAa,mBACbtB,YAAa,mBACbuhE,UAAW,iBACX9D,qBAAsB,4BACtBC,iBAAkB,wBAClBC,iBAAkB,wBAClB0B,YAAa,mBACbqC,WAAY,aACZliE,OAAQ,cACR0E,SAAU,iBAMZw3D,iBAAkB,WAChB,OAAOvwM,KAAK04I,MAAMrD,MAAMjgG,IAM1Bk7J,iBAAkB,WAChB,OAAOtwM,KAAK04I,MAAMrD,MAAMjgG,IAE1B8b,OAAQ,SAAU4hB,GAChB,IAMI1rE,EAAG+pI,EANHhvG,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACV/vD,EAAOr9D,EAAKnoD,QACZyS,EAAS01C,EAAKnyE,MAAQ,GACtBilI,EAAQlzG,EAAGu2G,MAAMrD,MACjB/3H,EAAS6kB,EAAGuoF,QAiBhB,SAduB1jH,IAAnBsW,EAAOwtL,cAAgD9jM,IAAvBsW,EAAOkiM,cACzCliM,EAAOkiM,YAAcliM,EAAOwtL,SAI9BlrD,EAAKtK,OAASD,EACduK,EAAKixD,cAAgB1uK,EAAGp6B,MAExB63I,EAAK81D,UAAY7oK,EACjB+yG,EAAK2d,OAAQ,EAEb3d,EAAKxK,OAASjzG,EAAGsvK,8BAA8B7xD,GAC/CA,EAAKu6C,QAEA/yL,EAAI,EAAG+pI,EAAOtkG,EAAO7kC,OAAQZ,EAAI+pI,IAAQ/pI,EAC5C+6B,EAAG8uK,cAAcpkK,EAAOzlC,GAAIA,EAAG0rE,GAMjC,IAFA3wC,EAAGs9K,4BAEEr4M,EAAI,EAAG+pI,EAAOtkG,EAAO7kC,OAAQZ,EAAI+pI,IAAQ/pI,EAC5CylC,EAAOzlC,GAAG+yL,SAGd8W,cAAe,SAAUnkK,EAAO/kC,EAAO+qE,GACrC,IAAI3wC,EAAKniC,KACL8xM,EAAShlK,EAAMglK,QAAU,GACzB13K,EAAU+H,EAAG0tK,aACbx6D,EAAQlzG,EAAGu2G,MAAMrD,MACjB2sE,EAAgB3sE,EAAM4sE,yBAAyBl6M,EAAOqyB,EAAQhqB,KAAKrI,IAEnEoP,EAAUgrB,EAAGuvK,2BAA2B5kK,EAAO/kC,GAE/C23M,EAAYv9K,EAAGwtK,UAAUv1K,QAAQg7G,OAEjC1hI,EAAIo/D,EAAQuiE,EAAMI,QAAUusE,EAActuM,EAC1CzW,EAAI61E,EAAQuiE,EAAMK,QAAUssE,EAAc/kN,EAE9C6vC,EAAMwoG,OAASD,EACfvoG,EAAMmpH,SAAW9+I,EACjB21B,EAAM+jK,cAAgB1uK,EAAGp6B,MACzB+kC,EAAMsrG,OAASrwI,EAEf+kC,EAAMsoG,OAAS,CACb1hI,EAAGA,EAEHzW,EAAGA,EACHs5D,KAAMu7I,EAAOv7I,MAAQp+C,MAAMzE,IAAMyE,MAAMlb,GAEvCo3I,OAAQl9H,EAAQk9H,OAChBkiE,WAAYp/L,EAAQo/L,WACpBx9D,SAAU5hI,EAAQ4hI,SAClB5hE,gBAAiBhgE,EAAQggE,gBACzBg/D,YAAah/H,EAAQg/H,YACrBtB,YAAa19H,EAAQ09H,YACrBi2D,QAASgX,GAAiBhQ,EAAOhH,QAAS4U,EAAYA,EAAU5U,QAAU,GAE1EsL,UAAWj/L,EAAQi/L,YAOvB3E,8BAA+B,WAC7B,IAAItvK,EAAKniC,KACLsd,EAAS6kB,EAAGuoF,QACZvzG,EAAUgrB,EAAGu2G,MAAMvhI,QAEnB46B,EAASshK,GAAuBjyM,UAAUqwM,8BAA8B5tM,MAAMs+B,EAAIr+B,WAItF,OAFAiuC,EAAO0jK,SAAWqM,GAAiBxkM,EAAOm4L,SAAUt+L,EAAQs+L,UAC5D1jK,EAAO+4J,QAAUgX,GAAiBxkM,EAAOkiM,YAAaroM,EAAQ47D,SAAS6sE,KAAKkrD,SACrE/4J,GAET0tK,0BAA2B,WACzB,IAIIr4M,EAAG+pI,EAAMvP,EAAOw+E,EAJhBj+K,EAAKniC,KACLuiF,EAAOpgD,EAAGwtK,UACVr8D,EAAOnxG,EAAGu2G,MAAMC,UAChB9rG,EAAS01C,EAAKnyE,MAAQ,GAS1B,SAASiwM,EAAgBnmE,EAAItvH,EAAKC,GAChC,OAAOnS,KAAKmS,IAAInS,KAAKkS,IAAIsvH,EAAIrvH,GAAMD,GAGrC,IAVI23D,EAAKnoD,QAAQg7G,OAAOqgE,WACtB5oK,EAASA,EAAO9T,QAAO,SAAUmhH,GAC/B,OAAQA,EAAG9E,OAAO7+E,SAQjBnvD,EAAI,EAAG+pI,EAAOtkG,EAAO7kC,OAAQZ,EAAI+pI,IAAQ/pI,EAC5Cw6H,EAAQ/0F,EAAOzlC,GAAGguI,OAClBgrE,EAAgBzrE,GAAU6rE,YAAY7rE,GAAUkhE,aAAahpK,EAAQzlC,GAAG,GAAMguI,OAAQxT,EAAO+S,GAAU8rE,SAAS5zK,EAAQzlC,GAAG,GAAMguI,OAAQxT,EAAMkpE,SAE/IlpE,EAAMopE,sBAAwBqV,EAAgBD,EAAc/iE,SAAS3pI,EAAG4/H,EAAKx/H,KAAMw/H,EAAK/2G,OACxFqlG,EAAMspE,sBAAwBmV,EAAgBD,EAAc/iE,SAASpgJ,EAAGq2I,EAAKlkI,IAAKkkI,EAAKr3G,QACvF2lG,EAAMqpE,kBAAoBoV,EAAgBD,EAActvK,KAAKp9B,EAAG4/H,EAAKx/H,KAAMw/H,EAAK/2G,OAChFqlG,EAAMupE,kBAAoBkV,EAAgBD,EAActvK,KAAK7zC,EAAGq2I,EAAKlkI,IAAKkkI,EAAKr3G,SAGnFm2K,cAAe,SAAUtlK,GACvB,IAAI80F,EAAQ90F,EAAMsoG,OACdj+H,EAAU21B,EAAMmpH,SAChBo8C,EAAgB19D,GAAU09D,cAC9BvlK,EAAMqlK,eAAiB,CACrBh7H,gBAAiByqD,EAAMzqD,gBACvBg/D,YAAavU,EAAMuU,YACnBtB,YAAajT,EAAMiT,YACnBR,OAAQzS,EAAMyS,QAEhBzS,EAAMzqD,gBAAkB2qI,GAAiB3qM,EAAQm7L,qBAAsBD,EAAcl7L,EAAQggE,kBAC7FyqD,EAAMuU,YAAc2rE,GAAiB3qM,EAAQo7L,iBAAkBF,EAAcl7L,EAAQg/H,cACrFvU,EAAMiT,YAAcitE,GAAiB3qM,EAAQq7L,iBAAkBr7L,EAAQ09H,aACvEjT,EAAMyS,OAASytE,GAAiB3qM,EAAQ+8L,YAAa/8L,EAAQk9H,WAIjEo3D,EAAczvD,KAAK,UAAW,CAC5B21D,MAAO,CACLpwL,KAAM,UAERytI,OAAQ,CACNghD,MAAO,CAAC,CACN56J,GAAI,WAEJphC,KAAM,SAENwO,SAAU,WAEZ0tL,MAAO,CAAC,CACN96J,GAAI,WACJphC,KAAM,SACNwO,SAAU,UAGd44L,SAAU,CACRC,UAAW,CACT/kL,MAAO,WACL,MAAO,IAETjpB,MAAO,SAAU42B,GACf,MAAO,IAAMA,EAAKs3K,OAAS,KAAOt3K,EAAKu3K,OAAS,SAMxD/P,EAAczvD,KAAK,SAAU,CAC3BF,SAAU,CACRomE,QAAS,CACP5C,UAAU,MAMhB,IAIIjtG,GAAc,CAChB8mG,IAAKC,GACLjsE,OAAQsuE,GACRmG,SAAUlF,GACVgC,cAAeC,GACf/+D,KAAMy/D,GACN8C,UAAWpB,GACXqB,IAAKP,GACLQ,MAAON,GACPG,QAbuB7C,IAsBzB,SAASiD,GAAoB5nM,EAAGg+H,GAC9B,OAAIh+H,EAAEytD,OACG,CACLz0D,EAAGgH,EAAEhH,EACLzW,EAAGyd,EAAEzd,GAIF03I,GAAU2tE,oBAAoB5nM,EAAGg+H,GAS1C,SAAS6pE,GAAkB7pE,EAAO/yI,GAChC,IAEI68M,EAAUp7M,EAAGwP,EAAGu6H,EAAM4K,EAAMh/H,EAF5Bo9L,EAAWzhE,EAAMynE,gCAIrB,IAAK/4M,EAAI,EAAG+pI,EAAOgpE,EAASnyM,OAAQZ,EAAI+pI,IAAQ/pI,EAG9C,IAAKwP,EAAI,EAAGmlI,GAFZymE,EAAWrI,EAAS/yM,GAAGgJ,MAEKpI,OAAQ4O,EAAImlI,IAAQnlI,GAC9CmG,EAAUylM,EAAS5rM,IAEN0lI,MAAM/lF,MACjB5wD,EAAQoX,GAahB,SAAS0lM,GAAkB/pE,EAAOl2H,GAChC,IAAIuwD,EAAW,GAMf,OALAwvI,GAAkB7pE,GAAO,SAAU37H,GAC7BA,EAAQo3L,QAAQ3xL,EAAS9O,EAAG8O,EAASvlB,IACvC81E,EAAS/kE,KAAK+O,MAGXg2D,EAYT,SAAS2vI,GAAgBhqE,EAAOl2H,EAAUmgM,EAAWC,GACnD,IAAIC,EAAcxxJ,OAAOyxJ,kBACrBC,EAAe,GAiBnB,OAhBAR,GAAkB7pE,GAAO,SAAU37H,GACjC,IAAI4lM,GAAc5lM,EAAQo3L,QAAQ3xL,EAAS9O,EAAG8O,EAASvlB,GAAvD,CAIA,IAAIm8I,EAASr8H,EAAQ23L,iBACjBnrJ,EAAWq5J,EAAepgM,EAAU42H,GAEpC7vF,EAAWs5J,GACbE,EAAe,CAAChmM,GAChB8lM,EAAct5J,GACLA,IAAas5J,GAEtBE,EAAa/0M,KAAK+O,OAGfgmM,EAST,SAASC,GAAyBplK,GAChC,IAAIqlK,GAA8B,IAAvBrlK,EAAKj2C,QAAQ,KACpBu7M,GAA8B,IAAvBtlK,EAAKj2C,QAAQ,KACxB,OAAO,SAAUw7M,EAAKC,GACpB,IAAIC,EAASJ,EAAOvqM,KAAKC,IAAIwqM,EAAIzvM,EAAI0vM,EAAI1vM,GAAK,EAC1C4vM,EAASJ,EAAOxqM,KAAKC,IAAIwqM,EAAIlmN,EAAImmN,EAAInmN,GAAK,EAC9C,OAAOyb,KAAKguC,KAAKhuC,KAAK0zB,IAAIi3K,EAAQ,GAAK3qM,KAAK0zB,IAAIk3K,EAAQ,KAI5D,SAASC,GAAU7qE,EAAOh+H,EAAGvD,GAC3B,IAAIqL,EAAW8/L,GAAoB5nM,EAAGg+H,GAEtCvhI,EAAQymC,KAAOzmC,EAAQymC,MAAQ,IAC/B,IAAIglK,EAAiBI,GAAyB7rM,EAAQymC,MAClD/G,EAAQ1/B,EAAQwrM,UAAYF,GAAkB/pE,EAAOl2H,GAAYkgM,GAAgBhqE,EAAOl2H,GAAU,EAAOogM,GACzG7vI,EAAW,GAEf,OAAKl8B,EAAM7uC,QAIX0wI,EAAMynE,gCAAgCnwM,SAAQ,SAAUuyE,GACtD,IAAIxlE,EAAUwlE,EAAKnyE,KAAKymC,EAAM,GAAGuhG,QAE7Br7H,IAAYA,EAAQu/H,MAAM/lF,MAC5Bwc,EAAS/kE,KAAK+O,MAIXg2D,GAXE,GA6BX,IAAIywI,GAAmB,CAErBC,MAAO,CACL1lL,OAAQ,SAAU26G,EAAOh+H,GACvB,IAAI8H,EAAW8/L,GAAoB5nM,EAAGg+H,GAClC3lE,EAAW,GAOf,OANAwvI,GAAkB7pE,GAAO,SAAU37H,GACjC,GAAIA,EAAQo3L,QAAQ3xL,EAAS9O,EAAG8O,EAASvlB,GAEvC,OADA81E,EAAS/kE,KAAK+O,GACPg2D,KAGJA,EAASnrE,MAAM,EAAG,IAS3ByF,MAAOk2M,GAYPx7M,MAAOw7M,GAWPnpL,QAAS,SAAUs+G,EAAOh+H,EAAGvD,GAC3B,IAAIqL,EAAW8/L,GAAoB5nM,EAAGg+H,GACtCvhI,EAAQymC,KAAOzmC,EAAQymC,MAAQ,KAC/B,IAAIglK,EAAiBI,GAAyB7rM,EAAQymC,MAClD/G,EAAQ1/B,EAAQwrM,UAAYF,GAAkB/pE,EAAOl2H,GAAYkgM,GAAgBhqE,EAAOl2H,GAAU,EAAOogM,GAM7G,OAJI/rK,EAAM7uC,OAAS,IACjB6uC,EAAQ6hG,EAAMy3D,eAAet5J,EAAM,GAAGg6J,eAAezgM,MAGhDymC,GAST,SAAU,SAAU6hG,EAAOh+H,GACzB,OAAO6oM,GAAU7qE,EAAOh+H,EAAG,CACzBioM,WAAW,KAYf71K,MAAO,SAAU4rG,EAAOh+H,GAEtB,OAAO+nM,GAAkB/pE,EADV4pE,GAAoB5nM,EAAGg+H,KAYxCgrE,QAAS,SAAUhrE,EAAOh+H,EAAGvD,GAC3B,IAAIqL,EAAW8/L,GAAoB5nM,EAAGg+H,GACtCvhI,EAAQymC,KAAOzmC,EAAQymC,MAAQ,KAC/B,IAAIglK,EAAiBI,GAAyB7rM,EAAQymC,MACtD,OAAO8kK,GAAgBhqE,EAAOl2H,EAAUrL,EAAQwrM,UAAWC,IAW7DlvM,EAAG,SAAUglI,EAAOh+H,EAAGvD,GACrB,IAAIqL,EAAW8/L,GAAoB5nM,EAAGg+H,GAClC7hG,EAAQ,GACR8sK,GAAiB,EAgBrB,OAfApB,GAAkB7pE,GAAO,SAAU37H,GAC7BA,EAAQ05L,SAASj0L,EAAS9O,IAC5BmjC,EAAM7oC,KAAK+O,GAGTA,EAAQo3L,QAAQ3xL,EAAS9O,EAAG8O,EAASvlB,KACvC0mN,GAAiB,MAKjBxsM,EAAQwrM,YAAcgB,IACxB9sK,EAAQ,IAGHA,GAWT55C,EAAG,SAAUy7I,EAAOh+H,EAAGvD,GACrB,IAAIqL,EAAW8/L,GAAoB5nM,EAAGg+H,GAClC7hG,EAAQ,GACR8sK,GAAiB,EAgBrB,OAfApB,GAAkB7pE,GAAO,SAAU37H,GAC7BA,EAAQ25L,SAASl0L,EAASvlB,IAC5B45C,EAAM7oC,KAAK+O,GAGTA,EAAQo3L,QAAQ3xL,EAAS9O,EAAG8O,EAASvlB,KACvC0mN,GAAiB,MAKjBxsM,EAAQwrM,YAAcgB,IACxB9sK,EAAQ,IAGHA,KAIT1P,GAASwtG,GAAUxtG,OAEvB,SAASy8K,GAAiB5rL,EAAOxV,GAC/B,OAAOmyH,GAAUkvE,MAAM7rL,GAAO,SAAU4V,GACtC,OAAOA,EAAEwqF,MAAQ51G,KAIrB,SAASshM,GAAa9rL,EAAO8V,GAC3B,OAAO9V,EAAM8F,MAAK,SAAUnf,EAAGrhB,GAC7B,IAAI4oM,EAAKp4J,EAAUxwC,EAAIqhB,EACnBwnL,EAAKr4J,EAAUnvB,EAAIrhB,EACvB,OAAO4oM,EAAGl1D,SAAWm1D,EAAGn1D,OAASk1D,EAAGn+L,MAAQo+L,EAAGp+L,MAAQm+L,EAAGl1D,OAASm1D,EAAGn1D,UAI1E,SAAS+yE,GAAUC,GACjB,IACI58M,EAAG+pI,EAAM/1F,EADT6oK,EAAc,GAGlB,IAAK78M,EAAI,EAAG+pI,GAAQ6yE,GAAS,IAAIh8M,OAAQZ,EAAI+pI,IAAQ/pI,EACnDg0C,EAAM4oK,EAAM58M,GACZ68M,EAAYj2M,KAAK,CACfjG,MAAOX,EACPg0C,IAAKA,EACLg9E,IAAKh9E,EAAI54B,SACTiyH,WAAYr5F,EAAIwL,eAChBoqF,OAAQ51F,EAAI41F,SAIhB,OAAOizE,EAGT,SAASC,GAAcC,EAAS39K,GAC9B,IAAIp/B,EAAG+pI,EAAMlkI,EAEb,IAAK7F,EAAI,EAAG+pI,EAAOgzE,EAAQn8M,OAAQZ,EAAI+pI,IAAQ/pI,GAC7C6F,EAASk3M,EAAQ/8M,IAEVomB,MAAQvgB,EAAOwnI,WAAaxnI,EAAOmuC,IAAIgpK,WAAa59K,EAAO69K,eAAiB79K,EAAO89K,aAE1Fr3M,EAAOkC,OAASlC,EAAOwnI,YAAcjuG,EAAO+9K,cAIhD,SAASC,GAAiBR,GACxB,IAAIC,EAAcF,GAAUC,GACxBlwM,EAAOgwM,GAAaF,GAAiBK,EAAa,SAAS,GAC3D1nL,EAAQunL,GAAaF,GAAiBK,EAAa,UACnD70M,EAAM00M,GAAaF,GAAiBK,EAAa,QAAQ,GACzDhoL,EAAS6nL,GAAaF,GAAiBK,EAAa,WACxD,MAAO,CACLQ,WAAY3wM,EAAK6C,OAAOvH,GACxBs1M,eAAgBnoL,EAAM5lB,OAAOslB,GAC7B08G,UAAWirE,GAAiBK,EAAa,aACzCU,SAAU7wM,EAAK6C,OAAO4lB,GACtBk4G,WAAYrlI,EAAIuH,OAAOslB,IAI3B,SAAS2oL,GAAeC,EAAYlsE,EAAWh6H,EAAGrhB,GAChD,OAAOob,KAAKmS,IAAIg6L,EAAWlmM,GAAIg6H,EAAUh6H,IAAMjG,KAAKmS,IAAIg6L,EAAWvnN,GAAIq7I,EAAUr7I,IAGnF,SAASwnN,GAAWnsE,EAAWnyG,EAAQv5B,GACrC,IAEIs0C,EAAUC,EAFVpG,EAAMnuC,EAAOmuC,IACbypK,EAAalsE,EAAUksE,WAW3B,GARI53M,EAAOqkD,OAETqnF,EAAU1rI,EAAOmrH,MAAQnrH,EAAOqkD,MAGlCrkD,EAAOqkD,KAAOrkD,EAAOwnI,WAAar5F,EAAIjsC,OAASisC,EAAI5tB,MACnDmrH,EAAU1rI,EAAOmrH,MAAQnrH,EAAOqkD,KAE5BlW,EAAI2pK,WAAY,CAClB,IAAIC,EAAa5pK,EAAI2pK,aACrBF,EAAWz1M,IAAMsJ,KAAKmS,IAAIg6L,EAAWz1M,IAAK41M,EAAW51M,KACrDy1M,EAAW/wM,KAAO4E,KAAKmS,IAAIg6L,EAAW/wM,KAAMkxM,EAAWlxM,MACvD+wM,EAAW5oL,OAASvjB,KAAKmS,IAAIg6L,EAAW5oL,OAAQ+oL,EAAW/oL,QAC3D4oL,EAAWtoL,MAAQ7jB,KAAKmS,IAAIg6L,EAAWtoL,MAAOyoL,EAAWzoL,OAM3D,GAHAglB,EAAW/a,EAAOuU,WAAa6pK,GAAeC,EAAYlsE,EAAW,OAAQ,SAC7En3F,EAAYhb,EAAO0U,YAAc0pK,GAAeC,EAAYlsE,EAAW,MAAO,UAE1Ep3F,IAAao3F,EAAU1jI,GAAKusC,IAAcm3F,EAAUh8I,EAAG,CACzDg8I,EAAU1jI,EAAIssC,EACdo3F,EAAUh8I,EAAI6kD,EAEd,IAAI8a,EAAQrvD,EAAOwnI,WAAa,CAAClzF,EAAUo3F,EAAU1jI,GAAK,CAACusC,EAAWm3F,EAAUh8I,GAChF,OAAO2/D,EAAM,KAAOA,EAAM,MAAQnkD,MAAMmkD,EAAM,MAAQnkD,MAAMmkD,EAAM,MAItE,SAAS2oJ,GAAiBtsE,GACxB,IAAIksE,EAAalsE,EAAUksE,WAE3B,SAASK,EAAU9sF,GACjB,IAAI+sF,EAASzsM,KAAKmS,IAAIg6L,EAAWzsF,GAAOugB,EAAUvgB,GAAM,GAExD,OADAugB,EAAUvgB,IAAQ+sF,EACXA,EAGTxsE,EAAU17I,GAAKioN,EAAU,OACzBvsE,EAAUjlI,GAAKwxM,EAAU,QACzBA,EAAU,SACVA,EAAU,UAGZ,SAASE,GAAW3wE,EAAYkE,GAC9B,IAAIksE,EAAalsE,EAAUksE,WAE3B,SAASQ,EAAmBC,GAC1B,IAAI9pE,EAAS,CACX1nI,KAAM,EACN1E,IAAK,EACLmtB,MAAO,EACPN,OAAQ,GAKV,OAHAqpL,EAAUt1M,SAAQ,SAAUooH,GAC1BojB,EAAOpjB,GAAO1/G,KAAKmS,IAAI8tH,EAAUvgB,GAAMysF,EAAWzsF,OAE7CojB,EAGT,OAAoB6pE,EAAb5wE,EAAgC,CAAC,OAAQ,SAA+B,CAAC,MAAO,WAGzF,SAAS8wE,GAASvB,EAAOrrE,EAAWnyG,GAClC,IACIp/B,EAAG+pI,EAAMlkI,EAAQmuC,EAAKoqK,EAAOC,EAD7BC,EAAa,GAGjB,IAAKt+M,EAAI,EAAG+pI,EAAO6yE,EAAMh8M,OAAQZ,EAAI+pI,IAAQ/pI,GAE3Cg0C,GADAnuC,EAAS+2M,EAAM58M,IACFg0C,KACT8V,OAAOjkD,EAAOugB,OAASmrH,EAAU1jI,EAAGhI,EAAOkC,QAAUwpI,EAAUh8I,EAAGyoN,GAAWn4M,EAAOwnI,WAAYkE,IAEhGmsE,GAAWnsE,EAAWnyG,EAAQv5B,KAChCw4M,GAAU,EAENC,EAAW19M,SAGbw9M,GAAQ,IAIPpqK,EAAIgpK,WAEPsB,EAAW13M,KAAKf,GAIpB,OAAOu4M,GAAQD,GAASG,EAAY/sE,EAAWnyG,IAAqBi/K,EAGtE,SAASE,GAAW3B,EAAOrrE,EAAWnyG,GACpC,IAGIp/B,EAAG+pI,EAAMlkI,EAAQmuC,EAHjBwqK,EAAcp/K,EAAOsuG,QACrBphI,EAAIilI,EAAUjlI,EACdzW,EAAI07I,EAAU17I,EAGlB,IAAKmK,EAAI,EAAG+pI,EAAO6yE,EAAMh8M,OAAQZ,EAAI+pI,IAAQ/pI,EAE3Cg0C,GADAnuC,EAAS+2M,EAAM58M,IACFg0C,IAETnuC,EAAOwnI,YACTr5F,EAAItnC,KAAOsnC,EAAIgpK,UAAYwB,EAAY9xM,KAAO6kI,EAAU7kI,KACxDsnC,EAAI7e,MAAQ6e,EAAIgpK,UAAY59K,EAAOuU,WAAa6qK,EAAYrpL,MAAQo8G,EAAU7kI,KAAO6kI,EAAU1jI,EAC/FmmC,EAAIhsC,IAAMnS,EACVm+C,EAAInf,OAASh/B,EAAIm+C,EAAIjsC,OACrBisC,EAAI5tB,MAAQ4tB,EAAI7e,MAAQ6e,EAAItnC,KAC5B7W,EAAIm+C,EAAInf,SAERmf,EAAItnC,KAAOJ,EACX0nC,EAAI7e,MAAQ7oB,EAAI0nC,EAAI5tB,MACpB4tB,EAAIhsC,IAAMupI,EAAUvpI,IACpBgsC,EAAInf,OAAS08G,EAAUvpI,IAAMupI,EAAUh8I,EACvCy+C,EAAIjsC,OAASisC,EAAInf,OAASmf,EAAIhsC,IAC9BsE,EAAI0nC,EAAI7e,OAIZo8G,EAAUjlI,EAAIA,EACdilI,EAAU17I,EAAIA,EAGhBwuM,EAAczvD,KAAK,SAAU,CAC3B/uI,OAAQ,CACN6nI,QAAS,CACP1lI,IAAK,EACLmtB,MAAO,EACPN,OAAQ,EACRnoB,KAAM,MAyBZ,IAAI+xM,GAAe,CACjB/mM,SAAU,GAQVgnM,OAAQ,SAAUptE,EAAOz0G,GAClBy0G,EAAMsrE,QACTtrE,EAAMsrE,MAAQ,IAIhB//K,EAAKmgL,UAAYngL,EAAKmgL,YAAa,EACnCngL,EAAKzhB,SAAWyhB,EAAKzhB,UAAY,MACjCyhB,EAAK+sG,OAAS/sG,EAAK+sG,QAAU,EAE7B/sG,EAAK8hL,QAAU9hL,EAAK8hL,SAAW,WAC7B,MAAO,CAAC,CACN5nB,EAAG,EACHhlD,KAAM,WACJl1G,EAAKk1G,KAAKt1I,MAAMogC,EAAMngC,eAK5B40I,EAAMsrE,MAAMh2M,KAAKi2B,IAQnB+hL,UAAW,SAAUttE,EAAOutE,GAC1B,IAAIl+M,EAAQ2wI,EAAMsrE,MAAQtrE,EAAMsrE,MAAMr8M,QAAQs+M,IAAe,GAE9C,IAAXl+M,GACF2wI,EAAMsrE,MAAMvtL,OAAO1uB,EAAO,IAU9B60I,UAAW,SAAUlE,EAAOz0G,EAAM9sB,GAMhC,IALA,IAGIoyG,EAHA3tE,EAAQ,CAAC,YAAa,WAAY,UAClCu1F,EAAOv1F,EAAM5zC,OACbZ,EAAI,EAGDA,EAAI+pI,IAAQ/pI,EACjBmiH,EAAO3tE,EAAMx0C,GAET+P,EAAQoD,eAAegvG,KACzBtlF,EAAKslF,GAAQpyG,EAAQoyG,KAY3Br4D,OAAQ,SAAUwnF,EAAOlrH,EAAOre,GAC9B,GAAKupI,EAAL,CAIA,IAAIwtE,EAAgBxtE,EAAMvhI,QAAQlK,QAAU,GACxC6nI,EAAUH,GAAUx9H,QAAQ0hI,UAAUqtE,EAAcpxE,SACpDuvE,EAAiB72L,EAAQsnH,EAAQtnH,MACjC24L,EAAkBh3M,EAAS2lI,EAAQ3lI,OACnC60M,EAAQQ,GAAiB9rE,EAAMsrE,OAC/BoC,EAAgBpC,EAAMW,SACtB0B,EAAkBrC,EAAMvvE,WA2BxBjuG,EAAShmC,OAAOyxM,OAAO,CACzBl3J,WAAYvtB,EACZ0tB,YAAa/rC,EACb2lI,QAASA,EACTuvE,eAAgBA,EAChBC,aAAcD,EAAiB,EAAI+B,EAAcp+M,OACjDu8M,cAAe4B,EAAkB,IAE/BxtE,EAAYxxG,GAAO,CACrB09K,WAAY19K,GAAO,GAAI2tG,GACvB7/H,EAAGovM,EACH1nN,EAAGwpN,EACHzyM,EAAGohI,EAAQhhI,KACX7W,EAAG63I,EAAQ1lI,KACV0lI,GACHovE,GAAckC,EAAczvM,OAAO0vM,GAAkB7/K,GAErD++K,GAASa,EAAeztE,EAAWnyG,GAE/B++K,GAASc,EAAiB1tE,EAAWnyG,IAEvC++K,GAASa,EAAeztE,EAAWnyG,GAGrCy+K,GAAiBtsE,GAEjBgtE,GAAW3B,EAAMS,WAAY9rE,EAAWnyG,GAExCmyG,EAAUjlI,GAAKilI,EAAU1jI,EACzB0jI,EAAU17I,GAAK07I,EAAUh8I,EACzBgpN,GAAW3B,EAAMU,eAAgB/rE,EAAWnyG,GAC5CkyG,EAAMC,UAAY,CAChB7kI,KAAM6kI,EAAU7kI,KAChB1E,IAAKupI,EAAUvpI,IACfmtB,MAAOo8G,EAAU7kI,KAAO6kI,EAAU1jI,EAClCgnB,OAAQ08G,EAAUvpI,IAAMupI,EAAUh8I,GAGpCg4I,GAAU74F,KAAKkoK,EAAMrrE,WAAW,SAAU1rI,GACxC,IAAImuC,EAAMnuC,EAAOmuC,IACjBjU,GAAOiU,EAAKs9F,EAAMC,WAClBv9F,EAAI8V,OAAOynF,EAAU1jI,EAAG0jI,EAAUh8I,SASpC2pN,GAAiB,CACnBC,eAAgB,SAAUtiL,GAMxB,OALIA,GAAQA,EAAKoyG,SAEfpyG,EAAOA,EAAKoyG,QAGPpyG,GAAQA,EAAKuiL,WAAW,OAAS,OAGxCC,GAAe,k9BAKfC,GAAanqB,EAJiB/7L,OAAOyxM,OAAO,CAC9Cv8J,UAAW,KACX,QAAW+wK,MAGT/pE,GAAc,WACdiqE,GAAa,WACbC,GAAmBD,GAAa,eAChCE,GAAqBF,GAAa,iBAClCG,GAAuBH,GAAa,mBACpCI,GAAyB,CAAC,iBAAkB,wBAO5CC,GAAc,CAChBC,WAAY,YACZC,UAAW,YACXC,SAAU,UACVC,aAAc,aACdC,YAAa,YACbC,YAAa,YACbC,UAAW,UACXC,aAAc,WACdC,WAAY,YAYd,SAASC,GAAa3qM,EAASy0C,GAC7B,IAAIrhD,EAAQwkI,GAAU68D,SAASz0L,EAASy0C,GACpCvV,EAAU9rC,GAASA,EAAMhJ,MAAM,qBACnC,OAAO80C,EAAUoV,OAAOpV,EAAQ,SAAMj1C,EASxC,SAAS2gN,GAAWtxE,EAAQ/4H,GAC1B,IAAI3M,EAAQ0lI,EAAO1lI,MAGfi3M,EAAevxE,EAAOhzI,aAAa,UACnCwkN,EAAcxxE,EAAOhzI,aAAa,SAkBtC,GAhBAgzI,EAAOqG,IAAe,CACpBorE,QAAS,CACP34M,OAAQy4M,EACRp6L,MAAOq6L,EACPl3M,MAAO,CACLwc,QAASxc,EAAMwc,QACfhe,OAAQwB,EAAMxB,OACdqe,MAAO7c,EAAM6c,SAOnB7c,EAAMwc,QAAUxc,EAAMwc,SAAW,QAEb,OAAhB06L,GAAwC,KAAhBA,EAAoB,CAC9C,IAAIE,EAAeL,GAAarxE,EAAQ,cAEnBrvI,IAAjB+gN,IACF1xE,EAAO7oH,MAAQu6L,GAInB,GAAqB,OAAjBH,GAA0C,KAAjBA,EAC3B,GAA4B,KAAxBvxE,EAAO1lI,MAAMxB,OAIfknI,EAAOlnI,OAASknI,EAAO7oH,OAASlQ,EAAOnG,QAAQ6wM,aAAe,OACzD,CACL,IAAIC,EAAgBP,GAAarxE,EAAQ,eAEpBrvI,IAAjB+gN,IACF1xE,EAAOlnI,OAAS84M,GAKtB,OAAO5xE,EAST,IAmBI6xE,KAnB+B,WACjC,IAAI90M,GAAW,EAEf,IACE,IAAI+D,EAAU3W,OAAOC,eAAe,GAAI,UAAW,CAEjDC,IAAK,WACH0S,GAAW,KAGf6D,OAAOnR,iBAAiB,IAAK,KAAMqR,GACnC,MAAOuD,IAGT,OAAOtH,EAd0B,IAmBuB,CACxDmE,SAAS,GAGX,SAASk5I,GAAY1rI,EAAM/Q,EAAMqlC,GAC/Bt0B,EAAKjf,iBAAiBkO,EAAMqlC,EAAU6uK,IAGxC,SAASx3D,GAAe3rI,EAAM/Q,EAAMqlC,GAClCt0B,EAAKhf,oBAAoBiO,EAAMqlC,EAAU6uK,IAG3C,SAAS/2L,GAAYnd,EAAM0kI,EAAOhlI,EAAGzW,EAAGkrN,GACtC,MAAO,CACLn0M,KAAMA,EACN0kI,MAAOA,EACPvwE,OAAQggJ,GAAe,KACvBz0M,OAAS1M,IAAN0M,EAAkBA,EAAI,KACzBzW,OAAS+J,IAAN/J,EAAkBA,EAAI,MAI7B,SAASmrN,GAAgB95M,EAAOoqI,GAC9B,IAAI1kI,EAAOgzM,GAAY14M,EAAM0F,OAAS1F,EAAM0F,KACxCokH,EAAMuc,GAAU2tE,oBAAoBh0M,EAAOoqI,GAC/C,OAAOvnH,GAAYnd,EAAM0kI,EAAOtgB,EAAI1kH,EAAG0kH,EAAIn7H,EAAGqR,GAGhD,SAAS+5M,GAAUl+L,EAAIuzF,GACrB,IAAI4qG,GAAU,EACV9jM,EAAO,GACX,OAAO,WACLA,EAAO/F,MAAMrd,UAAUwG,MAAM7H,KAAK+D,WAClC45G,EAAUA,GAAW19G,KAEhBsoN,IACHA,GAAU,EACV3zE,GAAUg6D,iBAAiB5uM,KAAKkX,QAAQ,WACtCqxM,GAAU,EACVn+L,EAAGtmB,MAAM65G,EAASl5F,QAM1B,SAAS+jM,GAAUC,GACjB,IAAIh5M,EAAK4H,SAASwN,cAAc,OAEhC,OADApV,EAAGpK,UAAYojN,GAAO,GACfh5M,EAIT,SAASi5M,GAAc9iN,GACrB,IAAI+iN,EAAU,IAGVC,EAAUJ,GAAU3B,IACpBgC,EAASL,GAAU3B,GAAmB,WACtCiC,EAASN,GAAU3B,GAAmB,WAC1CgC,EAAOhjM,YAAY2iM,MACnBM,EAAOjjM,YAAY2iM,MACnBI,EAAQ/iM,YAAYgjM,GACpBD,EAAQ/iM,YAAYijM,GAEpBF,EAAQG,OAAS,WACfF,EAAOntK,WAAaitK,EACpBE,EAAOrtK,UAAYmtK,EACnBG,EAAOptK,WAAaitK,EACpBG,EAAOttK,UAAYmtK,GAGrB,IAAI97J,EAAW,WACb+7J,EAAQG,SAERnjN,KAKF,OAFA8qJ,GAAYm4D,EAAQ,SAAUh8J,EAASp4C,KAAKo0M,EAAQ,WACpDn4D,GAAYo4D,EAAQ,SAAUj8J,EAASp4C,KAAKq0M,EAAQ,WAC7CF,EAIT,SAASI,GAAehkM,EAAMpf,GAC5B,IAAI83I,EAAU14H,EAAK23H,MAAiB33H,EAAK23H,IAAe,IAEpDssE,EAAQvrE,EAAQwrE,YAAc,SAAUvuM,GACtCA,EAAEwuM,gBAAkBpC,IACtBnhN,KAIJgvI,GAAU74F,KAAKirK,IAAwB,SAAU/yM,GAC/Cy8I,GAAY1rI,EAAM/Q,EAAMg1M,MAO1BvrE,EAAQ0rE,SAAWpkM,EAAK+sI,aACxB/sI,EAAK1f,UAAUC,IAAIuhN,IAGrB,SAASuC,GAAiBrkM,GACxB,IAAI04H,EAAU14H,EAAK23H,KAAgB,GAC/BssE,EAAQvrE,EAAQwrE,YAEhBD,IACFr0E,GAAU74F,KAAKirK,IAAwB,SAAU/yM,GAC/C08I,GAAe3rI,EAAM/Q,EAAMg1M,aAEtBvrE,EAAQwrE,aAGjBlkM,EAAK1f,UAAUG,OAAOqhN,IAGxB,SAASwC,GAAkBtkM,EAAMs0B,EAAUq/F,GACzC,IAAI+E,EAAU14H,EAAK23H,MAAiB33H,EAAK23H,IAAe,IAEpDisE,EAAUlrE,EAAQkrE,QAAUF,GAAcJ,IAAU,WACtD,GAAI5qE,EAAQkrE,QAAS,CACnB,IAAIzzL,EAAYwjH,EAAMvhI,QAAQmyM,qBAAuBvkM,EAAKK,WACtDnQ,EAAIigB,EAAYA,EAAUi8B,YAAc,EAC5C9X,EAASloB,GAAY,SAAUunH,IAE3BxjH,GAAaA,EAAUi8B,YAAcl8C,GAAKyjI,EAAMrC,QAQlDh9F,EAASloB,GAAY,SAAUunH,SAMrCqwE,GAAehkM,GAAM,WACnB,GAAI04H,EAAQkrE,QAAS,CACnB,IAAIzzL,EAAYnQ,EAAKK,WAEjB8P,GAAaA,IAAcyzL,EAAQvjM,YACrC8P,EAAUhD,aAAay2L,EAASzzL,EAAUlQ,YAI5C2jM,EAAQG,aAKd,SAASS,GAAqBxkM,GAC5B,IAAI04H,EAAU14H,EAAK23H,KAAgB,GAC/BisE,EAAUlrE,EAAQkrE,eACflrE,EAAQkrE,QACfS,GAAiBrkM,GAEb4jM,GAAWA,EAAQvjM,YACrBujM,EAAQvjM,WAAWH,YAAY0jM,GAUnC,SAASa,GAAU1xD,EAAUn8G,GAE3B,IAAI8hG,EAAUqa,EAASpb,MAAiBob,EAASpb,IAAe,IAEhE,IAAKe,EAAQgsE,eAAgB,CAC3BhsE,EAAQgsE,gBAAiB,EACzB9tK,EAAM,mBAAqBA,EAC3B,IAAIhrC,EAAQyG,SAASwN,cAAc,SACnCjU,EAAMlN,aAAa,OAAQ,YAC3BkN,EAAMiV,YAAYxO,SAAS2zE,eAAepvC,IAC1Cm8G,EAASlyI,YAAYjV,IAIzB,IAAI+4M,GAAiB,CAQnBC,qBAAqB,EAOrBC,SAA4B,qBAAX3yM,QAA8C,qBAAbG,SAOlDyyM,cAAe,SAAUxzE,GACvB,IAAKr2I,KAAK2pN,oBAAqB,CAI7B,IAAI3lN,EAAOqyI,EAAO0hB,YAAc1hB,EAAO0hB,cAAgB3gJ,SAEvDoyM,GADiBxlN,EAAKwuC,KAAOxuC,EAAOoT,SAASomB,KACvBkpL,MAG1BH,eAAgB,SAAUtiL,EAAM3mB,GACV,kBAAT2mB,EACTA,EAAO7sB,SAAS28B,eAAe9P,GACtBA,EAAKj8B,SAEdi8B,EAAOA,EAAK,IAGVA,GAAQA,EAAKoyG,SAEfpyG,EAAOA,EAAKoyG,QAMd,IAAI9xH,EAAU0f,GAAQA,EAAKuiL,YAAcviL,EAAKuiL,WAAW,MAQzD,OAAIjiM,GAAWA,EAAQ8xH,SAAWpyG,GAGhCjkC,KAAK6pN,cAAc5lL,GAEnB0jL,GAAW1jL,EAAM3mB,GACViH,GAGF,MAETulM,eAAgB,SAAUvlM,GACxB,IAAI8xH,EAAS9xH,EAAQ8xH,OAErB,GAAKA,EAAOqG,IAAZ,CAIA,IAAIorE,EAAUzxE,EAAOqG,IAAaorE,QAClC,CAAC,SAAU,SAAS93M,SAAQ,SAAUu5G,GACpC,IAAIp5G,EAAQ23M,EAAQv+F,GAEhBorB,GAAU/D,cAAczgI,GAC1BkmI,EAAO1yI,gBAAgB4lH,GAEvB8sB,EAAO5yI,aAAa8lH,EAAMp5G,MAG9BwkI,GAAU74F,KAAKgsK,EAAQn3M,OAAS,IAAI,SAAUR,EAAOxN,GACnD0zI,EAAO1lI,MAAMhO,GAAOwN,KAOtBkmI,EAAO7oH,MAAQ6oH,EAAO7oH,aACf6oH,EAAOqG,MAEhB52I,iBAAkB,SAAU4yI,EAAO1kI,EAAMqlC,GACvC,IAAIg9F,EAASqC,EAAMrC,OAEnB,GAAa,WAATriI,EAAJ,CAMA,IAAIypI,EAAUpkG,EAASqjG,MAAiBrjG,EAASqjG,IAAe,IAOhE+T,GAAYpa,EAAQriI,GANNypI,EAAQssE,UAAYtsE,EAAQssE,QAAU,KAEhCrxE,EAAMtjG,GAAK,IAAMphC,GAAQ,SAAU1F,GACrD+qC,EAAS+uK,GAAgB95M,EAAOoqI,WARhC2wE,GAAkBhzE,EAAQh9F,EAAUq/F,IAaxC3yI,oBAAqB,SAAU2yI,EAAO1kI,EAAMqlC,GAC1C,IAAIg9F,EAASqC,EAAMrC,OAEnB,GAAa,WAATriI,EAAJ,CAMA,IAEIg1M,IAFU3vK,EAASqjG,KAAgB,IACjBqtE,SAAW,IACbrxE,EAAMtjG,GAAK,IAAMphC,GAEhCg1M,GAILt4D,GAAera,EAAQriI,EAAMg1M,QAZ3BO,GAAqBlzE,KA0B3B1B,GAAUq1E,SAAWv5D,GAWrB9b,GAAUs1E,YAAcv5D,GAExB,IAAIx2D,GAAiBwvH,GAAeE,SAAWF,GAAiBpD,GAO5DvmK,GAAW40F,GAAUxtG,OAAO,CAI9BljC,WAAY,aASZsiN,eAAgB,aAQhBuD,eAAgB,aAShBhkN,iBAAkB,aAQlBC,oBAAqB,cACpBm0F,IAEHuxG,EAAczvD,KAAK,SAAU,CAC3Bz5H,QAAS,KASX,IAAI2nM,GAAe,CAKjBC,SAAU,GAQVC,SAAU,EAMVxyM,SAAU,SAAU2K,GAClB,IAAIlE,EAAIre,KAAKmqN,SACb,GAAGxzM,OAAO4L,GAASvS,SAAQ,SAAUiuI,IACR,IAAvB5/H,EAAE1W,QAAQs2I,IACZ5/H,EAAErQ,KAAKiwI,MAGXj+I,KAAKoqN,YAOPC,WAAY,SAAU9nM,GACpB,IAAIlE,EAAIre,KAAKmqN,SACb,GAAGxzM,OAAO4L,GAASvS,SAAQ,SAAUiuI,GACnC,IAAIrlI,EAAMyF,EAAE1W,QAAQs2I,IAEP,IAATrlI,GACFyF,EAAEoY,OAAO7d,EAAK,MAGlB5Y,KAAKoqN,YAOPx1M,MAAO,WACL5U,KAAKmqN,SAAW,GAChBnqN,KAAKoqN,YAQPrX,MAAO,WACL,OAAO/yM,KAAKmqN,SAASniN,QAQvB0pC,OAAQ,WACN,OAAO1xC,KAAKmqN,UAYdrkL,OAAQ,SAAU4yG,EAAO39G,EAAMvW,GAC7B,IAEIpd,EAAGyoD,EAAYouF,EAAQz3G,EAAQiqB,EAF/B65J,EAActqN,KAAKsqN,YAAY5xE,GAC/BvH,EAAOm5E,EAAYtiN,OAGvB,IAAKZ,EAAI,EAAGA,EAAI+pI,IAAQ/pI,EAKtB,GAAsB,oBAFtBqpD,GADAwtF,GADApuF,EAAay6J,EAAYljN,IACL62I,QACJljH,OAGdyL,EAAS,CAACkyG,GAAO/hI,OAAO6N,GAAQ,KACzBxW,KAAK6hD,EAAW14C,UAEc,IAAjCs5C,EAAO5sD,MAAMo6I,EAAQz3G,IACvB,OAAO,EAKb,OAAO,GAQT8jL,YAAa,SAAU5xE,GACrB,IAAI6xE,EAAQ7xE,EAAM8xE,WAAa9xE,EAAM8xE,SAAW,IAEhD,GAAID,EAAMn1K,KAAOp1C,KAAKoqN,SACpB,OAAOG,EAAMD,YAGf,IAAI/nM,EAAU,GACV+nM,EAAc,GACdhtM,EAASo7H,GAASA,EAAMp7H,QAAU,GAClCnG,EAAUmG,EAAOnG,SAAWmG,EAAOnG,QAAQoL,SAAW,GA6B1D,OA3BAviB,KAAKmqN,SAASxzM,OAAO2G,EAAOiF,SAAW,IAAIvS,SAAQ,SAAUiuI,GAG3D,IAAa,IAFH17H,EAAQ5a,QAAQs2I,GAE1B,CAIA,IAAI7oG,EAAK6oG,EAAO7oG,GACZl8B,EAAO/B,EAAQi+B,IAEN,IAATl8B,KAIS,IAATA,IACFA,EAAOy7H,GAAU9S,MAAM4pE,EAAcxjM,OAAOsa,QAAQ6yB,KAGtD7yB,EAAQvU,KAAKiwI,GACbqsE,EAAYt8M,KAAK,CACfiwI,OAAQA,EACR9mI,QAAS+B,GAAQ,UAIrBqxM,EAAMD,YAAcA,EACpBC,EAAMn1K,GAAKp1C,KAAKoqN,SACTE,GASTG,YAAa,SAAU/xE,UACdA,EAAM8xE,WAGbE,GAAoB,CAGtBC,aAAc,GAId7rM,SAAU,GACV8rM,kBAAmB,SAAU52M,EAAM62M,EAAkBC,GACnD9qN,KAAK2qN,aAAa32M,GAAQ62M,EAC1B7qN,KAAK8e,SAAS9K,GAAQ2gI,GAAU9S,MAAMipF,IAExCC,oBAAqB,SAAU/2M,GAC7B,OAAOhU,KAAK2qN,aAAapwM,eAAevG,GAAQhU,KAAK2qN,aAAa32M,QAAQhN,GAE5EgkN,iBAAkB,SAAUh3M,GAE1B,OAAOhU,KAAK8e,SAASvE,eAAevG,GAAQ2gI,GAAU3iE,MAAMxxE,OAAO4lC,OAAO,MAAO,CAACqlK,EAAcp2D,MAAOr1I,KAAK8e,SAAS9K,KAAU,IAEjIi3M,oBAAqB,SAAUj3M,EAAM8nE,GACnC,IAAI35C,EAAKniC,KAELmiC,EAAGrjB,SAASvE,eAAevG,KAC7BmuB,EAAGrjB,SAAS9K,GAAQ2gI,GAAUxtG,OAAOhF,EAAGrjB,SAAS9K,GAAO8nE,KAG5DovI,kBAAmB,SAAUxyE,GAE3B/D,GAAU74F,KAAK48F,EAAMsW,QAAQ,SAAU3Z,GAErCA,EAAM+uE,UAAY/uE,EAAMl+H,QAAQitM,UAChC/uE,EAAM7yH,SAAW6yH,EAAMl+H,QAAQqL,SAC/B6yH,EAAMrE,OAASqE,EAAMl+H,QAAQ65H,OAC7B60E,GAAaC,OAAOptE,EAAOrD,QAI7B81E,GAAmBx2E,GAAUpD,eAC7B65E,GAAez2E,GAAU5uF,IAAIwmJ,cAEjCd,EAAczvD,KAAK,SAAU,CAC3Bo/D,SAAU,CACRtpJ,SAAS,EACTggJ,OAAQ,KACRvwL,KAAM,UACNiB,SAAU,UACVmgM,WAAW,EACXxrI,gBAAiB,kBACjBk0I,eAAgB,OAChBC,aAAc,EACdC,kBAAmB,EACnBC,eAAgB,OAChBC,WAAY,OACZC,YAAa,EACbC,cAAe,OACfC,UAAW,OACXC,gBAAiB,OACjBC,cAAe,EACfC,gBAAiB,EACjBC,gBAAiB,OACjBC,YAAa,OACbC,SAAU,EACVC,SAAU,EACVC,aAAc,EACdC,UAAW,EACXpiB,aAAc,EACdqiB,mBAAoB,OACpBC,eAAe,EACfp2E,YAAa,gBACbtB,YAAa,EACbwmE,UAAW,CAETmR,YAAa73E,GAAU0b,KACvB/5H,MAAO,SAAUm2L,EAAcr8M,GAC7B,IAAIkmB,EAAQ,GACR80E,EAASh7F,EAAKg7F,OACdshH,EAAathH,EAASA,EAAOpjG,OAAS,EAE1C,GAAIykN,EAAazkN,OAAS,EAAG,CAC3B,IAAIi8B,EAAOwoL,EAAa,GAEpBxoL,EAAK52B,MACPipB,EAAQ2N,EAAK52B,MACJ42B,EAAKs3K,OACdjlL,EAAQ2N,EAAKs3K,OACJmR,EAAa,GAAKzoL,EAAKl8B,MAAQ2kN,IACxCp2L,EAAQ80E,EAAOnnE,EAAKl8B,QAIxB,OAAOuuB,GAETq2L,WAAYh4E,GAAU0b,KAEtBu8D,WAAYj4E,GAAU0b,KAEtBw8D,YAAal4E,GAAU0b,KACvBhjJ,MAAO,SAAUmvM,EAAapsM,GAC5B,IAAI/C,EAAQ+C,EAAK0rI,SAAS0gE,EAAYh+D,cAAcnxI,OAAS,GAY7D,OAVIA,IACFA,GAAS,MAGNsnI,GAAU/D,cAAc4rE,EAAYrsM,OAGvC9C,GAASmvM,EAAYhB,OAFrBnuM,GAASmvM,EAAYrsM,MAKhB9C,GAETy/M,WAAY,SAAUtQ,EAAa9jE,GACjC,IAEIgC,EAFOhC,EAAMy3D,eAAeqM,EAAYh+D,cACnBpuI,KAAKosM,EAAYz0M,OACjBu0I,MACzB,MAAO,CACLnG,YAAauE,EAAKvE,YAClBh/D,gBAAiBujE,EAAKvjE,kBAG1B41I,eAAgB,WACd,OAAO/sN,KAAKi2J,SAAS01D,eAEvBqB,WAAYr4E,GAAU0b,KAEtB48D,UAAWt4E,GAAU0b,KAErB68D,aAAcv4E,GAAU0b,KACxB88D,OAAQx4E,GAAU0b,KAClB+8D,YAAaz4E,GAAU0b,SAK7B,IAAIzc,GAAc,CAOhBy5E,QAAS,SAAUt6I,GACjB,IAAKA,EAAS/qE,OACZ,OAAO,EAGT,IAAIZ,EAAG2/B,EACHrzB,EAAI,EACJzW,EAAI,EACJ81M,EAAQ,EAEZ,IAAK3rM,EAAI,EAAG2/B,EAAMgsC,EAAS/qE,OAAQZ,EAAI2/B,IAAO3/B,EAAG,CAC/C,IAAIoI,EAAKujE,EAAS3rE,GAElB,GAAIoI,GAAMA,EAAGioG,WAAY,CACvB,IAAI2gB,EAAM5oH,EAAGq+L,kBACbn6L,GAAK0kH,EAAI1kH,EACTzW,GAAKm7H,EAAIn7H,IACP81M,GAIN,MAAO,CACLr/L,EAAGA,EAAIq/L,EACP91M,EAAGA,EAAI81M,IAWX2Q,QAAS,SAAU3wI,EAAUu6I,GAC3B,IAGIlmN,EAAG2/B,EAAKwmL,EAHR75M,EAAI45M,EAAc55M,EAClBzW,EAAIqwN,EAAcrwN,EAClB4lN,EAAcxxJ,OAAOyxJ,kBAGzB,IAAK17M,EAAI,EAAG2/B,EAAMgsC,EAAS/qE,OAAQZ,EAAI2/B,IAAO3/B,EAAG,CAC/C,IAAIoI,EAAKujE,EAAS3rE,GAElB,GAAIoI,GAAMA,EAAGioG,WAAY,CACvB,IAAI2hC,EAAS5pI,EAAGklM,iBACZ73M,EAAI83I,GAAU64E,sBAAsBF,EAAel0E,GAEnDv8I,EAAIgmN,IACNA,EAAchmN,EACd0wN,EAAiB/9M,IAKvB,GAAI+9M,EAAgB,CAClB,IAAIE,EAAKF,EAAe1f,kBACxBn6L,EAAI+5M,EAAG/5M,EACPzW,EAAIwwN,EAAGxwN,EAGT,MAAO,CACLyW,EAAGA,EACHzW,EAAGA,KAKT,SAASywN,GAAapyJ,EAAMqyJ,GAU1B,OATIA,IACEh5E,GAAUjqG,QAAQijL,GAEpBlvM,MAAMrd,UAAU4M,KAAKnK,MAAMy3D,EAAMqyJ,GAEjCryJ,EAAKttD,KAAK2/M,IAIPryJ,EAUT,SAASsyJ,GAAc3mN,GACrB,OAAoB,kBAARA,GAAoBA,aAAeR,SAAWQ,EAAIU,QAAQ,OAAS,EACtEV,EAAIhM,MAAM,MAGZgM,EAST,SAAS4mN,GAAkB9wM,GACzB,IAAI+xI,EAAS/xI,EAAQw4H,QACjBwZ,EAAShyI,EAAQy4H,SAAWz4H,EAAQu4H,OAEpCvtI,EAAQgV,EAAQq7H,OAChBoG,EAAezhI,EAAQ8zL,cAEvBr+F,EAAaz1F,EAAQ6zL,OAAOT,eAAe3xD,GAAchsC,WAEzDs7G,EAAat7G,EAAWi+F,iBAExBsd,EAAav7G,EAAWg+F,iBAE5B,MAAO,CACL+K,OAAQzsD,EAASA,EAAOk/D,iBAAiBjmN,EAAOy2I,GAAgB,GAChEg9D,OAAQzsD,EAASA,EAAOi/D,iBAAiBjmN,EAAOy2I,GAAgB,GAChEnxI,MAAOygN,EAAa,GAAKA,EAAWE,iBAAiBjmN,EAAOy2I,GAAgB,GAC5EruI,MAAO49M,EAAa,GAAKA,EAAWC,iBAAiBjmN,EAAOy2I,GAAgB,GAC5Ez2I,MAAOA,EACPy2I,aAAcA,EACd9qI,EAAGqJ,EAAQq4H,OAAO1hI,EAClBzW,EAAG8f,EAAQq4H,OAAOn4I,GAStB,SAASgxN,GAAaC,GACpB,IAAItiB,EAAiBH,EAAcxjM,OACnC,MAAO,CAELkkN,SAAU+B,EAAY/B,SACtBD,SAAUgC,EAAYhC,SACtBiC,OAAQD,EAAYC,OACpBC,OAAQF,EAAYE,OAEpBroK,IAAKmoK,EAAYnoK,IACjBsoK,cAAeH,EAAYG,cAE3B1C,cAAeuC,EAAYvC,cAC3B2C,gBAAiBnD,GAAiB+C,EAAYK,eAAgB3iB,EAAen6D,mBAC7E+8E,eAAgBrD,GAAiB+C,EAAYO,cAAe7iB,EAAej6D,kBAC3E+8E,WAAYR,EAAYtC,UACxB+C,aAAcxD,GAAiB+C,EAAYS,aAAc/iB,EAAep6D,iBACxEk6E,YAAawC,EAAYxC,YAEzBF,eAAgB0C,EAAY1C,eAC5BoD,iBAAkBzD,GAAiB+C,EAAYW,gBAAiBjjB,EAAen6D,mBAC/Eq9E,gBAAiB3D,GAAiB+C,EAAY7C,eAAgBzf,EAAej6D,kBAC7Eo9E,cAAe5D,GAAiB+C,EAAYa,cAAenjB,EAAep6D,iBAC1Ew9E,YAAad,EAAYzC,WACzBH,aAAc4C,EAAY5C,aAC1BC,kBAAmB2C,EAAY3C,kBAE/BS,gBAAiBkC,EAAYlC,gBAC7BiD,kBAAmB9D,GAAiB+C,EAAYgB,iBAAkBtjB,EAAen6D,mBACjF09E,iBAAkBhE,GAAiB+C,EAAYrC,gBAAiBjgB,EAAej6D,kBAC/Ey9E,eAAgBjE,GAAiB+C,EAAYkB,eAAgBxjB,EAAep6D,iBAC5E69E,aAAcnB,EAAYjC,YAC1BH,cAAeoC,EAAYpC,cAC3BC,gBAAiBmC,EAAYnC,gBAE7BM,UAAW6B,EAAY7B,UACvBpiB,aAAcikB,EAAYjkB,aAC1B9yH,gBAAiB+2I,EAAY/2I,gBAC7BwL,QAAS,EACT2sI,sBAAuBpB,EAAY5B,mBACnCC,cAAe2B,EAAY3B,cAC3Bp2E,YAAa+3E,EAAY/3E,YACzBtB,YAAaq5E,EAAYr5E,aAQ7B,SAAS06E,GAAeC,EAAS5tF,GAC/B,IAAIsP,EAAMs+E,EAAQ5e,OAAO1/D,IACrB/hI,EAA0B,EAAjByyH,EAAMsqF,SAEf1+L,EAAQ,EAERqC,EAAO+xG,EAAM/xG,KACb4/L,EAAqB5/L,EAAKyL,QAAO,SAAUy3K,EAAO2c,GACpD,OAAO3c,EAAQ2c,EAASC,OAAO3nN,OAAS0nN,EAAS/+E,MAAM3oI,OAAS0nN,EAASE,MAAM5nN,SAC9E,GACHynN,GAAsB7tF,EAAMgrF,WAAW5kN,OAAS45H,EAAMqrF,UAAUjlN,OAChE,IAAI6nN,EAAiBjuF,EAAMtrG,MAAMtuB,OAC7B8nN,EAAkBluF,EAAMurF,OAAOnlN,OAC/B+mN,EAAgBntF,EAAMmtF,cACtBJ,EAAe/sF,EAAM+sF,aACrBS,EAAiBxtF,EAAMwtF,eAC3BjgN,GAAU0gN,EAAiBd,EAE3B5/M,GAAU0gN,GAAkBA,EAAiB,GAAKjuF,EAAM0pF,aAAe,EAEvEn8M,GAAU0gN,EAAiBjuF,EAAM2pF,kBAAoB,EAErDp8M,GAAUsgN,EAAqBd,EAE/Bx/M,GAAUsgN,GAAsBA,EAAqB,GAAK7tF,EAAM8pF,YAAc,EAE9Ev8M,GAAU2gN,EAAkBluF,EAAMmqF,gBAAkB,EAEpD58M,GAAU2gN,EAAkBV,EAE5BjgN,GAAU2gN,GAAmBA,EAAkB,GAAKluF,EAAMkqF,cAAgB,EAG1E,IAAIiE,EAAe,EAEfC,EAAe,SAAUpwE,GAC3BpyH,EAAQ9U,KAAKmS,IAAI2C,EAAO0jH,EAAIE,YAAYwO,GAAMpyH,MAAQuiM,IAsBxD,OAnBA7+E,EAAIJ,KAAO6D,GAAUs7E,WAAWlB,EAAentF,EAAMktF,gBAAiBltF,EAAMgtF,kBAC5Ej6E,GAAU74F,KAAK8lF,EAAMtrG,MAAO05L,GAE5B9+E,EAAIJ,KAAO6D,GAAUs7E,WAAWtB,EAAc/sF,EAAM4sF,eAAgB5sF,EAAM0sF,iBAC1E35E,GAAU74F,KAAK8lF,EAAMgrF,WAAWj2M,OAAOirH,EAAMqrF,WAAY+C,GAEzDD,EAAenuF,EAAM2qF,cAAgBoC,EAAe,EAAI,EACxDh6E,GAAU74F,KAAKjsB,GAAM,SAAU6/L,GAC7B/6E,GAAU74F,KAAK4zK,EAASC,OAAQK,GAChCr7E,GAAU74F,KAAK4zK,EAAS/+E,MAAOq/E,GAC/Br7E,GAAU74F,KAAK4zK,EAASE,MAAOI,MAGjCD,EAAe,EAEf7+E,EAAIJ,KAAO6D,GAAUs7E,WAAWb,EAAgBxtF,EAAMutF,iBAAkBvtF,EAAMqtF,mBAC9Et6E,GAAU74F,KAAK8lF,EAAMurF,OAAQ6C,GAGtB,CACLxiM,MAFFA,GAAS,EAAIo0G,EAAMuqF,SAGjBh9M,OAAQA,GAQZ,SAAS+gN,GAAmBV,EAASl+J,GACnC,IAYI6+J,EAAIC,EAEJC,EAAKC,EAELC,EAhBA3uF,EAAQ4tF,EAAQp6E,OAChBsD,EAAQ82E,EAAQ5e,OAChBj4D,EAAY62E,EAAQ5e,OAAOj4D,UAC3Bw1E,EAAS,SACTC,EAAS,SAETxsF,EAAM3kI,EAAIq0D,EAAKniD,OACjBi/M,EAAS,MACAxsF,EAAM3kI,EAAIy7I,EAAMvpI,OAASmiD,EAAKniD,SACvCi/M,EAAS,UASX,IAAIoC,GAAQ73E,EAAU7kI,KAAO6kI,EAAUp8G,OAAS,EAC5Ck0L,GAAQ93E,EAAUvpI,IAAMupI,EAAU18G,QAAU,EAEjC,WAAXmyL,GACF+B,EAAK,SAAUz8M,GACb,OAAOA,GAAK88M,GAGdJ,EAAK,SAAU18M,GACb,OAAOA,EAAI88M,KAGbL,EAAK,SAAUz8M,GACb,OAAOA,GAAK49C,EAAK9jC,MAAQ,GAG3B4iM,EAAK,SAAU18M,GACb,OAAOA,GAAKglI,EAAMlrH,MAAQ8jC,EAAK9jC,MAAQ,IAI3C6iM,EAAM,SAAU38M,GACd,OAAOA,EAAI49C,EAAK9jC,MAAQo0G,EAAMyqF,UAAYzqF,EAAMwqF,aAAe1zE,EAAMlrH,OAGvE8iM,EAAM,SAAU58M,GACd,OAAOA,EAAI49C,EAAK9jC,MAAQo0G,EAAMyqF,UAAYzqF,EAAMwqF,aAAe,GAGjEmE,EAAK,SAAUtzN,GACb,OAAOA,GAAKwzN,EAAO,MAAQ,UAGzBN,EAAGvuF,EAAMluH,IACXy6M,EAAS,OAELkC,EAAIzuF,EAAMluH,KACZy6M,EAAS,SACTC,EAASmC,EAAG3uF,EAAM3kI,KAEXmzN,EAAGxuF,EAAMluH,KAClBy6M,EAAS,QAELmC,EAAI1uF,EAAMluH,KACZy6M,EAAS,SACTC,EAASmC,EAAG3uF,EAAM3kI,KAItB,IAAIic,EAAOs2M,EAAQv5D,SACnB,MAAO,CACLk4D,OAAQj1M,EAAKi1M,OAASj1M,EAAKi1M,OAASA,EACpCC,OAAQl1M,EAAKk1M,OAASl1M,EAAKk1M,OAASA,GAQxC,SAASsC,GAAmB58E,EAAIxiF,EAAMq/J,EAAWj4E,GAE/C,IAAIhlI,EAAIogI,EAAGpgI,EACPzW,EAAI62I,EAAG72I,EACPovN,EAAYv4E,EAAGu4E,UACfD,EAAet4E,EAAGs4E,aAClBniB,EAAen2D,EAAGm2D,aAClBkkB,EAASwC,EAAUxC,OACnBC,EAASuC,EAAUvC,OACnBwC,EAAiBvE,EAAYD,EAC7ByE,EAAmB5mB,EAAemiB,EAoCtC,MAlCe,UAAX+B,EACFz6M,GAAK49C,EAAK9jC,MACU,WAAX2gM,KACTz6M,GAAK49C,EAAK9jC,MAAQ,GAEV8jC,EAAK9jC,MAAQkrH,EAAMlrH,QACzB9Z,EAAIglI,EAAMlrH,MAAQ8jC,EAAK9jC,OAGrB9Z,EAAI,IACNA,EAAI,IAIO,QAAX06M,EACFnxN,GAAK2zN,EAEL3zN,GADoB,WAAXmxN,EACJ98J,EAAKniD,OAASyhN,EAEdt/J,EAAKniD,OAAS,EAGN,WAAXi/M,EACa,SAAXD,EACFz6M,GAAKk9M,EACe,UAAXzC,IACTz6M,GAAKk9M,GAEa,SAAXzC,EACTz6M,GAAKm9M,EACe,UAAX1C,IACTz6M,GAAKm9M,GAGA,CACLn9M,EAAGA,EACHzW,EAAGA,GAIP,SAAS6zN,GAAYh9E,EAAIpB,GACvB,MAAiB,WAAVA,EAAqBoB,EAAGpgI,EAAIogI,EAAGtmH,MAAQ,EAAc,UAAVklH,EAAoBoB,EAAGpgI,EAAIogI,EAAGtmH,MAAQsmH,EAAGq4E,SAAWr4E,EAAGpgI,EAAIogI,EAAGq4E,SAOlH,SAAS4E,GAAwB/tN,GAC/B,OAAO0qN,GAAa,GAAIE,GAAc5qN,IAGxC,IAAIguN,GAAYljB,GAAa3mK,OAAO,CAClCljC,WAAY,WACVjE,KAAKo1I,OAAS64E,GAAajuN,KAAKi2J,UAChCj2J,KAAKixN,YAAc,IAIrBC,SAAU,WACR,IAAI/uL,EAAKniC,KAELq7M,EADOl5K,EAAG8zH,SACOolD,UACjBmR,EAAcnR,EAAUmR,YAAY3oN,MAAMs+B,EAAIr+B,WAC9CwyB,EAAQ+kL,EAAU/kL,MAAMzyB,MAAMs+B,EAAIr+B,WAClC6oN,EAAatR,EAAUsR,WAAW9oN,MAAMs+B,EAAIr+B,WAC5C6sI,EAAQ,GAIZ,OAHAA,EAAQ+8E,GAAa/8E,EAAOi9E,GAAcpB,IAC1C77E,EAAQ+8E,GAAa/8E,EAAOi9E,GAAct3L,IAC1Cq6G,EAAQ+8E,GAAa/8E,EAAOi9E,GAAcjB,KAI5CwE,cAAe,WACb,OAAOJ,GAAwB/wN,KAAKi2J,SAASolD,UAAUuR,WAAW/oN,MAAM7D,KAAM8D,aAGhFg2F,QAAS,SAAU2yH,EAAcr8M,GAC/B,IAAI+xB,EAAKniC,KACLq7M,EAAYl5K,EAAG8zH,SAASolD,UACxB+V,EAAY,GAYhB,OAXAz8E,GAAU74F,KAAK2wK,GAAc,SAAUjQ,GACrC,IAAIkT,EAAW,CACbC,OAAQ,GACRh/E,MAAO,GACPi/E,MAAO,IAETlC,GAAagC,EAASC,OAAQ/B,GAAcvS,EAAUwR,YAAY9sN,KAAKoiC,EAAIq6K,EAAapsM,KACxFs9M,GAAagC,EAAS/+E,MAAO0qE,EAAUhuM,MAAMtN,KAAKoiC,EAAIq6K,EAAapsM,IACnEs9M,GAAagC,EAASE,MAAOhC,GAAcvS,EAAU2R,WAAWjtN,KAAKoiC,EAAIq6K,EAAapsM,KACtFghN,EAAUpjN,KAAK0hN,MAEV0B,GAGTC,aAAc,WACZ,OAAON,GAAwB/wN,KAAKi2J,SAASolD,UAAU4R,UAAUppN,MAAM7D,KAAM8D,aAI/EwtN,UAAW,WACT,IAAInvL,EAAKniC,KACLq7M,EAAYl5K,EAAG8zH,SAASolD,UACxB6R,EAAe7R,EAAU6R,aAAarpN,MAAMs+B,EAAIr+B,WAChDqpN,EAAS9R,EAAU8R,OAAOtpN,MAAMs+B,EAAIr+B,WACpCspN,EAAc/R,EAAU+R,YAAYvpN,MAAMs+B,EAAIr+B,WAC9C6sI,EAAQ,GAIZ,OAHAA,EAAQ+8E,GAAa/8E,EAAOi9E,GAAcV,IAC1Cv8E,EAAQ+8E,GAAa/8E,EAAOi9E,GAAcT,IAC1Cx8E,EAAQ+8E,GAAa/8E,EAAOi9E,GAAcR,KAG5Cl8J,OAAQ,SAAUu0J,GAChB,IA0BIr+M,EAAG2/B,EA1BH5E,EAAKniC,KACLkZ,EAAOipB,EAAG8zH,SAIVs7D,EAAgBpvL,EAAGizG,OACnBxT,EAAQz/F,EAAGizG,OAAS64E,GAAa/0M,GACjCwlI,EAASv8G,EAAGqvL,QACZphN,EAAO+xB,EAAGw+F,MAEVgwF,EAAY,CACdxC,OAAQoD,EAAcpD,OACtBC,OAAQmD,EAAcnD,QAEpBqD,EAAkB,CACpB/9M,EAAG69M,EAAc79M,EACjBzW,EAAGs0N,EAAct0N,GAEfy0N,EAAc,CAChBlkM,MAAO+jM,EAAc/jM,MACrBre,OAAQoiN,EAAcpiN,QAEpB0+L,EAAkB,CACpBn6L,EAAG69M,EAAcI,OACjB10N,EAAGs0N,EAAcK,QAInB,GAAIlzE,EAAO12I,OAAQ,CACjB45H,EAAMj/C,QAAU,EAChB,IAAIkvI,EAAc,GACdC,EAAkB,GACtBjkB,EAAkBj6D,GAAY16H,EAAKsJ,UAAUziB,KAAKoiC,EAAIu8G,EAAQv8G,EAAG4vL,gBACjE,IAAItF,EAAe,GAEnB,IAAKrlN,EAAI,EAAG2/B,EAAM23G,EAAO12I,OAAQZ,EAAI2/B,IAAO3/B,EAC1CqlN,EAAaz+M,KAAK6/M,GAAkBnvE,EAAOt3I,KAIzC8R,EAAK6f,SACP0zL,EAAeA,EAAa1zL,QAAO,SAAUpa,GAC3C,OAAOzF,EAAK6f,OAAOpa,EAAGvO,OAKtB8I,EAAK84M,WACPvF,EAAeA,EAAa3uL,MAAK,SAAUnf,EAAGrhB,GAC5C,OAAO4b,EAAK84M,SAASrzM,EAAGrhB,EAAG8S,OAK/BukI,GAAU74F,KAAK2wK,GAAc,SAAUjQ,GACrCqV,EAAY7jN,KAAKkL,EAAKmiM,UAAUyR,WAAW/sN,KAAKoiC,EAAIq6K,EAAar6K,EAAGyuK,SACpEkhB,EAAgB9jN,KAAKkL,EAAKmiM,UAAU0R,eAAehtN,KAAKoiC,EAAIq6K,EAAar6K,EAAGyuK,YAG9EhvE,EAAMtrG,MAAQ6L,EAAG+uL,SAASzE,EAAcr8M,GACxCwxH,EAAMgrF,WAAazqL,EAAGgvL,cAAc1E,EAAcr8M,GAClDwxH,EAAM/xG,KAAOsS,EAAG23D,QAAQ2yH,EAAcr8M,GACtCwxH,EAAMqrF,UAAY9qL,EAAGkvL,aAAa5E,EAAcr8M,GAChDwxH,EAAMurF,OAAShrL,EAAGmvL,UAAU7E,EAAcr8M,GAE1CwxH,EAAMluH,EAAIm6L,EAAgBn6L,EAC1BkuH,EAAM3kI,EAAI4wM,EAAgB5wM,EAC1B2kI,EAAMwqF,aAAelzM,EAAKkzM,aAC1BxqF,EAAMiwF,YAAcA,EACpBjwF,EAAMkwF,gBAAkBA,EAExBlwF,EAAMqwF,WAAaxF,EAKnBgF,EAAkBf,GAAmB9uF,EAHrC8vF,EAAcnC,GAAevvN,KAAM4hI,GACnC+uF,EAAYT,GAAmBlwN,KAAM0xN,GAE+BvvL,EAAGyuK,aAEvEhvE,EAAMj/C,QAAU,EAkBlB,OAfAi/C,EAAMusF,OAASwC,EAAUxC,OACzBvsF,EAAMwsF,OAASuC,EAAUvC,OACzBxsF,EAAMluH,EAAI+9M,EAAgB/9M,EAC1BkuH,EAAM3kI,EAAIw0N,EAAgBx0N,EAC1B2kI,EAAMp0G,MAAQkkM,EAAYlkM,MAC1Bo0G,EAAMzyH,OAASuiN,EAAYviN,OAE3ByyH,EAAM+vF,OAAS9jB,EAAgBn6L,EAC/BkuH,EAAMgwF,OAAS/jB,EAAgB5wM,EAC/BklC,EAAGizG,OAASxT,EAER6jF,GAAWvsM,EAAK44L,QAClB54L,EAAK44L,OAAO/xM,KAAKoiC,EAAIy/F,GAGhBz/F,GAET+vL,UAAW,SAAUC,EAAc7gK,GACjC,IAAI4/E,EAAMlxI,KAAK4wM,OAAO1/D,IAClB4C,EAAK9zI,KAAKs8I,MACV81E,EAAgBpyN,KAAKqyN,iBAAiBF,EAAc7gK,EAAMwiF,GAC9D5C,EAAIk5D,OAAOgoB,EAAc7+E,GAAI6+E,EAAc5+E,IAC3CtC,EAAIk5D,OAAOgoB,EAActzB,GAAIszB,EAAcvzB,IAC3C3tD,EAAIk5D,OAAOgoB,EAAcE,GAAIF,EAAcG,KAE7CF,iBAAkB,SAAUF,EAAc7gK,EAAMwiF,GAC9C,IAAIP,EAAIurD,EAAIwzB,EAAI9+E,EAAIqrD,EAAI0zB,EACpBlG,EAAYv4E,EAAGu4E,UACfpiB,EAAen2D,EAAGm2D,aAClBkkB,EAASr6E,EAAGq6E,OACZC,EAASt6E,EAAGs6E,OACZoE,EAAML,EAAaz+M,EACnB++M,EAAMN,EAAal1N,EACnBuwB,EAAQ8jC,EAAK9jC,MACbre,EAASmiD,EAAKniD,OAElB,GAAe,WAAXi/M,EACFvvB,EAAK4zB,EAAMtjN,EAAS,EAEL,SAAXg/M,GAEFrvB,GADAvrD,EAAKi/E,GACKnG,EACViG,EAAK/+E,EACLC,EAAKqrD,EAAKwtB,EACVkG,EAAK1zB,EAAKwtB,IAGVvtB,GADAvrD,EAAKi/E,EAAMhlM,GACD6+L,EACViG,EAAK/+E,EACLC,EAAKqrD,EAAKwtB,EACVkG,EAAK1zB,EAAKwtB,QAiBZ,GAde,SAAX8B,GAEF56E,GADAurD,EAAK0zB,EAAMvoB,EAAeoiB,GAChBA,EACViG,EAAKxzB,EAAKutB,GACU,UAAX8B,GAET56E,GADAurD,EAAK0zB,EAAMhlM,EAAQy8K,EAAeoiB,GACxBA,EACViG,EAAKxzB,EAAKutB,IAGV94E,GADAurD,EAAKhrD,EAAG69E,QACEtF,EACViG,EAAKxzB,EAAKutB,GAGG,QAAX+B,EAEFvvB,GADArrD,EAAKi/E,GACKpG,EACVkG,EAAK/+E,MACA,CAELqrD,GADArrD,EAAKi/E,EAAMtjN,GACDk9M,EACVkG,EAAK/+E,EAEL,IAAI3nG,EAAMymL,EACVA,EAAK/+E,EACLA,EAAK1nG,EAIT,MAAO,CACL0nG,GAAIA,EACJurD,GAAIA,EACJwzB,GAAIA,EACJ9+E,GAAIA,EACJqrD,GAAIA,EACJ0zB,GAAIA,IAGRG,UAAW,SAAUx4E,EAAIpG,EAAI5C,GAC3B,IAEI69E,EAAezD,EAAclkN,EAF7BkvB,EAAQw9G,EAAGx9G,MACXtuB,EAASsuB,EAAMtuB,OAGnB,GAAIA,EAAQ,CACV,IAAI2qN,EAAYvH,GAAat3E,EAAG/tF,IAAK+tF,EAAGpgI,EAAGogI,EAAGtmH,OAS9C,IARA0sH,EAAGxmI,EAAIo9M,GAAYh9E,EAAIA,EAAGk7E,aAC1B99E,EAAIuG,UAAYk7E,EAAUl7E,UAAU3D,EAAGk7E,aACvC99E,EAAI6G,aAAe,SACnBg3E,EAAgBj7E,EAAGi7E,cACnBzD,EAAex3E,EAAGw3E,aAClBp6E,EAAIuF,UAAY3C,EAAG03E,eACnBt6E,EAAIJ,KAAO6D,GAAUs7E,WAAWlB,EAAej7E,EAAGg7E,gBAAiBh7E,EAAG86E,kBAEjExnN,EAAI,EAAGA,EAAIY,IAAUZ,EACxB8pI,EAAIqG,SAASjhH,EAAMlvB,GAAIurN,EAAUj/M,EAAEwmI,EAAGxmI,GAAIwmI,EAAGj9I,EAAI8xN,EAAgB,GACjE70E,EAAGj9I,GAAK8xN,EAAgBzD,EAEpBlkN,EAAI,IAAMY,IACZkyI,EAAGj9I,GAAK62I,EAAGy3E,kBAAoBD,KAKvCsH,SAAU,SAAU14E,EAAIpG,EAAI5C,GAC1B,IAcIw+E,EAAUmD,EAAWhB,EAAalhF,EAAOvpI,EAAGwP,EAAGu6H,EAAM4K,EAdrD4yE,EAAe76E,EAAG66E,aAClBjD,EAAc53E,EAAG43E,YACjBE,EAAY93E,EAAG46E,WACf7+L,EAAOikH,EAAGjkH,KACVijM,EAAiBh/E,EAAGy4E,cACpBwG,EAAe,EACfC,EAASF,EAAiBhC,GAAYh9E,EAAI,QAAU,EACpD6+E,EAAYvH,GAAat3E,EAAG/tF,IAAK+tF,EAAGpgI,EAAGogI,EAAGtmH,OAE1CylM,EAAiB,SAAUrzE,GAC7B1O,EAAIqG,SAASqI,EAAM+yE,EAAUj/M,EAAEwmI,EAAGxmI,EAAIq/M,GAAe74E,EAAGj9I,EAAI0xN,EAAe,GAC3Ez0E,EAAGj9I,GAAK0xN,EAAejD,GAIrBwH,EAA0BP,EAAUl7E,UAAUm0E,GAUlD,IATA16E,EAAIuG,UAAYm0E,EAChB16E,EAAI6G,aAAe,SACnB7G,EAAIJ,KAAO6D,GAAUs7E,WAAWtB,EAAc76E,EAAG06E,eAAgB16E,EAAGw6E,iBACpEp0E,EAAGxmI,EAAIo9M,GAAYh9E,EAAIo/E,GAEvBhiF,EAAIuF,UAAY3C,EAAG63E,cACnBh3E,GAAU74F,KAAKg4F,EAAG84E,WAAYqG,GAC9BF,EAAeD,GAA8C,UAA5BI,EAAoD,WAAdtH,EAAyB+C,EAAe,EAAI,EAAIA,EAAe,EAAI,EAErIvnN,EAAI,EAAG+pI,EAAOthH,EAAK7nB,OAAQZ,EAAI+pI,IAAQ/pI,EAAG,CAQ7C,IAPAsoN,EAAW7/L,EAAKzoB,GAChByrN,EAAY/+E,EAAGg+E,gBAAgB1qN,GAC/ByqN,EAAc/9E,EAAG+9E,YAAYzqN,GAC7B8pI,EAAIuF,UAAYo8E,EAChBl+E,GAAU74F,KAAK4zK,EAASC,OAAQsD,GAG3Br8M,EAAI,EAAGmlI,GAFZpL,EAAQ++E,EAAS/+E,OAEQ3oI,OAAQ4O,EAAImlI,IAAQnlI,EAAG,CAE9C,GAAIk8M,EAAgB,CAClB,IAAIK,EAAYR,EAAUj/M,EAAEs/M,GAE5B9hF,EAAIuF,UAAY3C,EAAGw7E,sBACnBp+E,EAAI4mE,SAAS6a,EAAUhmB,WAAWwmB,EAAWxE,GAAez0E,EAAGj9I,EAAG0xN,EAAcA,GAEhFz9E,EAAI0F,UAAY,EAChB1F,EAAIyF,YAAck7E,EAAY17E,YAC9BjF,EAAIkiF,WAAWT,EAAUhmB,WAAWwmB,EAAWxE,GAAez0E,EAAGj9I,EAAG0xN,EAAcA,GAElFz9E,EAAIuF,UAAYo7E,EAAY16I,gBAC5B+5D,EAAI4mE,SAAS6a,EAAUhmB,WAAWgmB,EAAUjmB,MAAMymB,EAAW,GAAIxE,EAAe,GAAIz0E,EAAGj9I,EAAI,EAAG0xN,EAAe,EAAGA,EAAe,GAC/Hz9E,EAAIuF,UAAYo8E,EAGlBI,EAAetiF,EAAM/5H,IAGvB+9H,GAAU74F,KAAK4zK,EAASE,MAAOqD,GAIjCF,EAAe,EAEfp+E,GAAU74F,KAAKg4F,EAAGm5E,UAAWgG,GAC7B/4E,EAAGj9I,GAAKyuN,GAEV2H,WAAY,SAAUn5E,EAAIpG,EAAI5C,GAC5B,IAEIk+E,EAAgBhoN,EAFhB+lN,EAASr5E,EAAGq5E,OACZnlN,EAASmlN,EAAOnlN,OAGpB,GAAIA,EAAQ,CACV,IAAI2qN,EAAYvH,GAAat3E,EAAG/tF,IAAK+tF,EAAGpgI,EAAGogI,EAAGtmH,OAS9C,IARA0sH,EAAGxmI,EAAIo9M,GAAYh9E,EAAIA,EAAGu7E,cAC1Bn1E,EAAGj9I,GAAK62I,EAAGi4E,gBACX76E,EAAIuG,UAAYk7E,EAAUl7E,UAAU3D,EAAGu7E,cACvCn+E,EAAI6G,aAAe,SACnBq3E,EAAiBt7E,EAAGs7E,eACpBl+E,EAAIuF,UAAY3C,EAAGk4E,gBACnB96E,EAAIJ,KAAO6D,GAAUs7E,WAAWb,EAAgBt7E,EAAGq7E,iBAAkBr7E,EAAGm7E,mBAEnE7nN,EAAI,EAAGA,EAAIY,IAAUZ,EACxB8pI,EAAIqG,SAAS41E,EAAO/lN,GAAIurN,EAAUj/M,EAAEwmI,EAAGxmI,GAAIwmI,EAAGj9I,EAAImyN,EAAiB,GACnEl1E,EAAGj9I,GAAKmyN,EAAiBt7E,EAAGg4E,gBAIlCwH,eAAgB,SAAUp5E,EAAIpG,EAAI5C,EAAKwgF,GACrCxgF,EAAIuF,UAAY3C,EAAG38D,gBACnB+5D,EAAIyF,YAAc7C,EAAGqC,YACrBjF,EAAI0F,UAAY9C,EAAGe,YACnB,IAAIs5E,EAASr6E,EAAGq6E,OACZC,EAASt6E,EAAGs6E,OACZ16M,EAAIwmI,EAAGxmI,EACPzW,EAAIi9I,EAAGj9I,EACPuwB,EAAQkkM,EAAYlkM,MACpBre,EAASuiN,EAAYviN,OACrBklI,EAASP,EAAGm2D,aAChB/4D,EAAIkF,YACJlF,EAAI24D,OAAOn2L,EAAI2gI,EAAQp3I,GAER,QAAXmxN,GACFpuN,KAAKkyN,UAAUh4E,EAAIw3E,GAGrBxgF,EAAIk5D,OAAO12L,EAAI8Z,EAAQ6mH,EAAQp3I,GAC/Bi0I,EAAIqiF,iBAAiB7/M,EAAI8Z,EAAOvwB,EAAGyW,EAAI8Z,EAAOvwB,EAAIo3I,GAEnC,WAAX+5E,GAAkC,UAAXD,GACzBnuN,KAAKkyN,UAAUh4E,EAAIw3E,GAGrBxgF,EAAIk5D,OAAO12L,EAAI8Z,EAAOvwB,EAAIkS,EAASklI,GACnCnD,EAAIqiF,iBAAiB7/M,EAAI8Z,EAAOvwB,EAAIkS,EAAQuE,EAAI8Z,EAAQ6mH,EAAQp3I,EAAIkS,GAErD,WAAXi/M,GACFpuN,KAAKkyN,UAAUh4E,EAAIw3E,GAGrBxgF,EAAIk5D,OAAO12L,EAAI2gI,EAAQp3I,EAAIkS,GAC3B+hI,EAAIqiF,iBAAiB7/M,EAAGzW,EAAIkS,EAAQuE,EAAGzW,EAAIkS,EAASklI,GAErC,WAAX+5E,GAAkC,SAAXD,GACzBnuN,KAAKkyN,UAAUh4E,EAAIw3E,GAGrBxgF,EAAIk5D,OAAO12L,EAAGzW,EAAIo3I,GAClBnD,EAAIqiF,iBAAiB7/M,EAAGzW,EAAGyW,EAAI2gI,EAAQp3I,GACvCi0I,EAAIsF,YACJtF,EAAIwF,OAEA5C,EAAGe,YAAc,GACnB3D,EAAI4F,UAGRqC,KAAM,WACJ,IAAIjI,EAAMlxI,KAAK4wM,OAAO1/D,IAClB4C,EAAK9zI,KAAKs8I,MAEd,GAAmB,IAAfxI,EAAGnxD,QAAP,CAIA,IAAI+uI,EAAc,CAChBlkM,MAAOsmH,EAAGtmH,MACVre,OAAQ2kI,EAAG3kI,QAET+qI,EAAK,CACPxmI,EAAGogI,EAAGpgI,EACNzW,EAAG62I,EAAG72I,GAGJ0lF,EAAUjqE,KAAKC,IAAIm7H,EAAGnxD,QAAU,MAAQ,EAAImxD,EAAGnxD,QAE/C6wI,EAAoB1/E,EAAGx9G,MAAMtuB,QAAU8rI,EAAG84E,WAAW5kN,QAAU8rI,EAAGjkH,KAAK7nB,QAAU8rI,EAAGm5E,UAAUjlN,QAAU8rI,EAAGq5E,OAAOnlN,OAElHhI,KAAKi2J,SAASnkG,SAAW0hK,IAC3BtiF,EAAImI,OACJnI,EAAIoI,YAAc32D,EAElB3iF,KAAKszN,eAAep5E,EAAIpG,EAAI5C,EAAKwgF,GAEjCx3E,EAAGj9I,GAAK62I,EAAGo4E,SACXv3E,GAAU5uF,IAAIknJ,sBAAsB/7D,EAAK4C,EAAGu6E,eAE5CruN,KAAK0yN,UAAUx4E,EAAIpG,EAAI5C,GAEvBlxI,KAAK4yN,SAAS14E,EAAIpG,EAAI5C,GAEtBlxI,KAAKqzN,WAAWn5E,EAAIpG,EAAI5C,GACxByD,GAAU5uF,IAAIsnJ,qBAAqBn8D,EAAK4C,EAAGu6E,eAC3Cn9E,EAAIsI,aAUR5/F,YAAa,SAAUl/B,GACrB,IAAIynB,EAAKniC,KACLmX,EAAUgrB,EAAG8zH,SACbwvD,GAAU,EA6Bd,OA5BAtjL,EAAG8uL,YAAc9uL,EAAG8uL,aAAe,GAEpB,aAAXv2M,EAAE1G,KACJmuB,EAAGqvL,QAAU,IAEbrvL,EAAGqvL,QAAUrvL,EAAGyuK,OAAO6iB,0BAA0B/4M,EAAGvD,EAAQoK,KAAMpK,GAE9DA,EAAQ22B,SACV3L,EAAGqvL,QAAQ1jL,YAKf23K,GAAW9wE,GAAUsxD,YAAY9jK,EAAGqvL,QAASrvL,EAAG8uL,gBAG9C9uL,EAAG8uL,YAAc9uL,EAAGqvL,SAEhBr6M,EAAQ26C,SAAW36C,EAAQ26L,UAC7B3vK,EAAG4vL,eAAiB,CAClBr+M,EAAGgH,EAAEhH,EACLzW,EAAGyd,EAAEzd,GAEPklC,EAAG+uB,QAAO,GACV/uB,EAAGg4J,UAIAsrB,KAOPiO,GAAgB9/E,GAChB+/E,GAAe3C,GACnB2C,GAAa//E,YAAc8/E,GAC3B,IAAIE,GAAmBj/E,GAAUpD,eAuBjC,SAASsiF,KAGP,OAAOl/E,GAAU3iE,MAAMxxE,OAAO4lC,OAAO,MAAO,GAAGx+B,MAAM7H,KAAK+D,WAAY,CACpE66I,OAAQ,SAAUh8I,EAAKiC,EAAQ4C,EAAQ2P,GACrC,GAAY,UAARxU,GAA2B,UAARA,EAAiB,CACtC,IACIyE,EAAG4M,EAAMqhI,EADTy+E,EAAOtsN,EAAO7E,GAAKqF,OAOvB,IAJKpD,EAAOjC,KACViC,EAAOjC,GAAO,IAGXyE,EAAI,EAAGA,EAAI0sN,IAAQ1sN,EACtBiuI,EAAQ7tI,EAAO7E,GAAKyE,GACpB4M,EAAO4/M,GAAiBv+E,EAAMrhI,KAAc,UAARrR,EAAkB,WAAa,UAE/DyE,GAAKxC,EAAOjC,GAAKqF,QACnBpD,EAAOjC,GAAKqL,KAAK,KAGdpJ,EAAOjC,GAAKyE,GAAG4M,MAAQqhI,EAAMrhI,MAAQqhI,EAAMrhI,OAASpP,EAAOjC,GAAKyE,GAAG4M,KAGtE2gI,GAAU3iE,MAAMptE,EAAOjC,GAAKyE,GAAI,CAACsjN,GAAkBM,iBAAiBh3M,GAAOqhI,IAG3EV,GAAU3iE,MAAMptE,EAAOjC,GAAKyE,GAAIiuI,QAIpCV,GAAUyxD,QAAQzjM,EAAKiC,EAAQ4C,EAAQ2P,MAY/C,SAASgoG,KAGP,OAAOw1B,GAAU3iE,MAAMxxE,OAAO4lC,OAAO,MAAO,GAAGx+B,MAAM7H,KAAK+D,WAAY,CACpE66I,OAAQ,SAAUh8I,EAAKiC,EAAQ4C,EAAQ2P,GACrC,IAAIkvL,EAAOzhM,EAAOjC,IAAQnC,OAAO4lC,OAAO,MACpCkgK,EAAO9+L,EAAO7E,GAEN,WAARA,EAEFiC,EAAOjC,GAAOkxN,GAAiBxtB,EAAMC,GACpB,UAAR3jM,EAETiC,EAAOjC,GAAOgyI,GAAU3iE,MAAMq0H,EAAM,CAACqkB,GAAkBM,iBAAiB1kB,EAAKtyL,MAAOsyL,IAEpF3xD,GAAUyxD,QAAQzjM,EAAKiC,EAAQ4C,EAAQ2P,MAM/C,SAAS48M,GAAWz2M,GAIlB,IAAIlN,GAHJkN,EAASA,GAAU9c,OAAO4lC,OAAO,OAGfh2B,KAAOkN,EAAOlN,MAAQ,GAIxC,OAHAA,EAAK0rI,SAAW1rI,EAAK0rI,UAAY,GACjC1rI,EAAKg7F,OAASh7F,EAAKg7F,QAAU,GAC7B9tF,EAAOnG,QAAUgoG,GAAYssF,EAAcxjM,OAAQwjM,EAAcnuL,EAAOtJ,MAAOsJ,EAAOnG,SAAW,IAC1FmG,EAGT,SAAS02M,GAAat7E,GACpB,IAAIu7E,EAAav7E,EAAMvhI,QACvBw9H,GAAU74F,KAAK48F,EAAMsW,QAAQ,SAAU3Z,GACrCwwE,GAAaG,UAAUttE,EAAOrD,MAEhC4+E,EAAa90G,GAAYssF,EAAcxjM,OAAQwjM,EAAc/yD,EAAMp7H,OAAOtJ,MAAOigN,GACjFv7E,EAAMvhI,QAAUuhI,EAAMp7H,OAAOnG,QAAU88M,EACvCv7E,EAAMw7E,sBACNx7E,EAAMy7E,sBAENz7E,EAAM82E,QAAQv5D,SAAWg+D,EAAW7Y,SACpC1iE,EAAM82E,QAAQvrN,aAGhB,SAASmwN,GAAqBC,EAAUt5M,EAAQhT,GAC9C,IAAIqtC,EAEAk/K,EAAQ,SAAUx5M,GACpB,OAAOA,EAAIs6B,KAAOA,GAGpB,GACEA,EAAKr6B,EAAShT,UACP4sI,GAAU77B,UAAUu7G,EAAUC,IAAU,GAEjD,OAAOl/K,EAGT,SAASm/K,GAAqB/xM,GAC5B,MAAoB,QAAbA,GAAmC,WAAbA,EAG/B,SAASgyM,GAAcC,EAAIC,GACzB,OAAO,SAAU/1M,EAAGrhB,GAClB,OAAOqhB,EAAE81M,KAAQn3N,EAAEm3N,GAAM91M,EAAE+1M,GAAMp3N,EAAEo3N,GAAM/1M,EAAE81M,GAAMn3N,EAAEm3N,IAlIvDhpB,EAAczvD,KAAK,SAAU,CAC3BjpE,SAAU,GACV9nE,OAAQ,CAAC,YAAa,WAAY,QAAS,aAAc,aACzD0mM,MAAO,CACLgjB,QAAS,KACTpzM,KAAM,UACNohM,WAAW,EACXiS,kBAAmB,KAErBpoK,QAAS,KACT88J,qBAAqB,EACrBuL,YAAY,EACZC,4BAA6B,IA0H/B,IAAIzkF,GAAQ,SAAUpsG,EAAM3mB,GAE1B,OADAtd,KAAK81C,UAAU7R,EAAM3mB,GACdtd,MAGT20I,GAAUxtG,OAAOkpG,GAAMjvI,UAEvB,CAIE00C,UAAW,SAAU7R,EAAM3mB,GACzB,IAAI6kB,EAAKniC,KACTsd,EAASy2M,GAAWz2M,GACpB,IAAIiH,EAAUw7B,GAASwmK,eAAetiL,EAAM3mB,GACxC+4H,EAAS9xH,GAAWA,EAAQ8xH,OAC5BlnI,EAASknI,GAAUA,EAAOlnI,OAC1Bqe,EAAQ6oH,GAAUA,EAAO7oH,MAC7B2U,EAAGiT,GAAKu/F,GAAUmxD,MAClB3jK,EAAG+uG,IAAM3sH,EACT4d,EAAGk0G,OAASA,EACZl0G,EAAG7kB,OAASA,EACZ6kB,EAAG3U,MAAQA,EACX2U,EAAGhzB,OAASA,EACZgzB,EAAG6lL,YAAc74M,EAASqe,EAAQre,EAAS,KAC3CgzB,EAAGhrB,QAAUmG,EAAOnG,QACpBgrB,EAAG4yL,iBAAkB,EACrB5yL,EAAG4jL,QAAU,GAUb5jL,EAAGu2G,MAAQv2G,EACXA,EAAGqwE,WAAarwE,EAGhBkuG,GAAMjwG,UAAU+B,EAAGiT,IAAMjT,EAEzB3hC,OAAOC,eAAe0hC,EAAI,OAAQ,CAChCzhC,IAAK,WACH,OAAOyhC,EAAG7kB,OAAOlN,MAEnB3K,IAAK,SAAU0K,GACbgyB,EAAG7kB,OAAOlN,KAAOD,KAIhBoU,GAAY8xH,IAQjBl0G,EAAGl+B,aACHk+B,EAAG+uB,WAMLjtD,WAAY,WACV,IAAIk+B,EAAKniC,KAcT,OAZAkqN,GAAapkL,OAAO3D,EAAI,cACxBwyG,GAAUqgF,YAAY7yL,EAAIA,EAAGhrB,QAAQo5H,kBACrCpuG,EAAG7V,aAEC6V,EAAGhrB,QAAQ09M,YAEb1yL,EAAG+e,QAAO,GAGZ/e,EAAG8yL,cAEH/K,GAAapkL,OAAO3D,EAAI,aACjBA,GAETvtB,MAAO,WAEL,OADA+/H,GAAU0B,OAAOzhI,MAAM5U,MAChBA,MAET8iC,KAAM,WAGJ,OADAyrK,GAAgBG,gBAAgB1uM,MACzBA,MAETkhD,OAAQ,SAAUg0K,GAChB,IAAI/yL,EAAKniC,KACLmX,EAAUgrB,EAAGhrB,QACbk/H,EAASl0G,EAAGk0G,OACZ2xE,EAAc7wM,EAAQmyM,qBAAuBnnL,EAAG6lL,aAAe,KAI/DzmK,EAAW7oC,KAAKmS,IAAI,EAAGnS,KAAKG,MAAM87H,GAAUwgF,gBAAgB9+E,KAC5D70F,EAAY9oC,KAAKmS,IAAI,EAAGnS,KAAKG,MAAMmvM,EAAczmK,EAAWymK,EAAcrzE,GAAUygF,iBAAiB/+E,KAEzG,IAAIl0G,EAAG3U,QAAU+zB,GAAYpf,EAAGhzB,SAAWqyC,KAI3C60F,EAAO7oH,MAAQ2U,EAAG3U,MAAQ+zB,EAC1B80F,EAAOlnI,OAASgzB,EAAGhzB,OAASqyC,EAC5B60F,EAAO1lI,MAAM6c,MAAQ+zB,EAAW,KAChC80F,EAAO1lI,MAAMxB,OAASqyC,EAAY,KAClCmzF,GAAUqgF,YAAY7yL,EAAIhrB,EAAQo5H,mBAE7B2kF,GAAQ,CAEX,IAAIG,EAAU,CACZ7nM,MAAO+zB,EACPpyC,OAAQqyC,GAEV0oK,GAAapkL,OAAO3D,EAAI,SAAU,CAACkzL,IAE/Bl+M,EAAQwY,UACVxY,EAAQwY,SAASwS,EAAIkzL,GAGvBlzL,EAAGW,OACHX,EAAG+uB,OAAO,CACRpmC,SAAU3T,EAAQ29M,gCAIxBZ,oBAAqB,WACnB,IAAI/8M,EAAUnX,KAAKmX,QACfm+M,EAAgBn+M,EAAQ63I,QAAU,GAClCumE,EAAep+M,EAAQk+H,MAC3BV,GAAU74F,KAAKw5K,EAActlB,OAAO,SAAUwlB,EAAcztN,GACrDytN,EAAapgL,KAChBogL,EAAapgL,GAAKg/K,GAAqBkB,EAActlB,MAAO,UAAWjoM,OAG3E4sI,GAAU74F,KAAKw5K,EAAcplB,OAAO,SAAUulB,EAAc1tN,GACrD0tN,EAAargL,KAChBqgL,EAAargL,GAAKg/K,GAAqBkB,EAAcplB,MAAO,UAAWnoM,OAIvEwtN,IACFA,EAAangL,GAAKmgL,EAAangL,IAAM,UAOzC++K,oBAAqB,WACnB,IAAIhyL,EAAKniC,KACLmX,EAAUgrB,EAAGhrB,QACb63I,EAAS7sH,EAAG6sH,QAAU,GACtBn4G,EAAQ,GACR6+K,EAAUl1N,OAAOkW,KAAKs4I,GAAQ1zH,QAAO,SAAUxgB,EAAKs6B,GAEtD,OADAt6B,EAAIs6B,IAAM,EACHt6B,IACN,IAEC3D,EAAQ63I,SACVn4G,EAAQA,EAAMlgC,QAAQQ,EAAQ63I,OAAOghD,OAAS,IAAIhnL,KAAI,SAAUwsM,GAC9D,MAAO,CACLr+M,QAASq+M,EACTG,MAAO,WACPC,UAAW,cAEVz+M,EAAQ63I,OAAOkhD,OAAS,IAAIlnL,KAAI,SAAUysM,GAC7C,MAAO,CACLt+M,QAASs+M,EACTE,MAAO,SACPC,UAAW,aAKbz+M,EAAQk+H,OACVx+F,EAAM7oC,KAAK,CACTmJ,QAASA,EAAQk+H,MACjBsgF,MAAO,eACPv5C,WAAW,EACXw5C,UAAW,cAIfjhF,GAAU74F,KAAKjF,GAAO,SAAU5S,GAC9B,IAAIsxL,EAAetxL,EAAK9sB,QACpBi+B,EAAKmgL,EAAangL,GAClBygL,EAAYjC,GAAiB2B,EAAavhN,KAAMiwB,EAAK0xL,OAErDpB,GAAqBgB,EAAa/yM,YAAc+xM,GAAqBtwL,EAAK2xL,aAC5EL,EAAa/yM,SAAWyhB,EAAK2xL,WAG/BF,EAAQtgL,IAAM,EACd,IAAIigG,EAAQ,KAEZ,GAAIjgG,KAAM45G,GAAUA,EAAO55G,GAAIphC,OAAS6hN,GACtCxgF,EAAQ2Z,EAAO55G,IACTj+B,QAAUo+M,EAChBlgF,EAAMnE,IAAM/uG,EAAG+uG,IACfmE,EAAMqD,MAAQv2G,MACT,CACL,IAAI2zL,EAAapL,GAAkBK,oBAAoB8K,GAEvD,IAAKC,EACH,OAGFzgF,EAAQ,IAAIygF,EAAW,CACrB1gL,GAAIA,EACJphC,KAAM6hN,EACN1+M,QAASo+M,EACTrkF,IAAK/uG,EAAG+uG,IACRwH,MAAOv2G,IAET6sH,EAAO3Z,EAAMjgG,IAAMigG,EAGrBA,EAAM0gF,oBAIF9xL,EAAKm4I,YACPj6I,EAAGkzG,MAAQA,MAIfV,GAAU74F,KAAK45K,GAAS,SAAUM,EAAY5gL,GACvC4gL,UACIhnE,EAAO55G,MAGlBjT,EAAG6sH,OAASA,EACZ07D,GAAkBQ,kBAAkBlrN,OAEtCi2N,yBAA0B,WACxB,IAGI7uN,EAAG+pI,EAHHhvG,EAAKniC,KACLk2N,EAAiB,GACjBp6E,EAAW35G,EAAG/xB,KAAK0rI,SAGvB,IAAK10I,EAAI,EAAG+pI,EAAO2K,EAAS9zI,OAAQZ,EAAI+pI,EAAM/pI,IAAK,CACjD,IAAIgzB,EAAU0hH,EAAS10I,GACnBm7E,EAAOpgD,EAAGguK,eAAe/oM,GACzB4M,EAAOomB,EAAQpmB,MAAQmuB,EAAG7kB,OAAOtJ,KAWrC,GATIuuE,EAAKvuE,MAAQuuE,EAAKvuE,OAASA,IAC7BmuB,EAAGg0L,mBAAmB/uN,GACtBm7E,EAAOpgD,EAAGguK,eAAe/oM,IAG3Bm7E,EAAKvuE,KAAOA,EACZuuE,EAAK13C,MAAQzQ,EAAQyQ,OAAS,EAC9B03C,EAAKx6E,MAAQX,EAETm7E,EAAKiwB,WACPjwB,EAAKiwB,WAAWo9F,YAAYxoM,GAC5Bm7E,EAAKiwB,WAAWi9F,iBACX,CACL,IAAI2mB,EAAkB/jH,GAAY9vB,EAAKvuE,MAEvC,QAAwBhN,IAApBovN,EACF,MAAM,IAAI/zN,MAAM,IAAMkgF,EAAKvuE,KAAO,0BAGpCuuE,EAAKiwB,WAAa,IAAI4jH,EAAgBj0L,EAAI/6B,GAC1C8uN,EAAeloN,KAAKu0E,EAAKiwB,aAI7B,OAAO0jH,GAOTG,cAAe,WACb,IAAIl0L,EAAKniC,KACT20I,GAAU74F,KAAK3Z,EAAG/xB,KAAK0rI,UAAU,SAAU1hH,EAASokH,GAClDr8G,EAAGguK,eAAe3xD,GAAchsC,WAAW1/B,UAC1C3wC,IAML2wC,MAAO,WACL9yE,KAAKq2N,gBACLr2N,KAAKwvN,QAAQvrN,cAEfitD,OAAQ,SAAU5zC,GAChB,IACIlW,EAAG+pI,EADHhvG,EAAKniC,KAgBT,GAbKsd,GAA4B,kBAAXA,IAEpBA,EAAS,CACPwN,SAAUxN,EACV0gI,KAAMl6I,UAAU,KAIpBkwN,GAAa7xL,GAGb+nL,GAAaO,YAAYtoL,IAEuB,IAA5C+nL,GAAapkL,OAAO3D,EAAI,gBAA5B,CAKAA,EAAGqtL,QAAQ7uF,MAAQx+F,EAAG/xB,KAEtB,IAAI8lN,EAAiB/zL,EAAG8zL,2BAExB,IAAK7uN,EAAI,EAAG+pI,EAAOhvG,EAAG/xB,KAAK0rI,SAAS9zI,OAAQZ,EAAI+pI,EAAM/pI,IACpD+6B,EAAGguK,eAAe/oM,GAAGorG,WAAW0+F,wBAGlC/uK,EAAGm0L,eAECn0L,EAAGhrB,QAAQ6sJ,WAAa7hI,EAAGhrB,QAAQ6sJ,UAAUl5I,UAC/C6pH,GAAU74F,KAAKo6K,GAAgB,SAAU1jH,GACvCA,EAAW1/B,WAIf3wC,EAAGo0L,iBAGHp0L,EAAGqtL,QAAQvrN,aAGXk+B,EAAG88G,WAAa,GAEhBirE,GAAapkL,OAAO3D,EAAI,eAExBA,EAAG4jL,QAAQjoL,KAAK02L,GAAc,IAAK,SAE/BryL,EAAG4yL,gBACL5yL,EAAGq0L,iBAAmB,CACpB1rM,SAAUxN,EAAOwN,SACjBiiL,OAAQzvL,EAAOyvL,OACf/uD,KAAM1gI,EAAO0gI,MAGf77G,EAAGs1C,OAAOn6D,KASdg5M,aAAc,WACZ,IAAIn0L,EAAKniC,MAEuC,IAA5CkqN,GAAapkL,OAAO3D,EAAI,kBAI5B0jL,GAAa30J,OAAOlxD,KAAMA,KAAKwtB,MAAOxtB,KAAKmP,QAC3CgzB,EAAG4jL,QAAU,GACbpxE,GAAU74F,KAAK3Z,EAAG6hL,OAAO,SAAU5oK,GAG7BA,EAAIi2J,YACNj2J,EAAIi2J,aAGNlvK,EAAG4jL,QAAQ/3M,KAAKnK,MAAMs+B,EAAG4jL,QAAS3qK,EAAI2qK,aACrC5jL,GAEHA,EAAG4jL,QAAQ/1M,SAAQ,SAAUi0B,EAAMl8B,GACjCk8B,EAAKg4G,KAAOl0I,KAWdmiN,GAAapkL,OAAO3D,EAAI,oBACxB+nL,GAAapkL,OAAO3D,EAAI,iBAQ1Bo0L,eAAgB,WACd,IAAIp0L,EAAKniC,KAET,IAAwD,IAApDkqN,GAAapkL,OAAO3D,EAAI,wBAA5B,CAIA,IAAK,IAAI/6B,EAAI,EAAG+pI,EAAOhvG,EAAG/xB,KAAK0rI,SAAS9zI,OAAQZ,EAAI+pI,IAAQ/pI,EAC1D+6B,EAAGs0L,cAAcrvN,GAGnB8iN,GAAapkL,OAAO3D,EAAI,yBAQ1Bs0L,cAAe,SAAU1uN,GACvB,IAAIo6B,EAAKniC,KACLuiF,EAAOpgD,EAAGguK,eAAepoM,GACzByc,EAAO,CACT+9D,KAAMA,EACNx6E,MAAOA,IAGsD,IAA3DmiN,GAAapkL,OAAO3D,EAAI,sBAAuB,CAAC3d,MAIpD+9D,EAAKiwB,WAAWk+F,UAEhBwZ,GAAapkL,OAAO3D,EAAI,qBAAsB,CAAC3d,MAEjDizD,OAAQ,SAAUn6D,GAChB,IAAI6kB,EAAKniC,KAEJsd,GAA4B,kBAAXA,IAEpBA,EAAS,CACPwN,SAAUxN,EACV0gI,KAAMl6I,UAAU,KAIpB,IAAI4yN,EAAmBv0L,EAAGhrB,QAAQ6sJ,UAC9Bl5I,EAAW8oM,GAAiBt2M,EAAOwN,SAAU4rM,GAAoBA,EAAiB5rM,UAClFkzH,EAAO1gI,EAAO0gI,KAElB,IAAgD,IAA5CksE,GAAapkL,OAAO3D,EAAI,gBAA5B,CAIA,IAAImsK,EAAa,SAAUtqC,GACzBkmD,GAAapkL,OAAO3D,EAAI,eACxBwyG,GAAU3xI,SAAS0zN,GAAoBA,EAAiBpoB,WAAY,CAACtqC,GAAY7hI,IAGnF,GAAIu0L,GAAoB5rM,EAAU,CAChC,IAAIk5I,EAAY,IAAIoqC,GAAe,CACjCH,SAAUnjL,EAAW,MAErBiiL,OAAQzvL,EAAOyvL,QAAU2pB,EAAiB3pB,OAC1Ct1H,OAAQ,SAAUihE,EAAOi+E,GACvB,IAAIC,EAAiBjiF,GAAUo4D,OAAO3F,QAAQuvB,EAAgB5pB,QAC1DiB,EAAc2oB,EAAgB3oB,YAC9B6oB,EAAc7oB,EAAc2oB,EAAgB1oB,SAChDv1D,EAAMS,KAAKy9E,EAAeC,GAAcA,EAAa7oB,IAEvDE,oBAAqBwoB,EAAiBroB,WACtCF,oBAAqBG,IAEvBC,GAAgBC,aAAarsK,EAAI6hI,EAAWl5I,EAAUkzH,QAEtD77G,EAAGg3G,OAEHm1D,EAAW,IAAIF,GAAe,CAC5BH,SAAU,EACVv1D,MAAOv2G,KAIX,OAAOA,IAETg3G,KAAM,SAAUo4D,GACd,IACInqM,EAAG0vN,EADH30L,EAAKniC,KAUT,GARAmiC,EAAGvtB,QAEC+/H,GAAU/D,cAAc2gE,KAC1BA,EAAc,GAGhBpvK,EAAG4W,WAAWw4J,KAEVpvK,EAAG3U,OAAS,GAAK2U,EAAGhzB,QAAU,KAI2B,IAAzD+6M,GAAapkL,OAAO3D,EAAI,aAAc,CAACovK,IAA3C,CASA,IAFAulB,EAAS30L,EAAG4jL,QAEP3+M,EAAI,EAAGA,EAAI0vN,EAAO9uN,QAAU8uN,EAAO1vN,GAAG+2L,GAAK,IAAK/2L,EACnD0vN,EAAO1vN,GAAG+xI,KAAKh3G,EAAGw2G,WAKpB,IAFAx2G,EAAG40L,aAAaxlB,GAETnqM,EAAI0vN,EAAO9uN,SAAUZ,EAC1B0vN,EAAO1vN,GAAG+xI,KAAKh3G,EAAGw2G,WAGpBx2G,EAAG60L,aAAazlB,GAEhB2Y,GAAapkL,OAAO3D,EAAI,YAAa,CAACovK,MAMxCx4J,WAAY,SAAUw4J,GAGpB,IAFA,IAAIpvK,EAAKniC,KAEAoH,EAAI,EAAG+pI,GAAQhvG,EAAG/xB,KAAK0rI,UAAY,IAAI9zI,OAAQZ,EAAI+pI,IAAQ/pI,EAC9D+6B,EAAGs8G,iBAAiBr3I,IACtB+6B,EAAGguK,eAAe/oM,GAAGorG,WAAWz5D,WAAWw4J,GAI/CpvK,EAAGqtL,QAAQz2K,WAAWw4J,IAMxB0lB,uBAAwB,SAAUC,GAChC,IAGI9vN,EAAG+pI,EAHHhvG,EAAKniC,KAEL2R,EAAS,GAGb,IAAKvK,EAAI,EAAG+pI,GAJGhvG,EAAG/xB,KAAK0rI,UAAY,IAIP9zI,OAAQZ,EAAI+pI,IAAQ/pI,EACzC8vN,IAAiB/0L,EAAGs8G,iBAAiBr3I,IACxCuK,EAAO3D,KAAKm0B,EAAGguK,eAAe/oM,IAKlC,OADAuK,EAAOmsB,KAAK02L,GAAc,QAAS,UAC5B7iN,GAMTwuM,8BAA+B,WAC7B,OAAOngN,KAAKi3N,wBAAuB,IAQrCF,aAAc,SAAUxlB,GACtB,IACI4I,EAAU/yM,EADV+6B,EAAKniC,KAGT,IAAqE,IAAjEkqN,GAAapkL,OAAO3D,EAAI,qBAAsB,CAACovK,IAAnD,CAMA,IAAKnqM,GAFL+yM,EAAWh4K,EAAGg+K,iCAEIn4M,OAAS,EAAGZ,GAAK,IAAKA,EACtC+6B,EAAGg1L,YAAYhd,EAAS/yM,GAAImqM,GAG9B2Y,GAAapkL,OAAO3D,EAAI,oBAAqB,CAACovK,MAQhD4lB,YAAa,SAAU50I,EAAMgvH,GAC3B,IAAIpvK,EAAKniC,KACLwkB,EAAO,CACT+9D,KAAMA,EACNx6E,MAAOw6E,EAAKx6E,MACZwpM,YAAaA,IAG8C,IAAzD2Y,GAAapkL,OAAO3D,EAAI,oBAAqB,CAAC3d,MAIlD+9D,EAAKiwB,WAAW2mC,KAAKo4D,GACrB2Y,GAAapkL,OAAO3D,EAAI,mBAAoB,CAAC3d,MAQ/CwyM,aAAc,SAAUzlB,GACtB,IAAIpvK,EAAKniC,KACLwvN,EAAUrtL,EAAGqtL,QACbhrM,EAAO,CACTgrM,QAASA,EACTje,YAAaA,IAG8C,IAAzD2Y,GAAapkL,OAAO3D,EAAI,oBAAqB,CAAC3d,MAIlDgrM,EAAQr2E,OACR+wE,GAAapkL,OAAO3D,EAAI,mBAAoB,CAAC3d,MAO/C4yM,kBAAmB,SAAU18M,GAC3B,OAAO8oM,GAAiBC,MAAM1lL,OAAO/9B,KAAM0a,IAE7C28M,mBAAoB,SAAU38M,GAC5B,OAAO8oM,GAAiBC,MAAMp2M,MAAMrN,KAAM0a,EAAG,CAC3CioM,WAAW,KAGf2U,mBAAoB,SAAU58M,GAC5B,OAAO8oM,GAAiBC,MAAM,UAAUzjN,KAAM0a,EAAG,CAC/CioM,WAAW,KAGf8Q,0BAA2B,SAAU/4M,EAAG6G,EAAMpK,GAC5C,IAAIs5C,EAAS+yJ,GAAiBC,MAAMliM,GAEpC,MAAsB,oBAAXkvC,EACFA,EAAOzwD,KAAM0a,EAAGvD,GAGlB,IAETogN,kBAAmB,SAAU78M,GAC3B,OAAO8oM,GAAiBC,MAAMrpL,QAAQp6B,KAAM0a,EAAG,CAC7CioM,WAAW,KAGfxS,eAAgB,SAAU3xD,GACxB,IAAIr8G,EAAKniC,KACLo6B,EAAU+H,EAAG/xB,KAAK0rI,SAAS0C,GAE1BpkH,EAAQo9L,QACXp9L,EAAQo9L,MAAQ,IAGlB,IAAIj1I,EAAOnoD,EAAQo9L,MAAMr1L,EAAGiT,IAiB5B,OAfKmtC,IACHA,EAAOnoD,EAAQo9L,MAAMr1L,EAAGiT,IAAM,CAC5BphC,KAAM,KACN5D,KAAM,GACNgqB,QAAS,KACTo4E,WAAY,KACZt5B,OAAQ,KAER62H,QAAS,KACTE,QAAS,KACTplK,MAAOzQ,EAAQyQ,OAAS,EACxB9iC,MAAOy2I,IAIJj8D,GAETi/H,uBAAwB,WAGtB,IAFA,IAAIzO,EAAQ,EAEH3rM,EAAI,EAAG+pI,EAAOnxI,KAAKoQ,KAAK0rI,SAAS9zI,OAAQZ,EAAI+pI,IAAQ/pI,EACxDpH,KAAKy+I,iBAAiBr3I,IACxB2rM,IAIJ,OAAOA,GAETt0D,iBAAkB,SAAUD,GAC1B,IAAIj8D,EAAOviF,KAAKmwM,eAAe3xD,GAG/B,MAA8B,mBAAhBj8D,EAAKrJ,QAAwBqJ,EAAKrJ,QAAUl5E,KAAKoQ,KAAK0rI,SAAS0C,GAActlE,QAE7Fu+I,eAAgB,WACd,OAAOz3N,KAAKmX,QAAQ+kM,eAAel8M,OAMrCm2N,mBAAoB,SAAU33E,GAC5B,IAAIppG,EAAKp1C,KAAKo1C,GACVhb,EAAUp6B,KAAKoQ,KAAK0rI,SAAS0C,GAC7Bj8D,EAAOnoD,EAAQo9L,OAASp9L,EAAQo9L,MAAMpiL,GAEtCmtC,IACFA,EAAKiwB,WAAWnxG,iBACT+4B,EAAQo9L,MAAMpiL,KAGzB/zC,QAAS,WACP,IAEI+F,EAAG+pI,EAFHhvG,EAAKniC,KACLq2I,EAASl0G,EAAGk0G,OAIhB,IAFAl0G,EAAGW,OAEE17B,EAAI,EAAG+pI,EAAOhvG,EAAG/xB,KAAK0rI,SAAS9zI,OAAQZ,EAAI+pI,IAAQ/pI,EACtD+6B,EAAGg0L,mBAAmB/uN,GAGpBivI,IACFl0G,EAAGu1L,eACH/iF,GAAU0B,OAAOzhI,MAAMutB,GACvB4d,GAAS+pK,eAAe3nL,EAAG+uG,KAC3B/uG,EAAGk0G,OAAS,KACZl0G,EAAG+uG,IAAM,MAGXg5E,GAAapkL,OAAO3D,EAAI,kBACjBkuG,GAAMjwG,UAAU+B,EAAGiT,KAE5BuiL,cAAe,WACb,OAAO33N,KAAKq2I,OAAOuhF,UAAU/zN,MAAM7D,KAAKq2I,OAAQvyI,YAElDmxN,YAAa,WACX,IAAI9yL,EAAKniC,KACTmiC,EAAGqtL,QAAU,IAAImE,GAAa,CAC5B/iB,OAAQzuK,EACR01L,eAAgB11L,EAEhBw+F,MAAOx+F,EAAG/xB,KACV6lJ,SAAU9zH,EAAGhrB,QAAQikM,UACpBj5K,IAML7V,WAAY,WACV,IAAI6V,EAAKniC,KACLo0G,EAAYjyE,EAAGu7G,WAAa,GAE5BrkG,EAAW,WACblX,EAAG6uB,aAAantD,MAAMs+B,EAAIr+B,YAG5B6wI,GAAU74F,KAAK3Z,EAAGhrB,QAAQlM,QAAQ,SAAU+I,GAC1C+rC,GAASj6C,iBAAiBq8B,EAAInuB,EAAMqlC,GACpC+6D,EAAUpgG,GAAQqlC,KAIhBlX,EAAGhrB,QAAQ09M,aACbx7K,EAAW,WACTlX,EAAG+e,UAGLnB,GAASj6C,iBAAiBq8B,EAAI,SAAUkX,GACxC+6D,EAAUlzD,OAAS7H,IAOvBq+K,aAAc,WACZ,IAAIv1L,EAAKniC,KACLo0G,EAAYjyE,EAAGu7G,WAEdtpC,WAIEjyE,EAAGu7G,WACV/I,GAAU74F,KAAKs4D,GAAW,SAAU/6D,EAAUrlC,GAC5C+rC,GAASh6C,oBAAoBo8B,EAAInuB,EAAMqlC,QAG3Cy+K,iBAAkB,SAAU/kJ,EAAUxxD,EAAMuwC,GAC1C,IACI/0C,EAAS3V,EAAG+pI,EADZp2H,EAAS+2C,EAAU,MAAQ,SAG/B,IAAK1qD,EAAI,EAAG+pI,EAAOp+D,EAAS/qE,OAAQZ,EAAI+pI,IAAQ/pI,GAC9C2V,EAAUg2D,EAAS3rE,KAGjBpH,KAAKmwM,eAAepzL,EAAQ8zL,eAAer+F,WAAWz3F,EAAS,cAAcgC,GAIpE,YAATwE,GACFvhB,KAAKmwM,eAAep9H,EAAS,GAAG89H,eAAer+F,WAAW,IAAMz3F,EAAS,wBAO7Ei2C,aAAc,SAAUt2C,GACtB,IAAIynB,EAAKniC,KACLwvN,EAAUrtL,EAAGqtL,QAEjB,IAAoD,IAAhDtF,GAAapkL,OAAO3D,EAAI,cAAe,CAACznB,IAA5C,CAKAynB,EAAG4yL,iBAAkB,EACrB5yL,EAAGq0L,iBAAmB,KACtB,IAAI/Q,EAAUtjL,EAAGyX,YAAYl/B,GAKzB80M,IACF/J,EAAU+J,EAAQ5hB,OAAS4hB,EAAQ51K,YAAYl/B,GAAK+qM,EAAU+J,EAAQ51K,YAAYl/B,IAGpFwvM,GAAapkL,OAAO3D,EAAI,aAAc,CAACznB,IACvC,IAAIq9M,EAAkB51L,EAAGq0L,iBAkBzB,OAhBIuB,EAEF51L,EAAGs1C,OAAOsgJ,GACDtS,IAAYtjL,EAAGmhB,YAExBnhB,EAAGW,OAGHX,EAAGs1C,OAAO,CACR3sD,SAAUqX,EAAGhrB,QAAQw6L,MAAMijB,kBAC3B52E,MAAM,KAIV77G,EAAG4yL,iBAAkB,EACrB5yL,EAAGq0L,iBAAmB,KACfr0L,IASTyX,YAAa,SAAUl/B,GACrB,IAAIynB,EAAKniC,KACLmX,EAAUgrB,EAAGhrB,SAAW,GACxBw7L,EAAex7L,EAAQw6L,MACvB8T,GAAU,EAiCd,OAhCAtjL,EAAG88G,WAAa98G,EAAG88G,YAAc,GAElB,aAAXvkI,EAAE1G,KACJmuB,EAAGu8G,OAAS,GAEZv8G,EAAGu8G,OAASv8G,EAAGsxL,0BAA0B/4M,EAAGi4L,EAAapxL,KAAMoxL,GAKjEh+D,GAAU3xI,SAASmU,EAAQw9M,SAAWx9M,EAAQw6L,MAAMgjB,QAAS,CAACj6M,EAAEytD,OAAQhmC,EAAGu8G,QAASv8G,GAErE,YAAXznB,EAAE1G,MAAiC,UAAX0G,EAAE1G,MACxBmD,EAAQq1C,SAEVr1C,EAAQq1C,QAAQzsD,KAAKoiC,EAAIznB,EAAEytD,OAAQhmC,EAAGu8G,QAKtCv8G,EAAG88G,WAAWj3I,QAChBm6B,EAAG21L,iBAAiB31L,EAAG88G,WAAY0zD,EAAapxL,MAAM,GAIpD4gB,EAAGu8G,OAAO12I,QAAU2qM,EAAapxL,MACnC4gB,EAAG21L,iBAAiB31L,EAAGu8G,OAAQi0D,EAAapxL,MAAM,GAGpDkkM,GAAW9wE,GAAUsxD,YAAY9jK,EAAGu8G,OAAQv8G,EAAG88G,YAE/C98G,EAAG88G,WAAa98G,EAAGu8G,OACZ+mE,KASXp1E,GAAMjwG,UAAY,GAClB,IAAI43L,GAAkB3nF,GAUtBA,GAAMn1D,WAAam1D,GASnBA,GAAMnvD,MAAQ,GASdyzD,GAAUsjF,YAAc94G,GASxBw1B,GAAUujF,WAAarE,GAEvB,IAAIsE,GAAe,WAyZjB,SAASC,EAAcC,EAAYtzM,EAAMuzM,GACvC,IAAIC,EAaJ,MAX0B,kBAAfF,GACTE,EAAgBngN,SAASigN,EAAY,KAEJ,IAA7BA,EAAW1wN,QAAQ,OAErB4wN,EAAgBA,EAAgB,IAAMxzM,EAAKK,WAAWkzM,KAGxDC,EAAgBF,EAGXE,EAQT,SAASC,EAAmBroN,GAC1B,YAAiBnJ,IAAVmJ,GAAiC,OAAVA,GAA4B,SAAVA,EAWlD,SAASsoN,EAAuBC,EAASC,EAAUC,GACjD,IAAIl+E,EAAOtjI,SAAS65I,YAEhB7rI,EAAauvH,GAAUkkF,eAAeH,GAEtCI,EAAkBp+E,EAAK3lG,iBAAiB2jL,GAASC,GACjDI,EAAuBr+E,EAAK3lG,iBAAiB3vB,GAAYuzM,GACzDK,EAAWR,EAAmBM,GAC9BG,EAAgBT,EAAmBO,GACnCG,EAAW7nK,OAAOyxJ,kBAEtB,OAAIkW,GAAYC,EACPvgN,KAAKkS,IAAIouM,EAAWZ,EAAcU,EAAiBJ,EAASE,GAAsBM,EAAUD,EAAgBb,EAAcW,EAAsB3zM,EAAYwzM,GAAsBM,GAGpL,OAxcTvkF,GAAUkvE,MAAQ,SAAUsV,EAAYC,GACtC,GAAIzkF,GAAUjqG,QAAQyuL,IAAe16M,MAAMrd,UAAU23B,OACnD,OAAOogM,EAAWpgM,OAAOqgM,GAG3B,IAAIC,EAAW,GAMf,OALA1kF,GAAU74F,KAAKq9K,GAAY,SAAUl1L,GAC/Bm1L,EAAen1L,IACjBo1L,EAASrrN,KAAKi2B,MAGXo1L,GAGT1kF,GAAU77B,UAAYr6F,MAAMrd,UAAU03G,UAAY,SAAU9gF,EAAOh1B,EAAUuyG,GAC3E,OAAOv9E,EAAM8gF,UAAU91G,EAAUuyG,IAC/B,SAAUv9E,EAAOh1B,EAAUuyG,GAC7BA,OAAkBvuG,IAAVuuG,EAAsBv9E,EAAQu9E,EAEtC,IAAK,IAAInuG,EAAI,EAAG+pI,EAAOn5G,EAAMhwB,OAAQZ,EAAI+pI,IAAQ/pI,EAC/C,GAAIpE,EAASjD,KAAKw1G,EAAOv9E,EAAM5wB,GAAIA,EAAG4wB,GACpC,OAAO5wB,EAIX,OAAQ,GAGVutI,GAAU2kF,cAAgB,SAAUC,EAAeH,EAAgB9lM,GAE7DqhH,GAAU/D,cAAct9G,KAC1BA,GAAc,GAGhB,IAAK,IAAIlsB,EAAIksB,EAAa,EAAGlsB,EAAImyN,EAAcvxN,OAAQZ,IAAK,CAC1D,IAAIs/I,EAAc6yE,EAAcnyN,GAEhC,GAAIgyN,EAAe1yE,GACjB,OAAOA,IAKb/R,GAAU6kF,kBAAoB,SAAUD,EAAeH,EAAgB9lM,GAEjEqhH,GAAU/D,cAAct9G,KAC1BA,EAAaimM,EAAcvxN,QAG7B,IAAK,IAAIZ,EAAIksB,EAAa,EAAGlsB,GAAK,EAAGA,IAAK,CACxC,IAAIs/I,EAAc6yE,EAAcnyN,GAEhC,GAAIgyN,EAAe1yE,GACjB,OAAOA,IAMb/R,GAAU1tB,SAAW,SAAU11G,GAC7B,OAAQ4G,MAAMsO,WAAWlV,KAAOimD,SAASjmD,IAG3CojI,GAAU8kF,aAAe,SAAU/lN,EAAGzW,EAAGstM,GACvC,OAAO7xL,KAAKC,IAAIjF,EAAIzW,GAAKstM,GAG3B51D,GAAU+kF,YAAc,SAAUhmN,EAAG62L,GACnC,IAAIovB,EAAUjhN,KAAKwI,MAAMxN,GACzB,OAAOimN,EAAUpvB,GAAW72L,GAAKimN,EAAUpvB,GAAW72L,GAGxDihI,GAAU9pH,IAAM,SAAUmN,GACxB,OAAOA,EAAMsD,QAAO,SAAUzQ,EAAK1a,GACjC,OAAKgI,MAAMhI,GAIJ0a,EAHEnS,KAAKmS,IAAIA,EAAK1a,KAItBkhD,OAAOuoK,oBAGZjlF,GAAU/pH,IAAM,SAAUoN,GACxB,OAAOA,EAAMsD,QAAO,SAAU1Q,EAAKza,GACjC,OAAKgI,MAAMhI,GAIJya,EAHElS,KAAKkS,IAAIA,EAAKza,KAItBkhD,OAAOyxJ,oBAGZnuE,GAAUrT,KAAO5oH,KAAK4oH,KAAO,SAAU5tH,GACrC,OAAOgF,KAAK4oH,KAAK5tH,IACf,SAAUA,GAGZ,OAAU,KAFVA,GAAKA,IAEUyE,MAAMzE,GACZA,EAGFA,EAAI,EAAI,GAAK,GAGtBihI,GAAUklF,UAAY,SAAU90B,GAC9B,OAAOA,GAAWrsL,KAAKouC,GAAK,MAG9B6tF,GAAUmlF,UAAY,SAAUC,GAC9B,OAAOA,GAAW,IAAMrhN,KAAKouC,KAW/B6tF,GAAUqlF,eAAiB,SAAUtmN,GACnC,GAAKihI,GAAUn9E,SAAS9jD,GAAxB,CAOA,IAHA,IAAIgH,EAAI,EACJ2D,EAAI,EAED3F,KAAKwI,MAAMxN,EAAIgH,GAAKA,IAAMhH,GAC/BgH,GAAK,GACL2D,IAGF,OAAOA,IAITs2H,GAAU4/D,kBAAoB,SAAU0lB,EAAaC,GACnD,IAAIC,EAAsBD,EAAWxmN,EAAIumN,EAAYvmN,EACjD0mN,EAAsBF,EAAWj9N,EAAIg9N,EAAYh9N,EACjDo9N,EAA2B3hN,KAAKguC,KAAKyzK,EAAsBA,EAAsBC,EAAsBA,GACvGrmF,EAAQr7H,KAAKmuC,MAAMuzK,EAAqBD,GAM5C,OAJIpmF,GAAS,GAAMr7H,KAAKouC,KACtBitF,GAAS,EAAMr7H,KAAKouC,IAGf,CACLitF,MAAOA,EACPxqF,SAAU8wK,IAId1lF,GAAU64E,sBAAwB,SAAUrK,EAAKC,GAC/C,OAAO1qM,KAAKguC,KAAKhuC,KAAK0zB,IAAIg3K,EAAI1vM,EAAIyvM,EAAIzvM,EAAG,GAAKgF,KAAK0zB,IAAIg3K,EAAInmN,EAAIkmN,EAAIlmN,EAAG,KAUxE03I,GAAU2lF,WAAa,SAAUC,GAC/B,OAAOA,EAAa,IAAM,EAAI,EAAI,IAYpC5lF,GAAU6lF,YAAc,SAAU9hF,EAAO/C,EAAOnoH,GAC9C,IAAI+iH,EAAmBmI,EAAM+hF,wBACzBC,EAAYltM,EAAQ,EACxB,OAAO9U,KAAKwI,OAAOy0H,EAAQ+kF,GAAanqF,GAAoBA,EAAmBmqF,GAGjF/lF,GAAU6rE,YAAc,SAAUma,EAAYC,EAAaC,EAAYz8M,GAIrE,IAAIi/H,EAAWs9E,EAAWpkK,KAAOqkK,EAAcD,EAC3ClnM,EAAUmnM,EACV9pL,EAAO+pL,EAAWtkK,KAAOqkK,EAAcC,EACvCC,EAAMpiN,KAAKguC,KAAKhuC,KAAK0zB,IAAI3Y,EAAQ/f,EAAI2pI,EAAS3pI,EAAG,GAAKgF,KAAK0zB,IAAI3Y,EAAQx2B,EAAIogJ,EAASpgJ,EAAG,IACvF89N,EAAMriN,KAAKguC,KAAKhuC,KAAK0zB,IAAI0E,EAAKp9B,EAAI+f,EAAQ/f,EAAG,GAAKgF,KAAK0zB,IAAI0E,EAAK7zC,EAAIw2B,EAAQx2B,EAAG,IAC/E+9N,EAAMF,GAAOA,EAAMC,GACnBE,EAAMF,GAAOD,EAAMC,GAInBG,EAAK98M,GAFT48M,EAAM7iN,MAAM6iN,GAAO,EAAIA,GAInBG,EAAK/8M,GAHT68M,EAAM9iN,MAAM8iN,GAAO,EAAIA,GAIvB,MAAO,CACL59E,SAAU,CACR3pI,EAAG+f,EAAQ/f,EAAIwnN,GAAMpqL,EAAKp9B,EAAI2pI,EAAS3pI,GACvCzW,EAAGw2B,EAAQx2B,EAAIi+N,GAAMpqL,EAAK7zC,EAAIogJ,EAASpgJ,IAEzC6zC,KAAM,CACJp9B,EAAG+f,EAAQ/f,EAAIynN,GAAMrqL,EAAKp9B,EAAI2pI,EAAS3pI,GACvCzW,EAAGw2B,EAAQx2B,EAAIk+N,GAAMrqL,EAAK7zC,EAAIogJ,EAASpgJ,MAK7C03I,GAAUymF,QAAU/pK,OAAO+pK,SAAW,MAEtCzmF,GAAU4rE,oBAAsB,SAAU1zK,GAKxC,IASIzlC,EAAGi0N,EAAaC,EAAcC,EA8B9BC,EAAQC,EAAOC,EAAMC,EA6BrBtY,EApEAuY,GAAsB/uL,GAAU,IAAI7jB,KAAI,SAAU8jB,GACpD,MAAO,CACL80F,MAAO90F,EAAMsoG,OACbymF,OAAQ,EACRC,GAAI,MAIJC,EAAYH,EAAmB5zN,OAGnC,IAAKZ,EAAI,EAAGA,EAAI20N,IAAa30N,EAG3B,KAFAk0N,EAAeM,EAAmBx0N,IAEjBw6H,MAAMrrE,KAAvB,CAOA,GAHA8kK,EAAcj0N,EAAI,EAAIw0N,EAAmBx0N,EAAI,GAAK,MAClDm0N,EAAan0N,EAAI20N,EAAY,EAAIH,EAAmBx0N,EAAI,GAAK,QAE1Cm0N,EAAW35F,MAAMrrE,KAAM,CACxC,IAAIylK,EAAcT,EAAW35F,MAAMluH,EAAI4nN,EAAa15F,MAAMluH,EAE1D4nN,EAAaO,OAAyB,IAAhBG,GAAqBT,EAAW35F,MAAM3kI,EAAIq+N,EAAa15F,MAAM3kI,GAAK++N,EAAc,GAGnGX,GAAeA,EAAYz5F,MAAMrrE,KACpC+kK,EAAaQ,GAAKR,EAAaO,QACrBN,GAAcA,EAAW35F,MAAMrrE,KACzC+kK,EAAaQ,GAAKT,EAAYQ,OACrB77N,KAAKshI,KAAK+5F,EAAYQ,UAAY77N,KAAKshI,KAAKg6F,EAAaO,QAClEP,EAAaQ,GAAK,EAElBR,EAAaQ,IAAMT,EAAYQ,OAASP,EAAaO,QAAU,EAOnE,IAAKz0N,EAAI,EAAGA,EAAI20N,EAAY,IAAK30N,EAC/Bk0N,EAAeM,EAAmBx0N,GAClCm0N,EAAaK,EAAmBx0N,EAAI,GAEhCk0N,EAAa15F,MAAMrrE,MAAQglK,EAAW35F,MAAMrrE,OAI5Co+E,GAAU8kF,aAAa6B,EAAaO,OAAQ,EAAG77N,KAAKo7N,SACtDE,EAAaQ,GAAKP,EAAWO,GAAK,GAIpCN,EAASF,EAAaQ,GAAKR,EAAaO,OACxCJ,EAAQF,EAAWO,GAAKR,EAAaO,QACrCF,EAAmBjjN,KAAK0zB,IAAIovL,EAAQ,GAAK9iN,KAAK0zB,IAAIqvL,EAAO,KAEjC,IAIxBC,EAAO,EAAIhjN,KAAKguC,KAAKi1K,GACrBL,EAAaQ,GAAKN,EAASE,EAAOJ,EAAaO,OAC/CN,EAAWO,GAAKL,EAAQC,EAAOJ,EAAaO,UAM9C,IAAKz0N,EAAI,EAAGA,EAAI20N,IAAa30N,GAC3Bk0N,EAAeM,EAAmBx0N,IAEjBw6H,MAAMrrE,OAIvB8kK,EAAcj0N,EAAI,EAAIw0N,EAAmBx0N,EAAI,GAAK,KAClDm0N,EAAan0N,EAAI20N,EAAY,EAAIH,EAAmBx0N,EAAI,GAAK,KAEzDi0N,IAAgBA,EAAYz5F,MAAMrrE,OACpC8sJ,GAAUiY,EAAa15F,MAAMluH,EAAI2nN,EAAYz5F,MAAMluH,GAAK,EACxD4nN,EAAa15F,MAAMopE,sBAAwBswB,EAAa15F,MAAMluH,EAAI2vM,EAClEiY,EAAa15F,MAAMspE,sBAAwBowB,EAAa15F,MAAM3kI,EAAIomN,EAASiY,EAAaQ,IAGtFP,IAAeA,EAAW35F,MAAMrrE,OAClC8sJ,GAAUkY,EAAW35F,MAAMluH,EAAI4nN,EAAa15F,MAAMluH,GAAK,EACvD4nN,EAAa15F,MAAMqpE,kBAAoBqwB,EAAa15F,MAAMluH,EAAI2vM,EAC9DiY,EAAa15F,MAAMupE,kBAAoBmwB,EAAa15F,MAAM3kI,EAAIomN,EAASiY,EAAaQ,MAK1FnnF,GAAU8rE,SAAW,SAAU0Y,EAAYpxN,EAAOq+C,GAChD,OAAIA,EACKr+C,GAASoxN,EAAWnxN,OAAS,EAAImxN,EAAW,GAAKA,EAAWpxN,EAAQ,GAGtEA,GAASoxN,EAAWnxN,OAAS,EAAImxN,EAAWA,EAAWnxN,OAAS,GAAKmxN,EAAWpxN,EAAQ,IAGjG4sI,GAAUkhE,aAAe,SAAUsjB,EAAYpxN,EAAOq+C,GACpD,OAAIA,EACKr+C,GAAS,EAAIoxN,EAAWA,EAAWnxN,OAAS,GAAKmxN,EAAWpxN,EAAQ,GAGtEA,GAAS,EAAIoxN,EAAW,GAAKA,EAAWpxN,EAAQ,IAIzD4sI,GAAUsnF,QAAU,SAAUj+L,EAAO9c,GACnC,IAAIirL,EAAWzzL,KAAKG,MAAM87H,GAAUu3D,MAAMluK,IACtCk+L,EAAWl+L,EAAQtlB,KAAK0zB,IAAI,GAAI+/J,GAuBpC,OApBIjrL,EACEg7M,EAAW,IACE,EACNA,EAAW,EACL,EACNA,EAAW,EACL,EAEA,GAERA,GAAY,EACN,EACNA,GAAY,EACN,EACNA,GAAY,EACN,EAEA,IAGKxjN,KAAK0zB,IAAI,GAAI+/J,IAIrCx3D,GAAUg6D,iBACc,qBAAX13L,OACF,SAAUjU,GACfA,KAIGiU,OAAOhU,uBAAyBgU,OAAOuuD,6BAA+BvuD,OAAOwuD,0BAA4BxuD,OAAOklN,wBAA0BllN,OAAOmlN,yBAA2B,SAAUp5N,GAC3L,OAAOiU,OAAOtV,WAAWqB,EAAU,IAAO,KAK9C2xI,GAAU2tE,oBAAsB,SAAU5/M,EAAKg2I,GAC7C,IAAIu7D,EAAQqC,EACR57L,EAAIhY,EAAI8gD,eAAiB9gD,EACzB2zI,EAAS3zI,EAAIkC,QAAUlC,EAAI25N,WAC3BC,EAAejmF,EAAO/lI,wBACtB+yC,EAAU3oC,EAAE2oC,QAEZA,GAAWA,EAAQr7C,OAAS,GAC9BisM,EAAS5wJ,EAAQ,GAAGq8B,QACpB42H,EAASjzJ,EAAQ,GAAGs8B,UAEpBs0H,EAASv5L,EAAEglE,QACX42H,EAAS57L,EAAEilE,SAMb,IAAI9rB,EAAcptC,WAAWkuH,GAAU68D,SAASn7D,EAAQ,iBACpDkmF,EAAa91M,WAAWkuH,GAAU68D,SAASn7D,EAAQ,gBACnDviF,EAAertC,WAAWkuH,GAAU68D,SAASn7D,EAAQ,kBACrDmmF,EAAgB/1M,WAAWkuH,GAAU68D,SAASn7D,EAAQ,mBACtD7oH,EAAQ8uM,EAAa//L,MAAQ+/L,EAAaxoN,KAAO+/C,EAAcC,EAC/D3kD,EAASmtN,EAAargM,OAASqgM,EAAaltN,IAAMmtN,EAAaC,EAKnE,MAAO,CACL9oN,EAHFugM,EAASv7L,KAAKwI,OAAO+yL,EAASqoB,EAAaxoN,KAAO+/C,GAAermC,EAAQ6oH,EAAO7oH,MAAQkrH,EAAM+hF,yBAI5Fx9N,EAHFq5M,EAAS59L,KAAKwI,OAAOo1L,EAASgmB,EAAaltN,IAAMmtN,GAAcptN,EAASknI,EAAOlnI,OAASupI,EAAM+hF,2BA6DhG9lF,GAAU8nF,mBAAqB,SAAU/D,GACvC,OAAOD,EAAuBC,EAAS,YAAa,gBAItD/jF,GAAU+nF,oBAAsB,SAAUhE,GACxC,OAAOD,EAAuBC,EAAS,aAAc,iBAOvD/jF,GAAUgoF,kBAAoB,SAAUznM,EAAW4/G,EAAS8nF,GAE1D,OADA9nF,EAAUH,GAAU68D,SAASt8K,EAAW4/G,IACzBntI,QAAQ,MAAQ,EAAIi1N,EAAkBxkN,SAAS08H,EAAS,IAAM,IAAM18H,SAAS08H,EAAS,KAOvGH,GAAUkkF,eAAiB,SAAUH,GACnC,IAAIv7K,EAASu7K,EAAQtzM,WAMrB,OAJI+3B,GAAgC,wBAAtBA,EAAOrkC,aACnBqkC,EAASA,EAAO3K,MAGX2K,GAGTw3F,GAAUwgF,gBAAkB,SAAUuD,GACpC,IAAIxjM,EAAYy/G,GAAUkkF,eAAeH,GAEzC,IAAKxjM,EACH,OAAOwjM,EAAQvnK,YAGjB,IAAIA,EAAcj8B,EAAUi8B,YAMxBl8C,EAAIk8C,EAJUwjF,GAAUgoF,kBAAkBznM,EAAW,eAAgBi8B,GAEtDwjF,GAAUgoF,kBAAkBznM,EAAW,gBAAiBi8B,GAGvE0rK,EAAKloF,GAAU8nF,mBAAmB/D,GACtC,OAAOvgN,MAAM0kN,GAAM5nN,EAAIyD,KAAKkS,IAAI3V,EAAG4nN,IAGrCloF,GAAUygF,iBAAmB,SAAUsD,GACrC,IAAIxjM,EAAYy/G,GAAUkkF,eAAeH,GAEzC,IAAKxjM,EACH,OAAOwjM,EAAQtnK,aAGjB,IAAIA,EAAel8B,EAAUk8B,aAMzBz0D,EAAIy0D,EAJSujF,GAAUgoF,kBAAkBznM,EAAW,cAAek8B,GAEnDujF,GAAUgoF,kBAAkBznM,EAAW,iBAAkBk8B,GAGzEqlI,EAAK9hD,GAAU+nF,oBAAoBhE,GACvC,OAAOvgN,MAAMs+K,GAAM95L,EAAI+b,KAAKkS,IAAIjuB,EAAG85L,IAGrC9hD,GAAU68D,SAAW,SAAUhiM,EAAIgiD,GACjC,OAAOhiD,EAAGwuC,aAAexuC,EAAGwuC,aAAawT,GAAYp6C,SAAS65I,YAAYl8G,iBAAiBvlC,EAAI,MAAMwlC,iBAAiBwc,IAGxHmjF,GAAUqgF,YAAc,SAAUt8E,EAAOokF,GACvC,IAAIC,EAAarkF,EAAM+hF,wBAA0BqC,GAAgC,qBAAX7lN,QAA0BA,OAAOs5H,kBAAoB,EAE3H,GAAmB,IAAfwsF,EAAJ,CAIA,IAAI1mF,EAASqC,EAAMrC,OACflnI,EAASupI,EAAMvpI,OACfqe,EAAQkrH,EAAMlrH,MAClB6oH,EAAOlnI,OAASA,EAAS4tN,EACzB1mF,EAAO7oH,MAAQA,EAAQuvM,EACvBrkF,EAAMxH,IAAImE,MAAM0nF,EAAYA,GAIvB1mF,EAAO1lI,MAAMxB,QAAWknI,EAAO1lI,MAAM6c,QACxC6oH,EAAO1lI,MAAMxB,OAASA,EAAS,KAC/BknI,EAAO1lI,MAAM6c,MAAQA,EAAQ,QAKjCmnH,GAAUs7E,WAAa,SAAU+M,EAAWhmJ,EAAW80H,GACrD,OAAO90H,EAAY,IAAMgmJ,EAAY,MAAQlxB,GAG/Cn3D,GAAUsoF,YAAc,SAAU/rF,EAAKJ,EAAMosF,EAAe3S,GAE1D,IAAIn6M,GADJm6M,EAAQA,GAAS,IACAn6M,KAAOm6M,EAAMn6M,MAAQ,GAClC+sN,EAAK5S,EAAM6S,eAAiB7S,EAAM6S,gBAAkB,GAEpD7S,EAAMz5E,OAASA,IACjB1gI,EAAOm6M,EAAMn6M,KAAO,GACpB+sN,EAAK5S,EAAM6S,eAAiB,GAC5B7S,EAAMz5E,KAAOA,GAGfI,EAAIJ,KAAOA,EACX,IAEI1pI,EAAGwP,EAAGmlI,EAAMyE,EAAO68E,EAFnBC,EAAU,EACVnsF,EAAO+rF,EAAcl1N,OAGzB,IAAKZ,EAAI,EAAGA,EAAI+pI,EAAM/pI,IAGpB,QAAcJ,KAFdw5I,EAAQ08E,EAAc91N,KAEe,OAAVo5I,IAA+C,IAA7B7L,GAAUjqG,QAAQ81G,GAC7D88E,EAAU3oF,GAAUvD,YAAYF,EAAK9gI,EAAM+sN,EAAIG,EAAS98E,QACnD,GAAI7L,GAAUjqG,QAAQ81G,GAG3B,IAAK5pI,EAAI,EAAGmlI,EAAOyE,EAAMx4I,OAAQ4O,EAAImlI,EAAMnlI,SAGrB5P,KAFpBq2N,EAAc78E,EAAM5pI,KAE6B,OAAhBymN,GAAyB1oF,GAAUjqG,QAAQ2yL,KAC1EC,EAAU3oF,GAAUvD,YAAYF,EAAK9gI,EAAM+sN,EAAIG,EAASD,IAMhE,IAAIE,EAAQJ,EAAGn1N,OAAS,EAExB,GAAIu1N,EAAQL,EAAcl1N,OAAQ,CAChC,IAAKZ,EAAI,EAAGA,EAAIm2N,EAAOn2N,WACdgJ,EAAK+sN,EAAG/1N,IAGjB+1N,EAAG1mM,OAAO,EAAG8mM,GAGf,OAAOD,GAGT3oF,GAAUvD,YAAc,SAAUF,EAAK9gI,EAAM+sN,EAAIG,EAAS9zN,GACxD,IAAIg0N,EAAYptN,EAAK5G,GAWrB,OATKg0N,IACHA,EAAYptN,EAAK5G,GAAU0nI,EAAIE,YAAY5nI,GAAQgkB,MACnD2vM,EAAGnvN,KAAKxE,IAGNg0N,EAAYF,IACdA,EAAUE,GAGLF,GAOT3oF,GAAU8oF,mBAAqB,SAAUP,GACvC,IAAIQ,EAAgB,EAQpB,OAPA/oF,GAAU74F,KAAKohL,GAAe,SAAU18E,GAClC7L,GAAUjqG,QAAQ81G,IAChBA,EAAMx4I,OAAS01N,IACjBA,EAAgBl9E,EAAMx4I,WAIrB01N,GAGT/oF,GAAU+C,MAASkuD,EAEf,SAAUz1L,GAMZ,OAJIA,aAAiBwtN,iBACnBxtN,EAAQs7L,EAAcxjM,OAAOqjM,cAGxB1F,EAAaz1L,IARY,SAAUA,GAC1C,OAAOA,GAUTwkI,GAAU09D,cAAgB,SAAUurB,GAElC,OAAOA,aAAsBC,eAAiBD,aAAsBD,eAAiBC,EAAajpF,GAAU+C,MAAMkmF,GAAYp5B,SAAS,IAAKD,OAAO,IAAKpD,cAI5J,SAAS28B,KACP,MAAM,IAAIz7N,MAAM,6GAqBlB,SAAS07N,GAAY5mN,GACnBnX,KAAKmX,QAAUA,GAAW,GAG5Bw9H,GAAUxtG,OAAO42L,GAAY38N,UAE7B,CAME6mB,QAAS61M,GAST5iN,MAAO4iN,GASPlgO,OAAQkgO,GAURx4N,IAAKw4N,GAULxlN,KAAMwlN,GAUNh5F,QAASg5F,GAQT74F,MAAO64F,GAUPE,QAAS,SAAU7tN,GACjB,OAAOA,KAIX4tN,GAAYlhF,SAAW,SAAUohF,GAC/BtpF,GAAUxtG,OAAO42L,GAAY38N,UAAW68N,IAG1C,IACIC,GAAgB,CAClBC,MAFUJ,IASRK,GAAa,CAKfC,WAAY,CAOVtsL,OAAQ,SAAU5hC,GAChB,OAAOwkI,GAAUjqG,QAAQv6B,GAASA,EAAQ,GAAKA,GAWjDm8B,OAAQ,SAAUgyL,EAAWv2N,EAAOm3M,GAElC,IAAI9vL,EAAQ8vL,EAAMl3M,OAAS,EAAIk3M,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAAKA,EAAM,GAElExmM,KAAKC,IAAIyW,GAAS,GAChBkvM,IAAc5lN,KAAKG,MAAMylN,KAE3BlvM,EAAQkvM,EAAY5lN,KAAKG,MAAMylN,IAInC,IAAIC,EAAW5pF,GAAUu3D,MAAMxzL,KAAKC,IAAIyW,IACpCovM,EAAa,GAEjB,GAAkB,IAAdF,EAGF,GAFc5lN,KAAKmS,IAAInS,KAAKC,IAAIumM,EAAM,IAAKxmM,KAAKC,IAAIumM,EAAMA,EAAMl3M,OAAS,KAE3D,KAAM,CAElB,IAAIy2N,EAAU9pF,GAAUu3D,MAAMxzL,KAAKC,IAAI2lN,IACnCI,EAAiBhmN,KAAKG,MAAM4lN,GAAW/lN,KAAKG,MAAM0lN,GACtDG,EAAiBhmN,KAAKmS,IAAInS,KAAKkS,IAAI8zM,EAAgB,IAAK,GACxDF,EAAaF,EAAUK,cAAcD,OAChC,CACL,IAAIE,GAAc,EAAIlmN,KAAKG,MAAM0lN,GACjCK,EAAalmN,KAAKmS,IAAInS,KAAKkS,IAAIg0M,EAAY,IAAK,GAEhDJ,EAAaF,EAAU70M,QAAQm1M,QAGjCJ,EAAa,IAGf,OAAOA,GAETlxL,YAAa,SAAUgxL,EAAWv2N,EAAOm3M,GACvC,IAAI2f,EAASP,EAAY5lN,KAAK0zB,IAAI,GAAI1zB,KAAKG,MAAM87H,GAAUu3D,MAAMoyB,KAEjE,OAAkB,IAAdA,EACK,IACa,IAAXO,GAA2B,IAAXA,GAA2B,IAAXA,GAA0B,IAAV92N,GAAeA,IAAUm3M,EAAMl3M,OAAS,EAC1Fs2N,EAAUK,gBAGZ,MAITj0L,GAAUiqG,GAAUjqG,QACpBkmG,GAAgB+D,GAAU/D,cAC1BkuF,GAAmBnqF,GAAUpD,eAC7Bw0D,GAAwBpxD,GAAUoxD,sBAwDtC,SAASg5B,GAAO71M,EAAK81M,GAMnB,IALA,IAAIrtN,EAAS,GACT25C,EAAYpiC,EAAIlhB,OAASg3N,EACzB53N,EAAI,EACJ2/B,EAAM7d,EAAIlhB,OAEPZ,EAAI2/B,EAAK3/B,GAAKkkD,EACnB35C,EAAO3D,KAAKkb,EAAIxQ,KAAKG,MAAMzR,KAG7B,OAAOuK,EAGT,SAASstN,GAAoB5pF,EAAOttI,EAAOmxM,GACzC,IAOInlL,EAPA/rB,EAASqtI,EAAMgjE,WAAWrwM,OAC1Bk3N,EAAaxmN,KAAKkS,IAAI7iB,EAAOC,EAAS,GACtCm3N,EAAY9pF,EAAMijE,gBAAgB4mB,GAClC18L,EAAQ6yG,EAAMolE,YACdrgJ,EAAMi7E,EAAMqlE,UACZnQ,EAAU,KAId,KAAI2O,IAEAnlL,EADa,IAAX/rB,EACO0Q,KAAKmS,IAAIs0M,EAAY38L,EAAO43B,EAAM+kK,GACxB,IAAVp3N,GACCstI,EAAMijE,gBAAgB,GAAK6mB,GAAa,GAExCA,EAAY9pF,EAAMijE,gBAAgB4mB,EAAa,IAAM,GAGjEC,GAAaD,EAAan3N,EAAQgsB,GAAUA,GAE5ByO,EAAQ+nK,GAAW40B,EAAY/kK,EAAMmwI,IAKvD,OAAO40B,EAGT,SAAS/B,GAAegC,EAAQp3N,GAC9B2sI,GAAU74F,KAAKsjL,GAAQ,SAAU7U,GAC/B,IAEInjN,EAFA+1N,EAAK5S,EAAM4S,GACXI,EAAQJ,EAAGn1N,OAAS,EAGxB,GAAIu1N,EAAQv1N,EAAQ,CAClB,IAAKZ,EAAI,EAAGA,EAAIm2N,IAASn2N,SAChBmjN,EAAMn6M,KAAK+sN,EAAG/1N,IAGvB+1N,EAAG1mM,OAAO,EAAG8mM,OAUnB,SAAS8B,GAAkBnuF,EAAKouF,EAAWpgB,EAAOkgB,GAChD,IAMIh4N,EAAGwP,EAAGmlI,EAAM1uI,EAAOkyN,EAAUtP,EAAY1F,EAAOl5E,EAAY7jH,EAAOre,EAAQqwN,EAAaC,EAAQC,EANhG13N,EAASk3M,EAAMl3M,OACf23N,EAAS,GACTC,EAAU,GACV1tE,EAAU,GACV2tE,EAAkB,EAClBC,EAAmB,EAGvB,IAAK14N,EAAI,EAAGA,EAAIY,IAAUZ,EAAG,CAW3B,GAVAiG,EAAQ6xM,EAAM93M,GAAGiG,MACjBkyN,EAAWrgB,EAAM93M,GAAG24N,MAAQT,EAAUS,MAAQT,EAAUU,MACxD9uF,EAAIJ,KAAOm/E,EAAasP,EAAS/1N,OACjC+gN,EAAQ6U,EAAOnP,GAAcmP,EAAOnP,IAAe,CACjD7/M,KAAM,GACN+sN,GAAI,IAEN9rF,EAAakuF,EAASluF,WACtB7jH,EAAQre,EAAS,EAEZyhI,GAAcvjI,IAAWq9B,GAAQr9B,IAG/B,GAAIq9B,GAAQr9B,GAEjB,IAAKuJ,EAAI,EAAGmlI,EAAO1uI,EAAMrF,OAAQ4O,EAAImlI,IAAQnlI,EAC3C4oN,EAAcnyN,EAAMuJ,GAEfg6H,GAAc4uF,IAAiB90L,GAAQ80L,KAC1ChyM,EAAQmnH,GAAUvD,YAAYF,EAAKq5E,EAAMn6M,KAAMm6M,EAAM4S,GAAI3vM,EAAOgyM,GAChErwN,GAAUkiI,QATd7jH,EAAQmnH,GAAUvD,YAAYF,EAAKq5E,EAAMn6M,KAAMm6M,EAAM4S,GAAI3vM,EAAOngB,GAChE8B,EAASkiI,EAaXsuF,EAAO3xN,KAAKwf,GACZoyM,EAAQ5xN,KAAKmB,GACb+iJ,EAAQlkJ,KAAKqjI,EAAa,GAC1BwuF,EAAkBnnN,KAAKmS,IAAI2C,EAAOqyM,GAClCC,EAAmBpnN,KAAKmS,IAAI1b,EAAQ2wN,GAOtC,SAASG,EAAQrnN,GACf,MAAO,CACL4U,MAAOmyM,EAAO/mN,IAAQ,EACtBzJ,OAAQywN,EAAQhnN,IAAQ,EACxBmb,OAAQm+H,EAAQt5I,IAAQ,GAI5B,OAZAwkN,GAAegC,EAAQp3N,GACvBy3N,EAASE,EAAOh4N,QAAQk4N,GACxBH,EAAUE,EAAQj4N,QAAQm4N,GAUnB,CACL1uL,MAAO6uL,EAAQ,GACf/lB,KAAM+lB,EAAQj4N,EAAS,GACvBy3N,OAAQQ,EAAQR,GAChBC,QAASO,EAAQP,IAIrB,SAASQ,GAAkB/oN,GACzB,OAAOA,EAAQgpN,UAAYhpN,EAAQipN,eAAiB,EAGtD,SAASC,GAAoBlpN,GAC3B,IAAI25H,EAAMgE,EAEV,OAAK39H,EAAQgW,SAIb2jH,EAAO6D,GAAUx9H,QAAQw0L,WAAWx0L,GACpC29H,EAAUH,GAAUx9H,QAAQ0hI,UAAU1hI,EAAQ29H,SACvChE,EAAKO,WAAayD,EAAQ3lI,QALxB,EAQX,SAASmxN,GAAiBnpN,EAASopN,GACjC,OAAO5rF,GAAUxtG,OAAOwtG,GAAUx9H,QAAQw0L,WAAW,CACnDG,WAAYgzB,GAAiByB,EAAWz0B,WAAY30L,EAAQ20L,YAC5DD,SAAUizB,GAAiByB,EAAW10B,SAAU10L,EAAQ00L,UACxD70H,UAAW8nJ,GAAiByB,EAAWvpJ,UAAW7/D,EAAQ6/D,WAC1Dq6D,WAAYytF,GAAiByB,EAAWlvF,WAAYl6H,EAAQk6H,cAC1D,CACFqG,MAAO/C,GAAUx9H,QAAQyrD,QAAQ,CAAC29J,EAAWC,UAAWrpN,EAAQqpN,UAAW/0B,EAAcxjM,OAAOwwI,qBAIpG,SAASgoF,GAAqBtpN,GAC5B,IAAI6oN,EAAQM,GAAiBnpN,EAASA,EAAQ6oN,OAE9C,MAAO,CACLA,MAAOA,EACPD,MAHU5oN,EAAQ4oN,MAAMjuK,QAAUwuK,GAAiBnpN,EAASA,EAAQ4oN,OAASC,GAOjF,SAASU,GAAWC,GAClB,IACI18L,EAAMl8B,EAAOg/B,EADbsyL,EAAW,GAGf,IAAKtxN,EAAQ,EAAGg/B,EAAM45L,EAAc34N,OAAQD,EAAQg/B,IAAOh/B,EAG9B,qBAF3Bk8B,EAAO08L,EAAc54N,IAELqwI,QACdihF,EAASrrN,KAAKi2B,GAIlB,OAAOo1L,EAGT,SAASuH,GAAe13M,GACtB,IACI9hB,EAAGkR,EADHyuB,EAAM7d,EAAIlhB,OAGd,GAAI++B,EAAM,EACR,OAAO,EAGT,IAAKzuB,EAAO4Q,EAAI,GAAI9hB,EAAI,EAAGA,EAAI2/B,IAAO3/B,EACpC,GAAI8hB,EAAI9hB,GAAK8hB,EAAI9hB,EAAI,KAAOkR,EAC1B,OAAO,EAIX,OAAOA,EAGT,SAASuoN,GAAiBC,EAAc5hB,EAAO6hB,EAAYC,GACzD,IAEIC,EAAS90L,EAAQ/kC,EAAG+pI,EAFpB+vF,EAAmBN,GAAeE,GAClCK,GAAWjiB,EAAMl3M,OAAS,GAAKg5N,EAInC,IAAKE,EACH,OAAOxoN,KAAKmS,IAAIs2M,EAAS,GAK3B,IAAK/5N,EAAI,EAAG+pI,GAFZ8vF,EAAUtsF,GAAUq4D,KAAKf,WAAWi1B,IAETl5N,OAAS,EAAGZ,EAAI+pI,EAAM/pI,IAG/C,IAFA+kC,EAAS80L,EAAQ75N,IAEJ+5N,EACX,OAAOh1L,EAIX,OAAOzzB,KAAKmS,IAAIs2M,EAAS,GAG3B,SAASC,GAAgBliB,GACvB,IACI93M,EAAG+pI,EADHx/H,EAAS,GAGb,IAAKvK,EAAI,EAAG+pI,EAAO+tE,EAAMl3M,OAAQZ,EAAI+pI,EAAM/pI,IACrC83M,EAAM93M,GAAG24N,OACXpuN,EAAO3D,KAAK5G,GAIhB,OAAOuK,EAGT,SAAS0vN,GAAWniB,EAAO4hB,EAAcK,GACvC,IAEI/5N,EAAGk6N,EAFHvuB,EAAQ,EACRjiK,EAAOgwL,EAAa,GAIxB,IAFAK,EAAUzoN,KAAKo6C,KAAKquK,GAEf/5N,EAAI,EAAGA,EAAI83M,EAAMl3M,OAAQZ,IAC5Bk6N,EAAOpiB,EAAM93M,GAETA,IAAM0pC,GACRwwL,EAAKlpF,OAAShxI,EAEd0pC,EAAOgwL,IADP/tB,EAC4BouB,WAErBG,EAAKj0N,MAKlB,SAASkpD,GAAK2oJ,EAAOiiB,EAASI,EAAYC,GACxC,IAGIx5N,EAAQZ,EAAGk6N,EAAMxwL,EAHjBtO,EAAQs8L,GAAiByC,EAAY,GACrCnnK,EAAM1hD,KAAKkS,IAAIk0M,GAAiB0C,EAAUtiB,EAAMl3M,QAASk3M,EAAMl3M,QAC/D+qM,EAAQ,EAWZ,IATAouB,EAAUzoN,KAAKo6C,KAAKquK,GAEhBK,IAEFL,GADAn5N,EAASw5N,EAAWD,GACD7oN,KAAKG,MAAM7Q,EAASm5N,IAGzCrwL,EAAOtO,EAEAsO,EAAO,GACZiiK,IACAjiK,EAAOp4B,KAAKwI,MAAMshB,EAAQuwK,EAAQouB,GAGpC,IAAK/5N,EAAIsR,KAAKmS,IAAI2X,EAAO,GAAIp7B,EAAIgzD,EAAKhzD,IACpCk6N,EAAOpiB,EAAM93M,GAETA,IAAM0pC,GACRwwL,EAAKlpF,OAAShxI,EACd2rM,IACAjiK,EAAOp4B,KAAKwI,MAAMshB,EAAQuwK,EAAQouB,WAE3BG,EAAKj0N,MAzUlBo+L,EAAczvD,KAAK,QAAS,CAC1B7uH,SAAS,EACT3K,SAAU,OACVuR,QAAQ,EAERklL,UAAW,CACT9rL,SAAS,EACTuqH,MAAO,kBACPd,UAAW,EACXi9D,YAAY,EACZ4tB,iBAAiB,EACjBtB,WAAW,EACXC,eAAgB,GAChBsB,cAAe,EACfC,cAAe,mBACfC,mBAAoB,GACpBC,yBAA0B,EAC1B3oB,iBAAiB,EACjB/D,WAAY,GACZC,iBAAkB,GAGpB0sB,WAAY,CAEV30M,SAAS,EAET40M,YAAa,GAEbjtF,QAAS,CACP1lI,IAAK,EACL6sB,OAAQ,IAIZijL,MAAO,CACL4B,aAAa,EACbkhB,YAAa,EACbC,YAAa,GACbC,QAAQ,EACRptF,QAAS,EACThnG,SAAS,EACT3gB,SAAS,EACTg1M,UAAU,EACVC,gBAAiB,EACjBC,YAAa,EAEbr/N,SAAUo7N,GAAWC,WAAWtsL,OAChCiuL,MAAO,GACPD,MAAO,MA8RX,IAAIuC,GAAQx0B,GAAa3mK,OAAO,CAC9Bo7L,cAAe,EAQfxd,WAAY,WACV,IAAI5iL,EAAKniC,KACT,MAAO,CACL8T,KAAMquB,EAAG0xB,aAAe,EACxBzkD,IAAK+yB,EAAGo6L,YAAc,EACtBhgM,MAAO4F,EAAG2xB,cAAgB,EAC1B73B,OAAQkG,EAAGq6L,eAAiB,IAQhCnkB,SAAU,WACR,OAAOr4M,KAAKwiO,QAMdC,WAAY,WACV,IAAIryN,EAAOpQ,KAAK04I,MAAMtoI,KACtB,OAAOpQ,KAAKmX,QAAQi0F,SAAWprG,KAAK4mD,eAAiBx2C,EAAKsyN,QAAUtyN,EAAKuyN,UAAYvyN,EAAKg7F,QAAU,IAYtG2qH,kBAAmB,aAEnB33E,aAAc,WACZzJ,GAAU3xI,SAAShD,KAAKmX,QAAQinI,aAAc,CAACp+I,QAWjDkxD,OAAQ,SAAUgzG,EAAUu1B,EAAWmpC,GACrC,IAGIx7N,EAAG+pI,EAAM/lC,EAAQ8zG,EAAO2jB,EAHxB1gM,EAAKniC,KACLi/M,EAAW98K,EAAGhrB,QAAQ+nM,MACtB4jB,EAAa7jB,EAAS6jB,WA0C1B,GAvCA3gM,EAAGi8G,eAEHj8G,EAAG+hI,SAAWA,EACd/hI,EAAGs3J,UAAYA,EACft3J,EAAGygM,QAAUjuF,GAAUxtG,OAAO,CAC5BrzB,KAAM,EACNyoB,MAAO,EACPntB,IAAK,EACL6sB,OAAQ,GACP2mM,GACHzgM,EAAGqgM,OAAS,KACZrgM,EAAG+8K,MAAQ,KACX/8K,EAAG4gM,YAAc,KACjB5gM,EAAG6gM,eAAiB,EACpB7gM,EAAG8gM,kBAAoB,EACvB9gM,EAAG+gM,iBAAmB/gM,EAAG+gM,kBAAoB,GAC7C/gM,EAAGghM,eAAiB,KACpBhhM,EAAGihM,YAAc,KAEjBjhM,EAAGkhM,sBACHlhM,EAAGmhM,gBACHnhM,EAAGohM,qBAEHphM,EAAGqhM,mBACHrhM,EAAGshM,sBACHthM,EAAGuhM,kBAOHvhM,EAAGwhM,mBAGHzkB,EAAQ/8K,EAAGyhM,cAAgB,MAE3B1kB,EAAQ/8K,EAAG0hM,gBAAgB3kB,IAAUA,KAErBA,EAAMl3M,SAAWm6B,EAAG+8K,MAGlC,IAFAA,EAAQ,GAEH93M,EAAI,EAAG+pI,EAAOhvG,EAAG+8K,MAAMl3M,OAAQZ,EAAI+pI,IAAQ/pI,EAC9C83M,EAAMlxM,KAAK,CACTmC,MAAOgyB,EAAG+8K,MAAM93M,GAChB24N,OAAO,IAqCb,OAhCA59L,EAAGqgM,OAAStjB,EAGZ2jB,EAAkBC,EAAa5jB,EAAMl3M,OACrCojG,EAASjpE,EAAG2hM,sBAAsBjB,EAAkB9D,GAAO7f,EAAO4jB,GAAc5jB,GAKhF/8K,EAAGkvK,aAGHlvK,EAAG4hM,8BACH5hM,EAAG6hM,wBACH7hM,EAAG8hM,6BACH9hM,EAAG+hM,YACH/hM,EAAGgiM,MACHhiM,EAAGiiM,WAEHjiM,EAAGkiM,aAAeplB,EAAS9xL,UAAY8xL,EAASkjB,UAAgC,SAApBljB,EAASz3M,QAAqB26B,EAAGmiM,UAAUplB,GAASA,EAE5G2jB,IAEFz3H,EAASjpE,EAAG2hM,sBAAsB3hM,EAAGkiM,eAGvCliM,EAAG+8K,MAAQ9zG,EAGXjpE,EAAGy8G,cAGIz8G,EAAGo/K,SAMZlQ,WAAY,WACV,IAEIkzB,EAAYC,EAFZriM,EAAKniC,KACLykO,EAAgBtiM,EAAGhrB,QAAQ+nM,MAAMpxK,QAGjC3L,EAAGykB,gBACL29K,EAAapiM,EAAGruB,KAChB0wN,EAAWriM,EAAG5F,QAEdgoM,EAAapiM,EAAG/yB,IAChBo1N,EAAWriM,EAAGlG,OAEdwoM,GAAiBA,GAGnBtiM,EAAGs4K,YAAc8pB,EACjBpiM,EAAGu4K,UAAY8pB,EACfriM,EAAGuiM,eAAiBD,EACpBtiM,EAAGqsE,QAAUg2H,EAAWD,GAE1B3lF,YAAa,WACXjK,GAAU3xI,SAAShD,KAAKmX,QAAQynI,YAAa,CAAC5+I,QAGhDqjO,oBAAqB,WACnB1uF,GAAU3xI,SAAShD,KAAKmX,QAAQksN,oBAAqB,CAACrjO,QAExDsjO,cAAe,WACb,IAAInhM,EAAKniC,KAELmiC,EAAGykB,gBAELzkB,EAAG3U,MAAQ2U,EAAG+hI,SACd/hI,EAAGruB,KAAO,EACVquB,EAAG5F,MAAQ4F,EAAG3U,QAEd2U,EAAGhzB,OAASgzB,EAAGs3J,UAEft3J,EAAG/yB,IAAM,EACT+yB,EAAGlG,OAASkG,EAAGhzB,QAIjBgzB,EAAG0xB,YAAc,EACjB1xB,EAAGo6L,WAAa,EAChBp6L,EAAG2xB,aAAe,EAClB3xB,EAAGq6L,cAAgB,GAErB+G,mBAAoB,WAClB5uF,GAAU3xI,SAAShD,KAAKmX,QAAQosN,mBAAoB,CAACvjO,QAGvDwjO,iBAAkB,WAChB7uF,GAAU3xI,SAAShD,KAAKmX,QAAQqsN,iBAAkB,CAACxjO,QAErDyjO,oBAAqB9uF,GAAU0b,KAC/BqzE,gBAAiB,WACf/uF,GAAU3xI,SAAShD,KAAKmX,QAAQusN,gBAAiB,CAAC1jO,QAGpD2jO,iBAAkB,WAChBhvF,GAAU3xI,SAAShD,KAAKmX,QAAQwsN,iBAAkB,CAAC3jO,QAErD4jO,WAAYjvF,GAAU0b,KACtBwzE,gBAAiB,SAAU3kB,GACzB,IAAI/8K,EAAKniC,KAET,OAAI0qC,GAAQw0K,IAAUA,EAAMl3M,OACnB2sI,GAAU3xI,SAASm/B,EAAGhrB,QAAQ0sN,gBAAiB,CAAC1hM,EAAI+8K,KAI7D/8K,EAAG+8K,MAAQvqE,GAAU3xI,SAASm/B,EAAGhrB,QAAQ0sN,gBAAiB,CAAC1hM,EAAIA,EAAG+8K,SAAW/8K,EAAG+8K,MACzEA,IAETylB,4BAA6B,WAC3BhwF,GAAU3xI,SAAShD,KAAKmX,QAAQwtN,4BAA6B,CAAC3kO,QAEhE4kO,qBAAsB,WACpB,IAAIziM,EAAKniC,KAELi/M,EAAW98K,EAAGhrB,QAAQ+nM,MAC1B/8K,EAAG+8K,MAAQ/8K,EAAG+8K,MAAMl2L,IAAIi2L,EAAS4lB,cAAgB5lB,EAASj8M,SAAUhD,OAEtE8kO,2BAA4B,WAC1BnwF,GAAU3xI,SAAShD,KAAKmX,QAAQ2tN,2BAA4B,CAAC9kO,QAG/D+jO,4BAA6B,WAC3BpvF,GAAU3xI,SAAShD,KAAKmX,QAAQ4sN,4BAA6B,CAAC/jO,QAEhEgkO,sBAAuB,WACrB,IAOIe,EAAYC,EAAeC,EAAgB/gE,EAAUghE,EAAWzrC,EAAW0rC,EAP3EhjM,EAAKniC,KACLmX,EAAUgrB,EAAGhrB,QACb8nM,EAAW9nM,EAAQ+nM,MACnBkmB,EAAWjjM,EAAGk2K,WAAWrwM,OACzBg6N,EAAc/iB,EAAS+iB,aAAe,EACtCC,EAAchjB,EAASgjB,YACvBoD,EAAgBrD,GAGf7/L,EAAGmjM,eAAiBrmB,EAAS9xL,SAAW60M,GAAeC,GAAemD,GAAY,IAAMjjM,EAAGykB,eAC9FzkB,EAAGkjM,cAAgBrD,GAKrBgD,GADAD,EAAa5iM,EAAGojM,kBACW9F,OAAOjyM,MAClCy3M,EAAiBF,EAAWrF,QAAQvwN,OAAS41N,EAAWrF,QAAQ3rM,OAGhEmwI,EAAWxrJ,KAAKkS,IAAIuX,EAAG+hI,SAAU/hI,EAAGu2G,MAAMlrH,MAAQw3M,GAG9CA,EAAgB,GAFpBE,EAAY/tN,EAAQ4c,OAASoO,EAAG+hI,SAAWkhE,EAAWlhE,GAAYkhE,EAAW,MAG3EF,EAAYhhE,GAAYkhE,GAAYjuN,EAAQ4c,OAAS,GAAM,IAC3D0lK,EAAYt3J,EAAGs3J,UAAYymC,GAAkB/oN,EAAQ8hM,WAAagG,EAASnqE,QAAUurF,GAAoBlpN,EAAQ2qN,YACjHqD,EAAmBzsN,KAAKguC,KAAKs+K,EAAgBA,EAAgBC,EAAiBA,GAC9EI,EAAgB1wF,GAAUmlF,UAAUphN,KAAKkS,IAAIlS,KAAKiwL,KAAKjwL,KAAKkS,KAAKm6M,EAAWrF,QAAQvwN,OAAS,GAAK+1N,EAAW,IAAKxsN,KAAKiwL,KAAKjwL,KAAKkS,IAAI6uK,EAAY0rC,EAAkB,IAAMzsN,KAAKiwL,KAAKs8B,EAAiBE,KACpME,EAAgB3sN,KAAKmS,IAAIm3M,EAAatpN,KAAKkS,IAAIq3M,EAAaoD,KAG9DljM,EAAGkjM,cAAgBA,IAErBpB,2BAA4B,WAC1BtvF,GAAU3xI,SAAShD,KAAKmX,QAAQ8sN,2BAA4B,CAACjkO,QAG/DkkO,UAAW,WACTvvF,GAAU3xI,SAAShD,KAAKmX,QAAQ+sN,UAAW,CAAClkO,QAE9CmkO,IAAK,WACH,IAAIhiM,EAAKniC,KAELuhN,EAAUp/K,EAAGo/K,QAAU,CACzB/zL,MAAO,EACPre,OAAQ,GAENupI,EAAQv2G,EAAGu2G,MACXx/H,EAAOipB,EAAGhrB,QACV8nM,EAAW/lM,EAAKgmM,MAChBsmB,EAAiBtsN,EAAK4oN,WACtB2D,EAAevsN,EAAK+/L,UAEpB9rL,EAAUgV,EAAGmjM,aAEbI,EAA6B,WAAlBxsN,EAAKsJ,SAChBokC,EAAezkB,EAAGykB,eAgBtB,GAdIA,EACF26J,EAAQ/zL,MAAQ2U,EAAG+hI,SACV/2I,IACTo0L,EAAQ/zL,MAAQ0yM,GAAkBuF,GAAgBpF,GAAoBmF,IAInE5+K,EAEMz5B,IACTo0L,EAAQpyM,OAAS+wN,GAAkBuF,GAAgBpF,GAAoBmF,IAFvEjkB,EAAQpyM,OAASgzB,EAAGs3J,UAMlBwlB,EAAS9xL,SAAWA,EAAS,CAC/B,IAAImyM,EAAYmB,GAAqBxhB,GAEjC8lB,EAAa5iM,EAAGojM,iBAEhBI,EAAiBZ,EAAW3zL,MAC5Bw0L,EAAgBb,EAAW7qB,KAC3B2lB,EAAkBkF,EAAWtF,OAC7BK,EAAmBiF,EAAWrF,QAC9BmG,EAAyC,GAA7BvG,EAAUU,MAAM3uF,WAC5By0F,EAAc7mB,EAASnqE,QAE3B,GAAIluF,EAAc,CAEhB,IAAIm/K,EAAiC,IAArB5jM,EAAGkjM,cACfW,EAAerxF,GAAUklF,UAAU13L,EAAGkjM,eACtCY,EAAcvtN,KAAKi6H,IAAIqzF,GACvBE,EAAcxtN,KAAKk6H,IAAIozF,GACvBG,EAAcD,EAAcrG,EAAgBryM,MAAQy4M,GAAenG,EAAiB3wN,QAAU42N,EAAYjG,EAAiB/rM,OAAS,KAAOgyM,EAAY,EAAIF,GAE/JtkB,EAAQpyM,OAASuJ,KAAKkS,IAAIuX,EAAGs3J,UAAW8nB,EAAQpyM,OAASg3N,EAAcL,GACvE,IAEIjyK,EAAaC,EAFbsB,EAAajzB,EAAGm2K,gBAAgB,GAAKn2K,EAAGruB,KACxCsyN,EAAcjkM,EAAG5F,MAAQ4F,EAAGm2K,gBAAgBn2K,EAAGk2K,WAAWrwM,OAAS,GAInE+9N,GACFlyK,EAAc6xK,EAAWO,EAAcN,EAAen4M,MAAQ04M,EAAcP,EAAe5xM,OAASmyM,GAAeP,EAAex2N,OAASw2N,EAAe5xM,QAC1J+/B,EAAe4xK,EAAWQ,GAAeN,EAAcz2N,OAASy2N,EAAc7xM,QAAUkyM,EAAcL,EAAcp4M,MAAQ04M,EAAcN,EAAc7xM,SAExJ8/B,EAAc8xK,EAAen4M,MAAQ,EACrCsmC,EAAe8xK,EAAcp4M,MAAQ,GAKvC2U,EAAG0xB,YAAcn7C,KAAKmS,KAAKgpC,EAAcuB,GAAcjzB,EAAG3U,OAAS2U,EAAG3U,MAAQ4nC,GAAa,GAAK,EAChGjzB,EAAG2xB,aAAep7C,KAAKmS,KAAKipC,EAAesyK,GAAejkM,EAAG3U,OAAS2U,EAAG3U,MAAQ44M,GAAc,GAAK,MAC/F,CAGL,IAAIjzD,EAAa8rC,EAASijB,OAAS,EAEnCrC,EAAgBryM,MAAQs4M,EAAcD,EACtCtkB,EAAQ/zL,MAAQ9U,KAAKkS,IAAIuX,EAAG+hI,SAAUq9C,EAAQ/zL,MAAQ2lJ,GACtDhxI,EAAGo6L,WAAaoJ,EAAex2N,OAAS,EACxCgzB,EAAGq6L,cAAgBoJ,EAAcz2N,OAAS,GAI9CgzB,EAAGkkM,gBAECz/K,GACFzkB,EAAG3U,MAAQ2U,EAAGqsE,QAAUkqC,EAAMlrH,MAAQ2U,EAAGygM,QAAQ9uN,KAAOquB,EAAGygM,QAAQrmM,MACnE4F,EAAGhzB,OAASoyM,EAAQpyM,SAEpBgzB,EAAG3U,MAAQ+zL,EAAQ/zL,MACnB2U,EAAGhzB,OAASgzB,EAAGqsE,QAAUkqC,EAAMvpI,OAASgzB,EAAGygM,QAAQxzN,IAAM+yB,EAAGygM,QAAQ3mM,SAQxEoqM,cAAe,WACb,IAAIlkM,EAAKniC,KAELmiC,EAAGygM,UACLzgM,EAAGygM,QAAQ9uN,KAAO4E,KAAKmS,IAAIsX,EAAG0xB,YAAa1xB,EAAGygM,QAAQ9uN,MACtDquB,EAAGygM,QAAQxzN,IAAMsJ,KAAKmS,IAAIsX,EAAGo6L,WAAYp6L,EAAGygM,QAAQxzN,KACpD+yB,EAAGygM,QAAQrmM,MAAQ7jB,KAAKmS,IAAIsX,EAAG2xB,aAAc3xB,EAAGygM,QAAQrmM,OACxD4F,EAAGygM,QAAQ3mM,OAASvjB,KAAKmS,IAAIsX,EAAGq6L,cAAer6L,EAAGygM,QAAQ3mM,UAG9DmoM,SAAU,WACRzvF,GAAU3xI,SAAShD,KAAKmX,QAAQitN,SAAU,CAACpkO,QAG7C4mD,aAAc,WACZ,IAAIwxE,EAAMp4H,KAAKmX,QAAQqL,SACvB,MAAe,QAAR41G,GAAyB,WAARA,GAE1BkuG,YAAa,WACX,OAAOtmO,KAAKmX,QAAQitM,WAGtBlE,cAAe,SAAUqmB,GAEvB,GAAI31F,GAAc21F,GAChB,OAAOr9G,IAIT,IAAyB,kBAAbq9G,GAAyBA,aAAoBl1K,UAAYmG,SAAS+uK,GAC5E,OAAOr9G,IAIT,GAAIq9G,EACF,GAAIvmO,KAAK4mD,gBACP,QAAmB5/C,IAAfu/N,EAAS7yN,EACX,OAAO1T,KAAKkgN,cAAcqmB,EAAS7yN,QAEhC,QAAmB1M,IAAfu/N,EAAStpO,EAClB,OAAO+C,KAAKkgN,cAAcqmB,EAAStpO,GAKvC,OAAOspO,GAETzC,sBAAuB,SAAU5kB,GAC/B,IACI9zG,EAAQhkG,EAAG+pI,EADXhvG,EAAKniC,KAYT,IAVAmiC,EAAG+8K,MAAQA,EAAMl2L,KAAI,SAAUs4M,GAC7B,OAAOA,EAAKnxN,SAEdgyB,EAAGwiM,8BAIHv5H,EAASjpE,EAAGyiM,qBAAqB1lB,IAAU/8K,EAAG+8K,MAC9C/8K,EAAG2iM,6BAEE19N,EAAI,EAAG+pI,EAAO+tE,EAAMl3M,OAAQZ,EAAI+pI,IAAQ/pI,EAC3C83M,EAAM93M,GAAGiG,MAAQ+9F,EAAOhkG,GAG1B,OAAOgkG,GAMTm6H,eAAgB,WACd,IAAIpjM,EAAKniC,KACL+kO,EAAa5iM,EAAG4gM,YAOpB,OALKgC,IACH5iM,EAAG4gM,YAAcgC,EAAa1F,GAAkBl9L,EAAG+uG,IAAKuvF,GAAqBt+L,EAAGhrB,QAAQ+nM,OAAQ/8K,EAAGk2K,WAAYl2K,EAAG+gM,kBAClH/gM,EAAG8gM,kBAAoB8B,EAAWtF,OAAOjyM,OAGpCu3M,GAMTjqB,YAAa,SAAU3qM,GACrB,IAAIqyB,EAAO43B,EAAKxvC,EAAKC,EAerB,OAbI6f,GAAQv6B,IACVqyB,GAASxiC,KAAKkgN,cAAc/vM,EAAM,IAClCiqD,GAAOp6D,KAAKkgN,cAAc/vM,EAAM,IAChCya,EAAMlS,KAAKkS,IAAI4X,EAAO43B,GACtBvvC,EAAMnS,KAAKmS,IAAI2X,EAAO43B,KAGtB53B,OAAQx7B,EACRozD,EAFAjqD,GAASnQ,KAAKkgN,cAAc/vM,GAG5Bya,EAAMza,EACN0a,EAAM1a,GAGD,CACLya,IAAKA,EACLC,IAAKA,EACL2X,MAAOA,EACP43B,IAAKA,IAOTosK,eAAgB,SAAUD,GACxB,IAAI34L,EAAI5tC,KAAK86M,YAAYyrB,GAEzB,YAAgBv/N,IAAZ4mC,EAAEpL,MACG,IAAMoL,EAAEpL,MAAQ,KAAOoL,EAAEwsB,IAAM,KAGhCp6D,KAAKkgN,cAAcqmB,IAQ7BvY,iBAAkBr5E,GAAU0b,KAS5BnB,iBAAkBva,GAAU0b,KAO5Bo2E,iBAAkB9xF,GAAU0b,KAM5BioD,gBAAiB,SAAUvwM,GACzB,IAAIo6B,EAAKniC,KACL+zB,EAASoO,EAAGhrB,QAAQ4c,OACpBqxM,EAAWjjM,EAAGqgM,OAAOx6N,OACrBk9N,EAAY,EAAIxsN,KAAKmS,IAAIu6M,GAAYrxM,EAAS,EAAI,GAAI,GAC1D,OAAOhsB,EAAQ,GAAKA,EAAQq9N,EAAW,EAAI,KAAOjjM,EAAGw5K,mBAAmB5zM,EAAQm9N,GAAanxM,EAASmxM,EAAY,EAAI,KAOxHvpB,mBAAoB,SAAU+qB,GAC5B,IAAIvkM,EAAKniC,KAMT,OAJImiC,EAAGuiM,iBACLgC,EAAU,EAAIA,GAGTvkM,EAAGs4K,YAAcisB,EAAUvkM,EAAGqsE,SAEvCm4H,mBAAoB,SAAUhxF,GAC5B,IAAI+wF,GAAW/wF,EAAQ31I,KAAKy6M,aAAez6M,KAAKwuG,QAChD,OAAOxuG,KAAK0kO,eAAiB,EAAIgC,EAAUA,GAO7C9wF,aAAc,WACZ,OAAO51I,KAAKkvJ,iBAAiBlvJ,KAAK4mO,iBAEpCA,aAAc,WACZ,IAAIzkM,EAAKniC,KACL4qB,EAAMuX,EAAGvX,IACTC,EAAMsX,EAAGtX,IACb,OAAOsX,EAAG2+K,YAAc,EAAIl2L,EAAM,GAAKC,EAAM,EAAIA,EAAMD,EAAM,GAAKC,EAAM,EAAID,EAAM,GAOpF05M,UAAW,SAAUplB,GACnB,IAQI93M,EAAG+pI,EAAMgwF,EAAS0F,EARlB1kM,EAAKniC,KACLi/M,EAAW98K,EAAGhrB,QAAQ+nM,MACtB6hB,EAAa5+L,EAAGqsE,QAChBwyH,EAAa/hB,EAAS6nB,eAAiB/F,EAAa5+L,EAAG4kM,YAAc,EACrEjG,EAAe7hB,EAAS8gB,MAAMjuK,QAAUsvK,GAAgBliB,GAAS,GACjE8nB,EAAkBlG,EAAa94N,OAC/BopC,EAAQ0vL,EAAa,GACrB5mB,EAAO4mB,EAAakG,EAAkB,GAG1C,GAAIA,EAAkBhG,EAEpB,OADAK,GAAWniB,EAAO4hB,EAAckG,EAAkBhG,GAC3CN,GAAWxhB,GAKpB,GAFAiiB,EAAUN,GAAiBC,EAAc5hB,EAAO6hB,EAAYC,GAExDgG,EAAkB,EAAG,CACvB,IAAK5/N,EAAI,EAAG+pI,EAAO61F,EAAkB,EAAG5/N,EAAI+pI,EAAM/pI,IAChDmvD,GAAK2oJ,EAAOiiB,EAASL,EAAa15N,GAAI05N,EAAa15N,EAAI,IAMzD,OAHAy/N,EAAkBG,EAAkB,GAAK9sB,EAAO9oK,IAAU41L,EAAkB,GAAK,KACjFzwK,GAAK2oJ,EAAOiiB,EAASxsF,GAAU/D,cAAci2F,GAAmB,EAAIz1L,EAAQy1L,EAAiBz1L,GAC7FmlB,GAAK2oJ,EAAOiiB,EAASjnB,EAAMvlE,GAAU/D,cAAci2F,GAAmB3nB,EAAMl3M,OAASkyM,EAAO2sB,GACrFnG,GAAWxhB,GAIpB,OADA3oJ,GAAK2oJ,EAAOiiB,GACLT,GAAWxhB,IAMpB6nB,UAAW,WACT,IAAI5kM,EAAKniC,KACLinO,EAAc9kM,EAAGhrB,QAAQ+nM,MAEzBgoB,EAAMvyF,GAAUklF,UAAU13L,EAAGkjM,eAC7B1yF,EAAMj6H,KAAKC,IAAID,KAAKi6H,IAAIu0F,IACxBt0F,EAAMl6H,KAAKC,IAAID,KAAKk6H,IAAIs0F,IAExBnC,EAAa5iM,EAAGojM,iBAEhBzwF,EAAUmyF,EAAY7E,iBAAmB,EACzCntN,EAAI8vN,EAAaA,EAAWtF,OAAOjyM,MAAQsnH,EAAU,EACrDn4I,EAAIooO,EAAaA,EAAWrF,QAAQvwN,OAAS2lI,EAAU,EAE3D,OAAO3yG,EAAGykB,eAAiBjqD,EAAIg2I,EAAM19H,EAAI29H,EAAM39H,EAAI09H,EAAMh2I,EAAIi2I,EAAMj2I,EAAIi2I,EAAM39H,EAAI09H,EAAMh2I,EAAIg2I,EAAM19H,EAAI29H,GAMvG0yF,WAAY,WACV,IAGIl+N,EAAG+pI,EAAM5uD,EAHTpgD,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXvrH,EAAUgV,EAAGhrB,QAAQgW,QAGzB,GAAgB,SAAZA,EACF,QAASA,EAIX,IAAK/lB,EAAI,EAAG+pI,EAAOuH,EAAMtoI,KAAK0rI,SAAS9zI,OAAQZ,EAAI+pI,IAAQ/pI,EACzD,GAAIsxI,EAAM+F,iBAAiBr3I,MACzBm7E,EAAOm2D,EAAMy3D,eAAe/oM,IAEnB2oM,UAAY5tK,EAAGiT,IAAMmtC,EAAK0tH,UAAY9tK,EAAGiT,IAChD,OAAO,EAKb,OAAO,GAMT+xL,sBAAuB,SAAUxuF,GAC/B,IAmBIyuF,EAAahgO,EAAGk6N,EAAMnC,EAAWkI,EACjCC,EAAKC,EAAKC,EAAKC,EAAKl0F,EAAIC,EAAIsrD,EAAID,EAAIjoD,EAAW8wF,EAAWvyB,EAAYC,EApBtEjzK,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACXvhI,EAAUgrB,EAAGhrB,QACb8hM,EAAY9hM,EAAQ8hM,UACpBz2L,EAAWrL,EAAQqL,SACnB02L,EAAkBD,EAAUC,gBAC5BtyJ,EAAezkB,EAAGykB,eAClBs4J,EAAQ/8K,EAAGkiM,aACXsD,EAAczoB,EAAMl3M,QAAUkxM,EAAkB,EAAI,GACpD0uB,EAAK1H,GAAkBjnB,GACvBpiK,EAAQ,GACRgxL,EAAY5uB,EAAUpF,WAAa9N,GAAsBkT,EAAUriE,UAAW,EAAG,GAAK,EACtFkxF,EAAgBD,EAAY,EAC5BE,EAAapzF,GAAU6lF,YAEvBwN,EAAmB,SAAUryF,GAC/B,OAAOoyF,EAAWrvF,EAAO/C,EAAOkyF,IAgClC,IA1BiB,QAAbrlN,GACF4kN,EAAcY,EAAiB7lM,EAAGlG,QAClCsrM,EAAMplM,EAAGlG,OAAS2rM,EAClBH,EAAML,EAAcU,EACpBt0F,EAAKw0F,EAAiBrvF,EAAUvpI,KAAO04N,EACvCjpC,EAAKlmD,EAAU18G,QACO,WAAbzZ,GACT4kN,EAAcY,EAAiB7lM,EAAG/yB,KAClCokI,EAAKmF,EAAUvpI,IACfyvL,EAAKmpC,EAAiBrvF,EAAU18G,QAAU6rM,EAC1CP,EAAMH,EAAcU,EACpBL,EAAMtlM,EAAG/yB,IAAMw4N,GACO,SAAbplN,GACT4kN,EAAcY,EAAiB7lM,EAAG5F,OAClC+qM,EAAMnlM,EAAG5F,MAAQqrM,EACjBJ,EAAMJ,EAAcU,EACpBv0F,EAAKy0F,EAAiBrvF,EAAU7kI,MAAQg0N,EACxChpC,EAAKnmD,EAAUp8G,QAEf6qM,EAAcY,EAAiB7lM,EAAGruB,MAClCy/H,EAAKoF,EAAU7kI,KACfgrL,EAAKkpC,EAAiBrvF,EAAUp8G,OAASurM,EACzCR,EAAMF,EAAcU,EACpBN,EAAMrlM,EAAGruB,KAAO8zN,GAGbxgO,EAAI,EAAGA,EAAIugO,IAAevgO,EAC7Bk6N,EAAOpiB,EAAM93M,IAAM,GAEfwpI,GAAc0wF,EAAKj0N,QAAUjG,EAAI83M,EAAMl3M,SAIvCZ,IAAM+6B,EAAGogM,eAAiBprN,EAAQ4c,SAAWmlL,GAE/CtiE,EAAYqiE,EAAUyoB,cACtBgG,EAAYzuB,EAAU0oB,cACtBxsB,EAAa8D,EAAU2oB,oBAAsB,GAC7CxsB,EAAmB6D,EAAU4oB,0BAA4B,IAEzDjrF,EAAYmvD,GAAsBkT,EAAUriE,UAAWxvI,EAAG,GAC1DsgO,EAAY3hC,GAAsBkT,EAAUvhE,MAAOtwI,EAAG,mBACtD+tM,EAAa8D,EAAU9D,YAAc,GACrCC,EAAmB6D,EAAU7D,kBAAoB,QAKjCpuM,KAFlBm4N,EAAYF,GAAoB98L,EAAIm/L,EAAKlpF,QAAUhxI,EAAG8xM,MAMtDmuB,EAAmBU,EAAWrvF,EAAOymF,EAAWvoF,GAE5ChwF,EACF0gL,EAAME,EAAMj0F,EAAKurD,EAAKuoC,EAEtBE,EAAME,EAAMj0F,EAAKqrD,EAAKwoC,EAGxBxwL,EAAM7oC,KAAK,CACTs5N,IAAKA,EACLC,IAAKA,EACLC,IAAKA,EACLC,IAAKA,EACLl0F,GAAIA,EACJC,GAAIA,EACJsrD,GAAIA,EACJD,GAAIA,EACJrxK,MAAOopH,EACPc,MAAOgwF,EACPvyB,WAAYA,EACZC,iBAAkBA,MAMtB,OAFAv+J,EAAM8wL,YAAcA,EACpB9wL,EAAMuwL,YAAcA,EACbvwL,GAMToxL,mBAAoB,WAClB,IAYI7gO,EAAG+pI,EAAMmwF,EAAMj0N,EAAOqG,EAAGzW,EAAGw6I,EAAW9B,EAAO7E,EAAMO,EAAY62F,EAAWC,EAZ3EhmM,EAAKniC,KACLmX,EAAUgrB,EAAGhrB,QACb8vN,EAAc9vN,EAAQ+nM,MACtB18L,EAAWrL,EAAQqL,SACnB4lN,EAAanB,EAAY/E,OACzBt7K,EAAezkB,EAAGykB,eAClBs4J,EAAQ/8K,EAAGkiM,aACXgE,EAAQ5H,GAAqBwG,GAC7BnB,EAAcmB,EAAYnyF,QAC1B8yF,EAAK1H,GAAkB/oN,EAAQ8hM,WAC/BlgE,GAAYpE,GAAUklF,UAAU13L,EAAGkjM,eACnCxuL,EAAQ,GAiBZ,IAdiB,QAAbr0B,GACFvlB,EAAIklC,EAAGlG,OAAS2rM,EAAK9B,EACrBruF,EAAasB,EAAsB,OAAX,UACF,WAAbv2H,GACTvlB,EAAIklC,EAAG/yB,IAAMw4N,EAAK9B,EAClBruF,EAAasB,EAAsB,QAAX,UACF,SAAbv2H,GACT9O,EAAIyuB,EAAG5F,OAAS6rM,EAAa,EAAIR,GAAM9B,EACvCruF,EAAY2wF,EAAa,OAAS,UAElC10N,EAAIyuB,EAAGruB,MAAQs0N,EAAa,EAAIR,GAAM9B,EACtCruF,EAAY2wF,EAAa,QAAU,QAGhChhO,EAAI,EAAG+pI,EAAO+tE,EAAMl3M,OAAQZ,EAAI+pI,IAAQ/pI,EAE3CiG,GADAi0N,EAAOpiB,EAAM93M,IACAiG,MAETujI,GAAcvjI,KAIlBsoI,EAAQxzG,EAAGm2K,gBAAgBgpB,EAAKlpF,QAAUhxI,GAAK6/N,EAAY5E,YAE3DhxF,GADAP,EAAOwwF,EAAKvB,MAAQsI,EAAMtI,MAAQsI,EAAMrI,OACtB3uF,WAClB62F,EAAYx9L,GAAQr9B,GAASA,EAAMrF,OAAS,EAExC4+C,GACFlzC,EAAIiiI,EACJwyF,EAA0B,QAAb3lN,IAAwBu2H,EAAiB,EAAN,IAAWmvF,GAAa72F,GAAe0H,EAAiB,EAAN,IAAW1H,IAE7Gp0I,EAAI04I,EACJwyF,GAAc,EAAID,GAAa72F,EAAa,GAG9Cx6F,EAAM7oC,KAAK,CACT0F,EAAGA,EACHzW,EAAGA,EACH87I,SAAUA,EACV1rI,MAAOA,EACPyjI,KAAMA,EACNq3F,WAAYA,EACZ1wF,UAAWA,KAIf,OAAO5gG,GAMTyxL,UAAW,SAAU3vF,GACnB,IAAIx2G,EAAKniC,KACLi5M,EAAY92K,EAAGhrB,QAAQ8hM,UAE3B,GAAKA,EAAU9rL,QAAf,CAIA,IAOIK,EAAOkqH,EAAOtwI,EAAG+pI,EAAMltG,EAPvBitG,EAAM/uG,EAAG+uG,IACTwH,EAAQv2G,EAAGu2G,MACXqvF,EAAapzF,GAAU6lF,YACvBqN,EAAY5uB,EAAUpF,WAAa9N,GAAsBkT,EAAUriE,UAAW,EAAG,GAAK,EAEtF//F,EAAQ1U,EAAGghM,iBAAmBhhM,EAAGghM,eAAiBhhM,EAAGglM,sBAAsBxuF,IAI/E,IAAKvxI,EAAI,EAAG+pI,EAAOt6F,EAAM7uC,OAAQZ,EAAI+pI,IAAQ/pI,EAE3ComB,GADAyW,EAAO4S,EAAMzvC,IACAomB,MACbkqH,EAAQzzG,EAAKyzG,MAETlqH,GAASkqH,IACXxG,EAAImI,OACJnI,EAAI0F,UAAYppH,EAChB0jH,EAAIyF,YAAce,EAEdxG,EAAI6kE,cACN7kE,EAAI6kE,YAAY9xK,EAAKkxK,YACrBjkE,EAAI8kE,eAAiB/xK,EAAKmxK,kBAG5BlkE,EAAIkF,YAEA6iE,EAAUknB,YACZjvF,EAAI24D,OAAO5lK,EAAKqjM,IAAKrjM,EAAKsjM,KAC1Br2F,EAAIk5D,OAAOnmK,EAAKujM,IAAKvjM,EAAKwjM,MAGxBxuB,EAAUwoB,kBACZvwF,EAAI24D,OAAO5lK,EAAKsvG,GAAItvG,EAAKuvG,IACzBtC,EAAIk5D,OAAOnmK,EAAK66J,GAAI76J,EAAK46J,KAG3B3tD,EAAI4F,SACJ5F,EAAIsI,WAIR,GAAIquF,EAAW,CAEb,IAGIt0F,EAAIurD,EAAItrD,EAAIqrD,EAHZ0pC,EAAiBV,EACjBW,EAAgBziC,GAAsBkT,EAAUriE,UAAW//F,EAAM8wL,YAAc,EAAG,GAClFP,EAAcvwL,EAAMuwL,YAGpBjlM,EAAGykB,gBACL2sF,EAAKw0F,EAAWrvF,EAAOv2G,EAAGruB,KAAMy0N,GAAkBA,EAAiB,EACnEzpC,EAAKipC,EAAWrvF,EAAOv2G,EAAG5F,MAAOisM,GAAiBA,EAAgB,EAClEh1F,EAAKqrD,EAAKuoC,IAEV5zF,EAAKu0F,EAAWrvF,EAAOv2G,EAAG/yB,IAAKm5N,GAAkBA,EAAiB,EAClE1pC,EAAKkpC,EAAWrvF,EAAOv2G,EAAGlG,OAAQusM,GAAiBA,EAAgB,EACnEj1F,EAAKurD,EAAKsoC,GAGZl2F,EAAI0F,UAAYixF,EAChB32F,EAAIyF,YAAcovD,GAAsBkT,EAAUvhE,MAAO,GACzDxG,EAAIkF,YACJlF,EAAI24D,OAAOt2D,EAAIC,GACftC,EAAIk5D,OAAOtL,EAAID,GACf3tD,EAAI4F,YAOR2xF,YAAa,WACX,IAAItmM,EAAKniC,KAGT,GAFkBmiC,EAAGhrB,QAAQ+nM,MAEZ/xL,QAAjB,CAIA,IAII/lB,EAAGwP,EAAGu6H,EAAM4K,EAAM93G,EAAMs7L,EAAUlyN,EAAOpQ,EAJzCi0I,EAAM/uG,EAAG+uG,IAETr6F,EAAQ1U,EAAGihM,cAAgBjhM,EAAGihM,YAAcjhM,EAAG8lM,sBAInD,IAAK7gO,EAAI,EAAG+pI,EAAOt6F,EAAM7uC,OAAQZ,EAAI+pI,IAAQ/pI,EAAG,CAc9C,GAZAm4N,GADAt7L,EAAO4S,EAAMzvC,IACG0pI,KAEhBI,EAAImI,OACJnI,EAAI1/H,UAAUyyB,EAAKvwB,EAAGuwB,EAAKhnC,GAC3Bi0I,EAAIqI,OAAOt1G,EAAK80G,UAChB7H,EAAIJ,KAAOyuF,EAAS/1N,OACpB0nI,EAAIuF,UAAY8oF,EAAS7nF,MACzBxG,EAAI6G,aAAe,SACnB7G,EAAIuG,UAAYxzG,EAAKwzG,UACrBpqI,EAAQ42B,EAAK52B,MACbpQ,EAAIgnC,EAAKkkM,WAELz9L,GAAQr9B,GACV,IAAKuJ,EAAI,EAAGmlI,EAAO1uI,EAAMrF,OAAQ4O,EAAImlI,IAAQnlI,EAE3Cs6H,EAAIqG,SAAS,GAAKlqI,EAAMuJ,GAAI,EAAG3Z,GAC/BA,GAAKsiO,EAASluF,gBAGhBH,EAAIqG,SAASlqI,EAAO,EAAGpQ,GAGzBi0I,EAAIsI,aAORkvF,WAAY,WACV,IAAIvmM,EAAKniC,KACLkxI,EAAM/uG,EAAG+uG,IACT/5H,EAAUgrB,EAAGhrB,QACb2qN,EAAa3qN,EAAQ2qN,WAEzB,GAAKA,EAAW30M,QAAhB,CAIA,IAQIw7M,EAAaC,EARbC,EAAsB/J,GAAiBgD,EAAWtB,UAAW/0B,EAAcxjM,OAAOwwI,kBAElFqwF,EAAiBn0F,GAAUx9H,QAAQw0L,WAAWm2B,GAE9CiH,EAAoBp0F,GAAUx9H,QAAQ0hI,UAAUipF,EAAWhtF,SAC3Dk0F,EAAiBF,EAAez3F,WAAa,EAC7C7uH,EAAWrL,EAAQqL,SACnBu2H,EAAW,EAGf,GAAI52G,EAAGykB,eACL+hL,EAAcxmM,EAAGruB,KAAOquB,EAAG3U,MAAQ,EAEnCo7M,EAA2B,WAAbpmN,EAAwB2f,EAAGlG,OAAS+sM,EAAiBD,EAAkB9sM,OAASkG,EAAG/yB,IAAM45N,EAAiBD,EAAkB35N,QACrI,CACL,IAAI65N,EAAsB,SAAbzmN,EACbmmN,EAAcM,EAAS9mM,EAAGruB,KAAOk1N,EAAiBD,EAAkB35N,IAAM+yB,EAAG5F,MAAQysM,EAAiBD,EAAkB35N,IACxHw5N,EAAczmM,EAAG/yB,IAAM+yB,EAAGhzB,OAAS,EACnC4pI,EAAWkwF,GAAU,GAAMvwN,KAAKouC,GAAK,GAAMpuC,KAAKouC,GAGlDoqF,EAAImI,OACJnI,EAAI1/H,UAAUm3N,EAAaC,GAC3B13F,EAAIqI,OAAOR,GACX7H,EAAIuG,UAAY,SAChBvG,EAAI6G,aAAe,SACnB7G,EAAIuF,UAAYoyF,EAEhB33F,EAAIJ,KAAOg4F,EAAet/N,OAC1B0nI,EAAIqG,SAASuqF,EAAWC,YAAa,EAAG,GACxC7wF,EAAIsI,YAENL,KAAM,SAAUR,GACd,IAAIx2G,EAAKniC,KAEJmiC,EAAGmjM,eAIRnjM,EAAGmmM,UAAU3vF,GAEbx2G,EAAGumM,aAEHvmM,EAAGsmM,gBAML1iB,QAAS,WACP,IAAI5jL,EAAKniC,KACLkZ,EAAOipB,EAAGhrB,QACV+xN,EAAKhwN,EAAKgmM,OAAShmM,EAAKgmM,MAAM/gB,GAAK,EACnCgrC,EAAKjwN,EAAK+/L,WAAa//L,EAAK+/L,UAAU9a,GAAK,EAE/C,OAAKh8J,EAAGmjM,cAAgB4D,IAAOC,GAAMhnM,EAAGg3G,OAASh3G,EAAGinM,MAU7C,CAAC,CACNjrC,EAAGgrC,EACHhwF,KAAM,WACJh3G,EAAGmmM,UAAUzkO,MAAMs+B,EAAIr+B,WAEvBq+B,EAAGumM,WAAW7kO,MAAMs+B,EAAIr+B,aAEzB,CACDq6L,EAAG+qC,EACH/vF,KAAM,WACJh3G,EAAGsmM,YAAY5kO,MAAMs+B,EAAIr+B,cAlBpB,CAAC,CACNq6L,EAAG+qC,EACH/vF,KAAM,WACJh3G,EAAGg3G,KAAKt1I,MAAMs+B,EAAIr+B,eAuB1Bs2M,yBAA0B,SAAUpmM,GAClC,IAAImuB,EAAKniC,KACL4mD,EAAezkB,EAAGykB,eACtB,OAAOzkB,EAAGu2G,MAAMynE,gCAAgCpnL,QAAO,SAAUwpD,GAC/D,QAASvuE,GAAQuuE,EAAKvuE,OAASA,KAAU4yC,EAAe27B,EAAKwtH,UAAY5tK,EAAGiT,GAAKmtC,EAAK0tH,UAAY9tK,EAAGiT,UAI3GktL,GAAMlhO,UAAUgoO,MAAQ9G,GAAMlhO,UAAU+3I,KACxC,IAAIkwF,GAAa/G,GACbgH,GAAkB30F,GAAU/D,cAC5BnlH,GAAgB,CAClBjJ,SAAU,UAER+mN,GAAiBF,GAAWliM,OAAO,CACrCs8L,oBAAqB,WACnB,IASI3qH,EATA32E,EAAKniC,KAELorG,EAASjpE,EAAGsgM,aAEZ+G,EAAYrnM,EAAGhrB,QAAQ+nM,MACvBt0L,EAAM4+M,EAAU5+M,IAChBC,EAAM2+M,EAAU3+M,IAChB+gI,EAAW,EACX69E,EAAWr+H,EAAOpjG,OAAS,OAGnBhB,IAAR4jB,IAEFkuF,EAAY1N,EAAOzjG,QAAQijB,KAEV,IACfghI,EAAW9yC,QAIH9xG,IAAR6jB,IAEFiuF,EAAY1N,EAAOzjG,QAAQkjB,KAEV,IACf4+M,EAAW3wH,GAIf32E,EAAGypH,SAAWA,EACdzpH,EAAGsnM,SAAWA,EACdtnM,EAAGvX,IAAMwgF,EAAOwgD,GAChBzpH,EAAGtX,IAAMugF,EAAOq+H,IAElB7F,WAAY,WACV,IAAIzhM,EAAKniC,KAELorG,EAASjpE,EAAGsgM,aAEZ72E,EAAWzpH,EAAGypH,SACd69E,EAAWtnM,EAAGsnM,SAElBtnM,EAAG+8K,MAAqB,IAAbtzD,GAAkB69E,IAAar+H,EAAOpjG,OAAS,EAAIojG,EAASA,EAAOxjG,MAAMgkJ,EAAU69E,EAAW,IAE3Gzb,iBAAkB,SAAUjmN,EAAOy2I,GACjC,IAAIr8G,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MAEf,OAAIA,EAAMy3D,eAAe3xD,GAAchsC,WAAW89F,qBAAuBnuK,EAAGiT,GACnEjT,EAAG+9K,cAAcxnE,EAAMtoI,KAAK0rI,SAAS0C,GAAcpuI,KAAKrI,IAG1Do6B,EAAGsgM,aAAa16N,IAEzBspM,WAAY,WACV,IAAIlvK,EAAKniC,KACL+zB,EAASoO,EAAGhrB,QAAQ4c,OACpBmrL,EAAQ/8K,EAAG+8K,MAEfmqB,GAAWjoO,UAAUiwM,WAAWtxM,KAAKoiC,GAEhCA,EAAGykB,iBAENzkB,EAAGuiM,gBAAkBviM,EAAGuiM,gBAGrBxlB,IAIL/8K,EAAGunM,YAAcvnM,EAAGypH,UAAY73H,EAAS,GAAM,GAC/CoO,EAAGwnM,YAAcjxN,KAAKmS,IAAIq0L,EAAMl3M,QAAU+rB,EAAS,EAAI,GAAI,KAG7Dm7H,iBAAkB,SAAU/+I,EAAOpI,EAAOy2I,GACxC,IACIorF,EAAex+H,EAAQxyF,EADvBupB,EAAKniC,KAwBT,OArBKspO,GAAgBvhO,IAAWuhO,GAAgB9qF,KAC9CruI,EAAQgyB,EAAGu2G,MAAMtoI,KAAK0rI,SAAS0C,GAAcpuI,KAAKrI,IAK/CuhO,GAAgBn5N,KACnBy5N,EAAgBznM,EAAGykB,eAAiBz2C,EAAMuD,EAAIvD,EAAMlT,SAGhC+J,IAAlB4iO,QAAyC5iO,IAAVmJ,GAAuBgI,MAAMpQ,MAC9DqjG,EAASjpE,EAAGsgM,aACZtyN,EAAQwkI,GAAUpD,eAAeq4F,EAAez5N,GAEhDpI,GAAiB,KADjB6Q,EAAMwyF,EAAOzjG,QAAQwI,IACAyI,EAAM7Q,EAEvBoQ,MAAMpQ,KACRA,EAAQoI,IAILgyB,EAAGw5K,oBAAoB5zM,EAAQo6B,EAAGunM,aAAevnM,EAAGwnM,cAE7DrxB,gBAAiB,SAAUvwM,GACzB,IAAIm3M,EAAQl/M,KAAKk/M,MACjB,OAAOn3M,EAAQ,GAAKA,EAAQm3M,EAAMl3M,OAAS,EAAI,KAAOhI,KAAKkvJ,iBAAiBgwD,EAAMn3M,GAAQA,EAAQ/H,KAAK4rJ,WAEzG66E,iBAAkB,SAAU9wF,GAC1B,IAAIxzG,EAAKniC,KACLmQ,EAAQuI,KAAKwI,MAAMihB,EAAGunM,YAAcvnM,EAAGwkM,mBAAmBhxF,GAASxzG,EAAGwnM,aAC1E,OAAOjxN,KAAKkS,IAAIlS,KAAKmS,IAAI1a,EAAO,GAAIgyB,EAAG+8K,MAAMl3M,OAAS,IAExD4tI,aAAc,WACZ,OAAO51I,KAAKi8B,UAIZ4tM,GAAYp+M,GAChB89M,GAAeM,UAAYA,GAC3B,IAAIx5E,GAAO1b,GAAU0b,KACjBy5E,GAAkBn1F,GAAU/D,cAQhC,SAASm5F,GAAcC,EAAmBC,GACxC,IAcI99L,EAAQ+9L,EAASC,EAASC,EAd1BlrB,EAAQ,GAIRmrB,EAAc,MACdC,EAAWN,EAAkBM,SAC7BnxN,EAAOmxN,GAAY,EACnBC,EAAeP,EAAkBQ,SAAW,EAC5C5/M,EAAMo/M,EAAkBp/M,IACxBC,EAAMm/M,EAAkBn/M,IACxBigB,EAAYk/L,EAAkBl/L,UAC9B2/L,EAAOR,EAAUr/M,IACjB8/M,EAAOT,EAAUp/M,IACjBs2M,EAAUxsF,GAAUsnF,SAASyO,EAAOD,GAAQF,EAAepxN,GAAQA,EAIvE,GAAIgoN,EAAUkJ,GAAeP,GAAgBl/M,IAAQk/M,GAAgBj/M,GACnE,MAAO,CAAC4/M,EAAMC,IAGhBN,EAAY1xN,KAAKo6C,KAAK43K,EAAOvJ,GAAWzoN,KAAKG,MAAM4xN,EAAOtJ,IAE1CoJ,IAEdpJ,EAAUxsF,GAAUsnF,QAAQmO,EAAYjJ,EAAUoJ,EAAepxN,GAAQA,GAGvEmxN,GAAYR,GAAgBh/L,GAE9BqB,EAASzzB,KAAK0zB,IAAI,GAAIuoG,GAAUqlF,eAAemH,KAG/Ch1L,EAASzzB,KAAK0zB,IAAI,GAAItB,GACtBq2L,EAAUzoN,KAAKo6C,KAAKquK,EAAUh1L,GAAUA,GAG1C+9L,EAAUxxN,KAAKG,MAAM4xN,EAAOtJ,GAAWA,EACvCgJ,EAAUzxN,KAAKo6C,KAAK43K,EAAOvJ,GAAWA,EAElCmJ,KAEGR,GAAgBl/M,IAAQ+pH,GAAU+kF,YAAY9uM,EAAMu2M,EAASA,EAAU,OAC1E+I,EAAUt/M,IAGPk/M,GAAgBj/M,IAAQ8pH,GAAU+kF,YAAY7uM,EAAMs2M,EAASA,EAAU,OAC1EgJ,EAAUt/M,IAIdu/M,GAAaD,EAAUD,GAAW/I,EAGhCiJ,EADEz1F,GAAU8kF,aAAa2Q,EAAW1xN,KAAKwI,MAAMkpN,GAAYjJ,EAAU,KACzDzoN,KAAKwI,MAAMkpN,GAEX1xN,KAAKo6C,KAAKs3K,GAGxBF,EAAUxxN,KAAKwI,MAAMgpN,EAAU/9L,GAAUA,EACzCg+L,EAAUzxN,KAAKwI,MAAMipN,EAAUh+L,GAAUA,EACzC+yK,EAAMlxM,KAAK87N,GAAgBl/M,GAAOs/M,EAAUt/M,GAE5C,IAAK,IAAIhU,EAAI,EAAGA,EAAIwzN,IAAaxzN,EAC/BsoM,EAAMlxM,KAAK0K,KAAKwI,OAAOgpN,EAAUtzN,EAAIuqN,GAAWh1L,GAAUA,GAI5D,OADA+yK,EAAMlxM,KAAK87N,GAAgBj/M,GAAOs/M,EAAUt/M,GACrCq0L,EAGT,IAAIyrB,GAAmBtB,GAAWliM,OAAO,CACvC+4K,cAAe,SAAU/vM,GACvB,MAAqB,kBAAVA,GACDA,EAGHk5N,GAAWjoO,UAAU8+M,cAAcngN,KAAKC,KAAMmQ,IAEvDy6N,uBAAwB,WACtB,IAAIzoM,EAAKniC,KAELi/M,EADO98K,EAAGhrB,QACM+nM,MAIpB,GAAID,EAAS6B,YAAa,CACxB,IAAI+pB,EAAUl2F,GAAUrT,KAAKn/F,EAAGvX,KAC5BkgN,EAAUn2F,GAAUrT,KAAKn/F,EAAGtX,KAE5BggN,EAAU,GAAKC,EAAU,EAE3B3oM,EAAGtX,IAAM,EACAggN,EAAU,GAAKC,EAAU,IAElC3oM,EAAGvX,IAAM,GAIb,IAAImgN,OAA0B/jO,IAAjBi4M,EAASr0L,UAA+C5jB,IAA1Bi4M,EAAS+rB,aAChDC,OAA0BjkO,IAAjBi4M,EAASp0L,UAA+C7jB,IAA1Bi4M,EAASisB,kBAE/BlkO,IAAjBi4M,EAASr0L,IACXuX,EAAGvX,IAAMq0L,EAASr0L,SACiB5jB,IAA1Bi4M,EAAS+rB,eACH,OAAX7oM,EAAGvX,IACLuX,EAAGvX,IAAMq0L,EAAS+rB,aAElB7oM,EAAGvX,IAAMlS,KAAKkS,IAAIuX,EAAGvX,IAAKq0L,EAAS+rB,oBAIlBhkO,IAAjBi4M,EAASp0L,IACXsX,EAAGtX,IAAMo0L,EAASp0L,SACiB7jB,IAA1Bi4M,EAASisB,eACH,OAAX/oM,EAAGtX,IACLsX,EAAGtX,IAAMo0L,EAASisB,aAElB/oM,EAAGtX,IAAMnS,KAAKmS,IAAIsX,EAAGtX,IAAKo0L,EAASisB,eAInCH,IAAWE,GAKT9oM,EAAGvX,KAAOuX,EAAGtX,MACXkgN,EACF5oM,EAAGtX,IAAMsX,EAAGvX,IAAM,EAElBuX,EAAGvX,IAAMuX,EAAGtX,IAAM,GAKpBsX,EAAGvX,MAAQuX,EAAGtX,MAChBsX,EAAGtX,MAEEo0L,EAAS6B,aACZ3+K,EAAGvX,QAITugN,aAAc,WACZ,IAIIX,EAJAroM,EAAKniC,KACLi/M,EAAW98K,EAAGhrB,QAAQ+nM,MACtBorB,EAAWrrB,EAASqrB,SACpBxD,EAAgB7nB,EAAS6nB,cAc7B,OAXIwD,EACFE,EAAW9xN,KAAKo6C,KAAK3wB,EAAGtX,IAAMy/M,GAAY5xN,KAAKG,MAAMspB,EAAGvX,IAAM0/M,GAAY,GAE1EE,EAAWroM,EAAGipM,oBACdtE,EAAgBA,GAAiB,IAG/BA,IACF0D,EAAW9xN,KAAKkS,IAAIk8M,EAAe0D,IAG9BA,GAETY,kBAAmB,WACjB,OAAO/5K,OAAOyxJ,mBAEhBuoB,yBAA0Bh7E,GAC1BuzE,WAAY,WACV,IAAIzhM,EAAKniC,KAELi/M,EADO98K,EAAGhrB,QACM+nM,MAKhBsrB,EAAWroM,EAAGgpM,eAEdG,EAA0B,CAC5Bd,SAFFA,EAAW9xN,KAAKmS,IAAI,EAAG2/M,GAGrB5/M,IAAKq0L,EAASr0L,IACdC,IAAKo0L,EAASp0L,IACdigB,UAAWm0K,EAASn0K,UACpBw/L,SAAU31F,GAAUpD,eAAe0tE,EAASssB,cAAetsB,EAASqrB,WAElEprB,EAAQ/8K,EAAG+8K,MAAQ6qB,GAAcuB,EAAyBnpM,GAC9DA,EAAGkpM,2BAGHlpM,EAAGtX,IAAM8pH,GAAU9pH,IAAIq0L,GACvB/8K,EAAGvX,IAAM+pH,GAAU/pH,IAAIs0L,GAEnBD,EAASnxK,SACXoxK,EAAMpxK,UACN3L,EAAGK,MAAQL,EAAGtX,IACdsX,EAAGi4B,IAAMj4B,EAAGvX,MAEZuX,EAAGK,MAAQL,EAAGvX,IACduX,EAAGi4B,IAAMj4B,EAAGtX,MAGhB+5M,qBAAsB,WACpB,IAAIziM,EAAKniC,KACTmiC,EAAGqpM,eAAiBrpM,EAAG+8K,MAAMt3M,QAC7Bu6B,EAAGogM,cAAgBpgM,EAAG+8K,MAAMv3M,QAAQ,GACpC0hO,GAAWjoO,UAAUwjO,qBAAqB7kO,KAAKoiC,IAEjDkvK,WAAY,WACV,IAIIt9K,EAJAoO,EAAKniC,KACLk/M,EAAQ/8K,EAAGk2K,WACX71K,EAAQL,EAAGvX,IACXwvC,EAAMj4B,EAAGtX,IAGbw+M,GAAWjoO,UAAUiwM,WAAWtxM,KAAKoiC,GAEjCA,EAAGhrB,QAAQ4c,QAAUmrL,EAAMl3M,SAE7Bw6B,GADAzO,GAAUqmC,EAAM53B,GAAS9pB,KAAKmS,IAAIq0L,EAAMl3M,OAAS,EAAG,GAAK,EAEzDoyD,GAAOrmC,GAGToO,EAAGunM,YAAclnM,EACjBL,EAAGspM,UAAYrxK,EACfj4B,EAAGwnM,YAAcvvK,EAAM53B,KAGvBkpM,GAAkB,CACpBlpN,SAAU,OACV08L,MAAO,CACLl8M,SAAUo7N,GAAWC,WAAW/xL,SAGhCq/L,GAAc,EACdC,GAAc,EAElB,SAASC,GAAiBvxB,EAAQD,EAAS93H,GACzC,IAAI5/E,EAAM,CAAC4/E,EAAKvuE,UACJhN,IAAZqzM,QAAwCrzM,IAAfu7E,EAAKrkE,MAAsBqkE,EAAKx6E,MAAQ,GAAIw6E,EAAKrkE,OAAO9H,KAAK,KAStF,YAPoBpP,IAAhBszM,EAAO33M,KACT23M,EAAO33M,GAAO,CACZy1H,IAAK,GACL0zG,IAAK,KAIFxxB,EAAO33M,GAGhB,SAASopO,GAAU12F,EAAOilE,EAAQ/3H,EAAMnyE,GACtC,IAMIhJ,EAAG+I,EANH+I,EAAOm8H,EAAMl+H,QAEb+G,EAAQ2tN,GAAiBvxB,EADfphM,EAAKmhM,QAC2B93H,GAC1C61C,EAAMl6G,EAAMk6G,IACZ0zG,EAAM5tN,EAAM4tN,IACZ36F,EAAO/gI,EAAKpI,OAGhB,IAAKZ,EAAI,EAAGA,EAAI+pI,IAAQ/pI,EACtB+I,EAAQklI,EAAMylE,YAAY1qM,EAAKhJ,IAE3B+Q,MAAMhI,EAAMya,MAAQzS,MAAMhI,EAAM0a,MAAQ03D,EAAKnyE,KAAKhJ,GAAG8xE,SAIzDk/C,EAAIhxH,GAAKgxH,EAAIhxH,IAAM,EACnB0kO,EAAI1kO,GAAK0kO,EAAI1kO,IAAM,EAEf8R,EAAK8yN,eACP5zG,EAAIhxH,GAAK,IACA+I,EAAMya,IAAM,GAAKza,EAAM0a,IAAM,EACtCihN,EAAI1kO,IAAM+I,EAAMya,IAEhBwtG,EAAIhxH,IAAM+I,EAAM0a,KAKtB,SAASohN,GAAa52F,EAAO9yD,EAAMnyE,GACjC,IACIhJ,EAAG+I,EADHghI,EAAO/gI,EAAKpI,OAGhB,IAAKZ,EAAI,EAAGA,EAAI+pI,IAAQ/pI,EACtB+I,EAAQklI,EAAMylE,YAAY1qM,EAAKhJ,IAE3B+Q,MAAMhI,EAAMya,MAAQzS,MAAMhI,EAAM0a,MAAQ03D,EAAKnyE,KAAKhJ,GAAG8xE,SAIzDm8D,EAAMzqH,IAAMlS,KAAKkS,IAAIyqH,EAAMzqH,IAAKza,EAAMya,KACtCyqH,EAAMxqH,IAAMnS,KAAKmS,IAAIwqH,EAAMxqH,IAAK1a,EAAM0a,MAI1C,IAAIqhN,GAAevB,GAAiBxjM,OAAO,CACzCs8L,oBAAqB,WACnB,IAUIr8N,EAAGm7E,EAAMnyE,EAAM2hC,EAVf5P,EAAKniC,KACLkZ,EAAOipB,EAAGhrB,QAEV2kI,EADQ35G,EAAGu2G,MACMtoI,KAAK0rI,SAEtBq+D,EAAWh4K,EAAGi4K,2BAEd+xB,EAAYjzN,EAAKmhM,QACjBC,EAAS,GACTnpE,EAAOgpE,EAASnyM,OAKpB,GAHAm6B,EAAGvX,IAAMymC,OAAOyxJ,kBAChB3gL,EAAGtX,IAAMwmC,OAAOuoK,uBAEE5yN,IAAdmlO,EACF,IAAK/kO,EAAI,GAAI+kO,GAAa/kO,EAAI+pI,IAAQ/pI,EAEpC+kO,OAA2BnlO,KAD3Bu7E,EAAO43H,EAAS/yM,IACC8W,MAIrB,IAAK9W,EAAI,EAAGA,EAAI+pI,IAAQ/pI,EAEtBgJ,EAAO0rI,GADPv5D,EAAO43H,EAAS/yM,IACKW,OAAOqI,KAExB+7N,EACFJ,GAAU5pM,EAAIm4K,EAAQ/3H,EAAMnyE,GAE5B67N,GAAa9pM,EAAIogD,EAAMnyE,GAI3BukI,GAAU74F,KAAKw+J,GAAQ,SAAU8xB,GAC/Br6L,EAASq6L,EAAYh0G,IAAIzhH,OAAOy1N,EAAYN,KAC5C3pM,EAAGvX,IAAMlS,KAAKkS,IAAIuX,EAAGvX,IAAK+pH,GAAU/pH,IAAImnB,IACxC5P,EAAGtX,IAAMnS,KAAKmS,IAAIsX,EAAGtX,IAAK8pH,GAAU9pH,IAAIknB,OAE1C5P,EAAGvX,IAAM+pH,GAAUn9E,SAASr1B,EAAGvX,OAASzS,MAAMgqB,EAAGvX,KAAOuX,EAAGvX,IAAM+gN,GACjExpM,EAAGtX,IAAM8pH,GAAUn9E,SAASr1B,EAAGtX,OAAS1S,MAAMgqB,EAAGtX,KAAOsX,EAAGtX,IAAM+gN,GAEjEzpM,EAAGyoM,0BAGLQ,kBAAmB,WACjB,IACI7L,EADAp9L,EAAKniC,KAGT,OAAImiC,EAAGykB,eACEluC,KAAKo6C,KAAK3wB,EAAG3U,MAAQ,KAG9B+xM,EAAW5qF,GAAUx9H,QAAQw0L,WAAWxpK,EAAGhrB,QAAQ+nM,OAC5CxmM,KAAKo6C,KAAK3wB,EAAGhzB,OAASowN,EAASluF,cAGxCg6F,yBAA0B,WACnBrrO,KAAK4mD,gBAER5mD,KAAKk/M,MAAMpxK,WAGfkgL,iBAAkB,SAAUjmN,EAAOy2I,GACjC,OAAOx+I,KAAKwmO,eAAexmO,KAAK04I,MAAMtoI,KAAK0rI,SAAS0C,GAAcpuI,KAAKrI,KAGzEmnJ,iBAAkB,SAAU/+I,GAC1B,IAAIgyB,EAAKniC,KACT,OAAOmiC,EAAGw5K,qBAAqBx5K,EAAG+9K,cAAc/vM,GAASgyB,EAAGunM,aAAevnM,EAAGwnM,cAEhFlD,iBAAkB,SAAU9wF,GAC1B,OAAO31I,KAAK0pO,YAAc1pO,KAAK2mO,mBAAmBhxF,GAAS31I,KAAK2pO,aAElErxB,gBAAiB,SAAUvwM,GACzB,IAAIm3M,EAAQl/M,KAAKwrO,eAEjB,OAAIzjO,EAAQ,GAAKA,EAAQm3M,EAAMl3M,OAAS,EAC/B,KAGFhI,KAAKkvJ,iBAAiBgwD,EAAMn3M,OAInCskO,GAAcX,GAClBQ,GAAarC,UAAYwC,GACzB,IAAIC,GAAmB33F,GAAUpD,eAC7B26D,GAAQv3D,GAAUq4D,KAAKd,MAQ3B,SAASqgC,GAAgBvC,EAAmBC,GAC1C,IAII98L,EAAKq/L,EAJLttB,EAAQ,GACRutB,EAAUH,GAAiBtC,EAAkBp/M,IAAKlS,KAAK0zB,IAAI,GAAI1zB,KAAKG,MAAMqzL,GAAM+9B,EAAUr/M,QAC1F8hN,EAASh0N,KAAKG,MAAMqzL,GAAM+9B,EAAUp/M,MACpC8hN,EAAiBj0N,KAAKo6C,KAAKm3K,EAAUp/M,IAAMnS,KAAK0zB,IAAI,GAAIsgM,IAG5C,IAAZD,GACFt/L,EAAMz0B,KAAKG,MAAMqzL,GAAM+9B,EAAU2C,aACjCJ,EAAc9zN,KAAKG,MAAMoxN,EAAU2C,WAAal0N,KAAK0zB,IAAI,GAAIe,IAC7D+xK,EAAMlxM,KAAKy+N,GACXA,EAAUD,EAAc9zN,KAAK0zB,IAAI,GAAIe,KAErCA,EAAMz0B,KAAKG,MAAMqzL,GAAMugC,IACvBD,EAAc9zN,KAAKG,MAAM4zN,EAAU/zN,KAAK0zB,IAAI,GAAIe,KAGlD,IAAIrC,EAAYqC,EAAM,EAAIz0B,KAAK0zB,IAAI,GAAI1zB,KAAKC,IAAIw0B,IAAQ,EAExD,GACE+xK,EAAMlxM,KAAKy+N,GAGS,OAFlBD,IAGAA,EAAc,EAEd1hM,IADEqC,GACiB,EAAI,EAAIrC,GAG7B2hM,EAAU/zN,KAAKwI,MAAMsrN,EAAc9zN,KAAK0zB,IAAI,GAAIe,GAAOrC,GAAaA,QAC7DqC,EAAMu/L,GAAUv/L,IAAQu/L,GAAUF,EAAcG,GAEzD,IAAIE,EAAWP,GAAiBtC,EAAkBn/M,IAAK4hN,GAEvD,OADAvtB,EAAMlxM,KAAK6+N,GACJ3tB,EAGT,IAAI4tB,GAAkB,CACpBtqN,SAAU,OAEV08L,MAAO,CACLl8M,SAAUo7N,GAAWC,WAAW/wL,cAIpC,SAASy/L,GAAqB58N,EAAO+uB,GACnC,OAAOy1G,GAAUn9E,SAASrnD,IAAUA,GAAS,EAAIA,EAAQ+uB,EAG3D,IAAI8tM,GAAoB3D,GAAWliM,OAAO,CACxCs8L,oBAAqB,WACnB,IAUIjlF,EAAcj8D,EAAMpyE,EAAOC,EAAMhJ,EAAG+pI,EAVpChvG,EAAKniC,KACLkZ,EAAOipB,EAAGhrB,QACVuhI,EAAQv2G,EAAGu2G,MACXoD,EAAWpD,EAAMtoI,KAAK0rI,SACtBl1F,EAAezkB,EAAGykB,eAEtB,SAASqmL,EAAU1qJ,GACjB,OAAO37B,EAAe27B,EAAKwtH,UAAY5tK,EAAGiT,GAAKmtC,EAAK0tH,UAAY9tK,EAAGiT,GAKrEjT,EAAGvX,IAAMymC,OAAOyxJ,kBAChB3gL,EAAGtX,IAAMwmC,OAAOuoK,kBAChBz3L,EAAGyqM,WAAav7K,OAAOyxJ,kBACvB,IAAIqpB,EAAYjzN,EAAKmhM,QAErB,QAAkBrzM,IAAdmlO,EACF,IAAK3tF,EAAe,EAAGA,EAAe1C,EAAS9zI,OAAQw2I,IAGrD,GAFAj8D,EAAOm2D,EAAMy3D,eAAe3xD,GAExB9F,EAAM+F,iBAAiBD,IAAiByuF,EAAU1qJ,SAAwBv7E,IAAfu7E,EAAKrkE,MAAqB,CACvFiuN,GAAY,EACZ,MAKN,GAAIjzN,EAAKmhM,SAAW8xB,EAAW,CAC7B,IAAIe,EAAiB,GAErB,IAAK1uF,EAAe,EAAGA,EAAe1C,EAAS9zI,OAAQw2I,IAAgB,CAErE,IAAI77I,EAAM,EADV4/E,EAAOm2D,EAAMy3D,eAAe3xD,IACZxqI,UACChN,IAAjBkS,EAAKmhM,cAAwCrzM,IAAfu7E,EAAKrkE,MAAsBsgI,EAAe,GAAIj8D,EAAKrkE,OAAO9H,KAAK,KAE7F,GAAIsiI,EAAM+F,iBAAiBD,IAAiByuF,EAAU1qJ,GAOpD,SAN4Bv7E,IAAxBkmO,EAAevqO,KACjBuqO,EAAevqO,GAAO,IAKnByE,EAAI,EAAG+pI,GAFZ/gI,EAAO0rI,EAAS0C,GAAcpuI,MAENpI,OAAQZ,EAAI+pI,EAAM/pI,IAAK,CAC7C,IAAI2qC,EAASm7L,EAAevqO,GAC5BwN,EAAQgyB,EAAG24K,YAAY1qM,EAAKhJ,IAExB+Q,MAAMhI,EAAMya,MAAQzS,MAAMhI,EAAM0a,MAAQ03D,EAAKnyE,KAAKhJ,GAAG8xE,QAAU/oE,EAAMya,IAAM,GAAKza,EAAM0a,IAAM,IAIhGknB,EAAO3qC,GAAK2qC,EAAO3qC,IAAM,EACzB2qC,EAAO3qC,IAAM+I,EAAM0a,MAKzB8pH,GAAU74F,KAAKoxL,GAAgB,SAAUC,GACvC,GAAIA,EAAcnlO,OAAS,EAAG,CAC5B,IAAIolO,EAASz4F,GAAU/pH,IAAIuiN,GACvBE,EAAS14F,GAAU9pH,IAAIsiN,GAC3BhrM,EAAGvX,IAAMlS,KAAKkS,IAAIuX,EAAGvX,IAAKwiN,GAC1BjrM,EAAGtX,IAAMnS,KAAKmS,IAAIsX,EAAGtX,IAAKwiN,YAI9B,IAAK7uF,EAAe,EAAGA,EAAe1C,EAAS9zI,OAAQw2I,IAGrD,GAFAj8D,EAAOm2D,EAAMy3D,eAAe3xD,GAExB9F,EAAM+F,iBAAiBD,IAAiByuF,EAAU1qJ,GAGpD,IAAKn7E,EAAI,EAAG+pI,GAFZ/gI,EAAO0rI,EAAS0C,GAAcpuI,MAENpI,OAAQZ,EAAI+pI,EAAM/pI,IACxC+I,EAAQgyB,EAAG24K,YAAY1qM,EAAKhJ,IAExB+Q,MAAMhI,EAAMya,MAAQzS,MAAMhI,EAAM0a,MAAQ03D,EAAKnyE,KAAKhJ,GAAG8xE,QAAU/oE,EAAMya,IAAM,GAAKza,EAAM0a,IAAM,IAIhGsX,EAAGvX,IAAMlS,KAAKkS,IAAIza,EAAMya,IAAKuX,EAAGvX,KAChCuX,EAAGtX,IAAMnS,KAAKmS,IAAI1a,EAAM0a,IAAKsX,EAAGtX,KAEd,IAAd1a,EAAMya,MACRuX,EAAGyqM,WAAal0N,KAAKkS,IAAIza,EAAMya,IAAKuX,EAAGyqM,cAOjDzqM,EAAGvX,IAAM+pH,GAAUn9E,SAASr1B,EAAGvX,KAAOuX,EAAGvX,IAAM,KAC/CuX,EAAGtX,IAAM8pH,GAAUn9E,SAASr1B,EAAGtX,KAAOsX,EAAGtX,IAAM,KAC/CsX,EAAGyqM,WAAaj4F,GAAUn9E,SAASr1B,EAAGyqM,YAAczqM,EAAGyqM,WAAa,KAEpE5sO,KAAK4qO,0BAEPA,uBAAwB,WACtB,IAAIzoM,EAAKniC,KACLi/M,EAAW98K,EAAGhrB,QAAQ+nM,MACtBysB,EAAc,EACdC,EAAc,GAClBzpM,EAAGvX,IAAMmiN,GAAqB9tB,EAASr0L,IAAKuX,EAAGvX,KAC/CuX,EAAGtX,IAAMkiN,GAAqB9tB,EAASp0L,IAAKsX,EAAGtX,KAE3CsX,EAAGvX,MAAQuX,EAAGtX,MACD,IAAXsX,EAAGvX,KAAwB,OAAXuX,EAAGvX,KACrBuX,EAAGvX,IAAMlS,KAAK0zB,IAAI,GAAI1zB,KAAKG,MAAMqzL,GAAM/pK,EAAGvX,MAAQ,GAClDuX,EAAGtX,IAAMnS,KAAK0zB,IAAI,GAAI1zB,KAAKG,MAAMqzL,GAAM/pK,EAAGtX,MAAQ,KAElDsX,EAAGvX,IAAM+gN,EACTxpM,EAAGtX,IAAM+gN,IAIE,OAAXzpM,EAAGvX,MACLuX,EAAGvX,IAAMlS,KAAK0zB,IAAI,GAAI1zB,KAAKG,MAAMqzL,GAAM/pK,EAAGtX,MAAQ,IAGrC,OAAXsX,EAAGtX,MACLsX,EAAGtX,IAAiB,IAAXsX,EAAGvX,IAAYlS,KAAK0zB,IAAI,GAAI1zB,KAAKG,MAAMqzL,GAAM/pK,EAAGvX,MAAQ,GAAKghN,GAGlD,OAAlBzpM,EAAGyqM,aACDzqM,EAAGvX,IAAM,EACXuX,EAAGyqM,WAAazqM,EAAGvX,IACVuX,EAAGtX,IAAM,EAClBsX,EAAGyqM,WAAal0N,KAAK0zB,IAAI,GAAI1zB,KAAKG,MAAMqzL,GAAM/pK,EAAGtX,OAEjDsX,EAAGyqM,WAAajB,IAItB/H,WAAY,WACV,IAAIzhM,EAAKniC,KACLi/M,EAAW98K,EAAGhrB,QAAQ+nM,MACtBpxK,GAAW3L,EAAGykB,eACdojL,EAAoB,CACtBp/M,IAAKmiN,GAAqB9tB,EAASr0L,KACnCC,IAAKkiN,GAAqB9tB,EAASp0L,MAEjCq0L,EAAQ/8K,EAAG+8K,MAAQqtB,GAAgBvC,EAAmB7nM,GAG1DA,EAAGtX,IAAM8pH,GAAU9pH,IAAIq0L,GACvB/8K,EAAGvX,IAAM+pH,GAAU/pH,IAAIs0L,GAEnBD,EAASnxK,SACXA,GAAWA,EACX3L,EAAGK,MAAQL,EAAGtX,IACdsX,EAAGi4B,IAAMj4B,EAAGvX,MAEZuX,EAAGK,MAAQL,EAAGvX,IACduX,EAAGi4B,IAAMj4B,EAAGtX,KAGVijB,GACFoxK,EAAMpxK,WAGV82L,qBAAsB,WACpB5kO,KAAKstO,WAAattO,KAAKk/M,MAAMt3M,QAC7ByhO,GAAWjoO,UAAUwjO,qBAAqB7kO,KAAKC,OAGjDguN,iBAAkB,SAAUjmN,EAAOy2I,GACjC,OAAOx+I,KAAKwmO,eAAexmO,KAAK04I,MAAMtoI,KAAK0rI,SAAS0C,GAAcpuI,KAAKrI,KAEzEuwM,gBAAiB,SAAUvwM,GACzB,IAAIm3M,EAAQl/M,KAAKstO,WAEjB,OAAIvlO,EAAQ,GAAKA,EAAQm3M,EAAMl3M,OAAS,EAC/B,KAGFhI,KAAKkvJ,iBAAiBgwD,EAAMn3M,KASrCwlO,mBAAoB,SAAUp9N,GAC5B,IAAIg9B,EAAMz0B,KAAKG,MAAMqzL,GAAM/7L,IAE3B,OADkBuI,KAAKG,MAAM1I,EAAQuI,KAAK0zB,IAAI,GAAIe,IAC7Bz0B,KAAK0zB,IAAI,GAAIe,IAEpCkkK,WAAY,WACV,IAAIlvK,EAAKniC,KACLwiC,EAAQL,EAAGvX,IACXmJ,EAAS,EAEbs1M,GAAWjoO,UAAUiwM,WAAWtxM,KAAKoiC,GAEvB,IAAVK,IACFA,EAAQL,EAAGorM,mBAAmBprM,EAAGyqM,YACjC74M,EAASu4M,GAAiBnqM,EAAGhrB,QAAQ+nM,MAAMrT,SAAUJ,EAAcxjM,OAAOupI,iBAAmBrvG,EAAGqsE,SAGlGrsE,EAAGunM,YAAcx9B,GAAM1pK,GACvBL,EAAGqrM,aAAez5M,EAClBoO,EAAGwnM,aAAez9B,GAAM/pK,EAAGtX,KAAOqhL,GAAM1pK,KAAW,EAAIzO,IAEzDm7H,iBAAkB,SAAU/+I,GAC1B,IAAIgyB,EAAKniC,KACL0mO,EAAU,EAOd,OANAv2N,GAASgyB,EAAG+9K,cAAc/vM,IAEdgyB,EAAGvX,KAAOza,EAAQ,IAC5Bu2N,GAAWx6B,GAAM/7L,GAASgyB,EAAGunM,aAAevnM,EAAGwnM,YAAcxnM,EAAGqrM,cAG3DrrM,EAAGw5K,mBAAmB+qB,IAE/BD,iBAAkB,SAAU9wF,GAC1B,IAAIxzG,EAAKniC,KACL0mO,EAAUvkM,EAAGwkM,mBAAmBhxF,GACpC,OAAmB,IAAZ+wF,GAA4B,IAAXvkM,EAAGvX,IAAY,EAAIlS,KAAK0zB,IAAI,GAAIjK,EAAGunM,aAAehD,EAAUvkM,EAAGqrM,cAAgBrrM,EAAGwnM,gBAI1G8D,GAAcX,GAClBE,GAAkBnD,UAAY4D,GAC9B,IAAIC,GAAmB/4F,GAAUpD,eAC7Bo8F,GAA0Bh5F,GAAUoxD,sBACpC6nC,GAAYj5F,GAAUx9H,QAAQyrD,QAC9BirK,GAAkB,CACpB1gN,SAAS,EAET7N,SAAS,EACTkD,SAAU,YACVm+L,WAAY,CACVxzL,SAAS,EACTuqH,MAAO,kBACPd,UAAW,EACXu+D,WAAY,GACZC,iBAAkB,GAEpB6D,UAAW,CACT2H,UAAU,GAGZ1B,MAAO,CAEL4uB,mBAAmB,EAEnBC,cAAe,yBAEfC,iBAAkB,EAElBC,iBAAkB,EAClBjrO,SAAUo7N,GAAWC,WAAW/xL,QAElCu0K,YAAa,CAEX1zL,SAAS,EAET0+K,SAAU,GAEV7oM,SAAU,SAAUqK,GAClB,OAAOA,KAKb,SAAS6gO,GAAsBh1N,GAC7B,IAAI+lM,EAAW/lM,EAAKgmM,MAEpB,OAAID,EAAS9xL,SAAWjU,EAAKiU,QACpBugN,GAAiBzuB,EAASpT,SAAUJ,EAAcxjM,OAAOupI,iBAA+C,EAA5BytE,EAAS+uB,iBAGvF,EAGT,SAASG,GAAiBj9F,EAAKG,EAAYhkI,GACzC,OAAIsnI,GAAUjqG,QAAQr9B,GACb,CACL4H,EAAG0/H,GAAUsoF,YAAY/rF,EAAKA,EAAIJ,KAAMzjI,GACxC1Q,EAAG0Q,EAAMrF,OAASqpI,GAIf,CACLp8H,EAAGi8H,EAAIE,YAAY/jI,GAAOmgB,MAC1B7wB,EAAG00I,GAIP,SAAS+8F,GAAgBr6F,EAAO3b,EAAK9mE,EAAM1mC,EAAKC,GAC9C,OAAIkpH,IAAUnpH,GAAOmpH,IAAUlpH,EACtB,CACL2X,MAAO41F,EAAM9mE,EAAO,EACpB8I,IAAKg+D,EAAM9mE,EAAO,GAEXyiF,EAAQnpH,GAAOmpH,EAAQlpH,EACzB,CACL2X,MAAO41F,EAAM9mE,EACb8I,IAAKg+D,GAIF,CACL51F,MAAO41F,EACPh+D,IAAKg+D,EAAM9mE,GAQf,SAAS+8K,GAAmBh5F,GA0B1B,IAWIjuI,EAAG6pI,EAAU+wE,EAXbssB,EAAS35F,GAAUx9H,QAAQw0L,WAAWt2D,EAAMl+H,QAAQ0pM,aAIpD0tB,EAAiB,CACnB1mN,EAAG,EACHrJ,EAAG62H,EAAM7nH,MACTpP,EAAG,EACH9gB,EAAG+3I,EAAMlmI,OAASkmI,EAAMknF,YAEtBiS,EAAiB,GAErBn5F,EAAMnE,IAAIJ,KAAOw9F,EAAO9kO,OACxB6rI,EAAMo5F,iBAAmB,GACzB,IAAIC,EAAar5F,EAAMqD,MAAMtoI,KAAKg7F,OAAOpjG,OAEzC,IAAKZ,EAAI,EAAGA,EAAIsnO,EAAYtnO,IAAK,CAC/B46M,EAAgB3sE,EAAMs5F,iBAAiBvnO,EAAGiuI,EAAMu5F,YAAc,GAC9D39F,EAAWk9F,GAAiB94F,EAAMnE,IAAKo9F,EAAOj9F,WAAYgE,EAAMwrE,YAAYz5M,IAC5EiuI,EAAMo5F,iBAAiBrnO,GAAK6pI,EAE5B,IAAI+0F,EAAe3wF,EAAMw5F,cAAcznO,GACnC2sI,EAAQY,GAAUmlF,UAAUkM,GAAgB,IAC5C8I,EAAUV,GAAgBr6F,EAAOiuE,EAActuM,EAAGu9H,EAASh8H,EAAG,EAAG,KACjE85N,EAAUX,GAAgBr6F,EAAOiuE,EAAc/kN,EAAGg0I,EAASt0I,EAAG,GAAI,KAElEmyO,EAAQtsM,MAAQ+rM,EAAe1mN,IACjC0mN,EAAe1mN,EAAIinN,EAAQtsM,MAC3BgsM,EAAe3mN,EAAIm+M,GAGjB8I,EAAQ10K,IAAMm0K,EAAe/vN,IAC/B+vN,EAAe/vN,EAAIswN,EAAQ10K,IAC3Bo0K,EAAehwN,EAAIwnN,GAGjB+I,EAAQvsM,MAAQ+rM,EAAenwN,IACjCmwN,EAAenwN,EAAI2wN,EAAQvsM,MAC3BgsM,EAAepwN,EAAI4nN,GAGjB+I,EAAQ30K,IAAMm0K,EAAejxO,IAC/BixO,EAAejxO,EAAIyxO,EAAQ30K,IAC3Bo0K,EAAelxO,EAAI0oO,GAIvB3wF,EAAM25F,cAAc35F,EAAMu5F,YAAaL,EAAgBC,GAGzD,SAASS,GAAqBl7F,GAC5B,OAAc,IAAVA,GAAyB,MAAVA,EACV,SACEA,EAAQ,IACV,OAGF,QAGT,SAASwD,GAASrG,EAAKn1F,EAAMv5B,EAAU6uH,GACrC,IACIjqI,EAAG+pI,EADHl0I,EAAIulB,EAASvlB,EAAIo0I,EAAa,EAGlC,GAAIsD,GAAUjqG,QAAQqR,GACpB,IAAK30C,EAAI,EAAG+pI,EAAOp1F,EAAK/zC,OAAQZ,EAAI+pI,IAAQ/pI,EAC1C8pI,EAAIqG,SAASx7F,EAAK30C,GAAIob,EAAS9O,EAAGzW,GAClCA,GAAKo0I,OAGPH,EAAIqG,SAASx7F,EAAMv5B,EAAS9O,EAAGzW,GAInC,SAASiyO,GAAkCn7F,EAAO9C,EAAUzuH,GAC5C,KAAVuxH,GAA0B,MAAVA,EAClBvxH,EAASvlB,GAAKg0I,EAASt0I,EAAI,GAClBo3I,EAAQ,KAAOA,EAAQ,MAChCvxH,EAASvlB,GAAKg0I,EAASt0I,GAI3B,SAASwyO,GAAgB95F,GACvB,IAAInE,EAAMmE,EAAMnE,IACZh4H,EAAOm8H,EAAMl+H,QACbi4N,EAAiBl2N,EAAK2nM,YACtBwuB,EAAqBnB,GAAsBh1N,GAC3Co2N,EAAgBj6F,EAAMqsE,8BAA8BxoM,EAAKgmM,MAAMpxK,QAAUunG,EAAMzqH,IAAMyqH,EAAMxqH,KAE3FyjN,EAAS35F,GAAUx9H,QAAQw0L,WAAWyjC,GAE1Cl+F,EAAImI,OACJnI,EAAIJ,KAAOw9F,EAAO9kO,OAClB0nI,EAAI6G,aAAe,SAEnB,IAAK,IAAI3wI,EAAIiuI,EAAMqD,MAAMtoI,KAAKg7F,OAAOpjG,OAAS,EAAGZ,GAAK,EAAGA,IAAK,CAE5D,IAAIglL,EAAc,IAANhlL,EAAUioO,EAAqB,EAAI,EAC3CE,EAAqBl6F,EAAMs5F,iBAAiBvnO,EAAGkoO,EAAgBljD,EAAQ,GAEvEojD,EAAsB7B,GAAwByB,EAAe5O,UAAWp5N,EAAGqkM,EAAcxjM,OAAOwwI,kBACpGvH,EAAIuF,UAAY+4F,EAChB,IAAIxJ,EAAe3wF,EAAMw5F,cAAcznO,GACnC2sI,EAAQY,GAAUmlF,UAAUkM,GAChC90F,EAAIuG,UAAYw3F,GAAqBl7F,GACrCm7F,GAAkCn7F,EAAOsB,EAAMo5F,iBAAiBrnO,GAAImoO,GACpEh4F,GAASrG,EAAKmE,EAAMwrE,YAAYz5M,GAAImoO,EAAoBjB,EAAOj9F,YAGjEH,EAAIsI,UAGN,SAASi2F,GAAep6F,EAAOowF,EAAcpxF,EAAQtsI,GACnD,IAKIi6M,EALA9wE,EAAMmE,EAAMnE,IACZ0vE,EAAW6kB,EAAa7kB,SACxB8tB,EAAar5F,EAAMqD,MAAMtoI,KAAKg7F,OAAOpjG,OACrC0/N,EAAYiG,GAAwBlI,EAAa/tF,MAAO3vI,EAAQ,GAChE6uI,EAAY+2F,GAAwBlI,EAAa7uF,UAAW7uI,EAAQ,GAGxE,IAAK64M,GAAa8tB,IAAehH,GAAc9wF,EAA/C,CAeA,GAXA1F,EAAImI,OACJnI,EAAIyF,YAAc+wF,EAClBx2F,EAAI0F,UAAYA,EAEZ1F,EAAI6kE,cACN7kE,EAAI6kE,YAAY0vB,EAAatwB,YAAc,IAC3CjkE,EAAI8kE,eAAiByvB,EAAarwB,kBAAoB,GAGxDlkE,EAAIkF,YAEAwqE,EAEF1vE,EAAI2C,IAAIwB,EAAMI,QAASJ,EAAMK,QAASrB,EAAQ,EAAa,EAAV37H,KAAKouC,QACjD,CAELk7J,EAAgB3sE,EAAMs5F,iBAAiB,EAAGt6F,GAC1CnD,EAAI24D,OAAOmY,EAActuM,EAAGsuM,EAAc/kN,GAE1C,IAAK,IAAImK,EAAI,EAAGA,EAAIsnO,EAAYtnO,IAC9B46M,EAAgB3sE,EAAMs5F,iBAAiBvnO,EAAGitI,GAC1CnD,EAAIk5D,OAAO4X,EAActuM,EAAGsuM,EAAc/kN,GAI9Ci0I,EAAIsF,YACJtF,EAAI4F,SACJ5F,EAAIsI,WAGN,SAASk2F,GAAa90K,GACpB,OAAO+5E,GAAU1tB,SAASrsD,GAASA,EAAQ,EAG7C,IAAI+0K,GAAqBhF,GAAiBxjM,OAAO,CAC/Cm8L,cAAe,WACb,IAAInhM,EAAKniC,KAETmiC,EAAG3U,MAAQ2U,EAAG+hI,SACd/hI,EAAGhzB,OAASgzB,EAAGs3J,UACft3J,EAAGo6L,WAAa2R,GAAsB/rM,EAAGhrB,SAAW,EACpDgrB,EAAGszG,QAAU/8H,KAAKG,MAAMspB,EAAG3U,MAAQ,GACnC2U,EAAGuzG,QAAUh9H,KAAKG,OAAOspB,EAAGhzB,OAASgzB,EAAGo6L,YAAc,GACtDp6L,EAAGysM,YAAcl2N,KAAKkS,IAAIuX,EAAGhzB,OAASgzB,EAAGo6L,WAAYp6L,EAAG3U,OAAS,GAEnEi2M,oBAAqB,WACnB,IAAIthM,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACX9tH,EAAMymC,OAAOyxJ,kBACbj4L,EAAMwmC,OAAOuoK,kBACjBjlF,GAAU74F,KAAK48F,EAAMtoI,KAAK0rI,UAAU,SAAU1hH,EAASokH,GACrD,GAAI9F,EAAM+F,iBAAiBD,GAAe,CACxC,IAAIj8D,EAAOm2D,EAAMy3D,eAAe3xD,GAChC7J,GAAU74F,KAAK1hB,EAAQhqB,MAAM,SAAUm2N,EAAUx+N,GAC/C,IAAIoI,GAASgyB,EAAG+9K,cAAcqmB,GAE1BpuN,MAAMhI,IAAUoyE,EAAKnyE,KAAKrI,GAAOmxE,SAIrCtuD,EAAMlS,KAAKkS,IAAIza,EAAOya,GACtBC,EAAMnS,KAAKmS,IAAI1a,EAAO0a,WAI5BsX,EAAGvX,IAAMA,IAAQymC,OAAOyxJ,kBAAoB,EAAIl4L,EAChDuX,EAAGtX,IAAMA,IAAQwmC,OAAOuoK,kBAAoB,EAAI/uM,EAEhDsX,EAAGyoM,0BAGLQ,kBAAmB,WACjB,OAAO1yN,KAAKo6C,KAAK9yD,KAAK4uO,YAAcV,GAAsBluO,KAAKmX,WAEjEytN,qBAAsB,WACpB,IAAIziM,EAAKniC,KACT2qO,GAAiBvpO,UAAUwjO,qBAAqB7kO,KAAKoiC,GAErDA,EAAG0+K,YAAc1+K,EAAGu2G,MAAMtoI,KAAKg7F,OAAOpiF,KAAI,WACxC,IAAI3b,EAAQsnI,GAAU3xI,SAASm/B,EAAGhrB,QAAQ0pM,YAAY79M,SAAUc,UAAWq+B,GAC3E,OAAO90B,GAAmB,IAAVA,EAAcA,EAAQ,OAG1C2gN,iBAAkB,SAAUjmN,EAAOy2I,GACjC,OAAQx+I,KAAKkgN,cAAclgN,KAAK04I,MAAMtoI,KAAK0rI,SAAS0C,GAAcpuI,KAAKrI,KAEzEo8N,IAAK,WACH,IAAIhiM,EAAKniC,KACLkZ,EAAOipB,EAAGhrB,QAEV+B,EAAKiU,SAAWjU,EAAK2nM,YAAY1zL,QACnCkhN,GAAmBlsM,GAEnBA,EAAGytM,eAAe,EAAG,EAAG,EAAG,IAQ/BZ,cAAe,SAAUa,EAAuBtB,EAAgBC,GAC9D,IAAIrsM,EAAKniC,KACL8vO,EAAsBvB,EAAe1mN,EAAInP,KAAKk6H,IAAI47F,EAAe3mN,GACjEkoN,EAAuBr3N,KAAKmS,IAAI0jN,EAAe/vN,EAAI2jB,EAAG3U,MAAO,GAAK9U,KAAKk6H,IAAI47F,EAAehwN,GAC1FwxN,GAAsBzB,EAAenwN,EAAI1F,KAAKi6H,IAAI67F,EAAepwN,GACjE6xN,GAAyBv3N,KAAKmS,IAAI0jN,EAAejxO,GAAK6kC,EAAGhzB,OAASgzB,EAAGo6L,YAAa,GAAK7jN,KAAKi6H,IAAI67F,EAAelxO,GACnHwyO,EAAsBJ,GAAaI,GACnCC,EAAuBL,GAAaK,GACpCC,EAAqBN,GAAaM,GAClCC,EAAwBP,GAAaO,GACrC9tM,EAAGysM,YAAcl2N,KAAKkS,IAAIlS,KAAKG,MAAMg3N,GAAyBC,EAAsBC,GAAwB,GAAIr3N,KAAKG,MAAMg3N,GAAyBG,EAAqBC,GAAyB,IAClM9tM,EAAGytM,eAAeE,EAAqBC,EAAsBC,EAAoBC,IAEnFL,eAAgB,SAAUM,EAAcC,EAAeC,EAAaC,GAClE,IAAIluM,EAAKniC,KACLswO,EAAWnuM,EAAG3U,MAAQ2iN,EAAgBhuM,EAAGysM,YACzC2B,EAAUL,EAAe/tM,EAAGysM,YAC5B4B,EAASJ,EAAcjuM,EAAGysM,YAC1B6B,EAAYtuM,EAAGhzB,OAASgzB,EAAGo6L,WAAa8T,EAAiBluM,EAAGysM,YAChEzsM,EAAGszG,QAAU/8H,KAAKG,OAAO03N,EAAUD,GAAY,EAAInuM,EAAGruB,MACtDquB,EAAGuzG,QAAUh9H,KAAKG,OAAO23N,EAASC,GAAa,EAAItuM,EAAG/yB,IAAM+yB,EAAGo6L,aAEjEsS,cAAe,SAAU9mO,GACvB,IAAI2wI,EAAQ14I,KAAK04I,MAKb3E,GAAShsI,GAJS,IAAM2wI,EAAMtoI,KAAKg7F,OAAOpjG,UAChC0wI,EAAMvhI,SAAW,IACN68H,YAAc,IAEc,IACrD,OAAQD,EAAQ,EAAIA,EAAQ,IAAMA,GAASr7H,KAAKouC,GAAK,EAAI,KAE3D46J,8BAA+B,SAAUvxM,GACvC,IAAIgyB,EAAKniC,KAET,GAAI20I,GAAU/D,cAAczgI,GAC1B,OAAO+4G,IAIT,IAAIwnH,EAAgBvuM,EAAGysM,aAAezsM,EAAGtX,IAAMsX,EAAGvX,KAElD,OAAIuX,EAAGhrB,QAAQ+nM,MAAMpxK,SACX3L,EAAGtX,IAAM1a,GAASugO,GAGpBvgO,EAAQgyB,EAAGvX,KAAO8lN,GAE5B/B,iBAAkB,SAAU5mO,EAAO4oO,GACjC,IAAIxuM,EAAKniC,KACL4wO,EAAYzuM,EAAG0sM,cAAc9mO,GAAS2Q,KAAKouC,GAAK,EACpD,MAAO,CACLpzC,EAAGgF,KAAKi6H,IAAIi+F,GAAaD,EAAqBxuM,EAAGszG,QACjDx4I,EAAGyb,KAAKk6H,IAAIg+F,GAAaD,EAAqBxuM,EAAGuzG,UAGrDusE,yBAA0B,SAAUl6M,EAAOoI,GACzC,OAAOnQ,KAAK2uO,iBAAiB5mO,EAAO/H,KAAK0hN,8BAA8BvxM,KAEzE0gO,gBAAiB,SAAU9oO,GACzB,IAAIo6B,EAAKniC,KACL4qB,EAAMuX,EAAGvX,IACTC,EAAMsX,EAAGtX,IACb,OAAOsX,EAAG8/K,yBAAyBl6M,GAAS,EAAGo6B,EAAG2+K,YAAc,EAAIl2L,EAAM,GAAKC,EAAM,EAAIA,EAAMD,EAAM,GAAKC,EAAM,EAAID,EAAM,IAM5H09M,UAAW,WACT,IAOIlhO,EAAG2sB,EAAQvR,EAPX2f,EAAKniC,KACLkxI,EAAM/uG,EAAG+uG,IACTh4H,EAAOipB,EAAGhrB,QACVsuN,EAAevsN,EAAK+/L,UACpB63B,EAAgB53N,EAAKynM,WACrB/pE,EAAY82F,GAAiBoD,EAAcl6F,UAAW6uF,EAAa7uF,WACnE8wF,EAAYgG,GAAiBoD,EAAcp5F,MAAO+tF,EAAa/tF,OAgBnE,GAbIx+H,EAAK2nM,YAAY1zL,SACnBgiN,GAAgBhtM,GAGdsjM,EAAat4M,SACfwnH,GAAU74F,KAAK3Z,EAAG+8K,OAAO,SAAU7xM,EAAOtF,GAC1B,IAAVA,IACFgsB,EAASoO,EAAGu/K,8BAA8Bv/K,EAAGqpM,eAAezjO,IAC5D0nO,GAAettM,EAAIsjM,EAAc1xM,EAAQhsB,OAK3C+oO,EAAc3jN,SAAWypH,GAAa8wF,EAAW,CAUnD,IATAx2F,EAAImI,OACJnI,EAAI0F,UAAYA,EAChB1F,EAAIyF,YAAc+wF,EAEdx2F,EAAI6kE,cACN7kE,EAAI6kE,YAAY63B,GAAU,CAACkD,EAAc37B,WAAYswB,EAAatwB,WAAY,MAC9EjkE,EAAI8kE,eAAiB43B,GAAU,CAACkD,EAAc17B,iBAAkBqwB,EAAarwB,iBAAkB,KAG5FhuM,EAAI+6B,EAAGu2G,MAAMtoI,KAAKg7F,OAAOpjG,OAAS,EAAGZ,GAAK,EAAGA,IAChD2sB,EAASoO,EAAGu/K,8BAA8BxoM,EAAKgmM,MAAMpxK,QAAU3L,EAAGvX,IAAMuX,EAAGtX,KAC3ErI,EAAW2f,EAAGwsM,iBAAiBvnO,EAAG2sB,GAClCm9G,EAAIkF,YACJlF,EAAI24D,OAAO1nK,EAAGszG,QAAStzG,EAAGuzG,SAC1BxE,EAAIk5D,OAAO5nL,EAAS9O,EAAG8O,EAASvlB,GAChCi0I,EAAI4F,SAGN5F,EAAIsI,YAORivF,YAAa,WACX,IAAItmM,EAAKniC,KACLkxI,EAAM/uG,EAAG+uG,IAET+tE,EADO98K,EAAGhrB,QACM+nM,MAEpB,GAAKD,EAAS9xL,QAAd,CAIA,IAKI4G,EAAQvG,EALRwmH,EAAa7xG,EAAG0sM,cAAc,GAE9BtP,EAAW5qF,GAAUx9H,QAAQw0L,WAAWsT,GAExC8xB,EAAgBrD,GAAiBzuB,EAASuhB,UAAW/0B,EAAcxjM,OAAOwwI,kBAE9EvH,EAAImI,OACJnI,EAAIJ,KAAOyuF,EAAS/1N,OACpB0nI,EAAI1/H,UAAU2wB,EAAGszG,QAAStzG,EAAGuzG,SAC7BxE,EAAIqI,OAAOvF,GACX9C,EAAIuG,UAAY,SAChBvG,EAAI6G,aAAe,SACnBpD,GAAU74F,KAAK3Z,EAAG+8K,OAAO,SAAU7xM,EAAOtF,IAC1B,IAAVA,GAAgBk3M,EAASnxK,WAI7B/Z,EAASoO,EAAGu/K,8BAA8Bv/K,EAAGqpM,eAAezjO,IAExDk3M,EAAS6uB,oBACXtgN,EAAQ0jH,EAAIE,YAAY/jI,GAAOmgB,MAC/B0jH,EAAIuF,UAAYwoE,EAAS8uB,cACzB78F,EAAI4mE,UAAUtqL,EAAQ,EAAIyxL,EAASgvB,kBAAmBl6M,EAASwrM,EAASjuK,KAAO,EAAI2tJ,EAAS+uB,iBAAkBxgN,EAAoC,EAA5ByxL,EAASgvB,iBAAsB1O,EAASjuK,KAAmC,EAA5B2tJ,EAAS+uB,mBAGhL98F,EAAIuF,UAAYs6F,EAChB7/F,EAAIqG,SAASlqI,EAAO,GAAI0mB,OAE1Bm9G,EAAIsI,YAMNkvF,WAAY/zF,GAAU0b,OAGpB2gF,GAAcnD,GAClB8B,GAAmB9F,UAAYmH,GAC/B,IAAIC,GAAet8F,GAAUoyD,YACzBmqC,GAAYv8F,GAAUx9H,QAAQyrD,QAC9BuuK,GAAmBx8F,GAAUpD,eAE7BmI,GAAcroF,OAAOsoF,mBAAqB,iBAC1CC,GAAcvoF,OAAOwoF,kBAAoB,iBACzCu3F,GAAY,CACdlyG,YAAa,CACXghB,QAAQ,EACR5uF,KAAM,EACN+/K,MAAO,KAEThgM,OAAQ,CACN6uG,QAAQ,EACR5uF,KAAM,IACN+/K,MAAO,IAEThoO,OAAQ,CACN62I,QAAQ,EACR5uF,KAAM,IACN+/K,MAAO,IAETjoO,KAAM,CACJ82I,QAAQ,EACR5uF,KAAM,KACN+/K,MAAO,IAET3nO,IAAK,CACHw2I,QAAQ,EACR5uF,KAAM,MACN+/K,MAAO,IAET9zO,KAAM,CACJ2iJ,QAAQ,EACR5uF,KAAM,OACN+/K,MAAO,GAET7+N,MAAO,CACL0tI,QAAQ,EACR5uF,KAAM,OACN+/K,MAAO,IAEThxG,QAAS,CACP6f,QAAQ,EACR5uF,KAAM,OACN+/K,MAAO,GAET7pN,KAAM,CACJ04H,QAAQ,EACR5uF,KAAM,SAGNggL,GAAQ9wO,OAAOkW,KAAK06N,IAExB,SAASG,GAAO5yN,EAAGrhB,GACjB,OAAOqhB,EAAIrhB,EAGb,SAASm6C,GAAYZ,GACnB,IAEIzvC,EAAG+pI,EAAMltG,EAFTwO,EAAO,GACP25F,EAAM,GAGV,IAAKhlI,EAAI,EAAG+pI,EAAOt6F,EAAM7uC,OAAQZ,EAAI+pI,IAAQ/pI,EAGtCqrC,EAFLxO,EAAO4S,EAAMzvC,MAGXqrC,EAAKxO,IAAQ,EACbmoG,EAAIp+H,KAAKi2B,IAIb,OAAOmoG,EAGT,SAASolG,GAAOr6N,GACd,OAAOw9H,GAAUpD,eAAep6H,EAAQ0sB,KAAKjZ,IAAKzT,EAAQ+nM,MAAMt0L,KAGlE,SAAS6mN,GAAOt6N,GACd,OAAOw9H,GAAUpD,eAAep6H,EAAQ0sB,KAAKhZ,IAAK1T,EAAQ+nM,MAAMr0L,KAmBlE,SAAS6mN,GAAiBC,EAAY/mN,EAAKC,EAAK+mN,GAC9C,GAAqB,WAAjBA,IAA8BD,EAAW3pO,OAC3C,MAAO,CAAC,CACN67B,KAAMjZ,EACNwtG,IAAK,GACJ,CACDv0F,KAAMhZ,EACNutG,IAAK,IAIT,IAEIhxH,EAAG+pI,EAAMr0F,EAAMs7J,EAAMtnK,EAFrB+gM,EAAQ,GACRh7L,EAAQ,CAACjsB,GAGb,IAAKxjB,EAAI,EAAG+pI,EAAOwgG,EAAW3pO,OAAQZ,EAAI+pI,IAAQ/pI,GAChDgxM,EAAOu5B,EAAWvqO,IAEPwjB,GAAOwtL,EAAOvtL,GACvBgsB,EAAM7oC,KAAKoqM,GAMf,IAFAvhK,EAAM7oC,KAAK6c,GAENzjB,EAAI,EAAG+pI,EAAOt6F,EAAM7uC,OAAQZ,EAAI+pI,IAAQ/pI,EAC3C0pC,EAAO+F,EAAMzvC,EAAI,GACjB01C,EAAOjG,EAAMzvC,EAAI,GACjBgxM,EAAOvhK,EAAMzvC,QAEAJ,IAAT81C,QAA+B91C,IAAT8pC,GAAsBp4B,KAAKwI,OAAO4vB,EAAOgM,GAAQ,KAAOs7J,GAChFy5B,EAAM7jO,KAAK,CACT61B,KAAMu0K,EACNhgF,IAAKhxH,GAAK+pI,EAAO,KAKvB,OAAO0gG,EAIT,SAASx1F,GAAOw1F,EAAOlvO,EAAKwN,GAK1B,IAJA,IAEI2hO,EAAKC,EAAIC,EAFTjlI,EAAK,EACLC,EAAK6kI,EAAM7pO,OAAS,EAGjB+kG,GAAM,GAAKA,GAAMC,GAAI,CAK1B,GAHA+kI,EAAKF,GADLC,EAAM/kI,EAAKC,GAAM,GACA,IAAM,KACvBglI,EAAKH,EAAMC,IAENC,EAEH,MAAO,CACLhlI,GAAI,KACJC,GAAIglI,GAED,GAAIA,EAAGrvO,GAAOwN,EACnB48F,EAAK+kI,EAAM,MACN,MAAIC,EAAGpvO,GAAOwN,GAGnB,MAAO,CACL48F,GAAIglI,EACJ/kI,GAAIglI,GAJNhlI,EAAK8kI,EAAM,GAUf,MAAO,CACL/kI,GAAIilI,EACJhlI,GAAI,MAWR,SAASilI,GAAcJ,EAAOK,EAAM5rC,EAAM6rC,GACxC,IAAIn0M,EAAQq+G,GAAOw1F,EAAOK,EAAM5rC,GAE5BxpJ,EAAQ9e,EAAM+uE,GAAiB/uE,EAAMgvE,GAA+BhvE,EAAM+uE,GAAhC8kI,EAAMA,EAAM7pO,OAAS,GAA5C6pO,EAAM,GACzB/gM,EAAQ9S,EAAM+uE,GAAiB/uE,EAAMgvE,GAA+BhvE,EAAMgvE,GAAhC6kI,EAAMA,EAAM7pO,OAAS,GAA5C6pO,EAAM,GACzB/3C,EAAOhpJ,EAAKohM,GAAQp1L,EAAKo1L,GACzB7mL,EAAQyuI,GAAQwM,EAAOxpJ,EAAKo1L,IAASp4C,EAAO,EAC5C/lK,GAAU+c,EAAKqhM,GAAQr1L,EAAKq1L,IAAS9mL,EACzC,OAAOvO,EAAKq1L,GAAQp+M,EAGtB,SAASq+M,GAAY/8F,EAAOvtI,GAC1B,IAAIjI,EAAUw1I,EAAMg9F,SAChBl7N,EAAUk+H,EAAMl+H,QAAQ0sB,KACxBxoB,EAASlE,EAAQkE,OACjBzd,EAASyd,GAAUlE,EAAQvZ,OAC3BuS,EAAQrI,EAWZ,MATsB,oBAAXuT,IACTlL,EAAQkL,EAAOlL,IAIZwkI,GAAUn9E,SAASrnD,KACtBA,EAA0B,kBAAXvS,EAAsBiC,EAAQqb,MAAM/K,EAAOvS,GAAUiC,EAAQqb,MAAM/K,IAGtE,OAAVA,GACMA,GAKLkL,GAA4B,oBAAXzd,IACpBuS,EAAQvS,EAAOkK,GAEV6sI,GAAUn9E,SAASrnD,KACtBA,EAAQtQ,EAAQqb,MAAM/K,KAInBA,GAGT,SAAS+K,GAAMm6H,EAAOvtI,GACpB,GAAI6sI,GAAU/D,cAAc9oI,GAC1B,OAAO,KAGT,IAAIqP,EAAUk+H,EAAMl+H,QAAQ0sB,KACxB1zB,EAAQiiO,GAAY/8F,EAAOA,EAAM6qE,cAAcp4M,IAEnD,OAAc,OAAVqI,GAIAgH,EAAQ+J,QACV/Q,GAASklI,EAAMg9F,SAASvtG,QAAQ30H,EAAOgH,EAAQ+J,QAJxC/Q,EAcX,SAASmiO,GAA0BC,EAAS3nN,EAAKC,EAAK2nN,GACpD,IACIprO,EAAGo8B,EAAU2I,EADbglG,EAAOmgG,GAAMtpO,OAGjB,IAAKZ,EAAIkqO,GAAM3pO,QAAQ4qO,GAAUnrO,EAAI+pI,EAAO,IAAK/pI,EAI/C,GAFA+kC,GADA3I,EAAW4tM,GAAUE,GAAMlqO,KACTiqO,MAAQ7tM,EAAS6tM,MAAQz3F,GAEvCp2G,EAAS08G,QAAUxnI,KAAKo6C,MAAMjoC,EAAMD,IAAQuhB,EAAS3I,EAAS8tB,QAAUkhL,EAC1E,OAAOlB,GAAMlqO,GAIjB,OAAOkqO,GAAMngG,EAAO,GAOtB,SAASshG,GAA2Bp9F,EAAO+vF,EAAUmN,EAAS3nN,EAAKC,GACjE,IAAIzjB,EAAG+R,EAEP,IAAK/R,EAAIkqO,GAAMtpO,OAAS,EAAGZ,GAAKkqO,GAAM3pO,QAAQ4qO,GAAUnrO,IAGtD,GAFA+R,EAAOm4N,GAAMlqO,GAETgqO,GAAUj4N,GAAM+mI,QAAU7K,EAAMg9F,SAAS/5N,KAAKuS,EAAKD,EAAKzR,IAASisN,EAAW,EAC9E,OAAOjsN,EAIX,OAAOm4N,GAAMiB,EAAUjB,GAAM3pO,QAAQ4qO,GAAW,GAGlD,SAASG,GAAmBv5N,GAC1B,IAAK,IAAI/R,EAAIkqO,GAAM3pO,QAAQwR,GAAQ,EAAGg4H,EAAOmgG,GAAMtpO,OAAQZ,EAAI+pI,IAAQ/pI,EACrE,GAAIgqO,GAAUE,GAAMlqO,IAAI84I,OACtB,OAAOoxF,GAAMlqO,GAYnB,SAASurO,GAASt9F,EAAOzqH,EAAKC,EAAK2nN,GACjC,IAQI3uM,EARAhkC,EAAUw1I,EAAMg9F,SAChBl7N,EAAUk+H,EAAMl+H,QAChBy7N,EAAWz7N,EAAQ0sB,KACnBm8L,EAAQ4S,EAASz5N,MAAQm5N,GAA0BM,EAASL,QAAS3nN,EAAKC,EAAK2nN,GAC/ElI,EAAW4G,GAAU,CAAC0B,EAAStI,SAAUsI,EAASC,aAAc,IAChE5+G,EAAoB,SAAV+rG,GAAmB4S,EAASzrG,WACtC/1F,EAAQxmB,EACRs0L,EAAQ,GAUZ,GAPIjrF,IACF7iF,GAASvxC,EAAQilI,QAAQ1zF,EAAO,UAAW6iF,IAI7C7iF,GAASvxC,EAAQilI,QAAQ1zF,EAAO6iF,EAAU,MAAQ+rG,GAE9CngO,EAAQyY,KAAKuS,EAAKD,EAAKo1M,GAAS,IAASsK,EAC3C,MAAM1/M,EAAM,QAAUC,EAAM,uCAAyCy/M,EAAW,IAAMtK,EAGxF,IAAKn8L,EAAOuN,EAAOvN,EAAOhZ,EAAKgZ,GAAQhkC,EAAQyF,IAAIu+B,EAAMymM,EAAUtK,GACjE9gB,EAAMlxM,KAAK61B,GAOb,OAJIA,IAAShZ,GAA0B,UAAnB1T,EAAQogM,QAC1B2H,EAAMlxM,KAAK61B,GAGNq7K,EAUT,SAAS5oD,GAAeu7E,EAAO3yB,EAAOt0L,EAAKC,EAAK1T,GAC9C,IAEIi6B,EAAO8oK,EAFP13K,EAAQ,EACR43B,EAAM,EAqBV,OAlBIjjD,EAAQ4c,QAAUmrL,EAAMl3M,SAC1BopC,EAAQ6gM,GAAcJ,EAAO,OAAQ3yB,EAAM,GAAI,OAG7C18K,EADmB,IAAjB08K,EAAMl3M,OACA,EAAIopC,GAEH6gM,GAAcJ,EAAO,OAAQ3yB,EAAM,GAAI,OAAS9tK,GAAS,EAGpE8oK,EAAO+3B,GAAcJ,EAAO,OAAQ3yB,EAAMA,EAAMl3M,OAAS,GAAI,OAG3DoyD,EADmB,IAAjB8kJ,EAAMl3M,OACFkyM,GAECA,EAAO+3B,GAAcJ,EAAO,OAAQ3yB,EAAMA,EAAMl3M,OAAS,GAAI,QAAU,GAI3E,CACLw6B,MAAOA,EACP43B,IAAKA,EACLjuB,OAAQ,GAAK3J,EAAQ,EAAI43B,IAI7B,SAAS04K,GAAcz9F,EAAO6pE,EAAOl2L,EAAK+pN,GACxC,IAGIhT,EAAOh4N,EAHPlI,EAAUw1I,EAAMg9F,SAChBjhM,GAASvxC,EAAQilI,QAAQo6E,EAAM,GAAG/uM,MAAO4iO,GACzC74B,EAAOgF,EAAMA,EAAMl3M,OAAS,GAAGmI,MAGnC,IAAK4vN,EAAQ3uL,EAAO2uL,GAAS7lB,EAAM6lB,GAASlgO,EAAQyF,IAAIy6N,EAAO,EAAGgT,IAChEhrO,EAAQihB,EAAI+2M,KAEC,IACX7gB,EAAMn3M,GAAOg4N,OAAQ,GAIzB,OAAO7gB,EAGT,SAAS8zB,GAAoB39F,EAAOtjG,EAAQghM,GAC1C,IAGI3rO,EAAG+I,EAHH+uM,EAAQ,GACRl2L,EAAM,GACNmoH,EAAOp/F,EAAO/pC,OAGlB,IAAKZ,EAAI,EAAGA,EAAI+pI,IAAQ/pI,EAEtB4hB,EADA7Y,EAAQ4hC,EAAO3qC,IACFA,EACb83M,EAAMlxM,KAAK,CACTmC,MAAOA,EACP4vN,OAAO,IAMX,OAAgB,IAAT5uF,GAAe4hG,EAAoBD,GAAcz9F,EAAO6pE,EAAOl2L,EAAK+pN,GAAzC7zB,EAGpC,IAAI+zB,GAAkB,CACpBzwN,SAAU,SASVovN,aAAc,SASdr6B,OAAQ,OACR27B,SAAU,GACVrvM,KAAM,CACJxoB,QAAQ,EAERlC,MAAM,EAEN+H,OAAO,EAEPiyN,eAAe,EAEfhsG,YAAY,EAEZorG,QAAS,cACTa,eAAgB,IAElBl0B,MAAO,CACLijB,UAAU,EAUV36N,OAAQ,OACRu4N,MAAO,CACLjuK,SAAS,KAIXuhL,GAAahK,GAAWliM,OAAO,CACjCljC,WAAY,WACVjE,KAAK+1N,oBACLsT,GAAWjoO,UAAU6C,WAAWlE,KAAKC,OAEvCkxD,OAAQ,WACN,IAAI/uB,EAAKniC,KACLmX,EAAUgrB,EAAGhrB,QACb0sB,EAAO1sB,EAAQ0sB,OAAS1sB,EAAQ0sB,KAAO,IACvChkC,EAAUsiC,EAAGkwM,SAAW,IAAInU,GAAcC,MAAMhnN,EAAQ+7N,SAASl6N,MAUrE,OARAi4N,GAAa,aAAcptM,EAAKjmC,OAAQ,cAAe,eACvDqzO,GAAa,aAAcptM,EAAKjZ,IAAK,WAAY,aACjDqmN,GAAa,aAAcptM,EAAKhZ,IAAK,WAAY,aAKjD8pH,GAAU6xD,QAAQ3iK,EAAKuvM,eAAgBvzO,EAAQooB,WACxCohN,GAAWjoO,UAAU8vD,OAAOrtD,MAAMs+B,EAAIr+B,YAM/Co8M,cAAe,SAAUqmB,GAKvB,OAJIA,QAA2Bv/N,IAAfu/N,EAASnoN,IACvBmoN,EAAWA,EAASnoN,GAGfirN,GAAWjoO,UAAU8+M,cAAcngN,KAAKC,KAAMumO,IAEvD9C,oBAAqB,WACnB,IAUIr8N,EAAGwP,EAAGu6H,EAAM4K,EAAM3rI,EAAMspB,EAAW45M,EAVnCnxM,EAAKniC,KACL04I,EAAQv2G,EAAGu2G,MACX74I,EAAUsiC,EAAGkwM,SACbl7N,EAAUgrB,EAAGhrB,QACbgC,EAAOhC,EAAQ0sB,KAAK1qB,MAAQ,MAC5ByR,EAAMgvH,GACN/uH,EAAM6uH,GACNi4F,EAAa,GACb71F,EAAW,GACX1wC,EAAS,GAGTmoI,EAAapxM,EAAGsgM,aAEpB,IAAKr7N,EAAI,EAAG+pI,EAAOoiG,EAAWvrO,OAAQZ,EAAI+pI,IAAQ/pI,EAChDgkG,EAAOp9F,KAAKkN,GAAMinB,EAAIoxM,EAAWnsO,KAGnC,IAAKA,EAAI,EAAG+pI,GAAQuH,EAAMtoI,KAAK0rI,UAAY,IAAI9zI,OAAQZ,EAAI+pI,IAAQ/pI,EACjE,GAAIsxI,EAAM+F,iBAAiBr3I,GAGzB,GAFAgJ,EAAOsoI,EAAMtoI,KAAK0rI,SAAS10I,GAAGgJ,KAE1BukI,GAAUv7H,SAAShJ,EAAK,IAG1B,IAFA0rI,EAAS10I,GAAK,GAETwP,EAAI,EAAGmlI,EAAO3rI,EAAKpI,OAAQ4O,EAAImlI,IAAQnlI,EAC1C8iB,EAAYxe,GAAMinB,EAAI/xB,EAAKwG,IAC3B+6N,EAAW3jO,KAAK0rB,GAChBoiH,EAAS10I,GAAGwP,GAAK8iB,OAGnBoiH,EAAS10I,GAAKgkG,EAAOxjG,MAAM,GAEtB0rO,IACH3B,EAAaA,EAAWh7N,OAAOy0F,GAC/BkoI,GAAc,QAIlBx3F,EAAS10I,GAAK,GAIdgkG,EAAOpjG,SACT4iB,EAAMlS,KAAKkS,IAAIA,EAAKwgF,EAAO,IAC3BvgF,EAAMnS,KAAKmS,IAAIA,EAAKugF,EAAOA,EAAOpjG,OAAS,KAGzC2pO,EAAW3pO,SACb2pO,EAAaxgG,EAAO,EAAI15F,GAAYk6L,GAAY7zM,KAAKyzM,IAAUI,EAAW7zM,KAAKyzM,IAC/E3mN,EAAMlS,KAAKkS,IAAIA,EAAK+mN,EAAW,IAC/B9mN,EAAMnS,KAAKmS,IAAIA,EAAK8mN,EAAWA,EAAW3pO,OAAS,KAGrD4iB,EAAM1P,GAAMinB,EAAIqvM,GAAOr6N,KAAayT,EACpCC,EAAM3P,GAAMinB,EAAIsvM,GAAOt6N,KAAa0T,EAEpCD,EAAMA,IAAQgvH,IAAe/5I,EAAQilI,QAAQ5sH,KAAKmC,MAAOlB,GAAQyR,EACjEC,EAAMA,IAAQ6uH,IAAe75I,EAAQolI,MAAM/sH,KAAKmC,MAAOlB,GAAQ,EAAI0R,EAEnEsX,EAAGvX,IAAMlS,KAAKkS,IAAIA,EAAKC,GACvBsX,EAAGtX,IAAMnS,KAAKmS,IAAID,EAAM,EAAGC,GAE3BsX,EAAGqxM,OAAS,GACZrxM,EAAGsxM,YAAc,CACfrjO,KAAMuhO,EACN71F,SAAUA,EACV1wC,OAAQA,IAGZw4H,WAAY,WACV,IAWIx8N,EAAG+pI,EAAMz3G,EAXTyI,EAAKniC,KACL4qB,EAAMuX,EAAGvX,IACTC,EAAMsX,EAAGtX,IACT1T,EAAUgrB,EAAGhrB,QACb8nM,EAAW9nM,EAAQ+nM,MACnB0zB,EAAWz7N,EAAQ0sB,KACnB8tM,EAAaxvM,EAAGsxM,YAChBv0B,EAAQ,GACRszB,EAAWrwM,EAAGuxM,iBAAiB9oN,GAC/BpjB,EAASy3M,EAASz3M,OAClBoqO,EAAez6N,EAAQy6N,aAoB3B,IAhBED,EADa,SAAXnqO,GAAgC,SAAXA,GAAsC,WAAjBoqO,EAC/BD,EAAWvhO,KACJ,WAAX5I,EACImqO,EAAWvmI,OAEXunI,GAASxwM,EAAIvX,EAAKC,EAAK2nN,GAGf,UAAnBr7N,EAAQogM,QAAsBo6B,EAAW3pO,SAC3C4iB,EAAM+mN,EAAW,GACjB9mN,EAAM8mN,EAAWA,EAAW3pO,OAAS,IAIvC4iB,EAAM1P,GAAMinB,EAAIqvM,GAAOr6N,KAAayT,EACpCC,EAAM3P,GAAMinB,EAAIsvM,GAAOt6N,KAAa0T,EAE/BzjB,EAAI,EAAG+pI,EAAOwgG,EAAW3pO,OAAQZ,EAAI+pI,IAAQ/pI,GAChDsyB,EAAYi4M,EAAWvqO,KAENwjB,GAAO8O,GAAa7O,GACnCq0L,EAAMlxM,KAAK0rB,GAkBf,OAdAyI,EAAGvX,IAAMA,EACTuX,EAAGtX,IAAMA,EAITsX,EAAGwxM,MAAQf,EAASz5N,OAAS8lM,EAASkjB,SAAWmQ,GAA0BM,EAASL,QAASpwM,EAAGvX,IAAKuX,EAAGtX,IAAK2nN,GAAYC,GAA2BtwM,EAAI+8K,EAAMl3M,OAAQ4qO,EAASL,QAASpwM,EAAGvX,IAAKuX,EAAGtX,MACnMsX,EAAGyxM,WAAc30B,EAAS8gB,MAAMjuK,SAAwB,SAAb3vB,EAAGwxM,MAA+BjB,GAAmBvwM,EAAGwxM,YAAlC3sO,EACjEm7B,EAAGqxM,OAAS9B,GAAiBvvM,EAAGsxM,YAAYrjO,KAAMwa,EAAKC,EAAK+mN,GAC5DzvM,EAAG0xM,SAAWv9E,GAAen0H,EAAGqxM,OAAQt0B,EAAOt0L,EAAKC,EAAK1T,GAErD8nM,EAASnxK,SACXoxK,EAAMpxK,UAGDklM,GAAoB7wM,EAAI+8K,EAAO/8K,EAAGyxM,aAE3C5lB,iBAAkB,SAAUjmN,EAAOy2I,GACjC,IAAIr8G,EAAKniC,KACLH,EAAUsiC,EAAGkwM,SACbjiO,EAAO+xB,EAAGu2G,MAAMtoI,KAChBwiO,EAAWzwM,EAAGhrB,QAAQ0sB,KACtBx2B,EAAQ+C,EAAKg7F,QAAUrjG,EAAQqI,EAAKg7F,OAAOpjG,OAASoI,EAAKg7F,OAAOrjG,GAAS,GACzEoI,EAAQC,EAAK0rI,SAAS0C,GAAcpuI,KAAKrI,GAM7C,OAJI4sI,GAAUv7H,SAASjJ,KACrB9C,EAAQ80B,EAAG+9K,cAAc/vM,IAGvByiO,EAASkB,cACJj0O,EAAQjC,OAAOw0O,GAAYjwM,EAAI90B,GAAQulO,EAASkB,eAGpC,kBAAVzmO,EACFA,EAGFxN,EAAQjC,OAAOw0O,GAAYjwM,EAAI90B,GAAQulO,EAASQ,eAAertG,WAOxEguG,mBAAoB,SAAUlwM,EAAM97B,EAAOm3M,EAAOthN,GAChD,IAAIukC,EAAKniC,KACLH,EAAUsiC,EAAGkwM,SACbl7N,EAAUgrB,EAAGhrB,QACb8Q,EAAU9Q,EAAQ0sB,KAAKuvM,eACvBY,EAAc/rN,EAAQka,EAAGwxM,OACzBZ,EAAY5wM,EAAGyxM,WACfK,EAAchsN,EAAQ8qN,GACtBzR,EAAOpiB,EAAMn3M,GACbk3M,EAAW9nM,EAAQ+nM,MACnB6gB,EAAQgT,GAAakB,GAAe3S,GAAQA,EAAKvB,MACjD1yN,EAAQxN,EAAQjC,OAAOimC,EAAMjmC,IAAkBmiO,EAAQkU,EAAcD,IACrEE,EAAiBnU,EAAQ9gB,EAAS8gB,MAAQ9gB,EAAS+gB,MACnDr/J,EAAYuwK,GAAU,CAACgD,EAAelxO,SAAUkxO,EAAerP,aAAc5lB,EAASj8M,SAAUi8M,EAAS4lB,eAC7G,OAAOlkK,EAAYA,EAAUtzD,EAAOtF,EAAOm3M,GAAS7xM,GAEtDu3N,qBAAsB,SAAU1lB,GAC9B,IACI93M,EAAG+pI,EADH/lC,EAAS,GAGb,IAAKhkG,EAAI,EAAG+pI,EAAO+tE,EAAMl3M,OAAQZ,EAAI+pI,IAAQ/pI,EAC3CgkG,EAAOp9F,KAAKhO,KAAK+zO,mBAAmB70B,EAAM93M,GAAG+I,MAAO/I,EAAG83M,IAGzD,OAAO9zG,GAMT+oI,kBAAmB,SAAUtwM,GAC3B,IAAI1B,EAAKniC,KACLkyJ,EAAU/vH,EAAG0xM,SACbz7G,EAAM65G,GAAc9vM,EAAGqxM,OAAQ,OAAQ3vM,EAAM,OACjD,OAAO1B,EAAGw5K,oBAAoBzpD,EAAQ1vH,MAAQ41F,GAAO85B,EAAQ/lH,SAE/D+iH,iBAAkB,SAAU/+I,EAAOpI,EAAOy2I,GACxC,IAAIr8G,EAAKniC,KACL6jC,EAAO,KAUX,QARc78B,IAAVe,QAAwCf,IAAjBw3I,IACzB36G,EAAO1B,EAAGsxM,YAAY33F,SAAS0C,GAAcz2I,IAGlC,OAAT87B,IACFA,EAAO3oB,GAAMinB,EAAIhyB,IAGN,OAAT0zB,EACF,OAAO1B,EAAGgyM,kBAAkBtwM,IAGhCy0K,gBAAiB,SAAUvwM,GACzB,IAAIm3M,EAAQl/M,KAAKq4M,WACjB,OAAOtwM,GAAS,GAAKA,EAAQm3M,EAAMl3M,OAAShI,KAAKm0O,kBAAkBj1B,EAAMn3M,GAAOoI,OAAS,MAE3Fs2N,iBAAkB,SAAU9wF,GAC1B,IAAIxzG,EAAKniC,KACLkyJ,EAAU/vH,EAAG0xM,SACbz7G,EAAMj2F,EAAGwkM,mBAAmBhxF,GAASuc,EAAQ/lH,OAAS+lH,EAAQ93F,IAC9Dv2B,EAAOouM,GAAc9vM,EAAGqxM,OAAQ,MAAOp7G,EAAK,QAEhD,OAAOj2F,EAAGkwM,SAASrU,QAAQn6L,IAM7BuwM,cAAe,SAAU/mO,GACvB,IAAI80B,EAAKniC,KACLwpO,EAAYrnM,EAAGhrB,QAAQ+nM,MACvBm1B,EAAiBlyM,EAAG+uG,IAAIE,YAAY/jI,GAAOmgB,MAC3CumH,EAAQY,GAAUklF,UAAU13L,EAAGykB,eAAiB4iL,EAAUvH,YAAcuH,EAAUxH,aAClFiE,EAAcvtN,KAAKi6H,IAAIoB,GACvBmyF,EAAcxtN,KAAKk6H,IAAImB,GACvBugG,EAAenD,GAAiB3H,EAAU39B,SAAUJ,EAAcxjM,OAAOupI,iBAC7E,MAAO,CACLv8H,EAAGo/N,EAAiBpO,EAAcqO,EAAepO,EACjDvpO,EAAG03O,EAAiBnO,EAAcoO,EAAerO,IAQrDxzD,cAAe,SAAUplK,GACvB,OAAOrN,KAAKo0O,cAAc/mO,GAAO4H,GAMnCy+N,iBAAkB,SAAUa,GAC1B,IAAIpyM,EAAKniC,KACL4yO,EAAWzwM,EAAGhrB,QAAQ0sB,KACtBuvM,EAAiBR,EAASQ,eAE1Bx1O,EAASw1O,EAAeR,EAASz5N,OAASi6N,EAAel0G,YACzDs1G,EAAeryM,EAAG4xM,mBAAmBQ,EAAa,EAAGvB,GAAoB7wM,EAAI,CAACoyM,GAAcpyM,EAAGyxM,YAAah2O,GAE5G0zD,EAAOnvB,EAAGiyM,cAAcI,GAExBhC,EAAW95N,KAAKG,MAAMspB,EAAGykB,eAAiBzkB,EAAG3U,MAAQ8jC,EAAKr8C,EAAIktB,EAAGhzB,OAASmiD,EAAK30D,GAMnF,OAJIwlC,EAAGhrB,QAAQ4c,QACby+M,IAGKA,EAAW,EAAIA,EAAW,KAIjCiC,GAAcxB,GAClBI,GAAWxJ,UAAY4K,GACvB,IAAIzlF,GAAS,CACX0lF,SAAUnL,GACVj9L,OAAQ4/L,GACR5+L,YAAa0/L,GACb2H,aAAchF,GACd9rM,KAAMwvM,IAEJuB,GAAU,CACZ7uG,SAAU,yBACV7G,YAAa,gBACb7tF,OAAQ,YACRhoC,OAAQ,SACRD,KAAM,KACNM,IAAK,QACLnM,KAAM,KACNiV,MAAO,WACP6tH,QAAS,cACT74G,KAAM,QAGR02M,GAAcC,MAAMthF,SAA2B,oBAAX/hJ,EAAwB,CAC1D+5O,IAAK,SAEL5sN,QAAS,WACP,OAAO2sN,IAET15N,MAAO,SAAU/K,EAAOvS,GAOtB,MANqB,kBAAVuS,GAAwC,kBAAXvS,EACtCuS,EAAQrV,EAAOqV,EAAOvS,GACXuS,aAAiBrV,IAC5BqV,EAAQrV,EAAOqV,IAGVA,EAAMs4G,UAAYt4G,EAAMg3G,UAAY,MAE7CvpH,OAAQ,SAAUimC,EAAMjmC,GACtB,OAAO9C,EAAO+oC,GAAMjmC,OAAOA,IAE7B0H,IAAK,SAAUu+B,EAAMixM,EAAQ37N,GAC3B,OAAOre,EAAO+oC,GAAMv+B,IAAIwvO,EAAQ37N,GAAMguG,WAExC7uG,KAAM,SAAUuS,EAAKD,EAAKzR,GACxB,OAAOre,EAAO+vB,GAAKvS,KAAKxd,EAAO8vB,GAAMzR,IAEvC2rH,QAAS,SAAUjhG,EAAM1qB,EAAM86G,GAG7B,OAFApwF,EAAO/oC,EAAO+oC,GAED,YAAT1qB,EACK0qB,EAAKsjG,WAAWlT,GAAS9M,UAG3BtjF,EAAKihG,QAAQ3rH,GAAMguG,WAE5B8d,MAAO,SAAUphG,EAAM1qB,GACrB,OAAOre,EAAO+oC,GAAMohG,MAAM9rH,GAAMguG,WAUlC62G,QAAS,SAAUn6L,GACjB,OAAO/oC,EAAO+oC,KAEd,IAEJ4nK,EAAczvD,KAAK,SAAU,CAC3Bz5H,QAAS,CACPwyN,OAAQ,CACNC,WAAW,MAKjB,IAAIC,GAAU,CACZ76M,QAAS,SAAU5yB,GACjB,IAAIO,EAAQP,EAAOkvI,KACfgC,EAAQlxI,EAAOkxI,MACfn2D,EAAOm2D,EAAMy3D,eAAepoM,GAE5B8kC,EADU01C,GAAQm2D,EAAM+F,iBAAiB12I,IACrBw6E,EAAKnoD,QAAQs7K,WAAa,GAC9C1tM,EAAS6kC,EAAO7kC,QAAU,EAC9B,OAAQA,EAAgB,SAAU8kC,EAAO1lC,GACvC,OAAOA,EAAIY,GAAU6kC,EAAOzlC,GAAGk1I,OAAS,MADzB,MAInBoc,SAAU,SAAUlxJ,GAClB,IAAIkxJ,EAAWlxJ,EAAOkxJ,SAClBhlJ,EAAIglJ,EAAWA,EAAShlJ,EAAI,KAC5BzW,EAAIy7J,EAAWA,EAASz7J,EAAI,KAEhC,OAAI03I,GAAUjqG,QAAQguH,GACb,SAAU5rH,EAAO1lC,GACtB,OAAOsxJ,EAAStxJ,IAIb,SAAU0lC,GACf,MAAO,CACLp5B,EAAS,OAANA,EAAao5B,EAAMp5B,EAAIA,EAC1BzW,EAAS,OAANA,EAAa6vC,EAAM7vC,EAAIA,MAMlC,SAASi4O,GAAW1lO,EAAIzH,EAAOgrM,GAC7B,IAEInuM,EAFAg9H,EAAQpyH,EAAG4lI,QAAU,GACrBsB,EAAO9U,EAAM8U,KAOjB,QAJa1vI,IAAT0vI,IACFA,IAAS9U,EAAMzqD,kBAGJ,IAATu/D,GAA2B,OAATA,EACpB,OAAO,EAGT,IAAa,IAATA,EACF,MAAO,SAKT,GAFA9xI,EAAS6hB,WAAWiwH,EAAM,IAEtBl/E,SAAS5yD,IAAW8T,KAAKG,MAAMjU,KAAYA,EAK7C,MAJgB,MAAZ8xI,EAAK,IAA0B,MAAZA,EAAK,KAC1B9xI,EAASmD,EAAQnD,KAGfA,IAAWmD,GAASnD,EAAS,GAAKA,GAAUmuM,IAIzCnuM,EAGT,OAAQ8xI,GAEN,IAAK,SACH,MAAO,QAET,IAAK,MACH,MAAO,MAET,IAAK,OACH,MAAO,SAGT,IAAK,SACL,IAAK,QACL,IAAK,MACH,OAAOA,EAGT,QACE,OAAO,GAIb,SAASy+F,GAAsB3tO,GAC7B,IAIIitI,EAJA7S,EAAQp6H,EAAOgI,GAAG4lI,QAAU,GAC5BC,EAAQ7tI,EAAOgI,GAAG8lI,QAAU,GAC5BoB,EAAOlvI,EAAOkvI,KACd9xI,EAAS,KAGb,GAAI4yD,SAASk/E,GACX,OAAO,KAgBT,GAVa,UAATA,EACF9xI,OAA+BoC,IAAtB46H,EAAMwzG,YAA4B//F,EAAMp5G,OAAS2lG,EAAMwzG,YAC9C,QAAT1+F,EACT9xI,OAA4BoC,IAAnB46H,EAAMyzG,SAAyBhgG,EAAMjmI,IAAMwyH,EAAMyzG,cAC7BruO,IAApB46H,EAAM0zG,UACf1wO,EAASg9H,EAAM0zG,UACNjgG,EAAMO,eACfhxI,EAASywI,EAAMO,qBAGF5uI,IAAXpC,GAAmC,OAAXA,EAAiB,CAC3C,QAAiBoC,IAAbpC,EAAO8O,QAAgC1M,IAAbpC,EAAO3H,EACnC,OAAO2H,EAGT,GAAI+vI,GAAUn9E,SAAS5yD,GAErB,MAAO,CACL8O,GAFF+gI,EAAaY,EAAMzuF,gBAEDhiD,EAAS,KACzB3H,EAAGw3I,EAAa,KAAO7vI,GAK7B,OAAO,KAGT,SAAS2wO,GAAwB/tO,GAC/B,IAKIg7B,EAAO43B,EAAKg/E,EAAQhyI,EAAG0lC,EALvBuoG,EAAQ7tI,EAAOgI,GAAG8lI,OAClBn+H,EAAUk+H,EAAMl+H,QAChBnP,EAASqtI,EAAMqD,MAAMtoI,KAAKg7F,OAAOpjG,OACjC0uI,EAAOlvI,EAAOkvI,KACd9xI,EAAS,GAGb,IAAKoD,EACH,OAAO,KAOT,IAJAw6B,EAAQrrB,EAAQ+nM,MAAMpxK,QAAUunG,EAAMxqH,IAAMwqH,EAAMzqH,IAClDwvC,EAAMjjD,EAAQ+nM,MAAMpxK,QAAUunG,EAAMzqH,IAAMyqH,EAAMxqH,IAChDuuH,EAAS/D,EAAM4sE,yBAAyB,EAAGz/K,GAEtCp7B,EAAI,EAAGA,EAAIY,IAAUZ,EACxB0lC,EAAiB,UAAT4pG,GAA6B,QAATA,EAAiBrB,EAAM4sE,yBAAyB76M,EAAY,UAATsvI,EAAmBl0G,EAAQ43B,GAAOi7E,EAAMw7F,gBAAgBzpO,GAEnI+P,EAAQ8hM,UAAU2H,WACpB9zK,EAAMitG,GAAKX,EAAO1lI,EAClBo5B,EAAMktG,GAAKZ,EAAOn8I,EAClB6vC,EAAMinG,MAAQsB,EAAMw5F,cAAcznO,GAAKsR,KAAKouC,GAAK,GAGnDliD,EAAOoJ,KAAK8+B,GAGd,OAAOloC,EAGT,SAAS4wO,GAAgBhuO,GAGvB,OAFYA,EAAOgI,GAAG8lI,QAAU,IAEtB2sE,yBACDszB,GAAwB/tO,GAG1B2tO,GAAsB3tO,GAG/B,SAASiuO,GAAchvC,EAAS1+L,EAAOitO,GACrC,IAGIpwO,EAFA8xI,EADS+vD,EAAQ1+L,GACH2uI,KACdgd,EAAU,CAAC3rJ,GAGf,IAAKitO,EACH,OAAOt+F,EAGT,MAAgB,IAATA,IAA6C,IAA3Bgd,EAAQ/rJ,QAAQ+uI,IAAc,CACrD,IAAKl/E,SAASk/E,GACZ,OAAOA,EAKT,KAFA9xI,EAAS6hM,EAAQ/vD,IAGf,OAAO,EAGT,GAAI9xI,EAAOs0I,QACT,OAAOxC,EAGTgd,EAAQ1lJ,KAAK0oI,GACbA,EAAO9xI,EAAO8xI,KAGhB,OAAO,EAGT,SAASg/F,GAAaluO,GACpB,IAAIkvI,EAAOlvI,EAAOkvI,KACd1iI,EAAO,UAEX,OAAa,IAAT0iI,EACK,MAGJl/E,SAASk/E,KACZ1iI,EAAO,YAGFihO,GAAQjhO,GAAMxM,IAGvB,SAASmuO,GAAW7oM,GAClB,OAAOA,IAAUA,EAAMypB,KAGzB,SAASq/K,GAAS1kG,EAAK2kG,EAAQC,EAAQC,EAAMC,GAC3C,IAAI5uO,EAAG2yI,EAAIC,EAAIx7H,EAEf,GAAKu3N,GAASC,EAAd,CAOA,IAFA9kG,EAAI24D,OAAOgsC,EAAO,GAAGniO,EAAGmiO,EAAO,GAAG54O,GAE7BmK,EAAI,EAAGA,EAAI2uO,IAAQ3uO,EACtButI,GAAU0B,OAAO+zD,OAAOl5D,EAAK2kG,EAAOzuO,EAAI,GAAIyuO,EAAOzuO,IAGrD,QAAwBJ,IAApB8uO,EAAO,GAAG/hG,MAed,IAFA7C,EAAIk5D,OAAO0rC,EAAOE,EAAO,GAAGtiO,EAAGoiO,EAAOE,EAAO,GAAG/4O,GAE3CmK,EAAI4uO,EAAO,EAAG5uO,EAAI,IAAKA,EAC1ButI,GAAU0B,OAAO+zD,OAAOl5D,EAAK4kG,EAAO1uO,GAAI0uO,EAAO1uO,EAAI,IAAI,QAXvD,IAJA2yI,EAAK+7F,EAAO,GAAG/7F,GACfC,EAAK87F,EAAO,GAAG97F,GACfx7H,EAAI9F,KAAKguC,KAAKhuC,KAAK0zB,IAAI0pM,EAAO,GAAGpiO,EAAIqmI,EAAI,GAAKrhI,KAAK0zB,IAAI0pM,EAAO,GAAG74O,EAAI+8I,EAAI,IAEpE5yI,EAAI4uO,EAAO,EAAG5uO,EAAI,IAAKA,EAC1B8pI,EAAI2C,IAAIkG,EAAIC,EAAIx7H,EAAGs3N,EAAO1uO,GAAG2sI,MAAO+hG,EAAO1uO,EAAI,GAAG2sI,OAAO,IAc/D,SAASkiG,GAAO/kG,EAAKrkG,EAAQqpM,EAAQx7F,EAAMhD,EAAOtxF,GAChD,IAMIh/C,EAAG+pI,EAAMppI,EAAOsyI,EAAIlqB,EAAIgmH,EAAIC,EAAIC,EANhCtjC,EAAQlmK,EAAO7kC,OACf8xL,EAAOp/C,EAAK+6D,SACZogC,EAAS,GACTC,EAAS,GACTC,EAAO,EACPC,EAAO,EAIX,IAFA9kG,EAAIkF,YAEChvI,EAAI,EAAG+pI,EAAO4hE,EAAO3rM,EAAI+pI,IAAQ/pI,EAGpC+oH,EAAK+lH,EADL77F,EAAKxtG,EADL9kC,EAAQX,EAAI2rM,GACOz2D,MACHv0I,EAAO2yI,GACvBy7F,EAAKR,GAAWt7F,GAChB+7F,EAAKT,GAAWxlH,GAEZ/pE,QAAuBp/C,IAAfqvO,GAA4BF,IAEtChlG,EAAO4hE,GADPsjC,EAAajvO,EAAI,IAIf+uO,GAAMC,GACRL,EAAOF,EAAO7nO,KAAKqsI,GACnB27F,EAAOF,EAAO9nO,KAAKmiH,IACV4lH,GAAQC,IACZl8C,GAMCq8C,GACFN,EAAO7nO,KAAKqsI,GAGV+7F,GACFN,EAAO9nO,KAAKmiH,KAVdylH,GAAS1kG,EAAK2kG,EAAQC,EAAQC,EAAMC,GACpCD,EAAOC,EAAO,EACdH,EAAS,GACTC,EAAS,KAafF,GAAS1kG,EAAK2kG,EAAQC,EAAQC,EAAMC,GACpC9kG,EAAIsF,YACJtF,EAAIuF,UAAYiB,EAChBxG,EAAIwF,OAGN,IAAI4/F,GAAgB,CAClBlhM,GAAI,SACJmhM,oBAAqB,SAAU79F,EAAOvhI,GACpC,IAGIorE,EAAMn7E,EAAGoI,EAAIhI,EAHburM,GAASr6D,EAAMtoI,KAAK0rI,UAAY,IAAI9zI,OACpCgtO,EAAY79N,EAAQ69N,UACpBvuC,EAAU,GAGd,IAAKr/L,EAAI,EAAGA,EAAI2rM,IAAS3rM,EAGvBI,EAAS,MADTgI,GADA+yE,EAAOm2D,EAAMy3D,eAAe/oM,IAClBgzB,UAGA5qB,EAAG4lI,QAAU5lI,aAAcujE,GAASglI,OAC5CvwM,EAAS,CACP0xI,QAASR,EAAM+F,iBAAiBr3I,GAChCsvI,KAAMw+F,GAAW1lO,EAAIpI,EAAG2rM,GACxBr6D,MAAOA,EACPlpI,GAAIA,IAIR+yE,EAAKi0J,QAAUhvO,EACfi/L,EAAQz4L,KAAKxG,GAGf,IAAKJ,EAAI,EAAGA,EAAI2rM,IAAS3rM,GACvBI,EAASi/L,EAAQr/L,MAMjBI,EAAOkvI,KAAO++F,GAAchvC,EAASr/L,EAAG4tO,GACxCxtO,EAAOkxJ,SAAW88E,GAAgBhuO,GAClCA,EAAO0uO,OAASR,GAAaluO,KAGjCivO,mBAAoB,SAAU/9F,GAC5B,IAGIn2D,EAAMn7E,EAAGoI,EAAIkrI,EAAM7tG,EAAQqpM,EAAQx+F,EAHnCyiE,EAAWzhE,EAAMynE,gCAEjBjvE,EAAMwH,EAAMxH,IAGhB,IAAK9pI,EAAI+yM,EAASnyM,OAAS,EAAGZ,GAAK,IAAKA,GACtCm7E,EAAO43H,EAAS/yM,GAAGovO,UAELj0J,EAAK22D,UAKnBwB,GADAlrI,EAAK+yE,EAAK/yE,IACA8sI,MACVzvG,EAASr9B,EAAGkmM,WAAa,GACzBwgC,EAAS3zJ,EAAK2zJ,OACdx+F,EAAQgD,EAAKvjE,iBAAmBs0H,EAAcxjM,OAAOqjM,aAEjD4qC,GAAUx+F,GAAS7qG,EAAO7kC,SAC5B2sI,GAAU0B,OAAOm0D,SAASt5D,EAAKwH,EAAMC,WACrCs9F,GAAO/kG,EAAKrkG,EAAQqpM,EAAQx7F,EAAMhD,EAAOloI,EAAG+tJ,OAC5C5oB,GAAU0B,OAAOo0D,WAAWv5D,OAKhCwlG,GAAiB/hG,GAAU5uF,IAAIwmJ,cAC/BoqC,GAAShiG,GAAU0b,KACnBumF,GAAmBjiG,GAAUpD,eAwFjC,SAASslG,GAAYC,EAAWjrC,GAC9B,OAAOirC,EAAUC,eAAiBD,EAAUE,SAAWnrC,EAAWA,EAAWirC,EAAUE,SAvFzFvrC,EAAczvD,KAAK,SAAU,CAC3BogE,OAAQ,CACNjvL,SAAS,EACT3K,SAAU,MACVkwH,MAAO,SACP0xE,WAAW,EACXt2K,SAAS,EACTkjG,OAAQ,IAERxkF,QAAS,SAAU9xC,EAAG4hM,GACpB,IAAIv0M,EAAQu0M,EAAW99D,aACnBy4F,EAAKj3O,KAAK04I,MACVn2D,EAAO00J,EAAG9mC,eAAepoM,GAE7Bw6E,EAAKrJ,OAAyB,OAAhBqJ,EAAKrJ,QAAmB+9J,EAAG7mO,KAAK0rI,SAAS/zI,GAAOmxE,OAAS,KAEvE+9J,EAAG/lL,UAELyjK,QAAS,KACTuiB,QAAS,KACT9rI,OAAQ,CACN4rI,SAAU,GACVliG,QAAS,GAYTunE,eAAgB,SAAU3jE,GACxB,IAAIoD,EAAWpD,EAAMtoI,KAAK0rI,SACtB3kI,EAAUuhI,EAAMvhI,QAAQilM,QAAU,GAClC26B,EAAgB5/N,EAAQi0F,QAAUj0F,EAAQi0F,OAAO2rI,cACrD,OAAOr+F,EAAMu+E,yBAAyBjuM,KAAI,SAAUu5D,GAClD,IAAI5xE,EAAQ4xE,EAAKiwB,WAAWg/F,SAASulC,EAAgB,OAAI/vO,GACzD,MAAO,CACL+0C,KAAM+/F,EAASv5D,EAAKx6E,OAAOsF,MAC3BopI,UAAW9lI,EAAMwmE,gBACjB+B,QAASw/D,EAAM+F,iBAAiBl8D,EAAKx6E,OACrC+tM,QAASnlM,EAAMukM,eACfiiC,SAAUxmO,EAAMwkM,WAChBa,eAAgBrlM,EAAMykM,iBACtBv+D,SAAUlmI,EAAM0kM,gBAChBz+D,UAAWjmI,EAAMkkI,YACjB8B,YAAahmI,EAAMwlI,YACnBogE,WAAY5lM,EAAM4lM,WAClBx9D,SAAUpoI,EAAMooI,SAEhByF,aAAcj8D,EAAKx6E,SAEpB/H,SAITk8M,eAAgB,SAAUxjE,GACxB,IAEItxI,EAAG+pI,EAAMgrE,EAFT3pD,EAAOp7I,SAASwN,cAAc,MAC9Bk3H,EAAWpD,EAAMtoI,KAAK0rI,SAI1B,IAFA0W,EAAK/uJ,aAAa,QAASi1I,EAAMtjG,GAAK,WAEjChuC,EAAI,EAAG+pI,EAAO2K,EAAS9zI,OAAQZ,EAAI+pI,EAAM/pI,KAC5C+0M,EAAW3pD,EAAK5sI,YAAYxO,SAASwN,cAAc,QAC3BgB,YAAYxO,SAASwN,cAAc,SAC9CjU,MAAMwmE,gBAAkB2kE,EAAS10I,GAAG+vE,gBAE7C2kE,EAAS10I,GAAGiG,OACd8uM,EAASv2L,YAAYxO,SAAS2zE,eAAe+wD,EAAS10I,GAAGiG,QAI7D,OAAOmlJ,EAAKh1E,aAmBhB,IAAI45J,GAAStpC,GAAa3mK,OAAO,CAC/BljC,WAAY,SAAUqZ,GACpB,IAAI6kB,EAAKniC,KACT20I,GAAUxtG,OAAOhF,EAAI7kB,GAErB6kB,EAAGk1M,eAAiB,GAKpBl1M,EAAGm1M,aAAe,KAElBn1M,EAAGo1M,cAAe,GAKpBn5F,aAAcu4F,GACdzlL,OAAQ,SAAUgzG,EAAUu1B,EAAWmpC,GACrC,IAAIzgM,EAAKniC,KAqBT,OAnBAmiC,EAAGi8G,eAEHj8G,EAAG+hI,SAAWA,EACd/hI,EAAGs3J,UAAYA,EACft3J,EAAGygM,QAAUA,EAEbzgM,EAAGkhM,sBACHlhM,EAAGmhM,gBACHnhM,EAAGohM,qBAEHphM,EAAGq1M,oBACHr1M,EAAGs1M,cACHt1M,EAAGu1M,mBAEHv1M,EAAG+hM,YACH/hM,EAAGgiM,MACHhiM,EAAGiiM,WAEHjiM,EAAGy8G,cACIz8G,EAAGo/K,SAEZ3iE,YAAa+3F,GAEbtT,oBAAqBsT,GACrBrT,cAAe,WACb,IAAInhM,EAAKniC,KAELmiC,EAAGykB,gBAELzkB,EAAG3U,MAAQ2U,EAAG+hI,SACd/hI,EAAGruB,KAAO,EACVquB,EAAG5F,MAAQ4F,EAAG3U,QAEd2U,EAAGhzB,OAASgzB,EAAGs3J,UAEft3J,EAAG/yB,IAAM,EACT+yB,EAAGlG,OAASkG,EAAGhzB,QAIjBgzB,EAAG0xB,YAAc,EACjB1xB,EAAGo6L,WAAa,EAChBp6L,EAAG2xB,aAAe,EAClB3xB,EAAGq6L,cAAgB,EAEnBr6L,EAAGo/K,QAAU,CACX/zL,MAAO,EACPre,OAAQ,IAGZo0N,mBAAoBoT,GAEpBa,kBAAmBb,GACnBc,YAAa,WACX,IAAIt1M,EAAKniC,KACL82O,EAAY30M,EAAGhrB,QAAQi0F,QAAU,GACjCusI,EAAchjG,GAAU3xI,SAAS8zO,EAAUz6B,eAAgB,CAACl6K,EAAGu2G,OAAQv2G,IAAO,GAE9E20M,EAAU/9M,SACZ4+M,EAAcA,EAAY5+M,QAAO,SAAUkL,GACzC,OAAO6yM,EAAU/9M,OAAOkL,EAAM9B,EAAGu2G,MAAMtoI,UAIvC+xB,EAAGhrB,QAAQ22B,SACb6pM,EAAY7pM,UAGd3L,EAAGw1M,YAAcA,GAEnBD,iBAAkBf,GAElBzS,UAAWyS,GACXxS,IAAK,WACH,IAAIhiM,EAAKniC,KACLkZ,EAAOipB,EAAGhrB,QACV2/N,EAAY59N,EAAKkyF,OACjBj+E,EAAUjU,EAAKiU,QACf+jH,EAAM/uG,EAAG+uG,IAET0mG,EAAYjjG,GAAUx9H,QAAQw0L,WAAWmrC,GAEzCjrC,EAAW+rC,EAAUtmL,KAErBumL,EAAW11M,EAAGk1M,eAAiB,GAC/B91B,EAAUp/K,EAAGo/K,QACb36J,EAAezkB,EAAGykB,eAYtB,GAVIA,GACF26J,EAAQ/zL,MAAQ2U,EAAG+hI,SAEnBq9C,EAAQpyM,OAASge,EAAU,GAAK,IAEhCo0L,EAAQ/zL,MAAQL,EAAU,GAAK,EAC/Bo0L,EAAQpyM,OAASgzB,EAAGs3J,WAIjBtsK,EAAL,CAOA,GAFA+jH,EAAIJ,KAAO8mG,EAAUpuO,OAEjBo9C,EAAc,CAGhB,IAAIkxL,EAAa31M,EAAG21M,WAAa,CAAC,GAC9BC,EAAc,EAClB7mG,EAAIuG,UAAY,OAChBvG,EAAI6G,aAAe,SACnBpD,GAAU74F,KAAK3Z,EAAGw1M,aAAa,SAAUr7B,EAAYl1M,GACnD,IACIomB,EADWqpN,GAAYC,EAAWjrC,GACfA,EAAW,EAAI36D,EAAIE,YAAYkrE,EAAWvgK,MAAMvuB,OAE7D,IAANpmB,GAAW0wO,EAAWA,EAAW9vO,OAAS,GAAKwlB,EAAQ,EAAIspN,EAAUhiG,QAAUysE,EAAQ/zL,SACzFuqN,GAAelsC,EAAWirC,EAAUhiG,QACpCgjG,EAAWA,EAAW9vO,QAAUZ,EAAI,EAAI,EAAI,IAAM,GAIpDywO,EAASzwO,GAAK,CACZ0M,KAAM,EACN1E,IAAK,EACLoe,MAAOA,EACPre,OAAQ08L,GAEVisC,EAAWA,EAAW9vO,OAAS,IAAMwlB,EAAQspN,EAAUhiG,WAEzDysE,EAAQpyM,QAAU4oO,MACb,CACL,IAAIC,EAAWlB,EAAUhiG,QACrBmjG,EAAe91M,EAAG81M,aAAe,GACjCC,EAAgB/1M,EAAG+1M,cAAgB,GACnCC,EAAarB,EAAUhiG,QACvBsjG,EAAkB,EAClBC,EAAmB,EACvB1jG,GAAU74F,KAAK3Z,EAAGw1M,aAAa,SAAUr7B,EAAYl1M,GACnD,IACIwlM,EADWiqC,GAAYC,EAAWjrC,GACXA,EAAW,EAAI36D,EAAIE,YAAYkrE,EAAWvgK,MAAMvuB,MAEvEpmB,EAAI,GAAKixO,EAAmBxsC,EAAW,EAAImsC,EAAWz2B,EAAQpyM,SAChEgpO,GAAcC,EAAkBtB,EAAUhiG,QAC1CmjG,EAAajqO,KAAKoqO,GAElBF,EAAclqO,KAAKqqO,GACnBD,EAAkB,EAClBC,EAAmB,GAIrBD,EAAkB1/N,KAAKmS,IAAIutN,EAAiBxrC,GAC5CyrC,GAAoBxsC,EAAWmsC,EAE/BH,EAASzwO,GAAK,CACZ0M,KAAM,EACN1E,IAAK,EACLoe,MAAOo/K,EACPz9L,OAAQ08L,MAGZssC,GAAcC,EACdH,EAAajqO,KAAKoqO,GAClBF,EAAclqO,KAAKqqO,GACnB92B,EAAQ/zL,OAAS2qN,EAGnBh2M,EAAG3U,MAAQ+zL,EAAQ/zL,MACnB2U,EAAGhzB,OAASoyM,EAAQpyM,YAtElBgzB,EAAG3U,MAAQ+zL,EAAQ/zL,MAAQ2U,EAAGhzB,OAASoyM,EAAQpyM,OAAS,GAwE5Di1N,SAAUuS,GAEV/vL,aAAc,WACZ,MAAiC,QAA1B5mD,KAAKmX,QAAQqL,UAAgD,WAA1BxiB,KAAKmX,QAAQqL,UAGzD22H,KAAM,WACJ,IAAIh3G,EAAKniC,KACLkZ,EAAOipB,EAAGhrB,QACV2/N,EAAY59N,EAAKkyF,OACjBwgG,EAAiBH,EAAcxjM,OAC/BqjM,EAAeM,EAAeN,aAC9BgtC,EAAc1sC,EAAe74H,SAAS6sE,KACtC24F,EAAep2M,EAAGhzB,OAClB+oO,EAAgB/1M,EAAG+1M,cACnBM,EAAcr2M,EAAG3U,MACjBsqN,EAAa31M,EAAG21M,WAEpB,GAAK5+N,EAAKiU,QAAV,CAIA,IAOIgsC,EAPAw5J,EAAY+jB,GAAex9N,EAAK6sC,IAAK5jB,EAAGruB,KAAMquB,EAAGo/K,QAAQ/zL,OACzD0jH,EAAM/uG,EAAG+uG,IACTsvF,EAAYoW,GAAiBE,EAAUtW,UAAW50B,EAAenzD,kBAEjEm/F,EAAYjjG,GAAUx9H,QAAQw0L,WAAWmrC,GAEzCjrC,EAAW+rC,EAAUtmL,KAGzB4/E,EAAIuG,UAAYk7E,EAAUl7E,UAAU,QACpCvG,EAAI6G,aAAe,SACnB7G,EAAI0F,UAAY,GAChB1F,EAAIyF,YAAc6pF,EAElBtvF,EAAIuF,UAAY+pF,EAEhBtvF,EAAIJ,KAAO8mG,EAAUpuO,OACrB,IAAIwtO,EAAWH,GAAYC,EAAWjrC,GAClCgsC,EAAW11M,EAAGk1M,eAEdoB,EAAgB,SAAU/kO,EAAGzW,EAAGq/M,GAClC,KAAInkM,MAAM6+N,IAAaA,GAAY,GAAnC,CAKA9lG,EAAImI,OACJ,IAAIzC,EAAYggG,GAAiBt6B,EAAW1lE,UAAW0hG,EAAYzjG,aAanE,GAZA3D,EAAIuF,UAAYmgG,GAAiBt6B,EAAW7lE,UAAW60D,GACvDp6D,EAAI4kE,QAAU8gC,GAAiBt6B,EAAWxG,QAASwiC,EAAYpjC,gBAC/DhkE,EAAI8kE,eAAiB4gC,GAAiBt6B,EAAWtG,eAAgBsiC,EAAYljC,kBAC7ElkE,EAAI2F,SAAW+/F,GAAiBt6B,EAAWzlE,SAAUyhG,EAAYjjC,iBACjEnkE,EAAI0F,UAAYA,EAChB1F,EAAIyF,YAAcigG,GAAiBt6B,EAAW3lE,YAAa20D,GAEvDp6D,EAAI6kE,aAEN7kE,EAAI6kE,YAAY6gC,GAAiBt6B,EAAW66B,SAAUmB,EAAYnjC,aAGhE2hC,GAAaA,EAAUC,cAAe,CAGxC,IAAI1iG,EAAS2iG,EAAWt+N,KAAKggO,MAAQ,EACjCt6B,EAAUuU,EAAUjmB,MAAMh5L,EAAGsjO,EAAW,GACxC34B,EAAUphN,EAAI4uM,EAAW,EAE7Bl3D,GAAU0B,OAAOyzD,UAAU54D,EAAKorE,EAAW/F,WAAYliE,EAAQ+pE,EAASC,EAAS/B,EAAWvjE,eAG5F7H,EAAI4mE,SAAS6a,EAAUhmB,WAAWj5L,EAAGsjO,GAAW/5O,EAAG+5O,EAAUnrC,GAE3C,IAAdj1D,GACF1F,EAAIkiF,WAAWT,EAAUhmB,WAAWj5L,EAAGsjO,GAAW/5O,EAAG+5O,EAAUnrC,GAInE36D,EAAIsI,YAGFjC,EAAW,SAAU7jI,EAAGzW,EAAGq/M,EAAYkhB,GACzC,IAAImb,EAAe9sC,EAAW,EAC1B+sC,EAAQjmB,EAAUjmB,MAAMh5L,EAAGsjO,EAAW2B,GACtCE,EAAU57O,EAAI07O,EAClBznG,EAAIqG,SAAS+kE,EAAWvgK,KAAM68L,EAAOC,GAEjCv8B,EAAWpjI,SAEbg4D,EAAIkF,YACJlF,EAAI0F,UAAY,EAChB1F,EAAI24D,OAAO+uC,EAAOC,GAClB3nG,EAAIk5D,OAAOuoB,EAAUjmB,MAAMksC,EAAOpb,GAAYqb,GAC9C3nG,EAAI4F,WAIJgiG,EAAkB,SAAUC,EAAWl3L,GACzC,OAAQ3oC,EAAKw5H,OACX,IAAK,QACH,OAAOokG,EAAUhiG,QAEnB,IAAK,MACH,OAAOikG,EAAYl3L,EAErB,QAEE,OAAQk3L,EAAYl3L,EAAYi1L,EAAUhiG,SAAW,IAKvDluF,EAAezkB,EAAGykB,eAGpBuS,EADEvS,EACO,CACPlzC,EAAGyuB,EAAGruB,KAAOglO,EAAgBN,EAAaV,EAAW,IACrD76O,EAAGklC,EAAG/yB,IAAM0nO,EAAUhiG,QACtB8K,KAAM,GAGC,CACPlsI,EAAGyuB,EAAGruB,KAAOgjO,EAAUhiG,QACvB73I,EAAGklC,EAAG/yB,IAAM0pO,EAAgBP,EAAcL,EAAc,IACxDt4F,KAAM,GAIVjL,GAAU5uF,IAAIknJ,sBAAsB9qK,EAAG+uG,IAAKh4H,EAAKm1M,eACjD,IAAI2qB,EAAantC,EAAWirC,EAAUhiG,QACtCH,GAAU74F,KAAK3Z,EAAGw1M,aAAa,SAAUr7B,EAAYl1M,GACnD,IAAIo2N,EAAYtsF,EAAIE,YAAYkrE,EAAWvgK,MAAMvuB,MAC7CA,EAAQwpN,EAAWnrC,EAAW,EAAI2xB,EAClC9pN,EAAIylD,EAAOzlD,EACXzW,EAAIk8D,EAAOl8D,EACf01N,EAAUlmB,SAAStqK,EAAGo/K,QAAQ/zL,OAI1Bo5B,EACEx/C,EAAI,GAAKsM,EAAI8Z,EAAQspN,EAAUhiG,QAAU3yG,EAAGruB,KAAOquB,EAAGo/K,QAAQ/zL,QAChEvwB,EAAIk8D,EAAOl8D,GAAK+7O,EAChB7/K,EAAOymF,OACPlsI,EAAIylD,EAAOzlD,EAAIyuB,EAAGruB,KAAOglO,EAAgBN,EAAaV,EAAW3+K,EAAOymF,QAEjEx4I,EAAI,GAAKnK,EAAI+7O,EAAa72M,EAAG/yB,IAAM+yB,EAAGo/K,QAAQpyM,SACvDuE,EAAIylD,EAAOzlD,EAAIA,EAAIyuB,EAAG81M,aAAa9+K,EAAOymF,MAAQk3F,EAAUhiG,QAC5D37E,EAAOymF,OACP3iJ,EAAIk8D,EAAOl8D,EAAIklC,EAAG/yB,IAAM0pO,EAAgBP,EAAcL,EAAc/+K,EAAOymF,QAG7E,IAAIq5F,EAAQtmB,EAAUj/M,EAAEA,GACxB+kO,EAAcQ,EAAOh8O,EAAGq/M,GACxBu7B,EAASzwO,GAAG0M,KAAO6+M,EAAUhmB,WAAWssC,EAAOpB,EAASzwO,GAAGomB,OAC3DqqN,EAASzwO,GAAGgI,IAAMnS,EAElBs6I,EAAS0hG,EAAOh8O,EAAGq/M,EAAYkhB,GAE3B52K,EACFuS,EAAOzlD,GAAK8Z,EAAQspN,EAAUhiG,QAE9B37E,EAAOl8D,GAAK+7O,KAGhBrkG,GAAU5uF,IAAIsnJ,qBAAqBlrK,EAAG+uG,IAAKh4H,EAAKm1M,iBAMlD6qB,iBAAkB,SAAUxlO,EAAGzW,GAC7B,IACImK,EAAG+xO,EAAQC,EADXj3M,EAAKniC,KAGT,GAAI0T,GAAKyuB,EAAGruB,MAAQJ,GAAKyuB,EAAG5F,OAASt/B,GAAKklC,EAAG/yB,KAAOnS,GAAKklC,EAAGlG,OAI1D,IAFAm9M,EAAKj3M,EAAGk1M,eAEHjwO,EAAI,EAAGA,EAAIgyO,EAAGpxO,SAAUZ,EAG3B,GAAIsM,IAFJylO,EAASC,EAAGhyO,IAEI0M,MAAQJ,GAAKylO,EAAOrlO,KAAOqlO,EAAO3rN,OAASvwB,GAAKk8O,EAAO/pO,KAAOnS,GAAKk8O,EAAO/pO,IAAM+pO,EAAOhqO,OAErG,OAAOgzB,EAAGw1M,YAAYvwO,GAK5B,OAAO,MAQTwyC,YAAa,SAAUl/B,GACrB,IAGI2+N,EAHAl3M,EAAKniC,KACLkZ,EAAOipB,EAAGhrB,QACVnD,EAAkB,YAAX0G,EAAE1G,KAAqB,QAAU0G,EAAE1G,KAG9C,GAAa,cAATA,GACF,IAAKkF,EAAKy7M,UAAYz7M,EAAKg+N,QACzB,WAEG,IAAa,UAATljO,EAKT,OAJA,IAAKkF,EAAKszC,QACR,OAOJ6sL,EAAcl3M,EAAG+2M,iBAAiBx+N,EAAEhH,EAAGgH,EAAEzd,GAE5B,UAAT+W,EACEqlO,GAAengO,EAAKszC,SAEtBtzC,EAAKszC,QAAQzsD,KAAKoiC,EAAIznB,EAAEytD,OAAQkxK,IAG9BngO,EAAKg+N,SAAWmC,IAAgBl3M,EAAGm1M,eACjCn1M,EAAGm1M,cACLp+N,EAAKg+N,QAAQn3O,KAAKoiC,EAAIznB,EAAEytD,OAAQhmC,EAAGm1M,cAGrCn1M,EAAGm1M,aAAe+B,GAGhBngO,EAAKy7M,SAAW0kB,GAElBngO,EAAKy7M,QAAQ50N,KAAKoiC,EAAIznB,EAAEytD,OAAQkxK,OAMxC,SAASC,GAAyB5gG,EAAO6gG,GACvC,IAAIn9B,EAAS,IAAIg7B,GAAO,CACtBlmG,IAAKwH,EAAMxH,IACX/5H,QAASoiO,EACT7gG,MAAOA,IAETmtE,GAAajpE,UAAUlE,EAAO0jE,EAAQm9B,GACtC1zB,GAAaC,OAAOptE,EAAO0jE,GAC3B1jE,EAAM0jE,OAASA,EAGjB,IAAIo9B,GAAgB,CAClBpkM,GAAI,SASJqkM,SAAUrC,GACVl5F,WAAY,SAAUxF,GACpB,IAAI6gG,EAAa7gG,EAAMvhI,QAAQilM,OAE3Bm9B,GACFD,GAAyB5gG,EAAO6gG,IAGpCn7F,aAAc,SAAU1F,GACtB,IAAI6gG,EAAa7gG,EAAMvhI,QAAQilM,OAC3BA,EAAS1jE,EAAM0jE,OAEfm9B,GACF5kG,GAAU6xD,QAAQ+yC,EAAY9tC,EAAcxjM,OAAOm0M,QAE/CA,GACFyJ,GAAajpE,UAAUlE,EAAO0jE,EAAQm9B,GACtCn9B,EAAOjlM,QAAUoiO,GAEjBD,GAAyB5gG,EAAO6gG,IAEzBn9B,IACTyJ,GAAaG,UAAUttE,EAAO0jE,UACvB1jE,EAAM0jE,SAGjBr9D,WAAY,SAAUrG,EAAOh+H,GAC3B,IAAI0hM,EAAS1jE,EAAM0jE,OAEfA,GACFA,EAAOxiK,YAAYl/B,KAIrBg/N,GAAS/kG,GAAU0b,KAEvBo7C,EAAczvD,KAAK,SAAU,CAC3B1lH,MAAO,CACLnJ,SAAS,EACT6pD,UAAW,OACXotI,WAAW,EACXtvE,QAAS,GACTtyH,SAAU,MACVu5B,KAAM,GACNi1F,OAAQ,OASZ,IAAI2oG,GAAQ7rC,GAAa3mK,OAAO,CAC9BljC,WAAY,SAAUqZ,GACpB,IAAI6kB,EAAKniC,KACT20I,GAAUxtG,OAAOhF,EAAI7kB,GAErB6kB,EAAGk1M,eAAiB,IAGtBj5F,aAAcs7F,GACdxoL,OAAQ,SAAUgzG,EAAUu1B,EAAWmpC,GACrC,IAAIzgM,EAAKniC,KAqBT,OAnBAmiC,EAAGi8G,eAEHj8G,EAAG+hI,SAAWA,EACd/hI,EAAGs3J,UAAYA,EACft3J,EAAGygM,QAAUA,EAEbzgM,EAAGkhM,sBACHlhM,EAAGmhM,gBACHnhM,EAAGohM,qBAEHphM,EAAGq1M,oBACHr1M,EAAGs1M,cACHt1M,EAAGu1M,mBAEHv1M,EAAG+hM,YACH/hM,EAAGgiM,MACHhiM,EAAGiiM,WAEHjiM,EAAGy8G,cACIz8G,EAAGo/K,SAEZ3iE,YAAa86F,GAEbrW,oBAAqBqW,GACrBpW,cAAe,WACb,IAAInhM,EAAKniC,KAELmiC,EAAGykB,gBAELzkB,EAAG3U,MAAQ2U,EAAG+hI,SACd/hI,EAAGruB,KAAO,EACVquB,EAAG5F,MAAQ4F,EAAG3U,QAEd2U,EAAGhzB,OAASgzB,EAAGs3J,UAEft3J,EAAG/yB,IAAM,EACT+yB,EAAGlG,OAASkG,EAAGhzB,QAIjBgzB,EAAG0xB,YAAc,EACjB1xB,EAAGo6L,WAAa,EAChBp6L,EAAG2xB,aAAe,EAClB3xB,EAAGq6L,cAAgB,EAEnBr6L,EAAGo/K,QAAU,CACX/zL,MAAO,EACPre,OAAQ,IAGZo0N,mBAAoBmW,GAEpBlC,kBAAmBkC,GACnBjC,YAAaiC,GACbhC,iBAAkBgC,GAElBxV,UAAWwV,GACXvV,IAAK,WACH,IAIelzF,EAJX9uG,EAAKniC,KACLkZ,EAAOipB,EAAGhrB,QACVoqM,EAAUp/K,EAAGo/K,QAAU,GACvB36J,EAAezkB,EAAGykB,eAGjB1tC,EAAKiU,SAMV8jH,GADY0D,GAAUjqG,QAAQxxB,EAAK6iC,MAAQ7iC,EAAK6iC,KAAK/zC,OAAS,GACvC2sI,GAAUx9H,QAAQw0L,WAAWzyL,GAAMm4H,WAA4B,EAAfn4H,EAAK47H,QAC5E3yG,EAAG3U,MAAQ+zL,EAAQ/zL,MAAQo5B,EAAezkB,EAAG+hI,SAAWjzB,EACxD9uG,EAAGhzB,OAASoyM,EAAQpyM,OAASy3C,EAAeqqF,EAAW9uG,EAAGs3J,WAPxDt3J,EAAG3U,MAAQ+zL,EAAQ/zL,MAAQ2U,EAAGhzB,OAASoyM,EAAQpyM,OAAS,GAS5Di1N,SAAUsV,GAEV9yL,aAAc,WACZ,IAAIwxE,EAAMp4H,KAAKmX,QAAQqL,SACvB,MAAe,QAAR41G,GAAyB,WAARA,GAG1B+gB,KAAM,WACJ,IAAIh3G,EAAKniC,KACLkxI,EAAM/uG,EAAG+uG,IACTh4H,EAAOipB,EAAGhrB,QAEd,GAAK+B,EAAKiU,QAAV,CAIA,IASI+2I,EAAU01E,EAAQC,EATlBC,EAAWnlG,GAAUx9H,QAAQw0L,WAAWzyL,GAExCm4H,EAAayoG,EAASzoG,WACtBt9G,EAASs9G,EAAa,EAAIn4H,EAAK47H,QAC/BiE,EAAW,EACX3pI,EAAM+yB,EAAG/yB,IACT0E,EAAOquB,EAAGruB,KACVmoB,EAASkG,EAAGlG,OACZM,EAAQ4F,EAAG5F,MAEf20G,EAAIuF,UAAY9B,GAAUpD,eAAer4H,EAAKsnN,UAAW/0B,EAAcxjM,OAAOwwI,kBAE9EvH,EAAIJ,KAAOgpG,EAAStwO,OAEhB24B,EAAGykB,gBACLgzL,EAAS9lO,GAAQyoB,EAAQzoB,GAAQ,EAEjC+lO,EAASzqO,EAAM2kB,EACfmwI,EAAW3nI,EAAQzoB,IAEnB8lO,EAA2B,SAAlB1gO,EAAKsJ,SAAsB1O,EAAOigB,EAASwI,EAAQxI,EAC5D8lN,EAASzqO,GAAO6sB,EAAS7sB,GAAO,EAChC80J,EAAWjoI,EAAS7sB,EACpB2pI,EAAWrgI,KAAKouC,IAAwB,SAAlB5tC,EAAKsJ,UAAuB,GAAM,KAG1D0uH,EAAImI,OACJnI,EAAI1/H,UAAUooO,EAAQC,GACtB3oG,EAAIqI,OAAOR,GACX7H,EAAIuG,UAAY,SAChBvG,EAAI6G,aAAe,SACnB,IAAIh8F,EAAO7iC,EAAK6iC,KAEhB,GAAI44F,GAAUjqG,QAAQqR,GAGpB,IAFA,IAAI9+C,EAAI,EAECmK,EAAI,EAAGA,EAAI20C,EAAK/zC,SAAUZ,EACjC8pI,EAAIqG,SAASx7F,EAAK30C,GAAI,EAAGnK,EAAGinK,GAC5BjnK,GAAKo0I,OAGPH,EAAIqG,SAASx7F,EAAM,EAAG,EAAGmoH,GAG3BhzB,EAAIsI,cAIR,SAASugG,GAA6BrhG,EAAOshG,GAC3C,IAAI1jN,EAAQ,IAAIqjN,GAAM,CACpBzoG,IAAKwH,EAAMxH,IACX/5H,QAAS6iO,EACTthG,MAAOA,IAETmtE,GAAajpE,UAAUlE,EAAOpiH,EAAO0jN,GACrCn0B,GAAaC,OAAOptE,EAAOpiH,GAC3BoiH,EAAMuhG,WAAa3jN,EAGrB,IAqCI/T,GAAU,GACVwyN,GAASuB,GACTl6B,GAASo9B,GACTljN,GAxCe,CACjB8e,GAAI,QASJqkM,SAAUE,GACVz7F,WAAY,SAAUxF,GACpB,IAAIshG,EAAYthG,EAAMvhI,QAAQmf,MAE1B0jN,GACFD,GAA6BrhG,EAAOshG,IAGxC57F,aAAc,SAAU1F,GACtB,IAAIshG,EAAYthG,EAAMvhI,QAAQmf,MAC1B2jN,EAAavhG,EAAMuhG,WAEnBD,GACFrlG,GAAU6xD,QAAQwzC,EAAWvuC,EAAcxjM,OAAOquB,OAE9C2jN,GACFp0B,GAAajpE,UAAUlE,EAAOuhG,EAAYD,GAC1CC,EAAW9iO,QAAU6iO,GAErBD,GAA6BrhG,EAAOshG,IAE7BC,IACTp0B,GAAaG,UAAUttE,EAAOuhG,UACvBvhG,EAAMuhG,cAwCnB,IAAK,IAAIv7N,MAhCT6D,GAAQwyN,OAASA,GACjBxyN,GAAQ65L,OAASA,GACjB75L,GAAQ+T,MAAQA,GAKhB0hM,GAAgB1nF,QAAUqE,GAE1BwjF,KACAH,GAAgBkiB,UAAYhc,GAC5BlG,GAAgBmiB,UAAY/rC,GAC5B4pB,GAAgBj6E,iBAAmBwwD,GACnCypB,GAAgB3lH,YAAcA,GAC9B2lH,GAAgB5oB,kBAAoBiE,GACpC2kB,GAAgBl5M,SAAW2sL,EAC3BusB,GAAgBj2J,QAAU+rI,GAC1BkqB,GAAgBjlJ,SAAWA,GAC3BilJ,GAAgBoiB,YAAc52B,GAC9BwU,GAAgB7T,QAAU0B,GAC1BmS,GAAgBj4K,SAAWA,GAC3Bi4K,GAAgBz1M,QAAU2nM,GAC1B8N,GAAgBsK,MAAQ+G,GACxBrR,GAAgBqiB,aAAe3vB,GAC/BsN,GAAgBsiB,MAAQlc,GACxBpG,GAAgBuiB,QAAU5mB,GAE1BqE,GAAgB1nF,QAAQx0F,KAAKkzG,IAAQ,SAAU3Z,EAAOrhI,GACpDgkN,GAAgBqiB,aAAazvB,kBAAkB52M,EAAMqhI,EAAOA,EAAMw0F,cAItDtnN,GACRA,GAAQhI,eAAemE,KACzBs5M,GAAgBz1M,QAAQ3K,SAAS2K,GAAQ7D,KAI7Cs5M,GAAgBj4K,SAAS97C,aACzB,IAAI4vC,GAAMmkL,GA8FV,MA5FsB,qBAAX/gN,SACTA,OAAOo5H,MAAQ2nF,IAYjBA,GAAgB3nF,MAAQ2nF,GASxBA,GAAgBof,OAAS70N,GAAQ65L,OAAOq9B,SASxCzhB,GAAgB2hB,MAAQp3N,GAAQ+T,MAAMmjN,SAStCzhB,GAAgBwiB,cAAgBxiB,GAAgBz1M,QAUhDy1M,GAAgByiB,WAAaziB,GAAgBj2J,QAAQ56B,OAAO,IAS5D6wL,GAAgB0iB,cAAgB1iB,GAAgB1nF,QAAQ+F,OASxD2hF,GAAgB2iB,cAAgB3iB,GAAgB7T,QAShD6T,GAAgB4iB,gBAAkBjQ,GAQlC3S,GAAgB1nF,QAAQx0F,KAAK,CAAC,MAAO,SAAU,WAAY,OAAQ,YAAa,QAAS,YAAY,SAAU28I,GAC7Gu/B,GAAgBv/B,GAAS,SAAUvnD,EAAK+F,GACtC,OAAO,IAAI+gF,GAAgB9mF,EAAK8mF,GAAgB1nF,QAAQt+D,MAAMilE,GAAO,GAAI,CACvEjjI,KAAMykL,EAAM1mL,OAAO,GAAGC,cAAgBymL,EAAM7wL,MAAM,UAIjDisC,GA3xeyEn2C,CAAQ,WACtF,IACE,OAAO,EAAQ,QACf,MAAOgd,KAH6E,K,oCCL1F,IAAI2nI,EAAc,EAAQ,QAU1Bn6I,EAAOC,QAAU,SAAgBy6D,EAAS58B,EAAQvoB,GAChD,IAAIo9N,EAAiBp9N,EAASH,OAAOu9N,eAEhCp9N,EAASszF,QAAW8pI,IAAkBA,EAAep9N,EAASszF,QAGjE/qE,EAAOq8G,EAAY,mCAAqC5kI,EAASszF,OAAQtzF,EAASH,OAAQ,KAAMG,EAASD,QAASC,IAFlHmlD,EAAQnlD,K,qBCfZ,IAAiD/f,EAE9CuZ,OAF8CvZ,EAEtC,WACT,OAEE,SAAUwyD,GAOR,IAAI4qL,EAAmB,GAQvB,SAASC,EAAoBC,GAO3B,GAAIF,EAAiBE,GAEnB,OAAOF,EAAiBE,GAAU7yO,QASpC,IAAID,EAAS4yO,EAAiBE,GAAY,CAExC5zO,EAAG4zO,EAGHnzN,GAAG,EAGH1f,QAAS,IA2BX,OAhBA+nD,EAAQ8qL,GAAUj7O,KAAKmI,EAAOC,QAASD,EAAQA,EAAOC,QAAS4yO,GAQ/D7yO,EAAO2f,GAAI,EAQJ3f,EAAOC,QAgLhB,OAnKA4yO,EAAoBt+O,EAAIyzD,EAQxB6qL,EAAoB9xN,EAAI6xN,EAQxBC,EAAoBl+O,EAAI,SAAUsL,EAAS0V,EAAM0rH,GAE1CwxG,EAAoBvlM,EAAErtC,EAAS0V,IAElCrd,OAAOC,eAAe0H,EAAS0V,EAAM,CACnCld,YAAY,EACZD,IAAK6oI,KAeXwxG,EAAoBv8N,EAAI,SAAUrW,GAEV,qBAAX8N,QAA0BA,OAAOkoK,aAE1C39K,OAAOC,eAAe0H,EAAS8N,OAAOkoK,YAAa,CACjDhuK,MAAO,WAOX3P,OAAOC,eAAe0H,EAAS,aAAc,CAC3CgI,OAAO,KAwBX4qO,EAAoB38N,EAAI,SAAUjO,EAAOoR,GAKvC,GAHW,EAAPA,IAAUpR,EAAQ4qO,EAAoB5qO,IAG/B,EAAPoR,EAAU,OAAOpR,EAGrB,GAAW,EAAPoR,GAA6B,kBAAVpR,GAAsBA,GAASA,EAAM8qO,WAAY,OAAO9qO,EAG/E,IAAI+qO,EAAK16O,OAAO4lC,OAAO,MAavB,GAVA20M,EAAoBv8N,EAAE08N,GAItB16O,OAAOC,eAAey6O,EAAI,UAAW,CACnCv6O,YAAY,EACZwP,MAAOA,IAIE,EAAPoR,GAA4B,iBAATpR,EAAmB,IAAK,IAAIxN,KAAOwN,EAAO4qO,EAAoBl+O,EAAEq+O,EAAIv4O,EAAK,SAAUA,GACxG,OAAOwN,EAAMxN,IACb6R,KAAK,KAAM7R,IAGb,OAAOu4O,GAWTH,EAAoBxpO,EAAI,SAAUrJ,GAEhC,IAAIqhI,EAASrhI,GAAUA,EAAO+yO,WAE9B,WACE,OAAO/yO,EAAgB,SAGzB,WACE,OAAOA,GAQT,OAJA6yO,EAAoBl+O,EAAE0sI,EAAQ,IAAKA,GAI5BA,GAWTwxG,EAAoBvlM,EAAI,SAAUv4B,EAAQu0C,GACxC,OAAOhxD,OAAOY,UAAUmZ,eAAexa,KAAKkd,EAAQu0C,IAUtDupL,EAAoB18N,EAAI,0BAUjB08N,EAAoBA,EAAoBx+O,EAAI,GApPrD,CA0PA,CAIA,SAAU2L,EAAQC,EAAS4yO,GACzB,aAEA,IAAII,EAAoB,SAA2BhrO,GACjD,OAGF,SAAyBA,GACvB,QAASA,GAA0B,kBAAVA,EAJlBirO,CAAgBjrO,KAOzB,SAAmBA,GACjB,IAAIkrO,EAAc76O,OAAOY,UAAU0X,SAAS/Y,KAAKoQ,GACjD,MAAuB,oBAAhBkrO,GAAqD,kBAAhBA,GAO9C,SAAwBlrO,GACtB,OAAOA,EAAMmrO,WAAaC,EARqDC,CAAerrO,GAT5DsrO,CAAUtrO,IAc1CorO,EADiC,oBAAXtlO,QAAyBA,OAAOk1H,IAClBl1H,OAAOk1H,IAAI,iBAAmB,MAUtE,SAASuwG,EAA8BvrO,EAAOgH,GAC5C,OAAyB,IAAlBA,EAAQ0qH,OAAmB1qH,EAAQgkO,kBAAkBhrO,GAASwrO,GALlDvxN,EAKwEja,EAJpFsO,MAAMisB,QAAQtgB,GAAO,GAAK,IAIkEja,EAAOgH,GAAWhH,EALvH,IAAqBia,EAQrB,SAASwxN,EAAkBh3O,EAAQ4C,EAAQ2P,GACzC,OAAOvS,EAAO+R,OAAOnP,GAAQwhB,KAAI,SAAUjM,GACzC,OAAO2+N,EAA8B3+N,EAAS5F,MAmBlD,SAAS26D,EAAQltE,GACf,OAAOpE,OAAOkW,KAAK9R,GAAQ+R,OAP7B,SAAyC/R,GACvC,OAAOpE,OAAO+V,sBAAwB/V,OAAO+V,sBAAsB3R,GAAQm0B,QAAO,SAAU/iB,GAC1F,OAAOpR,EAAO6R,qBAAqBT,MAChC,GAI6B6lO,CAAgCj3O,IAgBpE,SAASk3O,EAAYl3O,EAAQ4C,EAAQ2P,GACnC,IAAI4kO,EAAc,GAmBlB,OAjBI5kO,EAAQgkO,kBAAkBv2O,IAC5BktE,EAAQltE,GAAQoL,SAAQ,SAAUrN,GAChCo5O,EAAYp5O,GAAO+4O,EAA8B92O,EAAOjC,GAAMwU,MAIlE26D,EAAQtqE,GAAQwI,SAAQ,SAAUrN,IArBpC,SAA0BiC,EAAQjC,GAChC,IACE,OAAOA,KAAOiC,KACZpE,OAAO+Z,eAAexa,KAAK6E,EAAQjC,IAClCnC,OAAOiW,qBAAqB1W,KAAK6E,EAAQjC,IAC5C,MAAOq5O,GAGP,OAAO,IAcHC,CAAiBr3O,EAAQjC,KAIxBwU,EAAQgkO,kBAAkB3zO,EAAO7E,KAAUiC,EAAOjC,GAGrDo5O,EAAYp5O,GAjDlB,SAA0BA,EAAKwU,GAC7B,IAAKA,EAAQ+kO,YACX,OAAOP,EAGT,IAAIO,EAAc/kO,EAAQ+kO,YAAYv5O,GACtC,MAA8B,oBAAhBu5O,EAA6BA,EAAcP,EA2ClCQ,CAAiBx5O,EAAKwU,EAAtBglO,CAA+Bv3O,EAAOjC,GAAM6E,EAAO7E,GAAMwU,GAF5E4kO,EAAYp5O,GAAO+4O,EAA8Bl0O,EAAO7E,GAAMwU,OAK3D4kO,EAGT,SAASJ,EAAU/2O,EAAQ4C,EAAQ2P,IACjCA,EAAUA,GAAW,IACbilO,WAAajlO,EAAQilO,YAAcR,EAC3CzkO,EAAQgkO,kBAAoBhkO,EAAQgkO,mBAAqBA,EAGzDhkO,EAAQukO,8BAAgCA,EACxC,IAAIW,EAAgB59N,MAAMisB,QAAQljC,GAIlC,OAFgC60O,IADZ59N,MAAMisB,QAAQ9lC,GAKvBy3O,EACFllO,EAAQilO,WAAWx3O,EAAQ4C,EAAQ2P,GAEnC2kO,EAAYl3O,EAAQ4C,EAAQ2P,GAJ5BukO,EAA8Bl0O,EAAQ2P,GAQjDwkO,EAAUh5K,IAAM,SAAsB3qC,EAAO7gB,GAC3C,IAAKsH,MAAMisB,QAAQ1S,GACjB,MAAM,IAAI31B,MAAM,qCAGlB,OAAO21B,EAAMsD,QAAO,SAAUwhB,EAAMhM,GAClC,OAAO6qM,EAAU7+L,EAAMhM,EAAM35B,KAC5B,KAGL,IAAImlO,EAAcX,EAClBzzO,EAAOC,QAAUm0O,GAMnB,SAAUp0O,EAAQq0O,EAAqBxB,GACrC,cAGA,SAAW9yO,EAAQC,GAEjB,IAIIlE,EAJAw4O,EAA4CzB,EAAoB,GAOlE/2O,EADkB,qBAATunB,KACFA,KACoB,qBAAXtU,OACTA,OACoB,qBAAXhP,EACTA,EAEAC,EAGT,IAAIyJ,EAASnR,OAAOg8O,EAEjB,EAFUh8O,CAEPwD,GAGNu4O,EAAuB,EAAI5qO,IAE1B5R,KAAKC,KAAM+6O,EAAoB,GAAIA,EAAoB,EAApBA,CAAuB7yO,KAM/D,SAAUA,EAAQC,EAAS4yO,GAUhB7yO,EAAOC,QAEP,SAAUuS,GACf,IAAI0D,EAAI,GAER,SAAS7M,EAAEiN,GACT,GAAIJ,EAAEI,GAAI,OAAOJ,EAAEI,GAAGrW,QACtB,IAAIqtC,EAAIp3B,EAAEI,GAAK,CACbpX,EAAGoX,EACHqJ,GAAG,EACH1f,QAAS,IAEX,OAAOuS,EAAE8D,GAAGze,KAAKy1C,EAAErtC,QAASqtC,EAAGA,EAAErtC,QAASoJ,GAAIikC,EAAE3tB,GAAI,EAAI2tB,EAAErtC,QAG5D,OAAOoJ,EAAE9U,EAAIie,EAAGnJ,EAAE0X,EAAI7K,EAAG7M,EAAE1U,EAAI,SAAU6d,EAAG0D,EAAGI,GAC7CjN,EAAEikC,EAAE96B,EAAG0D,IAAM5d,OAAOC,eAAeia,EAAG0D,EAAG,CACvCzd,YAAY,EACZD,IAAK8d,KAENjN,EAAEiN,EAAI,SAAU9D,GACjB,oBAAsBzE,QAAUA,OAAOkoK,aAAe39K,OAAOC,eAAeia,EAAGzE,OAAOkoK,YAAa,CACjGhuK,MAAO,WACL3P,OAAOC,eAAeia,EAAG,aAAc,CACzCvK,OAAO,KAERoB,EAAE6M,EAAI,SAAU1D,EAAG0D,GACpB,GAAI,EAAIA,IAAM1D,EAAInJ,EAAEmJ,IAAK,EAAI0D,EAAG,OAAO1D,EACvC,GAAI,EAAI0D,GAAK,iBAAmB1D,GAAKA,GAAKA,EAAEugO,WAAY,OAAOvgO,EAC/D,IAAI8D,EAAIhe,OAAO4lC,OAAO,MACtB,GAAI70B,EAAEiN,EAAEA,GAAIhe,OAAOC,eAAe+d,EAAG,UAAW,CAC9C7d,YAAY,EACZwP,MAAOuK,IACL,EAAI0D,GAAK,iBAAmB1D,EAAG,IAAK,IAAI86B,KAAK96B,EAAGnJ,EAAE1U,EAAE2hB,EAAGg3B,EAAG,SAAUp3B,GACtE,OAAO1D,EAAE0D,IACT5J,KAAK,KAAMghC,IACb,OAAOh3B,GACNjN,EAAEA,EAAI,SAAUmJ,GACjB,IAAI0D,EAAI1D,GAAKA,EAAEugO,WAAa,WAC1B,OAAOvgO,EAAEygB,SACP,WACF,OAAOzgB,GAET,OAAOnJ,EAAE1U,EAAEuhB,EAAG,IAAKA,GAAIA,GACtB7M,EAAEikC,EAAI,SAAU96B,EAAG0D,GACpB,OAAO5d,OAAOY,UAAUmZ,eAAexa,KAAK2a,EAAG0D,IAC9C7M,EAAE8M,EAAI,GAAI9M,EAAEA,EAAEhV,EAAI,GA5ChB,CA6CL,CAAC,SAAUme,EAAG0D,GACd1D,EAAEvS,QAAU,SAAUuS,GACpB,OAAO+D,MAAMisB,QAAUjsB,MAAMisB,QAAQhwB,GAAK,mBAAqBla,OAAOY,UAAU0X,SAAS/Y,KAAK2a,KAE/F,SAAUA,EAAG0D,EAAG7M,GACjB,SAASiN,EAAE9D,GACT,OAAQ8D,EAAI,mBAAqBvI,QAAU,iBAAmBA,OAAO46B,SAAW,SAAUn2B,GACxF,cAAcA,GACZ,SAAUA,GACZ,OAAOA,GAAK,mBAAqBzE,QAAUyE,EAAEf,cAAgB1D,QAAUyE,IAAMzE,OAAO7U,UAAY,gBAAkBsZ,IACjHA,GAGL,SAAS86B,EAAE96B,EAAG0D,GACZ,IAAK,IAAI7M,EAAI,EAAGA,EAAI6M,EAAEpW,OAAQuJ,IAAK,CACjC,IAAIiN,EAAIJ,EAAE7M,GACViN,EAAE7d,WAAa6d,EAAE7d,aAAc,EAAI6d,EAAE5d,cAAe,EAAI,UAAW4d,IAAMA,EAAE+rB,UAAW,GAAK/pC,OAAOC,eAAeia,EAAG8D,EAAE7b,IAAK6b,IAI/H,IAAIpX,EAAImK,EAAE,GACNoN,EAAIpN,EAAE,GACNhV,EAAIgV,EAAE,GACN0X,EAAI,WACN,SAASvO,EAAE0D,EAAG7M,GACZ,IAAIiN,EAAIjN,EAAE4iC,SACNqB,OAAI,IAAWh3B,EAAI,EAAIA,EACvBpX,EAAImK,EAAEg4C,SACNhtD,OAAI,IAAW6K,EAAI,IAAMA,EACzB6hB,EAAI1X,EAAE+zC,UACN3oD,OAAI,IAAWssB,EAAI,GAAKA,EACxBpB,EAAItW,EAAEkrO,iBACN30N,OAAI,IAAWD,EAAI,GAAKA,EACxBrR,EAAIjF,EAAEmrO,cACN7/O,OAAI,IAAW2Z,GAAKA,EACpBo3B,EAAIr8B,EAAEorO,eACNt+N,OAAI,IAAWuvB,EAAI,MAAQA,EAC3Bw1B,EAAI7xD,EAAEqrO,eACN3/O,OAAI,IAAWmmE,GAAKA,EACpB3mE,EAAI8U,EAAEsrO,mBACNn+N,OAAI,IAAWjiB,EAAI,EAAIA,EACvB2Y,EAAI7D,EAAE6jC,GACN1hC,OAAI,IAAW0B,EAAI,KAAOA,EAC1B9X,EAAIiU,EAAEmF,KACN3Z,OAAI,IAAWO,EAAI,GAAKA,EACxB4pB,EAAI3V,EAAEurO,WACNrhP,OAAI,IAAWyrB,GAAKA,EACpBjS,EAAI1D,EAAEwrO,MACNjnO,OAAI,IAAWb,EAAI0J,EAAI1J,EACvB4uD,EAAItyD,EAAEyrO,OACNC,OAAI,IAAWp5K,EAAI,SAAUnpD,EAAG0D,GAClC,OAAO1D,EAAEqkH,MAAQ3gH,EAAE2gH,OACjBl7D,EACA5pD,EAAI1I,EAAE2rO,SACNtmO,OAAI,IAAWqD,GAAKA,EACpB2jG,EAAIrsG,EAAE4rO,eACN/2N,OAAI,IAAWw3F,GAAKA,EACpBvnG,EAAI9E,EAAE6rO,eACNj/C,OAAI,IAAW9nL,GAAKA,EACpBgxD,EAAI91D,EAAE8rO,aACNz2N,OAAI,IAAWygD,GAAKA,EACpB/yD,EAAI/C,EAAE+rO,QACN32N,OAAI,IAAWrS,GAAKA,GACvB,SAAUoG,EAAG0D,GACZ,KAAM1D,aAAa0D,GAAI,MAAM,IAAI6M,UAAU,qCAD5C,CAECjrB,KAAM0a,GAAI1a,KAAKmX,QAAU,CACzBg9B,SAAUqB,EACV+T,SAAUhtD,EACV+oD,UAAW3oD,EACX8/O,iBAAkB30N,EAClBy1N,gBAAiB1gP,EACjB8/O,eAAgBt+N,EAChBu+N,eAAgB3/O,EAChB4/O,mBAAoBn+N,EACpB02B,GAAI1hC,EACJgD,KAAM3Z,EACNqgP,eAAgBj/C,EAChBk/C,aAAcz2N,EACdk2N,WAAYrhP,EACZshP,MAAOjnO,EACPknO,OAAQC,EACRK,QAAS32N,EACTu2N,SAAUtmO,EACVumO,eAAgB/2N,GACfpmB,KAAKw9O,cAAcp/N,GAGxB,IAAIA,EAAG7M,EAAG0X,EACV,OAAO7K,EAAI1D,GAAInJ,EAAI,CAAC,CAClB5O,IAAK,gBACLwN,MAAO,SAAUuK,GACf,OAAO1a,KAAKwyJ,KAAO93I,EAAGA,IAEvB,CACD/X,IAAK,SACLwN,MAAO,SAAUuK,GACf,IAAI0D,EAAIta,UAAUkE,OAAS,QAAK,IAAWlE,UAAU,GAAKA,UAAU,GAAK,CACvEgrI,OAAO,GAGT9uI,KAAKy9O,KAAK,+BAA+B9mO,OAAO+D,EAAG,MAEnD,IAAInJ,EAAIvR,KAAK09O,kBAAkBhjO,GAC3B8D,EAAIjN,EAAEosO,eACNnoM,EAAIjkC,EAAEqsO,aACNx2O,EAAIpH,KAAK69O,QAAQr/N,EAAGg3B,GACpB72B,EAAIvX,EAAE02O,QACNvhP,EAAI6K,EAAE4/B,QAEV,OAAOhnC,KAAK+9O,cAAcp/N,EAAGpiB,GAAIyD,KAAKmX,QAAQ2lO,YAAc98O,KAAKg+O,MAAMzhP,GAAI6hB,EAAE0wH,OAAS,iBAAmB1wH,EAAE0wH,QAAUvyI,EAAIA,EAAEqL,MAAM,EAAGwW,EAAE0wH,QAAS9uI,KAAKi+O,QAAQ1hP,KAE7J,CACDoG,IAAK,oBACLwN,MAAO,WACL,IAAIuK,EAAI5W,UAAUkE,OAAS,QAAK,IAAWlE,UAAU,GAAKA,UAAU,GAAK,GACrEsa,EAAI,GACR,GAAIpe,KAAKmX,QAAQ+lO,SAAU,IAAK,IAAI3rO,EAAImJ,EAAEzf,MAAM+E,KAAKmX,QAAQwlO,gBAAiBn+N,EAAI,EAAGg3B,EAAIjkC,EAAEvJ,OAAQwW,EAAIg3B,EAAGh3B,GAAK,EAAGJ,EAAEpQ,KAAK,IAAI5G,EAAEmK,EAAEiN,GAAIxe,KAAKmX,UAC1I,MAAO,CACLwmO,eAAgBv/N,EAChBw/N,aAAc,IAAIx2O,EAAEsT,EAAG1a,KAAKmX,YAG/B,CACDxU,IAAK,UACLwN,MAAO,WACL,IAAIuK,EAAI5W,UAAUkE,OAAS,QAAK,IAAWlE,UAAU,GAAKA,UAAU,GAAK,GACrEsa,EAAIta,UAAUkE,OAAS,EAAIlE,UAAU,QAAK,EAC1CyN,EAAIvR,KAAKwyJ,KACTh0I,EAAI,GACJg3B,EAAI,GAER,GAAI,iBAAmBjkC,EAAE,GAAI,CAC3B,IAAK,IAAInK,EAAI,EAAGuX,EAAIpN,EAAEvJ,OAAQZ,EAAIuX,EAAGvX,GAAK,EAAGpH,KAAKk+O,SAAS,CACzDv7O,IAAK,GACLwN,MAAOoB,EAAEnK,GACTg4K,OAAQh4K,EACRW,MAAOX,GACN,CACD+2O,UAAW3/N,EACXwoB,QAASwO,EACTmoM,eAAgBjjO,EAChBkjO,aAAcx/N,IAGhB,MAAO,CACL0/N,QAAS,KACT92M,QAASwO,GAIb,IAAK,IAAIj5C,EAAI,GAAI0sB,EAAI,EAAGtsB,EAAI4U,EAAEvJ,OAAQihB,EAAItsB,EAAGssB,GAAK,EAAG,IAAK,IAAIpB,EAAItW,EAAE0X,GAAInB,EAAI,EAAGtR,EAAIxW,KAAKmX,QAAQT,KAAK1O,OAAQ8f,EAAItR,EAAGsR,GAAK,EAAG,CAC1H,IAAIjrB,EAAImD,KAAKmX,QAAQT,KAAKoR,GAE1B,GAAI,iBAAmBjrB,EAAG,CACxB,GAAIN,EAAEM,EAAEghB,MAAQ,CACdmzH,OAAQ,EAAIn0I,EAAEm0I,QAAU,GACvBn0I,EAAEm0I,QAAU,GAAKn0I,EAAEm0I,OAAS,EAAG,MAAM,IAAI3uI,MAAM,qCAClDxF,EAAIA,EAAEghB,UACDthB,EAAEM,GAAK,CACZm0I,OAAQ,GAGVhxI,KAAKk+O,SAAS,CACZv7O,IAAK9F,EACLsT,MAAOnQ,KAAKmX,QAAQ4lO,MAAMl1N,EAAGhrB,GAC7BuiL,OAAQv3J,EACR9f,MAAOkhB,GACN,CACDk1N,UAAW3/N,EACXwoB,QAASwO,EACTmoM,eAAgBjjO,EAChBkjO,aAAcx/N,IAIlB,MAAO,CACL0/N,QAASvhP,EACTyqC,QAASwO,KAGZ,CACD7yC,IAAK,WACLwN,MAAO,SAAUuK,EAAG0D,GAClB,IAAI7M,EAAImJ,EAAE/X,IACN6b,EAAI9D,EAAE0jO,WACN5oM,OAAI,IAAWh3B,GAAK,EAAIA,EACxBpX,EAAIsT,EAAEvK,MACNwO,EAAIjE,EAAE0kK,OACNn2J,EAAIvO,EAAE3S,MACNpL,EAAIyhB,EAAEu/N,eACN91N,OAAI,IAAWlrB,EAAI,GAAKA,EACxBmrB,EAAI1J,EAAEw/N,aACNpnO,OAAI,IAAWsR,EAAI,GAAKA,EACxBjrB,EAAIuhB,EAAE+/N,UACNvwM,OAAI,IAAW/wC,EAAI,GAAKA,EACxBwhB,EAAID,EAAE4oB,QACNo8B,OAAI,IAAW/kD,EAAI,GAAKA,EAE5B,GAAI,MAAQjX,EAAG,CACb,IAAInK,GAAI,EACJR,GAAK,EACLiiB,EAAI,EAER,GAAI,iBAAmBtX,EAAG,CACxBpH,KAAKy9O,KAAK,UAAU9mO,OAAO,KAAOpF,EAAI,IAAMA,IAE5C,IAAI6D,EAAIoB,EAAE89B,OAAOltC,GAEjB,GAAIpH,KAAKy9O,KAAK,eAAe9mO,OAAOvP,EAAG,cAAcuP,OAAOvB,EAAE2pH,QAAS/+H,KAAKmX,QAAQ+lO,SAAU,CAC5F,IAAK,IAAIxpO,EAAItM,EAAEnM,MAAM+E,KAAKmX,QAAQwlO,gBAAiBr/O,EAAI,GAAIP,EAAI,EAAGA,EAAI8qB,EAAE7f,OAAQjL,GAAK,EAAG,CACtF,IAAImqB,EAAIW,EAAE9qB,GAEViD,KAAKy9O,KAAK,eAAe9mO,OAAOuQ,EAAEvB,QAAS,MAE3C,IAAK,IAAIlqB,GAAI,EAAIwZ,EAAI,EAAGA,EAAIvB,EAAE1L,OAAQiN,GAAK,EAAG,CAC5C,IAAIa,EAAIpC,EAAEuB,GACN4uD,EAAI38C,EAAEotB,OAAOx+B,GACbmnO,EAAI,GAERp5K,EAAEw6K,SAAWpB,EAAEnnO,GAAK+tD,EAAEk7D,MAAO9hI,GAAI,EAAIxB,GAAI,EAAI6B,EAAE0Q,KAAK61D,EAAEk7D,SAAWk+G,EAAEnnO,GAAK,EAAG9V,KAAKmX,QAAQgmO,gBAAkB7/O,EAAE0Q,KAAK,IAAKhO,KAAKy9O,KAAK,WAAW9mO,OAAOb,EAAG,cAAca,OAAOsmO,EAAEnnO,KAG9Kra,IAAMijB,GAAK,GAGbjiB,EAAIa,EAAE,GAEN,IAAK,IAAI2c,EAAI3c,EAAE0K,OAAQ4O,EAAI,EAAGA,EAAIqD,EAAGrD,GAAK,EAAGna,GAAKa,EAAEsZ,GAEpDna,GAAKwd,EAAGja,KAAKy9O,KAAK,uBAAwBhhP,GAG5C,IAAImhH,EAAIxoG,EAAE2pH,MACVtiI,GAAK,IAAMmhH,GAAKA,EAAInhH,GAAK,GAAIuD,KAAKy9O,KAAK,iBAAkB7/H,GACzD,IAAIx3F,GAAKpmB,KAAKmX,QAAQ+lO,WAAal9O,KAAKmX,QAAQgmO,gBAAkBz+N,GAAKmJ,EAAE7f,OAEzE,GAAIhI,KAAKy9O,KAAK,oBAAoB9mO,OAAOyP,KAAMnpB,GAAKmY,EAAEipO,UAAYj4N,EAAG,CACnE,IAAI/P,EAAIu3B,EAAE3kB,GACV5S,EAAIA,EAAE6vG,OAAOl4G,KAAK,CAChBrL,IAAK4O,EACL6sO,WAAY5oM,EACZrlC,MAAO/I,EACP23H,MAAOnhB,EACP0gI,eAAgBlpO,EAAEkpO,kBACd1wM,EAAE3kB,GAAK,CACXgb,KAAMtlB,EACNunG,OAAQ,CAAC,CACPvjH,IAAK4O,EACL6sO,WAAY5oM,EACZrlC,MAAO/I,EACP23H,MAAOnhB,EACP0gI,eAAgBlpO,EAAEkpO,kBAEnBl7K,EAAEp1D,KAAK4/B,EAAE3kB,WAET,GAAI1sB,EAAE6K,GAAI,IAAK,IAAI+2L,EAAI,EAAG92H,EAAIjgE,EAAEY,OAAQm2L,EAAI92H,EAAG82H,GAAK,EAAGn+L,KAAKk+O,SAAS,CAC1Ev7O,IAAK4O,EACL6sO,WAAYjgD,EACZhuL,MAAO/I,EAAE+2L,GACT/e,OAAQzgK,EACR5W,MAAOkhB,GACN,CACDk1N,UAAWvwM,EACX5G,QAASo8B,EACTu6K,eAAgB91N,EAChB+1N,aAAcpnO,OAInB,CACD7T,IAAK,gBACLwN,MAAO,SAAUuK,EAAG0D,GAClBpe,KAAKy9O,KAAK,0BAEV,IAAK,IAAIlsO,EAAI,EAAGiN,EAAIJ,EAAEpW,OAAQuJ,EAAIiN,EAAGjN,GAAK,EAAG,CAC3C,IAAK,IAAIikC,EAAIp3B,EAAE7M,GAAG20G,OAAQ9+G,EAAIouC,EAAExtC,OAAQ2W,EAAI,EAAGpiB,EAAI,EAAG0sB,EAAI,EAAGA,EAAI7hB,EAAG6hB,GAAK,EAAG,CAC1E,IAAItsB,EAAI+d,EAAIA,EAAE86B,EAAEvsB,GAAGtmB,KAAKquI,OAAS,EAC7BnpH,GAAK,IAAMlrB,EAAI64C,EAAEvsB,GAAG81G,MAAQvpF,EAAEvsB,GAAG81G,OAAS,MAAQpiI,EACtD,IAAMA,EAAIJ,EAAImc,KAAKkS,IAAIruB,EAAGsrB,IAAM2tB,EAAEvsB,GAAGs1N,OAAS12N,EAAGlJ,GAAKkJ,GAGxDzJ,EAAE7M,GAAGwtH,MAAQ,IAAMxiI,EAAIoiB,EAAIpiB,EAAGyD,KAAKy9O,KAAKr/N,EAAE7M,OAG7C,CACD5O,IAAK,QACLwN,MAAO,SAAUuK,GACf1a,KAAKy9O,KAAK,mBAAoB/iO,EAAEojB,KAAK99B,KAAKmX,QAAQ6lO,UAEnD,CACDr6O,IAAK,UACLwN,MAAO,SAAUuK,GACf,IAAI0D,EAAI,GAER,GAAIpe,KAAKmX,QAAQmmO,QAAS,CACxB,IAAI/rO,EAAI,GACRvR,KAAKy9O,KAAK,kBAAmBtjN,KAAKtf,UAAUH,GAAG,SAAUA,EAAG0D,GAC1D,GAAI,WAAaI,EAAEJ,IAAM,OAASA,EAAG,CACnC,IAAK,IAAM7M,EAAE5J,QAAQyW,GAAI,OACzB7M,EAAEvD,KAAKoQ,GAGT,OAAOA,MACJ7M,EAAI,KAGX,IAAIikC,EAAI,GACRx1C,KAAKmX,QAAQimO,gBAAkB5nM,EAAExnC,MAAK,SAAU0M,EAAG0D,GACjD,IAAI7M,EAAImJ,EAAEwrG,OACV9nG,EAAE69B,QAAU,GAEZ,IAAK,IAAIz9B,EAAI,EAAGg3B,EAAIjkC,EAAEvJ,OAAQwW,EAAIg3B,EAAGh3B,GAAK,EAAG,CAC3C,IAAIpX,EAAImK,EAAEiN,GAEV,GAAI,IAAMpX,EAAEk3O,eAAet2O,OAAQ,CACjC,IAAI2W,EAAI,CACN6/N,QAASp3O,EAAEk3O,eACXnuO,MAAO/I,EAAE+I,OAEX/I,EAAEzE,MAAQgc,EAAEhc,IAAMyE,EAAEzE,KAAMyE,EAAEmT,eAAe,eAAiBnT,EAAEg3O,YAAc,IAAMz/N,EAAEy/N,WAAah3O,EAAEg3O,YAAahgO,EAAE69B,QAAQjuC,KAAK2Q,QAGjI3e,KAAKmX,QAAQkmO,cAAgB7nM,EAAExnC,MAAK,SAAU0M,EAAG0D,GACnDA,EAAE2gH,MAAQrkH,EAAEqkH,SAGd,IAAK,IAAI33H,EAAI,EAAGuX,EAAIjE,EAAE1S,OAAQZ,EAAIuX,EAAGvX,GAAK,EAAG,CAC3C,IAAI7K,EAAIme,EAAEtT,GAEV,GAAIpH,KAAKmX,QAAQi+B,KAAO74C,EAAE0nC,KAAOjkC,KAAKmX,QAAQ4lO,MAAMxgP,EAAE0nC,KAAMjkC,KAAKmX,QAAQi+B,IAAI,IAAKI,EAAExtC,OAAQ,CAC1F,IAAK,IAAIihB,EAAI,CACXgb,KAAM1nC,EAAE0nC,MACPtnC,EAAI,EAAGkrB,EAAI2tB,EAAExtC,OAAQrL,EAAIkrB,EAAGlrB,GAAK,EAAG64C,EAAE74C,GAAGJ,EAAG0sB,GAE/C7K,EAAEpQ,KAAKib,QACF7K,EAAEpQ,KAAKzR,EAAE0nC,MAGlB,OAAO7lB,IAER,CACDzb,IAAK,OACLwN,MAAO,WACL,IAAIuK,EACJ1a,KAAKmX,QAAQmmO,UAAY5iO,EAAI8F,SAASshB,IAAIj+B,MAAM6W,EAAG5W,gBAEhD0xC,EAAEp3B,EAAEhd,UAAWmQ,GAAI0X,GAAKusB,EAAEp3B,EAAG6K,GAAIvO,EAnUlC,GAsURA,EAAEvS,QAAU8gB,GACX,SAAUvO,EAAG0D,EAAG7M,GACjB,SAASiN,EAAE9D,EAAG0D,GACZ,IAAK,IAAI7M,EAAI,EAAGA,EAAI6M,EAAEpW,OAAQuJ,IAAK,CACjC,IAAIiN,EAAIJ,EAAE7M,GACViN,EAAE7d,WAAa6d,EAAE7d,aAAc,EAAI6d,EAAE5d,cAAe,EAAI,UAAW4d,IAAMA,EAAE+rB,UAAW,GAAK/pC,OAAOC,eAAeia,EAAG8D,EAAE7b,IAAK6b,IAI/H,IAAIg3B,EAAIjkC,EAAE,GACNnK,EAAImK,EAAE,GACNoN,EAAIpN,EAAE,GACNhV,EAAI,WACN,SAASme,EAAE0D,EAAG7M,GACZ,IAAIiN,EAAIjN,EAAE4iC,SACNqB,OAAI,IAAWh3B,EAAI,EAAIA,EACvBpX,EAAImK,EAAEg4C,SACNhtD,OAAI,IAAW6K,EAAI,IAAMA,EACzB6hB,EAAI1X,EAAE+zC,UACN3oD,OAAI,IAAWssB,EAAI,GAAKA,EACxBpB,EAAItW,EAAEkrO,iBACN30N,OAAI,IAAWD,EAAI,GAAKA,EACxBrR,EAAIjF,EAAEgsO,gBACN1gP,OAAI,IAAW2Z,GAAKA,EACpBo3B,EAAIr8B,EAAEorO,eACNt+N,OAAI,IAAWuvB,EAAI,MAAQA,EAC3Bw1B,EAAI7xD,EAAEqrO,eACN3/O,OAAI,IAAWmmE,GAAKA,EACpB3mE,EAAI8U,EAAEsrO,mBACNn+N,OAAI,IAAWjiB,EAAI,EAAIA,GAC1B,SAAUie,EAAG0D,GACZ,KAAM1D,aAAa0D,GAAI,MAAM,IAAI6M,UAAU,qCAD5C,CAECjrB,KAAM0a,GAAI1a,KAAKmX,QAAU,CACzBg9B,SAAUqB,EACV+T,SAAUhtD,EACV+oD,UAAW3oD,EACX8/O,iBAAkB30N,EAClBy1N,gBAAiB1gP,EACjB8/O,eAAgBt+N,EAChBu+N,eAAgB3/O,EAChB4/O,mBAAoBn+N,GACnB1e,KAAK2lB,QAAU3lB,KAAKmX,QAAQomO,gBAAkBn/N,EAAIA,EAAEpM,cAAehS,KAAK2lB,QAAQ3d,QAAU8f,IAAM9nB,KAAKy+O,gBAAkB9/N,EAAE3e,KAAK2lB,UAGnI,IAAIvH,EAAG7M,EAAGhV,EACV,OAAO6hB,EAAI1D,GAAInJ,EAAI,CAAC,CAClB5O,IAAK,SACLwN,MAAO,SAAUuK,GACf,GAAI1a,KAAKmX,QAAQomO,kBAAoB7iO,EAAIA,EAAE1I,eAAgBhS,KAAK2lB,UAAYjL,EAAG,MAAO,CACpF2jO,SAAS,EACTt/G,MAAO,EACPu/G,eAAgB,CAAC,CAAC,EAAG5jO,EAAE1S,OAAS,KAElC,IAAIoW,EAAIpe,KAAKmX,QACT5F,EAAI6M,EAAEq+N,iBACNj+N,EAAIJ,EAAEu+N,eACV,GAAI38O,KAAK2lB,QAAQ3d,OAASuJ,EAAG,OAAOikC,EAAE96B,EAAG1a,KAAK2lB,QAASnH,GACvD,IAAIG,EAAI3e,KAAKmX,QACT5a,EAAIoiB,EAAEw1B,SACNlrB,EAAItK,EAAE4qC,SACN5sD,EAAIgiB,EAAE2mC,UACNz9B,EAAIlJ,EAAEi+N,eACN90N,EAAInJ,EAAEk+N,mBACV,OAAOz1O,EAAEsT,EAAG1a,KAAK2lB,QAAS3lB,KAAKy+O,gBAAiB,CAC9CtqM,SAAU53C,EACVgtD,SAAUtgC,EACVq8B,UAAW3oD,EACXigP,eAAgB/0N,EAChBg1N,mBAAoB/0N,SAGnBtJ,EAAEJ,EAAEhd,UAAWmQ,GAAIhV,GAAKiiB,EAAEJ,EAAG7hB,GAAIme,EA3DlC,GA8DRA,EAAEvS,QAAU5L,GACX,SAAUme,EAAG0D,GACd,IAAI7M,EAAI,sCAERmJ,EAAEvS,QAAU,SAAUuS,EAAG0D,GACvB,IAAII,EAAI1a,UAAUkE,OAAS,QAAK,IAAWlE,UAAU,GAAKA,UAAU,GAAK,MACrE0xC,EAAI,IAAIlvC,OAAO8X,EAAEtgB,QAAQyT,EAAG,QAAQzT,QAAQ0gB,EAAG,MAC/CpX,EAAIsT,EAAEvT,MAAMquC,GACZ72B,IAAMvX,EACN7K,EAAI,GACR,GAAIoiB,EAAG,IAAK,IAAIsK,EAAI,EAAGtsB,EAAIyK,EAAEY,OAAQihB,EAAItsB,EAAGssB,GAAK,EAAG,CAClD,IAAIpB,EAAIzgB,EAAE6hB,GACV1sB,EAAEyR,KAAK,CAAC0M,EAAE/S,QAAQkgB,GAAIA,EAAE7f,OAAS,IAEnC,MAAO,CACL+2H,MAAOpgH,EAAI,GAAK,EAChB0/N,QAAS1/N,EACT2/N,eAAgB/hP,KAGnB,SAAUme,EAAG0D,EAAG7M,GACjB,IAAIiN,EAAIjN,EAAE,GACNikC,EAAIjkC,EAAE,GAEVmJ,EAAEvS,QAAU,SAAUuS,EAAG0D,EAAG7M,EAAGnK,GAC7B,IAAK,IAAIuX,EAAIvX,EAAE+sC,SAAU53C,OAAI,IAAWoiB,EAAI,EAAIA,EAAGsK,EAAI7hB,EAAEmiD,SAAU5sD,OAAI,IAAWssB,EAAI,IAAMA,EAAGpB,EAAIzgB,EAAEk+C,UAAWx9B,OAAI,IAAWD,EAAI,GAAKA,EAAGrR,EAAIpP,EAAEw1O,eAAgB//O,OAAI,IAAW2Z,GAAKA,EAAGo3B,EAAIxmC,EAAEy1O,mBAAoBx+N,OAAI,IAAWuvB,EAAI,EAAIA,EAAGw1B,EAAI7mE,EAAGU,EAAIyd,EAAE1S,OAAQvL,EAAIqrB,EAAGpJ,EAAIhE,EAAE/S,QAAQyW,EAAGglD,GAAIhuD,EAAIgJ,EAAEpW,OAAQ0L,EAAI,GAAIpW,EAAI,EAAGA,EAAIL,EAAGK,GAAK,EAAGoW,EAAEpW,GAAK,EAEhV,IAAK,IAAMohB,EAAG,CACZ,IAAI3hB,EAAIyhB,EAAEJ,EAAG,CACXsgO,OAAQ,EACRC,gBAAiBjgO,EACjBkgO,iBAAkBx7K,EAClB7Z,SAAU5sD,IAGZ,GAAIF,EAAIic,KAAKkS,IAAI7tB,EAAGN,IAAK,KAAOiiB,EAAIhE,EAAEq+E,YAAY36E,EAAGglD,EAAIhuD,IAAK,CAC5D,IAAI8R,EAAI1I,EAAEJ,EAAG,CACXsgO,OAAQ,EACRC,gBAAiBjgO,EACjBkgO,iBAAkBx7K,EAClB7Z,SAAU5sD,IAGZF,EAAIic,KAAKkS,IAAI1D,EAAGzqB,IAIpBiiB,GAAK,EAEL,IAAK,IAAIjjB,EAAI,GAAIwZ,EAAI,EAAGa,EAAIV,EAAInY,EAAG4mE,EAAI,GAAKzuD,EAAI,EAAG6nO,EAAI,EAAGA,EAAI7nO,EAAG6nO,GAAK,EAAG,CACvE,IAAK,IAAIhjO,EAAI,EAAGrD,EAAId,EAAGmE,EAAIrD,GACzB4H,EAAEJ,EAAG,CACHsgO,OAAQzB,EACR0B,gBAAiBv7K,EAAIxsD,EACrBgoO,iBAAkBx7K,EAClB7Z,SAAU5sD,KACNF,EAAIwd,EAAIrD,EAAId,EAAIc,EAAGA,EAAI8B,KAAKG,OAAO/C,EAAImE,GAAK,EAAIA,GAGxDnE,EAAIc,EACJ,IAAIgnG,EAAIllG,KAAKmS,IAAI,EAAGu4C,EAAIxsD,EAAI,GACxBwP,EAAIvpB,EAAII,EAAIyb,KAAKkS,IAAIw4C,EAAIxsD,EAAG3Z,GAAKmY,EACjCiB,EAAIoI,MAAM2H,EAAI,GAClB/P,EAAE+P,EAAI,IAAM,GAAK62N,GAAK,EAEtB,IAAK,IAAI9+C,EAAI/3K,EAAG+3K,GAAKvgF,EAAGugF,GAAK,EAAG,CAC9B,IAAI92H,EAAI82H,EAAI,EACRv3K,EAAIrV,EAAEmJ,EAAE3I,OAAOs1D,IAEnB,GAAIzgD,IAAMlT,EAAE2zD,GAAK,GAAIhxD,EAAE8nL,IAAM9nL,EAAE8nL,EAAI,IAAM,EAAI,GAAKv3K,EAAG,IAAMq2N,IAAM5mO,EAAE8nL,KAAO1iM,EAAE0iM,EAAI,GAAK1iM,EAAE0iM,KAAO,EAAI,EAAI1iM,EAAE0iM,EAAI,IAAK9nL,EAAE8nL,GAAKt6H,IAAM5uD,EAAIuJ,EAAEJ,EAAG,CACrIsgO,OAAQzB,EACR0B,gBAAiBt3K,EACjBu3K,iBAAkBx7K,EAClB7Z,SAAU5sD,MACLF,EAAG,CACR,GAAIA,EAAIwY,GAAIyJ,EAAI2oD,IAAMjE,EAAG,MACzBw6C,EAAIllG,KAAKmS,IAAI,EAAG,EAAIu4C,EAAI1kD,IAI5B,GAAIF,EAAEJ,EAAG,CACPsgO,OAAQzB,EAAI,EACZ0B,gBAAiBv7K,EACjBw7K,iBAAkBx7K,EAClB7Z,SAAU5sD,IACPF,EAAG,MACRhB,EAAI4a,EAGN,MAAO,CACLgoO,QAAS3/N,GAAK,EACdqgH,MAAO,IAAM9pH,EAAI,KAAOA,EACxBqpO,eAAgB9oM,EAAE9hC,EAAG2K,MAGxB,SAAU3D,EAAG0D,GACd1D,EAAEvS,QAAU,SAAUuS,EAAG0D,GACvB,IAAI7M,EAAI6M,EAAEsgO,OACNlgO,OAAI,IAAWjN,EAAI,EAAIA,EACvBikC,EAAIp3B,EAAEugO,gBACNv3O,OAAI,IAAWouC,EAAI,EAAIA,EACvB72B,EAAIP,EAAEwgO,iBACNriP,OAAI,IAAWoiB,EAAI,EAAIA,EACvBsK,EAAI7K,EAAEmrC,SACN5sD,OAAI,IAAWssB,EAAI,IAAMA,EACzBpB,EAAIrJ,EAAI9D,EAAE1S,OACV8f,EAAIpP,KAAKC,IAAIpc,EAAI6K,GACrB,OAAOzK,EAAIkrB,EAAIC,EAAInrB,EAAImrB,EAAI,EAAID,IAEhC,SAAUnN,EAAG0D,GACd1D,EAAEvS,QAAU,WACV,IAAK,IAAIuS,EAAI5W,UAAUkE,OAAS,QAAK,IAAWlE,UAAU,GAAKA,UAAU,GAAK,GAAIsa,EAAIta,UAAUkE,OAAS,QAAK,IAAWlE,UAAU,GAAKA,UAAU,GAAK,EAAGyN,EAAI,GAAIiN,GAAK,EAAGg3B,GAAK,EAAGpuC,EAAI,EAAGuX,EAAIjE,EAAE1S,OAAQZ,EAAIuX,EAAGvX,GAAK,EAAG,CACpN,IAAI7K,EAAIme,EAAEtT,GACV7K,IAAM,IAAMiiB,EAAIA,EAAIpX,EAAI7K,IAAM,IAAMiiB,KAAOg3B,EAAIpuC,EAAI,GAAKoX,EAAI,GAAKJ,GAAK7M,EAAEvD,KAAK,CAACwQ,EAAGg3B,IAAKh3B,GAAK,GAG7F,OAAO9D,EAAEtT,EAAI,IAAMA,EAAIoX,GAAKJ,GAAK7M,EAAEvD,KAAK,CAACwQ,EAAGpX,EAAI,IAAKmK,IAEtD,SAAUmJ,EAAG0D,GACd1D,EAAEvS,QAAU,SAAUuS,GACpB,IAAK,IAAI0D,EAAI,GAAI7M,EAAImJ,EAAE1S,OAAQwW,EAAI,EAAGA,EAAIjN,EAAGiN,GAAK,EAAGJ,EAAE1D,EAAE3I,OAAOyM,IAAM,EAEtE,IAAK,IAAIg3B,EAAI,EAAGA,EAAIjkC,EAAGikC,GAAK,EAAGp3B,EAAE1D,EAAE3I,OAAOyjC,KAAO,GAAKjkC,EAAIikC,EAAI,EAE9D,OAAOp3B,IAER,SAAU1D,EAAG0D,EAAG7M,GACjB,IAAIiN,EAAIjN,EAAE,GAEVmJ,EAAEvS,QAAU,SAAUuS,EAAG0D,GACvB,OAAO,SAAS1D,EAAE0D,EAAG7M,EAAGikC,GACtB,GAAIjkC,EAAG,CACL,IAAInK,EAAImK,EAAE5J,QAAQ,KACdgX,EAAIpN,EACJhV,EAAI,MACP,IAAM6K,IAAMuX,EAAIpN,EAAE3J,MAAM,EAAGR,GAAI7K,EAAIgV,EAAE3J,MAAMR,EAAI,IAChD,IAAI6hB,EAAI7K,EAAEO,GACV,GAAI,MAAQsK,EAAG,GAAI1sB,GAAK,iBAAmB0sB,GAAK,iBAAmBA,EACjE,GAAIzK,EAAEyK,GAAI,IAAK,IAAItsB,EAAI,EAAGkrB,EAAIoB,EAAEjhB,OAAQrL,EAAIkrB,EAAGlrB,GAAK,EAAG+d,EAAEuO,EAAEtsB,GAAIJ,EAAGi5C,QAAQj5C,GAAKme,EAAEuO,EAAG1sB,EAAGi5C,QAClFA,EAAExnC,KAAKib,EAAEnQ,iBACX08B,EAAExnC,KAAKoQ,GAEd,OAAOo3B,EAZF,CAaL96B,EAAG0D,EAAG,SAShB,SAAUlW,EAAQq0O,EAAqBxB,GACrC,aAOA,SAAS8D,EAAyB76O,GAChC,IAAI2N,EACAsE,EAASjS,EAAKiS,OAalB,MAXsB,oBAAXA,EACLA,EAAO6oO,WACTntO,EAASsE,EAAO6oO,YAEhBntO,EAASsE,EAAO,cAChBA,EAAO6oO,WAAantO,GAGtBA,EAAS,eAGJA,EAnBTopO,EAAoBl+O,EAAE0/O,EAAqB,KAAK,WAC9C,OAAOsC,MA2BX,SAAU32O,EAAQC,EAAS4yO,GACzB7yO,EAAOC,QAAU4yO,EAAoB,IAMvC,SAAU7yO,EAAQC,GAChB,IAAIi7D,EAEJA,EAAI,WACF,OAAOpjE,KADL,GAIJ,IAEEojE,EAAIA,GAAK,IAAI/sB,SAAS,cAAb,GACT,MAAO37B,GAEe,kBAAXzD,SAAqBmsD,EAAInsD,QAMtC/O,EAAOC,QAAUi7D,GAMnB,SAAUl7D,EAAQC,GAChBD,EAAOC,QAAU,SAAU42O,GACzB,IAAKA,EAAeryF,gBAAiB,CACnC,IAAIxkJ,EAAS1H,OAAO4lC,OAAO24M,GAEtB72O,EAAOmrB,WAAUnrB,EAAOmrB,SAAW,IACxC7yB,OAAOC,eAAeyH,EAAQ,SAAU,CACtCvH,YAAY,EACZD,IAAK,WACH,OAAOwH,EAAO2f,KAGlBrnB,OAAOC,eAAeyH,EAAQ,KAAM,CAClCvH,YAAY,EACZD,IAAK,WACH,OAAOwH,EAAOd,KAGlB5G,OAAOC,eAAeyH,EAAQ,UAAW,CACvCvH,YAAY,IAEduH,EAAOwkJ,gBAAkB,EAG3B,OAAOxkJ,IAQX,SAAUA,EAAQq0O,EAAqBxB,GACrC,aAEAA,EAAoBv8N,EAAE+9N,GAGtB,IAAIyC,EAAYjE,EAAoB,GAEhCkE,EAA4BlE,EAAoBxpO,EAAEytO,GAGlDE,EAAMnE,EAAoB,GAE1BoE,EAA2BpE,EAAoBxpO,EAAE2tO,GAGjDE,EAAKrE,EAAoB,GAUzBsE,EAAe,WACjB,OAAO3mO,KAAKsmD,SAASlmD,SAAS,IAAIwP,UAAU,GAAGrtB,MAAM,IAAImb,KAAK,MAG5DkpO,EAAc,CAChBC,KAAM,eAAiBF,IACvB9pD,QAAS,kBAAoB8pD,IAC7BG,qBAAsB,WACpB,MAAO,+BAAiCH,MAQ5C,SAASryF,EAAclyI,GACrB,GAAmB,kBAARA,GAA4B,OAARA,EAAc,OAAO,EAGpD,IAFA,IAAIg8B,EAAQh8B,EAE4B,OAAjCta,OAAOi1C,eAAeqB,IAC3BA,EAAQt2C,OAAOi1C,eAAeqB,GAGhC,OAAOt2C,OAAOi1C,eAAe36B,KAASg8B,EA6BxC,SAAS2oM,EAAYC,EAASC,EAAgBC,GAC5C,IAAI9oF,EAEJ,GAA8B,oBAAnB6oF,GAAqD,oBAAbC,GAA+C,oBAAbA,GAAmD,oBAAjB97O,UAAU,GAC/H,MAAM,IAAIzB,MAAM,uJAQlB,GAL8B,oBAAnBs9O,GAAqD,qBAAbC,IACjDA,EAAWD,EACXA,OAAiB34O,GAGK,qBAAb44O,EAA0B,CACnC,GAAwB,oBAAbA,EACT,MAAM,IAAIv9O,MAAM,2CAGlB,OAAOu9O,EAASH,EAATG,CAAsBF,EAASC,GAGxC,GAAuB,oBAAZD,EACT,MAAM,IAAIr9O,MAAM,0CAGlB,IAAIw9O,EAAiBH,EACjBI,EAAeH,EACfI,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EASpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiBn4O,SAUrC,SAAS+8B,IACP,GAAIs7M,EACF,MAAM,IAAI59O,MAAM,wMAGlB,OAAOy9O,EA2BT,SAASK,EAAU9mM,GACjB,GAAwB,oBAAbA,EACT,MAAM,IAAIh3C,MAAM,2CAGlB,GAAI49O,EACF,MAAM,IAAI59O,MAAM,+TAGlB,IAAI+9O,GAAe,EAGnB,OAFAF,IACAF,EAAchyO,KAAKqrC,GACZ,WACL,GAAK+mM,EAAL,CAIA,GAAIH,EACF,MAAM,IAAI59O,MAAM,oKAGlB+9O,GAAe,EACfF,IACA,IAAIn4O,EAAQi4O,EAAcr4O,QAAQ0xC,GAClC2mM,EAAcvpN,OAAO1uB,EAAO,KA8BhC,SAAS0pG,EAASpqE,GAChB,IAAK2lH,EAAc3lH,GACjB,MAAM,IAAIhlC,MAAM,2EAGlB,GAA2B,qBAAhBglC,EAAOrzB,KAChB,MAAM,IAAI3R,MAAM,sFAGlB,GAAI49O,EACF,MAAM,IAAI59O,MAAM,sCAGlB,IACE49O,GAAgB,EAChBH,EAAeD,EAAeC,EAAcz4M,GAC5C,QACA44M,GAAgB,EAKlB,IAFA,IAAI7rI,EAAY2rI,EAAmBC,EAE1B54O,EAAI,EAAGA,EAAIgtG,EAAUpsG,OAAQZ,KAEpCiyC,EADe+6D,EAAUhtG,MAI3B,OAAOigC,EAcT,SAASg5M,EAAeC,GACtB,GAA2B,oBAAhBA,EACT,MAAM,IAAIj+O,MAAM,8CAGlBw9O,EAAiBS,EAKjB7uI,EAAS,CACPz9F,KAAMsrO,EAAY/pD,UAWtB,SAASupD,IACP,IAAIr9L,EAEA8+L,EAAiBJ,EACrB,OAAO1+L,EAAO,CASZ0+L,UAAW,SAAmB7gM,GAC5B,GAAwB,kBAAbA,GAAsC,OAAbA,EAClC,MAAM,IAAIr0B,UAAU,0CAGtB,SAASu1N,IACHlhM,EAASxO,MACXwO,EAASxO,KAAKnM,KAMlB,OAFA67M,IAEO,CACLl5M,YAFgBi5M,EAAeC,OAK7BpB,EAER,GAAK,WACH,OAAOp/O,MACNyhD,EASL,OAHAgwD,EAAS,CACPz9F,KAAMsrO,EAAYC,QAEbzoF,EAAQ,CACbrlD,SAAUA,EACV0uI,UAAWA,EACXx7M,SAAUA,EACV07M,eAAgBA,IACTjB,EAET,GAAKN,EAAYhoF,EAyBnB,SAAS2pF,EAA8B99O,EAAK0kC,GAC1C,IAAIq5M,EAAar5M,GAAUA,EAAOrzB,KAElC,MAAO,UADiB0sO,GAAc,WAAcj6O,OAAOi6O,GAAc,KAAQ,aAC3C,cAAiB/9O,EAAhD,iLA4TT,IA6YMg+O,EA7YFC,EAAe,GAiEfC,EAAsB,GA+BtBC,EAAuB,GAyHvBC,EAAuB,CACzBC,SAAS,GAyBPC,EAtBU,SAAiB37M,EAAO+B,GAKpC,YAJc,IAAV/B,IACFA,EAAQy7M,GAGF15M,EAAOrzB,MACb,IAAK,iBAED,MAAO,CACLgtO,QAAS35M,EAAO65M,WAItB,QAEI,OAAO57M,IAwBX67M,EAAgB,SAAuBn5O,GACzC,OAAOyW,MAAMyZ,KAAK,CAChBlwB,OAAQA,IACP,WACD,OAb2C4iB,EAapB,EAbyBC,EAatB,GAZrBnS,KAAKG,MAAMH,KAAKsmD,UAAYn0C,EAAMD,GAAOA,IAYhB9R,SAAS,IAbrB,IAAyB8R,EAAKC,KAc/CzU,KAAK,KAqBN40E,EAAU,SAAiBlwE,GAC7B,OAAOta,OAAOY,UAAU0X,SAAS/Y,KAAK+a,GAAKlT,MAAM,GAAI,IASnD+4J,EAAS,SAAgB3sJ,EAAM8G,GACjC,YAAe9T,IAAR8T,GAA6B,OAARA,GAAgBkwE,EAAQlwE,KAAS9G,GAuF3DotO,EAAW,SAAkBjxO,GAC/B,MAAqB,kBAAVA,EACFA,EAGFA,EAAMrS,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,WAO5FujP,GACEV,EAAQvpO,SAASwN,cAAc,OAC5B,SAAU3d,GACf,IAAIq6O,EAAer6O,EAAIzD,OACvBm9O,EAAMj9O,UAAY49O,EAGlB,IAFA,IAAIC,EAAaZ,EAAMttN,SAAS,GAEzBstN,EAAM37N,YACX27N,EAAM17N,YAAY07N,EAAM37N,YAG1B,OAAOu8N,IA6BPC,EAAc,SAAqB7iO,EAAGrhB,GACxC,OAAOqhB,EAAEogH,MAAQzhI,EAAEyhI,OAgDjB0iH,EAAc,SAAqB3mO,GACrC,OAAOqf,KAAKjf,MAAMif,KAAKtf,UAAUC,KAmB/B4mO,EArvBJ,SAAyBC,GAIvB,IAHA,IAAIC,EAAcphP,OAAOkW,KAAKirO,GAC1BE,EAAgB,GAEXz6O,EAAI,EAAGA,EAAIw6O,EAAY55O,OAAQZ,IAAK,CAC3C,IAAIzE,EAAMi/O,EAAYx6O,GAIO,oBAAlBu6O,EAASh/O,KAClBk/O,EAAcl/O,GAAOg/O,EAASh/O,IAIlC,IAOIm/O,EAPAC,EAAmBvhP,OAAOkW,KAAKmrO,GASnC,KA3DF,SAA4BF,GAC1BnhP,OAAOkW,KAAKirO,GAAU3xO,SAAQ,SAAUrN,GACtC,IAAI+8O,EAAUiC,EAASh/O,GAKvB,GAA4B,qBAJT+8O,OAAQ14O,EAAW,CACpCgN,KAAMsrO,EAAYC,OAIlB,MAAM,IAAIl9O,MAAM,YAAeM,EAAf,iRAGlB,GAEO,qBAFI+8O,OAAQ14O,EAAW,CAC5BgN,KAAMsrO,EAAYE,yBAElB,MAAM,IAAIn9O,MAAM,YAAeM,EAAf,6EAA0G28O,EAAYC,KAAtH,kTA8ClByC,CAAmBH,GACnB,MAAOnnO,GACPonO,EAAsBpnO,EAGxB,OAAO,SAAqB4qB,EAAO+B,GAKjC,QAJc,IAAV/B,IACFA,EAAQ,IAGNw8M,EACF,MAAMA,EAUR,IAPW,IAIPG,GAAa,EACbC,EAAY,GAEPl3N,EAAK,EAAGA,EAAK+2N,EAAiB/5O,OAAQgjB,IAAM,CACnD,IAAI6sB,EAAOkqM,EAAiB/2N,GACxB00N,EAAUmC,EAAchqM,GACxBsqM,EAAsB78M,EAAMuS,GAC5BuqM,EAAkB1C,EAAQyC,EAAqB96M,GAEnD,GAA+B,qBAApB+6M,EAAiC,CAC1C,IAAIC,EAAe5B,EAA8B5oM,EAAMxQ,GACvD,MAAM,IAAIhlC,MAAMggP,GAGlBH,EAAUrqM,GAAQuqM,EAClBH,EAAaA,GAAcG,IAAoBD,EAGjD,OAAOF,EAAaC,EAAY58M,GAyrBnBg9M,CAAgB,CAC/BzrM,MAxfF,SAAqBvR,EAAO+B,GAK1B,YAJc,IAAV/B,IACFA,EAAQs7M,GAGFv5M,EAAOrzB,MACb,IAAK,WAeD,MAZe,GAAG2C,OAAO2uB,EAAO,CAAC,CAC/B8P,GAAI/N,EAAO+N,GACXmtM,SAAUl7M,EAAOk7M,SACjBC,QAASn7M,EAAOm7M,QAChBryO,MAAOk3B,EAAOl3B,MACd9C,MAAOg6B,EAAOh6B,MACdqxI,QAAQ,EACR+jG,aAAa,EACbC,iBAAkBr7M,EAAOq7M,iBACzB5jN,YAAauI,EAAOvI,cAAe,EACnCl8B,QAAS,QAEKomB,KAAI,SAAUlO,GAC5B,IAAImpB,EAAOnpB,EAEX,OADAmpB,EAAKw+M,aAAc,EACZx+M,KAIb,IAAK,cAGD,OAAOqB,EAAMtc,KAAI,SAAUlO,GACzB,IAAImpB,EAAOnpB,EAMX,OAJImpB,EAAKmR,KAAO/N,EAAO+N,KACrBnR,EAAKy6G,QAAS,GAGTz6G,KAIb,IAAK,iBAED,OAAOqB,EAAMtc,KAAI,SAAUlO,GACzB,IAAImpB,EAAOnpB,EAMX,OAJImpB,EAAKmR,KAAO/N,EAAO+N,KACrBnR,EAAKw+M,YAAcp7M,EAAOo7M,aAGrBx+M,KAIb,QAEI,OAAOqB,IAgcb23G,OAxbF,SAAgB33G,EAAO+B,GAKrB,YAJc,IAAV/B,IACFA,EAAQu7M,GAGFx5M,EAAOrzB,MACb,IAAK,YAED,MAAO,GAAG2C,OAAO2uB,EAAO,CAAC,CACvB8P,GAAI/N,EAAO+N,GACXjlC,MAAOk3B,EAAOl3B,MACduuI,OAAQr3G,EAAOq3G,OACfjpH,SAAU4R,EAAO5R,YAIvB,IAAK,gBAED,MAAO,GAGX,QAEI,OAAO6P,IAkabq9M,QA1ZF,SAAyBr9M,EAAO+B,GAK9B,YAJc,IAAV/B,IACFA,EAAQw7M,GAGFz5M,EAAOrzB,MACb,IAAK,aAOD,MAAO,GAAG2C,OAAO2uB,EAAO,CAAC,CACvB8P,GAAI/N,EAAO+N,GACXwtM,UAAWv7M,EAAOu7M,UAClBJ,QAASn7M,EAAOm7M,QAChBryO,MAAOk3B,EAAOl3B,MACd9C,MAAOg6B,EAAOh6B,OAASg6B,EAAOl3B,MAC9BslB,SAAU4R,EAAO5R,WAAY,EAC7BlnB,UAAU,EACVmwI,QAAQ,EACR3f,MAAO,KACP2jH,iBAAkBr7M,EAAOq7M,iBACzB5jN,YAAauI,EAAOvI,cAAe,EACnCl8B,QAAS,QAIf,IAAK,WAGD,OAAIykC,EAAOw7M,gBACFv9M,EAAMtc,KAAI,SAAUlO,GACzB,IAAIgoO,EAAShoO,EAEb,OADAgoO,EAAOpkG,OAASr3G,EAAOq3G,OAChBokG,KAMPz7M,EAAOk7M,UAAY,EACdj9M,EAAMtc,KAAI,SAAUlO,GACzB,IAAIgoO,EAAShoO,EAMb,OAJIgoO,EAAO1tM,KAAOh9B,SAASivB,EAAOk7M,SAAU,MAC1CO,EAAOv0O,UAAW,GAGbu0O,KAIJx9M,EAGX,IAAK,cAID,OAAI+B,EAAOk7M,UAAY,EACdj9M,EAAMtc,KAAI,SAAUlO,GACzB,IAAIgoO,EAAShoO,EAMb,OAJIgoO,EAAO1tM,KAAOh9B,SAASivB,EAAOk7M,SAAU,MAC1CO,EAAOv0O,UAAW,GAGbu0O,KAIJx9M,EAGX,IAAK,iBAED,OAAOA,EAAMtc,KAAI,SAAUlO,GACzB,IAAIgoO,EAAShoO,EAcb,OAXAgoO,EAAOpkG,OAASr3G,EAAOL,QAAQrP,MAAK,SAAU8pB,GAC5C,IAAIxd,EAAOwd,EAAKxd,KACZ86F,EAAQt9E,EAAKs9E,MAEjB,OAAI96F,EAAKmR,KAAO0tM,EAAO1tM,KACrB0tM,EAAO/jH,MAAQA,GACR,MAKJ+jH,KAIb,IAAK,mBAED,OAAOx9M,EAAMtc,KAAI,SAAUlO,GACzB,IAAIgoO,EAAShoO,EAEb,OADAgoO,EAAOpkG,OAASr3G,EAAOq3G,OAChBokG,KAIb,IAAK,gBAED,OAAOhC,EAGX,QAEI,OAAOx7M,IA0Sby9M,QAAS9B,IAoBPU,EAjBuB,SAAqBqB,EAAa37M,GAC3D,IAAI/B,EAAQ09M,EAKZ,GAAoB,cAAhB37M,EAAOrzB,KACTsxB,OAAQt+B,OACH,GAAoB,aAAhBqgC,EAAOrzB,KAChB,OAAOytO,EAAYp6M,EAAO/B,OAG5B,OAAOo8M,EAAWp8M,EAAO+B,IAO3B,SAASuoB,EAAkBhrD,EAAQg3C,GACjC,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAgBlD,IAAIozL,EAA2B,WAC7B,SAASC,IACPljP,KAAKmjP,OAAS1D,EAAYkC,EAAU1qO,OAAOmsO,8BAAgCnsO,OAAOmsO,gCASpF,IAvBoBj1M,EAAauvB,EAAYC,EAuBzCC,EAASslL,EAAM9hP,UAqLnB,OAnLAw8D,EAAOuiL,UAAY,SAAmBx+N,GACpC3hB,KAAKmjP,OAAOhD,UAAUx+N,IASxBi8C,EAAO6zC,SAAW,SAAkBpqE,GAClCrnC,KAAKmjP,OAAO1xI,SAASpqE,IAavBu2B,EAAOsjL,UAAY,WACjB,OAAOlhP,KAAKslC,MAAMy9M,QAAQ/B,SAS5BpjL,EAAOylL,cAAgB,SAAuBjuM,GAC5C,OAAOp1C,KAAKsjP,cAActzM,MAAK,SAAU8yM,GACvC,OAAOA,EAAO1tM,KAAOh9B,SAASg9B,EAAI,QAUtCwoB,EAAO2lL,aAAe,SAAsBnuM,GAC1C,OAAOp1C,KAAKi9I,OAAOjtG,MAAK,SAAUsmC,GAChC,OAAOA,EAAMlhC,KAAOA,MAzEJjH,EA6EP+0M,GA7EoBxlL,EA6Eb,CAAC,CACnB/6D,IAAK,QACLjC,IAAK,WACH,OAAOV,KAAKmjP,OAAOx+M,aAOpB,CACDhiC,IAAK,QACLjC,IAAK,WACH,OAAOV,KAAKslC,MAAMuR,QAOnB,CACDl0C,IAAK,cACLjC,IAAK,WACH,OAAOV,KAAK62C,MAAM9d,QAAO,SAAUkL,GACjC,OAAuB,IAAhBA,EAAKy6G,YAQf,CACD/7I,IAAK,yBACLjC,IAAK,WACH,OAAOV,KAAK62C,MAAM9d,QAAO,SAAUkL,GACjC,OAAOA,EAAKy6G,QAAUz6G,EAAKw+M,iBAQ9B,CACD9/O,IAAK,UACLjC,IAAK,WACH,OAAOV,KAAKslC,MAAMq9M,UAOnB,CACDhgP,IAAK,gBACLjC,IAAK,WACH,OAAOV,KAAK2iP,QAAQ5pN,QAAO,SAAU+pN,GACnC,OAAyB,IAAlBA,EAAOpkG,YAQjB,CACD/7I,IAAK,oBACLjC,IAAK,WACH,OAAOV,KAAK2iP,QAAQ5pN,QAAO,SAAU+pN,GACnC,OAA2B,IAApBA,EAAOrtN,cAQjB,CACD9yB,IAAK,oBACLjC,IAAK,WACH,OAAOV,KAAKwjP,kBAAkBzqN,QAAO,SAAU+pN,GAC7C,OAA8B,IAAvBA,EAAOhkN,iBAQjB,CACDn8B,IAAK,oBACLjC,IAAK,WACH,MAAO,GAAGiW,OAAO3W,KAAK2iP,SAAS70M,UAAUkC,MAAK,SAAU8yM,GACtD,OAA8B,IAAvBA,EAAOhkN,iBAQjB,CACDn8B,IAAK,SACLjC,IAAK,WACH,OAAOV,KAAKslC,MAAM23G,SAOnB,CACDt6I,IAAK,eACLjC,IAAK,WACH,IAAIu8I,EAASj9I,KAAKi9I,OACd0lG,EAAU3iP,KAAK2iP,QACnB,OAAO1lG,EAAOlkH,QAAO,SAAUu9C,GAC7B,IAAI5xC,GAA4B,IAAjB4xC,EAAMooE,SAAsC,IAAnBpoE,EAAM7gD,SAC1CguN,EAAmBd,EAAQhrN,MAAK,SAAUmrN,GAC5C,OAAyB,IAAlBA,EAAOpkG,SAAuC,IAApBokG,EAAOrtN,YAE1C,OAAOiP,GAAY++M,IAClB,SAvMS7zL,EAAkBzhB,EAAY/sC,UAAWs8D,GACrDC,GAAa/N,EAAkBzhB,EAAawvB,GA0MzCulL,EAhMsB,GAoM/B,SAASQ,EAA0B9+O,EAAQg3C,GACzC,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAelD,IAAI8zL,EAAwB,WAQ1B,SAASA,EAASliM,GAChB,IAAI1kC,EAAU0kC,EAAK1kC,QACf/I,EAAOytC,EAAKztC,KACZkkC,EAAauJ,EAAKvJ,WACtBl4C,KAAK+c,QAAUA,EACf/c,KAAKk4C,WAAaA,EAClBl4C,KAAKgU,KAAOA,EACZhU,KAAK0kC,UAAW,EAQlB,IAlC4ByJ,EAAauvB,EAAYC,EAkCjDC,EAAS+lL,EAASviP,UAyCtB,OAlCAw8D,EAAOgmL,SAAW,SAAkBrjN,GAClC,OAAOvgC,KAAK+c,QAAQzY,cAAci8B,IAQpCq9B,EAAOwpG,KAAO,WAIZ,OAHApnK,KAAK+c,QAAQ1X,UAAUC,IAAItF,KAAKk4C,WAAW2rM,aAC3C7jP,KAAK+c,QAAQtZ,aAAa,gBAAiB,QAC3CzD,KAAK0kC,UAAW,EACT1kC,MAQT49D,EAAOsqG,KAAO,WAIZ,OAHAloK,KAAK+c,QAAQ1X,UAAUG,OAAOxF,KAAKk4C,WAAW2rM,aAC9C7jP,KAAK+c,QAAQtZ,aAAa,gBAAiB,SAC3CzD,KAAK0kC,UAAW,EACT1kC,MAlEmBmuC,EAqEPw1M,GArEoBjmL,EAqEV,CAAC,CAC9B/6D,IAAK,wBACLjC,IAAK,WACH,OAAOV,KAAK+c,QAAQzM,wBAAwB2rB,YAvEhCynN,EAA0Bv1M,EAAY/sC,UAAWs8D,GAC7DC,GAAa+lL,EAA0Bv1M,EAAawvB,GAyEjDgmL,EAhEmB,GAyGxBG,EAAiB,CACnBjtM,MAAO,GACP8rM,QAAS,GACTztB,QAAQ,EACR6uB,mBAAoB,EACpBC,cAAe,EACfC,UAAU,EACVC,cAAe,KACfC,aAAa,EACbC,kBAAkB,EAClBC,WAAW,EACXC,uBAAuB,EACvBC,UAAW,IACX7jK,OAAO,EACP8jK,eAAe,EACfC,eAAe,EACfC,YAAa,EACbC,kBAAmB,EACnBC,aAAc,CAAC,QAAS,SACxBpiO,SAAU,OACVqiO,qBAAqB,EACrB/H,YAAY,EACZgI,iBAAiB,EACjBvT,OAjegB,SAAqB9vL,EAAMq1G,GAC3C,IAAI3mJ,EAAQsxC,EAAKtxC,MACb40O,EAAatjM,EAAKp0C,MAClBA,OAAuB,IAAf03O,EAAwB50O,EAAQ40O,EACxC7pD,EAASpkC,EAAM3mJ,MACf60O,EAAcluF,EAAMzpJ,MACpB43O,OAAyB,IAAhBD,EAAyB9pD,EAAS8pD,EAC/C,OAAO33O,EAAM63O,cAAcD,EAAQ,GAAI,CACrCE,YAAa,OACbC,mBAAmB,EACnBC,SAAS,KAwdXvmN,aAAa,EACbwmN,iBAAkB,KAClBC,uBAAwB,KACxBC,aAAc,KACdC,YAAa,KACbC,sBAAuB,OACvBC,YAAa,aACbC,cAAe,mBACfC,cAAe,4BACfC,eAAgB,kBAChBC,eAAgB,kCAChBC,kBAAmB,wDACnBC,YAAa,SAAqB91O,GAChC,MAAO,0BAA6BixO,EAASjxO,GAAS,SAExD+1O,YAAa,SAAqBlC,GAChC,MAAO,QAAUA,EAAe,wBAElCmC,cAAe,SAAuBlrD,EAAQC,GAC5C,OAAOD,IAAWC,GAEpBkrD,YAAa,CACX/I,cAAc,GAEhBgJ,eAAgB,KAChBC,0BAA2B,KAC3BpuM,WAhFuB,CACvBquM,eAAgB,UAChBC,eAAgB,iBAChB1+O,MAAO,iBACP2+O,YAAa,yBACbj0F,KAAM,gBACNk0F,UAAW,0BACXC,WAAY,wBACZC,aAAc,0BACd3iN,KAAM,gBACN4iN,eAAgB,4BAChBC,aAAc,0BACdC,WAAY,wBACZjoN,YAAa,uBACbw3C,MAAO,iBACP0wK,aAAc,mBACdnjM,OAAQ,kBACRggM,YAAa,YACboD,WAAY,aACZC,UAAW,UACXC,cAAe,cACfC,iBAAkB,iBAClBC,cAAe,cACfC,aAAc,aACdC,aAAc,aACdC,UAAW,iBACXC,UAAW,mBAwDTC,EACY,eADZA,EAEY,eAFZA,EAGM,SAHNA,EAIM,SAJNA,EAKM,SALNA,EAMO,UANPA,EAOU,aAPVA,EAQa,gBARbA,EASe,kBAEfC,EACU,aADVA,EAEc,iBAFdA,EAGgB,mBAHhBA,EAIa,gBAJbA,EAKS,YALTA,EAMQ,WANRA,EAOW,cAPXA,EAQc,iBAGdC,EACQ,GADRA,EAEU,EAFVA,EAGS,GAHTA,EAIK,GAJLA,GAKO,GALPA,GAMM,GANNA,GAOQ,GAPRA,GAQW,GARXA,GASa,GAEbC,GAAY,OACZC,GAAkB,aAClBC,GAAuB,kBAQvBC,GAAmC,WASrC,SAASC,EAAUxmM,GACjB,IAAI1kC,EAAU0kC,EAAK1kC,QACf/I,EAAOytC,EAAKztC,KACZkkC,EAAauJ,EAAKvJ,WAClB11B,EAAWi/B,EAAKj/B,SACpBxiB,KAAK+c,QAAUA,EACf/c,KAAKk4C,WAAaA,EAClBl4C,KAAKgU,KAAOA,EACZhU,KAAKwiB,SAAWA,EAChBxiB,KAAKiC,QAAS,EACdjC,KAAKkoP,WAAY,EACjBloP,KAAKmoP,YAAa,EAClBnoP,KAAKsnK,YAAa,EAClBtnK,KAAKkhP,WAAY,EACjBlhP,KAAKooP,SAAWpoP,KAAKooP,SAAS5zO,KAAKxU,MACnCA,KAAKqoP,QAAUroP,KAAKqoP,QAAQ7zO,KAAKxU,MAGnC,IAAI49D,EAASqqL,EAAU7mP,UAuJvB,OArJAw8D,EAAO0qL,kBAAoB,WACzBtoP,KAAK+c,QAAQjX,iBAAiB,QAAS9F,KAAKooP,UAC5CpoP,KAAK+c,QAAQjX,iBAAiB,OAAQ9F,KAAKqoP,UAG7CzqL,EAAO2qL,qBAAuB,WAC5BvoP,KAAK+c,QAAQhX,oBAAoB,QAAS/F,KAAKooP,UAC/CpoP,KAAK+c,QAAQhX,oBAAoB,OAAQ/F,KAAKqoP,UAUhDzqL,EAAO4qL,WAAa,SAAoBC,GACtC,GAA2B,kBAAhBA,EACT,OAAO,EAKT,IAAID,GAAa,EAQjB,MANsB,SAAlBxoP,KAAKwiB,SACPgmO,GAAcvxO,OAAOk+B,WAAW,iBAAmBszM,EAAc,GAAK,OAAOxsM,QAClD,QAAlBj8C,KAAKwiB,WACdgmO,GAAa,GAGRA,GAOT5qL,EAAO8qL,oBAAsB,SAA6BC,GACxD3oP,KAAK+c,QAAQtZ,aAAa,wBAAyBklP,IAGrD/qL,EAAOgrL,uBAAyB,WAC9B5oP,KAAK+c,QAAQpZ,gBAAgB,0BAO/Bi6D,EAAOn8D,KAAO,SAAcgnP,GAC1BzoP,KAAK+c,QAAQ1X,UAAUC,IAAItF,KAAKk4C,WAAWgvM,WAC3ClnP,KAAK+c,QAAQtZ,aAAa,gBAAiB,QAC3CzD,KAAKiC,QAAS,EAEVjC,KAAKwoP,WAAWC,KAClBzoP,KAAK+c,QAAQ1X,UAAUC,IAAItF,KAAKk4C,WAAWovM,cAC3CtnP,KAAKkoP,WAAY,IAIrBtqL,EAAO77D,MAAQ,WACb/B,KAAK+c,QAAQ1X,UAAUG,OAAOxF,KAAKk4C,WAAWgvM,WAC9ClnP,KAAK+c,QAAQtZ,aAAa,gBAAiB,SAC3CzD,KAAK4oP,yBACL5oP,KAAKiC,QAAS,EAEVjC,KAAKkoP,YACPloP,KAAK+c,QAAQ1X,UAAUG,OAAOxF,KAAKk4C,WAAWovM,cAC9CtnP,KAAKkoP,WAAY,IAIrBtqL,EAAO3qC,MAAQ,WACRjzB,KAAKmoP,YACRnoP,KAAK+c,QAAQkW,SAIjB2qC,EAAOirL,cAAgB,WACrB7oP,KAAK+c,QAAQ1X,UAAUC,IAAItF,KAAKk4C,WAAW+uM,aAG7CrpL,EAAOkrL,iBAAmB,WACxB9oP,KAAK+c,QAAQ1X,UAAUG,OAAOxF,KAAKk4C,WAAW+uM,aAGhDrpL,EAAOx9C,OAAS,WACdpgB,KAAK+c,QAAQ1X,UAAUG,OAAOxF,KAAKk4C,WAAWivM,eAC9CnnP,KAAK+c,QAAQpZ,gBAAgB,iBAEzB3D,KAAKgU,OAAS8zO,IAChB9nP,KAAK+c,QAAQtZ,aAAa,WAAY,KAGxCzD,KAAKsnK,YAAa,GAGpB1pG,EAAO19C,QAAU,WACflgB,KAAK+c,QAAQ1X,UAAUC,IAAItF,KAAKk4C,WAAWivM,eAC3CnnP,KAAK+c,QAAQtZ,aAAa,gBAAiB,QAEvCzD,KAAKgU,OAAS8zO,IAChB9nP,KAAK+c,QAAQtZ,aAAa,WAAY,MAGxCzD,KAAKsnK,YAAa,GAOpB1pG,EAAO56C,KAAO,SAAcjG,IAvyBb,SAAcA,EAASwI,QACtB,IAAZA,IACFA,EAAUnO,SAASwN,cAAc,QAG/B7H,EAAQoV,YACVpV,EAAQqI,WAAW8M,aAAa3M,EAASxI,EAAQoV,aAEjDpV,EAAQqI,WAAWQ,YAAYL,GAG1BA,EAAQK,YAAY7I,GA6xBzBgsO,CAAWhsO,EAAS/c,KAAK+c,UAO3B6gD,EAAO0L,OAAS,SAAgBvsD,GAE9B/c,KAAK+c,QAAQqI,WAAW8M,aAAanV,EAAS/c,KAAK+c,SAEnD/c,KAAK+c,QAAQqI,WAAWH,YAAYjlB,KAAK+c,UAG3C6gD,EAAOorL,gBAAkB,WACvBhpP,KAAK+c,QAAQ1X,UAAUC,IAAItF,KAAKk4C,WAAWqvM,cAC3CvnP,KAAK+c,QAAQtZ,aAAa,YAAa,QACvCzD,KAAKkhP,WAAY,GAGnBtjL,EAAOqrL,mBAAqB,WAC1BjpP,KAAK+c,QAAQ1X,UAAUG,OAAOxF,KAAKk4C,WAAWqvM,cAC9CvnP,KAAK+c,QAAQpZ,gBAAgB,aAC7B3D,KAAKkhP,WAAY,GAGnBtjL,EAAOwqL,SAAW,WAChBpoP,KAAKmoP,YAAa,GAGpBvqL,EAAOyqL,QAAU,WACfroP,KAAKmoP,YAAa,GAGbF,EAlL8B,GAsLvC,SAASiB,GAAuBtkP,EAAQg3C,GACtC,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAelD,IAAIs5L,GAA2B,WAS7B,SAASC,EAAM3nM,GACb,IAAI1kC,EAAU0kC,EAAK1kC,QACf/I,EAAOytC,EAAKztC,KACZkkC,EAAauJ,EAAKvJ,WAClBmxM,EAAe5nM,EAAK4nM,aACxBrpP,KAAK+c,QAAUA,EACf/c,KAAKgU,KAAOA,EACZhU,KAAKk4C,WAAaA,EAClBl4C,KAAKqpP,aAAeA,EACpBrpP,KAAKmoP,WAAanoP,KAAK+c,UAAY3F,SAAS8c,cAC5Cl0B,KAAKsnK,WAAavqJ,EAAQ0Y,SAC1Bz1B,KAAKspP,SAAWtpP,KAAKspP,SAAS90O,KAAKxU,MACnCA,KAAKupP,SAAWvpP,KAAKupP,SAAS/0O,KAAKxU,MACnCA,KAAKooP,SAAWpoP,KAAKooP,SAAS5zO,KAAKxU,MACnCA,KAAKqoP,QAAUroP,KAAKqoP,QAAQ7zO,KAAKxU,MAOnC,IAzCyBmuC,EAAauvB,EAAYC,EAyC9CC,EAASwrL,EAAMhoP,UAiJnB,OA/IAw8D,EAAO0qL,kBAAoB,WACzBtoP,KAAK+c,QAAQjX,iBAAiB,QAAS9F,KAAKspP,UAC5CtpP,KAAK+c,QAAQjX,iBAAiB,QAAS9F,KAAKupP,SAAU,CACpDhyO,SAAS,IAEXvX,KAAK+c,QAAQjX,iBAAiB,QAAS9F,KAAKooP,SAAU,CACpD7wO,SAAS,IAEXvX,KAAK+c,QAAQjX,iBAAiB,OAAQ9F,KAAKqoP,QAAS,CAClD9wO,SAAS,KAIbqmD,EAAO2qL,qBAAuB,WAC5BvoP,KAAK+c,QAAQhX,oBAAoB,QAAS/F,KAAKupP,SAAU,CACvDhyO,SAAS,IAEXvX,KAAK+c,QAAQhX,oBAAoB,QAAS/F,KAAKspP,UAC/CtpP,KAAK+c,QAAQhX,oBAAoB,QAAS/F,KAAKooP,SAAU,CACvD7wO,SAAS,IAEXvX,KAAK+c,QAAQhX,oBAAoB,OAAQ/F,KAAKqoP,QAAS,CACrD9wO,SAAS,KAIbqmD,EAAOx9C,OAAS,WACdpgB,KAAK+c,QAAQpZ,gBAAgB,YAC7B3D,KAAKsnK,YAAa,GAGpB1pG,EAAO19C,QAAU,WACflgB,KAAK+c,QAAQtZ,aAAa,WAAY,IACtCzD,KAAKsnK,YAAa,GAGpB1pG,EAAO3qC,MAAQ,WACRjzB,KAAKmoP,YACRnoP,KAAK+c,QAAQkW,SAIjB2qC,EAAOtlC,KAAO,WACRt4B,KAAKmoP,YACPnoP,KAAK+c,QAAQub,QAUjBslC,EAAOhpD,MAAQ,SAAe63L,GAa5B,YAZiB,IAAbA,IACFA,GAAW,GAGTzsM,KAAK+c,QAAQ5M,QACfnQ,KAAK+c,QAAQ5M,MAAQ,IAGnBs8L,GACFzsM,KAAKysM,WAGAzsM,MAQT49D,EAAO6uI,SAAW,WAEhB,IAAI+8C,EAAgBxpP,KAAK+c,QACrBpM,EAAQ64O,EAAc74O,MACtBR,EAAQq5O,EAAcr5O,MACtB2uB,EAAc0qN,EAAc1qN,YAChCnuB,EAAM84O,SAAW3qN,EAAY92B,OAAS,EAAI,KAC1C2I,EAAM6c,MAAQrd,EAAMnI,OAAS,EAAI,MAOnC41D,EAAO8qL,oBAAsB,SAA6BC,GACxD3oP,KAAK+c,QAAQtZ,aAAa,wBAAyBklP,IAGrD/qL,EAAOgrL,uBAAyB,WAC9B5oP,KAAK+c,QAAQpZ,gBAAgB,0BAG/Bi6D,EAAO2rL,SAAW,WACZvpP,KAAKgU,OAAS8zO,IAChB9nP,KAAKysM,YAQT7uI,EAAO0rL,SAAW,SAAkBh7O,GAC9BtO,KAAKqpP,cACP/6O,EAAMkqB,kBAIVolC,EAAOwqL,SAAW,WAChBpoP,KAAKmoP,YAAa,GAGpBvqL,EAAOyqL,QAAU,WACfroP,KAAKmoP,YAAa,GAjKKh6M,EAoKPi7M,GApKoB1rL,EAoKb,CAAC,CACxB/6D,IAAK,cACL8C,IAAK,SAAaq5B,GAChB9+B,KAAK+c,QAAQ+hB,YAAcA,IAM5B,CACDn8B,IAAK,QACLjC,IAAK,WACH,OAAO0gP,EAASphP,KAAK+c,QAAQ5M,QAM/B1K,IAAK,SAAa0K,GAChBnQ,KAAK+c,QAAQ5M,MAAQA,OAtLT+4O,GAAuB/6M,EAAY/sC,UAAWs8D,GAC1DC,GAAaurL,GAAuB/6M,EAAawvB,GAwL9CyrL,EA/KsB,GAuL3BM,GAAyB,WAI3B,SAASC,EAAKloM,GACZ,IAAI1kC,EAAU0kC,EAAK1kC,QACnB/c,KAAK+c,QAAUA,EACf/c,KAAK4pP,UAAY5pP,KAAK+c,QAAQw+B,UAC9Bv7C,KAAKmP,OAASnP,KAAK+c,QAAQ0e,aAG7B,IAAImiC,EAAS+rL,EAAKvoP,UAqHlB,OAnHAw8D,EAAOhpD,MAAQ,WACb5U,KAAK+c,QAAQrZ,UAAY,IAO3Bk6D,EAAOnsB,OAAS,SAAgB1sB,GAC9B/kB,KAAK+c,QAAQ6I,YAAYb,IAQ3B64C,EAAOgmL,SAAW,SAAkBrjN,GAClC,OAAOvgC,KAAK+c,QAAQzY,cAAci8B,IAOpCq9B,EAAOisL,YAAc,WACnB,OAAO7pP,KAAK+c,QAAQ+sO,iBAGtBlsL,EAAOmsL,YAAc,WACnB/pP,KAAK+c,QAAQw+B,UAAY,GAQ3BqiB,EAAOosL,qBAAuB,SAA8BjtO,EAASowC,GACnE,IAAIrtD,EAAQE,KAEZ,GAAK+c,EAAL,CAIA,IAAIktO,EAAajqP,KAAK+c,QAAQ0e,aAE1ByuN,EAAqBlqP,KAAK+c,QAAQw+B,UAAY0uM,EAC9CE,EAAgBptO,EAAQ0e,aAExB2uN,EAAartO,EAAQs4C,UAAY80L,EAEjCpO,EAAc5uL,EAAY,EAAIntD,KAAK+c,QAAQw+B,UAAY6uM,EAAaF,EAAqBntO,EAAQs4C,UACrGpyD,uBAAsB,WACpBnD,EAAMuqP,eAAetO,EAAa5uL,QAUtCyQ,EAAO0sL,YAAc,SAAqBV,EAAWW,EAAUxO,GAC7D,IAAIhvC,GAAUgvC,EAAc6N,GAAaW,EACrChhM,EAAWwjJ,EAAS,EAAIA,EAAS,EACrC/sM,KAAK+c,QAAQw+B,UAAYquM,EAAYrgM,GASvCqU,EAAO4sL,UAAY,SAAmBZ,EAAWW,EAAUxO,GACzD,IAAIhvC,GAAU68C,EAAY7N,GAAewO,EACrChhM,EAAWwjJ,EAAS,EAAIA,EAAS,EACrC/sM,KAAK+c,QAAQw+B,UAAYquM,EAAYrgM,GAQvCqU,EAAOysL,eAAiB,SAAwBtO,EAAa5uL,GAC3D,IAAI6kD,EAAShyG,KAGTyqP,EAAsBzqP,KAAK+c,QAAQw+B,UACnCmvM,GAAoB,EAEpBv9L,EAAY,GACdntD,KAAKsqP,YAAYG,EArfD,EAqfgC1O,GAE5C0O,EAAsB1O,IACxB2O,GAAoB,KAGtB1qP,KAAKwqP,UAAUC,EA3fC,EA2f8B1O,GAE1C0O,EAAsB1O,IACxB2O,GAAoB,IAIpBA,GACFznP,uBAAsB,WACpB+uG,EAAOq4I,eAAetO,EAAa5uL,OAKlCw8L,EAhIoB,GAoI7B,SAASgB,GAAiC/lP,EAAQg3C,GAChD,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAelD,IAAI+6L,GAA8C,WAOhD,SAASC,EAAeppM,GACtB,IAAI1kC,EAAU0kC,EAAK1kC,QACfm7B,EAAauJ,EAAKvJ,WAItB,GAHAl4C,KAAK+c,QAAUA,EACf/c,KAAKk4C,WAAaA,IAEZn7B,aAAmB+tO,qBAAuB/tO,aAAmBmoK,mBACjE,MAAM,IAAIj6J,UAAU,0BAGtBjrB,KAAKsnK,YAAa,EAGpB,IA/BmCn5H,EAAauvB,EAAYC,EA+BxDC,EAASitL,EAAezpP,UA2E5B,OAzEAw8D,EAAOmtL,QAAU,WAEf/qP,KAAK+c,QAAQ1X,UAAUC,IAAItF,KAAKk4C,WAAWpwC,OAC3C9H,KAAK+c,QAAQm8D,QAAS,EAEtBl5E,KAAK+c,QAAQwU,UAAY,EAEzB,IAAIy5N,EAAYhrP,KAAK+c,QAAQ1Z,aAAa,SAEtC2nP,GACFhrP,KAAK+c,QAAQtZ,aAAa,yBAA0BunP,GAGtDhrP,KAAK+c,QAAQtZ,aAAa,cAAe,WAG3Cm6D,EAAOqtL,OAAS,WAEdjrP,KAAK+c,QAAQ1X,UAAUG,OAAOxF,KAAKk4C,WAAWpwC,OAC9C9H,KAAK+c,QAAQm8D,QAAS,EACtBl5E,KAAK+c,QAAQpZ,gBAAgB,YAE7B,IAAIqnP,EAAYhrP,KAAK+c,QAAQ1Z,aAAa,0BAEtC2nP,GACFhrP,KAAK+c,QAAQpZ,gBAAgB,0BAC7B3D,KAAK+c,QAAQtZ,aAAa,QAASunP,IAEnChrP,KAAK+c,QAAQpZ,gBAAgB,SAG/B3D,KAAK+c,QAAQpZ,gBAAgB,eAG7B3D,KAAK+c,QAAQ5M,MAAQnQ,KAAK+c,QAAQ5M,OAGpCytD,EAAOx9C,OAAS,WACdpgB,KAAK+c,QAAQpZ,gBAAgB,YAC7B3D,KAAK+c,QAAQ0Y,UAAW,EACxBz1B,KAAKsnK,YAAa,GAGpB1pG,EAAO19C,QAAU,WACflgB,KAAK+c,QAAQtZ,aAAa,WAAY,IACtCzD,KAAK+c,QAAQ0Y,UAAW,EACxBz1B,KAAKsnK,YAAa,GAGpB1pG,EAAO7wC,aAAe,SAAsBosB,EAAW/oC,IA9mCrC,SAAuB2M,EAAS/I,EAAMk3O,QACrC,IAAfA,IACFA,EAAa,MAGf,IAAI58O,EAAQ,IAAIwmC,YAAY9gC,EAAM,CAChCwmC,OAAQ0wM,EACRzwM,SAAS,EACTC,YAAY,IAEP39B,EAAQqU,cAAc9iB,GAqmC3B8iB,CAAcpxB,KAAK+c,QAASo8B,EAAW/oC,IAnFN+9B,EAsFP08M,GAtFoBntL,EAsFJ,CAAC,CAC3C/6D,IAAK,WACLjC,IAAK,WACH,MAAuC,WAAhCV,KAAK+c,QAAQqd,QAAQ0oN,SAE7B,CACDngP,IAAK,MACLjC,IAAK,WACH,OAAOV,KAAK+c,QAAQu6C,MAErB,CACD30D,IAAK,QACLjC,IAAK,WACH,OAAOV,KAAK+c,QAAQ5M,OAEtB1K,IAAK,SAAa0K,GAEhBnQ,KAAK+c,QAAQ5M,MAAQA,OAtGTw6O,GAAiCx8M,EAAY/sC,UAAWs8D,GACpEC,GAAagtL,GAAiCx8M,EAAawvB,GAwGxDktL,EA/FyC,GAmGlD,SAASM,GAA+BvmP,EAAQg3C,GAC9C,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAqBlD,IAAIu7L,GAA4B,SAAUC,GAX1C,IAAwB10M,EAAUC,EANCzI,EAAauvB,EAAYC,EA4B1D,SAASytL,EAAa3pM,GACpB,IAAI3hD,EAEAid,EAAU0kC,EAAK1kC,QACfm7B,EAAauJ,EAAKvJ,WAClBqsM,EAAY9iM,EAAK8iM,UAMrB,OALAzkP,EAAQurP,EAAgBtrP,KAAKC,KAAM,CACjC+c,QAASA,EACTm7B,WAAYA,KACRl4C,MACAukP,UAAYA,EACXzkP,EA0BT,OA3DgC82C,EAYHy0M,GAZP10M,EAYPy0M,GAXNhqP,UAAYZ,OAAO4lC,OAAOwQ,EAAWx1C,WAC9Cu1C,EAASv1C,UAAUuY,YAAcg9B,EACjCA,EAASjB,UAAYkB,EATYzI,EA8CPi9M,GA9CoB1tL,EA8CN,CAAC,CACvC/6D,IAAK,QACLjC,IAAK,WACH,OAAOV,KAAK+c,QAAQ5M,OAMtB1K,IAAK,SAAaoxC,GAChB,IAIIy0M,EAJaz0M,EAAM7tB,KAAI,SAAU8tI,GAEnC,OADYA,EAAM3mJ,SAGUiG,KAAKpW,KAAKukP,WACxCvkP,KAAK+c,QAAQtZ,aAAa,QAAS6nP,GACnCtrP,KAAK+c,QAAQ5M,MAAQm7O,OA7DTH,GAA+Bh9M,EAAY/sC,UAAWs8D,GAClEC,GAAawtL,GAA+Bh9M,EAAawvB,GA+DtDytL,EAhDuB,CAiD9BR,IAGF,SAASW,GAAgC3mP,EAAQg3C,GAC/C,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAsBlD,IAAI27L,GAA6B,SAAUH,GAZ3C,IAAsC10M,EAAUC,EANZzI,EAAauvB,EAAYC,EA6B3D,SAAS6tL,EAAc/pM,GACrB,IAAI3hD,EAEAid,EAAU0kC,EAAK1kC,QACfm7B,EAAauJ,EAAKvJ,WAClBuzM,EAAWhqM,EAAKgqM,SAMpB,OALA3rP,EAAQurP,EAAgBtrP,KAAKC,KAAM,CACjC+c,QAASA,EACTm7B,WAAYA,KACRl4C,MACAyrP,SAAWA,EACV3rP,EA6DT,OA/F8C82C,EAaFy0M,GAbR10M,EAaP60M,GAZpBpqP,UAAYZ,OAAO4lC,OAAOwQ,EAAWx1C,WAC9Cu1C,EAASv1C,UAAUuY,YAAcg9B,EACjCA,EAASjB,UAAYkB,EAkCR40M,EAAcpqP,UAKpBsqP,kBAAoB,SAA2Br6N,GACpDrxB,KAAK+c,QAAQrZ,UAAY,GACzB1D,KAAK+c,QAAQ6I,YAAYyL,IAlDO8c,EAqDPq9M,GArDoB9tL,EAqDL,CAAC,CACzC/6D,IAAK,oBACLjC,IAAK,WACH,OAAOV,KAAK+c,QAAQzY,cAAc,qBAClCtE,KAAK+c,QAAQzY,cAAc,yBAM5B,CACD3B,IAAK,eACLjC,IAAK,WACH,OAAO+d,MAAMyZ,KAAKl4B,KAAK+c,QAAQyY,qBAAqB,eAMrD,CACD7yB,IAAK,UACLjC,IAAK,WACH,OAAO+d,MAAMyZ,KAAKl4B,KAAK+c,QAAQ5F,UAMjC1R,IAAK,SAAa0R,GAChB,IAAI66F,EAAShyG,KAETqxB,EAAWja,SAASka,yBAWxBna,EAAQnH,SAAQ,SAAU27O,GACxB,OAVqDv7O,EAU1Bu7O,EARvBntN,EAASwzE,EAAOy5I,SAASr7O,QAG7BihB,EAASzL,YAAY4Y,GALG,IAA6BpuB,EAEjDouB,KAUNx+B,KAAK0rP,kBAAkBr6N,QAjGXk6N,GAAgCp9M,EAAY/sC,UAAWs8D,GACnEC,GAAa4tL,GAAgCp9M,EAAawvB,GAmGvD6tL,EAnFwB,CAoF/BZ,IAeEgB,GAEJ,CASErF,eAAgB,SAAwB9kM,EAAM6V,EAAKu0L,EAAiBC,EAAoBtH,EAAeuH,GACrG,IAAIC,EAAkBvqM,EAAK8kM,eACvBvlF,EAAMxgK,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CACrDxf,UAAW4mP,IAsBb,OApBAhrF,EAAI5mI,QAAQpmB,KAAO+3O,EAEfz0L,IACF0pG,EAAI1pG,IAAMA,GAGRw0L,IACF9qF,EAAIzvI,SAAW,GAGbs6N,IACF7qF,EAAIv9J,aAAa,OAAQ+gP,EAAgB,WAAa,WAElDA,GACFxjF,EAAIv9J,aAAa,oBAAqB,SAI1Cu9J,EAAIv9J,aAAa,gBAAiB,QAClCu9J,EAAIv9J,aAAa,gBAAiB,SAC3Bu9J,GAMTwlF,eAAgB,SAAwB1vF,GACtC,IAAIm1F,EAAkBn1F,EAAM0vF,eAC5B,OAAOhmP,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CAClDxf,UAAW6mP,KAQfC,SAAU,SAAkBz2F,EAAOq2F,GACjC,IAAIt5F,EAAOiD,EAAMjD,KACbm0F,EAAalxF,EAAMkxF,WACnBD,EAAYjxF,EAAMixF,UACtB,OAAOlmP,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CAClDxf,UAAWotJ,EAAO,KAAOs5F,EAAqBnF,EAAaD,MAQ/D5nN,YAAa,SAAqBqtN,EAAOh8O,GACvC,IAAIi8O,EAAeD,EAAMrtN,YACzB,OAAOt+B,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CAClDxf,UAAWgnP,EACX1oP,UAAWyM,KASf8zB,KAAM,SAAcooN,EAAOC,EAAOlI,GAChC,IAAImI,EAAQF,EAAMpoN,KACd4f,EAASwoM,EAAMxoM,OACfujM,EAAmBiF,EAAMjF,iBACzBP,EAAiBwF,EAAMxF,eACvB/nN,EAAcutN,EAAMvtN,YACpBsW,EAAKk3M,EAAMl3M,GACXjlC,EAAQm8O,EAAMn8O,MACd9C,EAAQi/O,EAAMj/O,MACdq1O,EAAmB4J,EAAM5J,iBACzBhkG,EAAS4tG,EAAM5tG,OACfjpH,EAAW62N,EAAM72N,SACjBgtN,EAAc6J,EAAM7J,YACpB+J,EAAgBF,EAAMxtN,YACtBkiI,EAAMxgK,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CACrDxf,UAAWmnP,EACX7oP,UAAW2J,IAuBb,GArBA7M,OAAOkQ,OAAOswJ,EAAI5mI,QAAS,CACzB6J,KAAM,GACNmR,GAAIA,EACJjlC,MAAOA,EACPuyO,iBAAkBA,IAGhBhkG,GACFsiB,EAAIv9J,aAAa,gBAAiB,QAGhCgyB,GACFurI,EAAIv9J,aAAa,gBAAiB,QAGhC+oP,GACFxrF,EAAI37J,UAAUC,IAAIw5B,GAGpBkiI,EAAI37J,UAAUC,IAAIm9O,EAAc2E,EAAmBP,GAE/CzC,EAAkB,CAChB3uN,GACFurI,EAAI37J,UAAUG,OAAOqhP,GAGvB7lF,EAAI5mI,QAAQqyN,UAAY,GAGxB,IAAIC,EAAmB,cACnBC,EAAensP,OAAOkQ,OAAO0G,SAASwN,cAAc,UAAW,CACjE5Q,KAAM,SACN5O,UAAWy+C,EACXngD,UAAWgpP,IAEbC,EAAalpP,aAAa,aAAcipP,iBAA2Bv8O,EAAQ,KAC3Ew8O,EAAavyN,QAAQypB,OAAS,GAC9Bm9G,EAAIp7I,YAAY+mO,GAGlB,OAAO3rF,GAOT4rF,WAAY,SAAoBC,EAAOf,GACrC,IAAIt5F,EAAOq6F,EAAMr6F,KACbwO,EAAMxgK,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CACrDxf,UAAWotJ,IAQb,OALKs5F,GACH9qF,EAAIv9J,aAAa,uBAAwB,QAG3Cu9J,EAAIv9J,aAAa,OAAQ,WAClBu9J,GAOT8rF,YAAa,SAAqBC,EAAOC,GACvC,IAAI12K,EAAQy2K,EAAMz2K,MACd0wK,EAAe+F,EAAM/F,aACrBF,EAAeiG,EAAMjG,aACrB1xM,EAAK43M,EAAM53M,GACXjlC,EAAQ68O,EAAM78O,MACdslB,EAAWu3N,EAAMv3N,SACjBurI,EAAMxgK,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CACrDxf,UAAWkxE,EAAQ,KAAO7gD,EAAWqxN,EAAe,MAiBtD,OAfA9lF,EAAIv9J,aAAa,OAAQ,SACzBjD,OAAOkQ,OAAOswJ,EAAI5mI,QAAS,CACzBk8C,MAAO,GACPlhC,GAAIA,EACJjlC,MAAOA,IAGLslB,GACFurI,EAAIv9J,aAAa,gBAAiB,QAGpCu9J,EAAIp7I,YAAYplB,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CAC3Dxf,UAAW4hP,EACXtjP,UAAWyM,KAEN6wJ,GAQT8hF,OAAQ,SAAgBmK,EAAQC,EAAQC,GACtC,IAAIlpN,EAAOgpN,EAAOhpN,KACd8iN,EAAakG,EAAOlG,WACpBF,EAAiBoG,EAAOpG,eACxBQ,EAAgB4F,EAAO5F,cACvBP,EAAemG,EAAOnG,aACtBhoN,EAAcmuN,EAAOnuN,YACrBsW,EAAK83M,EAAO93M,GACZjlC,EAAQ+8O,EAAO/8O,MACf9C,EAAQ6/O,EAAO7/O,MACfm1O,EAAU0K,EAAO1K,QACjBI,EAAYsK,EAAOtK,UACnBt7E,EAAa4lF,EAAOz3N,SACpB5nB,EAAaq/O,EAAO3+O,SACpBi+O,EAAgBU,EAAOpuN,YACvBkiI,EAAMxgK,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CACrDwwB,GAAIwtM,EACJl/O,UAAW2J,EACXjI,UAAW6+B,EAAO,IAAM8iN,IA4B1B,OAzBIl5O,GACFmzJ,EAAI37J,UAAUC,IAAI+hP,GAGhBmF,GACFxrF,EAAI37J,UAAUC,IAAIw5B,GAGpBkiI,EAAIv9J,aAAa,OAAQ++O,EAAU,EAAI,WAAa,UACpDhiP,OAAOkQ,OAAOswJ,EAAI5mI,QAAS,CACzB0oN,OAAQ,GACR1tM,GAAIA,EACJjlC,MAAOA,EACPg9O,WAAYA,IAGV7lF,GACFtG,EAAI37J,UAAUC,IAAIwhP,GAClB9lF,EAAI5mI,QAAQgzN,eAAiB,GAC7BpsF,EAAIv9J,aAAa,gBAAiB,UAElCu9J,EAAI37J,UAAUC,IAAIuhP,GAClB7lF,EAAI5mI,QAAQizN,iBAAmB,IAG1BrsF,GAOTl5J,MAAO,SAAewlP,EAAQhI,GAC5B,IAAIt3N,EAASs/N,EAAOxlP,MAChB2+O,EAAc6G,EAAO7G,YACrB/iH,EAAMljI,OAAOkQ,OAAO0G,SAASwN,cAAc,SAAU,CACvD5Q,KAAM,OACN5O,UAAW4oB,EAAS,IAAMy4N,EAC1B8G,aAAc,MACdC,eAAgB,MAChBC,YAAY,IAKd,OAHA/pH,EAAIjgI,aAAa,OAAQ,WACzBigI,EAAIjgI,aAAa,oBAAqB,QACtCigI,EAAIjgI,aAAa,aAAc6hP,GACxB5hH,GAMTgqH,SAAU,SAAkBC,GAC1B,IAAIn7F,EAAOm7F,EAAOn7F,KACdo0F,EAAe+G,EAAO/G,aACtB5lF,EAAM5pJ,SAASwN,cAAc,OAGjC,OAFAo8I,EAAI37J,UAAUC,IAAIktJ,EAAMo0F,GACxB5lF,EAAIv9J,aAAa,gBAAiB,SAC3Bu9J,GAST4sF,OAAQ,SAAgBC,EAAQnqP,EAAWsQ,GACzC,IAAIiwB,EAAO4pN,EAAO5pN,KACd8iN,EAAa8G,EAAO9G,WACpBS,EAAYqG,EAAOrG,UACnBC,EAAYoG,EAAOpG,eAEV,IAATzzO,IACFA,EAAO,IAGT,IAAIikC,EAAU,CAAChU,EAAM8iN,GAQrB,MANa,eAAT/yO,EACFikC,EAAQjqC,KAAKy5O,GACK,eAATzzO,GACTikC,EAAQjqC,KAAKw5O,GAGRhnP,OAAOkQ,OAAO0G,SAASwN,cAAc,OAAQ,CAClDlhB,UAAWA,EACX0B,UAAW6yC,EAAQ7hC,KAAK,QAO5BooB,OAAQ,SAAgBsvN,GACtB,IAAIzgP,EAAQygP,EAAOzgP,MACf8C,EAAQ29O,EAAO39O,MACfuyO,EAAmBoL,EAAOpL,iBAC1BhkG,EAASovG,EAAOpvG,OAChBjpH,EAAWq4N,EAAOr4N,SAClByrH,EAAM,IAAI6sG,OAAO1gP,EAAO8C,GAAO,EAAOuuI,GAO1C,OALIgkG,IACFxhG,EAAI9mH,QAAQsoN,iBAAmBA,GAGjCxhG,EAAIzrH,SAAWA,EACRyrH,IA0DP8sG,GAA0B,SAAyBtvG,GAKrD,YAJe,IAAXA,IACFA,GAAS,GAGJ,CACL1qI,KAAM2zO,EACNjpG,OAAQA,IAmERuvG,GAAsB,SAAuB74M,EAAIqtM,GACnD,MAAO,CACLzuO,KAAM2zO,EACNvyM,GAAIA,EACJqtM,YAAaA,IAebyL,GAAkB,SAAkBzsM,GACtC,IAAItxC,EAAQsxC,EAAKtxC,MACbilC,EAAKqM,EAAKrM,GACVspG,EAASj9F,EAAKi9F,OACdjpH,EAAWgsB,EAAKhsB,SACpB,MAAO,CACLzhB,KAAM2zO,EACNx3O,MAAOA,EACPilC,GAAIA,EACJspG,OAAQA,EACRjpH,SAAUA,IAoCV04N,GAAe,SAAsBjN,GACvC,MAAO,CACLltO,KAAM,iBACNktO,UAAWA,IAKf,SAASkN,GAAyBxpP,EAAQg3C,GACxC,IAAK,IAAIx0C,EAAI,EAAGA,EAAIw0C,EAAM5zC,OAAQZ,IAAK,CACrC,IAAIyoD,EAAajU,EAAMx0C,GACvByoD,EAAWlvD,WAAakvD,EAAWlvD,aAAc,EACjDkvD,EAAWjvD,cAAe,EACtB,UAAWivD,IAAYA,EAAWtlB,UAAW,GACjD/pC,OAAOC,eAAemE,EAAQirD,EAAWltD,IAAKktD,IAYlD,IAAIw+L,GAAU,qBAAsBj3O,SAAS01D,gBAAgBn8D,OAAS,kBAAmByG,SAAS01D,gBAAgBn8D,MAU9G29O,GAAgB,GAMhBC,GAA+B,WAxBnC,IAA6BpgN,EAAauvB,EAAYC,EA8CpD,SAAS6wL,EAAQzxO,EAASmd,GACxB,IA92DqBvb,EAAGrhB,EACtBmxP,EACAC,EA42DE5uP,EAAQE,UAEI,IAAZ+c,IACFA,EAAU,sBAGO,IAAfmd,IACFA,EAAa,IAKfl6B,KAAKsd,OAAS6hO,EAAYxgO,EAAEgkD,IAAI,CAACmhL,EAAgB0K,EAAQ1vO,SAAS3H,QAAS+iB,GAE3E,CACEkiN,WAAY,SAAoBl1N,EAAGinF,GACjC,MAAO,GAAGx3F,OAAOw3F,OA93DAxvF,EAi4DW3e,KAAKsd,OAj4DbhgB,EAi4DqBwmP,EAh4D3C2K,EAAQjuP,OAAOkW,KAAKiI,GAAGmf,OACvB4wN,EAAQluP,OAAOkW,KAAKpZ,GAAGwgC,OACpB2wN,EAAM11N,QAAO,SAAU3xB,GAC5B,OAAOsnP,EAAM/mP,QAAQP,GAAK,MA+3DDY,OAEzB,IAAI2mP,EAAmC,kBAAZ5xO,EAAuB3F,SAAS9S,cAAcyY,GAAWA,EAEpF,KAAM4xO,aAAyB7D,kBAAoB6D,aAAyBzpE,mBAC1E,MAAMj6J,UAAU,uEAalB,GAVAjrB,KAAK4uP,eAAiBD,EAAc36O,OAAS6zO,GAC7C7nP,KAAK6uP,oBAAsBF,EAAc36O,OAAS8zO,GAClD9nP,KAAK8uP,yBAA2BH,EAAc36O,OAAS+zO,GACvD/nP,KAAK+uP,iBAAmB/uP,KAAK6uP,qBAAuB7uP,KAAK8uP,yBACzD9uP,KAAKsd,OAAOknO,cAAgBxkP,KAAK8uP,0BAA4B9uP,KAAKsd,OAAOknO,cAEpE,CAAC,OAAQ,UAAUn6M,SAASrqC,KAAKsd,OAAOooO,yBAC3C1lP,KAAKsd,OAAOooO,sBAAwB,QAGlCxrN,EAAWgqN,eAAqD,oBAA7BhqN,EAAWgqN,cAA8B,CAC9E,IAAI78O,EAAK6yB,EAAWgqN,yBAAyB59O,OAAS4zB,EAAWgqN,cAAgB,IAAI59O,OAAO4zB,EAAWgqN,eACvGlkP,KAAKsd,OAAO4mO,cAAgB78O,EAAGnJ,KAAKsW,KAAKnN,GAuC3C,GApCIrH,KAAK4uP,eACP5uP,KAAK2uP,cAAgB,IAAIvD,GAAa,CACpCruO,QAAS4xO,EACTz2M,WAAYl4C,KAAKsd,OAAO46B,WACxBqsM,UAAWvkP,KAAKsd,OAAOinO,YAGzBvkP,KAAK2uP,cAAgB,IAAInD,GAAc,CACrCzuO,QAAS4xO,EACTz2M,WAAYl4C,KAAKsd,OAAO46B,WACxBuzM,SAAU,SAAkBr7O,GAC1B,OAAOtQ,EAAMkvP,WAAWxwN,OAAOpuB,MAKrCpQ,KAAKivP,aAAc,EACnBjvP,KAAKmjP,OAAS,IAAIF,EAClBjjP,KAAKkvP,cAAgB,GACrBlvP,KAAKmvP,cAAgB,GACrBnvP,KAAKovP,WAAa,GAClBpvP,KAAKqvP,cAAgB,GACrBrvP,KAAKsvP,WAAatvP,KAAKsd,OAAOknO,cAC9BxkP,KAAKuvP,kBAAmB,EACxBvvP,KAAKwvP,mBAAqB,EAC1BxvP,KAAKyvP,SAAU,EACfzvP,KAAK0vP,kBAAoB1vP,KAAK2vP,4BAC9B3vP,KAAK4vP,QAnpEQ,SAAoB7yO,EAAShC,GAC5C,IAAIq6B,EAAKr4B,EAAQq4B,IAAMr4B,EAAQc,MAAQd,EAAQc,KAAO,IAAMsjO,EAAc,IAAMA,EAAc,GAG9F,OADKpmO,EAAS,IADTq6B,EAAGt3C,QAAQ,kBAAmB,IAipElB+xP,CAAW7vP,KAAK2uP,cAAc5xO,QAAS,YAOtD/c,KAAK8vP,WAAa9vP,KAAK2uP,cAAcr3L,KAEhCt3D,KAAK8vP,WAAY,CACpB,IACIC,EADwB94O,OAAO89B,iBAAiB/0C,KAAK2uP,cAAc5xO,SAC1BowC,UAKzC4iM,IAHyB94O,OAAO89B,iBAAiB39B,SAAS01D,iBACf3f,YAG7CntD,KAAK8vP,WAAaC,GAmDtB,GA/CA/vP,KAAKgwP,SAAW,CACdjJ,WAAY,eAGd/mP,KAAKiwP,cAAgBjwP,KAAK2uP,cAAcuB,aAExClwP,KAAKmwP,eAAiBnwP,KAAK2uP,cAAcx3O,QAEzCnX,KAAKowP,eAAiBpwP,KAAKsd,OAAOqlO,QAElC3iP,KAAKqwP,aAAerwP,KAAKsd,OAAOu5B,MAE5B72C,KAAK2uP,cAAcx+O,QACrBnQ,KAAKqwP,aAAerwP,KAAKqwP,aAAa15O,OAAO3W,KAAK2uP,cAAcx+O,MAAMlV,MAAM+E,KAAKsd,OAAOinO,aAItFvkP,KAAK2uP,cAAcx3O,SACrBnX,KAAK2uP,cAAcx3O,QAAQnH,SAAQ,SAAUwlC,GAC3C11C,EAAMswP,eAAepiP,KAAK,CACxBmC,MAAOqlC,EAAErlC,MACT9C,MAAOmoC,EAAE9xC,UACT6K,SAAUinC,EAAEjnC,SACZknB,SAAU+f,EAAE/f,UAAY+f,EAAEpwB,WAAWqQ,SACrCqJ,YAAyB,KAAZ0W,EAAErlC,OAAgBqlC,EAAEu3C,aAAa,eAC9C21J,iBAAkBltM,EAAEnyC,aAAa,+BAKvCrD,KAAKswP,QAAUtwP,KAAKswP,QAAQ97O,KAAKxU,MACjCA,KAAKooP,SAAWpoP,KAAKooP,SAAS5zO,KAAKxU,MACnCA,KAAKqoP,QAAUroP,KAAKqoP,QAAQ7zO,KAAKxU,MACjCA,KAAKuwP,SAAWvwP,KAAKuwP,SAAS/7O,KAAKxU,MACnCA,KAAKwwP,WAAaxwP,KAAKwwP,WAAWh8O,KAAKxU,MACvCA,KAAKywP,SAAWzwP,KAAKywP,SAASj8O,KAAKxU,MACnCA,KAAK0wP,aAAe1wP,KAAK0wP,aAAal8O,KAAKxU,MAC3CA,KAAK2wP,YAAc3wP,KAAK2wP,YAAYn8O,KAAKxU,MACzCA,KAAK4wP,aAAe5wP,KAAK4wP,aAAap8O,KAAKxU,MAC3CA,KAAK6wP,aAAe7wP,KAAK6wP,aAAar8O,KAAKxU,MAC3CA,KAAK8wP,aAAe9wP,KAAK8wP,aAAat8O,KAAKxU,MAC3CA,KAAK+wP,QAAU/wP,KAAK+wP,QAAQv8O,KAAKxU,MACjCA,KAAKgxP,YAAchxP,KAAKgxP,YAAYx8O,KAAKxU,MACzCA,KAAKixP,aAAejxP,KAAKixP,aAAaz8O,KAAKxU,MAC3CA,KAAKkxP,gBAAkBlxP,KAAKkxP,gBAAgB18O,KAAKxU,MACjDA,KAAKmxP,aAAenxP,KAAKmxP,aAAa38O,KAAKxU,MAEvCA,KAAK2uP,cAAcjqN,SAIrB,OAHK1kC,KAAKsd,OAAO43M,YAEjBl1N,KAAKivP,aAAc,GAKrBjvP,KAAKgsB,OAlMoBmiB,EAyBPqgN,EAzBgC7wL,EAyBjB,CAAC,CAClCh7D,IAAK,WACLjC,IAAK,WACH,OAAOF,OAAO4wP,kBAAkB,CAC9B,cACE,OAAO9C,IAGT,gBACE,OAAO1C,UAlCyBluL,EAyBX,OAxBb0wL,GAAyBjgN,EAAY/sC,UAAWs8D,GAC5DC,GAAaywL,GAAyBjgN,EAAawvB,GAmMvD,IAAIC,EAAS4wL,EAAQptP,UA8hErB,OA5hEAw8D,EAAO5xC,KAAO,WACZ,IAAIhsB,KAAKivP,YAAT,CAIAjvP,KAAKqxP,mBAELrxP,KAAKsxP,kBAELtxP,KAAKuxP,mBAILvxP,KAAKkvP,cAAgBzN,EAAYzhP,KAAKmjP,OAAO79M,OAE7CtlC,KAAKmjP,OAAOhD,UAAUngP,KAAKswP,SAE3BtwP,KAAKswP,UAELtwP,KAAKwxP,uBAEgBxxP,KAAKsd,OAAO2mO,UAAYjkP,KAAK2uP,cAAc5xO,QAAQgwE,aAAa,cAGnF/sF,KAAKkgB,UAGPlgB,KAAKivP,aAAc,EACnB,IAAI5I,EAAiBrmP,KAAKsd,OAAO+oO,eAE7BA,GAA4C,oBAAnBA,GAC3BA,EAAetmP,KAAKC,QAIxB49D,EAAOv8D,QAAU,WACVrB,KAAKivP,cAIVjvP,KAAKyxP,wBAELzxP,KAAK2uP,cAAc1D,SACnBjrP,KAAKumP,eAAej9K,OAAOtpE,KAAK2uP,cAAc5xO,SAC9C/c,KAAK0xP,aAED1xP,KAAK+uP,mBACP/uP,KAAK2uP,cAAcx3O,QAAUnX,KAAKmwP,gBAGpCnwP,KAAKgvP,WAAa,KAClBhvP,KAAKivP,aAAc,IAGrBrxL,EAAOx9C,OAAS,WAYd,OAXIpgB,KAAK2uP,cAAcrnF,YACrBtnK,KAAK2uP,cAAcvuO,SAGjBpgB,KAAKumP,eAAej/E,aACtBtnK,KAAKwxP,qBAELxxP,KAAK8H,MAAMsY,SACXpgB,KAAKumP,eAAenmO,UAGfpgB,MAGT49D,EAAO19C,QAAU,WAYf,OAXKlgB,KAAK2uP,cAAcrnF,YACtBtnK,KAAK2uP,cAAczuO,UAGhBlgB,KAAKumP,eAAej/E,aACvBtnK,KAAKyxP,wBAELzxP,KAAK8H,MAAMoY,UACXlgB,KAAKumP,eAAermO,WAGflgB,MAGT49D,EAAO+zL,cAAgB,SAAuB1tN,EAAM2tN,GAKlD,QAJiB,IAAbA,IACFA,GAAW,IAGR3tN,EACH,OAAOjkC,KAGT,IAAIo1C,EAAKnR,EAAKmR,GACVy8M,EAAgB5tN,EAAKu+M,QACrBA,OAA4B,IAAlBqP,GAA4B,EAAIA,EAC1CC,EAAc7tN,EAAK9zB,MACnBA,OAAwB,IAAhB2hP,EAAyB,GAAKA,EACtCC,EAAc9tN,EAAK52B,MACnBA,OAAwB,IAAhB0kP,EAAyB,GAAKA,EACtCz7K,EAAQksK,GAAW,EAAIxiP,KAAKmjP,OAAOI,aAAaf,GAAW,KAa/D,OAXAxiP,KAAKmjP,OAAO1xI,SAASw8I,GAAoB74M,GAAI,IAEzCw8M,GACF5xP,KAAK2uP,cAAc5hO,aAAa26N,EAAsB,CACpDtyM,GAAIA,EACJjlC,MAAOA,EACP9C,MAAOA,EACP2kP,WAAY17K,GAASA,EAAMnmE,MAAQmmE,EAAMnmE,MAAQ,OAI9CnQ,MAGT49D,EAAOq0L,gBAAkB,SAAyBhuN,GAChD,IAAKA,EACH,OAAOjkC,KAGT,IAAIo1C,EAAKnR,EAAKmR,GACV88M,EAAiBjuN,EAAKu+M,QACtBA,OAA6B,IAAnB0P,GAA6B,EAAIA,EAC3CC,EAAeluN,EAAK9zB,MACpBA,OAAyB,IAAjBgiP,EAA0B,GAAKA,EACvCC,EAAenuN,EAAK52B,MACpBA,OAAyB,IAAjB+kP,EAA0B,GAAKA,EACvC97K,EAAQksK,GAAW,EAAIxiP,KAAKmjP,OAAOI,aAAaf,GAAW,KAU/D,OARAxiP,KAAKmjP,OAAO1xI,SAASw8I,GAAoB74M,GAAI,IAE7Cp1C,KAAK2uP,cAAc5hO,aAAa26N,EAAsB,CACpDtyM,GAAIA,EACJjlC,MAAOA,EACP9C,MAAOA,EACP2kP,WAAY17K,GAASA,EAAMnmE,MAAQmmE,EAAMnmE,MAAQ,OAE5CnQ,MAGT49D,EAAOy0L,aAAe,WACpB,IAAIrgJ,EAAShyG,KAMb,OAJAA,KAAKmjP,OAAOtsM,MAAM7mC,SAAQ,SAAUi0B,GAClC,OAAO+tE,EAAO2/I,cAAc1tN,MAGvBjkC,MAGT49D,EAAO00L,eAAiB,WACtB,IAAIC,EAASvyP,KAMb,OAJAA,KAAKmjP,OAAOtsM,MAAM7mC,SAAQ,SAAUi0B,GAClC,OAAOsuN,EAAON,gBAAgBhuN,MAGzBjkC,MAGT49D,EAAO40L,yBAA2B,SAAkCriP,GAClE,IAAIsiP,EAASzyP,KAQb,OANAA,KAAKmjP,OAAOuP,YAAY35N,QAAO,SAAUkL,GACvC,OAAOA,EAAK9zB,QAAUA,KACrBH,SAAQ,SAAUi0B,GACnB,OAAOwuN,EAAOE,YAAY1uN,MAGrBjkC,MAGT49D,EAAOg1L,kBAAoB,SAA2BC,GACpD,IAAIC,EAAS9yP,KASb,OAPAA,KAAKmjP,OAAOuP,YAAY35N,QAAO,SAAU0oB,GAEvC,OADSA,EAAKrM,KACAy9M,KACb7iP,SAAQ,SAAUi0B,GACnB,OAAO6uN,EAAOH,YAAY1uN,MAGrBjkC,MAGT49D,EAAOm1L,uBAAyB,SAAgCnB,GAC9D,IAAIoB,EAAShzP,KAgBb,YAdiB,IAAb4xP,IACFA,GAAW,GAGb5xP,KAAKmjP,OAAO8P,uBAAuBjjP,SAAQ,SAAUi0B,GACnD+uN,EAAOL,YAAY1uN,GAIf2tN,GACFoB,EAAOE,eAAejvN,EAAK9zB,UAIxBnQ,MAGT49D,EAAOu1L,aAAe,SAAsBC,GAC1C,IAAIC,EAASrzP,KAEb,OAAIA,KAAK0tP,SAAShpN,UAIlBzhC,uBAAsB,WACpBowP,EAAO3F,SAAStmF,OAEhBisF,EAAO9M,eAAe9kP,KAAK4xP,EAAO3F,SAAS4F,wBAEtCF,GAAqBC,EAAO/D,YAC/B+D,EAAOvrP,MAAMmrB,QAGfogO,EAAO1E,cAAc5hO,aAAa26N,EAAqB,OAZhD1nP,MAiBX49D,EAAO21L,aAAe,SAAsBC,GAC1C,IAAIC,EAASzzP,KAEb,OAAKA,KAAK0tP,SAAShpN,UAInBzhC,uBAAsB,WACpBwwP,EAAO/F,SAASxlF,OAEhBurF,EAAOlN,eAAexkP,SAEjByxP,GAAoBC,EAAOnE,aAC9BmE,EAAO3rP,MAAM8gP,yBAEb6K,EAAO3rP,MAAMwwB,QAGfm7N,EAAO9E,cAAc5hO,aAAa26N,EAAqB,OAElD1nP,MAhBEA,MAmBX49D,EAAO+1B,SAAW,SAAkB+/J,QAChB,IAAdA,IACFA,GAAY,GAGd,IAAI3hN,EAAS/xC,KAAKmjP,OAAOuP,YAAYp3N,QAAO,SAAUq4N,EAAe1vN,GACnE,IAAI2vN,EAAYF,EAAYzvN,EAAK9zB,MAAQ8zB,EAEzC,OADA0vN,EAAc3lP,KAAK4lP,GACZD,IACN,IAEH,OAAO3zP,KAAK6uP,oBAAsB98M,EAAO,GAAKA,GAOhD6rB,EAAO61G,SAAW,SAAkB58H,GAClC,IAAIg9M,EAAS7zP,KAEb,OAAKA,KAAKivP,aAIVp4M,EAAM7mC,SAAQ,SAAUG,GACtB,OAAO0jP,EAAOC,iBAAiB3jP,MAE1BnQ,MANEA,MASX49D,EAAOm2L,iBAAmB,SAA0B5jP,GAClD,IAAI6jP,EAAUh0P,KAEd,OAAKA,KAAKivP,aAAejvP,KAAK4uP,iBAKZnwO,MAAMisB,QAAQv6B,GAASA,EAAQ,CAACA,IAEtCH,SAAQ,SAAUoa,GAC5B,OAAO4pO,EAAQC,4BAA4B7pO,MAPpCpqB,MAmFX49D,EAAOs2L,WAAa,SAAoBC,EAAuBhkP,EAAO9C,EAAO+mP,GAC3E,IAAIC,EAAUr0P,KAkBd,QAhB8B,IAA1Bm0P,IACFA,EAAwB,SAGZ,IAAVhkP,IACFA,EAAQ,cAGI,IAAV9C,IACFA,EAAQ,cAGa,IAAnB+mP,IACFA,GAAiB,IAGdp0P,KAAKivP,YACR,MAAM,IAAIl4M,eAAe,kEAG3B,IAAK/2C,KAAK+uP,iBACR,MAAM,IAAI9jO,UAAU,qDAGtB,GAAqB,kBAAV9a,IAAuBA,EAChC,MAAM,IAAI8a,UAAU,qEAQtB,GAJImpO,GACFp0P,KAAKs0P,eAG8B,oBAA1BH,EAAsC,CAE/C,IAAII,EAAUJ,EAAsBn0P,MAEpC,GAAuB,oBAAZgjE,SAA0BuxL,aAAmBvxL,QAGtD,OAAO,IAAIA,SAAQ,SAAUJ,GAC3B,OAAO3/D,sBAAsB2/D,MAC5BF,MAAK,WACN,OAAO2xL,EAAQG,qBAAoB,MAClC9xL,MAAK,WACN,OAAO6xL,KACN7xL,MAAK,SAAUtyD,GAChB,OAAOikP,EAAQH,WAAW9jP,EAAMD,EAAO9C,EAAO+mP,MAC7CK,OAAM,SAAUp9O,GACZg9O,EAAQ/2O,OAAO43M,UACnBxyJ,MAAK,WACN,OAAO2xL,EAAQG,qBAAoB,MAClC9xL,MAAK,WACN,OAAO2xL,KAKX,IAAK51O,MAAMisB,QAAQ6pN,GACjB,MAAM,IAAItpO,UAAU,mGAAqGspO,GAI3H,OAAOv0P,KAAKk0P,WAAWK,EAASpkP,EAAO9C,GAAO,GAGhD,IAAKoR,MAAMisB,QAAQypN,GACjB,MAAM,IAAIlpO,UAAU,sHA6BtB,OA1BAjrB,KAAKumP,eAAe0C,qBAEpBjpP,KAAK00P,gBAELP,EAAsBnkP,SAAQ,SAAU2kP,GAClCA,EAAchS,QAChB0R,EAAQO,UAAU,CAChBx/M,GAAIh9B,SAASu8O,EAAcv/M,GAAI,KAAO,KACtCkhC,MAAOq+K,EACPE,SAAU1kP,EACV2kP,SAAUznP,IAGZgnP,EAAQU,WAAW,CACjB5kP,MAAOwkP,EAAcxkP,GACrB9C,MAAOsnP,EAActnP,GACrBQ,WAAY8mP,EAAcpmP,SAC1B+4J,WAAYqtF,EAAcl/N,SAC1BitN,iBAAkBiS,EAAcjS,iBAChC5jN,YAAa61N,EAAc71N,iBAKjC9+B,KAAKg1P,eAEEh1P,MAGT49D,EAAO02L,aAAe,WAGpB,OAFAt0P,KAAKmjP,OAAO1xI,SA3yBP,CACLz9F,KAAM2zO,IA4yBC3nP,MAGT49D,EAAO8zL,WAAa,WAGlB,OAFA1xP,KAAKmjP,OAAO1xI,SA5sBP,CACLz9F,KAAM,cA6sBChU,MAGT49D,EAAOq3L,WAAa,WAClB,IAAIC,GAAuBl1P,KAAK6uP,oBAShC,OARA7uP,KAAK8H,MAAM8M,MAAMsgP,IAEZl1P,KAAK4uP,gBAAkB5uP,KAAKsvP,aAC/BtvP,KAAKm1P,cAAe,EAEpBn1P,KAAKmjP,OAAO1xI,SAASu8I,IAAwB,KAGxChuP,MAGT49D,EAAO0yL,QAAU,WACf,IAAItwP,KAAKmjP,OAAOjC,YAAhB,CAIAlhP,KAAKmvP,cAAgBnvP,KAAKmjP,OAAO79M,MACjC,IAAI8vN,EAAep1P,KAAKmvP,cAAcxM,UAAY3iP,KAAKovP,WAAWzM,SAAW3iP,KAAKmvP,cAAclyG,SAAWj9I,KAAKovP,WAAWnyG,QAAUj9I,KAAKmvP,cAAct4M,QAAU72C,KAAKovP,WAAWv4M,MAC9Kw+M,EAAsBr1P,KAAK+uP,iBAC3BuG,EAAoBt1P,KAAKmvP,cAAct4M,QAAU72C,KAAKovP,WAAWv4M,MAEhEu+M,IAIDC,GACFr1P,KAAKu1P,iBAGHD,GACFt1P,KAAKw1P,eAGPx1P,KAAKovP,WAAapvP,KAAKmvP,iBAGzBvxL,EAAO23L,eAAiB,WACtB,IAAIE,EAAUz1P,KAEV01P,EAAe11P,KAAKmjP,OACpBwS,EAAeD,EAAaC,aAC5BrS,EAAgBoS,EAAapS,cAC7BsS,EAAqBx+O,SAASka,yBAUlC,GATAtxB,KAAK4sP,WAAWh4O,QAEZ5U,KAAKsd,OAAOunO,qBACd5hP,uBAAsB,WACpB,OAAOwyP,EAAQ7I,WAAW7C,iBAK1B4L,EAAa3tP,QAAU,IAAMhI,KAAKm1P,aAAc,CAElD,IAAIU,EAAqBvS,EAAcvqN,QAAO,SAAU+8N,GACtD,OAAoC,IAA7BA,EAAah3N,cAAkD,IAA1Bg3N,EAAatT,WAGvDqT,EAAmB7tP,QAAU,IAC/B4tP,EAAqB51P,KAAK+1P,uBAAuBF,EAAoBD,IAGvEA,EAAqB51P,KAAKg2P,sBAAsBL,EAAcrS,EAAesS,QACpEtS,EAAct7O,QAAU,IACjC4tP,EAAqB51P,KAAK+1P,uBAAuBzS,EAAesS,IAIlE,GAAIA,EAAmB5hN,YAAc4hN,EAAmB5hN,WAAWhsC,OAAS,EAAG,CAC7E,IAAI0qP,EAAc1yP,KAAKmjP,OAAOuP,YAE1BuD,EAAaj2P,KAAKk2P,YAAYxD,EAAa1yP,KAAK8H,MAAMqI,OAGtD8lP,EAAWx4O,UAEbzd,KAAK4sP,WAAWn7M,OAAOmkN,GAEvB51P,KAAKm2P,oBAGLn2P,KAAK4sP,WAAWn7M,OAAOzxC,KAAKo2P,aAAa,SAAUH,EAAWrI,aAE3D,CAEL,IAAIyI,EACAzI,EAEA5tP,KAAKm1P,cACPvH,EAA8C,oBAA9B5tP,KAAKsd,OAAOsoO,cAA+B5lP,KAAKsd,OAAOsoO,gBAAkB5lP,KAAKsd,OAAOsoO,cACrGyQ,EAAer2P,KAAKo2P,aAAa,SAAUxI,EAAQ,gBAEnDA,EAA8C,oBAA9B5tP,KAAKsd,OAAOuoO,cAA+B7lP,KAAKsd,OAAOuoO,gBAAkB7lP,KAAKsd,OAAOuoO,cACrGwQ,EAAer2P,KAAKo2P,aAAa,SAAUxI,EAAQ,eAGrD5tP,KAAK4sP,WAAWn7M,OAAO4kN,KAI3Bz4L,EAAO43L,aAAe,WACpB,IAAI9C,EAAc1yP,KAAKmjP,OAAOuP,aAAe,GAC7C1yP,KAAKksP,SAASt3O,QAGd,IAAI0hP,EAAmBt2P,KAAKu2P,qBAAqB7D,GAG7C4D,EAAiBtiN,YACnBh0C,KAAKksP,SAASz6M,OAAO6kN,IAIzB14L,EAAOo4L,sBAAwB,SAA+B/4G,EAAQ0lG,EAAStxN,GAC7E,IAAImlO,EAAUx2P,KAgCd,YA9BiB,IAAbqxB,IACFA,EAAWja,SAASka,0BAclBtxB,KAAKsd,OAAOw/N,YACd7/F,EAAOn/G,KAAK99B,KAAKsd,OAAOi0N,QAG1Bt0F,EAAOjtI,SAAQ,SAAUsmE,GACvB,IAAImgL,EAhBgB,SAAyBngL,GAC7C,OAAOqsK,EAAQ5pN,QAAO,SAAU+pN,GAC9B,OAAI0T,EAAQ3H,oBACH/L,EAAON,UAAYlsK,EAAMlhC,GAG3B0tM,EAAON,UAAYlsK,EAAMlhC,KAAgD,WAAzCohN,EAAQl5O,OAAOooO,wBAAuC5C,EAAOv0O,aAUnFmoP,CAAgBpgL,GAEnC,GAAImgL,EAAazuP,QAAU,EAAG,CAC5B,IAAI2uP,EAAgBH,EAAQJ,aAAa,cAAe9/K,GAExDjlD,EAASzL,YAAY+wO,GAErBH,EAAQT,uBAAuBU,EAAcplO,GAAU,OAGpDA,GAGTusC,EAAOm4L,uBAAyB,SAAgCpT,EAAStxN,EAAUulO,GACjF,IAAIC,EAAU72P,UAEG,IAAbqxB,IACFA,EAAWja,SAASka,+BAGF,IAAhBslO,IACFA,GAAc,GAIhB,IAAIE,EAAe92P,KAAKsd,OACpBooO,EAAwBoR,EAAapR,sBACrCf,EAAoBmS,EAAanS,kBACjCZ,EAAoB+S,EAAa/S,kBACjChrN,EAAS/4B,KAAKm1P,aAAe3T,EAAcxhP,KAAKsd,OAAOi0N,OAEvDwlB,EAAe,SAAsBjU,GAGvC,GAF6C,SAA1B4C,GAAmCmR,EAAQhI,sBAAwB/L,EAAOv0O,SAE3E,CAChB,IAAI8nP,EAAeQ,EAAQT,aAAa,SAAUtT,EAAQ+T,EAAQv5O,OAAOwoO,gBAEzEz0N,EAASzL,YAAYywO,KAIrBW,EAAsBrU,EAEI,SAA1B+C,GAAqC1lP,KAAK6uP,sBAC5CmI,EAAsBrU,EAAQ5pN,QAAO,SAAU+pN,GAC7C,OAAQA,EAAOv0O,aAKnB,IAAI0oP,EAAwBD,EAAoB17N,QAAO,SAAUC,EAAKunN,GAOpE,OANIA,EAAOhkN,YACTvD,EAAI27N,mBAAmBlpP,KAAK80O,GAE5BvnN,EAAI47N,cAAcnpP,KAAK80O,GAGlBvnN,IACN,CACD27N,mBAAoB,GACpBC,cAAe,KAEbD,EAAqBD,EAAsBC,mBAC3CC,EAAgBF,EAAsBE,eAGtCn3P,KAAKsd,OAAOw/N,YAAc98O,KAAKm1P,eACjCgC,EAAcr5N,KAAK/E,GAGrB,IAAIq+N,EAAcJ,EAAoBhvP,OAElCqvP,EAAgBr3P,KAAK6uP,oBAAsB,GAAGl4O,OAAOugP,EAAoBC,GAAiBA,EAE1Fn3P,KAAKm1P,aACPiC,EAAczS,EACLZ,GAAqBA,EAAoB,IAAM6S,IACxDQ,EAAcrT,GAIhB,IAAK,IAAI38O,EAAI,EAAGA,EAAIgwP,EAAahwP,GAAK,EAChCiwP,EAAcjwP,IAChB2vP,EAAaM,EAAcjwP,IAI/B,OAAOiqB,GAGTusC,EAAO24L,qBAAuB,SAA8B1/M,EAAOxlB,GACjE,IAAIimO,EAAUt3P,UAEG,IAAbqxB,IACFA,EAAWja,SAASka,0BAItB,IAAIimO,EAAgBv3P,KAAKsd,OACrBwnO,EAAkByS,EAAczS,gBAChCvT,EAASgmB,EAAchmB,OACvB6S,EAAmBmT,EAAcnT,iBAwBrC,OAtBIU,IAAoB9kP,KAAK6uP,qBAC3Bh4M,EAAM/Y,KAAKyzM,GAGTvxO,KAAK4uP,eAEP5uP,KAAK2uP,cAAcx+O,MAAQ0mC,EAG3B72C,KAAK2uP,cAAcx3O,QAAU0/B,EAY/BA,EAAM7mC,SATkB,SAA2Bi0B,GAEjD,IAAIk4K,EAAWm7C,EAAQlB,aAAa,OAAQnyN,EAAMmgN,GAGlD/yN,EAASzL,YAAYu2L,MAKhB9qL,GAGTusC,EAAOs1L,eAAiB,SAAwB/iP,QAChCnJ,IAAVmJ,GAAiC,OAAVA,GAI3BnQ,KAAK2uP,cAAc5hO,aAAa26N,EAAe,CAC7Cv3O,MAAOA,KAIXytD,EAAO45L,yBAA2B,WAChC,IAAIC,EAAoBz3P,KAAKmjP,OAAOsU,kBAEhCA,IACFz3P,KAAK03P,SAAS,CACZvnP,MAAOsnP,EAAkBtnP,MACzB9C,MAAOoqP,EAAkBpqP,MACzBk1O,SAAUkV,EAAkBriN,GAC5BotM,QAASiV,EAAkBjV,QAC3B1jN,YAAa24N,EAAkB34N,cAGjC9+B,KAAKkzP,eAAeuE,EAAkBtnP,SAI1CytD,EAAO+5L,oBAAsB,SAA6BjF,EAAa31O,GACrE,GAAK21O,GAAgB31O,GAAY/c,KAAKsd,OAAO6mO,aAAgBnkP,KAAKsd,OAAO8mO,iBAAzE,CAIA,IAAIwT,EAAS76O,EAAQqI,WAAW/hB,aAAa,WACzCw0P,EAAenF,EAAY1iN,MAAK,SAAU/L,GAC5C,OAAOA,EAAKmR,KAAOh9B,SAASw/O,EAAQ,OAGtC53P,KAAK2yP,YAAYkF,GAEjB73P,KAAKkzP,eAAe2E,EAAa1nP,OAE7BnQ,KAAK6uP,qBACP7uP,KAAKw3P,6BAIT55L,EAAOk6L,kBAAoB,SAA2BpF,EAAa31O,EAASg7O,GAC1E,IAAIC,EAAUh4P,KAMd,QAJoB,IAAhB+3P,IACFA,GAAc,GAGXrF,GAAgB31O,GAAY/c,KAAKsd,OAAO6mO,cAAenkP,KAAK6uP,oBAAjE,CAIA,IAAIoJ,EAAWl7O,EAAQ1Z,aAAa,WAIpCqvP,EAAY1iP,SAAQ,SAAUi0B,GACxBA,EAAKmR,KAAOh9B,SAAS6/O,EAAU,KAAQh0N,EAAKw+M,aAEpCsV,GAAe9zN,EAAKw+M,aAC9BuV,EAAQ/F,gBAAgBhuN,GAFxB+zN,EAAQrG,cAAc1tN,MAO1BjkC,KAAK8H,MAAMmrB,UAGb2qC,EAAOs6L,oBAAsB,SAA6BxF,EAAa31O,GACrE,GAAK21O,GAAgB31O,EAArB,CAKA,IAAIq4B,EAAKr4B,EAAQqd,QAAQgb,GAErB0tM,EAAS9iP,KAAKmjP,OAAOE,cAAcjuM,GAEvC,GAAK0tM,EAAL,CAIA,IAAIqV,EAAgBzF,EAAY,IAAMA,EAAY,GAAG9vP,QAAU8vP,EAAY,GAAG9vP,QAAU,KACpFw1P,EAAoBp4P,KAAK0tP,SAAShpN,SAEtCo+M,EAAOlgP,QAAUu1P,EACjBn4P,KAAK2uP,cAAc5hO,aAAa26N,EAAe,CAC7C5E,OAAQA,IAGLA,EAAOv0O,UAAau0O,EAAOrtN,UACbz1B,KAAKk2P,YAAYxD,EAAa5P,EAAO3yO,OAEvCsN,WACbzd,KAAK03P,SAAS,CACZvnP,MAAO2yO,EAAO3yO,MACd9C,MAAOy1O,EAAOz1O,MACdk1O,SAAUO,EAAO1tM,GACjBotM,QAASM,EAAON,QAChBE,iBAAkBI,EAAOJ,iBACzB5jN,YAAagkN,EAAOhkN,YACpBl8B,QAASkgP,EAAOlgP,UAGlB5C,KAAKkzP,eAAepQ,EAAO3yO,QAI/BnQ,KAAKi1P,aAEDmD,GAAqBp4P,KAAK6uP,sBAC5B7uP,KAAKuzP,cAAa,GAClBvzP,KAAKumP,eAAetzN,YAIxB2qC,EAAOy6L,iBAAmB,SAA0B3F,GAClD,GAAK1yP,KAAKsd,OAAO6mO,aAAgBuO,EAAjC,CAIA,IAAI4F,EAAW5F,EAAYA,EAAY1qP,OAAS,GAC5CuwP,EAAsB7F,EAAY/6N,MAAK,SAAUsM,GACnD,OAAOA,EAAKw+M,eAIVziP,KAAKsd,OAAO+mO,YAAckU,GAAuBD,GACnDt4P,KAAK8H,MAAMqI,MAAQmoP,EAASnoP,MAC5BnQ,KAAK8H,MAAM2kM,WAEXzsM,KAAK2yP,YAAY2F,GAEjBt4P,KAAKkzP,eAAeoF,EAASnoP,SAExBooP,GAEHv4P,KAAK2xP,cAAc2G,GAAU,GAG/Bt4P,KAAK+yP,wBAAuB,MAIhCn1L,EAAO82L,cAAgB,WACrB10P,KAAKmjP,OAAO1xI,SAAS08I,IAAa,KAGpCvwL,EAAOo3L,aAAe,WACpBh1P,KAAKmjP,OAAO1xI,SAAS08I,IAAa,KAGpCvwL,EAAO42L,oBAAsB,SAA6BgE,QACrC,IAAfA,IACFA,GAAa,GAGf,IAAIC,EAAkBz4P,KAAKksP,SAAStI,SAAS,IAAM5jP,KAAKsd,OAAO46B,WAAWpZ,aAEtE05N,GACFx4P,KAAKkgB,UACLlgB,KAAKumP,eAAeyC,kBAEhBhpP,KAAK6uP,oBACF4J,EAIHA,EAAgB/0P,UAAY1D,KAAKsd,OAAOqoO,aAHxC8S,EAAkBz4P,KAAKo2P,aAAa,cAAep2P,KAAKsd,OAAOqoO,aAC/D3lP,KAAKksP,SAASz6M,OAAOgnN,IAKvBz4P,KAAK8H,MAAMg3B,YAAc9+B,KAAKsd,OAAOqoO,cAGvC3lP,KAAKogB,SACLpgB,KAAKumP,eAAe0C,qBAEhBjpP,KAAK6uP,oBACP4J,EAAgB/0P,UAAY1D,KAAK0vP,mBAAqB,GAEtD1vP,KAAK8H,MAAMg3B,YAAc9+B,KAAK0vP,mBAAqB,KAKzD9xL,EAAO86L,cAAgB,SAAuBvoP,GAC5C,GAAKA,GAAUnQ,KAAK8H,MAAMqgP,WAA1B,CAIA,IAAIxF,EAAU3iP,KAAKmjP,OAAOR,QACtBgW,EAAgB34P,KAAKsd,OACrBonO,EAAciU,EAAcjU,YAC5BD,EAAgBkU,EAAclU,cAC9BmU,EAAqBjW,EAAQhrN,MAAK,SAAU6G,GAC9C,OAAQA,EAAOkgH,UAGjB,GAAIvuI,GAASA,EAAMnI,QAAU08O,EAAa,CACxC,IAAImU,EAAcpU,EAAgBzkP,KAAK84P,eAAe3oP,GAAS,EAE/DnQ,KAAK2uP,cAAc5hO,aAAa26N,EAAe,CAC7Cv3O,MAAOA,EACP0oP,YAAaA,SAEND,IAET54P,KAAKm1P,cAAe,EAEpBn1P,KAAKmjP,OAAO1xI,SAASu8I,IAAwB,OAIjDpwL,EAAOs4L,YAAc,SAAqBxD,EAAaviP,GACrD,IAAI8lP,GAAa,EACbrI,EAA4C,oBAA5B5tP,KAAKsd,OAAO2oO,YAA6BjmP,KAAKsd,OAAO2oO,YAAY91O,GAASnQ,KAAKsd,OAAO2oO,YAE1G,IAAKjmP,KAAK6uP,oBAAqB,CAC7B,IAAIkK,EA9+FU,SAAuB/gO,EAAO7nB,EAAOxN,GAKvD,YAJY,IAARA,IACFA,EAAM,SAGDq1B,EAAML,MAAK,SAAUsM,GAC1B,MAAqB,kBAAV9zB,EACF8zB,EAAKthC,KAASwN,EAAM3M,OAGtBygC,EAAKthC,KAASwN,KAo+FI6oP,CAActG,EAAaviP,GAE9CnQ,KAAKsd,OAAO0mO,aAAe,GAAKhkP,KAAKsd,OAAO0mO,cAAgB0O,EAAY1qP,SAG1EiuP,GAAa,EACbrI,EAA4C,oBAA5B5tP,KAAKsd,OAAO4oO,YAA6BlmP,KAAKsd,OAAO4oO,YAAYlmP,KAAKsd,OAAO0mO,cAAgBhkP,KAAKsd,OAAO4oO,cAGtHlmP,KAAKsd,OAAOgnO,uBAAyByU,GAAoB9C,IAC5DA,GAAa,EACbrI,EAA+C,oBAA/B5tP,KAAKsd,OAAOyoO,eAAgC/lP,KAAKsd,OAAOyoO,eAAe51O,GAASnQ,KAAKsd,OAAOyoO,gBAG1G/lP,KAAK4uP,gBAAkB5uP,KAAKsd,OAAO2mO,UAAYgS,GAAmD,oBAA9Bj2P,KAAKsd,OAAO4mO,gBAAiClkP,KAAKsd,OAAO4mO,cAAc/zO,KAC7I8lP,GAAa,EACbrI,EAAkD,oBAAlC5tP,KAAKsd,OAAO0oO,kBAAmChmP,KAAKsd,OAAO0oO,kBAAkB71O,GAASnQ,KAAKsd,OAAO0oO,mBAItH,MAAO,CACLvoO,SAAUw4O,EACVrI,OAAQA,IAIZhwL,EAAOk7L,eAAiB,SAAwB3oP,GAC9C,IAAIyvB,EAA4B,kBAAVzvB,EAAqBA,EAAM3M,OAAS2M,EACtDm5J,EAA6C,kBAAvBtpK,KAAKqvP,cAA6BrvP,KAAKqvP,cAAc7rP,OAASxD,KAAKqvP,cAE7F,GAAIzvN,EAAS53B,OAAS,GAAK43B,IAAa0pI,EAAe,IACrD,OAAO,EAIT,IAAI2vF,EAAWj5P,KAAKmjP,OAAO+V,kBACvBC,EAASv5N,EACTlpB,EAAO,GAAGC,OAAO3W,KAAKsd,OAAOsnO,cAC7BztO,EAAU3W,OAAOkQ,OAAO1Q,KAAKsd,OAAO8oO,YAAa,CACnD1vO,KAAMA,IAGJswB,EADO,IAAIi4M,EAAatgO,EAAEs6O,EAAU9hP,GACrBm9B,OAAO6kN,GAO1B,OANAn5P,KAAKqvP,cAAgBzvN,EACrB5/B,KAAKwvP,mBAAqB,EAC1BxvP,KAAKm1P,cAAe,EAEpBn1P,KAAKmjP,OAAO1xI,SAz2CY,SAAuBzqE,GACjD,MAAO,CACLhzB,KAAM2zO,EACN3gN,QAASA,GAs2CYoyN,CAAsBpyN,IAEpCA,EAAQh/B,QAGjB41D,EAAO4zL,mBAAqB,WAC1B,IACI1kL,EADY11D,SACgB01D,gBAEhCA,EAAgBhnE,iBAAiB,WAAY9F,KAAK2wP,aAAa,GAC/D3wP,KAAKumP,eAAexpO,QAAQjX,iBAAiB,UAAW9F,KAAKwwP,YAAY,GACzExwP,KAAKumP,eAAexpO,QAAQjX,iBAAiB,YAAa9F,KAAK4wP,cAAc,GAE7E9jL,EAAgBhnE,iBAAiB,QAAS9F,KAAKywP,SAAU,CACvDl5O,SAAS,IAEXu1D,EAAgBhnE,iBAAiB,YAAa9F,KAAK0wP,aAAc,CAC/Dn5O,SAAS,IAEXvX,KAAK0tP,SAAS3wO,QAAQjX,iBAAiB,YAAa9F,KAAK6wP,aAAc,CACrEt5O,SAAS,IAGPvX,KAAK6uP,sBACP7uP,KAAKumP,eAAexpO,QAAQjX,iBAAiB,QAAS9F,KAAKooP,SAAU,CACnE7wO,SAAS,IAEXvX,KAAKumP,eAAexpO,QAAQjX,iBAAiB,OAAQ9F,KAAKqoP,QAAS,CACjE9wO,SAAS,KAIbvX,KAAK8H,MAAMiV,QAAQjX,iBAAiB,QAAS9F,KAAKuwP,SAAU,CAC1Dh5O,SAAS,IAEXvX,KAAK8H,MAAMiV,QAAQjX,iBAAiB,QAAS9F,KAAKooP,SAAU,CAC1D7wO,SAAS,IAEXvX,KAAK8H,MAAMiV,QAAQjX,iBAAiB,OAAQ9F,KAAKqoP,QAAS,CACxD9wO,SAAS,IAGPvX,KAAK8H,MAAMiV,QAAQgvF,MACrB/rG,KAAK8H,MAAMiV,QAAQgvF,KAAKjmG,iBAAiB,QAAS9F,KAAK8wP,aAAc,CACnEv5O,SAAS,IAIbvX,KAAK8H,MAAMwgP,qBAGb1qL,EAAO6zL,sBAAwB,WAC7B,IACI3kL,EADa11D,SACgB01D,gBACjCA,EAAgB/mE,oBAAoB,WAAY/F,KAAK2wP,aAAa,GAClE3wP,KAAKumP,eAAexpO,QAAQhX,oBAAoB,UAAW/F,KAAKwwP,YAAY,GAC5ExwP,KAAKumP,eAAexpO,QAAQhX,oBAAoB,YAAa/F,KAAK4wP,cAAc,GAChF9jL,EAAgB/mE,oBAAoB,QAAS/F,KAAKywP,UAClD3jL,EAAgB/mE,oBAAoB,YAAa/F,KAAK0wP,cACtD1wP,KAAK0tP,SAAS3wO,QAAQhX,oBAAoB,YAAa/F,KAAK6wP,cAExD7wP,KAAK6uP,sBACP7uP,KAAKumP,eAAexpO,QAAQhX,oBAAoB,QAAS/F,KAAKooP,UAC9DpoP,KAAKumP,eAAexpO,QAAQhX,oBAAoB,OAAQ/F,KAAKqoP,UAG/DroP,KAAK8H,MAAMiV,QAAQhX,oBAAoB,QAAS/F,KAAKuwP,UACrDvwP,KAAK8H,MAAMiV,QAAQhX,oBAAoB,QAAS/F,KAAKooP,UACrDpoP,KAAK8H,MAAMiV,QAAQhX,oBAAoB,OAAQ/F,KAAKqoP,SAEhDroP,KAAK8H,MAAMiV,QAAQgvF,MACrB/rG,KAAK8H,MAAMiV,QAAQgvF,KAAKhmG,oBAAoB,QAAS/F,KAAK8wP,cAG5D9wP,KAAK8H,MAAMygP,wBAOb3qL,EAAO4yL,WAAa,SAAoBliP,GACtC,IAAI+qP,EAEAz0P,EAAS0J,EAAM1J,OACfhC,EAAU0L,EAAM1L,QAChB+1B,EAAUrqB,EAAMqqB,QAChB44C,EAAUjjE,EAAMijE,QAChBmhL,EAAc1yP,KAAKmjP,OAAOuP,YAC1B4G,EAAkBt5P,KAAK8H,MAAMqgP,WAC7BiQ,EAAoBp4P,KAAK0tP,SAAShpN,SAClC60N,EAAWv5P,KAAKksP,SAASrC,cACzB2P,EAAY/yP,OAAO0tE,aAAavxE,GAChC62P,EAAW7R,EACX8R,EAAa9R,EACb+R,EAAY/R,EACZgS,EAAQhS,EACRiS,EAAUjS,GACVkS,EAASlS,GACTmS,EAAWnS,GACXoS,EAAcpS,GACdqS,EAAgBrS,GAChBsS,EAAwBvhO,GAAW44C,GAElCvxE,KAAK4uP,gBAAkB,iBAAiB1wP,KAAKs7P,IAChDx5P,KAAKmzP,eAIP,IAAIgH,IAAkBd,EAAkB,IAAoBO,GAAS55P,KAAK+wP,QAASsI,EAAgBM,GAAa35P,KAAKgxP,YAAaqI,EAAgBQ,GAAW75P,KAAKixP,aAAcoI,EAAgBS,GAAU95P,KAAKkxP,gBAAiBmI,EAAgBW,GAAeh6P,KAAKkxP,gBAAiBmI,EAAgBU,GAAY/5P,KAAKkxP,gBAAiBmI,EAAgBY,GAAiBj6P,KAAKkxP,gBAAiBmI,EAAgBK,GAAc15P,KAAKmxP,aAAckI,EAAgBI,GAAYz5P,KAAKmxP,aAAckI,GAE1dc,EAAev3P,IACjBu3P,EAAev3P,GAAS,CACtB0L,MAAOA,EACP1J,OAAQA,EACRhC,QAASA,EACT2uE,QAASA,EACTmhL,YAAaA,EACb4G,gBAAiBA,EACjBlB,kBAAmBA,EACnBmB,SAAUA,EACVW,sBAAuBA,KAK7Bt8L,EAAO2yL,SAAW,SAAkBz5F,GAClC,IAAIlyJ,EAASkyJ,EAAMlyJ,OACfhC,EAAUk0J,EAAMl0J,QAChBuN,EAAQnQ,KAAK8H,MAAMqI,MACnBuiP,EAAc1yP,KAAKmjP,OAAOuP,YAE1BuD,EAAaj2P,KAAKk2P,YAAYxD,EAAaviP,GAE3CiqP,EAAUxS,EACVyS,EAAYzS,EAGhB,GAAI5nP,KAAK4uP,eAGP,GAF4BqH,EAAWrI,QAAUz9O,EAEtB,CACzB,IAAIkmP,EAAer2P,KAAKo2P,aAAa,SAAUH,EAAWrI,QAE1D5tP,KAAK0tP,SAAS3wO,QAAQrZ,UAAY2yP,EAAa74K,UAC/Cx9E,KAAKmzP,cAAa,QAElBnzP,KAAKuzP,cAAa,OAEf,CACL,IAAI+G,GAAuB13P,IAAYw3P,GAAWx3P,IAAYy3P,KAAez1P,EAAOuL,MAChFoqP,GAAwBv6P,KAAK4uP,gBAAkB5uP,KAAKm1P,aACpDqF,EAAYx6P,KAAKsvP,YAAc2G,EAAWx4O,SAE1C68O,GAAuBC,GACzBv6P,KAAKm1P,cAAe,EAEpBn1P,KAAKmjP,OAAO1xI,SAASu8I,IAAwB,KACpCwM,GACTx6P,KAAK04P,cAAc14P,KAAK8H,MAAMqI,OAIlCnQ,KAAKsvP,WAAatvP,KAAKsd,OAAOknO,eAGhC5mL,EAAOmzL,QAAU,SAAiBt7F,GAChC,IAAI8jG,EAAW9jG,EAAM8jG,SACO9jG,EAAMykG,uBAELX,IAC3Bv5P,KAAKsvP,YAAa,EACQtvP,KAAKsd,OAAO6mO,cAAgBnkP,KAAK8H,MAAMqI,OAASnQ,KAAK8H,MAAMiV,UAAY3F,SAAS8c,eAGxGl0B,KAAKqyP,iBAKXz0L,EAAOozL,YAAc,SAAqB7E,GACxC,IAAI79O,EAAQ69O,EAAM79O,MACd1J,EAASunP,EAAMvnP,OACf8tP,EAAcvG,EAAMuG,YACpB0F,EAAoBjM,EAAMiM,kBAC1BqC,EAAW7S,EACX8S,EAAkB91P,EAAOmoF,aAAa,eAE1C,GAAI/sF,KAAK4uP,gBAAkBhqP,EAAOuL,MAAO,CACvC,IAAIA,EAAQnQ,KAAK8H,MAAMqI,MAENnQ,KAAKk2P,YAAYxD,EAAaviP,GAEhCsN,WACbzd,KAAKuzP,cAAa,GAElBvzP,KAAK03P,SAAS,CACZvnP,MAAOA,IAGTnQ,KAAKkzP,eAAe/iP,GAEpBnQ,KAAKi1P,cAUT,GANIyF,IACF16P,KAAK23P,oBAAoBjF,EAAa9tP,GAEtC0J,EAAMkqB,kBAGJ4/N,EAAmB,CACrB,IAAIuC,EAAoB36P,KAAK0tP,SAAS9J,SAAS,IAAM5jP,KAAKsd,OAAO46B,WAAWkvM,kBAExEuT,IAEEjI,EAAY,KACdA,EAAY,GAAG9vP,QAAU63P,GAG3Bz6P,KAAKk4P,oBAAoBxF,EAAaiI,IAGxCrsP,EAAMkqB,sBACGx4B,KAAK6uP,sBACd7uP,KAAKmzP,eACL7kP,EAAMkqB,mBAIVolC,EAAOqzL,aAAe,SAAsB5E,GAClBA,EAAM+L,oBAG5Bp4P,KAAKuzP,cAAa,GAClBvzP,KAAKumP,eAAetzN,UAIxB2qC,EAAOszL,gBAAkB,SAAyB5E,GAChD,IA33GiDvvO,EAASogC,EAAQgQ,EA23G9D7+C,EAAQg+O,EAAMh+O,MACd8pP,EAAoB9L,EAAM8L,kBAC1Bx1P,EAAU0pP,EAAM1pP,QAChB2uE,EAAU+6K,EAAM/6K,QAChBqpL,EAAUhT,GACViT,EAAYjT,GACZkT,EAAclT,GAElB,GAAIwQ,GAAqBp4P,KAAK6uP,oBAAqB,CACjD7uP,KAAKmzP,eACLnzP,KAAKsvP,YAAa,EAClB,IAGI3jM,EAHAovM,EAAen4P,IAAYg4P,GAAWh4P,IAAYk4P,EAAc,GAAK,EAErEE,EAA6B,2BAGjC,GAJczpL,GAAW3uE,IAAYk4P,GAAel4P,IAAYi4P,EAM5DlvM,EADEovM,EAAe,EACR/6P,KAAK0tP,SAAS3wO,QAAQzY,cAAc02P,yCAEpCh7P,KAAK0tP,SAAS3wO,QAAQzY,cAAc02P,OAE1C,CACL,IAAIC,EAAYj7P,KAAK0tP,SAAS3wO,QAAQzY,cAAc,IAAMtE,KAAKsd,OAAO46B,WAAWkvM,kBAG/Ez7L,EADEsvM,EAl7GQ,SAAuBC,EAAS36N,EAAU4sB,GAK5D,QAJkB,IAAdA,IACFA,EAAY,GAGR+tM,aAAmBn5L,SAAgC,kBAAbxhC,EAA5C,CAOA,IAHA,IAAIgpF,GAAQp8D,EAAY,EAAI,OAAS,YAAc,iBAC/CguM,EAAUD,EAAQ3xI,GAEf4xI,GAAS,CACd,GAAIA,EAAQl/M,QAAQ1b,GAClB,OAAO46N,EAGTA,EAAUA,EAAQ5xI,GAGpB,OAAO4xI,GA+5GUC,CAAcH,EAAWD,EAA4BD,GAErD/6P,KAAK0tP,SAAS3wO,QAAQzY,cAAc02P,GAI7CrvM,IA35G2C5uC,EA85GrB4uC,EA95G8BxO,EA85GtBn9C,KAAK4sP,WAAW7vO,aA75GpC,KADkDowC,EA85GL4tM,KA55G7D5tM,EAAY,GAGTpwC,IAMDowC,EAAY,EAEFhQ,EAAO5B,UAAY4B,EAAO1hB,cAAgB1e,EAAQs4C,UAAYt4C,EAAQ0e,aAGtE1e,EAAQs4C,WAAalY,EAAO5B,YA+4GlCv7C,KAAK4sP,WAAW5C,qBAAqBr+L,EAAQovM,GAG/C/6P,KAAKm2P,iBAAiBxqM,IAKxBr9C,EAAMkqB,mBAIVolC,EAAOuzL,aAAe,SAAsBtE,GAC1C,IAAIv+O,EAAQu+O,EAAMv+O,MACd1J,EAASioP,EAAMjoP,OACf00P,EAAkBzM,EAAMyM,gBACxB5G,EAAc7F,EAAM6F,aAEpB4G,GAAoB10P,EAAOuL,OAAUnQ,KAAK6uP,sBAC5C7uP,KAAKq4P,iBAAiB3F,GAEtBpkP,EAAMkqB,mBAIVolC,EAAO8yL,aAAe,WAChB1wP,KAAKyvP,UACPzvP,KAAKyvP,SAAU,IAInB7xL,EAAO+yL,YAAc,SAAqBriP,GACxC,IACI1J,GADQ0J,GAASA,EAAM+0C,QAAQ,IAChBz+C,OAEW5E,KAAKyvP,SAAWzvP,KAAKumP,eAAexpO,QAAQkU,SAASrsB,MAGnDA,IAAW5E,KAAKumP,eAAexpO,SAAWnY,IAAW5E,KAAKwmP,eAAezpO,WAGjG/c,KAAK4uP,eACP5uP,KAAK8H,MAAMmrB,QACFjzB,KAAK8uP,0BACd9uP,KAAKmzP,gBAKT7kP,EAAMsqB,mBAGR54B,KAAKyvP,SAAU,GAQjB7xL,EAAOgzL,aAAe,SAAsBtiP,GAC1C,IAAI1J,EAAS0J,EAAM1J,OAEnB,GAAMA,aAAkBu7B,YAAxB,CAKA,GAAIkuN,IAAWruP,KAAK4sP,WAAW7vO,QAAQkU,SAASrsB,GAAS,CAEvD,IAAIy2P,EAEJr7P,KAAK4sP,WAAW7vO,QAAQmc,kBACpBoiO,EAAoC,QAApBt7P,KAAK8vP,WAAuBxhP,EAAMyuM,SAAWs+C,EAAY9tO,YAAcjf,EAAMyuM,QAAUs+C,EAAYjmM,WACvHp1D,KAAKuvP,iBAAmB+L,EAG1B,GAAI12P,IAAW5E,KAAK8H,MAAMiV,QAA1B,CAIA,IAAIknB,EAAOr/B,EAAOy4C,QAAQ,2CAE1B,GAAIpZ,aAAgB9D,YAAa,CAC/B,IAAI43N,EAAczpP,EAAM0qB,SACpB05N,EAAc1yP,KAAKmjP,OAAOuP,YAC1Bt4N,EAAU6J,EAAK7J,QAEf,WAAYA,EACdp6B,KAAK23P,oBAAoBjF,EAAazuN,GAC7B,SAAU7J,EACnBp6B,KAAK83P,kBAAkBpF,EAAazuN,EAAM8zN,GACjC,WAAY39N,GACrBp6B,KAAKk4P,oBAAoBxF,EAAazuN,GAI1C31B,EAAMkqB,oBAQRolC,EAAOizL,aAAe,SAAsB7D,GAC1C,IAAIpoP,EAASooP,EAAMpoP,OAEfA,aAAkBu7B,aAAe,WAAYv7B,EAAOw1B,SACtDp6B,KAAKm2P,iBAAiBvxP,IAI1Bg5D,EAAO6yL,SAAW,SAAkBxD,GAClC,IAAIroP,EAASqoP,EAAOroP,OACU5E,KAAKumP,eAAexpO,QAAQkU,SAASrsB,GAG5D5E,KAAK0tP,SAAShpN,UAAa1kC,KAAKumP,eAAej/E,WASzCtnK,KAAK6uP,qBAAuBjqP,IAAW5E,KAAK8H,MAAMiV,UAAY/c,KAAK0tP,SAAS3wO,QAAQkU,SAASrsB,IACtG5E,KAAKuzP,eATDvzP,KAAK4uP,eACHx3O,SAAS8c,gBAAkBl0B,KAAK8H,MAAMiV,SACxC/c,KAAK8H,MAAMmrB,SAGbjzB,KAAKmzP,eACLnzP,KAAKumP,eAAetzN,UAMEjzB,KAAKmjP,OAAO8P,uBAAuBjrP,OAAS,GAGpEhI,KAAKsyP,iBAGPtyP,KAAKumP,eAAeuC,mBACpB9oP,KAAKuzP,cAAa,KAItB31L,EAAOwqL,SAAW,SAAkB8E,GAClC,IACIqO,EADAC,EAAUx7P,KAGV4E,EAASsoP,EAAOtoP,OACU5E,KAAKumP,eAAexpO,QAAQkU,SAASrsB,MAM/C22P,EAAgB,IAA2B,KAAI,WAC7D32P,IAAW42P,EAAQ1zP,MAAMiV,SAC3By+O,EAAQjV,eAAesC,iBAExB0S,EAAczT,cAAmB,WAClC0T,EAAQjV,eAAesC,gBAEnBjkP,IAAW42P,EAAQ1zP,MAAMiV,SAC3By+O,EAAQrI,cAAa,IAEtBoI,EAAcxT,mBAAwB,WACnCnjP,IAAW42P,EAAQ1zP,MAAMiV,UAC3By+O,EAAQrI,cAAa,GAIrBqI,EAAQjV,eAAesC,kBAExB0S,GACUv7P,KAAK2uP,cAAc5xO,QAAQ/I,SAG1C4pD,EAAOyqL,QAAU,SAAiBiF,GAChC,IAAImO,EAAUz7P,KAEV4E,EAAS0oP,EAAO1oP,OAGpB,GAF6B5E,KAAKumP,eAAexpO,QAAQkU,SAASrsB,KAEnC5E,KAAKuvP,iBAAkB,CACpD,IAAImM,EAGAnD,EADcv4P,KAAKmjP,OAAOuP,YACQ/6N,MAAK,SAAUsM,GACnD,OAAOA,EAAKw+M,iBAEKiZ,EAAe,IAA0B,KAAI,WAC1D92P,IAAW62P,EAAQ3zP,MAAMiV,UAC3B0+O,EAAQlV,eAAeuC,mBAEnByP,GACFkD,EAAQnJ,iBAGVmJ,EAAQlI,cAAa,KAEtBmI,EAAa5T,cAAmB,WACjC2T,EAAQlV,eAAeuC,oBAEnBlkP,IAAW62P,EAAQ3zP,MAAMiV,SAAWnY,IAAW62P,EAAQlV,eAAexpO,UAAY0+O,EAAQnM,aAC5FmM,EAAQlI,cAAa,IAEtBmI,EAAa3T,mBAAwB,WAClCnjP,IAAW62P,EAAQ3zP,MAAMiV,UAC3B0+O,EAAQlV,eAAeuC,mBAEvB2S,EAAQlI,cAAa,GAEjBgF,GACFkD,EAAQnJ,mBAGXoJ,GACS17P,KAAK2uP,cAAc5xO,QAAQ/I,aAKvChU,KAAKuvP,kBAAmB,EACxBvvP,KAAK8H,MAAMiV,QAAQkW,SAIvB2qC,EAAOkzL,aAAe,WACpB9wP,KAAKmjP,OAAO1xI,SAptDP,CACLz9F,KAAM,WACNsxB,MAktD6BtlC,KAAKkvP,iBAGpCtxL,EAAOu4L,iBAAmB,SAA0B3mP,GAClD,IAAImsP,EAAU37P,UAEH,IAAPwP,IACFA,EAAK,MAGP,IAAImzO,EAAUlkO,MAAMyZ,KAAKl4B,KAAK0tP,SAAS3wO,QAAQlN,iBAAiB,6BAEhE,GAAK8yO,EAAQ36O,OAAb,CAIA,IAAI4zP,EAAWpsP,EACUiP,MAAMyZ,KAAKl4B,KAAK0tP,SAAS3wO,QAAQlN,iBAAiB,IAAM7P,KAAKsd,OAAO46B,WAAWkvM,mBAErFp3O,SAAQ,SAAU8yO,GACnCA,EAAOz9O,UAAUG,OAAOm2P,EAAQr+O,OAAO46B,WAAWkvM,kBAClDtE,EAAOr/O,aAAa,gBAAiB,YAGnCm4P,EACF57P,KAAKwvP,mBAAqB7M,EAAQh7O,QAAQi0P,IAKxCA,EAFEjZ,EAAQ36O,OAAShI,KAAKwvP,mBAEb7M,EAAQ3iP,KAAKwvP,oBAGb7M,EAAQA,EAAQ36O,OAAS,MAIpC4zP,EAAWjZ,EAAQ,IAIvBiZ,EAASv2P,UAAUC,IAAItF,KAAKsd,OAAO46B,WAAWkvM,kBAC9CwU,EAASn4P,aAAa,gBAAiB,QACvCzD,KAAK2uP,cAAc5hO,aAAa26N,EAAwB,CACtDl4O,GAAIosP,IAGF57P,KAAK0tP,SAAShpN,WAGhB1kC,KAAK8H,MAAM4gP,oBAAoBkT,EAASxmN,IACxCp1C,KAAKumP,eAAemC,oBAAoBkT,EAASxmN,OAIrDwoB,EAAO85L,SAAW,SAAkB/J,GAClC,IAAIx9O,EAAQw9O,EAAOx9O,MACf0rP,EAAelO,EAAOtgP,MACtBA,OAAyB,IAAjBwuP,EAA0B,KAAOA,EACzCC,EAAkBnO,EAAOpL,SACzBA,OAA+B,IAApBuZ,GAA8B,EAAIA,EAC7CC,EAAiBpO,EAAOnL,QACxBA,OAA6B,IAAnBuZ,GAA6B,EAAIA,EAC3CC,EAAwBrO,EAAOjL,iBAC/BA,OAA6C,IAA1BsZ,EAAmC,KAAOA,EAC7DC,EAAqBtO,EAAO7uN,YAC5BA,OAAqC,IAAvBm9N,GAAwCA,EACtDC,EAAiBvO,EAAO/qP,QACxBA,OAA6B,IAAnBs5P,EAA4B,KAAOA,EAC7CC,EAA+B,kBAAVhsP,EAAqBA,EAAM3M,OAAS2M,EACzDgoP,EAAgBv1P,EAChBw5P,EAAyB1Z,EACzB7rM,EAAQ72C,KAAKmjP,OAAOtsM,MACpBwlN,EAAchvP,GAAS8uP,EACvBG,EAAiB/Z,IAAa,EAC9BjsK,EAAQksK,GAAW,EAAIxiP,KAAKmjP,OAAOI,aAAaf,GAAW,KAC3DptM,EAAKyB,EAAQA,EAAM7uC,OAAS,EAAI,EAmCpC,OAjCIhI,KAAKsd,OAAOkoO,eACd2W,EAAcn8P,KAAKsd,OAAOkoO,aAAe2W,EAAYrjP,YAInD9Y,KAAKsd,OAAOmoO,cACd0W,GAAen8P,KAAKsd,OAAOmoO,YAAY3sO,YAGzC9Y,KAAKmjP,OAAO1xI,SA34DI,SAAiBhwD,GACnC,IAAItxC,EAAQsxC,EAAKtxC,MACb9C,EAAQo0C,EAAKp0C,MACb+nC,EAAKqM,EAAKrM,GACVmtM,EAAW9gM,EAAK8gM,SAChBC,EAAU/gM,EAAK+gM,QACfE,EAAmBjhM,EAAKihM,iBACxB5jN,EAAc2iB,EAAK3iB,YACnBl8B,EAAU6+C,EAAK7+C,QACnB,MAAO,CACLoR,KAAM2zO,EACNx3O,MAAOA,EACP9C,MAAOA,EACP+nC,GAAIA,EACJmtM,SAAUA,EACVC,QAASA,EACTE,iBAAkBA,EAClB5jN,YAAaA,EACbl8B,QAASA,GAy3DY25P,CAAc,CACjCpsP,MAAOgsP,EACP9uP,MAAOgvP,EACPjnN,GAAIA,EACJmtM,SAAU+Z,EACV9Z,QAASA,EACTE,iBAAkBA,EAClB5jN,YAAaA,EACbl8B,QAASu1P,KAGPn4P,KAAK6uP,qBACP7uP,KAAK4yP,kBAAkBx9M,GAIzBp1C,KAAK2uP,cAAc5hO,aAAa26N,EAAgB,CAC9CtyM,GAAIA,EACJjlC,MAAOgsP,EACP9uP,MAAOgvP,EACP3Z,iBAAkB0Z,EAClBpK,WAAY17K,GAASA,EAAMnmE,MAAQmmE,EAAMnmE,WAAQnJ,EACjDpE,QAASu1P,IAEJn4P,MAGT49D,EAAO+0L,YAAc,SAAqB1uN,GACxC,IAAKA,IAAS08H,EAAO,SAAU18H,GAC7B,OAAOjkC,KAGT,IAAIo1C,EAAKnR,EAAKmR,GACVjlC,EAAQ8zB,EAAK9zB,MACb9C,EAAQ42B,EAAK52B,MACbk1O,EAAWt+M,EAAKs+M,SAChBC,EAAUv+M,EAAKu+M,QACflsK,EAAQksK,GAAW,EAAIxiP,KAAKmjP,OAAOI,aAAaf,GAAW,KAmB/D,OAjBAxiP,KAAKmjP,OAAO1xI,SAt5DO,SAAoBr8D,EAAImtM,GAC7C,MAAO,CACLvuO,KAAM2zO,EACNvyM,GAAIA,EACJmtM,SAAUA,GAk5DWia,CAAiBpnN,EAAImtM,IAEtCjsK,GAASA,EAAMnmE,MACjBnQ,KAAK2uP,cAAc5hO,aAAa26N,EAAmB,CACjDtyM,GAAIA,EACJjlC,MAAOA,EACP9C,MAAOA,EACP2kP,WAAY17K,EAAMnmE,QAGpBnQ,KAAK2uP,cAAc5hO,aAAa26N,EAAmB,CACjDtyM,GAAIA,EACJjlC,MAAOA,EACP9C,MAAOA,IAIJrN,MAGT49D,EAAOm3L,WAAa,SAAoBlH,GACtC,IAAI19O,EAAQ09O,EAAO19O,MACfssP,EAAe5O,EAAOxgP,MACtBA,OAAyB,IAAjBovP,EAA0B,KAAOA,EACzCC,EAAoB7O,EAAOhgP,WAC3BA,OAAmC,IAAtB6uP,GAAuCA,EACpDC,EAAoB9O,EAAOvmF,WAC3BA,OAAmC,IAAtBq1F,GAAuCA,EACpDC,EAAiB/O,EAAOrL,QACxBA,OAA6B,IAAnBoa,GAA6B,EAAIA,EAC3CC,EAAwBhP,EAAOnL,iBAC/BA,OAA6C,IAA1Bma,EAAmC,KAAOA,EAC7DC,EAAqBjP,EAAO/uN,YAC5BA,OAAqC,IAAvBg+N,GAAwCA,EACtDC,EAAiBlP,EAAOjrP,QACxBA,OAA6B,IAAnBm6P,EAA4B,KAAOA,EAEjD,GAAqB,qBAAV5sP,GAAmC,OAAVA,EAApC,CAKA,IAAIwyO,EAAU3iP,KAAKmjP,OAAOR,QACtBqa,EAAc3vP,GAAS8C,EACvBoyO,EAAWI,EAAUA,EAAQ36O,OAAS,EAAI,EAC1Ci1P,EAAkBj9P,KAAK4vP,QAAU,IAAM5vP,KAAKgwP,SAASjJ,WAAa,IAAMxE,EAE5EviP,KAAKmjP,OAAO1xI,SA1iEQ,SAAmBhwD,GACzC,IAAItxC,EAAQsxC,EAAKtxC,MACb9C,EAAQo0C,EAAKp0C,MACb+nC,EAAKqM,EAAKrM,GACVotM,EAAU/gM,EAAK+gM,QACf/sN,EAAWgsB,EAAKhsB,SAChBmtN,EAAYnhM,EAAKmhM,UACjBF,EAAmBjhM,EAAKihM,iBACxB5jN,EAAc2iB,EAAK3iB,YACnBl8B,EAAU6+C,EAAK7+C,QACnB,MAAO,CACLoR,KAAM2zO,EACNx3O,MAAOA,EACP9C,MAAOA,EACP+nC,GAAIA,EACJotM,QAASA,EACT/sN,SAAUA,EACVmtN,UAAWA,EACXF,iBAAkBA,EAClB5jN,YAAaA,EACbl8B,QAASA,GAshEYs6P,CAAkB,CACrC9nN,GAAImtM,EACJC,QAASA,EACTI,UAAWqa,EACX9sP,MAAOA,EACP9C,MAAO2vP,EACPvnO,SAAU6xI,EACVo7E,iBAAkBA,EAClB5jN,YAAaA,EACbl8B,QAASA,KAGPiL,GACF7N,KAAK03P,SAAS,CACZvnP,MAAOA,EACP9C,MAAO2vP,EACPza,SAAUA,EACVG,iBAAkBA,EAClB5jN,YAAaA,EACbl8B,QAASA,MAKfg7D,EAAOg3L,UAAY,SAAmB9G,GACpC,IAAIqP,EAAUn9P,KAEVs2E,EAAQw3K,EAAOx3K,MACflhC,EAAK04M,EAAO14M,GACZgoN,EAAkBtP,EAAO+G,SACzBA,OAA+B,IAApBuI,EAA6B,QAAUA,EAClDC,EAAkBvP,EAAOgH,SACzBA,OAA+B,IAApBuI,EAA6B,QAAUA,EAClD5G,EAAe91F,EAAO,SAAUrqF,GAASA,EAAMqsK,QAAUlkO,MAAMyZ,KAAKo+C,EAAM9gD,qBAAqB,WAC/FgtN,EAAUptM,GAAM18B,KAAKG,OAAM,IAAIX,MAAOivG,UAAYzuG,KAAKsmD,UACvDsoG,IAAahxF,EAAM7gD,UAAW6gD,EAAM7gD,SAEpCghO,GACFz2P,KAAKmjP,OAAO1xI,SAASy8I,GAAgB,CACnC/9O,MAAOmmE,EAAMjpE,MACb+nC,GAAIotM,EACJ9jG,QAAQ,EACRjpH,SAAU6xI,KAiBZmvF,EAAazmP,SAdS,SAAyB8yO,GAC7C,IAAIwa,EAAgBxa,EAAOrtN,UAAYqtN,EAAO19N,YAAc09N,EAAO19N,WAAWqQ,SAE9E0nO,EAAQpI,WAAW,CACjB5kP,MAAO2yO,EAAO+R,GACdxnP,MAAOszJ,EAAO,SAAUmiF,GAAUA,EAAOgS,GAAYhS,EAAOp/O,UAC5DmK,WAAYi1O,EAAOv0O,SACnB+4J,WAAYg2F,EACZ9a,QAASA,EACTE,iBAAkBI,EAAOJ,iBACzB5jN,YAAagkN,EAAOhkN,kBAMxB9+B,KAAKmjP,OAAO1xI,SAASy8I,GAAgB,CACnC/9O,MAAOmmE,EAAMjpE,MACb+nC,GAAIkhC,EAAMlhC,GACVspG,QAAQ,EACRjpH,SAAU6gD,EAAM7gD,aAKtBmoC,EAAOw4L,aAAe,SAAsB3K,GAC1C,IAAI8R,EAEJ,IAAK9R,EACH,OAAO,KAKT,IAFA,IAAIvzM,EAAal4C,KAAKsd,OAAO46B,WAEpBN,EAAO9zC,UAAUkE,OAAQwc,EAAO,IAAI/F,MAAMm5B,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IAClGrzB,EAAKqzB,EAAO,GAAK/zC,UAAU+zC,GAG7B,OAAQ0lN,EAAwBv9P,KAAKgvP,WAAWvD,IAAW1rP,KAAK8D,MAAM05P,EAAuB,CAACv9P,KAAMk4C,GAAYvhC,OAAO6N,KAGzHo5C,EAAOyzL,iBAAmB,WACxB,IAAI/K,EAA4BtmP,KAAKsd,OAAOgpO,0BACxCkX,EAAgB,GAEhBlX,GAAkE,oBAA9BA,IACtCkX,EAAgBlX,EAA0BvmP,KAAKC,KAAMqhP,IAGvDrhP,KAAKgvP,WAAa7P,IAAcyM,GAAW4R,IAG7C5/L,EAAO0zL,gBAAkB,WACvBtxP,KAAKumP,eAAiB,IAAIyB,GAAoB,CAC5CjrO,QAAS/c,KAAKo2P,aAAa,iBAAkBp2P,KAAK8vP,WAAY9vP,KAAK+uP,iBAAkB/uP,KAAK6uP,oBAAqB7uP,KAAKsd,OAAOknO,cAAexkP,KAAK2uP,cAAc5xO,QAAQ/I,MACrKkkC,WAAYl4C,KAAKsd,OAAO46B,WACxBlkC,KAAMhU,KAAK2uP,cAAc5xO,QAAQ/I,KACjCwO,SAAUxiB,KAAKsd,OAAOkF,WAExBxiB,KAAKwmP,eAAiB,IAAIwB,GAAoB,CAC5CjrO,QAAS/c,KAAKo2P,aAAa,kBAC3Bl+M,WAAYl4C,KAAKsd,OAAO46B,WACxBlkC,KAAMhU,KAAK2uP,cAAc5xO,QAAQ/I,KACjCwO,SAAUxiB,KAAKsd,OAAOkF,WAExBxiB,KAAK8H,MAAQ,IAAIqhP,GAAY,CAC3BpsO,QAAS/c,KAAKo2P,aAAa,QAASp2P,KAAK0vP,mBACzCx3M,WAAYl4C,KAAKsd,OAAO46B,WACxBlkC,KAAMhU,KAAK2uP,cAAc5xO,QAAQ/I,KACjCq1O,cAAerpP,KAAKsd,OAAOojE,QAE7B1gF,KAAK4sP,WAAa,IAAIlD,GAAU,CAC9B3sO,QAAS/c,KAAKo2P,aAAa,aAAcp2P,KAAK6uP,uBAEhD7uP,KAAKksP,SAAW,IAAIxC,GAAU,CAC5B3sO,QAAS/c,KAAKo2P,aAAa,WAAYp2P,KAAK6uP,uBAE9C7uP,KAAK0tP,SAAW,IAAI/J,EAAS,CAC3B5mO,QAAS/c,KAAKo2P,aAAa,YAC3Bl+M,WAAYl4C,KAAKsd,OAAO46B,WACxBlkC,KAAMhU,KAAK2uP,cAAc5xO,QAAQ/I,QAIrC4pD,EAAO2zL,iBAAmB,WAExBvxP,KAAK2uP,cAAc5D,UAEnB/qP,KAAKwmP,eAAexjO,KAAKhjB,KAAK2uP,cAAc5xO,SAE5C/c,KAAKumP,eAAevjO,KAAKhjB,KAAKwmP,eAAezpO,SAEzC/c,KAAK6uP,oBACP7uP,KAAK8H,MAAMg3B,YAAc9+B,KAAKsd,OAAOioO,wBAA0B,GACtDvlP,KAAK0vP,oBACd1vP,KAAK8H,MAAMg3B,YAAc9+B,KAAK0vP,kBAC9B1vP,KAAK8H,MAAM2kM,YAGbzsM,KAAKumP,eAAexpO,QAAQ6I,YAAY5lB,KAAKwmP,eAAezpO,SAC5D/c,KAAKumP,eAAexpO,QAAQ6I,YAAY5lB,KAAK0tP,SAAS3wO,SACtD/c,KAAKwmP,eAAezpO,QAAQ6I,YAAY5lB,KAAKksP,SAASnvO,SAEjD/c,KAAK4uP,gBACR5uP,KAAK0tP,SAAS3wO,QAAQ6I,YAAY5lB,KAAK4sP,WAAW7vO,SAG/C/c,KAAK6uP,oBAEC7uP,KAAKsd,OAAOknO,eACrBxkP,KAAK0tP,SAAS3wO,QAAQmV,aAAalyB,KAAK8H,MAAMiV,QAAS/c,KAAK0tP,SAAS3wO,QAAQiI,YAF7EhlB,KAAKwmP,eAAezpO,QAAQ6I,YAAY5lB,KAAK8H,MAAMiV,SAKjD/c,KAAK+uP,mBACP/uP,KAAKwvP,mBAAqB,EAC1BxvP,KAAKm1P,cAAe,EAEpBn1P,KAAK00P,gBAED10P,KAAKiwP,cAAcjoP,OACrBhI,KAAKy9P,qBAAqBz9P,KAAKiwP,eAE/BjwP,KAAK09P,sBAAsB19P,KAAKowP,gBAGlCpwP,KAAKg1P,gBAGHh1P,KAAK4uP,gBACP5uP,KAAK29P,oBAAoB39P,KAAKqwP,eAIlCzyL,EAAO6/L,qBAAuB,SAA8BxgH,GAC1D,IAAI2gH,EAAU59P,KAGVy3P,EAAoBz3P,KAAK2uP,cAAckP,kBAEvCpG,GAA8D,WAAzCA,EAAkBryO,WAAWupD,SACpD3uE,KAAK+0P,WAAW,CACd5kP,MAAOsnP,EAAkBtnP,MACzB9C,MAAOoqP,EAAkB/zP,UACzBmK,WAAY4pP,EAAkBlpP,SAC9B+4J,WAAYmwF,EAAkBhiO,SAC9BqJ,aAAa,IAIjBm+G,EAAOjtI,SAAQ,SAAUsmE,GACvB,OAAOsnL,EAAQhJ,UAAU,CACvBt+K,MAAOA,EACPlhC,GAAIkhC,EAAMlhC,IAAM,WAKtBwoB,EAAO8/L,sBAAwB,SAA+B/a,GAC5D,IAAImb,EAAU99P,KAGVA,KAAKsd,OAAOw/N,YACd6F,EAAQ7kN,KAAK99B,KAAKsd,OAAOi0N,QAG3B,IAAIwsB,EAAoBpb,EAAQhrN,MAAK,SAAUmrN,GAC7C,OAAOA,EAAOv0O,YAEZyvP,EAA0Brb,EAAQ7pI,WAAU,SAAUgqI,GACxD,YAA2B97O,IAApB87O,EAAOrtN,WAA2BqtN,EAAOrtN,YAElDktN,EAAQ3yO,SAAQ,SAAU8yO,EAAQ/6O,GAChC,IAAIoI,EAAQ2yO,EAAO3yO,MACf9C,EAAQy1O,EAAOz1O,MACfq1O,EAAmBI,EAAOJ,iBAC1B5jN,EAAcgkN,EAAOhkN,YAEzB,GAAIg/N,EAAQ/O,iBAEV,GAAIjM,EAAOH,QACTmb,EAAQlJ,UAAU,CAChBt+K,MAAOwsK,EACP1tM,GAAI0tM,EAAO1tM,IAAM,WAEd,CAOL,IACIvnC,KADkBiwP,EAAQjP,qBAAwBkP,GAAqBh2P,IAAUi2P,IAC3Clb,EAAOv0O,SAC7C+4J,EAAaw7E,EAAOrtN,SAExBqoO,EAAQ/I,WAAW,CACjB5kP,MAAOA,EACP9C,MAAOA,EACPQ,WAAYA,EACZy5J,WAAYA,EACZo7E,iBAAkBA,EAClB5jN,YAAaA,SAIjBg/N,EAAQ/I,WAAW,CACjB5kP,MAAOA,EACP9C,MAAOA,EACPQ,WAAYi1O,EAAOv0O,SACnB+4J,WAAYw7E,EAAOrtN,SACnBitN,iBAAkBA,EAClB5jN,YAAaA,QAUrB8+B,EAAO+/L,oBAAsB,SAA6B9mN,GACxD,IAAIonN,EAAUj+P,KAEd62C,EAAM7mC,SAAQ,SAAUi0B,GACF,kBAATA,GAAqBA,EAAK9zB,OACnC8tP,EAAQvG,SAAS,CACfvnP,MAAO8zB,EAAK9zB,MACZ9C,MAAO42B,EAAK52B,MACZk1O,SAAUt+M,EAAKmR,GACfstM,iBAAkBz+M,EAAKy+M,iBACvB5jN,YAAamF,EAAKnF,cAIF,kBAATmF,GACTg6N,EAAQvG,SAAS,CACfvnP,MAAO8zB,QAMf25B,EAAOk2L,iBAAmB,SAA0B7vN,GAClD,IAAIi6N,EAAUl+P,MAGG,CACfid,OAAQ,WACDgnB,EAAK9zB,QAML+tP,EAAQtP,eAUXsP,EAAQxG,SAAS,CACfvnP,MAAO8zB,EAAK9zB,MACZ9C,MAAO42B,EAAK52B,MACZk1O,SAAUt+M,EAAKmR,GACfstM,iBAAkBz+M,EAAKy+M,iBACvB5jN,YAAamF,EAAKnF,cAdpBo/N,EAAQnJ,WAAW,CACjB5kP,MAAO8zB,EAAK9zB,MACZ9C,MAAO42B,EAAK52B,MACZQ,YAAY,EACZy5J,YAAY,EACZo7E,iBAAkBz+M,EAAKy+M,iBACvB5jN,YAAamF,EAAKnF,gBAYxBt1B,OAAQ,WACD00P,EAAQtP,eAQXsP,EAAQxG,SAAS,CACfvnP,MAAO8zB,IARTi6N,EAAQnJ,WAAW,CACjB5kP,MAAO8zB,EACP52B,MAAO42B,EACPp2B,YAAY,EACZy5J,YAAY,OAlCLt8E,EAAQ/mD,GAAMjyB,kBA8C/B4rD,EAAOq2L,4BAA8B,SAAqC7pO,GACxE,IAAI+zO,EAAUn+P,KAIVo+P,EAFUp+P,KAAKmjP,OAAOR,QAEA3yM,MAAK,SAAU8yM,GACvC,OAAOqb,EAAQ7gP,OAAO6oO,cAAcrD,EAAO3yO,MAAOia,MAGhDg0O,IAAgBA,EAAY7vP,UAC9BvO,KAAK03P,SAAS,CACZvnP,MAAOiuP,EAAYjuP,MACnB9C,MAAO+wP,EAAY/wP,MACnBk1O,SAAU6b,EAAYhpN,GACtBotM,QAAS4b,EAAY5b,QACrBE,iBAAkB0b,EAAY1b,iBAC9B5jN,YAAas/N,EAAYt/N,YACzBl8B,QAASw7P,EAAYx7P,WAK3Bg7D,EAAO+xL,0BAA4B,WACjC,GAAI3vP,KAAK+uP,iBAAkB,CACzB,IAAI8O,EAAoB79P,KAAK2uP,cAAckP,kBAC3C,QAAOA,GAAoBA,EAAkB9hN,KAG/C,IAAIsiN,EAAgBr+P,KAAKsd,OACrBwhB,EAAcu/N,EAAcv/N,YAC5BwmN,EAAmB+Y,EAAc/Y,iBACjClrN,EAAUp6B,KAAK2uP,cAAc5xO,QAAQqd,QAEzC,GAAI0E,EAAa,CACf,GAAIwmN,EACF,OAAOA,EAGT,GAAIlrN,EAAQ0E,YACV,OAAO1E,EAAQ0E,YAInB,OAAO,GAGF0vN,EA3sE0B,GAgtEbjS,EAA6B,QAAIgS,MAK3D,SAzzM+DrmP,EAAOC,QAAUzK,K,sBCKzE,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,OAGvGC,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,sBCGzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,sXAA0EC,MAAM,KACxFC,YAAa,kSAA4DD,MAAM,KAC/EE,SAAU,6LAAuCF,MAAM,KACvDG,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,mDAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,4BACLC,KAAM,kCACNisB,EAAG,WACHy5H,GAAI,aACJC,IAAK,mBACLz/E,KAAM,yBAERjmE,SAAU,CACRC,QAAS,4CACTC,QAAS,sCACTC,SAAU,qCACVC,QAAS,kDACTC,SAAU,qGACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,8BACRC,KAAM,8BACNC,EAAG,0DACHC,GAAI,oCACJC,EAAG,qBACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,SAAUS,GACZ,OAAe,IAAXA,EACK,uCAGFA,EAAS,6BAElBR,EAAG,qBACHC,GAAI,SAAUO,GACZ,OAAe,IAAXA,EACK,uCAGFA,EAAS,6BAElBN,EAAG,2BACHC,GAAI,SAAUK,GACZ,OAAe,IAAXA,EACK,6CAGFA,EAAS,yCAElBJ,EAAG,qBACHC,GAAI,SAAUG,GACZ,OAAe,IAAXA,EACK,uCACEA,EAAS,KAAO,GAAgB,KAAXA,EACvBA,EAAS,sBAGXA,EAAS,8BAGpB4L,cAAe,qTACfC,KAAM,SAAUpB,GACd,MAAO,6HAA8B5J,KAAK4J,IAE5CqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,0DACEA,EAAO,GACT,iCACEA,EAAO,GACTE,EAAU,kCAAW,sEACnBF,EAAO,GACTE,EAAU,4BAAU,sEAEpB,8BAtFmF5L,CAAQ,EAAQ,U,kCCRlH,kGA4BI4gQ,EAEJ,SAAU3+P,GAGR,SAAS2+P,IACP,OAAkB,OAAX3+P,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAoU7D,OAvUA,YAAUs+P,EAAS3+P,GAMnBa,OAAOC,eAAe69P,EAAQl9P,UAAW,WAAY,CACnDqE,IAAK,SAAU0K,GACbnQ,KAAK0E,WAAWykJ,uBAAuBh5I,IAEzCxP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe69P,EAAQl9P,UAAW,eAAgB,CACvDV,IAAK,WACH,MAAO,GAAGkH,MAAM7H,KAAKC,KAAKgE,KAAK6L,iBAAiB,IAAM,IAAWkpK,mBAEnEp4K,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe69P,EAAQl9P,UAAW,YAAa,CACpDqE,IAAK,SAAU0K,GACbnQ,KAAK0E,WAAWwkJ,aAAa/4I,IAE/BxP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe69P,EAAQl9P,UAAW,sBAAuB,CAI9DV,IAAK,WACH,OAAOV,KAAK0E,WAAW4kJ,yBAEzB3oJ,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe69P,EAAQl9P,UAAW,eAAgB,CAKvDqE,IAAK,SAAUsiJ,GACb/nJ,KAAK0E,WAAW2kJ,gBAAgBtB,IAElCpnJ,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe69P,EAAQl9P,UAAW,kBAAmB,CAC1DqE,IAAK,SAAU84P,GACbv+P,KAAK0E,WAAW0kJ,mBAAmBm1G,IAErC59P,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe69P,EAAQl9P,UAAW,gBAAiB,CACxDV,IAAK,WACH,OAAOV,KAAK0E,WAAW+kJ,oBAEzBhkJ,IAAK,SAAUsC,GACb/H,KAAK0E,WAAWglJ,iBAAiB3hJ,IAEnCpH,YAAY,EACZC,cAAc,IAGhB09P,EAAQv6P,SAAW,SAAUC,GAC3B,OAAO,IAAIs6P,EAAQt6P,IAGrBs6P,EAAQl9P,UAAUgD,mBAAqB,WACrCpE,KAAKq9K,aAAer9K,KAAKw+P,kBAAkBhqP,KAAKxU,MAChDA,KAAKwpC,eAAiBxpC,KAAKy+P,oBAAoBjqP,KAAKxU,MACpDA,KAAK0+P,sBAAwB1+P,KAAK2+P,oBAAoBnqP,KAAKxU,MAC3DA,KAAK4+P,uBAAyB5+P,KAAK6+P,qBAAqBrqP,KAAKxU,MAC7DA,KAAK4F,OAAO,UAAW5F,KAAKwpC,gBAC5BxpC,KAAK4F,OAAO,QAAS5F,KAAKq9K,cAC1Br9K,KAAK4F,OAAO,UAAW5F,KAAK0+P,uBAC5B1+P,KAAK4F,OAAO,WAAY5F,KAAK4+P,wBAC7B5+P,KAAKiN,SACLjN,KAAK8+P,sBAGPR,EAAQl9P,UAAUC,QAAU,WAC1BrB,KAAK6F,SAAS,UAAW7F,KAAKwpC,gBAC9BxpC,KAAK6F,SAAS,QAAS7F,KAAKq9K,cAC5Br9K,KAAK6F,SAAS,UAAW7F,KAAK0+P,uBAC9B1+P,KAAK6F,SAAS,WAAY7F,KAAK4+P,yBAGjCN,EAAQl9P,UAAU6L,OAAS,WACzB,IAAIkgD,EAAYntD,KAAKgE,KAAKX,aAAa,IAAQg2K,kBAC/Cr5K,KAAK2kN,SAAWx3J,IAAc,IAAQmsH,4BAEtC,GAAG1xK,MAAM7H,KAAKC,KAAKgE,KAAK6L,iBAAiB,mCAAmCG,SAAQ,SAAUR,GAC5FA,EAAG/L,aAAa,WAAY,SAG9B,GAAGmE,MAAM7H,KAAKC,KAAKgE,KAAK6L,iBAAiB,IAAQ8pK,2BAA2B3pK,SAAQ,SAAUR,GAC5F,OAAOA,EAAG/L,aAAa,WAAY,SAErCzD,KAAK0E,WAAWuI,UASlBqxP,EAAQl9P,UAAU29P,eAAiB,SAAU96N,GAC3C,IAAIooH,EAAcpoH,EAAK3/B,cAAc,IAAM,IAAW20K,8BAEtD,GAAI5sB,EACF,OAAOA,EAAY9oJ,aAAe,GAGpC,IAAIy7P,EAAiB/6N,EAAK3/B,cAAc,IAAM,IAAW00K,sBACzD,OAAOgmF,GAAkBA,EAAez7P,aAAe,IAOzD+6P,EAAQl9P,UAAU09P,mBAAqB,WACrC,IAAIh/P,EAAQE,KAERi/P,EAAoBj/P,KAAKgE,KAAK6L,iBAAiB,IAAQ0pK,6BACvD2lF,EAAyBl/P,KAAKgE,KAAKM,cAAc,YAAc,IAAWulC,0BAA4B,aAAe,IAAWshH,yBAA2B,UAC3Jg0G,EAAwBn/P,KAAKgE,KAAKM,cAAc,IAAQ80K,6BAE5D,GAAI6lF,EAAkBj3P,OAAQ,CAC5B,IAAIo3P,EAAmBp/P,KAAKgE,KAAK6L,iBAAiB,IAAQspK,gCAC1Dn5K,KAAK69B,cAAgB,GAAG7U,IAAIjpB,KAAKq/P,GAAkB,SAAUjjD,GAC3D,OAAOr8M,EAAMu/P,aAAa13P,QAAQw0M,WAE3B+iD,GACLA,EAAuB75P,UAAU4rB,SAAS,IAAW4Y,4BACvD7pC,KAAK0E,WAAW6kJ,sBAAqB,GAGvCvpJ,KAAKs/P,iBAAkB,EACvBt/P,KAAK69B,cAAgB79B,KAAKq/P,aAAa13P,QAAQu3P,IACtCC,IACTn/P,KAAK69B,cAAgB79B,KAAKq/P,aAAa13P,QAAQw3P,KAUnDb,EAAQl9P,UAAU2pJ,WAAa,SAAUC,EAAWz4H,GAClDvyB,KAAK0E,WAAWqmJ,WAAWC,EAAWz4H,IAcxC+rO,EAAQl9P,UAAU6qJ,mBAAqB,SAAU1G,EAAU2G,GACzD,OAAOlsJ,KAAK0E,WAAWunJ,mBAAmB1G,EAAU2G,GAEpD,IAGFoyG,EAAQl9P,UAAU+D,qBAAuB,WACvC,IAAIrF,EAAQE,KAIRH,EAAU,CACZooJ,wBAAyB,SAAUlgJ,EAAO3C,GACxC,IAAI2X,EAAUjd,EAAMu/P,aAAat3P,GAE7BgV,GACFA,EAAQ1X,UAAUC,IAAIF,IAG1BogJ,iBAAkB,SAAUz9I,GAC1B,IAAIgV,EAAUjd,EAAMu/P,aAAat3P,GAE7BgV,GACFA,EAAQkW,SAGZi1H,4BAA6B,SAAUngJ,EAAOmJ,GAC5C,OAAOpR,EAAMu/P,aAAat3P,GAAO1E,aAAa6N,IAEhDi3I,uBAAwB,WACtB,OAAOroJ,EAAMu/P,aAAa13P,QAAQyP,SAAS8c,gBAE7Ck0H,iBAAkB,WAChB,OAAOtoJ,EAAMu/P,aAAar3P,QAE5BghJ,sBAAuB,SAAUjhJ,GAC/B,OAAOjI,EAAMi/P,eAAej/P,EAAMu/P,aAAat3P,KAEjDsgJ,mBAAoB,SAAUtgJ,GAE5B,QADejI,EAAMu/P,aAAat3P,GAChBzD,cAAc,IAAQm1K,oBAE1CnxB,gBAAiB,SAAUvgJ,GAEzB,QADejI,EAAMu/P,aAAat3P,GAChBzD,cAAc,IAAQs1K,iBAE1CrxB,yBAA0B,SAAUxgJ,GAGlC,OAFejI,EAAMu/P,aAAat3P,GACVzD,cAAc,IAAQm1K,mBAC9B7oK,SAElB43I,kBAAmB,WACjB,OAAO1oJ,EAAMkE,KAAKitB,SAAS7Z,SAAS8c,gBAEtCu0H,cAAe,WACb,OAAOrxI,SAAS8c,gBAAkBp0B,EAAMkE,MAE1C0kJ,wBAAyB,SAAU3gJ,EAAO3C,GACxC,OAAOtF,EAAMu/P,aAAat3P,GAAO1C,UAAU4rB,SAAS7rB,IAEtDujJ,aAAc,SAAU5gJ,GACtBjI,EAAMyF,KAAK,IAAQ2zK,aAAc,CAC/BnxK,MAAOA,IAGT,IAEF6gJ,2BAA4B,SAAU7gJ,EAAO3C,GAC3C,IAAI2X,EAAUjd,EAAMu/P,aAAat3P,GAE7BgV,GACFA,EAAQ1X,UAAUG,OAAOJ,IAG7ByjJ,4BAA6B,SAAU9gJ,EAAOmJ,EAAMf,GAClD,IAAI4M,EAAUjd,EAAMu/P,aAAat3P,GAE7BgV,GACFA,EAAQtZ,aAAayN,EAAMf,IAG/B24I,iCAAkC,SAAU/gJ,EAAO2jJ,GACjD,IACI6zG,EADWz/P,EAAMu/P,aAAat3P,GACVzD,cAAc,IAAQk1K,yBAC9C+lF,EAAS3uP,QAAU86I,EACnB,IAAIp9I,EAAQ8I,SAAS+Z,YAAY,SACjC7iB,EAAM+wB,UAAU,UAAU,GAAM,GAChCkgO,EAASnuO,cAAc9iB,IAEzBy6I,+BAAgC,SAAUiB,EAAew1G,GACvD,IAAIziP,EAAUjd,EAAMu/P,aAAar1G,GACV,GAAGpiJ,MAAM7H,KAAKgd,EAAQlN,iBAAiB,IAAQ6pK,oCACrD1pK,SAAQ,SAAUR,GACjC,OAAOA,EAAG/L,aAAa,WAAY+7P,QAIzC,OAAO,IAAI,IAAkB3/P,IAQ/By+P,EAAQl9P,UAAUq+P,kBAAoB,SAAU/8P,GAC9C,IAAIysB,EAAczsB,EAAIkC,OAClB86P,EAAgB,YAAQvwO,EAAa,IAAM,IAAW4pJ,gBAAkB,MAAQ,IAAWt9J,MAE/F,OAAIikP,GAAiB,YAAQA,EAAe,IAAM,IAAW3mF,iBACpD/4K,KAAKq/P,aAAa13P,QAAQ+3P,IAG3B,GAOVpB,EAAQl9P,UAAUu9P,oBAAsB,SAAUj8P,GAChD,IAAIqF,EAAQ/H,KAAKy/P,kBAAkB/8P,GACnC1C,KAAK0E,WAAWqlJ,cAAcrnJ,EAAKqF,IAOrCu2P,EAAQl9P,UAAUy9P,qBAAuB,SAAUn8P,GACjD,IAAIqF,EAAQ/H,KAAKy/P,kBAAkB/8P,GACnC1C,KAAK0E,WAAWulJ,eAAevnJ,EAAKqF,IAQtCu2P,EAAQl9P,UAAUq9P,oBAAsB,SAAU/7P,GAChD,IAAIqF,EAAQ/H,KAAKy/P,kBAAkB/8P,GAC/BkC,EAASlC,EAAIkC,OACjB5E,KAAK0E,WAAWgY,cAAcha,EAAKkC,EAAOS,UAAU4rB,SAAS,IAAW8nJ,iBAAkBhxK,IAO5Fu2P,EAAQl9P,UAAUo9P,kBAAoB,SAAU97P,GAC9C,IAAIqF,EAAQ/H,KAAKy/P,kBAAkB/8P,GAC/BkC,EAASlC,EAAIkC,OAEbimJ,GAAkB,YAAQjmJ,EAAQ,IAAQ40K,yBAC9Cx5K,KAAK0E,WAAWkmJ,YAAY7iJ,EAAO8iJ,IAG9ByzG,EAxUT,CAyUE,M,sBC/VO,SAAUxjQ,GACjB,aAEA,IAAIE,EAAS,CAAC,iCAAS,iCAAS,2BAAQ,iCAAS,qBAAO,qBAAO,uCAAU,2BAAQ,iCAAS,uCAAU,iCAAS,kCACzGsyB,EAAO,CAAC,iCAAS,qBAAO,2BAAQ,qBAAO,uCAAU,2BAAQ,4BACpDxyB,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaF,EACbG,SAAUmyB,EACVlyB,cAAekyB,EACfjyB,YAAaiyB,EACbhyB,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,gCAERqN,cAAe,wCACfC,KAAM,SAAUpB,GACd,MAAO,uBAAUA,GAEnBqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,qBAGF,sBAETvN,SAAU,CACRC,QAAS,6CACTC,QAAS,6CACTC,SAAU,qCACVC,QAAS,kFACTC,SAAU,sEACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,wBACNC,EAAG,oDACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,kCACHC,GAAI,kBACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,wCACHC,GAAI,yBAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,UAAM,MAE9B2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,KAAM,WAE9BP,KAAM,CACJC,IAAK,EAELC,IAAK,KAhEuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIsX,EAAsB,6DAA6DnX,MAAM,KACzFoX,EAAyB,kDAAkDpX,MAAM,KACjFqX,EAAc,CAAC,QAAS,QAAS,iBAAkB,QAAS,SAAU,cAAe,cAAe,QAAS,QAAS,QAAS,QAAS,SACxIC,EAAc,qKACTzX,EAAOC,aAAa,KAAM,CACjCC,OAAQ,0FAA0FC,MAAM,KACxGC,YAAa,SAAUuB,EAAGmB,GACxB,OAAKnB,EAEM,QAAQyB,KAAKN,GACfyU,EAAuB5V,EAAE+V,SAEzBJ,EAAoB3V,EAAE+V,SAJtBJ,GAOXG,YAAaA,EACbE,iBAAkBF,EAClBG,kBAAmB,4FACnBC,uBAAwB,mFACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,6DAA6DF,MAAM,KAC7EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,kBACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,mBACTC,SAAU,2BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,UACRC,KAAM,aACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,mBACHC,GAAI,aACJC,EAAG,gBACHC,GAAI,SACJC,EAAG,gBACHC,GAAI,WACJmY,EAAG,iBACHC,GAAI,WACJnY,EAAG,kBACHC,GAAI,aACJC,EAAG,iBACHC,GAAI,WAENC,uBAAwB,kBACxBC,QAAS,SAAUC,GACjB,OAAOA,GAAqB,IAAXA,GAA2B,IAAXA,GAAgBA,GAAU,GAAK,MAAQ,OAE1EE,KAAM,CACJC,IAAK,EAELC,IAAK,KAvEuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,SAASwW,EAAO6I,EAAMtI,GACpB,IAAIuI,EAAQD,EAAKlf,MAAM,KACvB,OAAO4W,EAAM,KAAO,GAAKA,EAAM,MAAQ,GAAKuI,EAAM,GAAKvI,EAAM,IAAM,GAAKA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,KAAO,IAAMuI,EAAM,GAAKA,EAAM,GAGlJ,SAASR,EAAuBvc,EAAQoU,EAAe9O,GAUrD,MAAY,MAARA,EACK8O,EAAgB,6CAAY,6CAClB,MAAR9O,EACF8O,EAAgB,uCAAW,uCAE3BpU,EAAS,IAAMiU,EAdX,CACX9U,GAAIiV,EAAgB,6HAA2B,6HAC/C/U,GAAI+U,EAAgB,6HAA2B,6HAC/C7U,GAAI6U,EAAgB,2GAAwB,2GAC5C3U,GAAI,uEACJE,GAAI,uHACJE,GAAI,8EAQgCyF,IAAOtF,GAI/C,SAASsiQ,EAAoBljQ,EAAGmB,GAC9B,IAAIzC,EAAW,CACbykQ,WAAY,+SAA0D3kQ,MAAM,KAC5E4kQ,WAAY,+SAA0D5kQ,MAAM,KAC5E6kQ,SAAU,2TAA4D7kQ,MAAM,MAI9E,OAAU,IAANwB,EACKtB,EAAqB,WAAEyM,MAAM,EAAG,GAAG+O,OAAOxb,EAAqB,WAAEyM,MAAM,EAAG,IAG9EnL,EAKEtB,EADI,yCAAqB+C,KAAKN,GAAU,aAAe,sHAAsCM,KAAKN,GAAU,WAAa,cACtGnB,EAAEiN,OAJnBvO,EAAqB,WAOhC,SAAS4kQ,EAAqB94P,GAC5B,OAAO,WACL,OAAOA,EAAM,UAAwB,KAAjBjH,KAAKiS,QAAiB,SAAM,IAAM,QAIjDnX,EAAOC,aAAa,KAAM,CACjCC,OAAQ,CACN4C,OAAQ,gdAAyF3C,MAAM,KACvG0C,WAAY,ggBAAiG1C,MAAM,MAErHC,YAAa,gRAAyDD,MAAM,KAC5EE,SAAUwkQ,EACVvkQ,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,6BACLC,KAAM,oCAERC,SAAU,CACRC,QAASikQ,EAAqB,sDAC9BhkQ,QAASgkQ,EAAqB,0CAC9B9jQ,QAAS8jQ,EAAqB,oCAC9B/jQ,SAAU+jQ,EAAqB,mBAC/B7jQ,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAOq2P,EAAqB,uDAAoBhgQ,KAAKC,MAEvD,KAAK,EACL,KAAK,EACL,KAAK,EACH,OAAO+/P,EAAqB,6DAAqBhgQ,KAAKC,QAG5D7D,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,8BACNC,EAAG,wFACHC,GAAIod,EACJnd,EAAGmd,EACHld,GAAIkd,EACJjd,EAAG,uCACHC,GAAIgd,EACJ/c,EAAG,2BACHC,GAAI8c,EACJ7c,EAAG,uCACHC,GAAI4c,EACJ3c,EAAG,qBACHC,GAAI0c,GAGN3Q,cAAe,kHACfC,KAAM,SAAUpB,GACd,MAAO,8DAAiB5J,KAAK4J,IAE/BqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,2BACEA,EAAO,GACT,iCACEA,EAAO,GACT,qBAEA,wCAGXjM,uBAAwB,gCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACL,IAAK,IACH,OAAO9X,EAAS,UAElB,IAAK,IACH,OAAOA,EAAS,gBAElB,QACE,OAAOA,IAGbE,KAAM,CACJC,IAAK,EAELC,IAAK,KAhJuFC,CAAQ,EAAQ,U,uBCPlH,IAEIwxC,EAFkB,EAAQ,OAEfH,CAAgB,YAC3BixN,GAAe,EAEnB,IACE,IAAIC,EAAS,EACTC,EAAqB,CACvBpvN,KAAM,WACJ,MAAO,CAAEC,OAAQkvN,MAEnB,OAAU,WACRD,GAAe,IAGnBE,EAAmBhxN,GAAY,WAC7B,OAAOlvC,MAGTye,MAAMyZ,KAAKgoO,GAAoB,WAAc,MAAM,KACnD,MAAO7iP,IAETnV,EAAOC,QAAU,SAAU5B,EAAM45P,GAC/B,IAAKA,IAAiBH,EAAc,OAAO,EAC3C,IAAII,GAAoB,EACxB,IACE,IAAInjP,EAAS,GACbA,EAAOiyB,GAAY,WACjB,MAAO,CACL4B,KAAM,WACJ,MAAO,CAAEC,KAAMqvN,GAAoB,MAIzC75P,EAAK0W,GACL,MAAOI,IACT,OAAO+iP,I,kCClCT,EAAQ,QACR,IAAI/xN,EAAW,EAAQ,QACnB94B,EAAQ,EAAQ,QAChBw5B,EAAkB,EAAQ,QAC1Bs8H,EAAa,EAAQ,QACrBjsB,EAA8B,EAAQ,QAEtCgnC,EAAUr3I,EAAgB,WAE1BsxN,GAAiC9qP,GAAM,WAIzC,IAAIlO,EAAK,IAMT,OALAA,EAAGd,KAAO,WACR,IAAIoL,EAAS,GAEb,OADAA,EAAOsrI,OAAS,CAAEt+H,EAAG,KACdhN,GAEyB,MAA3B,GAAG7T,QAAQuJ,EAAI,WAKpBquL,EACgC,OAA3B,IAAI53L,QAAQ,IAAK,MAGtBy3L,EAAUxmJ,EAAgB,WAE1B0mJ,IACE,IAAIF,IAC6B,KAA5B,IAAIA,GAAS,IAAK,MAOzB+qE,GAAqC/qP,GAAM,WAC7C,IAAIlO,EAAK,OACLk5P,EAAel5P,EAAGd,KACtBc,EAAGd,KAAO,WAAc,OAAOg6P,EAAa18P,MAAM7D,KAAM8D,YACxD,IAAI6N,EAAS,KAAK1W,MAAMoM,GACxB,OAAyB,IAAlBsK,EAAO3J,QAA8B,MAAd2J,EAAO,IAA4B,MAAdA,EAAO,MAG5DzJ,EAAOC,QAAU,SAAU08I,EAAK78I,EAAQzB,EAAMwvC,GAC5C,IAAIyqN,EAASzxN,EAAgB81G,GAEzB47G,GAAuBlrP,GAAM,WAE/B,IAAI0E,EAAI,GAER,OADAA,EAAEumP,GAAU,WAAc,OAAO,GACZ,GAAd,GAAG37G,GAAK5qI,MAGbymP,EAAoBD,IAAwBlrP,GAAM,WAEpD,IAAIorP,GAAa,EACbt5P,EAAK,IAkBT,MAhBY,UAARw9I,KAIFx9I,EAAK,IAGFsS,YAAc,GACjBtS,EAAGsS,YAAYysK,GAAW,WAAc,OAAO/+K,GAC/CA,EAAGE,MAAQ,GACXF,EAAGm5P,GAAU,IAAIA,IAGnBn5P,EAAGd,KAAO,WAAiC,OAAnBo6P,GAAa,EAAa,MAElDt5P,EAAGm5P,GAAQ,KACHG,KAGV,IACGF,IACAC,GACQ,YAAR77G,KACCw7G,IACA3qE,GACCD,IAEM,UAAR5wC,IAAoBy7G,EACrB,CACA,IAAIM,EAAqB,IAAIJ,GACzBn0N,EAAU9lC,EAAKi6P,EAAQ,GAAG37G,IAAM,SAAUg8G,EAAc/qE,EAAQ7uL,EAAK65P,EAAMC,GAC7E,OAAIjrE,EAAOvvL,OAAS8kK,EACdo1F,IAAwBM,EAInB,CAAEhwN,MAAM,EAAM5gC,MAAOywP,EAAmB7gQ,KAAK+1L,EAAQ7uL,EAAK65P,IAE5D,CAAE/vN,MAAM,EAAM5gC,MAAO0wP,EAAa9gQ,KAAKkH,EAAK6uL,EAAQgrE,IAEtD,CAAE/vN,MAAM,KACd,CACD2kJ,iBAAkBA,EAClBD,6CAA8CA,IAE5CurE,EAAe30N,EAAQ,GACvB40N,EAAc50N,EAAQ,GAE1BgC,EAAS5nC,OAAOrF,UAAWyjJ,EAAKm8G,GAChC3yN,EAAS/nC,OAAOlF,UAAWo/P,EAAkB,GAAVx4P,EAG/B,SAAUwB,EAAQs7B,GAAO,OAAOm8N,EAAYlhQ,KAAKyJ,EAAQxJ,KAAM8kC,IAG/D,SAAUt7B,GAAU,OAAOy3P,EAAYlhQ,KAAKyJ,EAAQxJ,QAItD+1C,GAAMqpG,EAA4B94I,OAAOlF,UAAUo/P,GAAS,QAAQ,K,sBCpHjE,SAAU1lQ,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,6DAAoDF,MAAM,KACpEG,cAAe,uCAA8BH,MAAM,KACnDI,YAAa,gCAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,0BACLC,KAAM,+BACN2lJ,IAAK,mBACLz/E,KAAM,wBAERjmE,SAAU,CACRC,QAAS,YACTC,QAAS,eACTE,QAAS,eACTD,SAAU,kBACVE,SAAU,iBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,kBACNC,EAAG,oBACHC,GAAI,cACJC,EAAG,WACHC,GAAI,aACJC,EAAG,WACHC,GAAI,YACJC,EAAG,SACHC,GAAI,WACJC,EAAG,cACHC,GAAI,gBACJC,EAAG,YACHC,GAAI,YAENC,uBAAwB,mBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,GAAuB,IAANA,EAAP,KAAkC,OAGhGC,KAAM,CACJC,IAAK,EAELC,IAAK,KArDuFC,CAAQ,EAAQ,U,wBCCzG,SAAU5C,GACjB,aAEcA,EAAOC,aAAa,WAAY,CAC5CC,OAAQ,qIAAwFC,MAAM,KACtGC,YAAa,qIAAwFD,MAAM,KAC3GE,SAAU,uDAAkDF,MAAM,KAClEG,cAAe,uDAAkDH,MAAM,KACvEI,YAAa,uDAAkDJ,MAAM,KACrEK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,eACTC,QAAS,cACTC,SAAU,cACVC,QAAS,gBACTC,SAAU,cACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,iBACRC,KAAM,SACNC,EAAG,OACHC,GAAI,UACJC,EAAG,aACHC,GAAI,gBACJC,EAAG,YACHC,GAAI,mBACJC,EAAG,MACHC,GAAI,WACJC,EAAG,QACHC,GAAI,YACJC,EAAG,QACHC,GAAI,aAENK,KAAM,CACJC,IAAK,EAELC,IAAK,MA7CuFC,CAAQ,EAAQ,U,qBCNlH,IAAIqxC,EAAkB,EAAQ,QAC1B09G,EAAY,EAAQ,QAEpBv9G,EAAWH,EAAgB,YAC3Bg+I,EAAiBtuK,MAAMrd,UAG3B8G,EAAOC,QAAU,SAAU4M,GACzB,YAAc/N,IAAP+N,IAAqB03I,EAAUhuI,QAAU1J,GAAMg4K,EAAe79I,KAAcn6B,K,sBCD5E,SAAUja,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wYAA6EC,MAAM,KAC3FC,YAAa,wYAA6ED,MAAM,KAChGE,SAAU,uLAAsCF,MAAM,KACtDG,cAAe,2KAAoCH,MAAM,KACzDI,YAAa,qEAAmBJ,MAAM,KACtC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,4CAERqN,cAAe,wFACfC,KAAM,SAAUpB,GACd,MAAiB,yCAAVA,GAETqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,mDAEA,wCAGXvN,SAAU,CACRC,QAAS,oEACTC,QAAS,0EACTC,SAAU,0EACVC,QAAS,sFACTC,SAAU,kGACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,yCACNC,EAAG,mGACHC,GAAI,0CACJC,EAAG,6BACHC,GAAI,8BACJC,EAAG,+CACHC,GAAI,gDACJC,EAAG,uBACHC,GAAI,wBACJC,EAAG,mCACHC,GAAI,oCACJC,EAAG,iBACHC,GAAI,mBAENC,uBAAwB,8BACxBC,QAAS,SAAUC,GACjB,MAAO,qBAAQA,KAxD6EK,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEH/N,EAAS,CAAC,sEAAgB,iCAAS,iCAAS,iCAAS,iCAAS,mDAAY,uCAAU,qBAAO,6CAAW,sEAAgB,sEAAgB,uEACjIF,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaF,EACbG,SAAU,+YAA0EF,MAAM,KAC1FG,cAAe,qTAA2DH,MAAM,KAChFI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERqN,cAAe,wFACfC,KAAM,SAAUpB,GACd,MAAO,6CAAU5J,KAAK4J,IAExBqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,6CAEA,8CAGXvN,SAAU,CACRC,QAAS,uFACTC,QAAS,6FACTC,SAAU,uDACVC,QAAS,iFACTC,SAAU,uDACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,KACNC,EAAG,wFACHC,GAAI,oCACJC,EAAG,gEACHC,GAAI,0CACJC,EAAG,sEACHC,GAAI,gDACJC,EAAG,8CACHC,GAAI,wBACJC,EAAG,oDACHC,GAAI,8BACJC,EAAG,8CACHC,GAAI,yBAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,MAChBrJ,QAAQ,UAAM,MAEnB2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,MAChBrJ,QAAQ,KAAM,WAEnBP,KAAM,CACJC,IAAK,EAELC,IAAK,MA5FuFC,CAAQ,EAAQ,U,sBCGzG,SAAU5C,GACjB,aAEA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAI9T,EAAS,CACXnB,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAACO,EAAS,QAASA,EAAS,UAChC4X,EAAG,CAAC,aAAc,eAClBlY,EAAG,CAAC,YAAa,eACjBC,GAAI,CAACK,EAAS,UAAWA,EAAS,YAClCJ,EAAG,CAAC,WAAY,cAChBC,GAAI,CAACG,EAAS,SAAUA,EAAS,YAEnC,OAAOoU,EAAgB7T,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAG7C7H,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wFAAqFC,MAAM,KACnGC,YAAa,gEAA6DD,MAAM,KAChF6W,kBAAkB,EAClB3W,SAAU,8DAA8DF,MAAM,KAC9EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEZE,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,oBACHC,GAAI,cACJC,EAAGynJ,EACHxnJ,GAAI,aACJC,EAAGunJ,EACHtnJ,GAAI,aACJC,EAAGqnJ,EACHpnJ,GAAIonJ,EACJjvI,EAAGivI,EACHhvI,GAAI,YACJnY,EAAGmnJ,EACHlnJ,GAAIknJ,EACJjnJ,EAAGinJ,EACHhnJ,GAAIgnJ,GAEN/mJ,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAlEuFC,CAAQ,EAAQ,U,4GCcvGS,EAAa,CACtBsd,KAAM,kBAEGld,EAAU,CACnBM,eAAgB,2BCAd,EAEJ,SAAUc,GAGR,SAASuhQ,EAAuBrhQ,GAC9B,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIkhQ,EAAuBjhQ,gBAAiBJ,KAAaG,KAMzG,OAJAF,EAAM+5B,MAAQ,WACZ/5B,EAAM8qJ,eAGD9qJ,EAuDT,OAhEA,YAAUohQ,EAAwBvhQ,GAYlCa,OAAOC,eAAeygQ,EAAwB,aAAc,CAC1DxgQ,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeygQ,EAAwB,UAAW,CACvDxgQ,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeygQ,EAAwB,iBAAkB,CAC9DxgQ,IAAK,WACH,MAAO,CACLygQ,oBAAqB,aAGrBC,sBAAuB,aAGvB5+I,6BAA8B,aAG9BO,2BAA4B,eAKhCpiH,YAAY,EACZC,cAAc,IAGhBsgQ,EAAuB9/P,UAAU4qB,KAAO,WACtChsB,KAAKH,QAAQkjH,2BAA2B,QAAS/iH,KAAK65B,QAGxDqnO,EAAuB9/P,UAAUC,QAAU,WACzCrB,KAAKH,QAAQ2iH,6BAA6B,QAASxiH,KAAK65B,QAG1DqnO,EAAuB9/P,UAAUwpJ,YAAc,WAC7C,IAAI9qJ,EAAQE,KAEZA,KAAKH,QAAQshQ,sBACbl+P,uBAAsB,WACpBnD,EAAMD,QAAQuhQ,4BAIXF,EAjET,CAkEE,KCpEE,EAEJ,SAAUvhQ,GAGR,SAAS0hQ,IACP,OAAkB,OAAX1hQ,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA8C7D,OAjDA,YAAUqhQ,EAAc1hQ,GAMxB0hQ,EAAat9P,SAAW,SAAUC,GAChC,OAAO,IAAIq9P,EAAar9P,IAG1Bq9P,EAAajgQ,UAAU+B,QAAU,WAC/B,IAAItE,EAAiB,EAAuBN,QAAQM,eACpD,OAAOmB,KAAKgE,KAAKM,cAAczF,IAGjCwiQ,EAAajgQ,UAAU+D,qBAAuB,WAC5C,IAAIrF,EAAQE,KA8BZ,OAAO,IAAI,EA1BG,CACZmhQ,oBAAqB,WACfrhQ,EAAMgI,OAAShI,EAAMgI,MAAM8vK,QAC7B93K,EAAMgI,MAAM8vK,OAAO/zD,YAGvBu9I,sBAAuB,WACjBthQ,EAAMgI,OAAShI,EAAMgI,MAAM8vK,QAC7B93K,EAAMgI,MAAM8vK,OAAO9zD,cAGvBtB,6BAA8B,SAAU+B,EAAS5+G,GAC/C,IAAIxC,EAAUrD,EAAMqD,UAEhBA,GACFA,EAAQ4C,oBAAoBw+G,EAAS5+G,IAGzCo9G,2BAA4B,SAAUwB,EAAS5+G,GAC7C,IAAIxC,EAAUrD,EAAMqD,UAEhBA,GACFA,EAAQ2C,iBAAiBy+G,EAAS5+G,OAOnC07P,EAlDT,CAmDE,M,sBCxEO,SAAUvmQ,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,CACN4C,OAAQ,kkBAA4G3C,MAAM,KAC1H0C,WAAY,0fAAgG1C,MAAM,MAEpHC,YAAa,sOAAkDD,MAAM,KACrEE,SAAU,mVAAgEF,MAAM,KAChFG,cAAe,6IAA+BH,MAAM,KACpDI,YAAa,6IAA+BJ,MAAM,KAClDK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,6BACLC,KAAM,oCAERC,SAAU,CACRC,QAAS,sCACTC,QAAS,gCACTE,QAAS,gCACTD,SAAU,WACR,MAAO,yDAETE,SAAU,WACR,MAAO,0FAETC,SAAU,KAEZC,aAAc,CACZC,OAAQ,8BACRC,KAAM,8BACNC,EAAG,yFACHC,GAAI,sDACJC,EAAG,2BACHC,GAAI,8BACJC,EAAG,qBACHC,GAAI,wBACJC,EAAG,eACHC,GAAI,kBACJC,EAAG,2BACHC,GAAI,8BACJC,EAAG,2BACHC,GAAI,+BAEN+L,cAAe,0LACfC,KAAM,SAAUpB,GACd,MAAO,kGAAuB5J,KAAK4J,IAErCqB,SAAU,SAAUC,GAClB,OAAIA,EAAO,EACF,6CACEA,EAAO,GACT,mDACEA,EAAO,GACT,6CAEA,oDAGXjM,uBAAwB,8CACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,MACL,IAAK,IACL,IAAK,IACL,IAAK,OACH,OAAe,IAAX9X,EACKA,EAAS,gBAGXA,EAAS,gBAElB,QACE,OAAOA,IAGbE,KAAM,CACJC,IAAK,EAELC,IAAK,KApFuFC,CAAQ,EAAQ,U,sBCEzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,oFAAoFC,MAAM,KAClGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,6CAA6CF,MAAM,KAC7DG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAERqN,cAAe,8BACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,SAAbD,EACKC,EACe,cAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,WAAbD,GAAsC,UAAbA,EAC3BC,EAAO,QADT,GAITD,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH,OACEA,EAAQ,GACV,YACEA,EAAQ,GACV,SAEA,SAGXpW,SAAU,CACRC,QAAS,sBACTC,QAAS,kBACTC,SAAU,kBACVC,QAAS,sBACTC,SAAU,wBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,gBACNC,EAAG,gBACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KAtEuFC,CAAQ,EAAQ,U,qBCPlHwK,EAAOC,QAAU,EAAQ,S,qBCAzB,IAAImS,EAAM,EAAQ,QACd3E,EAAW,EAAQ,QACnB2rP,EAAY,EAAQ,QACpBC,EAA2B,EAAQ,QAEnCC,EAAWF,EAAU,YACrBG,EAAkBjhQ,OAAOY,UAI7B8G,EAAOC,QAAUo5P,EAA2B/gQ,OAAOi1C,eAAiB,SAAUx7B,GAE5E,OADAA,EAAItE,EAASsE,GACTK,EAAIL,EAAGunP,GAAkBvnP,EAAEunP,GACH,mBAAjBvnP,EAAEN,aAA6BM,aAAaA,EAAEN,YAChDM,EAAEN,YAAYvY,UACd6Y,aAAazZ,OAASihQ,EAAkB,O,qBCdnD,IAAI7rP,EAAgB,EAAQ,QACxB22I,EAAyB,EAAQ,QAErCrkJ,EAAOC,QAAU,SAAU4M,GACzB,OAAOa,EAAc22I,EAAuBx3I,M,sBCErC,SAAUja,GACjB,aAISA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,sgBAAkGC,MAAM,KAChHC,YAAa,0QAAwDD,MAAM,KAC3EE,SAAU,mVAAgEF,MAAM,KAChFG,cAAe,mJAAgCH,MAAM,KACrDI,YAAa,iFAAqBJ,MAAM,KACxC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,0DAERC,SAAU,CACRC,QAAS,4BACTC,QAAS,kCACTC,SAAU,kBACVC,QAAS,kCACTC,SAAU,yDACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,6BACRC,KAAM,oCACNC,EAAG,sEACHC,GAAI,oCACJC,EAAG,yDACHC,GAAI,sDACJC,EAAG,qBACHC,GAAI,wBACJC,EAAG,2BACHC,GAAI,wBACJC,EAAG,2BACHC,GAAI,wBACJC,EAAG,qBACHC,GAAI,yBAENC,uBAAwB,mCACxBC,QAAS,SAAUC,GACjB,OAAOA,EAAS,6BAElB4L,cAAe,iHACfC,KAAM,SAAUpB,GACd,MAAiB,mBAAVA,GAA8B,0CAAVA,GAE7BqB,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH3I,EAAU,iBAAS,wCAEnBA,EAAU,uBAAU,2CAzD+D5L,CAAQ,EAAQ,U,qBCNlH,IAAIkxC,EAAU,EAAQ,QAItB1mC,EAAOC,QAAUsW,MAAMisB,SAAW,SAAiB5F,GACjD,MAAuB,SAAhB8J,EAAQ9J,K,kCCHjB,IAAInZ,EAAQ,EAAQ,QAEpBzjB,EAAOC,QAAU,SAA6B+pC,EAASwvN,GACrD/1O,EAAM3b,QAAQkiC,GAAS,SAAuB/hC,EAAO0N,GAC/CA,IAAS6jP,GAAkB7jP,EAAKmhE,gBAAkB0iL,EAAe1iL,gBACnE9sC,EAAQwvN,GAAkBvxP,SACnB+hC,EAAQr0B,S,kCCRrB,4MAgBA,IAAIw5F,EAAgB,SAAUx6G,EAAGS,GAS/B,OARA+5G,EAAgB72G,OAAO6Y,gBAAkB,CACvCq8B,UAAW,cACAj3B,OAAS,SAAU5hB,EAAGS,GACjCT,EAAE64C,UAAYp4C,IACX,SAAUT,EAAGS,GAChB,IAAK,IAAI+gB,KAAK/gB,EAAOA,EAAEid,eAAe8D,KAAIxhB,EAAEwhB,GAAK/gB,EAAE+gB,MAGhCxhB,EAAGS,IAGnB,SAASs6G,EAAU/6G,EAAGS,GAG3B,SAASu6G,IACP73G,KAAK2Z,YAAc9c,EAHrBw6G,EAAcx6G,EAAGS,GAMjBT,EAAEuE,UAAkB,OAAN9D,EAAakD,OAAO4lC,OAAO9oC,IAAMu6G,EAAGz2G,UAAY9D,EAAE8D,UAAW,IAAIy2G,GAE1E,IAAI15F,EAAW,WAWpB,OAVAA,EAAW3d,OAAOkQ,QAAU,SAAkB0N,GAC5C,IAAK,IAAI7hB,EAAG6K,EAAI,EAAGmK,EAAIzN,UAAUkE,OAAQZ,EAAImK,EAAGnK,IAG9C,IAAK,IAAIiX,KAFT9hB,EAAIuH,UAAUsD,GAEO5G,OAAOY,UAAUmZ,eAAexa,KAAKxD,EAAG8hB,KAAID,EAAEC,GAAK9hB,EAAE8hB,IAG5E,OAAOD,IAGOva,MAAM7D,KAAM8D,YA2BvB,SAAS25G,EAAUC,EAASC,EAAYC,EAAGC,GAOhD,OAAO,IAAKD,IAAMA,EAAI56C,WAAU,SAAUJ,EAAS58B,GACjD,SAAS83E,EAAU3tG,GACjB,IACEgvB,EAAK0+E,EAAU/sE,KAAK3gC,IACpB,MAAOuK,GACPsrB,EAAOtrB,IAIX,SAASqjG,EAAS5tG,GAChB,IACEgvB,EAAK0+E,EAAiB,MAAE1tG,IACxB,MAAOuK,GACPsrB,EAAOtrB,IAIX,SAASykB,EAAKxtB,GAvBhB,IAAexB,EAwBXwB,EAAOo/B,KAAO6xB,EAAQjxD,EAAOxB,QAxBlBA,EAwBiCwB,EAAOxB,MAvB9CA,aAAiBytG,EAAIztG,EAAQ,IAAIytG,GAAE,SAAUh7C,GAClDA,EAAQzyD,OAsBkDuyD,KAAKo7C,EAAWC,GAG5E5+E,GAAM0+E,EAAYA,EAAUh6G,MAAM65G,EAASC,GAAc,KAAK7sE,WAG3D,SAASktE,EAAYN,EAAS7tF,GACnC,IASIrZ,EACAvZ,EACAmhB,EACAglD,EAZAl8C,EAAI,CACN7Z,MAAO,EACPC,KAAM,WACJ,GAAW,EAAP8Q,EAAE,GAAQ,MAAMA,EAAE,GACtB,OAAOA,EAAE,IAEX6/F,KAAM,GACNp0F,IAAK,IAMP,OAAOu5C,EAAI,CACTtyB,KAAMotE,EAAK,GACX,MAASA,EAAK,GACd,OAAUA,EAAK,IACI,oBAAXjoG,SAA0BmtD,EAAEntD,OAAO46B,UAAY,WACvD,OAAO7wC,OACLojE,EAEJ,SAAS86C,EAAK3sG,GACZ,OAAO,SAAUq8B,GACf,OAIJ,SAAcuwE,GACZ,GAAI3nG,EAAG,MAAM,IAAIyU,UAAU,mCAE3B,KAAO/D,OACL,GAAI1Q,EAAI,EAAGvZ,IAAMmhB,EAAY,EAAR+/F,EAAG,GAASlhH,EAAU,OAAIkhH,EAAG,GAAKlhH,EAAS,SAAOmhB,EAAInhB,EAAU,SAAMmhB,EAAEre,KAAK9C,GAAI,GAAKA,EAAE6zC,SAAW1yB,EAAIA,EAAEre,KAAK9C,EAAGkhH,EAAG,KAAKptE,KAAM,OAAO3yB,EAG3J,OAFInhB,EAAI,EAAGmhB,IAAG+/F,EAAK,CAAS,EAARA,EAAG,GAAQ//F,EAAEjO,QAEzBguG,EAAG,IACT,KAAK,EACL,KAAK,EACH//F,EAAI+/F,EACJ,MAEF,KAAK,EAEH,OADAj3F,EAAE7Z,QACK,CACL8C,MAAOguG,EAAG,GACVptE,MAAM,GAGV,KAAK,EACH7pB,EAAE7Z,QACFpQ,EAAIkhH,EAAG,GACPA,EAAK,CAAC,GACN,SAEF,KAAK,EACHA,EAAKj3F,EAAE2C,IAAIw/B,MAEXniC,EAAE+2F,KAAK50D,MAEP,SAEF,QACE,KAAkBjrC,GAAZA,EAAI8I,EAAE+2F,MAAYj2G,OAAS,GAAKoW,EAAEA,EAAEpW,OAAS,MAAkB,IAAVm2G,EAAG,IAAsB,IAAVA,EAAG,IAAW,CACtFj3F,EAAI,EACJ,SAGF,GAAc,IAAVi3F,EAAG,MAAc//F,GAAK+/F,EAAG,GAAK//F,EAAE,IAAM+/F,EAAG,GAAK//F,EAAE,IAAK,CACvD8I,EAAE7Z,MAAQ8wG,EAAG,GACb,MAGF,GAAc,IAAVA,EAAG,IAAYj3F,EAAE7Z,MAAQ+Q,EAAE,GAAI,CACjC8I,EAAE7Z,MAAQ+Q,EAAE,GACZA,EAAI+/F,EACJ,MAGF,GAAI//F,GAAK8I,EAAE7Z,MAAQ+Q,EAAE,GAAI,CACvB8I,EAAE7Z,MAAQ+Q,EAAE,GAEZ8I,EAAE2C,IAAI7b,KAAKmwG,GAEX,MAGE//F,EAAE,IAAI8I,EAAE2C,IAAIw/B,MAEhBniC,EAAE+2F,KAAK50D,MAEP,SAGJ80D,EAAKtuF,EAAK9vB,KAAK29G,EAASx2F,GACxB,MAAOxM,GACPyjG,EAAK,CAAC,EAAGzjG,GACTzd,EAAI,EACJ,QACAuZ,EAAI4H,EAAI,EAGV,GAAY,EAAR+/F,EAAG,GAAQ,MAAMA,EAAG,GACxB,MAAO,CACLhuG,MAAOguG,EAAG,GAAKA,EAAG,QAAK,EACvBptE,MAAM,GAhFC5R,CAAK,CAAC5tB,EAAGq8B,MA2Ff,SAAS+zN,EAASnsN,GACvB,IAAIj5C,EAAsB,oBAAX0Z,QAAyBA,OAAO46B,SAC3Cp0C,EAAIF,GAAKi5C,EAAEj5C,GACX6K,EAAI,EACR,GAAI3K,EAAG,OAAOA,EAAEsD,KAAKy1C,GACrB,GAAIA,GAAyB,kBAAbA,EAAExtC,OAAqB,MAAO,CAC5C8oC,KAAM,WAEJ,OADI0E,GAAKpuC,GAAKouC,EAAExtC,SAAQwtC,OAAI,GACrB,CACLrlC,MAAOqlC,GAAKA,EAAEpuC,KACd2pC,MAAOyE,KAIb,MAAM,IAAIvqB,UAAU1uB,EAAI,0BAA4B,mCAE/C,SAASqlQ,EAAOpsN,EAAGjkC,GACxB,IAAI9U,EAAsB,oBAAXwZ,QAAyBu/B,EAAEv/B,OAAO46B,UACjD,IAAKp0C,EAAG,OAAO+4C,EACf,IACIh3B,EAEA9D,EAHAtT,EAAI3K,EAAEsD,KAAKy1C,GAEXqsN,EAAK,GAGT,IACE,WAAc,IAANtwP,GAAgBA,KAAM,MAAQiN,EAAIpX,EAAE0pC,QAAQC,MAAM8wN,EAAG7zP,KAAKwQ,EAAErO,OACpE,MAAOkN,GACP3C,EAAI,CACF2C,MAAOA,GAET,QACA,IACMmB,IAAMA,EAAEuyB,OAASt0C,EAAI2K,EAAU,SAAI3K,EAAEsD,KAAKqH,GAC9C,QACA,GAAIsT,EAAG,MAAMA,EAAE2C,OAInB,OAAOwkP,EAEF,SAASC,IACd,IAAK,IAAID,EAAK,GAAIz6P,EAAI,EAAGA,EAAItD,UAAUkE,OAAQZ,IAAKy6P,EAAKA,EAAGlrP,OAAOirP,EAAO99P,UAAUsD,KAEpF,OAAOy6P,I,sBChQA,SAAU/mQ,GACjB,aAEA,IAAIoiB,EAAiB,8DAA8DjiB,MAAM,KACrFC,EAAc,kDAAkDD,MAAM,KACtEqX,EAAc,CAAC,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,QAAS,SAClHC,EAAc,mLACPzX,EAAOC,aAAa,QAAS,CACtCC,OAAQ,2FAA2FC,MAAM,KACzGC,YAAa,SAAUuB,EAAGmB,GACxB,OAAKnB,EAEM,QAAQyB,KAAKN,GACf1C,EAAYuB,EAAE+V,SAEd0K,EAAezgB,EAAE+V,SAJjB0K,GAOX3K,YAAaA,EACbE,iBAAkBF,EAClBG,kBAAmB,+FACnBC,uBAAwB,0FACxBL,YAAaA,EACbM,gBAAiBN,EACjBO,iBAAkBP,EAClBnX,SAAU,6DAAuDF,MAAM,KACvEG,cAAe,2CAAqCH,MAAM,KAC1DI,YAAa,0BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,+BACLC,KAAM,sCAERC,SAAU,CACRC,QAAS,WACP,MAAO,aAAgC,IAAjBkE,KAAKiS,QAAgB,IAAM,IAAM,QAEzDlW,QAAS,WACP,MAAO,mBAAmC,IAAjBiE,KAAKiS,QAAgB,IAAM,IAAM,QAE5DjW,SAAU,WACR,MAAO,cAAiC,IAAjBgE,KAAKiS,QAAgB,IAAM,IAAM,QAE1DhW,QAAS,WACP,MAAO,cAAiC,IAAjB+D,KAAKiS,QAAgB,IAAM,IAAM,QAE1D/V,SAAU,WACR,MAAO,0BAA6C,IAAjB8D,KAAKiS,QAAgB,IAAM,IAAM,QAEtE9V,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,UACNC,EAAG,gBACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,YACHC,GAAI,aACJmY,EAAG,aACHC,GAAI,aACJnY,EAAG,SACHC,GAAI,WACJC,EAAG,YACHC,GAAI,cAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA/EuFC,CAAQ,EAAQ,U,qBCPlH,IAAI6X,EAAQ,EAAQ,QAEhB07K,EAAc,kBAEd0D,EAAW,SAAUotE,EAASC,GAChC,IAAI7xP,EAAQC,EAAK8nD,EAAU6pM,IAC3B,OAAO5xP,GAAS8xP,GACZ9xP,GAAS+xP,IACW,mBAAbF,EAA0BzsP,EAAMysP,KACrCA,IAGJ9pM,EAAYy8H,EAASz8H,UAAY,SAAU1uD,GAC7C,OAAO/C,OAAO+C,GAAQ1L,QAAQmzL,EAAa,KAAKj/K,eAG9C5B,EAAOukL,EAASvkL,KAAO,GACvB8xP,EAASvtE,EAASutE,OAAS,IAC3BD,EAAWttE,EAASstE,SAAW,IAEnC/5P,EAAOC,QAAUwsL,G,sBCbR,SAAU75L,GACjB,aAEA,IAAIq4C,EAAW,CACbrqC,EAAG,gBACHT,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACH4qC,GAAI,gBACJH,GAAI,gBACJI,GAAI,gBACJizE,GAAI,gBACJpzE,GAAI,gBACJI,GAAI,gBACJP,GAAI,gBACJC,GAAI,gBACJO,GAAI,gBACJJ,IAAK,iBAEE14C,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wbAAqFC,MAAM,KACnGC,YAAa,sOAAkDD,MAAM,KACrEE,SAAU,+SAA0DF,MAAM,KAC1EG,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,qEACTC,QAAS,qEACTC,SAAU,2CACVC,QAAS,+DACTC,SAAU,uHACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,0CACRC,KAAM,oCACNC,EAAG,kFACHC,GAAI,0CACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,kBACJC,EAAG,wCACHC,GAAI,yBAENC,uBAAwB,sCACxBC,QAAS,SAAUC,GACjB,IAAIshB,EAAIthB,EAAS,GACbC,EAAID,GAAU,IAAM,IAAM,KAC9B,OAAOA,GAAU81C,EAAS91C,IAAW81C,EAASx0B,IAAMw0B,EAAS71C,KAE/DC,KAAM,CACJC,IAAK,EAELC,IAAK,KAzEuFC,CAAQ,EAAQ,U,qBCNlH,IAAI8W,EAAO,EAAQ,QACfoB,EAAgB,EAAQ,QACxBD,EAAW,EAAQ,QACnBb,EAAW,EAAQ,QACnBqtP,EAAqB,EAAQ,QAE7Bn0P,EAAO,GAAGA,KAGVk8B,EAAe,SAAU2uJ,GAC3B,IAAIupE,EAAiB,GAARvpE,EACTwpE,EAAoB,GAARxpE,EACZypE,EAAkB,GAARzpE,EACV0pE,EAAmB,GAAR1pE,EACX2pE,EAAwB,GAAR3pE,EAChB4pE,EAAmB,GAAR5pE,GAAa2pE,EAC5B,OAAO,SAAUlpP,EAAOopP,EAAYpxN,EAAMqxN,GASxC,IARA,IAOIxyP,EAAOwB,EAPPsI,EAAItE,EAAS2D,GACbiS,EAAO3V,EAAcqE,GACrB63B,EAAgBt9B,EAAKkuP,EAAYpxN,EAAM,GACvCtpC,EAAS8M,EAASyW,EAAKvjB,QACvBD,EAAQ,EACRq+B,EAASu8N,GAAkBR,EAC3Bv9P,EAASw9P,EAASh8N,EAAO9sB,EAAOtR,GAAUq6P,EAAYj8N,EAAO9sB,EAAO,QAAKtS,EAEvEgB,EAASD,EAAOA,IAAS,IAAI06P,GAAY16P,KAASwjB,KAEtD5Z,EAASmgC,EADT3hC,EAAQob,EAAKxjB,GACiBA,EAAOkS,GACjC4+K,GACF,GAAIupE,EAAQx9P,EAAOmD,GAAS4J,OACvB,GAAIA,EAAQ,OAAQknL,GACvB,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAO1oL,EACf,KAAK,EAAG,OAAOpI,EACf,KAAK,EAAGiG,EAAKjO,KAAK6E,EAAQuL,QACrB,GAAIoyP,EAAU,OAAO,EAGhC,OAAOC,GAAiB,EAAIF,GAAWC,EAAWA,EAAW39P,IAIjEsD,EAAOC,QAAU,CAGf6H,QAASk6B,EAAa,GAGtBlhB,IAAKkhB,EAAa,GAGlBnR,OAAQmR,EAAa,GAGrBvS,KAAMuS,EAAa,GAGnBmzH,MAAOnzH,EAAa,GAGpB8F,KAAM9F,EAAa,GAGnB4uE,UAAW5uE,EAAa,K,kCC7D1BhiC,EAAOC,QAAU,SAAkBgI,GACjC,SAAUA,IAASA,EAAM2xI,c,sBCH3B,6BACE,aAEA,IAAI75I,EAAOyM,aAAX,CAIA,IAKIkuP,EA6IExrN,EAbA7Q,EApBAs8N,EAEAC,EAnHFC,EAAa,EAEbC,EAAgB,GAChBC,GAAwB,EACxBvmO,EAAMz0B,EAAOmP,SAuKbrT,EAAWvD,OAAOi1C,gBAAkBj1C,OAAOi1C,eAAextC,GAC9DlE,EAAWA,GAAYA,EAASpC,WAAaoC,EAAWkE,EAEf,qBAArC,GAAG6Q,SAAS/Y,KAAKkI,EAAOunJ,SAzF1BozG,EAAoB,SAAU9gF,GAC5BtyB,EAAQ/xG,UAAS,WACfylN,EAAaphF,QAKnB,WAGE,GAAI75K,EAAOo8D,cAAgBp8D,EAAOg/K,cAAe,CAC/C,IAAIk8E,GAA4B,EAC5BC,EAAen7P,EAAO++K,UAQ1B,OANA/+K,EAAO++K,UAAY,WACjBm8E,GAA4B,GAG9Bl7P,EAAOo8D,YAAY,GAAI,KACvBp8D,EAAO++K,UAAYo8E,EACZD,GAwEAE,GAGAp7P,EAAOu+K,iBA/CZjgJ,EAAU,IAAIigJ,gBAEVO,MAAMC,UAAY,SAAU14K,GAElC40P,EADa50P,EAAM8B,OAIrBwyP,EAAoB,SAAU9gF,GAC5Bv7I,EAAQugJ,MAAMziH,YAAYy9G,KA0CnBplJ,GAAO,uBAAwBA,EAAI9X,cAAc,WArCtDwyB,EAAO1a,EAAIowC,gBAEf81L,EAAoB,SAAU9gF,GAG5B,IAAIsN,EAAS1yJ,EAAI9X,cAAc,UAE/BwqK,EAAOhsC,mBAAqB,WAC1B8/G,EAAaphF,GACbsN,EAAOhsC,mBAAqB,KAC5BhsG,EAAKnyB,YAAYmqK,GACjBA,EAAS,MAGXh4I,EAAKxxB,YAAYwpK,KAKnBwzE,EAAoB,SAAU9gF,GAC5BngL,WAAWuhQ,EAAc,EAAGphF,KArD1B+gF,EAAgB,gBAAkBnqP,KAAKsmD,SAAW,IAElD8jM,EAAkB,SAAUx0P,GAC1BA,EAAM9G,SAAWS,GAAgC,kBAAfqG,EAAM8B,MAA2D,IAAtC9B,EAAM8B,KAAKzI,QAAQk7P,IAClFK,GAAc50P,EAAM8B,KAAKxI,MAAMi7P,EAAc76P,UAI7CC,EAAOnC,iBACTmC,EAAOnC,iBAAiB,UAAWg9P,GAAiB,GAEpD76P,EAAOyhE,YAAY,YAAao5L,GAGlCF,EAAoB,SAAU9gF,GAC5B75K,EAAOo8D,YAAYw+L,EAAgB/gF,EAAQ,OA+D/C/9K,EAAS2Q,aAxLT,SAAsB1R,GAEI,oBAAbA,IACTA,EAAW,IAAIqzC,SAAS,GAAKrzC,IAM/B,IAFA,IAAIwhB,EAAO,IAAI/F,MAAM3a,UAAUkE,OAAS,GAE/BZ,EAAI,EAAGA,EAAIod,EAAKxc,OAAQZ,IAC/Bod,EAAKpd,GAAKtD,UAAUsD,EAAI,GAI1B,IAAImN,EAAO,CACTvR,SAAUA,EACVwhB,KAAMA,GAIR,OAFAw+O,EAAcD,GAAcxuP,EAC5BquP,EAAkBG,GACXA,KAqKTh/P,EAAS4Q,eAAiBA,EAlK1B,SAASA,EAAemtK,UACfkhF,EAAclhF,GA8BvB,SAASohF,EAAaphF,GAGpB,GAAImhF,EAGFthQ,WAAWuhQ,EAAc,EAAGphF,OACvB,CACL,IAAIvtK,EAAOyuP,EAAclhF,GAEzB,GAAIvtK,EAAM,CACR0uP,GAAwB,EAExB,KAxCN,SAAa1uP,GACX,IAAIvR,EAAWuR,EAAKvR,SAChBwhB,EAAOjQ,EAAKiQ,KAEhB,OAAQA,EAAKxc,QACX,KAAK,EACHhF,IACA,MAEF,KAAK,EACHA,EAASwhB,EAAK,IACd,MAEF,KAAK,EACHxhB,EAASwhB,EAAK,GAAIA,EAAK,IACvB,MAEF,KAAK,EACHxhB,EAASwhB,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAChC,MAEF,QACExhB,EAASa,WA/DjB,EA+DkC2gB,IAmBxBgoB,CAAIj4B,GACJ,QACAI,EAAemtK,GACfmhF,GAAwB,MArFlC,CAwMmB,qBAAT13O,KAAyC,qBAAXtjB,EAAyBjI,KAAOiI,EAASsjB,Q,qDCxM/C,EAAQ,OAI1Cq2H,CAA4B,UAAU,SAAU51H,GAC9C,OAAO,SAAqB5b,EAAMyxI,EAAY75I,GAC5C,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,Q,qBCNN,EAAQ,OAI1C45I,CAA4B,WAAW,SAAU51H,GAC/C,OAAO,SAAsB5b,EAAMyxI,EAAY75I,GAC7C,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,Q,qBCNxC,IAAI6M,EAAY,EAAQ,QAEpBgW,EAAMnS,KAAKmS,IACXD,EAAMlS,KAAKkS,IAKf1iB,EAAOC,QAAU,SAAUJ,EAAOC,GAChC,IAAIq3L,EAAUxqL,EAAU9M,GACxB,OAAOs3L,EAAU,EAAIx0K,EAAIw0K,EAAUr3L,EAAQ,GAAK4iB,EAAIy0K,EAASr3L,K,qBCV/D,IAAIvH,EAAiB,EAAQ,QAAuC+V,EAChE8D,EAAM,EAAQ,QAGd+kI,EAFkB,EAAQ,OAEVtwG,CAAgB,eAEpC7mC,EAAOC,QAAU,SAAU4M,EAAIuuP,EAAKtuE,GAC9BjgL,IAAOuF,EAAIvF,EAAKigL,EAASjgL,EAAKA,EAAG3T,UAAWi+I,IAC9C5+I,EAAesU,EAAIsqI,EAAe,CAAEz+I,cAAc,EAAMuP,MAAOmzP,M,sBCD1D,SAAUxoQ,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,sFAAsFC,MAAM,KACpGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,8DAA8DF,MAAM,KAC9EG,cAAe,kCAAkCH,MAAM,KACvDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,UACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,eACTC,QAAS,iBACTC,SAAU,8BACVC,QAAS,YACTC,SAAU,kCACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,aACRC,KAAM,WACNC,EAAG,aACHC,GAAI,aACJC,EAAG,cACHC,GAAI,YACJC,EAAG,aACHC,GAAI,WACJC,EAAG,YACHC,GAAI,UACJC,EAAG,cACHC,GAAI,WACJC,EAAG,cACHC,GAAI,YAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KA9CuFC,CAAQ,EAAQ,U,kCCJlH8C,OAAOC,eAAe0H,EAAS,aAAc,CAC3CgI,OAAO,IAEThI,EAAQo7P,sBAAmB,EAE3B,IAAIC,EAAa,EAAQ,QAGrBC,EAAe,GACfC,EAAW,EAEXn+E,EAEJ,WACE,SAASA,IACPvlL,KAAKo1C,GAAK,cAwEZ,OArEAmwI,EAAOnkL,UAAU88I,WAAa,SAAUxF,GACtCA,EAAMirH,OAASD,GAQjBn+E,EAAOnkL,UAAUg9I,aAAe,SAAU1F,EAAOvhI,GAC/C,IAAIq+B,EAAGn3B,EAAGG,EACN8vL,GAAc94J,EAAIkjG,EAAMp7H,OAAOnG,WAAakH,EAAIm3B,EAAEjzB,WAAa/D,EAAIH,EAAE8vI,cAAgB3vI,EAAEolP,sBAC3F5zP,EAAQ0oI,GAAO,SAAUsV,EAAIzrE,EAAMi8D,GACjCj8D,EAAO,IAAIihL,EAAW11G,YAAYpV,EAAOsV,GACzC,IAAI54G,EAAkB,IAAbsjG,EAAMirH,KAAcnlH,EAC7BilH,EAAaruN,GAAMmtC,KAEjB+rH,GAAYA,EAAW51D,IAQ7B6sC,EAAOnkL,UAAUyiQ,aAAe,SAAUnrH,EAAOvhI,GAC/CnH,EAAQ0oI,GAAO,SAAUsV,EAAIzrE,GAC3B,OAAOA,EAAKqsE,mBAMhB22B,EAAOnkL,UAAUq1O,mBAAqB,SAAU/9F,EAAOq0D,EAAQ51L,GAC7DnH,EAAQ0oI,GAAO,SAAUsV,EAAIzrE,GAC3B,OAAOA,EAAK6sE,uBAMhBm2B,EAAOnkL,UAAUy9I,kBAAoB,SAAUnG,EAAOq0D,EAAQ51L,GAC5DnH,EAAQ0oI,GAAO,SAAUsV,EAAIzrE,GAC3B,OAAOA,EAAK4sE,sBAIhBo2B,EAAOnkL,UAAUC,QAAU,SAAUq3I,GACnCl4I,OAAOkW,KAAK+sP,GAAc1qO,QAAO,SAAUra,GACzC,OAAOA,EAAI,KAAQ,GAAKg6H,EAAMirH,QAC7B3zP,SAAQ,SAAU0O,GACnB,cAAc+kP,EAAa/kP,OAM/B6mK,EAAOnkL,UAAUyuM,WAAa,SAAUn3D,EAAO8F,GAC7C,IAAIppG,EAAkB,IAAbsjG,EAAMirH,KAAcnlH,EAC7B,OAAOilH,EAAaruN,IAKtBmwI,EAAOnkL,UAAU0iQ,YAAc,SAAUprH,EAAO8F,GAC9C,IAAIwP,EAAKhuJ,KAAK6vM,WAAWn3D,EAAO8F,GAChC,OAAOwP,GAAMA,EAAGM,UAGXi3B,EA1ET,GA6EA,SAASv1K,EAAQ0oI,EAAOvuH,GACtBuuH,EAAMtoI,KAAK0rI,SAAS9rI,SAAQ,SAAUg+I,EAAI5mJ,GACxC,GAAI4mJ,EAAGG,aAAezV,EAAM+F,iBAAiBr3I,GAAI,CAC/C,IAAIm7E,EAAOp6E,EAAQo7P,iBAAiB1zD,WAAWn3D,EAAOtxI,GACtD+iB,EAAG6jI,EAAIzrE,EAAMn7E,OAKnBe,EAAQo7P,iBAAmB,IAAIh+E,EAC/BtuK,OAAOssP,iBAAmBp7P,EAAQo7P,kB,sBCtGlC,qFACI1/P,EAAQwyC,SAASj1C,UAAUyC,MAgB/B,SAASkgQ,EAAQ3uN,EAAI4uN,GACnBhkQ,KAAK60O,IAAMz/L,EACXp1C,KAAKikQ,SAAWD,EAhBlB77P,EAAQxG,WAAa,WACnB,OAAO,IAAIoiQ,EAAQlgQ,EAAM9D,KAAK4B,WAAY4zG,EAAOzxG,WAAYtC,eAG/D2G,EAAQ+7P,YAAc,WACpB,OAAO,IAAIH,EAAQlgQ,EAAM9D,KAAKmkQ,YAAa3uJ,EAAOzxG,WAAYqgQ,gBAGhEh8P,EAAQ3G,aAAe2G,EAAQg8P,cAAgB,SAAU7/O,GACnDA,GACFA,EAAQviB,SASZgiQ,EAAQ3iQ,UAAUgjQ,MAAQL,EAAQ3iQ,UAAUggC,IAAM,aAElD2iO,EAAQ3iQ,UAAUW,MAAQ,WACxB/B,KAAKikQ,SAASlkQ,KAAKw1G,EAAOv1G,KAAK60O,MAIjC1sO,EAAQk8P,OAAS,SAAUpgO,EAAMqgO,GAC/B9iQ,aAAayiC,EAAKsgO,gBAClBtgO,EAAKugO,aAAeF,GAGtBn8P,EAAQs8P,SAAW,SAAUxgO,GAC3BziC,aAAayiC,EAAKsgO,gBAClBtgO,EAAKugO,cAAgB,GAGvBr8P,EAAQu8P,aAAev8P,EAAQu2I,OAAS,SAAUz6G,GAChDziC,aAAayiC,EAAKsgO,gBAClB,IAAID,EAAQrgO,EAAKugO,aAEbF,GAAS,IACXrgO,EAAKsgO,eAAiB5iQ,YAAW,WAC3BsiC,EAAK0gO,YAAY1gO,EAAK0gO,eACzBL,KAKP,EAAQ,QAKRn8P,EAAQuM,aAA+B,qBAAT6W,MAAwBA,KAAK7W,cAAkC,qBAAXzM,GAA0BA,EAAOyM,cAAgB1U,MAAQA,KAAK0U,aAChJvM,EAAQwM,eAAiC,qBAAT4W,MAAwBA,KAAK5W,gBAAoC,qBAAX1M,GAA0BA,EAAO0M,gBAAkB3U,MAAQA,KAAK2U,iB,4CC/C7I,SAAU7Z,GACjB,aAEA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAI9T,EAAS,CACXnB,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,cAAe,gBACnBE,EAAG,CAAC,UAAW,aACfC,GAAI,CAACO,EAAS,QAASA,EAAS,UAChC4X,EAAG,CAAC,aAAc,eAClBlY,EAAG,CAAC,YAAa,eACjBC,GAAI,CAACK,EAAS,UAAWA,EAAS,YAClCJ,EAAG,CAAC,WAAY,cAChBC,GAAI,CAACG,EAAS,SAAUA,EAAS,YAEnC,OAAOoU,EAAgB7T,EAAO+E,GAAK,GAAK/E,EAAO+E,GAAK,GAG3C7H,EAAOC,aAAa,QAAS,CACtCC,OAAQ,2FAAqFC,MAAM,KACnGC,YAAa,mEAA6DD,MAAM,KAChF6W,kBAAkB,EAClB3W,SAAU,8DAA8DF,MAAM,KAC9EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,sBACTK,SAAU,IACVJ,QAAS,uBACTC,SAAU,qBACVC,QAAS,wBACTC,SAAU,gCAEZE,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,oBACHC,GAAI,cACJC,EAAGynJ,EACHxnJ,GAAI,aACJC,EAAGunJ,EACHtnJ,GAAI,aACJC,EAAGqnJ,EACHpnJ,GAAIonJ,EACJjvI,EAAGivI,EACHhvI,GAAI,YACJnY,EAAGmnJ,EACHlnJ,GAAIknJ,EACJjnJ,EAAGinJ,EACHhnJ,GAAIgnJ,GAEN/mJ,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAlEuFC,CAAQ,EAAQ,U,sBCAzG,SAAU5C,GACjB,aAEA,SAASwW,EAAO6I,EAAMtI,GACpB,IAAIuI,EAAQD,EAAKlf,MAAM,KACvB,OAAO4W,EAAM,KAAO,GAAKA,EAAM,MAAQ,GAAKuI,EAAM,GAAKvI,EAAM,IAAM,GAAKA,EAAM,IAAM,IAAMA,EAAM,IAAM,IAAMA,EAAM,KAAO,IAAMuI,EAAM,GAAKA,EAAM,GAGlJ,SAASR,EAAuBvc,EAAQoU,EAAe9O,GAUrD,MAAY,MAARA,EACK8O,EAAgB,6CAAY,6CAClB,MAAR9O,EACF8O,EAAgB,6CAAY,6CAE5BpU,EAAS,IAAMiU,EAdX,CACX9U,GAAIiV,EAAgB,6HAA2B,6HAC/C/U,GAAI+U,EAAgB,6HAA2B,6HAC/C7U,GAAI6U,EAAgB,6HAA2B,6HAC/C3U,GAAI,6EACJE,GAAI,iHACJE,GAAI,8EAQgCyF,IAAOtF,GAItCvC,EAAOC,aAAa,KAAM,CACjCC,OAAQ,CACN4C,OAAQ,oiBAAuG3C,MAAM,KACrH0C,WAAY,whBAAqG1C,MAAM,MAEzHC,YAAa,sRAA0DD,MAAM,KAC7EE,SAAU,CACRyC,OAAQ,+SAA0D3C,MAAM,KACxE0C,WAAY,+SAA0D1C,MAAM,KAC5E4C,SAAU,8IAEZzC,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,sBACJC,IAAK,6BACLC,KAAM,oCAERC,SAAU,CACRC,QAAS,6CACTC,QAAS,mDACTE,QAAS,6CACTD,SAAU,WACR,MAAO,6BAETE,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,uEAET,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,mEAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,8BACRC,KAAM,8BACNC,EAAG,wFACHE,EAAGmd,EACHld,GAAIkd,EACJjd,EAAGid,EACHhd,GAAIgd,EACJ/c,EAAG,iCACHC,GAAI8c,EACJ7c,EAAG,iCACHC,GAAI4c,EACJ3c,EAAG,qBACHC,GAAI0c,GAEN3Q,cAAe,wHACfC,KAAM,SAAUpB,GACd,MAAO,8DAAiB5J,KAAK4J,IAE/BqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,2BACEA,EAAO,GACT,uCACEA,EAAO,GACT,qBAEA,wCAGXjM,uBAAwB,uCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,IACL,IAAK,IACH,OAAQ9X,EAAS,KAAO,GAAKA,EAAS,KAAO,GAAMA,EAAS,MAAQ,IAAMA,EAAS,MAAQ,GAAqBA,EAAS,UAAzBA,EAAS,UAE3G,IAAK,IACH,OAAOA,EAAS,gBAElB,QACE,OAAOA,IAGbE,KAAM,CACJC,IAAK,EAELC,IAAK,KA1HuFC,CAAQ,EAAQ,U,kCCNlH8C,OAAOC,eAAe0H,EAAS,aAAc,CAC3CgI,OAAO,IAEThI,EAAQsmJ,iBAAc,EAEtB,IAAIm2G,EAAa,EAAQ,QAErBn5O,EAAgB,CAClBzX,KAAM,SACN6wP,YAAa,CACX/5N,UAAW,EACXD,MAAO,GAET+0G,KAAM,CACJpyH,MAAO,EACPkqH,MAAO,OACPotH,KAAM,IAERC,mBAAmB,EACnBtkL,KAAM,CACJukL,cAAe,SAIfv2G,EAEJ,WACE,SAASA,EAAYw2G,EAAKztC,GACxBx3N,KAAKw3N,MAAQA,EACb,IAoBmB0tC,EACb1vN,EAAGn3B,EACH8mP,EAtBFzsH,EAAQ8+E,EAAM9+E,MACdsV,EAAKwpE,EAAMp9L,QACX68G,GAkBeiuH,EAlBC,CAAC,OAAQ,cAAe,OAAQ,oBAAqB,QAoBnEC,GAAgB3vN,EAAIkjG,EAAMp7H,OAAOnG,WAAakH,EAAIm3B,EAAEjzB,UAAYlE,EAAE8vI,aAAe,GAIrF,SAAS8pE,EAAYitC,GAGnB,IAFA,IAAIE,EAAU,GAELp6O,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtCo6O,EAAQp6O,EAAK,GAAKlnB,UAAUknB,GAG9B,IAAIq6O,EAAY,GAWhB,OAVAH,EAAOl1P,SAAQ,SAAUwG,GACvB4uP,EAAQp1P,SAAQ,SAAUs1P,GACxB,IAAI9vN,EAAI8vN,EAAU9uP,GACd4H,SAAWo3B,EAEN,aAALp3B,IACEK,MAAMisB,QAAQ8K,IAAW,UAALp3B,GAAsB,MAALo3B,EAAW6vN,EAAU7uP,GAAKg/B,EAAO6vN,EAAU7uP,GAAKhW,OAAOkQ,OAAO,GAAI20P,EAAU7uP,GAAIyhN,EAAYz3N,OAAOkW,KAAK8+B,GAAIA,WAIpJ6vN,EArBFptC,CAAYitC,EAAQz5O,EAAe05O,EAAcn3G,EAAGG,YAAa82G,IApB1EjlQ,KAAKszB,WAAa2xO,EAAI3xO,YAAc,EACpCtzB,KAAKuzB,SAAW0xO,EAAI1xO,UAAYy6H,EAAG59I,KAAKpI,OAAS,EACjDhI,KAAKgU,KAAOyK,MAAMisB,QAAQusG,EAAIjjI,MAAQijI,EAAIjjI,KAAO,CAACijI,EAAIjjI,MACtDhU,KAAK4/I,KAAO3I,EAAI2I,KAChB5/I,KAAK6kQ,YAAc5tH,EAAI4tH,YACvB7kQ,KAAK+kQ,kBAAoB9tH,EAAI8tH,kBAC7B/kQ,KAAKygF,KAAOw2D,EAAIx2D,KAChBzgF,KAAKqN,MAAQ43P,EAAI53P,OAASrN,KAAKw3N,MAAM9+E,MAAMtoI,KAAKg7F,OAAOprG,KAAKuzB,UAE5DvzB,KAAKulQ,gBAkKP,OA3HA92G,EAAYrtJ,UAAUmkQ,cAAgB,WACpC,GAAIvlQ,KAAKgU,KAAKhM,OAAS,GAAKhI,KAAKgU,KAAKq2B,SAAS,QAAS,MAAMhoC,MAAM,2BAA6BrC,KAAKgU,KAAO,iDAK/Gy6I,EAAYrtJ,UAAUutJ,UAAY,WAChC,IAAI62G,EAAcxlQ,KAAKw3N,MAAMppE,eAAexmJ,MAAM5H,KAAKszB,WAAYtzB,KAAKuzB,SAAW,GAE/D,QAAhBvzB,KAAKgU,KAAK,GAAchU,KAAKylQ,sBAAsBD,GAAkBxlQ,KAAK0lQ,iBAAiBF,IAGjG/2G,EAAYrtJ,UAAUskQ,iBAAmB,SAAUF,GACjD,IAAI1lQ,EAAQE,KAEZA,KAAK2R,OAAS3R,KAAKgU,KAAKsnB,QAAO,SAAUzQ,EAAK7W,GAC5C,IAAI6wP,EAAcrkQ,OAAOkQ,OAAO,GAAI5Q,EAAM+kQ,aACtCc,EAAW3xP,EAEX,kBAAkB9V,KAAK8V,KACzB6wP,EAAYh6N,MAAQzyB,SAASpE,EAAK2nD,OAAO,KACzCgqM,EAAW3xP,EAAK2nD,OAAO,EAAG,KAG5B,IAAIn9C,EAAIomP,EAAWe,GAAUH,EAAaX,GAE1C,OADArmP,EAAExK,KAAOA,GACD6W,GAAOA,EAAImiB,GAAKxuB,EAAEwuB,GAAKxuB,EAAIqM,IAClC,OAGL4jI,EAAYrtJ,UAAUqkQ,sBAAwB,SAAUD,GACtD,IAAI1lQ,EAAQE,KAERk4B,EAAOl4B,KAAKw3N,MAAMlpE,SAAStuJ,KAAKygF,KAAKmlL,kBACrCpnP,EAAIxe,KAAK2R,OAASnR,OAAOkQ,OAAO,GAAIwnB,EAAKvmB,QACzCk0P,EAAY7lQ,KAAKygF,KAAKukL,cACtB50P,EAAOpQ,KAAKw3N,MAAMppE,eAMtB,GALA5vI,EAAEquB,OAAS24N,EAAYx8O,KAAI,SAAU3K,GACnC,OAAOG,EAAEouB,QAAQvuB,EAAE,cAEdG,EAAEwuB,GAEQ,QAAb64N,EAAqB,CACvB,IAAIC,EAAW9lQ,KAAKw3N,MAAMp9L,QAAQhqB,KAC9B21P,EAAS/lQ,KAAKw3N,MAAMtpE,KACxB1vI,EAAEquB,OAAO78B,SAAQ,SAAU5C,EAAIhG,GAC7B,IAAIsM,EAAItG,EAAG,GACPnQ,EAAImQ,EAAG,GACPrF,EAAQX,EAAItH,EAAMwzB,YAEjBvrB,EAAQmwB,EAAK5E,YAAcvrB,EAAQmwB,EAAK3E,YAA2B,OAAbsyO,GAAmC,QAAbA,GAAuB99P,GAASjI,EAAMyzB,UAAyB,SAAbsyO,IAAyBz1P,EAAKrI,MAC3JjI,EAAM2gF,KAAKr+E,WAAUnF,EAAIyb,KAAKkS,IAAI9qB,EAAM2gF,KAAKr+E,SAAUnF,SAC/B+J,IAAxBlH,EAAM2gF,KAAKt+E,WAAwBlF,EAAIyb,KAAKmS,IAAI/qB,EAAM2gF,KAAKt+E,SAAUlF,IACzE6oQ,EAAS/9P,GAASg+P,EAAS,CACzBryP,EAAGA,EACHzW,EAAGA,GACDA,QAMZwxJ,EAAYrtJ,UAAUiuJ,gBAAkB,SAAUne,GAChDA,EAAIkF,YAEJp2I,KAAKgmQ,cAAc90H,GAEnBA,EAAI6kE,YAAY,CAAC,GAAI,IACrB7kE,EAAI0F,UAAY,EAEhB,IAAIv4H,EAAIre,KAAKw3N,MAAMvpE,MAAMjuJ,KAAKuzB,SAAU,GAExC29G,EAAI24D,OAAOxrL,EAAE3K,EAAG1T,KAAKw3N,MAAM3oE,MAC3B3d,EAAIk5D,OAAO/rL,EAAE3K,EAAG1T,KAAKw3N,MAAMvoE,SAC3B/d,EAAIuF,UAAYz2I,KAAK4/I,KAAKlI,MAC1BxG,EAAIqG,SAASv3I,KAAKqN,MAAOgR,EAAE3K,EAAG1T,KAAKw3N,MAAM3oE,MACzC3d,EAAI4F,UAGN2X,EAAYrtJ,UAAU+tJ,gBAAkB,SAAUje,GAChD,IAAK,IAAI9pI,EAAI,EAAG2/B,EAAM/mC,KAAKw3N,MAAMlpE,SAAStmJ,OAAQZ,EAAI2/B,EAAK3/B,IAAK,CAC9D,IAAIsnJ,EAAU1uJ,KAAKw3N,MAAMlpE,SAASlnJ,GAC9B6+P,EAAOv3G,GAAW1uJ,KAMtB,IAJIimQ,GAAwB,QAAhBjmQ,KAAKgU,KAAK,KAAiBiyP,GAAQjmQ,KAAK+kQ,oBAClDr2G,EAAQw3G,UAAUh1H,EAAKlxI,KAAKszB,WAAYtzB,KAAKuzB,UAAW0yO,GAGtDA,EAAM,QAIdx3G,EAAYrtJ,UAAU8kQ,UAAY,SAAUh1H,EAAK59G,EAAYC,EAAU4yO,GACrE,IAAIrmQ,EAAQE,KAEZkxI,EAAIkF,YAEJp2I,KAAKgmQ,cAAc90H,GAEfi1H,GAAWj1H,EAAI6kE,YAAY,CAAC,EAAG,IACnC,IAAInpK,EAAU5sC,KAAK2R,OAAOi7B,QAEtBp2B,EAAI,SAAU9C,GAChB,OAAO5T,EAAM03N,MAAMvpE,MAAMv6I,EAAGk5B,EAAQl5B,GAAG,KAGrC2K,EAAI7H,EAAE8c,GACV49G,EAAI24D,OAAOxrL,EAAE3K,EAAG2K,EAAEphB,GAElB,IAAK,IAAIyW,EAAI4f,EAAa,EAAG5f,GAAK6f,EAAU7f,IAC1C2K,EAAI7H,EAAE9C,GACNw9H,EAAIk5D,OAAO/rL,EAAE3K,EAAG2K,EAAEphB,GAGpBi0I,EAAI4F,UAGN2X,EAAYrtJ,UAAU4kQ,cAAgB,SAAU90H,GAC1ClxI,KAAK4/I,KAAKpyH,QAAO0jH,EAAI0F,UAAY52I,KAAK4/I,KAAKpyH,OAC3CxtB,KAAK4/I,KAAKlI,QAAOxG,EAAIyF,YAAc32I,KAAK4/I,KAAKlI,OAC7C13I,KAAK4/I,KAAKklH,MAAM5zH,EAAI6kE,YAAY/1M,KAAK4/I,KAAKklH,OAGzCr2G,EAjLT,GAoLAtmJ,EAAQsmJ,YAAcA,G,kCC/Md,EAAQ,OAIhBn6I,CAAE,CAAE1P,OAAQ,MAAOkyC,OAAO,EAAMn2C,YAAY,GAAQ,CAClDgd,OAAQ,WACN,OAAOy0B,IAAIhxC,UAAU0X,SAAS/Y,KAAKC,U,uBCPvC,IAAI+Z,EAAW,EAAQ,QAGvB7R,EAAOC,QAAU,SAAU0oC,EAAU1mB,EAAIha,EAAOi2P,GAC9C,IACE,OAAOA,EAAUj8O,EAAGpQ,EAAS5J,GAAO,GAAIA,EAAM,IAAMga,EAAGha,GAEvD,MAAOkN,GACP,IAAIgpP,EAAex1N,EAAiB,OAEpC,WADqB7pC,IAAjBq/P,GAA4BtsP,EAASssP,EAAatmQ,KAAK8wC,IACrDxzB,K,sBCHD,SAAUviB,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,weAA6FC,MAAM,KAC3GC,YAAa,4XAA2ED,MAAM,KAC9F6W,kBAAkB,EAClB3W,SAAU,+SAA0DF,MAAM,KAC1EG,cAAe,iLAAqCH,MAAM,KAC1DI,YAAa,mGAAwBJ,MAAM,KAC3CK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAERC,SAAU,CACRC,QAAS,gCACTC,QAAS,gCACTC,SAAU,WACVC,QAAS,4CACTC,SAAU,kDACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,8BACRC,KAAM,oCACNC,EAAG,4EACHC,GAAI,kEACJC,EAAG,0DACHC,GAAI,oCACJC,EAAG,oDACHC,GAAI,8BACJC,EAAG,8CACHC,GAAI,wBACJC,EAAG,gEACHC,GAAI,0CACJC,EAAG,oDACHC,GAAI,+BAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAGrB8B,cAAe,kKACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,yCAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,qDAAbD,EACFC,EACe,qDAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,6BAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,uCACEA,EAAO,GACT,mDACEA,EAAO,GACT,mDACEA,EAAO,GACT,2BAEA,wCAGXjM,uBAAwB,8BACxBC,QAAS,SAAUC,GACjB,OAAOA,EAAS,sBAElBE,KAAM,CACJC,IAAK,EAELC,IAAK,KAjHuFC,CAAQ,EAAQ,U,mBCNlH,IAAIob,EAAW,GAAGA,SAElB5Q,EAAOC,QAAU,SAAU4M,GACzB,OAAO+D,EAAS/Y,KAAKgV,GAAInN,MAAM,GAAI,K,oFCiCjC0+P,EAAiB,CACnBC,aAAc,CACZC,YAAa,YACbC,SAAU,qBACVC,SAAU,gBAEZC,mBAAoB,CAClBH,YAAa,YACbC,SAAU,2BACVC,SAAU,sBAEZE,eAAgB,CACdJ,YAAa,YACbC,SAAU,uBACVC,SAAU,kBAEZG,cAAe,CACbL,YAAa,aACbC,SAAU,sBACVC,SAAU,kBAId,SAASI,EAAS9zP,GAChB,OAAOhN,QAAQgN,EAAUoE,WAAyD,oBAArCpE,EAAUoE,SAASwN,cAe3D,SAASmiP,EAAoB/zP,EAAWmmC,GAC7C,GAAI2tN,EAAS9zP,IAAcmmC,KAAamtN,EAAgB,CACtD,IAAI92P,EAAKwD,EAAUoE,SAASwN,cAAc,OACtCxX,EAAKk5P,EAAentN,GACpButN,EAAWt5P,EAAGs5P,SACdD,EAAWr5P,EAAGq5P,SAGlB,OAFkBr5P,EAAGo5P,eACYh3P,EAAGmB,MAChB+1P,EAAWD,EAGjC,OAAOttN,E,gEChEEh7C,EAAa,CACtB6oQ,2BAA4B,2CAC5BC,uBAAwB,uCACxBC,2BAA4B,2CAC5BC,6BAA8B,6CAC9BC,uBAAwB,uCACxBC,6BAA8B,6CAC9BC,WAAY,2BACZ7jF,QAAS,wBACT8jF,UAAW,0BACXC,eAAgB,+BAChBz4F,SAAU,yBACV1vK,cAAe,8BACfooQ,UAAW,0BACXC,eAAgB,+BAChBjsP,KAAM,eACNksP,SAAU,yBACVC,SAAU,0BAEDrpQ,EAAU,CACnBmlL,kBAAmB,eACnBmkF,iCAAkC,QAClCC,wBAAyB,qBACzBjlF,wBAAyB,gCACzBklF,yBAA0B,UAC1BC,+BAAgC,gBAChCC,sBAAuB,OACvBC,2BAA4B,aAEnB/oQ,EAAU,CACnBgpQ,kBAAmB,KC1BjB,EAEJ,SAAUxoQ,GAGR,SAASyoQ,EAAsBvoQ,GAC7B,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIooQ,EAAsBnoQ,gBAAiBJ,KAAaG,KAMxG,OAJAF,EAAMuoQ,mBAAqB9pQ,EAAQ0pQ,sBACnCnoQ,EAAMwoQ,uBAAyB,GAC/BxoQ,EAAMyoQ,mBAAqB,EAC3BzoQ,EAAM0oQ,4BAA6B,EAC5B1oQ,EA6MT,OAtNA,YAAUsoQ,EAAuBzoQ,GAYjCa,OAAOC,eAAe2nQ,EAAuB,aAAc,CACzD1nQ,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe2nQ,EAAuB,UAAW,CACtD1nQ,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe2nQ,EAAuB,UAAW,CACtD1nQ,IAAK,WACH,OAAOvB,GAETwB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe2nQ,EAAuB,iBAAkB,CAC7D1nQ,IAAK,WACH,MAAO,CACLG,SAAU,aAGV4nQ,YAAa,aAGbC,iBAAkB,WAChB,OAAO,GAETC,gBAAiB,WACf,OAAO,GAETj9G,UAAW,WACT,OAAO,GAETk9G,gBAAiB,WACf,OAAO,GAETznQ,YAAa,aAGb0nQ,wBAAyB,aAGzB/kF,qBAAsB,aAGtBf,yBAA0B,eAK9BpiL,YAAY,EACZC,cAAc,IAGhBwnQ,EAAsBhnQ,UAAU4qB,KAAO,WACrChsB,KAAKqoQ,mBAAqBroQ,KAAK8oQ,uBAC/B9oQ,KAAKgkL,qBACLhkL,KAAKH,QAAQgB,SAAS1C,EAAWypQ,WAGnCQ,EAAsBhnQ,UAAUC,QAAU,WACxCG,aAAaxB,KAAKuoQ,qBAGpBH,EAAsBhnQ,UAAU0yK,YAAc,SAAUr+I,GACtDz1B,KAAKH,QAAQkjL,yBAAyBttJ,GAElCA,EACFz1B,KAAKH,QAAQgB,SAAS1C,EAAW4wK,UAEjC/uK,KAAKH,QAAQsB,YAAYhD,EAAW4wK,WAQxCq5F,EAAsBhnQ,UAAU2nQ,mBAAqB,WACnD,IAAIjpQ,EAAQE,KAEPA,KAAKwoQ,6BAIVhnQ,aAAaxB,KAAKuoQ,oBAClBvoQ,KAAKuoQ,mBAAqB5mQ,YAAW,WACnC7B,EAAMD,QAAQsB,YAAYrB,EAAMwoQ,wBAEhCxoQ,EAAM0oQ,4BAA6B,IAClCrpQ,EAAQgpQ,qBAObC,EAAsBhnQ,UAAU8iL,aAAe,WAC7ClkL,KAAKgpQ,yBAGPZ,EAAsBhnQ,UAAU4nQ,sBAAwB,WACtD,GAAKhpQ,KAAKH,QAAQ6oQ,mBAAlB,CAIA,IAAIO,EAAWjpQ,KAAKqoQ,mBAChBa,EAAWlpQ,KAAK8oQ,uBAEpB,GAAIG,IAAaC,EAAjB,CAIAlpQ,KAAKgkL,qBACL,IACI2jF,EAAWxpQ,EAAWwpQ,SAEtBuB,IAH6B3qQ,EAAQ2pQ,2BAIvCloQ,KAAKH,QAAQsB,YAAYwmQ,GAEzB3nQ,KAAKH,QAAQgB,SAAS8mQ,GAKpB3nQ,KAAKsoQ,uBAAuBtgQ,OAAS,IACvCxG,aAAaxB,KAAKuoQ,oBAClBvoQ,KAAKH,QAAQ4oQ,cACbzoQ,KAAKH,QAAQsB,YAAYnB,KAAKsoQ,yBAGhCtoQ,KAAKsoQ,uBAAyBtoQ,KAAKmpQ,6BAA6BF,EAAUC,GAC1ElpQ,KAAKqoQ,mBAAqBa,EAGtBlpQ,KAAKH,QAAQ8oQ,mBAAqB3oQ,KAAKsoQ,uBAAuBtgQ,OAAS,IACzEhI,KAAKH,QAAQgB,SAASb,KAAKsoQ,wBAC3BtoQ,KAAKwoQ,4BAA6B,MAItCJ,EAAsBhnQ,UAAU0nQ,qBAAuB,WACrD,IAAId,EAAiCzpQ,EAAQypQ,+BACzCD,EAA2BxpQ,EAAQwpQ,yBACnCG,EAA6B3pQ,EAAQ2pQ,2BAEzC,OAAIloQ,KAAKH,QAAQ+oQ,kBACRZ,EAGFhoQ,KAAKH,QAAQ6rJ,YAAcq8G,EAA2BG,GAG/DE,EAAsBhnQ,UAAU+nQ,6BAA+B,SAAUF,EAAUC,GACjF,IAAIjB,EAAwB1pQ,EAAQ0pQ,sBAChCF,EAA2BxpQ,EAAQwpQ,yBACnCG,EAA6B3pQ,EAAQ2pQ,2BACrC96P,EAAKg7P,EAAsBjqQ,WAC3BipQ,EAAyBh6P,EAAGg6P,uBAC5BC,EAA+Bj6P,EAAGi6P,6BAClCJ,EAAyB75P,EAAG65P,uBAC5BD,EAA6B55P,EAAG45P,2BAChCE,EAA6B95P,EAAG85P,2BAChCC,EAA+B/5P,EAAG+5P,6BAEtC,OAAQ8B,GACN,KAAKhB,EACH,OAAIiB,IAAahB,EACR,GAGFgB,IAAanB,EAA2Bb,EAA6BC,EAE9E,KAAKe,EACH,OAAOgB,IAAanB,EAA2BX,EAAyBC,EAE1E,KAAKU,EACH,OAAOmB,IAAahB,EAA6BjB,EAAyBD,EAE5E,QAEE,OAAOkC,IAAanB,EAA2Bb,EAA6BC,IAIlFiB,EAAsBhnQ,UAAU4iL,mBAAqB,WAE/ChkL,KAAKH,QAAQ+oQ,kBACf5oQ,KAAKH,QAAQikL,qBAAqBvlL,EAAQmlL,kBAAmBnlL,EAAQspQ,kCAIrE7nQ,KAAKH,QAAQgpQ,wBAAwBtqQ,EAAQmlL,oBAI1C0kF,EAvNT,C,UAwNE,GCrNEgB,EAAiB,CAAC,UAAW,iBAE7B,EAEJ,SAAUzpQ,GAGR,SAAS0pQ,IACP,IAAIvpQ,EAAmB,OAAXH,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KAGhE,OADAF,EAAMmjL,QAAUnjL,EAAM+3K,gBACf/3K,EA8MT,OApNA,YAAUupQ,EAAa1pQ,GASvB0pQ,EAAYtlQ,SAAW,SAAUC,GAC/B,OAAO,IAAIqlQ,EAAYrlQ,IAGzBxD,OAAOC,eAAe4oQ,EAAYjoQ,UAAW,SAAU,CACrDV,IAAK,WACH,OAAOV,KAAKijL,SAEdtiL,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe4oQ,EAAYjoQ,UAAW,UAAW,CACtDV,IAAK,WACH,OAAOV,KAAKkjL,eAAetyK,SAE7BnL,IAAK,SAAUmL,GACb5Q,KAAKkjL,eAAetyK,QAAUA,GAEhCjQ,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe4oQ,EAAYjoQ,UAAW,gBAAiB,CAC5DV,IAAK,WACH,OAAOV,KAAKkjL,eAAe/xK,eAE7B1L,IAAK,SAAU0L,GACbnR,KAAKkjL,eAAe/xK,cAAgBA,GAEtCxQ,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe4oQ,EAAYjoQ,UAAW,WAAY,CACvDV,IAAK,WACH,OAAOV,KAAKkjL,eAAeztJ,UAE7BhwB,IAAK,SAAUgwB,GACbz1B,KAAK0E,WAAWovK,YAAYr+I,IAE9B90B,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe4oQ,EAAYjoQ,UAAW,QAAS,CACpDV,IAAK,WACH,OAAOV,KAAKkjL,eAAe/yK,OAE7B1K,IAAK,SAAU0K,GACbnQ,KAAKkjL,eAAe/yK,MAAQA,GAE9BxP,YAAY,EACZC,cAAc,IAGhByoQ,EAAYjoQ,UAAU6C,WAAa,WACjC,IAAI6jQ,EAA0BvpQ,EAAQupQ,wBACtC9nQ,KAAKkjL,eAAe/xK,cAA8E,SAA9DnR,KAAKkjL,eAAe7/K,aAAaykQ,GACrE9nQ,KAAKkjL,eAAev/K,gBAAgBmkQ,IAGtCuB,EAAYjoQ,UAAUgD,mBAAqB,WACzC,IAAItE,EAAQE,KAEZA,KAAKspQ,cAAgB,WACnB,OAAOxpQ,EAAM4E,WAAWw/K,gBAG1BlkL,KAAKupQ,oBAAsB,WACzB,OAAOzpQ,EAAM4E,WAAWqkQ,sBAG1B/oQ,KAAKkjL,eAAep9K,iBAAiB,SAAU9F,KAAKspQ,eACpDtpQ,KAAK4F,OAAOmhQ,EAAoB9vP,OAAQ,gBAAiBjX,KAAKupQ,qBAC9DvpQ,KAAKwpQ,+BAGPH,EAAYjoQ,UAAUC,QAAU,WAC9BrB,KAAKijL,QAAQ5hL,UACbrB,KAAKkjL,eAAen9K,oBAAoB,SAAU/F,KAAKspQ,eACvDtpQ,KAAK6F,SAASkhQ,EAAoB9vP,OAAQ,gBAAiBjX,KAAKupQ,qBAChEvpQ,KAAKypQ,gCAEL9pQ,EAAOyB,UAAUC,QAAQtB,KAAKC,OAGhCqpQ,EAAYjoQ,UAAU+D,qBAAuB,WAC3C,IAAIrF,EAAQE,KAoCZ,OAAO,IAAI,EAhCG,CACZa,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCqjQ,YAAa,WACX,OAAO3oQ,EAAMkE,KAAKupB,aAEpBm7O,iBAAkB,WAChB,QAAS5oQ,EAAMojL,gBAEjBylF,gBAAiB,WACf,OAAO3iQ,QAAQlG,EAAMkE,KAAKohB,aAE5BsmI,UAAW,WACT,OAAO5rJ,EAAM8Q,SAEfg4P,gBAAiB,WACf,OAAO9oQ,EAAMqR,eAEfhQ,YAAa,SAAUiE,GACrBtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAE9ByjQ,wBAAyB,SAAU33P,GACjCpR,EAAMojL,eAAev/K,gBAAgBuN,IAEvC4yK,qBAAsB,SAAU5yK,EAAMf,GACpCrQ,EAAMojL,eAAez/K,aAAayN,EAAMf,IAE1C4yK,yBAA0B,SAAUttJ,GAClC31B,EAAMojL,eAAeztJ,SAAWA,MAMtC4zO,EAAYjoQ,UAAUy2K,cAAgB,WACpC,IAAI/3K,EAAQE,KAIRH,EAAU,YAAS,YAAS,GAAI,IAAU84K,cAAc34K,OAAQ,CAClEwiH,6BAA8B,SAAU+B,EAAS5+G,GAC/C,OAAO7F,EAAMojL,eAAen9K,oBAAoBw+G,EAAS5+G,EAAS,gBAEpEg9G,gBAAiB,WACf,OAAO,YAAQ7iH,EAAMojL,eAAgB,YAEvCrgE,YAAa,WACX,OAAO,GAETE,2BAA4B,SAAUwB,EAAS5+G,GAC7C,OAAO7F,EAAMojL,eAAep9K,iBAAiBy+G,EAAS5+G,EAAS,kBAInE,OAAO,IAAI,IAAU3F,KAAKgE,KAAM,IAAI,IAAoBnE,KAG1DwpQ,EAAYjoQ,UAAUooQ,4BAA8B,WAClD,IAAI1pQ,EAAQE,KAER0pQ,EAAW1pQ,KAAKkjL,eAChBymF,EAAUnpQ,OAAOi1C,eAAei0N,GACpCN,EAAep5P,SAAQ,SAAU45P,GAC/B,IAAI9qN,EAAOt+C,OAAOu+C,yBAAyB4qN,EAASC,GAGpD,GAAKC,EAAgB/qN,GAArB,CAKA,IAAIgrN,EAAehrN,EAAKp+C,IACpBqpQ,EAAe,CACjBnpQ,aAAck+C,EAAKl+C,aACnBD,WAAYm+C,EAAKn+C,WACjBD,IAAKopQ,EACLrkQ,IAAK,SAAU6/B,GACbwZ,EAAKr5C,IAAI1F,KAAK2pQ,EAAUpkO,GAExBxlC,EAAM4E,WAAWw/K,iBAGrB1jL,OAAOC,eAAeipQ,EAAUE,EAAcG,QAIlDV,EAAYjoQ,UAAUqoQ,8BAAgC,WACpD,IAAIC,EAAW1pQ,KAAKkjL,eAChBymF,EAAUnpQ,OAAOi1C,eAAei0N,GACpCN,EAAep5P,SAAQ,SAAU45P,GAC/B,IAAI9qN,EAAOt+C,OAAOu+C,yBAAyB4qN,EAASC,GAE/CC,EAAgB/qN,IAIrBt+C,OAAOC,eAAeipQ,EAAUE,EAAc9qN,OAIlDt+C,OAAOC,eAAe4oQ,EAAYjoQ,UAAW,iBAAkB,CAC7DV,IAAK,WACH,IAAImiL,EAA0BtkL,EAAQskL,wBAClCrzK,EAAKxP,KAAKgE,KAAKM,cAAcu+K,GAEjC,IAAKrzK,EACH,MAAM,IAAInN,MAAM,iCAAmCwgL,EAA0B,YAG/E,OAAOrzK,GAET7O,YAAY,EACZC,cAAc,IAETyoQ,EArNT,CAsNE,KAIF,SAASQ,EAAgBG,GACvB,QAASA,GAA8C,oBAAtBA,EAAcvkQ,M,kCC5PjD,EAAQ,QACR,IA4CIwkQ,EA5CA31P,EAAI,EAAQ,QACZgB,EAAc,EAAQ,QACtB84B,EAAiB,EAAQ,QACzBnmC,EAAS,EAAQ,QACjB+R,EAAmB,EAAQ,QAC3Bq0B,EAAW,EAAQ,QACnBK,EAAa,EAAQ,QACrBp0B,EAAM,EAAQ,QACd5J,EAAS,EAAQ,QACjBqwJ,EAAY,EAAQ,QACpBmpG,EAAS,EAAQ,QAAiCA,OAClDC,EAAU,EAAQ,QAClB57N,EAAiB,EAAQ,QACzB67N,EAAwB,EAAQ,QAChC37N,EAAsB,EAAQ,QAE9B47N,EAAYpiQ,EAAOmqC,IACnBJ,EAAkBo4N,EAAsBp4N,gBACxCs4N,EAA+BF,EAAsBzlO,SACrD0K,EAAmBZ,EAAoBhpC,IACvC8kQ,EAAsB97N,EAAoBc,UAAU,OACpD12B,EAAQH,KAAKG,MACbuzB,EAAM1zB,KAAK0zB,IAGXo+N,EAAiB,iBACjBC,EAAe,eACfC,EAAe,eAEfC,EAAQ,WACRC,EAAe,gBACfC,EAAQ,KACRC,EAAY,WACZC,EAAM,WACNC,EAAM,QACNC,EAAM,gBAENC,EAA4B,wCAE5BC,EAA8C,uCAE9CC,EAA2C,yCAE3CC,EAAmB,wBAGnBC,EAAY,SAAUnqO,EAAKr5B,GAC7B,IAAI6J,EAAQ45P,EAAYxjQ,EACxB,GAAuB,KAAnBD,EAAMiK,OAAO,GAAW,CAC1B,GAAsC,KAAlCjK,EAAMiK,OAAOjK,EAAME,OAAS,GAAW,OAAOyiQ,EAElD,KADA94P,EAAS65P,EAAU1jQ,EAAMF,MAAM,GAAI,KACtB,OAAO6iQ,EACpBtpO,EAAIqR,KAAO7gC,OAEN,GAAK8pO,EAAUt6M,GAQf,CAEL,GADAr5B,EAAQqiQ,EAAQriQ,GACZojQ,EAA0BhtQ,KAAK4J,GAAQ,OAAO2iQ,EAElD,GAAe,QADf94P,EAAS85P,EAAU3jQ,IACE,OAAO2iQ,EAC5BtpO,EAAIqR,KAAO7gC,MAbe,CAC1B,GAAIw5P,EAA4CjtQ,KAAK4J,GAAQ,OAAO2iQ,EAGpE,IAFA94P,EAAS,GACT45P,EAAaxqG,EAAUj5J,GAClBC,EAAQ,EAAGA,EAAQwjQ,EAAWvjQ,OAAQD,IACzC4J,GAAU+5P,EAAcH,EAAWxjQ,GAAQ4jQ,GAE7CxqO,EAAIqR,KAAO7gC,IAUX85P,EAAY,SAAU3jQ,GACxB,IACI8jQ,EAAazsQ,EAAS4I,EAAOqT,EAAMywP,EAAOxuQ,EAAQyuQ,EADlDpqI,EAAQ55H,EAAM7M,MAAM,KAMxB,GAJIymI,EAAM15H,QAAqC,IAA3B05H,EAAMA,EAAM15H,OAAS,IACvC05H,EAAMr4E,OAERuiN,EAAclqI,EAAM15H,QACF,EAAG,OAAOF,EAE5B,IADA3I,EAAU,GACL4I,EAAQ,EAAGA,EAAQ6jQ,EAAa7jQ,IAAS,CAE5C,GAAY,KADZqT,EAAOsmH,EAAM35H,IACG,OAAOD,EAMvB,GALA+jQ,EAAQ,GACJzwP,EAAKpT,OAAS,GAAuB,KAAlBoT,EAAKrJ,OAAO,KACjC85P,EAAQf,EAAU5sQ,KAAKkd,GAAQ,GAAK,EACpCA,EAAOA,EAAKxT,MAAe,GAATikQ,EAAa,EAAI,IAExB,KAATzwP,EACF/d,EAAS,MACJ,CACL,KAAe,IAATwuQ,EAAcb,EAAe,GAATa,EAAad,EAAME,GAAK/sQ,KAAKkd,GAAO,OAAOtT,EACrEzK,EAAS+a,SAASgD,EAAMywP,GAE1B1sQ,EAAQ6O,KAAK3Q,GAEf,IAAK0K,EAAQ,EAAGA,EAAQ6jQ,EAAa7jQ,IAEnC,GADA1K,EAAS8B,EAAQ4I,GACbA,GAAS6jQ,EAAc,GACzB,GAAIvuQ,GAAU+uC,EAAI,IAAK,EAAIw/N,GAAc,OAAO,UAC3C,GAAIvuQ,EAAS,IAAK,OAAO,KAGlC,IADAyuQ,EAAO3sQ,EAAQkqD,MACVthD,EAAQ,EAAGA,EAAQ5I,EAAQ6I,OAAQD,IACtC+jQ,GAAQ3sQ,EAAQ4I,GAASqkC,EAAI,IAAK,EAAIrkC,GAExC,OAAO+jQ,GAILN,EAAY,SAAU1jQ,GACxB,IAIIqI,EAAOnI,EAAQ+jQ,EAAaC,EAAW3uQ,EAAQ4uQ,EAAOn1D,EAJtDo1D,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCC,EAAa,EACbC,EAAW,KACXC,EAAU,EAGV7wJ,EAAO,WACT,OAAO1zG,EAAMiK,OAAOs6P,IAGtB,GAAc,KAAV7wJ,IAAe,CACjB,GAAuB,KAAnB1zG,EAAMiK,OAAO,GAAW,OAC5Bs6P,GAAW,EAEXD,IADAD,EAGF,KAAO3wJ,KAAQ,CACb,GAAkB,GAAd2wJ,EAAiB,OACrB,GAAc,KAAV3wJ,IAAJ,CAQA,IADArrG,EAAQnI,EAAS,EACVA,EAAS,GAAKijQ,EAAI/sQ,KAAKs9G,MAC5BrrG,EAAgB,GAARA,EAAaiI,SAASojG,IAAQ,IACtC6wJ,IACArkQ,IAEF,GAAc,KAAVwzG,IAAe,CACjB,GAAc,GAAVxzG,EAAa,OAEjB,GADAqkQ,GAAWrkQ,EACPmkQ,EAAa,EAAG,OAEpB,IADAJ,EAAc,EACPvwJ,KAAQ,CAEb,GADAwwJ,EAAY,KACRD,EAAc,EAAG,CACnB,KAAc,KAAVvwJ,KAAiBuwJ,EAAc,GAC9B,OADiCM,IAGxC,IAAKxB,EAAM3sQ,KAAKs9G,KAAS,OACzB,KAAOqvJ,EAAM3sQ,KAAKs9G,MAAS,CAEzB,GADAn+G,EAAS+a,SAASojG,IAAQ,IACR,OAAdwwJ,EAAoBA,EAAY3uQ,MAC/B,IAAiB,GAAb2uQ,EAAgB,OACpBA,EAAwB,GAAZA,EAAiB3uQ,EAClC,GAAI2uQ,EAAY,IAAK,OACrBK,IAEFH,EAAQC,GAAoC,IAAtBD,EAAQC,GAAoBH,EAE/B,KADnBD,GACuC,GAAfA,GAAkBI,IAE5C,GAAmB,GAAfJ,EAAkB,OACtB,MACK,GAAc,KAAVvwJ,KAET,GADA6wJ,KACK7wJ,IAAQ,YACR,GAAIA,IAAQ,OACnB0wJ,EAAQC,KAAgBh8P,MA3CxB,CACE,GAAiB,OAAbi8P,EAAmB,OACvBC,IAEAD,IADAD,GA0CJ,GAAiB,OAAbC,EAGF,IAFAH,EAAQE,EAAaC,EACrBD,EAAa,EACQ,GAAdA,GAAmBF,EAAQ,GAChCn1D,EAAOo1D,EAAQC,GACfD,EAAQC,KAAgBD,EAAQE,EAAWH,EAAQ,GACnDC,EAAQE,IAAaH,GAASn1D,OAE3B,GAAkB,GAAdq1D,EAAiB,OAC5B,OAAOD,GA6BLI,EAAgB,SAAU95N,GAC5B,IAAI7gC,EAAQ5J,EAAOqkQ,EAAUG,EAE7B,GAAmB,iBAAR/5N,EAAkB,CAE3B,IADA7gC,EAAS,GACJ5J,EAAQ,EAAGA,EAAQ,EAAGA,IACzB4J,EAAO6nC,QAAQhH,EAAO,KACtBA,EAAO35B,EAAM25B,EAAO,KACpB,OAAO7gC,EAAOyE,KAAK,KAEhB,GAAmB,iBAARo8B,EAAkB,CAGlC,IAFA7gC,EAAS,GACTy6P,EAtC0B,SAAUI,GAMtC,IALA,IAAI/iC,EAAW,KACXp7D,EAAY,EACZo+F,EAAY,KACZC,EAAa,EACb3kQ,EAAQ,EACLA,EAAQ,EAAGA,IACI,IAAhBykQ,EAAKzkQ,IACH2kQ,EAAar+F,IACfo7D,EAAWgjC,EACXp+F,EAAYq+F,GAEdD,EAAY,KACZC,EAAa,IAEK,OAAdD,IAAoBA,EAAY1kQ,KAClC2kQ,GAON,OAJIA,EAAar+F,IACfo7D,EAAWgjC,EACXp+F,EAAYq+F,GAEPjjC,EAeMkjC,CAAwBn6N,GAC9BzqC,EAAQ,EAAGA,EAAQ,EAAGA,IACrBwkQ,GAA2B,IAAhB/5N,EAAKzqC,KAChBwkQ,IAASA,GAAU,GACnBH,IAAarkQ,GACf4J,GAAU5J,EAAQ,IAAM,KACxBwkQ,GAAU,IAEV56P,GAAU6gC,EAAKzqC,GAAO+Q,SAAS,IAC3B/Q,EAAQ,IAAG4J,GAAU,OAG7B,MAAO,IAAMA,EAAS,IACtB,OAAO6gC,GAGPm5N,EAA4B,GAC5BiB,EAA2Bl8P,EAAO,GAAIi7P,EAA2B,CACnE,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAEnCkB,EAAuBn8P,EAAO,GAAIk8P,EAA0B,CAC9D,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAE3BE,EAA2Bp8P,EAAO,GAAIm8P,EAAsB,CAC9D,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,EAAG,KAAM,EAAG,IAAK,EAAG,IAAK,EAAG,IAAK,IAG5EnB,EAAgB,SAAUlwJ,EAAM/1G,GAClC,IAAI8X,EAAO2sP,EAAO1uJ,EAAM,GACxB,OAAOj+F,EAAO,IAAQA,EAAO,MAASjD,EAAI7U,EAAK+1G,GAAQA,EAAO5gG,mBAAmB4gG,IAG/EuxJ,EAAiB,CACnBC,IAAK,GACL50L,KAAM,KACN60L,KAAM,GACNC,MAAO,IACP73I,GAAI,GACJ83I,IAAK,KAGH1xB,EAAY,SAAUt6M,GACxB,OAAO7mB,EAAIyyP,EAAgB5rO,EAAIisO,SAG7BC,EAAsB,SAAUlsO,GAClC,MAAuB,IAAhBA,EAAIoR,UAAkC,IAAhBpR,EAAIuhH,UAG/B4qH,EAAiC,SAAUnsO,GAC7C,OAAQA,EAAIqR,MAAQrR,EAAIosO,kBAAkC,QAAdpsO,EAAIisO,QAG9CI,EAAuB,SAAUhkQ,EAAQikQ,GAC3C,IAAIp8N,EACJ,OAAwB,GAAjB7nC,EAAOxB,QAAe2iQ,EAAMzsQ,KAAKsL,EAAOuI,OAAO,MACjB,MAA9Bs/B,EAAS7nC,EAAOuI,OAAO,MAAgB07P,GAAwB,KAAVp8N,IAG1Dq8N,GAA+B,SAAUlkQ,GAC3C,IAAImkQ,EACJ,OAAOnkQ,EAAOxB,OAAS,GAAKwlQ,EAAqBhkQ,EAAO5B,MAAM,EAAG,MAC9C,GAAjB4B,EAAOxB,QACyB,OAA9B2lQ,EAAQnkQ,EAAOuI,OAAO,KAAyB,OAAV47P,GAA4B,MAAVA,GAA2B,MAAVA,IAI1EC,GAAkB,SAAUzsO,GAC9B,IAAI5J,EAAO4J,EAAI5J,KACXs2O,EAAWt2O,EAAKvvB,QAChB6lQ,GAA2B,QAAd1sO,EAAIisO,QAAgC,GAAZS,GAAkBL,EAAqBj2O,EAAK,IAAI,IACvFA,EAAK8xB,OAILykN,GAAc,SAAUz6H,GAC1B,MAAmB,MAAZA,GAA6C,QAA1BA,EAAQrhI,eAShC+7P,GAAe,GACfC,GAAS,GACTC,GAAY,GACZC,GAAgC,GAChCC,GAAoB,GACpBC,GAAW,GACXC,GAAiB,GACjBC,GAA4B,GAC5BC,GAAmC,GACnCC,GAAY,GACZC,GAAO,GACPC,GAAW,GACXC,GAAO,GACPC,GAAO,GACPC,GAAa,GACbC,GAAY,GACZC,GAAa,GACbC,GAAO,GACPC,GAA4B,GAC5BC,GAAQ,GACRC,GAAW,GAGXC,GAAW,SAAUjuO,EAAKr5B,EAAOunQ,EAAe/zM,GAClD,IAMIiwM,EAAY/vJ,EAAM8zJ,EAAkBC,EApCdl8H,EA8BtB/tG,EAAQ+pO,GAAiBtB,GACzB1B,EAAU,EACVt+J,EAAS,GACTyhK,GAAS,EACTC,GAAc,EACdC,GAAoB,EAoBxB,IAjBKL,IACHluO,EAAIisO,OAAS,GACbjsO,EAAIoR,SAAW,GACfpR,EAAIuhH,SAAW,GACfvhH,EAAIqR,KAAO,KACXrR,EAAImlJ,KAAO,KACXnlJ,EAAI5J,KAAO,GACX4J,EAAIhmB,MAAQ,KACZgmB,EAAI9P,SAAW,KACf8P,EAAIosO,kBAAmB,EACvBzlQ,EAAQA,EAAMhK,QAAQstQ,EAA0C,KAGlEtjQ,EAAQA,EAAMhK,QAAQutQ,EAAkB,IAExCE,EAAaxqG,EAAUj5J,GAEhBukQ,GAAWd,EAAWvjQ,QAAQ,CAEnC,OADAwzG,EAAO+vJ,EAAWc,GACV/mO,GACN,KAAKyoO,GACH,IAAIvyJ,IAAQmvJ,EAAMzsQ,KAAKs9G,GAGhB,IAAK6zJ,EAGL,OAAO7E,EAFZllO,EAAQ2oO,GACR,SAJAlgK,GAAUyN,EAAKxpG,cACfszB,EAAQ0oO,GAKV,MAEF,KAAKA,GACH,GAAIxyJ,IAASovJ,EAAa1sQ,KAAKs9G,IAAiB,KAARA,GAAuB,KAARA,GAAuB,KAARA,GACpEzN,GAAUyN,EAAKxpG,kBACV,IAAY,KAARwpG,EA0BJ,IAAK6zJ,EAKL,OAAO7E,EAJZz8J,EAAS,GACTzoE,EAAQ2oO,GACR5B,EAAU,EACV,SA7BA,GAAIgD,IACD5zB,EAAUt6M,IAAQ7mB,EAAIyyP,EAAgBh/J,IAC5B,QAAVA,IAAqBs/J,EAAoBlsO,IAAqB,OAAbA,EAAImlJ,OACvC,QAAdnlJ,EAAIisO,SAAqBjsO,EAAIqR,MAC7B,OAEH,GADArR,EAAIisO,OAASr/J,EACTshK,EAEF,YADI5zB,EAAUt6M,IAAQ4rO,EAAe5rO,EAAIisO,SAAWjsO,EAAImlJ,OAAMnlJ,EAAImlJ,KAAO,OAG3Ev4E,EAAS,GACS,QAAd5sE,EAAIisO,OACN9nO,EAAQspO,GACCnzB,EAAUt6M,IAAQm6B,GAAQA,EAAK8xM,QAAUjsO,EAAIisO,OACtD9nO,EAAQ4oO,GACCzyB,EAAUt6M,GACnBmE,EAAQgpO,GAC4B,KAA3B/C,EAAWc,EAAU,IAC9B/mO,EAAQ6oO,GACR9B,MAEAlrO,EAAIosO,kBAAmB,EACvBpsO,EAAI5J,KAAKvpB,KAAK,IACds3B,EAAQ2pO,IAQZ,MAEF,KAAKhB,GACH,IAAK3yM,GAASA,EAAKiyM,kBAA4B,KAAR/xJ,EAAc,OAAOgvJ,EAC5D,GAAIlvM,EAAKiyM,kBAA4B,KAAR/xJ,EAAa,CACxCr6E,EAAIisO,OAAS9xM,EAAK8xM,OAClBjsO,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBu5B,EAAIhmB,MAAQmgD,EAAKngD,MACjBgmB,EAAI9P,SAAW,GACf8P,EAAIosO,kBAAmB,EACvBjoO,EAAQ6pO,GACR,MAEF7pO,EAAuB,QAAfg2B,EAAK8xM,OAAmBwB,GAAOR,GACvC,SAEF,KAAKF,GACH,GAAY,KAAR1yJ,GAA0C,KAA3B+vJ,EAAWc,EAAU,GAGjC,CACL/mO,EAAQ8oO,GACR,SAJA9oO,EAAQipO,GACRlC,IAIA,MAEJ,KAAK8B,GACH,GAAY,KAAR3yJ,EAAa,CACfl2E,EAAQkpO,GACR,MAEAlpO,EAAQ0pO,GACR,SAGJ,KAAKZ,GAEH,GADAjtO,EAAIisO,OAAS9xM,EAAK8xM,OACd5xJ,GAAQyuJ,EACV9oO,EAAIoR,SAAW+oB,EAAK/oB,SACpBpR,EAAIuhH,SAAWpnF,EAAKonF,SACpBvhH,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAImlJ,KAAOhrH,EAAKgrH,KAChBnlJ,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBu5B,EAAIhmB,MAAQmgD,EAAKngD,WACZ,GAAY,KAARqgG,GAAwB,MAARA,GAAgBigI,EAAUt6M,GACnDmE,EAAQ+oO,QACH,GAAY,KAAR7yJ,EACTr6E,EAAIoR,SAAW+oB,EAAK/oB,SACpBpR,EAAIuhH,SAAWpnF,EAAKonF,SACpBvhH,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAImlJ,KAAOhrH,EAAKgrH,KAChBnlJ,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBu5B,EAAIhmB,MAAQ,GACZmqB,EAAQ4pO,OACH,IAAY,KAAR1zJ,EASJ,CACLr6E,EAAIoR,SAAW+oB,EAAK/oB,SACpBpR,EAAIuhH,SAAWpnF,EAAKonF,SACpBvhH,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAImlJ,KAAOhrH,EAAKgrH,KAChBnlJ,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBu5B,EAAI5J,KAAK8xB,MACT/jB,EAAQ0pO,GACR,SAhBA7tO,EAAIoR,SAAW+oB,EAAK/oB,SACpBpR,EAAIuhH,SAAWpnF,EAAKonF,SACpBvhH,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAImlJ,KAAOhrH,EAAKgrH,KAChBnlJ,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBu5B,EAAIhmB,MAAQmgD,EAAKngD,MACjBgmB,EAAI9P,SAAW,GACfiU,EAAQ6pO,GAUR,MAEJ,KAAKd,GACH,IAAI5yB,EAAUt6M,IAAiB,KAARq6E,GAAuB,MAARA,EAE/B,IAAY,KAARA,EAEJ,CACLr6E,EAAIoR,SAAW+oB,EAAK/oB,SACpBpR,EAAIuhH,SAAWpnF,EAAKonF,SACpBvhH,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAImlJ,KAAOhrH,EAAKgrH,KAChBhhJ,EAAQ0pO,GACR,SAPA1pO,EAAQkpO,QAFRlpO,EAAQipO,GAUR,MAEJ,KAAKD,GAEH,GADAhpO,EAAQipO,GACI,KAAR/yJ,GAA6C,KAA9BzN,EAAOh8F,OAAOs6P,EAAU,GAAW,SACtDA,IACA,MAEF,KAAKkC,GACH,GAAY,KAAR/yJ,GAAuB,MAARA,EAAc,CAC/Bl2E,EAAQkpO,GACR,SACA,MAEJ,KAAKA,GACH,GAAY,KAARhzJ,EAAa,CACXg0J,IAAQzhK,EAAS,MAAQA,GAC7ByhK,GAAS,EACTF,EAAmBvuG,EAAUhzD,GAC7B,IAAK,IAAI3mG,EAAI,EAAGA,EAAIkoQ,EAAiBtnQ,OAAQZ,IAAK,CAChD,IAAIuoQ,EAAYL,EAAiBloQ,GACjC,GAAiB,KAAbuoQ,GAAqBD,EAAzB,CAIA,IAAIE,EAAoBlE,EAAciE,EAAW7C,GAC7C4C,EAAmBvuO,EAAIuhH,UAAYktH,EAClCzuO,EAAIoR,UAAYq9N,OALnBF,GAAoB,EAOxB3hK,EAAS,QACJ,GACLyN,GAAQyuJ,GAAe,KAARzuJ,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBigI,EAAUt6M,GAC3B,CACA,GAAIquO,GAAoB,IAAVzhK,EAAc,MArfd,oBAsfds+J,GAAWtrG,EAAUhzD,GAAQ/lG,OAAS,EACtC+lG,EAAS,GACTzoE,EAAQmpO,QACH1gK,GAAUyN,EACjB,MAEF,KAAKizJ,GACL,KAAKC,GACH,GAAIW,GAA+B,QAAdluO,EAAIisO,OAAkB,CACzC9nO,EAAQwpO,GACR,SACK,GAAY,KAARtzJ,GAAgBi0J,EAOpB,IACLj0J,GAAQyuJ,GAAe,KAARzuJ,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBigI,EAAUt6M,GAC3B,CACA,GAAIs6M,EAAUt6M,IAAkB,IAAV4sE,EAAc,OAAO08J,EAC3C,GAAI4E,GAA2B,IAAVthK,IAAiBs/J,EAAoBlsO,IAAqB,OAAbA,EAAImlJ,MAAgB,OAEtF,GADAipF,EAAUjE,EAAUnqO,EAAK4sE,GACZ,OAAOwhK,EAGpB,GAFAxhK,EAAS,GACTzoE,EAAQypO,GACJM,EAAe,OACnB,SAEY,KAAR7zJ,EAAai0J,GAAc,EACd,KAARj0J,IAAai0J,GAAc,GACpC1hK,GAAUyN,MAtB4B,CACtC,GAAc,IAAVzN,EAAc,OAAO08J,EAEzB,GADA8E,EAAUjE,EAAUnqO,EAAK4sE,GACZ,OAAOwhK,EAGpB,GAFAxhK,EAAS,GACTzoE,EAAQqpO,GACJU,GAAiBX,GAAU,OAiB/B,MAEJ,KAAKC,GACH,IAAI9D,EAAM3sQ,KAAKs9G,GAER,IACLA,GAAQyuJ,GAAe,KAARzuJ,GAAuB,KAARA,GAAuB,KAARA,GACpC,MAARA,GAAgBigI,EAAUt6M,IAC3BkuO,EACA,CACA,GAAc,IAAVthK,EAAc,CAChB,IAAIu4E,EAAOluK,SAAS21F,EAAQ,IAC5B,GAAIu4E,EAAO,MAAQ,OAAOokF,EAC1BvpO,EAAImlJ,KAAQm1D,EAAUt6M,IAAQmlJ,IAASymF,EAAe5rO,EAAIisO,QAAW,KAAO9mF,EAC5Ev4E,EAAS,GAEX,GAAIshK,EAAe,OACnB/pO,EAAQypO,GACR,SACK,OAAOrE,EAfZ38J,GAAUyN,EAgBZ,MAEF,KAAKozJ,GAEH,GADAztO,EAAIisO,OAAS,OACD,KAAR5xJ,GAAuB,MAARA,EAAcl2E,EAAQupO,OACpC,KAAIvzM,GAAuB,QAAfA,EAAK8xM,OAyBf,CACL9nO,EAAQ0pO,GACR,SA1BA,GAAIxzJ,GAAQyuJ,EACV9oO,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBu5B,EAAIhmB,MAAQmgD,EAAKngD,WACZ,GAAY,KAARqgG,EACTr6E,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBu5B,EAAIhmB,MAAQ,GACZmqB,EAAQ4pO,OACH,IAAY,KAAR1zJ,EAMJ,CACAkyJ,GAA6BnC,EAAW3jQ,MAAMykQ,GAASj2P,KAAK,OAC/D+qB,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBgmQ,GAAgBzsO,IAElBmE,EAAQ0pO,GACR,SAZA7tO,EAAIqR,KAAO8oB,EAAK9oB,KAChBrR,EAAI5J,KAAO+jC,EAAK/jC,KAAK3vB,QACrBu5B,EAAIhmB,MAAQmgD,EAAKngD,MACjBgmB,EAAI9P,SAAW,GACfiU,EAAQ6pO,IAaV,MAEJ,KAAKN,GACH,GAAY,KAARrzJ,GAAuB,MAARA,EAAc,CAC/Bl2E,EAAQwpO,GACR,MAEExzM,GAAuB,QAAfA,EAAK8xM,SAAqBM,GAA6BnC,EAAW3jQ,MAAMykQ,GAASj2P,KAAK,OAC5Fo3P,EAAqBlyM,EAAK/jC,KAAK,IAAI,GAAO4J,EAAI5J,KAAKvpB,KAAKstD,EAAK/jC,KAAK,IACjE4J,EAAIqR,KAAO8oB,EAAK9oB,MAEvBlN,EAAQ0pO,GACR,SAEF,KAAKF,GACH,GAAItzJ,GAAQyuJ,GAAe,KAARzuJ,GAAuB,MAARA,GAAwB,KAARA,GAAuB,KAARA,EAAa,CAC5E,IAAK6zJ,GAAiB7B,EAAqBz/J,GACzCzoE,EAAQ0pO,QACH,GAAc,IAAVjhK,EAAc,CAEvB,GADA5sE,EAAIqR,KAAO,GACP68N,EAAe,OACnB/pO,EAAQypO,OACH,CAEL,GADAQ,EAAUjE,EAAUnqO,EAAK4sE,GACZ,OAAOwhK,EAEpB,GADgB,aAAZpuO,EAAIqR,OAAqBrR,EAAIqR,KAAO,IACpC68N,EAAe,OACnBthK,EAAS,GACTzoE,EAAQypO,GACR,SACGhhK,GAAUyN,EACjB,MAEF,KAAKuzJ,GACH,GAAItzB,EAAUt6M,IAEZ,GADAmE,EAAQ0pO,GACI,KAARxzJ,GAAuB,MAARA,EAAc,cAC5B,GAAK6zJ,GAAyB,KAAR7zJ,EAGtB,GAAK6zJ,GAAyB,KAAR7zJ,GAGtB,GAAIA,GAAQyuJ,IACjB3kO,EAAQ0pO,GACI,KAARxzJ,GAAa,cAJjBr6E,EAAI9P,SAAW,GACfiU,EAAQ6pO,QAJRhuO,EAAIhmB,MAAQ,GACZmqB,EAAQ4pO,GAOR,MAEJ,KAAKF,GACH,GACExzJ,GAAQyuJ,GAAe,KAARzuJ,GACN,MAARA,GAAgBigI,EAAUt6M,KACzBkuO,IAA0B,KAAR7zJ,GAAuB,KAARA,GACnC,CAkBA,GA3XW,QADnB63B,GAD0BA,EA4WFtlC,GA3WN/7F,gBACqB,SAAZqhI,GAAkC,SAAZA,GAAkC,WAAZA,GA2W7Du6H,GAAgBzsO,GACJ,KAARq6E,GAAyB,MAARA,GAAgBigI,EAAUt6M,IAC7CA,EAAI5J,KAAKvpB,KAAK,KAEP8/P,GAAY//J,GACT,KAARyN,GAAyB,MAARA,GAAgBigI,EAAUt6M,IAC7CA,EAAI5J,KAAKvpB,KAAK,KAGE,QAAdmzB,EAAIisO,SAAqBjsO,EAAI5J,KAAKvvB,QAAUwlQ,EAAqBz/J,KAC/D5sE,EAAIqR,OAAMrR,EAAIqR,KAAO,IACzBu7D,EAASA,EAAOh8F,OAAO,GAAK,KAE9BovB,EAAI5J,KAAKvpB,KAAK+/F,IAEhBA,EAAS,GACS,QAAd5sE,EAAIisO,SAAqB5xJ,GAAQyuJ,GAAe,KAARzuJ,GAAuB,KAARA,GACzD,KAAOr6E,EAAI5J,KAAKvvB,OAAS,GAAqB,KAAhBm5B,EAAI5J,KAAK,IACrC4J,EAAI5J,KAAK+Y,QAGD,KAARkrE,GACFr6E,EAAIhmB,MAAQ,GACZmqB,EAAQ4pO,IACS,KAAR1zJ,IACTr6E,EAAI9P,SAAW,GACfiU,EAAQ6pO,SAGVphK,GAAU29J,EAAclwJ,EAAMqxJ,GAC9B,MAEJ,KAAKoC,GACS,KAARzzJ,GACFr6E,EAAIhmB,MAAQ,GACZmqB,EAAQ4pO,IACS,KAAR1zJ,GACTr6E,EAAI9P,SAAW,GACfiU,EAAQ6pO,IACC3zJ,GAAQyuJ,IACjB9oO,EAAI5J,KAAK,IAAMm0O,EAAclwJ,EAAMmwJ,IACnC,MAEJ,KAAKuD,GACEG,GAAyB,KAAR7zJ,EAGXA,GAAQyuJ,IACL,KAARzuJ,GAAeigI,EAAUt6M,GAAMA,EAAIhmB,OAAS,MAC1BgmB,EAAIhmB,OAAT,KAARqgG,EAA0B,MACjBkwJ,EAAclwJ,EAAMmwJ,KALtCxqO,EAAI9P,SAAW,GACfiU,EAAQ6pO,IAKR,MAEJ,KAAKA,GACC3zJ,GAAQyuJ,IAAK9oO,EAAI9P,UAAYq6O,EAAclwJ,EAAMoxJ,IAIzDP,MAMAwD,GAAiB,SAAa1uO,GAChC,IAII2uO,EAAWP,EAJXj+N,EAAO5C,EAAW1uC,KAAM6vQ,GAAgB,OACxCv0M,EAAOx3D,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,EAC7C+oQ,EAAYtpQ,OAAO06B,GACnBmE,EAAQ+J,EAAiBiC,EAAM,CAAEt9B,KAAM,QAE3C,QAAahN,IAATs0D,EACF,GAAIA,aAAgBu0M,GAAgBC,EAAYvF,EAAoBjvM,QAGlE,GADAi0M,EAAUH,GAASU,EAAY,GAAIrpQ,OAAO60D,IAC7B,MAAMrwC,UAAUskP,GAIjC,GADAA,EAAUH,GAAS9pO,EAAOyqO,EAAW,KAAMD,GAC9B,MAAM7kP,UAAUskP,GAC7B,IAAIl9N,EAAe/M,EAAM+M,aAAe,IAAIL,EACxCg+N,EAAoB1F,EAA6Bj4N,GACrD29N,EAAkBz/N,mBAAmBjL,EAAMnqB,OAC3C60P,EAAkBz+N,UAAY,WAC5BjM,EAAMnqB,MAAQ1U,OAAO4rC,IAAiB,MAEnC/8B,IACHg8B,EAAK7P,KAAOwuO,GAAalwQ,KAAKuxC,GAC9BA,EAAK+C,OAAS67N,GAAUnwQ,KAAKuxC,GAC7BA,EAAK5P,SAAWwD,GAAYnlC,KAAKuxC,GACjCA,EAAKiB,SAAW49N,GAAYpwQ,KAAKuxC,GACjCA,EAAKoxG,SAAW0tH,GAAYrwQ,KAAKuxC,GACjCA,EAAKkB,KAAO69N,GAAQtwQ,KAAKuxC,GACzBA,EAAK8C,SAAWk8N,GAAYvwQ,KAAKuxC,GACjCA,EAAKg1I,KAAOiqF,GAAQxwQ,KAAKuxC,GACzBA,EAAKgB,SAAWk+N,GAAYzwQ,KAAKuxC,GACjCA,EAAKgD,OAASm8N,GAAU1wQ,KAAKuxC,GAC7BA,EAAKe,aAAeq+N,GAAgB3wQ,KAAKuxC,GACzCA,EAAKmB,KAAOmvB,GAAQ7hE,KAAKuxC,KAIzBq/N,GAAed,GAAezuQ,UAE9B6uQ,GAAe,WACjB,IAAI9uO,EAAMopO,EAAoBvqQ,MAC1BotQ,EAASjsO,EAAIisO,OACb76N,EAAWpR,EAAIoR,SACfmwG,EAAWvhH,EAAIuhH,SACflwG,EAAOrR,EAAIqR,KACX8zI,EAAOnlJ,EAAImlJ,KACX/uJ,EAAO4J,EAAI5J,KACXpc,EAAQgmB,EAAIhmB,MACZkW,EAAW8P,EAAI9P,SACf60F,EAASknJ,EAAS,IAYtB,OAXa,OAAT56N,GACF0zE,GAAU,KACNmnJ,EAAoBlsO,KACtB+kF,GAAU3zE,GAAYmwG,EAAW,IAAMA,EAAW,IAAM,KAE1Dx8B,GAAUomJ,EAAc95N,GACX,OAAT8zI,IAAepgE,GAAU,IAAMogE,IAChB,QAAV8mF,IAAkBlnJ,GAAU,MACvCA,GAAU/kF,EAAIosO,iBAAmBh2O,EAAK,GAAKA,EAAKvvB,OAAS,IAAMuvB,EAAKnhB,KAAK,KAAO,GAClE,OAAV+E,IAAgB+qG,GAAU,IAAM/qG,GACnB,OAAbkW,IAAmB60F,GAAU,IAAM70F,GAChC60F,GAGLgqJ,GAAY,WACd,IAAI/uO,EAAMopO,EAAoBvqQ,MAC1BotQ,EAASjsO,EAAIisO,OACb9mF,EAAOnlJ,EAAImlJ,KACf,GAAc,QAAV8mF,EAAkB,IACpB,OAAO,IAAIh7N,IAAIg7N,EAAO71O,KAAK,IAAI8c,OAC/B,MAAOh3B,GACP,MAAO,OAET,MAAc,QAAV+vP,GAAqB3xB,EAAUt6M,GAC5BisO,EAAS,MAAQd,EAAcnrO,EAAIqR,OAAkB,OAAT8zI,EAAgB,IAAMA,EAAO,IADhC,QAI9CphJ,GAAc,WAChB,OAAOqlO,EAAoBvqQ,MAAMotQ,OAAS,KAGxC+C,GAAc,WAChB,OAAO5F,EAAoBvqQ,MAAMuyC,UAG/B69N,GAAc,WAChB,OAAO7F,EAAoBvqQ,MAAM0iJ,UAG/B2tH,GAAU,WACZ,IAAIlvO,EAAMopO,EAAoBvqQ,MAC1BwyC,EAAOrR,EAAIqR,KACX8zI,EAAOnlJ,EAAImlJ,KACf,OAAgB,OAAT9zI,EAAgB,GACV,OAAT8zI,EAAgBgmF,EAAc95N,GAC9B85N,EAAc95N,GAAQ,IAAM8zI,GAG9BgqF,GAAc,WAChB,IAAI99N,EAAO+3N,EAAoBvqQ,MAAMwyC,KACrC,OAAgB,OAATA,EAAgB,GAAK85N,EAAc95N,IAGxC+9N,GAAU,WACZ,IAAIjqF,EAAOikF,EAAoBvqQ,MAAMsmL,KACrC,OAAgB,OAATA,EAAgB,GAAK7/K,OAAO6/K,IAGjCkqF,GAAc,WAChB,IAAIrvO,EAAMopO,EAAoBvqQ,MAC1Bu3B,EAAO4J,EAAI5J,KACf,OAAO4J,EAAIosO,iBAAmBh2O,EAAK,GAAKA,EAAKvvB,OAAS,IAAMuvB,EAAKnhB,KAAK,KAAO,IAG3Eq6P,GAAY,WACd,IAAIt1P,EAAQovP,EAAoBvqQ,MAAMmb,MACtC,OAAOA,EAAQ,IAAMA,EAAQ,IAG3Bu1P,GAAkB,WACpB,OAAOnG,EAAoBvqQ,MAAMqyC,cAG/BuvB,GAAU,WACZ,IAAIvwC,EAAWk5O,EAAoBvqQ,MAAMqxB,SACzC,OAAOA,EAAW,IAAMA,EAAW,IAGjCu/O,GAAqB,SAAUrnI,EAAQ2C,GACzC,MAAO,CAAExrI,IAAK6oI,EAAQ9jI,IAAKymI,EAAQtrI,cAAc,EAAMD,YAAY,IAyHrE,GAtHI2U,GACF0E,EAAiB22P,GAAc,CAG7BlvO,KAAMmvO,GAAmBX,IAAc,SAAUxuO,GAC/C,IAAIN,EAAMopO,EAAoBvqQ,MAC1B+vQ,EAAYtpQ,OAAOg7B,GACnB8tO,EAAUH,GAASjuO,EAAK4uO,GAC5B,GAAIR,EAAS,MAAMtkP,UAAUskP,GAC7BjF,EAA6BnpO,EAAIkR,cAAc9B,mBAAmBpP,EAAIhmB,UAIxEk5B,OAAQu8N,GAAmBV,IAG3BxuO,SAAUkvO,GAAmB1rO,IAAa,SAAUxD,GAClD,IAAIP,EAAMopO,EAAoBvqQ,MAC9BovQ,GAASjuO,EAAK16B,OAAOi7B,GAAY,IAAKqsO,OAIxCx7N,SAAUq+N,GAAmBT,IAAa,SAAU59N,GAClD,IAAIpR,EAAMopO,EAAoBvqQ,MAC1BurQ,EAAaxqG,EAAUt6J,OAAO8rC,IAClC,IAAI+6N,EAA+BnsO,GAAnC,CACAA,EAAIoR,SAAW,GACf,IAAK,IAAInrC,EAAI,EAAGA,EAAImkQ,EAAWvjQ,OAAQZ,IACrC+5B,EAAIoR,UAAYm5N,EAAcH,EAAWnkQ,GAAI0lQ,OAKjDpqH,SAAUkuH,GAAmBR,IAAa,SAAU1tH,GAClD,IAAIvhH,EAAMopO,EAAoBvqQ,MAC1BurQ,EAAaxqG,EAAUt6J,OAAOi8I,IAClC,IAAI4qH,EAA+BnsO,GAAnC,CACAA,EAAIuhH,SAAW,GACf,IAAK,IAAIt7I,EAAI,EAAGA,EAAImkQ,EAAWvjQ,OAAQZ,IACrC+5B,EAAIuhH,UAAYgpH,EAAcH,EAAWnkQ,GAAI0lQ,OAKjDt6N,KAAMo+N,GAAmBP,IAAS,SAAU79N,GAC1C,IAAIrR,EAAMopO,EAAoBvqQ,MAC1BmhC,EAAIosO,kBACR6B,GAASjuO,EAAK16B,OAAO+rC,GAAOi8N,OAI9Br6N,SAAUw8N,GAAmBN,IAAa,SAAUl8N,GAClD,IAAIjT,EAAMopO,EAAoBvqQ,MAC1BmhC,EAAIosO,kBACR6B,GAASjuO,EAAK16B,OAAO2tC,GAAWs6N,OAIlCpoF,KAAMsqF,GAAmBL,IAAS,SAAUjqF,GAC1C,IAAInlJ,EAAMopO,EAAoBvqQ,MAC1BstQ,EAA+BnsO,KAEvB,KADZmlJ,EAAO7/K,OAAO6/K,IACEnlJ,EAAImlJ,KAAO,KACtB8oF,GAASjuO,EAAKmlJ,EAAMqoF,QAI3Br8N,SAAUs+N,GAAmBJ,IAAa,SAAUl+N,GAClD,IAAInR,EAAMopO,EAAoBvqQ,MAC1BmhC,EAAIosO,mBACRpsO,EAAI5J,KAAO,GACX63O,GAASjuO,EAAKmR,EAAW,GAAIy8N,QAI/Bz6N,OAAQs8N,GAAmBH,IAAW,SAAUn8N,GAC9C,IAAInT,EAAMopO,EAAoBvqQ,MAEhB,KADds0C,EAAS7tC,OAAO6tC,IAEdnT,EAAIhmB,MAAQ,MAER,KAAOm5B,EAAOviC,OAAO,KAAIuiC,EAASA,EAAO1sC,MAAM,IACnDu5B,EAAIhmB,MAAQ,GACZi0P,GAASjuO,EAAKmT,EAAQ46N,KAExB5E,EAA6BnpO,EAAIkR,cAAc9B,mBAAmBpP,EAAIhmB,UAIxEk3B,aAAcu+N,GAAmBF,IAGjCj+N,KAAMm+N,GAAmBhvM,IAAS,SAAUnvB,GAC1C,IAAItR,EAAMopO,EAAoBvqQ,MAElB,KADZyyC,EAAOhsC,OAAOgsC,KAKV,KAAOA,EAAK1gC,OAAO,KAAI0gC,EAAOA,EAAK7qC,MAAM,IAC7Cu5B,EAAI9P,SAAW,GACf+9O,GAASjuO,EAAKsR,EAAM08N,KALlBhuO,EAAI9P,SAAW,UAYvBgd,EAASsiO,GAAc,UAAU,WAC/B,OAAOV,GAAalwQ,KAAKC,QACxB,CAAEW,YAAY,IAIjB0tC,EAASsiO,GAAc,YAAY,WACjC,OAAOV,GAAalwQ,KAAKC,QACxB,CAAEW,YAAY,IAEb0pQ,EAAW,CACb,IAAIwG,GAAwBxG,EAAU/2K,gBAClCw9K,GAAwBzG,EAAU92K,gBAIlCs9K,IAAuBxiO,EAASwhO,GAAgB,mBAAmB,SAAyB/+J,GAC9F,OAAO+/J,GAAsBhtQ,MAAMwmQ,EAAWvmQ,cAK5CgtQ,IAAuBziO,EAASwhO,GAAgB,mBAAmB,SAAyB1uO,GAC9F,OAAO2vO,GAAsBjtQ,MAAMwmQ,EAAWvmQ,cAIlDyqC,EAAeshO,GAAgB,OAE/Bv7P,EAAE,CAAErM,QAAQ,EAAMwM,QAAS25B,EAAgB2H,MAAOzgC,GAAe,CAC/D88B,IAAKy9N,M,qBC7+BP,IAAIv6P,EAAc,EAAQ,QACtBksI,EAAiB,EAAQ,QACzBznI,EAAW,EAAQ,QACnBoD,EAAc,EAAQ,QAEtB26K,EAAuBt3L,OAAOC,eAIlC0H,EAAQqO,EAAIlB,EAAcwiL,EAAuB,SAAwB79K,EAAG2jG,EAAGmzJ,GAI7E,GAHAh3P,EAASE,GACT2jG,EAAIzgG,EAAYygG,GAAG,GACnB7jG,EAASg3P,GACLvvH,EAAgB,IAClB,OAAOs2C,EAAqB79K,EAAG2jG,EAAGmzJ,GAClC,MAAO1zP,IACT,GAAI,QAAS0zP,GAAc,QAASA,EAAY,MAAM9lP,UAAU,2BAEhE,MADI,UAAW8lP,IAAY92P,EAAE2jG,GAAKmzJ,EAAW5gQ,OACtC8J,I,sBCXA,SAAUnf,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,0cAAwFC,MAAM,KACtGC,YAAa,oSAAmED,MAAM,KACtF6W,kBAAkB,EAClB3W,SAAU,uUAA8DF,MAAM,KAC9EG,cAAe,+JAAkCH,MAAM,KACvDI,YAAa,iFAAqBJ,MAAM,KACxCK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,sBACLC,KAAM,6BAERC,SAAU,CACRC,QAAS,gCACTC,QAAS,gCACTC,SAAU,WACVC,QAAS,sCACTC,SAAU,0BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,0CACNC,EAAG,kFACHC,GAAI,gDACJC,EAAG,oDACHC,GAAI,sDACJC,EAAG,kCACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,0CACJC,EAAG,kCACHC,GAAI,oCACJC,EAAG,gEACHC,GAAI,mEAENC,uBAAwB,gBACxBC,QAAS,WACT6L,cAAe,wKACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,yCAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,6BAAbD,EACFC,EACe,2DAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,qDAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,uCACEA,EAAO,GACT,2BACEA,EAAO,GACT,yDACEA,EAAO,GACT,mDAEA,wCAGX7L,KAAM,CACJC,IAAK,EAELC,IAAK,KA7EuFC,CAAQ,EAAQ,U,qBCNlH,IAAIszQ,EAAwB,EAAQ,QAChCC,EAAa,EAAQ,QAGrB5xH,EAFkB,EAAQ,OAEVtwG,CAAgB,eAEhCmiO,EAAuE,aAAnDD,EAAW,WAAc,OAAOntQ,UAArB,IAUnCoE,EAAOC,QAAU6oQ,EAAwBC,EAAa,SAAUl8P,GAC9D,IAAIkF,EAAG4K,EAAKlT,EACZ,YAAc3K,IAAP+N,EAAmB,YAAqB,OAAPA,EAAc,OAEM,iBAAhD8P,EAXD,SAAU9P,EAAIpS,GACzB,IACE,OAAOoS,EAAGpS,GACV,MAAO0a,KAQS8zP,CAAOl3P,EAAIzZ,OAAOuU,GAAKsqI,IAA8Bx6H,EAEnEqsP,EAAoBD,EAAWh3P,GAEH,WAA3BtI,EAASs/P,EAAWh3P,KAAsC,mBAAZA,EAAEm3P,OAAuB,YAAcz/P,I,sBCfnF,SAAU7W,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,0KAAwCC,MAAM,KACtDC,YAAa,qGAAyCD,MAAM,KAC5DE,SAAU,uIAA8BF,MAAM,KAC9CG,cAAe,6FAAuBH,MAAM,KAC5CI,YAAa,mDAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,2BACJC,IAAK,2CACLC,KAAM,+CACNisB,EAAG,WACHy5H,GAAI,2BACJC,IAAK,iCACLz/E,KAAM,sCAER74D,cAAe,gFACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,iBAAbD,GAAkC,iBAAbA,GAAkC,iBAAbA,EACrCC,EACe,iBAAbD,GAAkC,iBAAbA,EACvBC,EAAO,GAGPA,GAAQ,GAAKA,EAAOA,EAAO,IAGtCD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,IAAIgzH,EAAY,IAAPlzH,EAAaC,EAEtB,OAAIizH,EAAK,IACA,eACEA,EAAK,IACP,eACEA,EAAK,KACP,eACEA,EAAK,KACP,eACEA,EAAK,KACP,eAEA,gBAGXzgI,SAAU,CACRC,QAAS,mBACTC,QAAS,mBACTC,SAAU,SAAUqe,GAClB,OAAIA,EAAI9c,SAAWyC,KAAKzC,OACf,gBAEA,iBAGXtB,QAAS,mBACTC,SAAU,SAAUme,GAClB,OAAIra,KAAKzC,SAAW8c,EAAI9c,OACf,gBAEA,iBAGXpB,SAAU,KAEZgB,uBAAwB,gCACxBC,QAAS,SAAUC,EAAQ8X,GACzB,OAAQA,GACN,IAAK,IACL,IAAK,IACL,IAAK,MACH,OAAO9X,EAAS,SAElB,IAAK,IACH,OAAOA,EAAS,SAElB,IAAK,IACL,IAAK,IACH,OAAOA,EAAS,SAElB,QACE,OAAOA,IAGbjB,aAAc,CACZC,OAAQ,WACRC,KAAM,WACNC,EAAG,eACHC,GAAI,YACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,iBACHC,GAAI,kBACJC,EAAG,WACHC,GAAI,YACJmY,EAAG,WACHC,GAAI,YACJnY,EAAG,iBACHC,GAAI,kBACJC,EAAG,WACHC,GAAI,aAENK,KAAM,CAEJC,IAAK,EAELC,IAAK,KAnHuFC,CAAQ,EAAQ,U,sBCDzG,SAAU5C,GACjB,aAEA,IAAIE,EAAS,CAAC,mDAAY,+DAAc,uCAAU,mDAAY,eAAM,2BAAQ,uCAAU,mDAAY,2EAAgB,+DAAc,+DAAc,gEAC1IG,EAAW,CAAC,mDAAY,2BAAQ,mDAAY,2BAAQ,+DAAc,uCAAU,oDACvEL,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaF,EACbG,SAAUA,EACVC,cAAeD,EACfE,YAAa,iLAAqCJ,MAAM,KACxDK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,WACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERqN,cAAe,4BACfC,KAAM,SAAUpB,GACd,MAAO,iBAASA,GAElBqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,eAEA,gBAGXvN,SAAU,CACRC,QAAS,4CACTC,QAAS,4CACTC,SAAU,UACVC,QAAS,4CACTC,SAAU,6DACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,sDACRC,KAAM,0CACNC,EAAG,uFACHC,GAAI,sDACJC,EAAG,mDACHC,GAAI,0CACJC,EAAG,+DACHC,GAAI,sDACJC,EAAG,mDACHC,GAAI,0CACJC,EAAG,uCACHC,GAAI,8BACJC,EAAG,mDACHC,GAAI,2CAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,UAAM,MAE9B2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,KAAM,WAE9BP,KAAM,CACJC,IAAK,EAELC,IAAK,MAhEuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,2DAA2DF,MAAM,KAC3EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,mBACTC,SAAU,eACVC,QAAS,oBACTC,SAAU,sBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,WACHC,GAAI,aACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,UACJC,EAAG,UACHC,GAAI,YACJC,EAAG,SACHC,GAAI,YAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,OAGvGC,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,qBCNlH,IAAI65B,EAAO,EAAQ,QACftvB,EAAS,EAAQ,QAEjB4xK,EAAY,SAAUw3F,GACxB,MAA0B,mBAAZA,EAAyBA,OAAWrqQ,GAGpDkB,EAAOC,QAAU,SAAUmpQ,EAAW7gN,GACpC,OAAO3sD,UAAUkE,OAAS,EAAI6xK,EAAUtiJ,EAAK+5O,KAAez3F,EAAU5xK,EAAOqpQ,IACzE/5O,EAAK+5O,IAAc/5O,EAAK+5O,GAAW7gN,IAAWxoD,EAAOqpQ,IAAcrpQ,EAAOqpQ,GAAW7gN,K,sBCFlF,SAAU31D,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,2LAA8IC,MAAM,KAC5JC,YAAa,sEAAiED,MAAM,KACpFsX,YAAa,yCACbG,kBAAmB,yCACnBD,iBAAkB,yCAClBE,uBAAwB,yCACxBxX,SAAU,sEAAkDF,MAAM,KAClEG,cAAe,uCAAwBH,MAAM,KAC7CI,YAAa,uCAAwBJ,MAAM,KAC3CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,wBACLC,KAAM,+BAERC,SAAU,CACRC,QAAS,wBACTC,QAAS,eACTC,SAAU,cACVC,QAAS,iBACTC,SAAU,2BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,cACRC,KAAM,WACNC,EAAG,wBACHC,GAAI,iBACJC,EAAG,YACHC,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,QACHC,GAAI,QACJC,EAAG,YACHC,GAAI,YACJC,EAAG,SACHC,GAAI,UAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIq4C,EAAW,CACbrqC,EAAG,gBACHT,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACHC,EAAG,gBACH4qC,GAAI,gBACJH,GAAI,gBACJI,GAAI,gBACJizE,GAAI,gBACJpzE,GAAI,gBACJI,GAAI,gBACJP,GAAI,gBACJC,GAAI,gBACJO,GAAI,gBACJJ,IAAK,iBAEE14C,EAAOC,aAAa,KAAM,CACjCC,OAAQ,saAAkFC,MAAM,KAChGC,YAAa,wPAAqDD,MAAM,KACxEE,SAAU,qTAA2DF,MAAM,KAC3EG,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,6FAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,+DACTC,QAAS,+DACTC,SAAU,qCACVC,QAAS,+DACTC,SAAU,4IACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,0CACRC,KAAM,oCACNC,EAAG,kFACHC,GAAI,0CACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,8CACHC,GAAI,8BACJC,EAAG,wCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,kBACJC,EAAG,wCACHC,GAAI,yBAENC,uBAAwB,gEACxBC,QAAS,SAAUC,GACjB,IAAIshB,EAAIthB,EAAS,GACbC,EAAID,GAAU,IAAM,IAAM,KAC9B,OAAOA,GAAU81C,EAAS91C,IAAW81C,EAASx0B,IAAMw0B,EAAS71C,KAE/DC,KAAM,CACJC,IAAK,EAELC,IAAK,KAzEuFC,CAAQ,EAAQ,U,kCCLlH,IAAI6zQ,EAA6B,GAAG96P,qBAChCsoC,EAA2Bv+C,OAAOu+C,yBAGlCyyN,EAAczyN,IAA6BwyN,EAA2BxxQ,KAAK,CAAEsI,EAAG,GAAK,GAIzFF,EAAQqO,EAAIg7P,EAAc,SAA8BC,GACtD,IAAI5hN,EAAa9Q,EAAyB/+C,KAAMyxQ,GAChD,QAAS5hN,GAAcA,EAAWlvD,YAChC4wQ,G,kCCXJ,IAaI7xF,EAAmBgyF,EAAmCC,EAbtDl8N,EAAiB,EAAQ,QACzB2pG,EAA8B,EAAQ,QACtC9kI,EAAM,EAAQ,QACdy0B,EAAkB,EAAQ,QAC1BoD,EAAU,EAAQ,QAElBjD,EAAWH,EAAgB,YAC3B6iO,GAAyB,EAQzB,GAAGl7P,OAGC,SAFNi7P,EAAgB,GAAGj7P,SAIjBg7P,EAAoCj8N,EAAeA,EAAek8N,OACxBnxQ,OAAOY,YAAWs+K,EAAoBgyF,GAHlDE,GAAyB,QAOlC5qQ,GAArB04K,IAAgCA,EAAoB,IAGnDvtI,GAAY73B,EAAIolK,EAAmBxwI,IACtCkwG,EAA4BsgC,EAAmBxwI,GApBhC,WAAc,OAAOlvC,QAuBtCkI,EAAOC,QAAU,CACfu3K,kBAAmBA,EACnBkyF,uBAAwBA,I,kCClC1B,IAAI73P,EAAW,EAAQ,QAIvB7R,EAAOC,QAAU,WACf,IAAImpC,EAAOv3B,EAAS/Z,MAChB2R,EAAS,GAOb,OANI2/B,EAAKrpC,SAAQ0J,GAAU,KACvB2/B,EAAKugO,aAAYlgQ,GAAU,KAC3B2/B,EAAKzpC,YAAW8J,GAAU,KAC1B2/B,EAAKwgO,SAAQngQ,GAAU,KACvB2/B,EAAKj8B,UAAS1D,GAAU,KACxB2/B,EAAKhqC,SAAQqK,GAAU,KACpBA,I,qBCdT,IAAI08B,EAAW,EAAQ,QAEvBnmC,EAAOC,QAAU,SAAUvD,EAAQivC,EAAK18B,GACtC,IAAK,IAAIxU,KAAOkxC,EAAKxF,EAASzpC,EAAQjC,EAAKkxC,EAAIlxC,GAAMwU,GACrD,OAAOvS,I,wBCGA,SAAU9J,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,mHAAmHC,MAAM,KACjIC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,sEAAsEF,MAAM,KACtFG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,mBACTC,QAAS,kBACTC,SAAU,gBACVC,QAAS,iBACTC,SAAU,8BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,SACRC,KAAM,iBACNC,EAAG,qBACHC,GAAI,cACJC,EAAG,SACHC,GAAI,aACJC,EAAG,SACHC,GAAI,aACJC,EAAG,UACHC,GAAI,cACJC,EAAG,UACHC,GAAI,cACJC,EAAG,UACHC,GAAI,eAEN+L,cAAe,mCACfE,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH,UACEA,EAAQ,GACV,QACEA,EAAQ,GACV,aAEA,WAGXy1B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,YAAbD,EACKC,EACe,UAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,eAAbD,GAA0C,YAAbA,EACzB,IAATC,EACK,EAGFA,EAAO,QALT,GAQTjM,uBAAwB,UACxBC,QAAS,KACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA7EuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,SAASopJ,EAAoB7mJ,EAAQoU,EAAe9O,EAAK+O,GACvD,IAAIC,EAAStU,EAAS,IAEtB,OAAQsF,GACN,IAAK,IACH,OAAO8O,GAAiBC,EAAW,eAAiB,kBAEtD,IAAK,KAWH,OATEC,GADa,IAAXtU,EACQoU,EAAgB,UAAY,UAClB,IAAXpU,EACCoU,GAAiBC,EAAW,UAAY,WACzCrU,EAAS,EACRoU,GAAiBC,EAAW,UAAY,WAExC,SAKd,IAAK,IACH,OAAOD,EAAgB,aAAe,aAExC,IAAK,KAWH,OATEE,GADa,IAAXtU,EACQoU,EAAgB,SAAW,SACjB,IAAXpU,EACCoU,GAAiBC,EAAW,SAAW,WACxCrU,EAAS,EACRoU,GAAiBC,EAAW,SAAW,WAEvCD,GAAiBC,EAAW,QAAU,WAKpD,IAAK,IACH,OAAOD,EAAgB,UAAY,UAErC,IAAK,KAWH,OATEE,GADa,IAAXtU,EACQoU,EAAgB,MAAQ,MACd,IAAXpU,EACCoU,GAAiBC,EAAW,MAAQ,QACrCrU,EAAS,EACRoU,GAAiBC,EAAW,MAAQ,QAEpCD,GAAiBC,EAAW,KAAO,QAKjD,IAAK,IACH,OAAOD,GAAiBC,EAAW,SAAW,YAEhD,IAAK,KASH,OAPEC,GADa,IAAXtU,EACQoU,GAAiBC,EAAW,MAAQ,OAC1B,IAAXrU,EACCoU,GAAiBC,EAAW,MAAQ,UAEpCD,GAAiBC,EAAW,MAAQ,QAKlD,IAAK,IACH,OAAOD,GAAiBC,EAAW,WAAa,eAElD,IAAK,KAWH,OATEC,GADa,IAAXtU,EACQoU,GAAiBC,EAAW,QAAU,UAC5B,IAAXrU,EACCoU,GAAiBC,EAAW,SAAW,WACxCrU,EAAS,EACRoU,GAAiBC,EAAW,SAAW,SAEvCD,GAAiBC,EAAW,UAAY,SAKtD,IAAK,IACH,OAAOD,GAAiBC,EAAW,WAAa,aAElD,IAAK,KAWH,OATEC,GADa,IAAXtU,EACQoU,GAAiBC,EAAW,OAAS,QAC3B,IAAXrU,EACCoU,GAAiBC,EAAW,OAAS,SACtCrU,EAAS,EACRoU,GAAiBC,EAAW,OAAS,OAErCD,GAAiBC,EAAW,MAAQ,QAO7C5W,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wFAAwFC,MAAM,KACtGC,YAAa,8DAA8DD,MAAM,KACjF6W,kBAAkB,EAClB3W,SAAU,2DAAsDF,MAAM,KACtEG,cAAe,0CAAqCH,MAAM,KAC1DI,YAAa,4BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,eACHC,GAAI,eACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,gBACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,wBAET,KAAK,EACH,MAAO,sBAET,KAAK,EACH,MAAO,uBAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,qBAGbzN,QAAS,sBACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACH,MAAO,oCAET,KAAK,EACH,MAAO,kCAET,KAAK,EACH,MAAO,mCAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,iCAGbvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,cACRC,KAAM,UACNC,EAAG2nJ,EACH1nJ,GAAI0nJ,EACJznJ,EAAGynJ,EACHxnJ,GAAIwnJ,EACJvnJ,EAAGunJ,EACHtnJ,GAAIsnJ,EACJrnJ,EAAGqnJ,EACHpnJ,GAAIonJ,EACJnnJ,EAAGmnJ,EACHlnJ,GAAIknJ,EACJjnJ,EAAGinJ,EACHhnJ,GAAIgnJ,GAEN/mJ,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAvLuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,oFAAoFC,MAAM,KAClGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,6CAA6CF,MAAM,KAC7DG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAERqN,cAAe,8BACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,SAAbD,EACKC,EACe,cAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,WAAbD,GAAsC,UAAbA,EAC3BC,EAAO,QADT,GAITD,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH,OACEA,EAAQ,GACV,YACEA,EAAQ,GACV,SAEA,SAGXpW,SAAU,CACRC,QAAS,sBACTC,QAAS,kBACTC,SAAU,kBACVC,QAAS,sBACTC,SAAU,wBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,gBACNC,EAAG,gBACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KAtEuFC,CAAQ,EAAQ,U,qBCNlH,IAAIqc,EAAW,EAAQ,QACnBg4P,EAAqB,EAAQ,QAMjC7pQ,EAAOC,QAAU3H,OAAO6Y,iBAAmB,aAAe,GAAK,WAC7D,IAEI6yH,EAFA8lI,GAAiB,EACjB9zQ,EAAO,GAEX,KACEguI,EAAS1rI,OAAOu+C,yBAAyBv+C,OAAOY,UAAW,aAAaqE,KACjE1F,KAAK7B,EAAM,IAClB8zQ,EAAiB9zQ,aAAgBugB,MACjC,MAAOpB,IACT,OAAO,SAAwBpD,EAAG68B,GAKhC,OAJA/8B,EAASE,GACT83P,EAAmBj7N,GACfk7N,EAAgB9lI,EAAOnsI,KAAKka,EAAG68B,GAC9B78B,EAAEy7B,UAAYoB,EACZ78B,GAdoD,QAgBzDjT,I,qBCvBN,IAAIsT,EAAM,EAAQ,QACd0vB,EAAkB,EAAQ,QAC1BriC,EAAU,EAAQ,QAA+BA,QACjDsvL,EAAa,EAAQ,QAEzB/uL,EAAOC,QAAU,SAAU8U,EAAQk8G,GACjC,IAGIx2H,EAHAsX,EAAI+vB,EAAgB/sB,GACpB7V,EAAI,EACJuK,EAAS,GAEb,IAAKhP,KAAOsX,GAAIK,EAAI28K,EAAYt0L,IAAQ2X,EAAIL,EAAGtX,IAAQgP,EAAO3D,KAAKrL,GAEnE,KAAOw2H,EAAMnxH,OAASZ,GAAOkT,EAAIL,EAAGtX,EAAMw2H,EAAM/xH,SAC7CO,EAAQgK,EAAQhP,IAAQgP,EAAO3D,KAAKrL,IAEvC,OAAOgP,I,sBCRA,SAAU7W,GACjB,aAEA,IAAIE,EAAS,CAAC,YAAU,UAAW,WAAS,aAAW,YAAa,YAAa,UAAQ,YAAU,qBAAgB,sBAAoB,UAAW,WAC9IE,EAAc,CAAC,MAAO,QAAS,UAAQ,MAAO,OAAQ,QAAS,UAAQ,SAAO,OAAQ,OAAQ,OAAQ,QACtGC,EAAW,CAAC,kBAAgB,cAAY,iBAAY,oBAAe,eAAa,eAAa,kBAC7FC,EAAgB,CAAC,OAAQ,OAAQ,WAAS,UAAQ,UAAQ,QAAS,QACnEC,EAAc,CAAC,KAAM,KAAM,QAAM,QAAM,QAAM,IAAK,MAC7CP,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaA,EACb4W,kBAAkB,EAClB3W,SAAUA,EACVC,cAAeA,EACfC,YAAaA,EACbC,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,gBACTC,QAAS,qBACTC,SAAU,eACVC,QAAS,kBACTC,SAAU,2BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,OACRC,KAAM,eACNC,EAAG,mBACHC,GAAI,aACJC,EAAG,gBACHC,GAAI,mBACJC,EAAG,iBACHC,GAAI,oBACJC,EAAG,QACHC,GAAI,WACJC,EAAG,QACHC,GAAI,eACJC,EAAG,SACHC,GAAI,aAENC,uBAAwB,mBACxBC,QAAS,SAAUC,GAEjB,OAAOA,GADiB,IAAXA,EAAe,IAAMA,EAAS,KAAO,EAAI,KAAO,OAG/DE,KAAM,CACJC,IAAK,EAELC,IAAK,KAxDuFC,CAAQ,EAAQ,U,qBCNlH,IASI+H,EAAK/E,EAAK4Z,EATV23P,EAAkB,EAAQ,QAC1BhqQ,EAAS,EAAQ,QACjBmR,EAAW,EAAQ,QACnBgmI,EAA8B,EAAQ,QACtC8yH,EAAY,EAAQ,QACpB5Q,EAAY,EAAQ,QACpBrqE,EAAa,EAAQ,QAErB9zH,EAAUl7D,EAAOk7D,QAgBrB,GAAI8uM,EAAiB,CACnB,IAAIp7E,EAAQ,IAAI1zH,EACZgvM,EAAQt7E,EAAMn2L,IACd0xQ,EAAQv7E,EAAMv8K,IACd+3P,EAAQx7E,EAAMpxL,IAClBA,EAAM,SAAUsP,EAAIytM,GAElB,OADA6vD,EAAMtyQ,KAAK82L,EAAO9hL,EAAIytM,GACfA,GAET9hN,EAAM,SAAUqU,GACd,OAAOo9P,EAAMpyQ,KAAK82L,EAAO9hL,IAAO,IAElCuF,EAAM,SAAUvF,GACd,OAAOq9P,EAAMryQ,KAAK82L,EAAO9hL,QAEtB,CACL,IAAIu9P,EAAQhR,EAAU,SACtBrqE,EAAWq7E,IAAS,EACpB7sQ,EAAM,SAAUsP,EAAIytM,GAElB,OADApjE,EAA4BrqI,EAAIu9P,EAAO9vD,GAChCA,GAET9hN,EAAM,SAAUqU,GACd,OAAOm9P,EAAUn9P,EAAIu9P,GAASv9P,EAAGu9P,GAAS,IAE5Ch4P,EAAM,SAAUvF,GACd,OAAOm9P,EAAUn9P,EAAIu9P,IAIzBpqQ,EAAOC,QAAU,CACf1C,IAAKA,EACL/E,IAAKA,EACL4Z,IAAKA,EACLgqI,QA/CY,SAAUvvI,GACtB,OAAOuF,EAAIvF,GAAMrU,EAAIqU,GAAMtP,EAAIsP,EAAI,KA+CnCw6B,UA5Cc,SAAUspJ,GACxB,OAAO,SAAU9jL,GACf,IAAIuwB,EACJ,IAAKlsB,EAASrE,KAAQuwB,EAAQ5kC,EAAIqU,IAAKf,OAAS6kL,EAC9C,MAAM5tK,UAAU,0BAA4B4tK,EAAO,aACnD,OAAOvzJ,M,sBCZJ,SAAUxqC,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,yIAAqGC,MAAM,KACnHC,YAAa,sFAAsFD,MAAM,KACzG6W,kBAAkB,EAClB3W,SAAU,mHAAyDF,MAAM,KACzEG,cAAe,uBAAuBH,MAAM,KAC5CI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpBC,cAAe,SACfC,KAAM,SAAUpB,GACd,MAAO,QAAQ5J,KAAK4J,IAEtBqB,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH3I,EAAU,KAAO,KAEjBA,EAAU,KAAO,MAG5BhO,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,yBACJC,IAAK,+BACLC,KAAM,qCACNisB,EAAG,YACHy5H,GAAI,aACJC,IAAK,mBACLz/E,KAAM,yBAERjmE,SAAU,CACRC,QAAS,yBACTC,QAAS,0BACTC,SAAU,sCACVC,QAAS,yBACTC,SAAU,6CACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,cACRC,KAAM,qBACNC,EAAG,iBACHC,GAAI,aACJC,EAAG,mBACHC,GAAI,aACJC,EAAG,oBACHC,GAAI,cACJC,EAAG,mBACHC,GAAI,aACJmY,EAAG,qBACHC,GAAI,eACJnY,EAAG,oBACHC,GAAI,cACJC,EAAG,oBACHC,GAAI,eAENC,uBAAwB,UACxBC,QAAS,SAAUC,GACjB,OAAOA,GAETE,KAAM,CACJC,IAAK,EAELC,IAAK,KApEuFC,CAAQ,EAAQ,U,mBCLlH,IAAIs9L,EAAW,IACXriL,EAAMD,KAAKC,IACXyzB,EAAM1zB,KAAK0zB,IACXvzB,EAAQH,KAAKG,MACbipB,EAAMppB,KAAKopB,IACXywO,EAAM75P,KAAK65P,IA6EfrqQ,EAAOC,QAAU,CACfqqQ,KA5ES,SAAUn1Q,EAAQo1Q,EAAgB7iO,GAC3C,IAOIu8J,EAAUumE,EAAUzpP,EAPpB8kF,EAAS,IAAItvF,MAAMmxB,GACnB+iO,EAAyB,EAAR/iO,EAAY6iO,EAAiB,EAC9CG,GAAQ,GAAKD,GAAkB,EAC/BE,EAAQD,GAAQ,EAChBE,EAAwB,KAAnBL,EAAwBrmO,EAAI,GAAI,IAAMA,EAAI,GAAI,IAAM,EACzDk1F,EAAOjkI,EAAS,GAAgB,IAAXA,GAAgB,EAAIA,EAAS,EAAI,EAAI,EAC1D0K,EAAQ,EAkCZ,KAhCA1K,EAASsb,EAAItb,KAECA,GAAUA,IAAW29L,GAEjC03E,EAAWr1Q,GAAUA,EAAS,EAAI,EAClC8uM,EAAWymE,IAEXzmE,EAAWtzL,EAAMipB,EAAIzkC,GAAUk1Q,GAC3Bl1Q,GAAU4rB,EAAImjB,EAAI,GAAI+/J,IAAa,IACrCA,IACAljL,GAAK,IAGL5rB,GADE8uM,EAAW0mE,GAAS,EACZC,EAAK7pP,EAEL6pP,EAAK1mO,EAAI,EAAG,EAAIymO,IAEf5pP,GAAK,IAChBkjL,IACAljL,GAAK,GAEHkjL,EAAW0mE,GAASD,GACtBF,EAAW,EACXvmE,EAAWymE,GACFzmE,EAAW0mE,GAAS,GAC7BH,GAAYr1Q,EAAS4rB,EAAI,GAAKmjB,EAAI,EAAGqmO,GACrCtmE,GAAsB0mE,IAEtBH,EAAWr1Q,EAAS+uC,EAAI,EAAGymO,EAAQ,GAAKzmO,EAAI,EAAGqmO,GAC/CtmE,EAAW,IAGRsmE,GAAkB,EAAG1kK,EAAOhmG,KAAsB,IAAX2qQ,EAAgBA,GAAY,IAAKD,GAAkB,GAGjG,IAFAtmE,EAAWA,GAAYsmE,EAAiBC,EACxCC,GAAkBF,EACXE,EAAiB,EAAG5kK,EAAOhmG,KAAsB,IAAXokM,EAAgBA,GAAY,IAAKwmE,GAAkB,GAEhG,OADA5kK,IAAShmG,IAAiB,IAAPu5H,EACZvzB,GA+BPglK,OA5BW,SAAUhlK,EAAQ0kK,GAC7B,IAQIC,EARA9iO,EAAQm+D,EAAO/lG,OACf2qQ,EAAyB,EAAR/iO,EAAY6iO,EAAiB,EAC9CG,GAAQ,GAAKD,GAAkB,EAC/BE,EAAQD,GAAQ,EAChBI,EAAQL,EAAiB,EACzB5qQ,EAAQ6nC,EAAQ,EAChB0xF,EAAOvzB,EAAOhmG,KACdokM,EAAkB,IAAP7qE,EAGf,IADAA,IAAS,EACF0xI,EAAQ,EAAG7mE,EAAsB,IAAXA,EAAiBp+F,EAAOhmG,GAAQA,IAASirQ,GAAS,GAI/E,IAHAN,EAAWvmE,GAAY,IAAM6mE,GAAS,EACtC7mE,KAAc6mE,EACdA,GAASP,EACFO,EAAQ,EAAGN,EAAsB,IAAXA,EAAiB3kK,EAAOhmG,GAAQA,IAASirQ,GAAS,GAC/E,GAAiB,IAAb7mE,EACFA,EAAW,EAAI0mE,MACV,IAAI1mE,IAAaymE,EACtB,OAAOF,EAAWxpJ,IAAMoY,GAAO,IAAY05D,EAE3C03E,GAAsBtmO,EAAI,EAAGqmO,GAC7BtmE,GAAsB0mE,EACtB,OAAQvxI,GAAQ,EAAI,GAAKoxI,EAAWtmO,EAAI,EAAG+/J,EAAWsmE,M,kCCjFnD,SAASQ,EAAuB1uP,GACrC,OAAOA,EAAQ7N,OAAOsS,KAAI,SAAUrmB,GAClC,OAMJ,SAA8C4hB,EAAS5hB,GACrD,IAAI8iC,EAkBC,SAAiC9iC,GACtC,IAAIuwQ,GAAevwQ,EAAIwE,MAAM,2CAA6C,IAAI,GAE9E,GAAI+rQ,EACF,OAAOA,EAAYp1Q,QAAQ,KAAM,KAAKA,QAAQ,MAAO,MAtBtCq1Q,CAAwBxwQ,GAEzC,GAAI8iC,EACF,OAIJ,SAA0Cv9B,EAAQu9B,GAChD,IAAI80E,EAAwBryG,EAAOizB,QAEnC,GAAoC,mBAAzBo/E,EACT,MAAO,CACL90E,WAAYA,EACZ80E,sBAAuBA,GAVlB64J,CAAiC7uP,EAAQ5hB,GAAM8iC,GAV/C4tO,CAAqC9uP,EAAS5hB,MACpDo2B,QAAO,SAAU5oB,GAClB,OAAOA,K,wDCJuB,EAAQ,OAI1CyxI,CAA4B,WAAW,SAAU51H,GAC/C,OAAO,SAAsB5b,EAAMyxI,EAAY75I,GAC7C,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,Q,qBCNxC,IAAIoR,EAAW,EAAQ,QAEvBlR,EAAOC,QAAU,SAAU4M,GACzB,IAAKqE,EAASrE,GACZ,MAAMkW,UAAUxkB,OAAOsO,GAAM,qBAC7B,OAAOA,I,oCCHX,IAAI4W,EAAQ,EAAQ,QAEpBzjB,EAAOC,QAAUwjB,EAAM+3H,uBAEd,CACL4vH,MAAO,SAAez1P,EAAM1N,EAAOojQ,EAASh8O,EAAMi8O,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAO1lQ,KAAK6P,EAAO,IAAMjD,mBAAmBzK,IAExCwb,EAAMs7F,SAASssJ,IACjBG,EAAO1lQ,KAAK,WAAa,IAAIkK,KAAKq7P,GAASI,eAGzChoP,EAAMs4G,SAAS1sG,IACjBm8O,EAAO1lQ,KAAK,QAAUupB,GAGpB5L,EAAMs4G,SAASuvI,IACjBE,EAAO1lQ,KAAK,UAAYwlQ,IAGX,IAAXC,GACFC,EAAO1lQ,KAAK,UAGdoJ,SAASs8P,OAASA,EAAOt9P,KAAK,OAEhC0tI,KAAM,SAAcjmI,GAClB,IAAI1W,EAAQiQ,SAASs8P,OAAOvsQ,MAAM,IAAIb,OAAO,aAAeuX,EAAO,cACnE,OAAO1W,EAAQsT,mBAAmBtT,EAAM,IAAM,MAEhD3B,OAAQ,SAAgBqY,GACtB7d,KAAKszQ,MAAMz1P,EAAM,GAAI3F,KAAKmC,MAAQ,SAK/B,CACLi5P,MAAO,aACPxvH,KAAM,WACJ,OAAO,MAETt+I,OAAQ,e,sBCrCH,SAAU1K,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,wNAAmJC,MAAM,KACjKC,YAAa,oFAA6DD,MAAM,KAChFE,SAAU,gGAA6EF,MAAM,KAC7FG,cAAe,2CAAmCH,MAAM,KACxDI,YAAa,gBAAgBJ,MAAM,KACnCK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,oBACJC,IAAK,gCACLC,KAAM,uCAERC,SAAU,CACRC,QAAS,eACTC,QAAS,iBACTC,SAAU,eACVC,QAAS,eACTC,SAAU,wBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,iBACRC,KAAM,gBACNC,EAAG,mBACHC,GAAI,eACJC,EAAG,eACHC,GAAI,cACJC,EAAG,cACHC,GAAI,aACJC,EAAG,cACHC,GAAI,cACJC,EAAG,gBACHC,GAAI,cACJC,EAAG,aACHC,GAAI,YAENC,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA/CuFC,CAAQ,EAAQ,U,sBCEzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,yFAAyFC,MAAM,KACvGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,6CAA6CF,MAAM,KAC7DG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,4BACLC,KAAM,mCAERqN,cAAe,wBACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,SAAbD,EACKC,EACe,UAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,SAAbD,GAAoC,UAAbA,EACzBC,EAAO,QADT,GAITD,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH,OACEA,EAAQ,GACV,QACEA,EAAQ,GACV,OAEA,SAGXpW,SAAU,CACRC,QAAS,sBACTC,QAAS,mBACTC,SAAU,kBACVC,QAAS,qBACTC,SAAU,uBACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,WACRC,KAAM,eACNC,EAAG,iBACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJC,EAAG,QACHC,GAAI,SACJC,EAAG,SACHC,GAAI,UACJC,EAAG,UACHC,GAAI,WACJC,EAAG,UACHC,GAAI,YAENK,KAAM,CACJC,IAAK,EAELC,IAAK,KAtEuFC,CAAQ,EAAQ,U,sBCAzG,SAAU5C,GACjB,aAEcA,EAAOC,aAAa,WAAY,CAC5CC,OAAQ,sNAA6GC,MAAM,KAC3HC,YAAa,iHAA8DD,MAAM,KACjF6W,kBAAkB,EAClB3W,SAAU,0JAAyEF,MAAM,KACzFG,cAAe,mEAAqCH,MAAM,KAC1DI,YAAa,2CAA4BJ,MAAM,KAC/C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJE,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,8BACTC,QAAS,kCACTC,SAAU,kBACVC,QAAS,yCACTC,SAAU,6BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,eACRC,KAAM,gBACNC,EAAG,kCACHC,GAAI,wBACJC,EAAG,4BACHC,GAAI,2BACJC,EAAG,wBACHC,GAAI,kBACJC,EAAG,kBACHC,GAAI,iBACJC,EAAG,qBACHC,GAAI,oBACJC,EAAG,sBACHC,GAAI,sBAENC,uBAAwB,uBACxBC,QAAS,SAAUC,GACjB,IAAIC,EAAID,EAAS,GAEjB,OAAOA,GADgC,OAAvBA,EAAS,IAAM,IAAY,KAAa,IAANC,EAAU,KAAa,IAANA,EAAU,KAAa,IAANA,EAAU,KAAO,OAGvGC,KAAM,CACJC,IAAK,EAELC,IAAK,KApDuFC,CAAQ,EAAQ,U,uBCNlH,IAmDIk2Q,EAnDA75P,EAAW,EAAQ,QACnBC,EAAmB,EAAQ,QAC3B4qI,EAAc,EAAQ,QACtBqyC,EAAa,EAAQ,QACrB7/I,EAAO,EAAQ,QACfy8N,EAAwB,EAAQ,QAChCvS,EAAY,EAAQ,QAMpBE,EAAWF,EAAU,YAErBwS,EAAmB,aAEnBC,EAAY,SAAUnkQ,GACxB,MAAOrU,WAAmBqU,EAAnBrU,gBAmCLy4Q,EAAkB,WACpB,IAEEJ,EAAkBx8P,SAASo8P,QAAU,IAAIS,cAAc,YACvD,MAAO52P,IA1BoB,IAIzB62P,EAFAC,EAyBJH,EAAkBJ,EApCY,SAAUA,GACxCA,EAAgBN,MAAMS,EAAU,KAChCH,EAAgB7xQ,QAChB,IAAI27H,EAAOk2I,EAAgBQ,aAAa5zQ,OAExC,OADAozQ,EAAkB,KACXl2I,EA+B6B22I,CAA0BT,KAzB1DO,EAASN,EAAsB,WAG5BljQ,MAAMwc,QAAU,OACvBiqB,EAAKxxB,YAAYuuP,GAEjBA,EAAOtgO,IAAMptC,OALJ,gBAMTytQ,EAAiBC,EAAOG,cAAcl9P,UACvB3V,OACfyyQ,EAAeZ,MAAMS,EAAU,sBAC/BG,EAAenyQ,QACRmyQ,EAAe9tP,GAgBtB,IADA,IAAIpe,EAAS48I,EAAY58I,OAClBA,YAAiBgsQ,EAAyB,UAAEpvH,EAAY58I,IAC/D,OAAOgsQ,KAGT/8E,EAAWuqE,IAAY,EAIvBt5P,EAAOC,QAAU3H,OAAO4lC,QAAU,SAAgBnsB,EAAGC,GACnD,IAAIvI,EAQJ,OAPU,OAANsI,GACF65P,EAA0B,UAAI/5P,EAASE,GACvCtI,EAAS,IAAImiQ,EACbA,EAA0B,UAAI,KAE9BniQ,EAAO6vP,GAAYvnP,GACdtI,EAASqiQ,SACMhtQ,IAAfkT,EAA2BvI,EAASqI,EAAiBrI,EAAQuI,K,qBC5EtE,IAAI28K,EAAQ,EAAQ,QAEhB09E,EAAmBl+N,SAASv9B,SAGE,mBAAvB+9K,EAAMzyC,gBACfyyC,EAAMzyC,cAAgB,SAAUrvI,GAC9B,OAAOw/P,EAAiBx0Q,KAAKgV,KAIjC7M,EAAOC,QAAU0uL,EAAMzyC,e,qBCXW,EAAQ,OAI1CxC,CAA4B,QAAQ,SAAU51H,GAC5C,OAAO,SAAmB5b,EAAMyxI,EAAY75I,GAC1C,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,Q,sBCC/B,SAAUlN,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,CACN2C,WAAY,uFAAoF1C,MAAM,KACtG2C,OAAQ,wHAAqH3C,MAAM,KACnI4C,SAAU,mBAEZ3C,YAAa,iEAA8DD,MAAM,KACjF6W,kBAAkB,EAClB3W,SAAU,8DAA8DF,MAAM,KAC9EG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,uBAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,aACHC,GAAI,mBACJ4lJ,GAAI,aACJ3lJ,IAAK,gCACL4lJ,IAAK,mBACL3lJ,KAAM,qCACNkmE,KAAM,wBAERjmE,SAAU,CACRC,QAAS,WACP,MAAO,YAA+B,IAAjBkE,KAAKiS,QAAgB,MAAQ,MAAQ,QAE5DlW,QAAS,WACP,MAAO,eAA+B,IAAjBiE,KAAKiS,QAAgB,MAAQ,MAAQ,QAE5DjW,SAAU,WACR,MAAO,YAA+B,IAAjBgE,KAAKiS,QAAgB,MAAQ,MAAQ,QAE5DhW,QAAS,WACP,MAAO,YAA+B,IAAjB+D,KAAKiS,QAAgB,MAAQ,MAAQ,QAE5D/V,SAAU,WACR,MAAO,wBAA2C,IAAjB8D,KAAKiS,QAAgB,MAAQ,MAAQ,QAExE9V,SAAU,KAEZC,aAAc,CACZC,OAAQ,eACRC,KAAM,QACNC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJC,EAAG,SACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAENC,uBAAwB,wBACxBC,QAAS,SAAUC,EAAQ8X,GACzB,IAAI+wG,EAAoB,IAAX7oH,EAAe,IAAiB,IAAXA,EAAe,IAAiB,IAAXA,EAAe,IAAiB,IAAXA,EAAe,IAAM,OAMjG,MAJe,MAAX8X,GAA6B,MAAXA,IACpB+wG,EAAS,KAGJ7oH,EAAS6oH,GAElB3oH,KAAM,CACJC,IAAK,EAELC,IAAK,KA1EuFC,CAAQ,EAAQ,U,kCCJlHwK,EAAOC,QAAU,SAAcgiB,EAAIuzF,GACjC,OAAO,WAGL,IAFA,IAAIl5F,EAAO,IAAI/F,MAAM3a,UAAUkE,QAEtBZ,EAAI,EAAGA,EAAIod,EAAKxc,OAAQZ,IAC/Bod,EAAKpd,GAAKtD,UAAUsD,GAGtB,OAAO+iB,EAAGtmB,MAAM65G,EAASl5F,M,qBCV7B,IAAIvc,EAAS,EAAQ,QACjBmR,EAAW,EAAQ,QAEnBhC,EAAWnP,EAAOmP,SAElBo9P,EAASp7P,EAAShC,IAAagC,EAAShC,EAASwN,eAErD1c,EAAOC,QAAU,SAAU4M,GACzB,OAAOy/P,EAASp9P,EAASwN,cAAc7P,GAAM,K,wBCCtC,SAAUja,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,4dAA2FC,MAAM,KACzGC,YAAa,4OAAmDD,MAAM,KACtEE,SAAU,mSAAwDF,MAAM,KACxEG,cAAe,qHAA2BH,MAAM,KAChDI,YAAa,qHAA2BJ,MAAM,KAC9CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERC,SAAU,CACRC,QAAS,gDACTC,QAAS,6EACTC,SAAU,+BACVC,QAAS,sDACTC,SAAU,8FACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,6DACRC,KAAM,yEACNC,EAAG,wFACHC,GAAI,gDACJC,EAAG,mDACHC,GAAI,oCACJC,EAAG,6CACHC,GAAI,8BACJC,EAAG,uCACHC,GAAI,wBACJC,EAAG,2BACHC,GAAI,YACJC,EAAG,6CACHC,GAAI,+BAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAGrB5J,KAAM,CACJC,IAAK,EAELC,IAAK,KA/EuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEHmuL,EAAa,SAAU3lL,GACzB,OAAa,IAANA,EAAU,EAAU,IAANA,EAAU,EAAU,IAANA,EAAU,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,KAAO,GAAK,EAAI,GAEvG4lL,EAAU,CACZ56L,EAAG,CAAC,iEAAgB,gEAAe,CAAC,6CAAW,8CAAY,8BAAW,oCAAY,qCAClFE,EAAG,CAAC,iEAAgB,gEAAe,CAAC,6CAAW,8CAAY,oCAAY,oCAAY,qCACnFE,EAAG,CAAC,2DAAe,0DAAc,CAAC,uCAAU,wCAAW,oCAAY,8BAAW,+BAC9EE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,8BAAW,oCAAY,yBACzEE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,8BAAW,8BAAW,yBACxEE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,oCAAY,oCAAY,0BAExEm6L,EAAY,SAAUtvK,GACxB,OAAO,SAAUzqB,EAAQoU,EAAejI,EAAQkI,GAC9C,IAAI8E,EAAI0gL,EAAW75L,GACf4J,EAAMkwL,EAAQrvK,GAAGovK,EAAW75L,IAMhC,OAJU,IAANmZ,IACFvP,EAAMA,EAAIwK,EAAgB,EAAI,IAGzBxK,EAAInJ,QAAQ,MAAOT,KAG1BrC,EAAS,CAAC,iCAAS,uCAAU,2BAAQ,iCAAS,2BAAQ,iCAAS,iCAAS,iCAAS,uCAAU,uCAAU,uCAAU,wCAE1GF,EAAOC,aAAa,KAAM,CACjCC,OAAQA,EACRE,YAAaF,EACbG,SAAU,uRAAsDF,MAAM,KACtEG,cAAe,mMAAwCH,MAAM,KAC7DI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,uBACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERqN,cAAe,gBACfC,KAAM,SAAUpB,GACd,MAAO,WAAQA,GAEjBqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,SAEA,UAGXvN,SAAU,CACRC,QAAS,8FACTC,QAAS,wFACTC,SAAU,oEACVC,QAAS,kFACTC,SAAU,oEACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,wBACNC,EAAG66L,EAAU,KACb56L,GAAI46L,EAAU,KACd36L,EAAG26L,EAAU,KACb16L,GAAI06L,EAAU,KACdz6L,EAAGy6L,EAAU,KACbx6L,GAAIw6L,EAAU,KACdv6L,EAAGu6L,EAAU,KACbt6L,GAAIs6L,EAAU,KACdr6L,EAAGq6L,EAAU,KACbp6L,GAAIo6L,EAAU,KACdn6L,EAAGm6L,EAAU,KACbl6L,GAAIk6L,EAAU,MAEhB7tL,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,MAChBrJ,QAAQ,UAAM,MAEnB2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,MAChBrJ,QAAQ,KAAM,WAEnBP,KAAM,CACJC,IAAK,EAELC,IAAK,MApHuFC,CAAQ,EAAQ,U,kCCPlH,IAAI4W,EAAI,EAAQ,QACZ/N,EAAO,EAAQ,QAEnB+N,EAAE,CAAE1P,OAAQ,SAAUkyC,OAAO,EAAMriC,OAAQ,IAAIlO,OAASA,GAAQ,CAC9DA,KAAMA,K,sBCEC,SAAUzL,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,8FAA2FC,MAAM,KACzGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,uFAAiFF,MAAM,KACjGG,cAAe,iCAA8BH,MAAM,KACnDI,YAAa,yCAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,wBACJC,IAAK,8BACLC,KAAM,qCAERC,SAAU,CACRC,QAAS,kBACTC,QAAS,uBACTC,SAAU,kBACVC,QAAS,mBACTC,SAAU,WACR,OAAsB,IAAf8D,KAAK0J,OAA8B,IAAf1J,KAAK0J,MAAc,8BAC5C,+BAEJvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,WACNC,EAAG,WACHC,GAAI,cACJC,EAAG,YACHC,GAAI,aACJC,EAAG,WACHC,GAAI,WACJC,EAAG,SACHC,GAAI,UACJmY,EAAG,aACHC,GAAI,aACJnY,EAAG,YACHC,GAAI,WACJC,EAAG,SACHC,GAAI,WAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KArDuFC,CAAQ,EAAQ,U,qBCNlH,IAAIiY,EAAW,EAAQ,QACnBb,EAAW,EAAQ,QACnBg6B,EAAoB,EAAQ,QAC5Bm9D,EAAwB,EAAQ,QAChCz3F,EAAO,EAAQ,QACfmtI,EAAyB,EAAQ,QAAuCA,uBAE5Ez5I,EAAOC,QAAU,SAAcX,GAC7B,IAKIJ,EAAGY,EAAQ2J,EAAQwtB,EAAM0R,EAAUC,EALnC72B,EAAItE,EAASnO,GACb8O,EAAkBxS,UAAUkE,OAC5BokG,EAAQ91F,EAAkB,EAAIxS,UAAU,QAAKkD,EAC7CqlG,OAAoBrlG,IAAVolG,EACVn7D,EAAiBnC,EAAkB70B,GAEvC,QAAsBjT,GAAlBiqC,IAAgCg7D,EAAsBh7D,GAIxD,IAFAH,GADAD,EAAWI,EAAelxC,KAAKka,IACf62B,KAChB72B,EAAI,KACKklB,EAAO2R,EAAK/wC,KAAK8wC,IAAWE,MACnC92B,EAAEjM,KAAKmxB,EAAKhvB,OAQhB,IALIk8F,GAAW/1F,EAAkB,IAC/B81F,EAAQ53F,EAAK43F,EAAOtoG,UAAU,GAAI,IAEpCkE,EAAS8M,EAASmF,EAAEjS,QACpB2J,EAAS,IAAKgwI,EAAuB3hJ,MAA5B,CAAmCgI,GACvCZ,EAAI,EAAGY,EAASZ,EAAGA,IACtBuK,EAAOvK,GAAKilG,EAAUD,EAAMnyF,EAAE7S,GAAIA,GAAK6S,EAAE7S,GAE3C,OAAOuK,I,sBCvBA,SAAU7W,GACjB,aAEWA,EAAOC,aAAa,QAAS,CACtCC,OAAQ,0FAA0FC,MAAM,KACxGC,YAAa,kDAAkDD,MAAM,KACrEE,SAAU,yDAAyDF,MAAM,KACzEG,cAAe,8BAA8BH,MAAM,KACnDI,YAAa,wBAAwBJ,MAAM,KAC3CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,YACHC,GAAI,eACJC,IAAK,qBACLC,KAAM,6BAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,gBACTC,SAAU,0BACVC,QAAS,eACTC,SAAU,4BACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,gBACRC,KAAM,mBACNC,EAAG,gBACHC,GAAI,aACJC,EAAG,eACHC,GAAI,YACJC,EAAG,aACHC,GAAI,UACJC,EAAG,aACHC,GAAI,UACJC,EAAG,cACHC,GAAI,WACJC,EAAG,aACHC,GAAI,WAENC,uBAAwB,UACxBC,QAAS,SAAUC,GACjB,OAAOA,GAETE,KAAM,CACJC,IAAK,EAELC,IAAK,KAjDuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,0WAAwEC,MAAM,KACtFC,YAAa,0WAAwED,MAAM,KAC3FE,SAAU,iRAAoEF,MAAM,KACpFG,cAAe,iRAAoEH,MAAM,KACzFI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERqN,cAAe,wGACfC,KAAM,SAAUpB,GACd,MAAO,qDAAa5J,KAAK4J,IAE3BqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,qDAEA,sDAGXvN,SAAU,CACRC,QAAS,+DACTC,QAAS,yDACTC,SAAU,qCACVC,QAAS,+DACTC,SAAU,0DACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,kBACRC,KAAM,wBACNC,EAAG,oDACHC,GAAI,oCACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,kCACHC,GAAI,yBAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,oBAAU,SAAUqJ,GACxC,OAAO4B,EAAU5B,MAChBrJ,QAAQ,UAAM,MAEnB2L,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,MAChBrJ,QAAQ,KAAM,WAEnBX,uBAAwB,gBACxBC,QAAS,WACTG,KAAM,CACJC,IAAK,EAELC,IAAK,MA7FuFC,CAAQ,EAAQ,U,mBCNlHwK,EAAOC,QAAU,I,qBCCjB,IAAIF,EAAS,EAAQ,QACjBsN,EAAQ,EAAQ,QAChBk/P,EAA8B,EAAQ,QACtCz8E,EAA4B,EAAQ,QAAuCA,0BAE3ErqF,EAAc1lG,EAAO0lG,YACrB+mK,EAAYzsQ,EAAOysQ,UAEvBxsQ,EAAOC,SAAW6vL,IAA8BziL,GAAM,WACpDm/P,EAAU,QACLn/P,GAAM,WACX,IAAIm/P,GAAW,QACVD,GAA4B,SAAUvzF,GAC3C,IAAIwzF,EACJ,IAAIA,EAAU,MACd,IAAIA,EAAU,KACd,IAAIA,EAAUxzF,MACb,IAAS3rK,GAAM,WAEhB,OAAkE,IAA3D,IAAIm/P,EAAU,IAAI/mK,EAAY,GAAI,OAAG3mG,GAAWgB,W,qCCpBzD,YAEA,IAAI2jB,EAAQ,EAAQ,QAEhBgpP,EAAsB,EAAQ,QAE9BnxF,EAAe,EAAQ,QAEvBoxF,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsB3iO,EAAS/hC,IACjCwb,EAAMq7F,YAAY90E,IAAYvmB,EAAMq7F,YAAY90E,EAAQ,mBAC3DA,EAAQ,gBAAkB/hC,GAkB9B,IAbMtQ,EAaFif,EAAW,CACbiiI,aAAc,CACZqmC,mBAAmB,EACnBE,mBAAmB,EACnB7jC,qBAAqB,GAEvB5jJ,UAjB8B,qBAAnB4wG,gBAGmB,qBAAZ++C,GAAuE,qBAA5ChvJ,OAAOY,UAAU0X,SAAS/Y,KAAKyvJ,MAD1E3vJ,EAAU,EAAQ,SAMbA,GAUPogJ,iBAAkB,CAAC,SAA0B7vI,EAAM8hC,GAIjD,OAHAyiO,EAAoBziO,EAAS,UAC7ByiO,EAAoBziO,EAAS,gBAEzBvmB,EAAM62H,WAAWpyI,IAASub,EAAMshI,cAAc78I,IAASub,EAAMuhI,SAAS98I,IAASub,EAAM4hI,SAASn9I,IAASub,EAAM0hI,OAAOj9I,IAASub,EAAM2hI,OAAOl9I,GACrIA,EAGLub,EAAMwhI,kBAAkB/8I,GACnBA,EAAK29F,OAGVpiF,EAAM8hI,kBAAkBr9I,IAC1BykQ,EAAsB3iO,EAAS,mDACxB9hC,EAAK0I,YAGV6S,EAAMvS,SAAShJ,IAAS8hC,GAAuC,qBAA5BA,EAAQ,iBAC7C2iO,EAAsB3iO,EAAS,oBACxB/X,KAAKtf,UAAUzK,IAGjBA,IAET+vI,kBAAmB,CAAC,SAA2B/vI,GAC7C,IAAI2wI,EAAe/gJ,KAAK+gJ,aACpBqmC,EAAoBrmC,GAAgBA,EAAaqmC,kBACjDE,EAAoBvmC,GAAgBA,EAAaumC,kBACjDwtF,GAAqB1tF,GAA2C,SAAtBpnL,KAAK0wG,aAEnD,GAAIokK,GAAqBxtF,GAAqB37J,EAAMs4G,SAAS7zH,IAASA,EAAKpI,OACzE,IACE,OAAOmyB,KAAKjf,MAAM9K,GAClB,MAAOsK,GACP,GAAIo6P,EAAmB,CACrB,GAAe,gBAAXp6P,EAAEmD,KACJ,MAAM2lK,EAAa9oK,EAAG1a,KAAM,gBAG9B,MAAM0a,GAKZ,OAAOtK,IAOTkU,QAAS,EACTu/H,eAAgB,aAChBE,eAAgB,eAChBgxH,kBAAmB,EACnBC,eAAgB,EAChBn6B,eAAgB,SAAwB9pI,GACtC,OAAOA,GAAU,KAAOA,EAAS,MAGrCjyF,EAASozB,QAAU,CACjBguG,OAAQ,CACN,OAAU,sCAGdv0H,EAAM3b,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BygD,GACpE3xC,EAASozB,QAAQue,GAAU,MAE7B9kC,EAAM3b,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BygD,GACrE3xC,EAASozB,QAAQue,GAAU9kC,EAAMqmD,MAAM4iM,MAEzC1sQ,EAAOC,QAAU2W,I,wDC9GjB,8DAyBIm2P,EAEJ,WACE,SAASA,EAAajxQ,EAAMU,GAG1B,IAFA,IAAI8f,EAAO,GAEFwG,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtCxG,EAAKwG,EAAK,GAAKlnB,UAAUknB,GAG3BhrB,KAAKgE,KAAOA,EACZhE,KAAKiE,WAAWJ,MAAM7D,KAAM,YAASwkB,IAGrCxkB,KAAK0E,gBAA4BsC,IAAftC,EAA2B1E,KAAKmF,uBAAyBT,EAC3E1E,KAAK0E,WAAWsnB,OAChBhsB,KAAKoE,qBA0EP,OAvEA6wQ,EAAalxQ,SAAW,SAAUC,GAKhC,OAAO,IAAIixQ,EAAajxQ,EAAM,IAAI,IAAc,MAKlDixQ,EAAa7zQ,UAAU6C,WAAa,WAGlC,IAFA,IAAIixQ,EAAQ,GAEHlqP,EAAK,EAAGA,EAAKlnB,UAAUkE,OAAQgjB,IACtCkqP,EAAMlqP,GAAMlnB,UAAUknB,IAO1BiqP,EAAa7zQ,UAAU+D,qBAAuB,WAG5C,MAAM,IAAI9C,MAAM,mGAGlB4yQ,EAAa7zQ,UAAUgD,mBAAqB,aAM5C6wQ,EAAa7zQ,UAAUC,QAAU,WAG/BrB,KAAK0E,WAAWrD,WAGlB4zQ,EAAa7zQ,UAAUwE,OAAS,SAAU2+G,EAAS5+G,EAASwR,GAC1DnX,KAAKgE,KAAK8B,iBAAiBy+G,EAAS5+G,EAASwR,IAG/C89P,EAAa7zQ,UAAUyE,SAAW,SAAU0+G,EAAS5+G,EAASwR,GAC5DnX,KAAKgE,KAAK+B,oBAAoBw+G,EAAS5+G,EAASwR,IAOlD89P,EAAa7zQ,UAAUmE,KAAO,SAAUg/G,EAAS4wJ,EAASC,GAKxD,IAAI1yQ,OAJiB,IAAjB0yQ,IACFA,GAAe,GAKU,oBAAhBtgO,YACTpyC,EAAM,IAAIoyC,YAAYyvE,EAAS,CAC7B9pE,QAAS26N,EACT56N,OAAQ26N,KAGVzyQ,EAAM0U,SAAS+Z,YAAY,gBACvB20C,gBAAgBy+C,EAAS6wJ,GAAc,EAAOD,GAGpDn1Q,KAAKgE,KAAKotB,cAAc1uB,IAGnBuyQ,EAxFT,I,sBCnBS,SAAUn6Q,GACjB,aAEA,IAAIwyH,EAAQ,CACV9wH,GAAI,0CAAqCvB,MAAM,KAC/CwB,EAAG,0DAAiCxB,MAAM,KAC1CyB,GAAI,0DAAiCzB,MAAM,KAC3C0B,EAAG,sCAAiC1B,MAAM,KAC1C2B,GAAI,sCAAiC3B,MAAM,KAC3C4B,EAAG,kCAA6B5B,MAAM,KACtC6B,GAAI,kCAA6B7B,MAAM,KACvC8B,EAAG,oEAAiC9B,MAAM,KAC1C+B,GAAI,oEAAiC/B,MAAM,KAC3CgC,EAAG,wBAAwBhC,MAAM,KACjCiC,GAAI,wBAAwBjC,MAAM,MAMpC,SAAS2C,EAAOwc,EAAO/c,EAAQoU,GAC7B,OAAIA,EAEKpU,EAAS,KAAO,GAAKA,EAAS,MAAQ,GAAK+c,EAAM,GAAKA,EAAM,GAI5D/c,EAAS,KAAO,GAAKA,EAAS,MAAQ,GAAK+c,EAAM,GAAKA,EAAM,GAIvE,SAASR,EAAuBvc,EAAQoU,EAAe9O,GACrD,OAAOtF,EAAS,IAAMO,EAAO0vH,EAAM3qH,GAAMtF,EAAQoU,GAGnD,SAAS4jQ,EAAyBh4Q,EAAQoU,EAAe9O,GACvD,OAAO/E,EAAO0vH,EAAM3qH,GAAMtF,EAAQoU,GAGpC,SAAS6jQ,EAAgBj4Q,EAAQoU,GAC/B,OAAOA,EAAgB,sBAAmB,gCAGnC3W,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gIAAuGC,MAAM,KACrHC,YAAa,4DAAkDD,MAAM,KACrEE,SAAU,oFAA0EF,MAAM,KAC1FG,cAAe,kBAAkBH,MAAM,KACvCI,YAAa,kBAAkBJ,MAAM,KACrC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,cACHC,GAAI,uBACJC,IAAK,8BACLC,KAAM,qCAERC,SAAU,CACRC,QAAS,4BACTC,QAAS,yBACTC,SAAU,qBACVC,QAAS,sBACTC,SAAU,+CACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,cACRC,KAAM,WACNC,EAAG+4Q,EACH94Q,GAAIod,EACJnd,EAAG44Q,EACH34Q,GAAIkd,EACJjd,EAAG04Q,EACHz4Q,GAAIgd,EACJ/c,EAAGw4Q,EACHv4Q,GAAI8c,EACJ7c,EAAGs4Q,EACHr4Q,GAAI4c,EACJ3c,EAAGo4Q,EACHn4Q,GAAI0c,GAENzc,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAxFuFC,CAAQ,EAAQ,U,sBCCzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,qFAAqFC,MAAM,KACnGC,YAAa,6DAA6DD,MAAM,KAChF6W,kBAAkB,EAClB3W,SAAU,wDAAqDF,MAAM,KACrEG,cAAe,kCAA+BH,MAAM,KACpDI,YAAa,0BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,eACJC,IAAK,0BACLC,KAAM,iCAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,uBACTC,SAAU,mBACVC,QAAS,uBACTC,SAAU,sCACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,WACNC,EAAG,eACHC,GAAI,YACJC,EAAG,aACHC,GAAI,YACJC,EAAG,WACHC,GAAI,WACJC,EAAG,UACHC,GAAI,WACJmY,EAAG,UACHC,GAAI,WACJnY,EAAG,eACHC,GAAI,gBACJC,EAAG,YACHC,GAAI,YAENC,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KAnDuFC,CAAQ,EAAQ,U,qBCPlH,IAAImX,EAAY,EAAQ,QACpB03I,EAAyB,EAAQ,QAGjCriH,EAAe,SAAUqrO,GAC3B,OAAO,SAAUj8P,EAAO8+G,GACtB,IAGIhnF,EAAOC,EAHPj8B,EAAI3O,OAAO8lJ,EAAuBjzI,IAClCkJ,EAAW3N,EAAUujH,GACrB9mE,EAAOl8C,EAAEpN,OAEb,OAAIwa,EAAW,GAAKA,GAAY8uC,EAAaikN,EAAoB,QAAKvuQ,GACtEoqC,EAAQh8B,EAAE8+D,WAAW1xD,IACN,OAAU4uB,EAAQ,OAAU5uB,EAAW,IAAM8uC,IACtDjgB,EAASj8B,EAAE8+D,WAAW1xD,EAAW,IAAM,OAAU6uB,EAAS,MAC1DkkO,EAAoBngQ,EAAErD,OAAOyQ,GAAY4uB,EACzCmkO,EAAoBngQ,EAAExN,MAAM4a,EAAUA,EAAW,GAA+B6uB,EAAS,OAAlCD,EAAQ,OAAU,IAA0B,QAI7GlpC,EAAOC,QAAU,CAGf+hQ,OAAQhgO,GAAa,GAGrBn4B,OAAQm4B,GAAa,K,kCCxBvB,IAAIjiC,EAAS,EAAQ,QACjBqN,EAAc,EAAQ,QACtBkgQ,EAAsB,EAAQ,QAC9Bp2H,EAA8B,EAAQ,QACtC9wG,EAAc,EAAQ,QACtB/4B,EAAQ,EAAQ,QAChBm5B,EAAa,EAAQ,QACrB75B,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QACnB2iL,EAAU,EAAQ,QAClBg+E,EAAU,EAAQ,QAClBhgO,EAAiB,EAAQ,QACzBp8B,EAAiB,EAAQ,QACzB6uD,EAAsB,EAAQ,QAA8C1xD,EAC5E/V,EAAiB,EAAQ,QAAuC+V,EAChEk/P,EAAY,EAAQ,QACpBnnO,EAAiB,EAAQ,QACzBE,EAAsB,EAAQ,QAE9Bm3E,EAAmBn3E,EAAoB/tC,IACvC2uC,EAAmBZ,EAAoBhpC,IACvCkwQ,EAAe,cACfC,EAAY,WAGZC,EAAc,cACdC,EAAoB7tQ,EAAmB,YACvC8tQ,EAAeD,EACfE,EAAY/tQ,EAAgB,SAC5BguQ,EAAqBD,GAAaA,EAAmB,UACrDvU,EAAkBjhQ,OAAOY,UACzB4T,EAAa/M,EAAO+M,WAEpBkhQ,EAAcT,EAAQjD,KACtB2D,EAAgBV,EAAQ1C,OAExBqD,EAAW,SAAU/4Q,GACvB,MAAO,CAAU,IAATA,IAGNg5Q,EAAY,SAAUh5Q,GACxB,MAAO,CAAU,IAATA,EAAeA,GAAU,EAAI,MAGnCi5Q,EAAY,SAAUj5Q,GACxB,MAAO,CAAU,IAATA,EAAeA,GAAU,EAAI,IAAMA,GAAU,GAAK,IAAMA,GAAU,GAAK,MAG7Ek5Q,EAAc,SAAUxoK,GAC1B,OAAOA,EAAO,IAAM,GAAKA,EAAO,IAAM,GAAKA,EAAO,IAAM,EAAIA,EAAO,IAGjEyoK,EAAc,SAAUn5Q,GAC1B,OAAO64Q,EAAY74Q,EAAQ,GAAI,IAG7Bo5Q,EAAc,SAAUp5Q,GAC1B,OAAO64Q,EAAY74Q,EAAQ,GAAI,IAG7Bm7L,EAAY,SAAUrqJ,EAAaxrC,GACrClC,EAAe0tC,EAAqB,UAAGxrC,EAAK,CAAEjC,IAAK,WAAc,OAAOklH,EAAiB5lH,MAAM2C,OAG7FjC,EAAM,SAAUg6I,EAAMq4D,EAAOhrM,EAAO2uQ,GACtC,IAAIC,EAAWl/E,EAAQ1vL,GACnB8uL,EAAQjxE,EAAiB80B,GAC7B,GAAIi8H,EAAW5jE,EAAQlc,EAAM/oF,WAAY,MAAM94F,EAAW6gQ,GAC1D,IAAIjmO,EAAQg2E,EAAiBixE,EAAM9oF,QAAQn+D,MACvCpN,EAAQm0O,EAAW9/E,EAAMh1C,WACzB2wH,EAAO5iO,EAAMhoC,MAAM46B,EAAOA,EAAQuwK,GACtC,OAAO2jE,EAAiBlE,EAAOA,EAAK1kO,WAGlCroC,EAAM,SAAUi1I,EAAMq4D,EAAOhrM,EAAOq4L,EAAYjwL,EAAOumQ,GACzD,IAAIC,EAAWl/E,EAAQ1vL,GACnB8uL,EAAQjxE,EAAiB80B,GAC7B,GAAIi8H,EAAW5jE,EAAQlc,EAAM/oF,WAAY,MAAM94F,EAAW6gQ,GAI1D,IAHA,IAAIjmO,EAAQg2E,EAAiBixE,EAAM9oF,QAAQn+D,MACvCpN,EAAQm0O,EAAW9/E,EAAMh1C,WACzB2wH,EAAOpyE,GAAYjwL,GACd/I,EAAI,EAAGA,EAAI2rM,EAAO3rM,IAAKwoC,EAAMpN,EAAQp7B,GAAKorQ,EAAKkE,EAAiBtvQ,EAAI2rM,EAAQ3rM,EAAI,IAG3F,GAAKouQ,EA0FE,CACL,IAAKjgQ,GAAM,WACTugQ,EAAkB,QACbvgQ,GAAM,WACX,IAAIugQ,GAAmB,OACnBvgQ,GAAM,WAIV,OAHA,IAAIugQ,EACJ,IAAIA,EAAkB,KACtB,IAAIA,EAAkB5sJ,KACf4sJ,EAAkBj4P,MAAQ83P,KAC/B,CAMF,IADA,IAC+DhzQ,EAD3Di0Q,GAJJb,EAAe,SAAqB/tQ,GAElC,OADA0mC,EAAW1uC,KAAM+1Q,GACV,IAAID,EAAkBr+E,EAAQzvL,MAEU,UAAI8tQ,EAA2B,UACvEp/P,EAAOwxD,EAAoB4tM,GAAoBl/P,EAAI,EAAQF,EAAK1O,OAAS4O,IACzEjU,EAAM+T,EAAKE,QAASm/P,GACzB32H,EAA4B22H,EAAcpzQ,EAAKmzQ,EAAkBnzQ,IAGrEi0Q,EAAqBj9P,YAAco8P,EAIjC18P,GAAkBo8B,EAAewgO,KAAwBxU,GAC3DpoP,EAAe48P,EAAoBxU,GAIrC,IAAIoV,EAAW,IAAIb,EAAU,IAAID,EAAa,IAC1Ce,EAAgBb,EAAmBc,QACvCF,EAASE,QAAQ,EAAG,YACpBF,EAASE,QAAQ,EAAG,aAChBF,EAASG,QAAQ,IAAOH,EAASG,QAAQ,IAAI1oO,EAAY2nO,EAAoB,CAC/Ec,QAAS,SAAiBl1H,EAAY1xI,GACpC2mQ,EAAc/2Q,KAAKC,KAAM6hJ,EAAY1xI,GAAS,IAAM,KAEtD8mQ,SAAU,SAAkBp1H,EAAY1xI,GACtC2mQ,EAAc/2Q,KAAKC,KAAM6hJ,EAAY1xI,GAAS,IAAM,MAErD,CAAEq0I,QAAQ,SAlIbuxH,EAAe,SAAqB/tQ,GAClC0mC,EAAW1uC,KAAM+1Q,EAAcJ,GAC/B,IAAI7nK,EAAa2pF,EAAQzvL,GACzBqnC,EAAiBrvC,KAAM,CACrB4vC,MAAO8lO,EAAU31Q,KAAK,IAAI0e,MAAMqvF,GAAa,GAC7CA,WAAYA,IAETx4F,IAAatV,KAAK8tG,WAAaA,IAGtCkoK,EAAY,SAAkBjoK,EAAQ8zC,EAAY/zC,GAChDp/D,EAAW1uC,KAAMg2Q,EAAWJ,GAC5BlnO,EAAWq/D,EAAQgoK,EAAcH,GACjC,IAAIsB,EAAetxJ,EAAiB7X,GAAQD,WACxC/5E,EAASlf,EAAUgtI,GACvB,GAAI9tH,EAAS,GAAKA,EAASmjP,EAAc,MAAMliQ,EAAW,gBAE1D,GAAI+e,GADJ+5E,OAA4B9mG,IAAf8mG,EAA2BopK,EAAenjP,EAASjf,EAASg5F,IAC/CopK,EAAc,MAAMliQ,EA9E/B,gBA+Efq6B,EAAiBrvC,KAAM,CACrB+tG,OAAQA,EACRD,WAAYA,EACZ+zC,WAAY9tH,IAETze,IACHtV,KAAK+tG,OAASA,EACd/tG,KAAK8tG,WAAaA,EAClB9tG,KAAK6hJ,WAAa9tH,IAIlBze,IACFkjL,EAAUu9E,EAAc,cACxBv9E,EAAUw9E,EAAW,UACrBx9E,EAAUw9E,EAAW,cACrBx9E,EAAUw9E,EAAW,eAGvB1nO,EAAY0nO,EAAmB,UAAG,CAChCgB,QAAS,SAAiBn1H,GACxB,OAAOnhJ,EAAIV,KAAM,EAAG6hJ,GAAY,IAAM,IAAM,IAE9Cs1H,SAAU,SAAkBt1H,GAC1B,OAAOnhJ,EAAIV,KAAM,EAAG6hJ,GAAY,IAElCu1H,SAAU,SAAkBv1H,GAC1B,IAAIjyG,EAAQlvC,EAAIV,KAAM,EAAG6hJ,EAAY/9I,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,GAC3E,OAAQ4oC,EAAM,IAAM,EAAIA,EAAM,KAAO,IAAM,IAE7CynO,UAAW,SAAmBx1H,GAC5B,IAAIjyG,EAAQlvC,EAAIV,KAAM,EAAG6hJ,EAAY/9I,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,GAC3E,OAAO4oC,EAAM,IAAM,EAAIA,EAAM,IAE/B0nO,SAAU,SAAkBz1H,GAC1B,OAAO00H,EAAY71Q,EAAIV,KAAM,EAAG6hJ,EAAY/9I,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,KAEpFuwQ,UAAW,SAAmB11H,GAC5B,OAAO00H,EAAY71Q,EAAIV,KAAM,EAAG6hJ,EAAY/9I,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,MAAgB,GAEpGwwQ,WAAY,SAAoB31H,GAC9B,OAAOs0H,EAAcz1Q,EAAIV,KAAM,EAAG6hJ,EAAY/9I,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,GAAY,KAElGywQ,WAAY,SAAoB51H,GAC9B,OAAOs0H,EAAcz1Q,EAAIV,KAAM,EAAG6hJ,EAAY/9I,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,GAAY,KAElG+vQ,QAAS,SAAiBl1H,EAAY1xI,GACpC1K,EAAIzF,KAAM,EAAG6hJ,EAAYu0H,EAAUjmQ,IAErC8mQ,SAAU,SAAkBp1H,EAAY1xI,GACtC1K,EAAIzF,KAAM,EAAG6hJ,EAAYu0H,EAAUjmQ,IAErCunQ,SAAU,SAAkB71H,EAAY1xI,GACtC1K,EAAIzF,KAAM,EAAG6hJ,EAAYw0H,EAAWlmQ,EAAOrM,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,IAEnF2wQ,UAAW,SAAmB91H,EAAY1xI,GACxC1K,EAAIzF,KAAM,EAAG6hJ,EAAYw0H,EAAWlmQ,EAAOrM,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,IAEnF4wQ,SAAU,SAAkB/1H,EAAY1xI,GACtC1K,EAAIzF,KAAM,EAAG6hJ,EAAYy0H,EAAWnmQ,EAAOrM,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,IAEnF6wQ,UAAW,SAAmBh2H,EAAY1xI,GACxC1K,EAAIzF,KAAM,EAAG6hJ,EAAYy0H,EAAWnmQ,EAAOrM,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,IAEnF8wQ,WAAY,SAAoBj2H,EAAY1xI,GAC1C1K,EAAIzF,KAAM,EAAG6hJ,EAAY20H,EAAarmQ,EAAOrM,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,IAErF+wQ,WAAY,SAAoBl2H,EAAY1xI,GAC1C1K,EAAIzF,KAAM,EAAG6hJ,EAAY40H,EAAatmQ,EAAOrM,UAAUkE,OAAS,EAAIlE,UAAU,QAAKkD,MA+CzFunC,EAAewnO,EAAcJ,GAC7BpnO,EAAeynO,EAAWJ,GAE1B1tQ,EAAOC,QAAU,CACfwlG,YAAaooK,EACbh+E,SAAUi+E,I,qBChOZ,IAAIgC,EAAS,EAAQ,QACjBlyE,EAAM,EAAQ,QAEdpvL,EAAOshQ,EAAO,QAElB9vQ,EAAOC,QAAU,SAAUxF,GACzB,OAAO+T,EAAK/T,KAAS+T,EAAK/T,GAAOmjM,EAAInjM,M,kCCLvC,IA4BIuvL,EA5BAsjF,EAAsB,EAAQ,QAC9BlgQ,EAAc,EAAQ,QACtBrN,EAAS,EAAQ,QACjBmR,EAAW,EAAQ,QACnBkB,EAAM,EAAQ,QACds0B,EAAU,EAAQ,QAClBwwG,EAA8B,EAAQ,QACtC/wG,EAAW,EAAQ,QACnB5tC,EAAiB,EAAQ,QAAuC+V,EAChEi/B,EAAiB,EAAQ,QACzBp8B,EAAiB,EAAQ,QACzB01B,EAAkB,EAAQ,QAC1B+2J,EAAM,EAAQ,QAEd4uE,EAAYzsQ,EAAOysQ,UACnBuD,EAAqBvD,GAAaA,EAAUtzQ,UAC5C82Q,EAAoBjwQ,EAAOiwQ,kBAC3BC,EAA6BD,GAAqBA,EAAkB92Q,UACpE82L,EAAaw8E,GAAaj/N,EAAei/N,GACzCv8E,EAAsB8/E,GAAsBxiO,EAAewiO,GAC3DxW,EAAkBjhQ,OAAOY,UACzBg3Q,EAAgB3W,EAAgB2W,cAEhC/4H,EAAgBtwG,EAAgB,eAChCkpJ,EAAkB6N,EAAI,mBAEtB9N,EAA4Bw9E,KAAyBn8P,GAA4C,UAA1Bu1B,EAAQ3mC,EAAOowQ,OACtFC,GAA0B,EAG1BC,EAA6B,CAC/B7D,UAAW,EACXvnK,WAAY,EACZ+qK,kBAAmB,EACnBM,WAAY,EACZC,YAAa,EACbC,WAAY,EACZC,YAAa,EACbC,aAAc,EACdC,aAAc,GAQZzgF,EAAe,SAAUrjL,GAC3B,OAAOqE,EAASrE,IAAOuF,EAAIi+P,EAA4B3pO,EAAQ75B,KA0DjE,IAAKm9K,KAAQqmF,EACNtwQ,EAAOiqL,KAAO8F,GAA4B,GAIjD,KAAKA,GAAkD,mBAAdE,GAA4BA,IAAe7hJ,SAASj1C,aAE3F82L,EAAa,WACX,MAAMjtK,UAAU,yBAEd+sK,GAA2B,IAAK9F,KAAQqmF,EACtCtwQ,EAAOiqL,IAAO74K,EAAepR,EAAOiqL,GAAOgG,GAInD,KAAKF,IAA8BG,GAAuBA,IAAwBspE,KAChFtpE,EAAsBD,EAAW92L,UAC7B42L,GAA2B,IAAK9F,KAAQqmF,EACtCtwQ,EAAOiqL,IAAO74K,EAAepR,EAAOiqL,GAAM9wL,UAAW+2L,GAS7D,GAJIH,GAA6BviJ,EAAe0iO,KAAgChgF,GAC9E9+K,EAAe8+P,EAA4BhgF,GAGzC7iL,IAAgBgF,EAAI69K,EAAqB94C,GAK3C,IAAK6yC,KAJLomF,GAA0B,EAC1B73Q,EAAe03L,EAAqB94C,EAAe,CAAE3+I,IAAK,WACxD,OAAO0Y,EAASpZ,MAAQA,KAAKi4L,QAAmBjxL,KAErCuxQ,EAAgCtwQ,EAAOiqL,IAClD9yC,EAA4Bn3I,EAAOiqL,GAAO+F,EAAiB/F,GAI/DhqL,EAAOC,QAAU,CACf6vL,0BAA2BA,EAC3BC,gBAAiBqgF,GAA2BrgF,EAC5C6gF,YA/FgB,SAAU/jQ,GAC1B,GAAIqjL,EAAarjL,GAAK,OAAOA,EAC7B,MAAMkW,UAAU,gCA8FhB02H,uBA3F2B,SAAU99E,GACrC,GAAIxqD,GACF,GAAI++P,EAAcr4Q,KAAKm4L,EAAYr0H,GAAI,OAAOA,OACzC,IAAK,IAAIk1M,KAASR,EAA4B,GAAIj+P,EAAIi+P,EAA4BrmF,GAAO,CAC9F,IAAIgH,EAAwBjxL,EAAO8wQ,GACnC,GAAI7/E,IAA0Br1H,IAAMq1H,GAAyBk/E,EAAcr4Q,KAAKm5L,EAAuBr1H,IACrG,OAAOA,EAET,MAAM54C,UAAU,4CAoFlB+tP,uBAjF2B,SAAUn0H,EAAKrzF,EAAU/8C,GACpD,GAAKa,EAAL,CACA,GAAIb,EAAQ,IAAK,IAAIskQ,KAASR,EAA4B,CACxD,IAAIr/E,EAAwBjxL,EAAO8wQ,GAC/B7/E,GAAyB5+K,EAAI4+K,EAAsB93L,UAAWyjJ,WACzDq0C,EAAsB93L,UAAUyjJ,GAGtCszC,EAAoBtzC,KAAQpwI,GAC/B45B,EAAS8pJ,EAAqBtzC,EAAKpwI,EAAS+8C,EACxCwmI,GAA6BigF,EAAmBpzH,IAAQrzF,KAwE9D16C,6BApEiC,SAAU+tI,EAAKrzF,EAAU/8C,GAC1D,IAAIskQ,EAAO7/E,EACX,GAAK5jL,EAAL,CACA,GAAI+D,EAAgB,CAClB,GAAI5E,EAAQ,IAAKskQ,KAASR,GACxBr/E,EAAwBjxL,EAAO8wQ,KACFz+P,EAAI4+K,EAAuBr0C,WAC/Cq0C,EAAsBr0C,GAGjC,GAAKqzC,EAAWrzC,KAAQpwI,EAKjB,OAHL,IACE,OAAO45B,EAAS6pJ,EAAYrzC,EAAKpwI,EAAS+8C,EAAWwmI,GAA6B08E,EAAU7vH,IAAQrzF,GACpG,MAAOn0C,KAGb,IAAK07P,KAASR,IACZr/E,EAAwBjxL,EAAO8wQ,KACA7/E,EAAsBr0C,KAAQpwI,GAC3D45B,EAAS6qJ,EAAuBr0C,EAAKrzF,KAiDzC47F,OA5GW,SAAgBr4I,GAC3B,IAAI0jL,EAAQ7pJ,EAAQ75B,GACpB,MAAiB,aAAV0jL,GAAwBn+K,EAAIi+P,EAA4B9/E,IA2G/DL,aAAcA,EACdF,WAAYA,EACZC,oBAAqBA,I,qBC1JvB,IAAI/+K,EAAW,EAAQ,QAMvBlR,EAAOC,QAAU,SAAUL,EAAOmxQ,GAChC,IAAK7/P,EAAStR,GAAQ,OAAOA,EAC7B,IAAIqiB,EAAIC,EACR,GAAI6uP,GAAoD,mBAAxB9uP,EAAKriB,EAAMgR,YAA4BM,EAASgR,EAAMD,EAAGpqB,KAAK+H,IAAS,OAAOsiB,EAC9G,GAAmC,mBAAvBD,EAAKriB,EAAMq/G,WAA2B/tG,EAASgR,EAAMD,EAAGpqB,KAAK+H,IAAS,OAAOsiB,EACzF,IAAK6uP,GAAoD,mBAAxB9uP,EAAKriB,EAAMgR,YAA4BM,EAASgR,EAAMD,EAAGpqB,KAAK+H,IAAS,OAAOsiB,EAC/G,MAAMa,UAAU,6C,sBCJT,SAAUnwB,GACjB,aAEA,IAAIwwK,EAAa,CACfC,MAAO,CAEL/uK,GAAI,CAAC,UAAW,UAAW,WAC3BC,EAAG,CAAC,cAAe,gBACnBC,GAAI,CAAC,QAAS,SAAU,UACxBC,EAAG,CAAC,YAAa,eACjBC,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,MAAO,OAAQ,QACpBE,GAAI,CAAC,QAAS,SAAU,UACxBE,GAAI,CAAC,SAAU,SAAU,WAE3BsuK,uBAAwB,SAAUnuK,EAAQouK,GACxC,OAAkB,IAAXpuK,EAAeouK,EAAQ,GAAKpuK,GAAU,GAAKA,GAAU,EAAIouK,EAAQ,GAAKA,EAAQ,IAEvFj6J,UAAW,SAAUnU,EAAQoU,EAAe9O,GAC1C,IAAI8oK,EAAUH,EAAWC,MAAM5oK,GAE/B,OAAmB,IAAfA,EAAIqF,OACCyJ,EAAgBg6J,EAAQ,GAAKA,EAAQ,GAErCpuK,EAAS,IAAMiuK,EAAWE,uBAAuBnuK,EAAQouK,KAI7D3wK,EAAOC,aAAa,KAAM,CACjCC,OAAQ,mFAAmFC,MAAM,KACjGC,YAAa,2DAA2DD,MAAM,KAC9E6W,kBAAkB,EAClB3W,SAAU,6DAAwDF,MAAM,KACxEG,cAAe,0CAAqCH,MAAM,KAC1DI,YAAa,4BAAuBJ,MAAM,KAC1C+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,OACJC,IAAK,UACLC,EAAG,cACHC,GAAI,gBACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,eACTC,QAAS,eACTC,SAAU,WACR,OAAQgE,KAAK0J,OACX,KAAK,EACH,MAAO,uBAET,KAAK,EACH,MAAO,qBAET,KAAK,EACH,MAAO,sBAET,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACH,MAAO,oBAGbzN,QAAS,mBACTC,SAAU,WAER,MADmB,CAAC,iCAA6B,qCAAiC,iCAA6B,+BAA2B,wCAA+B,gCAA4B,iCACjL8D,KAAK0J,QAE3BvN,SAAU,KAEZC,aAAc,CACZC,OAAQ,QACRC,KAAM,SACNC,EAAG,mBACHC,GAAI8uK,EAAW95J,UACf/U,EAAG6uK,EAAW95J,UACd9U,GAAI4uK,EAAW95J,UACf7U,EAAG2uK,EAAW95J,UACd5U,GAAI0uK,EAAW95J,UACf3U,EAAG,MACHC,GAAIwuK,EAAW95J,UACfzU,EAAG,QACHC,GAAIsuK,EAAW95J,UACfvU,EAAG,SACHC,GAAIouK,EAAW95J,WAEjBrU,uBAAwB,YACxBC,QAAS,MACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA9FuFC,CAAQ,EAAQ,U,sBCAzG,SAAU5C,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gdAAyFC,MAAM,KACvGC,YAAa,8TAAyED,MAAM,KAC5F6W,kBAAkB,EAClB3W,SAAU,mYAAwEF,MAAM,KACxFG,cAAe,qNAA2CH,MAAM,KAChEI,YAAa,mGAAwBJ,MAAM,KAC3CK,eAAgB,CACdC,GAAI,uBACJC,IAAK,0BACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oCACLC,KAAM,2CAERC,SAAU,CACRC,QAAS,sCACTC,QAAS,gCACTC,SAAU,WACVC,QAAS,4CACTC,SAAU,kDACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,gDACRC,KAAM,oCACNC,EAAG,4EACHC,GAAI,sDACJC,EAAG,sEACHC,GAAI,sDACJC,EAAG,sEACHC,GAAI,sDACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,8CACHC,GAAI,8BACJC,EAAG,8CACHC,GAAI,+BAEN+L,cAAe,mPACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,yCAAbD,GAAyBC,GAAQ,GAAkB,wEAAbD,GAA4C,iEAAbA,EAChEC,EAAO,GAEPA,GAGXD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,uCACEA,EAAO,GACT,uCACEA,EAAO,GACT,sEACEA,EAAO,GACT,+DAEA,0CAjEmF1L,CAAQ,EAAQ,U,wBCCzG,SAAU5C,GACjB,aAEA,IAAIsN,EAAY,CACdC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,SACHC,EAAG,UAEDC,EAAY,CACd,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,IACL,SAAK,KAEEjO,EAAOC,aAAa,KAAM,CACjCC,OAAQ,8YAA8EC,MAAM,KAC5FC,YAAa,2PAA6DD,MAAM,KAChF6W,kBAAkB,EAClB3W,SAAU,6RAAuDF,MAAM,KACvEG,cAAe,+JAAkCH,MAAM,KACvDI,YAAa,iFAAqBJ,MAAM,KACxCK,eAAgB,CACdC,GAAI,4BACJC,IAAK,+BACLC,EAAG,aACHC,GAAI,cACJC,IAAK,yCACLC,KAAM,gDAERC,SAAU,CACRC,QAAS,oBACTC,QAAS,oBACTC,SAAU,WACVC,QAAS,oBACTC,SAAU,4CACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,8BACNC,EAAG,2DACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,kCACHC,GAAI,wBACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,+BAENqM,SAAU,SAAUC,GAClB,OAAOA,EAAO1L,QAAQ,mEAAiB,SAAUqJ,GAC/C,OAAO4B,EAAU5B,OAGrBsC,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,OAAO,SAAUqJ,GACrC,OAAOiB,EAAUjB,OAKrB8B,cAAe,gGACfy+B,aAAc,SAAUt+B,EAAMD,GAK5B,OAJa,KAATC,IACFA,EAAO,GAGQ,uBAAbD,EACKC,EAAO,EAAIA,EAAOA,EAAO,GACV,6BAAbD,EACFC,EACe,mCAAbD,EACFC,GAAQ,GAAKA,EAAOA,EAAO,GACZ,uBAAbD,EACFC,EAAO,QADT,GAITD,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,EACF,qBACEA,EAAO,GACT,2BACEA,EAAO,GACT,iCACEA,EAAO,GACT,qBAEA,sBAGX7L,KAAM,CACJC,IAAK,EAELC,IAAK,KA/GuFC,CAAQ,EAAQ,U,qBCEjDwK,EAAOC,QAC/D,WACP,aAEA,SAASuiC,EAAQ2mO,GACf,MAAoD,mBAA7C7wQ,OAAOY,UAAU0X,SAAS/Y,KAAKsxQ,GAGxC,SAAS5mJ,EAAW4mJ,GAClB,OAAOA,aAAoBh7N,SAG7B,SAAS22G,EAAcqkH,GAErB,MAAoD,oBAA7C7wQ,OAAOY,UAAU0X,SAAS/Y,KAAKsxQ,KAAoC5mJ,EAAW4mJ,IAAaA,aAAoB7wQ,OAIxH,SAAS2mC,EAAOviC,EAAQ4C,GACtB,IAAI7E,EAEJ,IAAKA,KAAO6E,EAEE,cAAR7E,IAIAqqJ,EAAcxlJ,EAAO7E,KAAS+nC,EAAQljC,EAAO7E,KAC3CqqJ,EAAcxlJ,EAAO7E,MAAUqqJ,EAAcpoJ,EAAOjC,MACtDiC,EAAOjC,GAAO,IAGZ+nC,EAAQljC,EAAO7E,MAAU+nC,EAAQ9lC,EAAOjC,MAC1CiC,EAAOjC,GAAO,IAGhBwkC,EAAOviC,EAAOjC,GAAM6E,EAAO7E,UACFqE,IAAhBQ,EAAO7E,KAChBiC,EAAOjC,GAAO6E,EAAO7E,KAK3B,SAASqvE,EAAMknM,EAAMC,GACnB,IAAIv0Q,EAAS,GAGb,OAFAuiC,EAAOviC,EAAQs0Q,GACf/xO,EAAOviC,EAAQu0Q,GACRv0Q,EAGT,IAAIw0Q,EAAe,oCAEfC,EAAkB,yGAClBC,EAAoB7yQ,OAAO,KAAKsL,OAAO,GAE3C,SAASwnQ,EAAazxQ,GACpB,IAAI4B,EAAKN,EAAM6yC,EAASukF,EAActuH,EAASM,EAAOuhB,EAAQpiB,EAAQoV,EAAS/S,EAAMwT,EAGrF,MAAa,mBAFbxT,EAAOxT,OAAOY,UAAU0X,SAAS/Y,KAAK+H,IAG7BA,EAGI,oBAATkM,IAIJioC,EAAUn0C,EAAMX,MAAMkyQ,KAGpB7xP,EAAOpP,SAAS6jC,EAAQ,GAAI,IAC5BzpC,EAAQ4F,SAAS6jC,EAAQ,GAAI,IAAM,EACnCvyC,EAAM0O,SAAS6jC,EAAQ,GAAI,IAC3B7yC,EAAOgP,SAAS6jC,EAAQ,GAAI,IAC5B/pC,EAAU+pC,EAAQ,GAAK7jC,SAAS6jC,EAAQ,GAAI,IAAM,EAClDl1B,EAAUk1B,EAAQ,IAAM7jC,SAAS6jC,EAAQ,IAAK,IAAM,EACpDukF,EAAevkF,EAAQ,IAA6D,IAAvDx1B,WAAW6yP,EAAoBr9N,EAAQ,IAAIr0C,MAAM,IAAa,EAC3F+J,EAASuG,KAAKw7G,IAAIlsG,EAAMhV,EAAO9I,EAAKN,EAAM8I,EAAS6U,EAASy5G,GAExDvkF,EAAQ,KAAOA,EAAQ,MACzBloB,EAAuB,GAAdkoB,EAAQ,IAEbA,EAAQ,MACVloB,GAAU3b,SAAS6jC,EAAQ,IAAK,KAIlCtqC,GAAmB,IADnBoiB,GAA0B,MAAhBkoB,EAAQ,KAAe,EAAI,GACb,KAGnB,IAAI/jC,KAAKvG,SA3BlB,EAgCF,SAAS6nQ,EAAeC,GACtB,IAAIryQ,EAAGwP,EAAGxG,EAEV,IAAKhJ,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAG7B,IAFAgJ,EAAOqpQ,EAAOryQ,GAAGgJ,KAEZwG,EAAI,EAAGA,EAAIxG,EAAKpI,OAAQ4O,IAC3B,GAAIxG,EAAKwG,GAAG,GAAK,EACf,OAAO,EAKb,OAAO,EAGT,SAAS8iQ,EAAMnoQ,GACb,MAAO,GAAKA,EAGd,SAASooQ,EAAQpoQ,GACf,OAAOkV,WAAWlV,GAGpB,SAAS0G,EAAO1G,GACd,IAAI0qC,EAASz0B,EAAMhV,EAAO9I,EAE1B,GAAiB,kBAAN6H,EACT,GAAiB,kBAANA,EACTA,EAAI,IAAI2G,KAAS,IAAJ3G,OACR,CAGL,GAAI0qC,GAFJ1qC,EAAImoQ,EAAMnoQ,IAEMpK,MAAMiyQ,GAIpB,OAHA5xP,EAAOpP,SAAS6jC,EAAQ,GAAI,IAC5BzpC,EAAQ4F,SAAS6jC,EAAQ,GAAI,IAAM,EACnCvyC,EAAM0O,SAAS6jC,EAAQ,GAAI,IACpB,IAAI/jC,KAAKsP,EAAMhV,EAAO9I,GAK7B,IAAIzC,EAAMsK,EAAEzT,QAAQ,IAAK,KAAKA,QAAQ,IAAK,IAAIA,QAAQ,MAAO,KAC9DyT,EAAIgoQ,EAAatyQ,IAAQ,IAAIiR,KAAK3G,GAKxC,OAAOA,EAGT,SAASqoQ,EAAMroQ,GACb,IAAKm5B,EAAQn5B,GAAI,CACf,IACInK,EADA8hB,EAAM,GAGV,IAAK9hB,KAAKmK,EACJA,EAAEgJ,eAAenT,IACnB8hB,EAAIlb,KAAK,CAAC5G,EAAGmK,EAAEnK,KAInBmK,EAAI2X,EAGN,OAAO3X,EAGT,SAASsoQ,EAAcrlH,EAAgBslH,EAAYC,EAAUhvC,EAAQE,EAAQ+uC,EAAYC,EAAWC,GAClG,OAAO,SAAUxhI,EAAOx/H,EAAMihQ,GAC5B,IAAIV,EAAS/gI,EAAMtoI,KACf+G,EAAU66D,EAAM,GAAIwiF,GAyCxB,OAxCAr9I,EAAU66D,EAAM76D,EAASgjQ,GAAgB,KAErCzhI,EAAMohI,YAAc,WAAY5gQ,IAClC4gQ,EAAW3iQ,EAAS+B,EAAKkjM,OAAQ1jE,EAAMohI,YAGrC5gQ,EAAKod,OACPyjP,EAAS5iQ,EAAS+B,EAAKod,OAIrB,QAASpd,EACX6xN,EAAO5zN,EAAS+B,EAAK0R,KACX4uP,EAAeC,IACzB1uC,EAAO5zN,EAAS,GAId+B,EAAK2R,KACPogN,EAAO9zN,EAAS+B,EAAK2R,KAGnB,YAAa3R,GACf8gQ,EAAW7iQ,EAAS+B,EAAKmhM,SAGvBnhM,EAAKkhQ,SACPjjQ,EAAQijQ,OAASlhQ,EAAKkhQ,QAGpBlhQ,EAAKmhQ,QACPJ,EAAU9iQ,EAAS+B,EAAKmhQ,QAGtBnhQ,EAAKohQ,QACPJ,EAAU/iQ,EAAS+B,EAAKohQ,QAI1BnjQ,EAAU66D,EAAM76D,EAAS+B,EAAKqhQ,SAAW,KAK7C,SAASC,EAAW77P,EAAGrhB,GACrB,OAAOqhB,EAAE,GAAGgC,UAAYrjB,EAAE,GAAGqjB,UAG/B,SAAS85P,EAAmB97P,EAAGrhB,GAC7B,OAAOqhB,EAAE,GAAKrhB,EAAE,GAGlB,SAASo9Q,EAAa/7P,EAAGrhB,GACvB,OAAOqhB,EAAIrhB,EAGb,SAASq9Q,EAAS99Q,GAChB,OAA+B,IAAxBA,EAAE+9Q,mBAA8C,IAAnB/9Q,EAAEurB,aAGxC,SAASyyP,EAAOh+Q,GACd,OAAO89Q,EAAS99Q,IAAyB,IAAnBA,EAAEwrB,aAG1B,SAASyyP,EAAMj+Q,GACb,OAAOg+Q,EAAOh+Q,IAAuB,IAAjBA,EAAEgqB,WAGxB,SAASk0P,EAAOl+Q,EAAGm+Q,GACjB,OAAOF,EAAMj+Q,IAAMA,EAAEkkB,WAAai6P,EAGpC,SAASC,EAAQp+Q,GACf,OAAOi+Q,EAAMj+Q,IAAsB,IAAhBA,EAAEikB,UAGvB,SAASo6P,EAAOr+Q,GACd,OAAOo+Q,EAAQp+Q,IAAuB,IAAjBA,EAAEsrB,WAGzB,SAAS++F,EAAOpsG,GACd,OAAQ3C,MAAMF,EAAO6C,KAAS4+P,EAAM5+P,GAAK9S,QAAU,EAGrD,SAASi/G,EAASnsG,GAChB,MAAsB,kBAARA,EAGhB,IAAIqgQ,EAAe,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,MAE3D,SAASC,EAAYC,EAAKlrQ,EAAOgH,EAASymC,GACxCy9N,EAAMA,GAAO,GAETlkQ,EAAQ4D,SACN5K,EAAQ,IACVA,IAAiB,EACjBkrQ,GAAO,KAGTA,GAAOlkQ,EAAQ4D,QAGjB,IAAIirH,EAAS7uH,EAAQ6uH,QAAU,GAC3Bl7F,EAAY3zB,EAAQ2zB,UACpB5pB,EAAQ/J,EAAQ+J,MAEpB,GAAI/J,EAAQmkQ,UAAW,CACrB,IAAIC,EACAC,EAAY59N,EAAOzmC,EAAQmkQ,UAAYnrQ,EAEvCqrQ,GAAa,oBACfrrQ,GAAS,mBACTorQ,EAAY,GACHC,GAAa,iBACtBrrQ,GAAS,gBACTorQ,EAAY,GACHC,GAAa,eACtBrrQ,GAAS,cACTorQ,EAAY,GACHC,GAAa,YACtBrrQ,GAAS,WACTorQ,EAAY,GACHC,GAAa,SACtBrrQ,GAAS,QACTorQ,EAAY,GACHC,GAAa,MACtBrrQ,GAAS,KACTorQ,EAAY,GAEZA,EAAY,OAIIv0Q,IAAd8jC,QAAqC9jC,IAAVka,IACzB/Q,GAAS,QACPorQ,EAAYJ,EAAanzQ,OAAS,IACpCmI,EAAQ,EACRorQ,GAAa,GAIjBzwO,EAAY36B,GAAS,IAAO,EAAI,GAGlC61H,EAAS,IAAMm1I,EAAaI,GAG9B,QAAkBv0Q,IAAd8jC,QAAqC9jC,IAAVka,EAC7B,MAAM7e,MAAM,2CAGd,IAAKu7C,SACe52C,IAAd8jC,IACF36B,EAAQA,EAAMsrQ,YAAY3wO,GAErB3zB,EAAQukQ,QACXvrQ,EAAQsW,WAAWtW,UAITnJ,IAAVka,GACF,GAAIA,EAAQ,EAAG,CACb,IAAIrP,EAAM6G,KAAK0zB,IAAI,IAAK,EAAIlrB,GAC5B/Q,EAAQiI,UAAU,EAAMjI,EAAQ0B,GAAK4X,QAAQ,IAAM5X,OAEnD1B,EAAQA,EAAMsZ,QAAQvI,GAEjB/J,EAAQukQ,QACXvrQ,EAAQsW,WAAWtW,IAM3B,GAAIgH,EAAQwkQ,WAAaxkQ,EAAQuvN,QAAS,CAExC,IAAIhlG,GADJvxH,EAAQupQ,EAAMvpQ,IACIlV,MAAM,KACxBkV,EAAQuxH,EAAM,GAEVvqH,EAAQwkQ,YACVxrQ,EAAQA,EAAMrS,QAAQ,wBAAyBqZ,EAAQwkQ,YAGrDj6I,EAAM15H,OAAS,IACjBmI,IAAUgH,EAAQuvN,SAAW,KAAOhlG,EAAM,IAI9C,OAAO25I,EAAMlrQ,EAAQ61H,EAGvB,SAAS41I,EAAaljI,EAAO+gI,EAAQj7O,GACnC,OAAIA,KAAUi7O,EACLA,EAAOj7O,GACLA,KAAUk6G,EAAMvhI,QAClBuhI,EAAMvhI,QAAQqnB,GAGhB,KAGT,SAASq9O,EAASzrQ,GAChB,IAAIhJ,EAAGwP,EAAG/Z,EAEV,IAAKuK,EAAI,EAAGA,EAAIgJ,EAAKpI,OAAQZ,IAG3B,IAFAvK,EAAIuT,EAAKhJ,GAAGgJ,KAEPwG,EAAI,EAAGA,EAAI/Z,EAAEmL,OAAQ4O,IACxB,GAAe,GAAX/Z,EAAE+Z,GAAG,GACP,OAAO,EAKb,OAAO,EAGT,IAAIklQ,EAAc,CAChBxyD,qBAAqB,EACrBtlD,WAAW,EACXo3C,SAAU,CACRmR,eAAe,EACflR,UAAW,IAEbe,OAAQ,GACR9lL,MAAO,CACLu1K,SAAU,GACV20B,UAAW,SAGXhsE,EAAiB,CACnBxF,OAAQ,CACNkhD,MAAO,CAAC,CACNgP,MAAO,CACL4nB,cAAe,GAEjBhF,WAAY,CACVj2B,SAAU,GAEV20B,UAAW,UAGfxwB,MAAO,CAAC,CACNiJ,UAAW,CACTwoB,iBAAiB,GAEnBK,WAAY,CACVj2B,SAAU,GAEV20B,UAAW,QAEb38L,KAAM,GACNq7K,MAAO,OAKT68D,EAAgB,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAElOjC,EAAa,SAAU3iQ,EAASilM,EAAQ09D,QAC3B9yQ,IAAXo1M,GACFjlM,EAAQilM,OAAOjvL,UAAYivL,EAEvBA,IAAqB,IAAXA,IACZjlM,EAAQilM,OAAO55L,SAAW45L,IAEnB09D,IACT3iQ,EAAQilM,OAAOjvL,SAAU,IAIzB4sP,EAAW,SAAU5iQ,EAASmf,GAChCnf,EAAQmf,MAAMnJ,SAAU,EACxBhW,EAAQmf,MAAMylB,KAAOzlB,GAGnBy0M,EAAS,SAAU5zN,EAASyT,GAClB,OAARA,IACFzT,EAAQ63I,OAAOkhD,MAAM,GAAGgP,MAAMt0L,IAAM+uP,EAAQ/uP,KAI5CqgN,EAAS,SAAU9zN,EAAS0T,GAC9B1T,EAAQ63I,OAAOkhD,MAAM,GAAGgP,MAAMr0L,IAAM8uP,EAAQ9uP,IAG1CmxP,EAAY,SAAU7kQ,EAASyT,GACrB,OAARA,IACFzT,EAAQ63I,OAAOghD,MAAM,GAAGkP,MAAMt0L,IAAM+uP,EAAQ/uP,KAI5CqxP,EAAY,SAAU9kQ,EAAS0T,GACjC1T,EAAQ63I,OAAOghD,MAAM,GAAGkP,MAAMr0L,IAAM8uP,EAAQ9uP,IAG1CmvP,EAAa,SAAU7iQ,EAASkjM,GAClCljM,EAAQ63I,OAAOghD,MAAM,GAAGqK,UAAYA,EACpCljM,EAAQ63I,OAAOkhD,MAAM,GAAGmK,UAAYA,GAGlC4/D,EAAY,SAAU9iQ,EAASmf,GACjCnf,EAAQ63I,OAAOghD,MAAM,GAAG8xB,WAAW30M,SAAU,EAC7ChW,EAAQ63I,OAAOghD,MAAM,GAAG8xB,WAAWC,YAAczrM,GAG/C4jP,EAAY,SAAU/iQ,EAASmf,GACjCnf,EAAQ63I,OAAOkhD,MAAM,GAAG4xB,WAAW30M,SAAU,EAC7ChW,EAAQ63I,OAAOkhD,MAAM,GAAG4xB,WAAWC,YAAczrM,GAI/C4lP,EAAa,SAAU7uK,EAAK1qB,GAC9B,IAAIhxE,EAAS,4CAA4CpL,KAAK8mG,GAC9D,OAAO17F,EAAS,QAAUyG,SAASzG,EAAO,GAAI,IAAM,KAAOyG,SAASzG,EAAO,GAAI,IAAM,KAAOyG,SAASzG,EAAO,GAAI,IAAM,KAAOgxE,EAAU,IAAM0qB,GAK3I8uK,EAAU,SAAUzoQ,GACtB,OAAY,MAALA,GAGL0oQ,EAAe,SAAU1jI,EAAOtoI,EAAM+G,GACxC,IAAIklQ,EAAe3jQ,KAAKo6C,KAAK4lF,EAAM37H,QAAQwQ,YAAc,EAAMnd,EAAKg7F,OAAOpjG,QAEvEq0Q,EAAe,GACjBA,EAAe,GACNA,EAAe,KACxBA,EAAe,IAGZllQ,EAAQ63I,OAAOghD,MAAM,GAAGkP,MAAMl8M,WACjCmU,EAAQ63I,OAAOghD,MAAM,GAAGkP,MAAMl8M,SAAW,SAAUmN,GAGjD,OAFAA,EAAQupQ,EAAMvpQ,IAEJnI,OAASq0Q,EACVlsQ,EAAMmY,UAAU,EAAG+zP,EAAe,GAAK,MAEvClsQ,KAMXmsQ,EAAmB,SAAU5jI,EAAOvhI,EAASolQ,GAC/C,IAAIC,EAAgB,CAClBzhQ,OAAQ29H,EAAMvhI,QAAQ4D,OACtBirH,OAAQ0S,EAAMvhI,QAAQ6uH,OACtB21I,UAAWjjI,EAAMvhI,QAAQwkQ,UACzBj1C,QAAShuF,EAAMvhI,QAAQuvN,QACvB57L,UAAW4tG,EAAMvhI,QAAQ2zB,UACzB5pB,MAAOw3H,EAAMvhI,QAAQ+J,MACrBw6P,MAAOhjI,EAAMvhI,QAAQukQ,OAGvB,GAAIhjI,EAAMvhI,QAAQy4B,MAAO,CACvB,IAAI6pO,EAAS/gI,EAAMtoI,KAED,QAAdmsQ,IACF9C,EAAS,CAAC,CACRrpQ,KAAMqpQ,KAOV,IAFA,IAAI5uP,EAAM,EAEDzjB,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAGjC,IAFA,IAAI7K,EAAIk9Q,EAAOryQ,GAENwP,EAAI,EAAGA,EAAIra,EAAE6T,KAAKpI,OAAQ4O,IAC7Bra,EAAE6T,KAAKwG,GAAG,GAAKiU,IACjBA,EAAMtuB,EAAE6T,KAAKwG,GAAG,IAQtB,IAFA,IAAIy+H,EAAQ,EAELxqH,GAAO,MACZwqH,GAAS,KACTxqH,GAAO,KAIT2xP,EAAclB,UAAYjmI,EAG5B,GAAkB,QAAdknI,EAAqB,CACvB,IAAIE,EAAStlQ,EAAQ63I,OAAOkhD,MAEV,QAAdqsE,IACFE,EAAStlQ,EAAQ63I,OAAOghD,OAGtBwsE,EAAclB,YACXmB,EAAO,GAAGv9D,MAAMorB,WACnBmyC,EAAO,GAAGv9D,MAAMorB,SAAWkyC,EAAclB,UAAY,GAGlDmB,EAAO,GAAGv9D,MAAM4nB,gBACnB21C,EAAO,GAAGv9D,MAAM4nB,cAAgB,IAI/B21C,EAAO,GAAGv9D,MAAMl8M,WACnBy5Q,EAAO,GAAGv9D,MAAMl8M,SAAW,SAAUmN,GACnC,OAAOirQ,EAAY,GAAIjrQ,EAAOqsQ,GAAe,KAKnD,IAAKrlQ,EAAQikM,SAASC,UAAUhuM,MAC9B,GAAkB,YAAdkvQ,EACFplQ,EAAQikM,SAASC,UAAUhuM,MAAQ,SAAU42B,EAAM7zB,GACjD,IAAI/C,EAAQ+C,EAAK0rI,SAAS73G,EAAKu6G,cAAcnxI,OAAS,GAMtD,OAJIA,IACFA,GAAS,MAGJA,EAAQ,IAAM42B,EAAKs3K,OAAS,KAAOt3K,EAAKu3K,OAAS,UAErD,GAAkB,WAAd+gE,EACTplQ,EAAQikM,SAASC,UAAUhuM,MAAQ,SAAU42B,EAAM7zB,GACjD,IAAI/C,EAAQ+C,EAAK0rI,SAAS73G,EAAKu6G,cAAcnxI,OAAS,GAElDA,IACFA,GAAS,MAGX,IAAIiuM,EAAYlrM,EAAK0rI,SAAS73G,EAAKu6G,cAAcpuI,KAAK6zB,EAAKl8B,OAC3D,OAAOsF,EAAQ,IAAM42B,EAAKs3K,OAAS,KAAOt3K,EAAKu3K,OAAS,KAAOF,EAAU1tK,EAAI,UAE1E,GAAkB,QAAd2uO,EAETplQ,EAAQikM,SAASC,UAAUhuM,MAAQ,SAAUmvM,EAAapsM,GACxD,IAAIqsM,EAAYrsM,EAAKg7F,OAAOoxG,EAAYz0M,OACpCoI,EAAQ,KAWZ,OATIu6B,EAAQ+xK,IAGVA,EAAYA,EAAU70M,SACZ,IAAMuI,EAEhBssM,GAAatsM,EAGRirQ,EAAY3+D,EAAWrsM,EAAK0rI,SAAS0gE,EAAYh+D,cAAcpuI,KAAKosM,EAAYz0M,OAAQy0Q,QAE5F,CACL,IAAIE,EAA2B,QAAdH,EAAsB,SAAW,SAElDplQ,EAAQikM,SAASC,UAAUhuM,MAAQ,SAAUmvM,EAAapsM,GACxD,IAAI/C,EAAQ+C,EAAK0rI,SAAS0gE,EAAYh+D,cAAcnxI,OAAS,GAM7D,OAJIA,IACFA,GAAS,MAGJ+tQ,EAAY/tQ,EAAOmvM,EAAYkgE,GAAaF,MAMvDG,EAAY9C,EAAc7nM,EAAM8pM,EAAatnH,GAAiBslH,EAAYC,EAAUhvC,EAAQE,EAAQ+uC,EAAYC,EAAWC,GAE3H0C,EAAkB,SAAUlkI,EAAOvhI,EAASolQ,EAAWhC,GACzD,IAKIS,EALAl/H,EAAW,GACX1wC,EAAS,GACTgvK,EAAS1hI,EAAMvhI,QAAQijQ,QAAU2B,EACjCryQ,GAAM,EACNnM,GAAO,EAEPiV,GAAQ,EACRgV,GAAO,EACPpe,GAAO,EACPC,GAAS,EACTowQ,EAAS/gI,EAAMtoI,KACfya,EAAM,EAEV,GAAkB,WAAd0xP,EACF,IAAK,IAAIM,EAAM,EAAGA,EAAMpD,EAAOzxQ,OAAQ60Q,IAGrC,IAFA,IAAIC,EAAMrD,EAAOoD,GAERE,EAAM,EAAGA,EAAMD,EAAI1sQ,KAAKpI,OAAQ+0Q,IACnCD,EAAI1sQ,KAAK2sQ,GAAK,GAAKlyP,IACrBA,EAAMiyP,EAAI1sQ,KAAK2sQ,GAAK,IAM5B,IAAI31Q,EACAwP,EACAra,EACAM,EACA8F,EACAq6Q,EAAO,GACPC,EAAQ,GAEZ,GAAkB,QAAdV,GAAqC,WAAdA,GAA0C,WAAhB7jI,EAAMwkI,OAAsC,WAAhBxkI,EAAMwkI,MAAoB,CACzG,IA6BI/sQ,EACAuO,EA9BAy+P,EAAe,GAEnB,IAAK/1Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAG7B,IAFA7K,EAAIk9Q,EAAOryQ,GAENwP,EAAI,EAAGA,EAAIra,EAAE6T,KAAKpI,OAAQ4O,IAC7B/Z,EAAIN,EAAE6T,KAAKwG,GAGNomQ,EAFLr6Q,EAAqB,YAAf+1I,EAAMwkI,MAAsBrgR,EAAE,GAAG8jB,UAAY9jB,EAAE,MAGnDmgR,EAAKr6Q,GAAO,IAAI8b,MAAMg7P,EAAOzxQ,SAG/Bg1Q,EAAKr6Q,GAAKyE,GAAKuyQ,EAAQ98Q,EAAE,KAEU,IAA/BsgR,EAAax1Q,QAAQhF,IACvBw6Q,EAAanvQ,KAAKrL,GASxB,IAJoB,aAAhB+1I,EAAMwkI,OAAwC,WAAhBxkI,EAAMwkI,OACtCC,EAAar/O,KAAK48O,GAGf9jQ,EAAI,EAAGA,EAAI6iQ,EAAOzxQ,OAAQ4O,IAC7BqmQ,EAAMjvQ,KAAK,IAMb,IAAK0Q,EAAI,EAAGA,EAAIy+P,EAAan1Q,OAAQ0W,IAuBnC,IAtBAtX,EAAI+1Q,EAAaz+P,GAEG,aAAhBg6H,EAAMwkI,OACR/sQ,EAAQ,IAAI+H,KAAKyhQ,EAAQvyQ,IAEzBsC,EAAMA,GAAOoxQ,EAAM3qQ,GAEd6qQ,IACHA,EAAY7qQ,EAAM4Q,UAGpBxjB,EAAOA,GAAQw9Q,EAAO5qQ,EAAO6qQ,GAC7BxoQ,EAAQA,GAASyoQ,EAAQ9qQ,GACzBqX,EAAOA,GAAQ0zP,EAAO/qQ,GACtB/G,EAAOA,GAAQyxQ,EAAO1qQ,GACtB9G,EAASA,GAAUsxQ,EAASxqQ,IAE5BA,EAAQ/I,EAGVgkG,EAAOp9F,KAAKmC,GAEPyG,EAAI,EAAGA,EAAI6iQ,EAAOzxQ,OAAQ4O,IAE7BqmQ,EAAMrmQ,GAAG5I,UAAoBhH,IAAfg2Q,EAAK51Q,GAAGwP,GAAmB,KAAOomQ,EAAK51Q,GAAGwP,SAI5D,IAAK,IAAIwmQ,EAAM,EAAGA,EAAM3D,EAAOzxQ,OAAQo1Q,IAAO,CAI5C,IAHA,IAAIC,EAAM5D,EAAO2D,GACbE,EAAM,GAEDC,EAAM,EAAGA,EAAMF,EAAIjtQ,KAAKpI,OAAQu1Q,IAAO,CAC9C,IAAIzwO,EAAQ,CACVp5B,EAAGimQ,EAAQ0D,EAAIjtQ,KAAKmtQ,GAAK,IACzBtgR,EAAG08Q,EAAQ0D,EAAIjtQ,KAAKmtQ,GAAK,KAGT,WAAdhB,IACFzvO,EAAMtuB,EAAgC,GAA5Bm7P,EAAQ0D,EAAIjtQ,KAAKmtQ,GAAK,IAAW1yP,EAE3CiiB,EAAMc,EAAIyvO,EAAIjtQ,KAAKmtQ,GAAK,IAG1BD,EAAItvQ,KAAK8+B,GAGXmwO,EAAMjvQ,KAAKsvQ,GAIf,IAAKl2Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAAK,CAElC,IAAIswI,GADJn7I,EAAIk9Q,EAAOryQ,IACGswI,OAAS0iI,EAAOhzQ,GAC1B+vE,EAAgC,SAAdolM,EAAuBL,EAAWxkI,EAAO,IAAOA,EAClEt9G,EAAU,CACZ/sB,MAAO9Q,EAAEshB,MAAQ,GACjBzN,KAAM6sQ,EAAM71Q,GACZsvI,KAAoB,SAAd6lI,EACNpmI,YAAauB,EACbvgE,gBAAiBA,EACjBqmM,qBAAsB9lI,EACtB7C,YAAa,EACb4oI,0BAA2B/lI,GAGzBn7I,EAAE2hB,QACJkc,EAAQlc,MAAQ3hB,EAAE2hB,QAKN,IAFF09P,EAAaljI,EAAOn8I,EAAG,WAGjC69B,EAAQolL,YAAc,IAKT,IAFFo8D,EAAaljI,EAAOn8I,EAAG,YAGlC69B,EAAQsjP,YAAc,EACtBtjP,EAAQujP,eAAiB,GAG3BvjP,EAAU43C,EAAM53C,EAASs+G,EAAMvhI,QAAQijB,SAAW,IAClDA,EAAU43C,EAAM53C,EAAS79B,EAAEg+Q,SAAW,IACtCngP,EAAU43C,EAAM53C,EAAS79B,EAAE69B,SAAW,IACtC0hH,EAAS9tI,KAAKosB,GAGhB,IAAIwjP,EAAOllI,EAAMvhI,QAAQymQ,KACrBC,EAAOnlI,EAAMvhI,QAAQ0mQ,KAEzB,GAAoB,aAAhBnlI,EAAMwkI,MAAsB,CAG9B,IACIY,EADS,SAAUvD,EAAQjqI,QACR,QAAU,OAE7B6rI,EAAQyB,KACVzmQ,EAAQ63I,OAAOghD,MAAM,GAAG8tE,GAAUlzP,IAAM3S,EAAO2lQ,GAAMj9P,WAGnDw7P,EAAQ0B,KACV1mQ,EAAQ63I,OAAOghD,MAAM,GAAG8tE,GAAUjzP,IAAM5S,EAAO4lQ,GAAMl9P,eAE9B,WAAhB+3H,EAAMwkI,QACXf,EAAQyB,KACVzmQ,EAAQ63I,OAAOghD,MAAM,GAAGkP,MAAMt0L,IAAMgzP,GAGlCzB,EAAQ0B,KACV1mQ,EAAQ63I,OAAOghD,MAAM,GAAGkP,MAAMr0L,IAAMgzP,IAsBxC,GAjBoB,aAAhBnlI,EAAMwkI,OAA0C,IAAlB9xK,EAAOpjG,SACnCm0Q,EAAQyB,IACVxyK,EAAOp9F,KAAKiK,EAAO2lQ,IAGjBzB,EAAQ0B,IACVzyK,EAAOp9F,KAAKiK,EAAO4lQ,IAGrBn0Q,GAAM,EACNnM,GAAO,EACPiV,GAAQ,EACRgV,GAAO,EACPpe,GAAO,EACPC,GAAS,GAGS,aAAhBqvI,EAAMwkI,OAAwB9xK,EAAOpjG,OAAS,EAAG,CACnD,IAAIymB,IAAW0tP,EAAQyB,GAAQ3lQ,EAAO2lQ,GAAQxyK,EAAO,IAAIzqF,UACrDgO,IAAWwtP,EAAQ0B,GAAQ5lQ,EAAO4lQ,GAAQzyK,EAAO,IAAIzqF,UAEzD,IAAKvZ,EAAI,EAAGA,EAAIgkG,EAAOpjG,OAAQZ,IAAK,CAClC,IAAI22Q,GAAU3yK,EAAOhkG,GAAGuZ,UAEpBo9P,GAAUtvP,KACZA,GAAUsvP,IAGRA,GAAUpvP,KACZA,GAAUovP,IAId,IAGM5+O,GAHF0pB,IAAYl6B,GAAUF,IAAW,MAErC,IAAKtX,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAK1qB,OAG5BqO,GAAQqhC,GAAW,MACrB1xC,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAK1qB,KAAO,OACpCgmB,GAAO,KACE3sB,GAASq2C,GAAW,KAC7B1xC,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAK1qB,KAAO,QACpCgmB,GAAO,IACEz1B,GAAOm/C,GAAW,IAC3B1xC,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAK1qB,KAAO,MACpCgmB,GAAO,GACE/1B,GAAQy/C,GAAW,IAC5B1xC,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAKuvM,eAAiB,CAC5ChqO,KAAM,cAER+N,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAK1qB,KAAO,OACpCgmB,GAAO,EAAI,IACF91B,IACT8N,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAKuvM,eAAiB,CAC5C/pO,OAAQ,UAEV8N,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAK1qB,KAAO,SACpCgmB,GAAO,EAAI,GAAO,IAGhBA,IAAQ0pB,GAAW,GAAG,CACxB,IAAIgqL,GAAen6N,KAAKo6C,KAAKjK,GAAW1pB,IAAQu5G,EAAM37H,QAAQwQ,YAAc,MAExEhwB,GAAiB,IAAT4hC,KACV0zM,GAA+C,EAAhCn6N,KAAKo6C,KAAK+/K,GAAe,IAG1C17N,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAKgvM,aAAeA,GAI3C17N,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAKiwM,gBAC5BpqO,EACFyN,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAKiwM,cAAgB,KACpC1qO,EACT+N,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAKiwM,cAAgB,aACpCzqO,IACT8N,EAAQ63I,OAAOghD,MAAM,GAAGnsK,KAAKiwM,cAAgB,WASnD,MAJW,CACT1oI,OAAQA,EACR0wC,SAAUA,IAKVkiI,EAAgB,SAAuBzD,GACzCv6Q,KAAK6d,KAAO,UACZ7d,KAAKu6Q,QAAUA,GAGjByD,EAAc58Q,UAAU68Q,gBAAkB,SAAyBvlI,EAAO6jI,GACxE,IAAIpC,EAAe,IAEdzhI,EAAMvhI,QAAQ0T,KAAOgxP,EAASnjI,EAAMtoI,QACvC+pQ,EAAatvP,IAAM,GAGrB,IAAI1T,EAAUwlQ,EAAUjkI,EAAO1mE,EAAMmoM,EAAczhI,EAAMvhI,UACzDmlQ,EAAiB5jI,EAAOvhI,EAASolQ,GACjC,IAAInsQ,EAAOwsQ,EAAgBlkI,EAAOvhI,EAASolQ,GAAa,OAAQv8Q,KAAKu6Q,SAEjD,WAAhB7hI,EAAMwkI,OACR/lQ,EAAQ63I,OAAOghD,MAAM,GAAGh8L,KAAO,SAC/BmD,EAAQ63I,OAAOghD,MAAM,GAAGxtL,SAAW,UAEnCrL,EAAQ63I,OAAOghD,MAAM,GAAGh8L,KAAuB,WAAhB0kI,EAAMwkI,MAAqB,WAAa,OAGzEl9Q,KAAKk+Q,UAAUxlI,EAAO,OAAQtoI,EAAM+G,IAGtC6mQ,EAAc58Q,UAAU+8Q,eAAiB,SAAwBzlI,GAC/D,IAAIvhI,EAAU66D,EAAM,GAAI8pM,GAEpBpjI,EAAMvhI,QAAQinQ,QAChBjnQ,EAAQolM,iBAAmB,IAGzB,WAAY7jE,EAAMvhI,SACpB2iQ,EAAW3iQ,EAASuhI,EAAMvhI,QAAQilM,QAGhC1jE,EAAMvhI,QAAQmf,OAChByjP,EAAS5iQ,EAASuhI,EAAMvhI,QAAQmf,OAGlCnf,EAAU66D,EAAM76D,EAASuhI,EAAMvhI,QAAQojQ,SAAW,IAClD+B,EAAiB5jI,EAAOvhI,EAAS,OAIjC,IAHA,IAAIi0F,EAAS,GACTr5D,EAAS,GAEJ3qC,EAAI,EAAGA,EAAIsxI,EAAMtoI,KAAKpI,OAAQZ,IAAK,CAC1C,IAAI0lC,EAAQ4rG,EAAMtoI,KAAKhJ,GACvBgkG,EAAOp9F,KAAK8+B,EAAM,IAClBiF,EAAO/jC,KAAK8+B,EAAM,IAGpB,IAAI1S,EAAU,CACZhqB,KAAM2hC,EACNolC,gBAAiBuhE,EAAMvhI,QAAQijQ,QAAU2B,GAGvC3rQ,EAAO,CACTg7F,OAAQA,EACR0wC,SAAU,CAHZ1hH,EAAU43C,EAAM53C,EAASs+G,EAAMvhI,QAAQijB,SAAW,MAKlDp6B,KAAKk+Q,UAAUxlI,EAAO,MAAOtoI,EAAM+G,IAGrC6mQ,EAAc58Q,UAAUi9Q,kBAAoB,SAA2B3lI,EAAO6jI,GAC5E,IAAIplQ,EAEJ,GAAkB,QAAdolQ,EAAqB,CACvB,IAAI+B,EAAatsM,EAAM8pM,EAAatnH,UAC7B8pH,EAAWtvH,OAAOkhD,MAAM,GAAGgP,MAAM4nB,cACxC3vN,EAAU0iQ,EAAcyE,EAAYxE,EAAYC,EAAUiC,EAAWC,EAAWjC,EAAYC,EAAWC,EAA7FL,CAAwGnhI,EAAOA,EAAMvhI,cAE/HA,EAAUwlQ,EAAUjkI,EAAOA,EAAMvhI,SAGnCmlQ,EAAiB5jI,EAAOvhI,EAASolQ,GACjC,IAAInsQ,EAAOwsQ,EAAgBlkI,EAAOvhI,EAAS,SAAUnX,KAAKu6Q,SAExC,QAAdgC,GACFH,EAAa1jI,EAAOtoI,EAAM+G,GAG5BnX,KAAKk+Q,UAAUxlI,EAAqB,QAAd6jI,EAAsB,gBAAkB,MAAOnsQ,EAAM+G,IAG7E6mQ,EAAc58Q,UAAUm9Q,gBAAkB,SAAyB7lI,GACjE14I,KAAKi+Q,gBAAgBvlI,EAAO,SAG9BslI,EAAc58Q,UAAUo9Q,eAAiB,SAAwB9lI,GAC/D14I,KAAKq+Q,kBAAkB3lI,EAAO,QAGhCslI,EAAc58Q,UAAUq9Q,mBAAqB,SAA4B/lI,EAAO6jI,GAC9EA,EAAYA,GAAa,UACzB,IAAIplQ,EAAUwlQ,EAAUjkI,EAAOA,EAAMvhI,SACrCmlQ,EAAiB5jI,EAAOvhI,EAASolQ,GAE3B,cAAeplQ,IACnBA,EAAQq0L,WAAY,GAGtB,IAAIp7L,EAAOwsQ,EAAgBlkI,EAAOvhI,EAASolQ,EAAWv8Q,KAAKu6Q,SAC3DpjQ,EAAQ63I,OAAOghD,MAAM,GAAGh8L,KAAO,SAC/BmD,EAAQ63I,OAAOghD,MAAM,GAAGxtL,SAAW,SACnCxiB,KAAKk+Q,UAAUxlI,EAAO6jI,EAAWnsQ,EAAM+G,IAGzC6mQ,EAAc58Q,UAAUs9Q,kBAAoB,SAA2BhmI,GACrE14I,KAAKy+Q,mBAAmB/lI,EAAO,WAGjCslI,EAAc58Q,UAAUC,QAAU,SAAiBq3I,GAC7CA,EAAMA,OACRA,EAAMA,MAAMr3I,WAIhB28Q,EAAc58Q,UAAU88Q,UAAY,SAAmBxlI,EAAO1kI,EAAM5D,EAAM+G,GACxEnX,KAAKqB,QAAQq3I,GACb,IAAIyhI,EAAe,CACjBnmQ,KAAMA,EACN5D,KAAMA,EACN+G,QAASA,GAGPuhI,EAAMvhI,QAAQoG,MAChBtG,OAAOuJ,QAAQshB,IAAI,kBAAoB3H,KAAKtf,UAAUs/P,GAAgB,MAGxEzhI,EAAM37H,QAAQrZ,UAAY,oBAC1B,IAAIwtI,EAAMwH,EAAM37H,QAAQyY,qBAAqB,UAAU,GACvDkjH,EAAMA,MAAQ,IAAI14I,KAAKu6Q,QAAQrpI,EAAKipI,IAGtC,IAAIwE,EAAmB,CACrBjmI,MAAO,GACPkmI,MAAO,CACLtoP,MAAO,CACLylB,KAAM,MAERqvD,OAAQ,CACNz6F,MAAO,CACLk7L,SAAU,UAIhBgzE,MAAO,CACLvoP,MAAO,CACLylB,KAAM,MAERqvD,OAAQ,CACNz6F,MAAO,CACLk7L,SAAU,UAIhBv1K,MAAO,CACLylB,KAAM,MAER+iO,QAAS,CACPhtN,SAAS,GAEXsqJ,OAAQ,CACNvnE,YAAa,GAEf26E,QAAS,CACP7+M,MAAO,CACLk7L,SAAU,SAGdkzE,YAAa,CACXC,WAAY,GACZ1rI,KAAM,GACNmmI,OAAQ,CACNvpH,OAAQ,MAKV+uH,EAAe,SAAU9nQ,EAASilM,EAAQ09D,QAC7B9yQ,IAAXo1M,GACFjlM,EAAQilM,OAAOtqJ,UAAYsqJ,EAEvBA,IAAqB,IAAXA,IACG,QAAXA,GAA+B,WAAXA,EACtBjlM,EAAQilM,OAAO8iE,cAAgB9iE,GAE/BjlM,EAAQilM,OAAOnvM,OAAS,WACxBkK,EAAQilM,OAAO8iE,cAAgB,SAC/B/nQ,EAAQilM,OAAO1pE,MAAQ0pE,KAGlB09D,IACT3iQ,EAAQilM,OAAOtqJ,SAAU,IAIzBqtN,EAAa,SAAUhoQ,EAASmf,GAClCnf,EAAQmf,MAAMylB,KAAOzlB,GA0BnB8oP,EAAcvF,EAAc8E,EAAkBM,EAAcE,GAvBjD,SAAUhoQ,EAASyT,GAChCzT,EAAQ0nQ,MAAMj0P,IAAMA,KAGP,SAAUzT,EAAS0T,GAChC1T,EAAQ0nQ,MAAMh0P,IAAMA,KAGH,SAAU1T,EAASkjM,GACpC,IAAIglE,EAAehlE,GAAsB,IAAZA,EAAmB,SAAWA,EAAU,KACrEljM,EAAQ4nQ,YAAYtF,OAAO6F,SAAWD,EACtCloQ,EAAQ4nQ,YAAYzrI,KAAKgsI,SAAWD,EACpCloQ,EAAQ4nQ,YAAYC,WAAWM,SAAWD,KAG1B,SAAUloQ,EAASmf,GACnCnf,EAAQynQ,MAAMtoP,MAAMylB,KAAOzlB,KAGX,SAAUnf,EAASmf,GACnCnf,EAAQ0nQ,MAAMvoP,MAAMylB,KAAOzlB,KAKzBipP,EAAqB,SAAU7mI,EAAOvhI,EAASolQ,GACjD,IAAIC,EAAgB,CAClBzhQ,OAAQ29H,EAAMvhI,QAAQ4D,OACtBirH,OAAQ0S,EAAMvhI,QAAQ6uH,OACtB21I,UAAWjjI,EAAMvhI,QAAQwkQ,UACzBj1C,QAAShuF,EAAMvhI,QAAQuvN,QACvB57L,UAAW4tG,EAAMvhI,QAAQ2zB,UACzB5pB,MAAOw3H,EAAMvhI,QAAQ+J,MACrBw6P,MAAOhjI,EAAMvhI,QAAQukQ,OAGL,QAAda,GAAwBplQ,EAAQ0nQ,MAAMzzK,OAAOzqC,YAC/CxpD,EAAQ0nQ,MAAMzzK,OAAOzqC,UAAY,WAC/B,OAAOy6M,EAAY,GAAIp7Q,KAAKmQ,MAAOqsQ,KAIlCrlQ,EAAQq4M,QAAQgwD,iBACnBroQ,EAAQq4M,QAAQgwD,eAAiB,WAC/B,MAAO,sBAAwBx/Q,KAAK03I,MAAQ,mBAAqB0jI,EAAYp7Q,KAAKy5Q,OAAO57P,KAAO,QAAS7d,KAAK/C,EAAGu/Q,GAAiB,eAKpIiD,GAAkB,SAAuBlF,GAC3Cv6Q,KAAK6d,KAAO,aACZ7d,KAAKu6Q,QAAUA,GAGjBkF,GAAgBr+Q,UAAU68Q,gBAAkB,SAAyBvlI,EAAO6jI,GAE1E,IAAIpC,EAAe,GAED,gBAHlBoC,EAAYA,GAAa,YAIvBpC,EAAe,CACb4E,YAAa,CACXC,WAAY,CACVM,SAAU,UAEZhsI,KAAM,CACJgsI,SAAU,UAEZ7F,OAAQ,CACNvpH,OAAQ,CACNp+F,SAAS,QAOS,IAAxB4mF,EAAMvhI,QAAQuoQ,QACE,eAAdnD,EACFA,EAAY,OACW,WAAdA,IACTA,EAAY,SAIhB,IACInsQ,EACAhJ,EACAwP,EAHAO,EAAUioQ,EAAY1mI,EAAOA,EAAMvhI,QAASgjQ,GAIhDhjQ,EAAQynQ,MAAM5qQ,KAAuB,WAAhB0kI,EAAMwkI,MAAqB,WAA6B,WAAhBxkI,EAAMwkI,MAAqB,SAAW,WAE9F/lQ,EAAQuhI,MAAM1kI,OACjBmD,EAAQuhI,MAAM1kI,KAAOuoQ,GAGvBgD,EAAmB7mI,EAAOvhI,EAASolQ,GACnC,IAAI9C,EAAS/gI,EAAMtoI,KAEnB,IAAKhJ,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAAK,CAIlC,GAHAqyQ,EAAOryQ,GAAGyW,KAAO47P,EAAOryQ,GAAGyW,MAAQ,QACnCzN,EAAOqpQ,EAAOryQ,GAAGgJ,KAEG,aAAhBsoI,EAAMwkI,MACR,IAAKtmQ,EAAI,EAAGA,EAAIxG,EAAKpI,OAAQ4O,IAC3BxG,EAAKwG,GAAG,GAAKxG,EAAKwG,GAAG,GAAG+J,UAI5B84P,EAAOryQ,GAAG8oJ,OAAS,CACjBl6I,OAAQ,WAGmB,IAAzB0iI,EAAMvhI,QAAQ01B,SAChB4sO,EAAOryQ,GAAG8oJ,OAAOp+F,SAAU,GAI/B9xD,KAAKk+Q,UAAUxlI,EAAO+gI,EAAQtiQ,IAGhCsoQ,GAAgBr+Q,UAAUq9Q,mBAAqB,SAA4B/lI,GACzE,IAAIvhI,EAAUioQ,EAAY1mI,EAAOA,EAAMvhI,QAAS,IAChDA,EAAQuhI,MAAM1kI,KAAO,UACrBhU,KAAKk+Q,UAAUxlI,EAAOA,EAAMtoI,KAAM+G,IAGpCsoQ,GAAgBr+Q,UAAU+8Q,eAAiB,SAAwBzlI,GACjE,IAAIyhI,EAAenoM,EAAM2sM,EAAkB,IAEvCjmI,EAAMvhI,QAAQijQ,SAChBD,EAAaC,OAAS1hI,EAAMvhI,QAAQijQ,QAGlC1hI,EAAMvhI,QAAQinQ,QAChBjE,EAAa4E,YAAc,CACzB38D,IAAK,CACHu9D,UAAW,SAKb,WAAYjnI,EAAMvhI,SACpB8nQ,EAAa9E,EAAczhI,EAAMvhI,QAAQilM,QAGvC1jE,EAAMvhI,QAAQmf,OAChB6oP,EAAWhF,EAAczhI,EAAMvhI,QAAQmf,OAGzC,IAAInf,EAAU66D,EAAMmoM,EAAczhI,EAAMvhI,QAAQojQ,SAAW,IAC3DgF,EAAmB7mI,EAAOvhI,EAAS,OACnC,IAAIsiQ,EAAS,CAAC,CACZzlQ,KAAM,MACN6J,KAAM66H,EAAMvhI,QAAQ9J,OAAS,QAC7B+C,KAAMsoI,EAAMtoI,OAEdpQ,KAAKk+Q,UAAUxlI,EAAO+gI,EAAQtiQ,IAGhCsoQ,GAAgBr+Q,UAAUi9Q,kBAAoB,SAA2B3lI,EAAO6jI,GAC9EA,EAAYA,GAAa,SACzB,IAEIn1Q,EACAwP,EACAra,EACAM,EALA48Q,EAAS/gI,EAAMtoI,KACf+G,EAAUioQ,EAAY1mI,EAAOA,EAAMvhI,SAKnC6lQ,EAAO,GACP4C,EAAa,GAIjB,IAHAzoQ,EAAQuhI,MAAM1kI,KAAOuoQ,EACrBgD,EAAmB7mI,EAAOvhI,EAASolQ,GAE9Bn1Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAG7B,IAFA7K,EAAIk9Q,EAAOryQ,GAENwP,EAAI,EAAGA,EAAIra,EAAE6T,KAAKpI,OAAQ4O,IAGxBomQ,GAFLngR,EAAIN,EAAE6T,KAAKwG,IAEC,MACVomQ,EAAKngR,EAAE,IAAM,IAAI4hB,MAAMg7P,EAAOzxQ,QAC9B43Q,EAAW5xQ,KAAKnR,EAAE,KAGpBmgR,EAAKngR,EAAE,IAAIuK,GAAKvK,EAAE,GAIF,WAAhB67I,EAAMwkI,OACR0C,EAAW9hP,KAAK48O,GAGlBvjQ,EAAQynQ,MAAMgB,WAAaA,EAC3B,IACIC,EADAC,EAAY,GAGhB,IAAK14Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAAK,CAGlC,IAFAvK,EAAI,GAEC+Z,EAAI,EAAGA,EAAIgpQ,EAAW53Q,OAAQ4O,IACjC/Z,EAAEmR,KAAKgvQ,EAAK4C,EAAWhpQ,IAAIxP,IAAM,GAGnCy4Q,EAAK,CACHhiQ,KAAM47P,EAAOryQ,GAAGyW,MAAQ,QACxBzN,KAAMvT,GAGJ48Q,EAAOryQ,GAAG8W,QACZ2hQ,EAAG3hQ,MAAQu7P,EAAOryQ,GAAG8W,OAGvB4hQ,EAAU9xQ,KAAK6xQ,GAGjB7/Q,KAAKk+Q,UAAUxlI,EAAOonI,EAAW3oQ,IAGnCsoQ,GAAgBr+Q,UAAUo9Q,eAAiB,SAAwB9lI,GACjE14I,KAAKq+Q,kBAAkB3lI,EAAO,QAGhC+mI,GAAgBr+Q,UAAUm9Q,gBAAkB,SAAyB7lI,GACnE14I,KAAKi+Q,gBAAgBvlI,EAAO,eAG9B+mI,GAAgBr+Q,UAAUC,QAAU,SAAiBq3I,GAC/CA,EAAMA,OACRA,EAAMA,MAAMr3I,WAIhBo+Q,GAAgBr+Q,UAAU88Q,UAAY,SAAmBxlI,EAAOtoI,EAAM+G,GACpEnX,KAAKqB,QAAQq3I,GACbvhI,EAAQuhI,MAAMqnI,SAAWrnI,EAAM37H,QAAQq4B,GACvCj+B,EAAQsiQ,OAASrpQ,EAEbsoI,EAAMvhI,QAAQoG,MAChBtG,OAAOuJ,QAAQshB,IAAI,wBAA0B3H,KAAKtf,UAAU1D,GAAW,MAGzEuhI,EAAMA,MAAQ,IAAI14I,KAAKu6Q,QAAQlqI,MAAMl5H,IAGvC,IAAI26F,GAAS,GACTupG,GAAY,GAEZ2kE,GAAmB,CACrBrnI,UAAW,GACXsnI,SAAU,gFACVC,UAAW,EACX9jE,OAAQ,CACN+jE,UAAW,CACTt0E,SAAU,GACVn0D,MAAO,QAETi5E,UAAW,SACXnuM,SAAU,SAEZ49P,UAAW,WACXC,MAAO,CACLF,UAAW,CACTzoI,MAAO,OACPm0D,SAAU,IAEZy0E,eAAgB,GAChBC,UAAW,CACT7oI,MAAO,eAET8oI,cAAe,OACfC,WAAY,IAEdC,MAAO,CACLP,UAAW,CACTzoI,MAAO,OACPm0D,SAAU,IAEZy0E,eAAgB,GAChBE,cAAe,OACfC,WAAY,IAEdjxD,QAAS,CACP2wD,UAAW,CACTzoI,MAAO,OACPm0D,SAAU,MAKZ80E,GAAe,SAAUxpQ,EAASilM,EAAQ09D,GAE1C,IAAIt3P,OADSxb,IAAXo1M,GAMA55L,EAHG45L,GAEiB,IAAXA,EACE,QAEAA,EAJA,OAObjlM,EAAQilM,OAAO55L,SAAWA,GACjBs3P,IACT3iQ,EAAQilM,OAAO55L,SAAW,SAI1Bo+P,GAAa,SAAUzpQ,EAASmf,GAClCnf,EAAQmf,MAAQA,EAChBnf,EAAQmpQ,eAAiB,CACvB5oI,MAAO,OACPm0D,SAAU,SAYVg1E,GAAc,SAAU1pQ,EAASyT,GACnCzT,EAAQkpQ,MAAMI,WAAW71P,IAAMA,GAG7Bk2P,GAAc,SAAU3pQ,EAAS0T,GACnC1T,EAAQkpQ,MAAMI,WAAW51P,IAAMA,GAG7Bk2P,GAAe,SAAU5pQ,EAASkjM,GACpCljM,EAAQ6pQ,UAAY3mE,IAAoB,GAGtC4mE,GAAc,SAAU9pQ,EAASmf,GACnCnf,EAAQkpQ,MAAM/pP,MAAQA,EACtBnf,EAAQkpQ,MAAMC,eAAe3rM,QAAS,GAGpCusM,GAAc,SAAU/pQ,EAASmf,GACnCnf,EAAQupQ,MAAMpqP,MAAQA,EACtBnf,EAAQupQ,MAAMJ,eAAe3rM,QAAS,GAGpCwsM,GAActH,EAAcmG,GAAkBW,GAAcC,IA9BjD,SAAUzpQ,EAASyT,GAChCzT,EAAQupQ,MAAMD,WAAW71P,IAAMA,KAGlB,SAAUzT,EAAS0T,GAChC1T,EAAQupQ,MAAMD,WAAW51P,IAAMA,IAyB+Dk2P,GAAcE,GAAaC,IAEvHhgO,GAAS,SAAUl+C,GACjBiU,OAAOyyD,YACTzyD,OAAOyyD,YAAY,WAAY1mE,GACtBiU,OAAOnR,kBAChBmR,OAAOnR,iBAAiB,SAAU9C,GAAU,GAG9CA,KAGEo+Q,GAAkB,SAAuB7G,GAC3Cv6Q,KAAK6d,KAAO,SACZ7d,KAAKu6Q,QAAUA,GAGjB6G,GAAgBhgR,UAAU68Q,gBAAkB,SAAyBvlI,GACnE,IAAI2oI,EAASrhR,KACbA,KAAKshR,cAAc5oI,GAAO,WACxB,IAAIyhI,EAAe,IAES,IAAxBzhI,EAAMvhI,QAAQuoQ,QAChBvF,EAAaiG,UAAY,SAGE,IAAzB1nI,EAAMvhI,QAAQ01B,SAChBstO,EAAa+F,UAAY,GAG3B,IAAI/oQ,EAAUgqQ,GAAYzoI,EAAOA,EAAMvhI,QAASgjQ,GAC5C/pQ,EAAOixQ,EAAOzE,gBAAgBlkI,EAAMtoI,KAAMsoI,EAAMwkI,OACpDmE,EAAOnD,UAAUxlI,EAAO,YAAatoI,EAAM+G,OAI/CiqQ,GAAgBhgR,UAAU+8Q,eAAiB,SAAwBzlI,GACjE,IAAI2oI,EAASrhR,KACbA,KAAKshR,cAAc5oI,GAAO,WACxB,IAAIyhI,EAAe,CACjBxhI,UAAW,CACTvpI,IAAK,MACLD,OAAQ,OAEVitM,OAAQ,IAGN1jE,EAAMvhI,QAAQijQ,SAChBD,EAAaC,OAAS1hI,EAAMvhI,QAAQijQ,QAGlC1hI,EAAMvhI,QAAQinQ,QAChBjE,EAAaoH,QAAU,IAGrB,WAAY7oI,EAAMvhI,SACpBwpQ,GAAaxG,EAAczhI,EAAMvhI,QAAQilM,QAGvC1jE,EAAMvhI,QAAQmf,OAChBsqP,GAAWzG,EAAczhI,EAAMvhI,QAAQmf,OAGzC,IAAInf,EAAU66D,EAAMA,EAAMguM,GAAkB7F,GAAezhI,EAAMvhI,QAAQojQ,SAAW,IAChFnqQ,EAAO,IAAIixQ,EAAO9G,QAAQiH,cAAcC,UAC5CrxQ,EAAKsxQ,UAAU,SAAU,IACzBtxQ,EAAKsxQ,UAAU,SAAU,SACzBtxQ,EAAKuxQ,QAAQjpI,EAAMtoI,MACnBixQ,EAAOnD,UAAUxlI,EAAO,WAAYtoI,EAAM+G,OAI9CiqQ,GAAgBhgR,UAAUi9Q,kBAAoB,SAA2B3lI,GACvE,IAAI2oI,EAASrhR,KACbA,KAAKshR,cAAc5oI,GAAO,WACxB,IAAIvhI,EAAUgqQ,GAAYzoI,EAAOA,EAAMvhI,SACnC/G,EAAOixQ,EAAOzE,gBAAgBlkI,EAAMtoI,KAAMsoI,EAAMwkI,OACpDmE,EAAOnD,UAAUxlI,EAAO,cAAetoI,EAAM+G,OAIjDiqQ,GAAgBhgR,UAAUo9Q,eAAiB,SAAwB9lI,GACjE,IAAI2oI,EAASrhR,KACbA,KAAKshR,cAAc5oI,GAAO,WACxB,IAAIyhI,EAAe,CACjBkG,MAAO,CACLE,UAAW,CACT7oI,MAAO,UAITvgI,EAAU0iQ,EAAcmG,GAAkBW,GAAcC,GAAYC,GAAaC,GAAaC,GAAcE,GAAaC,GAA/GrH,CAA4HnhI,EAAOA,EAAMvhI,QAASgjQ,GAC5J/pQ,EAAOixQ,EAAOzE,gBAAgBlkI,EAAMtoI,KAAMsoI,EAAMwkI,OACpDmE,EAAOnD,UAAUxlI,EAAO,WAAYtoI,EAAM+G,OAI9CiqQ,GAAgBhgR,UAAUm9Q,gBAAkB,SAAyB7lI,GACnE,IAAI2oI,EAASrhR,KACbA,KAAKshR,cAAc5oI,GAAO,WACxB,IAAIyhI,EAAe,CACjB6G,WAAW,EACXd,UAAW,EACX0B,YAAa,IAEXzqQ,EAAUgqQ,GAAYzoI,EAAOA,EAAMvhI,QAASgjQ,GAC5C/pQ,EAAOixQ,EAAOzE,gBAAgBlkI,EAAMtoI,KAAMsoI,EAAMwkI,OACpDmE,EAAOnD,UAAUxlI,EAAO,YAAatoI,EAAM+G,OAI/CiqQ,GAAgBhgR,UAAUygR,eAAiB,SAAwBnpI,GACjE,IAAI2oI,EAASrhR,KACbA,KAAKshR,cAAc5oI,EAAO,YAAY,WACpC,IAAIyhI,EAAe,CACjB/9D,OAAQ,OACR0lE,UAAW,CACT1H,OAAQ1hI,EAAMvhI,QAAQijQ,QAAU,CAAC,UAAW,aAG5CjjQ,EAAU66D,EAAMA,EAAMguM,GAAkB7F,GAAezhI,EAAMvhI,QAAQojQ,SAAW,IAChFnqQ,EAAO,IAAIixQ,EAAO9G,QAAQiH,cAAcC,UAC5CrxQ,EAAKsxQ,UAAU,SAAU,IACzBtxQ,EAAKsxQ,UAAU,SAAUhpI,EAAMvhI,QAAQ9J,OAAS,SAChD+C,EAAKuxQ,QAAQjpI,EAAMtoI,MACnBixQ,EAAOnD,UAAUxlI,EAAO,WAAYtoI,EAAM+G,OAI9CiqQ,GAAgBhgR,UAAUq9Q,mBAAqB,SAA4B/lI,GACzE,IAAI2oI,EAASrhR,KACbA,KAAKshR,cAAc5oI,GAAO,WACxB,IAIItxI,EACAwP,EACAxG,EACAvT,EAPAs9Q,EAAe,GACfhjQ,EAAUgqQ,GAAYzoI,EAAOA,EAAMvhI,QAASgjQ,GAC5CV,EAAS/gI,EAAMtoI,KACf6sQ,EAAQ,GAMZ,IAAK71Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAI7B,IAHAqyQ,EAAOryQ,GAAGyW,KAAO47P,EAAOryQ,GAAGyW,MAAQ,QACnChhB,EAAI48Q,EAAOryQ,GAAGgJ,KAETwG,EAAI,EAAGA,EAAI/Z,EAAEmL,OAAQ4O,IAAK,CAC7B,IAAI/F,EAAM,IAAI4N,MAAMg7P,EAAOzxQ,OAAS,GACpC6I,EAAI,GAAKhU,EAAE+Z,GAAG,GACd/F,EAAIzJ,EAAI,GAAKvK,EAAE+Z,GAAG,GAClBqmQ,EAAMjvQ,KAAK6C,GAOf,KAHAT,EAAO,IAAIixQ,EAAO9G,QAAQiH,cAAcC,WACnCC,UAAU,SAAU,IAEpBt6Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAC7BgJ,EAAKsxQ,UAAU,SAAUjI,EAAOryQ,GAAGyW,MAGrCzN,EAAKuxQ,QAAQ1E,GACboE,EAAOnD,UAAUxlI,EAAO,eAAgBtoI,EAAM+G,OAIlDiqQ,GAAgBhgR,UAAU2gR,eAAiB,SAAwBrpI,GACjE,IAAI2oI,EAASrhR,KACbA,KAAKshR,cAAc5oI,EAAO,YAAY,WACpC,IAAIyhI,EAAe,CACjB/9D,OAAQ,QAGN1jE,EAAMvhI,QAAQijQ,SAChBD,EAAaC,OAAS1hI,EAAMvhI,QAAQijQ,QAGtC,IAAIjjQ,EAAU66D,EAAMA,EAAMguM,GAAkB7F,GAAezhI,EAAMvhI,QAAQojQ,SAAW,IAChFnqQ,EAAO,IAAIixQ,EAAO9G,QAAQiH,cAAcC,UAC5CrxQ,EAAKsxQ,UAAU,CACb1tQ,KAAM,SACNohC,GAAI,SAENhlC,EAAKsxQ,UAAU,CACb1tQ,KAAM,OACNohC,GAAI,UAENhlC,EAAKsxQ,UAAU,CACb1tQ,KAAM,OACNohC,GAAI,QAENhlC,EAAKuxQ,QAAQjpI,EAAMtoI,MACnBsoI,EAAM37H,QAAQpM,MAAM0gI,WAAa,SACjCgwI,EAAOnD,UAAUxlI,EAAO,WAAYtoI,EAAM+G,OAI9CiqQ,GAAgBhgR,UAAUC,QAAU,SAAiBq3I,GAC/CA,EAAMA,OACRA,EAAMA,MAAMspI,cAIhBZ,GAAgBhgR,UAAU88Q,UAAY,SAAmBxlI,EAAO1kI,EAAM5D,EAAM+G,GAC1EnX,KAAKqB,QAAQq3I,GAETA,EAAMvhI,QAAQoG,MAChBtG,OAAOuJ,QAAQshB,IAAI,iDAAmD1xB,EAAKuN,SAAW,4CAA8C3J,EAAO,gCAAkCmmB,KAAKtf,UAAU1D,GAAW,MAGzMuhI,EAAMA,MAAQ,IAAI14I,KAAKu6Q,QAAQiH,cAAcxtQ,GAAM0kI,EAAM37H,SACzDmkC,IAAO,WACLw3F,EAAMA,MAAMS,KAAK/oI,EAAM+G,OAI3BiqQ,GAAgBhgR,UAAUkgR,cAAgB,SAAuB5oI,EAAO85H,EAAMxvQ,GAC5E,IAAIq+Q,EAASrhR,KAYb,GAVKgD,IACHA,EAAWwvQ,EACXA,EAAO,aAGTn3D,GAAUrtM,KAAK,CACbwkQ,KAAMA,EACNxvQ,SAAUA,IAGR8uG,GAAO0gK,GACTxyQ,KAAK62D,mBACA,CACLi7C,GAAO0gK,IAAQ,EAEf,IAAIyP,EAAc,CAChBC,SAAU,CAAC1P,GACXxvQ,SAAU,WACRq+Q,EAAOxqN,iBAIPv5C,EAASo7H,EAAMypI,WAEf7kQ,EAAO8kQ,WACTH,EAAYG,SAAW9kQ,EAAO8kQ,UAGnB,aAAT5P,GAAuBl1P,EAAO+kQ,aAChCJ,EAAYI,WAAa/kQ,EAAO+kQ,YAGlCriR,KAAKu6Q,QAAQ+H,OAAOhkK,KAAK,UAAW2jK,KAIxCb,GAAgBhgR,UAAUy1D,aAAe,WAGvC,IAFA,IAAI0rN,EAEKn7Q,EAAI,EAAGA,EAAIi0M,GAAUrzM,OAAQZ,IACpCm7Q,EAAKlnE,GAAUj0M,GACRpH,KAAKu6Q,QAAQiH,gBAA8B,cAAZe,EAAG/P,MAAwBxyQ,KAAKu6Q,QAAQiH,cAAcgB,WAAyB,aAAZD,EAAG/P,MAAuBxyQ,KAAKu6Q,QAAQiH,cAAciB,UAAwB,aAAZF,EAAG/P,MAAuBxyQ,KAAKu6Q,QAAQiH,cAAckB,YAG7NH,EAAGv/Q,WACHq4M,GAAU5kL,OAAOrvB,EAAG,GACpBA,MAMNg6Q,GAAgBhgR,UAAUw7Q,gBAAkB,SAAyBnD,EAAQkJ,GAC3E,IAAIv7Q,EACAwP,EACAra,EACAM,EACA8F,EACAq6Q,EAAO,GACPG,EAAe,GAEnB,IAAK/1Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAI7B,IAHA7K,EAAIk9Q,EAAOryQ,GACXqyQ,EAAOryQ,GAAGyW,KAAO47P,EAAOryQ,GAAGyW,MAAQ,QAE9BjH,EAAI,EAAGA,EAAIra,EAAE6T,KAAKpI,OAAQ4O,IAC7B/Z,EAAIN,EAAE6T,KAAKwG,GAGNomQ,EAFLr6Q,EAAqB,aAAfggR,EAA4B9lR,EAAE,GAAG8jB,UAAY9jB,EAAE,MAGnDmgR,EAAKr6Q,GAAO,IAAI8b,MAAMg7P,EAAOzxQ,QAC7Bm1Q,EAAanvQ,KAAKrL,IAGpBq6Q,EAAKr6Q,GAAKyE,GAAKuyQ,EAAQ98Q,EAAE,IAI7B,IAEIsT,EAFA8sQ,EAAQ,GACRvzQ,GAAM,EAGV,IAAKkN,EAAI,EAAGA,EAAIumQ,EAAan1Q,OAAQ4O,IACnCxP,EAAI+1Q,EAAavmQ,GAEE,aAAf+rQ,GACFxyQ,EAAQ,IAAI+H,KAAKyhQ,EAAQvyQ,IACzBsC,EAAMA,GAAOoxQ,EAAM3qQ,IAEnBA,EADwB,WAAfwyQ,EACDhJ,EAAQvyQ,GAERA,EAGV61Q,EAAMjvQ,KAAK,CAACmC,GAAOwG,OAAOqmQ,EAAK51Q,KAGjC,GAAmB,aAAfu7Q,EACF1F,EAAMn/O,KAAK08O,QACN,GAAmB,WAAfmI,EAAyB,CAGlC,IAFA1F,EAAMn/O,KAAK28O,GAENrzQ,EAAI,EAAGA,EAAI61Q,EAAMj1Q,OAAQZ,IAC5B61Q,EAAM71Q,GAAG,GAAKsyQ,EAAMuD,EAAM71Q,GAAG,IAG/Bu7Q,EAAa,SAIf,IAAIvyQ,EAAO,IAAIpQ,KAAKu6Q,QAAQiH,cAAcC,UAI1C,IAHAkB,EAA4B,aAAfA,GAA6Bj5Q,EAAM,OAASi5Q,EACzDvyQ,EAAKsxQ,UAAUiB,EAAY,IAEtBv7Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAC7BgJ,EAAKsxQ,UAAU,SAAUjI,EAAOryQ,GAAGyW,MAIrC,OADAzN,EAAKuxQ,QAAQ1E,GACN7sQ,GAGT,IAAIwyQ,GAAkB,GAClBC,GAAkB,EAClBC,GAAc,EAElB,SAASC,GAAY5hP,EAAKouJ,EAASlyK,GACjCulQ,GAAgB50Q,KAAK,CAACmzB,EAAKouJ,EAASlyK,IACpC2lQ,KAGF,SAASA,KACP,GAAIH,GAAkBC,GAAa,CACjC,IAAItlQ,EAAUolQ,GAAgBtyO,QAE1B9yB,IACFqlQ,KACAI,GAAQzlQ,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,IACxCwlQ,OAKN,SAASE,KACPL,KACAG,KAGF,SAASC,GAAQ9hP,EAAKouJ,EAASlyK,GAC7B8lQ,GAAShiP,EAAKouJ,GAAS,SAAU6zF,EAAOC,EAAYC,GAClD,IAAI1lQ,EAAiC,kBAAhB0lQ,EAA2BA,EAAcA,EAAY1lQ,QAC1EP,EAAMO,MAIV,SAASulQ,GAAShiP,EAAKouJ,EAASlyK,GAC9B,IAAI/I,EAAI2C,OAAO2pB,QAAU3pB,OAAOssQ,OAAStsQ,OAAO3C,EAEhD,GAAIA,GAAKA,EAAE+6K,KACT/6K,EAAE+6K,KAAK,CACLK,SAAU,OACVvuJ,IAAKA,EACLouJ,QAASA,EACTlyK,MAAOA,EACPo/C,SAAUymN,SAEP,CACL,IAAI1yK,EAAM,IAAIC,eACdD,EAAI/uG,KAAK,MAAO0/B,GAAK,GACrBqvE,EAAIG,iBAAiB,eAAgB,oBAErCH,EAAI9zC,OAAS,WACXwmN,KAEmB,MAAf1yK,EAAIO,OACNw+E,EAAQp1J,KAAKjf,MAAMs1F,EAAIyyC,cAAezyC,EAAI0yC,WAAY1yC,GAEtDnzF,EAAMmzF,EAAK,QAASA,EAAI0yC,aAI5B1yC,EAAIhsE,QAIR,IAAIlnB,GAAS,GACT41N,GAAW,GAEf,SAASswC,GAAQzmQ,EAASg/B,GACpB3kC,SAASyY,KAAK4zP,UAChB1mQ,EAAQ0mQ,UAAY1nO,EAEpBh/B,EAAQxZ,YAAcw4C,EAK1B,SAAS2nO,GAAW3mQ,EAASa,EAAS+lQ,GAC/BA,IACH/lQ,EAAU,wBAA0BA,GAGtC4lQ,GAAQzmQ,EAASa,GACjBb,EAAQpM,MAAM+mI,MAAQ,UAGxB,SAASksI,GAAalrI,GACpB,IACEA,EAAMmrI,WACN,MAAOxsQ,GAEP,MADAqsQ,GAAWhrI,EAAM37H,QAAS1F,EAAIuG,SACxBvG,GAIV,SAASysQ,GAAgBprI,EAAOqrI,GAC9B,GAA0B,kBAAfA,EACThB,GAAYgB,GAAY,SAAU3zQ,GAChCsoI,EAAMsrI,QAAU5zQ,EAChBwzQ,GAAalrI,MACZ,SAAU96H,GACX8lQ,GAAWhrI,EAAM37H,QAASa,WAEvB,GAA0B,oBAAfmmQ,EAChB,IACEA,GAAW,SAAU3zQ,GACnBsoI,EAAMsrI,QAAU5zQ,EAChBwzQ,GAAalrI,MACZ,SAAU96H,GACX8lQ,GAAWhrI,EAAM37H,QAASa,GAAS,MAErC,MAAOvG,GACPqsQ,GAAWhrI,EAAM37H,QAAS1F,GAAK,QAGjCqhI,EAAMsrI,QAAUD,EAChBH,GAAalrI,GAIjB,SAASurI,GAAkBvrI,GACzB,IAAI37H,EAAU27H,EAAM37H,QAChB63D,EAAOx9D,SAASwN,cAAc,KAC9Bs/P,EAAWxrI,EAAMvhI,QAAQ+sQ,UAEZ,IAAbA,EACFA,EAAW,GACkB,kBAAbA,IAChBA,EAAW,CACT7xL,SAAU6xL,IAIdtvM,EAAKsvM,SAAWA,EAAS7xL,UAAY,YAErCzd,EAAKjkE,MAAM6R,SAAW,WACtBoyD,EAAKjkE,MAAMvB,IAAM,OACjBwlE,EAAKjkE,MAAM4rB,MAAQ,OACnBq4C,EAAKjkE,MAAM0zJ,OAAS,IACpBzvF,EAAKjkE,MAAM0gI,WAAa,OACxBz8D,EAAKhwE,OAAS,SAEd,IAAI43D,EAAQplD,SAASwN,cAAc,OACnC43C,EAAM8lB,IAAM,WACZ9lB,EAAM7rD,MAAM6mM,OAAS,OAGrBh7I,EAAM3oB,IAAM,q4BACZ+gC,EAAKhvD,YAAY42C,GACjBz/C,EAAQpM,MAAM6R,SAAW,WACzBk2H,EAAMyrI,oBAAqB,EAE3BzrI,EAAM0rI,aAAep6D,GAASjtM,EAAS,aAAa,SAAUrC,GAC5D,IAAI2pQ,EAAU3pQ,EAAE+c,cAEV4sP,IAAWA,IAAYrkR,MAASskR,GAAQtkR,KAAMqkR,MAAa3rI,EAAMvhI,QAAQ+sQ,WAC7EtvM,EAAKnzC,KAAOi3G,EAAM6rI,QAAQL,GAC1BnnQ,EAAQ6I,YAAYgvD,OAIxB8jE,EAAM8rI,aAAex6D,GAASjtM,EAAS,YAAY,SAAUrC,GAC3D,IAAI2pQ,EAAU3pQ,EAAE+c,cAEX4sP,IAAWA,IAAYrkR,MAASskR,GAAQtkR,KAAMqkR,KAC7CzvM,EAAKxvD,YACPwvD,EAAKxvD,WAAWH,YAAY2vD,MAOpC,SAASo1I,GAASrlM,EAAMrW,EAAO6b,GAC7B,GAAIxF,EAAK7e,iBAEP,OADA6e,EAAK7e,iBAAiBwI,EAAO6b,GAAI,GAC1BA,EAEP,IAAIs6P,EAAM,WAER,OAAOt6P,EAAGpqB,KAAK4kB,EAAM1N,OAAO3I,QAI9B,OADAqW,EAAK+kD,YAAY,KAAOp7D,EAAOm2Q,GACxBA,EAIX,SAASx6D,GAAYtlM,EAAMrW,EAAO6b,GAC5BxF,EAAK5e,oBACP4e,EAAK5e,oBAAoBuI,EAAO6b,GAAI,GAEpCxF,EAAK+/P,YAAY,KAAOp2Q,EAAO6b,GAKnC,SAASm6P,GAAQjmQ,EAAG4K,GAClB,GAAI5K,IAAM4K,EACR,OAAO,EAGT,KAAOA,GAAKA,IAAM5K,GAChB4K,EAAIA,EAAE7D,WAGR,OAAO6D,IAAM5K,EAGf,SAASsmQ,GAAepK,GACtB,GAAIA,EAAS,CACX,GAAwB,eAApBA,EAAQ7sH,QACV,OAAO+xH,GACF,GAAIlF,EAAQ+H,OACjB,OAAOlB,GACF,GAAI32J,EAAW8vJ,GACpB,OAAOyD,EAIX,MAAM,IAAI37Q,MAAM,mBAGlB,SAASuiR,GAAWrK,GAClB,IACI16Q,EAAU,IADI8kR,GAAepK,GACnB,CAAgBA,IAEK,IAA/BrnC,GAASvrO,QAAQ9H,IACnBqzO,GAASllO,KAAKnO,GAIlB,SAASglR,KACH,UAAW5tQ,QACb2tQ,GAAW3tQ,OAAOo5H,OAGhB,eAAgBp5H,QAClB2tQ,GAAW3tQ,OAAO6tQ,YAGhB7tQ,OAAO8tQ,QAAU9tQ,OAAO8tQ,OAAOzC,QACjCsC,GAAW3tQ,OAAO8tQ,QAItB,SAASC,GAAU50Q,EAAMmsQ,GACvB,GAAkB,aAAdA,GAA0C,aAAdA,GAA0C,aAAdA,EAC1D,OAAuB,IAAhBnsQ,EAAKpI,OAEZ,IAAK,IAAIZ,EAAI,EAAGA,EAAIgJ,EAAKpI,OAAQZ,IAC/B,GAAIgJ,EAAKhJ,GAAGgJ,KAAKpI,OAAS,EACxB,OAAO,EAIX,OAAO,EAIX,SAASi9Q,GAAY1I,EAAW7jI,GAC1BA,EAAMvhI,QAAQ1M,UAAYiuI,EAAMvhI,QAAQ1M,SAAS+8G,OAASw9J,GAAUtsI,EAAMtoI,KAAMmsQ,GAClFiH,GAAQ9qI,EAAM37H,QAAS27H,EAAMvhI,QAAQ1M,SAAS+8G,QAE9C09J,GAAY3I,EAAW7jI,GAEnBA,EAAMvhI,QAAQ+sQ,WAAaxrI,EAAMyrI,oBAAwC,YAAlBzrI,EAAM74I,SAC/DokR,GAAkBvrI,IAOxB,SAASwsI,GAAY3I,EAAW7jI,GAC9B,IAAItxI,EAAGvH,EAASslR,EAAQC,EAKxB,IAJAD,EAAS,SAAW5I,EACpB6I,EAAc1sI,EAAMvhI,QAAQtX,QAC5BglR,KAEKz9Q,EAAI,EAAGA,EAAI8rO,GAASlrO,OAAQZ,IAG/B,GAFAvH,EAAUqzO,GAAS9rO,KAEbg+Q,GAAeA,IAAgBvlR,EAAQge,OAAS4sG,EAAW5qH,EAAQslR,IAGvE,OAFAzsI,EAAM74I,QAAUA,EAAQge,KACxB66H,EAAM2sI,gBAAkBxlR,EACjBA,EAAQslR,GAAQzsI,GAI3B,MAAIw6F,GAASlrO,OAAS,EACd,IAAI3F,MAAM,iCAAmCk6Q,GAE7C,IAAIl6Q,MAAM,2EAKpB,IAAIijR,GAAiB,SAAU3iR,EAAK4iR,GASlC,OAPE5iR,EADc,WAAZ4iR,EACI5L,EAAQh3Q,GACO,aAAZ4iR,EACHttQ,EAAOtV,GAEP+2Q,EAAM/2Q,IAMZ6iR,GAAmB,SAAUp1Q,EAAMm1Q,GACrC,IACI5iR,EACAiU,EAFA4H,EAAI,GAIR,IAAK5H,EAAI,EAAGA,EAAIxG,EAAKpI,OAAQ4O,IACX,WAAZ2uQ,EACF/mQ,EAAExQ,KAAK,CAAC2rQ,EAAQvpQ,EAAKwG,GAAG,IAAK+iQ,EAAQvpQ,EAAKwG,GAAG,IAAK+iQ,EAAQvpQ,EAAKwG,GAAG,OAElEjU,EAAM2iR,GAAel1Q,EAAKwG,GAAG,GAAI2uQ,GACjC/mQ,EAAExQ,KAAK,CAACrL,EAAKg3Q,EAAQvpQ,EAAKwG,GAAG,OAUjC,MANgB,aAAZ2uQ,EACF/mQ,EAAEsf,KAAK08O,GACc,WAAZ+K,GACT/mQ,EAAEsf,KAAK28O,GAGFj8P,GAGT,SAASinQ,GAAYhM,EAAQiM,EAAYvuQ,GACvC,OAAI6tQ,GAAUvL,IACPtiQ,EAAQymQ,OAAQzmQ,EAAQ0mQ,MAAW1mQ,EAAQymQ,OAAQ12J,EAAO/vG,EAAQymQ,OAAYzmQ,EAAQ0mQ,OAAQ32J,EAAO/vG,EAAQ0mQ,MAGzG,SAFA,WAIA8H,GAAwBlM,EAAQxyJ,GAClC,UACGy+J,GAAcC,GAAwBlM,EAAQvyJ,GACjD,WAEA,SAIX,SAASy+J,GAAwBlM,EAAQ3hQ,GACvC,IAAI1Q,EAAGwP,EAAGxG,EAEV,IAAKhJ,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAG7B,IAFAgJ,EAAOwpQ,EAAMH,EAAOryQ,GAAGgJ,MAElBwG,EAAI,EAAGA,EAAIxG,EAAKpI,OAAQ4O,IAC3B,IAAKkB,EAAK1H,EAAKwG,GAAG,IAChB,OAAO,EAKb,OAAO,EAKT,SAASgvQ,GAAWnM,GAClB,IACIryQ,EACAwP,EAFAkpQ,EAAY,GAIhB,IAAK14Q,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAAK,CAClC,IAAIq5E,EAAO,GAEX,IAAK7pE,KAAK6iQ,EAAOryQ,GACXqyQ,EAAOryQ,GAAGmT,eAAe3D,KAC3B6pE,EAAK7pE,GAAK6iQ,EAAOryQ,GAAGwP,IAIxBkpQ,EAAU9xQ,KAAKyyE,GAGjB,OAAOq/L,EAGT,SAAS+F,GAAcntI,EAAO6sI,EAASG,GACrC,IAAIt+Q,EACA8R,EAAOw/H,EAAMvhI,QACbsiQ,EAAS/gI,EAAMsrI,QAgBnB,KAdKt5O,EAAQ+uO,IAAgC,kBAAdA,EAAO,IAAmB/uO,EAAQ+uO,EAAO,KACtEA,EAAS,CAAC,CACR57P,KAAM3E,EAAK7L,MACX+C,KAAMqpQ,IAER/gI,EAAMohI,YAAa,GAEnBphI,EAAMohI,YAAa,EAKrBL,EAASmM,GAAWnM,GAEfryQ,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAC7BqyQ,EAAOryQ,GAAGgJ,KAAOwpQ,EAAMH,EAAOryQ,GAAGgJ,MAKnC,IAFAsoI,EAAMwkI,MAAQqI,IAAoBrsQ,EAAK4sQ,SAAW,SAAWL,GAAYhM,EAAQiM,EAAYxsQ,IAExF9R,EAAI,EAAGA,EAAIqyQ,EAAOzxQ,OAAQZ,IAC7BqyQ,EAAOryQ,GAAGgJ,KAAOo1Q,GAAiB/L,EAAOryQ,GAAGgJ,KAAMsoI,EAAMwkI,OAG1D,OAAOzD,EAGT,SAASsM,GAAcrtI,GACrB,IACItxI,EADA4+Q,EAAcpM,EAAMlhI,EAAMsrI,SAG9B,IAAK58Q,EAAI,EAAGA,EAAI4+Q,EAAYh+Q,OAAQZ,IAClC4+Q,EAAY5+Q,GAAK,CAACsyQ,EAAMsM,EAAY5+Q,GAAG,IAAKuyQ,EAAQqM,EAAY5+Q,GAAG,KAGrE,OAAO4+Q,EAIT,IAAI31I,GAAQ,SAAetzH,EAASgnQ,EAAY5sQ,GAC9C,IAAIyrO,EAEJ,GAAuB,kBAAZ7lO,IACT6lO,EAAY7lO,IACZA,EAAU3F,SAAS28B,eAAeh3B,KAGhC,MAAM,IAAI1a,MAAM,sBAAwBugP,GAI5C5iP,KAAK+c,QAAUA,EACf/c,KAAKmX,QAAU66D,EAAMi0M,GAAU9uQ,QAASA,GAAW,IACnDnX,KAAK+jR,WAAaA,EAClBkC,GAAU3D,OAAOvlQ,EAAQq4B,IAAMp1C,KAC/B8jR,GAAgB9jR,KAAM+jR,GAElB/jR,KAAKmX,QAAQy0E,SACf5rF,KAAKkmR,gBAIT71I,GAAMjvI,UAAU+kR,WAAa,WAC3B,OAAOnmR,KAAK+c,SAGdszH,GAAMjvI,UAAUglR,cAAgB,WAC9B,OAAOpmR,KAAK+jR,YAGd1zI,GAAMjvI,UAAU6vE,QAAU,WACxB,OAAOjxE,KAAKoQ,MAGdigI,GAAMjvI,UAAUilR,WAAa,WAC3B,OAAOrmR,KAAKmX,SAGdk5H,GAAMjvI,UAAUklR,eAAiB,WAC/B,OAAOtmR,KAAK04I,OAGdrI,GAAMjvI,UAAUmlR,WAAa,WAC3B,OAAOvmR,KAAKH,SAGdwwI,GAAMjvI,UAAUolR,WAAa,SAAoBzC,EAAY5sQ,GAC3DnX,KAAK+jR,WAAaA,EAEd5sQ,GACFnX,KAAKymR,gBAAgBtvQ,GAGvB2sQ,GAAgB9jR,KAAM+jR,IAGxB1zI,GAAMjvI,UAAU4zJ,WAAa,SAAoB79I,GAC/CnX,KAAKymR,gBAAgBtvQ,GAErBnX,KAAK+wB,UAGPs/G,GAAMjvI,UAAU2vB,OAAS,WACvB+yP,GAAgB9jR,KAAMA,KAAKgkR,UAG7B3zI,GAAMjvI,UAAUslR,YAAc,WAC5B,GAA+B,kBAApB1mR,KAAK+jR,WAAyB,CAEvC,IAAI4C,GAAwC,IAAlC3mR,KAAK+jR,WAAWp8Q,QAAQ,KAAc,IAAM,IAEtDm8Q,GAAgB9jR,KADNA,KAAK+jR,WAAa4C,EAAM,MAAO,IAAIzuQ,MAAOyI,eAEhB,oBAApB3gB,KAAK+jR,YACrBD,GAAgB9jR,KAAMA,KAAK+jR,aAI/B1zI,GAAMjvI,UAAU8kR,aAAe,WAC7B,IAAI7E,EAASrhR,KACT4rF,EAAU5rF,KAAKmX,QAAQy0E,QAE3B,GAAIA,GAAsC,kBAApB5rF,KAAK+jR,YAAsD,oBAApB/jR,KAAK+jR,WAChE,MAAM,IAAI1hR,MAAM,qDAGlB,IAAKrC,KAAK4mR,WAAY,CACpB,IAAIh7L,EAKF,MAAM,IAAIvpF,MAAM,uBAJhBrC,KAAK4mR,WAAa1iB,aAAY,WAC5Bmd,EAAOqF,gBACI,IAAV96L,KAOTykD,GAAMjvI,UAAUylR,YAAc,WACxB7mR,KAAK4mR,aACPziB,cAAcnkQ,KAAK4mR,YACnB5mR,KAAK4mR,WAAa,OAItBv2I,GAAMjvI,UAAUmjR,QAAU,SAAiBL,GACzC,GAAqB,YAAjBlkR,KAAKH,QAAuB,CAC9B,GAAIqkR,GAAYA,EAAS4C,YAAsC,gBAAxB5C,EAAS4C,WAA8B,CAE5E,IAAIzwI,EAASr2I,KAAK04I,MAAMA,MAAMrC,OAC1BnF,EAAMlxI,KAAK04I,MAAMA,MAAMxH,IACvB61I,EAAY3vQ,SAASwN,cAAc,UACnCoiQ,EAASD,EAAUvgE,WAAW,MAMlC,OALAugE,EAAUv5P,MAAQ0jH,EAAImF,OAAO7oH,MAC7Bu5P,EAAU53Q,OAAS+hI,EAAImF,OAAOlnI,OAC9B63Q,EAAOvwI,UAAYytI,EAAS4C,WAC5BE,EAAOlvE,SAAS,EAAG,EAAGivE,EAAUv5P,MAAOu5P,EAAU53Q,QACjD63Q,EAAO78E,UAAU9zD,EAAQ,EAAG,GACrB0wI,EAAUnvD,UAAU,aAE3B,OAAO53N,KAAK04I,MAAMi/E,gBAKpB,OAAO,MAIXtnF,GAAMjvI,UAAUC,QAAU,WACpBrB,KAAKqlR,iBACPrlR,KAAKqlR,gBAAgBhkR,QAAQrB,MAG3BA,KAAKokR,cACPn6D,GAAYjqN,KAAK+c,QAAS,YAAa/c,KAAKokR,cAG1CpkR,KAAKwkR,cACPv6D,GAAYjqN,KAAK+c,QAAS,WAAY/c,KAAKwkR,eAI/Cn0I,GAAMjvI,UAAUqlR,gBAAkB,SAAyBtvQ,GACzD,IAAI8vQ,EAAgB9vQ,EAAQy0E,SAAWz0E,EAAQy0E,UAAY5rF,KAAKmX,QAAQy0E,QACxE5rF,KAAKmX,QAAU66D,EAAMi0M,GAAU9uQ,QAASA,GAEpC8vQ,IACFjnR,KAAK6mR,cACL7mR,KAAKkmR,iBAIT71I,GAAMjvI,UAAUyiR,SAAW,WACzB7jR,KAAKoQ,KAAOpQ,KAAKknR,gBACjBjC,GAAYjlR,KAAKmnR,cAAennR,OAGlCqwI,GAAMjvI,UAAU+gR,SAAW,WACzB,OAAO7kQ,IAGT,IA4LI2oQ,GAAY,CACdzD,UA7L2B,SAAUnyI,GACrC,SAASmyI,IACPnyI,EAAMxsI,MAAM7D,KAAM8D,WAepB,OAZIusI,IAAOmyI,EAAU9sO,UAAY26F,GACjCmyI,EAAUphR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WACnDohR,EAAUphR,UAAUuY,YAAc6oQ,EAElCA,EAAUphR,UAAU8lR,cAAgB,WAClC,OAAOrB,GAAc7lR,OAGvBwiR,EAAUphR,UAAU+lR,YAAc,WAChC,MAAO,aAGF3E,EAjBoB,CAkB3BnyI,IA4KA+2I,SA1K0B,SAAU/2I,GACpC,SAAS+2I,IACP/2I,EAAMxsI,MAAM7D,KAAM8D,WAepB,OAZIusI,IAAO+2I,EAAS1xO,UAAY26F,GAChC+2I,EAAShmR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WAClDgmR,EAAShmR,UAAUuY,YAAcytQ,EAEjCA,EAAShmR,UAAU8lR,cAAgB,WACjC,OAAOnB,GAAc/lR,OAGvBonR,EAAShmR,UAAU+lR,YAAc,WAC/B,MAAO,YAGFC,EAjBmB,CAkB1B/2I,IAyJAg3I,YAvJ6B,SAAUh3I,GACvC,SAASg3I,IACPh3I,EAAMxsI,MAAM7D,KAAM8D,WAepB,OAZIusI,IAAOg3I,EAAY3xO,UAAY26F,GACnCg3I,EAAYjmR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WACrDimR,EAAYjmR,UAAUuY,YAAc0tQ,EAEpCA,EAAYjmR,UAAU8lR,cAAgB,WACpC,OAAOrB,GAAc7lR,KAAM,MAAM,IAGnCqnR,EAAYjmR,UAAU+lR,YAAc,WAClC,MAAO,eAGFE,EAjBsB,CAkB7Bh3I,IAsIAi3I,SApI0B,SAAUj3I,GACpC,SAASi3I,IACPj3I,EAAMxsI,MAAM7D,KAAM8D,WAepB,OAZIusI,IAAOi3I,EAAS5xO,UAAY26F,GAChCi3I,EAASlmR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WAClDkmR,EAASlmR,UAAUuY,YAAc2tQ,EAEjCA,EAASlmR,UAAU8lR,cAAgB,WACjC,OAAOrB,GAAc7lR,KAAM,MAAM,IAGnCsnR,EAASlmR,UAAU+lR,YAAc,WAC/B,MAAO,YAGFG,EAjBmB,CAkB1Bj3I,IAmHAk3I,UAjH2B,SAAUl3I,GACrC,SAASk3I,IACPl3I,EAAMxsI,MAAM7D,KAAM8D,WAepB,OAZIusI,IAAOk3I,EAAU7xO,UAAY26F,GACjCk3I,EAAUnmR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WACnDmmR,EAAUnmR,UAAUuY,YAAc4tQ,EAElCA,EAAUnmR,UAAU8lR,cAAgB,WAClC,OAAOrB,GAAc7lR,OAGvBunR,EAAUnmR,UAAU+lR,YAAc,WAChC,MAAO,aAGFI,EAjBoB,CAkB3Bl3I,IAgGAqyI,SA9F0B,SAAUryI,GACpC,SAASqyI,IACPryI,EAAMxsI,MAAM7D,KAAM8D,WAepB,OAZIusI,IAAOqyI,EAAShtO,UAAY26F,GAChCqyI,EAASthR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WAClDshR,EAASthR,UAAUuY,YAAc+oQ,EAEjCA,EAASthR,UAAU8lR,cAAgB,WACjC,OAAOnB,GAAc/lR,OAGvB0iR,EAASthR,UAAU+lR,YAAc,WAC/B,MAAO,YAGFzE,EAjBmB,CAkB1BryI,IA6EAm3I,aA3E8B,SAAUn3I,GACxC,SAASm3I,IACPn3I,EAAMxsI,MAAM7D,KAAM8D,WAepB,OAZIusI,IAAOm3I,EAAa9xO,UAAY26F,GACpCm3I,EAAapmR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WACtDomR,EAAapmR,UAAUuY,YAAc6tQ,EAErCA,EAAapmR,UAAU8lR,cAAgB,WACrC,OAAOrB,GAAc7lR,KAAM,WAG7BwnR,EAAapmR,UAAU+lR,YAAc,WACnC,MAAO,gBAGFK,EAjBuB,CAkB9Bn3I,IA0DAo3I,YAxD6B,SAAUp3I,GACvC,SAASo3I,IACPp3I,EAAMxsI,MAAM7D,KAAM8D,WAepB,OAZIusI,IAAOo3I,EAAY/xO,UAAY26F,GACnCo3I,EAAYrmR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WACrDqmR,EAAYrmR,UAAUuY,YAAc8tQ,EAEpCA,EAAYrmR,UAAU8lR,cAAgB,WACpC,OAAOrB,GAAc7lR,KAAM,WAG7BynR,EAAYrmR,UAAU+lR,YAAc,WAClC,MAAO,eAGFM,EAjBsB,CAkB7Bp3I,IAuCAoyI,SArC0B,SAAUpyI,GACpC,SAASoyI,IACPpyI,EAAMxsI,MAAM7D,KAAM8D,WAuBpB,OApBIusI,IAAOoyI,EAAS/sO,UAAY26F,GAChCoyI,EAASrhR,UAAYZ,OAAO4lC,OAAOiqG,GAASA,EAAMjvI,WAClDqhR,EAASrhR,UAAUuY,YAAc8oQ,EAEjCA,EAASrhR,UAAU8lR,cAAgB,WACjC,IAAI9/Q,EACAgJ,EAAOpQ,KAAKgkR,QAEhB,IAAK58Q,EAAI,EAAGA,EAAIgJ,EAAKpI,OAAQZ,IAC3BgJ,EAAKhJ,GAAG,GAAK6Q,EAAO7H,EAAKhJ,GAAG,IAC5BgJ,EAAKhJ,GAAG,GAAK6Q,EAAO7H,EAAKhJ,GAAG,IAG9B,OAAOgJ,GAGTqyQ,EAASrhR,UAAU+lR,YAAc,WAC/B,MAAO,YAGF1E,EAzBmB,CA0B1BpyI,IAYAiyI,OAAQ,GACR1lI,UAAW,SAAUzlI,GACnB,IAAK,IAAIxU,KAAOwU,EACVA,EAAQoD,eAAe5X,KACzB2a,GAAO3a,GAAOwU,EAAQxU,KAI5B+kR,kBAAmB,SAAUxuQ,GAC3B+sQ,GAAU9uQ,QAAU+B,GAEtByuQ,UAAW,SAAU3kR,GACnB,IAAK,IAAI4kR,KAAW3B,GAAU3D,OACxB2D,GAAU3D,OAAO/nQ,eAAeqtQ,IAClC5kR,EAASijR,GAAU3D,OAAOsF,KAIhCtqQ,OAAQA,GACRnG,QAAS,GACT+7N,SAAUA,GACV0xC,WAAYA,GACZhmN,IAAK,SAAU/+D,GAEb,OADA+kR,GAAW/kR,GACJomR,KAUX,MANsB,qBAAXhvQ,QAA2BA,OAAOgvQ,YAC3ChvQ,OAAOgvQ,UAAYA,IAIrBA,GAAU9qP,QAAU8qP,GACbA,GA3jFyEvoR,I,qBCRlF,IAAI6X,EAAQ,EAAQ,QAChBq5B,EAAU,EAAQ,QAElB3zC,EAAQ,GAAGA,MAGfiN,EAAOC,QAAUoN,GAAM,WAGrB,OAAQ/U,OAAO,KAAKiW,qBAAqB,MACtC,SAAU1B,GACb,MAAsB,UAAf65B,EAAQ75B,GAAkB9Z,EAAM8E,KAAKgV,EAAI,IAAMvU,OAAOuU,IAC3DvU,Q,qBCZJ,OAQA,SAAWu0L,GACT,aAEA,IAAI8yF,EAuBJC,EAAS,IAGTC,EAAY,IAsBZ71F,EAAO,YACH/iB,EAAU+iB,EAAO,WACjB81F,EAAa74G,EAAU,iBACvB84G,EAAa94G,EAAU,gBACvB+4G,EAAch2F,EAAO,mBAEzBt0E,EAAI,GACAuqK,OAAY,EACZC,EAAU,uCAmGd,SAASlnQ,EAAMxN,EAAGymI,EAAIkuI,EAAIC,GACxB,IAAIC,EAAK70Q,EAAEuV,EACP7hB,EAAIsM,EAAEgH,EAAIy/H,EAAK,EAEnB,GAAI/yI,EAAImhR,EAAGvgR,OAAQ,CACjB,GAAW,IAAPqgR,EAEFC,EAAOC,EAAGnhR,IAAM,OACX,GAAW,IAAPihR,EACTC,EAAOC,EAAGnhR,GAAK,GAAc,GAATmhR,EAAGnhR,KAAYkhR,GAAQlhR,EAAI,GAAKmhR,EAAGnhR,EAAI,KAAO+gR,GAAyB,EAAZI,EAAGnhR,EAAI,SACjF,GAAW,IAAPihR,EACTC,EAAOA,KAAUC,EAAG,QAGpB,GADAD,GAAO,EACI,IAAPD,EAAU,MAAMhmR,MAAM4lR,GAG5B,GAAI7gR,EAAI,EACNmhR,EAAGvgR,OAAS,EAERsgR,GAEF50Q,EAAEgH,GAAKy/H,EACPouI,EAAG,GAAK,GAGRA,EAAG,GAAK70Q,EAAEgH,EAAI,MAEX,CAIL,GAFA6tQ,EAAGvgR,OAASZ,IAERkhR,EAEF,OAASC,EAAGnhR,GAAK,GACfmhR,EAAGnhR,GAAK,EAEHA,QACDsM,EAAEgH,EACJ6tQ,EAAG/uO,QAAQ,IAMjB,IAAKpyC,EAAImhR,EAAGvgR,QAASugR,IAAKnhR,IAAKmhR,EAAGl/N,YAE/B,GAAIg/N,EAAK,GAAKA,EAAK,GAAKA,MAASA,EACtC,MAAMhmR,MAAM4lR,GAGd,OAAOv0Q,EAiBT,SAASmH,EAAUnH,EAAG0hC,EAAI7jC,EAAGmN,GAC3B,IAAIhE,EACAne,EACAsrR,EAAMn0Q,EAAEiG,YACRwkL,GAAKzqL,EAAEuV,EAAE,GAEb,GAAI1X,IAAM42Q,EAAW,CACnB,GAAI52Q,MAAQA,GAAKA,GAAW,GAAN6jC,IAAY7jC,EAAIu2Q,EACpC,MAAMzlR,MAAY,GAAN+yC,EAAU+5H,EAAU,YAAc64G,GAWhD,IANAz2Q,EAAImN,GAFJhL,EAAI,IAAIm0Q,EAAIn0Q,IAEFgH,EAENhH,EAAEuV,EAAEjhB,SAAW0W,GAAGwC,EAAMxN,EAAGnC,EAAGs2Q,EAAIW,IAE5B,GAANpzO,IAAS12B,EAAIhL,EAAEgH,EAAInJ,EAAI,GAEpBmC,EAAEuV,EAAEjhB,OAAS0W,GAAIhL,EAAEuV,EAAEjb,KAAK,GAOnC,GAJA0M,EAAIhH,EAAEgH,EAENnJ,GADAhV,EAAImX,EAAEuV,EAAE7S,KAAK,KACPpO,OAEI,GAANotC,IAAkB,GAANA,GAAiB,GAANA,GAAW12B,GAAKhE,GAAKA,GAAKmtQ,EAAIY,IAAM/tQ,GAAKmtQ,EAAIa,IACtEnsR,EAAIA,EAAEwV,OAAO,IAAMR,EAAI,EAAI,IAAMhV,EAAEqL,MAAM,GAAK,KAAO8S,EAAI,EAAI,IAAM,MAAQA,OACtE,GAAIA,EAAI,EAAG,CAChB,OAASA,GAAIne,EAAI,IAAMA,EAEvBA,EAAI,KAAOA,OACN,GAAIme,EAAI,EACb,KAAMA,EAAInJ,EAAG,IAAKmJ,GAAKnJ,EAAGmJ,KAAMne,GAAK,SAAame,EAAInJ,IAAGhV,EAAIA,EAAEqL,MAAM,EAAG8S,GAAK,IAAMne,EAAEqL,MAAM8S,SAClFnJ,EAAI,IACbhV,EAAIA,EAAEwV,OAAO,GAAK,IAAMxV,EAAEqL,MAAM,IAGlC,OAAO8L,EAAEnX,EAAI,KAAO4hM,GAAW,GAAN/oJ,GAAW,IAAM74C,EAAIA,EAQhDqhH,EAAEjlG,IAAM,WACN,IAAIjF,EAAI,IAAI1T,KAAK2Z,YAAY3Z,MAE7B,OADA0T,EAAEnX,EAAI,EACCmX,GASTkqG,EAAE+qK,IAAM,SAAU1rR,GAChB,IAAI2rR,EACAl1Q,EAAI1T,KACJuoR,EAAK70Q,EAAEuV,EACP4/P,GAAM5rR,EAAI,IAAIyW,EAAEiG,YAAY1c,IAAIgsB,EAChC7hB,EAAIsM,EAAEnX,EACNqa,EAAI3Z,EAAEV,EACNmiB,EAAIhL,EAAEgH,EACNmN,EAAI5qB,EAAEyd,EAEV,IAAK6tQ,EAAG,KAAOM,EAAG,GAAI,OAAQN,EAAG,GAAuBnhR,EAAjByhR,EAAG,IAAUjyQ,EAAL,EAE/C,GAAIxP,GAAKwP,EAAG,OAAOxP,EAGnB,GAFAwhR,EAAQxhR,EAAI,EAERsX,GAAKmJ,EAAG,OAAOnJ,EAAImJ,EAAI+gQ,EAAQ,GAAK,EAGxC,IAFAhyQ,GAAK8H,EAAI6pQ,EAAGvgR,SAAW6f,EAAIghQ,EAAG7gR,QAAU0W,EAAImJ,EAEvCzgB,GAAK,IAAKA,EAAIwP,GACjB,GAAI2xQ,EAAGnhR,IAAMyhR,EAAGzhR,GAAI,OAAOmhR,EAAGnhR,GAAKyhR,EAAGzhR,GAAKwhR,EAAQ,GAAK,EAI1D,OAAOlqQ,GAAKmJ,EAAI,EAAInJ,EAAImJ,EAAI+gQ,EAAQ,GAAK,GAQ3ChrK,EAAEojD,IAAM,SAAU/jK,GAChB,IAAIyW,EAAI1T,KACJ6nR,EAAMn0Q,EAAEiG,YACRgF,EAAIjL,EAAEuV,EAEV3rB,GAAKL,EAAI,IAAI4qR,EAAI5qR,IAAIgsB,EAErBvK,EAAIhL,EAAEnX,GAAKU,EAAEV,EAAI,GAAK,EAClB49I,EAAK0tI,EAAIiB,GACb,GAAI3uI,MAASA,GAAMA,EAAK,GAAKA,EAAK2tI,EAAQ,MAAMzlR,MAAM2lR,GAEtD,IAAK1qR,EAAE,GAAI,MAAM+E,MAAM6lR,GAEvB,IAAKvpQ,EAAE,GAAI,OAAO,IAAIkpQ,EAAQ,EAAJnpQ,GAC1B,IAAIkgL,EACAmqF,EACAx3Q,EACAo3Q,EACAK,EACAC,EAAK3rR,EAAEsK,QACPshR,EAAKtqF,EAAKthM,EAAE0K,OACZmhR,EAAKxqQ,EAAE3W,OACPwW,EAAIG,EAAE/W,MAAM,EAAGg3L,GAEnBwqF,EAAK5qQ,EAAExW,OACH0kL,EAAIzvL,EAERosR,EAAK38F,EAAEzjK,EAAI,GACPqgQ,EAAK,EACLzsR,EAAIs9I,GAAMuyC,EAAEhyK,EAAIhH,EAAEgH,EAAIzd,EAAEyd,GAAK,EAOjC,IALAgyK,EAAEnwL,EAAImiB,EACNA,EAAI7hB,EAAI,EAAI,EAAIA,EAEhBosR,EAAGzvO,QAAQ,GAEJ4vO,IAAOxqF,GAAKpgL,EAAExQ,KAAK,GAE1B,EAAG,CAED,IAAKuD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEvB,GAAIqtL,IAAOwqF,EAAK5qQ,EAAExW,QAChB2gR,EAAM/pF,EAAKwqF,EAAK,GAAK,OAErB,IAAKJ,GAAM,EAAGL,EAAM,IAAKK,EAAKpqF,GAC5B,GAAIthM,EAAE0rR,IAAOxqQ,EAAEwqQ,GAAK,CAClBL,EAAMrrR,EAAE0rR,GAAMxqQ,EAAEwqQ,GAAM,GAAK,EAC3B,MAMN,KAAIL,EAAM,GAkBR,MAfA,IAAKI,EAAKK,GAAMxqF,EAAKthM,EAAI2rR,EAAIG,GAAK,CAChC,GAAI5qQ,IAAI4qQ,GAAML,EAAGK,GAAK,CAGpB,IAFAJ,EAAKI,EAEEJ,IAAOxqQ,IAAIwqQ,IAAMxqQ,EAAEwqQ,GAAM,IAE9BxqQ,EAAEwqQ,GACJxqQ,EAAE4qQ,IAAO,GAGX5qQ,EAAE4qQ,IAAOL,EAAGK,GAGd,MAAQ5qQ,EAAE,IAAKA,EAAE8xB,QAOrB+4O,EAAGC,KAAQX,EAAMp3Q,IAAMA,EAEnBiN,EAAE,IAAMmqQ,EAAKnqQ,EAAE4qQ,GAAMzqQ,EAAEuqQ,IAAO,EAAO1qQ,EAAI,CAACG,EAAEuqQ,WACxCA,IAAOC,GAAM3qQ,EAAE,KAAO2pQ,IAAczpQ,KAW9C,OARK2qQ,EAAG,IAAY,GAANC,IAEZD,EAAG/4O,QACHo8I,EAAEhyK,KAIA4uQ,EAAKzsR,GAAGqkB,EAAMwrK,EAAGvyC,EAAI0tI,EAAIW,GAAIhqQ,EAAE,KAAO2pQ,GACnCz7F,GAOT9uE,EAAEvhE,GAAK,SAAUp/C,GACf,OAAQ+C,KAAK2oR,IAAI1rR,IAQnB2gH,EAAE2rK,GAAK,SAAUtsR,GACf,OAAO+C,KAAK2oR,IAAI1rR,GAAK,GAQvB2gH,EAAE4rK,IAAM,SAAUvsR,GAChB,OAAO+C,KAAK2oR,IAAI1rR,IAAM,GAOxB2gH,EAAE6rK,GAAK,SAAUxsR,GACf,OAAO+C,KAAK2oR,IAAI1rR,GAAK,GAQvB2gH,EAAE8rK,IAAM,SAAUzsR,GAChB,OAAO+C,KAAK2oR,IAAI1rR,GAAK,GAOvB2gH,EAAE+rK,MAAQ/rK,EAAEgsK,IAAM,SAAU3sR,GAC1B,IAAImK,EACAwP,EACAwH,EACAyrQ,EACAn2Q,EAAI1T,KACJ6nR,EAAMn0Q,EAAEiG,YACRgF,EAAIjL,EAAEnX,EACNe,GAAKL,EAAI,IAAI4qR,EAAI5qR,IAAIV,EAEzB,GAAIoiB,GAAKrhB,EAEP,OADAL,EAAEV,GAAKe,EACAoW,EAAE+7B,KAAKxyC,GAGhB,IAAIsrR,EAAK70Q,EAAEuV,EAAErhB,QACTkiR,EAAKp2Q,EAAEgH,EACPmuQ,EAAK5rR,EAAEgsB,EACP8gQ,EAAK9sR,EAAEyd,EAEX,IAAK6tQ,EAAG,KAAOM,EAAG,GAEhB,OAAOA,EAAG,IAAM5rR,EAAEV,GAAKe,EAAGL,GAAK,IAAI4qR,EAAIU,EAAG,GAAK70Q,EAAI,GAIrD,GAAIiL,EAAImrQ,EAAKC,EAAI,CAWf,KAVIF,EAAOlrQ,EAAI,IACbA,GAAKA,EACLP,EAAImqQ,IAEJwB,EAAKD,EACL1rQ,EAAIyqQ,GAGNzqQ,EAAE0vB,UAEGxwC,EAAIqhB,EAAGrhB,KAAM8gB,EAAEpQ,KAAK,GAEzBoQ,EAAE0vB,eAKF,IAFAl3B,IAAMizQ,EAAOtB,EAAGvgR,OAAS6gR,EAAG7gR,QAAUugR,EAAKM,GAAI7gR,OAE1C2W,EAAIrhB,EAAI,EAAGA,EAAIsZ,EAAGtZ,IACrB,GAAIirR,EAAGjrR,IAAMurR,EAAGvrR,GAAI,CAClBusR,EAAOtB,EAAGjrR,GAAKurR,EAAGvrR,GAClB,MAkBN,GAZIusR,IACFzrQ,EAAImqQ,EACJA,EAAKM,EACLA,EAAKzqQ,EACLnhB,EAAEV,GAAKU,EAAEV,IAQNe,GAAKsZ,EAAIiyQ,EAAG7gR,SAAWZ,EAAImhR,EAAGvgR,SAAW,EAAG,KAAO1K,KAAMirR,EAAGnhR,KAAO,EAExE,IAAK9J,EAAI8J,EAAGwP,EAAI+H,GAAI,CAClB,GAAI4pQ,IAAK3xQ,GAAKiyQ,EAAGjyQ,GAAI,CACnB,IAAKxP,EAAIwP,EAAGxP,IAAMmhR,IAAKnhR,IAAKmhR,EAAGnhR,GAAK,IAElCmhR,EAAGnhR,GACLmhR,EAAG3xQ,IAAM,GAGX2xQ,EAAG3xQ,IAAMiyQ,EAAGjyQ,GAId,KAAmB,IAAZ2xQ,IAAKjrR,IAAWirR,EAAGl/N,MAG1B,KAAiB,IAAVk/N,EAAG,IACRA,EAAGj4O,UACDy5O,EAYJ,OATKxB,EAAG,KAENtrR,EAAEV,EAAI,EAENgsR,EAAK,CAACwB,EAAK,IAGb9sR,EAAEgsB,EAAIs/P,EACNtrR,EAAEyd,EAAIqvQ,EACC9sR,GAOT2gH,EAAEwT,IAAM,SAAUn0H,GAChB,IAAI+sR,EACAt2Q,EAAI1T,KACJ6nR,EAAMn0Q,EAAEiG,YACRgF,EAAIjL,EAAEnX,EACNe,GAAKL,EAAI,IAAI4qR,EAAI5qR,IAAIV,EACzB,IAAKU,EAAEgsB,EAAE,GAAI,MAAM5mB,MAAM6lR,GAKzB,OAJAx0Q,EAAEnX,EAAIU,EAAEV,EAAI,EACZytR,EAAmB,GAAZ/sR,EAAE0rR,IAAIj1Q,GACbA,EAAEnX,EAAIoiB,EACN1hB,EAAEV,EAAIe,EACF0sR,EAAa,IAAInC,EAAIn0Q,IACzBiL,EAAIkpQ,EAAIiB,GACRxrR,EAAIuqR,EAAIW,GACRX,EAAIiB,GAAKjB,EAAIW,GAAK,EAClB90Q,EAAIA,EAAEstJ,IAAI/jK,GACV4qR,EAAIiB,GAAKnqQ,EACTkpQ,EAAIW,GAAKlrR,EACF0C,KAAK2pR,MAAMj2Q,EAAE05D,MAAMnwE,MAO5B2gH,EAAEnuE,KAAOmuE,EAAEt4G,IAAM,SAAUrI,GACzB,IAAImhB,EACA1K,EAAI1T,KACJ6nR,EAAMn0Q,EAAEiG,YACRgF,EAAIjL,EAAEnX,EACNe,GAAKL,EAAI,IAAI4qR,EAAI5qR,IAAIV,EAEzB,GAAIoiB,GAAKrhB,EAEP,OADAL,EAAEV,GAAKe,EACAoW,EAAEi2Q,MAAM1sR,GAGjB,IAAI6sR,EAAKp2Q,EAAEgH,EACP6tQ,EAAK70Q,EAAEuV,EACP8gQ,EAAK9sR,EAAEyd,EACPmuQ,EAAK5rR,EAAEgsB,EAEX,IAAKs/P,EAAG,KAAOM,EAAG,GAAI,OAAOA,EAAG,GAAK5rR,EAAI,IAAI4qR,EAAIU,EAAG,GAAK70Q,EAAQ,EAAJiL,GAI7D,GAHA4pQ,EAAKA,EAAG3gR,QAGJ+W,EAAImrQ,EAAKC,EAAI,CAWf,IAVIprQ,EAAI,GACNorQ,EAAKD,EACL1rQ,EAAIyqQ,IAEJlqQ,GAAKA,EACLP,EAAImqQ,GAGNnqQ,EAAE0vB,UAEKnvB,KAAMP,EAAEpQ,KAAK,GAEpBoQ,EAAE0vB,UAYJ,IARIy6O,EAAGvgR,OAAS6gR,EAAG7gR,OAAS,IAC1BoW,EAAIyqQ,EACJA,EAAKN,EACLA,EAAKnqQ,GAGPO,EAAIkqQ,EAAG7gR,OAEF1K,EAAI,EAAGqhB,EAAG4pQ,EAAG5pQ,IAAM,GAAIrhB,GAAKirR,IAAK5pQ,GAAK4pQ,EAAG5pQ,GAAKkqQ,EAAGlqQ,GAAKrhB,GAAK,GAAK,EASrE,IANIA,IACFirR,EAAG/uO,QAAQl8C,KACTysR,GAICprQ,EAAI4pQ,EAAGvgR,OAAoB,IAAZugR,IAAK5pQ,IAAW4pQ,EAAGl/N,MAIvC,OAFApsD,EAAEgsB,EAAIs/P,EACNtrR,EAAEyd,EAAIqvQ,EACC9sR,GAWT2gH,EAAExxE,IAAM,SAAU76B,GAChB,IAAImC,EAAI1T,KACJwmH,EAAM,IAAI9yG,EAAEiG,YAAY,GACxB1c,EAAIupH,EACJoiK,EAAQr3Q,EAAI,EAChB,GAAIA,MAAQA,GAAKA,GAAI,KAAcA,EAAIw2Q,EAAW,MAAM1lR,MAAM8sK,EAAU,YAGxE,IAFIy5G,IAAOr3Q,GAAKA,GAGN,EAAJA,IAAOtU,EAAIA,EAAEmwE,MAAM15D,IACvBnC,IAAM,GAENmC,EAAIA,EAAE05D,MAAM15D,GAGd,OAAOk1Q,EAAQpiK,EAAIw6C,IAAI/jK,GAAKA,GAc9B2gH,EAAE18F,MAAQ,SAAUi5H,EAAIkuI,GACtB,IAAIR,EAAM7nR,KAAK2Z,YACf,GAAIwgI,IAAOguI,EAAWhuI,EAAK,OAAO,GAAIA,MAASA,GAAMA,GAAM2tI,GAAU3tI,EAAK2tI,EAAQ,MAAMzlR,MAAM2lR,GAC9F,OAAO9mQ,EAAM,IAAI2mQ,EAAI7nR,MAAOm6I,EAAIkuI,IAAOF,EAAYN,EAAIW,GAAKH,IAQ9DzqK,EAAEl3D,KAAO,WACP,IAAIloC,EACAyK,EACA7K,EACA1K,EAAI1T,KACJ6nR,EAAMn0Q,EAAEiG,YACRpd,EAAImX,EAAEnX,EACNme,EAAIhH,EAAEgH,EACNm8L,EAAO,IAAIgxE,EAAI,IAEnB,IAAKn0Q,EAAEuV,EAAE,GAAI,OAAO,IAAI4+P,EAAIn0Q,GAE5B,GAAInX,EAAI,EAAG,MAAM8F,MAAM6vL,EAAO,kBAKpB,KAHV31L,EAAImc,KAAKguC,KAAKhzC,EAAI,MAGHnX,IAAM,MACnB0sB,EAAIvV,EAAEuV,EAAE7S,KAAK,KACLpO,OAAS0S,EAAI,IAAIuO,GAAK,KAE9BvO,IAAMA,EAAI,GAAK,EAAI,IAAMA,EAAI,GAAS,EAAJA,GAClC8D,EAAI,IAAIqpQ,IAFRtrR,EAAImc,KAAKguC,KAAKz9B,KAEI,IAAQ,MAAQ1sB,EAAIA,EAAEoiO,iBAAiB/2N,MAAM,EAAGrL,EAAEoL,QAAQ,KAAO,IAAM+S,IAEzF8D,EAAI,IAAIqpQ,EAAItrR,GAGdme,EAAI8D,EAAE9D,GAAKmtQ,EAAIiB,IAAM,GAErB,GACE1qQ,EAAII,EACJA,EAAIq4L,EAAKzpI,MAAMhvD,EAAEqxB,KAAK/7B,EAAEstJ,IAAI5iJ,WACrBA,EAAE6K,EAAErhB,MAAM,EAAG8S,GAAGtE,KAAK,MAAQoI,EAAEyK,EAAErhB,MAAM,EAAG8S,GAAGtE,KAAK,KAE3D,OAAO8K,EAAM1C,EAAGqpQ,EAAIiB,IAAM,EAAGjB,EAAIW,KAOnC5qK,EAAExwC,MAAQwwC,EAAEqsK,IAAM,SAAUhtR,GAC1B,IAAIgsB,EACAvV,EAAI1T,KACJ6nR,EAAMn0Q,EAAEiG,YACR4uQ,EAAK70Q,EAAEuV,EACP4/P,GAAM5rR,EAAI,IAAI4qR,EAAI5qR,IAAIgsB,EACtBtK,EAAI4pQ,EAAGvgR,OACP1K,EAAIurR,EAAG7gR,OACPZ,EAAIsM,EAAEgH,EACN9D,EAAI3Z,EAAEyd,EAIV,GAFAzd,EAAEV,EAAImX,EAAEnX,GAAKU,EAAEV,EAAI,GAAK,GAEnBgsR,EAAG,KAAOM,EAAG,GAAI,OAAO,IAAIhB,EAAU,EAAN5qR,EAAEV,GAcvC,IAZAU,EAAEyd,EAAItT,EAAIwP,EAEN+H,EAAIrhB,IACN2rB,EAAIs/P,EACJA,EAAKM,EACLA,EAAK5/P,EACLrS,EAAI+H,EACJA,EAAIrhB,EACJA,EAAIsZ,GAIDqS,EAAI,IAAIxK,MAAM7H,EAAI+H,EAAIrhB,GAAIsZ,KAAMqS,EAAErS,GAAK,EAI5C,IAAKxP,EAAI9J,EAAG8J,KAAM,CAGhB,IAFA9J,EAAI,EAECsZ,EAAI+H,EAAIvX,EAAGwP,EAAIxP,GAElB9J,EAAI2rB,EAAErS,GAAKiyQ,EAAGzhR,GAAKmhR,EAAG3xQ,EAAIxP,EAAI,GAAK9J,EACnC2rB,EAAErS,KAAOtZ,EAAI,GAEbA,EAAIA,EAAI,GAAK,EAGf2rB,EAAErS,IAAMqS,EAAErS,GAAKtZ,GAAK,GAMtB,IAFIA,IAAKL,EAAEyd,EAAOuO,EAAEqnB,QAEflpC,EAAI6hB,EAAEjhB,QAASihB,IAAI7hB,IAAK6hB,EAAEogC,MAG/B,OADApsD,EAAEgsB,EAAIA,EACChsB,GAUT2gH,EAAE+gH,cAAgB,SAAUxkF,GAC1B,OAAOt/H,EAAU7a,KAAM,EAAGm6I,EAAIA,IAahCv8B,EAAEn0F,QAAU,SAAU0wH,GACpB,OAAOt/H,EAAU7a,KAAM,EAAGm6I,EAAIn6I,KAAK0a,EAAIy/H,IAWzCv8B,EAAE69J,YAAc,SAAUyO,GACxB,OAAOrvQ,EAAU7a,KAAM,EAAGkqR,EAAIA,EAAK,IAUrCtsK,EAAE9kG,SAAW,WACX,OAAO+B,EAAU7a,OAUnB49G,EAAEuJ,QAAUvJ,EAAEjgG,OAAS,WACrB,OAAO9C,EAAU7a,KAAM,KAIzB6nR,EAhxBA,SAASsC,IAOP,SAAStC,EAAIt2Q,GACX,IAAImC,EAAI1T,KAER,KAAM0T,aAAam0Q,GAAM,OAAOt2Q,IAAM42Q,EAAYgC,IAAU,IAAItC,EAAIt2Q,GAEhEA,aAAas2Q,GACfn0Q,EAAEnX,EAAIgV,EAAEhV,EACRmX,EAAEgH,EAAInJ,EAAEmJ,EACRhH,EAAEuV,EAAI1X,EAAE0X,EAAErhB,SA6BhB,SAAe8L,EAAGnC,GAChB,IAAImJ,EAAGtT,EAAGgjR,EAEV,GAAU,IAAN74Q,GAAW,EAAIA,EAAI,EAAGA,EAAI,UAAU,IAAK62Q,EAAQlqR,KAAKqT,GAAK,IAAK,MAAMlP,MAAM8sK,EAAU,UAE1Fz7J,EAAEnX,EAAmB,KAAfgV,EAAEQ,OAAO,IAAaR,EAAIA,EAAE3J,MAAM,IAAK,GAAK,GAE7C8S,EAAInJ,EAAE5J,QAAQ,OAAS,IAAG4J,EAAIA,EAAEzT,QAAQ,IAAK,MAE7CsJ,EAAImK,EAAE+iC,OAAO,OAAS,GAErB55B,EAAI,IAAGA,EAAItT,GACfsT,IAAMnJ,EAAE3J,MAAMR,EAAI,GAClBmK,EAAIA,EAAE+W,UAAU,EAAGlhB,IACVsT,EAAI,IAEbA,EAAInJ,EAAEvJ,QAKR,IAFAoiR,EAAK74Q,EAAEvJ,OAEFZ,EAAI,EAAGA,EAAIgjR,GAAqB,KAAf74Q,EAAEQ,OAAO3K,MAAcA,EAE7C,GAAIA,GAAKgjR,EAEP12Q,EAAEuV,EAAI,CAACvV,EAAEgH,EAAI,OACR,CAEL,KAAO0vQ,EAAK,GAAuB,KAAlB74Q,EAAEQ,SAASq4Q,KAK5B,IAHA12Q,EAAEgH,EAAIA,EAAItT,EAAI,EACdsM,EAAEuV,EAAI,GAEDvO,EAAI,EAAGtT,GAAKgjR,GAAK12Q,EAAEuV,EAAEvO,MAAQnJ,EAAEQ,OAAO3K,MA5DzC8T,CAAMxH,EAAGnC,GAQXmC,EAAEiG,YAAckuQ,EASlB,OANAA,EAAIzmR,UAAYw8G,EAChBiqK,EAAIiB,GAlFD,GAmFHjB,EAAIW,GAxED,EAyEHX,EAAIY,IA3DD,EA4DHZ,EAAIa,GAnDD,GAoDHb,EAAIl4I,QAAU,QACPk4I,EA8uBHsC,IACO,QAAItC,EAAIA,IAAMA,OAKxB,KAFD,aACE,OAAOA,GACR,8BAv1BL,I,kCCNA,IAAIl8P,EAAQ,EAAQ,QAWpBzjB,EAAOC,QAAU,SAAqBkiR,EAASC,GAE7CA,EAAUA,GAAW,GACrB,IAAIhtQ,EAAS,GACTitQ,EAAuB,CAAC,MAAO,SAAU,QACzCC,EAA0B,CAAC,UAAW,OAAQ,QAAS,UACvDC,EAAuB,CAAC,UAAW,mBAAoB,oBAAqB,mBAAoB,UAAW,iBAAkB,kBAAmB,UAAW,eAAgB,iBAAkB,iBAAkB,mBAAoB,qBAAsB,aAAc,mBAAoB,gBAAiB,eAAgB,YAAa,YAAa,aAAc,cAAe,aAAc,oBACjYC,EAAkB,CAAC,kBAEvB,SAASC,EAAe/lR,EAAQ4C,GAC9B,OAAImkB,EAAMqhI,cAAcpoJ,IAAW+mB,EAAMqhI,cAAcxlJ,GAC9CmkB,EAAMqmD,MAAMptE,EAAQ4C,GAClBmkB,EAAMqhI,cAAcxlJ,GACtBmkB,EAAMqmD,MAAM,GAAIxqE,GACdmkB,EAAM+e,QAAQljC,GAChBA,EAAOI,QAGTJ,EAGT,SAASojR,EAAoBrhK,GACtB59F,EAAMq7F,YAAYsjK,EAAQ/gK,IAEnB59F,EAAMq7F,YAAYqjK,EAAQ9gK,MACpCjsG,EAAOisG,GAAQohK,OAAe3jR,EAAWqjR,EAAQ9gK,KAFjDjsG,EAAOisG,GAAQohK,EAAeN,EAAQ9gK,GAAO+gK,EAAQ/gK,IAMzD59F,EAAM3b,QAAQu6Q,GAAsB,SAA0BhhK,GACvD59F,EAAMq7F,YAAYsjK,EAAQ/gK,MAC7BjsG,EAAOisG,GAAQohK,OAAe3jR,EAAWsjR,EAAQ/gK,QAGrD59F,EAAM3b,QAAQw6Q,EAAyBI,GACvCj/P,EAAM3b,QAAQy6Q,GAAsB,SAA0BlhK,GACvD59F,EAAMq7F,YAAYsjK,EAAQ/gK,IAEnB59F,EAAMq7F,YAAYqjK,EAAQ9gK,MACpCjsG,EAAOisG,GAAQohK,OAAe3jR,EAAWqjR,EAAQ9gK,KAFjDjsG,EAAOisG,GAAQohK,OAAe3jR,EAAWsjR,EAAQ/gK,OAKrD59F,EAAM3b,QAAQ06Q,GAAiB,SAAenhK,GACxCA,KAAQ+gK,EACVhtQ,EAAOisG,GAAQohK,EAAeN,EAAQ9gK,GAAO+gK,EAAQ/gK,IAC5CA,KAAQ8gK,IACjB/sQ,EAAOisG,GAAQohK,OAAe3jR,EAAWqjR,EAAQ9gK,QAGrD,IAAIshK,EAAYN,EAAqB5zQ,OAAO6zQ,GAAyB7zQ,OAAO8zQ,GAAsB9zQ,OAAO+zQ,GACrGI,EAAYtqR,OAAOkW,KAAK2zQ,GAAS1zQ,OAAOnW,OAAOkW,KAAK4zQ,IAAUvxP,QAAO,SAAyBp2B,GAChG,OAAmC,IAA5BkoR,EAAUljR,QAAQhF,MAG3B,OADAgpB,EAAM3b,QAAQ86Q,EAAWF,GAClBttQ,I,qBCnET,IAGIpf,EAAO,GAEXA,EALsB,EAAQ,OAEV6wC,CAAgB,gBAGd,IAEtB7mC,EAAOC,QAA2B,eAAjB1B,OAAOvI,I,oCCCxBgK,EAAOC,QAAU,SAAsB4iR,GACrC,MAA0B,kBAAZA,IAAiD,IAAzBA,EAAQrtQ,e,qBCTd,EAAQ,OAI1CkkI,CAA4B,UAAU,SAAU51H,GAC9C,OAAO,SAAqB5b,EAAMyxI,EAAY75I,GAC5C,OAAOgkB,EAAKhsB,KAAMoQ,EAAMyxI,EAAY75I,Q,sBCC/B,SAAUlN,GACjB,aAEA,SAAS2vH,EAAW3iH,GAClB,MAA2B,qBAAbuuC,UAA4BvuC,aAAiBuuC,UAAsD,sBAA1C71C,OAAOY,UAAU0X,SAAS/Y,KAAK+H,GAG/FhN,EAAOC,aAAa,KAAM,CACjCiwR,mBAAoB,wnBAAqH/vR,MAAM,KAC/IgwR,iBAAkB,wnBAAqHhwR,MAAM,KAC7ID,OAAQ,SAAU6sC,EAAgBjqC,GAChC,OAAKiqC,EAEwB,kBAAXjqC,GAAuB,IAAIM,KAAKN,EAAO0qB,UAAU,EAAG1qB,EAAO+J,QAAQ,UAE5E3H,KAAKkrR,kBAAkBrjP,EAAer1B,SAEtCxS,KAAKmrR,oBAAoBtjP,EAAer1B,SALxCxS,KAAKmrR,qBAQhBjwR,YAAa,kPAAoDD,MAAM,KACvEE,SAAU,ySAAyDF,MAAM,KACzEG,cAAe,uIAA8BH,MAAM,KACnDI,YAAa,6FAAuBJ,MAAM,KAC1CkO,SAAU,SAAU8I,EAAOC,EAAS5I,GAClC,OAAI2I,EAAQ,GACH3I,EAAU,eAAO,eAEjBA,EAAU,eAAO,gBAG5BJ,KAAM,SAAUpB,GACd,MAAyC,YAAjCA,EAAQ,IAAIkK,cAAc,IAEpC/I,cAAe,+BACf3N,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAERwvR,WAAY,CACVtvR,QAAS,+CACTC,QAAS,yCACTC,SAAU,eACVC,QAAS,mCACTC,SAAU,WACR,OAAQ8D,KAAK0J,OACX,KAAK,EACH,MAAO,iGAET,QACE,MAAO,yGAGbvN,SAAU,KAEZN,SAAU,SAAU8G,EAAKwoH,GACvB,IAAIjF,EAASlmH,KAAKqrR,YAAY1oR,GAC1BsP,EAAQk5G,GAAOA,EAAIl5G,QAMvB,OAJIw4G,EAAWvE,KACbA,EAASA,EAAOriH,MAAMsnH,IAGjBjF,EAAOpoH,QAAQ,KAAMmU,EAAQ,KAAO,EAAI,qBAAQ,6BAEzD7V,aAAc,CACZC,OAAQ,kBACRC,KAAM,8BACNC,EAAG,oGACHC,GAAI,8EACJC,EAAG,oDACHC,GAAI,oCACJC,EAAG,wCACHC,GAAI,8BACJC,EAAG,8CACHC,GAAI,oCACJC,EAAG,0DACHC,GAAI,oCACJC,EAAG,gEACHC,GAAI,2CAENC,uBAAwB,gBACxBC,QAAS,WACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA3FuFC,CAAQ,EAAQ,U,qBCNlH,IAAIuK,EAAS,EAAQ,QACjBk8I,EAAY,EAAQ,QAEpBmnI,EAAS,qBACTz0F,EAAQ5uL,EAAOqjR,IAAWnnI,EAAUmnI,EAAQ,IAEhDpjR,EAAOC,QAAU0uL,G,mBCNjB3uL,EAAOC,QAAiC,qBAAhBwlG,aAAmD,qBAAboqF,U,sBCOrD,SAAUj9L,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,kGAAwFC,MAAM,KACtGC,YAAa,4DAAkDD,MAAM,KACrEE,SAAU,0FAAiEF,MAAM,KACjFG,cAAe,6CAA8BH,MAAM,KACnDI,YAAa,sCAAuBJ,MAAM,KAC1CK,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,aACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,2BAERC,SAAU,CACRC,QAAS,iBACTC,QAAS,sBACTC,SAAU,gBACVC,QAAS,0BACTC,SAAU,iCACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,aACRC,KAAM,SACNC,EAAG,eACHC,GAAI,aACJC,EAAG,SACHC,GAAI,YACJC,EAAG,cACHC,GAAI,kBACJC,EAAG,eACHC,GAAI,iBACJC,EAAG,QACHC,GAAI,UACJC,EAAG,OACHC,GAAI,UAENC,uBAAwB,cACxBC,QAAS,SACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA/CuFC,CAAQ,EAAQ,U,wECgB9G6tR,E,oFCMJ,ICSIC,EDTA,EAEJ,SAAU7rR,GAGR,SAAS8rR,IACP,OAAkB,OAAX9rR,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA+M7D,OAlNA,YAAUyrR,EAAgB9rR,GAM1B8rR,EAAe1nR,SAAW,SAAUC,GAClC,OAAO,IAAIynR,EAAeznR,IAG5BynR,EAAerqR,UAAUgD,mBAAqB,WAC5C,IAAItE,EAAQE,KAER0rR,EAAW1rR,KAAKgE,KAAK+lF,cACzB/pF,KAAK2rR,cAAgBD,GAAYA,EAASrmR,UAAU4rB,SAAS,IAAW+W,QAAU0jP,EAAW,KAEzF1rR,KAAKgE,KAAKqB,UAAU4rB,SAAS,IAAWkX,QAC1CnoC,KAAK4rR,kBAAiB,GAGxB5rR,KAAK0c,cAAgB,SAAUpO,GAC7BxO,EAAM4E,WAAWgY,cAAcpO,IAGjCtO,KAAK6rR,gBAAkB,SAAUv9Q,GAC/BxO,EAAM4E,WAAWmnR,gBAAgBv9Q,IAKnCtO,KAAK8rR,0BAA4B,WAC/B10Q,SAASyY,KAAK/pB,iBAAiB,QAAShG,EAAM+rR,gBAAiB,CAC7D77P,SAAS,KAIbhwB,KAAK+rR,4BAA8B,WACjC30Q,SAASyY,KAAK9pB,oBAAoB,QAASjG,EAAM+rR,kBAGnD7rR,KAAK4F,OAAO,UAAW5F,KAAK0c,eAC5B1c,KAAK4F,OAAO,IAAQ9G,aAAckB,KAAK8rR,2BACvC9rR,KAAK4F,OAAO,IAAQlH,aAAcsB,KAAK+rR,8BAGzCN,EAAerqR,UAAUC,QAAU,WACjCrB,KAAK6F,SAAS,UAAW7F,KAAK0c,eAC9B1c,KAAK6F,SAAS,IAAQ/G,aAAckB,KAAK8rR,2BACzC9rR,KAAK6F,SAAS,IAAQnH,aAAcsB,KAAK+rR,6BAEzCpsR,EAAOyB,UAAUC,QAAQtB,KAAKC,OAGhCyrR,EAAerqR,UAAUa,OAAS,WAChC,OAAOjC,KAAK0E,WAAWzC,UAGzBwpR,EAAerqR,UAAUK,KAAO,WAC9BzB,KAAK0E,WAAWjD,QAGlBgqR,EAAerqR,UAAUW,MAAQ,SAAUiqR,QAChB,IAArBA,IACFA,GAAmB,GAGrBhsR,KAAK0E,WAAW3C,MAAMiqR,IAGxBxrR,OAAOC,eAAegrR,EAAerqR,UAAW,YAAa,CAC3DqE,IAAK,SAAUwmR,GACbjsR,KAAK0E,WAAWwnR,aAAaD,IAE/BtrR,YAAY,EACZC,cAAc,IAIhB6qR,EAAerqR,UAAU+qR,aAAe,SAAUC,GAChDpsR,KAAK0E,WAAWynR,aAAaC,IAK/BX,EAAerqR,UAAUirR,4BAA8B,SAAUtvQ,GAC/D/c,KAAK2rR,cAAgB5uQ,GAKvB0uQ,EAAerqR,UAAUwqR,iBAAmB,SAAU75H,GAChDA,EACF/xJ,KAAKgE,KAAKqB,UAAUC,IAAI,IAAW6iC,OAEnCnoC,KAAKgE,KAAKqB,UAAUG,OAAO,IAAW2iC,OAGxCnoC,KAAK0E,WAAWknR,iBAAiB75H,IAKnC05H,EAAerqR,UAAUkrR,oBAAsB,SAAU54Q,EAAGzW,GAC1D+C,KAAK0E,WAAW4nR,oBAAoB54Q,EAAGzW,GACvC+C,KAAKmsR,cAAa,IAOpBV,EAAerqR,UAAUmrR,gBAAkB,SAAUC,GACnDxsR,KAAK0E,WAAW6nR,gBAAgBC,IAGlCf,EAAerqR,UAAUqrR,gBAAkB,SAAUjxI,GACnDx7I,KAAK0E,WAAW+nR,gBAAgBjxI,IAGlCiwI,EAAerqR,UAAU+D,qBAAuB,WAC9C,IAAIrF,EAAQE,KAKRH,EAAU,CACZgB,SAAU,SAAUuE,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAUC,IAAIF,IAElCjE,YAAa,SAAUiE,GACrB,OAAOtF,EAAMkE,KAAKqB,UAAUG,OAAOJ,IAErC2W,SAAU,SAAU3W,GAClB,OAAOtF,EAAMkE,KAAKqB,UAAU4rB,SAAS7rB,IAEvCsnR,UAAW,WACT,QAAS5sR,EAAM6rR,eAEjB1vQ,YAAa,WACX,OAAOnc,EAAMyF,KAAK,IAAyBhH,QAAQG,aAAc,KAEnEwd,WAAY,WACV,OAAOpc,EAAMyF,KAAK,IAAyBhH,QAAQO,aAAc,KAEnE6tR,qBAAsB,SAAUn9Q,GAC9B,OAAO1P,EAAMkE,KAAKitB,SAASzhB,IAE7Bo9Q,MAAO,WACL,MAAsE,QAA/D73O,iBAAiBj1C,EAAMkE,MAAMgxC,iBAAiB,cAEvDk8H,mBAAoB,SAAU78H,GAC5B,IAAI44H,ED3JZ,SAAkCj2J,EAAW/D,GAK3C,QAJqB,IAAjBA,IACFA,GAAe,QAGuBjM,IAApCukR,GAAiDt4Q,EAAc,CACjE,IAAIzD,EAAKwH,EAAUI,SAASwN,cAAc,OAC1C2mQ,EAAkC,cAAe/7Q,EAAGmB,MAAQ,YAAc,kBAG5E,OAAO46Q,ECiJkB,CAA8Bt0Q,QAAU,UAE3DnX,EAAMkE,KAAK2M,MAAMw8J,YAAYF,EAAc54H,IAE7Cq1D,UAAW,WACT,OAAOtyF,SAAS8c,gBAAkBp0B,EAAMkE,MAE1CmY,UAAW,WACTrc,EAAM6pC,cAAgBvyB,SAAS8c,eAEjC9X,aAAc,WACRtc,EAAMkE,KAAKitB,SAAS7Z,SAAS8c,gBAC3Bp0B,EAAM6pC,eAAiB7pC,EAAM6pC,cAAc1W,OAC7CnzB,EAAM6pC,cAAc1W,SAI1B45P,mBAAoB,WAClB,MAAO,CACLr/P,MAAO1tB,EAAMkE,KAAKupB,YAClBpe,OAAQrP,EAAMkE,KAAKy3B,eAGvBqxP,oBAAqB,WACnB,OAAOhtR,EAAM6rR,cAAgB7rR,EAAM6rR,cAAcr7Q,wBAA0B,MAE7Ey8Q,oBAAqB,WACnB,MAAO,CACLv/P,MAAOvW,OAAO8tC,WACd51C,OAAQ8H,OAAO+kB,cAGnBgxP,kBAAmB,WACjB,MAAO,CACLx/P,MAAOpW,SAASyY,KAAKshC,YACrBhiD,OAAQiI,SAASyY,KAAKuhC,eAG1B8/F,gBAAiB,WACf,MAAO,CACLx9I,EAAGuD,OAAOmlB,YACVn/B,EAAGga,OAAOklB,cAGd8wP,YAAa,SAAUzqQ,GACrB,IAAI0qQ,EAAWptR,EAAMkE,KACrBkpR,EAASv8Q,MAAMmD,KAAO,SAAU0O,EAAWA,EAAS1O,KAAO,KAAO,GAClEo5Q,EAASv8Q,MAAM4rB,MAAQ,UAAW/Z,EAAWA,EAAS+Z,MAAQ,KAAO,GACrE2wP,EAASv8Q,MAAMvB,IAAM,QAASoT,EAAWA,EAASpT,IAAM,KAAO,GAC/D89Q,EAASv8Q,MAAMsrB,OAAS,WAAYzZ,EAAWA,EAASyZ,OAAS,KAAO,IAE1EkxP,aAAc,SAAUh+Q,GACtBrP,EAAMkE,KAAK2M,MAAM8oL,UAAYtqL,IAIjC,OAAO,IAAI,IAAyBtP,IAG/B4rR,EAnNT,CAoNE,KC5NEttR,EAAa,CACfivR,wBAAyB,0BACzBC,qBAAsB,4BACtB5xQ,KAAM,YAEJld,EAAU,CACZmlL,kBAAmB,eACnB4pG,mBAAoB,gBACpB7zG,kBAAmB,yBACnB8zG,cAAe,YACfC,eAAgB,oBAEdruR,EAAU,CACZsuR,kBAAmB,IAIrB,SAAWjC,GACTA,EAAkBA,EAAwB,KAAI,GAAK,OACnDA,EAAkBA,EAA6B,UAAI,GAAK,YACxDA,EAAkBA,EAA8B,WAAI,GAAK,aACzDA,EAAkBA,EAA6B,UAAI,GAAK,YAJ1D,CAKGA,IAAsBA,EAAoB,K,4BChBzC,EAEJ,SAAU7rR,GAGR,SAAS+tR,EAAkB7tR,GACzB,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAI0tR,EAAkBztR,gBAAiBJ,KAAaG,KAIpG,OAFAF,EAAM6tR,0BAA4B,EAClC7tR,EAAM8tR,mBAAqBpC,EAAkBqC,UACtC/tR,EAwMT,OA/MA,YAAU4tR,EAAmB/tR,GAU7Ba,OAAOC,eAAeitR,EAAmB,aAAc,CACrDhtR,IAAK,WACH,OAAOvC,GAETwC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeitR,EAAmB,UAAW,CAClDhtR,IAAK,WACH,OAAOnC,GAEToC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeitR,EAAmB,UAAW,CAClDhtR,IAAK,WACH,OAAOvB,GAETwB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeitR,EAAmB,iBAAkB,CAIzDhtR,IAAK,WAEH,MAAO,CACLotR,yBAA0B,aAG1BC,8BAA+B,aAG/BC,6BAA8B,aAG9BC,kCAAmC,aAGnCC,qBAAsB,WACpB,OAAO,GAETC,aAAc,aAGdC,gBAAiB,WACf,OAAQ,GAEVC,eAAgB,aAGhBC,iBAAkB,WAChB,OAAO,GAET9oI,iBAAkB,aAGlB+oI,cAAe,aAGfC,gCAAiC,WAC/B,OAAQ,GAEVC,wBAAyB,WACvB,OAAO,KAIb9tR,YAAY,EACZC,cAAc,IAGhB8sR,EAAkBtsR,UAAUC,QAAU,WAChCrB,KAAK2tR,2BACPnsR,aAAaxB,KAAK2tR,2BAGpB3tR,KAAKH,QAAQsuR,gBAGfT,EAAkBtsR,UAAUsb,cAAgB,SAAUha,GACpD,IAAIC,EAAMD,EAAIC,IACVC,EAAUF,EAAIE,SACE,QAARD,GAA6B,IAAZC,IAG3B5C,KAAKH,QAAQsuR,cAEb,IAIJT,EAAkBtsR,UAAUstR,iBAAmB,SAAUvyE,GACvD,IAAIr8M,EAAQE,KAER+H,EAAQ/H,KAAKH,QAAQuuR,gBAAgBjyE,GAErCp0M,EAAQ,IAIZ/H,KAAKH,QAAQwuR,eAAe,CAC1BtmR,MAAOA,IAET/H,KAAKH,QAAQsuR,eAEbnuR,KAAK2tR,0BAA4BhsR,YAAW,WAE1C,IAAIgtR,EAAkB7uR,EAAMD,QAAQuuR,gBAAgBjyE,GAEhDwyE,GAAmB,GAAK7uR,EAAMD,QAAQ4uR,wBAAwBE,IAChE7uR,EAAM4pJ,iBAAiBilI,KAExB,IAAyBxvR,QAAQopC,6BAGtCmlP,EAAkBtsR,UAAUwtR,wBAA0B,WACpD,OAAQ5uR,KAAK4tR,oBACX,KAAKpC,EAAkBqD,WACrB7uR,KAAKH,QAAQ2lJ,iBAAiB,GAC9B,MAEF,KAAKgmI,EAAkBsD,UACrB9uR,KAAKH,QAAQ2lJ,iBAAiBxlJ,KAAKH,QAAQyuR,mBAAqB,GAChE,MAEF,KAAK9C,EAAkB38Q,KAErB,MAEF,QACE7O,KAAKH,QAAQ0uR,kBAWnBb,EAAkBtsR,UAAU2tR,qBAAuB,SAAU9nC,GAC3DjnP,KAAK4tR,mBAAqB3mC,GAQ5BymC,EAAkBtsR,UAAUsoJ,iBAAmB,SAAU3hJ,GAGvD,GAFA/H,KAAKgvR,gBAAgBjnR,IAEhB/H,KAAKH,QAAQ4uR,wBAAwB1mR,GACxC,MAAM,IAAI1F,MAAM,6DAGlB,IAAI4sR,EAAoBjvR,KAAKH,QAAQ2uR,gCAAgCzmR,GAEjEknR,GAAqB,IACvBjvR,KAAKH,QAAQouR,kCAAkCgB,EAAmB1wR,EAAQmlL,mBAC1E1jL,KAAKH,QAAQkuR,8BAA8BkB,EAAmB9wR,EAAWivR,0BAG3EptR,KAAKH,QAAQiuR,yBAAyB/lR,EAAO5J,EAAWivR,yBACxDptR,KAAKH,QAAQmuR,6BAA6BjmR,EAAOxJ,EAAQmlL,kBAAmB,SAS9EgqG,EAAkBtsR,UAAU2pJ,WAAa,SAAUhjJ,EAAOwqB,GACxDvyB,KAAKgvR,gBAAgBjnR,GAEjBwqB,GACFvyB,KAAKH,QAAQkuR,8BAA8BhmR,EAAO,IAAeuiJ,0BACjEtqJ,KAAKH,QAAQmuR,6BAA6BjmR,EAAOxJ,EAAQ+uR,mBAAoB,WAE7EttR,KAAKH,QAAQiuR,yBAAyB/lR,EAAO,IAAeuiJ,0BAC5DtqJ,KAAKH,QAAQmuR,6BAA6BjmR,EAAOxJ,EAAQ+uR,mBAAoB,UAIjFI,EAAkBtsR,UAAU4tR,gBAAkB,SAAUjnR,GACtD,IAAImnR,EAAWlvR,KAAKH,QAAQyuR,mBAG5B,KAFqBvmR,GAAS,GAAKA,EAAQmnR,GAGzC,MAAM,IAAI7sR,MAAM,wDAIbqrR,EAhNT,CAiNE,KC/ME,EAEJ,SAAU/tR,GAGR,SAASwvR,IACP,OAAkB,OAAXxvR,GAAmBA,EAAOkE,MAAM7D,KAAM8D,YAAc9D,KA+T7D,OAlUA,YAAUmvR,EAASxvR,GAMnBwvR,EAAQprR,SAAW,SAAUC,GAC3B,OAAO,IAAImrR,EAAQnrR,IAGrBmrR,EAAQ/tR,UAAU6C,WAAa,SAAUmrR,EAAoBrmP,QAChC,IAAvBqmP,IACFA,EAAqB,SAAU5/Q,GAC7B,OAAO,IAAI,EAAeA,UAIV,IAAhBu5B,IACFA,EAAc,SAAUv5B,GACtB,OAAO,IAAI,IAAQA,KAIvBxP,KAAKqvR,oBAAsBD,EAC3BpvR,KAAKsvR,aAAevmP,GAGtBomP,EAAQ/tR,UAAUgD,mBAAqB,WACrC,IAAItE,EAAQE,KAEZA,KAAKuvR,aAAevvR,KAAKqvR,oBAAoBrvR,KAAKgE,MAClD,IAAIwuJ,EAAOxyJ,KAAKgE,KAAKM,cAAc/F,EAAQgvR,eAEvC/6H,GACFxyJ,KAAK6oC,MAAQ7oC,KAAKsvR,aAAa98H,GAC/BxyJ,KAAK6oC,MAAMI,WAAY,GAEvBjpC,KAAK6oC,MAAQ,KAGf7oC,KAAKwpC,eAAiB,SAAU9mC,GAC9B,OAAO5C,EAAM4E,WAAWgY,cAAcha,IAGxC1C,KAAKwvR,kBAAoB,SAAU9sR,GACjC,OAAO5C,EAAM4E,WAAWgqR,iBAAiB5uR,EAAM+2C,MAAMn0C,EAAI83C,OAAOzyC,SAGlE/H,KAAKyvR,yBAA2B,WAC9B,OAAO3vR,EAAM4E,WAAWkqR,2BAG1B5uR,KAAKuvR,aAAa3pR,OAAO,IAAyBrH,QAAQO,aAAckB,KAAKyvR,0BAC7EzvR,KAAK4F,OAAO,UAAW5F,KAAKwpC,gBAC5BxpC,KAAK4F,OAAO,IAAkBrH,QAAQ26K,aAAcl5K,KAAKwvR,oBAG3DL,EAAQ/tR,UAAUC,QAAU,WACtBrB,KAAK6oC,OACP7oC,KAAK6oC,MAAMxnC,UAGbrB,KAAKuvR,aAAaluR,UAClBrB,KAAKuvR,aAAa1pR,SAAS,IAAyBtH,QAAQO,aAAckB,KAAKyvR,0BAC/EzvR,KAAK6F,SAAS,UAAW7F,KAAKwpC,gBAC9BxpC,KAAK6F,SAAS,IAAkBtH,QAAQ26K,aAAcl5K,KAAKwvR,mBAE3D7vR,EAAOyB,UAAUC,QAAQtB,KAAKC,OAGhCQ,OAAOC,eAAe0uR,EAAQ/tR,UAAW,OAAQ,CAC/CV,IAAK,WACH,OAAOV,KAAKuvR,aAAattR,UAE3BwD,IAAK,SAAU0K,GACTA,EACFnQ,KAAKuvR,aAAa9tR,OAElBzB,KAAKuvR,aAAaxtR,SAGtBpB,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe0uR,EAAQ/tR,UAAW,YAAa,CACpDV,IAAK,WACH,QAAOV,KAAK6oC,OAAQ7oC,KAAK6oC,MAAMI,WAEjCxjC,IAAK,SAAU0K,GACTnQ,KAAK6oC,QACP7oC,KAAK6oC,MAAMI,UAAY94B,IAG3BxP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe0uR,EAAQ/tR,UAAW,eAAgB,CAKvDqE,IAAK,SAAU0K,GACTnQ,KAAK6oC,QACP7oC,KAAK6oC,MAAMk/G,aAAe53I,IAG9BxP,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe0uR,EAAQ/tR,UAAW,sBAAuB,CAI9DV,IAAK,WACH,QAAOV,KAAK6oC,OAAQ7oC,KAAK6oC,MAAM6mP,qBAEjC/uR,YAAY,EACZC,cAAc,IAgBhBuuR,EAAQ/tR,UAAU6qJ,mBAAqB,SAAU1G,EAAU2G,GACzD,OAAIlsJ,KAAK6oC,MACA7oC,KAAK6oC,MAAMojH,mBAAmB1G,EAAU2G,IAGzC,GAQVijI,EAAQ/tR,UAAU6L,OAAS,WACrBjN,KAAK6oC,OACP7oC,KAAK6oC,MAAM57B,UAIfzM,OAAOC,eAAe0uR,EAAQ/tR,UAAW,QAAS,CAMhDV,IAAK,WACH,OAAOV,KAAK6oC,MAAQ7oC,KAAK6oC,MAAMw2N,aAAe,IAEhD1+P,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAe0uR,EAAQ/tR,UAAW,YAAa,CACpDqE,IAAK,SAAUwmR,GACbjsR,KAAKuvR,aAAatD,UAAYA,GAEhCtrR,YAAY,EACZC,cAAc,IAShBuuR,EAAQ/tR,UAAU2tR,qBAAuB,SAAU9nC,GACjDjnP,KAAK0E,WAAWqqR,qBAAqB9nC,IAOvCkoC,EAAQ/tR,UAAUmrR,gBAAkB,SAAUC,GAC5CxsR,KAAKuvR,aAAahD,gBAAgBC,IAGpC2C,EAAQ/tR,UAAUqrR,gBAAkB,SAAUjxI,GAC5Cx7I,KAAKuvR,aAAa9C,gBAAgBjxI,IAQpC2zI,EAAQ/tR,UAAUsoJ,iBAAmB,SAAU3hJ,GAC7C/H,KAAK0E,WAAWglJ,iBAAiB3hJ,IASnConR,EAAQ/tR,UAAU2pJ,WAAa,SAAUhjJ,EAAOwqB,GAC9CvyB,KAAK0E,WAAWqmJ,WAAWhjJ,EAAOwqB,IAOpC48P,EAAQ/tR,UAAUuuR,iBAAmB,SAAU5nR,GAG7C,OAAIA,EAFQ/H,KAAK62C,MAEC7uC,OACThI,KAAK62C,MAAM9uC,GAEX,MASXonR,EAAQ/tR,UAAU4nJ,sBAAwB,SAAUjhJ,GAClD,IAAIk8B,EAAOjkC,KAAK2vR,iBAAiB5nR,GAEjC,OAAIk8B,GAAQjkC,KAAK6oC,OACR7oC,KAAK6oC,MAAMk2N,eAAe96N,IAG5B,IAGTkrP,EAAQ/tR,UAAUwqR,iBAAmB,SAAU75H,GAC7C/xJ,KAAKuvR,aAAa3D,iBAAiB75H,IAGrCo9H,EAAQ/tR,UAAU+qR,aAAe,SAAUC,GACzCpsR,KAAKuvR,aAAapD,aAAaC,IAGjC+C,EAAQ/tR,UAAUkrR,oBAAsB,SAAU54Q,EAAGzW,GACnD+C,KAAKuvR,aAAajD,oBAAoB54Q,EAAGzW,IAO3CkyR,EAAQ/tR,UAAUwuR,iBAAmB,SAAU7yQ,GAC7C/c,KAAKuvR,aAAa5D,cAAgB5uQ,GAGpCoyQ,EAAQ/tR,UAAU+D,qBAAuB,WACvC,IAAIrF,EAAQE,KAwDZ,OAAO,IAAI,EAnDG,CACZ8tR,yBAA0B,SAAU/lR,EAAO3C,GAC9BtF,EAAM+2C,MACZ9uC,GAAO1C,UAAUC,IAAIF,IAE5B2oR,8BAA+B,SAAUhmR,EAAO3C,GACnCtF,EAAM+2C,MACZ9uC,GAAO1C,UAAUG,OAAOJ,IAE/B4oR,6BAA8B,SAAUjmR,EAAOmJ,EAAMf,GACxCrQ,EAAM+2C,MACZ9uC,GAAOtE,aAAayN,EAAMf,IAEjC89Q,kCAAmC,SAAUlmR,EAAOmJ,GACvCpR,EAAM+2C,MACZ9uC,GAAOpE,gBAAgBuN,IAE9Bg9Q,qBAAsB,SAAUnxQ,EAAS3X,GACvC,OAAO2X,EAAQ1X,UAAU4rB,SAAS7rB,IAEpC+oR,aAAc,SAAUnC,GACtB,OAAOlsR,EAAMyvR,aAAaxtR,MAAMiqR,IAElCoC,gBAAiB,SAAUrxQ,GACzB,OAAOjd,EAAM+2C,MAAMlvC,QAAQoV,IAE7BsxQ,eAAgB,SAAUlZ,GACxB,OAAOr1Q,EAAMyF,KAAKhH,EAAQivR,eAAgB,CACxCzlR,MAAOotQ,EAAQptQ,MACfk8B,KAAMnkC,EAAM+2C,MAAMs+N,EAAQptQ,UAG9BumR,iBAAkB,WAChB,OAAOxuR,EAAM+2C,MAAM7uC,QAErBw9I,iBAAkB,SAAUz9I,GAC1B,OAAOjI,EAAM+2C,MAAM9uC,GAAOkrB,SAE5Bs7P,cAAe,WACb,OAAOzuR,EAAMkE,KAAKM,cAAc/F,EAAQgvR,eAAet6P,SAEzDw7P,wBAAyB,SAAU1mR,GACjC,QAAS,YAAQjI,EAAM+2C,MAAM9uC,GAAQ,IAAM5J,EAAWkvR,uBAExDmB,gCAAiC,SAAUzmR,GACzC,IACI8nR,EADmB,YAAQ/vR,EAAM+2C,MAAM9uC,GAAQ,IAAM5J,EAAWkvR,sBAC9B/oR,cAAc,IAAMnG,EAAWivR,yBACrE,OAAOyC,EAAiB/vR,EAAM+2C,MAAMlvC,QAAQkoR,IAAmB,MAO9DV,EAnUT,CAoUE,M,qBCtWF,IAAIlnR,EAAS,EAAQ,QACjB+vQ,EAAS,EAAQ,QACjB19P,EAAM,EAAQ,QACdwrL,EAAM,EAAQ,QACdr/E,EAAgB,EAAQ,QACxBqpK,EAAoB,EAAQ,QAE5BC,EAAwB/X,EAAO,OAC/B/hQ,EAAShO,EAAOgO,OAChB+5Q,EAAwBF,EAAoB75Q,EAASA,GAAUA,EAAOg6Q,eAAiBnqF,EAE3F59L,EAAOC,QAAU,SAAU0V,GAIvB,OAHGvD,EAAIy1Q,EAAuBlyQ,KAC1B4oG,GAAiBnsG,EAAIrE,EAAQ4H,GAAOkyQ,EAAsBlyQ,GAAQ5H,EAAO4H,GACxEkyQ,EAAsBlyQ,GAAQmyQ,EAAsB,UAAYnyQ,IAC9DkyQ,EAAsBlyQ,K,kCCfjC,0EA0BIqyQ,EAEJ,SAAUvwR,GAGR,SAASuwR,EAAyBrwR,GAChC,IAAIC,EAAQH,EAAOI,KAAKC,KAAM,YAAS,YAAS,GAAIkwR,EAAyBjwR,gBAAiBJ,KAAaG,KAoC3G,OAlCAF,EAAMqwR,eAAgB,EACtBrwR,EAAMswR,aAAc,EACpBtwR,EAAMuwR,kBAAmB,EACzBvwR,EAAMwwR,iBAAkB,EACxBxwR,EAAMywR,wBAA0B,EAChCzwR,EAAM0wR,yBAA2B,EACjC1wR,EAAM2wR,mBAAqB,EAC3B3wR,EAAM4wR,aAAe,IAAOC,UAgB5B7wR,EAAM8wR,aAAe,IAAOD,UAC5B7wR,EAAM+wR,aAAe,CACnBzhR,IAAK,EACLmtB,MAAO,EACPN,OAAQ,EACRnoB,KAAM,GAERhU,EAAM0iB,SAAW,CACf9O,EAAG,EACHzW,EAAG,GAEE6C,EA2lBT,OAloBA,YAAUowR,EAA0BvwR,GA0CpCa,OAAOC,eAAeyvR,EAA0B,aAAc,CAC5DxvR,IAAK,WACH,OAAO,KAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeyvR,EAA0B,UAAW,CACzDxvR,IAAK,WACH,OAAO,KAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeyvR,EAA0B,UAAW,CACzDxvR,IAAK,WACH,OAAO,KAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeyvR,EAA0B,SAAU,CACxDxvR,IAAK,WACH,OAAO,KAETC,YAAY,EACZC,cAAc,IAEhBJ,OAAOC,eAAeyvR,EAA0B,iBAAkB,CAIhExvR,IAAK,WAEH,MAAO,CACLG,SAAU,aAGVM,YAAa,aAGb4a,SAAU,WACR,OAAO,GAET2wQ,UAAW,WACT,OAAO,GAETC,qBAAsB,WACpB,OAAO,GAETjjL,UAAW,WACT,OAAO,GAETkjL,MAAO,WACL,OAAO,GAETC,mBAAoB,WAClB,MAAO,CACL19Q,OAAQ,EACRqe,MAAO,IAGXs/P,oBAAqB,WACnB,OAAO,MAETC,oBAAqB,WACnB,MAAO,CACL59Q,OAAQ,EACRqe,MAAO,IAGXw/P,kBAAmB,WACjB,MAAO,CACL79Q,OAAQ,EACRqe,MAAO,IAGX0jI,gBAAiB,WACf,MAAO,CACLx9I,EAAG,EACHzW,EAAG,IAGPgwR,YAAa,aAGbE,aAAc,aAGdj8G,mBAAoB,aAGpB/0J,UAAW,aAGXC,aAAc,aAGdH,YAAa,aAGbC,WAAY,eAKhBvb,YAAY,EACZC,cAAc,IAGhBsvR,EAAyB9uR,UAAU4qB,KAAO,WACxC,IAAI5e,EAAK8iR,EAAyB/xR,WAC9Bsd,EAAOrO,EAAGqO,KACVpd,EAAO+O,EAAG/O,KAEd,IAAK2B,KAAKH,QAAQkc,SAASN,GACzB,MAAM,IAAIpZ,MAAMoZ,EAAO,oCAGrBzb,KAAKH,QAAQkc,SAAS1d,KACxB2B,KAAKmwR,eAAgB,IAIzBD,EAAyB9uR,UAAUC,QAAU,WAC3CG,aAAaxB,KAAKuwR,yBAClB/uR,aAAaxB,KAAKwwR,0BAElBjvR,qBAAqBvB,KAAKywR,qBAO5BP,EAAyB9uR,UAAUmrR,gBAAkB,SAAUC,GAC7DxsR,KAAK0wR,aAAelE,GAOtB0D,EAAyB9uR,UAAU0vR,uBAAyB,WAC1D9wR,KAAK4wR,aAAe5wR,KAAK4wR,aAAe,IAAUG,OAOpDb,EAAyB9uR,UAAUqrR,gBAAkB,SAAUjxI,GAC7Dx7I,KAAK6wR,aAAazhR,IAAMosI,EAAOpsI,KAAO,EACtCpP,KAAK6wR,aAAat0P,MAAQi/G,EAAOj/G,OAAS,EAC1Cv8B,KAAK6wR,aAAa50P,OAASu/G,EAAOv/G,QAAU,EAC5Cj8B,KAAK6wR,aAAa/8Q,KAAO0nI,EAAO1nI,MAAQ,GAK1Co8Q,EAAyB9uR,UAAU+qR,aAAe,SAAUC,GAC1DpsR,KAAKqwR,iBAAmBjE,GAK1B8D,EAAyB9uR,UAAUwqR,iBAAmB,SAAU0E,GAC9DtwR,KAAKswR,gBAAkBA,GAKzBJ,EAAyB9uR,UAAUkrR,oBAAsB,SAAU54Q,EAAGzW,GACpE+C,KAAKwiB,SAAS9O,EAAI1T,KAAKw3D,SAAS9jD,GAAKA,EAAI,EACzC1T,KAAKwiB,SAASvlB,EAAI+C,KAAKw3D,SAASv6D,GAAKA,EAAI,GAG3CizR,EAAyB9uR,UAAU8qR,aAAe,SAAUD,GAC1DjsR,KAAKowR,YAAcnE,GAGrBiE,EAAyB9uR,UAAUa,OAAS,WAC1C,OAAOjC,KAAKmwR,eAOdD,EAAyB9uR,UAAUK,KAAO,WACxC,IAAI3B,EAAQE,KAERA,KAAKmwR,gBAITnwR,KAAKH,QAAQsc,YAETnc,KAAKowR,aACPpwR,KAAKmwR,eAAgB,EACrBnwR,KAAKH,QAAQgB,SAASqvR,EAAyB/xR,WAAWE,MAC1D2B,KAAKgxR,WAAahxR,KAAKH,QAAQgtR,qBAC/B7sR,KAAKixR,eACLjxR,KAAKH,QAAQqc,eAEblc,KAAKH,QAAQgB,SAASqvR,EAAyB/xR,WAAW+pC,gBAC1DloC,KAAKywR,mBAAqBxtR,uBAAsB,WAC9CnD,EAAMD,QAAQgB,SAASqvR,EAAyB/xR,WAAWE,MAE3DyB,EAAMkxR,WAAalxR,EAAMD,QAAQgtR,qBAEjC/sR,EAAMmxR,eAENnxR,EAAMywR,wBAA0B5uR,YAAW,WACzC7B,EAAMywR,wBAA0B,EAEhCzwR,EAAMD,QAAQsB,YAAY+uR,EAAyB/xR,WAAW+pC,gBAE9DpoC,EAAMD,QAAQqc,eACb,IAAQosB,6BAEbtoC,KAAKmwR,eAAgB,KAQzBD,EAAyB9uR,UAAUW,MAAQ,SAAUiqR,GACnD,IAAIlsR,EAAQE,UAEa,IAArBgsR,IACFA,GAAmB,GAGhBhsR,KAAKmwR,gBAINnwR,KAAKowR,aACPpwR,KAAKmwR,eAAgB,EAEhBnE,GACHhsR,KAAKkxR,oBAGPlxR,KAAKH,QAAQsB,YAAY+uR,EAAyB/xR,WAAWE,MAC7D2B,KAAKH,QAAQsB,YAAY+uR,EAAyB/xR,WAAWiqC,eAC7DpoC,KAAKH,QAAQoc,gBAEbjc,KAAKH,QAAQgB,SAASqvR,EAAyB/xR,WAAW8pC,kBAC1DhlC,uBAAsB,WACpBnD,EAAMD,QAAQsB,YAAY+uR,EAAyB/xR,WAAWE,MAE9DyB,EAAMD,QAAQsB,YAAY+uR,EAAyB/xR,WAAWiqC,eAE9DtoC,EAAM0wR,yBAA2B7uR,YAAW,WAC1C7B,EAAM0wR,yBAA2B,EAEjC1wR,EAAMD,QAAQsB,YAAY+uR,EAAyB/xR,WAAW8pC,kBAE9DnoC,EAAMD,QAAQoc,gBACb,IAAQssB,8BAEbvoC,KAAKmwR,eAAgB,EAEhBnE,GACHhsR,KAAKkxR,uBAOXhB,EAAyB9uR,UAAUyqR,gBAAkB,SAAUnpR,GAC7D,IAAI8M,EAAK9M,EAAIkC,OAET5E,KAAKH,QAAQ8sR,qBAAqBn9Q,IAItCxP,KAAK+B,SAKPmuR,EAAyB9uR,UAAUsb,cAAgB,SAAUha,GAC3D,IAAIE,EAAUF,EAAIE,SAEK,WADbF,EAAIC,KACiC,KAAZC,IAGjC5C,KAAK+B,SAITmuR,EAAyB9uR,UAAU6vR,aAAe,WAChD,IAAI7jR,EAGJpN,KAAKmxR,aAAenxR,KAAKoxR,4BACzB,IAAI5E,EAASxsR,KAAKqxR,kBACdC,EAAuBtxR,KAAKuxR,wBAAwB/E,GACpDgF,EAAoBxxR,KAAKyxR,OAAOjF,EAAQ,IAAUkF,QAAU,SAAW,MACvEC,EAAsB3xR,KAAKyxR,OAAOjF,EAAQ,IAAUuE,OAAS,QAAU,OACvEa,EAAmB5xR,KAAK6xR,0BAA0BrF,GAClDsF,EAAiB9xR,KAAK+xR,wBAAwBvF,GAC9ChkQ,EAAKxoB,KAAKmxR,aACVa,EAAaxpQ,EAAGwpQ,WAChBC,EAAczpQ,EAAGypQ,YACjBzvQ,IAAYpV,EAAK,IAAOukR,GAAuBC,EAAkBxkR,EAAGokR,GAAqBM,EAAgB1kR,GAEzG4kR,EAAWxkQ,MAAQykQ,EAAYzkQ,MAAQ,IAAQib,qCACjDkpP,EAAsB,WAIpB3xR,KAAKqwR,kBAAoBrwR,KAAKswR,kBAChCtwR,KAAKkyR,gCAAgC1vQ,GAGvCxiB,KAAKH,QAAQqxK,mBAAmBygH,EAAsB,IAAMH,GAC5DxxR,KAAKH,QAAQotR,YAAYzqQ,GACzBxiB,KAAKH,QAAQstR,aAAamE,EAAuBA,EAAuB,KAAO,IAE1EtxR,KAAKyxR,OAAOjF,EAAQ,IAAUkF,SACjC1xR,KAAKH,QAAQgB,SAASqvR,EAAyB/xR,WAAWiqC,gBAQ9D8nP,EAAyB9uR,UAAUgwR,0BAA4B,WAC7D,IAAIe,EAAanyR,KAAKH,QAAQitR,sBAC1BsF,EAAWpyR,KAAKH,QAAQmtR,oBACxBqF,EAAeryR,KAAKH,QAAQktR,sBAC5BuF,EAAetyR,KAAKH,QAAQqxJ,kBAchC,OAZKihI,IAEHA,EAAa,CACX/iR,IAAKpP,KAAKwiB,SAASvlB,EACnBs/B,MAAOv8B,KAAKwiB,SAAS9O,EACrBuoB,OAAQj8B,KAAKwiB,SAASvlB,EACtB6W,KAAM9T,KAAKwiB,SAAS9O,EACpB8Z,MAAO,EACPre,OAAQ,IAIL,CACL6iR,WAAYG,EACZC,SAAUA,EACVH,YAAajyR,KAAKgxR,WAClBuB,iBAAkB,CAEhBnjR,IAAK+iR,EAAW/iR,IAChBmtB,MAAO81P,EAAa7kQ,MAAQ2kQ,EAAW51P,MACvCN,OAAQo2P,EAAaljR,OAASgjR,EAAWl2P,OACzCnoB,KAAMq+Q,EAAWr+Q,MAEnBu+Q,aAAcA,EACdC,aAAcA,IAYlBpC,EAAyB9uR,UAAUiwR,gBAAkB,WACnD,IAOImB,EACAC,EARAjG,EAASxsR,KAAK4wR,aACdxjR,EAAKpN,KAAKmxR,aACVoB,EAAmBnlR,EAAGmlR,iBACtBP,EAAa5kR,EAAG4kR,WAChBC,EAAc7kR,EAAG6kR,YACjBzpP,EAAiB0nP,EAAyB/wR,QAAQqpC,eAC7BxoC,KAAKyxR,OAAOzxR,KAAK0wR,aAAc,IAAUgB,SAKhEc,EAAeD,EAAiBnjR,IAAMo5B,EAAiBwpP,EAAW7iR,OAASnP,KAAK6wR,aAAa50P,OAC7Fw2P,EAAkBF,EAAiBt2P,OAASuM,EAAiBxoC,KAAK6wR,aAAa50P,SAE/Eu2P,EAAeD,EAAiBnjR,IAAMo5B,EAAiBxoC,KAAK6wR,aAAazhR,IACzEqjR,EAAkBF,EAAiBt2P,OAASuM,EAAiBwpP,EAAW7iR,OAASnP,KAAK6wR,aAAazhR,OAG7EqjR,EAAkBR,EAAY9iR,OAAS,IAErCqjR,GAAgBC,IAExCjG,EAASxsR,KAAK0yR,OAAOlG,EAAQ,IAAUkF,SAGzC,IAaIiB,EACAC,EAdAhG,EAAQ5sR,KAAKH,QAAQ+sR,QACrBiG,EAAY7yR,KAAKyxR,OAAOzxR,KAAK0wR,aAAc,IAAUoC,UACrDC,EAAc/yR,KAAKyxR,OAAOzxR,KAAK0wR,aAAc,IAAUK,OAEvDiC,GAAoB,GAGtBA,EADEpG,GAASiG,GACUE,EAGDA,IAOpBJ,EAAgBJ,EAAiBz+Q,KAAOk+Q,EAAWxkQ,MAAQxtB,KAAK6wR,aAAat0P,MAC7Eq2P,EAAiBL,EAAiBh2P,MAAQv8B,KAAK6wR,aAAat0P,QAE5Do2P,EAAgBJ,EAAiBz+Q,KAAO9T,KAAK6wR,aAAa/8Q,KAC1D8+Q,EAAiBL,EAAiBh2P,MAAQy1P,EAAWxkQ,MAAQxtB,KAAK6wR,aAAa/8Q,MAGjF,IAAIm/Q,EAAkBN,EAAgBV,EAAYzkQ,MAAQ,EACtD0lQ,EAAmBN,EAAiBX,EAAYzkQ,MAAQ,EACxD2lQ,EAA6BnzR,KAAKyxR,OAAOjF,EAAQ,IAAUsG,WAAa9yR,KAAKyxR,OAAOjF,EAAQ,IAAUuE,OAU1G,OARImC,GAAoBC,GAA8BvG,IAAUqG,GAAmBE,EAEjF3G,EAASxsR,KAAKozR,SAAS5G,EAAQ,IAAUuE,QAChCkC,GAAmBD,GAAqBpG,GAASqG,IAAoBD,GAAqBD,IAAgBG,GAAoBP,GAAiBC,KAExJpG,EAASxsR,KAAK0yR,OAAOlG,EAAQ,IAAUuE,QAGlCvE,GAQT0D,EAAyB9uR,UAAUmwR,wBAA0B,SAAU/E,GACrE,IAAI+F,EAAmBvyR,KAAKmxR,aAAaoB,iBACrC94F,EAAY,EACZ45F,EAAkBrzR,KAAKyxR,OAAOjF,EAAQ,IAAUkF,QAChD4B,EAAmBtzR,KAAKyxR,OAAOzxR,KAAK0wR,aAAc,IAAUgB,QAC5DlpP,EAAiB0nP,EAAyB/wR,QAAQqpC,eAgBtD,OAdI6qP,GACF55F,EAAY84F,EAAiBnjR,IAAMpP,KAAK6wR,aAAazhR,IAAMo5B,EAEtD8qP,IACH75F,GAAaz5L,KAAKmxR,aAAaa,WAAW7iR,UAG5CsqL,EAAY84F,EAAiBt2P,OAASj8B,KAAK6wR,aAAa50P,OAASj8B,KAAKmxR,aAAaa,WAAW7iR,OAASq5B,EAEnG8qP,IACF75F,GAAaz5L,KAAKmxR,aAAaa,WAAW7iR,SAIvCsqL,GAQTy2F,EAAyB9uR,UAAUywR,0BAA4B,SAAUrF,GACvE,IAAIwF,EAAahyR,KAAKmxR,aAAaa,WAE/BuB,EAAiBvzR,KAAKyxR,OAAOjF,EAAQ,IAAUuE,OAC/CyC,EAAyBxzR,KAAKyxR,OAAOzxR,KAAK0wR,aAAc,IAAUK,OAEtE,GAAIwC,EAAgB,CAClB,IAAIE,EAAcD,EAAyBxB,EAAWxkQ,MAAQxtB,KAAK6wR,aAAa/8Q,KAAO9T,KAAK6wR,aAAat0P,MAKzG,OAAIv8B,KAAKqwR,kBAAoBrwR,KAAKswR,gBACzBmD,GAAezzR,KAAKmxR,aAAakB,aAAa7kQ,MAAQxtB,KAAKmxR,aAAaiB,SAAS5kQ,OAGnFimQ,EAGT,OAAOD,EAAyBxB,EAAWxkQ,MAAQxtB,KAAK6wR,aAAat0P,MAAQv8B,KAAK6wR,aAAa/8Q,MAQjGo8Q,EAAyB9uR,UAAU2wR,wBAA0B,SAAUvF,GACrE,IAAIwF,EAAahyR,KAAKmxR,aAAaa,WAC/BqB,EAAkBrzR,KAAKyxR,OAAOjF,EAAQ,IAAUkF,QAChDgC,EAAuB1zR,KAAKyxR,OAAOzxR,KAAK0wR,aAAc,IAAUgB,QASpE,OANI2B,EACEK,EAAuB1B,EAAW7iR,OAASnP,KAAK6wR,aAAazhR,KAAOpP,KAAK6wR,aAAa50P,OAEtFy3P,EAAuB1B,EAAW7iR,OAASnP,KAAK6wR,aAAa50P,OAASj8B,KAAK6wR,aAAazhR,KAQhG8gR,EAAyB9uR,UAAU8wR,gCAAkC,SAAU1vQ,GAC7E,IAAIi6J,EAAKrvK,EAELob,EAAKxoB,KAAKmxR,aACVmB,EAAe9pQ,EAAG8pQ,aAClBC,EAAmB/pQ,EAAG+pQ,iBACtB32O,EAAQp7C,OAAOkW,KAAK8L,GAExB,IACE,IAAK,IAAImxQ,EAAU,YAAS/3O,GAAQg4O,EAAYD,EAAQ7iP,QAAS8iP,EAAU7iP,KAAM6iP,EAAYD,EAAQ7iP,OAAQ,CAC3G,IAAIy4E,EAAOqqK,EAAUzjR,MACjBA,EAAQqS,EAAS+mG,IAAS,EAG9Bp5G,GAASoiR,EAAiBhpK,GAGrBvpH,KAAKswR,kBACK,QAAT/mK,EACFp5G,GAASmiR,EAAar1R,EACJ,WAATssH,EACTp5G,GAASmiR,EAAar1R,EACJ,SAATssH,EACTp5G,GAASmiR,EAAa5+Q,EAGtBvD,GAASmiR,EAAa5+Q,GAI1B8O,EAAS+mG,GAAQp5G,GAEnB,MAAO8sK,GACPR,EAAM,CACJp/J,MAAO4/J,GAET,QACA,IACM22G,IAAcA,EAAU7iP,OAAS3jC,EAAKumR,EAAQz2G,SAAS9vK,EAAGrN,KAAK4zR,GACnE,QACA,GAAIl3G,EAAK,MAAMA,EAAIp/J,SAUzB6yQ,EAAyB9uR,UAAU8vR,kBAAoB,WACrD,IAAIzoI,EAAgBzoJ,KAAKH,QAAQ6pG,YAC7BmqL,EAAgBz8Q,SAAS8c,eAAiBl0B,KAAKH,QAAQ8sR,qBAAqBv1Q,SAAS8c,gBAErFu0H,GAAiBorI,IACnB7zR,KAAKH,QAAQuc,gBAIjB8zQ,EAAyB9uR,UAAUqwR,OAAS,SAAUjF,EAAQsH,GAC5D,OAAO9tR,QAAQwmR,EAASsH,IAG1B5D,EAAyB9uR,UAAUsxR,OAAS,SAAUlG,EAAQsH,GAC5D,OAAOtH,EAASsH,GAGlB5D,EAAyB9uR,UAAUgyR,SAAW,SAAU5G,EAAQsH,GAC9D,OAAOtH,EAASsH,GAQlB5D,EAAyB9uR,UAAUo2D,SAAW,SAAU3lD,GACtD,MAAsB,kBAARA,GAAoB2lD,SAAS3lD,IAGtCq+Q,EAnoBT,CAooBE,M,kCC9pBF,IAAIvkQ,EAAQ,EAAQ,QAEpB,SAAShR,EAAOyP,GACd,OAAOxP,mBAAmBwP,GAAKtsB,QAAQ,QAAS,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,OAAQ,KAAKA,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAW9JoK,EAAOC,QAAU,SAAkBg5B,EAAKqF,EAAQ28G,GAE9C,IAAK38G,EACH,OAAOrF,EAGT,IAAI4yP,EAEJ,GAAI5wI,EACF4wI,EAAmB5wI,EAAiB38G,QAC/B,GAAI7a,EAAM8hI,kBAAkBjnH,GACjCutP,EAAmBvtP,EAAO1tB,eACrB,CACL,IAAI4oH,EAAQ,GACZ/1G,EAAM3b,QAAQw2B,GAAQ,SAAmBpc,EAAKznB,GAChC,OAARynB,GAA+B,qBAARA,IAIvBuB,EAAM+e,QAAQtgB,GAChBznB,GAAY,KAEZynB,EAAM,CAACA,GAGTuB,EAAM3b,QAAQoa,GAAK,SAAoBwjB,GACjCjiB,EAAMu7F,OAAOt5E,GACfA,EAAIA,EAAE1lB,cACGyD,EAAMvS,SAASw0B,KACxBA,EAAIzT,KAAKtf,UAAU+yB,IAGrB8zF,EAAM1zH,KAAK2M,EAAOhY,GAAO,IAAMgY,EAAOizB,WAG1CmmP,EAAmBryJ,EAAMtrH,KAAK,KAGhC,GAAI29Q,EAAkB,CACpB,IAAIC,EAAgB7yP,EAAIx5B,QAAQ,MAET,IAAnBqsR,IACF7yP,EAAMA,EAAIv5B,MAAM,EAAGosR,IAGrB7yP,KAA8B,IAAtBA,EAAIx5B,QAAQ,KAAc,IAAM,KAAOosR,EAGjD,OAAO5yP,I,oCC9DT,IAAI5rB,EAAQ,EAAQ,QAIpB,SAAS0+Q,EAAG13R,EAAGia,GACb,OAAOlQ,OAAO/J,EAAGia,GAGnBrO,EAAQtB,cAAgB0O,GAAM,WAE5B,IAAIlO,EAAK4sR,EAAG,IAAK,KAEjB,OADA5sR,EAAGT,UAAY,EACW,MAAnBS,EAAGd,KAAK,WAGjB4B,EAAQrB,aAAeyO,GAAM,WAE3B,IAAIlO,EAAK4sR,EAAG,KAAM,MAElB,OADA5sR,EAAGT,UAAY,EACU,MAAlBS,EAAGd,KAAK,W,kCCpBjB,IAAI+N,EAAI,EAAQ,QACZk6B,EAA4B,EAAQ,QACpCiH,EAAiB,EAAQ,QACzBp8B,EAAiB,EAAQ,QACzBk1B,EAAiB,EAAQ,QACzB6wG,EAA8B,EAAQ,QACtC/wG,EAAW,EAAQ,QACnBU,EAAkB,EAAQ,QAC1BoD,EAAU,EAAQ,QAClBs6G,EAAY,EAAQ,QACpBynI,EAAgB,EAAQ,QAExBx0G,EAAoBw0G,EAAcx0G,kBAClCkyF,EAAyBsiB,EAActiB,uBACvC1iO,EAAWH,EAAgB,YAC3BolP,EAAO,OACPC,EAAS,SACThuB,EAAU,UAEVp0E,EAAa,WAAc,OAAOhyL,MAEtCkI,EAAOC,QAAU,SAAUksR,EAAUniG,EAAMD,EAAqBnhJ,EAAMwjP,EAASC,EAAQC,GACrFhmP,EAA0ByjJ,EAAqBC,EAAMphJ,GAErD,IAkBI2jP,EAA0BpoP,EAASw4G,EAlBnC6vI,EAAqB,SAAUC,GACjC,GAAIA,IAASL,GAAWM,EAAiB,OAAOA,EAChD,IAAKhjB,GAA0B+iB,KAAQE,EAAmB,OAAOA,EAAkBF,GACnF,OAAQA,GACN,KAAKR,EACL,KAAKC,EACL,KAAKhuB,EAAS,OAAO,WAAqB,OAAO,IAAIn0E,EAAoBjyL,KAAM20R,IAC/E,OAAO,WAAc,OAAO,IAAI1iG,EAAoBjyL,QAGpDq/I,EAAgB6yC,EAAO,YACvB4iG,GAAwB,EACxBD,EAAoBR,EAASjzR,UAC7B2zR,EAAiBF,EAAkB3lP,IAClC2lP,EAAkB,eAClBP,GAAWO,EAAkBP,GAC9BM,GAAmBhjB,GAA0BmjB,GAAkBL,EAAmBJ,GAClFU,EAA4B,SAAR9iG,GAAkB2iG,EAAkBrkP,SAA4BukP,EAiCxF,GA7BIC,IACFP,EAA2Bh/O,EAAeu/O,EAAkBj1R,KAAK,IAAIs0R,IACjE30G,IAAsBl/K,OAAOY,WAAaqzR,EAAyB3jP,OAChEqB,GAAWsD,EAAeg/O,KAA8B/0G,IACvDrmK,EACFA,EAAeo7Q,EAA0B/0G,GACa,mBAAtC+0G,EAAyBvlP,IACzCkwG,EAA4Bq1I,EAA0BvlP,EAAU8iJ,IAIpEzjJ,EAAekmP,EAA0Bp1I,GAAe,GAAM,GAC1DltG,IAASs6G,EAAUpN,GAAiB2yC,KAKxCsiG,GAAWF,GAAUW,GAAkBA,EAAel3Q,OAASu2Q,IACjEU,GAAwB,EACxBF,EAAkB,WAAoB,OAAOG,EAAeh1R,KAAKC,QAI7DmyC,IAAWqiP,GAAWK,EAAkB3lP,KAAc0lP,GAC1Dx1I,EAA4By1I,EAAmB3lP,EAAU0lP,GAE3DnoI,EAAUylC,GAAQ0iG,EAGdN,EAMF,GALAjoP,EAAU,CACR0F,OAAQ2iP,EAAmBN,GAC3B19Q,KAAM69Q,EAASK,EAAkBF,EAAmBP,GACpD3jP,QAASkkP,EAAmBtuB,IAE1BouB,EAAQ,IAAK3vI,KAAOx4G,GAClBulO,GAA0BkjB,KAA2BjwI,KAAOgwI,KAC9DxmP,EAASwmP,EAAmBhwI,EAAKx4G,EAAQw4G,SAEtCvwI,EAAE,CAAE1P,OAAQstL,EAAMp7I,OAAO,EAAMriC,OAAQm9P,GAA0BkjB,GAAyBzoP,GAGnG,OAAOA,I,sBCjFA,SAAUvxC,GACjB,aAESA,EAAOC,aAAa,KAAM,CACjCC,OAAQ,gPAA0FC,MAAM,KACxGC,YAAa,oKAAgED,MAAM,KACnFE,SAAU,gKAAuDF,MAAM,KACvEG,cAAe,kGAAsCH,MAAM,KAC3DI,YAAa,8DAA2BJ,MAAM,KAC9CK,eAAgB,CACdC,GAAI,SACJC,IAAK,YACLC,EAAG,aACHC,GAAI,cACJC,IAAK,qBACLC,KAAM,4BAERC,SAAU,CACRC,QAAS,0BACTC,QAAS,yBACTC,SAAU,uDACVC,QAAS,oBACTC,SAAU,2DACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,cACRC,KAAM,qBACNC,EAAG,wCACHC,GAAI,gBACJC,EAAG,6BACHC,GAAI,4BACJC,EAAG,mBACHC,GAAI,kBACJC,EAAG,0BACHC,GAAI,yBACJC,EAAG,gBACHC,GAAI,eACJC,EAAG,sBACHC,GAAI,sBAENC,uBAAwB,+BACxBC,QAAS,yBACTG,KAAM,CACJC,IAAK,EAELC,IAAK,KA/CuFC,CAAQ,EAAQ,U,sBCKzG,SAAU5C,GACjB,aAEA,IAAIo8L,EAAa,SAAU3lL,GACzB,OAAa,IAANA,EAAU,EAAU,IAANA,EAAU,EAAU,IAANA,EAAU,EAAIA,EAAI,KAAO,GAAKA,EAAI,KAAO,GAAK,EAAIA,EAAI,KAAO,GAAK,EAAI,GAEvG4lL,EAAU,CACZ56L,EAAG,CAAC,iEAAgB,gEAAe,CAAC,6CAAW,8CAAY,8BAAW,oCAAY,qCAClFE,EAAG,CAAC,iEAAgB,gEAAe,CAAC,6CAAW,8CAAY,oCAAY,oCAAY,qCACnFE,EAAG,CAAC,2DAAe,0DAAc,CAAC,uCAAU,wCAAW,oCAAY,8BAAW,+BAC9EE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,8BAAW,oCAAY,yBACzEE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,8BAAW,8BAAW,yBACxEE,EAAG,CAAC,qDAAc,8CAAY,CAAC,iCAAS,kCAAU,oCAAY,oCAAY,0BAExEm6L,EAAY,SAAUtvK,GACxB,OAAO,SAAUzqB,EAAQoU,EAAejI,EAAQkI,GAC9C,IAAI8E,EAAI0gL,EAAW75L,GACf4J,EAAMkwL,EAAQrvK,GAAGovK,EAAW75L,IAMhC,OAJU,IAANmZ,IACFvP,EAAMA,EAAIwK,EAAgB,EAAI,IAGzBxK,EAAInJ,QAAQ,MAAOT,KAG1BrC,EAAS,CAAC,iCAAS,iCAAS,2BAAQ,iCAAS,qBAAO,2BAAQ,uCAAU,qBAAO,uCAAU,uCAAU,uCAAU,wCAEpGF,EAAOC,aAAa,QAAS,CACtCC,OAAQA,EACRE,YAAaF,EACbG,SAAU,uRAAsDF,MAAM,KACtEG,cAAe,mMAAwCH,MAAM,KAC7DI,YAAa,mDAAgBJ,MAAM,KACnC+N,oBAAoB,EACpB1N,eAAgB,CACdC,GAAI,QACJC,IAAK,WACLC,EAAG,uBACHC,GAAI,cACJC,IAAK,oBACLC,KAAM,0BAERqN,cAAe,gBACfC,KAAM,SAAUpB,GACd,MAAO,WAAQA,GAEjBqB,SAAU,SAAUC,EAAMC,EAAQC,GAChC,OAAIF,EAAO,GACF,SAEA,UAGXvN,SAAU,CACRC,QAAS,8FACTC,QAAS,wFACTC,SAAU,oEACVC,QAAS,kFACTC,SAAU,oEACVC,SAAU,KAEZC,aAAc,CACZC,OAAQ,wBACRC,KAAM,wBACNC,EAAG66L,EAAU,KACb56L,GAAI46L,EAAU,KACd36L,EAAG26L,EAAU,KACb16L,GAAI06L,EAAU,KACdz6L,EAAGy6L,EAAU,KACbx6L,GAAIw6L,EAAU,KACdv6L,EAAGu6L,EAAU,KACbt6L,GAAIs6L,EAAU,KACdr6L,EAAGq6L,EAAU,KACbp6L,GAAIo6L,EAAU,KACdn6L,EAAGm6L,EAAU,KACbl6L,GAAIk6L,EAAU,MAEhB3tL,WAAY,SAAUD,GACpB,OAAOA,EAAO1L,QAAQ,KAAM,WAE9BP,KAAM,CACJC,IAAK,EAELC,IAAK,KArFuFC,CAAQ,EAAQ,U,qBCVlH,IAAIuK,EAAS,EAAQ,QACjBm8I,EAAgB,EAAQ,QAExBjhF,EAAUl7D,EAAOk7D,QAErBj7D,EAAOC,QAA6B,oBAAZg7D,GAA0B,cAAcjlE,KAAKkmJ,EAAcjhF","file":"js/vendors~confinus-3887fab7c15a036da5f0.chunk.js","sourcesContent":["//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return tet;\n});","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/, function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი'\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n\n if (number === 1) {\n return number + '-ლი';\n }\n\n if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) {\n return 'მე-' + number;\n }\n\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7\n }\n });\n return ka;\n});","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cssClasses = {\n CLOSING: 'mdc-snackbar--closing',\n OPEN: 'mdc-snackbar--open',\n OPENING: 'mdc-snackbar--opening'\n};\nvar strings = {\n ACTION_SELECTOR: '.mdc-snackbar__action',\n ARIA_LIVE_LABEL_TEXT_ATTR: 'data-mdc-snackbar-label-text',\n CLOSED_EVENT: 'MDCSnackbar:closed',\n CLOSING_EVENT: 'MDCSnackbar:closing',\n DISMISS_SELECTOR: '.mdc-snackbar__dismiss',\n LABEL_SELECTOR: '.mdc-snackbar__label',\n OPENED_EVENT: 'MDCSnackbar:opened',\n OPENING_EVENT: 'MDCSnackbar:opening',\n REASON_ACTION: 'action',\n REASON_DISMISS: 'dismiss',\n SURFACE_SELECTOR: '.mdc-snackbar__surface'\n};\nvar numbers = {\n DEFAULT_AUTO_DISMISS_TIMEOUT_MS: 5000,\n INDETERMINATE: -1,\n MAX_AUTO_DISMISS_TIMEOUT_MS: 10000,\n MIN_AUTO_DISMISS_TIMEOUT_MS: 4000,\n // These variables need to be kept in sync with the values in _variables.scss.\n SNACKBAR_ANIMATION_CLOSE_TIME_MS: 75,\n SNACKBAR_ANIMATION_OPEN_TIME_MS: 150,\n\n /**\n * Number of milliseconds to wait between temporarily clearing the label text\n * in the DOM and subsequently restoring it. This is necessary to force IE 11\n * to pick up the `aria-live` content change and announce it to the user.\n */\n ARIA_LIVE_DELAY_MS: 1000\n};\nexport { cssClasses, strings, numbers };","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, numbers, strings } from './constants';\nvar OPENING = cssClasses.OPENING,\n OPEN = cssClasses.OPEN,\n CLOSING = cssClasses.CLOSING;\nvar REASON_ACTION = strings.REASON_ACTION,\n REASON_DISMISS = strings.REASON_DISMISS;\n\nvar MDCSnackbarFoundation =\n/** @class */\nfunction (_super) {\n __extends(MDCSnackbarFoundation, _super);\n\n function MDCSnackbarFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCSnackbarFoundation.defaultAdapter), adapter)) || this;\n\n _this.isOpen_ = false;\n _this.animationFrame_ = 0;\n _this.animationTimer_ = 0;\n _this.autoDismissTimer_ = 0;\n _this.autoDismissTimeoutMs_ = numbers.DEFAULT_AUTO_DISMISS_TIMEOUT_MS;\n _this.closeOnEscape_ = true;\n return _this;\n }\n\n Object.defineProperty(MDCSnackbarFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbarFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbarFoundation, \"numbers\", {\n get: function () {\n return numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbarFoundation, \"defaultAdapter\", {\n get: function () {\n return {\n addClass: function () {\n return undefined;\n },\n announce: function () {\n return undefined;\n },\n notifyClosed: function () {\n return undefined;\n },\n notifyClosing: function () {\n return undefined;\n },\n notifyOpened: function () {\n return undefined;\n },\n notifyOpening: function () {\n return undefined;\n },\n removeClass: function () {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n\n MDCSnackbarFoundation.prototype.destroy = function () {\n this.clearAutoDismissTimer_();\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = 0;\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = 0;\n this.adapter.removeClass(OPENING);\n this.adapter.removeClass(OPEN);\n this.adapter.removeClass(CLOSING);\n };\n\n MDCSnackbarFoundation.prototype.open = function () {\n var _this = this;\n\n this.clearAutoDismissTimer_();\n this.isOpen_ = true;\n this.adapter.notifyOpening();\n this.adapter.removeClass(CLOSING);\n this.adapter.addClass(OPENING);\n this.adapter.announce(); // Wait a frame once display is no longer \"none\", to establish basis for animation\n\n this.runNextAnimationFrame_(function () {\n _this.adapter.addClass(OPEN);\n\n _this.animationTimer_ = setTimeout(function () {\n var timeoutMs = _this.getTimeoutMs();\n\n _this.handleAnimationTimerEnd_();\n\n _this.adapter.notifyOpened();\n\n if (timeoutMs !== numbers.INDETERMINATE) {\n _this.autoDismissTimer_ = setTimeout(function () {\n _this.close(REASON_DISMISS);\n }, timeoutMs);\n }\n }, numbers.SNACKBAR_ANIMATION_OPEN_TIME_MS);\n });\n };\n /**\n * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the\n * `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom\n * client-specific values may also be used if desired.\n */\n\n\n MDCSnackbarFoundation.prototype.close = function (reason) {\n var _this = this;\n\n if (reason === void 0) {\n reason = '';\n }\n\n if (!this.isOpen_) {\n // Avoid redundant close calls (and events), e.g. repeated interactions as the snackbar is animating closed\n return;\n }\n\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = 0;\n this.clearAutoDismissTimer_();\n this.isOpen_ = false;\n this.adapter.notifyClosing(reason);\n this.adapter.addClass(cssClasses.CLOSING);\n this.adapter.removeClass(cssClasses.OPEN);\n this.adapter.removeClass(cssClasses.OPENING);\n clearTimeout(this.animationTimer_);\n this.animationTimer_ = setTimeout(function () {\n _this.handleAnimationTimerEnd_();\n\n _this.adapter.notifyClosed(reason);\n }, numbers.SNACKBAR_ANIMATION_CLOSE_TIME_MS);\n };\n\n MDCSnackbarFoundation.prototype.isOpen = function () {\n return this.isOpen_;\n };\n\n MDCSnackbarFoundation.prototype.getTimeoutMs = function () {\n return this.autoDismissTimeoutMs_;\n };\n\n MDCSnackbarFoundation.prototype.setTimeoutMs = function (timeoutMs) {\n // Use shorter variable names to make the code more readable\n var minValue = numbers.MIN_AUTO_DISMISS_TIMEOUT_MS;\n var maxValue = numbers.MAX_AUTO_DISMISS_TIMEOUT_MS;\n var indeterminateValue = numbers.INDETERMINATE;\n\n if (timeoutMs === numbers.INDETERMINATE || timeoutMs <= maxValue && timeoutMs >= minValue) {\n this.autoDismissTimeoutMs_ = timeoutMs;\n } else {\n throw new Error(\"\\n timeoutMs must be an integer in the range \" + minValue + \"\\u2013\" + maxValue + \"\\n (or \" + indeterminateValue + \" to disable), but got '\" + timeoutMs + \"'\");\n }\n };\n\n MDCSnackbarFoundation.prototype.getCloseOnEscape = function () {\n return this.closeOnEscape_;\n };\n\n MDCSnackbarFoundation.prototype.setCloseOnEscape = function (closeOnEscape) {\n this.closeOnEscape_ = closeOnEscape;\n };\n\n MDCSnackbarFoundation.prototype.handleKeyDown = function (evt) {\n var isEscapeKey = evt.key === 'Escape' || evt.keyCode === 27;\n\n if (isEscapeKey && this.getCloseOnEscape()) {\n this.close(REASON_DISMISS);\n }\n };\n\n MDCSnackbarFoundation.prototype.handleActionButtonClick = function (_evt) {\n this.close(REASON_ACTION);\n };\n\n MDCSnackbarFoundation.prototype.handleActionIconClick = function (_evt) {\n this.close(REASON_DISMISS);\n };\n\n MDCSnackbarFoundation.prototype.clearAutoDismissTimer_ = function () {\n clearTimeout(this.autoDismissTimer_);\n this.autoDismissTimer_ = 0;\n };\n\n MDCSnackbarFoundation.prototype.handleAnimationTimerEnd_ = function () {\n this.animationTimer_ = 0;\n this.adapter.removeClass(cssClasses.OPENING);\n this.adapter.removeClass(cssClasses.CLOSING);\n };\n /**\n * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n */\n\n\n MDCSnackbarFoundation.prototype.runNextAnimationFrame_ = function (callback) {\n var _this = this;\n\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = requestAnimationFrame(function () {\n _this.animationFrame_ = 0;\n clearTimeout(_this.animationTimer_);\n _this.animationTimer_ = setTimeout(callback, 0);\n });\n };\n\n return MDCSnackbarFoundation;\n}(MDCFoundation);\n\nexport { MDCSnackbarFoundation }; // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\n\nexport default MDCSnackbarFoundation;","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { numbers, strings } from './constants';\nvar ARIA_LIVE_DELAY_MS = numbers.ARIA_LIVE_DELAY_MS;\nvar ARIA_LIVE_LABEL_TEXT_ATTR = strings.ARIA_LIVE_LABEL_TEXT_ATTR;\n\nfunction announce(ariaEl, labelEl) {\n if (labelEl === void 0) {\n labelEl = ariaEl;\n }\n\n var priority = ariaEl.getAttribute('aria-live'); // Trim text to ignore ` ` (see below).\n // textContent is only null if the node is a document, DOCTYPE, or notation.\n\n var labelText = labelEl.textContent.trim();\n\n if (!labelText || !priority) {\n return;\n } // Temporarily disable `aria-live` to prevent JAWS+Firefox from announcing the message twice.\n\n\n ariaEl.setAttribute('aria-live', 'off'); // Temporarily clear `textContent` to force a DOM mutation event that will be detected by screen readers.\n // `aria-live` elements are only announced when the element's `textContent` *changes*, so snackbars\n // sent to the browser in the initial HTML response won't be read unless we clear the element's `textContent` first.\n // Similarly, displaying the same snackbar message twice in a row doesn't trigger a DOM mutation event,\n // so screen readers won't announce the second message unless we first clear `textContent`.\n //\n // We have to clear the label text two different ways to make it work in all browsers and screen readers:\n //\n // 1. `textContent = ''` is required for IE11 + JAWS\n // 2. `innerHTML = ' '` is required for Chrome + JAWS and NVDA\n //\n // All other browser/screen reader combinations support both methods.\n //\n // The wrapper `` visually hides the space character so that it doesn't cause jank when added/removed.\n // N.B.: Setting `position: absolute`, `opacity: 0`, or `height: 0` prevents Chrome from detecting the DOM change.\n //\n // This technique has been tested in:\n //\n // * JAWS 2019:\n // - Chrome 70\n // - Firefox 60 (ESR)\n // - IE 11\n // * NVDA 2018:\n // - Chrome 70\n // - Firefox 60 (ESR)\n // - IE 11\n // * ChromeVox 53\n\n labelEl.textContent = '';\n labelEl.innerHTML = ' '; // Prevent visual jank by temporarily displaying the label text in the ::before pseudo-element.\n // CSS generated content is normally announced by screen readers\n // (except in IE 11; see https://tink.uk/accessibility-support-for-css-generated-content/);\n // however, `aria-live` is turned off, so this DOM update will be ignored by screen readers.\n\n labelEl.setAttribute(ARIA_LIVE_LABEL_TEXT_ATTR, labelText);\n setTimeout(function () {\n // Allow screen readers to announce changes to the DOM again.\n ariaEl.setAttribute('aria-live', priority); // Remove the message from the ::before pseudo-element.\n\n labelEl.removeAttribute(ARIA_LIVE_LABEL_TEXT_ATTR); // Restore the original label text, which will be announced by screen readers.\n\n labelEl.textContent = labelText;\n }, ARIA_LIVE_DELAY_MS);\n}\n\nexport { announce };","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { closest } from '@material/dom/ponyfill';\nimport { strings } from './constants';\nimport { MDCSnackbarFoundation } from './foundation';\nimport * as util from './util';\nvar SURFACE_SELECTOR = strings.SURFACE_SELECTOR,\n LABEL_SELECTOR = strings.LABEL_SELECTOR,\n ACTION_SELECTOR = strings.ACTION_SELECTOR,\n DISMISS_SELECTOR = strings.DISMISS_SELECTOR,\n OPENING_EVENT = strings.OPENING_EVENT,\n OPENED_EVENT = strings.OPENED_EVENT,\n CLOSING_EVENT = strings.CLOSING_EVENT,\n CLOSED_EVENT = strings.CLOSED_EVENT;\n\nvar MDCSnackbar =\n/** @class */\nfunction (_super) {\n __extends(MDCSnackbar, _super);\n\n function MDCSnackbar() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n MDCSnackbar.attachTo = function (root) {\n return new MDCSnackbar(root);\n };\n\n MDCSnackbar.prototype.initialize = function (announcerFactory) {\n if (announcerFactory === void 0) {\n announcerFactory = function () {\n return util.announce;\n };\n }\n\n this.announce_ = announcerFactory();\n };\n\n MDCSnackbar.prototype.initialSyncWithDOM = function () {\n var _this = this;\n\n this.surfaceEl_ = this.root.querySelector(SURFACE_SELECTOR);\n this.labelEl_ = this.root.querySelector(LABEL_SELECTOR);\n this.actionEl_ = this.root.querySelector(ACTION_SELECTOR);\n\n this.handleKeyDown_ = function (evt) {\n return _this.foundation.handleKeyDown(evt);\n };\n\n this.handleSurfaceClick_ = function (evt) {\n var target = evt.target;\n\n if (_this.isActionButton_(target)) {\n _this.foundation.handleActionButtonClick(evt);\n } else if (_this.isActionIcon_(target)) {\n _this.foundation.handleActionIconClick(evt);\n }\n };\n\n this.registerKeyDownHandler_(this.handleKeyDown_);\n this.registerSurfaceClickHandler_(this.handleSurfaceClick_);\n };\n\n MDCSnackbar.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n\n this.deregisterKeyDownHandler_(this.handleKeyDown_);\n this.deregisterSurfaceClickHandler_(this.handleSurfaceClick_);\n };\n\n MDCSnackbar.prototype.open = function () {\n this.foundation.open();\n };\n /**\n * @param reason Why the snackbar was closed. Value will be passed to CLOSING_EVENT and CLOSED_EVENT via the\n * `event.detail.reason` property. Standard values are REASON_ACTION and REASON_DISMISS, but custom\n * client-specific values may also be used if desired.\n */\n\n\n MDCSnackbar.prototype.close = function (reason) {\n if (reason === void 0) {\n reason = '';\n }\n\n this.foundation.close(reason);\n };\n\n MDCSnackbar.prototype.getDefaultFoundation = function () {\n var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n\n\n var adapter = {\n addClass: function (className) {\n return _this.root.classList.add(className);\n },\n announce: function () {\n return _this.announce_(_this.labelEl_);\n },\n notifyClosed: function (reason) {\n return _this.emit(CLOSED_EVENT, reason ? {\n reason: reason\n } : {});\n },\n notifyClosing: function (reason) {\n return _this.emit(CLOSING_EVENT, reason ? {\n reason: reason\n } : {});\n },\n notifyOpened: function () {\n return _this.emit(OPENED_EVENT, {});\n },\n notifyOpening: function () {\n return _this.emit(OPENING_EVENT, {});\n },\n removeClass: function (className) {\n return _this.root.classList.remove(className);\n }\n };\n return new MDCSnackbarFoundation(adapter);\n };\n\n Object.defineProperty(MDCSnackbar.prototype, \"timeoutMs\", {\n get: function () {\n return this.foundation.getTimeoutMs();\n },\n set: function (timeoutMs) {\n this.foundation.setTimeoutMs(timeoutMs);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbar.prototype, \"closeOnEscape\", {\n get: function () {\n return this.foundation.getCloseOnEscape();\n },\n set: function (closeOnEscape) {\n this.foundation.setCloseOnEscape(closeOnEscape);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbar.prototype, \"isOpen\", {\n get: function () {\n return this.foundation.isOpen();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbar.prototype, \"labelText\", {\n get: function () {\n // This property only returns null if the node is a document, DOCTYPE, or notation.\n // On Element nodes, it always returns a string.\n return this.labelEl_.textContent;\n },\n set: function (labelText) {\n this.labelEl_.textContent = labelText;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCSnackbar.prototype, \"actionButtonText\", {\n get: function () {\n return this.actionEl_.textContent;\n },\n set: function (actionButtonText) {\n this.actionEl_.textContent = actionButtonText;\n },\n enumerable: true,\n configurable: true\n });\n\n MDCSnackbar.prototype.registerKeyDownHandler_ = function (handler) {\n this.listen('keydown', handler);\n };\n\n MDCSnackbar.prototype.deregisterKeyDownHandler_ = function (handler) {\n this.unlisten('keydown', handler);\n };\n\n MDCSnackbar.prototype.registerSurfaceClickHandler_ = function (handler) {\n this.surfaceEl_.addEventListener('click', handler);\n };\n\n MDCSnackbar.prototype.deregisterSurfaceClickHandler_ = function (handler) {\n this.surfaceEl_.removeEventListener('click', handler);\n };\n\n MDCSnackbar.prototype.isActionButton_ = function (target) {\n return Boolean(closest(target, ACTION_SELECTOR));\n };\n\n MDCSnackbar.prototype.isActionIcon_ = function (target) {\n return Boolean(closest(target, DISMISS_SELECTOR));\n };\n\n return MDCSnackbar;\n}(MDCComponent);\n\nexport { MDCSnackbar };","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០'\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0'\n };\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ'\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return km;\n});","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return itCh;\n});","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * CSS class names used in component.\n */\nexport var cssClasses = {\n CELL: 'mdc-data-table__cell',\n CELL_NUMERIC: 'mdc-data-table__cell--numeric',\n CONTENT: 'mdc-data-table__content',\n HEADER_CELL: 'mdc-data-table__header-cell',\n HEADER_CELL_LABEL: 'mdc-data-table__header-cell-label',\n HEADER_CELL_SORTED: 'mdc-data-table__header-cell--sorted',\n HEADER_CELL_SORTED_DESCENDING: 'mdc-data-table__header-cell--sorted-descending',\n HEADER_CELL_WITH_SORT: 'mdc-data-table__header-cell--with-sort',\n HEADER_CELL_WRAPPER: 'mdc-data-table__header-cell-wrapper',\n HEADER_ROW: 'mdc-data-table__header-row',\n HEADER_ROW_CHECKBOX: 'mdc-data-table__header-row-checkbox',\n IN_PROGRESS: 'mdc-data-table--in-progress',\n PROGRESS_INDICATOR: 'mdc-data-table__progress-indicator',\n ROOT: 'mdc-data-table',\n ROW: 'mdc-data-table__row',\n ROW_CHECKBOX: 'mdc-data-table__row-checkbox',\n ROW_SELECTED: 'mdc-data-table__row--selected',\n SORT_ICON_BUTTON: 'mdc-data-table__sort-icon-button',\n SORT_STATUS_LABEL: 'mdc-data-table__sort-status-label',\n PAGINATION_ROWS_PER_PAGE_SELECT: 'mdc-data-table__pagination-rows-per-page-select',\n PAGINATION_ROWS_PER_PAGE_LABEL: 'mdc-data-table__pagination-rows-per-page-label'\n};\n/**\n * DOM attributes used in component.\n */\n\nexport var attributes = {\n ARIA_SELECTED: 'aria-selected',\n ARIA_SORT: 'aria-sort'\n};\n/**\n * List of data attributes used in component.\n */\n\nexport var dataAttributes = {\n COLUMN_ID: 'data-column-id',\n ROW_ID: 'data-row-id'\n};\n/**\n * CSS selectors used in component.\n */\n\nexport var selectors = {\n CONTENT: \".\" + cssClasses.CONTENT,\n HEADER_CELL: \".\" + cssClasses.HEADER_CELL,\n HEADER_CELL_WITH_SORT: \".\" + cssClasses.HEADER_CELL_WITH_SORT,\n HEADER_ROW: \".\" + cssClasses.HEADER_ROW,\n HEADER_ROW_CHECKBOX: \".\" + cssClasses.HEADER_ROW_CHECKBOX,\n PROGRESS_INDICATOR: \".\" + cssClasses.PROGRESS_INDICATOR,\n ROW: \".\" + cssClasses.ROW,\n ROW_CHECKBOX: \".\" + cssClasses.ROW_CHECKBOX,\n ROW_SELECTED: \".\" + cssClasses.ROW_SELECTED,\n SORT_ICON_BUTTON: \".\" + cssClasses.SORT_ICON_BUTTON,\n SORT_STATUS_LABEL: \".\" + cssClasses.SORT_STATUS_LABEL\n};\n/**\n * Messages used in component.\n */\n\nexport var messages = {\n SORTED_IN_DESCENDING: 'Sorted in descending order',\n SORTED_IN_ASCENDING: 'Sorted in ascending order'\n};\n/**\n * Attributes and selectors used in component.\n * @deprecated Use `attributes`, `dataAttributes` and `selectors` instead.\n */\n\nexport var strings = {\n ARIA_SELECTED: attributes.ARIA_SELECTED,\n ARIA_SORT: attributes.ARIA_SORT,\n DATA_ROW_ID_ATTR: dataAttributes.ROW_ID,\n HEADER_ROW_CHECKBOX_SELECTOR: selectors.HEADER_ROW_CHECKBOX,\n ROW_CHECKBOX_SELECTOR: selectors.ROW_CHECKBOX,\n ROW_SELECTED_SELECTOR: selectors.ROW_SELECTED,\n ROW_SELECTOR: selectors.ROW\n};\n/**\n * Sort values defined by ARIA.\n * See https://www.w3.org/WAI/PF/aria/states_and_properties#aria-sort\n */\n\nexport var SortValue;\n\n(function (SortValue) {\n // Items are sorted in ascending order by this column.\n SortValue[\"ASCENDING\"] = \"ascending\"; // Items are sorted in descending order by this column.\n\n SortValue[\"DESCENDING\"] = \"descending\"; // There is no defined sort applied to the column.\n\n SortValue[\"NONE\"] = \"none\"; // A sort algorithm other than ascending or descending has been applied.\n\n SortValue[\"OTHER\"] = \"other\";\n})(SortValue || (SortValue = {}));\n/**\n * Event names used in component.\n */\n\n\nexport var events = {\n ROW_SELECTION_CHANGED: 'MDCDataTable:rowSelectionChanged',\n SELECTED_ALL: 'MDCDataTable:selectedAll',\n UNSELECTED_ALL: 'MDCDataTable:unselectedAll',\n SORTED: 'MDCDataTable:sorted'\n};","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __assign, __awaiter, __extends, __generator } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, SortValue, strings } from './constants';\n/**\n * The Foundation of data table component containing pure business logic, any\n * logic requiring DOM manipulation are delegated to adapter methods.\n */\n\nvar MDCDataTableFoundation =\n/** @class */\nfunction (_super) {\n __extends(MDCDataTableFoundation, _super);\n\n function MDCDataTableFoundation(adapter) {\n return _super.call(this, __assign(__assign({}, MDCDataTableFoundation.defaultAdapter), adapter)) || this;\n }\n\n Object.defineProperty(MDCDataTableFoundation, \"defaultAdapter\", {\n get: function () {\n return {\n addClass: function () {\n return undefined;\n },\n addClassAtRowIndex: function () {\n return undefined;\n },\n getAttributeByHeaderCellIndex: function () {\n return '';\n },\n getHeaderCellCount: function () {\n return 0;\n },\n getHeaderCellElements: function () {\n return [];\n },\n getRowCount: function () {\n return 0;\n },\n getRowElements: function () {\n return [];\n },\n getRowIdAtIndex: function () {\n return '';\n },\n getRowIndexByChildElement: function () {\n return 0;\n },\n getSelectedRowCount: function () {\n return 0;\n },\n getTableBodyHeight: function () {\n return '';\n },\n getTableHeaderHeight: function () {\n return '';\n },\n isCheckboxAtRowIndexChecked: function () {\n return false;\n },\n isHeaderRowCheckboxChecked: function () {\n return false;\n },\n isRowsSelectable: function () {\n return false;\n },\n notifyRowSelectionChanged: function () {\n return undefined;\n },\n notifySelectedAll: function () {\n return undefined;\n },\n notifySortAction: function () {\n return undefined;\n },\n notifyUnselectedAll: function () {\n return undefined;\n },\n registerHeaderRowCheckbox: function () {\n return undefined;\n },\n registerRowCheckboxes: function () {\n return undefined;\n },\n removeClass: function () {\n return undefined;\n },\n removeClassAtRowIndex: function () {\n return undefined;\n },\n removeClassNameByHeaderCellIndex: function () {\n return undefined;\n },\n setAttributeAtRowIndex: function () {\n return undefined;\n },\n setAttributeByHeaderCellIndex: function () {\n return undefined;\n },\n setClassNameByHeaderCellIndex: function () {\n return undefined;\n },\n setHeaderRowCheckboxChecked: function () {\n return undefined;\n },\n setHeaderRowCheckboxIndeterminate: function () {\n return undefined;\n },\n setProgressIndicatorStyles: function () {\n return undefined;\n },\n setRowCheckboxCheckedAtIndex: function () {\n return undefined;\n },\n setSortStatusLabelByHeaderCellIndex: function () {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Re-initializes header row checkbox and row checkboxes when selectable rows are added or removed from table.\n * Use this if registering checkbox is synchronous.\n */\n\n MDCDataTableFoundation.prototype.layout = function () {\n if (this.adapter.isRowsSelectable()) {\n this.adapter.registerHeaderRowCheckbox();\n this.adapter.registerRowCheckboxes();\n this.setHeaderRowCheckboxState();\n }\n };\n /**\n * Re-initializes header row checkbox and row checkboxes when selectable rows are added or removed from table.\n * Use this if registering checkbox is asynchronous.\n */\n\n\n MDCDataTableFoundation.prototype.layoutAsync = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.adapter.isRowsSelectable()) return [3\n /*break*/\n , 3];\n return [4\n /*yield*/\n , this.adapter.registerHeaderRowCheckbox()];\n\n case 1:\n _a.sent();\n\n return [4\n /*yield*/\n , this.adapter.registerRowCheckboxes()];\n\n case 2:\n _a.sent();\n\n this.setHeaderRowCheckboxState();\n _a.label = 3;\n\n case 3:\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n /**\n * @return Returns array of row elements.\n */\n\n\n MDCDataTableFoundation.prototype.getRows = function () {\n return this.adapter.getRowElements();\n };\n /**\n * @return Array of header cell elements.\n */\n\n\n MDCDataTableFoundation.prototype.getHeaderCells = function () {\n return this.adapter.getHeaderCellElements();\n };\n /**\n * Sets selected row ids. Overwrites previously selected rows.\n * @param rowIds Array of row ids that needs to be selected.\n */\n\n\n MDCDataTableFoundation.prototype.setSelectedRowIds = function (rowIds) {\n for (var rowIndex = 0; rowIndex < this.adapter.getRowCount(); rowIndex++) {\n var rowId = this.adapter.getRowIdAtIndex(rowIndex);\n var isSelected = false;\n\n if (rowId && rowIds.indexOf(rowId) >= 0) {\n isSelected = true;\n }\n\n this.adapter.setRowCheckboxCheckedAtIndex(rowIndex, isSelected);\n this.selectRowAtIndex(rowIndex, isSelected);\n }\n\n this.setHeaderRowCheckboxState();\n };\n /**\n * @return Returns array of all row ids.\n */\n\n\n MDCDataTableFoundation.prototype.getRowIds = function () {\n var rowIds = [];\n\n for (var rowIndex = 0; rowIndex < this.adapter.getRowCount(); rowIndex++) {\n rowIds.push(this.adapter.getRowIdAtIndex(rowIndex));\n }\n\n return rowIds;\n };\n /**\n * @return Returns array of selected row ids.\n */\n\n\n MDCDataTableFoundation.prototype.getSelectedRowIds = function () {\n var selectedRowIds = [];\n\n for (var rowIndex = 0; rowIndex < this.adapter.getRowCount(); rowIndex++) {\n if (this.adapter.isCheckboxAtRowIndexChecked(rowIndex)) {\n selectedRowIds.push(this.adapter.getRowIdAtIndex(rowIndex));\n }\n }\n\n return selectedRowIds;\n };\n /**\n * Handles header row checkbox change event.\n */\n\n\n MDCDataTableFoundation.prototype.handleHeaderRowCheckboxChange = function () {\n var isHeaderChecked = this.adapter.isHeaderRowCheckboxChecked();\n\n for (var rowIndex = 0; rowIndex < this.adapter.getRowCount(); rowIndex++) {\n this.adapter.setRowCheckboxCheckedAtIndex(rowIndex, isHeaderChecked);\n this.selectRowAtIndex(rowIndex, isHeaderChecked);\n }\n\n if (isHeaderChecked) {\n this.adapter.notifySelectedAll();\n } else {\n this.adapter.notifyUnselectedAll();\n }\n };\n /**\n * Handles change event originated from row checkboxes.\n */\n\n\n MDCDataTableFoundation.prototype.handleRowCheckboxChange = function (event) {\n var rowIndex = this.adapter.getRowIndexByChildElement(event.target);\n\n if (rowIndex === -1) {\n return;\n }\n\n var selected = this.adapter.isCheckboxAtRowIndexChecked(rowIndex);\n this.selectRowAtIndex(rowIndex, selected);\n this.setHeaderRowCheckboxState();\n var rowId = this.adapter.getRowIdAtIndex(rowIndex);\n this.adapter.notifyRowSelectionChanged({\n rowId: rowId,\n rowIndex: rowIndex,\n selected: selected\n });\n };\n /**\n * Handles sort action on sortable header cell.\n */\n\n\n MDCDataTableFoundation.prototype.handleSortAction = function (eventData) {\n var columnId = eventData.columnId,\n columnIndex = eventData.columnIndex,\n headerCell = eventData.headerCell; // Reset sort attributes / classes on other header cells.\n\n for (var index = 0; index < this.adapter.getHeaderCellCount(); index++) {\n if (index === columnIndex) {\n continue;\n }\n\n this.adapter.removeClassNameByHeaderCellIndex(index, cssClasses.HEADER_CELL_SORTED);\n this.adapter.removeClassNameByHeaderCellIndex(index, cssClasses.HEADER_CELL_SORTED_DESCENDING);\n this.adapter.setAttributeByHeaderCellIndex(index, strings.ARIA_SORT, SortValue.NONE);\n this.adapter.setSortStatusLabelByHeaderCellIndex(index, SortValue.NONE);\n } // Set appropriate sort attributes / classes on target header cell.\n\n\n this.adapter.setClassNameByHeaderCellIndex(columnIndex, cssClasses.HEADER_CELL_SORTED);\n var currentSortValue = this.adapter.getAttributeByHeaderCellIndex(columnIndex, strings.ARIA_SORT);\n var sortValue = SortValue.NONE; // Set to descending if sorted on ascending order.\n\n if (currentSortValue === SortValue.ASCENDING) {\n this.adapter.setClassNameByHeaderCellIndex(columnIndex, cssClasses.HEADER_CELL_SORTED_DESCENDING);\n this.adapter.setAttributeByHeaderCellIndex(columnIndex, strings.ARIA_SORT, SortValue.DESCENDING);\n sortValue = SortValue.DESCENDING; // Set to ascending if sorted on descending order.\n } else if (currentSortValue === SortValue.DESCENDING) {\n this.adapter.removeClassNameByHeaderCellIndex(columnIndex, cssClasses.HEADER_CELL_SORTED_DESCENDING);\n this.adapter.setAttributeByHeaderCellIndex(columnIndex, strings.ARIA_SORT, SortValue.ASCENDING);\n sortValue = SortValue.ASCENDING;\n } else {\n // Set to ascending by default when not sorted.\n this.adapter.setAttributeByHeaderCellIndex(columnIndex, strings.ARIA_SORT, SortValue.ASCENDING);\n sortValue = SortValue.ASCENDING;\n }\n\n this.adapter.setSortStatusLabelByHeaderCellIndex(columnIndex, sortValue);\n this.adapter.notifySortAction({\n columnId: columnId,\n columnIndex: columnIndex,\n headerCell: headerCell,\n sortValue: sortValue\n });\n };\n /**\n * Shows progress indicator blocking only the table body content when in\n * loading state.\n */\n\n\n MDCDataTableFoundation.prototype.showProgress = function () {\n var height = this.adapter.getTableBodyHeight();\n var top = this.adapter.getTableHeaderHeight();\n this.adapter.setProgressIndicatorStyles({\n height: height,\n top: top\n });\n this.adapter.addClass(cssClasses.IN_PROGRESS);\n };\n /**\n * Hides progress indicator when data table is finished loading.\n */\n\n\n MDCDataTableFoundation.prototype.hideProgress = function () {\n this.adapter.removeClass(cssClasses.IN_PROGRESS);\n };\n /**\n * Updates header row checkbox state based on number of rows selected.\n */\n\n\n MDCDataTableFoundation.prototype.setHeaderRowCheckboxState = function () {\n if (this.adapter.getSelectedRowCount() === this.adapter.getRowCount()) {\n this.adapter.setHeaderRowCheckboxChecked(true);\n this.adapter.setHeaderRowCheckboxIndeterminate(false);\n } else if (this.adapter.getSelectedRowCount() === 0) {\n this.adapter.setHeaderRowCheckboxIndeterminate(false);\n this.adapter.setHeaderRowCheckboxChecked(false);\n } else {\n this.adapter.setHeaderRowCheckboxIndeterminate(true);\n this.adapter.setHeaderRowCheckboxChecked(false);\n }\n };\n /**\n * Sets the attributes of row element based on selection state.\n */\n\n\n MDCDataTableFoundation.prototype.selectRowAtIndex = function (rowIndex, selected) {\n if (selected) {\n this.adapter.addClassAtRowIndex(rowIndex, cssClasses.ROW_SELECTED);\n this.adapter.setAttributeAtRowIndex(rowIndex, strings.ARIA_SELECTED, 'true');\n } else {\n this.adapter.removeClassAtRowIndex(rowIndex, cssClasses.ROW_SELECTED);\n this.adapter.setAttributeAtRowIndex(rowIndex, strings.ARIA_SELECTED, 'false');\n }\n };\n\n return MDCDataTableFoundation;\n}(MDCFoundation);\n\nexport { MDCDataTableFoundation };","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { MDCCheckbox } from '@material/checkbox/component';\nimport { closest } from '@material/dom/ponyfill';\nimport { cssClasses, dataAttributes, events, messages, selectors, SortValue } from './constants';\nimport { MDCDataTableFoundation } from './foundation';\n/**\n * Implementation of `MDCDataTableFoundation`\n */\n\nvar MDCDataTable =\n/** @class */\nfunction (_super) {\n __extends(MDCDataTable, _super);\n\n function MDCDataTable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n MDCDataTable.attachTo = function (root) {\n return new MDCDataTable(root);\n };\n\n MDCDataTable.prototype.initialize = function (checkboxFactory) {\n if (checkboxFactory === void 0) {\n checkboxFactory = function (el) {\n return new MDCCheckbox(el);\n };\n }\n\n this.checkboxFactory = checkboxFactory;\n };\n\n MDCDataTable.prototype.initialSyncWithDOM = function () {\n var _this = this;\n\n this.headerRow = this.root.querySelector(\".\" + cssClasses.HEADER_ROW);\n\n this.handleHeaderRowCheckboxChange = function () {\n return _this.foundation.handleHeaderRowCheckboxChange();\n };\n\n this.headerRow.addEventListener('change', this.handleHeaderRowCheckboxChange);\n\n this.headerRowClickListener = function (event) {\n _this.handleHeaderRowClick(event);\n };\n\n this.headerRow.addEventListener('click', this.headerRowClickListener);\n this.content = this.root.querySelector(\".\" + cssClasses.CONTENT);\n\n this.handleRowCheckboxChange = function (event) {\n return _this.foundation.handleRowCheckboxChange(event);\n };\n\n this.content.addEventListener('change', this.handleRowCheckboxChange);\n this.layout();\n };\n /**\n * Re-initializes header row checkbox and row checkboxes when selectable rows are added or removed from table.\n */\n\n\n MDCDataTable.prototype.layout = function () {\n this.foundation.layout();\n };\n /**\n * @return Returns array of header row cell elements.\n */\n\n\n MDCDataTable.prototype.getHeaderCells = function () {\n return [].slice.call(this.root.querySelectorAll(selectors.HEADER_CELL));\n };\n /**\n * @return Returns array of row elements.\n */\n\n\n MDCDataTable.prototype.getRows = function () {\n return this.foundation.getRows();\n };\n /**\n * @return Returns array of selected row ids.\n */\n\n\n MDCDataTable.prototype.getSelectedRowIds = function () {\n return this.foundation.getSelectedRowIds();\n };\n /**\n * Sets selected row ids. Overwrites previously selected rows.\n * @param rowIds Array of row ids that needs to be selected.\n */\n\n\n MDCDataTable.prototype.setSelectedRowIds = function (rowIds) {\n this.foundation.setSelectedRowIds(rowIds);\n };\n\n MDCDataTable.prototype.destroy = function () {\n this.headerRow.removeEventListener('change', this.handleHeaderRowCheckboxChange);\n this.headerRow.removeEventListener('click', this.headerRowClickListener);\n this.content.removeEventListener('change', this.handleRowCheckboxChange);\n this.headerRowCheckbox.destroy();\n this.rowCheckboxList.forEach(function (checkbox) {\n checkbox.destroy();\n });\n };\n\n MDCDataTable.prototype.getDefaultFoundation = function () {\n var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n\n\n var adapter = {\n addClass: function (className) {\n _this.root.classList.add(className);\n },\n removeClass: function (className) {\n _this.root.classList.remove(className);\n },\n getHeaderCellElements: function () {\n return _this.getHeaderCells();\n },\n getHeaderCellCount: function () {\n return _this.getHeaderCells().length;\n },\n getAttributeByHeaderCellIndex: function (index, attribute) {\n return _this.getHeaderCells()[index].getAttribute(attribute);\n },\n setAttributeByHeaderCellIndex: function (index, attribute, value) {\n _this.getHeaderCells()[index].setAttribute(attribute, value);\n },\n setClassNameByHeaderCellIndex: function (index, className) {\n _this.getHeaderCells()[index].classList.add(className);\n },\n removeClassNameByHeaderCellIndex: function (index, className) {\n _this.getHeaderCells()[index].classList.remove(className);\n },\n notifySortAction: function (data) {\n _this.emit(events.SORTED, data,\n /** shouldBubble */\n true);\n },\n getTableBodyHeight: function () {\n var tableBody = _this.root.querySelector(selectors.CONTENT);\n\n if (!tableBody) {\n throw new Error('MDCDataTable: Table body element not found.');\n }\n\n return tableBody.getBoundingClientRect().height + \"px\";\n },\n getTableHeaderHeight: function () {\n var tableHeader = _this.root.querySelector(selectors.HEADER_ROW);\n\n if (!tableHeader) {\n throw new Error('MDCDataTable: Table header element not found.');\n }\n\n return tableHeader.getBoundingClientRect().height + \"px\";\n },\n setProgressIndicatorStyles: function (styles) {\n var progressIndicator = _this.root.querySelector(selectors.PROGRESS_INDICATOR);\n\n if (!progressIndicator) {\n throw new Error('MDCDataTable: Progress indicator element not found.');\n }\n\n Object.assign(progressIndicator.style, styles);\n },\n addClassAtRowIndex: function (rowIndex, className) {\n _this.getRows()[rowIndex].classList.add(className);\n },\n getRowCount: function () {\n return _this.getRows().length;\n },\n getRowElements: function () {\n return [].slice.call(_this.root.querySelectorAll(selectors.ROW));\n },\n getRowIdAtIndex: function (rowIndex) {\n return _this.getRows()[rowIndex].getAttribute(dataAttributes.ROW_ID);\n },\n getRowIndexByChildElement: function (el) {\n return _this.getRows().indexOf(closest(el, selectors.ROW));\n },\n getSelectedRowCount: function () {\n return _this.root.querySelectorAll(selectors.ROW_SELECTED).length;\n },\n isCheckboxAtRowIndexChecked: function (rowIndex) {\n return _this.rowCheckboxList[rowIndex].checked;\n },\n isHeaderRowCheckboxChecked: function () {\n return _this.headerRowCheckbox.checked;\n },\n isRowsSelectable: function () {\n return !!_this.root.querySelector(selectors.ROW_CHECKBOX);\n },\n notifyRowSelectionChanged: function (data) {\n _this.emit(events.ROW_SELECTION_CHANGED, {\n row: _this.getRowByIndex(data.rowIndex),\n rowId: _this.getRowIdByIndex(data.rowIndex),\n rowIndex: data.rowIndex,\n selected: data.selected\n },\n /** shouldBubble */\n true);\n },\n notifySelectedAll: function () {\n _this.emit(events.SELECTED_ALL, {},\n /** shouldBubble */\n true);\n },\n notifyUnselectedAll: function () {\n _this.emit(events.UNSELECTED_ALL, {},\n /** shouldBubble */\n true);\n },\n registerHeaderRowCheckbox: function () {\n if (_this.headerRowCheckbox) {\n _this.headerRowCheckbox.destroy();\n }\n\n var checkboxEl = _this.root.querySelector(selectors.HEADER_ROW_CHECKBOX);\n\n _this.headerRowCheckbox = _this.checkboxFactory(checkboxEl);\n },\n registerRowCheckboxes: function () {\n if (_this.rowCheckboxList) {\n _this.rowCheckboxList.forEach(function (checkbox) {\n checkbox.destroy();\n });\n }\n\n _this.rowCheckboxList = [];\n\n _this.getRows().forEach(function (rowEl) {\n var checkbox = _this.checkboxFactory(rowEl.querySelector(selectors.ROW_CHECKBOX));\n\n _this.rowCheckboxList.push(checkbox);\n });\n },\n removeClassAtRowIndex: function (rowIndex, className) {\n _this.getRows()[rowIndex].classList.remove(className);\n },\n setAttributeAtRowIndex: function (rowIndex, attr, value) {\n _this.getRows()[rowIndex].setAttribute(attr, value);\n },\n setHeaderRowCheckboxChecked: function (checked) {\n _this.headerRowCheckbox.checked = checked;\n },\n setHeaderRowCheckboxIndeterminate: function (indeterminate) {\n _this.headerRowCheckbox.indeterminate = indeterminate;\n },\n setRowCheckboxCheckedAtIndex: function (rowIndex, checked) {\n _this.rowCheckboxList[rowIndex].checked = checked;\n },\n setSortStatusLabelByHeaderCellIndex: function (columnIndex, sortValue) {\n var headerCell = _this.getHeaderCells()[columnIndex];\n\n var sortStatusLabel = headerCell.querySelector(selectors.SORT_STATUS_LABEL);\n if (!sortStatusLabel) return;\n sortStatusLabel.textContent = _this.getSortStatusMessageBySortValue(sortValue);\n }\n };\n return new MDCDataTableFoundation(adapter);\n };\n\n MDCDataTable.prototype.getRowByIndex = function (index) {\n return this.getRows()[index];\n };\n\n MDCDataTable.prototype.getRowIdByIndex = function (index) {\n return this.getRowByIndex(index).getAttribute(dataAttributes.ROW_ID);\n };\n\n MDCDataTable.prototype.handleHeaderRowClick = function (event) {\n var headerCell = closest(event.target, selectors.HEADER_CELL_WITH_SORT);\n\n if (!headerCell) {\n return;\n }\n\n var columnId = headerCell.getAttribute(dataAttributes.COLUMN_ID);\n var columnIndex = this.getHeaderCells().indexOf(headerCell);\n\n if (columnIndex === -1) {\n return;\n }\n\n this.foundation.handleSortAction({\n columnId: columnId,\n columnIndex: columnIndex,\n headerCell: headerCell\n });\n };\n\n MDCDataTable.prototype.getSortStatusMessageBySortValue = function (sortValue) {\n switch (sortValue) {\n case SortValue.ASCENDING:\n return messages.SORTED_IN_ASCENDING;\n\n case SortValue.DESCENDING:\n return messages.SORTED_IN_DESCENDING;\n\n default:\n return '';\n }\n };\n\n return MDCDataTable;\n}(MDCComponent);\n\nexport { MDCDataTable };","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n\n return true;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n\n return result + 'sekúnda';\n\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n\n return result + 'mínútu';\n\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n\n return result + 'klukkustund';\n\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n\n return isFuture ? 'dag' : 'degi';\n\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n\n return result + (isFuture ? 'dag' : 'degi');\n\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n\n return isFuture ? 'mánuð' : 'mánuði';\n\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n\n return result + (isFuture ? 'mánuð' : 'mánuði');\n\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm'\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return is;\n});","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n\n switch (key) {\n case 's':\n return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n\n return '';\n }\n\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return hu;\n});","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return nlBe;\n});","/**\n * Stores result from supportsCssVariables to avoid redundant processing to\n * detect CSS custom variable support.\n */\nvar supportsCssVariables_;\nexport function supportsCssVariables(windowObj, forceRefresh) {\n if (forceRefresh === void 0) {\n forceRefresh = false;\n }\n\n var CSS = windowObj.CSS;\n var supportsCssVars = supportsCssVariables_;\n\n if (typeof supportsCssVariables_ === 'boolean' && !forceRefresh) {\n return supportsCssVariables_;\n }\n\n var supportsFunctionPresent = CSS && typeof CSS.supports === 'function';\n\n if (!supportsFunctionPresent) {\n return false;\n }\n\n var explicitlySupportsCssVars = CSS.supports('--css-vars', 'yes'); // See: https://bugs.webkit.org/show_bug.cgi?id=154669\n // See: README section on Safari\n\n var weAreFeatureDetectingSafari10plus = CSS.supports('(--css-vars: yes)') && CSS.supports('color', '#00000000');\n supportsCssVars = explicitlySupportsCssVars || weAreFeatureDetectingSafari10plus;\n\n if (!forceRefresh) {\n supportsCssVariables_ = supportsCssVars;\n }\n\n return supportsCssVars;\n}\nexport function getNormalizedEventCoords(evt, pageOffset, clientRect) {\n if (!evt) {\n return {\n x: 0,\n y: 0\n };\n }\n\n var x = pageOffset.x,\n y = pageOffset.y;\n var documentX = x + clientRect.left;\n var documentY = y + clientRect.top;\n var normalizedX;\n var normalizedY; // Determine touch point relative to the ripple container.\n\n if (evt.type === 'touchstart') {\n var touchEvent = evt;\n normalizedX = touchEvent.changedTouches[0].pageX - documentX;\n normalizedY = touchEvent.changedTouches[0].pageY - documentY;\n } else {\n var mouseEvent = evt;\n normalizedX = mouseEvent.pageX - documentX;\n normalizedY = mouseEvent.pageY - documentY;\n }\n\n return {\n x: normalizedX,\n y: normalizedY\n };\n}","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n monthsShort: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ'\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return tzm;\n});","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar task = require('../internals/task');\n\nvar FORCED = !global.setImmediate || !global.clearImmediate;\n\n// http://w3c.github.io/setImmediate/\n$({ global: true, bind: true, enumerable: true, forced: FORCED }, {\n // `setImmediate` method\n // http://w3c.github.io/setImmediate/#si-setImmediate\n setImmediate: task.set,\n // `clearImmediate` method\n // http://w3c.github.io/setImmediate/#si-clearImmediate\n clearImmediate: task.clear\n});\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i];\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n // Words with masculine grammatical gender: mois, trimestre, jour\n\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fr;\n});","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\nvar nativeAssign = Object.assign;\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.github.io/ecma262/#sec-object.assign\nmodule.exports = !nativeAssign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : nativeAssign;\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","/**\n * @license\n * Copyright 2019 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * Determine whether the current browser supports passive event listeners, and\n * if so, use them.\n */\nexport function applyPassive(globalObj) {\n if (globalObj === void 0) {\n globalObj = window;\n }\n\n return supportsPassiveOption(globalObj) ? {\n passive: true\n } : false;\n}\n\nfunction supportsPassiveOption(globalObj) {\n if (globalObj === void 0) {\n globalObj = window;\n } // See\n // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n\n\n var passiveSupported = false;\n\n try {\n var options = {\n // This function will be called when the browser\n // attempts to access the passive property.\n get passive() {\n passiveSupported = true;\n return false;\n }\n\n };\n\n var handler = function () {};\n\n globalObj.document.addEventListener('test', handler, options);\n globalObj.document.removeEventListener('test', handler, options);\n } catch (err) {\n passiveSupported = false;\n }\n\n return passiveSupported;\n}","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split('_'),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split('_'),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6 ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida'\n });\n return ptBr;\n});","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return gl;\n});","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0) return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1) unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0) return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\n\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\n\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [60, 60, 24, 7, 365 / 7 / 12, 12];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\n\nexport function toDate(input) {\n if (input instanceof Date) return input; // @ts-ignore\n\n if (!isNaN(input) || /^\\d+$/.test(input)) return new Date(parseInt(input));\n input = (input || ''). // @ts-ignore\n trim().replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/').replace(/-/, '/').replace(/(\\d)T(\\d)/, '$1 $2').replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\n\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n\n var totalSec = diff;\n /**\n * Unit of time\n */\n\n var idx = 0;\n\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n\n\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1)) idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\n\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\n\nexport function nextInterval(diff) {\n var rst = 1,\n i = 0,\n d = Math.abs(diff);\n\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\n\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate); // format it with locale\n\n return formatDiff(sec, getLocale(locale));\n};","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani'\n },\n separator = ' ';\n\n if (number % 100 >= 20 || number >= 100 && number % 100 === 0) {\n separator = ' de ';\n }\n\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return ro;\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.github.io/ecma262/#sec-object.defineproperties\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","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет'\n };\n\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n\n case 'D':\n return number + '-го';\n\n case 'w':\n case 'W':\n return number + '-я';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return ru;\n});","'use strict';\n\nvar has = Object.prototype.hasOwnProperty,\n undef;\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\n\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\n\n\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\n\n\nfunction querystring(query) {\n var parser = /([^=?#&]+)=?([^&]*)/g,\n result = {},\n part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1]),\n value = decode(part[2]); //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\n\n\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n var pairs = [],\n value,\n key; //\n // Optionally prefix with a '?' if needed\n //\n\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key]; //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encode(key);\n value = encode(value); //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n\n if (key === null || value === null) continue;\n pairs.push(key + '=' + value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n} //\n// Expose the module.\n//\n\n\nexports.stringify = querystringify;\nexports.parse = querystring;","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cssClasses = {\n ANIMATE: 'mdc-drawer--animate',\n CLOSING: 'mdc-drawer--closing',\n DISMISSIBLE: 'mdc-drawer--dismissible',\n MODAL: 'mdc-drawer--modal',\n OPEN: 'mdc-drawer--open',\n OPENING: 'mdc-drawer--opening',\n ROOT: 'mdc-drawer'\n};\nvar strings = {\n APP_CONTENT_SELECTOR: '.mdc-drawer-app-content',\n CLOSE_EVENT: 'MDCDrawer:closed',\n OPEN_EVENT: 'MDCDrawer:opened',\n SCRIM_SELECTOR: '.mdc-drawer-scrim'\n};\nexport { cssClasses, strings };","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, strings } from '../constants';\n\nvar MDCDismissibleDrawerFoundation =\n/** @class */\nfunction (_super) {\n __extends(MDCDismissibleDrawerFoundation, _super);\n\n function MDCDismissibleDrawerFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCDismissibleDrawerFoundation.defaultAdapter), adapter)) || this;\n\n _this.animationFrame_ = 0;\n _this.animationTimer_ = 0;\n return _this;\n }\n\n Object.defineProperty(MDCDismissibleDrawerFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDismissibleDrawerFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDismissibleDrawerFoundation, \"defaultAdapter\", {\n get: function () {\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n return {\n addClass: function () {\n return undefined;\n },\n removeClass: function () {\n return undefined;\n },\n hasClass: function () {\n return false;\n },\n elementHasClass: function () {\n return false;\n },\n notifyClose: function () {\n return undefined;\n },\n notifyOpen: function () {\n return undefined;\n },\n saveFocus: function () {\n return undefined;\n },\n restoreFocus: function () {\n return undefined;\n },\n focusActiveNavigationItem: function () {\n return undefined;\n },\n trapFocus: function () {\n return undefined;\n },\n releaseFocus: function () {\n return undefined;\n }\n }; // tslint:enable:object-literal-sort-keys\n },\n enumerable: true,\n configurable: true\n });\n\n MDCDismissibleDrawerFoundation.prototype.destroy = function () {\n if (this.animationFrame_) {\n cancelAnimationFrame(this.animationFrame_);\n }\n\n if (this.animationTimer_) {\n clearTimeout(this.animationTimer_);\n }\n };\n /**\n * Opens the drawer from the closed state.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.open = function () {\n var _this = this;\n\n if (this.isOpen() || this.isOpening() || this.isClosing()) {\n return;\n }\n\n this.adapter.addClass(cssClasses.OPEN);\n this.adapter.addClass(cssClasses.ANIMATE); // Wait a frame once display is no longer \"none\", to establish basis for animation\n\n this.runNextAnimationFrame_(function () {\n _this.adapter.addClass(cssClasses.OPENING);\n });\n this.adapter.saveFocus();\n };\n /**\n * Closes the drawer from the open state.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.close = function () {\n if (!this.isOpen() || this.isOpening() || this.isClosing()) {\n return;\n }\n\n this.adapter.addClass(cssClasses.CLOSING);\n };\n /**\n * Returns true if the drawer is in the open position.\n * @return true if drawer is in open state.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.isOpen = function () {\n return this.adapter.hasClass(cssClasses.OPEN);\n };\n /**\n * Returns true if the drawer is animating open.\n * @return true if drawer is animating open.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.isOpening = function () {\n return this.adapter.hasClass(cssClasses.OPENING) || this.adapter.hasClass(cssClasses.ANIMATE);\n };\n /**\n * Returns true if the drawer is animating closed.\n * @return true if drawer is animating closed.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.isClosing = function () {\n return this.adapter.hasClass(cssClasses.CLOSING);\n };\n /**\n * Keydown handler to close drawer when key is escape.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.handleKeydown = function (evt) {\n var keyCode = evt.keyCode,\n key = evt.key;\n var isEscape = key === 'Escape' || keyCode === 27;\n\n if (isEscape) {\n this.close();\n }\n };\n /**\n * Handles the `transitionend` event when the drawer finishes opening/closing.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.handleTransitionEnd = function (evt) {\n var OPENING = cssClasses.OPENING,\n CLOSING = cssClasses.CLOSING,\n OPEN = cssClasses.OPEN,\n ANIMATE = cssClasses.ANIMATE,\n ROOT = cssClasses.ROOT; // In Edge, transitionend on ripple pseudo-elements yields a target without classList, so check for Element first.\n\n var isRootElement = this.isElement_(evt.target) && this.adapter.elementHasClass(evt.target, ROOT);\n\n if (!isRootElement) {\n return;\n }\n\n if (this.isClosing()) {\n this.adapter.removeClass(OPEN);\n this.closed_();\n this.adapter.restoreFocus();\n this.adapter.notifyClose();\n } else {\n this.adapter.focusActiveNavigationItem();\n this.opened_();\n this.adapter.notifyOpen();\n }\n\n this.adapter.removeClass(ANIMATE);\n this.adapter.removeClass(OPENING);\n this.adapter.removeClass(CLOSING);\n };\n /**\n * Extension point for when drawer finishes open animation.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.opened_ = function () {}; // tslint:disable-line:no-empty\n\n /**\n * Extension point for when drawer finishes close animation.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.closed_ = function () {}; // tslint:disable-line:no-empty\n\n /**\n * Runs the given logic on the next animation frame, using setTimeout to factor in Firefox reflow behavior.\n */\n\n\n MDCDismissibleDrawerFoundation.prototype.runNextAnimationFrame_ = function (callback) {\n var _this = this;\n\n cancelAnimationFrame(this.animationFrame_);\n this.animationFrame_ = requestAnimationFrame(function () {\n _this.animationFrame_ = 0;\n clearTimeout(_this.animationTimer_);\n _this.animationTimer_ = setTimeout(callback, 0);\n });\n };\n\n MDCDismissibleDrawerFoundation.prototype.isElement_ = function (element) {\n // In Edge, transitionend on ripple pseudo-elements yields a target without classList.\n return Boolean(element.classList);\n };\n\n return MDCDismissibleDrawerFoundation;\n}(MDCFoundation);\n\nexport { MDCDismissibleDrawerFoundation }; // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\n\nexport default MDCDismissibleDrawerFoundation;","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","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n },\n invalidDate: 'Fecha inválida'\n });\n return esMx;\n});","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\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 */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\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 toJSON() {\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\n return error;\n};","/* flatpickr v4.6.6, @license MIT */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.flatpickr = factory());\n})(this, function () {\n 'use strict';\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\n\n var __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n };\n\n function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j];\n\n return r;\n }\n\n var HOOKS = [\"onChange\", \"onClose\", \"onDayCreate\", \"onDestroy\", \"onKeyDown\", \"onMonthChange\", \"onOpen\", \"onParseConfig\", \"onReady\", \"onValueUpdate\", \"onYearChange\", \"onPreCalendarPosition\"];\n var defaults = {\n _disable: [],\n _enable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" && window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enable: [],\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && void 0;\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0); // Thursday in current week decides the year.\n\n date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7); // January 4 is always in week 1.\n\n var week1 = new Date(date.getFullYear(), 0, 4); // Adjust to Thursday in week 1 and count number of weeks from date to week1.\n\n return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false\n };\n var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n },\n months: {\n shorthand: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n longhand: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"]\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21) return \"th\";\n\n switch (s % 10) {\n case 1:\n return \"st\";\n\n case 2:\n return \"nd\";\n\n case 3:\n return \"rd\";\n\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false\n };\n\n var pad = function (number, length) {\n if (length === void 0) {\n length = 2;\n }\n\n return (\"000\" + number).slice(length * -1);\n };\n\n var int = function (bool) {\n return bool === true ? 1 : 0;\n };\n /* istanbul ignore next */\n\n\n function debounce(func, wait, immediate) {\n if (immediate === void 0) {\n immediate = false;\n }\n\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n timeout !== null && clearTimeout(timeout);\n timeout = window.setTimeout(function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n }, wait);\n if (immediate && !timeout) func.apply(context, args);\n };\n }\n\n var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n };\n\n function toggleClass(elem, className, bool) {\n if (bool === true) return elem.classList.add(className);\n elem.classList.remove(className);\n }\n\n function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined) e.textContent = content;\n return e;\n }\n\n function clearNode(node) {\n while (node.firstChild) node.removeChild(node.firstChild);\n }\n\n function findParent(node, condition) {\n if (condition(node)) return node;else if (node.parentNode) return findParent(node.parentNode, condition);\n return undefined; // nothing found\n }\n\n function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"),\n numInput = createElement(\"input\", \"numInput \" + inputClassName),\n arrowUp = createElement(\"span\", \"arrowUp\"),\n arrowDown = createElement(\"span\", \"arrowDown\");\n\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n } else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n\n if (opts !== undefined) for (var key in opts) numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n }\n\n function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n\n return event.target;\n } catch (error) {\n return event.target;\n }\n }\n\n var doNothing = function () {\n return undefined;\n };\n\n var monthToStr = function (monthNumber, shorthand, locale) {\n return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber];\n };\n\n var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours(dateObj.getHours() % 12 + 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) {\n return new Date(parseFloat(unixSeconds) * 1000);\n },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) {\n return new Date(ISODate);\n },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n }\n };\n var tokenRegex = {\n D: \"(\\\\w+)\",\n F: \"(\\\\w+)\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"(\\\\w+)\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"(\\\\w+)\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\"\n };\n var formats = {\n // get the date in UTC\n Z: function (date) {\n return date.toISOString();\n },\n // weekday name, short, e.g. Thu\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n // full month name e.g. January\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n // padded hour 1-12\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n // hours with leading zero e.g. 03\n H: function (date) {\n return pad(date.getHours());\n },\n // day (1-30) with ordinal suffix e.g. 1st, 2nd\n J: function (date, locale) {\n return locale.ordinal !== undefined ? date.getDate() + locale.ordinal(date.getDate()) : date.getDate();\n },\n // AM/PM\n K: function (date, locale) {\n return locale.amPM[int(date.getHours() > 11)];\n },\n // shorthand month e.g. Jan, Sep, Oct, etc\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n // seconds 00-59\n S: function (date) {\n return pad(date.getSeconds());\n },\n // unix timestamp\n U: function (date) {\n return date.getTime() / 1000;\n },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n // full year e.g. 2016, padded (0001-9999)\n Y: function (date) {\n return pad(date.getFullYear(), 4);\n },\n // day in month, padded (01-30)\n d: function (date) {\n return pad(date.getDate());\n },\n // hour from 1-12 (am/pm)\n h: function (date) {\n return date.getHours() % 12 ? date.getHours() % 12 : 12;\n },\n // minutes, padded with leading zero e.g. 09\n i: function (date) {\n return pad(date.getMinutes());\n },\n // day in month (1-30)\n j: function (date) {\n return date.getDate();\n },\n // weekday name, full, e.g. Thursday\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n // padded month number (01-12)\n m: function (date) {\n return pad(date.getMonth() + 1);\n },\n // the month number (1-12)\n n: function (date) {\n return date.getMonth() + 1;\n },\n // seconds 0-59\n s: function (date) {\n return date.getSeconds();\n },\n // Unix Milliseconds\n u: function (date) {\n return date.getTime();\n },\n // number of the day of the week\n w: function (date) {\n return date.getDay();\n },\n // last two digits of year e.g. 16 for 2016\n y: function (date) {\n return String(date.getFullYear()).substring(2);\n }\n };\n\n var createDateFormatter = function (_a) {\n var _b = _a.config,\n config = _b === void 0 ? defaults : _b,\n _c = _a.l10n,\n l10n = _c === void 0 ? english : _c,\n _d = _a.isMobile,\n isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n\n return frmt.split(\"\").map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\" ? formats[c](dateObj, locale, config) : c !== \"\\\\\" ? c : \"\";\n }).join(\"\");\n };\n };\n\n var createDateParser = function (_a) {\n var _b = _a.config,\n config = _b === void 0 ? defaults : _b,\n _c = _a.l10n,\n l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date) return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date) parsedDate = new Date(date.getTime());else if (typeof date !== \"string\" && date.toFixed !== undefined // timestamp\n ) // create a copy\n parsedDate = new Date(date);else if (typeof date === \"string\") {\n // date string\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n } else if (/Z$/.test(datestr) || /GMT$/.test(datestr) // datestrings w/ timezone\n ) parsedDate = new Date(date);else if (config && config.parseDate) parsedDate = config.parseDate(date, format);else {\n parsedDate = !config || !config.noCalendar ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0) : new Date(new Date().setHours(0, 0, 0, 0));\n var matched = void 0,\n ops = [];\n\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token_1 = format[i];\n var isBackSlash = token_1 === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n\n if (tokenRegex[token_1] && !escaped) {\n regexStr += tokenRegex[token_1];\n var match = new RegExp(regexStr).exec(date);\n\n if (match && (matched = true)) {\n ops[token_1 !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token_1],\n val: match[++matchIndex]\n });\n }\n } else if (!isBackSlash) regexStr += \".\"; // don't really care\n\n\n ops.forEach(function (_a) {\n var fn = _a.fn,\n val = _a.val;\n return parsedDate = fn(parsedDate, val, locale) || parsedDate;\n });\n }\n\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n /* istanbul ignore next */\n\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n\n if (timeless === true) parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n };\n /**\n * Compute the difference in dates, measured in ms\n */\n\n\n function compareDates(date1, date2, timeless) {\n if (timeless === void 0) {\n timeless = true;\n }\n\n if (timeless !== false) {\n return new Date(date1.getTime()).setHours(0, 0, 0, 0) - new Date(date2.getTime()).setHours(0, 0, 0, 0);\n }\n\n return date1.getTime() - date2.getTime();\n }\n\n var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n };\n\n var duration = {\n DAY: 86400000\n };\n\n if (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) {\n return target[key] = source[key];\n });\n }\n };\n\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n\n _loop_1(source);\n }\n\n return target;\n };\n }\n\n var DEBOUNCED_CHANGE_MS = 300;\n\n function FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaults), flatpickr.defaultConfig),\n l10n: english\n };\n self.parseDate = createDateParser({\n config: self.config,\n l10n: self.l10n\n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self._createElement = createElement;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) {\n month = self.currentMonth;\n }\n\n if (yr === void 0) {\n yr = self.currentYear;\n }\n\n if (month === 1 && (yr % 4 === 0 && yr % 100 !== 0 || yr % 400 === 0)) return 29;\n return self.l10n.daysInMonth[month];\n }\n };\n }\n\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile) build();\n bindEvents();\n\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj || self.config.minDate : undefined);\n }\n\n updateValue(false);\n }\n\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n /* TODO: investigate this further\n Currently, there is weird positioning behavior in safari causing pages\n to scroll up. https://github.com/chmln/flatpickr/issues/563\n However, most browsers are not Safari and positioning is expensive when used\n in scale. https://github.com/chmln/flatpickr/issues/1096\n */\n\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n\n triggerEvent(\"onReady\");\n }\n\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n\n function setCalendarWidth() {\n var config = self.config;\n\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n } else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width = daysWidth + (self.weekWrapper !== undefined ? self.weekWrapper.offsetWidth : 0) + \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n /**\n * The handler for all events targeting the time inputs\n */\n\n\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate !== undefined ? new Date(self.config.minDate.getTime()) : new Date();\n\n var _a = getDefaultHours(),\n hours = _a.hours,\n minutes = _a.minutes,\n seconds = _a.seconds;\n\n defaultDate.setHours(hours, minutes, seconds, 0);\n self.setDate(defaultDate, false);\n }\n\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n\n function ampm2military(hour, amPM) {\n return hour % 12 + 12 * int(amPM === self.l10n.amPM[1]);\n }\n\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n\n default:\n return hour % 12;\n }\n }\n /**\n * Syncs the selected date object time with user's time input\n */\n\n\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined) return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24,\n minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60,\n seconds = self.secondElement !== undefined ? (parseInt(self.secondElement.value, 10) || 0) % 60 : 0;\n\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n\n var limitMinHours = self.config.minTime !== undefined || self.config.minDate && self.minDateHasTime && self.latestSelectedDateObj && compareDates(self.latestSelectedDateObj, self.config.minDate, true) === 0;\n var limitMaxHours = self.config.maxTime !== undefined || self.config.maxDate && self.maxDateHasTime && self.latestSelectedDateObj && compareDates(self.latestSelectedDateObj, self.config.maxDate, true) === 0;\n\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined ? self.config.maxTime : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours()) minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes()) seconds = Math.min(seconds, maxTime.getSeconds());\n }\n\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined ? self.config.minTime : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours()) minutes = Math.max(minutes, minTime.getMinutes());\n if (minutes === minTime.getMinutes()) seconds = Math.max(seconds, minTime.getSeconds());\n }\n\n setHours(hours, minutes, seconds);\n }\n /**\n * Syncs time input values with a date\n */\n\n\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n\n if (date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n\n function getDefaultHours() {\n var hours = self.config.defaultHour;\n var minutes = self.config.defaultMinute;\n var seconds = self.config.defaultSeconds;\n\n if (self.config.minDate !== undefined) {\n var minHr = self.config.minDate.getHours();\n var minMinutes = self.config.minDate.getMinutes();\n hours = Math.max(hours, minHr);\n if (hours === minHr) minutes = Math.max(minMinutes, minutes);\n if (hours === minHr && minutes === minMinutes) seconds = self.config.minDate.getSeconds();\n }\n\n if (self.config.maxDate !== undefined) {\n var maxHr = self.config.maxDate.getHours();\n var maxMinutes = self.config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr) minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes) seconds = self.config.maxDate.getSeconds();\n }\n\n return {\n hours: hours,\n minutes: minutes,\n seconds: seconds\n };\n }\n /**\n * Sets the hours, minutes, and optionally seconds\n * of the latest selected date object and the\n * corresponding time inputs\n * @param {Number} hours the hour. whether its military\n * or am-pm gets inferred from config\n * @param {Number} minutes the minutes\n * @param {Number} seconds the seconds (optional)\n */\n\n\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n\n if (!self.hourElement || !self.minuteElement || self.isMobile) return;\n self.hourElement.value = pad(!self.config.time_24hr ? (12 + hours) % 12 + 12 * int(hours % 12 === 0) : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined) self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined) self.secondElement.value = pad(seconds);\n }\n /**\n * Handles the year input and incrementing events\n * @param {Event} event the keyup or increment event\n */\n\n\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n\n if (year / 1000 > 1 || event.key === \"Enter\" && !/[^\\d]/.test(year.toString())) {\n changeYear(year);\n }\n }\n /**\n * Essentially addEventListener + tracking\n * @param {Element} element the element to addEventListener to\n * @param {String} event the event name\n * @param {Function} handler the event handler\n */\n\n\n function bind(element, event, handler, options) {\n if (event instanceof Array) return event.forEach(function (ev) {\n return bind(element, ev, handler, options);\n });\n if (element instanceof Array) return element.forEach(function (el) {\n return bind(el, event, handler, options);\n });\n element.addEventListener(event, handler, options);\n\n self._handlers.push({\n element: element,\n event: event,\n handler: handler,\n options: options\n });\n }\n\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n /**\n * Adds all the necessary event listeners\n */\n\n\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n\n if (self.isMobile) {\n setupMobile();\n return;\n }\n\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent)) bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\") onMouseOver(getEventTarget(e));\n });\n bind(window.document.body, \"keydown\", onKeyDown);\n if (!self.config.inline && !self.config.static) bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined) bind(window.document, \"touchstart\", documentClick);else bind(window.document, \"click\", documentClick);\n bind(window.document, \"focus\", documentClick, {\n capture: true\n });\n\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n\n if (self.timeContainer !== undefined && self.minuteElement !== undefined && self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, {\n capture: true\n });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined) bind(self.secondElement, \"focus\", function () {\n return self.secondElement && self.secondElement.select();\n });\n\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n triggerChange();\n });\n }\n }\n\n if (self.config.allowInput) bind(self._input, \"blur\", onBlur);\n }\n /**\n * Set the calendar view to a particular date.\n * @param {Date} jumpDate the date to set the view to\n * @param {boolean} triggerChange if change events should be triggered\n */\n\n\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined ? self.parseDate(jumpDate) : self.latestSelectedDateObj || (self.config.minDate && self.config.minDate > self.now ? self.config.minDate : self.config.maxDate && self.config.maxDate < self.now ? self.config.maxDate : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n } catch (e) {\n /* istanbul ignore next */\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n\n if (triggerChange && (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n\n self.redraw();\n }\n /**\n * The up/down arrow handler for time inputs\n * @param {Event} e the click event\n */\n\n\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\")) incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n /**\n * Increments/decrements the value of input associ-\n * ated with the up/down arrow by dispatching an\n * \"increment\" event on the input.\n *\n * @param {Event} e the click event\n * @param {Number} delta the diff (usually 1 or -1)\n * @param {Element} inputElem the input element\n */\n\n\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem || target && target.parentNode && target.parentNode.firstChild;\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n\n if (self.config.weekNumbers) {\n var _a = buildWeeks(),\n weekWrapper = _a.weekWrapper,\n weekNumbers = _a.weekNumbers;\n\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined && self.config.appendTo.nodeType !== undefined;\n\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode) self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);else if (self.config.appendTo !== undefined) self.config.appendTo.appendChild(self.calendarContainer);\n }\n\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode) self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput) wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n\n if (!self.config.static && !self.config.inline) (self.config.appendTo !== undefined ? self.config.appendTo : window.document.body).appendChild(self.calendarContainer);\n }\n\n function createDay(className, date, dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true),\n dayElement = createElement(\"span\", \"flatpickr-day \" + className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n\n if (className.indexOf(\"hidden\") === -1 && compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] && compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] && compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\") dayElement.classList.add(\"inRange\");\n }\n }\n } else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date)) dayElement.classList.add(\"inRange\");\n }\n\n if (self.weekNumbers && self.config.showMonths === 1 && className !== \"prevMonthDay\" && dayNumber % 7 === 1) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\") onMouseOver(targetNode);\n }\n\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj)) return c;\n }\n }\n\n return undefined;\n }\n\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1 ? current.dateObj.getMonth() : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m ? current.$i + delta : delta < 0 ? month.children.length - 1 : 0;\n var numMonthDays = month.children.length;\n\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj) && Math.abs(current.$i - i) >= Math.abs(delta)) return focusOnDayElem(c);\n }\n }\n\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n\n function focusOnDay(current, offset) {\n var dayFocused = isInView(document.activeElement || document.body);\n var startElem = current !== undefined ? current : dayFocused ? document.activeElement : self.selectedDateElem !== undefined && isInView(self.selectedDateElem) ? self.selectedDateElem : self.todayDateElem !== undefined && isInView(self.todayDateElem) ? self.todayDateElem : getFirstAvailableDay(offset > 0 ? 1 : -1);\n\n if (startElem === undefined) {\n self._input.focus();\n } else if (!dayFocused) {\n focusOnDayElem(startElem);\n } else {\n getNextAvailableDay(startElem, offset);\n }\n }\n\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year),\n days = window.document.createDocumentFragment(),\n isMultiMonth = self.config.showMonths > 1,\n prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\",\n nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth,\n dayIndex = 0; // prepend days from the ending of previous month\n\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n } // Start at 1 since there is no 0th day\n\n\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n } // append days from the next month\n\n\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth && (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n } //updateNavigationCurrentMonth();\n\n\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n\n clearNode(self.daysContainer); // TODO: week numbers for each month\n\n if (self.weekNumbers) clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 || self.config.monthSelectorType !== \"dropdown\") return;\n\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined && self.currentYear === self.config.minDate.getFullYear() && month < self.config.minDate.getMonth()) {\n return false;\n }\n\n return !(self.config.maxDate !== undefined && self.currentYear === self.config.maxDate.getFullYear() && month > self.config.maxDate.getMonth());\n };\n\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i)) continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n\n if (self.currentMonth === i) {\n month.selected = true;\n }\n\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n\n if (self.config.showMonths > 1 || self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n } else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n\n var yearInput = createNumberInput(\"cur-year\", {\n tabindex: \"-1\"\n });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled = !!self.config.minDate && self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement\n };\n }\n\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n\n self.monthNav.appendChild(self.nextMonthNav);\n }\n\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () {\n return self.__hidePrevMonthArrow;\n },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n }\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () {\n return self.__hideNextMonthArrow;\n },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n }\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar) self.calendarContainer.classList.add(\"noCalendar\");\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getHours() : self.config.time_24hr ? self.config.defaultHour : military2ampm(self.config.defaultHour));\n self.minuteElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getMinutes() : self.config.defaultMinute);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr) self.timeContainer.classList.add(\"time24hr\");\n\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj ? self.latestSelectedDateObj.getSeconds() : self.config.defaultSeconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n\n if (!self.config.time_24hr) {\n // add self.amPM if appropriate\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj ? self.hourElement.value : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n\n return self.timeContainer;\n }\n\n function buildWeekdays() {\n if (!self.weekdayContainer) self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");else clearNode(self.weekdayContainer);\n\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n\n updateWeekdays();\n return self.weekdayContainer;\n }\n\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n /* istanbul ignore next */\n\n\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers\n };\n }\n\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) {\n isOffset = true;\n }\n\n var delta = isOffset ? value : value - self.currentMonth;\n if (delta < 0 && self._hidePrevMonthArrow === true || delta > 0 && self._hideNextMonthArrow === true) return;\n self.currentMonth += delta;\n\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) {\n triggerChangeEvent = true;\n }\n\n if (toInitial === void 0) {\n toInitial = true;\n }\n\n self.input.value = \"\";\n if (self.altInput !== undefined) self.altInput.value = \"\";\n if (self.mobileInput !== undefined) self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(),\n hours = _a.hours,\n minutes = _a.minutes,\n seconds = _a.seconds;\n\n setHours(hours, minutes, seconds);\n }\n\n self.redraw();\n if (triggerChangeEvent) // triggerChangeEvent is true (default) or an Event\n triggerEvent(\"onChange\");\n }\n\n function close() {\n self.isOpen = false;\n\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n\n triggerEvent(\"onClose\");\n }\n\n function destroy() {\n if (self.config !== undefined) triggerEvent(\"onDestroy\");\n\n for (var i = self._handlers.length; i--;) {\n var h = self._handlers[i];\n h.element.removeEventListener(h.event, h.handler, h.options);\n }\n\n self._handlers = [];\n\n if (self.mobileInput) {\n if (self.mobileInput.parentNode) self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n } else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n\n if (wrapper.parentNode) {\n while (wrapper.firstChild) wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n\n wrapper.parentNode.removeChild(wrapper);\n }\n } else self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode) self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n\n [\"_showTimeInput\", \"latestSelectedDateObj\", \"_hideNextMonthArrow\", \"_hidePrevMonthArrow\", \"__hideNextMonthArrow\", \"__hidePrevMonthArrow\", \"isMobile\", \"isOpen\", \"selectedDateElem\", \"minDateHasTime\", \"maxDateHasTime\", \"days\", \"daysContainer\", \"_input\", \"_positionElement\", \"innerContainer\", \"rContainer\", \"monthNav\", \"todayDateElem\", \"calendarContainer\", \"weekdayContainer\", \"prevMonthNav\", \"nextMonthNav\", \"monthsDropdownContainer\", \"currentMonthElement\", \"currentYearElement\", \"navigationCurrentMonth\", \"selectedDateElem\", \"config\"].forEach(function (k) {\n try {\n delete self[k];\n } catch (_) {}\n });\n }\n\n function isCalendarElem(elem) {\n if (self.config.appendTo && self.config.appendTo.contains(elem)) return true;\n return self.calendarContainer.contains(elem);\n }\n\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input || eventTarget_1 === self.altInput || self.element.contains(eventTarget_1) || // web components\n // e.path is not present in all browsers. circumventing typechecks\n e.path && e.path.indexOf && (~e.path.indexOf(self.input) || ~e.path.indexOf(self.altInput));\n var lostFocus = e.type === \"blur\" ? isInput && e.relatedTarget && !isCalendarElem(e.relatedTarget) : !isInput && !isCalendarElement && !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n\n if (lostFocus && isIgnored) {\n if (self.timeContainer !== undefined && self.minuteElement !== undefined && self.hourElement !== undefined && self.input.value !== \"\" && self.input.value !== undefined) {\n updateTime();\n }\n\n self.close();\n\n if (self.config && self.config.mode === \"range\" && self.selectedDates.length === 1) {\n self.clear(false);\n self.redraw();\n }\n }\n }\n }\n\n function changeYear(newYear) {\n if (!newYear || self.config.minDate && newYear < self.config.minDate.getFullYear() || self.config.maxDate && newYear > self.config.maxDate.getFullYear()) return;\n var newYearNum = newYear,\n isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n\n if (self.config.maxDate && self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n } else if (self.config.minDate && self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n\n function isEnabled(date, timeless) {\n if (timeless === void 0) {\n timeless = true;\n }\n\n var dateToCheck = self.parseDate(date, undefined, timeless); // timeless\n\n if (self.config.minDate && dateToCheck && compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0 || self.config.maxDate && dateToCheck && compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0) return false;\n if (self.config.enable.length === 0 && self.config.disable.length === 0) return true;\n if (dateToCheck === undefined) return false;\n var bool = self.config.enable.length > 0,\n array = bool ? self.config.enable : self.config.disable;\n\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" && d(dateToCheck) // disabled by function\n ) return bool;else if (d instanceof Date && dateToCheck !== undefined && d.getTime() === dateToCheck.getTime()) // disabled by date\n return bool;else if (typeof d === \"string\" && dateToCheck !== undefined) {\n // disabled by date string\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime() ? bool : !bool;\n } else if ( // disabled by range\n typeof d === \"object\" && dateToCheck !== undefined && d.from && d.to && dateToCheck.getTime() >= d.from.getTime() && dateToCheck.getTime() <= d.to.getTime()) return bool;\n }\n\n return !bool;\n }\n\n function isInView(elem) {\n if (self.daysContainer !== undefined) return elem.className.indexOf(\"hidden\") === -1 && elem.className.indexOf(\"flatpickr-disabled\") === -1 && self.daysContainer.contains(elem);\n return false;\n }\n\n function onBlur(e) {\n var isInput = e.target === self._input;\n\n if (isInput && !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput ? self.config.altFormat : self.config.dateFormat);\n }\n }\n\n function onKeyDown(e) {\n // e.key e.keyCode\n // \"Backspace\" 8\n // \"Tab\" 9\n // \"Enter\" 13\n // \"Escape\" (IE \"Esc\") 27\n // \"ArrowLeft\" (IE \"Left\") 37\n // \"ArrowUp\" (IE \"Up\") 38\n // \"ArrowRight\" (IE \"Right\") 39\n // \"ArrowDown\" (IE \"Down\") 40\n // \"Delete\" (IE \"Del\") 46\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap ? element.contains(eventTarget) : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput ? self.config.altFormat : self.config.dateFormat);\n return eventTarget.blur();\n } else {\n self.open();\n }\n } else if (isCalendarElem(eventTarget) || allowKeydown || allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer && self.timeContainer.contains(eventTarget);\n\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n } else selectDate(e);\n\n break;\n\n case 27:\n // escape\n e.preventDefault();\n focusAndClose();\n break;\n\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n\n break;\n\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n\n if (self.daysContainer !== undefined && (allowInput === false || document.activeElement && isInView(document.activeElement))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey) focusOnDay(undefined, delta_1);else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n } else if (self.hourElement) self.hourElement.focus();\n\n break;\n\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n\n if (self.daysContainer && eventTarget.$i !== undefined || eventTarget === self.input || eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n } else if (!isTimeObj) focusOnDay(undefined, delta * 7);\n } else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n } else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement) self.hourElement.focus();\n updateTime(e);\n\n self._debouncedChange();\n }\n\n break;\n\n case 9:\n if (isTimeObj) {\n var elems = [self.hourElement, self.minuteElement, self.secondElement, self.amPM].concat(self.pluginElements).filter(function (x) {\n return x;\n });\n var i = elems.indexOf(eventTarget);\n\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n\n (target || self._input).focus();\n }\n } else if (!self.config.noCalendar && self.daysContainer && self.daysContainer.contains(eventTarget) && e.shiftKey) {\n e.preventDefault();\n\n self._input.focus();\n }\n\n break;\n }\n }\n\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n\n function onMouseOver(elem) {\n if (self.selectedDates.length !== 1 || elem && (!elem.classList.contains(\"flatpickr-day\") || elem.classList.contains(\"flatpickr-disabled\"))) return;\n var hoverDate = elem ? elem.dateObj.getTime() : self.days.firstElementChild.dateObj.getTime(),\n initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(),\n rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()),\n rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0,\n maxRange = 0;\n\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled = containsDisabled || t > rangeStartDate && t < rangeEndDate;\n if (t < initialDate && (!minRange || t > minRange)) minRange = t;else if (t > initialDate && (!maxRange || t < maxRange)) maxRange = t;\n }\n }\n\n for (var m = 0; m < self.config.showMonths; m++) {\n var month = self.daysContainer.children[m];\n\n var _loop_1 = function (i, l) {\n var dayElem = month.children[i],\n date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = minRange > 0 && timestamp < minRange || maxRange > 0 && timestamp > maxRange;\n\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return \"continue\";\n } else if (containsDisabled && !outOfRange) return \"continue\";\n\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime() ? \"startRange\" : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate) dayElem.classList.add(\"startRange\");else if (initialDate > hoverDate && timestamp === initialDate) dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange && (maxRange === 0 || timestamp <= maxRange) && isBetween(timestamp, initialDate, hoverDate)) dayElem.classList.add(\"inRange\");\n }\n };\n\n for (var i = 0, l = month.children.length; i < l; i++) {\n _loop_1(i, l);\n }\n }\n }\n\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline) positionCalendar();\n }\n\n function open(e, positionElement) {\n if (positionElement === void 0) {\n positionElement = self._positionElement;\n }\n\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n eventTarget && eventTarget.blur();\n }\n\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n\n triggerEvent(\"onOpen\");\n return;\n }\n\n if (self._input.disabled || self.config.inline) return;\n var wasOpen = self.isOpen;\n self.isOpen = true;\n\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n\n self._input.classList.add(\"active\");\n\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false && (e === undefined || !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () {\n return self.hourElement.select();\n }, 50);\n }\n }\n }\n\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat);\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] = dateObj.getHours() > 0 || dateObj.getMinutes() > 0 || dateObj.getSeconds() > 0;\n }\n\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) {\n return isEnabled(d);\n });\n if (!self.selectedDates.length && type === \"min\") setHoursFromDate(dateObj);\n updateValue();\n }\n\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined) self.currentYearElement[type] = dateObj.getFullYear().toString();else self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled = !!inverseDateObj && dateObj !== undefined && inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n\n function parseConfig() {\n var boolOpts = [\"wrap\", \"weekNumbers\", \"allowInput\", \"allowInvalidPreload\", \"clickOpens\", \"time_24hr\", \"enableTime\", \"noCalendar\", \"altInput\", \"shorthandCurrentMonth\", \"inline\", \"static\", \"enableSeconds\", \"disableMobile\"];\n\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () {\n return self.config._enable;\n },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n }\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () {\n return self.config._disable;\n },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n }\n });\n var timeMode = userConfig.mode === \"time\";\n\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaults.dateFormat;\n formats.dateFormat = userConfig.noCalendar || timeMode ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\") : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n\n if (userConfig.altInput && (userConfig.enableTime || timeMode) && !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaults.altFormat;\n formats.altFormat = userConfig.noCalendar || timeMode ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\") : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n\n Object.defineProperty(self.config, \"minDate\", {\n get: function () {\n return self.config._minDate;\n },\n set: minMaxDateSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () {\n return self.config._maxDate;\n },\n set: minMaxDateSetter(\"max\")\n });\n\n var minMaxTimeSetter = function (type) {\n return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n };\n };\n\n Object.defineProperty(self.config, \"minTime\", {\n get: function () {\n return self.config._minTime;\n },\n set: minMaxTimeSetter(\"min\")\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () {\n return self.config._maxTime;\n },\n set: minMaxTimeSetter(\"max\")\n });\n\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n\n Object.assign(self.config, formats, userConfig);\n\n for (var i = 0; i < boolOpts.length; i++) // https://github.com/microsoft/TypeScript/issues/31663\n self.config[boolOpts[i]] = self.config[boolOpts[i]] === true || self.config[boolOpts[i]] === \"true\";\n\n HOOKS.filter(function (hook) {\n return self.config[hook] !== undefined;\n }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile = !self.config.disableMobile && !self.config.inline && self.config.mode === \"single\" && !self.config.disable.length && !self.config.enable.length && !self.config.weekNumbers && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key]).map(bindToInstance).concat(self.config[key]);\n } else if (typeof userConfig[key] === \"undefined\") self.config[key] = pluginConf[key];\n }\n }\n\n if (!userConfig.altInputClass) {\n self.config.altInputClass = getInputElem().className + \" \" + self.config.altInputClass;\n }\n\n triggerEvent(\"onParseConfig\");\n }\n\n function getInputElem() {\n return self.config.wrap ? element.querySelector(\"[data-input]\") : element;\n }\n\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" && typeof flatpickr.l10ns[self.config.locale] === \"undefined\") self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), typeof self.config.locale === \"object\" ? self.config.locale : self.config.locale !== \"default\" ? flatpickr.l10ns[self.config.locale] : undefined);\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n\n if (userConfig.time_24hr === undefined && flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({\n config: self.config,\n l10n: self.l10n\n });\n }\n\n function positionCalendar(customPositionElement) {\n if (self.calendarContainer === undefined) return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, function (acc, child) {\n return acc + child.offsetHeight;\n }, 0),\n calendarWidth = self.calendarContainer.offsetWidth,\n configPos = self.config.position.split(\" \"),\n configPosVertical = configPos[0],\n configPosHorizontal = configPos.length > 1 ? configPos[1] : null,\n inputBounds = positionElement.getBoundingClientRect(),\n distanceFromBottom = window.innerHeight - inputBounds.bottom,\n showOnTop = configPosVertical === \"above\" || configPosVertical !== \"below\" && distanceFromBottom < calendarHeight && inputBounds.top > calendarHeight;\n var top = window.pageYOffset + inputBounds.top + (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline) return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n } else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth - (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static) return;\n self.calendarContainer.style.top = top + \"px\";\n\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n } else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n } else {\n var doc = getDocumentStyleSheet(); // some testing environments don't have css support\n\n if (doc === undefined) return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n\n function getDocumentStyleSheet() {\n var editableSheet = null;\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n\n try {\n sheet.cssRules;\n } catch (err) {\n continue;\n }\n\n editableSheet = sheet;\n break;\n }\n\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n\n function redraw() {\n if (self.config.noCalendar || self.isMobile) return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n\n function focusAndClose() {\n self._input.focus();\n\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 || navigator.msMaxTouchPoints !== undefined) {\n // hack - bugs in the way IE handles focus keeps the calendar open\n setTimeout(self.close, 0);\n } else {\n self.close();\n }\n }\n\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n\n var isSelectable = function (day) {\n return day.classList && day.classList.contains(\"flatpickr-day\") && !day.classList.contains(\"flatpickr-disabled\") && !day.classList.contains(\"notAllowed\");\n };\n\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined) return;\n var target = t;\n var selectedDate = self.latestSelectedDateObj = new Date(target.dateObj.getTime());\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth || selectedDate.getMonth() > self.currentMonth + self.config.showMonths - 1) && self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\") self.selectedDates = [selectedDate];else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex) self.selectedDates.splice(parseInt(selectedIndex), 1);else self.selectedDates.push(selectedDate);\n } else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate); // unless selecting same date twice, sort ascendingly\n\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0) self.selectedDates.sort(function (a, b) {\n return a.getTime() - b.getTime();\n });\n }\n setHoursFromInputs();\n\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n\n triggerEvent(\"onMonthChange\");\n }\n\n updateNavigationCurrentMonth();\n buildDays();\n updateValue(); // maintain focus\n\n if (!shouldChangeMonth && self.config.mode !== \"range\" && self.config.showMonths === 1) focusOnDayElem(target);else if (self.selectedDateElem !== undefined && self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined) self.hourElement !== undefined && self.hourElement.focus();\n\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" && self.selectedDates.length === 2 && !self.config.enableTime;\n\n if (single || range) {\n focusAndClose();\n }\n }\n\n triggerChange();\n }\n\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate]\n };\n\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n\n for (var key in option) {\n if (CALLBACKS[key] !== undefined) CALLBACKS[key].forEach(function (x) {\n return x();\n });\n }\n } else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined) CALLBACKS[option].forEach(function (x) {\n return x();\n });else if (HOOKS.indexOf(option) > -1) self.config[option] = arrayify(value);\n }\n\n self.redraw();\n updateValue(true);\n }\n\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array) dates = inputDate.map(function (d) {\n return self.parseDate(d, format);\n });else if (inputDate instanceof Date || typeof inputDate === \"number\") dates = [self.parseDate(inputDate, format)];else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n\n case \"multiple\":\n dates = inputDate.split(self.config.conjunction).map(function (date) {\n return self.parseDate(date, format);\n });\n break;\n\n case \"range\":\n dates = inputDate.split(self.l10n.rangeSeparator).map(function (date) {\n return self.parseDate(date, format);\n });\n break;\n }\n } else self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = self.config.allowInvalidPreload ? dates : dates.filter(function (d) {\n return d instanceof Date && isEnabled(d, false);\n });\n if (self.config.mode === \"range\") self.selectedDates.sort(function (a, b) {\n return a.getTime() - b.getTime();\n });\n }\n\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) {\n triggerChange = false;\n }\n\n if (format === void 0) {\n format = self.config.dateFormat;\n }\n\n if (date !== 0 && !date || date instanceof Array && date.length === 0) return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj = self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n\n updateValue(triggerChange);\n if (triggerChange) triggerEvent(\"onChange\");\n }\n\n function parseDateRules(arr) {\n return arr.slice().map(function (rule) {\n if (typeof rule === \"string\" || typeof rule === \"number\" || rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n } else if (rule && typeof rule === \"object\" && rule.from && rule.to) return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined)\n };\n\n return rule;\n }).filter(function (x) {\n return x;\n }); // remove falsy values\n }\n\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date(); // Workaround IE11 setting placeholder as the input's value\n\n var preloadedDate = self.config.defaultDate || ((self.input.nodeName === \"INPUT\" || self.input.nodeName === \"TEXTAREA\") && self.input.placeholder && self.input.value === self.input.placeholder ? null : self.input.value);\n if (preloadedDate) setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate = self.selectedDates.length > 0 ? self.selectedDates[0] : self.config.minDate && self.config.minDate.getTime() > self.now.getTime() ? self.config.minDate : self.config.maxDate && self.config.maxDate.getTime() < self.now.getTime() ? self.config.maxDate : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0) self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined) self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined) self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime = !!self.config.minDate && (self.config.minDate.getHours() > 0 || self.config.minDate.getMinutes() > 0 || self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime = !!self.config.maxDate && (self.config.maxDate.getHours() > 0 || self.config.maxDate.getMinutes() > 0 || self.config.maxDate.getSeconds() > 0);\n }\n\n function setupInputs() {\n self.input = getInputElem();\n /* istanbul ignore next */\n\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n } // hack: store previous type to restore it after destroy()\n\n\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n\n if (self.config.altInput) {\n // replicate self.element\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode) self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n\n if (!self.config.allowInput) self._input.setAttribute(\"readonly\", \"readonly\");\n self._positionElement = self.config.positionElement || self._input;\n }\n\n function setupMobile() {\n var inputType = self.config.enableTime ? self.config.noCalendar ? \"time\" : \"datetime-local\" : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr = inputType === \"datetime-local\" ? \"Y-m-d\\\\TH:i:S\" : inputType === \"date\" ? \"Y-m-d\" : \"H:i:S\";\n\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n\n if (self.config.minDate) self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate) self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\")) self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined) self.altInput.type = \"hidden\";\n\n try {\n if (self.input.parentNode) self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n } catch (_a) {}\n\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n\n function toggle(e) {\n if (self.isOpen === true) return self.close();\n self.open(e);\n }\n\n function triggerEvent(event, data) {\n // If the instance has been destroyed already, all hooks have been removed\n if (self.config === undefined) return;\n var hooks = self.config[event];\n\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++) hooks[i](self.selectedDates, self.input.value, self, data);\n }\n\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\")); // many front-end frameworks bind to the input event\n\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n if (compareDates(self.selectedDates[i], date) === 0) return \"\" + i;\n }\n\n return false;\n }\n\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2) return false;\n return compareDates(date, self.selectedDates[0]) >= 0 && compareDates(date, self.selectedDates[1]) <= 0;\n }\n\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav) return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n\n if (self.config.showMonths > 1 || self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent = monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n } else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow = self.config.minDate !== undefined && (self.currentYear === self.config.minDate.getFullYear() ? self.currentMonth <= self.config.minDate.getMonth() : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow = self.config.maxDate !== undefined && (self.currentYear === self.config.maxDate.getFullYear() ? self.currentMonth + 1 > self.config.maxDate.getMonth() : self.currentYear > self.config.maxDate.getFullYear());\n }\n\n function getDateStr(format) {\n return self.selectedDates.map(function (dObj) {\n return self.formatDate(dObj, format);\n }).filter(function (d, i, arr) {\n return self.config.mode !== \"range\" || self.config.enableTime || arr.indexOf(d) === i;\n }).join(self.config.mode !== \"range\" ? self.config.conjunction : self.l10n.rangeSeparator);\n }\n /**\n * Updates the values of inputs associated with the calendar\n */\n\n\n function updateValue(triggerChange) {\n if (triggerChange === void 0) {\n triggerChange = true;\n }\n\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value = self.latestSelectedDateObj !== undefined ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr) : \"\";\n }\n\n self.input.value = getDateStr(self.config.dateFormat);\n\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n\n if (triggerChange !== false) triggerEvent(\"onValueUpdate\");\n }\n\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n } else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n } else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n } else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\",\n eventTarget = getEventTarget(e),\n input = eventTarget;\n\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent = self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n\n var min = parseFloat(input.getAttribute(\"min\")),\n max = parseFloat(input.getAttribute(\"max\")),\n step = parseFloat(input.getAttribute(\"step\")),\n curValue = parseInt(input.value, 10),\n delta = e.delta || (isKeyDown ? e.which === 38 ? 1 : -1 : 0);\n var newValue = curValue + step * delta;\n\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement,\n isMinuteElem = input === self.minuteElement;\n\n if (newValue < min) {\n newValue = max + newValue + int(!isHourElem) + (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem) incrementNumInput(undefined, -1, self.hourElement);\n } else if (newValue > max) {\n newValue = input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem) incrementNumInput(undefined, 1, self.hourElement);\n }\n\n if (self.amPM && isHourElem && (step === 1 ? newValue + curValue === 23 : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent = self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n\n input.value = pad(newValue);\n }\n }\n\n init();\n return self;\n }\n /* istanbul ignore next */\n\n\n function _flatpickr(nodeList, config) {\n // static list\n var nodes = Array.prototype.slice.call(nodeList).filter(function (x) {\n return x instanceof HTMLElement;\n });\n var instances = [];\n\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null) continue;\n\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n\n node._flatpickr = undefined;\n }\n\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n } catch (e) {}\n }\n\n return instances.length === 1 ? instances[0] : instances;\n }\n /* istanbul ignore next */\n\n\n if (typeof HTMLElement !== \"undefined\" && typeof HTMLCollection !== \"undefined\" && typeof NodeList !== \"undefined\") {\n // browser env\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n }\n /* istanbul ignore next */\n\n\n var flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n } else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n } else {\n return _flatpickr(selector, config);\n }\n };\n /* istanbul ignore next */\n\n\n flatpickr.defaultConfig = {};\n flatpickr.l10ns = {\n en: __assign({}, english),\n default: __assign({}, english)\n };\n\n flatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n };\n\n flatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n };\n\n flatpickr.parseDate = createDateParser({});\n flatpickr.formatDate = createDateFormatter({});\n flatpickr.compareDates = compareDates;\n /* istanbul ignore next */\n\n if (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n } // eslint-disable-next-line @typescript-eslint/camelcase\n\n\n Date.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n };\n\n if (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n }\n\n return flatpickr;\n});","(function () {\n var context = this;\n (function () {\n (function () {\n var slice = [].slice;\n this.ActionCable = {\n INTERNAL: {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\"actioncable-v1-json\", \"actioncable-unsupported\"]\n },\n WebSocket: window.WebSocket,\n logger: window.console,\n createConsumer: function (url) {\n var ref;\n\n if (url == null) {\n url = (ref = this.getConfig(\"url\")) != null ? ref : this.INTERNAL.default_mount_path;\n }\n\n return new ActionCable.Consumer(this.createWebSocketURL(url));\n },\n getConfig: function (name) {\n var element;\n element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n return element != null ? element.getAttribute(\"content\") : void 0;\n },\n createWebSocketURL: function (url) {\n var a;\n\n if (url && !/^wss?:/i.test(url)) {\n a = document.createElement(\"a\");\n a.href = url;\n a.href = a.href;\n a.protocol = a.protocol.replace(\"http\", \"ws\");\n return a.href;\n } else {\n return url;\n }\n },\n startDebugging: function () {\n return this.debugging = true;\n },\n stopDebugging: function () {\n return this.debugging = null;\n },\n log: function () {\n var messages, ref;\n messages = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n\n if (this.debugging) {\n messages.push(Date.now());\n return (ref = this.logger).log.apply(ref, [\"[ActionCable]\"].concat(slice.call(messages)));\n }\n }\n };\n }).call(this);\n }).call(context);\n var ActionCable = context.ActionCable;\n (function () {\n (function () {\n var bind = function (fn, me) {\n return function () {\n return fn.apply(me, arguments);\n };\n };\n\n ActionCable.ConnectionMonitor = function () {\n var clamp, now, secondsSince;\n ConnectionMonitor.pollInterval = {\n min: 3,\n max: 30\n };\n ConnectionMonitor.staleThreshold = 6;\n\n function ConnectionMonitor(connection) {\n this.connection = connection;\n this.visibilityDidChange = bind(this.visibilityDidChange, this);\n this.reconnectAttempts = 0;\n }\n\n ConnectionMonitor.prototype.start = function () {\n if (!this.isRunning()) {\n this.startedAt = now();\n delete this.stoppedAt;\n this.startPolling();\n document.addEventListener(\"visibilitychange\", this.visibilityDidChange);\n return ActionCable.log(\"ConnectionMonitor started. pollInterval = \" + this.getPollInterval() + \" ms\");\n }\n };\n\n ConnectionMonitor.prototype.stop = function () {\n if (this.isRunning()) {\n this.stoppedAt = now();\n this.stopPolling();\n document.removeEventListener(\"visibilitychange\", this.visibilityDidChange);\n return ActionCable.log(\"ConnectionMonitor stopped\");\n }\n };\n\n ConnectionMonitor.prototype.isRunning = function () {\n return this.startedAt != null && this.stoppedAt == null;\n };\n\n ConnectionMonitor.prototype.recordPing = function () {\n return this.pingedAt = now();\n };\n\n ConnectionMonitor.prototype.recordConnect = function () {\n this.reconnectAttempts = 0;\n this.recordPing();\n delete this.disconnectedAt;\n return ActionCable.log(\"ConnectionMonitor recorded connect\");\n };\n\n ConnectionMonitor.prototype.recordDisconnect = function () {\n this.disconnectedAt = now();\n return ActionCable.log(\"ConnectionMonitor recorded disconnect\");\n };\n\n ConnectionMonitor.prototype.startPolling = function () {\n this.stopPolling();\n return this.poll();\n };\n\n ConnectionMonitor.prototype.stopPolling = function () {\n return clearTimeout(this.pollTimeout);\n };\n\n ConnectionMonitor.prototype.poll = function () {\n return this.pollTimeout = setTimeout(function (_this) {\n return function () {\n _this.reconnectIfStale();\n\n return _this.poll();\n };\n }(this), this.getPollInterval());\n };\n\n ConnectionMonitor.prototype.getPollInterval = function () {\n var interval, max, min, ref;\n ref = this.constructor.pollInterval, min = ref.min, max = ref.max;\n interval = 5 * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1000);\n };\n\n ConnectionMonitor.prototype.reconnectIfStale = function () {\n if (this.connectionIsStale()) {\n ActionCable.log(\"ConnectionMonitor detected stale connection. reconnectAttempts = \" + this.reconnectAttempts + \", pollInterval = \" + this.getPollInterval() + \" ms, time disconnected = \" + secondsSince(this.disconnectedAt) + \" s, stale threshold = \" + this.constructor.staleThreshold + \" s\");\n this.reconnectAttempts++;\n\n if (this.disconnectedRecently()) {\n return ActionCable.log(\"ConnectionMonitor skipping reopening recent disconnect\");\n } else {\n ActionCable.log(\"ConnectionMonitor reopening\");\n return this.connection.reopen();\n }\n }\n };\n\n ConnectionMonitor.prototype.connectionIsStale = function () {\n var ref;\n return secondsSince((ref = this.pingedAt) != null ? ref : this.startedAt) > this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.disconnectedRecently = function () {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.visibilityDidChange = function () {\n if (document.visibilityState === \"visible\") {\n return setTimeout(function (_this) {\n return function () {\n if (_this.connectionIsStale() || !_this.connection.isOpen()) {\n ActionCable.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = \" + document.visibilityState);\n return _this.connection.reopen();\n }\n };\n }(this), 200);\n }\n };\n\n now = function () {\n return new Date().getTime();\n };\n\n secondsSince = function (time) {\n return (now() - time) / 1000;\n };\n\n clamp = function (number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\n\n return ConnectionMonitor;\n }();\n }).call(this);\n (function () {\n var i,\n message_types,\n protocols,\n ref,\n supportedProtocols,\n unsupportedProtocol,\n slice = [].slice,\n bind = function (fn, me) {\n return function () {\n return fn.apply(me, arguments);\n };\n },\n indexOf = [].indexOf || function (item) {\n for (var i = 0, l = this.length; i < l; i++) {\n if (i in this && this[i] === item) return i;\n }\n\n return -1;\n };\n\n ref = ActionCable.INTERNAL, message_types = ref.message_types, protocols = ref.protocols;\n supportedProtocols = 2 <= protocols.length ? slice.call(protocols, 0, i = protocols.length - 1) : (i = 0, []), unsupportedProtocol = protocols[i++];\n\n ActionCable.Connection = function () {\n Connection.reopenDelay = 500;\n\n function Connection(consumer) {\n this.consumer = consumer;\n this.open = bind(this.open, this);\n this.subscriptions = this.consumer.subscriptions;\n this.monitor = new ActionCable.ConnectionMonitor(this);\n this.disconnected = true;\n }\n\n Connection.prototype.send = function (data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data));\n return true;\n } else {\n return false;\n }\n };\n\n Connection.prototype.open = function () {\n if (this.isActive()) {\n ActionCable.log(\"Attempted to open WebSocket, but existing socket is \" + this.getState());\n return false;\n } else {\n ActionCable.log(\"Opening WebSocket, current state is \" + this.getState() + \", subprotocols: \" + protocols);\n\n if (this.webSocket != null) {\n this.uninstallEventHandlers();\n }\n\n this.webSocket = new ActionCable.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n\n Connection.prototype.close = function (arg) {\n var allowReconnect, ref1;\n allowReconnect = (arg != null ? arg : {\n allowReconnect: true\n }).allowReconnect;\n\n if (!allowReconnect) {\n this.monitor.stop();\n }\n\n if (this.isActive()) {\n return (ref1 = this.webSocket) != null ? ref1.close() : void 0;\n }\n };\n\n Connection.prototype.reopen = function () {\n var error;\n ActionCable.log(\"Reopening WebSocket, current state is \" + this.getState());\n\n if (this.isActive()) {\n try {\n return this.close();\n } catch (error1) {\n error = error1;\n return ActionCable.log(\"Failed to reopen WebSocket\", error);\n } finally {\n ActionCable.log(\"Reopening WebSocket in \" + this.constructor.reopenDelay + \"ms\");\n setTimeout(this.open, this.constructor.reopenDelay);\n }\n } else {\n return this.open();\n }\n };\n\n Connection.prototype.getProtocol = function () {\n var ref1;\n return (ref1 = this.webSocket) != null ? ref1.protocol : void 0;\n };\n\n Connection.prototype.isOpen = function () {\n return this.isState(\"open\");\n };\n\n Connection.prototype.isActive = function () {\n return this.isState(\"open\", \"connecting\");\n };\n\n Connection.prototype.isProtocolSupported = function () {\n var ref1;\n return ref1 = this.getProtocol(), indexOf.call(supportedProtocols, ref1) >= 0;\n };\n\n Connection.prototype.isState = function () {\n var ref1, states;\n states = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return ref1 = this.getState(), indexOf.call(states, ref1) >= 0;\n };\n\n Connection.prototype.getState = function () {\n var ref1, state, value;\n\n for (state in WebSocket) {\n value = WebSocket[state];\n\n if (value === ((ref1 = this.webSocket) != null ? ref1.readyState : void 0)) {\n return state.toLowerCase();\n }\n }\n\n return null;\n };\n\n Connection.prototype.installEventHandlers = function () {\n var eventName, handler;\n\n for (eventName in this.events) {\n handler = this.events[eventName].bind(this);\n this.webSocket[\"on\" + eventName] = handler;\n }\n };\n\n Connection.prototype.uninstallEventHandlers = function () {\n var eventName;\n\n for (eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function () {};\n }\n };\n\n Connection.prototype.events = {\n message: function (event) {\n var identifier, message, ref1, type;\n\n if (!this.isProtocolSupported()) {\n return;\n }\n\n ref1 = JSON.parse(event.data), identifier = ref1.identifier, message = ref1.message, type = ref1.type;\n\n switch (type) {\n case message_types.welcome:\n this.monitor.recordConnect();\n return this.subscriptions.reload();\n\n case message_types.ping:\n return this.monitor.recordPing();\n\n case message_types.confirmation:\n return this.subscriptions.notify(identifier, \"connected\");\n\n case message_types.rejection:\n return this.subscriptions.reject(identifier);\n\n default:\n return this.subscriptions.notify(identifier, \"received\", message);\n }\n },\n open: function () {\n ActionCable.log(\"WebSocket onopen event, using '\" + this.getProtocol() + \"' subprotocol\");\n this.disconnected = false;\n\n if (!this.isProtocolSupported()) {\n ActionCable.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\");\n return this.close({\n allowReconnect: false\n });\n }\n },\n close: function (event) {\n ActionCable.log(\"WebSocket onclose event\");\n\n if (this.disconnected) {\n return;\n }\n\n this.disconnected = true;\n this.monitor.recordDisconnect();\n return this.subscriptions.notifyAll(\"disconnected\", {\n willAttemptReconnect: this.monitor.isRunning()\n });\n },\n error: function () {\n return ActionCable.log(\"WebSocket onerror event\");\n }\n };\n return Connection;\n }();\n }).call(this);\n (function () {\n var slice = [].slice;\n\n ActionCable.Subscriptions = function () {\n function Subscriptions(consumer) {\n this.consumer = consumer;\n this.subscriptions = [];\n }\n\n Subscriptions.prototype.create = function (channelName, mixin) {\n var channel, params, subscription;\n channel = channelName;\n params = typeof channel === \"object\" ? channel : {\n channel: channel\n };\n subscription = new ActionCable.Subscription(this.consumer, params, mixin);\n return this.add(subscription);\n };\n\n Subscriptions.prototype.add = function (subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.sendCommand(subscription, \"subscribe\");\n return subscription;\n };\n\n Subscriptions.prototype.remove = function (subscription) {\n this.forget(subscription);\n\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n\n return subscription;\n };\n\n Subscriptions.prototype.reject = function (identifier) {\n var i, len, ref, results, subscription;\n ref = this.findAll(identifier);\n results = [];\n\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n this.forget(subscription);\n this.notify(subscription, \"rejected\");\n results.push(subscription);\n }\n\n return results;\n };\n\n Subscriptions.prototype.forget = function (subscription) {\n var s;\n\n this.subscriptions = function () {\n var i, len, ref, results;\n ref = this.subscriptions;\n results = [];\n\n for (i = 0, len = ref.length; i < len; i++) {\n s = ref[i];\n\n if (s !== subscription) {\n results.push(s);\n }\n }\n\n return results;\n }.call(this);\n\n return subscription;\n };\n\n Subscriptions.prototype.findAll = function (identifier) {\n var i, len, ref, results, s;\n ref = this.subscriptions;\n results = [];\n\n for (i = 0, len = ref.length; i < len; i++) {\n s = ref[i];\n\n if (s.identifier === identifier) {\n results.push(s);\n }\n }\n\n return results;\n };\n\n Subscriptions.prototype.reload = function () {\n var i, len, ref, results, subscription;\n ref = this.subscriptions;\n results = [];\n\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n results.push(this.sendCommand(subscription, \"subscribe\"));\n }\n\n return results;\n };\n\n Subscriptions.prototype.notifyAll = function () {\n var args, callbackName, i, len, ref, results, subscription;\n callbackName = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n ref = this.subscriptions;\n results = [];\n\n for (i = 0, len = ref.length; i < len; i++) {\n subscription = ref[i];\n results.push(this.notify.apply(this, [subscription, callbackName].concat(slice.call(args))));\n }\n\n return results;\n };\n\n Subscriptions.prototype.notify = function () {\n var args, callbackName, i, len, results, subscription, subscriptions;\n subscription = arguments[0], callbackName = arguments[1], args = 3 <= arguments.length ? slice.call(arguments, 2) : [];\n\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n\n results = [];\n\n for (i = 0, len = subscriptions.length; i < len; i++) {\n subscription = subscriptions[i];\n results.push(typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : void 0);\n }\n\n return results;\n };\n\n Subscriptions.prototype.sendCommand = function (subscription, command) {\n var identifier;\n identifier = subscription.identifier;\n return this.consumer.send({\n command: command,\n identifier: identifier\n });\n };\n\n return Subscriptions;\n }();\n }).call(this);\n (function () {\n ActionCable.Subscription = function () {\n var extend;\n\n function Subscription(consumer, params, mixin) {\n this.consumer = consumer;\n\n if (params == null) {\n params = {};\n }\n\n this.identifier = JSON.stringify(params);\n extend(this, mixin);\n }\n\n Subscription.prototype.perform = function (action, data) {\n if (data == null) {\n data = {};\n }\n\n data.action = action;\n return this.send(data);\n };\n\n Subscription.prototype.send = function (data) {\n return this.consumer.send({\n command: \"message\",\n identifier: this.identifier,\n data: JSON.stringify(data)\n });\n };\n\n Subscription.prototype.unsubscribe = function () {\n return this.consumer.subscriptions.remove(this);\n };\n\n extend = function (object, properties) {\n var key, value;\n\n if (properties != null) {\n for (key in properties) {\n value = properties[key];\n object[key] = value;\n }\n }\n\n return object;\n };\n\n return Subscription;\n }();\n }).call(this);\n (function () {\n ActionCable.Consumer = function () {\n function Consumer(url) {\n this.url = url;\n this.subscriptions = new ActionCable.Subscriptions(this);\n this.connection = new ActionCable.Connection(this);\n }\n\n Consumer.prototype.send = function (data) {\n return this.connection.send(data);\n };\n\n Consumer.prototype.connect = function () {\n return this.connection.open();\n };\n\n Consumer.prototype.disconnect = function () {\n return this.connection.close({\n allowReconnect: false\n });\n };\n\n Consumer.prototype.ensureActiveConnection = function () {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\n };\n\n return Consumer;\n }();\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = ActionCable;\n } else if (typeof define === \"function\" && define.amd) {\n define(ActionCable);\n }\n}).call(this);","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦'\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0'\n };\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split('_'),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે'\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ'\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return gu;\n});","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_'),\n monthsParse = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i];\n\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n\n case 3:\n return '[W zeszłą środę o] LT';\n\n case 6:\n return '[W zeszłą sobotę o] LT';\n\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return pl;\n});","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n },\n invalidDate: 'Fecha inválida'\n });\n return es;\n});","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split('_'),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm'\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fil;\n});","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar cssClasses = {\n ANCHOR: 'mdc-menu-surface--anchor',\n ANIMATING_CLOSED: 'mdc-menu-surface--animating-closed',\n ANIMATING_OPEN: 'mdc-menu-surface--animating-open',\n FIXED: 'mdc-menu-surface--fixed',\n IS_OPEN_BELOW: 'mdc-menu-surface--is-open-below',\n OPEN: 'mdc-menu-surface--open',\n ROOT: 'mdc-menu-surface'\n}; // tslint:disable:object-literal-sort-keys\n\nvar strings = {\n CLOSED_EVENT: 'MDCMenuSurface:closed',\n OPENED_EVENT: 'MDCMenuSurface:opened',\n FOCUSABLE_ELEMENTS: ['button:not(:disabled)', '[href]:not([aria-disabled=\"true\"])', 'input:not(:disabled)', 'select:not(:disabled)', 'textarea:not(:disabled)', '[tabindex]:not([tabindex=\"-1\"]):not([aria-disabled=\"true\"])'].join(', ')\n}; // tslint:enable:object-literal-sort-keys\n\nvar numbers = {\n /** Total duration of menu-surface open animation. */\n TRANSITION_OPEN_DURATION: 120,\n\n /** Total duration of menu-surface close animation. */\n TRANSITION_CLOSE_DURATION: 75,\n\n /** Margin left to the edge of the viewport when menu-surface is at maximum possible height. Also used as a viewport margin. */\n MARGIN_TO_EDGE: 32,\n\n /** Ratio of anchor width to menu-surface width for switching from corner positioning to center positioning. */\n ANCHOR_TO_MENU_SURFACE_WIDTH_RATIO: 0.67\n};\n/**\n * Enum for bits in the {@see Corner) bitmap.\n */\n\nvar CornerBit;\n\n(function (CornerBit) {\n CornerBit[CornerBit[\"BOTTOM\"] = 1] = \"BOTTOM\";\n CornerBit[CornerBit[\"CENTER\"] = 2] = \"CENTER\";\n CornerBit[CornerBit[\"RIGHT\"] = 4] = \"RIGHT\";\n CornerBit[CornerBit[\"FLIP_RTL\"] = 8] = \"FLIP_RTL\";\n})(CornerBit || (CornerBit = {}));\n/**\n * Enum for representing an element corner for positioning the menu-surface.\n *\n * The START constants map to LEFT if element directionality is left\n * to right and RIGHT if the directionality is right to left.\n * Likewise END maps to RIGHT or LEFT depending on the directionality.\n */\n\n\nvar Corner;\n\n(function (Corner) {\n Corner[Corner[\"TOP_LEFT\"] = 0] = \"TOP_LEFT\";\n Corner[Corner[\"TOP_RIGHT\"] = 4] = \"TOP_RIGHT\";\n Corner[Corner[\"BOTTOM_LEFT\"] = 1] = \"BOTTOM_LEFT\";\n Corner[Corner[\"BOTTOM_RIGHT\"] = 5] = \"BOTTOM_RIGHT\";\n Corner[Corner[\"TOP_START\"] = 8] = \"TOP_START\";\n Corner[Corner[\"TOP_END\"] = 12] = \"TOP_END\";\n Corner[Corner[\"BOTTOM_START\"] = 9] = \"BOTTOM_START\";\n Corner[Corner[\"BOTTOM_END\"] = 13] = \"BOTTOM_END\";\n})(Corner || (Corner = {}));\n\nexport { cssClasses, strings, numbers, CornerBit, Corner };","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __extends } from \"tslib\";\nimport { MDCDismissibleDrawerFoundation } from '../dismissible/foundation';\n/* istanbul ignore next: subclass is not a branch statement */\n\nvar MDCModalDrawerFoundation =\n/** @class */\nfunction (_super) {\n __extends(MDCModalDrawerFoundation, _super);\n\n function MDCModalDrawerFoundation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Handles click event on scrim.\n */\n\n\n MDCModalDrawerFoundation.prototype.handleScrimClick = function () {\n this.close();\n };\n /**\n * Called when drawer finishes open animation.\n */\n\n\n MDCModalDrawerFoundation.prototype.opened_ = function () {\n this.adapter.trapFocus();\n };\n /**\n * Called when drawer finishes close animation.\n */\n\n\n MDCModalDrawerFoundation.prototype.closed_ = function () {\n this.adapter.releaseFocus();\n };\n\n return MDCModalDrawerFoundation;\n}(MDCDismissibleDrawerFoundation);\n\nexport { MDCModalDrawerFoundation }; // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\n\nexport default MDCModalDrawerFoundation;","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __extends } from \"tslib\";\nimport { MDCComponent } from '@material/base/component';\nimport { FocusTrap } from '@material/dom/focus-trap';\nimport { MDCList } from '@material/list/component';\nimport { MDCListFoundation } from '@material/list/foundation';\nimport { MDCDismissibleDrawerFoundation } from './dismissible/foundation';\nimport { MDCModalDrawerFoundation } from './modal/foundation';\nimport * as util from './util';\nvar cssClasses = MDCDismissibleDrawerFoundation.cssClasses,\n strings = MDCDismissibleDrawerFoundation.strings;\n/**\n * @events `MDCDrawer:closed {}` Emits when the navigation drawer has closed.\n * @events `MDCDrawer:opened {}` Emits when the navigation drawer has opened.\n */\n\nvar MDCDrawer =\n/** @class */\nfunction (_super) {\n __extends(MDCDrawer, _super);\n\n function MDCDrawer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n MDCDrawer.attachTo = function (root) {\n return new MDCDrawer(root);\n };\n\n Object.defineProperty(MDCDrawer.prototype, \"open\", {\n /**\n * @return boolean Proxies to the foundation's `open`/`close` methods.\n * Also returns true if drawer is in the open position.\n */\n get: function () {\n return this.foundation.isOpen();\n },\n\n /**\n * Toggles the drawer open and closed.\n */\n set: function (isOpen) {\n if (isOpen) {\n this.foundation.open();\n } else {\n this.foundation.close();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCDrawer.prototype, \"list\", {\n get: function () {\n return this.list_;\n },\n enumerable: true,\n configurable: true\n });\n\n MDCDrawer.prototype.initialize = function (focusTrapFactory, listFactory) {\n if (focusTrapFactory === void 0) {\n focusTrapFactory = function (el) {\n return new FocusTrap(el);\n };\n }\n\n if (listFactory === void 0) {\n listFactory = function (el) {\n return new MDCList(el);\n };\n }\n\n var listEl = this.root.querySelector(\".\" + MDCListFoundation.cssClasses.ROOT);\n\n if (listEl) {\n this.list_ = listFactory(listEl);\n this.list_.wrapFocus = true;\n }\n\n this.focusTrapFactory_ = focusTrapFactory;\n };\n\n MDCDrawer.prototype.initialSyncWithDOM = function () {\n var _this = this;\n\n var MODAL = cssClasses.MODAL;\n var SCRIM_SELECTOR = strings.SCRIM_SELECTOR;\n this.scrim_ = this.root.parentNode.querySelector(SCRIM_SELECTOR);\n\n if (this.scrim_ && this.root.classList.contains(MODAL)) {\n this.handleScrimClick_ = function () {\n return _this.foundation.handleScrimClick();\n };\n\n this.scrim_.addEventListener('click', this.handleScrimClick_);\n this.focusTrap_ = util.createFocusTrapInstance(this.root, this.focusTrapFactory_);\n }\n\n this.handleKeydown_ = function (evt) {\n return _this.foundation.handleKeydown(evt);\n };\n\n this.handleTransitionEnd_ = function (evt) {\n return _this.foundation.handleTransitionEnd(evt);\n };\n\n this.listen('keydown', this.handleKeydown_);\n this.listen('transitionend', this.handleTransitionEnd_);\n };\n\n MDCDrawer.prototype.destroy = function () {\n this.unlisten('keydown', this.handleKeydown_);\n this.unlisten('transitionend', this.handleTransitionEnd_);\n\n if (this.list_) {\n this.list_.destroy();\n }\n\n var MODAL = cssClasses.MODAL;\n\n if (this.scrim_ && this.handleScrimClick_ && this.root.classList.contains(MODAL)) {\n this.scrim_.removeEventListener('click', this.handleScrimClick_); // Ensure drawer is closed to hide scrim and release focus\n\n this.open = false;\n }\n };\n\n MDCDrawer.prototype.getDefaultFoundation = function () {\n var _this = this; // DO NOT INLINE this variable. For backward compatibility, foundations take a Partial.\n // To ensure we don't accidentally omit any methods, we need a separate, strongly typed adapter variable.\n // tslint:disable:object-literal-sort-keys Methods should be in the same order as the adapter interface.\n\n\n var adapter = {\n addClass: function (className) {\n return _this.root.classList.add(className);\n },\n removeClass: function (className) {\n return _this.root.classList.remove(className);\n },\n hasClass: function (className) {\n return _this.root.classList.contains(className);\n },\n elementHasClass: function (element, className) {\n return element.classList.contains(className);\n },\n saveFocus: function () {\n return _this.previousFocus_ = document.activeElement;\n },\n restoreFocus: function () {\n var previousFocus = _this.previousFocus_;\n\n if (previousFocus && previousFocus.focus && _this.root.contains(document.activeElement)) {\n previousFocus.focus();\n }\n },\n focusActiveNavigationItem: function () {\n var activeNavItemEl = _this.root.querySelector(\".\" + MDCListFoundation.cssClasses.LIST_ITEM_ACTIVATED_CLASS);\n\n if (activeNavItemEl) {\n activeNavItemEl.focus();\n }\n },\n notifyClose: function () {\n return _this.emit(strings.CLOSE_EVENT, {}, true\n /* shouldBubble */\n );\n },\n notifyOpen: function () {\n return _this.emit(strings.OPEN_EVENT, {}, true\n /* shouldBubble */\n );\n },\n trapFocus: function () {\n return _this.focusTrap_.trapFocus();\n },\n releaseFocus: function () {\n return _this.focusTrap_.releaseFocus();\n }\n }; // tslint:enable:object-literal-sort-keys\n\n var DISMISSIBLE = cssClasses.DISMISSIBLE,\n MODAL = cssClasses.MODAL;\n\n if (this.root.classList.contains(DISMISSIBLE)) {\n return new MDCDismissibleDrawerFoundation(adapter);\n } else if (this.root.classList.contains(MODAL)) {\n return new MDCModalDrawerFoundation(adapter);\n } else {\n throw new Error(\"MDCDrawer: Failed to instantiate component. Supported variants are \" + DISMISSIBLE + \" and \" + MODAL + \".\");\n }\n };\n\n return MDCDrawer;\n}(MDCComponent);\n\nexport { MDCDrawer };","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nexport function createFocusTrapInstance(surfaceEl, focusTrapFactory) {\n return focusTrapFactory(surfaceEl, {\n // Component handles focusing on active nav item.\n skipInitialFocus: true\n });\n}","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return bg;\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\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\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.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['module'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(module);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod);\n global.regression = mod.exports;\n }\n})(this, function (module) {\n 'use strict';\n\n 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 }\n\n var _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 function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n }\n\n var DEFAULT_OPTIONS = {\n order: 2,\n precision: 2,\n period: null\n };\n /**\n * Determine the coefficient of determination (r^2) of a fit from the observations\n * and predictions.\n *\n * @param {Array>} data - Pairs of observed x-y values\n * @param {Array>} results - Pairs of observed predicted x-y values\n *\n * @return {number} - The r^2 value, or NaN if one cannot be calculated.\n */\n\n function determinationCoefficient(data, results) {\n var predictions = [];\n var observations = [];\n data.forEach(function (d, i) {\n if (d[1] !== null) {\n observations.push(d);\n predictions.push(results[i]);\n }\n });\n var sum = observations.reduce(function (a, observation) {\n return a + observation[1];\n }, 0);\n var mean = sum / observations.length;\n var ssyy = observations.reduce(function (a, observation) {\n var difference = observation[1] - mean;\n return a + difference * difference;\n }, 0);\n var sse = observations.reduce(function (accum, observation, index) {\n var prediction = predictions[index];\n var residual = observation[1] - prediction[1];\n return accum + residual * residual;\n }, 0);\n return 1 - sse / ssyy;\n }\n /**\n * Determine the solution of a system of linear equations A * x = b using\n * Gaussian elimination.\n *\n * @param {Array>} input - A 2-d matrix of data in row-major form [ A | b ]\n * @param {number} order - How many degrees to solve for\n *\n * @return {Array} - Vector of normalized solution coefficients matrix (x)\n */\n\n\n function gaussianElimination(input, order) {\n var matrix = input;\n var n = input.length - 1;\n var coefficients = [order];\n\n for (var i = 0; i < n; i++) {\n var maxrow = i;\n\n for (var j = i + 1; j < n; j++) {\n if (Math.abs(matrix[i][j]) > Math.abs(matrix[i][maxrow])) {\n maxrow = j;\n }\n }\n\n for (var k = i; k < n + 1; k++) {\n var tmp = matrix[k][i];\n matrix[k][i] = matrix[k][maxrow];\n matrix[k][maxrow] = tmp;\n }\n\n for (var _j = i + 1; _j < n; _j++) {\n for (var _k = n; _k >= i; _k--) {\n matrix[_k][_j] -= matrix[_k][i] * matrix[i][_j] / matrix[i][i];\n }\n }\n }\n\n for (var _j2 = n - 1; _j2 >= 0; _j2--) {\n var total = 0;\n\n for (var _k2 = _j2 + 1; _k2 < n; _k2++) {\n total += matrix[_k2][_j2] * coefficients[_k2];\n }\n\n coefficients[_j2] = (matrix[n][_j2] - total) / matrix[_j2][_j2];\n }\n\n return coefficients;\n }\n /**\n * Round a number to a precision, specificed in number of decimal places\n *\n * @param {number} number - The number to round\n * @param {number} precision - The number of decimal places to round to:\n * > 0 means decimals, < 0 means powers of 10\n *\n *\n * @return {numbr} - The number, rounded\n */\n\n\n function round(number, precision) {\n var factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n }\n /**\n * The set of all fitting methods\n *\n * @namespace\n */\n\n\n var methods = {\n linear: function linear(data, options) {\n var sum = [0, 0, 0, 0, 0];\n var len = 0;\n\n for (var n = 0; n < data.length; n++) {\n if (data[n][1] !== null) {\n len++;\n sum[0] += data[n][0];\n sum[1] += data[n][1];\n sum[2] += data[n][0] * data[n][0];\n sum[3] += data[n][0] * data[n][1];\n sum[4] += data[n][1] * data[n][1];\n }\n }\n\n var run = len * sum[2] - sum[0] * sum[0];\n var rise = len * sum[3] - sum[0] * sum[1];\n var gradient = run === 0 ? 0 : round(rise / run, options.precision);\n var intercept = round(sum[1] / len - gradient * sum[0] / len, options.precision);\n\n var predict = function predict(x) {\n return [round(x, options.precision), round(gradient * x + intercept, options.precision)];\n };\n\n var points = data.map(function (point) {\n return predict(point[0]);\n });\n return {\n points: points,\n predict: predict,\n equation: [gradient, intercept],\n r2: round(determinationCoefficient(data, points), options.precision),\n string: intercept === 0 ? 'y = ' + gradient + 'x' : 'y = ' + gradient + 'x + ' + intercept\n };\n },\n exponential: function exponential(data, options) {\n var sum = [0, 0, 0, 0, 0, 0];\n\n for (var n = 0; n < data.length; n++) {\n if (data[n][1] !== null) {\n sum[0] += data[n][0];\n sum[1] += data[n][1];\n sum[2] += data[n][0] * data[n][0] * data[n][1];\n sum[3] += data[n][1] * Math.log(data[n][1]);\n sum[4] += data[n][0] * data[n][1] * Math.log(data[n][1]);\n sum[5] += data[n][0] * data[n][1];\n }\n }\n\n var denominator = sum[1] * sum[2] - sum[5] * sum[5];\n var a = Math.exp((sum[2] * sum[3] - sum[5] * sum[4]) / denominator);\n var b = (sum[1] * sum[4] - sum[5] * sum[3]) / denominator;\n var coeffA = round(a, options.precision);\n var coeffB = round(b, options.precision);\n\n var predict = function predict(x) {\n return [round(x, options.precision), round(coeffA * Math.exp(coeffB * x), options.precision)];\n };\n\n var points = data.map(function (point) {\n return predict(point[0]);\n });\n return {\n points: points,\n predict: predict,\n equation: [coeffA, coeffB],\n string: 'y = ' + coeffA + 'e^(' + coeffB + 'x)',\n r2: round(determinationCoefficient(data, points), options.precision)\n };\n },\n logarithmic: function logarithmic(data, options) {\n var sum = [0, 0, 0, 0];\n var len = data.length;\n\n for (var n = 0; n < len; n++) {\n if (data[n][1] !== null) {\n sum[0] += Math.log(data[n][0]);\n sum[1] += data[n][1] * Math.log(data[n][0]);\n sum[2] += data[n][1];\n sum[3] += Math.pow(Math.log(data[n][0]), 2);\n }\n }\n\n var a = (len * sum[1] - sum[2] * sum[0]) / (len * sum[3] - sum[0] * sum[0]);\n var coeffB = round(a, options.precision);\n var coeffA = round((sum[2] - coeffB * sum[0]) / len, options.precision);\n\n var predict = function predict(x) {\n return [round(x, options.precision), round(round(coeffA + coeffB * Math.log(x), options.precision), options.precision)];\n };\n\n var points = data.map(function (point) {\n return predict(point[0]);\n });\n return {\n points: points,\n predict: predict,\n equation: [coeffA, coeffB],\n string: 'y = ' + coeffA + ' + ' + coeffB + ' ln(x)',\n r2: round(determinationCoefficient(data, points), options.precision)\n };\n },\n power: function power(data, options) {\n var sum = [0, 0, 0, 0, 0];\n var len = data.length;\n\n for (var n = 0; n < len; n++) {\n if (data[n][1] !== null) {\n sum[0] += Math.log(data[n][0]);\n sum[1] += Math.log(data[n][1]) * Math.log(data[n][0]);\n sum[2] += Math.log(data[n][1]);\n sum[3] += Math.pow(Math.log(data[n][0]), 2);\n }\n }\n\n var b = (len * sum[1] - sum[0] * sum[2]) / (len * sum[3] - Math.pow(sum[0], 2));\n var a = (sum[2] - b * sum[0]) / len;\n var coeffA = round(Math.exp(a), options.precision);\n var coeffB = round(b, options.precision);\n\n var predict = function predict(x) {\n return [round(x, options.precision), round(round(coeffA * Math.pow(x, coeffB), options.precision), options.precision)];\n };\n\n var points = data.map(function (point) {\n return predict(point[0]);\n });\n return {\n points: points,\n predict: predict,\n equation: [coeffA, coeffB],\n string: 'y = ' + coeffA + 'x^' + coeffB,\n r2: round(determinationCoefficient(data, points), options.precision)\n };\n },\n polynomial: function polynomial(data, options) {\n var lhs = [];\n var rhs = [];\n var a = 0;\n var b = 0;\n var len = data.length;\n var k = options.order + 1;\n\n for (var i = 0; i < k; i++) {\n for (var l = 0; l < len; l++) {\n if (data[l][1] !== null) {\n a += Math.pow(data[l][0], i) * data[l][1];\n }\n }\n\n lhs.push(a);\n a = 0;\n var c = [];\n\n for (var j = 0; j < k; j++) {\n for (var _l = 0; _l < len; _l++) {\n if (data[_l][1] !== null) {\n b += Math.pow(data[_l][0], i + j);\n }\n }\n\n c.push(b);\n b = 0;\n }\n\n rhs.push(c);\n }\n\n rhs.push(lhs);\n var coefficients = gaussianElimination(rhs, k).map(function (v) {\n return round(v, options.precision);\n });\n\n var predict = function predict(x) {\n return [round(x, options.precision), round(coefficients.reduce(function (sum, coeff, power) {\n return sum + coeff * Math.pow(x, power);\n }, 0), options.precision)];\n };\n\n var points = data.map(function (point) {\n return predict(point[0]);\n });\n var string = 'y = ';\n\n for (var _i = coefficients.length - 1; _i >= 0; _i--) {\n if (_i > 1) {\n string += coefficients[_i] + 'x^' + _i + ' + ';\n } else if (_i === 1) {\n string += coefficients[_i] + 'x + ';\n } else {\n string += coefficients[_i];\n }\n }\n\n return {\n string: string,\n points: points,\n predict: predict,\n equation: [].concat(_toConsumableArray(coefficients)).reverse(),\n r2: round(determinationCoefficient(data, points), options.precision)\n };\n }\n };\n\n function createWrapper() {\n var reduce = function reduce(accumulator, name) {\n return _extends({\n _round: round\n }, accumulator, _defineProperty({}, name, function (data, supplied) {\n return methods[name](data, _extends({}, DEFAULT_OPTIONS, supplied));\n }));\n };\n\n return Object.keys(methods).reduce(reduce, {});\n }\n\n module.exports = createWrapper();\n});","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.appent` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n\n }\n });\n return enIn;\n});","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦'\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0'\n };\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n monthsShort: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\n weekdays: 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split('_'),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split('_'),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm'\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return ta;\n});","'use strict';\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n try {\n // Try to decode the entire string first\n return decodeURIComponent(components.join(''));\n } catch (err) {// Do nothing\n }\n\n if (components.length === 1) {\n return components;\n }\n\n split = split || 1; // Split the array in 2 parts\n\n var left = components.slice(0, split);\n var right = components.slice(split);\n return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n try {\n return decodeURIComponent(input);\n } catch (err) {\n var tokens = input.match(singleMatcher);\n\n for (var i = 1; i < tokens.length; i++) {\n input = decodeComponents(tokens, i).join('');\n tokens = input.match(singleMatcher);\n }\n\n return input;\n }\n}\n\nfunction customDecodeURIComponent(input) {\n // Keep track of all the replacements and prefill the map with the `BOM`\n var replaceMap = {\n '%FE%FF': '\\uFFFD\\uFFFD',\n '%FF%FE': '\\uFFFD\\uFFFD'\n };\n var match = multiMatcher.exec(input);\n\n while (match) {\n try {\n // Decode as big chunks as possible\n replaceMap[match[0]] = decodeURIComponent(match[0]);\n } catch (err) {\n var result = decode(match[0]);\n\n if (result !== match[0]) {\n replaceMap[match[0]] = result;\n }\n }\n\n match = multiMatcher.exec(input);\n } // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\n\n replaceMap['%C2'] = '\\uFFFD';\n var entries = Object.keys(replaceMap);\n\n for (var i = 0; i < entries.length; i++) {\n // Replace all decoded components\n var key = entries[i];\n input = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n }\n\n return input;\n}\n\nmodule.exports = function (encodedURI) {\n if (typeof encodedURI !== 'string') {\n throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n }\n\n try {\n encodedURI = encodedURI.replace(/\\+/g, ' '); // Try the built in decoder first\n\n return decodeURIComponent(encodedURI);\n } catch (err) {\n // Fallback to a more advanced decoder\n return customDecodeURIComponent(encodedURI);\n }\n};","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return mk;\n});","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı'\n };\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il'\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return az;\n});","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\n\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n\n if (src === void 0) {\n src = {};\n }\n\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () {},\n removeEventListener: function () {},\n activeElement: {\n blur: function () {},\n nodeName: ''\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () {}\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () {},\n getElementsByTagName: function () {\n return [];\n }\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n};\n\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: ''\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n },\n history: {\n replaceState: function () {},\n pushState: function () {},\n go: function () {},\n back: function () {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () {},\n removeEventListener: function () {},\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n }\n };\n },\n Image: function () {},\n Date: function () {},\n screen: {},\n setTimeout: function () {},\n clearTimeout: function () {},\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n};\n\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\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 _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 _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\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/* eslint-disable no-proto */\n\n\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\n\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\n\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\n\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n $.fn[methodName] = Methods[methodName];\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n extend(to[nextKey], nextSource[nextKey]);\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","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}\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(function () {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n var currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\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\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n/* eslint no-param-reassign: \"off\" */\n\n\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\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.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n };\n\n _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n var getDirectionLabel = function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n };\n\n var getDirectionPropertyValue = function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n };\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(slidesForMargin).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n } // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n var translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentWidth = base === 'window' ? window.innerWidth : containerEl.clientWidth;\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= currentWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\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","'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\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 _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nconst strictUriEncode = require('strict-uri-encode');\n\nconst decodeComponent = require('decode-uri-component');\n\nconst splitOnFirst = require('split-on-first');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n switch (options.arrayFormat) {\n case 'index':\n return key => (result, value) => {\n const index = result.length;\n\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [...result, [encode(key, options), '[', index, ']'].join('')];\n }\n\n return [...result, [encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')];\n };\n\n case 'bracket':\n return key => (result, value) => {\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [...result, [encode(key, options), '[]'].join('')];\n }\n\n return [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n };\n\n case 'comma':\n case 'separator':\n return key => (result, value) => {\n if (value === null || value === undefined || value.length === 0) {\n return result;\n }\n\n if (result.length === 0) {\n return [[encode(key, options), '=', encode(value, options)].join('')];\n }\n\n return [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n };\n\n default:\n return key => (result, value) => {\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [...result, encode(key, options)];\n }\n\n return [...result, [encode(key, options), '=', encode(value, options)].join('')];\n };\n }\n}\n\nfunction parserForArrayFormat(options) {\n let result;\n\n switch (options.arrayFormat) {\n case 'index':\n return (key, value, accumulator) => {\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n\n accumulator[key][result[1]] = value;\n };\n\n case 'bracket':\n return (key, value, accumulator) => {\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = [value];\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n\n case 'comma':\n case 'separator':\n return (key, value, accumulator) => {\n const isArray = typeof value === 'string' && value.split('').indexOf(options.arrayFormatSeparator) > -1;\n const newValue = isArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n accumulator[key] = newValue;\n };\n\n default:\n return (key, value, accumulator) => {\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n}\n\nfunction validateArrayFormatSeparator(value) {\n if (typeof value !== 'string' || value.length !== 1) {\n throw new TypeError('arrayFormatSeparator must be single character string');\n }\n}\n\nfunction encode(value, options) {\n if (options.encode) {\n return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n\n return value;\n}\n\nfunction decode(value, options) {\n if (options.decode) {\n return decodeComponent(value);\n }\n\n return value;\n}\n\nfunction keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n }\n\n if (typeof input === 'object') {\n return keysSorter(Object.keys(input)).sort((a, b) => Number(a) - Number(b)).map(key => input[key]);\n }\n\n return input;\n}\n\nfunction removeHash(input) {\n const hashStart = input.indexOf('#');\n\n if (hashStart !== -1) {\n input = input.slice(0, hashStart);\n }\n\n return input;\n}\n\nfunction getHash(url) {\n let hash = '';\n const hashStart = url.indexOf('#');\n\n if (hashStart !== -1) {\n hash = url.slice(hashStart);\n }\n\n return hash;\n}\n\nfunction extract(input) {\n input = removeHash(input);\n const queryStart = input.indexOf('?');\n\n if (queryStart === -1) {\n return '';\n }\n\n return input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n if (options.parseNumbers && !Number.isNaN(Number(value)) && typeof value === 'string' && value.trim() !== '') {\n value = Number(value);\n } else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n value = value.toLowerCase() === 'true';\n }\n\n return value;\n}\n\nfunction parse(input, options) {\n options = Object.assign({\n decode: true,\n sort: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ',',\n parseNumbers: false,\n parseBooleans: false\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n const formatter = parserForArrayFormat(options); // Create an object with no prototype\n\n const ret = Object.create(null);\n\n if (typeof input !== 'string') {\n return ret;\n }\n\n input = input.trim().replace(/^[?#&]/, '');\n\n if (!input) {\n return ret;\n }\n\n for (const param of input.split('&')) {\n let _splitOnFirst = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '='),\n _splitOnFirst2 = _slicedToArray(_splitOnFirst, 2),\n key = _splitOnFirst2[0],\n value = _splitOnFirst2[1]; // Missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n\n value = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n formatter(decode(key, options), value, ret);\n }\n\n for (const key of Object.keys(ret)) {\n const value = ret[key];\n\n if (typeof value === 'object' && value !== null) {\n for (const k of Object.keys(value)) {\n value[k] = parseValue(value[k], options);\n }\n } else {\n ret[key] = parseValue(value, options);\n }\n }\n\n if (options.sort === false) {\n return ret;\n }\n\n return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n const value = ret[key];\n\n if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n // Sort object keys, not values\n result[key] = keysSorter(value);\n } else {\n result[key] = value;\n }\n\n return result;\n }, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n if (!object) {\n return '';\n }\n\n options = Object.assign({\n encode: true,\n strict: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ','\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n\n const shouldFilter = key => options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === '';\n\n const formatter = encoderForArrayFormat(options);\n const objectCopy = {};\n\n for (const key of Object.keys(object)) {\n if (!shouldFilter(key)) {\n objectCopy[key] = object[key];\n }\n }\n\n const keys = Object.keys(objectCopy);\n\n if (options.sort !== false) {\n keys.sort(options.sort);\n }\n\n return keys.map(key => {\n const value = object[key];\n\n if (value === undefined) {\n return '';\n }\n\n if (value === null) {\n return encode(key, options);\n }\n\n if (Array.isArray(value)) {\n return value.reduce(formatter(key), []).join('&');\n }\n\n return encode(key, options) + '=' + encode(value, options);\n }).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (input, options) => {\n options = Object.assign({\n decode: true\n }, options);\n\n const _splitOnFirst3 = splitOnFirst(input, '#'),\n _splitOnFirst4 = _slicedToArray(_splitOnFirst3, 2),\n url = _splitOnFirst4[0],\n hash = _splitOnFirst4[1];\n\n return Object.assign({\n url: url.split('?')[0] || '',\n query: parse(extract(input), options)\n }, options && options.parseFragmentIdentifier && hash ? {\n fragmentIdentifier: decode(hash, options)\n } : {});\n};\n\nexports.stringifyUrl = (input, options) => {\n options = Object.assign({\n encode: true,\n strict: true\n }, options);\n const url = removeHash(input.url).split('?')[0] || '';\n const queryFromUrl = exports.extract(input.url);\n const parsedQueryFromUrl = exports.parse(queryFromUrl, {\n sort: false\n });\n const query = Object.assign(parsedQueryFromUrl, input.query);\n let queryString = exports.stringify(query, options);\n\n if (queryString) {\n queryString = `?${queryString}`;\n }\n\n let hash = getHash(input.url);\n\n if (input.fragmentIdentifier) {\n hash = `#${encode(input.fragmentIdentifier, options)}`;\n }\n\n return `${url}${queryString}${hash}`;\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","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago',\n //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return eo;\n});","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: function () {\n return '[Oggi a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextDay: function () {\n return '[Domani a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n nextWeek: function () {\n return 'dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastDay: function () {\n return '[Ieri a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[La scorsa] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n\n default:\n return '[Lo scorso] dddd [a' + (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") + ']LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return it;\n});","!function (e) {\n var t = e.Element.prototype;\n \"function\" != typeof t.matches && (t.matches = t.msMatchesSelector || t.mozMatchesSelector || t.webkitMatchesSelector || function (e) {\n for (var t = (this.document || this.ownerDocument).querySelectorAll(e), o = 0; t[o] && t[o] !== this;) ++o;\n\n return Boolean(t[o]);\n }), \"function\" != typeof t.closest && (t.closest = function (e) {\n for (var t = this; t && 1 === t.nodeType;) {\n if (t.matches(e)) return t;\n t = t.parentNode;\n }\n\n return null;\n });\n}(window);","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fo;\n});","/*\nTrix 1.3.0\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n\n function i(t) {\n if (\"object\" != typeof this) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n\n function o(t, e) {\n for (; 3 === t._state;) t = t._value;\n\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n if (e && (\"object\" == typeof e || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) o(t, t._deferreds[e]);\n\n t._deferreds = null;\n }\n\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n\n function c(t, e) {\n var n = !1;\n\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function (t) {\n \"undefined\" != typeof console && console && void 0;\n };\n\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == typeof s || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) i(r, e[r]);\n });\n }, i.resolve = function (t) {\n return t && \"object\" == typeof t && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) t[i].then(e, n);\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == typeof window.customElements,\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function () {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function (e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function (t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function (t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function (t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function (t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function (t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n\n for (var o, r = 0; r < i.length; r++) if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function () {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function () {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function (t) {\n var n = this.observer.records_,\n i = n.length;\n\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n\n n[i] = t;\n },\n addListeners: function () {\n this.addListeners_(this.target);\n },\n addListeners_: function (t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function () {\n this.removeListeners_(this.target);\n },\n removeListeners_: function (t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function (t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function () {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }, this);\n },\n handleEvent: function (t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function () {\n return Date.now() - t;\n }\n };\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function () {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function (t) {\n n.push(t);\n },\n o = function () {\n n.forEach(function (e) {\n e(t);\n });\n };\n\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) o = o.nextSibling;\n\n for (; o;) e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) e(i, n), i = i.olderShadowRoot;\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) i.import && r(i.import, e, n);\n\n e(t);\n }\n }\n\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) t();\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && void 0;\n\n for (var e = t.shadowRoot; e;) g(e), e = e.olderShadowRoot;\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) o = o.parentNode;\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n }\n\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && void 0;\n }\n\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) t = t.parentNode;\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n\n function m(t) {\n t = window.wrap(t), y.dom && void 0;\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && void 0;\n }\n\n function v(t) {\n A(t, m);\n }\n\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r.extends)) return n(e, r, i);\n }\n }\n\n function n(e, n, o) {\n return s.upgrade && void 0, n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && void 0, e;\n }\n\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e.native), t.__proto__ = e.prototype);\n }\n\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u.extends && (u.extends = u.extends.toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u.extends), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n\n function o(t) {\n for (var e = 0; e < C.length; e++) if (t === C[e]) return !0;\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e.extends).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t.extends, i = 0; e = t.ancestry[i]; i++) n = e.is && e.tag;\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n\n r || void 0, t.native = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t.instanceof = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function () {};\n\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t.instanceof = function (t, e) {\n return t instanceof e;\n };\n } else i();\n\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t.import && s(wrap(t.import));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.3.0\",\n ZERO_WIDTH_SPACE: \"\\ufeff\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\ufffc\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) if (n = i[t], !(n in InputEvent.prototype)) return !1;\n\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function (t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n for (e in i) n = i[e], o.push(e + \"=\" + n);\n\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n\n for (e in t) n = t[e], this[e] = n;\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function (t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function (t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function (t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function (t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n summarizeStringChange: function (t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function (n, i) {\n var o, r, s, a, u;\n return n.isEqualTo(i) ? [\"\", \"\"] : (r = t(n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = n.codepoints.slice(0, u).concat(n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function (t, e) {\n var n, i, o;\n\n for (n = 0, i = t.length, o = e.length; i > n && t.charAt(n).isEqualTo(e.charAt(n));) n++;\n\n for (; i > n + 1 && t.charAt(i - 1).isEqualTo(e.charAt(o - 1));) i--, o--;\n\n return {\n utf16String: t.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function (t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) i = t[e], n[e] = i;\n\n return n;\n },\n objectsAreEqual: function (t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n for (n in t) if (i = t[n], i !== e[n]) return !1;\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function (t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) if (r = t[i], r !== e[i]) return !1;\n\n return !0;\n },\n arrayStartsWith: function (t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function () {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) p = t[r], o.add(p);\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) p = e[s], i.add(p), o.has(p) || n.push(p);\n\n for (a = 0, l = t.length; l > a; a++) p = t[a], i.has(p) || h.push(p);\n\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function () {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function (t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function () {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function (t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function () {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function () {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) n = i[t].listAttribute, null != n && o.push(n);\n\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function (n, i) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, s = function (t) {\n var n;\n return null != d && 0 === --d && s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, s.destroy = function () {\n return r.removeEventListener(n, s, f);\n }, r.addEventListener(n, s, f), s;\n },\n handleEventOnce: function (t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function (n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function (t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function (t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) t = t.parentNode;\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function (t) {\n for (; null != t ? t.firstElementChild : void 0;) t = t.firstElementChild;\n\n return t;\n },\n innerElementIsActive: function (t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function (t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function (t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function (t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function (t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) e++;\n\n return e;\n }\n },\n removeNode: function (t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function (t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function (t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function (t, e) {\n var n, i, o, r, s, a, u, c, l, h, p, d, f, g;\n\n if (null == e && (e = {}), \"object\" == typeof t ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, o = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n l = e.attributes;\n\n for (a in l) g = l[a], o.setAttribute(a, g);\n }\n\n if (e.style) {\n h = e.style;\n\n for (a in h) g = h[a], o.style[a] = g;\n }\n\n if (e.data) {\n p = e.data;\n\n for (a in p) g = p[a], o.dataset[a] = g;\n }\n\n if (e.className) for (d = e.className.split(\" \"), r = 0, u = d.length; u > r; r++) i = d[r], o.classList.add(i);\n if (e.textContent && (o.textContent = e.textContent), e.childNodes) for (f = [].concat(e.childNodes), s = 0, c = f.length; c > s; s++) n = f[s], o.appendChild(n);\n return o;\n },\n getBlockTagNames: function () {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) n = i[t].tagName, n && o.push(n);\n\n return o;\n }();\n },\n nodeIsBlockContainer: function (t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function (t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function (t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function (t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function (t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function (t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function (t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function (t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function (t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function (t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function (t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function (e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function (t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function (t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function (e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function () {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function (t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function (t) {\n var e, n, i;\n n = {};\n\n for (e in t) i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n\n return n;\n }, a = function () {\n var t;\n return t = function (t) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) i = r[n], e[i] = t[i], delete t[i];\n\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function () {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var n;\n return n = function () {\n return \"object\" == typeof Reflect ? Reflect.construct(HTMLElement, [], n) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(n.prototype, HTMLElement.prototype), Object.setPrototypeOf(n, HTMLElement), Object.defineProperties(n.prototype, e), window.customElements.define(t, n), n;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function () {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function () {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function (t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function (t) {\n return n(t.startContainer) || n(t.endContainer);\n }, n = function (t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function (t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function (e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {\n e.extend({\n RTL_PATTERN: /[\\u05BE\\u05C0\\u05C3\\u05D0-\\u05EA\\u05F0-\\u05F4\\u061B\\u061F\\u0621-\\u063A\\u0640-\\u064A\\u066D\\u0671-\\u06B7\\u06BA-\\u06BE\\u06C0-\\u06CE\\u06D0-\\u06D5\\u06E5\\u06E6\\u200F\\u202B\\u202E\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE72\\uFE74\\uFE76-\\uFEFC]/,\n getDirection: function () {\n var t, n, i, o;\n return n = e.makeElement(\"input\", {\n dir: \"auto\",\n name: \"x\",\n dirName: \"x.dir\"\n }), t = e.makeElement(\"form\"), t.appendChild(n), i = function () {\n try {\n return new FormData(t).has(n.dirName);\n } catch (e) {}\n }(), o = function () {\n try {\n return n.matches(\":dir(ltr),:dir(rtl)\");\n } catch (t) {}\n }(), i ? function (e) {\n return n.value = e, new FormData(t).get(n.dirName);\n } : o ? function (t) {\n return n.value = t, n.matches(\":dir(rtl)\") ? \"rtl\" : \"ltr\";\n } : function (t) {\n var n;\n return n = t.trim().charAt(0), e.RTL_PATTERN.test(n) ? \"rtl\" : \"ltr\";\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n\n for (r = {}, n = 0, o = t.length; o > n; n++) i = t[n], this.has(i) && (r[i] = this.values[i]);\n\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) n = o[e], this.values[n] === t.values[n] && s.push(n);\n\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n\n for (t in i) n = i[t], e.push(t, n);\n\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function (t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function (t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) o = e[n], i[n] = o;\n\n return i;\n }, s = function (t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) i = s[n], i !== e && (r[i] = t[i]);\n\n return r;\n }, r = function (t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function (t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) i = o[t], e.push(i.getCacheKey());\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.add(e);\n\n return t;\n }, e = function (t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\ud83d\\udc7c\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\ud83d\\udc7c\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n\n for (o = [], e = 0, i = t.length; i > e;) r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n\n for (r = [], e = 0, o = t.length; o > e; e++) i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function (n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function (n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function (e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t.byte;\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function (t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function (t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function (t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function (t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function (s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) c = A[h], e.removeNode(c);\n\n for (p = 0, m = o.length; m > p; p++) for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) c = C[d], c.removeAttribute(a);\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) w = u[b], c.setAttribute(b, w);\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function (t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function (t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function (t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function (t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function () {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function () {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function (t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function () {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.cloneNode(!0));\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) if (o = i[e], o.object === t) return o;\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) r = s[t], n.push(r.object.getCacheKey());\n\n return n;\n }(), o = [];\n\n for (e in t) i.call(n, e) < 0 && o.push(delete t[e]);\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) r = a[n], t.appendChild(r);\n\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) c.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n\n var h, p, d, f;\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n\n for (o = [], e = 0, n = t.length; n > e; e++) i = t[e], this.mutationIsSignificant(i) && o.push(i);\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) if (i = o[e], this.nodeIsSignificant(i)) return !0;\n\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) e = u[r], l.call(n, e) < 0 && n.push(e);\n\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) i = o[e], i.type === t && r.push(i);\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = h(t), d = h(u)), {\n additions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) l = p[i], l !== d[i] && n.push(o(l));\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) l = d[i], l !== p[i] && n.push(o(l));\n\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, h = function (t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, h(i.childNodes));\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n\n try {\n e.abort();\n } catch (i) {}\n\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n for (i in this.events) t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(new e.FileVerificationOperation(n));\n\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r.prototype.createLinkHTML = function (t, e) {\n var n;\n return n = document.createElement(\"a\"), n.href = t, n.textContent = null != e ? e : t, n.outerHTML;\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) g.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n for (e in t) n = t[e], this.inputSummary[e] = n;\n\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function (t) {\n var n, i, o, r, s, c, l, h, p;\n\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) l = i[e], t[l + \"Key\"] && o.push(l);\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function (t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function (t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function (t) {\n return t.preventDefault();\n },\n dragstart: function (t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function (t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function (t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function (t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function (t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D, L;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"text/html\", L = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, l.html = this.createLinkHTML(a, L), null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: L,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertHTML(l.html), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function (t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function (t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function (t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function () {\n return this.inputSummary.didInput = !0;\n },\n input: function (t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function () {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function (t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function (t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function (t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function (t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function (t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function (t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function () {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) r = o[e], s[r] = !0;\n\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function (t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function (t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n\n return !1;\n }\n\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function (t) {\n var e, i, o, r;\n\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function (t) {\n var e, n, i, o, r, s, a, u, c;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), n = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (i = this.delegate) && i.inputControllerWillPaste(n), null != (o = this.responder) && o.insertString(n.string), this.render(), null != (r = this.delegate) ? r.inputControllerDidPaste(n) : void 0) : (e = null != (s = t.clipboardData) ? s.getData(\"URL\") : void 0) ? (t.preventDefault(), n = {\n type: \"text/html\",\n html: this.createLinkHTML(e)\n }, null != (a = this.delegate) && a.inputControllerWillPaste(n), null != (u = this.responder) && u.insertHTML(n.html), this.render(), null != (c = this.delegate) ? c.inputControllerDidPaste(n) : void 0) : void 0;\n },\n beforeinput: function (t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function () {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function (t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function (t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function (t) {\n var e, n;\n return this.dragging && (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) ? (this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0) : void 0;\n },\n drop: function (t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function () {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function () {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function () {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function () {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function () {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function () {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function () {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function () {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function () {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function () {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function () {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function () {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function () {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function () {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function () {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function () {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function () {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function () {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function () {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function () {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function () {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function () {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function () {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n\n return i;\n });\n },\n formatSetBlockTextDirection: function () {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function () {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function () {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function () {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function () {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function () {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function () {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function () {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function () {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function () {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function () {\n var n, i, o, r, s, a, u, c, l, h, p;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (s.type = \"text/html\", p = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, s.html = this.createLinkHTML(i, p), null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function () {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function () {\n return this.insertString(\"\\n\");\n },\n insertLink: function () {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function () {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function () {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function () {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function () {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function () {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function () {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function (t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function (t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function (t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function (t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function (t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function (t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n l = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) h.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n h = {}.hasOwnProperty;\n\n n = e.defer, i = e.handleEvent, s = e.makeElement, u = e.tagName, a = e.config, r = a.lang, t = a.css, o = a.keyNames, e.AttachmentEditorController = function (a) {\n function h(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = c(this.didBlurCaption, this), this.didChangeCaption = c(this.didChangeCaption, this), this.didInputCaption = c(this.didInputCaption, this), this.didKeyDownCaption = c(this.didKeyDownCaption, this), this.didClickActionButton = c(this.didClickActionButton, this), this.didClickToolbar = c(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === u(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var p;\n return l(h, a), p = function (t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, h.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, h.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) e();\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, h.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, h.prototype.makeElementMutable = p(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), h.prototype.addToolbar = p(function () {\n var n;\n return n = s({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n },\n childNodes: s({\n tagName: \"div\",\n className: \"trix-button-row\",\n childNodes: s({\n tagName: \"span\",\n className: \"trix-button-group trix-button-group--actions\",\n childNodes: s({\n tagName: \"button\",\n className: \"trix-button trix-button--remove\",\n textContent: r.remove,\n attributes: {\n title: r.remove\n },\n data: {\n trixAction: \"remove\"\n }\n })\n })\n })\n }), this.attachment.isPreviewable() && n.appendChild(s({\n tagName: \"div\",\n className: t.attachmentMetadataContainer,\n childNodes: s({\n tagName: \"span\",\n className: t.attachmentMetadata,\n childNodes: [s({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: this.attachment.getFilename(),\n attributes: {\n title: this.attachment.getFilename()\n }\n }), s({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: this.attachment.getFormattedFilesize()\n })]\n })\n })), i(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), i(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), h.prototype.installCaptionEditor = p(function () {\n var o, a, u, c, l;\n return c = s({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: r.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, o = function () {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, i(\"input\", {\n onElement: c,\n withCallback: o\n }), i(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), i(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), i(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), i(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), a = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", a.appendChild(c), a.appendChild(l), a.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(a, u), o(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function () {\n return e.removeNode(a), u.style.display = null;\n }\n };\n }), h.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, h.prototype.didClickActionButton = function (t) {\n var e, n;\n\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, h.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === o[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, h.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, h.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, h.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, h;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) u = c[o], r.appendChild(u);\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function (t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function (t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) r = s[n], i.appendChild(r);\n\n s = [e];\n }\n\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n\n for (r in a) if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n\n for (r in u) l = u[r], c[r] = l;\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) l = c[r], e.style[r] = l;\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n\n return o;\n }, o = function (t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h, p, d;\n if (o = document.createComment(\"block\"), c = [o], this.block.isEmpty() ? c.push(i(\"br\")) : (p = null != (l = n(this.block.getLastAttribute())) ? l.text : void 0, d = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: p\n }), c.push.apply(c, d.getNodes()), this.shouldAddExtraNewlineElement() && c.push(i(\"br\"))), this.attributes.length) return c;\n\n for (h = e.config.blockAttributes[\"default\"].tagName, this.block.isRTL() && (t = {\n dir: \"rtl\"\n }), r = i({\n tagName: h,\n attributes: t\n }), s = 0, a = c.length; a > s; s++) u = c[s], r.appendChild(u);\n\n return [r];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a, u;\n return o = this.attributes[e], u = n(o).tagName, 0 === e && this.block.isRTL() && (r = {\n dir: \"rtl\"\n }), \"attachmentGallery\" === o && (a = this.block.getBlockBreakPosition(), s = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + a), i({\n tagName: u,\n className: s,\n attributes: r\n });\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(this.shadowElement.appendChild(o));\n\n return i;\n }.call(this));\n\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) this.element.removeChild(this.element.lastChild);\n\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) s = u[n], e.appendChild(s.cloneNode(!0));\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n\n return e;\n }, a = function (t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function (t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function (t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) u.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, d(e)));\n\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) e = o[n], r.push(t(e, f(e)));\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) n = u[o], n.removeAttribute(\"disabled\");\n\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function (t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function (t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function (t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) i.call(e, o) && (t[o] = e[o]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) o = r[n], s.push(t(o, n));\n\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) e = o[n], t(e) && r.push(e);\n\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) t = o[n], e += t.getLength();\n\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function (t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.inspect());\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function (t) {\n return t[0];\n }, r = function (t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n\n for (o = [], e = 0, i = t.length; i > e; e++) n = t[e], n.isEmpty() || o.push(n);\n\n return o;\n }());\n }\n\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Piece.fromJSON(n));\n\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.getAttributes());\n\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) n--;\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) o++;\n\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], null != n.attachment && o.push(n);\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.toConsole()));\n\n return o;\n }.call(this));\n }, i.prototype.getDirection = function () {\n return e.getDirection(this.toString());\n }, i.prototype.isRTL = function () {\n return \"rtl\" === this.getDirection();\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) a.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n },\n c = [].slice;\n\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).nestable && r.push(t);\n\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) t = o[e], i(t).listAttribute && r.push(t);\n\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getDirection = function () {\n return this.text.getDirection();\n }, a.prototype.isRTL = function () {\n return this.text.isRTL();\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes() && this.getDirection() === t.getDirection();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], !(n !== r || i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0) || this.getDirection() !== t.getDirection() && !t.isEmpty());\n }, h = function (t) {\n return t = y(t), t = l(t);\n }, y = function (t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = i.length; e > t; t++) s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function (t) {\n return m(t) ? t : t.appendText(p);\n }, m = function (t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function (t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function (t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function (t) {\n return t.slice(-1)[0];\n }, g = function (t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) r.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n },\n a = [].slice;\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = l), this.body = h(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), l = \"javascript:\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n p(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n\n for (t = 0, n = r.length; n > t; t++) o = r[t], e.removeNode(o);\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n\n return this.body;\n }, p = function (e) {\n return (null != e ? e.nodeType : void 0) !== Node.ELEMENT_NODE || t(e) ? void 0 : \"script\" === n(e) || \"false\" === e.getAttribute(\"data-trix-serialize\");\n }, h = function (t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) n = r[i], e.body.appendChild(n);\n\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: w\n }); n.nextNode();) this.processNode(n.currentNode);\n\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, w = function (t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement && this.isBlockElement(e.previousSibling) ? this.appendStringWithAttributes(\"\\n\") : i !== this.containerElement && !this.isBlockElement(i) || (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0)) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i);\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if ((!this.isInsignificantTextNode(e.firstChild) || !this.isBlockElement(e.firstElementChild)) && (n = this.getBlockAttributes(e), e.firstChild)) return o && t(n, this.currentBlock.attributes) ? this.appendStringWithAttributes(\"\\n\") : (this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e);\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = C(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = y(t), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = A(t);\n\n for (n in i) r = i[n], e[n] = r;\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function (t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function (t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function (t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g, m;\n r = {}, d = e.config.textAttributes;\n\n for (n in d) if (u = d[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (m = u.parser(t)) {\n for (i = !1, f = this.findBlockElementAncestors(t), c = 0, p = f.length; p > c; c++) if (s = f[c], u.parser(s) === m) {\n i = !0;\n break;\n }\n\n i || (r[n] = m);\n }\n } else u.styleProperty && (m = t.style[u.styleProperty]) && (r[n] = m);\n\n if (a(t) && (l = t.getAttribute(\"data-trix-attributes\"))) {\n g = JSON.parse(l);\n\n for (h in g) m = g[h], r[h] = m;\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n\n return e;\n }, y = function (t) {\n return JSON.parse(t.getAttribute(\"data-trix-attachment\"));\n }, A = function (t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!x(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function (t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, x = function (t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : b(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), b(t);\n }, b = function (t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, C = function (t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function (t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function (t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) n = t[i], r.push(e.Block.fromJSON(n));\n\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n\n for (c in t) d = t[c], d.inheritable && n.push(c);\n\n return n;\n }();\n\n for (c in i) d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) s.push(e[o]);\n\n return s;\n }();\n\n return t;\n }, l = function (t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) if (e = o[n], e.id === t) return e;\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) n = i[t], o.push(n.attachment);\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) if (i = o[e], i.attachment === t) return i;\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function (e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(t.text);\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) o = i[t], n.push.apply(n, o.getPieces());\n\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) t = i[e], o.push(JSON.parse(t.text.toConsole()));\n\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) p.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n\n for (i = [], r = 0, s = t.length; s > r; r++) o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) if (t = o[n], !t.hasContent()) return !1;\n\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) n++;\n\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n\n for (e in n) i = n[e], i !== !1 && r(e) && (t[e] = i);\n\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n\n for (p = [], o = 0, s = t.length; s > o; o++) e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function (t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n };\n\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function (t, e) {\n function i() {\n this.constructor = t;\n }\n\n for (var o in e) n.call(e, o) && (t[o] = e[o]);\n\n return i.prototype = e.prototype, t.prototype = new i(), t.__super__ = e.prototype, t;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) e = t[n], this.manageAttachment(e);\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) t = n[e], i.push(t);\n\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n\n return [e, u];\n }\n\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e)););\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n\n return i;\n }, d = function (t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function (t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function (t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function (t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) o.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) e = o[n], e !== t && r.push(e);\n\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) o = n[t], i.push(o.selectionDidChange());\n\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function (t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function (t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) d.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) n = i[o], n.destroy();\n\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function (t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) s.call(e, i) && (t[i] = e[i]);\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.isFocusedInvisibly() && this.setLocationRange({\n index: 0,\n offset: 0\n }), this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function () {\n return this.editor.canUndo();\n },\n perform: function () {\n return this.editor.undo();\n }\n },\n redo: {\n test: function () {\n return this.editor.canRedo();\n },\n perform: function () {\n return this.editor.redo();\n }\n },\n link: {\n test: function () {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function () {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function () {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function () {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function () {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function () {\n return !0;\n },\n perform: function () {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n\n for (t in this.actions) e[t] = this.canInvokeAction(t);\n\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function (t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u.prototype.isFocusedInvisibly = function () {\n return this.isFocused() && !this.getLocationRange();\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) if (e in this && this[e] === t) return e;\n\n return -1;\n };\n\n n = e.browser, s = e.makeElement, a = e.triggerEvent, o = e.handleEvent, r = e.handleEventOnce, i = e.findClosestElementFromNode, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var c, l, h, p, d, f, g, m;\n return f = 0, l = function (t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, g = function (t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), r(\"focus\", {\n onElement: t,\n withCallback: function () {\n return h(t);\n }\n }));\n }, c = function (t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, h = function (t) {\n return d(t), m(t);\n }, d = function (t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), o(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, m = function () {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, p = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + p.display + \" !important;\\n width: \" + p.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function () {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++f), this.trixId);\n }\n },\n labels: {\n get: function () {\n var t, e, n;\n return e = [], this.id && this.ownerDocument && e.push.apply(e, this.ownerDocument.querySelectorAll(\"label[for='\" + this.id + \"']\")), (t = i(this, {\n matchingSelector: \"label\"\n })) && ((n = t.control) === this || null === n) && e.push(t), e;\n }\n },\n toolbarElement: {\n get: function () {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = s(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function () {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = s(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function () {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function () {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function (t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function (t, e) {\n return this.editorController ? a(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function (t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function () {\n return g(this), c(this);\n },\n connect: function () {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (a(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return a(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), this.registerClickListener(), l(this));\n },\n disconnect: function () {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener(), this.unregisterClickListener();\n },\n registerResetListener: function () {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function () {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n registerClickListener: function () {\n return this.clickListener = this.clickBubbled.bind(this), window.addEventListener(\"click\", this.clickListener, !1);\n },\n unregisterClickListener: function () {\n return window.removeEventListener(\"click\", this.clickListener, !1);\n },\n resetBubbled: function (t) {\n var e;\n if (!t.defaultPrevented && t.target === (null != (e = this.inputElement) ? e.form : void 0)) return this.reset();\n },\n clickBubbled: function (t) {\n var e;\n if (!(t.defaultPrevented || this.contains(t.target) || !(e = i(t.target, {\n matchingSelector: \"label\"\n })) || u.call(this.labels, e) < 0)) return this.focus();\n },\n reset: function () {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == typeof module && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","'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 toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.github.io/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\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 = new C(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","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'],\n monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'],\n weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return gd;\n});","(function (global, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type,\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n this.xhr.setRequestHeader(\"X-CSRF-Token\", getMetaValue(\"csrf-token\"));\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings.delete(binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function () {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function () {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function () {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function (e) {\n return \"click\";\n },\n \"button\": function (e) {\n return \"click\";\n },\n \"form\": function (e) {\n return \"submit\";\n },\n \"input\": function (e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function (e) {\n return \"change\";\n },\n \"textarea\": function (e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function () {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function () {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function () {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function () {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function () {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function () {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function () {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function () {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function () {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function () {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.delete = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function () {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.delete = function (key, value) {\n _super.prototype.delete.call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function () {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function () {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function () {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function () {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function () {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function () {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function () {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function () {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function () {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function () {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function () {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function () {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function () {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function () {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function () {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function () {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function () {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function () {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype.delete = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\" + char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function () {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function () {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function () {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function () {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function () {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function () {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function () {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function () {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function () {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {};\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function () {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function () {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function () {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function () {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function () {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function () {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function () {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function () {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function () {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\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 */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nexport var cssClasses = {\n // Ripple is a special case where the \"root\" component is really a \"mixin\" of sorts,\n // given that it's an 'upgrade' to an existing component. That being said it is the root\n // CSS class that all other CSS classes derive from.\n BG_FOCUSED: 'mdc-ripple-upgraded--background-focused',\n FG_ACTIVATION: 'mdc-ripple-upgraded--foreground-activation',\n FG_DEACTIVATION: 'mdc-ripple-upgraded--foreground-deactivation',\n ROOT: 'mdc-ripple-upgraded',\n UNBOUNDED: 'mdc-ripple-upgraded--unbounded'\n};\nexport var strings = {\n VAR_FG_SCALE: '--mdc-ripple-fg-scale',\n VAR_FG_SIZE: '--mdc-ripple-fg-size',\n VAR_FG_TRANSLATE_END: '--mdc-ripple-fg-translate-end',\n VAR_FG_TRANSLATE_START: '--mdc-ripple-fg-translate-start',\n VAR_LEFT: '--mdc-ripple-left',\n VAR_TOP: '--mdc-ripple-top'\n};\nexport var numbers = {\n DEACTIVATION_TIMEOUT_MS: 225,\n FG_DEACTIVATION_MS: 150,\n INITIAL_ORIGIN_SCALE: 0.6,\n PADDING: 10,\n TAP_DELAY_MS: 300\n};","/**\n * @license\n * Copyright 2016 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { __assign, __extends } from \"tslib\";\nimport { MDCFoundation } from '@material/base/foundation';\nimport { cssClasses, numbers, strings } from './constants';\nimport { getNormalizedEventCoords } from './util'; // Activation events registered on the root element of each instance for activation\n\nvar ACTIVATION_EVENT_TYPES = ['touchstart', 'pointerdown', 'mousedown', 'keydown']; // Deactivation events registered on documentElement when a pointer-related down event occurs\n\nvar POINTER_DEACTIVATION_EVENT_TYPES = ['touchend', 'pointerup', 'mouseup', 'contextmenu']; // simultaneous nested activations\n\nvar activatedTargets = [];\n\nvar MDCRippleFoundation =\n/** @class */\nfunction (_super) {\n __extends(MDCRippleFoundation, _super);\n\n function MDCRippleFoundation(adapter) {\n var _this = _super.call(this, __assign(__assign({}, MDCRippleFoundation.defaultAdapter), adapter)) || this;\n\n _this.activationAnimationHasEnded_ = false;\n _this.activationTimer_ = 0;\n _this.fgDeactivationRemovalTimer_ = 0;\n _this.fgScale_ = '0';\n _this.frame_ = {\n width: 0,\n height: 0\n };\n _this.initialSize_ = 0;\n _this.layoutFrame_ = 0;\n _this.maxRadius_ = 0;\n _this.unboundedCoords_ = {\n left: 0,\n top: 0\n };\n _this.activationState_ = _this.defaultActivationState_();\n\n _this.activationTimerCallback_ = function () {\n _this.activationAnimationHasEnded_ = true;\n\n _this.runDeactivationUXLogicIfReady_();\n };\n\n _this.activateHandler_ = function (e) {\n return _this.activate_(e);\n };\n\n _this.deactivateHandler_ = function () {\n return _this.deactivate_();\n };\n\n _this.focusHandler_ = function () {\n return _this.handleFocus();\n };\n\n _this.blurHandler_ = function () {\n return _this.handleBlur();\n };\n\n _this.resizeHandler_ = function () {\n return _this.layout();\n };\n\n return _this;\n }\n\n Object.defineProperty(MDCRippleFoundation, \"cssClasses\", {\n get: function () {\n return cssClasses;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"strings\", {\n get: function () {\n return strings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"numbers\", {\n get: function () {\n return numbers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MDCRippleFoundation, \"defaultAdapter\", {\n get: function () {\n return {\n addClass: function () {\n return undefined;\n },\n browserSupportsCssVars: function () {\n return true;\n },\n computeBoundingRect: function () {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: 0,\n height: 0\n };\n },\n containsEventTarget: function () {\n return true;\n },\n deregisterDocumentInteractionHandler: function () {\n return undefined;\n },\n deregisterInteractionHandler: function () {\n return undefined;\n },\n deregisterResizeHandler: function () {\n return undefined;\n },\n getWindowPageOffset: function () {\n return {\n x: 0,\n y: 0\n };\n },\n isSurfaceActive: function () {\n return true;\n },\n isSurfaceDisabled: function () {\n return true;\n },\n isUnbounded: function () {\n return true;\n },\n registerDocumentInteractionHandler: function () {\n return undefined;\n },\n registerInteractionHandler: function () {\n return undefined;\n },\n registerResizeHandler: function () {\n return undefined;\n },\n removeClass: function () {\n return undefined;\n },\n updateCssVariable: function () {\n return undefined;\n }\n };\n },\n enumerable: true,\n configurable: true\n });\n\n MDCRippleFoundation.prototype.init = function () {\n var _this = this;\n\n var supportsPressRipple = this.supportsPressRipple_();\n this.registerRootHandlers_(supportsPressRipple);\n\n if (supportsPressRipple) {\n var _a = MDCRippleFoundation.cssClasses,\n ROOT_1 = _a.ROOT,\n UNBOUNDED_1 = _a.UNBOUNDED;\n requestAnimationFrame(function () {\n _this.adapter.addClass(ROOT_1);\n\n if (_this.adapter.isUnbounded()) {\n _this.adapter.addClass(UNBOUNDED_1); // Unbounded ripples need layout logic applied immediately to set coordinates for both shade and ripple\n\n\n _this.layoutInternal_();\n }\n });\n }\n };\n\n MDCRippleFoundation.prototype.destroy = function () {\n var _this = this;\n\n if (this.supportsPressRipple_()) {\n if (this.activationTimer_) {\n clearTimeout(this.activationTimer_);\n this.activationTimer_ = 0;\n this.adapter.removeClass(MDCRippleFoundation.cssClasses.FG_ACTIVATION);\n }\n\n if (this.fgDeactivationRemovalTimer_) {\n clearTimeout(this.fgDeactivationRemovalTimer_);\n this.fgDeactivationRemovalTimer_ = 0;\n this.adapter.removeClass(MDCRippleFoundation.cssClasses.FG_DEACTIVATION);\n }\n\n var _a = MDCRippleFoundation.cssClasses,\n ROOT_2 = _a.ROOT,\n UNBOUNDED_2 = _a.UNBOUNDED;\n requestAnimationFrame(function () {\n _this.adapter.removeClass(ROOT_2);\n\n _this.adapter.removeClass(UNBOUNDED_2);\n\n _this.removeCssVars_();\n });\n }\n\n this.deregisterRootHandlers_();\n this.deregisterDeactivationHandlers_();\n };\n /**\n * @param evt Optional event containing position information.\n */\n\n\n MDCRippleFoundation.prototype.activate = function (evt) {\n this.activate_(evt);\n };\n\n MDCRippleFoundation.prototype.deactivate = function () {\n this.deactivate_();\n };\n\n MDCRippleFoundation.prototype.layout = function () {\n var _this = this;\n\n if (this.layoutFrame_) {\n cancelAnimationFrame(this.layoutFrame_);\n }\n\n this.layoutFrame_ = requestAnimationFrame(function () {\n _this.layoutInternal_();\n\n _this.layoutFrame_ = 0;\n });\n };\n\n MDCRippleFoundation.prototype.setUnbounded = function (unbounded) {\n var UNBOUNDED = MDCRippleFoundation.cssClasses.UNBOUNDED;\n\n if (unbounded) {\n this.adapter.addClass(UNBOUNDED);\n } else {\n this.adapter.removeClass(UNBOUNDED);\n }\n };\n\n MDCRippleFoundation.prototype.handleFocus = function () {\n var _this = this;\n\n requestAnimationFrame(function () {\n return _this.adapter.addClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);\n });\n };\n\n MDCRippleFoundation.prototype.handleBlur = function () {\n var _this = this;\n\n requestAnimationFrame(function () {\n return _this.adapter.removeClass(MDCRippleFoundation.cssClasses.BG_FOCUSED);\n });\n };\n /**\n * We compute this property so that we are not querying information about the client\n * until the point in time where the foundation requests it. This prevents scenarios where\n * client-side feature-detection may happen too early, such as when components are rendered on the server\n * and then initialized at mount time on the client.\n */\n\n\n MDCRippleFoundation.prototype.supportsPressRipple_ = function () {\n return this.adapter.browserSupportsCssVars();\n };\n\n MDCRippleFoundation.prototype.defaultActivationState_ = function () {\n return {\n activationEvent: undefined,\n hasDeactivationUXRun: false,\n isActivated: false,\n isProgrammatic: false,\n wasActivatedByPointer: false,\n wasElementMadeActive: false\n };\n };\n /**\n * supportsPressRipple Passed from init to save a redundant function call\n */\n\n\n MDCRippleFoundation.prototype.registerRootHandlers_ = function (supportsPressRipple) {\n var _this = this;\n\n if (supportsPressRipple) {\n ACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter.registerInteractionHandler(evtType, _this.activateHandler_);\n });\n\n if (this.adapter.isUnbounded()) {\n this.adapter.registerResizeHandler(this.resizeHandler_);\n }\n }\n\n this.adapter.registerInteractionHandler('focus', this.focusHandler_);\n this.adapter.registerInteractionHandler('blur', this.blurHandler_);\n };\n\n MDCRippleFoundation.prototype.registerDeactivationHandlers_ = function (evt) {\n var _this = this;\n\n if (evt.type === 'keydown') {\n this.adapter.registerInteractionHandler('keyup', this.deactivateHandler_);\n } else {\n POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter.registerDocumentInteractionHandler(evtType, _this.deactivateHandler_);\n });\n }\n };\n\n MDCRippleFoundation.prototype.deregisterRootHandlers_ = function () {\n var _this = this;\n\n ACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter.deregisterInteractionHandler(evtType, _this.activateHandler_);\n });\n this.adapter.deregisterInteractionHandler('focus', this.focusHandler_);\n this.adapter.deregisterInteractionHandler('blur', this.blurHandler_);\n\n if (this.adapter.isUnbounded()) {\n this.adapter.deregisterResizeHandler(this.resizeHandler_);\n }\n };\n\n MDCRippleFoundation.prototype.deregisterDeactivationHandlers_ = function () {\n var _this = this;\n\n this.adapter.deregisterInteractionHandler('keyup', this.deactivateHandler_);\n POINTER_DEACTIVATION_EVENT_TYPES.forEach(function (evtType) {\n _this.adapter.deregisterDocumentInteractionHandler(evtType, _this.deactivateHandler_);\n });\n };\n\n MDCRippleFoundation.prototype.removeCssVars_ = function () {\n var _this = this;\n\n var rippleStrings = MDCRippleFoundation.strings;\n var keys = Object.keys(rippleStrings);\n keys.forEach(function (key) {\n if (key.indexOf('VAR_') === 0) {\n _this.adapter.updateCssVariable(rippleStrings[key], null);\n }\n });\n };\n\n MDCRippleFoundation.prototype.activate_ = function (evt) {\n var _this = this;\n\n if (this.adapter.isSurfaceDisabled()) {\n return;\n }\n\n var activationState = this.activationState_;\n\n if (activationState.isActivated) {\n return;\n } // Avoid reacting to follow-on events fired by touch device after an already-processed user interaction\n\n\n var previousActivationEvent = this.previousActivationEvent_;\n var isSameInteraction = previousActivationEvent && evt !== undefined && previousActivationEvent.type !== evt.type;\n\n if (isSameInteraction) {\n return;\n }\n\n activationState.isActivated = true;\n activationState.isProgrammatic = evt === undefined;\n activationState.activationEvent = evt;\n activationState.wasActivatedByPointer = activationState.isProgrammatic ? false : evt !== undefined && (evt.type === 'mousedown' || evt.type === 'touchstart' || evt.type === 'pointerdown');\n var hasActivatedChild = evt !== undefined && activatedTargets.length > 0 && activatedTargets.some(function (target) {\n return _this.adapter.containsEventTarget(target);\n });\n\n if (hasActivatedChild) {\n // Immediately reset activation state, while preserving logic that prevents touch follow-on events\n this.resetActivationState_();\n return;\n }\n\n if (evt !== undefined) {\n activatedTargets.push(evt.target);\n this.registerDeactivationHandlers_(evt);\n }\n\n activationState.wasElementMadeActive = this.checkElementMadeActive_(evt);\n\n if (activationState.wasElementMadeActive) {\n this.animateActivation_();\n }\n\n requestAnimationFrame(function () {\n // Reset array on next frame after the current event has had a chance to bubble to prevent ancestor ripples\n activatedTargets = [];\n\n if (!activationState.wasElementMadeActive && evt !== undefined && (evt.key === ' ' || evt.keyCode === 32)) {\n // If space was pressed, try again within an rAF call to detect :active, because different UAs report\n // active states inconsistently when they're called within event handling code:\n // - https://bugs.chromium.org/p/chromium/issues/detail?id=635971\n // - https://bugzilla.mozilla.org/show_bug.cgi?id=1293741\n // We try first outside rAF to support Edge, which does not exhibit this problem, but will crash if a CSS\n // variable is set within a rAF callback for a submit button interaction (#2241).\n activationState.wasElementMadeActive = _this.checkElementMadeActive_(evt);\n\n if (activationState.wasElementMadeActive) {\n _this.animateActivation_();\n }\n }\n\n if (!activationState.wasElementMadeActive) {\n // Reset activation state immediately if element was not made active.\n _this.activationState_ = _this.defaultActivationState_();\n }\n });\n };\n\n MDCRippleFoundation.prototype.checkElementMadeActive_ = function (evt) {\n return evt !== undefined && evt.type === 'keydown' ? this.adapter.isSurfaceActive() : true;\n };\n\n MDCRippleFoundation.prototype.animateActivation_ = function () {\n var _this = this;\n\n var _a = MDCRippleFoundation.strings,\n VAR_FG_TRANSLATE_START = _a.VAR_FG_TRANSLATE_START,\n VAR_FG_TRANSLATE_END = _a.VAR_FG_TRANSLATE_END;\n var _b = MDCRippleFoundation.cssClasses,\n FG_DEACTIVATION = _b.FG_DEACTIVATION,\n FG_ACTIVATION = _b.FG_ACTIVATION;\n var DEACTIVATION_TIMEOUT_MS = MDCRippleFoundation.numbers.DEACTIVATION_TIMEOUT_MS;\n this.layoutInternal_();\n var translateStart = '';\n var translateEnd = '';\n\n if (!this.adapter.isUnbounded()) {\n var _c = this.getFgTranslationCoordinates_(),\n startPoint = _c.startPoint,\n endPoint = _c.endPoint;\n\n translateStart = startPoint.x + \"px, \" + startPoint.y + \"px\";\n translateEnd = endPoint.x + \"px, \" + endPoint.y + \"px\";\n }\n\n this.adapter.updateCssVariable(VAR_FG_TRANSLATE_START, translateStart);\n this.adapter.updateCssVariable(VAR_FG_TRANSLATE_END, translateEnd); // Cancel any ongoing activation/deactivation animations\n\n clearTimeout(this.activationTimer_);\n clearTimeout(this.fgDeactivationRemovalTimer_);\n this.rmBoundedActivationClasses_();\n this.adapter.removeClass(FG_DEACTIVATION); // Force layout in order to re-trigger the animation.\n\n this.adapter.computeBoundingRect();\n this.adapter.addClass(FG_ACTIVATION);\n this.activationTimer_ = setTimeout(function () {\n return _this.activationTimerCallback_();\n }, DEACTIVATION_TIMEOUT_MS);\n };\n\n MDCRippleFoundation.prototype.getFgTranslationCoordinates_ = function () {\n var _a = this.activationState_,\n activationEvent = _a.activationEvent,\n wasActivatedByPointer = _a.wasActivatedByPointer;\n var startPoint;\n\n if (wasActivatedByPointer) {\n startPoint = getNormalizedEventCoords(activationEvent, this.adapter.getWindowPageOffset(), this.adapter.computeBoundingRect());\n } else {\n startPoint = {\n x: this.frame_.width / 2,\n y: this.frame_.height / 2\n };\n } // Center the element around the start point.\n\n\n startPoint = {\n x: startPoint.x - this.initialSize_ / 2,\n y: startPoint.y - this.initialSize_ / 2\n };\n var endPoint = {\n x: this.frame_.width / 2 - this.initialSize_ / 2,\n y: this.frame_.height / 2 - this.initialSize_ / 2\n };\n return {\n startPoint: startPoint,\n endPoint: endPoint\n };\n };\n\n MDCRippleFoundation.prototype.runDeactivationUXLogicIfReady_ = function () {\n var _this = this; // This method is called both when a pointing device is released, and when the activation animation ends.\n // The deactivation animation should only run after both of those occur.\n\n\n var FG_DEACTIVATION = MDCRippleFoundation.cssClasses.FG_DEACTIVATION;\n var _a = this.activationState_,\n hasDeactivationUXRun = _a.hasDeactivationUXRun,\n isActivated = _a.isActivated;\n var activationHasEnded = hasDeactivationUXRun || !isActivated;\n\n if (activationHasEnded && this.activationAnimationHasEnded_) {\n this.rmBoundedActivationClasses_();\n this.adapter.addClass(FG_DEACTIVATION);\n this.fgDeactivationRemovalTimer_ = setTimeout(function () {\n _this.adapter.removeClass(FG_DEACTIVATION);\n }, numbers.FG_DEACTIVATION_MS);\n }\n };\n\n MDCRippleFoundation.prototype.rmBoundedActivationClasses_ = function () {\n var FG_ACTIVATION = MDCRippleFoundation.cssClasses.FG_ACTIVATION;\n this.adapter.removeClass(FG_ACTIVATION);\n this.activationAnimationHasEnded_ = false;\n this.adapter.computeBoundingRect();\n };\n\n MDCRippleFoundation.prototype.resetActivationState_ = function () {\n var _this = this;\n\n this.previousActivationEvent_ = this.activationState_.activationEvent;\n this.activationState_ = this.defaultActivationState_(); // Touch devices may fire additional events for the same interaction within a short time.\n // Store the previous event until it's safe to assume that subsequent events are for new interactions.\n\n setTimeout(function () {\n return _this.previousActivationEvent_ = undefined;\n }, MDCRippleFoundation.numbers.TAP_DELAY_MS);\n };\n\n MDCRippleFoundation.prototype.deactivate_ = function () {\n var _this = this;\n\n var activationState = this.activationState_; // This can happen in scenarios such as when you have a keyup event that blurs the element.\n\n if (!activationState.isActivated) {\n return;\n }\n\n var state = __assign({}, activationState);\n\n if (activationState.isProgrammatic) {\n requestAnimationFrame(function () {\n return _this.animateDeactivation_(state);\n });\n this.resetActivationState_();\n } else {\n this.deregisterDeactivationHandlers_();\n requestAnimationFrame(function () {\n _this.activationState_.hasDeactivationUXRun = true;\n\n _this.animateDeactivation_(state);\n\n _this.resetActivationState_();\n });\n }\n };\n\n MDCRippleFoundation.prototype.animateDeactivation_ = function (_a) {\n var wasActivatedByPointer = _a.wasActivatedByPointer,\n wasElementMadeActive = _a.wasElementMadeActive;\n\n if (wasActivatedByPointer || wasElementMadeActive) {\n this.runDeactivationUXLogicIfReady_();\n }\n };\n\n MDCRippleFoundation.prototype.layoutInternal_ = function () {\n var _this = this;\n\n this.frame_ = this.adapter.computeBoundingRect();\n var maxDim = Math.max(this.frame_.height, this.frame_.width); // Surface diameter is treated differently for unbounded vs. bounded ripples.\n // Unbounded ripple diameter is calculated smaller since the surface is expected to already be padded appropriately\n // to extend the hitbox, and the ripple is expected to meet the edges of the padded hitbox (which is typically\n // square). Bounded ripples, on the other hand, are fully expected to expand beyond the surface's longest diameter\n // (calculated based on the diagonal plus a constant padding), and are clipped at the surface's border via\n // `overflow: hidden`.\n\n var getBoundedRadius = function () {\n var hypotenuse = Math.sqrt(Math.pow(_this.frame_.width, 2) + Math.pow(_this.frame_.height, 2));\n return hypotenuse + MDCRippleFoundation.numbers.PADDING;\n };\n\n this.maxRadius_ = this.adapter.isUnbounded() ? maxDim : getBoundedRadius(); // Ripple is sized as a fraction of the largest dimension of the surface, then scales up using a CSS scale transform\n\n var initialSize = Math.floor(maxDim * MDCRippleFoundation.numbers.INITIAL_ORIGIN_SCALE); // Unbounded ripple size should always be even number to equally center align.\n\n if (this.adapter.isUnbounded() && initialSize % 2 !== 0) {\n this.initialSize_ = initialSize - 1;\n } else {\n this.initialSize_ = initialSize;\n }\n\n this.fgScale_ = \"\" + this.maxRadius_ / this.initialSize_;\n this.updateLayoutCssVars_();\n };\n\n MDCRippleFoundation.prototype.updateLayoutCssVars_ = function () {\n var _a = MDCRippleFoundation.strings,\n VAR_FG_SIZE = _a.VAR_FG_SIZE,\n VAR_LEFT = _a.VAR_LEFT,\n VAR_TOP = _a.VAR_TOP,\n VAR_FG_SCALE = _a.VAR_FG_SCALE;\n this.adapter.updateCssVariable(VAR_FG_SIZE, this.initialSize_ + \"px\");\n this.adapter.updateCssVariable(VAR_FG_SCALE, this.fgScale_);\n\n if (this.adapter.isUnbounded()) {\n this.unboundedCoords_ = {\n left: Math.round(this.frame_.width / 2 - this.initialSize_ / 2),\n top: Math.round(this.frame_.height / 2 - this.initialSize_ / 2)\n };\n this.adapter.updateCssVariable(VAR_LEFT, this.unboundedCoords_.left + \"px\");\n this.adapter.updateCssVariable(VAR_TOP, this.unboundedCoords_.top + \"px\");\n }\n };\n\n return MDCRippleFoundation;\n}(MDCFoundation);\n\nexport { MDCRippleFoundation }; // tslint:disable-next-line:no-default-export Needed for backward compatibility with MDC Web v0.44.0 and earlier.\n\nexport default MDCRippleFoundation;","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দুপুর' && hour < 5 || meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return bn;\n});","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\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.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/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","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০'\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0'\n };\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort: 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split('_'),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split('_'),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়'\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর'\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return bnBd;\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","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return uz;\n});","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n\n case 'mm':\n return numberNoun + ' tup';\n\n case 'hh':\n return numberNoun + ' rep';\n\n case 'dd':\n return numberNoun + ' jaj';\n\n case 'MM':\n return numberNoun + ' jar';\n\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor(number % 1000 / 100),\n ten = Math.floor(number % 100 / 10),\n one = number % 10,\n word = '';\n\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split('_'),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split('_'),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L'\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return tlh;\n});","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","module.exports = {};\n","var toInteger = require('../internals/to-integer');\n\nmodule.exports = function (it) {\n var result = toInteger(it);\n if (result < 0) throw RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\"\n };\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split('_'),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split('_'),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return tk;\n});","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm'\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return uzLatn;\n});","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return frCh;\n});","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум'\n };\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split('_'),\n standalone: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_')\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split('_'),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол'\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1th is the first week of the year.\n\n }\n });\n return tg;\n});","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split('_'),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return ne;\n});","//! moment.js\n//! version : 2.29.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && function () {}) {}\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && function () {}) {}\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged and will be removed in an upcoming major release. Please refer to ' + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.29.0';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return arTn;\n});","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = ['جنوري', 'فيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm'\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال'\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sd;\n});","/*!\n * chartjs-plugin-datalabels v0.7.0\n * https://chartjs-plugin-datalabels.netlify.com\n * (c) 2019 Chart.js Contributors\n * Released under the MIT license\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('chart.js')) : typeof define === 'function' && define.amd ? define(['chart.js'], factory) : (global = global || self, global.ChartDataLabels = factory(global.Chart));\n})(this, function (Chart) {\n 'use strict';\n\n Chart = Chart && Chart.hasOwnProperty('default') ? Chart['default'] : Chart;\n var helpers = Chart.helpers;\n\n var devicePixelRatio = function () {\n if (typeof window !== 'undefined') {\n if (window.devicePixelRatio) {\n return window.devicePixelRatio;\n } // devicePixelRatio is undefined on IE10\n // https://stackoverflow.com/a/20204180/8837887\n // https://github.com/chartjs/chartjs-plugin-datalabels/issues/85\n\n\n var screen = window.screen;\n\n if (screen) {\n return (screen.deviceXDPI || 1) / (screen.logicalXDPI || 1);\n }\n }\n\n return 1;\n }();\n\n var utils = {\n // @todo move this in Chart.helpers.toTextLines\n toTextLines: function (inputs) {\n var lines = [];\n var input;\n inputs = [].concat(inputs);\n\n while (inputs.length) {\n input = inputs.pop();\n\n if (typeof input === 'string') {\n lines.unshift.apply(lines, input.split('\\n'));\n } else if (Array.isArray(input)) {\n inputs.push.apply(inputs, input);\n } else if (!helpers.isNullOrUndef(inputs)) {\n lines.unshift('' + input);\n }\n }\n\n return lines;\n },\n // @todo move this method in Chart.helpers.canvas.toFont (deprecates helpers.fontString)\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/font\n toFontString: function (font) {\n if (!font || helpers.isNullOrUndef(font.size) || helpers.isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n },\n // @todo move this in Chart.helpers.canvas.textSize\n // @todo cache calls of measureText if font doesn't change?!\n textSize: function (ctx, lines, font) {\n var items = [].concat(lines);\n var ilen = items.length;\n var prev = ctx.font;\n var width = 0;\n var i;\n ctx.font = font.string;\n\n for (i = 0; i < ilen; ++i) {\n width = Math.max(ctx.measureText(items[i]).width, width);\n }\n\n ctx.font = prev;\n return {\n height: ilen * font.lineHeight,\n width: width\n };\n },\n // @todo move this method in Chart.helpers.options.toFont\n parseFont: function (value) {\n var global = Chart.defaults.global;\n var size = helpers.valueOrDefault(value.size, global.defaultFontSize);\n var font = {\n family: helpers.valueOrDefault(value.family, global.defaultFontFamily),\n lineHeight: helpers.options.toLineHeight(value.lineHeight, size),\n size: size,\n style: helpers.valueOrDefault(value.style, global.defaultFontStyle),\n weight: helpers.valueOrDefault(value.weight, null),\n string: ''\n };\n font.string = utils.toFontString(font);\n return font;\n },\n\n /**\n * Returns value bounded by min and max. This is equivalent to max(min, min(value, max)).\n * @todo move this method in Chart.helpers.bound\n * https://doc.qt.io/qt-5/qtglobal.html#qBound\n */\n bound: function (min, value, max) {\n return Math.max(min, Math.min(value, max));\n },\n\n /**\n * Returns an array of pair [value, state] where state is:\n * * -1: value is only in a0 (removed)\n * * 1: value is only in a1 (added)\n */\n arrayDiff: function (a0, a1) {\n var prev = a0.slice();\n var updates = [];\n var i, j, ilen, v;\n\n for (i = 0, ilen = a1.length; i < ilen; ++i) {\n v = a1[i];\n j = prev.indexOf(v);\n\n if (j === -1) {\n updates.push([v, 1]);\n } else {\n prev.splice(j, 1);\n }\n }\n\n for (i = 0, ilen = prev.length; i < ilen; ++i) {\n updates.push([prev[i], -1]);\n }\n\n return updates;\n },\n\n /**\n * https://github.com/chartjs/chartjs-plugin-datalabels/issues/70\n */\n rasterize: function (v) {\n return Math.round(v * devicePixelRatio) / devicePixelRatio;\n }\n };\n\n function orient(point, origin) {\n var x0 = origin.x;\n var y0 = origin.y;\n\n if (x0 === null) {\n return {\n x: 0,\n y: -1\n };\n }\n\n if (y0 === null) {\n return {\n x: 1,\n y: 0\n };\n }\n\n var dx = point.x - x0;\n var dy = point.y - y0;\n var ln = Math.sqrt(dx * dx + dy * dy);\n return {\n x: ln ? dx / ln : 0,\n y: ln ? dy / ln : -1\n };\n }\n\n function aligned(x, y, vx, vy, align) {\n switch (align) {\n case 'center':\n vx = vy = 0;\n break;\n\n case 'bottom':\n vx = 0;\n vy = 1;\n break;\n\n case 'right':\n vx = 1;\n vy = 0;\n break;\n\n case 'left':\n vx = -1;\n vy = 0;\n break;\n\n case 'top':\n vx = 0;\n vy = -1;\n break;\n\n case 'start':\n vx = -vx;\n vy = -vy;\n break;\n\n case 'end':\n // keep natural orientation\n break;\n\n default:\n // clockwise rotation (in degree)\n align *= Math.PI / 180;\n vx = Math.cos(align);\n vy = Math.sin(align);\n break;\n }\n\n return {\n x: x,\n y: y,\n vx: vx,\n vy: vy\n };\n } // Line clipping (Cohen–Sutherland algorithm)\n // https://en.wikipedia.org/wiki/Cohen–Sutherland_algorithm\n\n\n var R_INSIDE = 0;\n var R_LEFT = 1;\n var R_RIGHT = 2;\n var R_BOTTOM = 4;\n var R_TOP = 8;\n\n function region(x, y, rect) {\n var res = R_INSIDE;\n\n if (x < rect.left) {\n res |= R_LEFT;\n } else if (x > rect.right) {\n res |= R_RIGHT;\n }\n\n if (y < rect.top) {\n res |= R_TOP;\n } else if (y > rect.bottom) {\n res |= R_BOTTOM;\n }\n\n return res;\n }\n\n function clipped(segment, area) {\n var x0 = segment.x0;\n var y0 = segment.y0;\n var x1 = segment.x1;\n var y1 = segment.y1;\n var r0 = region(x0, y0, area);\n var r1 = region(x1, y1, area);\n var r, x, y; // eslint-disable-next-line no-constant-condition\n\n while (true) {\n if (!(r0 | r1) || r0 & r1) {\n // both points inside or on the same side: no clipping\n break;\n } // at least one point is outside\n\n\n r = r0 || r1;\n\n if (r & R_TOP) {\n x = x0 + (x1 - x0) * (area.top - y0) / (y1 - y0);\n y = area.top;\n } else if (r & R_BOTTOM) {\n x = x0 + (x1 - x0) * (area.bottom - y0) / (y1 - y0);\n y = area.bottom;\n } else if (r & R_RIGHT) {\n y = y0 + (y1 - y0) * (area.right - x0) / (x1 - x0);\n x = area.right;\n } else if (r & R_LEFT) {\n y = y0 + (y1 - y0) * (area.left - x0) / (x1 - x0);\n x = area.left;\n }\n\n if (r === r0) {\n x0 = x;\n y0 = y;\n r0 = region(x0, y0, area);\n } else {\n x1 = x;\n y1 = y;\n r1 = region(x1, y1, area);\n }\n }\n\n return {\n x0: x0,\n x1: x1,\n y0: y0,\n y1: y1\n };\n }\n\n function compute(range, config) {\n var anchor = config.anchor;\n var segment = range;\n var x, y;\n\n if (config.clamp) {\n segment = clipped(segment, config.area);\n }\n\n if (anchor === 'start') {\n x = segment.x0;\n y = segment.y0;\n } else if (anchor === 'end') {\n x = segment.x1;\n y = segment.y1;\n } else {\n x = (segment.x0 + segment.x1) / 2;\n y = (segment.y0 + segment.y1) / 2;\n }\n\n return aligned(x, y, range.vx, range.vy, config.align);\n }\n\n var positioners = {\n arc: function (vm, config) {\n var angle = (vm.startAngle + vm.endAngle) / 2;\n var vx = Math.cos(angle);\n var vy = Math.sin(angle);\n var r0 = vm.innerRadius;\n var r1 = vm.outerRadius;\n return compute({\n x0: vm.x + vx * r0,\n y0: vm.y + vy * r0,\n x1: vm.x + vx * r1,\n y1: vm.y + vy * r1,\n vx: vx,\n vy: vy\n }, config);\n },\n point: function (vm, config) {\n var v = orient(vm, config.origin);\n var rx = v.x * vm.radius;\n var ry = v.y * vm.radius;\n return compute({\n x0: vm.x - rx,\n y0: vm.y - ry,\n x1: vm.x + rx,\n y1: vm.y + ry,\n vx: v.x,\n vy: v.y\n }, config);\n },\n rect: function (vm, config) {\n var v = orient(vm, config.origin);\n var x = vm.x;\n var y = vm.y;\n var sx = 0;\n var sy = 0;\n\n if (vm.horizontal) {\n x = Math.min(vm.x, vm.base);\n sx = Math.abs(vm.base - vm.x);\n } else {\n y = Math.min(vm.y, vm.base);\n sy = Math.abs(vm.base - vm.y);\n }\n\n return compute({\n x0: x,\n y0: y + sy,\n x1: x + sx,\n y1: y,\n vx: v.x,\n vy: v.y\n }, config);\n },\n fallback: function (vm, config) {\n var v = orient(vm, config.origin);\n return compute({\n x0: vm.x,\n y0: vm.y,\n x1: vm.x,\n y1: vm.y,\n vx: v.x,\n vy: v.y\n }, config);\n }\n };\n var helpers$1 = Chart.helpers;\n var rasterize = utils.rasterize;\n\n function boundingRects(model) {\n var borderWidth = model.borderWidth || 0;\n var padding = model.padding;\n var th = model.size.height;\n var tw = model.size.width;\n var tx = -tw / 2;\n var ty = -th / 2;\n return {\n frame: {\n x: tx - padding.left - borderWidth,\n y: ty - padding.top - borderWidth,\n w: tw + padding.width + borderWidth * 2,\n h: th + padding.height + borderWidth * 2\n },\n text: {\n x: tx,\n y: ty,\n w: tw,\n h: th\n }\n };\n }\n\n function getScaleOrigin(el) {\n var horizontal = el._model.horizontal;\n var scale = el._scale || horizontal && el._xScale || el._yScale;\n\n if (!scale) {\n return null;\n }\n\n if (scale.xCenter !== undefined && scale.yCenter !== undefined) {\n return {\n x: scale.xCenter,\n y: scale.yCenter\n };\n }\n\n var pixel = scale.getBasePixel();\n return horizontal ? {\n x: pixel,\n y: null\n } : {\n x: null,\n y: pixel\n };\n }\n\n function getPositioner(el) {\n if (el instanceof Chart.elements.Arc) {\n return positioners.arc;\n }\n\n if (el instanceof Chart.elements.Point) {\n return positioners.point;\n }\n\n if (el instanceof Chart.elements.Rectangle) {\n return positioners.rect;\n }\n\n return positioners.fallback;\n }\n\n function drawFrame(ctx, rect, model) {\n var bgColor = model.backgroundColor;\n var borderColor = model.borderColor;\n var borderWidth = model.borderWidth;\n\n if (!bgColor && (!borderColor || !borderWidth)) {\n return;\n }\n\n ctx.beginPath();\n helpers$1.canvas.roundedRect(ctx, rasterize(rect.x) + borderWidth / 2, rasterize(rect.y) + borderWidth / 2, rasterize(rect.w) - borderWidth, rasterize(rect.h) - borderWidth, model.borderRadius);\n ctx.closePath();\n\n if (bgColor) {\n ctx.fillStyle = bgColor;\n ctx.fill();\n }\n\n if (borderColor && borderWidth) {\n ctx.strokeStyle = borderColor;\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = 'miter';\n ctx.stroke();\n }\n }\n\n function textGeometry(rect, align, font) {\n var h = font.lineHeight;\n var w = rect.w;\n var x = rect.x;\n var y = rect.y + h / 2;\n\n if (align === 'center') {\n x += w / 2;\n } else if (align === 'end' || align === 'right') {\n x += w;\n }\n\n return {\n h: h,\n w: w,\n x: x,\n y: y\n };\n }\n\n function drawTextLine(ctx, text, cfg) {\n var shadow = ctx.shadowBlur;\n var stroked = cfg.stroked;\n var x = rasterize(cfg.x);\n var y = rasterize(cfg.y);\n var w = rasterize(cfg.w);\n\n if (stroked) {\n ctx.strokeText(text, x, y, w);\n }\n\n if (cfg.filled) {\n if (shadow && stroked) {\n // Prevent drawing shadow on both the text stroke and fill, so\n // if the text is stroked, remove the shadow for the text fill.\n ctx.shadowBlur = 0;\n }\n\n ctx.fillText(text, x, y, w);\n\n if (shadow && stroked) {\n ctx.shadowBlur = shadow;\n }\n }\n }\n\n function drawText(ctx, lines, rect, model) {\n var align = model.textAlign;\n var color = model.color;\n var filled = !!color;\n var font = model.font;\n var ilen = lines.length;\n var strokeColor = model.textStrokeColor;\n var strokeWidth = model.textStrokeWidth;\n var stroked = strokeColor && strokeWidth;\n var i;\n\n if (!ilen || !filled && !stroked) {\n return;\n } // Adjust coordinates based on text alignment and line height\n\n\n rect = textGeometry(rect, align, font);\n ctx.font = font.string;\n ctx.textAlign = align;\n ctx.textBaseline = 'middle';\n ctx.shadowBlur = model.textShadowBlur;\n ctx.shadowColor = model.textShadowColor;\n\n if (filled) {\n ctx.fillStyle = color;\n }\n\n if (stroked) {\n ctx.lineJoin = 'round';\n ctx.lineWidth = strokeWidth;\n ctx.strokeStyle = strokeColor;\n }\n\n for (i = 0, ilen = lines.length; i < ilen; ++i) {\n drawTextLine(ctx, lines[i], {\n stroked: stroked,\n filled: filled,\n w: rect.w,\n x: rect.x,\n y: rect.y + rect.h * i\n });\n }\n }\n\n var Label = function (config, ctx, el, index) {\n var me = this;\n me._config = config;\n me._index = index;\n me._model = null;\n me._rects = null;\n me._ctx = ctx;\n me._el = el;\n };\n\n helpers$1.extend(Label.prototype, {\n /**\n * @private\n */\n _modelize: function (display, lines, config, context) {\n var me = this;\n var index = me._index;\n var resolve = helpers$1.options.resolve;\n var font = utils.parseFont(resolve([config.font, {}], context, index));\n var color = resolve([config.color, Chart.defaults.global.defaultFontColor], context, index);\n return {\n align: resolve([config.align, 'center'], context, index),\n anchor: resolve([config.anchor, 'center'], context, index),\n area: context.chart.chartArea,\n backgroundColor: resolve([config.backgroundColor, null], context, index),\n borderColor: resolve([config.borderColor, null], context, index),\n borderRadius: resolve([config.borderRadius, 0], context, index),\n borderWidth: resolve([config.borderWidth, 0], context, index),\n clamp: resolve([config.clamp, false], context, index),\n clip: resolve([config.clip, false], context, index),\n color: color,\n display: display,\n font: font,\n lines: lines,\n offset: resolve([config.offset, 0], context, index),\n opacity: resolve([config.opacity, 1], context, index),\n origin: getScaleOrigin(me._el),\n padding: helpers$1.options.toPadding(resolve([config.padding, 0], context, index)),\n positioner: getPositioner(me._el),\n rotation: resolve([config.rotation, 0], context, index) * (Math.PI / 180),\n size: utils.textSize(me._ctx, lines, font),\n textAlign: resolve([config.textAlign, 'start'], context, index),\n textShadowBlur: resolve([config.textShadowBlur, 0], context, index),\n textShadowColor: resolve([config.textShadowColor, color], context, index),\n textStrokeColor: resolve([config.textStrokeColor, color], context, index),\n textStrokeWidth: resolve([config.textStrokeWidth, 0], context, index)\n };\n },\n update: function (context) {\n var me = this;\n var model = null;\n var rects = null;\n var index = me._index;\n var config = me._config;\n var value, label, lines; // We first resolve the display option (separately) to avoid computing\n // other options in case the label is hidden (i.e. display: false).\n\n var display = helpers$1.options.resolve([config.display, true], context, index);\n\n if (display) {\n value = context.dataset.data[index];\n label = helpers$1.valueOrDefault(helpers$1.callback(config.formatter, [value, context]), value);\n lines = helpers$1.isNullOrUndef(label) ? [] : utils.toTextLines(label);\n\n if (lines.length) {\n model = me._modelize(display, lines, config, context);\n rects = boundingRects(model);\n }\n }\n\n me._model = model;\n me._rects = rects;\n },\n geometry: function () {\n return this._rects ? this._rects.frame : {};\n },\n rotation: function () {\n return this._model ? this._model.rotation : 0;\n },\n visible: function () {\n return this._model && this._model.opacity;\n },\n model: function () {\n return this._model;\n },\n draw: function (chart, center) {\n var me = this;\n var ctx = chart.ctx;\n var model = me._model;\n var rects = me._rects;\n var area;\n\n if (!this.visible()) {\n return;\n }\n\n ctx.save();\n\n if (model.clip) {\n area = model.area;\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n }\n\n ctx.globalAlpha = utils.bound(0, model.opacity, 1);\n ctx.translate(rasterize(center.x), rasterize(center.y));\n ctx.rotate(model.rotation);\n drawFrame(ctx, rects.frame, model);\n drawText(ctx, model.lines, rects.text, model);\n ctx.restore();\n }\n });\n var helpers$2 = Chart.helpers;\n var MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991; // eslint-disable-line es/no-number-minsafeinteger\n\n var MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991; // eslint-disable-line es/no-number-maxsafeinteger\n\n function rotated(point, center, angle) {\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n var cx = center.x;\n var cy = center.y;\n return {\n x: cx + cos * (point.x - cx) - sin * (point.y - cy),\n y: cy + sin * (point.x - cx) + cos * (point.y - cy)\n };\n }\n\n function projected(points, axis) {\n var min = MAX_INTEGER;\n var max = MIN_INTEGER;\n var origin = axis.origin;\n var i, pt, vx, vy, dp;\n\n for (i = 0; i < points.length; ++i) {\n pt = points[i];\n vx = pt.x - origin.x;\n vy = pt.y - origin.y;\n dp = axis.vx * vx + axis.vy * vy;\n min = Math.min(min, dp);\n max = Math.max(max, dp);\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n function toAxis(p0, p1) {\n var vx = p1.x - p0.x;\n var vy = p1.y - p0.y;\n var ln = Math.sqrt(vx * vx + vy * vy);\n return {\n vx: (p1.x - p0.x) / ln,\n vy: (p1.y - p0.y) / ln,\n origin: p0,\n ln: ln\n };\n }\n\n var HitBox = function () {\n this._rotation = 0;\n this._rect = {\n x: 0,\n y: 0,\n w: 0,\n h: 0\n };\n };\n\n helpers$2.extend(HitBox.prototype, {\n center: function () {\n var r = this._rect;\n return {\n x: r.x + r.w / 2,\n y: r.y + r.h / 2\n };\n },\n update: function (center, rect, rotation) {\n this._rotation = rotation;\n this._rect = {\n x: rect.x + center.x,\n y: rect.y + center.y,\n w: rect.w,\n h: rect.h\n };\n },\n contains: function (point) {\n var me = this;\n var margin = 1;\n var rect = me._rect;\n point = rotated(point, me.center(), -me._rotation);\n return !(point.x < rect.x - margin || point.y < rect.y - margin || point.x > rect.x + rect.w + margin * 2 || point.y > rect.y + rect.h + margin * 2);\n },\n // Separating Axis Theorem\n // https://gamedevelopment.tutsplus.com/tutorials/collision-detection-using-the-separating-axis-theorem--gamedev-169\n intersects: function (other) {\n var r0 = this._points();\n\n var r1 = other._points();\n\n var axes = [toAxis(r0[0], r0[1]), toAxis(r0[0], r0[3])];\n var i, pr0, pr1;\n\n if (this._rotation !== other._rotation) {\n // Only separate with r1 axis if the rotation is different,\n // else it's enough to separate r0 and r1 with r0 axis only!\n axes.push(toAxis(r1[0], r1[1]), toAxis(r1[0], r1[3]));\n }\n\n for (i = 0; i < axes.length; ++i) {\n pr0 = projected(r0, axes[i]);\n pr1 = projected(r1, axes[i]);\n\n if (pr0.max < pr1.min || pr1.max < pr0.min) {\n return false;\n }\n }\n\n return true;\n },\n\n /**\n * @private\n */\n _points: function () {\n var me = this;\n var rect = me._rect;\n var angle = me._rotation;\n var center = me.center();\n return [rotated({\n x: rect.x,\n y: rect.y\n }, center, angle), rotated({\n x: rect.x + rect.w,\n y: rect.y\n }, center, angle), rotated({\n x: rect.x + rect.w,\n y: rect.y + rect.h\n }, center, angle), rotated({\n x: rect.x,\n y: rect.y + rect.h\n }, center, angle)];\n }\n });\n\n function coordinates(view, model, geometry) {\n var point = model.positioner(view, model);\n var vx = point.vx;\n var vy = point.vy;\n\n if (!vx && !vy) {\n // if aligned center, we don't want to offset the center point\n return {\n x: point.x,\n y: point.y\n };\n }\n\n var w = geometry.w;\n var h = geometry.h; // take in account the label rotation\n\n var rotation = model.rotation;\n var dx = Math.abs(w / 2 * Math.cos(rotation)) + Math.abs(h / 2 * Math.sin(rotation));\n var dy = Math.abs(w / 2 * Math.sin(rotation)) + Math.abs(h / 2 * Math.cos(rotation)); // scale the unit vector (vx, vy) to get at least dx or dy equal to\n // w or h respectively (else we would calculate the distance to the\n // ellipse inscribed in the bounding rect)\n\n var vs = 1 / Math.max(Math.abs(vx), Math.abs(vy));\n dx *= vx * vs;\n dy *= vy * vs; // finally, include the explicit offset\n\n dx += model.offset * vx;\n dy += model.offset * vy;\n return {\n x: point.x + dx,\n y: point.y + dy\n };\n }\n\n function collide(labels, collider) {\n var i, j, s0, s1; // IMPORTANT Iterate in the reverse order since items at the end of the\n // list have an higher weight/priority and thus should be less impacted\n // by the overlapping strategy.\n\n for (i = labels.length - 1; i >= 0; --i) {\n s0 = labels[i].$layout;\n\n for (j = i - 1; j >= 0 && s0._visible; --j) {\n s1 = labels[j].$layout;\n\n if (s1._visible && s0._box.intersects(s1._box)) {\n collider(s0, s1);\n }\n }\n }\n\n return labels;\n }\n\n function compute$1(labels) {\n var i, ilen, label, state, geometry, center; // Initialize labels for overlap detection\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n label = labels[i];\n state = label.$layout;\n\n if (state._visible) {\n geometry = label.geometry();\n center = coordinates(label._el._model, label.model(), geometry);\n\n state._box.update(center, geometry, label.rotation());\n }\n } // Auto hide overlapping labels\n\n\n return collide(labels, function (s0, s1) {\n var h0 = s0._hidable;\n var h1 = s1._hidable;\n\n if (h0 && h1 || h1) {\n s1._visible = false;\n } else if (h0) {\n s0._visible = false;\n }\n });\n }\n\n var layout = {\n prepare: function (datasets) {\n var labels = [];\n var i, j, ilen, jlen, label;\n\n for (i = 0, ilen = datasets.length; i < ilen; ++i) {\n for (j = 0, jlen = datasets[i].length; j < jlen; ++j) {\n label = datasets[i][j];\n labels.push(label);\n label.$layout = {\n _box: new HitBox(),\n _hidable: false,\n _visible: true,\n _set: i,\n _idx: j\n };\n }\n } // TODO New `z` option: labels with a higher z-index are drawn\n // of top of the ones with a lower index. Lowest z-index labels\n // are also discarded first when hiding overlapping labels.\n\n\n labels.sort(function (a, b) {\n var sa = a.$layout;\n var sb = b.$layout;\n return sa._idx === sb._idx ? sb._set - sa._set : sb._idx - sa._idx;\n });\n this.update(labels);\n return labels;\n },\n update: function (labels) {\n var dirty = false;\n var i, ilen, label, model, state;\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n label = labels[i];\n model = label.model();\n state = label.$layout;\n state._hidable = model && model.display === 'auto';\n state._visible = label.visible();\n dirty |= state._hidable;\n }\n\n if (dirty) {\n compute$1(labels);\n }\n },\n lookup: function (labels, point) {\n var i, state; // IMPORTANT Iterate in the reverse order since items at the end of\n // the list have an higher z-index, thus should be picked first.\n\n for (i = labels.length - 1; i >= 0; --i) {\n state = labels[i].$layout;\n\n if (state && state._visible && state._box.contains(point)) {\n return labels[i];\n }\n }\n\n return null;\n },\n draw: function (chart, labels) {\n var i, ilen, label, state, geometry, center;\n\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n label = labels[i];\n state = label.$layout;\n\n if (state._visible) {\n geometry = label.geometry();\n center = coordinates(label._el._view, label.model(), geometry);\n\n state._box.update(center, geometry, label.rotation());\n\n label.draw(chart, center);\n }\n }\n }\n };\n var helpers$3 = Chart.helpers;\n\n var formatter = function (value) {\n if (helpers$3.isNullOrUndef(value)) {\n return null;\n }\n\n var label = value;\n var keys, klen, k;\n\n if (helpers$3.isObject(value)) {\n if (!helpers$3.isNullOrUndef(value.label)) {\n label = value.label;\n } else if (!helpers$3.isNullOrUndef(value.r)) {\n label = value.r;\n } else {\n label = '';\n keys = Object.keys(value);\n\n for (k = 0, klen = keys.length; k < klen; ++k) {\n label += (k !== 0 ? ', ' : '') + keys[k] + ': ' + value[keys[k]];\n }\n }\n }\n\n return '' + label;\n };\n /**\n * IMPORTANT: make sure to also update tests and TypeScript definition\n * files (`/test/specs/defaults.spec.js` and `/types/options.d.ts`)\n */\n\n\n var defaults = {\n align: 'center',\n anchor: 'center',\n backgroundColor: null,\n borderColor: null,\n borderRadius: 0,\n borderWidth: 0,\n clamp: false,\n clip: false,\n color: undefined,\n display: true,\n font: {\n family: undefined,\n lineHeight: 1.2,\n size: undefined,\n style: undefined,\n weight: null\n },\n formatter: formatter,\n labels: undefined,\n listeners: {},\n offset: 4,\n opacity: 1,\n padding: {\n top: 4,\n right: 4,\n bottom: 4,\n left: 4\n },\n rotation: 0,\n textAlign: 'start',\n textStrokeColor: undefined,\n textStrokeWidth: 0,\n textShadowBlur: 0,\n textShadowColor: undefined\n };\n /**\n * @see https://github.com/chartjs/Chart.js/issues/4176\n */\n\n var helpers$4 = Chart.helpers;\n var EXPANDO_KEY = '$datalabels';\n var DEFAULT_KEY = '$default';\n\n function configure(dataset, options) {\n var override = dataset.datalabels;\n var listeners = {};\n var configs = [];\n var labels, keys;\n\n if (override === false) {\n return null;\n }\n\n if (override === true) {\n override = {};\n }\n\n options = helpers$4.merge({}, [options, override]);\n labels = options.labels || {};\n keys = Object.keys(labels);\n delete options.labels;\n\n if (keys.length) {\n keys.forEach(function (key) {\n if (labels[key]) {\n configs.push(helpers$4.merge({}, [options, labels[key], {\n _key: key\n }]));\n }\n });\n } else {\n // Default label if no \"named\" label defined.\n configs.push(options);\n } // listeners: {: {: }}\n\n\n listeners = configs.reduce(function (target, config) {\n helpers$4.each(config.listeners || {}, function (fn, event) {\n target[event] = target[event] || {};\n target[event][config._key || DEFAULT_KEY] = fn;\n });\n delete config.listeners;\n return target;\n }, {});\n return {\n labels: configs,\n listeners: listeners\n };\n }\n\n function dispatchEvent(chart, listeners, label) {\n if (!listeners) {\n return;\n }\n\n var context = label.$context;\n var groups = label.$groups;\n var callback;\n\n if (!listeners[groups._set]) {\n return;\n }\n\n callback = listeners[groups._set][groups._key];\n\n if (!callback) {\n return;\n }\n\n if (helpers$4.callback(callback, [context]) === true) {\n // Users are allowed to tweak the given context by injecting values that can be\n // used in scriptable options to display labels differently based on the current\n // event (e.g. highlight an hovered label). That's why we update the label with\n // the output context and schedule a new chart render by setting it dirty.\n chart[EXPANDO_KEY]._dirty = true;\n label.update(context);\n }\n }\n\n function dispatchMoveEvents(chart, listeners, previous, label) {\n var enter, leave;\n\n if (!previous && !label) {\n return;\n }\n\n if (!previous) {\n enter = true;\n } else if (!label) {\n leave = true;\n } else if (previous !== label) {\n leave = enter = true;\n }\n\n if (leave) {\n dispatchEvent(chart, listeners.leave, previous);\n }\n\n if (enter) {\n dispatchEvent(chart, listeners.enter, label);\n }\n }\n\n function handleMoveEvents(chart, event) {\n var expando = chart[EXPANDO_KEY];\n var listeners = expando._listeners;\n var previous, label;\n\n if (!listeners.enter && !listeners.leave) {\n return;\n }\n\n if (event.type === 'mousemove') {\n label = layout.lookup(expando._labels, event);\n } else if (event.type !== 'mouseout') {\n return;\n }\n\n previous = expando._hovered;\n expando._hovered = label;\n dispatchMoveEvents(chart, listeners, previous, label);\n }\n\n function handleClickEvents(chart, event) {\n var expando = chart[EXPANDO_KEY];\n var handlers = expando._listeners.click;\n var label = handlers && layout.lookup(expando._labels, event);\n\n if (label) {\n dispatchEvent(chart, handlers, label);\n }\n } // https://github.com/chartjs/chartjs-plugin-datalabels/issues/108\n\n\n function invalidate(chart) {\n if (chart.animating) {\n return;\n } // `chart.animating` can be `false` even if there is animation in progress,\n // so let's iterate all animations to find if there is one for the `chart`.\n\n\n var animations = Chart.animationService.animations;\n\n for (var i = 0, ilen = animations.length; i < ilen; ++i) {\n if (animations[i].chart === chart) {\n return;\n }\n } // No render scheduled: trigger a \"lazy\" render that can be canceled in case\n // of hover interactions. The 1ms duration is a workaround to make sure an\n // animation is created so the controller can stop it before any transition.\n\n\n chart.render({\n duration: 1,\n lazy: true\n });\n }\n\n Chart.defaults.global.plugins.datalabels = defaults;\n var plugin = {\n id: 'datalabels',\n beforeInit: function (chart) {\n chart[EXPANDO_KEY] = {\n _actives: []\n };\n },\n beforeUpdate: function (chart) {\n var expando = chart[EXPANDO_KEY];\n expando._listened = false;\n expando._listeners = {}; // {: {: {: }}}\n\n expando._datasets = []; // per dataset labels: [Label[]]\n\n expando._labels = []; // layouted labels: Label[]\n },\n afterDatasetUpdate: function (chart, args, options) {\n var datasetIndex = args.index;\n var expando = chart[EXPANDO_KEY];\n var labels = expando._datasets[datasetIndex] = [];\n var visible = chart.isDatasetVisible(datasetIndex);\n var dataset = chart.data.datasets[datasetIndex];\n var config = configure(dataset, options);\n var elements = args.meta.data || [];\n var ctx = chart.ctx;\n var i, j, ilen, jlen, cfg, key, el, label;\n ctx.save();\n\n for (i = 0, ilen = elements.length; i < ilen; ++i) {\n el = elements[i];\n el[EXPANDO_KEY] = [];\n\n if (visible && el && !el.hidden && !el._model.skip) {\n for (j = 0, jlen = config.labels.length; j < jlen; ++j) {\n cfg = config.labels[j];\n key = cfg._key;\n label = new Label(cfg, ctx, el, i);\n label.$groups = {\n _set: datasetIndex,\n _key: key || DEFAULT_KEY\n };\n label.$context = {\n active: false,\n chart: chart,\n dataIndex: i,\n dataset: dataset,\n datasetIndex: datasetIndex\n };\n label.update(label.$context);\n el[EXPANDO_KEY].push(label);\n labels.push(label);\n }\n }\n }\n\n ctx.restore(); // Store listeners at the chart level and per event type to optimize\n // cases where no listeners are registered for a specific event.\n\n helpers$4.merge(expando._listeners, config.listeners, {\n merger: function (event, target, source) {\n target[event] = target[event] || {};\n target[event][args.index] = source[event];\n expando._listened = true;\n }\n });\n },\n afterUpdate: function (chart, options) {\n chart[EXPANDO_KEY]._labels = layout.prepare(chart[EXPANDO_KEY]._datasets, options);\n },\n // Draw labels on top of all dataset elements\n // https://github.com/chartjs/chartjs-plugin-datalabels/issues/29\n // https://github.com/chartjs/chartjs-plugin-datalabels/issues/32\n afterDatasetsDraw: function (chart) {\n layout.draw(chart, chart[EXPANDO_KEY]._labels);\n },\n beforeEvent: function (chart, event) {\n // If there is no listener registered for this chart, `listened` will be false,\n // meaning we can immediately ignore the incoming event and avoid useless extra\n // computation for users who don't implement label interactions.\n if (chart[EXPANDO_KEY]._listened) {\n switch (event.type) {\n case 'mousemove':\n case 'mouseout':\n handleMoveEvents(chart, event);\n break;\n\n case 'click':\n handleClickEvents(chart, event);\n break;\n\n default:\n }\n }\n },\n afterEvent: function (chart) {\n var expando = chart[EXPANDO_KEY];\n var previous = expando._actives;\n var actives = expando._actives = chart.lastActive || []; // public API?!\n\n var updates = utils.arrayDiff(previous, actives);\n var i, ilen, j, jlen, update, label, labels;\n\n for (i = 0, ilen = updates.length; i < ilen; ++i) {\n update = updates[i];\n\n if (update[1]) {\n labels = update[0][EXPANDO_KEY] || [];\n\n for (j = 0, jlen = labels.length; j < jlen; ++j) {\n label = labels[j];\n label.$context.active = update[1] === 1;\n label.update(label.$context);\n }\n }\n }\n\n if (expando._dirty || updates.length) {\n layout.update(expando._labels);\n invalidate(chart);\n }\n\n delete expando._dirty;\n }\n }; // TODO Remove at version 1, we shouldn't automatically register plugins.\n // https://github.com/chartjs/chartjs-plugin-datalabels/issues/42\n\n Chart.plugins.register(plugin);\n return plugin;\n});","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\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\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\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","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\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 */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\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\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 return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\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 */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","var toPositiveInteger = require('../internals/to-positive-integer');\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\n\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n\n return false;\n}\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\n\n\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return arMa;\n});","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm'\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '週';\n\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年'\n }\n });\n return zhTw;\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 toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar exportTypedArrayStaticMethod = ArrayBufferViewCore.exportTypedArrayStaticMethod;\n\n// `%TypedArray%.of` method\n// https://tc39.github.io/ecma262/#sec-%typedarray%.of\nexportTypedArrayStaticMethod('of', function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = new (aTypedArrayConstructor(this))(length);\n while (length > index) result[index] = arguments[index++];\n return result;\n}, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\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 */\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;\nmodule.exports = Cancel;","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\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 var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(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); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? 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 settle(resolve, reject, response); // Clean up request\n\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\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\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\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)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request)); // Clean up request\n\n request = null;\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\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\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 } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\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); // Clean up request\n\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां']\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split('_'),\n isFormat: /MMMM(\\s)+D[oD]?/\n },\n monthsShort: 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]'\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week\n doy: 3 // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n }\n });\n return gomDeva;\n});","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split('_'),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fy;\n});","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\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 if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\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 typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n\n function plural(n) {\n return n > 1 && n < 5;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n\n case 'ss':\n // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n\n case 'mm':\n // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n\n case 'hh':\n // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n\n case 'dd':\n // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n\n case 'MM':\n // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n\n case 'yy':\n // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n\n case 3:\n return '[v stredu o] LT';\n\n case 4:\n return '[vo štvrtok o] LT';\n\n case 5:\n return '[v piatok o] LT';\n\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n\n case 3:\n return '[minulú stredu o] LT';\n\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sk;\n});","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm'\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars']\n };\n return isFuture ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1];\n }\n\n return tzl;\n});","/**\n * @license\n * Copyright 2020 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * KEY provides normalized string values for keys.\n */\nexport var KEY = {\n UNKNOWN: 'Unknown',\n BACKSPACE: 'Backspace',\n ENTER: 'Enter',\n SPACEBAR: 'Spacebar',\n PAGE_UP: 'PageUp',\n PAGE_DOWN: 'PageDown',\n END: 'End',\n HOME: 'Home',\n ARROW_LEFT: 'ArrowLeft',\n ARROW_UP: 'ArrowUp',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_DOWN: 'ArrowDown',\n DELETE: 'Delete',\n ESCAPE: 'Escape'\n};\nvar normalizedKeys = new Set(); // IE11 has no support for new Map with iterable so we need to initialize this\n// by hand.\n\nnormalizedKeys.add(KEY.BACKSPACE);\nnormalizedKeys.add(KEY.ENTER);\nnormalizedKeys.add(KEY.SPACEBAR);\nnormalizedKeys.add(KEY.PAGE_UP);\nnormalizedKeys.add(KEY.PAGE_DOWN);\nnormalizedKeys.add(KEY.END);\nnormalizedKeys.add(KEY.HOME);\nnormalizedKeys.add(KEY.ARROW_LEFT);\nnormalizedKeys.add(KEY.ARROW_UP);\nnormalizedKeys.add(KEY.ARROW_RIGHT);\nnormalizedKeys.add(KEY.ARROW_DOWN);\nnormalizedKeys.add(KEY.DELETE);\nnormalizedKeys.add(KEY.ESCAPE);\nvar KEY_CODE = {\n BACKSPACE: 8,\n ENTER: 13,\n SPACEBAR: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n ARROW_LEFT: 37,\n ARROW_UP: 38,\n ARROW_RIGHT: 39,\n ARROW_DOWN: 40,\n DELETE: 46,\n ESCAPE: 27\n};\nvar mappedKeyCodes = new Map(); // IE11 has no support for new Map with iterable so we need to initialize this\n// by hand.\n\nmappedKeyCodes.set(KEY_CODE.BACKSPACE, KEY.BACKSPACE);\nmappedKeyCodes.set(KEY_CODE.ENTER, KEY.ENTER);\nmappedKeyCodes.set(KEY_CODE.SPACEBAR, KEY.SPACEBAR);\nmappedKeyCodes.set(KEY_CODE.PAGE_UP, KEY.PAGE_UP);\nmappedKeyCodes.set(KEY_CODE.PAGE_DOWN, KEY.PAGE_DOWN);\nmappedKeyCodes.set(KEY_CODE.END, KEY.END);\nmappedKeyCodes.set(KEY_CODE.HOME, KEY.HOME);\nmappedKeyCodes.set(KEY_CODE.ARROW_LEFT, KEY.ARROW_LEFT);\nmappedKeyCodes.set(KEY_CODE.ARROW_UP, KEY.ARROW_UP);\nmappedKeyCodes.set(KEY_CODE.ARROW_RIGHT, KEY.ARROW_RIGHT);\nmappedKeyCodes.set(KEY_CODE.ARROW_DOWN, KEY.ARROW_DOWN);\nmappedKeyCodes.set(KEY_CODE.DELETE, KEY.DELETE);\nmappedKeyCodes.set(KEY_CODE.ESCAPE, KEY.ESCAPE);\nvar navigationKeys = new Set(); // IE11 has no support for new Set with iterable so we need to initialize this\n// by hand.\n\nnavigationKeys.add(KEY.PAGE_UP);\nnavigationKeys.add(KEY.PAGE_DOWN);\nnavigationKeys.add(KEY.END);\nnavigationKeys.add(KEY.HOME);\nnavigationKeys.add(KEY.ARROW_LEFT);\nnavigationKeys.add(KEY.ARROW_UP);\nnavigationKeys.add(KEY.ARROW_RIGHT);\nnavigationKeys.add(KEY.ARROW_DOWN);\n/**\n * normalizeKey returns the normalized string for a navigational action.\n */\n\nexport function normalizeKey(evt) {\n var key = evt.key; // If the event already has a normalized key, return it\n\n if (normalizedKeys.has(key)) {\n return key;\n } // tslint:disable-next-line:deprecation\n\n\n var mappedKey = mappedKeyCodes.get(evt.keyCode);\n\n if (mappedKey) {\n return mappedKey;\n }\n\n return KEY.UNKNOWN;\n}\n/**\n * isNavigationEvent returns whether the event is a navigation event\n */\n\nexport function isNavigationEvent(evt) {\n return navigationKeys.has(normalizeKey(evt));\n}","/**\n * @license\n * Copyright 2020 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar ELEMENTS_KEY_ALLOWED_IN = ['input', 'button', 'textarea', 'select'];\n/**\n * Ensures that preventDefault is only called if the containing element\n * doesn't consume the event, and it will cause an unintended scroll.\n *\n * @param evt keyboard event to be prevented.\n */\n\nexport var preventDefaultEvent = function (evt) {\n var target = evt.target;\n\n if (!target) {\n return;\n }\n\n var tagName = (\"\" + target.tagName).toLowerCase();\n\n if (ELEMENTS_KEY_ALLOWED_IN.indexOf(tagName) === -1) {\n evt.preventDefault();\n }\n};","/**\n * @license\n * Copyright 2020 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nimport { normalizeKey } from '@material/dom/keyboard';\nimport { numbers } from './constants';\nimport { preventDefaultEvent } from './events';\n/**\n * Initializes a state object for typeahead. Use the same reference for calls to\n * typeahead functions.\n *\n * @return The current state of the typeahead process. Each state reference\n * represents a typeahead instance as the reference is typically mutated\n * in-place.\n */\n\nexport function initState() {\n var state = {\n bufferClearTimeout: 0,\n currentFirstChar: '',\n sortedIndexCursor: 0,\n typeaheadBuffer: ''\n };\n return state;\n}\n/**\n * Initializes typeahead state by indexing the current list items by primary\n * text into the sortedIndexByFirstChar data structure.\n *\n * @param listItemCount numer of items in the list\n * @param getPrimaryTextByItemIndex function that returns the primary text at a\n * given index\n *\n * @return Map that maps the first character of the primary text to the full\n * list text and it's index\n */\n\nexport function initSortedIndex(listItemCount, getPrimaryTextByItemIndex) {\n var sortedIndexByFirstChar = new Map(); // Aggregate item text to index mapping\n\n for (var i = 0; i < listItemCount; i++) {\n var primaryText = getPrimaryTextByItemIndex(i).trim();\n\n if (!primaryText) {\n continue;\n }\n\n var firstChar = primaryText[0].toLowerCase();\n\n if (!sortedIndexByFirstChar.has(firstChar)) {\n sortedIndexByFirstChar.set(firstChar, []);\n }\n\n sortedIndexByFirstChar.get(firstChar).push({\n text: primaryText.toLowerCase(),\n index: i\n });\n } // Sort the mapping\n // TODO(b/157162694): Investigate replacing forEach with Map.values()\n\n\n sortedIndexByFirstChar.forEach(function (values) {\n values.sort(function (first, second) {\n return first.index - second.index;\n });\n });\n return sortedIndexByFirstChar;\n}\n/**\n * Given the next desired character from the user, it attempts to find the next\n * list option matching the buffer. Wraps around if at the end of options.\n *\n * @param opts Options and accessors\n * - nextChar - the next character to match against items\n * - sortedIndexByFirstChar - output of `initSortedIndex(...)`\n * - focusedItemIndex - the index of the currently focused item\n * - focusItemAtIndex - function that focuses a list item at given index\n * - skipFocus - whether or not to focus the matched item\n * - isItemAtIndexDisabled - function that determines whether an item at a\n * given index is disabled\n * @param state The typeahead state instance. See `initState`.\n *\n * @return The index of the matched item, or -1 if no match.\n */\n\nexport function matchItem(opts, state) {\n var nextChar = opts.nextChar,\n focusItemAtIndex = opts.focusItemAtIndex,\n sortedIndexByFirstChar = opts.sortedIndexByFirstChar,\n focusedItemIndex = opts.focusedItemIndex,\n skipFocus = opts.skipFocus,\n isItemAtIndexDisabled = opts.isItemAtIndexDisabled;\n clearTimeout(state.bufferClearTimeout);\n state.bufferClearTimeout = setTimeout(function () {\n clearBuffer(state);\n }, numbers.TYPEAHEAD_BUFFER_CLEAR_TIMEOUT_MS);\n state.typeaheadBuffer = state.typeaheadBuffer + nextChar;\n var index;\n\n if (state.typeaheadBuffer.length === 1) {\n index = matchFirstChar(sortedIndexByFirstChar, focusedItemIndex, isItemAtIndexDisabled, state);\n } else {\n index = matchAllChars(sortedIndexByFirstChar, isItemAtIndexDisabled, state);\n }\n\n if (index !== -1 && !skipFocus) {\n focusItemAtIndex(index);\n }\n\n return index;\n}\n/**\n * Matches the user's single input character in the buffer to the\n * next option that begins with such character. Wraps around if at\n * end of options. Returns -1 if no match is found.\n */\n\nfunction matchFirstChar(sortedIndexByFirstChar, focusedItemIndex, isItemAtIndexDisabled, state) {\n var firstChar = state.typeaheadBuffer[0];\n var itemsMatchingFirstChar = sortedIndexByFirstChar.get(firstChar);\n\n if (!itemsMatchingFirstChar) {\n return -1;\n } // Has the same firstChar been recently matched?\n // Also, did starting index remain the same between key presses?\n // If both hold true, simply increment index.\n\n\n if (firstChar === state.currentFirstChar && itemsMatchingFirstChar[state.sortedIndexCursor].index === focusedItemIndex) {\n state.sortedIndexCursor = (state.sortedIndexCursor + 1) % itemsMatchingFirstChar.length;\n var newIndex = itemsMatchingFirstChar[state.sortedIndexCursor].index;\n\n if (!isItemAtIndexDisabled(newIndex)) {\n return newIndex;\n }\n } // If we're here, it means one of the following happened:\n // - either firstChar or startingIndex has changed, invalidating the\n // cursor.\n // - The next item of typeahead is disabled, so we have to look further.\n\n\n state.currentFirstChar = firstChar;\n var newCursorPosition = -1;\n var cursorPosition; // Find the first non-disabled item as a fallback.\n\n for (cursorPosition = 0; cursorPosition < itemsMatchingFirstChar.length; cursorPosition++) {\n if (!isItemAtIndexDisabled(itemsMatchingFirstChar[cursorPosition].index)) {\n newCursorPosition = cursorPosition;\n break;\n }\n } // Advance cursor to first item matching the firstChar that is positioned\n // after starting item. Cursor is unchanged from fallback if there's no\n // such item.\n\n\n for (; cursorPosition < itemsMatchingFirstChar.length; cursorPosition++) {\n if (itemsMatchingFirstChar[cursorPosition].index > focusedItemIndex && !isItemAtIndexDisabled(itemsMatchingFirstChar[cursorPosition].index)) {\n newCursorPosition = cursorPosition;\n break;\n }\n }\n\n if (newCursorPosition !== -1) {\n state.sortedIndexCursor = newCursorPosition;\n return itemsMatchingFirstChar[state.sortedIndexCursor].index;\n }\n\n return -1;\n}\n/**\n * Attempts to find the next item that matches all of the typeahead buffer.\n * Wraps around if at end of options. Returns -1 if no match is found.\n */\n\n\nfunction matchAllChars(sortedIndexByFirstChar, isItemAtIndexDisabled, state) {\n var firstChar = state.typeaheadBuffer[0];\n var itemsMatchingFirstChar = sortedIndexByFirstChar.get(firstChar);\n\n if (!itemsMatchingFirstChar) {\n return -1;\n } // Do nothing if text already matches\n\n\n var startingItem = itemsMatchingFirstChar[state.sortedIndexCursor];\n\n if (startingItem.text.lastIndexOf(state.typeaheadBuffer, 0) === 0 && !isItemAtIndexDisabled(startingItem.index)) {\n return startingItem.index;\n } // Find next item that matches completely; if no match, we'll eventually\n // loop around to same position\n\n\n var cursorPosition = (state.sortedIndexCursor + 1) % itemsMatchingFirstChar.length;\n var nextCursorPosition = -1;\n\n while (cursorPosition !== state.sortedIndexCursor) {\n var currentItem = itemsMatchingFirstChar[cursorPosition];\n var matches = currentItem.text.lastIndexOf(state.typeaheadBuffer, 0) === 0;\n var isEnabled = !isItemAtIndexDisabled(currentItem.index);\n\n if (matches && isEnabled) {\n nextCursorPosition = cursorPosition;\n break;\n }\n\n cursorPosition = (cursorPosition + 1) % itemsMatchingFirstChar.length;\n }\n\n if (nextCursorPosition !== -1) {\n state.sortedIndexCursor = nextCursorPosition;\n return itemsMatchingFirstChar[state.sortedIndexCursor].index;\n }\n\n return -1;\n}\n/**\n * Whether or not the given typeahead instaance state is currently typing.\n *\n * @param state The typeahead state instance. See `initState`.\n */\n\n\nexport function isTypingInProgress(state) {\n return state.typeaheadBuffer.length > 0;\n}\n/**\n * Clears the typeahaed buffer so that it resets item matching to the first\n * character.\n *\n * @param state The typeahead state instance. See `initState`.\n */\n\nexport function clearBuffer(state) {\n state.typeaheadBuffer = '';\n}\n/**\n * Given a keydown event, it calculates whether or not to automatically focus a\n * list item depending on what was typed mimicing the typeahead functionality of\n * a standard \";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function (element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function (xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function () {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if (typeof module === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return enNz;\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","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat']\n };\n\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return et;\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.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/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.github.io/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.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/** Used as references for various `Number` constants. */\n\nvar NAN = 0 / 0;\n/** `Object#toString` result references. */\n\nvar symbolTag = '[object Symbol]';\n/** Used to match leading and trailing whitespace. */\n\nvar reTrim = /^\\s+|\\s+$/g;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/** Detect free variable `global` from Node.js. */\n\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n/** Detect free variable `self`. */\n\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\n/** Used for built-in method references. */\n\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar objectToString = objectProto.toString;\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\nvar now = function () {\n return root.Date.now();\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n\n\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n\n\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\n\nfunction isSymbol(value) {\n return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n}\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = debounce;","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\n\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return cy;\n});","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus'\n };\n\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n }\n\n function special(number) {\n return number % 10 === 0 || number > 10 && number < 20;\n }\n\n function forms(key) {\n return units[key].split('_');\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return lt;\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*/\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","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split('_'),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split('_'),\n isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split('_'),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm'\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4\n }\n });\n return ocLnc;\n});","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm'\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return eu;\n});","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n\n return result;\n\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n\n return result;\n\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n\n return result;\n\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n\n return result;\n\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n\n return result;\n\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split('_'),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n\n case 6:\n return '[prošle] [subote] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return hr;\n});","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enIl;\n});","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return enAu;\n});","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return sq;\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","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n\n function verbalNumber(number, isFuture) {\n return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n }\n });\n return fi;\n});","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\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 return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","module.exports = false;\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.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","/**\n * @license\n * Copyright 2018 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n\n/**\n * @fileoverview A \"ponyfill\" is a polyfill that doesn't modify the global prototype chain.\n * This makes ponyfills safer than traditional polyfills, especially for libraries like MDC.\n */\nexport function closest(element, selector) {\n if (element.closest) {\n return element.closest(selector);\n }\n\n var el = element;\n\n while (el) {\n if (matches(el, selector)) {\n return el;\n }\n\n el = el.parentElement;\n }\n\n return null;\n}\nexport function matches(element, selector) {\n var nativeMatches = element.matches || element.webkitMatchesSelector || element.msMatchesSelector;\n return nativeMatches.call(element, selector);\n}\n/**\n * Used to compute the estimated scroll width of elements. When an element is\n * hidden due to display: none; being applied to a parent element, the width is\n * returned as 0. However, the element will have a true width once no longer\n * inside a display: none context. This method computes an estimated width when\n * the element is hidden or returns the true width when the element is visble.\n * @param {Element} element the element whose width to estimate\n */\n\nexport function estimateScrollWidth(element) {\n // Check the offsetParent. If the element inherits display: none from any\n // parent, the offsetParent property will be null (see\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent).\n // This check ensures we only clone the node when necessary.\n var htmlEl = element;\n\n if (htmlEl.offsetParent !== null) {\n return htmlEl.scrollWidth;\n }\n\n var clone = htmlEl.cloneNode(true);\n clone.style.setProperty('position', 'absolute');\n clone.style.setProperty('transform', 'translate(-9999px, -9999px)');\n document.documentElement.appendChild(clone);\n var scrollWidth = clone.scrollWidth;\n document.documentElement.removeChild(clone);\n return scrollWidth;\n}","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\"\n };\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n\n var a = number % 10,\n b = number % 100 - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return tr;\n});","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.github.io/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enCa;\n});","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return arKw;\n});","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\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.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0'\n },\n pluralForm = function (n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 12th is the first week of the year.\n\n }\n });\n return arLy;\n});","\"use strict\";\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function () {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n__exportStar(require(\"./types\"), exports);\n\n__exportStar(require(\"./MetaData\"), exports);\n\n__exportStar(require(\"./MetaSection\"), exports);\n\n__exportStar(require(\"./regression-plugin\"), exports);","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split('_'),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm'\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L'\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return cv;\n});","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = new (aTypedArrayConstructor(C))(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return it instanceof ArrayBuffer || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n return isTypedArrayIndex(target, key = toPrimitive(key, true))\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n if (isTypedArrayIndex(target, key = toPrimitive(key, true))\n && isObject(descriptor)\n && has(descriptor, 'value')\n && !has(descriptor, 'get')\n && !has(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!has(descriptor, 'writable') || descriptor.writable)\n && (!has(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructor, CONSTRUCTOR_NAME);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructor, CONSTRUCTOR_NAME);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return typedArrayFrom.call(TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({\n global: true, forced: TypedArrayConstructor != NativeTypedArrayConstructor, sham: !NATIVE_ARRAY_BUFFER_VIEWS\n }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n return frCa;\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","/**\n shave - Shave is a javascript plugin that truncates multi-line text within a html element based on set max height\n @version v2.5.9\n @link https://github.com/yowainwright/shave#readme\n @author Jeff Wainwright (jeffry.in)\n @license MIT\n**/\nfunction shave(target, maxHeight) {\n var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (typeof maxHeight === 'undefined' || isNaN(maxHeight)) throw Error('maxHeight is required');\n var els = typeof target === 'string' ? document.querySelectorAll(target) : target;\n if (!els) return;\n var character = opts.character || '…';\n var classname = opts.classname || 'js-shave';\n var spaces = typeof opts.spaces === 'boolean' ? opts.spaces : true;\n var charHtml = \"\".concat(character, \"\");\n if (!('length' in els)) els = [els];\n\n for (var i = 0; i < els.length; i += 1) {\n var el = els[i];\n var styles = el.style;\n var span = el.querySelector(\".\".concat(classname));\n var textProp = el.textContent === undefined ? 'innerText' : 'textContent'; // If element text has already been shaved\n\n if (span) {\n // Remove the ellipsis to recapture the original text\n el.removeChild(el.querySelector('.js-shave-char'));\n el[textProp] = el[textProp]; // eslint-disable-line\n // nuke span, recombine text\n }\n\n var fullText = el[textProp];\n var words = spaces ? fullText.split(' ') : fullText; // If 0 or 1 words, we're done\n\n if (words.length < 2) continue; // Temporarily remove any CSS height for text height calculation\n\n var heightStyle = styles.height;\n styles.height = 'auto';\n var maxHeightStyle = styles.maxHeight;\n styles.maxHeight = 'none'; // If already short enough, we're done\n\n if (el.offsetHeight <= maxHeight) {\n styles.height = heightStyle;\n styles.maxHeight = maxHeightStyle;\n continue;\n } // Binary search for number of words which can fit in allotted height\n\n\n var max = words.length - 1;\n var min = 0;\n var pivot = void 0;\n\n while (min < max) {\n pivot = min + max + 1 >> 1; // eslint-disable-line no-bitwise\n\n el[textProp] = spaces ? words.slice(0, pivot).join(' ') : words.slice(0, pivot);\n el.insertAdjacentHTML('beforeend', charHtml);\n if (el.offsetHeight > maxHeight) max = pivot - 1;else min = pivot;\n }\n\n el[textProp] = spaces ? words.slice(0, max).join(' ') : words.slice(0, max);\n el.insertAdjacentHTML('beforeend', charHtml);\n var diff = spaces ? \" \".concat(words.slice(max).join(' ')) : words.slice(max);\n var shavedText = document.createTextNode(diff);\n var elWithShavedText = document.createElement('span');\n elWithShavedText.classList.add(classname);\n elWithShavedText.style.display = 'none';\n elWithShavedText.appendChild(shavedText);\n el.insertAdjacentElement('beforeend', elWithShavedText);\n styles.height = heightStyle;\n styles.maxHeight = maxHeightStyle;\n }\n}\n\nexport default shave;","'use strict';\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 */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh'\n };\n return number + ' ' + mutation(format[key], number);\n }\n\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n\n default:\n return number + ' vloaz';\n }\n }\n\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n\n return number;\n }\n\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n\n return text;\n }\n\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z'\n };\n\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [/^gen/i, /^c[ʼ\\']hwe/i, /^meu/i, /^ebr/i, /^mae/i, /^(mez|eve)/i, /^gou/i, /^eos/i, /^gwe/i, /^her/i, /^du/i, /^ker/i],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [/^sul/i, /^lun/i, /^meurzh/i, /^merc[ʼ\\']her/i, /^yaou/i, /^gwener/i, /^sadorn/i],\n shortWeekdaysParse = [/^Sul/i, /^Lun/i, /^Meu/i, /^Mer/i, /^Yao/i, /^Gwe/i, /^Sad/i],\n minWeekdaysParse = [/^Su/i, /^Lu/i, /^Me([^r]|$)/i, /^Mer/i, /^Ya/i, /^Gw/i, /^Sa/i];\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split('_'),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n\n },\n meridiemParse: /a.m.|g.m./,\n // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n }\n });\n return br;\n});","var $ = require('../internals/export');\n\nvar $hypot = Math.hypot;\nvar abs = Math.abs;\nvar sqrt = Math.sqrt;\n\n// Chrome 77 bug\n// https://bugs.chromium.org/p/v8/issues/detail?id=9546\nvar BUGGY = !!$hypot && $hypot(Infinity, NaN) !== Infinity;\n\n// `Math.hypot` method\n// https://tc39.github.io/ecma262/#sec-math.hypot\n$({ target: 'Math', stat: true, forced: BUGGY }, {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * sqrt(sum);\n }\n});\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = ['[prošle] [nedjelje] [u] LT', '[prošlog] [ponedjeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srijede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 7th is the first week of the year.\n\n }\n });\n return me;\n});","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split('_'),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1,\n // Maandag is die eerste dag van die week.\n doy: 4 // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n\n }\n });\n return af;\n});","/**\n * @license\n * Copyright 2020 Google Inc.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\nvar FOCUS_SENTINEL_CLASS = 'mdc-dom-focus-sentinel';\n/**\n * Utility to trap focus in a given root element, e.g. for modal components such\n * as dialogs. The root should have at least one focusable child element,\n * for setting initial focus when trapping focus.\n * Also tracks the previously focused element, and restores focus to that\n * element when releasing focus.\n */\n\nvar FocusTrap =\n/** @class */\nfunction () {\n function FocusTrap(root, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.root = root;\n this.options = options; // Previously focused element before trapping focus.\n\n this.elFocusedBeforeTrapFocus = null;\n }\n /**\n * Traps focus in `root`. Also focuses on either `initialFocusEl` if set;\n * otherwises sets initial focus to the first focusable child element.\n */\n\n\n FocusTrap.prototype.trapFocus = function () {\n var focusableEls = this.getFocusableElements(this.root);\n\n if (focusableEls.length === 0) {\n throw new Error('FocusTrap: Element must have at least one focusable child.');\n }\n\n this.elFocusedBeforeTrapFocus = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n this.wrapTabFocus(this.root, focusableEls);\n\n if (!this.options.skipInitialFocus) {\n this.focusInitialElement(focusableEls, this.options.initialFocusEl);\n }\n };\n /**\n * Releases focus from `root`. Also restores focus to the previously focused\n * element.\n */\n\n\n FocusTrap.prototype.releaseFocus = function () {\n [].slice.call(this.root.querySelectorAll(\".\" + FOCUS_SENTINEL_CLASS)).forEach(function (sentinelEl) {\n sentinelEl.parentElement.removeChild(sentinelEl);\n });\n\n if (this.elFocusedBeforeTrapFocus) {\n this.elFocusedBeforeTrapFocus.focus();\n }\n };\n /**\n * Wraps tab focus within `el` by adding two hidden sentinel divs which are\n * used to mark the beginning and the end of the tabbable region. When\n * focused, these sentinel elements redirect focus to the first/last\n * children elements of the tabbable region, ensuring that focus is trapped\n * within that region.\n */\n\n\n FocusTrap.prototype.wrapTabFocus = function (el, focusableEls) {\n var sentinelStart = this.createSentinel();\n var sentinelEnd = this.createSentinel();\n sentinelStart.addEventListener('focus', function () {\n if (focusableEls.length > 0) {\n focusableEls[focusableEls.length - 1].focus();\n }\n });\n sentinelEnd.addEventListener('focus', function () {\n if (focusableEls.length > 0) {\n focusableEls[0].focus();\n }\n });\n el.insertBefore(sentinelStart, el.children[0]);\n el.appendChild(sentinelEnd);\n };\n /**\n * Focuses on `initialFocusEl` if defined and a child of the root element.\n * Otherwise, focuses on the first focusable child element of the root.\n */\n\n\n FocusTrap.prototype.focusInitialElement = function (focusableEls, initialFocusEl) {\n var focusIndex = 0;\n\n if (initialFocusEl) {\n focusIndex = Math.max(focusableEls.indexOf(initialFocusEl), 0);\n }\n\n focusableEls[focusIndex].focus();\n };\n\n FocusTrap.prototype.getFocusableElements = function (root) {\n var focusableEls = [].slice.call(root.querySelectorAll('[autofocus], [tabindex], a, input, textarea, select, button'));\n return focusableEls.filter(function (el) {\n var isDisabledOrHidden = el.getAttribute('aria-disabled') === 'true' || el.getAttribute('disabled') != null || el.getAttribute('hidden') != null || el.getAttribute('aria-hidden') === 'true';\n var isTabbableAndVisible = el.tabIndex >= 0 && el.getBoundingClientRect().width > 0 && !el.classList.contains(FOCUS_SENTINEL_CLASS) && !isDisabledOrHidden;\n var isProgrammaticallyHidden = false;\n\n if (isTabbableAndVisible) {\n var style = getComputedStyle(el);\n isProgrammaticallyHidden = style.display === 'none' || style.visibility === 'hidden';\n }\n\n return isTabbableAndVisible && !isProgrammaticallyHidden;\n });\n };\n\n FocusTrap.prototype.createSentinel = function () {\n var sentinel = document.createElement('div');\n sentinel.setAttribute('tabindex', '0'); // Don't announce in screen readers.\n\n sentinel.setAttribute('aria-hidden', 'true');\n sentinel.classList.add(FOCUS_SENTINEL_CLASS);\n return sentinel;\n };\n\n return FocusTrap;\n}();\n\nexport { FocusTrap };","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\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 no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","exports.f = Object.getOwnPropertySymbols;\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n;\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠'\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0'\n };\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات'\n },\n preparse: function (string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n }\n });\n return arSa;\n});","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.github.io/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (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 new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function () {\n try {\n return require('moment');\n } catch (e) {}\n }()) : typeof define === 'function' && define.amd ? define(['require'], function (require) {\n return factory(function () {\n try {\n return require('moment');\n } catch (e) {}\n }());\n }) : (global = global || self, global.Chart = factory(global.moment));\n})(this, function (moment) {\n 'use strict';\n\n moment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n function getCjsExportFromNamespace(n) {\n return n && n['default'] || n;\n }\n\n var colorName = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50]\n };\n var conversions = createCommonjsModule(function (module) {\n /* MIT license */\n // NOTE: conversions should only return primitive values (i.e. arrays, or\n // values that give correct `typeof` results).\n // do not use box values types (i.e. Number(), String(), etc.)\n var reverseKeywords = {};\n\n for (var key in colorName) {\n if (colorName.hasOwnProperty(key)) {\n reverseKeywords[colorName[key]] = key;\n }\n }\n\n var convert = module.exports = {\n rgb: {\n channels: 3,\n labels: 'rgb'\n },\n hsl: {\n channels: 3,\n labels: 'hsl'\n },\n hsv: {\n channels: 3,\n labels: 'hsv'\n },\n hwb: {\n channels: 3,\n labels: 'hwb'\n },\n cmyk: {\n channels: 4,\n labels: 'cmyk'\n },\n xyz: {\n channels: 3,\n labels: 'xyz'\n },\n lab: {\n channels: 3,\n labels: 'lab'\n },\n lch: {\n channels: 3,\n labels: 'lch'\n },\n hex: {\n channels: 1,\n labels: ['hex']\n },\n keyword: {\n channels: 1,\n labels: ['keyword']\n },\n ansi16: {\n channels: 1,\n labels: ['ansi16']\n },\n ansi256: {\n channels: 1,\n labels: ['ansi256']\n },\n hcg: {\n channels: 3,\n labels: ['h', 'c', 'g']\n },\n apple: {\n channels: 3,\n labels: ['r16', 'g16', 'b16']\n },\n gray: {\n channels: 1,\n labels: ['gray']\n }\n }; // hide .channels and .labels properties\n\n for (var model in convert) {\n if (convert.hasOwnProperty(model)) {\n if (!('channels' in convert[model])) {\n throw new Error('missing channels property: ' + model);\n }\n\n if (!('labels' in convert[model])) {\n throw new Error('missing channel labels property: ' + model);\n }\n\n if (convert[model].labels.length !== convert[model].channels) {\n throw new Error('channel and label counts mismatch: ' + model);\n }\n\n var channels = convert[model].channels;\n var labels = convert[model].labels;\n delete convert[model].channels;\n delete convert[model].labels;\n Object.defineProperty(convert[model], 'channels', {\n value: channels\n });\n Object.defineProperty(convert[model], 'labels', {\n value: labels\n });\n }\n }\n\n convert.rgb.hsl = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var delta = max - min;\n var h;\n var s;\n var l;\n\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n\n h = Math.min(h * 60, 360);\n\n if (h < 0) {\n h += 360;\n }\n\n l = (min + max) / 2;\n\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n\n return [h, s * 100, l * 100];\n };\n\n convert.rgb.hsv = function (rgb) {\n var rdif;\n var gdif;\n var bdif;\n var h;\n var s;\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var v = Math.max(r, g, b);\n var diff = v - Math.min(r, g, b);\n\n var diffc = function (c) {\n return (v - c) / 6 / diff + 1 / 2;\n };\n\n if (diff === 0) {\n h = s = 0;\n } else {\n s = diff / v;\n rdif = diffc(r);\n gdif = diffc(g);\n bdif = diffc(b);\n\n if (r === v) {\n h = bdif - gdif;\n } else if (g === v) {\n h = 1 / 3 + rdif - bdif;\n } else if (b === v) {\n h = 2 / 3 + gdif - rdif;\n }\n\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n }\n\n return [h * 360, s * 100, v * 100];\n };\n\n convert.rgb.hwb = function (rgb) {\n var r = rgb[0];\n var g = rgb[1];\n var b = rgb[2];\n var h = convert.rgb.hsl(rgb)[0];\n var w = 1 / 255 * Math.min(r, Math.min(g, b));\n b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n return [h, w * 100, b * 100];\n };\n\n convert.rgb.cmyk = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var c;\n var m;\n var y;\n var k;\n k = Math.min(1 - r, 1 - g, 1 - b);\n c = (1 - r - k) / (1 - k) || 0;\n m = (1 - g - k) / (1 - k) || 0;\n y = (1 - b - k) / (1 - k) || 0;\n return [c * 100, m * 100, y * 100, k * 100];\n };\n /**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\n\n\n function comparativeDistance(x, y) {\n return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);\n }\n\n convert.rgb.keyword = function (rgb) {\n var reversed = reverseKeywords[rgb];\n\n if (reversed) {\n return reversed;\n }\n\n var currentClosestDistance = Infinity;\n var currentClosestKeyword;\n\n for (var keyword in colorName) {\n if (colorName.hasOwnProperty(keyword)) {\n var value = colorName[keyword]; // Compute comparative distance\n\n var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest\n\n if (distance < currentClosestDistance) {\n currentClosestDistance = distance;\n currentClosestKeyword = keyword;\n }\n }\n }\n\n return currentClosestKeyword;\n };\n\n convert.keyword.rgb = function (keyword) {\n return colorName[keyword];\n };\n\n convert.rgb.xyz = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255; // assume sRGB\n\n r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n return [x * 100, y * 100, z * 100];\n };\n\n convert.rgb.lab = function (rgb) {\n var xyz = convert.rgb.xyz(rgb);\n var x = xyz[0];\n var y = xyz[1];\n var z = xyz[2];\n var l;\n var a;\n var b;\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n l = 116 * y - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n return [l, a, b];\n };\n\n convert.hsl.rgb = function (hsl) {\n var h = hsl[0] / 360;\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var t1;\n var t2;\n var t3;\n var rgb;\n var val;\n\n if (s === 0) {\n val = l * 255;\n return [val, val, val];\n }\n\n if (l < 0.5) {\n t2 = l * (1 + s);\n } else {\n t2 = l + s - l * s;\n }\n\n t1 = 2 * l - t2;\n rgb = [0, 0, 0];\n\n for (var i = 0; i < 3; i++) {\n t3 = h + 1 / 3 * -(i - 1);\n\n if (t3 < 0) {\n t3++;\n }\n\n if (t3 > 1) {\n t3--;\n }\n\n if (6 * t3 < 1) {\n val = t1 + (t2 - t1) * 6 * t3;\n } else if (2 * t3 < 1) {\n val = t2;\n } else if (3 * t3 < 2) {\n val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n } else {\n val = t1;\n }\n\n rgb[i] = val * 255;\n }\n\n return rgb;\n };\n\n convert.hsl.hsv = function (hsl) {\n var h = hsl[0];\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var smin = s;\n var lmin = Math.max(l, 0.01);\n var sv;\n var v;\n l *= 2;\n s *= l <= 1 ? l : 2 - l;\n smin *= lmin <= 1 ? lmin : 2 - lmin;\n v = (l + s) / 2;\n sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);\n return [h, sv * 100, v * 100];\n };\n\n convert.hsv.rgb = function (hsv) {\n var h = hsv[0] / 60;\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var hi = Math.floor(h) % 6;\n var f = h - Math.floor(h);\n var p = 255 * v * (1 - s);\n var q = 255 * v * (1 - s * f);\n var t = 255 * v * (1 - s * (1 - f));\n v *= 255;\n\n switch (hi) {\n case 0:\n return [v, t, p];\n\n case 1:\n return [q, v, p];\n\n case 2:\n return [p, v, t];\n\n case 3:\n return [p, q, v];\n\n case 4:\n return [t, p, v];\n\n case 5:\n return [v, p, q];\n }\n };\n\n convert.hsv.hsl = function (hsv) {\n var h = hsv[0];\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var vmin = Math.max(v, 0.01);\n var lmin;\n var sl;\n var l;\n l = (2 - s) * v;\n lmin = (2 - s) * vmin;\n sl = s * vmin;\n sl /= lmin <= 1 ? lmin : 2 - lmin;\n sl = sl || 0;\n l /= 2;\n return [h, sl * 100, l * 100];\n }; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb\n\n\n convert.hwb.rgb = function (hwb) {\n var h = hwb[0] / 360;\n var wh = hwb[1] / 100;\n var bl = hwb[2] / 100;\n var ratio = wh + bl;\n var i;\n var v;\n var f;\n var n; // wh + bl cant be > 1\n\n if (ratio > 1) {\n wh /= ratio;\n bl /= ratio;\n }\n\n i = Math.floor(6 * h);\n v = 1 - bl;\n f = 6 * h - i;\n\n if ((i & 0x01) !== 0) {\n f = 1 - f;\n }\n\n n = wh + f * (v - wh); // linear interpolation\n\n var r;\n var g;\n var b;\n\n switch (i) {\n default:\n case 6:\n case 0:\n r = v;\n g = n;\n b = wh;\n break;\n\n case 1:\n r = n;\n g = v;\n b = wh;\n break;\n\n case 2:\n r = wh;\n g = v;\n b = n;\n break;\n\n case 3:\n r = wh;\n g = n;\n b = v;\n break;\n\n case 4:\n r = n;\n g = wh;\n b = v;\n break;\n\n case 5:\n r = v;\n g = wh;\n b = n;\n break;\n }\n\n return [r * 255, g * 255, b * 255];\n };\n\n convert.cmyk.rgb = function (cmyk) {\n var c = cmyk[0] / 100;\n var m = cmyk[1] / 100;\n var y = cmyk[2] / 100;\n var k = cmyk[3] / 100;\n var r;\n var g;\n var b;\n r = 1 - Math.min(1, c * (1 - k) + k);\n g = 1 - Math.min(1, m * (1 - k) + k);\n b = 1 - Math.min(1, y * (1 - k) + k);\n return [r * 255, g * 255, b * 255];\n };\n\n convert.xyz.rgb = function (xyz) {\n var x = xyz[0] / 100;\n var y = xyz[1] / 100;\n var z = xyz[2] / 100;\n var r;\n var g;\n var b;\n r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n b = x * 0.0557 + y * -0.2040 + z * 1.0570; // assume sRGB\n\n r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;\n g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;\n b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92;\n r = Math.min(Math.max(0, r), 1);\n g = Math.min(Math.max(0, g), 1);\n b = Math.min(Math.max(0, b), 1);\n return [r * 255, g * 255, b * 255];\n };\n\n convert.xyz.lab = function (xyz) {\n var x = xyz[0];\n var y = xyz[1];\n var z = xyz[2];\n var l;\n var a;\n var b;\n x /= 95.047;\n y /= 100;\n z /= 108.883;\n x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n l = 116 * y - 16;\n a = 500 * (x - y);\n b = 200 * (y - z);\n return [l, a, b];\n };\n\n convert.lab.xyz = function (lab) {\n var l = lab[0];\n var a = lab[1];\n var b = lab[2];\n var x;\n var y;\n var z;\n y = (l + 16) / 116;\n x = a / 500 + y;\n z = y - b / 200;\n var y2 = Math.pow(y, 3);\n var x2 = Math.pow(x, 3);\n var z2 = Math.pow(z, 3);\n y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n x *= 95.047;\n y *= 100;\n z *= 108.883;\n return [x, y, z];\n };\n\n convert.lab.lch = function (lab) {\n var l = lab[0];\n var a = lab[1];\n var b = lab[2];\n var hr;\n var h;\n var c;\n hr = Math.atan2(b, a);\n h = hr * 360 / 2 / Math.PI;\n\n if (h < 0) {\n h += 360;\n }\n\n c = Math.sqrt(a * a + b * b);\n return [l, c, h];\n };\n\n convert.lch.lab = function (lch) {\n var l = lch[0];\n var c = lch[1];\n var h = lch[2];\n var a;\n var b;\n var hr;\n hr = h / 360 * 2 * Math.PI;\n a = c * Math.cos(hr);\n b = c * Math.sin(hr);\n return [l, a, b];\n };\n\n convert.rgb.ansi16 = function (args) {\n var r = args[0];\n var g = args[1];\n var b = args[2];\n var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n value = Math.round(value / 50);\n\n if (value === 0) {\n return 30;\n }\n\n var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n\n if (value === 2) {\n ansi += 60;\n }\n\n return ansi;\n };\n\n convert.hsv.ansi16 = function (args) {\n // optimization here; we already know the value and don't need to get\n // it converted for us.\n return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n };\n\n convert.rgb.ansi256 = function (args) {\n var r = args[0];\n var g = args[1];\n var b = args[2]; // we use the extended greyscale palette here, with the exception of\n // black and white. normal palette only has 4 greyscale shades.\n\n if (r === g && g === b) {\n if (r < 8) {\n return 16;\n }\n\n if (r > 248) {\n return 231;\n }\n\n return Math.round((r - 8) / 247 * 24) + 232;\n }\n\n var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n return ansi;\n };\n\n convert.ansi16.rgb = function (args) {\n var color = args % 10; // handle greyscale\n\n if (color === 0 || color === 7) {\n if (args > 50) {\n color += 3.5;\n }\n\n color = color / 10.5 * 255;\n return [color, color, color];\n }\n\n var mult = (~~(args > 50) + 1) * 0.5;\n var r = (color & 1) * mult * 255;\n var g = (color >> 1 & 1) * mult * 255;\n var b = (color >> 2 & 1) * mult * 255;\n return [r, g, b];\n };\n\n convert.ansi256.rgb = function (args) {\n // handle greyscale\n if (args >= 232) {\n var c = (args - 232) * 10 + 8;\n return [c, c, c];\n }\n\n args -= 16;\n var rem;\n var r = Math.floor(args / 36) / 5 * 255;\n var g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n var b = rem % 6 / 5 * 255;\n return [r, g, b];\n };\n\n convert.rgb.hex = function (args) {\n var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);\n var string = integer.toString(16).toUpperCase();\n return '000000'.substring(string.length) + string;\n };\n\n convert.hex.rgb = function (args) {\n var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\n if (!match) {\n return [0, 0, 0];\n }\n\n var colorString = match[0];\n\n if (match[0].length === 3) {\n colorString = colorString.split('').map(function (char) {\n return char + char;\n }).join('');\n }\n\n var integer = parseInt(colorString, 16);\n var r = integer >> 16 & 0xFF;\n var g = integer >> 8 & 0xFF;\n var b = integer & 0xFF;\n return [r, g, b];\n };\n\n convert.rgb.hcg = function (rgb) {\n var r = rgb[0] / 255;\n var g = rgb[1] / 255;\n var b = rgb[2] / 255;\n var max = Math.max(Math.max(r, g), b);\n var min = Math.min(Math.min(r, g), b);\n var chroma = max - min;\n var grayscale;\n var hue;\n\n if (chroma < 1) {\n grayscale = min / (1 - chroma);\n } else {\n grayscale = 0;\n }\n\n if (chroma <= 0) {\n hue = 0;\n } else if (max === r) {\n hue = (g - b) / chroma % 6;\n } else if (max === g) {\n hue = 2 + (b - r) / chroma;\n } else {\n hue = 4 + (r - g) / chroma + 4;\n }\n\n hue /= 6;\n hue %= 1;\n return [hue * 360, chroma * 100, grayscale * 100];\n };\n\n convert.hsl.hcg = function (hsl) {\n var s = hsl[1] / 100;\n var l = hsl[2] / 100;\n var c = 1;\n var f = 0;\n\n if (l < 0.5) {\n c = 2.0 * s * l;\n } else {\n c = 2.0 * s * (1.0 - l);\n }\n\n if (c < 1.0) {\n f = (l - 0.5 * c) / (1.0 - c);\n }\n\n return [hsl[0], c * 100, f * 100];\n };\n\n convert.hsv.hcg = function (hsv) {\n var s = hsv[1] / 100;\n var v = hsv[2] / 100;\n var c = s * v;\n var f = 0;\n\n if (c < 1.0) {\n f = (v - c) / (1 - c);\n }\n\n return [hsv[0], c * 100, f * 100];\n };\n\n convert.hcg.rgb = function (hcg) {\n var h = hcg[0] / 360;\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n\n if (c === 0.0) {\n return [g * 255, g * 255, g * 255];\n }\n\n var pure = [0, 0, 0];\n var hi = h % 1 * 6;\n var v = hi % 1;\n var w = 1 - v;\n var mg = 0;\n\n switch (Math.floor(hi)) {\n case 0:\n pure[0] = 1;\n pure[1] = v;\n pure[2] = 0;\n break;\n\n case 1:\n pure[0] = w;\n pure[1] = 1;\n pure[2] = 0;\n break;\n\n case 2:\n pure[0] = 0;\n pure[1] = 1;\n pure[2] = v;\n break;\n\n case 3:\n pure[0] = 0;\n pure[1] = w;\n pure[2] = 1;\n break;\n\n case 4:\n pure[0] = v;\n pure[1] = 0;\n pure[2] = 1;\n break;\n\n default:\n pure[0] = 1;\n pure[1] = 0;\n pure[2] = w;\n }\n\n mg = (1.0 - c) * g;\n return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];\n };\n\n convert.hcg.hsv = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var v = c + g * (1.0 - c);\n var f = 0;\n\n if (v > 0.0) {\n f = c / v;\n }\n\n return [hcg[0], f * 100, v * 100];\n };\n\n convert.hcg.hsl = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var l = g * (1.0 - c) + 0.5 * c;\n var s = 0;\n\n if (l > 0.0 && l < 0.5) {\n s = c / (2 * l);\n } else if (l >= 0.5 && l < 1.0) {\n s = c / (2 * (1 - l));\n }\n\n return [hcg[0], s * 100, l * 100];\n };\n\n convert.hcg.hwb = function (hcg) {\n var c = hcg[1] / 100;\n var g = hcg[2] / 100;\n var v = c + g * (1.0 - c);\n return [hcg[0], (v - c) * 100, (1 - v) * 100];\n };\n\n convert.hwb.hcg = function (hwb) {\n var w = hwb[1] / 100;\n var b = hwb[2] / 100;\n var v = 1 - b;\n var c = v - w;\n var g = 0;\n\n if (c < 1) {\n g = (v - c) / (1 - c);\n }\n\n return [hwb[0], c * 100, g * 100];\n };\n\n convert.apple.rgb = function (apple) {\n return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n };\n\n convert.rgb.apple = function (rgb) {\n return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n };\n\n convert.gray.rgb = function (args) {\n return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n };\n\n convert.gray.hsl = convert.gray.hsv = function (args) {\n return [0, 0, args[0]];\n };\n\n convert.gray.hwb = function (gray) {\n return [0, 100, gray[0]];\n };\n\n convert.gray.cmyk = function (gray) {\n return [0, 0, 0, gray[0]];\n };\n\n convert.gray.lab = function (gray) {\n return [gray[0], 0, 0];\n };\n\n convert.gray.hex = function (gray) {\n var val = Math.round(gray[0] / 100 * 255) & 0xFF;\n var integer = (val << 16) + (val << 8) + val;\n var string = integer.toString(16).toUpperCase();\n return '000000'.substring(string.length) + string;\n };\n\n convert.rgb.gray = function (rgb) {\n var val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n return [val / 255 * 100];\n };\n });\n var conversions_1 = conversions.rgb;\n var conversions_2 = conversions.hsl;\n var conversions_3 = conversions.hsv;\n var conversions_4 = conversions.hwb;\n var conversions_5 = conversions.cmyk;\n var conversions_6 = conversions.xyz;\n var conversions_7 = conversions.lab;\n var conversions_8 = conversions.lch;\n var conversions_9 = conversions.hex;\n var conversions_10 = conversions.keyword;\n var conversions_11 = conversions.ansi16;\n var conversions_12 = conversions.ansi256;\n var conversions_13 = conversions.hcg;\n var conversions_14 = conversions.apple;\n var conversions_15 = conversions.gray;\n /*\n \tthis function routes a model to all other models.\n \n \tall functions that are routed have a property `.conversion` attached\n \tto the returned synthetic function. This property is an array\n \tof strings, each with the steps in between the 'from' and 'to'\n \tcolor models (inclusive).\n \n \tconversions that are not possible simply are not included.\n */\n\n function buildGraph() {\n var graph = {}; // https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\n var models = Object.keys(conversions);\n\n for (var len = models.length, i = 0; i < len; i++) {\n graph[models[i]] = {\n // http://jsperf.com/1-vs-infinity\n // micro-opt, but this is simple.\n distance: -1,\n parent: null\n };\n }\n\n return graph;\n } // https://en.wikipedia.org/wiki/Breadth-first_search\n\n\n function deriveBFS(fromModel) {\n var graph = buildGraph();\n var queue = [fromModel]; // unshift -> queue -> pop\n\n graph[fromModel].distance = 0;\n\n while (queue.length) {\n var current = queue.pop();\n var adjacents = Object.keys(conversions[current]);\n\n for (var len = adjacents.length, i = 0; i < len; i++) {\n var adjacent = adjacents[i];\n var node = graph[adjacent];\n\n if (node.distance === -1) {\n node.distance = graph[current].distance + 1;\n node.parent = current;\n queue.unshift(adjacent);\n }\n }\n }\n\n return graph;\n }\n\n function link(from, to) {\n return function (args) {\n return to(from(args));\n };\n }\n\n function wrapConversion(toModel, graph) {\n var path = [graph[toModel].parent, toModel];\n var fn = conversions[graph[toModel].parent][toModel];\n var cur = graph[toModel].parent;\n\n while (graph[cur].parent) {\n path.unshift(graph[cur].parent);\n fn = link(conversions[graph[cur].parent][cur], fn);\n cur = graph[cur].parent;\n }\n\n fn.conversion = path;\n return fn;\n }\n\n var route = function (fromModel) {\n var graph = deriveBFS(fromModel);\n var conversion = {};\n var models = Object.keys(graph);\n\n for (var len = models.length, i = 0; i < len; i++) {\n var toModel = models[i];\n var node = graph[toModel];\n\n if (node.parent === null) {\n // no possible conversion, or this node is the source model.\n continue;\n }\n\n conversion[toModel] = wrapConversion(toModel, graph);\n }\n\n return conversion;\n };\n\n var convert = {};\n var models = Object.keys(conversions);\n\n function wrapRaw(fn) {\n var wrappedFn = function (args) {\n if (args === undefined || args === null) {\n return args;\n }\n\n if (arguments.length > 1) {\n args = Array.prototype.slice.call(arguments);\n }\n\n return fn(args);\n }; // preserve .conversion property if there is one\n\n\n if ('conversion' in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n\n return wrappedFn;\n }\n\n function wrapRounded(fn) {\n var wrappedFn = function (args) {\n if (args === undefined || args === null) {\n return args;\n }\n\n if (arguments.length > 1) {\n args = Array.prototype.slice.call(arguments);\n }\n\n var result = fn(args); // we're assuming the result is an array here.\n // see notice in conversions.js; don't use box types\n // in conversion functions.\n\n if (typeof result === 'object') {\n for (var len = result.length, i = 0; i < len; i++) {\n result[i] = Math.round(result[i]);\n }\n }\n\n return result;\n }; // preserve .conversion property if there is one\n\n\n if ('conversion' in fn) {\n wrappedFn.conversion = fn.conversion;\n }\n\n return wrappedFn;\n }\n\n models.forEach(function (fromModel) {\n convert[fromModel] = {};\n Object.defineProperty(convert[fromModel], 'channels', {\n value: conversions[fromModel].channels\n });\n Object.defineProperty(convert[fromModel], 'labels', {\n value: conversions[fromModel].labels\n });\n var routes = route(fromModel);\n var routeModels = Object.keys(routes);\n routeModels.forEach(function (toModel) {\n var fn = routes[toModel];\n convert[fromModel][toModel] = wrapRounded(fn);\n convert[fromModel][toModel].raw = wrapRaw(fn);\n });\n });\n var colorConvert = convert;\n var colorName$1 = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50]\n };\n /* MIT license */\n\n var colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n };\n\n function getRgba(string) {\n if (!string) {\n return;\n }\n\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n\n if (hexAlpha) {\n a = Math.round(parseInt(hexAlpha + hexAlpha, 16) / 255 * 100) / 100;\n }\n } else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n\n if (hexAlpha) {\n a = Math.round(parseInt(hexAlpha, 16) / 255 * 100) / 100;\n }\n } else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n\n a = parseFloat(match[4]);\n } else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n\n a = parseFloat(match[4]);\n } else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n\n rgb = colorName$1[match[1]];\n\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n\n if (!a && a != 0) {\n a = 1;\n } else {\n a = scale(a, 0, 1);\n }\n\n rgb[3] = a;\n return rgb;\n }\n\n function getHsla(string) {\n if (!string) {\n return;\n }\n\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n }\n\n function getHwb(string) {\n if (!string) {\n return;\n }\n\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n }\n\n function getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n }\n\n function getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n }\n\n function getAlpha(string) {\n var vals = getRgba(string);\n\n if (vals) {\n return vals[3];\n } else if (vals = getHsla(string)) {\n return vals[3];\n } else if (vals = getHwb(string)) {\n return vals[3];\n }\n } // generators\n\n\n function hexString(rgba, a) {\n var a = a !== undefined && rgba.length === 3 ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) + hexDouble(rgba[1]) + hexDouble(rgba[2]) + (a >= 0 && a < 1 ? hexDouble(Math.round(a * 255)) : \"\");\n }\n\n function rgbString(rgba, alpha) {\n if (alpha < 1 || rgba[3] && rgba[3] < 1) {\n return rgbaString(rgba, alpha);\n }\n\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n }\n\n function rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = rgba[3] !== undefined ? rgba[3] : 1;\n }\n\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \", \" + alpha + \")\";\n }\n\n function percentString(rgba, alpha) {\n if (alpha < 1 || rgba[3] && rgba[3] < 1) {\n return percentaString(rgba, alpha);\n }\n\n var r = Math.round(rgba[0] / 255 * 100),\n g = Math.round(rgba[1] / 255 * 100),\n b = Math.round(rgba[2] / 255 * 100);\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n }\n\n function percentaString(rgba, alpha) {\n var r = Math.round(rgba[0] / 255 * 100),\n g = Math.round(rgba[1] / 255 * 100),\n b = Math.round(rgba[2] / 255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n }\n\n function hslString(hsla, alpha) {\n if (alpha < 1 || hsla[3] && hsla[3] < 1) {\n return hslaString(hsla, alpha);\n }\n\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n }\n\n function hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = hsla[3] !== undefined ? hsla[3] : 1;\n }\n\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \" + alpha + \")\";\n } // hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n // (hwb have alpha optional & 1 is default value)\n\n\n function hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = hwb[3] !== undefined ? hwb[3] : 1;\n }\n\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\" + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n }\n\n function keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n } // helpers\n\n\n function scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n }\n\n function hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return str.length < 2 ? \"0\" + str : str;\n } //create a list of reverse color names\n\n\n var reverseNames = {};\n\n for (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n }\n /* MIT license */\n\n\n var Color = function (obj) {\n if (obj instanceof Color) {\n return obj;\n }\n\n if (!(this instanceof Color)) {\n return new Color(obj);\n }\n\n this.valid = false;\n this.values = {\n rgb: [0, 0, 0],\n hsl: [0, 0, 0],\n hsv: [0, 0, 0],\n hwb: [0, 0, 0],\n cmyk: [0, 0, 0, 0],\n alpha: 1\n }; // parse Color() argument\n\n var vals;\n\n if (typeof obj === 'string') {\n vals = colorString.getRgba(obj);\n\n if (vals) {\n this.setValues('rgb', vals);\n } else if (vals = colorString.getHsla(obj)) {\n this.setValues('hsl', vals);\n } else if (vals = colorString.getHwb(obj)) {\n this.setValues('hwb', vals);\n }\n } else if (typeof obj === 'object') {\n vals = obj;\n\n if (vals.r !== undefined || vals.red !== undefined) {\n this.setValues('rgb', vals);\n } else if (vals.l !== undefined || vals.lightness !== undefined) {\n this.setValues('hsl', vals);\n } else if (vals.v !== undefined || vals.value !== undefined) {\n this.setValues('hsv', vals);\n } else if (vals.w !== undefined || vals.whiteness !== undefined) {\n this.setValues('hwb', vals);\n } else if (vals.c !== undefined || vals.cyan !== undefined) {\n this.setValues('cmyk', vals);\n }\n }\n };\n\n Color.prototype = {\n isValid: function () {\n return this.valid;\n },\n rgb: function () {\n return this.setSpace('rgb', arguments);\n },\n hsl: function () {\n return this.setSpace('hsl', arguments);\n },\n hsv: function () {\n return this.setSpace('hsv', arguments);\n },\n hwb: function () {\n return this.setSpace('hwb', arguments);\n },\n cmyk: function () {\n return this.setSpace('cmyk', arguments);\n },\n rgbArray: function () {\n return this.values.rgb;\n },\n hslArray: function () {\n return this.values.hsl;\n },\n hsvArray: function () {\n return this.values.hsv;\n },\n hwbArray: function () {\n var values = this.values;\n\n if (values.alpha !== 1) {\n return values.hwb.concat([values.alpha]);\n }\n\n return values.hwb;\n },\n cmykArray: function () {\n return this.values.cmyk;\n },\n rgbaArray: function () {\n var values = this.values;\n return values.rgb.concat([values.alpha]);\n },\n hslaArray: function () {\n var values = this.values;\n return values.hsl.concat([values.alpha]);\n },\n alpha: function (val) {\n if (val === undefined) {\n return this.values.alpha;\n }\n\n this.setValues('alpha', val);\n return this;\n },\n red: function (val) {\n return this.setChannel('rgb', 0, val);\n },\n green: function (val) {\n return this.setChannel('rgb', 1, val);\n },\n blue: function (val) {\n return this.setChannel('rgb', 2, val);\n },\n hue: function (val) {\n if (val) {\n val %= 360;\n val = val < 0 ? 360 + val : val;\n }\n\n return this.setChannel('hsl', 0, val);\n },\n saturation: function (val) {\n return this.setChannel('hsl', 1, val);\n },\n lightness: function (val) {\n return this.setChannel('hsl', 2, val);\n },\n saturationv: function (val) {\n return this.setChannel('hsv', 1, val);\n },\n whiteness: function (val) {\n return this.setChannel('hwb', 1, val);\n },\n blackness: function (val) {\n return this.setChannel('hwb', 2, val);\n },\n value: function (val) {\n return this.setChannel('hsv', 2, val);\n },\n cyan: function (val) {\n return this.setChannel('cmyk', 0, val);\n },\n magenta: function (val) {\n return this.setChannel('cmyk', 1, val);\n },\n yellow: function (val) {\n return this.setChannel('cmyk', 2, val);\n },\n black: function (val) {\n return this.setChannel('cmyk', 3, val);\n },\n hexString: function () {\n return colorString.hexString(this.values.rgb);\n },\n rgbString: function () {\n return colorString.rgbString(this.values.rgb, this.values.alpha);\n },\n rgbaString: function () {\n return colorString.rgbaString(this.values.rgb, this.values.alpha);\n },\n percentString: function () {\n return colorString.percentString(this.values.rgb, this.values.alpha);\n },\n hslString: function () {\n return colorString.hslString(this.values.hsl, this.values.alpha);\n },\n hslaString: function () {\n return colorString.hslaString(this.values.hsl, this.values.alpha);\n },\n hwbString: function () {\n return colorString.hwbString(this.values.hwb, this.values.alpha);\n },\n keyword: function () {\n return colorString.keyword(this.values.rgb, this.values.alpha);\n },\n rgbNumber: function () {\n var rgb = this.values.rgb;\n return rgb[0] << 16 | rgb[1] << 8 | rgb[2];\n },\n luminosity: function () {\n // http://www.w3.org/TR/WCAG20/#relativeluminancedef\n var rgb = this.values.rgb;\n var lum = [];\n\n for (var i = 0; i < rgb.length; i++) {\n var chan = rgb[i] / 255;\n lum[i] = chan <= 0.03928 ? chan / 12.92 : Math.pow((chan + 0.055) / 1.055, 2.4);\n }\n\n return 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n },\n contrast: function (color2) {\n // http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n var lum1 = this.luminosity();\n var lum2 = color2.luminosity();\n\n if (lum1 > lum2) {\n return (lum1 + 0.05) / (lum2 + 0.05);\n }\n\n return (lum2 + 0.05) / (lum1 + 0.05);\n },\n level: function (color2) {\n var contrastRatio = this.contrast(color2);\n\n if (contrastRatio >= 7.1) {\n return 'AAA';\n }\n\n return contrastRatio >= 4.5 ? 'AA' : '';\n },\n dark: function () {\n // YIQ equation from http://24ways.org/2010/calculating-color-contrast\n var rgb = this.values.rgb;\n var yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n return yiq < 128;\n },\n light: function () {\n return !this.dark();\n },\n negate: function () {\n var rgb = [];\n\n for (var i = 0; i < 3; i++) {\n rgb[i] = 255 - this.values.rgb[i];\n }\n\n this.setValues('rgb', rgb);\n return this;\n },\n lighten: function (ratio) {\n var hsl = this.values.hsl;\n hsl[2] += hsl[2] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n darken: function (ratio) {\n var hsl = this.values.hsl;\n hsl[2] -= hsl[2] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n saturate: function (ratio) {\n var hsl = this.values.hsl;\n hsl[1] += hsl[1] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n desaturate: function (ratio) {\n var hsl = this.values.hsl;\n hsl[1] -= hsl[1] * ratio;\n this.setValues('hsl', hsl);\n return this;\n },\n whiten: function (ratio) {\n var hwb = this.values.hwb;\n hwb[1] += hwb[1] * ratio;\n this.setValues('hwb', hwb);\n return this;\n },\n blacken: function (ratio) {\n var hwb = this.values.hwb;\n hwb[2] += hwb[2] * ratio;\n this.setValues('hwb', hwb);\n return this;\n },\n greyscale: function () {\n var rgb = this.values.rgb; // http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\n var val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n this.setValues('rgb', [val, val, val]);\n return this;\n },\n clearer: function (ratio) {\n var alpha = this.values.alpha;\n this.setValues('alpha', alpha - alpha * ratio);\n return this;\n },\n opaquer: function (ratio) {\n var alpha = this.values.alpha;\n this.setValues('alpha', alpha + alpha * ratio);\n return this;\n },\n rotate: function (degrees) {\n var hsl = this.values.hsl;\n var hue = (hsl[0] + degrees) % 360;\n hsl[0] = hue < 0 ? 360 + hue : hue;\n this.setValues('hsl', hsl);\n return this;\n },\n\n /**\n * Ported from sass implementation in C\n * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n */\n mix: function (mixinColor, weight) {\n var color1 = this;\n var color2 = mixinColor;\n var p = weight === undefined ? 0.5 : weight;\n var w = 2 * p - 1;\n var a = color1.alpha() - color2.alpha();\n var w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n var w2 = 1 - w1;\n return this.rgb(w1 * color1.red() + w2 * color2.red(), w1 * color1.green() + w2 * color2.green(), w1 * color1.blue() + w2 * color2.blue()).alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n },\n toJSON: function () {\n return this.rgb();\n },\n clone: function () {\n // NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n // making the final build way to big to embed in Chart.js. So let's do it manually,\n // assuming that values to clone are 1 dimension arrays containing only numbers,\n // except 'alpha' which is a number.\n var result = new Color();\n var source = this.values;\n var target = result.values;\n var value, type;\n\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n value = source[prop];\n type = {}.toString.call(value);\n\n if (type === '[object Array]') {\n target[prop] = value.slice(0);\n } else if (type === '[object Number]') {\n target[prop] = value;\n } else {}\n }\n }\n\n return result;\n }\n };\n Color.prototype.spaces = {\n rgb: ['red', 'green', 'blue'],\n hsl: ['hue', 'saturation', 'lightness'],\n hsv: ['hue', 'saturation', 'value'],\n hwb: ['hue', 'whiteness', 'blackness'],\n cmyk: ['cyan', 'magenta', 'yellow', 'black']\n };\n Color.prototype.maxes = {\n rgb: [255, 255, 255],\n hsl: [360, 100, 100],\n hsv: [360, 100, 100],\n hwb: [360, 100, 100],\n cmyk: [100, 100, 100, 100]\n };\n\n Color.prototype.getValues = function (space) {\n var values = this.values;\n var vals = {};\n\n for (var i = 0; i < space.length; i++) {\n vals[space.charAt(i)] = values[space][i];\n }\n\n if (values.alpha !== 1) {\n vals.a = values.alpha;\n } // {r: 255, g: 255, b: 255, a: 0.4}\n\n\n return vals;\n };\n\n Color.prototype.setValues = function (space, vals) {\n var values = this.values;\n var spaces = this.spaces;\n var maxes = this.maxes;\n var alpha = 1;\n var i;\n this.valid = true;\n\n if (space === 'alpha') {\n alpha = vals;\n } else if (vals.length) {\n // [10, 10, 10]\n values[space] = vals.slice(0, space.length);\n alpha = vals[space.length];\n } else if (vals[space.charAt(0)] !== undefined) {\n // {r: 10, g: 10, b: 10}\n for (i = 0; i < space.length; i++) {\n values[space][i] = vals[space.charAt(i)];\n }\n\n alpha = vals.a;\n } else if (vals[spaces[space][0]] !== undefined) {\n // {red: 10, green: 10, blue: 10}\n var chans = spaces[space];\n\n for (i = 0; i < space.length; i++) {\n values[space][i] = vals[chans[i]];\n }\n\n alpha = vals.alpha;\n }\n\n values.alpha = Math.max(0, Math.min(1, alpha === undefined ? values.alpha : alpha));\n\n if (space === 'alpha') {\n return false;\n }\n\n var capped; // cap values of the space prior converting all values\n\n for (i = 0; i < space.length; i++) {\n capped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n values[space][i] = Math.round(capped);\n } // convert to all the other color spaces\n\n\n for (var sname in spaces) {\n if (sname !== space) {\n values[sname] = colorConvert[space][sname](values[space]);\n }\n }\n\n return true;\n };\n\n Color.prototype.setSpace = function (space, args) {\n var vals = args[0];\n\n if (vals === undefined) {\n // color.rgb()\n return this.getValues(space);\n } // color.rgb(10, 10, 10)\n\n\n if (typeof vals === 'number') {\n vals = Array.prototype.slice.call(args);\n }\n\n this.setValues(space, vals);\n return this;\n };\n\n Color.prototype.setChannel = function (space, index, val) {\n var svalues = this.values[space];\n\n if (val === undefined) {\n // color.red()\n return svalues[index];\n } else if (val === svalues[index]) {\n // color.red(color.red())\n return this;\n } // color.red(100)\n\n\n svalues[index] = val;\n this.setValues(space, svalues);\n return this;\n };\n\n if (typeof window !== 'undefined') {\n window.Color = Color;\n }\n\n var chartjsColor = Color;\n\n function isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n }\n /**\r\n * @namespace Chart.helpers\r\n */\n\n\n var helpers = {\n /**\r\n * An empty function that can be used, for example, for optional callback.\r\n */\n noop: function () {},\n\n /**\r\n * Returns a unique id, sequentially generated from a global variable.\r\n * @returns {number}\r\n * @function\r\n */\n uid: function () {\n var id = 0;\n return function () {\n return id++;\n };\n }(),\n\n /**\r\n * Returns true if `value` is neither null nor undefined, else returns false.\r\n * @param {*} value - The value to test.\r\n * @returns {boolean}\r\n * @since 2.7.0\r\n */\n isNullOrUndef: function (value) {\n return value === null || typeof value === 'undefined';\n },\n\n /**\r\n * Returns true if `value` is an array (including typed arrays), else returns false.\r\n * @param {*} value - The value to test.\r\n * @returns {boolean}\r\n * @function\r\n */\n isArray: function (value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n\n var type = Object.prototype.toString.call(value);\n\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n\n return false;\n },\n\n /**\r\n * Returns true if `value` is an object (excluding null), else returns false.\r\n * @param {*} value - The value to test.\r\n * @returns {boolean}\r\n * @since 2.7.0\r\n */\n isObject: function (value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n },\n\n /**\r\n * Returns true if `value` is a finite number, else returns false\r\n * @param {*} value - The value to test.\r\n * @returns {boolean}\r\n */\n isFinite: function (value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(value);\n },\n\n /**\r\n * Returns `value` if defined, else returns `defaultValue`.\r\n * @param {*} value - The value to return if defined.\r\n * @param {*} defaultValue - The value to return if `value` is undefined.\r\n * @returns {*}\r\n */\n valueOrDefault: function (value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n },\n\n /**\r\n * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n * @param {Array} value - The array to lookup for value at `index`.\r\n * @param {number} index - The index in `value` to lookup for value.\r\n * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n * @returns {*}\r\n */\n valueAtIndexOrDefault: function (value, index, defaultValue) {\n return helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n },\n\n /**\r\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n * @param {function} fn - The function to call.\r\n * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n * @returns {*}\r\n */\n callback: function (fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n },\n\n /**\r\n * Note(SB) for performance sake, this method should only be used when loopable type\r\n * is unknown or in none intensive code (not called often and small loopable). Else\r\n * it's preferable to use a regular for() loop and save extra function calls.\r\n * @param {object|Array} loopable - The object or array to be iterated.\r\n * @param {function} fn - The function to call for each item.\r\n * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n */\n each: function (loopable, fn, thisArg, reverse) {\n var i, len, keys;\n\n if (helpers.isArray(loopable)) {\n len = loopable.length;\n\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (helpers.isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n },\n\n /**\r\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n * @see https://stackoverflow.com/a/14853974\r\n * @param {Array} a0 - The array to compare\r\n * @param {Array} a1 - The array to compare\r\n * @returns {boolean}\r\n */\n arrayEquals: function (a0, a1) {\n var i, ilen, v0, v1;\n\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n\n if (v0 instanceof Array && v1 instanceof Array) {\n if (!helpers.arrayEquals(v0, v1)) {\n return false;\n }\n } else if (v0 !== v1) {\n // NOTE: two different object instances will never be equal: {x:20} != {x:20}\n return false;\n }\n }\n\n return true;\n },\n\n /**\r\n * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n * @param {*} source - The value to clone.\r\n * @returns {*}\r\n */\n clone: function (source) {\n if (helpers.isArray(source)) {\n return source.map(helpers.clone);\n }\n\n if (helpers.isObject(source)) {\n var target = Object.create(source);\n var keys = Object.keys(source);\n var klen = keys.length;\n var k = 0;\n\n for (; k < klen; ++k) {\n target[keys[k]] = helpers.clone(source[keys[k]]);\n }\n\n return target;\n }\n\n return source;\n },\n\n /**\r\n * The default merger when Chart.helpers.merge is called without merger option.\r\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n * @private\r\n */\n _merger: function (key, target, source, options) {\n if (!isValidKey(key)) {\n // We want to ensure we do not copy prototypes over\n // as this can pollute global namespaces\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (helpers.isObject(tval) && helpers.isObject(sval)) {\n helpers.merge(tval, sval, options);\n } else {\n target[key] = helpers.clone(sval);\n }\n },\n\n /**\r\n * Merges source[key] in target[key] only if target[key] is undefined.\r\n * @private\r\n */\n _mergerIf: function (key, target, source) {\n if (!isValidKey(key)) {\n // We want to ensure we do not copy prototypes over\n // as this can pollute global namespaces\n return;\n }\n\n var tval = target[key];\n var sval = source[key];\n\n if (helpers.isObject(tval) && helpers.isObject(sval)) {\n helpers.mergeIf(tval, sval);\n } else if (!target.hasOwnProperty(key)) {\n target[key] = helpers.clone(sval);\n }\n },\n\n /**\r\n * Recursively deep copies `source` properties into `target` with the given `options`.\r\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n * @param {object} target - The target object in which all sources are merged into.\r\n * @param {object|object[]} source - Object(s) to merge into `target`.\r\n * @param {object} [options] - Merging options:\r\n * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n * @returns {object} The `target` object.\r\n */\n merge: function (target, source, options) {\n var sources = helpers.isArray(source) ? source : [source];\n var ilen = sources.length;\n var merge, i, keys, klen, k;\n\n if (!helpers.isObject(target)) {\n return target;\n }\n\n options = options || {};\n merge = options.merger || helpers._merger;\n\n for (i = 0; i < ilen; ++i) {\n source = sources[i];\n\n if (!helpers.isObject(source)) {\n continue;\n }\n\n keys = Object.keys(source);\n\n for (k = 0, klen = keys.length; k < klen; ++k) {\n merge(keys[k], target, source, options);\n }\n }\n\n return target;\n },\n\n /**\r\n * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n * @param {object} target - The target object in which all sources are merged into.\r\n * @param {object|object[]} source - Object(s) to merge into `target`.\r\n * @returns {object} The `target` object.\r\n */\n mergeIf: function (target, source) {\n return helpers.merge(target, source, {\n merger: helpers._mergerIf\n });\n },\n\n /**\r\n * Applies the contents of two or more objects together into the first object.\r\n * @param {object} target - The target object in which all objects are merged into.\r\n * @param {object} arg1 - Object containing additional properties to merge in target.\r\n * @param {object} argN - Additional objects containing properties to merge in target.\r\n * @returns {object} The `target` object.\r\n */\n extend: Object.assign || function (target) {\n return helpers.merge(target, [].slice.call(arguments, 1), {\n merger: function (key, dst, src) {\n dst[key] = src[key];\n }\n });\n },\n\n /**\r\n * Basic javascript inheritance based on the model created in Backbone.js\r\n */\n inherits: function (extensions) {\n var me = this;\n var ChartElement = extensions && extensions.hasOwnProperty('constructor') ? extensions.constructor : function () {\n return me.apply(this, arguments);\n };\n\n var Surrogate = function () {\n this.constructor = ChartElement;\n };\n\n Surrogate.prototype = me.prototype;\n ChartElement.prototype = new Surrogate();\n ChartElement.extend = helpers.inherits;\n\n if (extensions) {\n helpers.extend(ChartElement.prototype, extensions);\n }\n\n ChartElement.__super__ = me.prototype;\n return ChartElement;\n },\n _deprecated: function (scope, value, previous, current) {\n if (value !== undefined) {}\n }\n };\n var helpers_core = helpers; // DEPRECATIONS\n\n /**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n\n helpers.callCallback = helpers.callback;\n /**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n\n helpers.indexOf = function (array, item, fromIndex) {\n return Array.prototype.indexOf.call(array, item, fromIndex);\n };\n /**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n\n\n helpers.getValueOrDefault = helpers.valueOrDefault;\n /**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n\n helpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n /**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\n\n var effects = {\n linear: function (t) {\n return t;\n },\n easeInQuad: function (t) {\n return t * t;\n },\n easeOutQuad: function (t) {\n return -t * (t - 2);\n },\n easeInOutQuad: function (t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t;\n }\n\n return -0.5 * (--t * (t - 2) - 1);\n },\n easeInCubic: function (t) {\n return t * t * t;\n },\n easeOutCubic: function (t) {\n return (t = t - 1) * t * t + 1;\n },\n easeInOutCubic: function (t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t;\n }\n\n return 0.5 * ((t -= 2) * t * t + 2);\n },\n easeInQuart: function (t) {\n return t * t * t * t;\n },\n easeOutQuart: function (t) {\n return -((t = t - 1) * t * t * t - 1);\n },\n easeInOutQuart: function (t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t * t;\n }\n\n return -0.5 * ((t -= 2) * t * t * t - 2);\n },\n easeInQuint: function (t) {\n return t * t * t * t * t;\n },\n easeOutQuint: function (t) {\n return (t = t - 1) * t * t * t * t + 1;\n },\n easeInOutQuint: function (t) {\n if ((t /= 0.5) < 1) {\n return 0.5 * t * t * t * t * t;\n }\n\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n },\n easeInSine: function (t) {\n return -Math.cos(t * (Math.PI / 2)) + 1;\n },\n easeOutSine: function (t) {\n return Math.sin(t * (Math.PI / 2));\n },\n easeInOutSine: function (t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n },\n easeInExpo: function (t) {\n return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));\n },\n easeOutExpo: function (t) {\n return t === 1 ? 1 : -Math.pow(2, -10 * t) + 1;\n },\n easeInOutExpo: function (t) {\n if (t === 0) {\n return 0;\n }\n\n if (t === 1) {\n return 1;\n }\n\n if ((t /= 0.5) < 1) {\n return 0.5 * Math.pow(2, 10 * (t - 1));\n }\n\n return 0.5 * (-Math.pow(2, -10 * --t) + 2);\n },\n easeInCirc: function (t) {\n if (t >= 1) {\n return t;\n }\n\n return -(Math.sqrt(1 - t * t) - 1);\n },\n easeOutCirc: function (t) {\n return Math.sqrt(1 - (t = t - 1) * t);\n },\n easeInOutCirc: function (t) {\n if ((t /= 0.5) < 1) {\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n }\n\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n },\n easeInElastic: function (t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n\n if (t === 0) {\n return 0;\n }\n\n if (t === 1) {\n return 1;\n }\n\n if (!p) {\n p = 0.3;\n }\n\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n\n return -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n },\n easeOutElastic: function (t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n\n if (t === 0) {\n return 0;\n }\n\n if (t === 1) {\n return 1;\n }\n\n if (!p) {\n p = 0.3;\n }\n\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n\n return a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n },\n easeInOutElastic: function (t) {\n var s = 1.70158;\n var p = 0;\n var a = 1;\n\n if (t === 0) {\n return 0;\n }\n\n if ((t /= 0.5) === 2) {\n return 1;\n }\n\n if (!p) {\n p = 0.45;\n }\n\n if (a < 1) {\n a = 1;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(1 / a);\n }\n\n if (t < 1) {\n return -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n }\n\n return a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n },\n easeInBack: function (t) {\n var s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack: function (t) {\n var s = 1.70158;\n return (t = t - 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack: function (t) {\n var s = 1.70158;\n\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: function (t) {\n return 1 - effects.easeOutBounce(1 - t);\n },\n easeOutBounce: function (t) {\n if (t < 1 / 2.75) {\n return 7.5625 * t * t;\n }\n\n if (t < 2 / 2.75) {\n return 7.5625 * (t -= 1.5 / 2.75) * t + 0.75;\n }\n\n if (t < 2.5 / 2.75) {\n return 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375;\n }\n\n return 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375;\n },\n easeInOutBounce: function (t) {\n if (t < 0.5) {\n return effects.easeInBounce(t * 2) * 0.5;\n }\n\n return effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n }\n };\n var helpers_easing = {\n effects: effects\n }; // DEPRECATIONS\n\n /**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n\n helpers_core.easingEffects = effects;\n var PI = Math.PI;\n var RAD_PER_DEG = PI / 180;\n var DOUBLE_PI = PI * 2;\n var HALF_PI = PI / 2;\n var QUARTER_PI = PI / 4;\n var TWO_THIRDS_PI = PI * 2 / 3;\n /**\r\n * @namespace Chart.helpers.canvas\r\n */\n\n var exports$1 = {\n /**\r\n * Clears the entire canvas associated to the given `chart`.\r\n * @param {Chart} chart - The chart for which to clear the canvas.\r\n */\n clear: function (chart) {\n chart.ctx.clearRect(0, 0, chart.width, chart.height);\n },\n\n /**\r\n * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n * given size (width, height) and the same `radius` for all corners.\r\n * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n * @param {number} width - The rectangle's width.\r\n * @param {number} height - The rectangle's height.\r\n * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n */\n roundedRect: function (ctx, x, y, width, height, radius) {\n if (radius) {\n var r = Math.min(radius, height / 2, width / 2);\n var left = x + r;\n var top = y + r;\n var right = x + width - r;\n var bottom = y + height - r;\n ctx.moveTo(x, top);\n\n if (left < right && top < bottom) {\n ctx.arc(left, top, r, -PI, -HALF_PI);\n ctx.arc(right, top, r, -HALF_PI, 0);\n ctx.arc(right, bottom, r, 0, HALF_PI);\n ctx.arc(left, bottom, r, HALF_PI, PI);\n } else if (left < right) {\n ctx.moveTo(left, y);\n ctx.arc(right, top, r, -HALF_PI, HALF_PI);\n ctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n } else if (top < bottom) {\n ctx.arc(left, top, r, -PI, 0);\n ctx.arc(left, bottom, r, 0, PI);\n } else {\n ctx.arc(left, top, r, -PI, PI);\n }\n\n ctx.closePath();\n ctx.moveTo(x, y);\n } else {\n ctx.rect(x, y, width, height);\n }\n },\n drawPoint: function (ctx, style, radius, x, y, rotation) {\n var type, xOffset, yOffset, size, cornerRadius;\n var rad = (rotation || 0) * RAD_PER_DEG;\n\n if (style && typeof style === 'object') {\n type = style.toString();\n\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n\n ctx.beginPath();\n\n switch (style) {\n // Default includes circle\n default:\n ctx.arc(x, y, radius, 0, DOUBLE_PI);\n ctx.closePath();\n break;\n\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n\n rad += QUARTER_PI;\n\n /* falls through */\n\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n\n case 'crossRot':\n rad += QUARTER_PI;\n\n /* falls through */\n\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n\n ctx.fill();\n ctx.stroke();\n },\n\n /**\r\n * Returns true if the point is inside the rectangle\r\n * @param {object} point - The point to test\r\n * @param {object} area - The rectangle\r\n * @returns {boolean}\r\n * @private\r\n */\n _isPointInArea: function (point, area) {\n var epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n return point.x > area.left - epsilon && point.x < area.right + epsilon && point.y > area.top - epsilon && point.y < area.bottom + epsilon;\n },\n clipArea: function (ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n },\n unclipArea: function (ctx) {\n ctx.restore();\n },\n lineTo: function (ctx, previous, target, flip) {\n var stepped = target.steppedLine;\n\n if (stepped) {\n if (stepped === 'middle') {\n var midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, flip ? target.y : previous.y);\n ctx.lineTo(midpoint, flip ? previous.y : target.y);\n } else if (stepped === 'after' && !flip || stepped !== 'after' && flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n\n ctx.lineTo(target.x, target.y);\n return;\n }\n\n if (!target.tension) {\n ctx.lineTo(target.x, target.y);\n return;\n }\n\n ctx.bezierCurveTo(flip ? previous.controlPointPreviousX : previous.controlPointNextX, flip ? previous.controlPointPreviousY : previous.controlPointNextY, flip ? target.controlPointNextX : target.controlPointPreviousX, flip ? target.controlPointNextY : target.controlPointPreviousY, target.x, target.y);\n }\n };\n var helpers_canvas = exports$1; // DEPRECATIONS\n\n /**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n\n helpers_core.clear = exports$1.clear;\n /**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n\n helpers_core.drawRoundedRectangle = function (ctx) {\n ctx.beginPath();\n exports$1.roundedRect.apply(exports$1, arguments);\n };\n\n var defaults = {\n /**\r\n * @private\r\n */\n _set: function (scope, values) {\n return helpers_core.merge(this[scope] || (this[scope] = {}), values);\n }\n }; // TODO(v3): remove 'global' from namespace. all default are global and\n // there's inconsistency around which options are under 'global'\n\n defaults._set('global', {\n defaultColor: 'rgba(0,0,0,0.1)',\n defaultFontColor: '#666',\n defaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n defaultFontSize: 12,\n defaultFontStyle: 'normal',\n defaultLineHeight: 1.2,\n showLines: true\n });\n\n var core_defaults = defaults;\n var valueOrDefault = helpers_core.valueOrDefault;\n /**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\n\n function toFontString(font) {\n if (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n return null;\n }\n\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n }\n /**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\n\n\n var helpers_options = {\n /**\r\n * Converts the given line height `value` in pixels for a specific font `size`.\r\n * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n * @since 2.7.0\r\n */\n toLineHeight: function (value, size) {\n var matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n\n value = +matches[2];\n\n switch (matches[3]) {\n case 'px':\n return value;\n\n case '%':\n value /= 100;\n break;\n }\n\n return size * value;\n },\n\n /**\r\n * Converts the given value into a padding object with pre-computed width/height.\r\n * @param {number|object} value - If a number, set the value to all TRBL component,\r\n * else, if and object, use defined properties and sets undefined ones to 0.\r\n * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n * @since 2.7.0\r\n */\n toPadding: function (value) {\n var t, r, b, l;\n\n if (helpers_core.isObject(value)) {\n t = +value.top || 0;\n r = +value.right || 0;\n b = +value.bottom || 0;\n l = +value.left || 0;\n } else {\n t = r = b = l = +value || 0;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n height: t + b,\n width: l + r\n };\n },\n\n /**\r\n * Parses font options and returns the font object.\r\n * @param {object} options - A object that contains font options to be parsed.\r\n * @return {object} The font object.\r\n * @todo Support font.* options and renamed to toFont().\r\n * @private\r\n */\n _parseFont: function (options) {\n var globalDefaults = core_defaults.global;\n var size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n var font = {\n family: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n lineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n size: size,\n style: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n weight: null,\n string: ''\n };\n font.string = toFontString(font);\n return font;\n },\n\n /**\r\n * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n * @param {Array} inputs - An array of values, falling back to the last value.\r\n * @param {object} [context] - If defined and the current value is a function, the value\r\n * is called with `context` as first argument and the result becomes the new input.\r\n * @param {number} [index] - If defined and the current value is an array, the value\r\n * at `index` become the new input.\r\n * @param {object} [info] - object to return information about resolution in\r\n * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n * @since 2.7.0\r\n */\n resolve: function (inputs, context, index, info) {\n var cacheable = true;\n var i, ilen, value;\n\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n\n if (value === undefined) {\n continue;\n }\n\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n\n if (index !== undefined && helpers_core.isArray(value)) {\n value = value[index];\n cacheable = false;\n }\n\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n\n return value;\n }\n }\n }\n };\n /**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\n\n var exports$2 = {\n /**\r\n * Returns an array of factors sorted from 1 to sqrt(value)\r\n * @private\r\n */\n _factorize: function (value) {\n var result = [];\n var sqrt = Math.sqrt(value);\n var i;\n\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n\n if (sqrt === (sqrt | 0)) {\n // if value is a square number\n result.push(sqrt);\n }\n\n result.sort(function (a, b) {\n return a - b;\n }).pop();\n return result;\n },\n log10: Math.log10 || function (x) {\n var exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n // Check for whole powers of 10,\n // which due to floating point rounding error should be corrected.\n\n var powerOf10 = Math.round(exponent);\n var isPowerOf10 = x === Math.pow(10, powerOf10);\n return isPowerOf10 ? powerOf10 : exponent;\n }\n };\n var helpers_math = exports$2; // DEPRECATIONS\n\n /**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n\n helpers_core.log10 = exports$2.log10;\n\n var getRtlAdapter = function (rectX, width) {\n return {\n x: function (x) {\n return rectX + rectX + width - x;\n },\n setWidth: function (w) {\n width = w;\n },\n textAlign: function (align) {\n if (align === 'center') {\n return align;\n }\n\n return align === 'right' ? 'left' : 'right';\n },\n xPlus: function (x, value) {\n return x - value;\n },\n leftForLtr: function (x, itemWidth) {\n return x - itemWidth;\n }\n };\n };\n\n var getLtrAdapter = function () {\n return {\n x: function (x) {\n return x;\n },\n setWidth: function (w) {// eslint-disable-line no-unused-vars\n },\n textAlign: function (align) {\n return align;\n },\n xPlus: function (x, value) {\n return x + value;\n },\n leftForLtr: function (x, _itemWidth) {\n // eslint-disable-line no-unused-vars\n return x;\n }\n };\n };\n\n var getAdapter = function (rtl, rectX, width) {\n return rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\n };\n\n var overrideTextDirection = function (ctx, direction) {\n var style, original;\n\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [style.getPropertyValue('direction'), style.getPropertyPriority('direction')];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n };\n\n var restoreTextDirection = function (ctx) {\n var original = ctx.prevTextDirection;\n\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n };\n\n var helpers_rtl = {\n getRtlAdapter: getAdapter,\n overrideTextDirection: overrideTextDirection,\n restoreTextDirection: restoreTextDirection\n };\n var helpers$1 = helpers_core;\n var easing = helpers_easing;\n var canvas = helpers_canvas;\n var options = helpers_options;\n var math = helpers_math;\n var rtl = helpers_rtl;\n helpers$1.easing = easing;\n helpers$1.canvas = canvas;\n helpers$1.options = options;\n helpers$1.math = math;\n helpers$1.rtl = rtl;\n\n function interpolate(start, view, model, ease) {\n var keys = Object.keys(model);\n var i, ilen, key, actual, origin, target, type, c0, c1;\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n target = model[key]; // if a value is added to the model after pivot() has been called, the view\n // doesn't contain it, so let's initialize the view to the target value.\n\n if (!view.hasOwnProperty(key)) {\n view[key] = target;\n }\n\n actual = view[key];\n\n if (actual === target || key[0] === '_') {\n continue;\n }\n\n if (!start.hasOwnProperty(key)) {\n start[key] = actual;\n }\n\n origin = start[key];\n type = typeof target;\n\n if (type === typeof origin) {\n if (type === 'string') {\n c0 = chartjsColor(origin);\n\n if (c0.valid) {\n c1 = chartjsColor(target);\n\n if (c1.valid) {\n view[key] = c1.mix(c0, ease).rgbString();\n continue;\n }\n }\n } else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n view[key] = origin + (target - origin) * ease;\n continue;\n }\n }\n\n view[key] = target;\n }\n }\n\n var Element = function (configuration) {\n helpers$1.extend(this, configuration);\n this.initialize.apply(this, arguments);\n };\n\n helpers$1.extend(Element.prototype, {\n _type: undefined,\n initialize: function () {\n this.hidden = false;\n },\n pivot: function () {\n var me = this;\n\n if (!me._view) {\n me._view = helpers$1.extend({}, me._model);\n }\n\n me._start = {};\n return me;\n },\n transition: function (ease) {\n var me = this;\n var model = me._model;\n var start = me._start;\n var view = me._view; // No animation -> No Transition\n\n if (!model || ease === 1) {\n me._view = helpers$1.extend({}, model);\n me._start = null;\n return me;\n }\n\n if (!view) {\n view = me._view = {};\n }\n\n if (!start) {\n start = me._start = {};\n }\n\n interpolate(start, view, model, ease);\n return me;\n },\n tooltipPosition: function () {\n return {\n x: this._model.x,\n y: this._model.y\n };\n },\n hasValue: function () {\n return helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n }\n });\n Element.extend = helpers$1.inherits;\n var core_element = Element;\n var exports$3 = core_element.extend({\n chart: null,\n // the animation associated chart instance\n currentStep: 0,\n // the current animation step\n numSteps: 60,\n // default number of steps\n easing: '',\n // the easing to use for this animation\n render: null,\n // render function used by the animation service\n onAnimationProgress: null,\n // user specified callback to fire on each step of the animation\n onAnimationComplete: null // user specified callback to fire when the animation finishes\n\n });\n var core_animation = exports$3; // DEPRECATIONS\n\n /**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\n\n Object.defineProperty(exports$3.prototype, 'animationObject', {\n get: function () {\n return this;\n }\n });\n /**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\n\n Object.defineProperty(exports$3.prototype, 'chartInstance', {\n get: function () {\n return this.chart;\n },\n set: function (value) {\n this.chart = value;\n }\n });\n\n core_defaults._set('global', {\n animation: {\n duration: 1000,\n easing: 'easeOutQuart',\n onProgress: helpers$1.noop,\n onComplete: helpers$1.noop\n }\n });\n\n var core_animations = {\n animations: [],\n request: null,\n\n /**\r\n * @param {Chart} chart - The chart to animate.\r\n * @param {Chart.Animation} animation - The animation that we will animate.\r\n * @param {number} duration - The animation duration in ms.\r\n * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n */\n addAnimation: function (chart, animation, duration, lazy) {\n var animations = this.animations;\n var i, ilen;\n animation.chart = chart;\n animation.startTime = Date.now();\n animation.duration = duration;\n\n if (!lazy) {\n chart.animating = true;\n }\n\n for (i = 0, ilen = animations.length; i < ilen; ++i) {\n if (animations[i].chart === chart) {\n animations[i] = animation;\n return;\n }\n }\n\n animations.push(animation); // If there are no animations queued, manually kickstart a digest, for lack of a better word\n\n if (animations.length === 1) {\n this.requestAnimationFrame();\n }\n },\n cancelAnimation: function (chart) {\n var index = helpers$1.findIndex(this.animations, function (animation) {\n return animation.chart === chart;\n });\n\n if (index !== -1) {\n this.animations.splice(index, 1);\n chart.animating = false;\n }\n },\n requestAnimationFrame: function () {\n var me = this;\n\n if (me.request === null) {\n // Skip animation frame requests until the active one is executed.\n // This can happen when processing mouse events, e.g. 'mousemove'\n // and 'mouseout' events will trigger multiple renders.\n me.request = helpers$1.requestAnimFrame.call(window, function () {\n me.request = null;\n me.startDigest();\n });\n }\n },\n\n /**\r\n * @private\r\n */\n startDigest: function () {\n var me = this;\n me.advance(); // Do we have more stuff to animate?\n\n if (me.animations.length > 0) {\n me.requestAnimationFrame();\n }\n },\n\n /**\r\n * @private\r\n */\n advance: function () {\n var animations = this.animations;\n var animation, chart, numSteps, nextStep;\n var i = 0; // 1 animation per chart, so we are looping charts here\n\n while (i < animations.length) {\n animation = animations[i];\n chart = animation.chart;\n numSteps = animation.numSteps; // Make sure that currentStep starts at 1\n // https://github.com/chartjs/Chart.js/issues/6104\n\n nextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n animation.currentStep = Math.min(nextStep, numSteps);\n helpers$1.callback(animation.render, [chart, animation], chart);\n helpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n if (animation.currentStep >= numSteps) {\n helpers$1.callback(animation.onAnimationComplete, [animation], chart);\n chart.animating = false;\n animations.splice(i, 1);\n } else {\n ++i;\n }\n }\n }\n };\n var resolve = helpers$1.options.resolve;\n var arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n /**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\n\n function listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n\n return;\n }\n\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach(function (key) {\n var method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n var base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value: function () {\n var args = Array.prototype.slice.call(arguments);\n var res = base.apply(this, args);\n helpers$1.each(array._chartjs.listeners, function (object) {\n if (typeof object[method] === 'function') {\n object[method].apply(object, args);\n }\n });\n return res;\n }\n });\n });\n }\n /**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\n\n\n function unlistenArrayEvents(array, listener) {\n var stub = array._chartjs;\n\n if (!stub) {\n return;\n }\n\n var listeners = stub.listeners;\n var index = listeners.indexOf(listener);\n\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n\n if (listeners.length > 0) {\n return;\n }\n\n arrayEvents.forEach(function (key) {\n delete array[key];\n });\n delete array._chartjs;\n } // Base class for all dataset controllers (line, bar, etc)\n\n\n var DatasetController = function (chart, datasetIndex) {\n this.initialize(chart, datasetIndex);\n };\n\n helpers$1.extend(DatasetController.prototype, {\n /**\r\n * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n * @type {Chart.core.element}\r\n */\n datasetElementType: null,\n\n /**\r\n * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n * @type {Chart.core.element}\r\n */\n dataElementType: null,\n\n /**\r\n * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n * A derived controller may override this to resolve controller-specific options.\r\n * The keys defined here are for backward compatibility for legend styles.\r\n * @private\r\n */\n _datasetElementOptions: ['backgroundColor', 'borderCapStyle', 'borderColor', 'borderDash', 'borderDashOffset', 'borderJoinStyle', 'borderWidth'],\n\n /**\r\n * Data element option keys to be resolved in _resolveDataElementOptions.\r\n * A derived controller may override this to resolve controller-specific options.\r\n * The keys defined here are for backward compatibility for legend styles.\r\n * @private\r\n */\n _dataElementOptions: ['backgroundColor', 'borderColor', 'borderWidth', 'pointStyle'],\n initialize: function (chart, datasetIndex) {\n var me = this;\n me.chart = chart;\n me.index = datasetIndex;\n me.linkScales();\n me.addElements();\n me._type = me.getMeta().type;\n },\n updateIndex: function (datasetIndex) {\n this.index = datasetIndex;\n },\n linkScales: function () {\n var me = this;\n var meta = me.getMeta();\n var chart = me.chart;\n var scales = chart.scales;\n var dataset = me.getDataset();\n var scalesOpts = chart.options.scales;\n\n if (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\n meta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\n }\n\n if (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\n meta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\n }\n },\n getDataset: function () {\n return this.chart.data.datasets[this.index];\n },\n getMeta: function () {\n return this.chart.getDatasetMeta(this.index);\n },\n getScaleForId: function (scaleID) {\n return this.chart.scales[scaleID];\n },\n\n /**\r\n * @private\r\n */\n _getValueScaleId: function () {\n return this.getMeta().yAxisID;\n },\n\n /**\r\n * @private\r\n */\n _getIndexScaleId: function () {\n return this.getMeta().xAxisID;\n },\n\n /**\r\n * @private\r\n */\n _getValueScale: function () {\n return this.getScaleForId(this._getValueScaleId());\n },\n\n /**\r\n * @private\r\n */\n _getIndexScale: function () {\n return this.getScaleForId(this._getIndexScaleId());\n },\n reset: function () {\n this._update(true);\n },\n\n /**\r\n * @private\r\n */\n destroy: function () {\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n },\n createMetaDataset: function () {\n var me = this;\n var type = me.datasetElementType;\n return type && new type({\n _chart: me.chart,\n _datasetIndex: me.index\n });\n },\n createMetaData: function (index) {\n var me = this;\n var type = me.dataElementType;\n return type && new type({\n _chart: me.chart,\n _datasetIndex: me.index,\n _index: index\n });\n },\n addElements: function () {\n var me = this;\n var meta = me.getMeta();\n var data = me.getDataset().data || [];\n var metaData = meta.data;\n var i, ilen;\n\n for (i = 0, ilen = data.length; i < ilen; ++i) {\n metaData[i] = metaData[i] || me.createMetaData(i);\n }\n\n meta.dataset = meta.dataset || me.createMetaDataset();\n },\n addElementAndReset: function (index) {\n var element = this.createMetaData(index);\n this.getMeta().data.splice(index, 0, element);\n this.updateElement(element, index, true);\n },\n buildOrUpdateElements: function () {\n var me = this;\n var dataset = me.getDataset();\n var data = dataset.data || (dataset.data = []); // In order to correctly handle data addition/deletion animation (an thus simulate\n // real-time charts), we need to monitor these data modifications and synchronize\n // the internal meta data accordingly.\n\n if (me._data !== data) {\n if (me._data) {\n // This case happens when the user replaced the data array instance.\n unlistenArrayEvents(me._data, me);\n }\n\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, me);\n }\n\n me._data = data;\n } // Re-sync meta data in case the user replaced the data array or if we missed\n // any updates and so make sure that we handle number of datapoints changing.\n\n\n me.resyncElements();\n },\n\n /**\r\n * Returns the merged user-supplied and default dataset-level options\r\n * @private\r\n */\n _configure: function () {\n var me = this;\n me._config = helpers$1.merge(Object.create(null), [me.chart.options.datasets[me._type], me.getDataset()], {\n merger: function (key, target, source) {\n if (key !== '_meta' && key !== 'data') {\n helpers$1._merger(key, target, source);\n }\n }\n });\n },\n _update: function (reset) {\n var me = this;\n\n me._configure();\n\n me._cachedDataOpts = null;\n me.update(reset);\n },\n update: helpers$1.noop,\n transition: function (easingValue) {\n var meta = this.getMeta();\n var elements = meta.data || [];\n var ilen = elements.length;\n var i = 0;\n\n for (; i < ilen; ++i) {\n elements[i].transition(easingValue);\n }\n\n if (meta.dataset) {\n meta.dataset.transition(easingValue);\n }\n },\n draw: function () {\n var meta = this.getMeta();\n var elements = meta.data || [];\n var ilen = elements.length;\n var i = 0;\n\n if (meta.dataset) {\n meta.dataset.draw();\n }\n\n for (; i < ilen; ++i) {\n elements[i].draw();\n }\n },\n\n /**\r\n * Returns a set of predefined style properties that should be used to represent the dataset\r\n * or the data if the index is specified\r\n * @param {number} index - data index\r\n * @return {IStyleInterface} style object\r\n */\n getStyle: function (index) {\n var me = this;\n var meta = me.getMeta();\n var dataset = meta.dataset;\n var style;\n\n me._configure();\n\n if (dataset && index === undefined) {\n style = me._resolveDatasetElementOptions(dataset || {});\n } else {\n index = index || 0;\n style = me._resolveDataElementOptions(meta.data[index] || {}, index);\n }\n\n if (style.fill === false || style.fill === null) {\n style.backgroundColor = style.borderColor;\n }\n\n return style;\n },\n\n /**\r\n * @private\r\n */\n _resolveDatasetElementOptions: function (element, hover) {\n var me = this;\n var chart = me.chart;\n var datasetOpts = me._config;\n var custom = element.custom || {};\n var options = chart.options.elements[me.datasetElementType.prototype._type] || {};\n var elementOptions = me._datasetElementOptions;\n var values = {};\n var i, ilen, key, readKey; // Scriptable options\n\n var context = {\n chart: chart,\n dataset: me.getDataset(),\n datasetIndex: me.index,\n hover: hover\n };\n\n for (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n key = elementOptions[i];\n readKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\n values[key] = resolve([custom[readKey], datasetOpts[readKey], options[readKey]], context);\n }\n\n return values;\n },\n\n /**\r\n * @private\r\n */\n _resolveDataElementOptions: function (element, index) {\n var me = this;\n var custom = element && element.custom;\n var cached = me._cachedDataOpts;\n\n if (cached && !custom) {\n return cached;\n }\n\n var chart = me.chart;\n var datasetOpts = me._config;\n var options = chart.options.elements[me.dataElementType.prototype._type] || {};\n var elementOptions = me._dataElementOptions;\n var values = {}; // Scriptable options\n\n var context = {\n chart: chart,\n dataIndex: index,\n dataset: me.getDataset(),\n datasetIndex: me.index\n }; // `resolve` sets cacheable to `false` if any option is indexed or scripted\n\n var info = {\n cacheable: !custom\n };\n var keys, i, ilen, key;\n custom = custom || {};\n\n if (helpers$1.isArray(elementOptions)) {\n for (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n key = elementOptions[i];\n values[key] = resolve([custom[key], datasetOpts[key], options[key]], context, index, info);\n }\n } else {\n keys = Object.keys(elementOptions);\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n values[key] = resolve([custom[key], datasetOpts[elementOptions[key]], datasetOpts[key], options[key]], context, index, info);\n }\n }\n\n if (info.cacheable) {\n me._cachedDataOpts = Object.freeze(values);\n }\n\n return values;\n },\n removeHoverStyle: function (element) {\n helpers$1.merge(element._model, element.$previousStyle || {});\n delete element.$previousStyle;\n },\n setHoverStyle: function (element) {\n var dataset = this.chart.data.datasets[element._datasetIndex];\n var index = element._index;\n var custom = element.custom || {};\n var model = element._model;\n var getHoverColor = helpers$1.getHoverColor;\n element.$previousStyle = {\n backgroundColor: model.backgroundColor,\n borderColor: model.borderColor,\n borderWidth: model.borderWidth\n };\n model.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n model.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n model.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n },\n\n /**\r\n * @private\r\n */\n _removeDatasetHoverStyle: function () {\n var element = this.getMeta().dataset;\n\n if (element) {\n this.removeHoverStyle(element);\n }\n },\n\n /**\r\n * @private\r\n */\n _setDatasetHoverStyle: function () {\n var element = this.getMeta().dataset;\n var prev = {};\n var i, ilen, key, keys, hoverOptions, model;\n\n if (!element) {\n return;\n }\n\n model = element._model;\n hoverOptions = this._resolveDatasetElementOptions(element, true);\n keys = Object.keys(hoverOptions);\n\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n prev[key] = model[key];\n model[key] = hoverOptions[key];\n }\n\n element.$previousStyle = prev;\n },\n\n /**\r\n * @private\r\n */\n resyncElements: function () {\n var me = this;\n var meta = me.getMeta();\n var data = me.getDataset().data;\n var numMeta = meta.data.length;\n var numData = data.length;\n\n if (numData < numMeta) {\n meta.data.splice(numData, numMeta - numData);\n } else if (numData > numMeta) {\n me.insertElements(numMeta, numData - numMeta);\n }\n },\n\n /**\r\n * @private\r\n */\n insertElements: function (start, count) {\n for (var i = 0; i < count; ++i) {\n this.addElementAndReset(start + i);\n }\n },\n\n /**\r\n * @private\r\n */\n onDataPush: function () {\n var count = arguments.length;\n this.insertElements(this.getDataset().data.length - count, count);\n },\n\n /**\r\n * @private\r\n */\n onDataPop: function () {\n this.getMeta().data.pop();\n },\n\n /**\r\n * @private\r\n */\n onDataShift: function () {\n this.getMeta().data.shift();\n },\n\n /**\r\n * @private\r\n */\n onDataSplice: function (start, count) {\n this.getMeta().data.splice(start, count);\n this.insertElements(start, arguments.length - 2);\n },\n\n /**\r\n * @private\r\n */\n onDataUnshift: function () {\n this.insertElements(0, arguments.length);\n }\n });\n DatasetController.extend = helpers$1.inherits;\n var core_datasetController = DatasetController;\n var TAU = Math.PI * 2;\n\n core_defaults._set('global', {\n elements: {\n arc: {\n backgroundColor: core_defaults.global.defaultColor,\n borderColor: '#fff',\n borderWidth: 2,\n borderAlign: 'center'\n }\n }\n });\n\n function clipArc(ctx, arc) {\n var startAngle = arc.startAngle;\n var endAngle = arc.endAngle;\n var pixelMargin = arc.pixelMargin;\n var angleMargin = pixelMargin / arc.outerRadius;\n var x = arc.x;\n var y = arc.y; // Draw an inner border by cliping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\n ctx.beginPath();\n ctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\n if (arc.innerRadius > pixelMargin) {\n angleMargin = pixelMargin / arc.innerRadius;\n ctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\n }\n\n ctx.closePath();\n ctx.clip();\n }\n\n function drawFullCircleBorders(ctx, vm, arc, inner) {\n var endAngle = arc.endAngle;\n var i;\n\n if (inner) {\n arc.endAngle = arc.startAngle + TAU;\n clipArc(ctx, arc);\n arc.endAngle = endAngle;\n\n if (arc.endAngle === arc.startAngle && arc.fullCircles) {\n arc.endAngle += TAU;\n arc.fullCircles--;\n }\n }\n\n ctx.beginPath();\n ctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\n\n for (i = 0; i < arc.fullCircles; ++i) {\n ctx.stroke();\n }\n\n ctx.beginPath();\n ctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\n\n for (i = 0; i < arc.fullCircles; ++i) {\n ctx.stroke();\n }\n }\n\n function drawBorder(ctx, vm, arc) {\n var inner = vm.borderAlign === 'inner';\n\n if (inner) {\n ctx.lineWidth = vm.borderWidth * 2;\n ctx.lineJoin = 'round';\n } else {\n ctx.lineWidth = vm.borderWidth;\n ctx.lineJoin = 'bevel';\n }\n\n if (arc.fullCircles) {\n drawFullCircleBorders(ctx, vm, arc, inner);\n }\n\n if (inner) {\n clipArc(ctx, arc);\n }\n\n ctx.beginPath();\n ctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\n ctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n ctx.closePath();\n ctx.stroke();\n }\n\n var element_arc = core_element.extend({\n _type: 'arc',\n inLabelRange: function (mouseX) {\n var vm = this._view;\n\n if (vm) {\n return Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2);\n }\n\n return false;\n },\n inRange: function (chartX, chartY) {\n var vm = this._view;\n\n if (vm) {\n var pointRelativePosition = helpers$1.getAngleFromPoint(vm, {\n x: chartX,\n y: chartY\n });\n var angle = pointRelativePosition.angle;\n var distance = pointRelativePosition.distance; // Sanitise angle range\n\n var startAngle = vm.startAngle;\n var endAngle = vm.endAngle;\n\n while (endAngle < startAngle) {\n endAngle += TAU;\n }\n\n while (angle > endAngle) {\n angle -= TAU;\n }\n\n while (angle < startAngle) {\n angle += TAU;\n } // Check if within the range of the open/close angle\n\n\n var betweenAngles = angle >= startAngle && angle <= endAngle;\n var withinRadius = distance >= vm.innerRadius && distance <= vm.outerRadius;\n return betweenAngles && withinRadius;\n }\n\n return false;\n },\n getCenterPoint: function () {\n var vm = this._view;\n var halfAngle = (vm.startAngle + vm.endAngle) / 2;\n var halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n return {\n x: vm.x + Math.cos(halfAngle) * halfRadius,\n y: vm.y + Math.sin(halfAngle) * halfRadius\n };\n },\n getArea: function () {\n var vm = this._view;\n return Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n },\n tooltipPosition: function () {\n var vm = this._view;\n var centreAngle = vm.startAngle + (vm.endAngle - vm.startAngle) / 2;\n var rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n return {\n x: vm.x + Math.cos(centreAngle) * rangeFromCentre,\n y: vm.y + Math.sin(centreAngle) * rangeFromCentre\n };\n },\n draw: function () {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var pixelMargin = vm.borderAlign === 'inner' ? 0.33 : 0;\n var arc = {\n x: vm.x,\n y: vm.y,\n innerRadius: vm.innerRadius,\n outerRadius: Math.max(vm.outerRadius - pixelMargin, 0),\n pixelMargin: pixelMargin,\n startAngle: vm.startAngle,\n endAngle: vm.endAngle,\n fullCircles: Math.floor(vm.circumference / TAU)\n };\n var i;\n ctx.save();\n ctx.fillStyle = vm.backgroundColor;\n ctx.strokeStyle = vm.borderColor;\n\n if (arc.fullCircles) {\n arc.endAngle = arc.startAngle + TAU;\n ctx.beginPath();\n ctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n ctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n ctx.closePath();\n\n for (i = 0; i < arc.fullCircles; ++i) {\n ctx.fill();\n }\n\n arc.endAngle = arc.startAngle + vm.circumference % TAU;\n }\n\n ctx.beginPath();\n ctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n ctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n ctx.closePath();\n ctx.fill();\n\n if (vm.borderWidth) {\n drawBorder(ctx, vm, arc);\n }\n\n ctx.restore();\n }\n });\n var valueOrDefault$1 = helpers$1.valueOrDefault;\n var defaultColor = core_defaults.global.defaultColor;\n\n core_defaults._set('global', {\n elements: {\n line: {\n tension: 0.4,\n backgroundColor: defaultColor,\n borderWidth: 3,\n borderColor: defaultColor,\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0.0,\n borderJoinStyle: 'miter',\n capBezierPoints: true,\n fill: true // do we fill in the area between the line and its base axis\n\n }\n }\n });\n\n var element_line = core_element.extend({\n _type: 'line',\n draw: function () {\n var me = this;\n var vm = me._view;\n var ctx = me._chart.ctx;\n var spanGaps = vm.spanGaps;\n\n var points = me._children.slice(); // clone array\n\n\n var globalDefaults = core_defaults.global;\n var globalOptionLineElements = globalDefaults.elements.line;\n var lastDrawnIndex = -1;\n var closePath = me._loop;\n var index, previous, currentVM;\n\n if (!points.length) {\n return;\n }\n\n if (me._loop) {\n for (index = 0; index < points.length; ++index) {\n previous = helpers$1.previousItem(points, index); // If the line has an open path, shift the point array\n\n if (!points[index]._view.skip && previous._view.skip) {\n points = points.slice(index).concat(points.slice(0, index));\n closePath = spanGaps;\n break;\n }\n } // If the line has a close path, add the first point again\n\n\n if (closePath) {\n points.push(points[0]);\n }\n }\n\n ctx.save(); // Stroke Line Options\n\n ctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle; // IE 9 and 10 do not support line dash\n\n if (ctx.setLineDash) {\n ctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n }\n\n ctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n ctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n ctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n ctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor; // Stroke Line\n\n ctx.beginPath(); // First point moves to it's starting position no matter what\n\n currentVM = points[0]._view;\n\n if (!currentVM.skip) {\n ctx.moveTo(currentVM.x, currentVM.y);\n lastDrawnIndex = 0;\n }\n\n for (index = 1; index < points.length; ++index) {\n currentVM = points[index]._view;\n previous = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\n\n if (!currentVM.skip) {\n if (lastDrawnIndex !== index - 1 && !spanGaps || lastDrawnIndex === -1) {\n // There was a gap and this is the first point after the gap\n ctx.moveTo(currentVM.x, currentVM.y);\n } else {\n // Line to next point\n helpers$1.canvas.lineTo(ctx, previous._view, currentVM);\n }\n\n lastDrawnIndex = index;\n }\n }\n\n if (closePath) {\n ctx.closePath();\n }\n\n ctx.stroke();\n ctx.restore();\n }\n });\n var valueOrDefault$2 = helpers$1.valueOrDefault;\n var defaultColor$1 = core_defaults.global.defaultColor;\n\n core_defaults._set('global', {\n elements: {\n point: {\n radius: 3,\n pointStyle: 'circle',\n backgroundColor: defaultColor$1,\n borderColor: defaultColor$1,\n borderWidth: 1,\n // Hover\n hitRadius: 1,\n hoverRadius: 4,\n hoverBorderWidth: 1\n }\n }\n });\n\n function xRange(mouseX) {\n var vm = this._view;\n return vm ? Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius : false;\n }\n\n function yRange(mouseY) {\n var vm = this._view;\n return vm ? Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius : false;\n }\n\n var element_point = core_element.extend({\n _type: 'point',\n inRange: function (mouseX, mouseY) {\n var vm = this._view;\n return vm ? Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2) < Math.pow(vm.hitRadius + vm.radius, 2) : false;\n },\n inLabelRange: xRange,\n inXRange: xRange,\n inYRange: yRange,\n getCenterPoint: function () {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y\n };\n },\n getArea: function () {\n return Math.PI * Math.pow(this._view.radius, 2);\n },\n tooltipPosition: function () {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y,\n padding: vm.radius + vm.borderWidth\n };\n },\n draw: function (chartArea) {\n var vm = this._view;\n var ctx = this._chart.ctx;\n var pointStyle = vm.pointStyle;\n var rotation = vm.rotation;\n var radius = vm.radius;\n var x = vm.x;\n var y = vm.y;\n var globalDefaults = core_defaults.global;\n var defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n if (vm.skip) {\n return;\n } // Clipping for Points.\n\n\n if (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n ctx.strokeStyle = vm.borderColor || defaultColor;\n ctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n ctx.fillStyle = vm.backgroundColor || defaultColor;\n helpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n }\n }\n });\n var defaultColor$2 = core_defaults.global.defaultColor;\n\n core_defaults._set('global', {\n elements: {\n rectangle: {\n backgroundColor: defaultColor$2,\n borderColor: defaultColor$2,\n borderSkipped: 'bottom',\n borderWidth: 0\n }\n }\n });\n\n function isVertical(vm) {\n return vm && vm.width !== undefined;\n }\n /**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\n\n\n function getBarBounds(vm) {\n var x1, x2, y1, y2, half;\n\n if (isVertical(vm)) {\n half = vm.width / 2;\n x1 = vm.x - half;\n x2 = vm.x + half;\n y1 = Math.min(vm.y, vm.base);\n y2 = Math.max(vm.y, vm.base);\n } else {\n half = vm.height / 2;\n x1 = Math.min(vm.x, vm.base);\n x2 = Math.max(vm.x, vm.base);\n y1 = vm.y - half;\n y2 = vm.y + half;\n }\n\n return {\n left: x1,\n top: y1,\n right: x2,\n bottom: y2\n };\n }\n\n function swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n }\n\n function parseBorderSkipped(vm) {\n var edge = vm.borderSkipped;\n var res = {};\n\n if (!edge) {\n return res;\n }\n\n if (vm.horizontal) {\n if (vm.base > vm.x) {\n edge = swap(edge, 'left', 'right');\n }\n } else if (vm.base < vm.y) {\n edge = swap(edge, 'bottom', 'top');\n }\n\n res[edge] = true;\n return res;\n }\n\n function parseBorderWidth(vm, maxW, maxH) {\n var value = vm.borderWidth;\n var skip = parseBorderSkipped(vm);\n var t, r, b, l;\n\n if (helpers$1.isObject(value)) {\n t = +value.top || 0;\n r = +value.right || 0;\n b = +value.bottom || 0;\n l = +value.left || 0;\n } else {\n t = r = b = l = +value || 0;\n }\n\n return {\n t: skip.top || t < 0 ? 0 : t > maxH ? maxH : t,\n r: skip.right || r < 0 ? 0 : r > maxW ? maxW : r,\n b: skip.bottom || b < 0 ? 0 : b > maxH ? maxH : b,\n l: skip.left || l < 0 ? 0 : l > maxW ? maxW : l\n };\n }\n\n function boundingRects(vm) {\n var bounds = getBarBounds(vm);\n var width = bounds.right - bounds.left;\n var height = bounds.bottom - bounds.top;\n var border = parseBorderWidth(vm, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b\n }\n };\n }\n\n function inRange(vm, x, y) {\n var skipX = x === null;\n var skipY = y === null;\n var bounds = !vm || skipX && skipY ? false : getBarBounds(vm);\n return bounds && (skipX || x >= bounds.left && x <= bounds.right) && (skipY || y >= bounds.top && y <= bounds.bottom);\n }\n\n var element_rectangle = core_element.extend({\n _type: 'rectangle',\n draw: function () {\n var ctx = this._chart.ctx;\n var vm = this._view;\n var rects = boundingRects(vm);\n var outer = rects.outer;\n var inner = rects.inner;\n ctx.fillStyle = vm.backgroundColor;\n ctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n if (outer.w === inner.w && outer.h === inner.h) {\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n ctx.rect(outer.x, outer.y, outer.w, outer.h);\n ctx.clip();\n ctx.fillStyle = vm.borderColor;\n ctx.rect(inner.x, inner.y, inner.w, inner.h);\n ctx.fill('evenodd');\n ctx.restore();\n },\n height: function () {\n var vm = this._view;\n return vm.base - vm.y;\n },\n inRange: function (mouseX, mouseY) {\n return inRange(this._view, mouseX, mouseY);\n },\n inLabelRange: function (mouseX, mouseY) {\n var vm = this._view;\n return isVertical(vm) ? inRange(vm, mouseX, null) : inRange(vm, null, mouseY);\n },\n inXRange: function (mouseX) {\n return inRange(this._view, mouseX, null);\n },\n inYRange: function (mouseY) {\n return inRange(this._view, null, mouseY);\n },\n getCenterPoint: function () {\n var vm = this._view;\n var x, y;\n\n if (isVertical(vm)) {\n x = vm.x;\n y = (vm.y + vm.base) / 2;\n } else {\n x = (vm.x + vm.base) / 2;\n y = vm.y;\n }\n\n return {\n x: x,\n y: y\n };\n },\n getArea: function () {\n var vm = this._view;\n return isVertical(vm) ? vm.width * Math.abs(vm.y - vm.base) : vm.height * Math.abs(vm.x - vm.base);\n },\n tooltipPosition: function () {\n var vm = this._view;\n return {\n x: vm.x,\n y: vm.y\n };\n }\n });\n var elements = {};\n var Arc = element_arc;\n var Line = element_line;\n var Point = element_point;\n var Rectangle = element_rectangle;\n elements.Arc = Arc;\n elements.Line = Line;\n elements.Point = Point;\n elements.Rectangle = Rectangle;\n var deprecated = helpers$1._deprecated;\n var valueOrDefault$3 = helpers$1.valueOrDefault;\n\n core_defaults._set('bar', {\n hover: {\n mode: 'label'\n },\n scales: {\n xAxes: [{\n type: 'category',\n offset: true,\n gridLines: {\n offsetGridLines: true\n }\n }],\n yAxes: [{\n type: 'linear'\n }]\n }\n });\n\n core_defaults._set('global', {\n datasets: {\n bar: {\n categoryPercentage: 0.8,\n barPercentage: 0.9\n }\n }\n });\n /**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\n\n\n function computeMinSampleSize(scale, pixels) {\n var min = scale._length;\n var prev, curr, i, ilen;\n\n for (i = 1, ilen = pixels.length; i < ilen; ++i) {\n min = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n }\n\n for (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n min = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\n prev = curr;\n }\n\n return min;\n }\n /**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\n\n\n function computeFitCategoryTraits(index, ruler, options) {\n var thickness = options.barThickness;\n var count = ruler.stackCount;\n var curr = ruler.pixels[index];\n var min = helpers$1.isNullOrUndef(thickness) ? computeMinSampleSize(ruler.scale, ruler.pixels) : -1;\n var size, ratio;\n\n if (helpers$1.isNullOrUndef(thickness)) {\n size = min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n // When bar thickness is enforced, category and bar percentages are ignored.\n // Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n // and deprecate barPercentage since this value is ignored when thickness is absolute.\n size = thickness * count;\n ratio = 1;\n }\n\n return {\n chunk: size / count,\n ratio: ratio,\n start: curr - size / 2\n };\n }\n /**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\n\n\n function computeFlexCategoryTraits(index, ruler, options) {\n var pixels = ruler.pixels;\n var curr = pixels[index];\n var prev = index > 0 ? pixels[index - 1] : null;\n var next = index < pixels.length - 1 ? pixels[index + 1] : null;\n var percent = options.categoryPercentage;\n var start, size;\n\n if (prev === null) {\n // first data: its size is double based on the next point or,\n // if it's also the last data, we use the scale size.\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n\n if (next === null) {\n // last data: its size is also double based on the previous point.\n next = curr + curr - prev;\n }\n\n start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / ruler.stackCount,\n ratio: options.barPercentage,\n start: start\n };\n }\n\n var controller_bar = core_datasetController.extend({\n dataElementType: elements.Rectangle,\n\n /**\r\n * @private\r\n */\n _dataElementOptions: ['backgroundColor', 'borderColor', 'borderSkipped', 'borderWidth', 'barPercentage', 'barThickness', 'categoryPercentage', 'maxBarThickness', 'minBarLength'],\n initialize: function () {\n var me = this;\n var meta, scaleOpts;\n core_datasetController.prototype.initialize.apply(me, arguments);\n meta = me.getMeta();\n meta.stack = me.getDataset().stack;\n meta.bar = true;\n scaleOpts = me._getIndexScale().options;\n deprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\n deprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\n deprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\n deprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\n deprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\n },\n update: function (reset) {\n var me = this;\n var rects = me.getMeta().data;\n var i, ilen;\n me._ruler = me.getRuler();\n\n for (i = 0, ilen = rects.length; i < ilen; ++i) {\n me.updateElement(rects[i], i, reset);\n }\n },\n updateElement: function (rectangle, index, reset) {\n var me = this;\n var meta = me.getMeta();\n var dataset = me.getDataset();\n\n var options = me._resolveDataElementOptions(rectangle, index);\n\n rectangle._xScale = me.getScaleForId(meta.xAxisID);\n rectangle._yScale = me.getScaleForId(meta.yAxisID);\n rectangle._datasetIndex = me.index;\n rectangle._index = index;\n rectangle._model = {\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderSkipped: options.borderSkipped,\n borderWidth: options.borderWidth,\n datasetLabel: dataset.label,\n label: me.chart.data.labels[index]\n };\n\n if (helpers$1.isArray(dataset.data[index])) {\n rectangle._model.borderSkipped = null;\n }\n\n me._updateElementGeometry(rectangle, index, reset, options);\n\n rectangle.pivot();\n },\n\n /**\r\n * @private\r\n */\n _updateElementGeometry: function (rectangle, index, reset, options) {\n var me = this;\n var model = rectangle._model;\n\n var vscale = me._getValueScale();\n\n var base = vscale.getBasePixel();\n var horizontal = vscale.isHorizontal();\n var ruler = me._ruler || me.getRuler();\n var vpixels = me.calculateBarValuePixels(me.index, index, options);\n var ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\n model.horizontal = horizontal;\n model.base = reset ? base : vpixels.base;\n model.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n model.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n model.height = horizontal ? ipixels.size : undefined;\n model.width = horizontal ? undefined : ipixels.size;\n },\n\n /**\r\n * Returns the stacks based on groups and bar visibility.\r\n * @param {number} [last] - The dataset index\r\n * @returns {string[]} The list of stack IDs\r\n * @private\r\n */\n _getStacks: function (last) {\n var me = this;\n\n var scale = me._getIndexScale();\n\n var metasets = scale._getMatchingVisibleMetas(me._type);\n\n var stacked = scale.options.stacked;\n var ilen = metasets.length;\n var stacks = [];\n var i, meta;\n\n for (i = 0; i < ilen; ++i) {\n meta = metasets[i]; // stacked | meta.stack\n // | found | not found | undefined\n // false | x | x | x\n // true | | x |\n // undefined | | x | x\n\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n\n if (meta.index === last) {\n break;\n }\n }\n\n return stacks;\n },\n\n /**\r\n * Returns the effective number of stacks based on groups and bar visibility.\r\n * @private\r\n */\n getStackCount: function () {\n return this._getStacks().length;\n },\n\n /**\r\n * Returns the stack index for the given dataset based on groups and bar visibility.\r\n * @param {number} [datasetIndex] - The dataset index\r\n * @param {string} [name] - The stack name to find\r\n * @returns {number} The stack index\r\n * @private\r\n */\n getStackIndex: function (datasetIndex, name) {\n var stacks = this._getStacks(datasetIndex);\n\n var index = name !== undefined ? stacks.indexOf(name) : -1; // indexOf returns -1 if element is not present\n\n return index === -1 ? stacks.length - 1 : index;\n },\n\n /**\r\n * @private\r\n */\n getRuler: function () {\n var me = this;\n\n var scale = me._getIndexScale();\n\n var pixels = [];\n var i, ilen;\n\n for (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n pixels.push(scale.getPixelForValue(null, i, me.index));\n }\n\n return {\n pixels: pixels,\n start: scale._startPixel,\n end: scale._endPixel,\n stackCount: me.getStackCount(),\n scale: scale\n };\n },\n\n /**\r\n * Note: pixel values are not clamped to the scale area.\r\n * @private\r\n */\n calculateBarValuePixels: function (datasetIndex, index, options) {\n var me = this;\n var chart = me.chart;\n\n var scale = me._getValueScale();\n\n var isHorizontal = scale.isHorizontal();\n var datasets = chart.data.datasets;\n\n var metasets = scale._getMatchingVisibleMetas(me._type);\n\n var value = scale._parseValue(datasets[datasetIndex].data[index]);\n\n var minBarLength = options.minBarLength;\n var stacked = scale.options.stacked;\n var stack = me.getMeta().stack;\n var start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\n var length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\n var ilen = metasets.length;\n var i, imeta, ivalue, base, head, size, stackLength;\n\n if (stacked || stacked === undefined && stack !== undefined) {\n for (i = 0; i < ilen; ++i) {\n imeta = metasets[i];\n\n if (imeta.index === datasetIndex) {\n break;\n }\n\n if (imeta.stack === stack) {\n stackLength = scale._parseValue(datasets[imeta.index].data[index]);\n ivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\n\n if (value.min < 0 && ivalue < 0 || value.max >= 0 && ivalue > 0) {\n start += ivalue;\n }\n }\n }\n }\n\n base = scale.getPixelForValue(start);\n head = scale.getPixelForValue(start + length);\n size = head - base;\n\n if (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n size = minBarLength;\n\n if (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\n head = base - minBarLength;\n } else {\n head = base + minBarLength;\n }\n }\n\n return {\n size: size,\n base: base,\n head: head,\n center: head + size / 2\n };\n },\n\n /**\r\n * @private\r\n */\n calculateBarIndexPixels: function (datasetIndex, index, ruler, options) {\n var me = this;\n var range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options) : computeFitCategoryTraits(index, ruler, options);\n var stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n var center = range.start + range.chunk * stackIndex + range.chunk / 2;\n var size = Math.min(valueOrDefault$3(options.maxBarThickness, Infinity), range.chunk * range.ratio);\n return {\n base: center - size / 2,\n head: center + size / 2,\n center: center,\n size: size\n };\n },\n draw: function () {\n var me = this;\n var chart = me.chart;\n\n var scale = me._getValueScale();\n\n var rects = me.getMeta().data;\n var dataset = me.getDataset();\n var ilen = rects.length;\n var i = 0;\n helpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n for (; i < ilen; ++i) {\n var val = scale._parseValue(dataset.data[i]);\n\n if (!isNaN(val.min) && !isNaN(val.max)) {\n rects[i].draw();\n }\n }\n\n helpers$1.canvas.unclipArea(chart.ctx);\n },\n\n /**\r\n * @private\r\n */\n _resolveDataElementOptions: function () {\n var me = this;\n var values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\n\n var indexOpts = me._getIndexScale().options;\n\n var valueOpts = me._getValueScale().options;\n\n values.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\n values.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\n values.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\n values.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\n values.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\n return values;\n }\n });\n var valueOrDefault$4 = helpers$1.valueOrDefault;\n var resolve$1 = helpers$1.options.resolve;\n\n core_defaults._set('bubble', {\n hover: {\n mode: 'single'\n },\n scales: {\n xAxes: [{\n type: 'linear',\n // bubble should probably use a linear scale by default\n position: 'bottom',\n id: 'x-axis-0' // need an ID so datasets can reference the scale\n\n }],\n yAxes: [{\n type: 'linear',\n position: 'left',\n id: 'y-axis-0'\n }]\n },\n tooltips: {\n callbacks: {\n title: function () {\n // Title doesn't make sense for scatter since we format the data as a point\n return '';\n },\n label: function (item, data) {\n var datasetLabel = data.datasets[item.datasetIndex].label || '';\n var dataPoint = data.datasets[item.datasetIndex].data[item.index];\n return datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n }\n }\n }\n });\n\n var controller_bubble = core_datasetController.extend({\n /**\r\n * @protected\r\n */\n dataElementType: elements.Point,\n\n /**\r\n * @private\r\n */\n _dataElementOptions: ['backgroundColor', 'borderColor', 'borderWidth', 'hoverBackgroundColor', 'hoverBorderColor', 'hoverBorderWidth', 'hoverRadius', 'hitRadius', 'pointStyle', 'rotation'],\n\n /**\r\n * @protected\r\n */\n update: function (reset) {\n var me = this;\n var meta = me.getMeta();\n var points = meta.data; // Update Points\n\n helpers$1.each(points, function (point, index) {\n me.updateElement(point, index, reset);\n });\n },\n\n /**\r\n * @protected\r\n */\n updateElement: function (point, index, reset) {\n var me = this;\n var meta = me.getMeta();\n var custom = point.custom || {};\n var xScale = me.getScaleForId(meta.xAxisID);\n var yScale = me.getScaleForId(meta.yAxisID);\n\n var options = me._resolveDataElementOptions(point, index);\n\n var data = me.getDataset().data[index];\n var dsIndex = me.index;\n var x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n var y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n point._xScale = xScale;\n point._yScale = yScale;\n point._options = options;\n point._datasetIndex = dsIndex;\n point._index = index;\n point._model = {\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n hitRadius: options.hitRadius,\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n radius: reset ? 0 : options.radius,\n skip: custom.skip || isNaN(x) || isNaN(y),\n x: x,\n y: y\n };\n point.pivot();\n },\n\n /**\r\n * @protected\r\n */\n setHoverStyle: function (point) {\n var model = point._model;\n var options = point._options;\n var getHoverColor = helpers$1.getHoverColor;\n point.$previousStyle = {\n backgroundColor: model.backgroundColor,\n borderColor: model.borderColor,\n borderWidth: model.borderWidth,\n radius: model.radius\n };\n model.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n model.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n model.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n model.radius = options.radius + options.hoverRadius;\n },\n\n /**\r\n * @private\r\n */\n _resolveDataElementOptions: function (point, index) {\n var me = this;\n var chart = me.chart;\n var dataset = me.getDataset();\n var custom = point.custom || {};\n var data = dataset.data[index] || {};\n\n var values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments); // Scriptable options\n\n\n var context = {\n chart: chart,\n dataIndex: index,\n dataset: dataset,\n datasetIndex: me.index\n }; // In case values were cached (and thus frozen), we need to clone the values\n\n if (me._cachedDataOpts === values) {\n values = helpers$1.extend({}, values);\n } // Custom radius resolution\n\n\n values.radius = resolve$1([custom.radius, data.r, me._config.radius, chart.options.elements.point.radius], context, index);\n return values;\n }\n });\n var valueOrDefault$5 = helpers$1.valueOrDefault;\n var PI$1 = Math.PI;\n var DOUBLE_PI$1 = PI$1 * 2;\n var HALF_PI$1 = PI$1 / 2;\n\n core_defaults._set('doughnut', {\n animation: {\n // Boolean - Whether we animate the rotation of the Doughnut\n animateRotate: true,\n // Boolean - Whether we animate scaling the Doughnut from the centre\n animateScale: false\n },\n hover: {\n mode: 'single'\n },\n legendCallback: function (chart) {\n var list = document.createElement('ul');\n var data = chart.data;\n var datasets = data.datasets;\n var labels = data.labels;\n var i, ilen, listItem, listItemSpan;\n list.setAttribute('class', chart.id + '-legend');\n\n if (datasets.length) {\n for (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n listItem = list.appendChild(document.createElement('li'));\n listItemSpan = listItem.appendChild(document.createElement('span'));\n listItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\n if (labels[i]) {\n listItem.appendChild(document.createTextNode(labels[i]));\n }\n }\n }\n\n return list.outerHTML;\n },\n legend: {\n labels: {\n generateLabels: function (chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n hidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n\n return [];\n }\n },\n onClick: function (e, legendItem) {\n var index = legendItem.index;\n var chart = this.chart;\n var i, ilen, meta;\n\n for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n meta = chart.getDatasetMeta(i); // toggle visibility of index if exists\n\n if (meta.data[index]) {\n meta.data[index].hidden = !meta.data[index].hidden;\n }\n }\n\n chart.update();\n }\n },\n // The percentage of the chart that we cut out of the middle.\n cutoutPercentage: 50,\n // The rotation of the chart, where the first data arc begins.\n rotation: -HALF_PI$1,\n // The total circumference of the chart.\n circumference: DOUBLE_PI$1,\n // Need to override these to give a nice default\n tooltips: {\n callbacks: {\n title: function () {\n return '';\n },\n label: function (tooltipItem, data) {\n var dataLabel = data.labels[tooltipItem.index];\n var value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n if (helpers$1.isArray(dataLabel)) {\n // show value on first line of multiline label\n // need to clone because we are changing the value\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n\n return dataLabel;\n }\n }\n }\n });\n\n var controller_doughnut = core_datasetController.extend({\n dataElementType: elements.Arc,\n linkScales: helpers$1.noop,\n\n /**\r\n * @private\r\n */\n _dataElementOptions: ['backgroundColor', 'borderColor', 'borderWidth', 'borderAlign', 'hoverBackgroundColor', 'hoverBorderColor', 'hoverBorderWidth'],\n // Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n getRingIndex: function (datasetIndex) {\n var ringIndex = 0;\n\n for (var j = 0; j < datasetIndex; ++j) {\n if (this.chart.isDatasetVisible(j)) {\n ++ringIndex;\n }\n }\n\n return ringIndex;\n },\n update: function (reset) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var ratioX = 1;\n var ratioY = 1;\n var offsetX = 0;\n var offsetY = 0;\n var meta = me.getMeta();\n var arcs = meta.data;\n var cutout = opts.cutoutPercentage / 100 || 0;\n var circumference = opts.circumference;\n\n var chartWeight = me._getRingWeight(me.index);\n\n var maxWidth, maxHeight, i, ilen; // If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n\n if (circumference < DOUBLE_PI$1) {\n var startAngle = opts.rotation % DOUBLE_PI$1;\n startAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\n var endAngle = startAngle + circumference;\n var startX = Math.cos(startAngle);\n var startY = Math.sin(startAngle);\n var endX = Math.cos(endAngle);\n var endY = Math.sin(endAngle);\n var contains0 = startAngle <= 0 && endAngle >= 0 || endAngle >= DOUBLE_PI$1;\n var contains90 = startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1 || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\n var contains180 = startAngle === -PI$1 || endAngle >= PI$1;\n var contains270 = startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1 || endAngle >= PI$1 + HALF_PI$1;\n var minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\n var minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\n var maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\n var maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n arcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n }\n\n chart.borderWidth = me.getMaxBorderWidth();\n maxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\n maxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\n chart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n chart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\n chart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n chart.offsetX = offsetX * chart.outerRadius;\n chart.offsetY = offsetY * chart.outerRadius;\n meta.total = me.calculateTotal();\n me.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n me.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n me.updateElement(arcs[i], i, reset);\n }\n },\n updateElement: function (arc, index, reset) {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var animationOpts = opts.animation;\n var centerX = (chartArea.left + chartArea.right) / 2;\n var centerY = (chartArea.top + chartArea.bottom) / 2;\n var startAngle = opts.rotation; // non reset case handled later\n\n var endAngle = opts.rotation; // non reset case handled later\n\n var dataset = me.getDataset();\n var circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\n var innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n var outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n var options = arc._options || {};\n helpers$1.extend(arc, {\n // Utility\n _datasetIndex: me.index,\n _index: index,\n // Desired view properties\n _model: {\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n borderAlign: options.borderAlign,\n x: centerX + chart.offsetX,\n y: centerY + chart.offsetY,\n startAngle: startAngle,\n endAngle: endAngle,\n circumference: circumference,\n outerRadius: outerRadius,\n innerRadius: innerRadius,\n label: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n }\n });\n var model = arc._model; // Set correct angles if not resetting\n\n if (!reset || !animationOpts.animateRotate) {\n if (index === 0) {\n model.startAngle = opts.rotation;\n } else {\n model.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n }\n\n model.endAngle = model.startAngle + model.circumference;\n }\n\n arc.pivot();\n },\n calculateTotal: function () {\n var dataset = this.getDataset();\n var meta = this.getMeta();\n var total = 0;\n var value;\n helpers$1.each(meta.data, function (element, index) {\n value = dataset.data[index];\n\n if (!isNaN(value) && !element.hidden) {\n total += Math.abs(value);\n }\n });\n /* if (total === 0) {\r\n \ttotal = NaN;\r\n }*/\n\n return total;\n },\n calculateCircumference: function (value) {\n var total = this.getMeta().total;\n\n if (total > 0 && !isNaN(value)) {\n return DOUBLE_PI$1 * (Math.abs(value) / total);\n }\n\n return 0;\n },\n // gets the max border or hover width to properly scale pie charts\n getMaxBorderWidth: function (arcs) {\n var me = this;\n var max = 0;\n var chart = me.chart;\n var i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n if (!arcs) {\n // Find the outmost visible dataset\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n\n if (i !== me.index) {\n controller = meta.controller;\n }\n\n break;\n }\n }\n }\n\n if (!arcs) {\n return 0;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n arc = arcs[i];\n\n if (controller) {\n controller._configure();\n\n options = controller._resolveDataElementOptions(arc, i);\n } else {\n options = arc._options;\n }\n\n if (options.borderAlign !== 'inner') {\n borderWidth = options.borderWidth;\n hoverWidth = options.hoverBorderWidth;\n max = borderWidth > max ? borderWidth : max;\n max = hoverWidth > max ? hoverWidth : max;\n }\n }\n\n return max;\n },\n\n /**\r\n * @protected\r\n */\n setHoverStyle: function (arc) {\n var model = arc._model;\n var options = arc._options;\n var getHoverColor = helpers$1.getHoverColor;\n arc.$previousStyle = {\n backgroundColor: model.backgroundColor,\n borderColor: model.borderColor,\n borderWidth: model.borderWidth\n };\n model.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n model.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n model.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n },\n\n /**\r\n * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n * @private\r\n */\n _getRingWeightOffset: function (datasetIndex) {\n var ringWeightOffset = 0;\n\n for (var i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n\n return ringWeightOffset;\n },\n\n /**\r\n * @private\r\n */\n _getRingWeight: function (dataSetIndex) {\n return Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n },\n\n /**\r\n * Returns the sum of all visibile data set weights. This value can be 0.\r\n * @private\r\n */\n _getVisibleDatasetWeightTotal: function () {\n return this._getRingWeightOffset(this.chart.data.datasets.length);\n }\n });\n\n core_defaults._set('horizontalBar', {\n hover: {\n mode: 'index',\n axis: 'y'\n },\n scales: {\n xAxes: [{\n type: 'linear',\n position: 'bottom'\n }],\n yAxes: [{\n type: 'category',\n position: 'left',\n offset: true,\n gridLines: {\n offsetGridLines: true\n }\n }]\n },\n elements: {\n rectangle: {\n borderSkipped: 'left'\n }\n },\n tooltips: {\n mode: 'index',\n axis: 'y'\n }\n });\n\n core_defaults._set('global', {\n datasets: {\n horizontalBar: {\n categoryPercentage: 0.8,\n barPercentage: 0.9\n }\n }\n });\n\n var controller_horizontalBar = controller_bar.extend({\n /**\r\n * @private\r\n */\n _getValueScaleId: function () {\n return this.getMeta().xAxisID;\n },\n\n /**\r\n * @private\r\n */\n _getIndexScaleId: function () {\n return this.getMeta().yAxisID;\n }\n });\n var valueOrDefault$6 = helpers$1.valueOrDefault;\n var resolve$2 = helpers$1.options.resolve;\n var isPointInArea = helpers$1.canvas._isPointInArea;\n\n core_defaults._set('line', {\n showLines: true,\n spanGaps: false,\n hover: {\n mode: 'label'\n },\n scales: {\n xAxes: [{\n type: 'category',\n id: 'x-axis-0'\n }],\n yAxes: [{\n type: 'linear',\n id: 'y-axis-0'\n }]\n }\n });\n\n function scaleClip(scale, halfBorderWidth) {\n var tickOpts = scale && scale.options.ticks || {};\n var reverse = tickOpts.reverse;\n var min = tickOpts.min === undefined ? halfBorderWidth : 0;\n var max = tickOpts.max === undefined ? halfBorderWidth : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n }\n\n function defaultClip(xScale, yScale, borderWidth) {\n var halfBorderWidth = borderWidth / 2;\n var x = scaleClip(xScale, halfBorderWidth);\n var y = scaleClip(yScale, halfBorderWidth);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n }\n\n function toClip(value) {\n var t, r, b, l;\n\n if (helpers$1.isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n\n return {\n top: t,\n right: r,\n bottom: b,\n left: l\n };\n }\n\n var controller_line = core_datasetController.extend({\n datasetElementType: elements.Line,\n dataElementType: elements.Point,\n\n /**\r\n * @private\r\n */\n _datasetElementOptions: ['backgroundColor', 'borderCapStyle', 'borderColor', 'borderDash', 'borderDashOffset', 'borderJoinStyle', 'borderWidth', 'cubicInterpolationMode', 'fill'],\n\n /**\r\n * @private\r\n */\n _dataElementOptions: {\n backgroundColor: 'pointBackgroundColor',\n borderColor: 'pointBorderColor',\n borderWidth: 'pointBorderWidth',\n hitRadius: 'pointHitRadius',\n hoverBackgroundColor: 'pointHoverBackgroundColor',\n hoverBorderColor: 'pointHoverBorderColor',\n hoverBorderWidth: 'pointHoverBorderWidth',\n hoverRadius: 'pointHoverRadius',\n pointStyle: 'pointStyle',\n radius: 'pointRadius',\n rotation: 'pointRotation'\n },\n update: function (reset) {\n var me = this;\n var meta = me.getMeta();\n var line = meta.dataset;\n var points = meta.data || [];\n var options = me.chart.options;\n var config = me._config;\n var showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\n var i, ilen;\n me._xScale = me.getScaleForId(meta.xAxisID);\n me._yScale = me.getScaleForId(meta.yAxisID); // Update Line\n\n if (showLine) {\n // Compatibility: If the properties are defined with only the old name, use those values\n if (config.tension !== undefined && config.lineTension === undefined) {\n config.lineTension = config.tension;\n } // Utility\n\n\n line._scale = me._yScale;\n line._datasetIndex = me.index; // Data\n\n line._children = points; // Model\n\n line._model = me._resolveDatasetElementOptions(line);\n line.pivot();\n } // Update Points\n\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n me.updateElement(points[i], i, reset);\n }\n\n if (showLine && line._model.tension !== 0) {\n me.updateBezierControlPoints();\n } // Now pivot the point for animation\n\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n points[i].pivot();\n }\n },\n updateElement: function (point, index, reset) {\n var me = this;\n var meta = me.getMeta();\n var custom = point.custom || {};\n var dataset = me.getDataset();\n var datasetIndex = me.index;\n var value = dataset.data[index];\n var xScale = me._xScale;\n var yScale = me._yScale;\n var lineModel = meta.dataset._model;\n var x, y;\n\n var options = me._resolveDataElementOptions(point, index);\n\n x = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n y = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex); // Utility\n\n point._xScale = xScale;\n point._yScale = yScale;\n point._options = options;\n point._datasetIndex = datasetIndex;\n point._index = index; // Desired view properties\n\n point._model = {\n x: x,\n y: y,\n skip: custom.skip || isNaN(x) || isNaN(y),\n // Appearance\n radius: options.radius,\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n tension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n steppedLine: lineModel ? lineModel.steppedLine : false,\n // Tooltip\n hitRadius: options.hitRadius\n };\n },\n\n /**\r\n * @private\r\n */\n _resolveDatasetElementOptions: function (element) {\n var me = this;\n var config = me._config;\n var custom = element.custom || {};\n var options = me.chart.options;\n var lineOptions = options.elements.line;\n\n var values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments); // The default behavior of lines is to break at null values, according\n // to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n // This option gives lines the ability to span gaps\n\n\n values.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\n values.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\n values.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\n values.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\n return values;\n },\n calculatePointY: function (value, index, datasetIndex) {\n var me = this;\n var chart = me.chart;\n var yScale = me._yScale;\n var sumPos = 0;\n var sumNeg = 0;\n var i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\n\n if (yScale.options.stacked) {\n rightValue = +yScale.getRightValue(value);\n metasets = chart._getSortedVisibleDatasetMetas();\n ilen = metasets.length;\n\n for (i = 0; i < ilen; ++i) {\n dsMeta = metasets[i];\n\n if (dsMeta.index === datasetIndex) {\n break;\n }\n\n ds = chart.data.datasets[dsMeta.index];\n\n if (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\n stackedRightValue = +yScale.getRightValue(ds.data[index]);\n\n if (stackedRightValue < 0) {\n sumNeg += stackedRightValue || 0;\n } else {\n sumPos += stackedRightValue || 0;\n }\n }\n }\n\n if (rightValue < 0) {\n return yScale.getPixelForValue(sumNeg + rightValue);\n }\n\n return yScale.getPixelForValue(sumPos + rightValue);\n }\n\n return yScale.getPixelForValue(value);\n },\n updateBezierControlPoints: function () {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var lineModel = meta.dataset._model;\n var area = chart.chartArea;\n var points = meta.data || [];\n var i, ilen, model, controlPoints; // Only consider points that are drawn in case the spanGaps option is used\n\n if (lineModel.spanGaps) {\n points = points.filter(function (pt) {\n return !pt._model.skip;\n });\n }\n\n function capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n }\n\n if (lineModel.cubicInterpolationMode === 'monotone') {\n helpers$1.splineCurveMonotone(points);\n } else {\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n model = points[i]._model;\n controlPoints = helpers$1.splineCurve(helpers$1.previousItem(points, i)._model, model, helpers$1.nextItem(points, i)._model, lineModel.tension);\n model.controlPointPreviousX = controlPoints.previous.x;\n model.controlPointPreviousY = controlPoints.previous.y;\n model.controlPointNextX = controlPoints.next.x;\n model.controlPointNextY = controlPoints.next.y;\n }\n }\n\n if (chart.options.elements.line.capBezierPoints) {\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n model = points[i]._model;\n\n if (isPointInArea(model, area)) {\n if (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n model.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n model.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n }\n\n if (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n model.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n model.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n }\n }\n }\n }\n },\n draw: function () {\n var me = this;\n var chart = me.chart;\n var meta = me.getMeta();\n var points = meta.data || [];\n var area = chart.chartArea;\n var canvas = chart.canvas;\n var i = 0;\n var ilen = points.length;\n var clip;\n\n if (me._showLine) {\n clip = meta.dataset._model.clip;\n helpers$1.canvas.clipArea(chart.ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? canvas.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\n });\n meta.dataset.draw();\n helpers$1.canvas.unclipArea(chart.ctx);\n } // Draw the points\n\n\n for (; i < ilen; ++i) {\n points[i].draw(area);\n }\n },\n\n /**\r\n * @protected\r\n */\n setHoverStyle: function (point) {\n var model = point._model;\n var options = point._options;\n var getHoverColor = helpers$1.getHoverColor;\n point.$previousStyle = {\n backgroundColor: model.backgroundColor,\n borderColor: model.borderColor,\n borderWidth: model.borderWidth,\n radius: model.radius\n };\n model.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n model.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n model.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n model.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n }\n });\n var resolve$3 = helpers$1.options.resolve;\n\n core_defaults._set('polarArea', {\n scale: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n gridLines: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n ticks: {\n beginAtZero: true\n }\n },\n // Boolean - Whether to animate the rotation of the chart\n animation: {\n animateRotate: true,\n animateScale: true\n },\n startAngle: -0.5 * Math.PI,\n legendCallback: function (chart) {\n var list = document.createElement('ul');\n var data = chart.data;\n var datasets = data.datasets;\n var labels = data.labels;\n var i, ilen, listItem, listItemSpan;\n list.setAttribute('class', chart.id + '-legend');\n\n if (datasets.length) {\n for (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n listItem = list.appendChild(document.createElement('li'));\n listItemSpan = listItem.appendChild(document.createElement('span'));\n listItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\n if (labels[i]) {\n listItem.appendChild(document.createTextNode(labels[i]));\n }\n }\n }\n\n return list.outerHTML;\n },\n legend: {\n labels: {\n generateLabels: function (chart) {\n var data = chart.data;\n\n if (data.labels.length && data.datasets.length) {\n return data.labels.map(function (label, i) {\n var meta = chart.getDatasetMeta(0);\n var style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n hidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n // Extra data used for toggling the correct item\n index: i\n };\n });\n }\n\n return [];\n }\n },\n onClick: function (e, legendItem) {\n var index = legendItem.index;\n var chart = this.chart;\n var i, ilen, meta;\n\n for (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n meta = chart.getDatasetMeta(i);\n meta.data[index].hidden = !meta.data[index].hidden;\n }\n\n chart.update();\n }\n },\n // Need to override these to give a nice default\n tooltips: {\n callbacks: {\n title: function () {\n return '';\n },\n label: function (item, data) {\n return data.labels[item.index] + ': ' + item.yLabel;\n }\n }\n }\n });\n\n var controller_polarArea = core_datasetController.extend({\n dataElementType: elements.Arc,\n linkScales: helpers$1.noop,\n\n /**\r\n * @private\r\n */\n _dataElementOptions: ['backgroundColor', 'borderColor', 'borderWidth', 'borderAlign', 'hoverBackgroundColor', 'hoverBorderColor', 'hoverBorderWidth'],\n\n /**\r\n * @private\r\n */\n _getIndexScaleId: function () {\n return this.chart.scale.id;\n },\n\n /**\r\n * @private\r\n */\n _getValueScaleId: function () {\n return this.chart.scale.id;\n },\n update: function (reset) {\n var me = this;\n var dataset = me.getDataset();\n var meta = me.getMeta();\n var start = me.chart.options.startAngle || 0;\n var starts = me._starts = [];\n var angles = me._angles = [];\n var arcs = meta.data;\n var i, ilen, angle;\n\n me._updateRadius();\n\n meta.count = me.countVisibleElements();\n\n for (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n starts[i] = start;\n angle = me._computeAngle(i);\n angles[i] = angle;\n start += angle;\n }\n\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n arcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n me.updateElement(arcs[i], i, reset);\n }\n },\n\n /**\r\n * @private\r\n */\n _updateRadius: function () {\n var me = this;\n var chart = me.chart;\n var chartArea = chart.chartArea;\n var opts = chart.options;\n var minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n chart.outerRadius = Math.max(minSize / 2, 0);\n chart.innerRadius = Math.max(opts.cutoutPercentage ? chart.outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n chart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n me.outerRadius = chart.outerRadius - chart.radiusLength * me.index;\n me.innerRadius = me.outerRadius - chart.radiusLength;\n },\n updateElement: function (arc, index, reset) {\n var me = this;\n var chart = me.chart;\n var dataset = me.getDataset();\n var opts = chart.options;\n var animationOpts = opts.animation;\n var scale = chart.scale;\n var labels = chart.data.labels;\n var centerX = scale.xCenter;\n var centerY = scale.yCenter; // var negHalfPI = -0.5 * Math.PI;\n\n var datasetStartAngle = opts.startAngle;\n var distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n var startAngle = me._starts[index];\n var endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n var resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n var options = arc._options || {};\n helpers$1.extend(arc, {\n // Utility\n _datasetIndex: me.index,\n _index: index,\n _scale: scale,\n // Desired view properties\n _model: {\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n borderAlign: options.borderAlign,\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius: reset ? resetRadius : distance,\n startAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n endAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n label: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n }\n });\n arc.pivot();\n },\n countVisibleElements: function () {\n var dataset = this.getDataset();\n var meta = this.getMeta();\n var count = 0;\n helpers$1.each(meta.data, function (element, index) {\n if (!isNaN(dataset.data[index]) && !element.hidden) {\n count++;\n }\n });\n return count;\n },\n\n /**\r\n * @protected\r\n */\n setHoverStyle: function (arc) {\n var model = arc._model;\n var options = arc._options;\n var getHoverColor = helpers$1.getHoverColor;\n var valueOrDefault = helpers$1.valueOrDefault;\n arc.$previousStyle = {\n backgroundColor: model.backgroundColor,\n borderColor: model.borderColor,\n borderWidth: model.borderWidth\n };\n model.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n model.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n model.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n },\n\n /**\r\n * @private\r\n */\n _computeAngle: function (index) {\n var me = this;\n var count = this.getMeta().count;\n var dataset = me.getDataset();\n var meta = me.getMeta();\n\n if (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n return 0;\n } // Scriptable options\n\n\n var context = {\n chart: me.chart,\n dataIndex: index,\n dataset: dataset,\n datasetIndex: me.index\n };\n return resolve$3([me.chart.options.elements.arc.angle, 2 * Math.PI / count], context, index);\n }\n });\n\n core_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\n\n core_defaults._set('pie', {\n cutoutPercentage: 0\n }); // Pie charts are Doughnut chart with different defaults\n\n\n var controller_pie = controller_doughnut;\n var valueOrDefault$7 = helpers$1.valueOrDefault;\n\n core_defaults._set('radar', {\n spanGaps: false,\n scale: {\n type: 'radialLinear'\n },\n elements: {\n line: {\n fill: 'start',\n tension: 0 // no bezier in radar\n\n }\n }\n });\n\n var controller_radar = core_datasetController.extend({\n datasetElementType: elements.Line,\n dataElementType: elements.Point,\n linkScales: helpers$1.noop,\n\n /**\r\n * @private\r\n */\n _datasetElementOptions: ['backgroundColor', 'borderWidth', 'borderColor', 'borderCapStyle', 'borderDash', 'borderDashOffset', 'borderJoinStyle', 'fill'],\n\n /**\r\n * @private\r\n */\n _dataElementOptions: {\n backgroundColor: 'pointBackgroundColor',\n borderColor: 'pointBorderColor',\n borderWidth: 'pointBorderWidth',\n hitRadius: 'pointHitRadius',\n hoverBackgroundColor: 'pointHoverBackgroundColor',\n hoverBorderColor: 'pointHoverBorderColor',\n hoverBorderWidth: 'pointHoverBorderWidth',\n hoverRadius: 'pointHoverRadius',\n pointStyle: 'pointStyle',\n radius: 'pointRadius',\n rotation: 'pointRotation'\n },\n\n /**\r\n * @private\r\n */\n _getIndexScaleId: function () {\n return this.chart.scale.id;\n },\n\n /**\r\n * @private\r\n */\n _getValueScaleId: function () {\n return this.chart.scale.id;\n },\n update: function (reset) {\n var me = this;\n var meta = me.getMeta();\n var line = meta.dataset;\n var points = meta.data || [];\n var scale = me.chart.scale;\n var config = me._config;\n var i, ilen; // Compatibility: If the properties are defined with only the old name, use those values\n\n if (config.tension !== undefined && config.lineTension === undefined) {\n config.lineTension = config.tension;\n } // Utility\n\n\n line._scale = scale;\n line._datasetIndex = me.index; // Data\n\n line._children = points;\n line._loop = true; // Model\n\n line._model = me._resolveDatasetElementOptions(line);\n line.pivot(); // Update Points\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n me.updateElement(points[i], i, reset);\n } // Update bezier control points\n\n\n me.updateBezierControlPoints(); // Now pivot the point for animation\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n points[i].pivot();\n }\n },\n updateElement: function (point, index, reset) {\n var me = this;\n var custom = point.custom || {};\n var dataset = me.getDataset();\n var scale = me.chart.scale;\n var pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\n var options = me._resolveDataElementOptions(point, index);\n\n var lineModel = me.getMeta().dataset._model;\n\n var x = reset ? scale.xCenter : pointPosition.x;\n var y = reset ? scale.yCenter : pointPosition.y; // Utility\n\n point._scale = scale;\n point._options = options;\n point._datasetIndex = me.index;\n point._index = index; // Desired view properties\n\n point._model = {\n x: x,\n // value not used in dataset scale, but we want a consistent API between scales\n y: y,\n skip: custom.skip || isNaN(x) || isNaN(y),\n // Appearance\n radius: options.radius,\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n backgroundColor: options.backgroundColor,\n borderColor: options.borderColor,\n borderWidth: options.borderWidth,\n tension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\n // Tooltip\n hitRadius: options.hitRadius\n };\n },\n\n /**\r\n * @private\r\n */\n _resolveDatasetElementOptions: function () {\n var me = this;\n var config = me._config;\n var options = me.chart.options;\n\n var values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n values.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\n values.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\n return values;\n },\n updateBezierControlPoints: function () {\n var me = this;\n var meta = me.getMeta();\n var area = me.chart.chartArea;\n var points = meta.data || [];\n var i, ilen, model, controlPoints; // Only consider points that are drawn in case the spanGaps option is used\n\n if (meta.dataset._model.spanGaps) {\n points = points.filter(function (pt) {\n return !pt._model.skip;\n });\n }\n\n function capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n }\n\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n model = points[i]._model;\n controlPoints = helpers$1.splineCurve(helpers$1.previousItem(points, i, true)._model, model, helpers$1.nextItem(points, i, true)._model, model.tension); // Prevent the bezier going outside of the bounds of the graph\n\n model.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n model.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n model.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n model.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n }\n },\n setHoverStyle: function (point) {\n var model = point._model;\n var options = point._options;\n var getHoverColor = helpers$1.getHoverColor;\n point.$previousStyle = {\n backgroundColor: model.backgroundColor,\n borderColor: model.borderColor,\n borderWidth: model.borderWidth,\n radius: model.radius\n };\n model.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n model.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\n model.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\n model.radius = valueOrDefault$7(options.hoverRadius, options.radius);\n }\n });\n\n core_defaults._set('scatter', {\n hover: {\n mode: 'single'\n },\n scales: {\n xAxes: [{\n id: 'x-axis-1',\n // need an ID so datasets can reference the scale\n type: 'linear',\n // scatter should not use a category axis\n position: 'bottom'\n }],\n yAxes: [{\n id: 'y-axis-1',\n type: 'linear',\n position: 'left'\n }]\n },\n tooltips: {\n callbacks: {\n title: function () {\n return ''; // doesn't make sense for scatter since data are formatted as a point\n },\n label: function (item) {\n return '(' + item.xLabel + ', ' + item.yLabel + ')';\n }\n }\n }\n });\n\n core_defaults._set('global', {\n datasets: {\n scatter: {\n showLine: false\n }\n }\n }); // Scatter charts use line controllers\n\n\n var controller_scatter = controller_line; // NOTE export a map in which the key represents the controller type, not\n // the class, and so must be CamelCase in order to be correctly retrieved\n // by the controller in core.controller.js (`controllers[meta.type]`).\n\n var controllers = {\n bar: controller_bar,\n bubble: controller_bubble,\n doughnut: controller_doughnut,\n horizontalBar: controller_horizontalBar,\n line: controller_line,\n polarArea: controller_polarArea,\n pie: controller_pie,\n radar: controller_radar,\n scatter: controller_scatter\n };\n /**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\n\n function getRelativePosition(e, chart) {\n if (e.native) {\n return {\n x: e.x,\n y: e.y\n };\n }\n\n return helpers$1.getRelativePosition(e, chart);\n }\n /**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\n\n\n function parseVisibleItems(chart, handler) {\n var metasets = chart._getSortedVisibleDatasetMetas();\n\n var metadata, i, j, ilen, jlen, element;\n\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n metadata = metasets[i].data;\n\n for (j = 0, jlen = metadata.length; j < jlen; ++j) {\n element = metadata[j];\n\n if (!element._view.skip) {\n handler(element);\n }\n }\n }\n }\n /**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\n\n\n function getIntersectItems(chart, position) {\n var elements = [];\n parseVisibleItems(chart, function (element) {\n if (element.inRange(position.x, position.y)) {\n elements.push(element);\n }\n });\n return elements;\n }\n /**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\n\n\n function getNearestItems(chart, position, intersect, distanceMetric) {\n var minDistance = Number.POSITIVE_INFINITY;\n var nearestItems = [];\n parseVisibleItems(chart, function (element) {\n if (intersect && !element.inRange(position.x, position.y)) {\n return;\n }\n\n var center = element.getCenterPoint();\n var distance = distanceMetric(position, center);\n\n if (distance < minDistance) {\n nearestItems = [element];\n minDistance = distance;\n } else if (distance === minDistance) {\n // Can have multiple items at the same distance in which case we sort by size\n nearestItems.push(element);\n }\n });\n return nearestItems;\n }\n /**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\n\n\n function getDistanceMetricForAxis(axis) {\n var useX = axis.indexOf('x') !== -1;\n var useY = axis.indexOf('y') !== -1;\n return function (pt1, pt2) {\n var deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n var deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n }\n\n function indexMode(chart, e, options) {\n var position = getRelativePosition(e, chart); // Default axis for index mode is 'x' to match old behaviour\n\n options.axis = options.axis || 'x';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n var elements = [];\n\n if (!items.length) {\n return [];\n }\n\n chart._getSortedVisibleDatasetMetas().forEach(function (meta) {\n var element = meta.data[items[0]._index]; // don't count items that are skipped (null data)\n\n if (element && !element._view.skip) {\n elements.push(element);\n }\n });\n\n return elements;\n }\n /**\r\n * @interface IInteractionOptions\r\n */\n\n /**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\n\n /**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\n\n\n var core_interaction = {\n // Helper function for different modes\n modes: {\n single: function (chart, e) {\n var position = getRelativePosition(e, chart);\n var elements = [];\n parseVisibleItems(chart, function (element) {\n if (element.inRange(position.x, position.y)) {\n elements.push(element);\n return elements;\n }\n });\n return elements.slice(0, 1);\n },\n\n /**\r\n * @function Chart.Interaction.modes.label\r\n * @deprecated since version 2.4.0\r\n * @todo remove at version 3\r\n * @private\r\n */\n label: indexMode,\n\n /**\r\n * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n * @function Chart.Interaction.modes.index\r\n * @since v2.4.0\r\n * @param {Chart} chart - the chart we are returning items from\r\n * @param {Event} e - the event we are find things at\r\n * @param {IInteractionOptions} options - options to use during interaction\r\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n */\n index: indexMode,\n\n /**\r\n * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n * @function Chart.Interaction.modes.dataset\r\n * @param {Chart} chart - the chart we are returning items from\r\n * @param {Event} e - the event we are find things at\r\n * @param {IInteractionOptions} options - options to use during interaction\r\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n */\n dataset: function (chart, e, options) {\n var position = getRelativePosition(e, chart);\n options.axis = options.axis || 'xy';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n var items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n if (items.length > 0) {\n items = chart.getDatasetMeta(items[0]._datasetIndex).data;\n }\n\n return items;\n },\n\n /**\r\n * @function Chart.Interaction.modes.x-axis\r\n * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n * @todo remove at version 3\r\n * @private\r\n */\n 'x-axis': function (chart, e) {\n return indexMode(chart, e, {\n intersect: false\n });\n },\n\n /**\r\n * Point mode returns all elements that hit test based on the event position\r\n * of the event\r\n * @function Chart.Interaction.modes.intersect\r\n * @param {Chart} chart - the chart we are returning items from\r\n * @param {Event} e - the event we are find things at\r\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n */\n point: function (chart, e) {\n var position = getRelativePosition(e, chart);\n return getIntersectItems(chart, position);\n },\n\n /**\r\n * nearest mode returns the element closest to the point\r\n * @function Chart.Interaction.modes.intersect\r\n * @param {Chart} chart - the chart we are returning items from\r\n * @param {Event} e - the event we are find things at\r\n * @param {IInteractionOptions} options - options to use\r\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n */\n nearest: function (chart, e, options) {\n var position = getRelativePosition(e, chart);\n options.axis = options.axis || 'xy';\n var distanceMetric = getDistanceMetricForAxis(options.axis);\n return getNearestItems(chart, position, options.intersect, distanceMetric);\n },\n\n /**\r\n * x mode returns the elements that hit-test at the current x coordinate\r\n * @function Chart.Interaction.modes.x\r\n * @param {Chart} chart - the chart we are returning items from\r\n * @param {Event} e - the event we are find things at\r\n * @param {IInteractionOptions} options - options to use\r\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n */\n x: function (chart, e, options) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var intersectsItem = false;\n parseVisibleItems(chart, function (element) {\n if (element.inXRange(position.x)) {\n items.push(element);\n }\n\n if (element.inRange(position.x, position.y)) {\n intersectsItem = true;\n }\n }); // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n\n if (options.intersect && !intersectsItem) {\n items = [];\n }\n\n return items;\n },\n\n /**\r\n * y mode returns the elements that hit-test at the current y coordinate\r\n * @function Chart.Interaction.modes.y\r\n * @param {Chart} chart - the chart we are returning items from\r\n * @param {Event} e - the event we are find things at\r\n * @param {IInteractionOptions} options - options to use\r\n * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n */\n y: function (chart, e, options) {\n var position = getRelativePosition(e, chart);\n var items = [];\n var intersectsItem = false;\n parseVisibleItems(chart, function (element) {\n if (element.inYRange(position.y)) {\n items.push(element);\n }\n\n if (element.inRange(position.x, position.y)) {\n intersectsItem = true;\n }\n }); // If we want to trigger on an intersect and we don't have any items\n // that intersect the position, return nothing\n\n if (options.intersect && !intersectsItem) {\n items = [];\n }\n\n return items;\n }\n }\n };\n var extend = helpers$1.extend;\n\n function filterByPosition(array, position) {\n return helpers$1.where(array, function (v) {\n return v.pos === position;\n });\n }\n\n function sortByWeight(array, reverse) {\n return array.sort(function (a, b) {\n var v0 = reverse ? b : a;\n var v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n }\n\n function wrapBoxes(boxes) {\n var layoutBoxes = [];\n var i, ilen, box;\n\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n layoutBoxes.push({\n index: i,\n box: box,\n pos: box.position,\n horizontal: box.isHorizontal(),\n weight: box.weight\n });\n }\n\n return layoutBoxes;\n }\n\n function setLayoutDims(layouts, params) {\n var i, ilen, layout;\n\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i]; // store width used instead of chartArea.w in fitBoxes\n\n layout.width = layout.horizontal ? layout.box.fullWidth && params.availableWidth : params.vBoxMaxWidth; // store height used instead of chartArea.h in fitBoxes\n\n layout.height = layout.horizontal && params.hBoxMaxHeight;\n }\n }\n\n function buildLayoutBoxes(boxes) {\n var layoutBoxes = wrapBoxes(boxes);\n var left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n var right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n var top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n var bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n return {\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(bottom),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right),\n horizontal: top.concat(bottom)\n };\n }\n\n function getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n }\n\n function updateDims(chartArea, params, layout) {\n var box = layout.box;\n var maxPadding = chartArea.maxPadding;\n var newWidth, newHeight;\n\n if (layout.size) {\n // this layout was already counted for, lets first reduce old size\n chartArea[layout.pos] -= layout.size;\n }\n\n layout.size = layout.horizontal ? box.height : box.width;\n chartArea[layout.pos] += layout.size;\n\n if (box.getPadding) {\n var boxPadding = box.getPadding();\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n }\n\n newWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\n newHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\n\n if (newWidth !== chartArea.w || newHeight !== chartArea.h) {\n chartArea.w = newWidth;\n chartArea.h = newHeight; // return true if chart area changed in layout's direction\n\n var sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\n return sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\n }\n }\n\n function handleMaxPadding(chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function updatePos(pos) {\n var change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n }\n\n function getMargins(horizontal, chartArea) {\n var maxPadding = chartArea.maxPadding;\n\n function marginForPositions(positions) {\n var margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach(function (pos) {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n\n return horizontal ? marginForPositions(['left', 'right']) : marginForPositions(['top', 'bottom']);\n }\n\n function fitBoxes(boxes, chartArea, params) {\n var refitBoxes = [];\n var i, ilen, layout, box, refit, changed;\n\n for (i = 0, ilen = boxes.length; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n\n if (updateDims(chartArea, params, layout)) {\n changed = true;\n\n if (refitBoxes.length) {\n // Dimensions changed and there were non full width boxes before this\n // -> we have to refit those\n refit = true;\n }\n }\n\n if (!box.fullWidth) {\n // fullWidth boxes don't need to be re-fitted in any case\n refitBoxes.push(layout);\n }\n }\n\n return refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\n }\n\n function placeBoxes(boxes, chartArea, params) {\n var userPadding = params.padding;\n var x = chartArea.x;\n var y = chartArea.y;\n var i, ilen, layout, box;\n\n for (i = 0, ilen = boxes.length; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n\n if (layout.horizontal) {\n box.left = box.fullWidth ? userPadding.left : chartArea.left;\n box.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n box.top = y;\n box.bottom = y + box.height;\n box.width = box.right - box.left;\n y = box.bottom;\n } else {\n box.left = x;\n box.right = x + box.width;\n box.top = chartArea.top;\n box.bottom = chartArea.top + chartArea.h;\n box.height = box.bottom - box.top;\n x = box.right;\n }\n }\n\n chartArea.x = x;\n chartArea.y = y;\n }\n\n core_defaults._set('global', {\n layout: {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n }\n });\n /**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\n // The layout service is very self explanatory. It's responsible for the layout within a chart.\n // Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n // It is this service's responsibility of carrying out that layout.\n\n\n var core_layouts = {\n defaults: {},\n\n /**\r\n * Register a box to a chart.\r\n * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n * @param {Chart} chart - the chart to use\r\n * @param {ILayoutItem} item - the item to add to be layed out\r\n */\n addBox: function (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n } // initialize item with default values\n\n\n item.fullWidth = item.fullWidth || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n\n item._layers = item._layers || function () {\n return [{\n z: 0,\n draw: function () {\n item.draw.apply(item, arguments);\n }\n }];\n };\n\n chart.boxes.push(item);\n },\n\n /**\r\n * Remove a layoutItem from a chart\r\n * @param {Chart} chart - the chart to remove the box from\r\n * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n */\n removeBox: function (chart, layoutItem) {\n var index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n\n /**\r\n * Sets (or updates) options on the given `item`.\r\n * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n * @param {ILayoutItem} item - the item to configure with the given options\r\n * @param {object} options - the new item options.\r\n */\n configure: function (chart, item, options) {\n var props = ['fullWidth', 'position', 'weight'];\n var ilen = props.length;\n var i = 0;\n var prop;\n\n for (; i < ilen; ++i) {\n prop = props[i];\n\n if (options.hasOwnProperty(prop)) {\n item[prop] = options[prop];\n }\n }\n },\n\n /**\r\n * Fits boxes of the given chart into the given size by having each box measure itself\r\n * then running a fitting algorithm\r\n * @param {Chart} chart - the chart\r\n * @param {number} width - the width to fit into\r\n * @param {number} height - the height to fit into\r\n */\n update: function (chart, width, height) {\n if (!chart) {\n return;\n }\n\n var layoutOptions = chart.options.layout || {};\n var padding = helpers$1.options.toPadding(layoutOptions.padding);\n var availableWidth = width - padding.width;\n var availableHeight = height - padding.height;\n var boxes = buildLayoutBoxes(chart.boxes);\n var verticalBoxes = boxes.vertical;\n var horizontalBoxes = boxes.horizontal; // Essentially we now have any number of boxes on each of the 4 sides.\n // Our canvas looks like the following.\n // The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n // B1 is the bottom axis\n // There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n // These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n // an error will be thrown.\n //\n // |----------------------------------------------------|\n // | T1 (Full Width) |\n // |----------------------------------------------------|\n // | | | T2 | |\n // | |----|-------------------------------------|----|\n // | | | C1 | | C2 | |\n // | | |----| |----| |\n // | | | | |\n // | L1 | L2 | ChartArea (C0) | R1 |\n // | | | | |\n // | | |----| |----| |\n // | | | C3 | | C4 | |\n // | |----|-------------------------------------|----|\n // | | | B1 | |\n // |----------------------------------------------------|\n // | B2 (Full Width) |\n // |----------------------------------------------------|\n //\n\n var params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding: padding,\n availableWidth: availableWidth,\n vBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\n hBoxMaxHeight: availableHeight / 2\n });\n var chartArea = extend({\n maxPadding: extend({}, padding),\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n setLayoutDims(verticalBoxes.concat(horizontalBoxes), params); // First fit vertical boxes\n\n fitBoxes(verticalBoxes, chartArea, params); // Then fit horizontal boxes\n\n if (fitBoxes(horizontalBoxes, chartArea, params)) {\n // if the area changed, re-fit vertical boxes\n fitBoxes(verticalBoxes, chartArea, params);\n }\n\n handleMaxPadding(chartArea); // Finally place the boxes to correct coordinates\n\n placeBoxes(boxes.leftAndTop, chartArea, params); // Move to opposite side of chart\n\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h\n }; // Finally update boxes in chartArea (radial scale for example)\n\n helpers$1.each(boxes.chartArea, function (layout) {\n var box = layout.box;\n extend(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h);\n });\n }\n };\n /**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\n\n var platform_basic = {\n acquireContext: function (item) {\n if (item && item.canvas) {\n // Support for any object associated to a canvas (including a context2d)\n item = item.canvas;\n }\n\n return item && item.getContext('2d') || null;\n }\n };\n var platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n var platform_dom$1 = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': platform_dom\n });\n var stylesheet = getCjsExportFromNamespace(platform_dom$1);\n var EXPANDO_KEY = '$chartjs';\n var CSS_PREFIX = 'chartjs-';\n var CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\n var CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\n var CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\n var ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n /**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\n\n var EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n };\n /**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\n\n function readUsedSize(element, property) {\n var value = helpers$1.getStyle(element, property);\n var matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? Number(matches[1]) : undefined;\n }\n /**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\n\n\n function initCanvas(canvas, config) {\n var style = canvas.style; // NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n // returns null or '' if no explicit value has been set to the canvas attribute.\n\n var renderHeight = canvas.getAttribute('height');\n var renderWidth = canvas.getAttribute('width'); // Chart.js modifies some canvas values that we want to restore on destroy\n\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n }; // Force canvas to display as block to avoid extra space caused by inline\n // elements, which would interfere with the responsive resize process.\n // https://github.com/chartjs/Chart.js/issues/2538\n\n style.display = style.display || 'block';\n\n if (renderWidth === null || renderWidth === '') {\n var displayWidth = readUsedSize(canvas, 'width');\n\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n\n if (renderHeight === null || renderHeight === '') {\n if (canvas.style.height === '') {\n // If no explicit render height and style height, let's apply the aspect ratio,\n // which one can be specified by the user but also by charts as default option\n // (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n canvas.height = canvas.width / (config.options.aspectRatio || 2);\n } else {\n var displayHeight = readUsedSize(canvas, 'height');\n\n if (displayWidth !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n\n return canvas;\n }\n /**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\n\n\n var supportsEventListenerOptions = function () {\n var supports = false;\n\n try {\n var options = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line getter-return\n get: function () {\n supports = true;\n }\n });\n window.addEventListener('e', null, options);\n } catch (e) {// continue regardless of error\n }\n\n return supports;\n }(); // Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n // https://github.com/chartjs/Chart.js/issues/4287\n\n\n var eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n } : false;\n\n function addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n\n function removeListener(node, type, listener) {\n node.removeEventListener(type, listener, eventListenerOptions);\n }\n\n function createEvent(type, chart, x, y, nativeEvent) {\n return {\n type: type,\n chart: chart,\n native: nativeEvent || null,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n }\n\n function fromNativeEvent(event, chart) {\n var type = EVENT_TYPES[event.type] || event.type;\n var pos = helpers$1.getRelativePosition(event, chart);\n return createEvent(type, chart, pos.x, pos.y, event);\n }\n\n function throttled(fn, thisArg) {\n var ticking = false;\n var args = [];\n return function () {\n args = Array.prototype.slice.call(arguments);\n thisArg = thisArg || this;\n\n if (!ticking) {\n ticking = true;\n helpers$1.requestAnimFrame.call(window, function () {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n }\n\n function createDiv(cls) {\n var el = document.createElement('div');\n el.className = cls || '';\n return el;\n } // Implementation based on https://github.com/marcj/css-element-queries\n\n\n function createResizer(handler) {\n var maxSize = 1000000; // NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n // https://github.com/chartjs/Chart.js/issues/5902\n\n var resizer = createDiv(CSS_SIZE_MONITOR);\n var expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n var shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n expand.appendChild(createDiv());\n shrink.appendChild(createDiv());\n resizer.appendChild(expand);\n resizer.appendChild(shrink);\n\n resizer._reset = function () {\n expand.scrollLeft = maxSize;\n expand.scrollTop = maxSize;\n shrink.scrollLeft = maxSize;\n shrink.scrollTop = maxSize;\n };\n\n var onScroll = function () {\n resizer._reset();\n\n handler();\n };\n\n addListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n addListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n return resizer;\n } // https://davidwalsh.name/detect-node-insertion\n\n\n function watchForRender(node, handler) {\n var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n var proxy = expando.renderProxy = function (e) {\n if (e.animationName === CSS_RENDER_ANIMATION) {\n handler();\n }\n };\n\n helpers$1.each(ANIMATION_START_EVENTS, function (type) {\n addListener(node, type, proxy);\n }); // #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n // is removed then added back immediately (same animation frame?). Accessing the\n // `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n // https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n // https://github.com/chartjs/Chart.js/issues/4737\n\n expando.reflow = !!node.offsetParent;\n node.classList.add(CSS_RENDER_MONITOR);\n }\n\n function unwatchForRender(node) {\n var expando = node[EXPANDO_KEY] || {};\n var proxy = expando.renderProxy;\n\n if (proxy) {\n helpers$1.each(ANIMATION_START_EVENTS, function (type) {\n removeListener(node, type, proxy);\n });\n delete expando.renderProxy;\n }\n\n node.classList.remove(CSS_RENDER_MONITOR);\n }\n\n function addResizeListener(node, listener, chart) {\n var expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {}); // Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\n var resizer = expando.resizer = createResizer(throttled(function () {\n if (expando.resizer) {\n var container = chart.options.maintainAspectRatio && node.parentNode;\n var w = container ? container.clientWidth : 0;\n listener(createEvent('resize', chart));\n\n if (container && container.clientWidth < w && chart.canvas) {\n // If the container size shrank during chart resize, let's assume\n // scrollbar appeared. So we resize again with the scrollbar visible -\n // effectively making chart smaller and the scrollbar hidden again.\n // Because we are inside `throttled`, and currently `ticking`, scroll\n // events are ignored during this whole 2 resize process.\n // If we assumed wrong and something else happened, we are resizing\n // twice in a frame (potential performance issue)\n listener(createEvent('resize', chart));\n }\n }\n })); // The resizer needs to be attached to the node parent, so we first need to be\n // sure that `node` is attached to the DOM before injecting the resizer element.\n\n watchForRender(node, function () {\n if (expando.resizer) {\n var container = node.parentNode;\n\n if (container && container !== resizer.parentNode) {\n container.insertBefore(resizer, container.firstChild);\n } // The container size might have changed, let's reset the resizer state.\n\n\n resizer._reset();\n }\n });\n }\n\n function removeResizeListener(node) {\n var expando = node[EXPANDO_KEY] || {};\n var resizer = expando.resizer;\n delete expando.resizer;\n unwatchForRender(node);\n\n if (resizer && resizer.parentNode) {\n resizer.parentNode.removeChild(resizer);\n }\n }\n /**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the