{"version":3,"sources":["node_modules/raven-js/vendor/md5/md5.js","node_modules/raven-js/vendor/TraceKit/tracekit.js","node_modules/rxjs/internal/util/pipe.js","node_modules/raven-js/src/console.js","node_modules/raven-js/vendor/json-stringify-safe/stringify.js","node_modules/rxjs/internal/Subscriber.js","node_modules/rxjs/internal/util/isObject.js","node_modules/rxjs/internal/Observer.js","node_modules/file-saver/dist/FileSaver.min.js","node_modules/webfontloader/webfontloader.js","node_modules/rxjs/internal/util/UnsubscriptionError.js","node_modules/rxjs/internal/util/hostReportError.js","node_modules/raven-js/src/singleton.js","node_modules/slugify/slugify.js","node_modules/deepmerge/dist/cjs.js","node_modules/rxjs/internal/Observable.js","node_modules/b64-to-blob/b64toBlob.js","node_modules/rxjs/internal/util/toSubscriber.js","src/$_lazy_route_resource lazy namespace object","node_modules/fabric/dist/fabric.js","node_modules/dot-object/index.js","node_modules/raven-js/src/raven.js","node_modules/rxjs/internal/util/isArray.js","node_modules/rxjs/internal/config.js","node_modules/rxjs/internal/symbol/rxSubscriber.js","node_modules/rxjs/internal/util/isFunction.js","node_modules/raven-js/src/configError.js","node_modules/raven-js/src/utils.js","node_modules/hammerjs/hammer.js","node_modules/rxjs/internal/util/identity.js","node_modules/rxjs/internal/util/canReportError.js","node_modules/rxjs/internal/Subscription.js","node_modules/rxjs/_esm2015/internal/util/isFunction.js","node_modules/rxjs/_esm2015/internal/config.js","node_modules/rxjs/_esm2015/internal/util/hostReportError.js","node_modules/rxjs/_esm2015/internal/Observer.js","node_modules/rxjs/_esm2015/internal/util/isArray.js","node_modules/rxjs/_esm2015/internal/util/isObject.js","node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","node_modules/rxjs/_esm2015/internal/Subscription.js","node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","node_modules/rxjs/_esm2015/internal/Subscriber.js","node_modules/rxjs/_esm2015/internal/symbol/observable.js","node_modules/rxjs/_esm2015/internal/util/identity.js","node_modules/rxjs/_esm2015/internal/Observable.js","node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","node_modules/rxjs/_esm2015/internal/util/canReportError.js","node_modules/rxjs/_esm2015/internal/util/pipe.js","node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","node_modules/rxjs/_esm2015/internal/Subject.js","node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","node_modules/rxjs/_esm2015/internal/util/isScheduler.js","node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","node_modules/rxjs/_esm2015/internal/symbol/iterator.js","node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","node_modules/rxjs/_esm2015/internal/util/isPromise.js","node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","node_modules/rxjs/_esm2015/internal/operators/map.js","node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","node_modules/rxjs/_esm2015/internal/observable/from.js","node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","node_modules/rxjs/_esm2015/internal/util/isIterable.js","node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","node_modules/rxjs/_esm2015/internal/observable/fromArray.js","node_modules/rxjs/_esm2015/internal/observable/merge.js","node_modules/rxjs/_esm2015/internal/operators/refCount.js","node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","node_modules/rxjs/_esm2015/internal/operators/share.js","node_modules/rxjs/_esm2015/internal/operators/multicast.js","node_modules/@angular/core/__ivy_ngcc__/fesm2015/core.js","src/app/image-editor/tools/shapes/default-shapes.ts","src/app/image-editor/tools/draw/draw-defaults.ts","src/app/image-editor/enums/editor-mode.enum.ts","src/app/image-editor/enums/editor-theme.enum.ts","src/app/image-editor/enums/control-positions.enum.ts","src/app/image-editor-ui/toolbar-controls/drawers/drawer-name.enum.ts","src/app/image-editor/objects/default-object-props.ts","src/app/image-editor/default-settings.ts","src/app/image-editor/tools/shapes/default-stickers.ts","src/app/image-editor/tools/shapes/emoticons.ts","src/app/image-editor/state/editor-state-actions.ts","node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","node_modules/rxjs/_esm2015/internal/scheduler/Action.js","node_modules/rxjs/_esm2015/internal/Scheduler.js","node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","node_modules/rxjs/_esm2015/internal/scheduler/async.js","node_modules/rxjs/_esm2015/internal/observable/empty.js","node_modules/rxjs/_esm2015/internal/observable/of.js","node_modules/rxjs/_esm2015/internal/observable/throwError.js","node_modules/rxjs/_esm2015/internal/Notification.js","node_modules/rxjs/_esm2015/internal/operators/delay.js","node_modules/rxjs/_esm2015/internal/util/isDate.js","node_modules/tslib/tslib.es6.js","node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","node_modules/rxjs/_esm2015/internal/scheduler/queue.js","node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","node_modules/rxjs/_esm2015/internal/operators/observeOn.js","node_modules/rxjs/_esm2015/internal/ReplaySubject.js","node_modules/@ngxs/store/__ivy_ngcc__/fesm2015/ngxs-store-internals.js","node_modules/@angular/common/__ivy_ngcc__/fesm2015/common.js","node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","node_modules/rxjs/_esm2015/internal/operators/filter.js","node_modules/rxjs/_esm2015/internal/operators/shareReplay.js","node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","node_modules/rxjs/_esm2015/internal/operators/take.js","node_modules/rxjs/_esm2015/internal/operators/exhaustMap.js","node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","node_modules/rxjs/_esm2015/internal/operators/catchError.js","node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","node_modules/rxjs/_esm2015/internal/util/noop.js","node_modules/rxjs/_esm2015/internal/operators/tap.js","node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","node_modules/@ngxs/store/__ivy_ngcc__/fesm2015/ngxs-store.js","src/app/image-editor-ui/state/objects/objects.actions.ts","src/app/image-editor/utils/normalize-object-props.ts","src/app/image-editor/objects/object-names.enum.ts","src/common/core/utils/random-string.ts","node_modules/@angular/forms/__ivy_ngcc__/fesm2015/forms.js","src/common/core/utils/obj-to-form-data.ts","src/common/core/config/settings.service.ts","src/app/image-editor/canvas/active-object/active-object.service.ts","src/app/image-editor/canvas/canvas-state.service.ts","src/app/image-editor-ui/state/history/history.actions.ts","src/app/image-editor-ui/state/history/history.state.ts","src/app/image-editor/tools/frame/frame-tool.service.ts","src/app/image-editor/tools/frame/frame-builder.service.ts","src/app/image-editor/tools/frame/frame-patterns.service.ts","src/app/image-editor/tools/frame/active-frame.service.ts","src/app/image-editor/objects/object-list.service.ts","src/app/image-editor/canvas/canvas.service.ts","src/app/image-editor/canvas/canvas-zoom.service.ts","src/app/image-editor/canvas/canvas-pan.service.ts","src/app/image-editor/canvas/active-object/active-object.form.ts","src/app/image-editor/utils/get-fabric-object-props.ts","src/app/image-editor/history/serialized-canvas.ts","src/app/image-editor/history/history-names.enum.ts","src/app/image-editor/objects/static-object-config.ts","node_modules/@angular/common/__ivy_ngcc__/fesm2015/http.js","src/common/core/translations/translations.service.ts","node_modules/rxjs/_esm2015/internal/operators/concatMap.js","src/common/core/http/errors/http-errors.enum.ts","src/common/core/types/models/Localization.ts","node_modules/@angular/cdk/fesm2015/coercion.js","node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js","node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js","node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js","node_modules/rxjs/_esm2015/internal/util/Immediate.js","node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js","node_modules/rxjs/_esm2015/internal/scheduler/asap.js","node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js","node_modules/rxjs/_esm2015/internal/operators/audit.js","node_modules/rxjs/_esm2015/internal/util/isNumeric.js","node_modules/rxjs/_esm2015/internal/observable/timer.js","node_modules/rxjs/_esm2015/internal/operators/auditTime.js","node_modules/rxjs/_esm2015/internal/observable/concat.js","node_modules/rxjs/_esm2015/internal/operators/concatAll.js","node_modules/rxjs/_esm2015/internal/operators/startWith.js","node_modules/rxjs/_esm2015/internal/operators/pairwise.js","node_modules/rxjs/_esm2015/internal/operators/switchMap.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/platform.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/bidi.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/scrolling.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/collections.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/portal.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/keycodes.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/overlay.js","node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/observers.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/a11y.js","node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/platform-browser.js","node_modules/@angular/cdk/fesm2015/cdk.js","node_modules/@angular/animations/__ivy_ngcc__/fesm2015/animations.js","node_modules/@angular/animations/__ivy_ngcc__/fesm2015/browser.js","node_modules/@angular/platform-browser/__ivy_ngcc__/fesm2015/animations.js","node_modules/@angular/material/__ivy_ngcc__/fesm2015/core.js","node_modules/@angular/material/__ivy_ngcc__/fesm2015/button.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/layout.js","node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","node_modules/rxjs/_esm2015/internal/operators/skip.js","node_modules/@angular/material/__ivy_ngcc__/fesm2015/snack-bar.js","src/app/image-editor/history/history-tool.service.ts","src/app/image-editor/tools/text/text-tool.service.ts","src/app/image-editor-ui/toolbar-controls/widgets/google-fonts-panel/google-fonts-panel.service.ts","src/app/image-editor-ui/toolbar-controls/widgets/google-fonts-panel/fonts-paginator.service.ts","src/common/core/http/http-cache-client.ts","src/common/core/http/app-http-client.service.ts","src/common/core/http/errors/http-error-handler.service.ts","src/common/core/ui/toast.service.ts","src/app/image-editor-ui/state/objects/objects.state.ts","src/app/image-editor-ui/state/base-tool.state.ts","src/app/image-editor-ui/state/filter/filter.actions.ts","src/app/image-editor/tools/filter/filters-list.ts","src/common/core/utils/uc-first.ts","src/app/image-editor/tools/filter/filter-tool.service.ts","src/app/image-editor/tools/resize/resize-tool.service.ts","src/app/image-editor-ui/state/filter/filter.state.ts","src/app/image-editor-ui/state/resize/resize.state.ts","src/app/image-editor/tools/crop/crop-tool.service.ts","src/app/image-editor/tools/merge/merge-tool.service.ts","src/app/image-editor/tools/export/export-tool.service.ts","src/app/image-editor/tools/watermark-tool.service.ts","src/app/image-editor/tools/crop/crop-zone.service.ts","src/app/image-editor-ui/state/shapes/shapes.state.ts","src/app/image-editor/tools/shapes/shapes-tool.service.ts","src/app/image-editor-ui/state/crop/crop.state.ts","src/app/image-editor-ui/state/transform/transform.state.ts","src/app/image-editor-ui/state/frame/frame.state.ts","src/app/image-editor-ui/state/draw/draw.state.ts","src/app/image-editor/tools/round/round-tool.service.ts","src/app/image-editor-ui/state/stickers/stickers.state.ts","src/app/image-editor-ui/state/corners/corners.state.ts","src/app/image-editor-ui/state/background/background.state.ts","src/app/image-editor/state/editor-state.ts","src/common/core/ui/breakpoints.service.ts","src/app/image-editor-ui/state/text/text.state.ts","src/app/image-editor-ui/state/resize/resize.actions.ts","src/app/image-editor-ui/state/shapes/shapes.actions.ts","src/app/image-editor-ui/state/transform/transform.actions.ts","src/app/image-editor-ui/state/frame/frame.actions.ts","src/app/image-editor-ui/state/draw/draw.actions.ts","src/app/image-editor-ui/state/stickers/stickers.actions.ts","src/app/image-editor-ui/state/background/background.actions.ts","src/app/image-editor-ui/state/text/text.actions.ts","src/common/uploads/upload-input-config.ts","src/common/uploads/utils/extension-from-filename.ts","src/common/uploads/uploaded-file.ts","src/common/uploads/utils/get-file-mime.ts","src/common/uploads/utils/open-upload-window.ts","src/common/uploads/utils/create-upload-input.ts","src/common/uploads/validation/upload-validator.ts","src/common/uploads/validation/validations/upload-validation.ts","src/common/core/utils/space-units.ts","src/common/core/utils/pretty-bytes.ts","src/common/uploads/validation/validations/file-size-validation.ts","src/app/image-editor/tools/import/import-tool-validator.ts","src/app/image-editor/tools/import/import-tool.service.ts","src/common/core/translations/translate.directive.ts","src/common/uploads/validation/validations/allowed-extensions-validation.ts","src/common/core/utils/convertToBytes.ts","src/common/core/ui/overlay-panel/overlay-panel-ref.ts","node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js","src/common/core/ui/custom-scrollbar/custom-scrollbar.directive.ts","src/common/core/ui/custom-scrollbar/supports-native-scrollbar-styling.ts","src/app/image-editor-ui/panels/open-sample-image-panel/open-sample-image-panel.component.html","src/app/image-editor-ui/panels/open-sample-image-panel/open-sample-image-panel.component.ts","src/app/image-editor/tools/transform/transform-tool.service.ts","src/app/image-editor-ui/toolbar-controls/editor-controls.service.ts","src/app/image-editor-ui/panels/open-sample-image-panel/open-sample-image-panel.service.ts","src/common/core/ui/overlay-panel/overlay-panel.service.ts","src/app/image-editor/tools/draw/draw-tool.service.ts","src/app/image-editor/tools/fill/fill-tool.service.ts","src/common/core/ui/overlay-panel/overlay-panel-data.ts","src/common/core/ui/overlay-panel/fullscreen-overlay-scroll-strategy.ts","src/app/image-editor/tools/draw/brushes/v-line-brush.ts","src/app/image-editor/tools/draw/brushes/h-line-brush.ts","src/app/image-editor/tools/draw/brushes/square-brush.ts","src/app/image-editor/tools/draw/brushes/diamond-brush.ts","src/app/image-editor/tools/gradient-presets.ts","node_modules/rxjs/_esm2015/internal/observable/interval.js","node_modules/@angular/cdk/__ivy_ngcc__/fesm2015/drag-drop.js","node_modules/rxjs/_esm2015/internal/observable/defer.js","node_modules/@angular/material/__ivy_ngcc__/fesm2015/dialog.js","node_modules/rxjs/_esm2015/internal/operators/finalize.js","node_modules/@angular/material/__ivy_ngcc__/fesm2015/icon.js","src/app/image-editor-ui/panels/objects-panel/objects-panel.component.html","src/app/image-editor-ui/panels/objects-panel/objects-panel.component.ts","src/app/image-editor-ui/panels/history-panel/history-panel.component.html","src/app/image-editor-ui/panels/history-panel/history-panel.component.ts","node_modules/@angular/material/__ivy_ngcc__/fesm2015/radio.js","node_modules/@angular/material/__ivy_ngcc__/fesm2015/slider.js","src/app/image-editor-ui/toolbar-controls/floating-panels.service.ts","src/common/core/ui/dialogs/modal.service.ts","src/app/image-editor-ui/panels/image-loading-panel/image-loading-panel.component.ts","src/app/image-editor-ui/panels/export-panel/export-panel.component.ts","src/common/core/translations/translate.pipe.ts","src/app/image-editor/image-editor.service.ts","src/app/image-editor/tools/tools.service.ts","src/common/core/theme.service.ts","src/common/core/services/cookie.service.ts","src/app/image-editor-ui/background-image.directive.ts","src/app/image-editor/canvas/canvas-keybinds.service.ts","src/common/core/keybinds/keybinds.service.ts","src/app/image-editor-ui/panels/export-panel/export-panel.component.html","src/app/image-editor-ui/panels/image-loading-panel/image-loading-panel.component.html","src/common/core/utils/slugify-string.ts","src/common/core/utils/lower-first.ts","node_modules/rxjs/_esm2015/internal/operators/delayWhen.js","src/common/core/keybinds/keycodes.enum.ts","src/common/uploads/utils/read-uploaded-folders.ts","src/common/uploads/directives/upload-dropzone.directive.ts","src/common/core/utils/start-case.ts","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar-panel-name-widget/toolbar-panel-name-widget.component.html","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar-panel-name-widget/toolbar-panel-name-widget.component.ts","node_modules/@angular/material/__ivy_ngcc__/fesm2015/menu.js","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar-undo-widget/toolbar-undo-widget.component.ts","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar-zoom-widget/toolbar-zoom-widget.component.ts","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar-zoom-widget/toolbar-zoom-widget.component.html","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar-undo-widget/toolbar-undo-widget.component.html","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar-item/toolbar-item.component.html","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar-item/toolbar-item.component.ts","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar.component.html","src/app/image-editor-ui/toolbar-controls/toolbar/toolbar.component.ts","node_modules/@angular/material/__ivy_ngcc__/fesm2015/tooltip.js","src/app/image-editor-ui/floating-object-controls/floating-object-controls.component.html","src/app/image-editor-ui/floating-object-controls/floating-object-controls.component.ts","src/common/core/ui/image-or-icon/image-or-icon.component.html","src/common/core/ui/image-or-icon/image-or-icon.component.ts","src/common/core/utils/is-absolute-url.ts","src/app/image-editor-ui/toolbar-controls/navigation-bar/navigation-bar.component.html","src/app/image-editor-ui/toolbar-controls/navigation-bar/navigation-bar.component.ts","node_modules/ngx-color-picker/__ivy_ngcc__/fesm2015/ngx-color-picker.js","src/common/core/ui/color-picker/colorpicker-panel.component.ts","src/common/core/ui/color-picker/colorpicker-panel.component.html","src/common/core/ui/overlay-panel/positions/bottom-position.ts","src/app/image-editor-ui/toolbar-controls/widgets/color-widget/color-widget.component.html","src/app/image-editor-ui/toolbar-controls/widgets/color-widget/color-widget.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/filter-controls/filter-controls.component.html","src/app/image-editor-ui/toolbar-controls/drawers/filter-controls/filter-controls.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/filter-drawer/filter-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/filter-drawer/filter-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/transform-drawer/transform-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/resize-drawer/resize-drawer.component.ts","node_modules/@angular/material/__ivy_ngcc__/fesm2015/checkbox.js","src/app/image-editor-ui/toolbar-controls/drawers/resize-drawer/resize-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/transform-drawer/transform-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/crop-drawer/crop-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/crop-drawer/crop-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/draw-drawer/draw-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/draw-drawer/draw-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/widgets/google-fonts-panel/font-category.ts","node_modules/@angular/material/__ivy_ngcc__/fesm2015/form-field.js","node_modules/@angular/material/__ivy_ngcc__/fesm2015/select.js","node_modules/@angular/material/__ivy_ngcc__/fesm2015/paginator.js","src/app/image-editor-ui/toolbar-controls/widgets/google-fonts-panel/google-fonts-panel.component.html","src/app/image-editor-ui/toolbar-controls/widgets/google-fonts-panel/google-fonts-panel.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/text-drawer/text-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/widgets/text-font-selector/text-font-selector.component.ts","src/app/image-editor-ui/toolbar-controls/widgets/text-font-selector/text-font-selector.component.html","src/app/image-editor-ui/toolbar-controls/drawers/text-drawer/text-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/shapes-drawer/shapes-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/shapes-drawer/shapes-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/stickers-drawer/stickers-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/stickers-drawer/stickers-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/round-drawer/round-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/round-drawer/round-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/frame-drawer/frame-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/frame-drawer/frame-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/canvas-background-drawer/canvas-background-drawer.component.ts","node_modules/@angular/material/__ivy_ngcc__/fesm2015/button-toggle.js","src/app/image-editor-ui/toolbar-controls/drawers/text-controls-drawer/text-controls-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/color-controls-drawer/color-controls-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/outline-controls-drawer/outline-controls-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/shadow-controls-drawer/shadow-controls-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/canvas-background-drawer/canvas-background-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/text-controls-drawer/text-controls-drawer.component.html","src/app/image-editor-ui/toolbar-controls/color-controls-drawer/color-controls-drawer.component.html","src/app/image-editor-ui/toolbar-controls/shadow-controls-drawer/shadow-controls-drawer.component.html","src/app/image-editor-ui/toolbar-controls/outline-controls-drawer/outline-controls-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/texture-controls-drawer/texture-controls-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/texture-controls-drawer/texture-controls-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/gradient-controls-drawer/gradient-controls-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/gradient-controls-drawer/gradient-controls-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/opacity-controls-drawer/opacity-controls-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/opacity-controls-drawer/opacity-controls-drawer.component.html","src/app/image-editor-ui/toolbar-controls/object-settings/object-settings-drawer.component.html","src/app/image-editor-ui/toolbar-controls/object-settings/object-settings-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/drawers/custom-drawer/custom-drawer.component.html","src/app/image-editor-ui/toolbar-controls/drawers/custom-drawer/custom-drawer.component.ts","src/app/image-editor-ui/toolbar-controls/editor-controls.component.html","src/app/image-editor-ui/toolbar-controls/editor-controls.component.ts","src/app/image-editor-ui/image-editor.component.html","src/app/image-editor-ui/image-editor.component.ts","src/common/core/translations/translations.module.ts","src/common/core/http/errors/client-http-error-handler.service.ts","src/app/app.component.ts","src/app/app.component.html","src/app/image-editor/image-editor.module.ts","src/app/image-editor-ui/panels/editor-overlay-container.ts","src/app/image-editor-ui/toolbar-controls/toolbar-controls.module.ts","src/common/core/ui/color-picker/be-color-picker.module.ts","src/common/core/ui/image-or-icon/image-or-icon.module.ts","node_modules/@angular/material/__ivy_ngcc__/fesm2015/slide-toggle.js","src/common/core/http/http.module.ts","src/common/core/ui/custom-scrollbar/custom-scrollbar.module.ts","src/app/image-editor-ui/toolbar-controls/widgets/google-fonts-panel/google-fonts.module.ts","src/common/uploads/uploads.module.ts","node_modules/@angular/material/__ivy_ngcc__/fesm2015/progress-bar.js","src/app/image-editor-ui/default-themes.ts","node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js","src/app/image-editor-ui/image-editor-ui.module.ts","src/common/core/errors/ignored-errors.ts","src/common/core/errors/no-backend-error-handler.ts","src/app/app.module.ts","src/main.ts","src/app/image-editor/pixie.ts","node_modules/rxjs/internal/symbol/observable.js"],"names":["safeAdd","x","y","lsw","md5cmn","q","a","b","s","t","num","cnt","md5ff","c","d","md5gg","md5hh","md5ii","binlMD5","len","i","olda","oldb","oldc","oldd","length","binl2rstr","input","output","length32","String","fromCharCode","rstr2binl","length8","charCodeAt","rstr2hex","charAt","str2rstrUTF8","unescape","encodeURIComponent","rawMD5","rawHMACMD5","k","key","data","hash","bkey","ipad","opad","concat","module","exports","string","raw","utils","TraceKit","collectWindowErrors","debug","_window","window","global","self","_slice","slice","ERROR_TYPES_RE","getLocationHref","document","location","href","report","_oldOnerrorHandler","_onErrorHandlerInstalled","handlers","lastArgs","lastException","lastExceptionStack","notifyHandlers","stack","isWindowError","exception","hasOwnProperty","apply","call","arguments","inner","traceKitWindowOnError","msg","url","lineNo","colNo","ex","isErrorEvent","error","message","computeStackTrace","augmentStackTraceWithInitialElement","processLastException","isError","groups","line","column","name","toString","match","func","this","_lastExceptionStack","_lastArgs","rethrow","args","setTimeout","incomplete","subscribe","handler","onerror","push","unsubscribe","splice","uninstall","computeStackTraceFromStackProp","submatch","parts","element","chrome","winjs","gecko","geckoEval","chromeEval","lines","split","exec","j","isNative","indexOf","columnNumber","substr","xhr","XMLHttpRequest","open","send","status","source","responseText","sourceMaps","sourceMapAddress","origin","protocol","hostname","port","stackInfo","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","item","functionName","funcs","recursion","curr","caller","substring","e","result","sourceURL","fileName","lineNumber","identity_1","pipeFromArray","fns","identity","reduce","prev","fn","pipe","_i","wrapMethod","console","level","callback","originalConsoleLevel","originalConsole","sentryLevel","safeJoin","logger","extra","Function","prototype","haystack","needle","serializer","replacer","cycleReplacer","keys","value","join","thisPos","Infinity","Error","err","Object","obj","spaces","JSON","stringify","getSerialize","extendStatics","__extends","setPrototypeOf","__proto__","Array","p","__","constructor","create","isFunction_1","Observer_1","Subscription_1","rxSubscriber_1","config_1","hostReportError_1","Subscriber","_super","destinationOrNext","complete","_this","syncErrorValue","syncErrorThrown","syncErrorThrowable","isStopped","destination","empty","add","SafeSubscriber","rxSubscriber","next","subscriber","_next","_error","_complete","closed","_unsubscribeAndRecycle","_parentOrParents","Subscription","_parentSubscriber","observerOrNext","context","isFunction","bind","_context","config","useDeprecatedSynchronousErrorHandling","__tryOrSetError","__tryOrUnsub","hostReportError","wrappedComplete","parent","_unsubscribe","isObject","responseType","onload","response","dispatchEvent","MouseEvent","createEvent","initMouseEvent","f","saveAs","HTMLAnchorElement","g","h","URL","webkitURL","createElement","download","rel","target","createObjectURL","revokeObjectURL","navigator","msSaveOrOpenBlob","autoBom","warn","test","type","Blob","title","body","innerText","HTMLElement","safari","userAgent","FileReader","onloadend","replace","readAsDataURL","l","aa","ba","Date","now","ca","o","da","FontFace","style","cssText","setAttribute","appendChild","createTextNode","u","getElementsByTagName","documentElement","insertBefore","lastChild","v","parentNode","removeChild","w","className","z","m","media","A","src","onreadystatechange","readyState","tagName","B","C","D","E","F","G","parseInt","I","J","H","ga","toLowerCase","ha","events","classes","L","K","ja","M","N","O","P","Q","start","Promise","fonts","load","then","race","clearTimeout","R","S","T","la","V","W","serif","offsetWidth","U","X","na","oa","qa","n","r","xa","vendor","ra","sa","ta","ua","timeout","projectId","version","api","fontfamily","fontStyle","fontWeight","id","urls","families","testStrings","ya","za","latin","cyrillic","greek","khmer","Hanuman","Aa","thin","extralight","ultralight","light","regular","book","medium","semibold","demibold","bold","extrabold","ultrabold","black","heavy","Ba","italic","normal","Ca","Ea","Fa","Arimo","Cousine","Tinos","Ga","Ha","text","pop","isNaN","Typekit","async","__webfontfontdeckmodule__","weight","Y","custom","fontdeck","monotype","typekit","google","Z","UnsubscriptionError","UnsubscriptionErrorImpl","errors","map","RavenConstructor","_Raven","Raven","noConflict","afterLoad","Client","factory","charMap","parse","locales","options","locale","replacement","slug","ch","remove","trim","RegExp","lower","strict","extend","customMap","isMergeableObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","Symbol","cloneUnlessOtherwiseSpecified","clone","deepmerge","isArray","defaultArrayMerge","getKeys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","forEach","customMerge","all","array","canReportError_1","toSubscriber_1","observable_1","pipe_1","getPromiseCtor","promiseCtor","Observable","_isScalar","_subscribe","lift","operator","observable","sink","toSubscriber","_trySubscribe","canReportError","resolve","reject","subscription","operations","toPromise","b64Data","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","byteNumbers","byteArray","Uint8Array","Subscriber_1","nextOrObserver","webpackEmptyAsyncContext","req","code","couldUseAttachEvent","parseEl","reOpacity","setOpacity","proto","min","max","degreesToRadians","originXOffset","originYOffset","toFixed","multipleSpacesRegex","fabric","HTMLDocument","Document","implementation","createHTMLDocument","virtualWindow","decodeURIComponent","features","FetchExternalResources","resources","jsdomImplForWrapper","implForWrapper","nodeCanvas","Canvas","DOMParser","copyGLTo2DDrawImage","gl","pipelineState","glCanvas","canvas","targetCanvas","ctx","getContext","translate","height","scale","drawImage","width","copyGLTo2DPutImageData","dWidth","destinationWidth","dHeight","destinationHeight","numBytes","u8","imageBuffer","u8Clamped","Uint8ClampedArray","readPixels","RGBA","UNSIGNED_BYTE","imgData","ImageData","putImageData","isTouchSupported","maxTouchPoints","isLikelyNode","Buffer","SHARED_ATTRIBUTES","DPI","reNum","rePathCommand","reNonWord","fontPaths","iMatrix","svgNS","perfLimitSizeTotal","maxCacheSideLimit","minCacheSideLimit","charWidthsCache","textureSize","disableStyleCopyPaste","enableGLFiltering","devicePixelRatio","webkitDevicePixelRatio","mozDevicePixelRatio","browserShadowBlurConstant","arcToSegmentsCache","boundsOfCurveCache","cachesBoundsOfCurve","forceGLPutImageData","initFilterBackend","isWebglSupported","log","maxTextureSize","WebglFilterBackend","tileSize","Canvas2dFilterBackend","_removeEventListener","eventName","__eventListeners","eventListener","util","fill","observe","prop","on","stopObserving","fire","listenersForEvent","off","trigger","Collection","_objects","_onObjectAdded","renderOnAddRemove","requestRenderAll","insertAt","index","nonSplicing","objects","somethingRemoved","_onObjectRemoved","forEachObject","getObjects","isEmpty","size","contains","complexity","memo","current","CommonMethods","_setOptions","set","_initGradient","filler","colorStops","Gradient","_initPattern","Pattern","_initClipping","clipTo","functionBody","getFunctionBody","_setObject","_set","get","toggle","sqrt","Math","atan2","pow","PiBy180","PI","PiBy2","cos","angle","sin","sign","removeFromArray","idx","getRandomInt","floor","random","degrees","radiansToDegrees","radians","rotatePoint","point","subtractEquals","rotateVector","Point","addEquals","vector","transformPoint","ignoreOffset","makeBoundingBoxFromPoints","points","transform","xPoints","minX","yPoints","minY","left","top","invertTransform","number","fractionDigits","parseFloat","Number","parseUnit","fontSize","unit","Text","DEFAULT_SVG_FONT_SIZE","falseFunction","getKlass","namespace","camelize","toUpperCase","resolveNamespace","getSvgAttributes","attributes","loadImage","crossOrigin","img","createImage","onLoadCallback","loadImageInDom","div","position","querySelector","enlivenObjects","reviver","enlivenedObjects","numLoadedObjects","numTotalObjects","onLoaded","fromObject","enlivenPatterns","patterns","numLoadedPatterns","numPatterns","enlivenedPatterns","pattern","groupSVGElements","elements","path","centerPoint","Group","sourcePath","populateWithProperties","properties","drawDashedLine","x2","y2","dx","dy","rot","dc","di","draw","save","moveTo","rotate","restore","createCanvasElement","copyCanvasElement","newCanvas","toDataURL","canvasEl","format","quality","clipContext","receiver","beginPath","clip","multiplyTransformMatrices","is2x2","qrDecompose","denom","scaleX","scaleY","skewX","skewY","translateX","translateY","calcRotateMatrix","theta","calcDimensionsMatrix","scaleMatrix","flipX","flipY","multiply","tan","composeMatrix","matrix","customTransformMatrix","resetObjectTransform","saveObjectTransform","isTransparent","tolerance","_isTransparent","imageData","getImageData","parsePreserveAspectRatioAttribute","attribute","align","meetOrSlice","aspectRatioAttrs","alignX","alignY","clearFabricFontCache","fontFamily","limitDimsByArea","ar","maximumArea","roughWidth","perfLimitSizeY","capValue","findScaleToFit","findScaleToCover","matrixToSVG","NUM_FRACTION_DIGITS","_join","arcToSegments","toX","toY","rx","ry","large","sweep","rotateX","argsString","th","sinTh","cosTh","fromX","fromY","px","py","rx2","abs","ry2","py2","px2","pl","root","cx","cy","cx1","cy1","mTheta","calcVectorAngle","dtheta","segments","ceil","mDelta","mT","th3","segmentToBezier","th2","costh2","sinth2","costh3","sinth3","ux","uy","vx","vy","tb","getBoundsOfCurve","x0","y0","x1","y1","x3","y3","t1","t2","b2ac","sqrtb2ac","tvalues","bounds","mt","jlen","drawArc","fx","fy","coords","segs","segsNorm","bezierCurveTo","getBoundsOfArc","tx","ty","bound","find","byProperty","condition","invoke","method","value1","value2","deep","Element","getWholeChar","str","character","capitalize","firstLetterOnly","escapeXml","graphemeSplit","textstring","chr","graphemes","emptyFunction","IS_DONTENUM_BUGGY","addMethods","klass","superclass","returnValue","valueOf","Subclass","callSuper","methodName","parentMethod","superClassMethod","createClass","initialize","shift","subclasses","attachEvent","addListener","addEventListener","removeListener","removeEventListener","getPointer","event","scroll","getScrollLeftTop","_evt","touchProp","changedTouches","clientX","clientY","opacity","es","currentStyle","hasLayout","zoom","setStyle","styles","elementStyle","styleFloat","sliceCanConvertNodelists","getElementStyle","selectProp","toArray","arrayLike","childNodes","makeElement","el","htmlFor","docElement","scrollLeft","scrollTop","host","nodeType","arr","defaultView","getComputedStyle","attr","makeElementUnselectable","onselectstart","unselectable","makeElementSelectable","getScript","headEl","scriptEl","loading","getById","getElementById","addClass","wrapElement","wrapper","replaceChild","getElementOffset","docElem","scrollLeftTop","doc","ownerDocument","box","offsetAttributes","borderLeftWidth","borderTopWidth","paddingLeft","paddingTop","getBoundingClientRect","clientLeft","clientTop","getNodeCanvas","impl","_canvas","_image","cleanUpJsdomNode","_currentSrc","_attributes","_classList","emptyFn","request","onComplete","parameters","param","setRequestHeader","noop","defaultEasing","_requestAnimFrame","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","_cancelAnimFrame","cancelAnimationFrame","requestAnimFrame","animate","timestamp","time","duration","finish","onChange","abort","easing","startValue","endValue","byValue","onStart","tick","ticktime","currentTime","timePerc","valuePerc","cancelAnimFrame","animateColor","fromColor","toColor","startColor","Color","getSource","endColor","begin","end","pos","color","colorEasing","normalize","asin","elastic","opts","easeInBounce","easeOutBounce","ease","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInOutBounce","attributesMap","display","visibility","colorAttributes","stroke","normalizeAttr","normalizeValue","parentAttributes","parsed","transformMatrix","parseTransformAttribute","visible","fillIndex","strokeIndex","getSvgRegex","_getMultipleNodes","nodeNames","nodeList","nodeArray","elementMatchesRule","selectors","firstMatching","parentMatching","selectorMatches","selector","matcher","nodeName","classNames","getAttribute","elementById","node","nodelist","svgValidTagNamesRegEx","svgViewBoxElementsRegEx","svgInvalidAncestorsRegEx","svgValidParentsRegEx","cssRules","gradientDefs","clipPaths","skewMatrix","commaWsp","reTransformList","reTransform","attributeValue","matrices","operation","multiplierY","combinedMatrix","reViewBoxAttrValue","applyViewboxTransform","viewBoxWidth","viewBoxHeight","viewBoxAttr","widthAttr","heightAttr","preserveAspectRatio","missingViewBox","missingDimAttr","toBeParsed","parsedDim","translateMatrix","widthDiff","heightDiff","viewboxTransform","createElementNS","firstChild","recursivelyParseGradientsXlink","gradient","referencedGradient","hasAttribute","children","referenceClone","cloneNode","removeAttribute","parseSVGDocument","parsingOptions","attrs","xlink","el2","currentTrans","oldLength","el3","setAttributeNS","nodeValue","svgUid","__uid","descendants","selectNodes","getGradientDefs","getCSSRules","parseElements","instances","reFontDeclaration","parseFontDeclaration","oStyle","lineHeight","elList","parseAttributes","parentFontSize","ownAttributes","cssAttrs","rule","parseStyleAttribute","normalizedAttr","normalizedValue","normalizedStyle","font","mergedAttrs","setAlpha","getAlpha","toRgba","ElementsParser","chunk","pair","parsePointsAttribute","parsedPoints","allRules","styleContents","textContent","ruleObj","propertyValuePairs","_rule","loadSVGFromURL","xml","responseXML","ActiveXObject","loadXML","results","_options","allElements","loadSVGFromString","parser","parseFromString","regexUrl","numElements","createObjects","createObject","findTag","fromElement","createCallback","checkIfDone","resolveGradient","Image","_originalElement","_removeTransformMatrix","resolveClipPath","extractPropertyDefinition","storage","regex","lastIndex","gradientDef","opacityAttr","createClipPathCallback","container","_newObj","fillRule","clipRule","usingElement","objTransformInv","gTransform","clipPath","calcTransformMatrix","clipPathTag","clipPathOwner","setPositionByOrigin","that","scalarAdd","scalar","scalarAddEquals","subtract","scalarSubtract","scalarSubtractEquals","multiplyEquals","divide","divideEquals","eq","lt","lte","gt","gte","lerp","distanceFrom","midPointFrom","setXY","setX","setY","setFromPoint","swap","Intersection","appendPoint","appendPoints","intersectLineLine","a1","a2","b1","b2","uaT","ubT","uB","ub","intersectLinePolygon","inter","intersectPolygonPolygon","points1","points2","intersectPolygonRectangle","r1","r2","topRight","bottomLeft","inter1","inter2","inter3","inter4","_tryParsingColor","setSource","hue2rgb","colorNameMap","sourceFromHex","sourceFromRgb","sourceFromHsl","_rgbToHsl","round","_source","toRgb","toHsl","hsl","toHsla","toHex","toHexa","alpha","toGrayscale","average","toBlackWhite","threshold","currentAlpha","overlayWith","otherColor","otherSource","reRGBa","reHSLa","reHex","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","fromRgb","fromSource","fromRgba","fromHsl","fromHsla","fromHex","isShortNotation","isRGBa","oColor","getColorStop","multiplier","colorAlpha","keyValuePairs","__convertPercentUnitsToValues","instance","svgOptions","gradientUnits","propValue","finalValue","offsetX","offsetY","gradientTransform","option","addColorStop","toObject","propertiesToInclude","toSVG","markup","commonAttributes","needsSwap","withViewport","additionalTransform","sort","pathOffset","reverse","minRadius","percentageShift","colorStop","toLive","stops","createLinearGradient","createRadialGradient","colorStopEls","forObject","repeat","patternTransform","setOptions","patternSource","patternWidth","patternHeight","patternOffsetX","patternOffsetY","patternImgSrc","naturalWidth","naturalHeight","createPattern","Shadow","blur","affectStroke","includeDefaultValues","nonScaling","_parseShadow","shadow","shadowStr","offsetsAndBlur","reOffsetsAndBlur","fBoxX","fBoxY","StaticCanvas","CANVAS_INIT_ERROR","renderAndResetBound","renderAndReset","requestRenderAllBound","_initStatic","backgroundColor","backgroundImage","overlayColor","overlayImage","stateful","controlsAboveOverlay","allowTouchScrolling","imageSmoothingEnabled","viewportTransform","backgroundVpt","overlayVpt","onBeforeScaleRotate","enableRetinaScaling","vptCoords","skipOffscreen","cb","_createLowerCanvas","_initOptions","_setImageSmoothing","interactive","_initRetinaScaling","setOverlayImage","setBackgroundImage","setBackgroundColor","setOverlayColor","calcOffset","_isRetinaScaling","getRetinaScaling","scaleRatio","__initRetinaScaling","lowerCanvasEl","contextContainer","upperCanvasEl","contextTop","_offset","image","__setBgOverlayImage","__setBgOverlayColor","webkitImageSmoothingEnabled","mozImageSmoothingEnabled","msImageSmoothingEnabled","oImageSmoothingEnabled","_createCanvasElement","_applyCanvasStyle","getWidth","getHeight","setWidth","setDimensions","setHeight","dimensions","cssValue","cssOnly","_setBackstoreDimension","hasLostContext","backstoreOnly","_setCssDimension","_isCurrentlyDrawing","freeDrawingBrush","_setBrushStyles","cacheCanvasEl","wrapperEl","getZoom","setViewportTransform","vpt","activeObject","_activeObject","group","setCoords","calcViewportBoundaries","zoomToPoint","before","after","setZoom","absolutePan","relativePan","getElement","setupState","clearContext","clearRect","clear","_hasITextHandlers","_mouseUpITextHandler","_iTextInstances","renderAll","renderCanvas","isRendering","iVpt","tl","br","tr","bl","cancelRequestedRender","_renderBackground","_renderObjects","drawControls","shouldCache","_transformDone","renderCache","forClipping","drawClipPathOnCanvas","_renderOverlay","globalCompositeOperation","zoomX","zoomY","_cacheCanvas","cacheTranslationX","cacheTranslationY","render","_renderBackgroundOrOverlay","needsVpt","lineTo","closePath","fillStyle","getCenter","centerObjectH","_centerObject","getCenterPoint","centerObjectV","centerObject","center","viewportCenterObject","vpCenter","getVpCenter","viewportCenterObjectH","viewportCenterObjectV","toDatalessJSON","toDatalessObject","_toObjectMethod","_toObjects","_toObject","__serializeBgOverlay","excludeFromExport","originalValue","bgImage","overlay","background","svgViewportTransformation","_setSVGPreamble","_setSVGHeader","clipPathId","_setSVGBgOverlayColor","_setSVGBgOverlayImage","_setSVGObjects","suppressPreamble","encoding","viewBox","createSVGFontFacesMarkup","createSVGRefElementsMarkup","createSVGClipPathMarkup","toClipPathSVG","shouldTransform","row","rowIndex","charIndex","fontList","_setSVGObject","finalWidth","finalHeight","sendToBack","objs","activeSelection","bringToFront","sendBackwards","intersecting","newIdx","objsMoved","_findNewLowerIndex","intersectsWithObject","isContainedWithinObject","bringForward","_findNewUpperIndex","dispose","DataURLExporter","EMPTY_JSON","supports","setLineDash","toJSON","createPNGStream","createJPEGStream","BaseBrush","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeDashArray","setShadow","strokeStyle","lineWidth","lineCap","miterLimit","lineJoin","_saveAndTransform","_setShadow","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","needsFullRender","_resetShadow","PencilBrush","decimate","_points","_drawSegment","p1","p2","midPoint","quadraticCurveTo","onMouseDown","pointer","_isMainEvent","_prepareForDrawing","_captureDrawingPath","_render","onMouseMove","oldEnd","onMouseUp","_finalizeAndAddPath","_reset","_addPoint","pointerPoint","convertPointsToSVGPath","multSignX","multSignY","manyPoints","createPath","pathData","Path","strokeWidth","decimatePoints","distance","adjustedDistance","lastPoint","newPoints","CircleBrush","drawDot","addPoint","dot","arc","radius","originalRenderOnAddRemove","circles","circle","Circle","originX","originY","circleRadius","circleColor","SprayBrush","density","dotWidth","dotWidthVariance","randomOpacity","optimizeOverlapping","sprayChunks","addSprayChunk","sprayChunkPoints","rects","ilen","sprayChunk","rect","Rect","_getOptimizedRects","uniqueRects","uniqueRectsArray","globalAlpha","fillRect","PatternBrush","getPatternSrc","patternCanvas","patternCtx","getPatternSrcFunction","getPattern","topLeft","_getLeftTopCoords","supportLineDash","_initInteractive","_createCacheCanvas","uniScaleTransform","uniScaleKey","centeredScaling","centeredRotation","centeredKey","altActionKey","selection","selectionKey","altSelectionKey","selectionColor","selectionDashArray","selectionBorderColor","selectionLineWidth","selectionFullyContained","hoverCursor","moveCursor","defaultCursor","freeDrawingCursor","rotationCursor","notAllowedCursor","containerClass","perPixelTargetFind","targetFindTolerance","skipTargetFind","isDrawingMode","preserveObjectStacking","snapAngle","snapThreshold","stopContextMenu","fireRightClick","fireMiddleClick","targets","_hoveredTarget","_hoveredTargets","_currentTransform","_groupSelector","_initWrapperElement","_createUpperCanvas","_initEventListeners","_chooseObjectsToRender","objsToRender","activeGroupObjects","activeObjects","getActiveObjects","contextTopDirty","renderTopLayer","_drawSelection","renderTop","_resetCurrentTransform","original","_shouldCenterTransform","mouseXSign","mouseYSign","containsPoint","xy","_normalizePointer","_findTargetCorner","invertedM","vptPointer","restorePointerVpt","isTargetTransparent","normalizedPointer","targetRelativeX","targetRelativeY","_cacheContext","contextCache","originalColor","selectionBackgroundColor","_renderControls","hasBorders","transparentCorners","_isSelectionKeyPressed","_shouldClearSelection","evented","selectable","centerTransform","action","altKey","_getOriginFromCorner","corner","_getActionFromCorner","alreadySelected","_setupCurrentTransform","ey","lastX","lastY","shiftKey","_beforeTransform","_translateObject","newLeft","newTop","moveX","moveY","_changeSkewTransformOrigin","mouseMove","by","origins","0","skew","originA","originB","flipSign","skewSign","_skewObject","skewed","lockSkewingX","lockSkewingY","actualMouseByOrigin","constraintPosition","actualMouseByCenter","toLocalPoint","lastMouseByCenter","dim","_getTransformedDimensions","translateToOriginPoint","_setObjectSkew","localMouse","_dim","newValue","newDim","dimNoSkew","otherBy","_otherBy","_by","newDimMouse","atan","_scaleObject","lockScalingX","lockScalingY","lockScalingFlip","scaled","_setLocalMouse","_setObjectScale","forbidScalingX","forbidScalingY","changeX","changeY","newScaleX","newScaleY","Textbox","getMinWidth","_scaleObjectEqually","_flipObject","dist","lastDist","signY","padding","_rotateObject","lockRotation","lastAngle","curAngle","hasRotated","rightAngleLocked","leftAngleLocked","setCursor","cursor","groupSelector","aleft","atop","_setLineDash","strokeRect","findTarget","skipGroup","activeTarget","activeTargetSubs","aObjects","_searchPossibleTargets","_checkTarget","globalPointer","isEditing","subTarget","objToCheck","pointerToUse","subTargetCheck","ignoreZoom","_absolutePointer","_pointer","cssScale","boundsWidth","boundsHeight","bottom","right","retinaScaling","lowerCanvasClass","_copyCanvasStyle","fromEl","toEl","getSelectionContext","getSelectionElement","getActiveObject","active","_discardActiveObject","_fireSelectionEvents","oldObjects","somethingChanged","added","removed","opt","oldObject","selected","deselected","updated","setActiveObject","currentActives","_setActiveObject","onSelect","onDeselect","discardActiveObject","removeListeners","originalProperties","_realizeGroupTransformOnObject","_unwindGroupTransformOnObject","originalValues","realizeTransform","clearContextTop","cursorOffset","mr","mb","ml","addEventOptions","passive","checkClick","button","cursorMap","mainTouchId","_bindEvents","addOrRemove","_getEventPrefix","enablePointerEvents","functor","eventjsFunctor","canvasElement","eventTypePrefix","_onResize","_onMouseDown","_onMouseMove","_onMouseOut","_onMouseEnter","_onMouseWheel","_onContextMenu","_onDoubleClick","_onDragOver","_onDragEnter","_onDragLeave","_onDrop","_onTouchStart","eventjs","_onGesture","_onDrag","_onOrientationChange","_onShake","_onLongPress","_onMouseUp","_onTouchEnd","eventsBound","_simpleEventHandler","__onTransformGesture","__onDrag","__onMouseWheel","_target","hiddenTextarea","focus","currentTransform","__onOrientationChange","__onShake","__onLongPress","preventDefault","_fireEnterLeaveEvents","stopPropagation","_cacheTransformEventData","_handleEvent","_resetTransformEventData","getPointerId","evt","identifier","pointerId","isPrimary","touches","__onMouseDown","__onMouseUp","_willAddMouseDown","__onMouseMove","_shouldRender","shouldRender","isClick","_onMouseUpInDrawingMode","_finalizeCurrentTransform","actionPerformed","_maybeGroupObjects","isMoving","_setCursorFromEvent","__corner","eventType","subTargets","absolutePointer","_scaling","hasStateChanged","_addEventOptions","_fire","_onMouseDownInDrawingMode","_onMouseMoveInDrawingMode","_previousPointer","shouldGroup","_shouldGroup","_handleGrouping","saveState","_transformObject","_fireOverOutEvents","fireSyntheticInOutEvents","oldTarget","evtOut","canvasEvtOut","evtIn","canvasEvtIn","_draggedoverTarget","inOpt","outOpt","inFires","targetChanged","previousTarget","nextTarget","reset","_beforeScaleTransform","_performTransformAction","_onScale","_isUniscalePossible","currentAction","getCornerCursor","actionIsDisabled","_getRotatedCornerCursor","hasRotatingPoint","_updateActiveSelection","_createActiveSelection","currentActiveObjects","removeWithUpdate","addWithUpdate","_createGroup","groupObjects","exitEditing","ActiveSelection","_groupSelectedObjects","aGroup","_collectObjects","currentObject","selectionX1Y1","selectionX2Y2","allowIntersect","intersectsWithRect","isContainedWithinRect","toCanvasElement","cropping","scaledWidth","scaledHeight","originalWidth","originalHeight","newZoom","vp","originalInteractive","newVp","originalRetina","originalContextTop","loadFromDatalessJSON","json","loadFromJSON","serialized","_enlivenObjects","_setBgOverlay","enlivenedCanvasClip","__setupCanvas","loaded","cbIfLoaded","__setBgOverlay","enlivedObject","_toDataURL","_toDataURLWithMultiplier","toDataURLWithMultiplier","cloneWithoutData","backgroundImageOpacity","backgroundImageStretch","supportsLineDash","cornerSize","borderColor","borderDashArray","cornerColor","cornerStrokeColor","cornerStyle","cornerDashArray","strokeDashOffset","borderOpacityWhenMoving","borderScaleFactor","minScaleLimit","hasControls","rotatingPointOffset","lockMovementX","lockMovementY","lockUniScaling","objectCaching","statefullCache","noScaleCache","strokeUniform","dirty","paintFirst","stateProperties","cacheProperties","inverted","absolutePositioned","_cacheProperties","_updateCacheCanvas","_limitCacheSize","dims","limitedDims","capped","_getCacheCanvasDimensions","objectScale","getTotalObjectScaling","neededX","neededY","drawingWidth","drawingHeight","minCacheSize","dimensionsChanged","cacheWidth","cacheHeight","additionalWidth","additionalHeight","shouldResizeCanvas","canvasWidth","canvasHeight","sizeGrowing","setTransform","calcOwnMatrix","_removeDefaultValues","getObjectScaling","retina","getObjectOpacity","isChanged","groupNeedsUpdate","_constrainScale","isOnACache","setOnGroup","getViewportTransform","isNotVisible","isOnScreen","_setupCompositeOperation","drawSelectionBackground","_setOpacity","drawCacheOnCanvas","_removeCacheCanvas","drawObject","propertySet","isCacheDirty","hasStroke","hasFill","needsItsOwnCache","ownCaching","willDrawShadow","drawClipPathOnCache","originalFill","originalStroke","_setClippingProperties","_setStrokeStyles","_setFillStyles","_drawClipPath","skipCanvas","_getNonTransformedDimensions","_removeShadow","decl","lineDashOffset","dashArray","alternative","styleOverride","drawBorders","forActiveSelection","drawBordersInGroup","scaling","multX","multY","_applyPatternGradientTransform","_renderPaintInOrder","_renderStroke","_renderFill","_renderDashedStroke","_applyPatternForTransformedGradient","pCtx","pCanvas","_findCenterFromElement","_assignTransformMatrixProps","preserveAspectRatioOptions","cropX","cropY","offsetLeft","offsetTop","objectForm","_fromObject","cloneAsImage","origParams","originalGroup","originalShadow","withoutTransform","withoutShadow","boundingRect","getBoundingRect","shadowOffset","originalCanvas","isType","setGradient","setPatternFill","setColor","shouldCenterOrigin","_setOriginToCenter","_resetOrigin","centerH","viewportCenterH","centerV","viewportCenterV","viewportCenter","getLocalPointer","pClicked","objectLeftTop","createAccessors","extraParam","enlivedProps","translateToGivenOrigin","fromOriginX","fromOriginY","toOriginX","toOriginY","translateToCenterPoint","leftTop","getPointByOrigin","adjustPosition","to","offsetFrom","offsetTo","hypotFull","getScaledWidth","xFull","yFull","_originalOriginX","_originalOriginY","originPoint","multiplyMatrices","oCoords","aCoords","ownMatrixCache","matrixCache","getCoords","absolute","calculate","calcCoords","pointTL","pointBR","other","_getImageLines","_findCrossPoints","_containsCenterOfCanvas","isPartiallyOnScreen","topline","rightline","bottomline","leftline","xi","iLine","xcount","lineKey","getScaledHeight","scaleToWidth","boundingRectFactor","scaleToHeight","rotateMatrix","_calcRotateMatrix","_calcTranslateMatrix","startMatrix","finalMatrix","cosP","sinP","cosPSinP","cosPMinusSinP","mtr","skipAbsolute","_setCornerCoords","transformMatrixKey","prefix","cache","tMatrix","_calcDimensionsTransformMatrix","flipping","dimX","dimY","_finalizeDimensions","bbox","_calculateCurrentDimensions","getSvgColorString","getSvgStyles","skipShadow","getSvgFilter","getSvgSpanStyles","useWhiteSpace","textDecoration","getSvgTextDecoration","deltaY","decoration","getSvgCommons","getSvgTransform","full","getSvgTransformMatrix","_setSVGBg","textBgRects","_getFillAttributes","_createBaseSVGMarkup","_toSVG","_createBaseClipPathSVGMarkup","objectMarkup","commonPieces","clipPathMarkup","noStyle","styleInfo","shadowInfo","withShadow","vectorEffect","absoluteClipPath","addPaintOrder","saveProps","props","tmpObj","dashedPropertySet","_isEqual","origValue","currentValue","firstPass","_controlsVisibility","isControlVisible","newTheta","cornerHypotenuse","cosHalfOffset","sinHalfOffset","wh","drawRotatingPoint","rotateHeight","scaleOffset","_drawControl","control","controlName","_getControlsVisibility","setControlVisible","setControlsVisibility","FX_DURATION","fxCenterObjectH","callbacks","fxCenterObjectV","fxRemove","propsToAnimate","_animate","skipCallbacks","propPair","from","valueProgress","timeProgress","coordProps","makeEdgeToOriginGetter","propertyNames","originValues","axis1","axis2","dimension","nearest","farthest","Line","_setWidthHeight","_getLeftToOriginX","_getTopToOriginY","calcLinePoints","origStrokeStyle","xMult","yMult","ATTRIBUTE_NAMES","parsedAttributes","pi","startAngle","endAngle","setRadius","svgString","startX","startY","endX","endY","getRadiusX","getRadiusY","Triangle","widthBy2","heightBy2","piBy2","Ellipse","getRx","getRy","_initRxRy","isRounded","Polyline","_setPositionDimensions","correctLeftTop","calcDim","_calcDimensions","fromSVG","diffX","diffY","commonRender","fromElementGenerator","_class","Polygon","_toString","commandLengths","repeatedCommands","fromArray","_parsePath","_renderPathCommands","tempX","tempY","previous","subpathStartX","subpathStartY","controlX","controlY","_getOffsetTransform","digits","currentPath","coordsStr","coordsParsed","re","command","commandLength","repeatedCommand","klen","aX","aY","useSetOnGroup","isAlreadyGrouped","_updateObjectsACoords","_calcBounds","_updateObjectsCoords","_updateObjectCoords","_restoreObjectsState","_includeDefaultValues","objsToObject","originalDefaults","_obj","ownCache","_restoreObjectState","destroy","toActiveSelection","ungroupOnCanvas","setObjectsCoords","onlyWidthHeight","iLen","jLen","_getBounds","minXY","maxXY","enlivedClipPath","toGroup","newGroup","childrenOverride","srcFromAttribute","_lastScaleX","_lastScaleY","_filterScalingX","_filterScalingY","minimumScaleTrigger","cacheKey","filters","_initElement","_element","setElement","removeTexture","_initConfig","applyFilters","resizeFilter","applyResizeFilters","backend","filterBackend","evictCachesForKey","setCrossOrigin","getOriginalSize","_stroke","filterObj","getSrc","hasCrop","strokeSvg","imageMarkup","getSvgSrc","origFill","filtered","setSrc","minimumScale","elementToFilter","_filteredEl","sourceWidth","sourceHeight","isNeutralState","imgElement","_needsResize","elementToDraw","sW","sH","sX","sY","_resetWidthHeight","CSS_CANVAS","_initFilters","pAR","rWidth","rHeight","pWidth","pHeight","_object","resizeFilters","fromURL","imgOptions","_getAngleValueForStraighten","straighten","fxStraighten","straightenObject","fxStraightenObject","testPrecision","precision","fragmentSource","fragmentShader","createShader","FRAGMENT_SHADER","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","setupGLContext","captureGPUInfo","isSupported","getParameter","MAX_TEXTURE_SIZE","precisions","webGlPrecision","createWebGLCanvas","aPosition","Float32Array","chooseFastestCopyGLTo2DMethod","canUseImageData","canMeasurePerf","performance","canUseArrayBuffer","ArrayBuffer","canUseUint8Clamped","copyGLTo2D","startTime","drawImageTime","testContext","glOptions","premultipliedAlpha","stencil","antialias","clearColor","cachedTexture","getCachedTexture","sourceTexture","createTexture","targetTexture","originalTexture","passes","webgl","programCache","pass","tempFbo","createFramebuffer","bindFramebuffer","FRAMEBUFFER","applyTo","bindTexture","TEXTURE_2D","deleteTexture","deleteFramebuffer","clearWebGLCaches","textureCache","textureImageSource","texture","texParameteri","TEXTURE_MAG_FILTER","NEAREST","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","texImage2D","uniqueId","gpuInfo","renderer","ext","getExtension","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","sourceElement","originalEl","originalImageData","BaseFilter","vertexSource","createProgram","vertexShader","VERTEX_SHADER","getShaderInfoLog","program","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","attributeLocations","getAttributeLocations","uniformLocations","getUniformLocations","uStepW","getUniformLocation","uStepH","getAttribLocation","sendAttributeData","aPositionData","attributeLocation","buffer","createBuffer","bindBuffer","ARRAY_BUFFER","enableVertexAttribArray","vertexAttribPointer","FLOAT","bufferData","STATIC_DRAW","_setupFrameBuffer","framebufferTexture2D","COLOR_ATTACHMENT0","_swapTextures","temp","main","mainParameter","applyToWebGL","applyTo2d","retrieveShader","shader","useProgram","uniform1f","sendUniformData","viewport","drawArrays","TRIANGLE_STRIP","bindAdditionalTexture","textureUnit","activeTexture","TEXTURE0","unbindAdditionalTexture","getMainParameter","setMainParameter","createHelpLayer","helpLayer","mainP","ColorMatrix","colorsOnly","uColorMatrix","uConstants","constants","uniformMatrix4fv","uniform4fv","Brightness","brightness","uBrightness","Convolute","opaque","Convolute_3_1","Convolute_3_0","Convolute_5_1","Convolute_5_0","Convolute_7_1","Convolute_7_0","Convolute_9_1","Convolute_9_0","dstOff","scx","scy","srcOff","wt","weights","side","halfSide","sw","sh","createImageData","dst","alphaFac","uMatrix","uOpaque","uHalfSize","uSize","uniform1fv","Grayscale","lightness","luminosity","mode","uMode","uniform1i","Invert","invert","uInvert","Noise","noise","rand","uNoise","uSeed","Pixelate","blocksize","_j","_iLen","_jLen","uBlocksize","RemoveColor","useAlpha","lowC","highC","uLow","uHigh","Brownie","Vintage","Kodachrome","Technicolor","Polaroid","Sepia","BlackWhite","BlendColor","screen","diff","lighten","darken","exclusion","tint","buildSource","tg","alpha1","uColor","BlendImage","mask","TEXTURE1","calculateMatrix","canvas1","blendData","blendImage","uTransformMatrix","uImage","uniformMatrix3fv","Resize","resizeType","lanczosLobes","uDelta","uTaps","uniform2fv","horizontal","taps","filterWindow","getFilterWindow","generateShader","tempScale","getTaps","lobeFunction","lanczosCreate","offsets","fragmentSourceTOP","dW","dH","lobes","xx","rcpScaleX","rcpScaleY","newData","oW","oH","sliceByTwo","hermiteFastResize","bilinearFiltering","lanczosResize","tmpCanvas","doneW","doneH","stepW","stepH","dX","dY","srcData","destImg","destData","lanczos","ratioX","ratioY","rcpRatioX","rcpRatioY","range2X","range2Y","cacheLanc","icenter","process","fX","fY","xDiff","yDiff","chnl","origPix","w4","pixels","destImage","destPixels","ratioW","ratioH","ratioWHalf","ratioHHalf","img2","data2","weightsAlpha","gxR","gxG","gxB","gxA","centerY","yy","centerX","w0","Contrast","contrast","contrastF","uContrast","Saturation","saturation","adjust","uSaturation","Blur","aspectRatio","simpleBlur","canvas2","blurLayer1","blurLayer2","percent","ctx1","ctx2","newImageData","delta","chooseRightDelta","blurScale","Gamma","gamma","rInv","gInv","bInv","rVals","gVals","bVals","uGamma","uniform3fv","Composed","subFilters","some","HueRotation","rotation","rad","aThirdSqtSin","OneMinusCos","_dimensionAffectingProps","_reNewline","_reSpacesAndTabs","_reSpaceAndTab","_reWords","underline","overline","linethrough","textAlign","superscript","baseline","subscript","textBackgroundColor","_fontSizeFraction","_fontSizeMult","charSpacing","_measuringContext","_styleProperties","__charBounds","CACHE_FONT_SIZE","MIN_TEXT_WIDTH","__skipDimension","initDimensions","getMeasuringContext","_splitText","newLines","_splitTextIntoLines","textLines","_textLines","graphemeLines","_unwrappedTextLines","_unwrappedLines","_text","graphemeText","_clearCache","calcTextWidth","cursorWidth","enlargeSpaces","calcTextHeight","diffSpace","currentLineWidth","accumulatedSpace","charBound","isEndOfWrapping","getLineWidth","kernedWidth","lineIndex","missingNewlineOffset","_setTextStyles","_renderTextLinesBackground","_renderTextDecoration","_renderText","_renderTextStroke","_renderTextFill","charStyle","forMeasuring","textBaseline","_getFontDeclaration","maxWidth","_renderTextLine","_renderChars","styleHas","heightOfLine","lineLeftOffset","lastColor","charBox","currentColor","lineTopOffset","leftOffset","_getLeftOffset","topOffset","_getTopOffset","boxStart","boxWidth","getHeightOfLine","_getLineLeftOffset","getValueOfPropertyAt","getFontCache","cacheProp","_applyCharStyles","styleDeclaration","_measureChar","_char","previousChar","prevCharStyle","coupleWidth","previousWidth","fontCache","couple","stylesAreEqual","fontMultiplier","measureText","getHeightOfChar","measureLine","lineInfo","_measureLine","_getWidthOfCharSpacing","grapheme","prevGrapheme","graphemeInfo","lineBounds","_getGraphemeBox","numOfSpaces","skipLeft","getCompleteStyleDeclaration","prevStyle","info","previousBox","__lineHeights","maxHeight","_renderTextCommon","lineHeights","isEmptyStyles","actualStyle","nextStyle","timeToRender","isJustify","charsToRender","shortCut","_renderChar","_hasStyleChanged","_getStyleDeclaration","fullDecl","shouldFill","shouldStroke","fillText","strokeText","setSuperscript","_setScript","setSubscript","schema","loc","get2DCursorLocation","setSelectionStyles","thisStyle","_hasStyleChangedForSvg","__lineWidths","_shouldClearDimensionCache","shouldClear","_forceClearCache","_size","_dy","lastDecoration","currentDecoration","currentFill","lastFill","styleObject","family","fontIsGeneric","genericFonts","newLine","newText","additionalProperties","needsDims","_key","parsedAnchor","textAnchor","originalStrokeWidth","textHeightScaleFactor","scaledDiff","textHeight","offX","p3","cleanStyle","letterCount","stylePropertyValue","stylesCount","allStyleObjectPropertiesMatch","graphemeCount","removeStyle","lineNum","charNum","_extendStyles","_getLineStyle","_setLineStyle","_setStyleDeclaration","selectionStart","skipWrapping","getSelectionStyles","startIndex","endIndex","selectionEnd","getStyleAtPosition","lineStyle","_deleteStyleDeclaration","_deleteLineStyle","parseDecoration","IText","editable","editingBorderColor","cursorColor","cursorDelay","cursorDuration","caching","_reSpace","_currentCursorOpacity","_selectionDirection","_abortCursorAnimation","__widthOfSpace","inCompositionMode","initBehavior","setSelectionStart","_updateAndFire","setSelectionEnd","_fireSelectionChanged","_updateTextarea","initDelayedCursor","cursorOffsetCache","renderCursorOrSelection","skipRestore","_clearTextArea","boundaries","_getCursorBoundaries","renderCursor","renderSelection","_getCursorBoundariesOffsets","cursorPosition","cursorLocation","charHeight","__isMousedown","startLine","endLine","startChar","endChar","realLineHeight","lineOffset","boxEnd","compositionColor","getCurrentCharFontSize","cp","_getCurrentCharIndex","getCurrentCharColor","initAddedHandler","initRemovedHandler","initCursorSelectionHandlers","initDoubleClickSimulation","mouseMoveHandler","_initCanvasHandlers","_removeCanvasHandlers","_tick","_currentTickState","_animateCursor","targetOpacity","completeMethod","tickState","isAborted","_onTickComplete","_cursorTimeout1","_currentTickCompleteState","restart","delay","abortCursorAnimation","_cursorTimeout2","selectAll","getSelectedText","findWordBoundaryLeft","startFrom","findWordBoundaryRight","findLineBoundaryLeft","findLineBoundaryRight","searchWordBoundary","direction","selectWord","newSelectionStart","newSelectionEnd","selectLine","enterEditing","exitEditingOnOthers","initHiddenTextarea","_saveEditingProps","_setEditingProps","_textBeforeEdit","initMouseMoveHandler","getSelectionStartFromPointer","currentStart","currentEnd","__selectionStartOnMouseDown","restartCursorIfNeeded","fromStringToGraphemeSelection","smallerTextStart","graphemeStart","smallerTextEnd","fromGraphemeToStringSelection","newSelection","updateTextareaPosition","updateFromTextArea","_calcTextareaPosition","desiredPosition","compositionStart","upperCanvas","upperCanvasWidth","upperCanvasHeight","clientWidth","clientHeight","_savedProps","_restoreEditingProps","isTextChanged","_removeExtraneousStyles","removeStyleFromTo","styleObj","cursorStart","cursorEnd","lineStart","charStart","lineEnd","charEnd","shiftLineStyles","numericChar","clonedStyles","numericLine","insertNewlineStyleObject","qty","copiedStyle","currentCharStyle","newLineStyles","somethingAdded","numIndex","insertCharStyleObject","quantity","currentLineStyles","currentLineStylesCloned","numericIndex","newStyle","insertNewStyleBlock","insertedText","cursorLoc","addedLines","linesLength","setSelectionStartEndWithShift","setSelectionInBoundaries","__lastClickTime","__lastLastClickTime","__lastPointer","__newClickTime","newPointer","isTripleClick","_stopEvent","__lastIsEditing","__lastSelected","initMousedownHandler","initMouseupHandler","initClicks","doubleClickHandler","tripleClickHandler","_mouseDownHandler","setCursorByClick","_mouseDownHandlerBefore","mouseUpHandler","currentActive","mouseOffset","prevWidth","_getNewSelectionStartFromOffset","distanceBtwNextCharAndCursor","onKeyDown","onKeyUp","onInput","copy","paste","onCompositionStart","onCompositionUpdate","onCompositionEnd","_clickHandlerInitialized","onClick","keysMap","9","27","33","34","35","36","37","38","39","40","ctrlKeysMapUp","67","88","ctrlKeysMapDown","65","keyCode","ctrlKey","metaKey","stopImmediatePropagation","_copyDone","fromPaste","removedText","nextText","charCount","nextCharCount","charDiff","textareaSelection","backDelete","copiedText","copiedTextStyle","compositionEnd","_getClipboardData","clipboardData","_getWidthBeforeCursor","widthBeforeCursor","getDownCursorOffset","isRight","selectionProp","_getSelectionForOffset","indexOnOtherLine","_getIndexOnLine","getUpCursorOffset","textBeforeCursor","charWidth","foundMatch","widthOfCharsOnLine","indexOnLine","rightEdge","offsetFromLeftEdge","moveCursorDown","_moveCursorUpOrDown","moveCursorUp","moveCursorWithShift","moveCursorWithoutShift","moveCursorLeft","_moveCursorLeftOrRight","_move","_moveLeft","_moveRight","moveCursorLeftWithoutShift","change","moveCursorLeftWithShift","moveCursorRight","actionName","moveCursorRightWithShift","moveCursorRightWithoutShift","changed","removeChars","insertChars","_getSVGLeftTopOffsets","textAndBg","_getSVGTextAndBg","textTop","textLeft","_wrapSVGTextAndBg","lineTop","textSpans","textTopOffset","textLeftOffset","_setSVGTextLineBg","_setSVGTextLineText","_createTextCharSpan","styleDecl","shouldUseWhitespace","styleProps","fillStyles","dySpan","_pushTextBgRect","fillColor","_getSVGLineTopOffset","lastHeight","minWidth","dynamicMinWidth","__cachedLines","_wordJoiners","splitByGrapheme","_styleMap","_generateStyleMap","textInfo","realLineCount","realLineCharCount","isWrapping","nextOffset","shouldLimit","mapNextLine","_wrapText","desiredWidth","wrapped","_wrapLine","_measureWord","word","charOffset","_line","reservedSpace","words","infix","wordWidth","infixWidth","largestWordWidth","lineJustStarted","additionalSpace","linesToKeep","_process","mod","parseKey","val","isArrayOrObject","isEmptyObject","blacklist","blacklistFilter","part","parsePath","sep","DotObject","separator","override","useArray","useBrackets","keepArray","cleanup","dotDefault","wrap","_fill","mods","ok","pick","reindexArray","_cleanup","ret","del","move","merge","transfer","obj1","obj2","recipe","tgt","previousKey","defineProperty","md5","RavenConfigError","isDOMError","isDOMException","isPlainObject","isUndefined","isString","each","objectMerge","truncate","objectFrozen","hasKey","joinRegExp","urlencode","uuid4","htmlTreeAsString","isSameException","isSameStacktrace","parseUrl","supportsFetch","supportsReferrerPolicy","serializeKeysForMessage","serializeException","sanitize","wrapConsoleMethod","dsnKeys","dsnPattern","_document","_navigator","keepOriginalCallback","_hasJSON","_hasDocument","_hasNavigator","_lastCapturedException","_lastData","_lastEventId","_globalServer","_globalKey","_globalProject","_globalContext","_globalOptions","release","SENTRY_RELEASE","ignoreErrors","ignoreUrls","whitelistUrls","includePaths","headers","captureUnhandledRejections","maxMessageLength","maxUrlLength","stackTraceLimit","autoBreadcrumbs","instrument","sampleRate","sanitizeKeys","_fetchDefaults","referrerPolicy","_ignoreOnError","_isRavenInstalled","_originalErrorStackTraceLimit","_originalConsole","_originalConsoleMethods","_plugins","_startTime","_wrappedBuiltIns","_breadcrumbs","_lastCapturedEvent","_location","_lastHref","_resetBackoff","VERSION","dsn","_logDebug","globalOptions","setDSN","maxBreadcrumbs","autoBreadcrumbDefaults","dom","sentry","instrumentDefaults","tryCatch","install","isSetup","_handleOnErrorStackInfo","_attachPromiseRejectionHandler","_patchFunctionToString","_instrumentTryCatch","_instrumentBreadcrumbs","_drainPlugins","uri","_parseDSN","lastSlash","lastIndexOf","_dsn","user","_globalSecret","_getGlobalServer","_globalEndpoint","_before","__raven__","__raven_wrapper__","_ignoreNextOnError","captureException","__orig__","_detachPromiseRejectionHandler","_unpatchFunctionToString","_restoreBuiltIns","_restoreConsole","_promiseRejectionHandler","reason","mechanism","handled","trimHeadFrames","captureMessage","stacktrace","_getCaptureExceptionOptionsFromPlainObject","_handleStackInfo","ex1","currentOptions","exKeys","fingerprint","__serialized__","initialCall","fileurl","frames","_prepareFrames","_send","captureBreadcrumb","crumb","breadcrumbCallback","addPlugin","plugin","pluginArgs","setUserContext","setExtraContext","_mergeContext","setTagsContext","tags","setEnvironment","environment","setRelease","setDataCallback","dataCallback","setBreadcrumbCallback","setShouldSendCallback","shouldSendCallback","setTransport","transport","lastEventId","ravenNotConfiguredError","RavenConfig","showReportDialog","eventId","encode","encodedOptions","email","globalServer","script","head","_triggerEvent","initEvent","createEventObject","fireEvent","_breadcrumbEventHandler","evtName","_keypressTimeout","category","_keypressEventHandler","isContentEditable","_captureUrlChange","parsedLoc","parsedTo","parsedFrom","relative","_originalFunctionToString","wrappedBuiltIns","wrapTimeFn","orig","originalCallback","function","wrapEventTarget","capture","secure","handleEvent","clickHandler","keypressHandler","eventTargets","wrapProp","xhrproto","origOpen","__raven_xhr","status_code","origSend","onreadystatechangeHandler","origFetch","fetchInput","Request","fetchData","app","runtime","history","pushState","replaceState","oldOnPopState","onpopstate","currentHref","historyReplacementFunction","origHistFunction","consoleMethodCallback","builtin","allowSecretKey","_processException","lineno","frame","_normalizeFrame","in_app","stackInfoUrl","normalized","filename","colno","prefixedMessage","values","transaction","_trimPacket","Referer","breadcrumbs","_trimBreadcrumbs","urlProp","urlProps","_getHttpData","httpData","referrer","_backoffDuration","_backoffStart","_shouldBackoff","_isRepeatData","last","Boolean","_setBackoffState","retry","getResponseHeader","baseData","project","platform","serverName","server_name","_sanitizeData","_sendProcessedPayload","_getUuid","allowDuplicates","event_id","auth","sentry_version","sentry_client","sentry_key","sentry_secret","_makeRequest","onSuccess","onError","evaluatedHeaders","evaluatedFetchParameters","_evaluateHash","fetchParameters","defaultFetchOptions","fetchOptions","fetch","XDomainRequest","evaluated","setUser","setReleaseContext","_enable_super_gross_mode_that_will_cause_bad_things","$$rxSubscriber","what","Headers","Response","sources","htmlElementAsString","elem","out","attrWhitelist","isOnlyOneTruthy","stack1","stack2","frames1","frames2","serializeValue","supportsErrorEvent","ErrorEvent","supportsDOMError","DOMError","supportsDOMException","DOMException","supportsPromiseRejectionEvent","PromiseRejectionEvent","wrappedCallback","normalizedData","isFrozen","pairs","crypto","msCrypto","getRandomValues","Uint16Array","pad","nextStr","sepLength","ex2","track","delimiter","maxSize","serializeObject","acc","encodeURI","maxLength","usedKeys","safeInput","sanitizeRegExp","o_O","sanitizeWorker","workerInput","exportName","undefined","assign","VENDOR_PREFIXES","TEST_ELEMENT","setTimeoutContext","bindFn","invokeArrayArg","arg","iterator","deprecate","deprecationMessage","TypeError","nextKey","dest","inherit","child","base","childP","baseP","boolOrFn","ifUndefined","val1","val2","addEventListeners","types","splitStr","removeEventListeners","hasParent","inStr","inArray","findByKey","uniqueArray","prefixed","camelProp","_uniqueId","getWindowForElement","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","PROPS_XY","PROPS_CLIENT_XY","Input","manager","inputTarget","domHandler","ev","enable","init","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","timeStamp","deltaTime","getAngle","getDistance","offsetDelta","prevDelta","prevInput","deltaX","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","maxPointers","velocity","velocityX","velocityY","lastInterval","srcEvent","emit","recognize","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SingleTouchInput","started","normalizeSingleTouches","TOUCH_INPUT_MAP","TouchInput","targetIds","getTouches","allTouches","targetTouches","changedTargetTouches","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","TouchAction","Recognizer","defaults","state","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","count","Hammer","recognizers","preset","Manager","oldCssProps","inputClass","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","compute","actions","update","getTouchAction","hasPanX","hasPanY","preventDefaults","prevented","hasNone","DIRECTION_LEFT","DIRECTION_UP","preventSrc","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","isValid","DIRECTION_HORIZONTAL","directionTest","hasMoved","validPointers","validMovement","validTime","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","stop","force","stopped","curRecognizer","existing","gestureEvent","gesture","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_VERTICAL","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press","observer","isArray_1","isObject_1","UnsubscriptionError_1","flattenUnsubscriptionErrors","errs","_subscriptions","sub","teardown","EMPTY","tmp","subscriptions","subscriptionIndex","super","Subject","ObjectUnsubscribedError","ObjectUnsubscribedErrorImpl","subject","observers","subscriberIndex","hasError","thrownError","isScheduler","schedule","outerValue","outerIndex","notifyNext","notifyError","notifyComplete","subscribeToArray","isArrayLike","isPromise","subscribeTo","obs","promise","iterable","done","subscribeToResult","outerSubscriber","innerSubscriber","innerValue","innerIndex","innerSub","thisArg","MapOperator","scheduleArray","scheduler","mergeMap","resultSelector","POSITIVE_INFINITY","concurrent","ii","MergeMapOperator","hasCompleted","_tryNext","_innerSub","ish","innerSubscription","mergeAll","observables","RefCountOperator","connectableProto","connectable","_refCount","refCounter","connection","connect","refCount","sharedConnection","_connection","connectableObservableDescriptor","writable","_subject","subjectFactory","_isComplete","getSubject","shareSubjectFactory","share","subjectOrSubjectFactory","noSideEffects","PARAMETERS","makeParamDecorator","parentClass","metaCtor","propName","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","cls","unusedKey","ngMetadataName","annotationCls","Inject","token","Optional","Self","SkipSelf","InjectFlags","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","ɵɵdefineInjectable","providedIn","ɵɵdefineInjector","providers","imports","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","def","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ɵprov","ɵinj","NG_PROV_DEF_FALLBACK","ɵprovFallback","ngInjectableDef","ngInjectorDef","overriddenName","res","newLineIndex","concatStringsWithSpace","__forward_ref__","forwardRef","forwardRefFn","resolveForwardRef","isForwardRef","_injectImplementation","__globalThis","globalThis","__window","__self","WorkerGlobalScope","__global","_global","NG_COMP_DEF","ɵcmp","NG_DIR_DEF","ɵdir","NG_PIPE_DEF","ɵpipe","NG_MOD_DEF","ɵmod","NG_LOC_ID_DEF","ɵloc","NG_FACTORY_DEF","ɵfac","NG_ELEMENT_ID","__NG_ELEMENT_ID__","InjectionToken","_desc","INJECTOR","THROW_IF_NOT_FOUND","NEW_LINE","USE_VALUE","provide","useValue","_currentInjector","setCurrentInjector","injector","former","setInjectImplementation","injectInjectorOnly","Default","flags","injectRootLimpMode","ɵɵinject","inject","notFoundValue","injectableDef","injectArgs","meta","NullInjector","NgModuleRef","deepForEach","addToArray","newArray","list","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","keyValueArrayGet","middle","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","Emulated","Native","None","ShadowDom","EMPTY_OBJ","EMPTY_ARRAY","_renderCompCount","ɵɵdefineComponent","componentDefinition","typePrototype","declaredInputs","providersResolver","decls","vars","template","consts","ngContentSelectors","hostBindings","hostVars","hostAttrs","contentQueries","inputs","outputs","exportAs","onChanges","onInit","ngOnInit","doCheck","ngDoCheck","afterContentInit","ngAfterContentInit","afterContentChecked","ngAfterContentChecked","afterViewInit","ngAfterViewInit","afterViewChecked","ngAfterViewChecked","onDestroy","ngOnDestroy","onPush","changeDetection","directiveDefs","pipeDefs","viewQuery","encapsulation","setInput","schemas","tView","directiveTypes","feature","pipeTypes","invertObject","extractDirectiveDef","extractPipeDef","getComponentDef","autoRegisterModuleById","ɵɵdefineNgModule","bootstrap","declarations","transitiveCompileScopes","secondary","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","ɵɵdefinePipe","pipeDef","pure","getFactoryDef","throwNotFound","getNgModuleDef","ngModuleDef","isLView","isLContainer","isContentQueryHost","tNode","isComponentHost","isDirectiveHost","isComponentDef","isRootView","DOCUMENT","isProceduralRenderer","domRendererFactory3","createRenderer","hostElement","rendererType","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","view","getComponentLViewByIndex","nodeIndex","hostView","slotValue","readPatchedLView","isCreationMode","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","updateTransplantedViewCount","lContainer","amount","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","checkNoChangesMode","getBindingsEnabled","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","getPreviousOrParentTNode","previousOrParentTNode","setPreviousOrParentTNode","isParent","getIsParent","setIsNotParent","getCheckNoChangesMode","setCheckNoChangesMode","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","nextBindingIndex","incrementBindingIndex","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","currentQueryIndex","setCurrentQueryIndex","enterDI","newView","newLFrame","allocLFrame","enterView","currentLFrame","childLFrame","selectedIndex","elementDepthCount","currentNamespace","currentSanitizer","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","registerPostOrderHooks","directiveStart","directiveEnd","directiveDef","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","hooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","isInitHook","hook","directive","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","setUpAttributes","native","isProc","namespaceURI","attrName","attrVal","isAnimationProp","setProperty","isNameOnlyAttributeMarker","marker","mergeHostAttrs","srcMarker","mergeHostAttribute","key1","key2","markerInsertPosition","dstValue","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorViewOffset","getParentInjectorView","startView","viewOffset","parentView","renderStringify","stringifyForError","defaultScheduler","ɵɵresolveDocument","ɵɵresolveBody","maybeUnwrapFn","includeViewProviders","setIncludeViewProviders","oldValue","nextNgElementId","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentLView","parentData","footer","hostTNode","diPublicInInjector","bloomBit","BLOOM_SIZE","b6","b5","getOrCreateInjectable","bloomHash","tokenId","NodeInjector","previousTView","hostTElementNode","Host","shouldSearchParent","bloomHasToken","searchTokensOnInjector","NOT_FOUND","moduleInjector","previousInjectImplementation","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","providerTokenOrDef","dirDef","previousIncludeViewProviders","directiveIndex","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","_tNode","_lView","ɵɵgetInheritedFactory","getPrototypeOf","ɵɵgetFactoryOf","typeAny","injectorDef","getDebugContext","getOriginalError","defaultErrorLogger","ErrorHandler","_console","originalError","_findOriginalError","_findContext","errorLogger","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","getTypeName","_devMode","_runModeLocked","isDevMode","InertBodyHelper","defaultDoc","inertDocument","inertBodyElement","inertHtml","innerHTML","getInertBodyElement","_a","getInertBodyElement_DOMParser","getInertBodyElement_InertDocument","getInertBodyElement_XHR","nextSibling","html","templateEl","inertBody","documentMode","stripCustomNsAttrs","elAttrs","childNode","Node","ELEMENT_NODE","SAFE_URL_PATTERN","DATA_URL_PATTERN","_sanitizeUrl","tagSet","sets","inertBodyHelper","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","OPTIONAL_END_TAG_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","SRCSET_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","buf","nextNode","traverseContent","startElement","TEXT_NODE","chars","endElement","checkClobberedElement","srcset","elAttr","encodeEntities","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","outerHTML","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","getTemplateContent","content","SecurityContext","NONE","HTML","STYLE","SCRIPT","RESOURCE_URL","SAFE_STYLE_VALUE","URL_RE","_sanitizeStyle","urlMatch","outsideSingle","outsideDouble","ɵɵsanitizeStyle","unsafeStyle","sanitizer","getSanitizer","ɵɵsanitizeUrl","unsafeUrl","ɵɵdefaultStyleSanitizer","doSanitizeValue","attachPatchData","throwMultipleComponentError","throwMixedMultiProviderError","classIndexOf","classToSearch","startingIndex","foundIndex","isCssClassMatching","cssClassToMatch","isProjectionMode","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","NO_CHANGE","getLViewParent","getFirstLContainer","getNearestLContainer","getNextLContainer","ɵɵadvance","selectIndexInternal","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","refreshContentQueries","queryStartIdx","directiveDefIdx","elementCreate","createLView","tHostNode","rendererFactory","getOrCreateTNode","adjustedIndex","createTNode","renderView","executeViewQueryFn","templateFn","executeTemplate","staticContentQueries","staticViewQueries","components","hostLView","renderComponent","incompleteFirstPass","refreshView","hooksInitPhaseCompleted","movedViews","movedLView","insertionLContainer","embeddedLView","embeddedTView","expandoInstructions","expandoStartIndex","instruction","refreshComponent","firstUpdatePass","renderComponentOrTemplate","normalExecutionPath","creationModeIsActive","rf","prevSelectedIndex","executeContentQueries","createDirectivesInstances","initialInputs","isComponent","addComponentLogic","setInputsFromAttrs","expando","elementIndex","dirIndex","invokeHostBindingsInCreationMode","saveResolvedLocalsInData","viewData","localRefExtractor","localNames","localIndex","getOrCreateTComponentView","createTView","viewIndex","directives","pipes","initialViewLength","queries","directiveRegistry","pipeRegistry","tParent","directiveStylingLast","propertyBindings","tViews","projectionNext","projection","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","generatePropertyAliases","inputAliasMap","propStore","internalName","elementPropertyInternal","nativeOnly","dataValue","setInputsForProperty","childComponentLView","resolveDirectives","localRefs","hasDirectives","registry","matches","markAsComponentHost","exportsMap","totalDirectiveHostVars","initTNodeFlags","generateExpandoInstructionBlock","preOrderHooksFound","preOrderCheckHooksFound","baseResolveDirective","saveNameToExportMap","addHostBindingsToExpandoInstructions","defs","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","directiveInputs","generateInitialInputs","growHostVarsSpace","directiveCount","providerCount","numberOfDirectives","directiveFactory","nodeInjectorFactory","componentView","addToViewTree","initialInputData","privateName","inputsToStore","createLContainer","hostNative","componentHostIdx","refreshContainsDirtyView","componentTView","lViewOrLContainer","markViewDirty","detectChangesInternal","handleError","detectChangesInRootView","rootContext","rootComponent","viewQueryFn","component","CLEAN_PROMISE","getLCleanup","getTViewCleanup","loadComponentRenderer","currentDef","errorHandler","textBindingInternal","setValue","getLContainer","embeddedView","getContainerRenderParent","tViewNode","nativeParentNode","applyToElementOrContainer","lNodeToHandle","beforeNode","rNode","nativeAppendChild","nativeInsertBefore","isHostElement","nativeParent","renderParent","anchor","applyView","addRemoveViewFromContainer","insertMode","detachMovedView","declarationContainer","declarationViewIndex","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","lQueries","destroyLView","destroyNode","rootView","cleanUpView","firstView","getParentState","toCall","tCleanup","lCleanup","idxOrTargetGetter","listener","useCaptureOrSubIdx","getRenderParent","parentTNode","nativeAppendOrInsertBefore","getNativeAnchorNode","getBeforeNodeForView","childEl","childTNode","anchorNode","viewIndexInContainer","nextViewIndex","firstTNodeOfView","getFirstNativeNode","tNodeType","elIcuContainerChild","rNodeOrLContainer","componentHost","firstProjectedTNode","applyNodes","isProjection","rawSlotValue","applyProjectionRecursive","tProjectionNode","componentLView","nodeToProjectOrRNodes","writeDirectStyle","writeDirectClass","R3ElementRef","R3TemplateRef","R3ViewContainerRef","ViewRef","_cdRefInjectingView","_appRef","_viewContainerRef","detach","cleanupFn","vcRef","appRef","collectNativeNodes","lNode","lViewInAContainer","lViewFirstChildTNode","nodesInSlot","RootViewRef","_view","createElementRef","ElementRefToken","createTemplateRef","TemplateRefToken","_declarationView","_declarationTContainer","elementRef","declarationViewLQueries","createEmbeddedView","createContainerRef","ViewContainerRefToken","_lContainer","_hostTNode","_hostView","templateRef","viewRef","insert","componentFactory","projectableNodes","ngModuleRef","contextInjector","parentInjector","ngModule","componentRef","destroyed","allocateContainerIfNeeded","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","containerLength","insertView","attachToViewContainerRef","newIndex","viewRefsArr","detachedView","startTNode","commentNode","createComment","injectChangeDetectorRef","isPipe","ChangeDetectorRef","SWITCH_CHANGE_DETECTOR_REF_FACTORY","Type","DELEGATE_CTOR","INHERITED_CLASS","INHERITED_CLASS_WITH_CTOR","INHERITED_CLASS_WITH_DELEGATE_CTOR","ReflectionCapabilities","reflect","_reflect","paramTypes","paramAnnotations","parentCtor","typeStr","tsickleCtorParams","ctorParameters","ctorParam","convertTsickleDecoratorIntoMetadata","decorators","_zipTypesAndAnnotations","getOwnMetadata","getParentCtor","_ownParameters","typeOrFunc","annotations","ownAnnotations","_ownAnnotations","propMetadata","propDecorators","parentPropMetadata","ownPropMetadata","_ownPropMetadata","lcProperty","moduleUrl","members","enumIdentifier","decoratorInvocations","decoratorInvocation","ctor","parentProto","INJECTOR_SCOPE","NOT_YET","CIRCULAR","EMPTY_ARRAY$2","NULL_INJECTOR","getNullInjector","createInjectorWithoutInjectorInstances","defType","additionalProviders","R3Injector","records","Map","injectorDefTypes","Set","_destroyed","dedupStack","provider","processProvider","processInjectorType","makeRecord","record","scope","assertNotDestroyed","service","previousInjector","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","injectorErrorName","tokenPath","tokens","defOrWrappedDef","parents","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","ngModuleType","isTypeProvider","isValueProvider","providerToFactory","multi","multiRecord","has","paramLength","inheritedInjectableDef","typeName","unwrappedProvider","useFactory","deps","useExisting","classRef","useClass","ngModuleDetail","INJECTOR_IMPL","_resolveInjectorDefTypes","Injector","NULL","constructResolvingPath","injectionError","constructResolvingMessage","errMsg","addKey","injectors","noAnnotationError","params","signature","parameter","ReflectiveKey","displayName","numberOfKeys","_globalKeyRegistry","KeyRegistry","_allKeys","newKey","reflector","Reflector","reflectionCapabilities","caps","hasLifecycleHook","getter","setter","importUri","resourceUri","resolveIdentifier","resolveEnum","ReflectiveDependency","optional","_EMPTY_LIST","ResolvedReflectiveProvider_","resolvedFactories","multiProvider","resolvedFactory","ResolvedReflectiveFactory","dependencies","resolveReflectiveFactory","factoryFn","resolvedDeps","_dependenciesFor","aliasInstance","fromKey","_extractToken","resolveReflectiveProvider","metadata","_createDependency","paramMetadata","UNDEFINED","ReflectiveInjector","resolvedProviderMap","normalizedProvidersMap","resolvedProvider","_normalizeProviders","ResolvedReflectiveProviders","fromResolvedProviders","ReflectiveInjector_","_providers","_parent","_constructionCounter","keyIds","_getByKey","createChildFromResolved","inj","instantiateResolved","_instantiateProvider","_getMaxNumberOfObjects","_instantiate","originalException","dep","_getByReflectiveDependency","first","INJECTOR_KEY","_getByKeySelf","_getByKeyDefault","keyId","_new","_getObjByKeyId","_throwOrNull","inj_","getProviderAtIndex","componentResourceResolutionQueue","componentDefPendingResolution","unwrapResponse","computeStaticStyling","writeToHost","_symbolIterator","getOwnPropertyNames","looseIdentical","WrappedValue","isWrapped","isListLikeIterable$1","isJsObject$1","updateBinding","bindingUpdated","is","bindingUpdated2","exp1","exp2","different","ɵɵattribute","strValue","interpolation1","v0","suffix","ɵɵtemplate","attrsIndex","localRefsIndex","tViewConsts","embeddedTViewNode","comment","ɵɵreference","ɵɵdirectiveInject","ɵɵinjectAttribute","attrNameToInject","attrsLength","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵelementStart","elementStart","ɵɵelementEnd","elementEnd","ɵɵelement","ɵɵelementContainerStart","ɵɵelementContainerEnd","ɵɵgetCurrentView","isObservable","ɵɵlistener","listenerFn","eventTargetResolver","useCapture","listenerInternal","ɵɵcomponentHostSyntheticListener","isTNodeDirectiveHost","processOutputs","resolved","lCleanupIndex","existingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","listen","propsLength","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","ɵɵpropertyInterpolate1","interpolatedValue","EMPTY_ARRAY$3","markDuplicates","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","isMap","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","parseClassNameNext","consumeWhitespace","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵclassMap","checkStylingMap","classStringParser","suffixOrSanitizer","styleSanitizer","stylingFirstUpdatePass","updateStyling","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","oldKeyValueArray","newKeyValueArray","oldIndex","oldKey","setKey","styleKeyValueArray","unwrappedValue","isHostBindings","stylingKey","hostDirectiveDef","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","bindings","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","staticKeyValueArray","previousNode","currentDirective","desiredMarker","currentMarker","tRange","isStylingValuePresent","findStylingValue","isProcedural","classList","removeClass","removeProperty","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵtext","textNative","createText","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","ɵɵtextInterpolate2","i0","v1","ɵɵclassMapInterpolate1","ɵɵhostProperty","ɵɵupdateSyntheticHostBinding","LifecycleHooksFeature","rootTView","ɵɵInheritDefinitionFeature","definition","superType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","animation","defData","ngInherit","prevViewQuery","prevContentQueries","prevHostBindings","SimpleChange","previousValue","firstChange","ɵɵNgOnChangesFeature","ngOnChanges","ngOnChangesSetInput","simpleChangesStore","getSimpleChangesStore","previousChange","resolveProvider$1","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesProvidersFactoryExist","doesViewProvidersFactoryExist","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","existingCallbacksIndex","multiFactory","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","ComponentFactory","_NullComponentFactoryResolver","ComponentFactoryResolver","ElementRef","nativeElement","SWITCH_ELEMENT_REF_FACTORY","RendererFactory2","RendererStyleFlags2","Important","DashCase","Renderer2","SWITCH_RENDERER2_FACTORY","nodeAtIndex","Sanitizer","Version","major","minor","patch","DefaultIterableDifferFactory","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","_trackByFn","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","currentIndex","_nextRemoved","previousIndex","localMovePreviousIndex","localCurrentIndex","_nextPrevious","_nextAdded","_nextMoved","_nextIdentityChange","collection","check","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","_truncate","isDirty","nextRecord","previousRecord","_prev","_remove","_moveAfter","_reinsertAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","put","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","IterableDiffers","copied","KeyValueDiffers","kv","keyValDiff","defaultIterableDiffers","defaultKeyValueDiffers","TemplateRef","SWITCH_TEMPLATE_REF_FACTORY","ViewContainerRef","SWITCH_VIEW_CONTAINER_REF_FACTORY","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ComponentFactoryResolver$1","componentDef","ComponentFactory$1","toRefArray","nonMinified","templateName","SCHEDULER","componentType","isBoundToModule","rootSelectorOrNode","tElementNode","rootViewInjector","hostRenderer","elementName","hostRNode","elementOrSelector","selectRootElement","rElement","rootFlags","isIsolated","clean","playerHandler","rootLView","viewRenderer","nodesforSlot","hostFeatures","rootTNode","ComponentRef$1","_rootLView","destroyCbs","changeDetectorRef","localeEn","LOCALE_DATA","getLocaleData","normalizedLocale","ng","common","LocaleDataIndex","LocaleId","DayPeriodsFormat","DayPeriodsStandalone","DaysFormat","DaysStandalone","MonthsFormat","MonthsStandalone","Eras","FirstDayOfWeek","WeekendRange","DateFormat","TimeFormat","DateTimeFormat","NumberSymbols","NumberFormats","CurrencyCode","CurrencySymbol","CurrencyName","Currencies","Directionality","PluralCase","ExtraData","setLocaleId","localeId","actual","expected","comparison","modules","NgModuleRef$1","_bootstrapComponents","componentFactoryResolver","ngLocaleIdDef","_r3Injector","injectFlags","NgModuleFactory$1","moduleType","registerNgModuleType","incoming","ɵɵpureFunction0","slotOffset","pureFn","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","ɵɵpipe","pipeName","pipeFactory","pipeInstance","ɵɵpipeBind1","unwrap","bindingRoot","exp","isAsync","__isAsync","generatorOrNext","schedulerFn","errorFn","completeFn","symbolIterator","QueryList","_results","changes","resultsTree","flatten","LQuery_","queryList","setDirty","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","predicate","isStatic","read","TQueries_","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","matchIdx","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","typePredicate","nodeMatchIdx","directiveOrProviderIdx","createResultForNode","matchingIdx","materializeViewResults","queryIndex","lQuery","tViewData","tQueryMatches","matchedNodeIdx","ɵɵqueryRefresh","collectQueryResults","lViewResults","embeddedLViews","notifyOnChanges","ɵɵstaticViewQuery","descend","viewQueryInternal","ɵɵviewQuery","createTQuery","createLQuery","ɵɵcontentQuery","contentQueryInternal","ɵɵstaticContentQuery","tViewContentQueries","ɵɵloadQuery","ɵɵtemplateRefExtractor","APP_INITIALIZER","ApplicationInitStatus","appInits","initialized","donePromise","rej","asyncInitPromises","initResult","APP_ID","APP_ID_RANDOM_PROVIDER","_randomChar","PLATFORM_INITIALIZER","PLATFORM_ID","APP_BOOTSTRAP_LISTENER","Console","LOCALE_ID$1","DEFAULT_CURRENCY_CODE","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler_compileModuleSync__POST_R3__","Compiler_compileModuleSync","Compiler_compileModuleAsync","Compiler_compileModuleAndAllComponentsSync__POST_R3__","declaration","Compiler_compileModuleAndAllComponentsSync","Compiler_compileModuleAndAllComponentsAsync","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","compileModuleAndAllComponentsAsync","COMPILER_OPTIONS","scheduleMicroTask","Zone","NgZone","zone","maybeDelayChangeDetection","enableLongStackTrace","shouldCoalesceEventChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","assertZonePatched","_nesting","_outer","_inner","fork","lastRequestAnimationFrameId","nativeRequestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","updateMicroTaskStatus","checkStable","onInvokeTask","delegate","task","applyThis","applyArgs","onEnter","invokeTask","onLeave","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","runOutsideAngular","run","scheduleEventTask","EMPTY_PAYLOAD","noop$1","runTask","cancelTask","runGuarded","isInAngularZone","NoopNgZone","Testability","_ngZone","_pendingCount","_isZoneStable","_didWork","_callbacks","taskTrackingZone","_watchAngularEvents","assertNotInAngularZone","_runCallbacksIfReady","timeoutId","doneCb","pending","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","using","exactMatch","TestabilityRegistry","_applications","_testabilityGetter","addToWindow","findInAncestors","testability","findTestabilityInTree","_NoopGetTestability","compileNgModuleFactory","compilerOptions","moduleFactory","compilerProviders","compiler","globalNg","ɵcompilerFacade","resourceLoader","ResourceLoader","resourceResolver","componentResolved","urlMap","cachedResourceResolve","resp","promises","templateUrl","styleUrls","styleOffset","styleUrl","fullyResolved","ALLOW_MULTIPLE_PLATFORMS","createPlatformFactory","parentPlatformFactory","desc","extraProviders","getPlatform","injectedProviders","PlatformRef","inits","requiredToken","_injector","_modules","_destroyListeners","ngZoneOption","ngZoneEventCoalescing","ngZone","ngZoneInjector","moduleRef","exceptionHandler","initStatus","runInitializers","_moduleDoBootstrap","optionsReducer","bootstrapModuleFactory","ngDoBootstrap","ApplicationRef","_zone","_exceptionHandler","_componentFactoryResolver","_initStatus","_bootstrapListeners","_views","_runningTick","_enforceNoNewChanges","_stable","componentTypes","isCurrentlyStable","stableSub","unstableSub","assertInAngularZone","componentOrFactory","resolveComponentFactory","compRef","_unloadComponent","registerApplication","_loadComponent","detectChanges","checkNoChanges","attachToAppRef","detachFromAppRef","attachView","platformCore","APPLICATION_MODULE_PROVIDERS","queue","$localize","ApplicationModule","BrushSizes","EditorMode","EditorTheme","NavPosition","DrawerName","defaultObjectProps","MERGED_CONFIG","ui","INLINE","defaultTheme","LIGHT","ignoreMobileKeyboard","allowEditorClose","toolbar","leftItems","icon","showInCompactMode","dropdownItems","label","centerItems","compactModeOnly","rightItems","marginLeft","nav","TOP","replaceDefault","items","FILTER","RESIZE","CROP","TRANSFORM","DRAW","TEXT","SHAPES","STICKERS","FRAME","CORNERS","BACKGROUND","MERGE","openImageDialog","show","sampleImages","thumbnail","colorPresets","languages","googleFontsApiKey","objectDefaults","tools","allowUserZoom","fitImageToScreen","crop","replaceDefaultPresets","hideCustomControls","defaultRatio","presets","ratio","defaultCategory","defaultText","brushSizes","brushTypes","shapes","stickers","thumbnailUrl","darkBg","import","validExtensions","fitOverlayToScreen","openDroppedImageAsBackground","export","defaultFormat","defaultQuality","defaultName","default","display_name","OpenEditor","CloseEditor","executeCallback","OpenPanel","panel","CloseForePanel","ResetToolState","ApplyChanges","closePanel","CancelChanges","ObjectSelected","objectType","fromUserAction","ObjectDeselected","ObjectsSynced","SetZoom","work","recycleAsyncId","requestAsyncId","setInterval","flush","clearInterval","_execute","errored","errorValue","Scheduler","SchedulerAction","scheduled","execute","of","dispatch","Notification","kind","hasValue","undefinedValueNotification","completeNotification","delayFor","DelayOperator","notification","DelayMessage","_schedule","scheduleNotification","createNext","createComplete","__decorate","getOwnPropertyDescriptor","Reflect","decorate","__metadata","metadataKey","metadataValue","__awaiter","_arguments","generator","fulfilled","step","rejected","ObserveOnMessage","scheduleMessage","createError","bufferSize","windowTime","_events","_infiniteTimeWindow","_bufferSize","_windowTime","nextInfiniteTimeWindow","nextTimeWindow","ReplayEvent","_getNow","_trimBufferThenGetEvents","eventsCount","spliceCount","defaultEqualityCheck","areArgumentsShallowlyEqual","equalityCheck","memoize","lastResult","memoized","NgxsBootstrapper","isAngularInTestMode","platformRef","bootstrap$","asObservable","INITIAL_STATE_TOKEN","InitialState","NGXS_STATE_CONTEXT_FACTORY","NGXS_STATE_FACTORY","_DOM","getDOM","PlatformLocation","useBrowserPlatformLocation","BrowserPlatformLocation","_doc","_init","getLocation","_history","getHistory","getBaseHref","getGlobalEventTarget","supportsState","forward","back","pathname","newPath","search","createBrowserPlatformLocation","joinWithSlash","slashes","endsWith","startsWith","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","provideLocationStrategy","platformLocation","Location","PathLocationStrategy","APP_BASE_HREF","_platformLocation","getBaseHrefFromDOM","_baseHref","onPopState","onHashChange","internal","includeHash","queryParams","externalUrl","prepareExternalUrl","platformStrategy","_urlChangeListeners","_platformStrategy","browserBaseHref","_stripIndexHtml","onReturn","getState","query","baseHref","_notifyUrlChangeListeners","onNext","onThrow","createLocation","NgLocaleLocalization","Plural","Zero","One","Two","Few","Many","Other","NgLocalization","parentLocale","parseCookieValue","cookieStr","cookie","eqIndex","cookieName","cookieValue","NgClass","NgForOf","NgIf","_iterableDiffers","_keyValueDiffers","_ngEl","_renderer","_iterableDiffer","_keyValueDiffer","_initialClasses","_rawClass","iterableChanges","_applyIterableChanges","keyValueChanges","_applyKeyValueChanges","forEachAddedItem","_toggleClass","forEachChangedItem","forEachRemovedItem","rawClassVal","enabled","_removeClasses","_applyClasses","ngClass","NgForOfContext","$implicit","ngForOf","even","_viewContainer","_template","_differs","_ngForOf","_ngForOfDirty","_differ","ngForTrackBy","_applyChanges","insertTuples","forEachOperation","adjustedPreviousIndex","tuple","RecordViewTuple","_perViewChange","forEachIdentityChange","dir","ngForTemplate","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","_updateView","assertTemplate","ngIfThen","ngIfElse","NgStyle","NgSwitchDefault","NgSwitchCase","NgSwitch","KeyValuePipe","AsyncPipe","SwitchView","_templateRef","_created","created","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","_defaultViews","matched","_ngSwitch","_updateDefaultCases","useDefault","enforceState","ngSwitch","viewContainer","_addCase","ngSwitchCase","_matchCase","_addDefault","_ngStyle","nameAndUnit","_setStyle","ngStyle","ObservableStrategy","updateLatestValue","_promiseStrategy","PromiseStrategy","_observableStrategy","_ref","_latestValue","_latestReturnedValue","_subscription","_strategy","markForCheck","_dispose","_selectStrategy","createSubscription","_updateLatestValue","differs","keyValues","defaultComparator","compareFn","differ","differChanges","forEachItem","keyValueA","keyValueB","aString","bString","CommonModule","_value","getValue","forkJoin","forkJoinInternal","completed","emitted","FilterOperator","shareReplay","configOrBufferSize","useRefCount","isComplete","ArgumentOutOfRangeError","ArgumentOutOfRangeErrorImpl","take","total","ExhaustMapOperator","hasSubscription","tryNext","DefaultIfEmptyOperator","defaultValue","catchError","CatchOperator","caught","err2","takeUntil","notifier","takeUntilSubscriber","notifierSubscription","seenValue","tap","DoOperator","_tapNext","_tapError","_tapComplete","distinctUntilChanged","compare","keySelector","DistinctUntilChangedOperator","DispatchOutsideZoneNgxsExecutionStrategy","NgxsConfig","_platformId","verifyZoneIsNotNooped","CONFIG_MESSAGES","runInsideAngular","ROOT_STATE_TOKEN","FEATURE_STATE_TOKEN","NGXS_PLUGINS","NG_TEST_MODE","META_KEY","defaultsState","selectorOptions","injectContainerState","suppressErrors","compatibility","strictContentSecurityPolicy","executionStrategy","NgxsSimpleChange","NGXS_EXECUTION_STRATEGY","getActionTypeFromInstance","ensureStoreMetadata","defaultMetadata","makeRootSelector","getStateGetter","getStoreMetadata","getSelectorMetadata","propGetter","paths","copyOfPaths","seg","expr","getStateDiffChanges","mappedStore","currentAppState","newAppState","isInitialised","ofActionDispatched","allowedTypes","ofActionOperator","ofActionSuccessful","statuses","mapAction","mapOperator","allowedMap","filterMap","allowedStatusMap","allowedStatuses","actionType","leaveNgxs","ngxsExecutionStrategy","leave","InternalNgxsExecutionStrategy","InternalActions","Actions","InternalDispatchedActionResults","PluginManager","StateStream","InternalDispatcher","LifecycleStateManager","StateFactory","StateContextFactory","InternalStateOperations","ConfigValidator","HostEnvironment","_executionStrategy","enter","_itemQueue","_busyPushingNext","nextValue","ɵInternalActions_BaseFactory","internalActions$","internalExecutionStrategy","childSubscription","_parentManager","_pluginHandlers","plugins","registerHandlers","pluginHandlers","getPluginHandlers","rootPlugins","handle","ɵInternalDispatchedActionResults_BaseFactory","_errorHandler","_actions","_actionResults","_pluginManager","_stateStream","_ngxsExecutionStrategy","actionOrActions","dispatchByEvents","dispatchSingle","prevState","compose","nextState","nextAction","actionResult$","getActionResultStream","createDispatchObservable","exhaustMap","isTestMode","_host","_config","isIncorrectProduction","isIncorrectDevelopment","developmentMode","_dispatcher","configValidator","verifyDevMode","rootStateOperations","setState","newState","ensureStateAndActionsAreImmutable","frozenValue","deepFreeze","freeze","oIsFunction","hasOwnProp","stateOperations","getRootStateOperations","currentState","_internalStateOperations","setStateValue","ngxsOnChanges","setStateFromOperator","stateOperator","patchState","existingState","StoreValidators","stateNameRegex","stateNameErrorMessage","statesByName","newName","oldName","stateName","getValidStateMeta","_parentFactory","_stateContextFactory","_initialState","_connected","_states","_statesByName","_statePaths","getRuntimeSelectorContext","stateFactory","statePaths","getSelectorOptions","localOptions","stateClasses","checkStatesAreValid","newStates","addToStatesMap","graph","sorted","visited","stateGraph","findName","stateClass","sortedStates","visit","ancestors","newObj","keyToFind","nameGraph","bootstrappedStores","addRuntimeInfoToMeta","stateMap","cloneDefaults","hasBeenMountedAndBootstrapped","states","mappedStores","invokeActions","actions$","actionMetas","actionMeta","stateContext","createStateContext","cancelUncompleted","statesMap","checkStateNameIsUnique","valueIsBootstrappedInInitialState","internalStateOperations","stateContextFactory","bootstrapper","invokeInit","appBootstrapped$","appBootstrapped","invokeBootstrap","firstDiffChange","ngxsOnInit","getStateContext","ngxsAfterBootstrap","selectorOptionsMetaAccessor","createSelector","originalFn","creationMetadata","memoizedFn","selectorMetaData","selectorName","getExplicitSelectorOptions","selectorMetaDataClone","explicitOptions","localSelectorOptions","argumentSelectorFunctions","selectorsToApply","getRootSelectorFactory","rootState","argFn","SelectFactory","Store","NgxsModule","NgxsFeatureModule","NgxsRootModule","_internalExecutionStrategy","_stateFactory","initialStateValue","initStateStream","storeValues","selectorFn","getStoreBoundSelectorFn","select","InitState","UpdateState","addedStates","_ivyEnabledInDevMode$","_store","_select","lifecycleStateManager","_ivyEnabledInDevMode","probe","coreTokens","addAndReturnDefaults","setStateToTheCurrentWithNew","connectActionHandlers","ngxsBootstrap","flattenedStates","flattenStates","ngxsTokenProviders","ROOT_OPTIONS","ngxsConfigFactory","appBootstrapListenerFactory","getInitialState","State","inheritedStateClass","optionsWithInheritance","getName","checkCorrectStateName","Select","rawSelector","selectorId","lastCharIndex","defineProperties","enumerable","configurable","Selector","descriptor","newDescriptor","OpenObjectSettingsPanel","MarkAsDirty","normalizeObjectProps","activeFont","ObjectNames","shape","sticker","drawing","mainImage","randomString","possible","CheckboxControlValueAccessor","ControlContainer","AbstractControlDirective","DefaultValueAccessor","NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","_elementRef","onTouched","isDisabled","$event","checked","DEFAULT_VALUE_ACCESSOR","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","getUserAgent","_handleInput","_compositionStart","_compositionEnd","errorCode","getError","valid","invalid","disabled","pristine","touched","untouched","statusChanges","valueChanges","ɵControlContainer_BaseFactory","unimplemented","NgControlStatusGroup","NgControlStatus","NgControl","valueAccessor","_rawValidators","_rawAsyncValidators","AbstractControlStatus","cd","_cd","ngClassUntouched","ngClassTouched","ngClassPristine","ngClassDirty","ngClassValid","ngClassInvalid","ngClassPending","isEmptyInputValue","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","_mergeErrors","minLength","regexStr","nullValidator","validators","presentValidators","isPresent","toObservable","arrayOfErrors","normalizeValidator","validator","validate","normalizeAsyncValidator","NumberValueAccessor","RadioControlValueAccessor","RadioControlRegistry","RangeValueAccessor","NUMBER_VALUE_ACCESSOR","RADIO_VALUE_ACCESSOR","_accessors","accessor","_isSameGroup","fireUncheck","controlPair","_control","_registry","_checkName","_state","_fn","writeValue","formControlName","_throwNameError","RANGE_VALUE_ACCESSOR","FormErrorExamples","ReactiveErrors","directiveName","SELECT_VALUE_ACCESSOR","_buildValueString","NgSelectOption","SelectControlValueAccessor","_optionMap","_idCounter","_compareWith","_getOptionId","valueString","_getOptionValue","compareWith","_registerOption","_setElementValue","ngValue","SELECT_MULTIPLE_VALUE_ACCESSOR","_buildValueString$1","ɵNgSelectMultipleOption","SelectMultipleControlValueAccessor","optionSelectedStateSetter","ids","_setSelected","selectedOptions","controlPath","setUpControl","asyncValidator","composeAsync","registerOnChange","_pendingValue","_pendingChange","_pendingDirty","updateOn","updateControl","emitModelEvent","viewToModelUpdate","registerOnTouched","_pendingTouched","markAsTouched","setDisabledState","registerOnDisabledChange","registerOnValidatorChange","updateValueAndValidity","markAsDirty","emitModelToViewChange","setUpFormContainer","_noControlError","messageEnd","composeValidators","composeAsyncValidators","isPropertyUpdated","viewModel","isFirstChange","BUILTIN_ACCESSORS","syncPendingControls","form","_syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","removeDir","_ngModelWarning","warningConfig","_ngModelWarningSentOnce","_ngModelWarningSent","ngModelWarning","coerceToValidator","validatorOrOpts","isOptionsObj","coerceToAsyncValidator","origAsyncValidator","asyncValidators","AbstractFormGroupDirective","NgForm","NgModelGroup","ɵNgNoValidate","NgModel","FormControlDirective","FormGroupDirective","FormGroupName","FormArrayName","_onCollectionChange","_onDisabledChange","newValidator","onlySelf","_forEachChild","markAllAsTouched","markAsUntouched","_updateTouched","markAsPristine","_updatePristine","emitEvent","markAsPending","skipPristineCheck","_parentMarkedDirty","disable","_updateValue","_updateAncestors","changeFn","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","ctrl","_updateTreeValidity","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","controlToFind","FormGroup","controls","FormArray","at","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","formState","_updateOn","FormControl","_onChange","_applyFormState","_setUpdateStrategy","_initObservables","emitViewToModelChange","_isBoxedValue","_setUpControls","setParent","_registerOnCollectionChange","registerControl","_checkAllValuesPresent","_throwIfControlMissing","patchValue","_reduceChildren","getRawValue","subtreeUpdated","_reduceValue","initValue","_registerControl","formDirectiveProvider","resolvedPromise","submitted","_directives","ngSubmit","_findContainer","removeControl","resetForm","onSubmit","onReset","_checkParentType","addFormGroup","formDirective","removeFormGroup","getFormGroup","_validators","_asyncValidators","ɵAbstractFormGroupDirective_BaseFactory","TemplateDrivenErrors","modelGroupProvider","modelGroupParentException","formControlBinding","resolvedPromise$1","_registered","_checkForErrors","_setUpControl","_updateDisabled","model","_isStandalone","_setUpStandalone","addControl","standalone","formGroupNameException","modelParentException","missingNameException","disabledValue","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding$1","_ngModelWarningConfig","_isControlChanged","disabledAttrWarning","formDirectiveProvider$1","_checkFormPresent","_updateValidators","_updateDomValue","_updateRegistrations","newCtrl","_clearChangeFns","_oldForm","sync","missingFormException","formGroupNameProvider","groupParentException","_hasInvalidParent","formArrayNameProvider","addFormArray","removeFormArray","arrayParentException","getFormArray","FormControlName","ReactiveFormsModule","FormsModule","FormBuilder","ɵInternalFormsSharedModule","RequiredValidator","controlNameBinding","_added","updateModel","ngModelGroupException","controlParentException","REQUIRED_VALIDATOR","required","_required","controlConfig","controlsConfig","_reduceControls","_createControl","warnOnNgModelWithFormControl","showLeafArrayIndexes","includeNullValues","mapping","isJsonObject","Settings","ActiveObjectService","CanvasStateService","HistoryState","FrameToolService","FrameBuilderService","FramePatternsService","ActiveFrameService","ObjectListService","CanvasService","CanvasZoomService","CanvasPanService","config$","settings","newConfig","entries","forceServerUrl","getBaseUrl","setMultiple","client","jsonSettings","files","server","jsonObject","convertRecursively","parentKey","carryFormData","formData","FormData","FileList","append","http","post","ContentLoadingStateDisplayName","contentLoadingState$","fb","canvasState","propsChanged$","build","syncForm","setValues","deselect","clonedObj","DEFAULT_SERIALIZED_EDITOR_STATE","HistoryChanged","UpdatePointerById","AddHistoryItem","ReplaceCurrentItem","ResetHistory","newItems","findIndex","HistoryNames","BG_IMAGE","OVERLAY_IMAGE","INITIAL","LOADED_STATE","OBJECT_STYLE","staticObjectConfig","lastPosX","lastPosY","isDragging","lastE","calcWrapperSize","fabricWidth","fabricHeight","getClientCoords","pan","maxZoom","minZoom","zoomStep","currentZoom","zoomPercentage","resize","trunc","fabricZoomFactor","fittedZoom","bindMouseWheel","bindToPinchZoom","zoomIn","zoomOut","mc","maskWrapperEl","pinch","minHeight","getScaleFactor","clearCanvas","loadStateName","getMainImage","fitToScreen","newWidth","objectOrId","objId","getId","includes","syncObjects","corners","sides","exists","getPartNames","activeFrame","patternCache","fillPartWithPattern","patternSourceCanvas","scalePatternToWidth","scalePatternToHeight","getPartUrl","images","fillParts","getAssetUrl","createGroup","createParts","frameName","fullWidth","fullHeight","positionPart","bottomRight","frameBuilder","all$","getByName","calcFrameSize","changeColor","getAll","percentage","HttpHandler","HttpBackend","HttpHeaders","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","op","lcName","copyFrom","applyUpdate","toDelete","HttpUrlEncodingCodec","standardEncoding","HttpParams","updates","cloneFrom","encoder","fromString","rawParams","codec","eqIdx","decodeKey","decodeValue","eKey","encodeKey","encodeValue","isArrayBuffer","isBlob","isFormData","HttpRequest","third","fourth","reportProgress","withCredentials","urlWithParams","qIdx","setHeaders","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","User","HttpResponseBase","defaultStatus","defaultStatusText","statusText","HttpHeaderResponse","HttpResponse","HttpErrorResponse","addBody","HttpClient","NoopInterceptor","HttpXhrBackend","BrowserXhr","HttpClientModule","HttpClientXsrfModule","HttpInterceptingHandler","HttpXsrfInterceptor","HttpXsrfCookieExtractor","Translations","events$","res$","callbackParam","HttpInterceptorHandler","interceptor","intercept","HTTP_INTERCEPTORS","XSSI_PREFIX","XhrFactory","xhrFactory","detectedType","detectContentTypeHeader","reqBody","serializeBody","headerResponse","partialFromXhr","getAllResponseHeaders","responseURL","onLoad","originalBody","sentHeaders","onDownProgress","progressEvent","lengthComputable","partialText","onUpProgress","progress","upload","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","lastCookieString","lastToken","parseCount","cookieString","tokenService","headerName","lcUrl","getToken","chain","interceptors","reduceRight","withOptions","HttpErrors","Localization","localizationChange","localization","transKey","translationsEnabled","replacePlaceholders","translation","objectKeysToLowerCase","newObject","coerceBooleanProperty","coerceNumberProperty","fallbackValue","coerceArray","coerceCssPixelValue","coerceElement","elementOrRef","fromEvent","setupSubscription","sourceObj","animationFrame","nextHandle","RESOLVED","activeHandles","findAndClearHandle","Immediate","asap","AuditOperator","durationSelector","clearThrottle","throttled","isNumeric","period","auditTime","dueTime","periodOrScheduler","due","startWith","PairwiseOperator","hasPrev","switchMap","SwitchMapOperator","hasV8BreakIterator","Intl","v8BreakIterator","supportsPassiveEvents","shadowDomIsSupported","PlatformModule","Platform","isBrowser","EDGE","TRIDENT","BLINK","WEBKIT","IOS","FIREFOX","ANDROID","SAFARI","normalizePassiveListenerOptions","_getShadowRoot","createShadowRoot","attachShadow","rootNode","getRootNode","ShadowRoot","BidiModule","ScrollingModule","CdkScrollableModule","ViewportRuler","ScrollDispatcher","UniqueSelectionDispatcher","DIR_DOCUMENT","htmlDir","_multiple","initiallySelectedValues","_emitChanges","_selection","_deselectedToEmit","_selectedToEmit","_markSelected","_verifyValueAssignment","_emitChangeEvent","_unmarkSelected","isSelected","_unmarkAll","_selected","_listeners","registered","_platform","_scrolled","_globalSubscription","_scrolledCount","scrollContainers","scrollable","elementScrolled","scrollableReference","auditTimeInMs","_addGlobalListener","_removeGlobalListener","deregister","getAncestorScrollContainers","scrolled","scrollingContainers","_scrollableContainsElement","_getDocument","scrollableElement","getElementRef","parentElement","_getWindow","_change","_invalidateCache","_updateViewportSize","_viewportSize","scrollPosition","getViewportScrollPosition","getViewportSize","documentRect","scrollY","scrollX","throttleTime","innerWidth","innerHeight","throwPortalAlreadyAttachedError","PortalModule","CdkPortalOutlet","Portal","hasAttached","_attachedHost","attach","ComponentPortal","viewContainerRef","TemplatePortal","BasePortalOutlet","_isDisposed","attachDomPortal","_attachedPortal","portal","attachComponentPortal","attachTemplatePortal","setAttachedHost","_invokeDisposeFn","_disposeFn","DomPortalOutlet","outletElement","_defaultInjector","createComponent","setDisposeFn","_getComponentRootNode","rootNodes","_isInitialized","attached","_getRootNode","_attachedRef","ref","PortalInjector","_parentInjector","_customTokens","hasModifierKey","modifiers","modifier","_viewportRuler","_previousHTMLStyles","_isEnabled","_canBeEnabled","_previousScrollPosition","htmlStyle","bodyStyle","previousHtmlScrollBehavior","scrollBehavior","previousBodyScrollBehavior","scrollHeight","scrollWidth","getMatScrollStrategyAlreadyAttachedError","CloseScrollStrategy","_scrollDispatcher","_scrollSubscription","_detach","_overlayRef","overlayRef","stream","_initialScrollPosition","updatePosition","NoopScrollStrategy","isElementScrolledOutsideView","containerBounds","isElementClippedByScrolling","scrollContainerRect","ScrollStrategyOptions","RepositionScrollStrategy","scrollThrottle","autoClose","overlayRect","overlayElement","close","block","reposition","OverlayConfig","scrollStrategy","panelClass","hasBackdrop","backdropClass","disposeOnNavigation","configKeys","ConnectionPositionPair","overlayX","overlayY","ConnectedOverlayPositionChange","connectionPair","scrollableViewProperties","validateVerticalPosition","validateHorizontalPosition","OverlayKeyboardDispatcher","OverlayContainer","_attachedOverlays","_keydownListener","overlays","_keydownEvents","_isAttached","isTestEnvironment","__karma__","jasmine","_containerElement","_createContainer","oppositePlatformContainers","querySelectorAll","_portalOutlet","_pane","_keyboardDispatcher","_backdropElement","_backdropClick","_attachments","_detachments","_locationChanges","_backdropClickHandler","_scrollStrategy","_positionStrategy","positionStrategy","attachResult","_previousHostParent","_updateStackingOrder","_updateElementSize","_updateElementDirection","_togglePointerEvents","_attachBackdrop","_toggleClasses","detachBackdrop","detachmentResult","_detachContentWhenStable","isAttached","_disposeScrollStrategy","strategy","sizeConfig","enablePointer","backdropToDetach","finishDetach","cssClasses","isAdd","cssClass","cssUnitPattern","connectedTo","_overlayContainer","_lastBoundingBoxSize","_isPushed","_canPush","_growAfterOpen","_hasFlexibleDimensions","_positionLocked","_viewportMargin","_scrollables","_preferredPositions","_positionChanges","_resizeSubscription","_offsetX","_offsetY","_appliedPanelClasses","positionChanges","setOrigin","_validatePositions","_boundingBox","_isInitialRender","_lastPosition","reapplyLastPosition","_clearPanelClasses","_resetOverlayElementStyles","_resetBoundingBoxStyles","_viewportRect","_getNarrowedViewportRect","_originRect","_getOriginRect","_overlayRect","fallback","originRect","viewportRect","flexibleFits","_getOriginPoint","overlayPoint","_getOverlayPoint","overlayFit","_getOverlayFit","isCompletelyWithinViewport","_applyPosition","_canFitWithFlexibleDimensions","boundingBoxRect","_calculateBoundingBoxRect","visibleArea","bestFit","bestScore","fit","score","_previousPushAmount","extendStyles","alignItems","justifyContent","lastPosition","scrollables","positions","margin","flexibleDimensions","growAfterOpen","canPush","isLocked","_origin","_transformOriginSelector","_isRtl","overlayStartX","overlayStartY","_getOffset","topOverflow","bottomOverflow","visibleWidth","_subtractOverflows","visibleHeight","fitsInViewportVertically","fitsInViewportHorizontally","availableHeight","availableWidth","getPixelValue","getConfig","horizontalFit","pushX","pushY","overflowRight","overflowBottom","overflowTop","overflowLeft","_setTransformOrigin","_setOverlayElementStyles","_setBoundingBoxStyles","_addPanelClasses","_getScrollVisibility","changeEvent","xOrigin","yOrigin","transformOrigin","isRtl","smallestDistanceToViewportEdge","previousHeight","_hasExactPosition","hasExactPosition","hasFlexibleDimensions","_getExactOverlayY","_getExactOverlayX","transformString","_pushOverlayOnScreen","virtualKeyboardOffset","getContainerElement","originBounds","overlayBounds","scrollContainerBounds","isOriginClipped","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","overflows","currentOverflow","axis","units","Overlay","OverlayPositionBuilder","CdkConnectedOverlay","CdkOverlayOrigin","OverlayModule","ConnectedPositionStrategy","originPos","overlayPos","viewportRuler","overlayContainer","withFlexibleDimensions","withPush","withViewportMargin","withFallbackPosition","_direction","setDirection","withScrollableContainers","withPositions","withDefaultOffsetX","withDefaultOffsetY","withLockedPosition","GlobalPositionStrategy","_cssPosition","_topOffset","_bottomOffset","_leftOffset","_rightOffset","_alignItems","_justifyContent","_width","_height","updateSize","parentStyles","shouldBeFlushHorizontally","shouldBeFlushVertically","marginTop","marginBottom","marginRight","nextUniqueId","scrollStrategies","_positionBuilder","_directionality","_createHostElement","pane","_createPaneElement","portalOutlet","_createPortalOutlet","overlayConfig","defaultPositionList","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY","_overlay","scrollStrategyFactory","_dir","_hasBackdrop","_lockPosition","_flexibleDimensions","_push","_backdropSubscription","viewportMargin","backdropClick","positionChange","overlayKeydown","_templatePortal","_scrollStrategyFactory","_position","_updatePositionStrategy","_attachOverlay","_detachOverlay","_buildConfig","keydownEvents","_createPositionStrategy","currentPosition","withGrowAfterOpen","lockPosition","withTransformOriginOn","transformOriginSelector","flexibleConnectedTo","_createOverlay","CDK_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER","debounceTime","DebounceTimeOperator","debouncedSubscription","lastValue","clearDebounce","dispatchNext","debouncedNext","ObserversModule","CdkObserveContent","ContentObserver","MutationObserverFactory","MutationObserver","_mutationObserverFactory","_observedElements","_cleanupObserver","_observeElement","_unobserveElement","mutations","characterData","childList","subtree","disconnect","_contentObserver","_disabled","_currentSubscription","debounce","_debounce","getAriaReferenceIds","AriaDescriber","InteractivityChecker","nextId","messageRegistry","messagesContainer","_canBeDescribed","_setMessageId","messageElement","referenceCount","_createMessageElement","_isElementDescribedByMessage","_addMessageReference","_isElementNode","_removeMessageReference","registeredMessage","_deleteMessageElement","_deleteMessagesContainer","describedElements","_removeCdkDescribedByReferenceIds","_createMessagesContainer","preExistingContainer","originalReferenceIds","existingId","filteredIds","referenceIds","messageId","trimmedMessage","ariaLabel","_items","_activeItemIndex","_activeItem","_wrap","_letterKeyStream","_typeaheadSubscription","_vertical","_allowedModifierKeys","_skipPredicateFn","_pressedLetters","tabOut","shouldWrap","_horizontal","debounceInterval","getLabel","letter","inputString","_getItemsArray","setActiveItem","updateActiveItem","isModifierAllowed","every","setNextItemActive","setPreviousItemActive","toLocaleUpperCase","_setActiveItemByIndex","setFirstItemActive","_setActiveItemByDelta","setLastItemActive","itemArray","activeItem","_setActiveInWrapMode","_setActiveInDefaultMode","fallbackDelta","ActiveDescendantKeyManager","setActiveStyles","setInactiveStyles","FocusKeyManager","offsetHeight","getClientRects","frameElement","frameType","getTabIndexValue","isVisible","tabIndexValue","inputType","tabIndex","hasValidTabIndex","FocusTrapFactory","_checker","deferAnchors","_hasAttached","startAnchorListener","focusLastTabbableElement","endAnchorListener","focusFirstTabbableElement","_enabled","attachAnchors","startAnchor","_startAnchor","endAnchor","_endAnchor","_createAnchor","_executeOnStable","focusInitialElement","markers","_getFirstTabbableElement","_getLastTabbableElement","redirectToElement","isFocusable","_getRegionBoundary","isTabbable","tabbableChild","_toggleAnchorTabIndex","isEnabled","deferCaptureElements","LiveAnnouncer","LIVE_ANNOUNCER_ELEMENT_TOKEN","LIVE_ANNOUNCER_DEFAULT_OPTIONS","elementToken","_defaultOptions","_liveElement","_createLiveElement","liveEl","politeness","defaultOptions","_previousTimeout","previousElements","getElementsByClassName","isFakeMousedownFromScreenReader","buttons","FocusMonitor","FOCUS_MONITOR_DEFAULT_OPTIONS","captureEventListenerOptions","_windowFocused","_elementInfo","_monitoredElementCount","_rootNodeFocusListenerCount","_documentKeydownListener","_lastTouchTarget","_setOriginForCurrentEventQueue","_documentMousedownListener","_documentTouchstartListener","_touchTimeoutId","getTarget","_windowFocusListener","_windowFocusTimeoutId","_rootNodeFocusAndBlurListener","_onFocus","_onBlur","_detectionMode","detectionMode","_originTimeoutId","checkChildren","cachedInfo","_registerGlobalListeners","elementInfo","_setClasses","_removeGlobalListeners","_info","stopMonitoring","shouldSet","_lastFocusOrigin","_wasCausedByTouch","focusTarget","_getFocusOrigin","_emitOrigin","relatedTarget","rootNodeFocusListeners","composedPath","A11yModule","HighContrastModeDetector","urlParsingNode","EventManager","DomSharedStylesHost","SharedStylesHost","testElement","documentWindow","computedStyle","computedColor","bodyClasses","getHighContrastMode","highContrastModeDetector","_applyBodyHighContrastModeCssClasses","groupEnd","getDefaultDocument","DocumentFragment","baseElement","getTime","adapter","TRANSITION_ID","SERVER_TRANSITION_PROVIDERS","transitionId","getAllTestabilities","getAllRootElements","testabilities","didWork","decrement","didWork_","whenStable","getTestability","isShadowRoot","EVENT_MANAGER_PLUGINS","_eventNameToPlugin","_findPluginFor","addGlobalEventListener","_stylesSet","additions","onStylesAdded","_hostNodes","_styleNodes","styleNode","styleEl","hostNode","_addStylesToHost","NAMESPACE_URIS","COMPONENT_REGEX","flattenStyles","compId","decoratePreventDefault","eventHandler","DomRendererFactory2","DomEventsPlugin","DomSanitizerImpl","DomSanitizer","KeyEventsPlugin","BrowserModule","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","addStyles","newChild","refChild","oldChild","selectorOrNode","preserveContent","namespaceUri","removeAttributeNS","componentShortId","contentAttr","hostAttr","hostEl","shadowRoot","addHost","removeHost","nodeOrShadowRoot","MODIFIER_KEYS","_keyMap","_chromeNumKeyPadMap","MODIFIER_KEY_GETTERS","keyName","parseEventName","parsedEvent","outsideHandler","eventCallback","getZone","onAndCancel","domEventName","_normalizeKey","fullKey","modifierName","keyIdentifier","getEventFullKey","unsafeHtmlInput","unsafeHtml","mXSSAttempts","parsedHtml","safeHtml","sanitizeChildren","platformBrowser","makeCurrent","BROWSER_MODULE_PROVIDERS","parentModule","AnimationBuilder","definitions","timings","sequence","steps","transition","stateChangeExpr","NoopAnimationPlayer","_onDoneFns","_onStartFns","_onDestroyFns","_started","_finished","parentPlayer","totalTime","hasStarted","_onStart","triggerMicrotask","_onFinish","phaseName","methods","AnimationGroupPlayer","_players","players","doneCount","destroyCount","startCount","player","onDone","_onDestroy","play","pause","timeAtPosition","setPosition","getPosition","beforeDestroy","isNode","optimizeGroupPlayer","normalizeKeyframes","driver","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizePropertyName","normalizeStyleValue","LINE_START","listenOnPlayer","copyAnimationEvent","makeAnimationEvent","triggerName","fromState","toState","getOrSetAsInMap","parseTimelineCommand","separatorPos","_contains","elm1","elm2","_matches","_query","_isNode","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","elm","_CACHED_BODY","_IS_WEBKIT","validateStyleProperty","matchesElement","containsElement","invokeQuery","hypenatePropsObject","newProp","NoopAnimationDriver","scrubberAccessRequested","AnimationDriver","NOOP","resolveTimingValue","_convertTimeValueToMS","resolveTiming","allowNegativeValues","delayMatch","easingVal","containsErrors","copyObj","copyStyles","readPrototype","getStyleAttributeString","writeStyleAttribute","styleAttrValue","getPropertyValue","setStyles","formerStyles","eraseStyles","normalizeAnimationEntry","PARAM_REGEX","extractStyleParams","interpolateParams","varName","localVal","iteratorToArray","allowPreviousPlayerStylesMerge","balancePreviousStylesIntoKeyframes","previousStyles","previousStyleProps","startingKeyframe","missingStyleProps","computeStyle","visitDslNode","visitor","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","makeLambdaFromStates","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","queryCount","depCount","transitions","stateDef","styleAst","astParams","containsDynamicStyles","missingSubs","stylesObj","missingSubsArr","transitionValue","expressions","matchers","eventStr","alias","normalizeAnimationOptions","furthestTime","innerAst","timingAst","makeTimingAst","ast","dynamic","currentAnimateTimings","styleMetadata","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","styleTuple","collectedEasing","styleData","styleMap","endTime","collectedEntry","updateCollectedStyle","totalKeyframesWithOffsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","generatedOffset","limit","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","hasAmpersand","NG_TRIGGER_SELECTOR","includeSelf","originalSelector","currentTransition","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","timelines","timeline","containsAnimation","allowOnlyTimelineStyles","elementInstructions","consume","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","delayNextStep","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","getCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","parentContext","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","oldParams","newTime","_copyOptions","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_localTimelineStyles","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","allStyles","allProperties","_updateStyle","details0","details1","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","decimalPoints","mult","AnimationStyleNormalizer","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","DIMENSIONAL_PROP_MAP","valAndSuffixMatch","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","matchFns","backupStateStyler","stateStyler","backupStyles","buildStyles","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","queriedElementsList","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","transitionFactories","balanceProperties","fallbackTransition","EMPTY_INSTRUCTION_MAP","bodyNode","_normalizer","_animations","_playersById","autoStylesMap","inst","_buildPlayer","_getPlayer","baseEvent","register","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","StateValue","isObj","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","_engine","_triggers","_queue","_elementListeners","_hostClassName","containsData","phase","listeners","triggersWithStates","statesByElement","NG_TRIGGER_CLASSNAME","afterFlush","defaultToFallback","_getTrigger","absorbOptions","playersOnElement","playersByElement","queued","matchTransition","isFallbackTransition","totalQueuedPlayers","k1","k2","matchStyles","reportError","entry","elementPlayers","namespaces","fetchNamespacesByElement","ns","triggerLeaveAnimation","clearElementCache","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","markElementAsRemoved","processLeaveNode","visitedTriggers","engine","childElementCount","_signalRemovalForInnerTriggers","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","prepareLeaveAnimationListeners","removalFlag","destroyInnerAnimations","_onRemovalComplete","microtaskId","markedForDestroy","d0","d1","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","onRemovalComplete","_balanceNamespaceList","collectEnterElement","found","createNamespace","_fetchNamespace","elementStates","nsId","isElementNode","details","insertNode","removeNode","hostNS","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","markElementAsDisabled","cleanupFns","_flushAnimations","quietFns","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","drainQueuedTransitions","nodeIsOrphaned","_buildInstruction","stringMap","setVal","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","elementContainsData","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","realPlayer","getRealPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","timelineInstruction","finalPlayers","previousPlayers","_flattenGroupPlayersRecur","wrappedPlayer","currentValues","_player","_containsRealPlayer","_queuedCallbacks","triggerCallback","_queueEvent","cloakElement","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","registerTrigger","eventPhase","whenRenderingDone","packageNonAnimatableStyles","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","_startStyles","_endStyles","initialStyles","initialStylesByElement","_initialStyles","WeakMap","isNonAnimatableStyle","ElementAnimationStyleHandler","_name","_duration","_delay","_easing","_fillMode","_onDoneFn","_eventFn","_handleCallback","anim","getAnimationStyle","char","setAnimationStyle","addRemoveAnimationEvent","playPauseAnimation","findIndexForAnimation","_ngTestManualTimestamp","elapsedTime","animationName","findMatchingTokenIndex","searchToken","doRemove","CssKeyframesPlayer","_finalStyles","_specialStyles","currentSnapshot","_buildStyler","_styler","_flushStartFns","_flushDoneFns","resume","finished","_startingStyles","__initialized","_styles","CssKeyframesDriver","_count","_warningIssued","keyframeStr","tab","kfElm","_notifyFaultyScrubber","previousCssKeyframePlayers","flatKeyframes","buildKeyframeElement","specialStyles","WebAnimationsPlayer","_initialized","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","_resetDomPlayerState","cancel","WebAnimationsDriver","_isNativeImpl","getElementAnimateFn","_cssKeyframesDriver","supported","playerOptions","previousWebAnimationPlayers","BrowserAnimationBuilder","rootRenderer","_nextAnimationId","issueAnimationCommand","_id","RendererAnimationPlayer","_command","_listen","AnimationRendererFactory","InjectableAnimationEngine","BrowserAnimationsModule","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","BaseAnimationRenderer","AnimationRenderer","_scheduleCountTask","onInsert","onRemove","disableAnimations","dotIndex","scheduleListenerCallback","ANIMATION_MODULE_TYPE","BROWSER_ANIMATIONS_PROVIDERS","MatOption_mat_pseudo_checkbox_0_Template","ctx_r0","MatCommonModule","_c2","VERSION$1","MATERIAL_SANITY_CHECKS","SUPPORTS_INTL_API","sanityChecks","_hasDoneGlobalChecks","_sanityChecks","_checkDoctypeIsDefined","_checkThemeIsPresent","_checkCdkVersionMatch","win","_isTestEnv","_checksAreEnabled","doctype","theme","mixinDisabled","mixinColor","defaultColor","_color","colorPalette","mixinDisableRipple","_disableRipple","mixinTabIndex","defaultTabIndex","_tabIndex","ErrorStateMatcher","MatPseudoCheckboxModule","MatPseudoCheckbox","MatRippleModule","MatRipple","MatOptgroup","MatOption","RippleRef","fadeOutRipple","defaultRippleAnimationConfig","enterDuration","exitDuration","passiveEventOptions","pointerDownEvents","pointerUpEvents","elementOrElementRef","_isPointerDown","_activeRipples","_pointerUpEventsRegistered","containerRect","_containerRect","animationConfig","centered","distX","distY","ripple","transitionDuration","rippleRef","persistent","_mostRecentTransientRipple","_runTimeoutOutsideZone","isMostRecentTransientRipple","fadeOut","wasActive","rippleEl","_triggerElement","_removeTriggerEvents","_registerEvents","_onMousedown","_onPointerUp","isFakeMousedown","_lastTouchStartEvent","rippleDisabled","fadeInRipple","rippleConfig","terminateOnPointerUp","eventTypes","MAT_RIPPLE_GLOBAL_OPTIONS","_animationMode","_rippleRenderer","_setupTriggerEventsIfEnabled","fadeOutAll","setupTriggerEvents","configOrX","_trigger","unbounded","_MatOptgroupMixinBase","MatOptgroupBase","_uniqueOptgroupIdCounter","_labelId","ɵMatOptgroup_BaseFactory","_uniqueIdCounter","MatOptionSelectionChange","isUserInput","MAT_OPTION_PARENT_COMPONENT","_changeDetectorRef","_active","_mostRecentViewValue","onSelectionChange","_stateChanges","_emitSelectionChangeEvent","_getHostElement","viewValue","_selectViaInteraction","multiple","disableRipple","_handleKeydown","_getTabIndex","_getAriaSelected","_countGroupLabelsBeforeOption","optionIndex","optionGroups","optionsArray","groupCounter","MatOptionModule","MatButtonModule","MatButton","mediaQueryStyleNode","MediaMatcher","MAT_LABEL_GLOBAL_OPTIONS","BUTTON_HOST_ATTRIBUTES","_MatButtonMixinBase","_focusMonitor","isRoundButton","_hasHostAttributes","isIconButton","monitor","focusVia","_t","_isRippleDisabled","CombineLatestOperator","toRespond","unused","_tryResultSelector","SkipOperator","mediaQueriesForWebkitCompatibility","_matchMedia","matchMedia","noopMatchMedia","sheet","insertRule","BreakpointObserver","_mediaMatcher","_queries","_destroySubject","splitQueries","mediaQuery","_registerQuery","mql","stateObservable","breakpointStates","breakpoints","nextMql","Breakpoints","SimpleSnackBar_div_2_Template","_r2","MatSnackBarContainer_ng_template_0_Template","SimpleSnackBar","MatSnackBarModule","MatSnackBarContainer","HistoryToolService","TextToolService","GoogleFontsPanelService","FontsPaginatorService","HttpCacheClient","AppHttpClient","HttpErrorHandler","Toast","MatSnackBar","ObjectsState","MAX_TIMEOUT","containerInstance","_afterDismissed","_afterOpened","_onAction","_dismissedByAction","onAction","dismiss","_onExit","_finishDismiss","exit","_durationTimeoutId","dismissWithAction","dismissedByAction","_onEnter","MAT_SNACK_BAR_DATA","MatSnackBarConfig","announcementMessage","horizontalPosition","verticalPosition","snackBarRef","hasAction","matSnackBarAnimations","snackBarState","snackBarConfig","_animationState","_assertNotAttached","_applySnackBarClasses","_role","_completeExit","panelClasses","onAnimationEnd","MAT_SNACK_BAR_DEFAULT_OPTIONS","_live","_breakpointObserver","_parentSnackBar","_defaultConfig","_snackBarRefAtThisLevel","_attach","openFromComponent","_openedSnackBarRef","containerPortal","containerRef","userConfig","_attachSnackBarContainer","_createInjector","contentRef","detachments","_animateSnackBar","afterDismissed","afterOpened","_dismissAfter","announce","isLeft","centerHorizontally","i18n","snackbar","translatedMsg","replacements","toast","errResponse","suppressAuthToast","handle403Error","httpClient","httpParams","generateHttpParams","prefixUri","spoofHttpMethod","makeCacheKey","clearCache","totalPages","perPage","currentPage","current$","bindToFilters","setPage","page","matchesQuery","chunkFonts","chunked","paginator","loadedFonts","loadIntoDom","allFonts","getGoogleFonts","setFonts","names","loadCustomFonts","filePath","getWithCache","fontsPaginator","providedConfig","itext","autoPositionText","frameTool","googleFonts","textTool","addInitial","canUndo","selectSnapshot","canRedo","createHistoryItem","reload","customProps","editor","getActive","getUsedFonts","getCurrentCanvasState","activeObjectId","toolName","applyChanges","cancelChanges","resetState","OBJECT_SETTINGS","activePanel","ApplyFilter","RemoveFilter","OpenFilterControls","SetAppliedFilters","filtersList","uses","available","ucFirst","ResizeToolService","FilterState","FilterToolService","ResizeState","CropToolService","MergeToolService","ExportToolService","WatermarkToolService","CropZoneService","ShapesState","ShapesToolService","CropState","TransformState","FrameState","DrawState","RoundToolService","StickersState","CornersState","BackgroundState","EditorState","BreakpointsService","TextState","syncWithHistory","filterName","applied","newFilter","getImages","findFilterIndex","matrixAreEqual","matrix1","matrix2","optionName","optionValue","fabricFilter","initialConfig","editableOptions","filterTool","activeFilters","selectedFilter","applyValue","widthScale","heightScale","percentages","currentWidth","currentHeight","newHeight","tempScaleY","tempLeft","tempTop","SetResizeDimensions","RESIZE_STATE_DEFAULTS","resized","usePercentages","resizeTool","initiated","gridColor","resize$","drawMainZone","drawOverlay","drawGrid","attachEvents","grid","maxX","maxY","lastScaleX","lastScaleY","constrainWithinCanvas","constrainWithinCanvasOnScaling","ratioString","oldWidth","oldHeight","defaultConfig","getAdjustedSize","lineOptions","halfWidth","thirdWidth","halfHeight","thirdHeight","topRect","rightRect","bottomRect","leftRect","groupLeftOffset","groupTopOffset","watermarkText","addText","addLines","watermark","line1","line2","line3","line4","cropzone","getDefault","applyWaterMark","getJsonState","getDataUrl","getCanvasBlob","blob","b64toBlob","prepareCanvas","saveTool","loadMainImage","mergeTool","cropZone","CROP_STATE_DEFAULTS","cropTool","getSize","getShapeByName","fabricShape","basicShape","addAndPositionSticker","categoryName","cat","getStickerUrl","addSvgSticker","addRegularSticker","objectName","stickerName","AddShape","shapesTool","addBasicShape","TRANSFORM_STATE_DEFAULTS","OpenFrameControls","FRAME_STATE_DEFAULTS","controlsOpen","OpenBrushControls","CloseBrushControls","DRAW_STATE_DEFAULTS","brushControlsOpen","OpenStickerCategory","STICKER_STATE_DEFAULTS","activeCategory","updatePreview","previewRect","hidePreview","CORNER_STATE_DEFAULTS","roundTool","getPreviewRadius","BACKGROUND_STATE_DEFAULTS","AddText","TEXT_STATE_DEFAULTS","breakpointObserver","isMobile$","isTablet$","listenToConfigChange","listenToBreakpointChange","shouldClose","NAVIGATION","getActiveObjState","objectSettings","navPosition","getNavPosition","hideToolbar","hide","navItems","defaultPos","BOTTOM","activeObjId","activeObjIsText","activeObjIsSvg","activeObjIsImage","UploadInputTypes","extensionFromFilename","fullFileName","file","relativePath","mime","extensionsToMime","fileExtension","lastModified","extension","webkitRelativePath","reader","readAsText","openUploadWindow","old","accept","extensions","directory","webkitdirectory","onchange","uploads","click","UploadValidator","validations","initValidations","failed","validation","fails","showToast","openErrorToast","errorMessage","UploadValidation","spaceUnits","prettyBytes","bytes","isFinite","unitKey","ImportToolValidator","ImportToolService","TranslateDirective","DEFAULT_MAX_FILE_SIZE_MB","getMaxFileSize","allowedExtensions","getAllowedExtensions","shapeTool","getUploadAcceptString","loadFile","uploadedFile","validateAndGetData","executeOnFileOpenCallback","openAsBackground","openBackgroundImage","openFile","readFile","preserveHistory","HTMLImageElement","loadState","openImage","resetEditor","addFromJson","transValues","translateTextContent","elMatches","queryChildren","scrollingClassTimeout","addScrollingClass","removeScrollingClass","isAlive","scrollingThreshold","EventElement","prototypeAccessors","unbind","this$1","unbindAll","eventElements","CustomEvent","initCustomEvent","processScrollDiff","useScrollingClass","forceFireReachEvent","fields","contentHeight","containerHeight","up","down","reach","toInt","eventElement","ee","once","onceHandler","env","isWebKit","supportsTouch","DocumentTouch","supportsIePointer","msMaxTouchPoints","isChrome","updateGeometry","roundedScrollTop","containerWidth","contentWidth","scrollbarXRail","scrollbarYRail","suppressScrollX","scrollXMarginOffset","scrollbarXActive","railXWidth","railXMarginWidth","railXRatio","scrollbarXWidth","getThumbSize","scrollbarXLeft","negativeScrollAdjustment","suppressScrollY","scrollYMarginOffset","scrollbarYActive","railYHeight","railYMarginHeight","railYRatio","scrollbarYHeight","scrollbarYTop","xRailOffset","isScrollbarXUsingBottom","scrollbarXBottom","scrollbarXTop","yRailOffset","isScrollbarYUsingRight","scrollbarYRight","scrollbarYOuterWidth","scrollbarYLeft","scrollbarX","railBorderXWidth","scrollbarY","railBorderYWidth","thumbSize","minScrollbarLength","maxScrollbarLength","bindMouseScrollHandler","pageY","startingScrollTop","startingMousePageY","scrollBy","bindMoves","touchMode","positionTop","pageYOffset","positionLeft","pageX","pageXOffset","keyboard","isDefaultPrevented","defaultPrevented","activeElement","contentDocument","wheelPropagation","wheel","mousewheelHandler","wheelDeltaX","wheelDeltaY","deltaMode","wheelDelta","overflowY","maxScrollTop","overflowX","maxScrollLeft","shouldPrevent","useBothWheelAxes","wheelSpeed","isTop","isBottom","onwheel","onmousewheel","startOffset","speed","easingLoop","touchStart","touchMove","touchEnd","applyTouchMove","differenceX","differenceY","getTouch","shouldHandle","MSPOINTER_TYPE_MOUSE","currentOffset","timeGap","magnitudeX","magnitudeY","swipeEasing","isInitialized","PerfectScrollbar","userSettings","originalScrollLeft","isNegativeScroll","railXStyle","borderRightWidth","railYStyle","paddingRight","borderBottomWidth","handlerName","lastScrollTop","lastScrollLeft","onScroll","removePsClasses","CustomScrollbarDirective","SUPPORTS_NATIVE_SCROLLBAR_STYLING","appVersion","overflow","mutationObserverFactory","supportsNativeStyling","suppressX","debouncer","shouldUseNative","scrollbar","bindToContentChange","newCanvasFormVisible$","OpenSampleImagePanelComponent","TransformToolService","EditorControlsService","OpenSampleImagePanelService","OverlayPanel","DrawToolService","FillToolService","importTool","panelRef","newCanvasForm","openUploadDialog","sample","sampleUrl","getSampleUrl","loadStateFromUrl","openNew","useThumbnail","OVERLAY_PANEL_DATA","FullscreenOverlayScrollStrategy","closeOnBackdropClick","cmp","cdkConfig","getPositionStrategy","getScrollStrategy","overlayPanelRef","createInjector","fullScreen","dialogRef","injectionTokens","mobilePosition","positionIsGlobal","getGlobalPositionStrategy","getConnectedPositionStrategy","centerVertically","overlayPanel","shouldShowOpenImageDialog","sampleImagePanelRef","afterClosed","rotateFixed","rotateFree","originalAngle","resetOrigin","setOriginToCenter","setCenterToOrigin","VLineBrush","vLinePatternBrush","HLineBrush","hLinePatternBrush","SquareBrush","squareBrush","squareWidth","DiamondBrush","diamondBrush","customBrushes","currentBrush","setBrushType","onDrawingAdded","brush","applyBrushStyles","gradientPresets","1","0.5","counter","toggleNativeDragInteractions","webkitUserDrag","webkitTapHighlightColor","msUserSelect","webkitUserSelect","MozUserSelect","parseCssTimeUnitsToMs","parseCssPropertyValue","getMutableClientRect","clientRect","isInsideClientRect","adjustClientRect","isPointerNearClientRect","pointerX","pointerY","xThreshold","yThreshold","ParentPositionTracker","leftDifference","cachedPosition","scrolledParentNode","viewportScrollPosition","topDifference","passiveEventListenerOptions","activeEventListenerOptions","_dragDropRegistry","_passiveTransform","_activeTransform","_moveEvents","_pointerMoveSubscription","_pointerUpSubscription","_boundaryElement","_nativeInteractionsEnabled","_handles","_disabledHandles","dragStartDelay","beforeStarted","released","ended","entered","exited","dropped","moved","_pointerDown","targetHandle","_initializeDragSequence","_rootElement","_pointerMove","pointerPosition","_getPointerPositionOnPage","_hasStartedDragging","_previewRect","_preview","constrainedPointerPosition","_getConstrainedPointerPosition","_hasMoved","_updatePointerDirectionDelta","_dropContainer","_updateActiveDropContainer","activeTransform","_pickupPositionOnPage","_applyRootElementTransform","SVGElement","_getDragDistance","_pointerDirectionDelta","dragStartThreshold","_dragStartTime","_getDragStartDelay","_endDragSequence","_startDragSequence","_pointerUp","withRootElement","_parentPositions","registerDragItem","_placeholder","getPlaceholderElement","getRootElement","handles","_toggleNativeDragInteractions","_previewTemplate","_placeholderTemplate","_removeRootElementListeners","_initialTransform","boundaryElement","_containInsideBoundaryOnResize","_anchor","_destroyPreview","_destroyPlaceholder","removeDragItem","_removeSubscriptions","_pointerPositionAtLastDirectionChange","_previewRef","_placeholderRef","stopDragging","_rootElementTapHighlight","_stopScrolling","_animatePreviewToPlaceholder","_cleanupDragArtifacts","_cleanupCachedDimensions","isTouchEvent","_lastTouchEventTime","documentRef","dropContainer","preview","_createPreviewElement","placeholder","_createPlaceholderElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","_initialContainer","_initialIndex","getItemIndex","getScrollableParents","referenceElement","isTouchSequence","isAuxiliaryMouseButton","draggable","pointerMove","pointerUp","scrollEvent","_updateOnScroll","_boundaryRect","previewTemplate","_pickupPositionInElement","matchSize","_getPointerPositionInElement","startDragging","isPointerOverContainer","_isOverContainer","previousContainer","drop","newContainer","_getSiblingContainerFromPosition","sortingDisabled","_startScrollingIfNecessary","_sortItem","getTransform","previewConfig","previewClass","rootRect","matchElementSize","deepCloneNode","zIndex","placeholderRect","transitionedProperties","propertyIndex","rawDurations","rawDelays","placeholderConfig","placeholderTemplate","elementRect","handleElement","referenceRect","_getViewportScrollPosition","constrainedPoint","constrainPosition","dropContainerLock","lockAxis","pickupX","pickupY","boundaryRect","clamp","pointerPositionOnPage","positionSinceLastChange","pointerDirectionChangeThreshold","shouldEnable","pickupPosition","leftOverflow","rightOverflow","setFreeDragPosition","scrollDifference","handleScroll","descendantsWithId","descendantCanvases","cloneCanvases","correspondingCloneContext","sourceRect","moveItemInArray","fromIndex","clamp$1","autoScrollDisabled","enterPredicate","_isDragging","_itemPositions","_previousSwap","drag","_siblings","_orientation","_activeSiblings","_viewportScrollSubscription","_verticalScrollDirection","_horizontalScrollDirection","_stopScrollTimers","_cachedShadowRoot","_startScrollInterval","_scrollNode","incrementVerticalScroll","incrementHorizontalScroll","withScrollableParents","registerDropContainer","removeDropContainer","_initialScrollSnap","msScrollSnapType","scrollSnapType","_cacheItems","sibling","_startReceiving","_listenToScrollEvents","_draggables","_getItemIndexFromPointerPosition","activeDraggables","_activeDraggables","newPositionReference","_shouldEnterAsFirstChild","_cacheItemPositions","_cacheParentPositions","previousItems","_withDropContainer","orientation","_scrollableElements","currentItem","pointerDelta","_clientRect","siblings","isHorizontal","siblingAtNewPosition","newPosition","itemOffset","_getItemOffsetPx","siblingOffset","_getSiblingOffsetPx","oldOrder","isDraggedItem","elementToOffset","scrollNode","verticalScrollDirection","horizontalScrollDirection","computedVertical","getVerticalScrollDirection","computedHorizontal","getHorizontalScrollDirection","elementToMeasure","getVisibleElement","_stopReceiving","immediateSibling","itemPositions","lastItemRect","firstItemRect","_canReceive","elementFromPoint","activeSiblings","_sortFromLastPointerPosition","isReceiving","DragDropRegistry","DragDrop","CdkDragPreview","CdkDragPlaceholder","CdkDragHandle","CdkDrag","activeCapturingEventOptions","_dropInstances","_dragInstances","_activeDragInstances","_globalListeners","_preventDefaultWhileDragging","upEvent","_clearGlobalListeners","CDK_DRAG_PARENT","parentDrag","_parentDrag","_matchSize","CDK_DRAG_CONFIG","CDK_DROP_LIST","dragDrop","_dragRef","movedEvent","createDrag","_assignDefaults","_dropListRef","addItem","_syncInputs","_handleEvents","getFreeDragPosition","_updateRootElement","childHandleElements","withHandles","handleInstance","dragRef","disableHandle","enableHandle","freeDragPosition","rootSelectorChange","removeItem","rootElementSelector","getClosestMatchingAncestor","boundary","withBoundaryElement","_getBoundaryElement","withPlaceholderTemplate","withPreviewTemplate","withDirection","draggingDisabled","currentElement","DragDropModule","CdkDropList","CdkDropListGroup","_group","_unsortedItems","createDropList","_setupInputSyncSubscription","_dropLists","_syncItemsWithRef","DOCUMENT_POSITION_FOLLOWING","_scrollableParentsResolved","scrollableParents","withOrientation","listAutoScrollDisabled","listOrientation","withItems","getSortedItems","defer","observableFactory","MatDialogContainer_ng_template_0_Template","MatDialogConfig","role","disableClose","ariaDescribedBy","ariaLabelledBy","autoFocus","restoreFocus","closeOnNavigation","matDialogAnimations","dialogContainer","throwMatDialogContentAlreadyAttachedError","MatDialogContainer","MatDialogModule","MatDialog","_focusTrapFactory","_elementFocusedBeforeDialogWasOpened","_animationStateChanged","_setupFocusTrap","_ariaLabelledBy","_containsFocus","_focusTrap","focusInitialElementWhenReady","toFocus","_trapFocus","_restoreFocus","_onAnimationStart","_onAnimationDone","_containerInstance","_afterClosed","_beforeClosed","_closeFallbackTimeout","_finishDialogClose","_result","componentInstance","_recaptureFocus","dialogResult","_startExitAnimation","_getPositionStrategy","addPanelClass","removePanelClass","MAT_DIALOG_DATA","MAT_DIALOG_DEFAULT_OPTIONS","MAT_DIALOG_SCROLL_STRATEGY","MAT_DIALOG_SCROLL_STRATEGY_PROVIDER","_parentDialog","_openDialogsAtThisLevel","_afterAllClosedAtThisLevel","_afterOpenedAtThisLevel","_ariaHiddenElements","afterAllClosed","openDialogs","_afterAllClosed","componentOrTemplateRef","getDialogById","_attachDialogContainer","_attachDialogContent","_hideNonDialogContentFromAssistiveTechnology","_removeOpenDialog","_closeDialogs","dialog","_getOverlayConfig","dialogConfig","userInjector","dialogs","FinallyOperator","getMatIconNameNotFoundError","iconName","getMatIconFailedToSanitizeUrlError","getMatIconFailedToSanitizeLiteralError","literal","MatIconRegistry","SvgIconConfig","svgElement","_httpClient","_sanitizer","_svgIconConfigs","_iconSetConfigs","_cachedIconsByUrl","_inProgressUrlFetches","_fontCssClassesByAlias","_defaultFontSetClass","addSvgIconInNamespace","addSvgIconLiteralInNamespace","_addSvgIconConfig","sanitizedLiteral","_createSvgElementForSingleIcon","addSvgIconSetInNamespace","addSvgIconSetLiteralInNamespace","_addSvgIconSetConfig","_svgElementFromString","safeUrl","cachedIcon","cloneSvg","_loadSvgIconFromConfig","svg","iconKey","_getSvgFromConfig","iconSetConfigs","_getSvgFromIconSetConfigs","namedIcon","_extractIconWithNameFromAnySet","iconSetConfig","_loadSvgIconSetFromConfig","foundIcon","_extractSvgIconFromSet","_fetchUrl","svgText","_setSvgAttributes","iconSet","iconSource","iconElement","_toSvgElement","inProgressFetch","configNamespace","MatIconModule","MatIcon","_MatIconMixinBase","MAT_ICON_LOCATION","getPathname","funcIriAttributes","funcIriAttributeSelector","funcIriPattern","_iconRegistry","ariaHidden","_inline","_currentIconFetch","svgIconChanges","svgIcon","_splitIconName","getNamedSvgIcon","_setSvgElement","_clearSvgElement","_usingFontIcon","_updateFontIconClasses","cachedElements","_elementsWithExternalReferences","_previousPath","_prependPathToReferences","styleTags","_cacheChildrenWithExternalReferences","layoutElement","childCount","fontSetClass","fontSet","classNameForFontAlias","getDefaultFontSetClass","_previousFontSetClass","fontIcon","_previousFontIconClass","elementsWithFuncIri","elementWithReference","inline","_fontSet","_cleanupFontValue","_fontIcon","ObjectsPanelComponent","reorderObjects","HistoryPanelComponent","MatRadioGroup","MatRadioButton","_MatRadioButtonBase","MatRadioModule","MatSlider","activeItemId","MAT_RADIO_DEFAULT_OPTIONS","MAT_RADIO_GROUP_CONTROL_VALUE_ACCESSOR","MatRadioChange","_changeDetector","_labelPosition","_controlValueAccessorChangeFn","_radios","radio","_markForCheck","_updateRadioButtonNames","_markRadiosForCheck","_updateSelectedRadioFromValue","_checkSelectedRadioButton","labelPosition","_MatRadioButtonMixinBase","radioGroup","_radioDispatcher","_providerOverride","_checked","_removeUniqueSelectionListener","_inputElement","focusOrigin","_touch","groupValueChanged","newCheckedState","notify","_setDisabled","ariaLabelledby","ariaDescribedby","ɵMatRadioButton_BaseFactory","_onInputChange","_onInputClick","_r0","inputId","activeEventOptions","MAT_SLIDER_VALUE_ACCESSOR","MatSliderChange","_MatSliderMixinBase","_invert","_max","_min","_step","_thumbLabel","_tickInterval","valueChange","_percent","_isSliding","_isActive","_tickIntervalPercent","_sliderDimensions","_dirChangeSubscription","_runInsideZone","getPointerPositionOnPage","_lastPointerEvent","_focusHostElement","_onMouseenter","_bindGlobalEvents","_updateValueFromPosition","_valueOnSlideStart","_pointerPositionOnStart","_emitInputEvent","pointerPositionOnStart","currentPointerPosition","_removeGlobalEvents","_windowBlur","_runOutsizeZone","_blurHostElement","_getDirection","vertical","_invertAxis","_getSliderDimensions","_updateTickIntervalPercent","_increment","triggerEvent","endEventName","numSteps","_clamp","_shouldInvertMouseCoords","exactValue","_calculateValue","closestValue","_createChangeEvent","tickInterval","trackSize","stepsPerTick","_sliderWrapper","_calculatePercentage","_roundToDecimal","displayWith","_isMinValue","thumbLabel","_thumbGap","tickSize","_onKeydown","_onKeyup","_trackBackgroundStyles","_trackFillStyles","_ticksContainerStyles","_ticksStyles","_thumbContainerStyles","displayValue","FloatingPanelsService","Modal","ImageLoadingPanelComponent","ExportPanelComponent","TransPipe","MatSliderModule","ImageEditorService","ToolsService","ThemeService","CookieService","BackgroundImageDirective","CanvasKeybindsService","Keybinds","exportTool","quality$","exportForm","closeAll","openSampleImageDialog","panelIsOpen","historyPanelRef","openHistoryPanel","objectsPanelRef","openObjectsPanel","getPanelConfig","isOpen","imageLoadingPanelRef","getCookieRegExp","expirationDays","exdate","setDate","getDate","toUTCString","escapedName","selectedTheme$","rootEl","themes","registeredThemes","getPreferredTheme","setPreferredTheme","is_dark","colors","defaultMode","storageKey","slugified","transformTool","drawTool","cornerTool","objectList","fillTool","floatingPanels","openSampleImagePanel","editorControls","asMainImage","stateOrUrl","setConfig","getTool","loadInitialContent","closeCurrentPanel","prefixedKey","pixie","merged","replaceDefaultConfigItems","iterablesKey","DelayWhenOperator","delayDurationSelector","delayNotifierSubscriptions","removeSubscription","tryComplete","delayNotifier","tryDelay","subscriptionIdx","Keycodes","keybind","parseKeybindString","keybindString","executeBindings","binding","bindingMatches","keybinds","listenOn","maybePreventDefault","domSanitizer","getStyle","readDirRecursive","createReader","readEntries","childEntry","isDirectory","transformFileEntry","fullPath","UploadDropzoneDirective","disableDropzoneClick","disableDropzone","uploadConfig","filesDropped","handleDragEnter","handleDragOver","handleDragLeave","handleDrop","clickButton","handleClick","removeClassesFromDropzone","emitUploadEvent","dropzoneDisabled","dataTransfer","dropEffect","newEl","webkitGetAsEntry","hasFiles","startCase","ToolbarPanelNameWidgetComponent","_MatMenu_ng_template_0_Template","panelId","_panelAnimationState","MatMenuContent","MatMenuItem","MatMenu","_MatMenuBase","_MatMenu","ToolbarUndoWidgetComponent","ToolbarZoomWidgetComponent","MatMenuModule","_MatMenuDirectivesModule","MatMenuTrigger","matMenuAnimations","transformMenu","fadeInItems","_attached","_portal","_outlet","MAT_MENU_PANEL","_MatMenuItemMixinBase","MatMenuItemBase","_parentMenu","_hovered","_focused","_highlighted","_triggersSubmenu","textNodeType","_checkDisabled","_handleMouseEnter","MAT_MENU_DEFAULT_OPTIONS","overlapTrigger","xPosition","yPosition","menuPanelUid","_xPosition","_yPosition","_directDescendantItems","_tabSubscription","_animationDone","_overlapTrigger","setPositionClasses","_updateDirectDescendants","_keyManager","withWrap","withTypeAhead","focusedItem","_item","parentMenu","setFocusOrigin","onKeydown","lazyContent","_focusFirstItem","newElevation","customElevation","_previousElevation","posX","posY","_isAnimating","activeItemIndex","_allItems","previousPanelClass","_previousPanelClass","ɵMatMenu_BaseFactory","MAT_MENU_SCROLL_STRATEGY","MAT_MENU_SCROLL_STRATEGY_FACTORY_PROVIDER","_menuItemInstance","_menuOpen","_closingActionsSubscription","_hoverSubscription","_menuCloseSubscription","_handleTouchStart","_openedBy","menuOpened","onMenuOpen","menuClosed","onMenuClose","triggersSubmenu","_checkMenu","_handleHover","closeMenu","openMenu","_setPosition","menu","_getPortal","menuData","_menuClosingActions","_initMenu","_startAnimation","menuOpen","_resetAnimation","_setIsMenuOpen","_setMenuElevation","focusFirstItem","setElevation","_subscribeToPositions","originFallbackX","overlayFallbackY","originFallbackY","overlayFallbackX","backdrop","toggleMenu","_menu","_destroyMenu","_handleMousedown","_handleClick","_deprecatedMatMenuTriggerFor","ToolbarItemComponent","panels","shouldRenderItem","isDropdownButton","openExportPanel","toggleObjects","toggleHistory","toolbarMode","ToolbarComponent","toolbarMode$","configItems","matTooltipAnimations","tooltipState","passiveListenerOptions","getMatTooltipInvalidPositionError","MatTooltipModule","TooltipComponent","MatTooltip","MAT_TOOLTIP_SCROLL_STRATEGY","MAT_TOOLTIP_SCROLL_STRATEGY_FACTORY_PROVIDER","MAT_TOOLTIP_DEFAULT_OPTIONS","showDelay","hideDelay","touchendHideDelay","_ariaDescriber","_hammerLoader","touchGestures","_message","_passiveListeners","_isTooltipVisible","_setupPointerEvents","_touchstartTimeout","_tooltipInstance","removeDescription","_showTimeoutId","_hideTimeoutId","afterHidden","_setTooltipClass","_tooltipClass","_updateTooltipMessage","scrollableAncestors","_updatePosition","_getOrigin","_getOverlayPosition","originPosition","isLtr","_invertPosition","overlayPosition","tooltipClass","_disableNativeGesturesIfNecessary","touchendListener","gestures","describe","_visibility","_closeOnInteraction","_onHide","_isHandset","_handleBodyInteraction","tmp_0_0","_animationStart","FloatingObjectControlsComponent","mobileMode","openPanel","ImageOrIconComponent","alt","type$","NavigationBarComponent","changeDetector","hasMainImage","canMerge","ColorPickerComponent_div_2_Template","ctx_r1","cpUsePosition","arrowTop","ColorPickerComponent_div_3_Template","_r17","onColorChange","onDragStart","onDragEnd","ctx_r2","hueSliderColor","slider","ColorPickerComponent_button_8_Template","_r21","ctx_r20","onAddPresetColor","selectedColor","ctx_r3","cpAddColorButtonClass","cpPresetColors","cpMaxPresetColorsLength","cpAddColorButtonText","ColorPickerComponent_div_10_Template","ColorPickerComponent_div_20_input_6_Template","_r25","onAcceptColor","onAlphaInput","ctx_r22","cmykText","ColorPickerComponent_div_20_div_16_Template","ColorPickerComponent_div_20_Template","_r28","onCyanInput","onMagentaInput","onYellowInput","onBlackInput","ctx_r8","cpAlphaChannel","ColorPickerComponent_div_21_input_5_Template","_r39","ctx_r36","hslaText","ColorPickerComponent_div_21_div_13_Template","ColorPickerComponent_div_21_Template","_r42","onHueInput","onSaturationInput","onLightnessInput","ctx_r9","ColorPickerComponent_div_22_input_5_Template","_r51","ctx_r48","rgbaText","ColorPickerComponent_div_22_div_13_Template","ColorPickerComponent_div_22_Template","_r54","onRedInput","onGreenInput","onBlueInput","ctx_r10","ColorPickerComponent_div_23_input_3_Template","_r63","ctx_r60","hexAlpha","ColorPickerComponent_div_23_div_7_Template","ColorPickerComponent_div_23_Template","_r66","onHexInput","ctx_r11","hexText","ColorPickerComponent_div_24_input_3_Template","_r71","ctx_r69","ColorPickerComponent_div_24_Template","_r74","onValueInput","ctx_r12","ColorPickerComponent_div_25_Template","_r77","onFormatToggle","ColorPickerComponent_div_26_div_4_div_1_span_1_Template","_r85","color_r82","onRemovePresetColor","cpRemoveColorButtonClass","ColorPickerComponent_div_26_div_4_div_1_Template","_r88","setColorFromString","ctx_r81","cpAddColorButton","ColorPickerComponent_div_26_div_4_Template","ctx_r79","cpPresetColorsClass","ColorPickerComponent_div_26_div_5_Template","ctx_r80","cpPresetEmptyMessageClass","cpPresetEmptyMessage","ColorPickerComponent_div_26_Template","ctx_r14","cpPresetLabel","ColorPickerComponent_div_27_button_1_Template","_r92","onCancelColor","ctx_r89","cpCancelButtonClass","cpCancelButtonText","ColorPickerComponent_div_27_button_2_Template","_r94","ctx_r90","cpOKButtonClass","cpOKButtonText","ColorPickerComponent_div_27_Template","ctx_r15","cpCancelButton","cpOKButton","SliderDirective","TextDirective","ColorPickerModule","ColorPickerDirective","ColorPickerComponent","ColorPickerService","ColorpickerPanelComponent","ColorFormats","Rgba","Hsva","Hsla","Cmyk","rg","numeric","inputChange","elRef","dragEnd","dragStart","listenerMove","listenerStop","getX","getY","rgX","rgY","mouseDown","SliderPosition","SliderDimension","cpDialogDisplay","closeDialog","hsva","hsla","cmyk","rgba","allowHex8","hex","colorString","stringParsers","execResult","rgbaToHsva","hsla2hsva","outputFormat","alphaChannel","hsva2hsla","denormalizeRGBA","hsvaToRgba","rgbaToHex","cdRef","isIE10","dialogArrowSize","dialogArrowOffset","dialogInputFields","HEX","HSLA","CMYK","useRootViewContainer","sliderDimMax","hueSlider","cpWidth","alphaSlider","cpCmykEnabled","cpOutputFormat","listenerMouseDown","listenerResize","onResize","openDialog","initialColor","updateColorPicker","setActive","directiveElementRef","setInitialColor","openColorPicker","closeColorPicker","cpHeight","cpFallbackColor","cpColorMode","cpDisableInput","cpIgnoredElements","cpSaveClickOutside","cpCloseClickOutside","cpUseRootViewContainer","cpPosition","cpPositionOffset","cpPositionRelativeToArrow","setColorMode","msie","directiveInstance","fallbackColor","setPresetConfig","stringToHsva","sliderH","setDialogPosition","sliderDragEnd","outputColor","sliderDragStart","isDescendant","colorSelected","cmykChanged","cmykColor","colorChanged","colorCanceled","availableFormats","nextFormat","sliderChanged","validHex","inputChanged","presetColorsChanged","hidden","stateChanged","cmykInput","hue","lastOutput","cmykToRgb","normalizeCMYK","denormalizeCMYK","rgbaToCmyk","alphaSliderColor","transformNode","dialogHeight","dialogElement","boxDirective","createDialogBox","HTMLUnknownElement","boxParent","usePosition","usePositionX","usePositionY","winWidth","winHeight","handleEsc","handleEnter","onHueChange","onValueChange","onAlphaChange","cfr","_service","dialogCreated","ignoreChanges","viewAttachedToAppRef","cpToggle","cpDisabled","cpInputChange","cpToggleChange","cpSliderChange","cpSliderDragEnd","cpSliderDragStart","colorPickerOpen","colorPickerClose","colorPickerCancel","colorPickerSelect","colorPickerChange","cpCmykColorChange","cpPresetColorsChange","inputFocus","cmpRef","colorPicker","appInstance","compFactory","setupDialog","ignore","ignored","handleFocus","handleInput","getInitialColor","emitValue","emitSelectedEvent","BOTTOM_POSITION","ColorWidgetComponent","compact","selectedColor$","propagateChange","colorPickerButton","valueChanged","FilterControlsComponent","colorFormControl","FilterDrawerComponent","TransformDrawerComponent","ResizeDrawerComponent","MatCheckboxModule","_MatCheckboxRequiredValidatorModule","MatCheckbox","filterList","MAT_CHECKBOX_DEFAULT_OPTIONS","clickAction","MAT_CHECKBOX_CLICK_ACTION","MAT_CHECKBOX_CONTROL_VALUE_ACCESSOR","MatCheckboxChange","_MatCheckboxMixinBase","_clickAction","indeterminateChange","_onTouched","_currentAnimationClass","_currentCheckState","_indeterminate","_syncIndeterminate","indeterminate","oldState","_getAnimationClassForCheckStateTransition","animationClass","_transitionCheckState","animSuffix","nativeCheckbox","_onInteractionEvent","_onLabelTextChange","_getAriaChecked","resizeForm","maintainAspectRatio","bindToWidthControl","bindToHeightControl","bindToPercentageControl","syncFormWithState","applyMinMaxRestrictions","aspectToHeight","aspectToWidth","flip","rotateLeft","rotateRight","flipVertical","flipHorizontal","CropDrawerComponent","ratioPreviews","adjusted","dataset","updateZoneSize","changeAspectRatio","cropzoneHeight","cropzoneWidth","DrawDrawerComponent","brushSizes$","brushTypes$","currentDrawings","maybeMarkAsDirty","getAllDrawings","lastDrawing","openBrushControls","FontCategory","_c3","MatFormField_ng_container_3_Template","MatFormField_div_4_Template","MatFormField_label_9_ng_container_2_Template","MatFormField_label_9_3_Template","MatFormField_label_9_span_4_Template","MatFormField_label_9_Template","_r14","updateOutlineGap","ctx_r4","_shouldAlwaysFloat","appearance","_hasLabel","hideRequiredMarker","MatFormField_div_10_Template","MatFormField_div_11_Template","ctx_r6","MatFormField_div_13_Template","_subscriptAnimationState","MatFormField_div_14_div_1_Template","ctx_r16","_hintLabelId","hintLabel","MatFormField_div_14_Template","MatError","MatFormFieldControl","_c4","_c5","matFormFieldAnimations","transitionMessages","getMatFormFieldDuplicatedHintError","MatSuffix","MatPrefix","MatPlaceholder","MatLabel","MatHint","MatFormFieldModule","MatFormField","nextUniqueId$1","nextUniqueId$2","_MatFormFieldMixinBase","MAT_FORM_FIELD_DEFAULT_OPTIONS","MAT_FORM_FIELD","labelOptions","_defaults","_outlineGapCalculationNeededImmediately","_outlineGapCalculationNeededOnStable","_showAlwaysAnimate","_hintLabel","_labelOptions","floatLabel","_getDefaultFloatLabelState","_animationsEnabled","_hideRequiredMarker","_connectionContainerRef","_validateControlChild","controlType","stateChanges","_validatePlaceholders","_syncDescribedByIds","ngControl","_prefixChildren","_suffixChildren","_hintChildren","_processHints","_errorChildren","_placeholderChild","_labelChild","_canLabelFloat","shouldLabelFloat","_shouldLabelFloat","_hasPlaceholder","errorState","_hasFloatingLabel","_label","_validateHints","startHint","endHint","hint","_getDisplayedMessages","setDescribedByIds","labelEl","_isAttachedToDOM","startWidth","gapWidth","startEls","gapEls","containerStart","_getStartEnd","labelStart","labelWidth","outlineGapPadding","_appearance","_floatLabel","_explicitFormFieldControl","_controlNonStatic","_controlStatic","_labelChildNonStatic","_labelChildStatic","underlineRef","_inputContainerRef","_hideControlPlaceholder","autofilled","focused","_shouldForward","onContainerClick","MatSelect_span_4_Template","MatSelect_span_5_span_1_Template","ctx_r5","triggerValue","MatSelect_span_5_2_Template","MatSelect_span_5_Template","customTrigger","MatSelect_ng_template_8_Template","_r9","_panelDoneAnimatingStream","_getPanelTheme","_transformOrigin","_triggerFontSize","MatSelectModule","MatSelect","MatSelectTrigger","matSelectAnimations","transformPanelWrap","animateChild","transformPanel","MAT_SELECT_SCROLL_STRATEGY","MAT_SELECT_CONFIG","MAT_SELECT_SCROLL_STRATEGY_PROVIDER","MatSelectChange","_MatSelectMixinBase","errorStateMatcher","_defaultErrorStateMatcher","isErrorState","_parentFormGroup","_parentForm","_parentFormField","_liveAnnouncer","_panelOpen","_scrollTop","o1","o2","_uid","_destroy","_optionIds","_positions","_disableOptionCentering","optionSelectionChanges","openedChange","_openedStream","_closedStream","selectionChange","disableOptionCentering","typeaheadDebounceInterval","_selectionModel","panelOpen","overlayDir","_triggerRect","_initKeyManager","_resetOptions","_initializeSelection","updateErrorState","_typeaheadDebounceInterval","withHorizontalOrientation","_calculateOverlayPosition","_highlightCorrectOption","_setSelectionByValue","_handleOpenKeydown","_handleClosedKeydown","isArrowKey","isOpenKey","isTyping","previouslySelectedOption","selectedOption","hasDeselectedOptions","previouslyFocusedIndex","_calculateOverlayOffsetX","_selectValue","_sortValues","correspondingOption","withVerticalOrientation","withAllowedModifierKeys","_scrollActiveOptionIntoView","changedOrDestroyed","_onSelect","_setOptionIds","wasSelected","_propagateChanges","sortComparator","valueToEmit","optionHeight","currentScrollPosition","optionOffset","activeOptionIndex","labelCount","_getItemHeight","itemHeight","_getItemCount","panelHeight","maxScroll","selectedOptionOffset","_getOptionIndex","scrollBuffer","_calculateOverlayScroll","_calculateOverlayOffsetY","_checkOverlayWithinViewport","_getAriaLabel","viewportSize","paddingWidth","SELECT_MULTIPLE_PANEL_PADDING_X","SELECT_PANEL_PADDING_X","optionOffsetFromPanelTop","optionHeightAdjustment","maxOptionsDisplayed","topSpaceAvailable","bottomSpaceAvailable","panelHeightTop","panelHeightBottom","_adjustPanelUp","_adjustPanelDown","_getOriginBasedOnOption","distanceBelowViewport","distanceAboveViewport","_ariaDescribedby","_getAriaLabelledby","_getAriaActiveDescendant","_onAttached","MatPaginator_div_2_mat_form_field_3_mat_option_2_Template","pageSizeOption_r6","MatPaginator_div_2_mat_form_field_3_Template","_r8","_changePageSize","pageSize","_intl","itemsPerPageLabel","_displayedPageSizeOptions","MatPaginator_div_2_div_4_Template","MatPaginator_div_2_Template","MatPaginator_button_6_Template","_r10","firstPage","firstPageLabel","_previousButtonsDisabled","MatPaginator_button_13_Template","_r12","lastPage","lastPageLabel","_nextButtonsDisabled","MatPaginatorIntl","MatPaginatorModule","MatPaginator","nextPageLabel","previousPageLabel","getRangeLabel","MAT_PAGINATOR_INTL_PROVIDER","parentIntl","MAT_PAGINATOR_DEFAULT_OPTIONS","_MatPaginatorBase","_pendingSubscribers","_notifySubscriber","mixinInitialized","MatPaginatorBase","_pageIndex","_length","_pageSizeOptions","_hidePageSize","_showFirstLastButtons","_intlChanges","pageSizeOptions","hidePageSize","showFirstLastButtons","_pageSize","_updateDisplayedPageSizeOptions","_markInitialized","hasNextPage","previousPageIndex","pageIndex","_emitPageEvent","hasPreviousPage","getNumberOfPages","maxPageIndex","previousPage","nextPage","TextDrawerComponent","TextFontSelectorComponent","GoogleFontsPanelComponent","fontCategories","changePage","selectedFont$","openGoogleFontsPanel","defaultFont","customFonts","isCustom","ShapesDrawerComponent","RoundDrawerComponent","StickersDrawerComponent","categories","addSticker","showPreview","CanvasBackgroundDrawerComponent","FrameDrawerComponent","MatButtonToggleGroup","TextControlsDrawerComponent","MatButtonToggleModule","MatButtonToggle","ColorControlsDrawerComponent","OutlineControlsDrawerComponent","ShadowControlsDrawer","frameControlsForm","scaleFrame","colorControl","MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS","MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR","MatButtonToggleGroupMultiple","MatButtonToggleChange","_buttonToggles","deferEvents","_updateModelValue","_rawValue","_clearSelection","_MatButtonToggleMixinBase","MatButtonToggleBase","toggleGroup","_isSingleSelector","parsedTabIndex","buttonToggleGroup","_type","_isPrechecked","_isSelected","_syncButtonToggle","_buttonElement","newChecked","_onButtonClick","buttonId","setTextStyle","TextureControlsDrawerComponent","defaultTextures","bypassSecurityTrustStyle","getTextureUrl","withPattern","importAndGetData","OpacityControlsDrawer","GradientControlsDrawerComponent","defaultGradients","getGradientUrl","withGradient","ObjectSettingsDrawerComponent","CustomDrawerComponent","imageEditor","EditorControlsComponent","compactMode$","ImageEditorComponent","TranslationsModule","ClientHttpErrorHandler","AppComponent","canvasKeybinds","dropzoneConfig","canvasVisible","messageVisible","canvasWrapper","canvasMaskWrapper","setLocalization","bindToLoadingState","initFabric","fitCanvasToScreenOnResize","openObjectSettingsOnDoubleClick","closePanelsOnObjectDelete","handleObjectSelection","updateHistoryOnObjectModification","bindToClickOutsideCanvas","replaceCurrent","onObjectSelection","fabricEvent","OVERLAY","date","onFileDropped","boxShadow","toolbarHidden","bindToOverlayClick","editorVisible","init_app","mergedConfig","base_url","baseUrl","logging","sentry_public","vebto","default_mode","EditorOverlayContainer","ToolbarControlsModule","BeColorPickerModule","ImageOrIconModule","MatSlideToggleModule","_MatSlideToggleRequiredValidatorModule","HttpModule","CustomScrollbarModule","GoogleFontsModule","ImageEditorModule","UploadsModule","MatProgressBarModule","forRoot","DEFAULT_LIGHT_COLORS","DEFAULT_DARK_COLORS","DEFAULT_THEMES","dark","_extends","_toConsumableArray","_arrayLikeToArray","iter","minLen","_unsupportedIterableToArray","arr2","getUrls","mimeType","onBeforeSend","urlArray","urlQueue","isValidCss","isHTML","urlIndex","returnVal","xdr","onprogress","ontimeout","overrideMimeType","getCssData","include","exclude","skipDisabled","useCSSOM","sourceNodes","cssArray","handleComplete","handleSuccess","cssIndex","sourceUrl","resolveImports","callbackFn","__errorData","__errorRules","importData","parseImportData","rules","absoluteUrls","responseImportData","absoluteRules","responseArray","importText","resolvedCssText","errorData","ignoreRules","getFullUrl","oldUrl","newUrl","linkHref","linkRel","isLink","isSkip","isStyle","baseURI","balancedMatch","balanced","maybeMatch","reg","begs","beg","ai","bi","parseCss","css","preserveStatic","removeComments","whitespace","comments","cmnts","at_rule","comment_regexp","vals","at_keyframes","at_page","at_page_margin_box","at_fontface","at_supports","at_host","at_media","at_custom_m","at_document","at_x","balancedMatch$1","hasVarDecl","hasVarFunc","sel","core","stylesheet","parseVars","cssData","parseHost","onWarning","reVarDeclSelectors","stringifyCss","tree","delim","renderMethods","charset","txt","walkCss","transformCss","preserveVars","variables","VAR_FUNC_IDENTIFIER","resolvedValue","resolveValue","fixNestedCalc","newVal","__recursiveFallback","valueData","resolveFunc","unresolvedFallback","isEmptyVarFunc","range","counters","job","shadowDOM","onlyLegacy","silent","updateDOM","updateURLs","watch","onFinally","cssComments","cssKeyframes","cssMediaQueries","cssUrls","cssVarDeclRules","cssVarDecls","cssVarFunc","cssVars","variableStore","cssVarsIsRunning","cssVarsObserver","cssVarsSrcNodeCount","debounceTimer","isShadowDOMReady","msgPrefix","sourceNode","handleWarning","handleFinally","hasChanged","getTimeStamp","__benchmark","addMutationObserver","cssVarsDebounced","fixVarNames","outNodes","outNode","dataGroup","srcNodes","hasVarChange","targetElm","varValue","responseUrl","getFullUrl$1","fixRelativeCssUrls","currentVars","nodeCSS","cssTree","__cssVars","resetCssNodes","outCssArray","outNodeArray","hasKeyframesWithVars","outCss","hasCSSVarFunc","outCssNoSpaces","shadowSettings","fixKeyframes","mutation","mutationNodes","addedNodes","hasAttr","isStyleWithVars","removedNodes","isElm","isOutNode","isSrcNode","orphanNode","attributeFilter","animationNameProp","allNodes","keyframeNodes","_len","nodeStyle","cssUrl","varObj","reLeadingHyphens","init_icons","icons","addSvgIconSet","bypassSecurityTrustResourceUrl","customThemes","mergedThemes","defaultColors","mergedTheme","setRootEl","registerThemes","ImageEditorUIModule","ignoredErrors","noBackendErrorHandlerFactory","AppModule","installed","installSentry","proxySupported","Proxy","initPixie","propKey","appModule","mergeConfig","onAngularReady"],"mappings":"gzJAuBA,SAASA,EAAQC,EAAGC,GAClB,IAAIC,GAAW,MAAJF,IAAmB,MAAJC,GAE1B,OADWD,GAAK,KAAOC,GAAK,KAAOC,GAAO,KAC3B,GAAa,MAANA,EAaxB,SAASC,EAAOC,EAAGC,EAAGC,EAAGN,EAAGO,EAAGC,GAC7B,OAAOT,GARcU,EAQQV,EAAQA,EAAQM,EAAGD,GAAIL,EAAQC,EAAGQ,OARrCE,EAQ0CH,GAP7CE,IAAS,GAAKC,EAOmCJ,GAR1E,IAAuBG,EAAKC,EAU5B,SAASC,EAAMN,EAAGC,EAAGM,EAAGC,EAAGb,EAAGO,EAAGC,GAC/B,OAAOL,EAAQG,EAAIM,GAAON,EAAIO,EAAIR,EAAGC,EAAGN,EAAGO,EAAGC,GAEhD,SAASM,EAAMT,EAAGC,EAAGM,EAAGC,EAAGb,EAAGO,EAAGC,GAC/B,OAAOL,EAAQG,EAAIO,EAAMD,GAAKC,EAAIR,EAAGC,EAAGN,EAAGO,EAAGC,GAEhD,SAASO,EAAMV,EAAGC,EAAGM,EAAGC,EAAGb,EAAGO,EAAGC,GAC/B,OAAOL,EAAOG,EAAIM,EAAIC,EAAGR,EAAGC,EAAGN,EAAGO,EAAGC,GAEvC,SAASQ,EAAMX,EAAGC,EAAGM,EAAGC,EAAGb,EAAGO,EAAGC,GAC/B,OAAOL,EAAOS,GAAKN,GAAKO,GAAIR,EAAGC,EAAGN,EAAGO,EAAGC,GAM1C,SAASS,EAAQjB,EAAGkB,GAKlB,IAAIC,EACAC,EACAC,EACAC,EACAC,EAPJvB,EAAEkB,GAAO,IAAM,KAASA,EAAM,GAC9BlB,EAA8B,IAAzBkB,EAAM,KAAQ,GAAM,IAAWA,EAOpC,IAAIb,EAAI,WACJC,GAAK,UACLM,GAAK,WACLC,EAAI,UAER,IAAKM,EAAI,EAAGA,EAAInB,EAAEwB,OAAQL,GAAK,GAC7BC,EAAOf,EACPgB,EAAOf,EACPgB,EAAOV,EACPW,EAAOV,EAEPR,EAAIM,EAAMN,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,GAAI,GAAI,WAChCN,EAAIF,EAAME,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,IAAK,WACrCP,EAAID,EAAMC,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,GAAI,GAAI,WACpCb,EAAIK,EAAML,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,IAAK,YACrCd,EAAIM,EAAMN,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,GAAI,WACpCN,EAAIF,EAAME,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,GAAI,YACpCP,EAAID,EAAMC,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,GAAI,IAAK,YACrCb,EAAIK,EAAML,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,IAAK,UACrCd,EAAIM,EAAMN,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,EAAG,YACnCN,EAAIF,EAAME,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,IAAK,YACrCP,EAAID,EAAMC,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,IAAK,IAAK,OACtCb,EAAIK,EAAML,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,IAAK,IAAK,YACtCd,EAAIM,EAAMN,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,IAAK,EAAG,YACpCN,EAAIF,EAAME,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,IAAK,IAAK,UACtCP,EAAID,EAAMC,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,IAAK,IAAK,YAGtCd,EAAIS,EAAMT,EAFVC,EAAIK,EAAML,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,IAAK,GAAI,YAErBP,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,GAAI,WACpCN,EAAIC,EAAMD,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,GAAI,YACpCP,EAAIE,EAAMF,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,IAAK,GAAI,WACrCb,EAAIQ,EAAMR,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,GAAI,IAAK,WACjCd,EAAIS,EAAMT,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,GAAI,WACpCN,EAAIC,EAAMD,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,IAAK,EAAG,UACpCP,EAAIE,EAAMF,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,IAAK,IAAK,WACtCb,EAAIQ,EAAMR,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,IAAK,WACrCd,EAAIS,EAAMT,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,EAAG,WACnCN,EAAIC,EAAMD,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,IAAK,GAAI,YACrCP,EAAIE,EAAMF,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,GAAI,IAAK,WACrCb,EAAIQ,EAAMR,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,GAAI,YACpCd,EAAIS,EAAMT,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,IAAK,GAAI,YACrCN,EAAIC,EAAMD,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,GAAI,UACpCP,EAAIE,EAAMF,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,GAAI,GAAI,YAGpCd,EAAIU,EAAMV,EAFVC,EAAIQ,EAAMR,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,IAAK,IAAK,YAEtBP,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,GAAI,QACpCN,EAAIE,EAAMF,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,IAAK,YACrCP,EAAIG,EAAMH,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,IAAK,GAAI,YACrCb,EAAIS,EAAMT,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,IAAK,IAAK,UACtCd,EAAIU,EAAMV,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,GAAI,YACpCN,EAAIE,EAAMF,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,GAAI,YACpCP,EAAIG,EAAMH,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,GAAI,IAAK,WACrCb,EAAIS,EAAMT,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,IAAK,IAAK,YACtCd,EAAIU,EAAMV,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,IAAK,EAAG,WACpCN,EAAIE,EAAMF,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,GAAI,IAAK,WACjCP,EAAIG,EAAMH,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,GAAI,IAAK,WACrCb,EAAIS,EAAMT,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,GAAI,UACpCd,EAAIU,EAAMV,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,GAAI,WACpCN,EAAIE,EAAMF,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,IAAK,IAAK,WACtCP,EAAIG,EAAMH,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,IAAK,GAAI,WAGrCd,EAAIW,EAAMX,EAFVC,EAAIS,EAAMT,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,IAAK,WAErBP,EAAGC,EAAGb,EAAEmB,GAAI,GAAI,WAChCN,EAAIG,EAAMH,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,GAAI,YACpCP,EAAII,EAAMJ,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,IAAK,IAAK,YACtCb,EAAIU,EAAMV,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,IAAK,UACrCd,EAAIW,EAAMX,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,IAAK,EAAG,YACpCN,EAAIG,EAAMH,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,GAAI,IAAK,YACrCP,EAAII,EAAMJ,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,IAAK,IAAK,SACtCb,EAAIU,EAAMV,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,IAAK,YACrCd,EAAIW,EAAMX,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,EAAG,YACnCN,EAAIG,EAAMH,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,IAAK,IAAK,UACtCP,EAAII,EAAMJ,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,GAAI,IAAK,YACrCb,EAAIU,EAAMV,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,IAAK,GAAI,YACrCd,EAAIW,EAAMX,EAAGC,EAAGM,EAAGC,EAAGb,EAAEmB,EAAI,GAAI,GAAI,WACpCN,EAAIG,EAAMH,EAAGR,EAAGC,EAAGM,EAAGZ,EAAEmB,EAAI,IAAK,IAAK,YACtCP,EAAII,EAAMJ,EAAGC,EAAGR,EAAGC,EAAGN,EAAEmB,EAAI,GAAI,GAAI,WACpCb,EAAIU,EAAMV,EAAGM,EAAGC,EAAGR,EAAGL,EAAEmB,EAAI,GAAI,IAAK,WAErCd,EAAIN,EAAQM,EAAGe,GACfd,EAAIP,EAAQO,EAAGe,GACfT,EAAIb,EAAQa,EAAGU,GACfT,EAAId,EAAQc,EAAGU,GAEjB,MAAO,CAAClB,EAAGC,EAAGM,EAAGC,GAMnB,SAASY,EAAUC,GACjB,IAAIP,EACAQ,EAAS,GACTC,EAA0B,GAAfF,EAAMF,OACrB,IAAKL,EAAI,EAAGA,EAAIS,EAAUT,GAAK,EAC7BQ,GAAUE,OAAOC,aAAcJ,EAAMP,GAAK,KAAQA,EAAI,GAAO,KAE/D,OAAOQ,EAOT,SAASI,EAAUL,GACjB,IAAIP,EACAQ,EAAS,GAEb,IADAA,GAAQD,EAAMF,QAAU,GAAK,QAAA,EACxBL,EAAI,EAAGA,EAAIQ,EAAOH,OAAQL,GAAK,EAClCQ,EAAOR,GAAK,EAEd,IAAIa,EAAyB,EAAfN,EAAMF,OACpB,IAAKL,EAAI,EAAGA,EAAIa,EAASb,GAAK,EAC5BQ,EAAOR,GAAK,KAAiC,IAA1BO,EAAMO,WAAWd,EAAI,KAAeA,EAAI,GAE7D,OAAOQ,EAkCT,SAASO,EAASR,GAChB,IAEI1B,EACAmB,EAFAQ,EAAS,GAGb,IAAKR,EAAI,EAAGA,EAAIO,EAAMF,OAAQL,GAAK,EACjCnB,EAAI0B,EAAMO,WAAWd,GACrBQ,GANW,mBAMMQ,OAAQnC,IAAM,EAAK,IANzB,mBAMwCmC,OAAW,GAAJnC,GAE5D,OAAO2B,EAMT,SAASS,EAAaV,GACpB,OAAOW,SAASC,mBAAmBZ,IAMrC,SAASa,EAAOhC,GACd,OAnDF,SAAiBA,GACf,OAAOkB,EAAUR,EAAQc,EAAUxB,GAAe,EAAXA,EAAEiB,SAD3C,CAmDiBY,EAAa7B,IAK9B,SAASiC,EAAWC,EAAG5B,GACrB,OAlDF,SAAqB6B,EAAKC,GACxB,IAAIxB,EAIAyB,EAHAC,EAAOd,EAAUW,GACjBI,EAAO,GACPC,EAAO,GAMX,IAJAD,EAAK,IAAMC,EAAK,SAAA,EACZF,EAAKrB,OAAS,KAChBqB,EAAO5B,EAAQ4B,EAAmB,EAAbH,EAAIlB,SAEtBL,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB2B,EAAK3B,GAAe,UAAV0B,EAAK1B,GACf4B,EAAK5B,GAAe,WAAV0B,EAAK1B,GAGjB,OADAyB,EAAO3B,EAAQ6B,EAAKE,OAAOjB,EAAUY,IAAQ,IAAoB,EAAdA,EAAKnB,QACjDC,EAAUR,EAAQ8B,EAAKC,OAAOJ,GAAO,MAf9C,CAkDqBR,EAAaK,GAAIL,EAAavB,IAmBnDoC,EAAOC,QAbP,SAAaC,EAAQT,EAAKU,GACxB,OAAKV,EAMAU,EAGEZ,EAAWE,EAAKS,GAbhBjB,EAASM,EAWIE,EAAKS,IANlBC,EAGEb,EAAOY,GAdTjB,EAASK,EAYEY,MAAAA,EAAAA,SAAAA,EAAAA,KAAAA,OAAAA,SAAAA,EAAAA,EAAAA,GC/PpB,IAAIE,EAAQ,EAAQ,QAYhBC,EAAW,CACbC,qBAAAA,EACAC,OAAAA,GAIEC,EACgB,oBAAXC,OACHA,OACkB,oBAAXC,OACPA,OACgB,oBAATC,KACPA,KACA,GAGFC,EAAS,GAAGC,MAIZC,EAAiB,0GAErB,SAASC,IACP,MAAwB,oBAAbC,UAAiD,MAArBA,SAASC,SAAyB,GAClED,SAASC,SAASC,KA0D3Bb,EAASc,OAAS,WAChB,IA0DIC,EAAoBC,EA1DpBC,EAAW,GACbC,EAAW,KACXC,EAAgB,KAChBC,EAAqB,KAmCvB,SAASC,EAAeC,EAAOC,GAC7B,IAAIC,EAAY,KAChB,IAAID,GAAkBvB,EAASC,oBAA/B,CAGA,IAAK,IAAIpC,KAAKoD,EACZ,GAAIA,EAASQ,eAAe5D,GAC1B,IACEoD,EAASpD,GAAG6D,MAAM,KAAM,CAACJ,GAAO5B,OAAOa,EAAOoB,KAAKC,UAAW,KAC9D,MAAOC,GACPL,EAAYK,EAKlB,GAAIL,EACF,MAAMA,GAiBV,SAASM,EAAsBC,EAAKC,EAAKC,EAAQC,EAAOC,GACtD,IAEIX,EAAYzB,EAAMqC,aAAaD,GAAMA,EAAGE,MAAQF,EAEhDG,EAAUvC,EAAMqC,aAAaL,GAAOA,EAAIO,QAAUP,EAEtD,GAAIX,EACFpB,EAASuC,kBAAkBC,oCACzBpB,EACAY,EACAC,EACAK,GAEFG,SACK,GAAIjB,GAAazB,EAAM2C,QAAQlB,GAOpCH,EADQrB,EAASuC,kBAAkBf,IAAAA,OAE9B,CACL,IAUMmB,EAVF/B,EAAW,CACboB,IAAKA,EACLY,KAAMX,EACNY,OAAQX,GAGNY,OAAAA,EAG8B,oBAA9B,GAAGC,SAASpB,KAAKW,KACfK,EAASL,EAAQU,MAAMvC,MAEzBqC,EAAOH,EAAO,GACdL,EAAUK,EAAO,IAIrB/B,EAASqC,KAlLQ,IA0LjB5B,EANQ,CACNyB,KAAMA,EACNR,QAASA,EACTN,IAAKtB,IACLY,MAAO,CAACV,KAAAA,GAKZ,QAAIG,GACKA,EAAmBW,MAAMwB,KAAMtB,WAwB1C,SAASa,IACP,IAAIU,EAAsB/B,EACxBgC,EAAYlC,EACdA,EAAW,KACXE,EAAqB,KACrBD,EAAgB,KAChBE,EAAeK,MAAM,KAAM,CAACyB,GAAAA,GAA4BzD,OAAO0D,IAUjE,SAAStC,EAAOqB,EAAIkB,GAClB,IAAIC,EAAO/C,EAAOoB,KAAKC,UAAW,GAClC,GAAIR,EAAoB,CACtB,GAAID,IAAkBgB,EACpB,OAEAM,IAIJ,IAAInB,EAAQtB,EAASuC,kBAAkBJ,GAkBvC,GAjBAf,EAAqBE,EACrBH,EAAgBgB,EAChBjB,EAAWoC,EAMXC,YACE,WACMpC,IAAkBgB,GACpBM,MAGJnB,EAAMkC,WAAa,IAAO,IAAA,IAGxBH,EACF,MAAMlB,EAOV,OAHArB,EAAO2C,UA5LP,SAAmBC,GA0Hb1C,IAGJD,EAAqBZ,EAAQwD,QAC7BxD,EAAQwD,QAAU7B,EAClBd,GAAAA,GA7HAC,EAAS2C,KAAKF,IA2LhB5C,EAAO+C,YApLP,SAAqBH,GACnB,IAAK,IAAI7F,EAAIoD,EAAS/C,OAAS,EAAGL,GAAK,IAAKA,EACtCoD,EAASpD,KAAO6F,GAClBzC,EAAS6C,OAAOjG,EAAG,IAkLzBiD,EAAOiD,UA1KP,WA+GO/C,IAGLb,EAAQwD,QAAU5C,EAClBC,GAAAA,EACAD,OAAAA,GAlHAE,EAAW,IAyKNH,EAzMS,GA+PlBd,EAASuC,kBAAoB,WA4C3B,SAASyB,EAA+B7B,GACtC,QAAA,IAAWA,EAAGb,OAA0Ba,EAAGb,MAA3C,CAiBA,IAfA,IAUI2C,EACAC,EACAC,EAZAC,EAAS,0IACTC,EAAQ,wHAGRC,EAAQ,yKAERC,EAAY,gDACZC,EAAa,gCACbC,EAAQtC,EAAGb,MAAMoD,MAAM,MACvBpD,EAAQ,GAMHzD,GAFO,sBAAsB8G,KAAKxC,EAAGG,SAEjC,GAAGsC,EAAIH,EAAMvG,OAAQL,EAAI+G,IAAK/G,EAAG,CAC5C,GAAKqG,EAAQE,EAAOO,KAAKF,EAAM5G,IAAM,CACnC,IAAIgH,EAAWX,EAAM,IAAqC,IAA/BA,EAAM,GAAGY,QAAQ,UAC/BZ,EAAM,IAAmC,IAA7BA,EAAM,GAAGY,QAAQ,UAC3Bb,EAAWO,EAAWG,KAAKT,EAAM,OAE9CA,EAAM,GAAKD,EAAS,GACpBC,EAAM,GAAKD,EAAS,GACpBC,EAAM,GAAKD,EAAS,IAEtBE,EAAU,CACRnC,IAAM6C,EAAsB,KAAXX,EAAM,GACvBjB,KAAMiB,EAAM,IA1YC,IA2YbZ,KAAMuB,EAAW,CAACX,EAAM,IAAM,GAC9BtB,KAAMsB,EAAM,IAAMA,EAAM,GAAK,KAC7BrB,OAAQqB,EAAM,IAAMA,EAAM,GAAK,WAE5B,GAAKA,EAAQG,EAAMM,KAAKF,EAAM5G,IACnCsG,EAAU,CACRnC,IAAKkC,EAAM,GACXjB,KAAMiB,EAAM,IAlZC,IAmZbZ,KAAM,GACNV,MAAOsB,EAAM,GACbrB,OAAQqB,EAAM,IAAMA,EAAM,GAAK,UAE5B,CAAA,KAAKA,EAAQI,EAAMK,KAAKF,EAAM5G,KAsBnC,SArBaqG,EAAM,IAAMA,EAAM,GAAGY,QAAQ,YAAc,IACzCb,EAAWM,EAAUI,KAAKT,EAAM,MAE7CA,EAAM,GAAKD,EAAS,GACpBC,EAAM,GAAKD,EAAS,GACpBC,EAAM,GAAK,MACI,IAANrG,GAAYqG,EAAM,SAAA,IAAa/B,EAAG4C,eAK3CzD,EAAM,GAAGuB,OAASV,EAAG4C,aAAe,GAEtCZ,EAAU,CACRnC,IAAKkC,EAAM,GACXjB,KAAMiB,EAAM,IAvaC,IAwabZ,KAAMY,EAAM,GAAKA,EAAM,GAAGQ,MAAM,KAAO,GACvC9B,KAAMsB,EAAM,IAAMA,EAAM,GAAK,KAC7BrB,OAAQqB,EAAM,IAAMA,EAAM,GAAK,MAUnC,IAJKC,EAAQlB,MAAQkB,EAAQvB,OAC3BuB,EAAQlB,KAjbO,KAobbkB,EAAQnC,KAAoC,UAA7BmC,EAAQnC,IAAIgD,OAAO,EAAG,GAAgB,CAMvD,IAAIC,EAAM,IAAIC,eAKd,GAJAD,EAAIE,KAAK,MAAOhB,EAAQnC,KAAAA,GACxBiD,EAAIG,KAAK,MAGU,MAAfH,EAAII,OAAgB,CACtB,IAAIC,EAASL,EAAIM,cAAgB,GAO7BC,GAHJF,EAASA,EAAO9E,OAAO,MAGCwC,MAAM,gCAG9B,GAAIwC,EAAY,CACd,IAAIC,EAAmBD,EAAW,GAIC,MAA/BC,EAAiB5G,OAAO,KAC1B4G,GArcY,oBAAb9E,UAAiD,MAArBA,SAASC,SAAyB,GAGpED,SAASC,SAAS8E,OAShB/E,SAASC,SAAS8E,OAPrB/E,SAASC,SAAS+E,SAClB,KACAhF,SAASC,SAASgF,UACjBjF,SAASC,SAASiF,KAAO,IAAMlF,SAASC,SAASiF,KAAO,KA6bRJ,EAAiBjF,MAAM,IAKlE2D,EAAQnC,IAAMyD,EAAiBjF,MAAM,GAAI,KAK/Cc,EAAMsC,KAAKO,GAGb,OAAK7C,EAAMpD,OAIJ,CACL4E,KAAMX,EAAGW,KACTR,QAASH,EAAGG,QACZN,IAAKtB,IACLY,MAAOA,GAPA,MAwBX,SAASkB,EAAoCsD,EAAW9D,EAAKC,EAAQK,GACnE,IAAIyD,EAAU,CACZ/D,IAAKA,EACLY,KAAMX,GAGR,GAAI8D,EAAQ/D,KAAO+D,EAAQnD,KAAM,CAO/B,GANAkD,EAAUtC,YAAAA,EAELuC,EAAQ9C,OACX8C,EAAQ9C,KAhgBO,KAmgBb6C,EAAUxE,MAAMpD,OAAS,GACvB4H,EAAUxE,MAAM,GAAGU,MAAQ+D,EAAQ/D,IAAK,CAC1C,GAAI8D,EAAUxE,MAAM,GAAGsB,OAASmD,EAAQnD,KACtC,OAAA,EACK,IACJkD,EAAUxE,MAAM,GAAGsB,MACpBkD,EAAUxE,MAAM,GAAG2B,OAAS8C,EAAQ9C,KAGpC,OADA6C,EAAUxE,MAAM,GAAGsB,KAAOmD,EAAQnD,MAAAA,EAQxC,OAFAkD,EAAUxE,MAAM0E,QAAQD,GACxBD,EAAUG,SAAAA,GAAU,EAMtB,OAHEH,EAAUtC,YAAAA,GAAa,EAe3B,SAAS0C,EAAsC/D,EAAIgE,GASjD,IARA,IAIEjC,EACAkC,EALEC,EAAe,qEACjB/E,EAAQ,GACRgF,EAAQ,GACRC,GAAAA,EAMIC,EAAON,EAAsCO,OACjDD,IAASD,EACTC,EAAOA,EAAKC,OAEZ,GAAID,IAASjE,GAAqBiE,IAASxG,EAASc,OAApD,CAkBA,GAbAsF,EAAO,CACLpE,IAAK,KACLiB,KAzjBe,IA0jBfL,KAAM,KACNC,OAAQ,MAGN2D,EAAK1D,KACPsD,EAAKnD,KAAOuD,EAAK1D,MACPoB,EAAQmC,EAAa1B,KAAK6B,EAAKzD,eACzCqD,EAAKnD,KAAOiB,EAAM,SAAA,IAGTkC,EAAKnD,KACd,IACEmD,EAAKnD,KAAOiB,EAAM9F,MAAMsI,UAAU,EAAGxC,EAAM9F,MAAM0G,QAAQ,MACzD,MAAO6B,IAGPL,EAAM,GAAKE,GACbD,GAAAA,EAEAD,EAAM,GAAKE,IAAAA,EAGblF,EAAMsC,KAAKwC,GAGTD,GAGF7E,EAAMwC,OAAO,EAAGqC,GAGlB,IAAIS,EAAS,CACX9D,KAAMX,EAAGW,KACTR,QAASH,EAAGG,QACZN,IAAKtB,IACLY,MAAOA,GAQT,OANAkB,EACEoE,EACAzE,EAAG0E,WAAa1E,EAAG2E,SACnB3E,EAAGS,MAAQT,EAAG4E,YAGTH,EAQT,SAASrE,EAAkBJ,EAAIgE,GAC7B,IAAI7E,EAAQ,KACZ6E,EAAiB,MAATA,EAAgB,GAAKA,EAE7B,IAEE,GADA7E,EAAQ0C,EAA+B7B,GAErC,OAAOb,EAET,MAAOqF,GACP,GAAI3G,EAASE,MACX,MAAMyG,EAIV,IAEE,GADArF,EAAQ4E,EAAsC/D,EAAIgE,EAAQ,GAExD,OAAO7E,EAET,MAAOqF,GACP,GAAI3G,EAASE,MACX,MAAMyG,EAGV,MAAO,CACL7D,KAAMX,EAAGW,KACTR,QAASH,EAAGG,QACZN,IAAKtB,KAOT,OAHA6B,EAAkBC,oCAAsCA,EACxDD,EAAkByB,+BAAiCA,EAE5CzB,EAhVoB,GAmV7B5C,EAAOC,QAAUI,GAAAA,OAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aC9qBjB,IAAIgH,EAAa,EAAQ,QASzB,SAASC,EAAcC,GACnB,OAAmB,IAAfA,EAAIhJ,OACG8I,EAAWG,SAEH,IAAfD,EAAIhJ,OACGgJ,EAAI,GAER,SAAe9I,GAClB,OAAO8I,EAAIE,QAAO,SAAUC,EAAMC,GAAM,OAAOA,EAAGD,KAAUjJ,IATpEwB,EAAQ2H,KAPR,WAEI,IADA,IAAIL,EAAM,GACDM,EAAK,EAAGA,EAAK5F,UAAU1D,OAAQsJ,IACpCN,EAAIM,GAAM5F,UAAU4F,GAExB,OAAOP,EAAcC,IAczBtH,EAAQqH,cAAgBA,GAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GCtBxB,IAAIlH,EAAQ,EAAQ,QAuCpBJ,EAAOC,QAAU,CACf6H,WAtCe,SAASC,EAASC,EAAOC,GACxC,IAAIC,EAAuBH,EAAQC,GAC/BG,EAAkBJ,EAEtB,GAAMC,KAASD,EAAf,CAIA,IAAIK,EAAwB,SAAVJ,EAAmB,UAAYA,EAEjDD,EAAQC,GAAS,WACf,IAAIrE,EAAO,GAAG9C,MAAMmB,KAAKC,WAErBG,EAAMhC,EAAMiI,SAAS1E,EAAM,KAC3BjE,EAAO,CAACsI,MAAOI,EAAaE,OAAQ,UAAWC,MAAO,CAACtG,UAAW0B,IAExD,WAAVqE,GAAAA,IACErE,EAAK,KAEPvB,EACE,sBAAwBhC,EAAMiI,SAAS1E,EAAK9C,MAAM,GAAI,MAAQ,kBAChEnB,EAAK6I,MAAMtG,UAAY0B,EAAK9C,MAAM,GAClCoH,GAAYA,EAAS7F,EAAK1C,IAG5BuI,GAAYA,EAAS7F,EAAK1C,GAIxBwI,GAGFM,SAASC,UAAU1G,MAAMC,KAAKkG,EAAsBC,EAAiBxE,QAAAA,KAAAA,SAAAA,EAAAA,GCpB3E,SAASwB,EAAQuD,EAAUC,GACzB,IAAK,IAAIzK,EAAI,EAAGA,EAAIwK,EAASnK,SAAUL,EACrC,GAAIwK,EAASxK,KAAOyK,EAAQ,OAAOzK,EAErC,OAAQ,EAyBV,SAAS0K,EAAWC,EAAUC,GAC5B,IAAInH,EAAQ,GACRoH,EAAO,GAWX,OATqB,MAAjBD,IACFA,EAAgB,SAASrJ,EAAKuJ,GAC5B,OAAIrH,EAAM,KAAOqH,EACR,eAEF,eAAiBD,EAAKlI,MAAM,EAAGsE,EAAQxD,EAAOqH,IAAQC,KAAK,KAAO,MAItE,SAASxJ,EAAKuJ,GACnB,GAAIrH,EAAMpD,OAAS,EAAG,CACpB,IAAI2K,EAAU/D,EAAQxD,EAAO4B,OAC5B2F,EAAUvH,EAAMwC,OAAO+E,EAAU,GAAKvH,EAAMsC,KAAKV,OACjD2F,EAAUH,EAAK5E,OAAO+E,EAASC,EAAAA,EAAU1J,GAAOsJ,EAAK9E,KAAKxE,IAEtD0F,EAAQxD,EAAOqH,KAClBA,EAAQF,EAAc9G,KAAKuB,KAAM9D,EAAKuJ,SAGxCrH,EAAMsC,KAAK+E,GAGb,OAAmB,MAAZH,EACHG,aAAiBI,MA5CzB,SAAwBJ,GACtB,IAAIK,EAAM,CAER1H,MAAOqH,EAAMrH,MACbgB,QAASqG,EAAMrG,QACfQ,KAAM6F,EAAM7F,MAGd,IAAK,IAAIjF,KAAK8K,EACRM,OAAOb,UAAU3G,eAAeE,KAAKgH,EAAO9K,KAC9CmL,EAAInL,GAAK8K,EAAM9K,IAInB,OAAOmL,EAdT,CA4CgDL,GAASA,EACjDH,EAAS7G,KAAKuB,KAAM9D,EAAKuJ,KA5DvBhJ,EAAOC,QAUjB,SAAmBsJ,EAAKV,EAAUW,EAAQV,GACxC,OAAOW,KAAKC,UAAUH,EAAKX,EAAWC,EAAUC,GAAgBU,KAV1DG,aAAef,GAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aCXvB,IACQgB,EADJC,EAAatG,MAAQA,KAAKsG,YACtBD,EAAgB,SAAUhM,EAAGP,GAI7B,OAHAuM,EAAgBN,OAAOQ,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUpM,EAAGP,GAAKO,EAAEmM,UAAY1M,IACvE,SAAUO,EAAGP,GAAK,IAAK,IAAI4M,KAAK5M,EAAOA,EAAEyE,eAAemI,KAAIrM,EAAEqM,GAAK5M,EAAE4M,MACpDrM,EAAGP,IAErB,SAAUO,EAAGP,GAEhB,SAAS6M,IAAO3G,KAAK4G,YAAcvM,EADnCgM,EAAchM,EAAGP,GAEjBO,EAAE6K,UAAkB,OAANpL,EAAaiM,OAAOc,OAAO/M,IAAM6M,EAAGzB,UAAYpL,EAAEoL,UAAW,IAAIyB,KAInFG,EAAe,EAAQ,QACvBC,EAAa,EAAQ,QACrBC,EAAiB,EAAQ,QACzBC,EAAiB,EAAQ,QACzBC,EAAW,EAAQ,QACnBC,EAAoB,EAAQ,QAC5BC,EAAc,SAAUC,GAExB,SAASD,EAAWE,EAAmBnI,EAAOoI,GAC1C,IAAIC,EAAQH,EAAO5I,KAAKuB,OAASA,KAKjC,OAJAwH,EAAMC,eAAiB,KACvBD,EAAME,iBAAAA,EACNF,EAAMG,oBAAAA,EACNH,EAAMI,WAAAA,EACElJ,UAAU1D,QACd,KAAK,EACDwM,EAAMK,YAAcd,EAAWe,MAC/B,MACJ,KAAK,EACD,IAAKR,EAAmB,CACpBE,EAAMK,YAAcd,EAAWe,MAC/B,MAEJ,GAAiC,iBAAtBR,EAAgC,CACnCA,aAA6BF,GAC7BI,EAAMG,mBAAqBL,EAAkBK,mBAC7CH,EAAMK,YAAcP,EACpBA,EAAkBS,IAAIP,KAGtBA,EAAMG,oBAAAA,EACNH,EAAMK,YAAc,IAAIG,EAAeR,EAAOF,IAElD,MAER,QACIE,EAAMG,oBAAAA,EACNH,EAAMK,YAAc,IAAIG,EAAeR,EAAOF,EAAmBnI,EAAOoI,GAGhF,OAAOC,EAoDX,OArFAlB,EAAUc,EAAYC,GAmCtBD,EAAWlC,UAAU+B,EAAegB,cAAgB,WAAc,OAAOjI,MACzEoH,EAAWP,OAAS,SAAUqB,EAAM/I,EAAOoI,GACvC,IAAIY,EAAa,IAAIf,EAAWc,EAAM/I,EAAOoI,GAE7C,OADAY,EAAWR,oBAAAA,EACJQ,GAEXf,EAAWlC,UAAUgD,KAAO,SAAUzC,GAC7BzF,KAAK4H,WACN5H,KAAKoI,MAAM3C,IAGnB2B,EAAWlC,UAAU/F,MAAQ,SAAU2G,GAC9B9F,KAAK4H,YACN5H,KAAK4H,WAAAA,EACL5H,KAAKqI,OAAOvC,KAGpBsB,EAAWlC,UAAUqC,SAAW,WACvBvH,KAAK4H,YACN5H,KAAK4H,WAAAA,EACL5H,KAAKsI,cAGblB,EAAWlC,UAAUvE,YAAc,WAC3BX,KAAKuI,SAGTvI,KAAK4H,WAAAA,EACLP,EAAOnC,UAAUvE,YAAYlC,KAAKuB,QAEtCoH,EAAWlC,UAAUkD,MAAQ,SAAU3C,GACnCzF,KAAK6H,YAAYK,KAAKzC,IAE1B2B,EAAWlC,UAAUmD,OAAS,SAAUvC,GACpC9F,KAAK6H,YAAY1I,MAAM2G,GACvB9F,KAAKW,eAETyG,EAAWlC,UAAUoD,UAAY,WAC7BtI,KAAK6H,YAAYN,WACjBvH,KAAKW,eAETyG,EAAWlC,UAAUsD,uBAAyB,WAC1C,IAAIC,EAAmBzI,KAAKyI,iBAM5B,OALAzI,KAAKyI,iBAAmB,KACxBzI,KAAKW,cACLX,KAAKuI,QAAAA,EACLvI,KAAK4H,WAAAA,EACL5H,KAAKyI,iBAAmBA,EACjBzI,MAEJoH,EAtFO,CAuFhBJ,EAAe0B,cACjBhM,EAAQ0K,WAAaA,EACrB,IAAIY,EAAkB,SAAUX,GAE5B,SAASW,EAAeW,EAAmBC,EAAgBzJ,EAAOoI,GAC9D,IAEIW,EAFAV,EAAQH,EAAO5I,KAAKuB,OAASA,KACjCwH,EAAMmB,kBAAoBA,EAE1B,IAAIE,EAAUrB,EAoBd,OAnBIV,EAAagC,WAAWF,GACxBV,EAAOU,EAEFA,IACLV,EAAOU,EAAeV,KACtB/I,EAAQyJ,EAAezJ,MACvBoI,EAAWqB,EAAerB,SACtBqB,IAAmB7B,EAAWe,QAC9Be,EAAU9C,OAAOc,OAAO+B,GACpB9B,EAAagC,WAAWD,EAAQlI,cAChC6G,EAAMO,IAAIc,EAAQlI,YAAYoI,KAAKF,IAEvCA,EAAQlI,YAAc6G,EAAM7G,YAAYoI,KAAKvB,KAGrDA,EAAMwB,SAAWH,EACjBrB,EAAMY,MAAQF,EACdV,EAAMa,OAASlJ,EACfqI,EAAMc,UAAYf,EACXC,EA0GX,OAnIAlB,EAAU0B,EAAgBX,GA2B1BW,EAAe9C,UAAUgD,KAAO,SAAUzC,GACtC,IAAKzF,KAAK4H,WAAa5H,KAAKoI,MAAO,CAC/B,IAAIO,EAAoB3I,KAAK2I,kBACxBzB,EAAS+B,OAAOC,uCAA0CP,EAAkBhB,mBAGxE3H,KAAKmJ,gBAAgBR,EAAmB3I,KAAKoI,MAAO3C,IACzDzF,KAAKW,cAHLX,KAAKoJ,aAAapJ,KAAKoI,MAAO3C,KAO1CuC,EAAe9C,UAAU/F,MAAQ,SAAU2G,GACvC,IAAK9F,KAAK4H,UAAW,CACjB,IAAIe,EAAoB3I,KAAK2I,kBACzBO,EAAwChC,EAAS+B,OAAOC,sCAC5D,GAAIlJ,KAAKqI,OACAa,GAA0CP,EAAkBhB,oBAK7D3H,KAAKmJ,gBAAgBR,EAAmB3I,KAAKqI,OAAQvC,GACrD9F,KAAKW,gBALLX,KAAKoJ,aAAapJ,KAAKqI,OAAQvC,GAC/B9F,KAAKW,oBAOR,GAAKgI,EAAkBhB,mBAQpBuB,GACAP,EAAkBlB,eAAiB3B,EACnC6C,EAAkBjB,iBAAAA,GAGlBP,EAAkBkC,gBAAgBvD,GAEtC9F,KAAKW,kBAfuC,CAE5C,GADAX,KAAKW,cACDuI,EACA,MAAMpD,EAEVqB,EAAkBkC,gBAAgBvD,MAc9CkC,EAAe9C,UAAUqC,SAAW,WAChC,IAAIC,EAAQxH,KACZ,IAAKA,KAAK4H,UAAW,CACjB,IAAIe,EAAoB3I,KAAK2I,kBAC7B,GAAI3I,KAAKsI,UAAW,CAChB,IAAIgB,EAAkB,WAAc,OAAO9B,EAAMc,UAAU7J,KAAK+I,EAAMwB,WACjE9B,EAAS+B,OAAOC,uCAA0CP,EAAkBhB,oBAK7E3H,KAAKmJ,gBAAgBR,EAAmBW,GACxCtJ,KAAKW,gBALLX,KAAKoJ,aAAaE,GAClBtJ,KAAKW,oBAQTX,KAAKW,gBAIjBqH,EAAe9C,UAAUkE,aAAe,SAAUhF,EAAIqB,GAClD,IACIrB,EAAG3F,KAAKuB,KAAKgJ,SAAUvD,GAE3B,MAAOK,GAEH,GADA9F,KAAKW,cACDuG,EAAS+B,OAAOC,sCAChB,MAAMpD,EAGNqB,EAAkBkC,gBAAgBvD,KAI9CkC,EAAe9C,UAAUiE,gBAAkB,SAAUI,EAAQnF,EAAIqB,GAC7D,IAAKyB,EAAS+B,OAAOC,sCACjB,MAAM,IAAIrD,MAAM,YAEpB,IACIzB,EAAG3F,KAAKuB,KAAKgJ,SAAUvD,GAE3B,MAAOK,GACH,OAAIoB,EAAS+B,OAAOC,uCAChBK,EAAO9B,eAAiB3B,EACxByD,EAAO7B,iBAAAA,GAAkB,IAIzBP,EAAkBkC,gBAAgBvD,IAAAA,GAI1C,OAAA,GAEJkC,EAAe9C,UAAUsE,aAAe,WACpC,IAAIb,EAAoB3I,KAAK2I,kBAC7B3I,KAAKgJ,SAAW,KAChBhJ,KAAK2I,kBAAoB,KACzBA,EAAkBhI,eAEfqH,EApIW,CAqIpBZ,GACF1K,EAAQsL,eAAiBA,GAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aC/OzBtL,EAAQ+M,SAHR,SAAkBjQ,GACd,OAAa,OAANA,GAA2B,iBAANA,IAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aCDhC,IAAI0N,EAAW,EAAQ,QACnBC,EAAoB,EAAQ,QAChCzK,EAAQoL,MAAQ,CACZS,QAAAA,EACAL,KAAM,SAAUzC,KAChBtG,MAAO,SAAU2G,GACb,GAAIoB,EAAS+B,OAAOC,sCAChB,MAAMpD,EAGNqB,EAAkBkC,gBAAgBvD,IAG1CyB,SAAU,eAAA,KAAA,SAAA,EAAA,EAAA,GCfd,IAAA,EAAA,OAAA,KAAmE,EAAA,mBAAF,EAA8F,WAAW,aAA4T,SAASnN,EAAEN,EAAEM,EAAEC,GAAG,IAAIoJ,EAAE,IAAIzB,eAAeyB,EAAExB,KAAK,MAAMnI,GAAG2J,EAAEiG,aAAa,OAAOjG,EAAEkG,OAAO,WAAW9P,EAAE4J,EAAEmG,SAASxP,EAAEC,IAAIoJ,EAAEhD,QAAQ,WAAW+D,QAAQrF,MAAM,4BAA4BsE,EAAEvB,OAAO,SAAS7H,EAAER,GAAG,IAAIC,EAAE,IAAIkI,eAAelI,EAAEmI,KAAK,OAAOpI,GAAAA,GAAM,IAAIC,EAAEoI,OAAO,MAAMrI,IAAI,OAAO,KAAKC,EAAEqI,QAAQ,KAAKrI,EAAEqI,OAAO,SAASsB,EAAE5J,GAAG,IAAIA,EAAEgQ,cAAc,IAAIC,WAAW,UAAU,MAAM1P,GAAG,IAAIN,EAAE2D,SAASsM,YAAY,eAAejQ,EAAEkQ,eAAe,SAAA,GAAQ,EAAM9M,OAAO,EAAE,EAAE,EAAE,GAAG,IAAA,GAAG,GAAG,GAAG,EAAM,EAAE,MAAMrD,EAAEgQ,cAAc/P,IAAI,IAAImQ,EAAE,iBAAiB/M,QAAQA,OAAOA,SAASA,OAAOA,OAAO,iBAAiBE,MAAMA,KAAKA,OAAOA,KAAKA,KAAK,iBAAiBD,QAAQA,OAAOA,SAASA,OAAOA,YAAAA,EAActD,EAAEoQ,EAAEC,SAAS,iBAAiBhN,QAAQA,SAAS+M,EAAE,aAAa,aAAaE,kBAAkBjF,UAAU,SAASpL,EAAEsQ,EAAEC,GAAG,IAAI1P,EAAEsP,EAAEK,KAAKL,EAAEM,UAAU7I,EAAEjE,SAAS+M,cAAc,KAA6B9I,EAAE+I,SAA1BL,EAAEA,GAAGtQ,EAAE8F,MAAM,WAAwB8B,EAAEgJ,IAAI,WAAW,iBAAiB5Q,GAAG4H,EAAE/D,KAAK7D,EAAE4H,EAAEc,SAAS9E,SAAS8E,OAAOiB,EAAE/B,GAAGrH,EAAEqH,EAAE/D,MAAMvD,EAAEN,EAAEsQ,EAAEC,GAAG5G,EAAE/B,EAAEA,EAAEiJ,OAAO,YAAYjJ,EAAE/D,KAAKhD,EAAEiQ,gBAAgB9Q,GAAGuG,YAAW,WAAW1F,EAAEkQ,gBAAgBnJ,EAAE/D,QAAO,KAAK0C,YAAW,WAAWoD,EAAE/B,KAAI,KAAK,qBAAqBoJ,UAAU,SAASb,EAAEG,EAAEC,GAAG,GAAGD,EAAEA,GAAGH,EAAErK,MAAM,WAAW,iBAAiBqK,EAAEa,UAAUC,iBAA5/C,SAAWlR,EAAEC,GAAG,YAAA,IAA0BA,EAAEA,EAAE,CAACkR,SAAAA,GAAY,iBAAiBlR,IAAI0K,QAAQyG,KAAK,sDAAsDnR,EAAE,CAACkR,SAASlR,IAAIA,EAAEkR,SAAS,6EAA6EE,KAAKrR,EAAEsR,MAAM,IAAIC,KAAK,CAAC,SAASvR,GAAG,CAACsR,KAAKtR,EAAEsR,OAAOtR,EAA7S,CAA+gDoQ,EAAEI,GAAGD,QAAQ,GAAG/P,EAAE4P,GAAG7P,EAAE6P,EAAEG,EAAEC,OAAO,CAAC,IAAI1P,EAAE8C,SAAS+M,cAAc,KAAK7P,EAAEgD,KAAKsM,EAAEtP,EAAEgQ,OAAO,SAAStK,YAAW,WAAWoD,EAAE9I,QAAO,SAASd,EAAEC,EAAEO,EAAEoJ,GAAG,IAAGA,EAAEA,GAAGxB,KAAK,GAAG,aAAcwB,EAAEhG,SAAS4N,MAAM5H,EAAEhG,SAAS6N,KAAKC,UAAU,kBAAkB,iBAAiB1R,EAAE,OAAOO,EAAEP,EAAEC,EAAEO,GAAG,IAAI+P,EAAE,6BAA6BvQ,EAAEsR,KAAKd,EAAE,eAAea,KAAKjB,EAAEuB,cAAcvB,EAAEwB,OAAO9Q,EAAE,eAAeuQ,KAAKJ,UAAUY,WAAW,IAAI/Q,GAAGyP,GAAGC,IAAI,iBAAiBsB,WAAW,CAAC,IAAIjK,EAAE,IAAIiK,WAAWjK,EAAEkK,UAAU,WAAW,IAAI/R,EAAE6H,EAAEgC,OAAO7J,EAAEc,EAAEd,EAAEA,EAAEgS,QAAQ,eAAe,yBAAyBpI,EAAEA,EAAE/F,SAASC,KAAK9D,EAAE6D,SAAS7D,EAAE4J,EAAE,MAAM/B,EAAEoK,cAAcjS,OAAO,CAAC,IAAIoC,EAAEgO,EAAEK,KAAKL,EAAEM,UAAUwB,EAAE9P,EAAE2O,gBAAgB/Q,GAAG4J,EAAEA,EAAE/F,SAASqO,EAAErO,SAASC,KAAKoO,EAAEtI,EAAE,KAAKpD,YAAW,WAAWpE,EAAE4O,gBAAgBkB,KAAI,QAAQ9B,EAAEC,OAAOrQ,EAAEqQ,OAAOrQ,EAA+B4C,EAAOC,QAAQ7C,IAA77E,EAAA,MAAA,EAAJ,IAAI,KAAA,EAAA,QAAA,IAAA,KAAA,SAAA,EAAA,EAAA,GCAnE,IAAA,GAAA,WAA0F,SAASmS,EAAGnS,EAAEC,EAAEM,GAAG,OAAOP,EAAE4E,KAAKD,MAAM3E,EAAEkP,KAAKrK,WAAW,SAASuN,EAAGpS,EAAEC,EAAEM,GAAG,IAAIP,EAAE,MAAMgM,QAAQ,GAAG,EAAEnH,UAAU1D,OAAO,CAAC,IAAIX,EAAEoM,MAAMvB,UAAU5H,MAAMmB,KAAKC,UAAU,GAAG,OAAO,WAAW,IAAItE,EAAEqM,MAAMvB,UAAU5H,MAAMmB,KAAKC,WAA8C,OAAnC+H,MAAMvB,UAAUpC,QAAQtE,MAAMpE,EAAEC,GAAUR,EAAE2E,MAAM1E,EAAEM,IAAI,OAAO,WAAW,OAAOP,EAAE2E,MAAM1E,EAAE4E,YAAY,SAASgI,EAAE7M,EAAEC,EAAEM,GAAkG,OAA/FsM,EAAEzB,SAASC,UAAU6D,OAAO,GAAG9D,SAASC,UAAU6D,KAAKlJ,WAAW+B,QAAQ,eAAeoK,EAAGC,GAAYzN,MAAM,KAAKE,WAAW,IAAI9E,EAAEsS,KAAKC,KAAK,WAAW,OAAO,IAAID,MAAM,SAASE,EAAGvS,EAAEC,GAAGkG,KAAKnG,EAAEA,EAAEmG,KAAKqM,EAAEvS,GAAGD,EAAEmG,KAAK5F,EAAE4F,KAAKqM,EAAE5O,SAAS,IAAI6O,IAAKpP,OAAOqP,SAAS,SAASvS,EAAEH,EAAEC,EAAEM,EAAEC,GAA0B,GAAvBP,EAAED,EAAEO,EAAEoQ,cAAc1Q,GAAMM,EAAE,IAAI,IAAIqJ,KAAKrJ,EAAEA,EAAEmE,eAAekF,KAAK,SAASA,EAAE3J,EAAE0S,MAAMC,QAAQrS,EAAEqJ,GAAG3J,EAAE4S,aAAajJ,EAAErJ,EAAEqJ,KAA6C,OAAxCpJ,GAAGP,EAAE6S,YAAY9S,EAAEO,EAAEwS,eAAevS,IAAWP,EAAE,SAAS+S,EAAEhT,EAAEC,EAAEM,IAAGP,EAAEA,EAAEO,EAAE0S,qBAAqBhT,GAAG,MAAOD,EAAE4D,SAASsP,iBAAiBlT,EAAEmT,aAAa5S,EAAEP,EAAEoT,WAAW,SAASC,EAAErT,GAAGA,EAAEsT,YAAYtT,EAAEsT,WAAWC,YAAYvT,GAC1hC,SAASwT,EAAExT,EAAEC,EAAEM,GAAGN,EAAEA,GAAG,GAAGM,EAAEA,GAAG,GAAG,IAAI,IAAIC,EAAER,EAAEyT,UAAU9L,MAAM,OAAOiC,EAAE,EAAEA,EAAE3J,EAAEkB,OAAOyI,GAAG,EAAE,CAAC,IAAI,IAAIwG,GAAAA,EAAKG,EAAE,EAAEA,EAAE/P,EAAEW,OAAOoP,GAAG,EAAE,GAAGtQ,EAAE2J,KAAKpJ,EAAE+P,GAAG,CAACH,GAAAA,EAAK,MAAMA,GAAG5P,EAAEqG,KAAK5G,EAAE2J,IAAS,IAAL3J,EAAE,GAAO2J,EAAE,EAAEA,EAAEpJ,EAAEW,OAAOyI,GAAG,EAAE,CAAM,IAALwG,GAAAA,EAASG,EAAE,EAAEA,EAAEhQ,EAAEY,OAAOoP,GAAG,EAAE,GAAG/P,EAAEoJ,KAAKrJ,EAAEgQ,GAAG,CAACH,GAAAA,EAAK,MAAMA,GAAGnQ,EAAE4G,KAAKrG,EAAEoJ,IAAI5J,EAAEyT,UAAUxT,EAAE4L,KAAK,KAAKmG,QAAQ,OAAO,KAAKA,QAAQ,YAAY,IAAI,SAASpS,EAAEI,EAAEC,GAAG,IAAI,IAAIM,EAAEP,EAAEyT,UAAU9L,MAAM,OAAOnH,EAAE,EAAEoJ,EAAErJ,EAAEY,OAAOX,EAAEoJ,EAAEpJ,IAAI,GAAGD,EAAEC,IAAIP,EAAE,OAAA,EAAS,OAAA,EAC3W,SAASyT,EAAE1T,EAAEC,EAAEM,GAAG,SAASC,IAAImT,GAAG/J,GAAGwG,IAAIuD,EAAEpD,GAAGoD,EAAE,MAAM1T,EAAEE,EAAEH,EAAE,OAAO,CAAC6Q,IAAI,aAAa/M,KAAK7D,EAAE2T,MAAM,QAAQ,IAAIhK,GAAAA,EAAKwG,GAAAA,EAAKG,EAAE,KAAKoD,EAAEpT,GAAG,KAAKkS,GAAIxS,EAAE6P,OAAO,WAAWlG,GAAAA,EAAKpJ,KAAKP,EAAE2G,QAAQ,WAAWgD,GAAAA,EAAK2G,EAAEvE,MAAM,6BAA6BxL,MAAMgG,YAAW,WAAWoD,GAAAA,EAAKpJ,MAAK,GAAGwS,EAAEhT,EAAE,OAAOC,GACjW,SAAS4T,EAAE7T,EAAEC,EAAEM,EAAEC,GAAG,IAAIoJ,EAAE5J,EAAEO,EAAE0S,qBAAqB,QAAQ,GAAG,GAAGrJ,EAAE,CAAC,IAAIwG,EAAEjQ,EAAEH,EAAE,SAAS,CAAC8T,IAAI7T,IAAIsQ,GAAAA,EAA4T,OAAvTH,EAAEN,OAAOM,EAAE2D,mBAAmB,WAAWxD,GAAGpK,KAAK6N,YAAY,UAAU7N,KAAK6N,YAAY,YAAY7N,KAAK6N,aAAazD,GAAAA,EAAKhQ,GAAGA,EAAE,MAAM6P,EAAEN,OAAOM,EAAE2D,mBAAmB,KAAK,QAAQ3D,EAAEkD,WAAWW,SAASrK,EAAE2J,YAAYnD,KAAKxG,EAAEkJ,YAAY1C,GAAG5J,YAAW,WAAW+J,IAAIA,GAAAA,EAAKhQ,GAAGA,EAAEyL,MAAM,2BAA0BxL,GAAG,KAAY4P,EAAE,OAAO,KAAM,SAAS8D,IAAI/N,KAAKnG,EAAE,EAAEmG,KAAK5F,EAAE,KAAK,SAAS4T,EAAEnU,GAAS,OAANA,EAAEA,IAAW,WAAWA,EAAEA,IAAIoU,EAAEpU,IAAI,SAASqU,EAAErU,EAAEC,GAAGD,EAAEO,EAAEN,EAAEmU,EAAEpU,GAAG,SAASoU,EAAEpU,GAAG,GAAGA,EAAEA,GAAGA,EAAEO,IAAIP,EAAEO,IAAIP,EAAEO,EAAE,MAAO,SAAS+T,EAAEtU,GAAGmG,KAAKnG,EAAEA,GAAG,IAAsJ,SAASuU,EAAEvU,EAAEC,GAAGkG,KAAK5F,EAAEP,EAAEmG,KAAKiK,EAAE,EAAEjK,KAAKnG,EAAE,IAAI,IAAIO,GAAGN,GAAG,MAAMgG,MAAM,qBAAqB1F,IAAI4F,KAAKnG,EAAEO,EAAE,GAAG4F,KAAKiK,EAAEoE,SAASjU,EAAE,GAAG,KAAgE,SAASkU,EAAEzU,GAAG,IAAIC,EAAE,GAAGD,EAAEA,EAAE2H,MAAM,QAAQ,IAAI,IAAIpH,EAAE,EAAEA,EAAEP,EAAEmB,OAAOZ,IAAI,CAAC,IAAIC,EAAER,EAAEO,GAAGyR,QAAQ,QAAQ,KAAK,GAAGxR,EAAEuH,QAAQ,MAAM,MAAMsJ,KAAK7Q,GAAGP,EAAE4G,KAAK,IAAIrG,EAAE,KAAKP,EAAE4G,KAAKrG,GAAG,OAAOP,EAAE4L,KAAK,KAAK,SAAS6I,EAAE1U,GAAG,OAAOA,EAAEA,EAAEA,EAAEoQ,EAAE,SAASuE,EAAE3U,GAAG,IAAIC,EAAE,SAAuD,MAA9C,MAAMD,EAAEA,EAAEC,EAAE,UAAU,MAAMD,EAAEA,IAAIC,EAAE,UAAiBA,EAC7tC,SAAS2U,EAAG5U,GAAG,IAAIC,EAAE,EAAEM,EAAE,IAAIC,EAAE,KAA0N,OAArNR,KAAKQ,EAAER,EAAEiG,MAAM,8BAA8BzF,EAAE,KAAKD,EAAEC,EAAE,GAAGyH,OAAO,EAAE,GAAG4M,gBAAgBrU,EAAER,EAAEiG,MAAM,4BAA4BzF,EAAE,KAAK,QAAQ6Q,KAAK7Q,EAAE,IAAIP,EAAE,EAAE,UAAUoR,KAAK7Q,EAAE,MAAMP,EAAEuU,SAAShU,EAAE,GAAGyH,OAAO,EAAE,GAAG,OAAc1H,EAAEN,EAAG,SAAS6U,EAAG9U,EAAEC,GAAGkG,KAAK5F,EAAEP,EAAEmG,KAAKiK,EAAEpQ,EAAEwS,EAAE5O,SAASsP,gBAAgB/M,KAAKqK,EAAEvQ,EAAEkG,KAAKnG,EAAE,IAAIsU,EAAE,KAAKnO,KAAK0B,GAAAA,IAAO5H,EAAE8U,OAAO5O,KAAKoK,GAAAA,IAAOtQ,EAAE+U,QAA0E,SAASC,EAAEjV,GAAG,GAAGA,EAAEuQ,EAAE,CAAC,IAAItQ,EAAEL,EAAEI,EAAEoQ,EAAEpQ,EAAEA,EAAEO,EAAE,KAAK,WAAWA,EAAE,GAAGC,EAAE,CAACR,EAAEA,EAAEO,EAAE,KAAK,YAAYN,GAAGM,EAAEsG,KAAK7G,EAAEA,EAAEO,EAAE,KAAK,aAAaiT,EAAExT,EAAEoQ,EAAE7P,EAAEC,GAAG0U,EAAElV,EAAE,YAAY,SAASkV,EAAElV,EAAEC,EAAEM,GAAMP,EAAE6H,GAAG7H,EAAEwQ,EAAEvQ,KAAMM,EAAEP,EAAEwQ,EAAEvQ,GAAGM,EAAEA,EAAEmU,EAAEnU,IAASP,EAAEwQ,EAAEvQ,MAAM,SAASkV,IAAKhP,KAAK5F,EAAE,GAAgH,SAAS6U,EAAEpV,EAAEC,GAAGkG,KAAK5F,EAAEP,EAAEmG,KAAKiK,EAAEnQ,EAAEkG,KAAKnG,EAAEG,EAAEgG,KAAK5F,EAAE,OAAO,CAAC,cAAc,QAAQ4F,KAAKiK,GAAG,SAASiF,EAAErV,GAAGgT,EAAEhT,EAAEO,EAAE,OAAOP,EAAEA,GAAG,SAASsV,EAAEtV,GAAG,MAAM,4LAA4LyU,EAAEzU,EAAEO,GAAG,eAAmBoU,EAAE3U,GAAG,gBAAiBA,EAAEoQ,EAAE,MAAY,SAASmF,EAAEvV,EAAEC,EAAEM,EAAEC,EAAEoJ,EAAEwG,GAAGjK,KAAKoK,EAAEvQ,EAAEmG,KAAK0B,EAAE5H,EAAEkG,KAAKnG,EAAEQ,EAAE2F,KAAK5F,EAAEA,EAAE4F,KAAKiK,EAAExG,GAAG,IAAIzD,KAAKqK,EAAEJ,QAAAA,EAAkY,SAASoF,EAAExV,EAAEC,EAAEM,EAAEC,EAAEoJ,EAAEwG,EAAEG,GAAGpK,KAAKkN,EAAErT,EAAEmG,KAAK+N,EAAEjU,EAAEkG,KAAK5F,EAAEA,EAAE4F,KAAKnG,EAAEQ,EAAE2F,KAAKjG,EAAEqQ,GAAG,UAAUpK,KAAKiK,EAAE,GAAGjK,KAAKqN,EAAE5J,GAAG,IAAIzD,KAAK6M,EAAE5C,GAAG,KAAKjK,KAAKwN,EAAExN,KAAK0B,EAAE1B,KAAKqK,EAAErK,KAAKoK,EAAE,KAAKpK,KAAKoK,EAAE,IAAI6E,EAAEjP,KAAK5F,EAAE4F,KAAKjG,GAAGiG,KAAKqK,EAAE,IAAI4E,EAAEjP,KAAK5F,EAAE4F,KAAKjG,GAAGiG,KAAK0B,EAAE,IAAIuN,EAAEjP,KAAK5F,EAAE4F,KAAKjG,GAAGiG,KAAKwN,EAAE,IAAIyB,EAAEjP,KAAK5F,EAAE4F,KAAKjG,GAAwCF,EAAEsV,EAAvCtV,EAAE,IAAIuU,EAAEpO,KAAKnG,EAAEO,EAAE,SAASmU,EAAEvO,KAAKnG,KAAWmG,KAAKoK,EAAEvQ,EAAE2S,MAAMC,QAAQ5S,EAA4CA,EAAEsV,EAA5CtV,EAAE,IAAIuU,EAAEpO,KAAKnG,EAAEO,EAAE,cAAcmU,EAAEvO,KAAKnG,KAAWmG,KAAKqK,EAAExQ,EAAE2S,MAAMC,QAAQ5S,EAA6BA,EAAEsV,EAA7BtV,EAAE,IAAIuU,EAAE,QAAQG,EAAEvO,KAAKnG,KAAWmG,KAAK0B,EAAE7H,EAAE2S,MAAMC,QAAQ5S,EAAkCA,EACznEsV,EADylEtV,EAAE,IAAIuU,EAAE,aAAaG,EAAEvO,KAAKnG,KAChnEmG,KAAKwN,EAAE3T,EAAE2S,MAAMC,QAAQ5S,EAAEqV,EAAElP,KAAKoK,GAAG8E,EAAElP,KAAKqK,GAAG6E,EAAElP,KAAK0B,GAAGwN,EAAElP,KAAKwN,GAFuiBW,EAAEjJ,UAAU9K,EAAE,SAASP,GAAG,IAAI,IAAIC,EAAE,GAAGM,EAAE,EAAEA,EAAEsE,UAAU1D,OAAOZ,IAAIN,EAAE4G,KAAKhC,UAAUtE,GAAGyR,QAAQ,UAAU,IAAI6C,eAAe,OAAO5U,EAAE4L,KAAK1F,KAAKnG,IACqhBuV,EAAElK,UAAUoK,MAAM,WAAW,IAAIzV,EAAEmG,KAAK5F,EAAEiS,EAAE5O,SAAS3D,EAAEkG,KAAK5F,EAAER,IAAIS,EAAE,IAAIkV,SAAQ,SAASlV,EAAEoJ,IAAG,SAASwG,IAAIrQ,IAAIQ,GAAGN,EAAEmQ,EAAExG,IAAI5J,EAAE2V,MAAMC,KADjhB,SAAY5V,GAAG,OAAO2U,EAAE3U,GAAG,IAAKA,EAAEoQ,EAAE,YAAgBqE,EAAEzU,EAAEO,GAAxD,CACyhBN,EAAED,GAAGC,EAAEuQ,GAAGqF,MAAK,SAAS7V,GAAG,GAAGA,EAAEmB,OAAOX,IAAIgG,WAAW4J,EAAE,OAAK,WAAWxG,OAApH,MAAgIA,EAAE,KAAKwG,EAAE,IAAIsF,SAAQ,SAAS1V,EAAEQ,GAAGoJ,EAAEpD,WAAWhG,EAAEP,EAAEmQ,MAAKsF,QAAQI,KAAK,CAAC1F,EAAE5P,IAAIqV,MAAK,WAAWjM,IAAImM,aAAanM,GAAGA,EAAE,MAAM3J,EAAEsQ,EAAEtQ,EAAED,MAAI,WAAWC,EAAE4H,EAAE5H,EAAED,OACzjD,IAAIgW,EAAE,CAAC5B,EAAE,QAAQD,EAAE,cAAc8B,EAAE,KAAK,SAASC,IAAI,GAAG,OAAOD,EAAE,CAAC,IAAIjW,EAAE,sCAAsC4H,KAAKvE,OAAO4N,UAAUY,WAAWoE,IAAIjW,IAAI,IAAIwU,SAASxU,EAAE,GAAG,KAAK,MAAMwU,SAASxU,EAAE,GAAG,KAAK,IAAIwU,SAASxU,EAAE,GAAG,KAAK,OAAOiW,EAC3S,SAASE,EAAGnW,EAAEC,EAAEM,GAAG,IAAI,IAAIC,KAAKwV,EAAE,GAAGA,EAAEtR,eAAelE,IAAIP,IAAID,EAAEoQ,EAAE4F,EAAExV,KAAKD,IAAIP,EAAEoQ,EAAE4F,EAAExV,IAAI,OAAA,EAAS,OAAA,EAAiS,SAAS4V,EAAEpW,EAAEC,GAAGuG,WAAWqG,GAAE,WAAWwG,EAAElN,KAAKoK,EAAEvQ,GAAGqT,EAAElN,KAAKqK,EAAExQ,GAAGqT,EAAElN,KAAK0B,EAAE7H,GAAGqT,EAAElN,KAAKwN,EAAE3T,GAAGC,EAAEkG,KAAKnG,KAAIA,GAAG,GAAI,SAASqW,EAAErW,EAAEC,EAAEM,GAAG4F,KAAK5F,EAAEP,EAAEmG,KAAKnG,EAAEC,EAAEkG,KAAKiK,EAAE,EAAEjK,KAAKwN,EAAExN,KAAK0B,GAAAA,EAAK1B,KAAKjG,EAAEK,EADnQiV,EAAEnK,UAAUoK,MAAM,WAAWtP,KAAKiK,EAAEkG,MAAMnQ,KAAK0B,EAAE7H,EAAEuW,YAAYpQ,KAAKiK,EAAE,cAAcjK,KAAKwN,EAAE3T,EAAEuW,YAAYpQ,KAAK0N,EAAE9T,IACpT,SAASyW,EAAExW,GAAG,IAA4CQ,EAAxCP,EAAED,EAAEuQ,EAAEvQ,EAAEuW,YAAYhW,EAAEP,EAAEwQ,EAAExQ,EAAEuW,aAAe/V,EAAEP,IAAID,EAAEoQ,EAAEkG,OAAO/V,IAAIP,EAAEoQ,EAAE,iBAAiB5P,EAAE0V,KAAKC,EAAGnW,EAAEC,EAAEM,IAAIC,EAAET,IAAIC,EAAE6T,GAAG7T,EAAEwT,EAAE0C,KAAKC,EAAGnW,EAAEC,EAAEM,KAAK,OAAOP,EAAEgT,GAAGhT,EAAEgT,EAAEtO,eAAe1E,EAAEA,EAAEO,IAAI6V,EAAEpW,EAAEA,EAAEqT,GAAG+C,EAAEpW,EAAEA,EAAEkU,GAAkB,SAAYlU,GAAGwG,WAAWqG,GAAE,WAAW2J,EAAErQ,QAAOnG,GAAG,IAAnD,CAAZA,GAAGoW,EAAEpW,EAAEA,EAAEqT,GAA9N,CAD0TlN,OAC+I,IAAIsQ,EAAE,KAC/T,SAASC,EAAG1W,GAAG,KAAKA,EAAEoQ,GAAGpQ,EAAE6H,IAAI7H,EAAE2T,IAAG3T,EAAEA,EAAEA,GAAIuQ,GAAGiD,EAAExT,EAAEoQ,EAAE,CAACpQ,EAAEA,EAAEO,EAAE,KAAK,WAAW,CAACP,EAAEA,EAAEO,EAAE,KAAK,WAAWP,EAAEA,EAAEO,EAAE,KAAK,cAAc2U,EAAElV,EAAE,WAAWiV,EAAEjV,EAAEA,IAAK,SAAS2W,EAAG3W,GAAGmG,KAAK0B,EAAE7H,EAAEmG,KAAKnG,EAAE,IAAImV,EAAGhP,KAAKqK,EAAE,EAAErK,KAAKiK,EAAEjK,KAAKoK,GAAAA,EACxc,SAASqG,EAAG5W,EAAEC,EAAEM,EAAEC,EAAEoJ,GAAG,IAAIwG,EAAE,KAAKpQ,EAAEwQ,GAAGxQ,EAAEoQ,GAAGpQ,EAAEuQ,IAAI/J,YAAW,WAAW,IAAIxG,EAAE4J,GAAG,KAAK+J,EAAEnT,GAAS,GAAG,GAAG,IAAID,EAAEY,QAAQiP,EAAE6E,EAAEhV,EAAED,OAAO,CAACC,EAAEmQ,GAAG7P,EAAEY,OAAOiP,IAAInQ,EAAE4H,EAAEuI,GAAG,IAAII,EAAE0B,EAAE,GAAG,IAAI1B,EAAE,EAAEA,EAAEjQ,EAAEY,OAAOqP,IAAI,CAAC,IAAIpO,EAAE7B,EAAEiQ,GAAGqG,EAAElD,EAAEvR,EAAE7B,GAAGuW,EAAE7W,EAAED,EAAEL,EAAEyC,EAAsF,GAApF0U,EAAEvG,GAAGiD,EAAEsD,EAAE1G,EAAE,CAAC0G,EAAE9W,EAAEO,EAAE,KAAKZ,EAAEY,EAAEmU,EAAE/U,GAAGqG,WAAW,aAAakP,EAAE4B,EAAE,cAAcnX,GAAGmX,EAAE,KAAQ,OAAOL,EAAE,GAAGpT,OAAOqP,SAAS,CAAK/S,EAAE,wBAAwBiI,KAAKvE,OAAO4N,UAAUY,WAApD,IAA+DkF,EAAG,8BAA8BnP,KAAKvE,OAAO4N,UAAUY,YAAY,QAAQjK,KAAKvE,OAAO4N,UAAU+F,QACjfP,EAAE9W,EAAE,GAAG6U,SAAS7U,EAAE,GAAG,KAAIoX,OAAcN,GAAAA,EAAOK,EAAFL,EAAI,IAAIlB,EAAE1I,EAAE5M,EAAEsQ,EAAEtQ,GAAG4M,EAAE5M,EAAEuQ,EAAEvQ,GAAGA,EAAEM,EAAE6B,EAAEnC,EAAEC,EAAE2W,GAAK,IAAIrB,EAAE3I,EAAE5M,EAAEsQ,EAAEtQ,GAAG4M,EAAE5M,EAAEuQ,EAAEvQ,GAAGA,EAAEM,EAAE6B,EAAEnC,EAAEC,EAAEF,EAAE6W,GAAG3E,EAAErL,KAAKiQ,GAAG,IAAItG,EAAE,EAAEA,EAAE0B,EAAE/Q,OAAOqP,IAAI0B,EAAE1B,GAAGiF,WAAU,GAAyK,SAASwB,EAAGjX,EAAEC,GAAGkG,KAAK5F,EAAEP,EAAEmG,KAAKnG,EAAEC,EAE9S,SAASiX,EAAGlX,EAAEC,GAAGkG,KAAK5F,EAAEP,EAAEmG,KAAKnG,EAAEC,EAAuV,SAASkX,EAAGnX,EAAEC,GAAKkG,KAAK5F,EAAPP,GAAkBoX,EAAGjR,KAAKnG,EAAE,GAAGmG,KAAKiK,EAAE,GAAGjK,KAAKoK,EAAEtQ,GAAG,GALuDoW,EAAEhL,UAAUkF,EAAE,SAASvQ,GAAG,IAAIC,EAAEkG,KAAKnG,EAAEC,EAAEsQ,GAAGiD,EAAEvT,EAAEmQ,EAAE,CAACnQ,EAAED,EAAEO,EAAE,KAAKP,EAAEO,EAAEmU,EAAE1U,GAAGgG,WAAW,WAAW,CAAC/F,EAAED,EAAEO,EAAE,KAAKP,EAAEO,EAAEmU,EAAE1U,GAAGgG,WAAW,WAAW/F,EAAED,EAAEO,EAAE,KAAKP,EAAEO,EAAEmU,EAAE1U,GAAGgG,WAAW,cAAckP,EAAEjV,EAAE,aAAaD,GAAGmG,KAAKwN,GAAAA,EAAK+C,EAAGvQ,OACnxBkQ,EAAEhL,UAAUmF,EAAE,SAASxQ,GAAG,IAAIC,EAAEkG,KAAKnG,EAAE,GAAGC,EAAEsQ,EAAE,CAAC,IAAIhQ,EAAEX,EAAEK,EAAEmQ,EAAEnQ,EAAED,EAAEO,EAAE,KAAKP,EAAEO,EAAEmU,EAAE1U,GAAGgG,WAAW,WAAWxF,EAAE,GAAGoJ,EAAE,CAAC3J,EAAED,EAAEO,EAAE,KAAKP,EAAEO,EAAEmU,EAAE1U,GAAGgG,WAAW,YAAYzF,GAAGC,EAAEqG,KAAK5G,EAAED,EAAEO,EAAE,KAAKP,EAAEO,EAAEmU,EAAE1U,GAAGgG,WAAW,aAAawN,EAAEvT,EAAEmQ,EAAE5P,EAAEoJ,GAAGsL,EAAEjV,EAAE,eAAeD,GAAG0W,EAAGvQ,OAA2NwQ,EAAGtL,UAAUuK,KAAK,SAAS5V,GAAGmG,KAAK5F,EAAE,IAAIgS,EAAGpM,KAAK0B,EAAE7H,EAAEgP,SAAS7I,KAAK0B,GAAG1B,KAAKoK,GAAAA,IAAOvQ,EAAE+U,OAAO5O,KAAKiK,GAAAA,IAAOpQ,EAAEgV,QAErY,SAAYhV,EAAEC,EAAEM,GAAG,IAAIC,EAAE,GAAGoJ,EAAErJ,EAAE8W,SALwL,SAAYrX,GAAGA,EAAEuQ,GAAGiD,EAAExT,EAAEoQ,EAAE,CAACpQ,EAAEA,EAAEO,EAAE,KAAK,aAAa2U,EAAElV,EAAE,WAAvD,CAK7KC,GAAOO,EAL0d,SAAYR,EAAEC,EAAEM,GAAG,IAASqJ,EAALpJ,EAAE,GAAK,IAAIoJ,KAAK3J,EAAE,GAAGA,EAAEyE,eAAekF,GAAG,CAAC,IAAIwG,EAAEpQ,EAAEO,EAAEqJ,GAAGwG,GAAG5P,EAAEqG,KAAKuJ,EAAEnQ,EAAE2J,GAAGrJ,IAAI,OAAOC,EAA1G,CAKrdR,EAAEA,EAAEO,EAAEP,EAAEO,GAAjB,IAAoB6P,EAAE,IAAIiG,EAAErW,EAAEO,EAAEN,EAAE2J,GAAoB,IAAjB5J,EAAEwQ,EAAEhQ,EAAEW,OAAOlB,EAAE,EAAMM,EAAEC,EAAEW,OAAOlB,EAAEM,EAAEN,IAAIO,EAAEP,GAAG2V,MAAK,SAAS3V,EAAEO,EAAED,GAAGqW,EAAG5W,EAAEoQ,EAAEnQ,EAAEO,EAAED,MAAhK,CAFgZ4F,KAAK,IAAI2O,EAAG3O,KAAK5F,EAAEP,GAAGA,IAGvlBiX,EAAG5L,UAAUuK,KAAK,SAAS5V,GAAkS,IAAIO,EAAE4F,KAAK3F,EAAED,EAAEP,EAAEsX,UAAU1N,EAAErJ,EAAEP,EAAEuX,QAAQ,GAAG/W,EAAE,CAAC,IAAI4P,EAAE7P,EAAEA,EAAEiS,EAAEqB,EAAE1N,KAAK5F,GAAGA,EAAEP,EAAEwX,KAAK,gCAAgC,IAAIhX,EAAE,OAAOoJ,EAAE,MAAMA,EAAE,KAAI,SAASA,GAAGA,EAAE5J,EAAE,KAAKoQ,EAAE,4BAC7d5P,GAAG,WAAW,OAAOD,EAAEP,GADO,SAASC,IAAI,GAAGmQ,EAAE,eAAe5P,GAAG,CAAC,IAAID,EAAE6P,EAAE,eAAe5P,KAAKoJ,EAAE,GAAK,GAAGrJ,EAAE,IAAI,IAAI2R,EAAE,EAAEA,EAAE3R,EAAEY,OAAO+Q,IAAI,CAAC,IAAI9P,EAAE7B,EAAE2R,GAAGuF,WAA6F7N,EAAE/C,KAApF,MAAQtG,EAAE2R,GAAGwF,WAAW,MAAQnX,EAAE2R,GAAGyF,WAAoD,IAAIpD,EAAEnS,EAA5C7B,EAAE2R,GAAGwF,UAAUnX,EAAE2R,GAAGyF,YAAsC,IAAIpD,EAAEnS,IAAIpC,EAAE4J,QAAQpD,YAAW,WAAWvG,MAAK,IAA3R,OACG2X,GAAG,wBAAwBpX,OAAOR,EAAE,KAAwCkX,EAAG7L,UAAUuK,KAAK,SAAS5V,GAAG,IAAIC,EAAEM,EAAEC,EAAE2F,KAAKnG,EAAE6X,MAAM,GAAGjO,EAAEzD,KAAKnG,EAAE8X,UAAU,GAAG1H,EAAEjK,KAAKnG,EAAE+X,aAAa,GAAGxH,EAAE,IAAI2D,EAAM,IAAJjU,EAAE,EAAMM,EAAEC,EAAEW,OAAOlB,EAAEM,EAAEN,IAAIyT,EAAEvN,KAAK5F,EAAEC,EAAEP,GAAGkU,EAAE5D,IAAI,IAAIoD,EAAE,GAAO,IAAJ1T,EAAE,EAAMM,EAAEqJ,EAAEzI,OAAOlB,EAAEM,EAAEN,IAAI,IAAGO,EAAEoJ,EAAE3J,GAAG0H,MAAM,MAAO,GAAG,IAAI,IAAI6I,EAAEhQ,EAAE,GAAGmH,MAAM,KAAKuK,EAAE,EAAEA,EAAE1B,EAAErP,OAAO+Q,GAAG,EAAEyB,EAAE9M,KAAK,IAAI0N,EAAE/T,EAAE,GAAGgQ,EAAE0B,UAAUyB,EAAE9M,KAAK,IAAI0N,EAAE/T,EAAE,KAAK6T,EAAE9D,GAAE,WAAWvQ,EAAE2T,EAAEvD,OAA6E,IAAIgH,EAAG,mCACzN,SAASY,EAAGhY,GAAGmG,KAAKiK,EAAEpQ,EAAEmG,KAAKnG,EAAE,GAAGmG,KAAK5F,EAAE,GAChW,IAAI0X,EAAG,CAACC,MAAM,UAAU,YAAY,2BAAiCC,SAAS,qBAAqBC,MAAM,qBAAqBC,MAAM,qBAAqBC,QAAQ,sBAAsBC,EAAG,CAACC,KAAK,IAAIC,WAAW,IAAI,cAAc,IAAIC,WAAW,IAAI,cAAc,IAAIC,MAAM,IAAIC,QAAQ,IAAIC,KAAK,IAAIC,OAAO,IAAI,YAAY,IAAIC,SAAS,IAAI,YAAY,IAAIC,SAAS,IAAIC,KAAK,IAAI,aAAa,IAAIC,UAAU,IAAI,aAAa,IAAIC,UAAU,IAAIC,MAAM,IAAIC,MAAM,IAAInH,EAAE,IAAI4E,EAAE,IAAI7W,EAAE,KAAKqZ,EAAG,CAACxY,EAAE,IAAIyY,OAAO,IAAI1C,EAAE,IAAI2C,OAAO,KAC1fC,GAAG,+IAEqH,SAASC,GAAG1Z,EAAEC,GAAGkG,KAAK5F,EAAEP,EAAEmG,KAAKnG,EAAEC,EAAE,IAAI0Z,GAAG,CAACC,OAAAA,EAASC,SAAAA,EAAWC,OAAAA,GAA8L,SAASC,GAAG/Z,EAAEC,GAAGkG,KAAK5F,EAAEP,EAAEmG,KAAKnG,EAAEC,EAAoZ,SAAS+Z,GAAGha,EAAEC,GAAGkG,KAAK5F,EAAEP,EAAEmG,KAAKiK,EAAEnQ,EAAEkG,KAAKnG,EAAE,GAAnpB0Z,GAAGrO,UAAUuK,KAAK,SAAS5V,GAAG,IAAIC,EAAE,IAAIiU,EAAE3T,EAAE4F,KAAK5F,EAAEC,EAAE,IAAI2W,EAAGhR,KAAKnG,EAAEwX,IAAIrR,KAAKnG,EAAEia,MAAMrQ,EAAEzD,KAAKnG,EAAE8X,UALqR,SAAY9X,EAAEC,GAAG,IAAI,IAAIM,EAAEN,EAAEkB,OAAOX,EAAE,EAAEA,EAAED,EAAEC,IAAI,CAAC,IAAIoJ,EAAE3J,EAAEO,GAAGmH,MAAM,KAAK,GAAGiC,EAAEzI,QAAQnB,EAAEoQ,EAAEvJ,KAAK+C,EAAEsQ,OAAO,IAAI9J,EAAE,GAAG,GAAGxG,EAAEzI,QAAQ,IAAIyI,EAAE,KAAKwG,EAAE,KAAKpQ,EAAEA,EAAE6G,KAAK+C,EAAEiC,KAAKuE,KAA9J,CAKzQ5P,EAAEoJ,GAAG,IAAIwG,EAAE,IAAI4H,EAAGpO,IAD5T,SAAY5J,GAAG,IAAI,IAAIC,EAAED,EAAEoQ,EAAEjP,OAAOZ,EAAE,EAAEA,EAAEN,EAAEM,IAAI,CAAC,IAAIC,EAAER,EAAEoQ,EAAE7P,GAAGoH,MAAM,KAAKiC,EAAEpJ,EAAE,GAAGwR,QAAQ,MAAM,KAAK5B,EAAE,CAAC,MAAM,GAAG,GAAG5P,EAAEW,OAAO,CAAC,IAAIoP,EAAkB,GAALA,EAAE,GAAToD,EAAEnT,EAAE,GAAa,IAAI,IAAImT,EAAenD,GAAfmD,EAAEA,EAAEhM,MAAM,MAASxG,OAAO+Q,EAAE,EAAEA,EAAE1B,EAAE0B,IAAI,CAAC,IAAI9P,EAAS,IAAPA,EAAEuR,EAAEzB,IAAQjM,MAAM,YAA4C,GAAG,OAA9B4Q,EAAE4C,GAAG7R,KAAKxF,EAAEyS,gBAA0BzS,EAAE,OAAO,CAA0C,GAAlCA,EAAE,OAATA,EAAEyU,EAAE,KAAc,IAAIzU,EAAE,IAAIkX,EAAGlX,GAAa,OAAVyU,EAAEA,EAAE,KAAe,IAAIA,EAAEA,EAAE,SAAS,IAAYA,EAAN0B,EAAG1B,KAASsD,MAAMtD,GAAG,IAAIA,EAAE5O,OAAO,EAAE,IAAG7F,EAAE,CAACA,EAAEyU,GAAGhL,KAAK,SAAUzJ,EAAE,GAAGA,GAAGmO,EAAE1J,KAAKzE,GAAG,EAAEmO,EAAEpP,SAASiP,EAAEG,GAAG,GAAG/P,EAAEW,SAAgBoP,EAAE,GACle,GADqe/P,GAAZA,EAAEA,EAAE,IAAYA,EAAEmH,MAAM,KACnf4I,GAAMpP,SAASX,EAAEyX,EAAGzX,EAAE,OAAOR,EAAEO,EAAEqJ,GAAGpJ,IAAkC,IAA9BR,EAAEO,EAAEqJ,KAAKpJ,EAAEyX,EAAGrO,MAAM5J,EAAEO,EAAEqJ,GAAGpJ,GAAOA,EAAE,EAAEA,EAAE4P,EAAEjP,OAAOX,GAAG,EAAER,EAAEA,EAAE6G,KAAK,IAAI0N,EAAE3K,EAAEwG,EAAE5P,MADjH,CACkU4P,GAAGsD,EAAEnT,EAJvU,SAAYP,GAAG,GAAG,GAAGA,EAAEA,EAAEmB,OAAO,MAAM6K,MAAM,qBAAqB,IAAI,GAAGhM,EAAEO,EAAEwH,QAAQ,QAAQ,OAAO/H,EAAEO,EAAE,IAAI,IAAIN,EAAED,EAAEA,EAAEmB,OAAOZ,EAAE,GAAGC,EAAE,EAAEA,EAAEP,EAAEO,IAAID,EAAEsG,KAAK7G,EAAEA,EAAEQ,GAAGwR,QAAQ,KAAK,MAAqI,OAA/H/R,EAAED,EAAEO,EAAE,WAAWA,EAAEsL,KAAK,OAAO,EAAE7L,EAAEoQ,EAAEjP,SAASlB,GAAG,WAAWD,EAAEoQ,EAAEvE,KAAK,MAAM,EAAE7L,EAAEuQ,EAAEpP,SAASlB,GAAG,SAASgC,mBAAmBjC,EAAEuQ,IAAWtQ,EAApT,CAI4UO,GAAG2T,EAAElU,IAAIoU,EAAEpU,GAAE,WAAWD,EAAEoQ,EAAEpQ,EAAEoQ,EAAE7P,EAAEoZ,QAA0CI,GAAG1O,UAAUuK,KAAK,SAAS5V,GAAG,IAAIC,EAAEkG,KAAKnG,EAAE4X,GAAGrX,EAAE4F,KAAK5F,EAAEiS,EAAEvS,EAAE4T,EAAE1N,KAAK5F,GAAG4F,KAAKnG,EAAEwX,KAAK,2BAA2B,IAAIvX,EAAE,OAAM,SAASA,GAAG,GAAGA,EAAED,EAAE,SAAS,GAAGO,EAAE6Z,SAAS7Z,EAAE6Z,QAAQhL,QAAQ7O,EAAE6Z,QAAQhL,OAAO7E,GAAG,CAACtK,EAAEM,EAAE6Z,QAAQhL,OAAO7E,GAAG,IAAI,IAAIX,EAAE,GAAGwG,EAAE,EAAEA,EAAEnQ,EAAEkB,OAAOiP,GAAG,EAAE,IAAI,IAAIG,EAAEtQ,EAAEmQ,GAAGuD,EAAE1T,EAAEmQ,EAAE,GAAGI,EAAE,EAAEA,EAAEmD,EAAExS,OAAOqP,IAAI5G,EAAE/C,KAAK,IAAI0N,EAAEhE,EAAEoD,EAAEnD,KAAK,IAAIjQ,EAAE6Z,QAAQxE,KAAK,CAACb,QAAAA,EAAUC,SAAAA,EAAWqF,OAAAA,IAAW,MAAMnI,IAAIlS,EAAE4J,MAAK,KAAK5J,EAAE,KAAkDga,GAAG3O,UAAUuK,KAAK,SAAS5V,GAAG,IAAIC,EAAEkG,KAAKiK,EAAEwH,GAAGrX,EAAE4F,KAAK5F,EAAEiS,EAAEhS,EAAE2F,KAAKlG,GAAGM,EAAE+Z,4BAA4B/Z,EAAE+Z,0BAA0B,IAAI/Z,EAAE+Z,0BAA0Bra,GAAG,SAASA,EAAEM,GAAG,IAAI,IAAIgQ,EAAE,EAAEoD,EAAEpT,EAAEoV,MAAMxU,OAAOoP,EAAEoD,IAAIpD,EAAE,CAAC,IAAIC,EAAEjQ,EAAEoV,MAAMpF,GAAG/P,EAAER,EAAE6G,KAAK,IAAI0N,EAAE/D,EAAEzK,KAAK6O,EAAG,eAAepE,EAAE+J,OAAO,eAAe/J,EAAEmC,SAAS3S,EAAEQ,EAAER,IAAI6T,EAAE1N,KAAK5F,GAAG4F,KAAKiK,EAAEoH,KAAK,oCAdrqC,SAAYxX,GAAG,OAAOA,EAAEwS,EAAE3O,SAASgF,UAAU7I,EAAEA,EAAE6D,SAASgF,SAA1D,CAc4sC1C,KAAK5F,GAAG,IAAIN,EAAE,OAAM,SAASA,GAAGA,GAAGD,EAAE,QAAOA,EAAE,KAAK,IAAIwa,GAAE,IAAI7D,EAAGtT,QAAQmX,GAAExa,EAAEO,EAAEka,OAAO,SAASza,EAAEC,GAAG,OAAO,IAAIiX,EAAGjX,EAAED,IAAIwa,GAAExa,EAAEO,EAAEma,SAAS,SAAS1a,EAAEC,GAAG,OAAO,IAAI+Z,GAAG/Z,EAAED,IAAIwa,GAAExa,EAAEO,EAAEoa,SAAS,SAAS3a,EAAEC,GAAG,OAAO,IAAIgX,EAAGhX,EAAED,IAAIwa,GAAExa,EAAEO,EAAEqa,QAAQ,SAAS5a,EAAEC,GAAG,OAAO,IAAI8Z,GAAG9Z,EAAED,IAAIwa,GAAExa,EAAEO,EAAEsa,OAAO,SAAS7a,EAAEC,GAAG,OAAO,IAAIyZ,GAAGzZ,EAAED,IAAI,IAAI8a,GAAE,CAAClF,KAAK/I,EAAE2N,GAAE5E,KAAK4E,UAAAA,KAA2C,GAAA,WAAkB,OAAOM,KAAE,KAAA,EAAA,EAAA,EAAA,MAAA,EAAA,QAAA,GAhB/lD,IAAA,KAAA,SAAA,EAAA,EAAA,GAAA,aCcAjY,EAAQkY,oBAZsB,WAC1B,SAASC,EAAwBC,GAM7B,OALAjP,MAAMpH,KAAKuB,MACXA,KAAKZ,QAAU0V,EACXA,EAAO9Z,OAAS,4CAA8C8Z,EAAOC,KAAI,SAAUjP,EAAKnL,GAAK,OAAOA,EAAI,EAAI,KAAOmL,EAAIjG,cAAe6F,KAAK,QAAU,GACzJ1F,KAAKJ,KAAO,sBACZI,KAAK8U,OAASA,EACP9U,KAGX,OADA6U,EAAwB3P,UAAYa,OAAOc,OAAOhB,MAAMX,WACjD2P,EAVmB,IAAA,KAAA,SAAA,EAAA,EAAA,GAAA,aCG9BnY,EAAQ2M,gBAHR,SAAyBvD,GACrBzF,YAAW,WAAc,MAAMyF,IAAQ,KAAA,KAAA,SAAA,EAAA,EAAA,GCG3C,IAAIkP,EAAmB,EAAQ,QAG3B/X,EACgB,oBAAXC,OACHA,OACkB,oBAAXC,OAAyBA,OAAyB,oBAATC,KAAuBA,KAAO,GAChF6X,EAAShY,EAAQiY,MAEjBA,EAAQ,IAAIF,EAQhBE,EAAMC,WAAa,WAEjB,OADAlY,EAAQiY,MAAQD,EACTC,GAGTA,EAAME,YAEN3Y,EAAOC,QAAUwY,EAoCjBzY,EAAOC,QAAQ2Y,OAASL,GAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GCjEtB,IAAsBM,EAEpB7Y,EAAOC,SAFa4Y,EAYL,WACjB,IAAIC,EAAUrP,KAAKsP,MAAM,yvNACrBC,EAAUvP,KAAKsP,MAAM,sCAEzB,SAAS3J,EAASlP,EAAQ+Y,GACxB,GAAsB,iBAAX/Y,EACT,MAAM,IAAIkJ,MAAM,qCAOlB,IAAI8P,EAASF,GAJbC,EAA8B,iBAAZA,EACd,CAACE,YAAaF,GACdA,GAAW,IAEcC,SAAW,GAEpCC,EAAcF,EAAQE,aAAe,IAErCC,EAAOlZ,EAAO6E,MAAM,IAErB0C,QAAO,SAAUR,EAAQoS,GACxB,OAAOpS,GAAUiS,EAAOG,IAAOP,EAAQO,IAAOA,KAC7C,IAEFjK,QAAQ6J,EAAQK,QAAU,2BAA4B,IAEtDC,OAGAnK,QAAQ,IAAIoK,OAAO,OAASL,EAAc,KAAM,KAAMA,GAYzD,OAVIF,EAAQQ,QACVL,EAAOA,EAAKnH,eAGVgH,EAAQS,SAEVN,EAAOA,EACJhK,QAAQ,IAAIoK,OAAO,cAAgBL,EAAc,IAAK,KAAM,KAG1DC,EAST,OANAhK,EAAQuK,OAAS,SAAUC,GACzB,IAAK,IAAIna,KAAOma,EACdd,EAAQrZ,GAAOma,EAAUna,IAItB2P,MA1DLpP,EAAOC,QAAPD,QAA4B6Y,KAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aCFhC,IAAIgB,EAAoB,SAA2B7Q,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,iBAAVA,EAD1B,CAJwBA,KAQxB,SAAmBA,GAClB,IAAI8Q,EAAcxQ,OAAOb,UAAUrF,SAASpB,KAAKgH,GAEjD,MAAuB,oBAAhB8Q,GACa,kBAAhBA,GAQL,SAAwB9Q,GACvB,OAAOA,EAAM+Q,WAAaC,EAD3B,CAPoBhR,GALpB,CAPgBA,IAiBZgR,EADiC,mBAAXC,QAAyBA,OAAAA,IACXA,OAAAA,IAAW,iBAAmB,MAUtE,SAASC,EAA8BlR,EAAOiQ,GAC7C,OAAA,IAAQA,EAAQkB,OAAmBlB,EAAQY,kBAAkB7Q,GAC1DoR,EALIpQ,MAAMqQ,QAKYrR,GALG,GAAK,GAKAA,EAAOiQ,GACrCjQ,EAGJ,SAASsR,EAAkBpM,EAAQvI,EAAQsT,GAC1C,OAAO/K,EAAOnO,OAAO4F,GAAQ2S,KAAI,SAAS9T,GACzC,OAAO0V,EAA8B1V,EAASyU,MAoBhD,SAASsB,EAAQrM,GAChB,OAAO5E,OAAOP,KAAKmF,GAAQnO,OAT5B,SAAyCmO,GACxC,OAAO5E,OAAOkR,sBACXlR,OAAOkR,sBAAsBtM,GAAQuM,QAAO,SAASC,GACtD,OAAOxM,EAAOyM,qBAAqBD,MAElC,GALJ,CASmExM,IAGnE,SAAS0M,EAAmBC,EAAQC,GACnC,IACC,OAAOA,KAAYD,EAClB,MAAME,GACP,OAAA,GAgCF,SAASX,EAAUlM,EAAQvI,EAAQsT,IAClCA,EAAUA,GAAW,IACb+B,WAAa/B,EAAQ+B,YAAcV,EAC3CrB,EAAQY,kBAAoBZ,EAAQY,mBAAqBA,EAGzDZ,EAAQiB,8BAAgCA,EAExC,IAAIe,EAAgBjR,MAAMqQ,QAAQ1U,GAIlC,OAFgCsV,IADZjR,MAAMqQ,QAAQnM,GAKvB+M,EACHhC,EAAQ+B,WAAW9M,EAAQvI,EAAQsT,GApC5C,SAAqB/K,EAAQvI,EAAQsT,GACpC,IAAI7N,EAAc,GAiBlB,OAhBI6N,EAAQY,kBAAkB3L,IAC7BqM,EAAQrM,GAAQgN,SAAQ,SAASzb,GAChC2L,EAAY3L,GAAOya,EAA8BhM,EAAOzO,GAAMwZ,MAGhEsB,EAAQ5U,GAAQuV,SAAQ,SAASzb,IAAAA,SAbRyO,EAAQzO,GACjC,OAAOmb,EAAmB1M,EAAQzO,MAC5B6J,OAAOxH,eAAeE,KAAKkM,EAAQzO,IACpC6J,OAAOqR,qBAAqB3Y,KAAKkM,EAAQzO,KAUbA,CACXyO,EAAQzO,KAK5B2L,EAAY3L,GADTmb,EAAmB1M,EAAQzO,IAAQwZ,EAAQY,kBAAkBlU,EAAOlG,IA/C1E,SAA0BA,EAAKwZ,GAC9B,IAAKA,EAAQkC,YACZ,OAAOf,EAER,IAAIe,EAAclC,EAAQkC,YAAY1b,GACtC,MAA8B,mBAAhB0b,EAA6BA,EAAcf,EAL1D,CAgDuC3a,EAAKwZ,EAhD5C,CAgDqD/K,EAAOzO,GAAMkG,EAAOlG,GAAMwZ,GAEzDiB,EAA8BvU,EAAOlG,GAAMwZ,OAGzD7N,EAlBR,CAsCqB8C,EAAQvI,EAAQsT,GAJ5BiB,EAA8BvU,EAAQsT,GAQ/CmB,EAAUgB,IAAM,SAAsBC,EAAOpC,GAC5C,IAAKjP,MAAMqQ,QAAQgB,GAClB,MAAM,IAAIjS,MAAM,qCAGjB,OAAOiS,EAAM5T,QAAO,SAASC,EAAM+D,GAClC,OAAO2O,EAAU1S,EAAM+D,EAAMwN,KAC3B,KAKJjZ,EAAOC,QAFWma,GAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aChIlB,IAAIkB,EAAmB,EAAQ,QAC3BC,EAAiB,EAAQ,QACzBC,EAAe,EAAQ,QACvBC,EAAS,EAAQ,QACjBhR,EAAW,EAAQ,QAqGvB,SAASiR,EAAeC,GAIpB,GAHKA,IACDA,EAAclR,EAAS+B,OAAOsG,SAAWA,UAExC6I,EACD,MAAM,IAAIvS,MAAM,yBAEpB,OAAOuS,EARX1b,EAAQ2b,WAnGU,WACd,SAASA,EAAW9X,GAChBP,KAAKsY,WAAAA,EACD/X,IACAP,KAAKuY,WAAahY,GA6F1B,OA1FA8X,EAAWnT,UAAUsT,KAAO,SAAUC,GAClC,IAAIC,EAAa,IAAIL,EAGrB,OAFAK,EAAWtW,OAASpC,KACpB0Y,EAAWD,SAAWA,EACfC,GAEXL,EAAWnT,UAAU3E,UAAY,SAAUqI,EAAgBzJ,EAAOoI,GAC9D,IAAIkR,EAAWzY,KAAKyY,SAChBE,EAAOX,EAAeY,aAAahQ,EAAgBzJ,EAAOoI,GAS9D,GAPIoR,EAAK5Q,IADL0Q,EACSA,EAASha,KAAKka,EAAM3Y,KAAKoC,QAGzBpC,KAAKoC,QAAW8E,EAAS+B,OAAOC,wCAA0CyP,EAAKhR,mBACpF3H,KAAKuY,WAAWI,GAChB3Y,KAAK6Y,cAAcF,IAEvBzR,EAAS+B,OAAOC,uCACZyP,EAAKhR,qBACLgR,EAAKhR,oBAAAA,EACDgR,EAAKjR,iBACL,MAAMiR,EAAKlR,eAIvB,OAAOkR,GAEXN,EAAWnT,UAAU2T,cAAgB,SAAUF,GAC3C,IACI,OAAO3Y,KAAKuY,WAAWI,GAE3B,MAAO7S,GACCoB,EAAS+B,OAAOC,wCAChByP,EAAKjR,iBAAAA,EACLiR,EAAKlR,eAAiB3B,GAEtBiS,EAAiBe,eAAeH,GAChCA,EAAKxZ,MAAM2G,GAGXtB,QAAQyG,KAAKnF,KAIzBuS,EAAWnT,UAAUyS,QAAU,SAAUzP,EAAMkQ,GAC3C,IAAI5Q,EAAQxH,KAEZ,OAAO,IADPoY,EAAcD,EAAeC,KACN,SAAUW,EAASC,GACtC,IAAIC,EACJA,EAAezR,EAAMjH,WAAU,SAAUkF,GACrC,IACIyC,EAAKzC,GAET,MAAOK,GACHkT,EAAOlT,GACHmT,GACAA,EAAatY,iBAGtBqY,EAAQD,OAGnBV,EAAWnT,UAAUqT,WAAa,SAAUpQ,GACxC,IAAI/F,EAASpC,KAAKoC,OAClB,OAAOA,GAAUA,EAAO7B,UAAU4H,IAEtCkQ,EAAWnT,UAAU+S,EAAaS,YAAc,WAC5C,OAAO1Y,MAEXqY,EAAWnT,UAAUb,KAAO,WAExB,IADA,IAAI6U,EAAa,GACR5U,EAAK,EAAGA,EAAK5F,UAAU1D,OAAQsJ,IACpC4U,EAAW5U,GAAM5F,UAAU4F,GAE/B,OAA0B,IAAtB4U,EAAWle,OACJgF,KAEJkY,EAAOnU,cAAcmV,EAArBhB,CAAiClY,OAE5CqY,EAAWnT,UAAUiU,UAAY,SAAUf,GACvC,IAAI5Q,EAAQxH,KAEZ,OAAO,IADPoY,EAAcD,EAAeC,KACN,SAAUW,EAASC,GACtC,IAAIvT,EACJ+B,EAAMjH,WAAU,SAAU/G,GAAK,OAAOiM,EAAQjM,KAAM,SAAUsM,GAAO,OAAOkT,EAAOlT,MAAS,WAAc,OAAOiT,EAAQtT,UAGjI4S,EAAWxR,OAAS,SAAUtG,GAC1B,OAAO,IAAI8X,EAAW9X,IAEnB8X,EAjGO,IAAD,KAAA,SAAA,EAAA,EAAA,GCPjB,IAAA,EAAA,OAAA,KAGsB,EAAA,mBAAP,EAUM,WACnB,aAEA,OAAO,SAAmBe,EAASC,EAAaC,GAC9CD,EAAcA,GAAe,GAC7BC,EAAYA,GAAa,IAKzB,IAHA,IAAIC,EAAiBC,KAAKJ,GACtBK,EAAa,GAERC,EAAS,EAAGA,EAASH,EAAeve,OAAQ0e,GAAUJ,EAAW,CAIxE,IAHA,IAAIhc,EAAQic,EAAejc,MAAMoc,EAAQA,EAASJ,GAE9CK,EAAc,IAAIlT,MAAMnJ,EAAMtC,QACzBL,EAAI,EAAGA,EAAI2C,EAAMtC,OAAQL,IAChCgf,EAAYhf,GAAK2C,EAAM7B,WAAWd,GAGpC,IAAIif,EAAY,IAAIC,WAAWF,GAE/BF,EAAW/Y,KAAKkZ,GAIlB,OADW,IAAIxO,KAAKqO,EAAY,CAACtO,KAAMkO,OAjCrB,EAAA,MAAA,EAAX,IAAW,KAAA,EAAA,QAAA,IAAA,OAAA,SAAA,EAAA,EAAA,GAAA,aCDtB,IAAIS,EAAe,EAAQ,QACvB7S,EAAiB,EAAQ,QACzBF,EAAa,EAAQ,QAezBrK,EAAQkc,aAdR,SAAsBmB,EAAgB5a,EAAOoI,GACzC,GAAIwS,EAAgB,CAChB,GAAIA,aAA0BD,EAAa1S,WACvC,OAAO2S,EAEX,GAAIA,EAAe9S,EAAegB,cAC9B,OAAO8R,EAAe9S,EAAegB,gBAG7C,OAAK8R,GAAmB5a,GAAUoI,EAG3B,IAAIuS,EAAa1S,WAAW2S,EAAgB5a,EAAOoI,GAF/C,IAAIuS,EAAa1S,WAAWL,EAAWe,SAAAA,KAAAA,SAAAA,EAAAA,GCftD,SAASkS,EAAyBC,GAGjC,OAAO1K,QAAQwJ,UAAUrJ,MAAK,WAC7B,IAAIjM,EAAI,IAAIoC,MAAM,uBAAyBoU,EAAM,KAEjD,MADAxW,EAAEyW,KAAO,mBACHzW,KAGRuW,EAAyBxU,KAAO,WAAa,MAAO,IACpDwU,EAAyBjB,QAAUiB,EACnCvd,EAAOC,QAAUsd,EACjBA,EAAyBvI,GAAK,QAAA,KAAA,SAAA,EAAA,EAAA,GCT9B,IAuuEM0I,EA+EAC,EAGAC,EAGAC,EAkhEIC,EA+pPJC,EACAC,EA6lFAC,EACAC,EAKAC,EA68XAhE,EAyzDAiE,EACAC,EAx14BFC,EAASA,GAAU,CAAE3J,QAAS,SASlC,GAPE1U,EAAQqe,OAASA,EAOK,oBAAbtd,UAA8C,oBAAXP,OAE1C6d,EAAOtd,SADLA,oBAA6C,oBAAjBud,aAA+BA,aAAeC,UAC1Dxd,SAGAA,SAASyd,eAAeC,mBAAmB,IAE/DJ,EAAO7d,OAASA,WAEb,CAEH,IACIke,EAAgB,IADR,EAAQ,GACA,OAClBC,mBAAmB,8FACnB,CACEC,SAAU,CACRC,uBAAwB,CAAC,QAE3BC,UAAW,WACVte,OACL6d,EAAOtd,SAAW2d,EAAc3d,SAChCsd,EAAOU,oBAAsB,EAAQ,GAA0CC,eAC/EX,EAAOY,WAAa,EAAQ,GAAyBC,OACrDb,EAAO7d,OAASke,EAChBS,UAAYd,EAAO7d,OAAO2e,UA2rpB5B,SAASC,EAAoBC,EAAIC,GAC/B,IAAIC,EAAWF,EAAGG,OAAQC,EAAeH,EAAcG,aACnDC,EAAMD,EAAaE,WAAW,MAClCD,EAAIE,UAAU,EAAGH,EAAaI,QAC9BH,EAAII,MAAM,GAAI,GAGdJ,EAAIK,UAAUR,EAAU,EADVA,EAASM,OAASJ,EAAaI,OACTJ,EAAaO,MAAOP,EAAaI,OAAQ,EAAG,EAC9EJ,EAAaO,MAAOP,EAAaI,QAWrC,SAASI,EAAuBZ,EAAIC,GAClC,IAA+CI,EAA5BJ,EAAcG,aAAiCE,WAAW,MACzEO,EAASZ,EAAca,iBACvBC,EAAUd,EAAce,kBACxBC,EAAWJ,EAASE,EAAU,EAG9BG,EAAK,IAAIpD,WAAW7Z,KAAKkd,YAAa,EAAGF,GAEzCG,EAAY,IAAIC,kBAAkBpd,KAAKkd,YAAa,EAAGF,GAE3DjB,EAAGsB,WAAW,EAAG,EAAGT,EAAQE,EAASf,EAAGuB,KAAMvB,EAAGwB,cAAeN,GAChE,IAAIO,EAAU,IAAIC,UAAUN,EAAWP,EAAQE,GAC/CV,EAAIsB,aAAaF,EAAS,EAAG,GAptpB/BzC,EAAO4C,iBAAmB,iBAAkB5C,EAAO7d,QAAU,iBAAkB6d,EAAOtd,UACnFsd,EAAO7d,QAAU6d,EAAO7d,OAAO4N,WAAaiQ,EAAO7d,OAAO4N,UAAU8S,eAAiB,EAMxF7C,EAAO8C,aAAiC,oBAAXC,QACW,oBAAX5gB,OAO7B6d,EAAOgD,kBAAoB,CACzB,UACA,YACA,OAAQ,eAAgB,YACxB,UACA,SAAU,mBAAoB,iBAAkB,oBAChD,kBAAmB,oBACnB,iBAAkB,eAClB,KAAM,cAAe,gBACrB,sBAAuB,aAOzBhD,EAAOiD,IAAM,GACbjD,EAAOkD,MAAQ,kDACflD,EAAOmD,cAAgB,yDACvBnD,EAAOoD,UAAY,iBACnBpD,EAAOqD,UAAY,GACnBrD,EAAOsD,QAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACjCtD,EAAOuD,MAAQ,6BAQfvD,EAAOwD,mBAAqB,QAQ5BxD,EAAOyD,kBAAoB,KAQ3BzD,EAAO0D,kBAAoB,IAK3B1D,EAAO2D,gBAAkB,GASzB3D,EAAO4D,YAAc,KASrB5D,EAAO6D,uBAAAA,EAUP7D,EAAO8D,mBAAAA,EAMP9D,EAAO+D,iBAAmB/D,EAAO7d,OAAO4hB,kBACd/D,EAAO7d,OAAO6hB,wBACdhE,EAAO7d,OAAO8hB,qBACd,EAe1BjE,EAAOkE,0BAA4B,EAMnClE,EAAOmE,mBAAqB,GAU5BnE,EAAOoE,mBAAqB,GAM5BpE,EAAOqE,qBAAAA,EASPrE,EAAOsE,qBAAAA,EAEPtE,EAAOuE,kBAAoB,WACzB,OAAIvE,EAAO8D,mBAAqB9D,EAAOwE,kBAAoBxE,EAAOwE,iBAAiBxE,EAAO4D,cACxFna,QAAQgb,IAAI,qBAAuBzE,EAAO0E,gBACnC,IAAK1E,EAAO2E,mBAAmB,CAAEC,SAAU5E,EAAO4D,eAElD5D,EAAO6E,sBACP,IAAK7E,EAAO6E,2BAAAA,GAKC,oBAAbniB,UAA8C,oBAAXP,SAE5CA,OAAO6d,OAASA,GAIlB,WAOE,SAAS8E,EAAqBC,EAAWtf,GACvC,GAAKR,KAAK+f,iBAAiBD,GAA3B,CAGA,IAAIE,EAAgBhgB,KAAK+f,iBAAiBD,GACtCtf,EACFwf,EAAcA,EAAcpe,QAAQpB,KAAAA,EAGpCua,EAAOkF,KAAKnI,MAAMoI,KAAKF,GAAAA,IAc3B,SAASG,EAAQL,EAAWtf,GAK1B,GAJKR,KAAK+f,mBACR/f,KAAK+f,iBAAmB,IAGD,IAArBrhB,UAAU1D,OACZ,IAAK,IAAIolB,KAAQN,EACf9f,KAAKqgB,GAAGD,EAAMN,EAAUM,SAIrBpgB,KAAK+f,iBAAiBD,KACzB9f,KAAK+f,iBAAiBD,GAAa,IAErC9f,KAAK+f,iBAAiBD,GAAWpf,KAAKF,GAExC,OAAOR,KAcT,SAASsgB,EAAcR,EAAWtf,GAChC,IAAKR,KAAK+f,iBACR,OAAO/f,KAIT,GAAyB,IAArBtB,UAAU1D,OACZ,IAAK8kB,KAAa9f,KAAK+f,iBACrBF,EAAqBphB,KAAKuB,KAAM8f,QAI/B,GAAyB,IAArBphB,UAAU1D,QAAwC,iBAAjB0D,UAAU,GAClD,IAAK,IAAI0hB,KAAQN,EACfD,EAAqBphB,KAAKuB,KAAMogB,EAAMN,EAAUM,SAIlDP,EAAqBphB,KAAKuB,KAAM8f,EAAWtf,GAE7C,OAAOR,KAaT,SAASugB,EAAKT,EAAWpK,GACvB,IAAK1V,KAAK+f,iBACR,OAAO/f,KAGT,IAAIwgB,EAAoBxgB,KAAK+f,iBAAiBD,GAC9C,IAAKU,EACH,OAAOxgB,KAGT,IAAK,IAAIrF,EAAI,EAAGD,EAAM8lB,EAAkBxlB,OAAQL,EAAID,EAAKC,IACvD6lB,EAAkB7lB,IAAM6lB,EAAkB7lB,GAAG8D,KAAKuB,KAAM0V,GAAW,IAKrE,OAHA1V,KAAK+f,iBAAiBD,GAAaU,EAAkBtJ,QAAO,SAASzR,GACnE,OAAA,IAAOA,KAEFzF,KAQT+a,EAAO1C,WAAa,CAClB8H,QAASA,EACTG,cAAeA,EACfC,KAAMA,EAENF,GAAIF,EACJM,IAAKH,EACLI,QAASH,GA5Hb,GAoIAxF,EAAO4F,WAAa,CAElBC,SAAU,GAcV7Y,IAAK,WAEH,GADA/H,KAAK4gB,SAASlgB,KAAKlC,MAAMwB,KAAK4gB,SAAUliB,WACpCsB,KAAK6gB,eACP,IAAK,IAAIlmB,EAAI,EAAGK,EAAS0D,UAAU1D,OAAQL,EAAIK,EAAQL,IACrDqF,KAAK6gB,eAAeniB,UAAU/D,IAIlC,OADAqF,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAeTghB,SAAU,SAAU1J,EAAQ2J,EAAOC,GACjC,IAAIC,EAAUnhB,KAAK4gB,SASnB,OARIM,EACFC,EAAQF,GAAS3J,EAGjB6J,EAAQvgB,OAAOqgB,EAAO,EAAG3J,GAE3BtX,KAAK6gB,gBAAkB7gB,KAAK6gB,eAAevJ,GAC3CtX,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAST+V,OAAQ,WAIN,IAHA,IACIkL,EADAE,EAAUnhB,KAAK4gB,SACRQ,GAAAA,EAEFzmB,EAAI,EAAGK,EAAS0D,UAAU1D,OAAQL,EAAIK,EAAQL,KAItC,KAHfsmB,EAAQE,EAAQvf,QAAQlD,UAAU/D,OAIhCymB,GAAAA,EACAD,EAAQvgB,OAAOqgB,EAAO,GACtBjhB,KAAKqhB,kBAAoBrhB,KAAKqhB,iBAAiB3iB,UAAU/D,KAK7D,OADAqF,KAAK8gB,mBAAqBM,GAAoBphB,KAAK+gB,mBAC5C/gB,MAeTshB,cAAe,SAAS5c,EAAUmE,GAEhC,IADA,IAAIsY,EAAUnhB,KAAKuhB,aACV5mB,EAAI,EAAGD,EAAMymB,EAAQnmB,OAAQL,EAAID,EAAKC,IAC7C+J,EAASjG,KAAKoK,EAASsY,EAAQxmB,GAAIA,EAAGwmB,GAExC,OAAOnhB,MAUTuhB,WAAY,SAASpW,GACnB,YAAA,IAAWA,EACFnL,KAAK4gB,SAASpkB,SAEhBwD,KAAK4gB,SAAS1J,QAAO,SAAS7K,GACnC,OAAOA,EAAElB,OAASA,MAStBjI,KAAM,SAAU+d,GACd,OAAOjhB,KAAK4gB,SAASK,IAOvBO,QAAS,WACP,OAAgC,IAAzBxhB,KAAK4gB,SAAS5lB,QAOvBymB,KAAM,WACJ,OAAOzhB,KAAK4gB,SAAS5lB,QAQvB0mB,SAAU,SAASpK,GACjB,OAAOtX,KAAK4gB,SAAShf,QAAQ0V,IAAW,GAO1CqK,WAAY,WACV,OAAO3hB,KAAK4gB,SAAS1c,QAAO,SAAU0d,EAAMC,GAE1C,OADAD,GAAQC,EAAQF,WAAaE,EAAQF,aAAe,KAEnD,KAQP5G,EAAO+G,cAAgB,CAMrBC,YAAa,SAASrM,GACpB,IAAK,IAAI0K,KAAQ1K,EACf1V,KAAKgiB,IAAI5B,EAAM1K,EAAQ0K,KAS3B6B,cAAe,SAASC,EAAQ3K,IAC1B2K,IAAUA,EAAOC,YAAgBD,aAAkBnH,EAAOqH,UAC5DpiB,KAAKgiB,IAAIzK,EAAU,IAAIwD,EAAOqH,SAASF,KAU3CG,aAAc,SAASH,EAAQ3K,EAAU7S,IACnCwd,IAAUA,EAAO9f,QAAY8f,aAAkBnH,EAAOuH,QAIxD5d,GAAYA,IAHZ1E,KAAKgiB,IAAIzK,EAAU,IAAIwD,EAAOuH,QAAQJ,EAAQxd,KAWlD6d,cAAe,SAAS7M,GACtB,GAAKA,EAAQ8M,QAAoC,iBAAnB9M,EAAQ8M,OAAtC,CAIA,IAAIC,EAAe1H,EAAOkF,KAAKyC,gBAAgBhN,EAAQ8M,aAAAA,IAC5CC,IACTziB,KAAKwiB,OAAS,IAAIvd,SAAS,MAAOwd,MAOtCE,WAAY,SAAS3c,GACnB,IAAK,IAAIoa,KAAQpa,EACfhG,KAAK4iB,KAAKxC,EAAMpa,EAAIoa,KAWxB4B,IAAK,SAAS9lB,EAAKuJ,GAYjB,MAXmB,iBAARvJ,EACT8D,KAAK2iB,WAAWzmB,GAId8D,KAAK4iB,KAAK1mB,EADS,mBAAVuJ,GAAgC,WAARvJ,EAClBuJ,EAAMzF,KAAK6iB,IAAI3mB,IAGfuJ,GAGZzF,MAGT4iB,KAAM,SAAS1mB,EAAKuJ,GAClBzF,KAAK9D,GAAOuJ,GASdqd,OAAQ,SAASvL,GACf,IAAI9R,EAAQzF,KAAK6iB,IAAItL,GAIrB,MAHqB,kBAAV9R,GACTzF,KAAKgiB,IAAIzK,GAAW9R,GAEfzF,MAQT6iB,IAAK,SAAStL,GACZ,OAAOvX,KAAKuX,KAKhB,SAAUpa,GAER,IAAI4lB,EAAOC,KAAKD,KACZE,EAAQD,KAAKC,MACbC,EAAMF,KAAKE,IACXC,EAAUH,KAAKI,GAAK,IACpBC,EAAQL,KAAKI,GAAK,EAKtBrI,EAAOkF,KAAO,CASZqD,IAAK,SAASC,GACZ,GAAc,IAAVA,EAAe,OAAO,EAM1B,OALIA,EAAQ,IAEVA,GAASA,GAEMA,EAAQF,GAEvB,KAAK,EAAG,KAAK,EAAG,OAAO,EACvB,KAAK,EAAG,OAAQ,EAElB,OAAOL,KAAKM,IAAIC,IAUlBC,IAAK,SAASD,GACZ,GAAc,IAAVA,EAAe,OAAO,EAC1B,IAAgCE,EAAO,EAKvC,OAJIF,EAAQ,IAEVE,GAAQ,GAHOF,EAAQF,GAMvB,KAAK,EAAG,OAAOI,EACf,KAAK,EAAG,OAAO,EACf,KAAK,EAAG,OAAQA,EAElB,OAAOT,KAAKQ,IAAID,IAYlBG,gBAAiB,SAAS5L,EAAOrS,GAC/B,IAAIke,EAAM7L,EAAMlW,QAAQ6D,GAIxB,OAHa,IAATke,GACF7L,EAAMlX,OAAO+iB,EAAK,GAEb7L,GAWT8L,aAAc,SAASpJ,EAAKC,GAC1B,OAAOuI,KAAKa,MAAMb,KAAKc,UAAYrJ,EAAMD,EAAM,IAAMA,GAUvDE,iBAAkB,SAASqJ,GACzB,OAAOA,EAAUZ,GAUnBa,iBAAkB,SAASC,GACzB,OAAOA,EAAUd,GAYnBe,YAAa,SAASC,EAAO3hB,EAAQyhB,GACnCE,EAAMC,eAAe5hB,GACrB,IAAI0K,EAAI6N,EAAOkF,KAAKoE,aAAaF,EAAOF,GACxC,OAAO,IAAIlJ,EAAOuJ,MAAMpX,EAAE1T,EAAG0T,EAAEzT,GAAG8qB,UAAU/hB,IAW9C6hB,aAAc,SAASG,EAAQP,GAC7B,IAAIT,EAAMzI,EAAOkF,KAAKuD,IAAIS,GACtBX,EAAMvI,EAAOkF,KAAKqD,IAAIW,GAG1B,MAAO,CACLzqB,EAHOgrB,EAAOhrB,EAAI8pB,EAAMkB,EAAO/qB,EAAI+pB,EAInC/pB,EAHO+qB,EAAOhrB,EAAIgqB,EAAMgB,EAAO/qB,EAAI6pB,IAgBvCmB,eAAgB,SAAS/d,EAAG1M,EAAG0qB,GAC7B,OAAIA,EACK,IAAI3J,EAAOuJ,MAChBtqB,EAAE,GAAK0M,EAAElN,EAAIQ,EAAE,GAAK0M,EAAEjN,EACtBO,EAAE,GAAK0M,EAAElN,EAAIQ,EAAE,GAAK0M,EAAEjN,GAGnB,IAAIshB,EAAOuJ,MAChBtqB,EAAE,GAAK0M,EAAElN,EAAIQ,EAAE,GAAK0M,EAAEjN,EAAIO,EAAE,GAC5BA,EAAE,GAAK0M,EAAElN,EAAIQ,EAAE,GAAK0M,EAAEjN,EAAIO,EAAE,KAUhC2qB,0BAA2B,SAASC,EAAQC,GAC1C,GAAIA,EACF,IAAK,IAAIlqB,EAAI,EAAGA,EAAIiqB,EAAO5pB,OAAQL,IACjCiqB,EAAOjqB,GAAKogB,EAAOkF,KAAKwE,eAAeG,EAAOjqB,GAAIkqB,GAGtD,IAAIC,EAAU,CAACF,EAAO,GAAGprB,EAAGorB,EAAO,GAAGprB,EAAGorB,EAAO,GAAGprB,EAAGorB,EAAO,GAAGprB,GAC5DurB,EAAOhK,EAAOkF,KAAKnI,MAAM0C,IAAIsK,GAE7BpI,EADO3B,EAAOkF,KAAKnI,MAAM2C,IAAIqK,GACdC,EACfC,EAAU,CAACJ,EAAO,GAAGnrB,EAAGmrB,EAAO,GAAGnrB,EAAGmrB,EAAO,GAAGnrB,EAAGmrB,EAAO,GAAGnrB,GAC5DwrB,EAAOlK,EAAOkF,KAAKnI,MAAM0C,IAAIwK,GAIjC,MAAO,CACLE,KAAMH,EACNI,IAAKF,EACLvI,MAAOA,EACPH,OAPSxB,EAAOkF,KAAKnI,MAAM2C,IAAIuK,GACbC,IAiBtBG,gBAAiB,SAASprB,GACxB,IAAIH,EAAI,GAAKG,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAChC2W,EAAI,CAAC9W,EAAIG,EAAE,IAAKH,EAAIG,EAAE,IAAKH,EAAIG,EAAE,GAAIH,EAAIG,EAAE,IAC3CqS,EAAI0O,EAAOkF,KAAKwE,eAAe,CAAEjrB,EAAGQ,EAAE,GAAIP,EAAGO,EAAE,IAAM2W,GAAAA,GAGzD,OAFAA,EAAE,IAAMtE,EAAE7S,EACVmX,EAAE,IAAMtE,EAAE5S,EACHkX,GAWTkK,QAAS,SAASwK,EAAQC,GACxB,OAAOC,WAAWC,OAAOH,GAAQxK,QAAQyK,KAU3CG,UAAW,SAAShgB,EAAOigB,GACzB,IAAIC,EAAO,WAAWlkB,KAAKgE,GACvB4f,EAASE,WAAW9f,GAIxB,OAHKigB,IACHA,EAAW3K,EAAO6K,KAAKC,uBAEjBF,EAAK,IACX,IAAK,KACH,OAAON,EAAStK,EAAOiD,IAAM,KAE/B,IAAK,KACH,OAAOqH,EAAStK,EAAOiD,IAAM,KAE/B,IAAK,KACH,OAAOqH,EAAStK,EAAOiD,IAEzB,IAAK,KACH,OAAOqH,EAAStK,EAAOiD,IAAM,GAE/B,IAAK,KACH,OAAOqH,EAAStK,EAAOiD,IAAM,GAAK,GAEpC,IAAK,KACH,OAAOqH,EAASK,EAElB,QACE,OAAOL,IAUbS,cAAe,WACb,OAAA,GAUFC,SAAU,SAAS5a,EAAM6a,GAGvB,OADA7a,EAAO4P,EAAOkF,KAAKtjB,OAAOspB,SAAS9a,EAAKxP,OAAO,GAAGuqB,cAAgB/a,EAAK7N,MAAM,IACtEyd,EAAOkF,KAAKkG,iBAAiBH,GAAW7a,IASjDib,iBAAkB,SAASjb,GACzB,IAAIkb,EAAa,CACf,sBACA,QACA,KACA,SAEF,OAAQlb,GACN,IAAK,iBACHkb,EAAaA,EAAW7pB,OAAO,CAAC,KAAM,KAAM,KAAM,KAAM,gBAAiB,sBACzE,MACF,IAAK,iBACH6pB,EAAaA,EAAW7pB,OAAO,CAAC,gBAAiB,oBAAqB,KAAM,KAAM,IAAK,KAAM,KAAM,OACnG,MACF,IAAK,OACH6pB,EAAaA,EAAW7pB,OAAO,CAAC,SAAU,aAAc,iBAG5D,OAAO6pB,GASTF,iBAAkB,SAASH,GACzB,IAAKA,EACH,OAAOjL,EAGT,IACwBpgB,EADpBqG,EAAQglB,EAAUxkB,MAAM,KACxB9G,EAAMsG,EAAMhG,OACZgL,EAAM7I,GAAU4d,EAAO7d,OAE3B,IAAKvC,EAAI,EAAGA,EAAID,IAAOC,EACrBqL,EAAMA,EAAIhF,EAAMrG,IAGlB,OAAOqL,GAWTsgB,UAAW,SAASxnB,EAAK4F,EAAUmE,EAAS0d,GAC1C,GAAKznB,EAAL,CAKA,IAAI0nB,EAAMzL,EAAOkF,KAAKwG,cAGlBC,EAAiB,WACnBhiB,GAAYA,EAASjG,KAAKoK,EAAS2d,GACnCA,EAAMA,EAAI7c,OAAS6c,EAAI/lB,QAAU,MAGnC+lB,EAAI7c,OAAS+c,EAEbF,EAAI/lB,QAAU,WACZsa,EAAOyE,IAAI,iBAAmBgH,EAAI7Y,KAClCjJ,GAAYA,EAASjG,KAAKoK,EAAS,MAAA,GACnC2d,EAAMA,EAAI7c,OAAS6c,EAAI/lB,QAAU,MAOP,IAAxB3B,EAAI8C,QAAQ,SAAiB2kB,IAC/BC,EAAID,YAAcA,GAMQ,mBAAxBznB,EAAI0E,UAAU,EAAE,MAClBgjB,EAAI7c,OAAS,KACboR,EAAOkF,KAAK0G,eAAeH,EAAKE,IAGlCF,EAAI7Y,IAAM7O,OApCR4F,GAAYA,EAASjG,KAAKoK,EAAS/J,IA8CvC6nB,eAAgB,SAASH,EAAKE,GAC5B,IAAIE,EAAM7L,EAAOtd,SAAS+M,cAAc,OACxCoc,EAAIpa,MAAMkQ,MAAQkK,EAAIpa,MAAM+P,OAAS,MACrCqK,EAAIpa,MAAM0Y,KAAO0B,EAAIpa,MAAM2Y,IAAM,QACjCyB,EAAIpa,MAAMqa,SAAW,WACrBD,EAAIja,YAAY6Z,GAChBzL,EAAOtd,SAASqpB,cAAc,QAAQna,YAAYia,GAMlDJ,EAAI7c,OAAS,WACX+c,IACAE,EAAIzZ,WAAWC,YAAYwZ,GAC3BA,EAAM,OAcVG,eAAgB,SAAS5F,EAASzc,EAAUshB,EAAWgB,GAGrD,IAAIC,EAAmB,GACnBC,EAAmB,EACnBC,GAJJhG,EAAUA,GAAW,IAISnmB,OAE9B,SAASosB,MACDF,IAAqBC,GACzBziB,GAAYA,EAASuiB,EAAiB/P,QAAO,SAASlR,GAEpD,OAAOA,MAKRmhB,EAKLhG,EAAQxJ,SAAQ,SAAUtL,EAAG4U,GAEtB5U,GAAMA,EAAElB,KAID4P,EAAOkF,KAAK8F,SAAS1Z,EAAElB,KAAM6a,GACnCqB,WAAWhb,GAAG,SAAUrG,EAAK7G,GACjCA,IAAU8nB,EAAiBhG,GAASjb,GACpCghB,GAAWA,EAAQ3a,EAAGrG,EAAK7G,GAC3BioB,OAPAA,OAPF1iB,GAAYA,EAASuiB,IA2BzBK,gBAAiB,SAASC,EAAU7iB,GAGlC,SAAS0iB,MACDI,IAAsBC,GAC1B/iB,GAAYA,EAASgjB,GAIzB,IAAIA,EAAoB,GACpBF,EAAoB,EACpBC,GAVJF,EAAWA,GAAY,IAUIvsB,OAEtBysB,EAKLF,EAAS5P,SAAQ,SAAUjR,EAAGua,GACxBva,GAAKA,EAAEtE,OACT,IAAI2Y,EAAOuH,QAAQ5b,GAAG,SAASihB,GAC7BD,EAAkBzG,GAAS0G,EAC3BP,QAIFM,EAAkBzG,GAASva,EAC3B0gB,QAbF1iB,GAAYA,EAASgjB,IA2BzBE,iBAAkB,SAASC,EAAUnS,EAASoS,GAC5C,IAAIxQ,EACJ,OAAIuQ,GAAgC,IAApBA,EAAS7sB,OAChB6sB,EAAS,IAEdnS,IACEA,EAAQgH,OAAShH,EAAQ6G,OAC3B7G,EAAQqS,YAAc,CACpBvuB,EAAGkc,EAAQgH,MAAQ,EACnBjjB,EAAGic,EAAQ6G,OAAS,WAIf7G,EAAQgH,aACRhH,EAAQ6G,SAGnBjF,EAAS,IAAIyD,EAAOiN,MAAMH,EAAUnS,QAAAA,IACzBoS,IACTxQ,EAAO2Q,WAAaH,GAEfxQ,IAWT4Q,uBAAwB,SAAS9lB,EAAQyF,EAAasgB,GACpD,GAAIA,GAA6D,mBAA/CpiB,OAAOb,UAAUrF,SAASpB,KAAK0pB,GAC/C,IAAK,IAAIxtB,EAAI,EAAGD,EAAMytB,EAAWntB,OAAQL,EAAID,EAAKC,IAC5CwtB,EAAWxtB,KAAMyH,IACnByF,EAAYsgB,EAAWxtB,IAAMyH,EAAO+lB,EAAWxtB,MAmBvDytB,eAAgB,SAAShM,EAAK5iB,EAAGC,EAAG4uB,EAAIC,EAAIhc,GAC1C,IAAIic,EAAKF,EAAK7uB,EACVgvB,EAAKF,EAAK7uB,EACViB,EAAMqoB,EAAKwF,EAAKA,EAAKC,EAAKA,GAC1BC,EAAMxF,EAAMuF,EAAID,GAChBG,EAAKpc,EAAGtR,OACR2tB,EAAK,EACLC,GAAAA,EAQJ,IANAxM,EAAIyM,OACJzM,EAAIE,UAAU9iB,EAAGC,GACjB2iB,EAAI0M,OAAO,EAAG,GACd1M,EAAI2M,OAAON,GAEXjvB,EAAI,EACGkB,EAAMlB,IACXA,GAAK8S,EAAGqc,IAAOD,IACPhuB,IACNlB,EAAIkB,GAEN0hB,EAAIwM,EAAO,SAAW,UAAUpvB,EAAG,GACnCovB,GAAQA,EAGVxM,EAAI4M,WASNC,oBAAqB,WACnB,OAAOlO,EAAOtd,SAAS+M,cAAc,WAUvC0e,kBAAmB,SAAShN,GAC1B,IAAIiN,EAAYpO,EAAOkF,KAAKgJ,sBAI5B,OAHAE,EAAUzM,MAAQR,EAAOQ,MACzByM,EAAU5M,OAASL,EAAOK,OAC1B4M,EAAU9M,WAAW,MAAMI,UAAUP,EAAQ,EAAG,GACzCiN,GAYTC,UAAW,SAASC,EAAUC,EAAQC,GACpC,OAAOF,EAASD,UAAU,SAAWE,EAAQC,IAS/C9C,YAAa,WACX,OAAO1L,EAAOtd,SAAS+M,cAAc,QAUvCgf,YAAa,SAASC,EAAUrN,GAC9BA,EAAIyM,OACJzM,EAAIsN,YACJD,EAASjH,OAAOpG,GAChBA,EAAIuN,QAYNC,0BAA2B,SAAS/vB,EAAGC,EAAG+vB,GAExC,MAAO,CACLhwB,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GACvBD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GACvBD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GACvBD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GACvB+vB,EAAQ,EAAIhwB,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAC1CgwB,EAAQ,EAAIhwB,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,KAW9CiwB,YAAa,SAASjwB,GACpB,IAAI0pB,EAAQN,EAAMppB,EAAE,GAAIA,EAAE,IACtBkwB,EAAQ7G,EAAIrpB,EAAE,GAAI,GAAKqpB,EAAIrpB,EAAE,GAAI,GACjCmwB,EAASjH,EAAKgH,GACdE,GAAUpwB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAG,IAAMmwB,EACxCE,EAAQjH,EAAMppB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAG,GAAIkwB,GAC9C,MAAO,CACLxG,MAAOA,EAASJ,EAChB6G,OAAQA,EACRC,OAAQA,EACRC,MAAOA,EAAQ/G,EACfgH,MAAO,EACPC,WAAYvwB,EAAE,GACdwwB,WAAYxwB,EAAE,KAclBywB,iBAAkB,SAAS5U,GACzB,IAAKA,EAAQ6N,MACX,OAAOxI,EAAOsD,QAAQ7hB,SAExB,IAAI+tB,EAAQxP,EAAOkF,KAAKvF,iBAAiBhF,EAAQ6N,OAC7CD,EAAMvI,EAAOkF,KAAKqD,IAAIiH,GACtB/G,EAAMzI,EAAOkF,KAAKuD,IAAI+G,GAC1B,MAAO,CAACjH,EAAKE,GAAMA,EAAKF,EAAK,EAAG,IAoBlCkH,qBAAsB,SAAS9U,GAC7B,IAAIsU,OAAAA,IAAgBtU,EAAQsU,OAAyB,EAAItU,EAAQsU,OAC7DC,OAAAA,IAAgBvU,EAAQuU,OAAyB,EAAIvU,EAAQuU,OAC7DQ,EAAc,CACZ/U,EAAQgV,OAASV,EAASA,EAC1B,EACA,EACAtU,EAAQiV,OAASV,EAASA,EAC1B,EACA,GACFW,EAAW7P,EAAOkF,KAAK2J,0BACvBlP,EAAmBK,EAAOkF,KAAKvF,iBAanC,OAZIhF,EAAQwU,QACVO,EAAcG,EACZH,EACA,CAAC,EAAG,EAAGzH,KAAK6H,IAAInQ,EAAiBhF,EAAQwU,QAAS,IAAA,IAGlDxU,EAAQyU,QACVM,EAAcG,EACZH,EACA,CAAC,EAAGzH,KAAK6H,IAAInQ,EAAiBhF,EAAQyU,QAAS,EAAG,IAAA,IAG/CM,GAqBTK,cAAe,SAASpV,GACtB,IAAIqV,EAAS,CAAC,EAAG,EAAG,EAAG,EAAGrV,EAAQ0U,YAAc,EAAG1U,EAAQ2U,YAAc,GACrEO,EAAW7P,EAAOkF,KAAK2J,0BAO3B,OANIlU,EAAQ6N,QACVwH,EAASH,EAASG,EAAQhQ,EAAOkF,KAAKqK,iBAAiB5U,MAErDA,EAAQsU,QAAUtU,EAAQuU,QAAUvU,EAAQwU,OAASxU,EAAQyU,OAASzU,EAAQgV,OAAShV,EAAQiV,SACjGI,EAASH,EAASG,EAAQhQ,EAAOkF,KAAKuK,qBAAqB9U,KAEtDqV,GAcTC,sBAAuB,SAAShB,EAAQC,EAAQC,GAC9C,OAAOnP,EAAOkF,KAAK6K,cAAc,CAAEd,OAAQA,EAAQC,OAAQA,EAAQC,MAAOA,KAS5Ee,qBAAsB,SAAUtgB,GAC9BA,EAAOqf,OAAS,EAChBrf,EAAOsf,OAAS,EAChBtf,EAAOuf,MAAQ,EACfvf,EAAOwf,MAAQ,EACfxf,EAAO+f,OAAAA,EACP/f,EAAOggB,OAAAA,EACPhgB,EAAOoe,OAAO,IAUhBmC,oBAAqB,SAAUvgB,GAC7B,MAAO,CACLqf,OAAQrf,EAAOqf,OACfC,OAAQtf,EAAOsf,OACfC,MAAOvf,EAAOuf,MACdC,MAAOxf,EAAOwf,MACd5G,MAAO5Y,EAAO4Y,MACd2B,KAAMva,EAAOua,KACbwF,MAAO/f,EAAO+f,MACdC,MAAOhgB,EAAOggB,MACdxF,IAAKxa,EAAOwa,MAShBzC,gBAAiB,SAASte,GACxB,OAAQ/I,OAAO+I,GAAItE,MAAM,+BAAiC,IAAI,IAWhEqrB,cAAe,SAAS/O,EAAK5iB,EAAGC,EAAG2xB,GAI7BA,EAAY,IACV5xB,EAAI4xB,EACN5xB,GAAK4xB,EAGL5xB,EAAI,EAEFC,EAAI2xB,EACN3xB,GAAK2xB,EAGL3xB,EAAI,GAIR,IAA2BkB,EAAvB0wB,GAAAA,EACAC,EAAYlP,EAAImP,aAAa/xB,EAAGC,EAAgB,EAAZ2xB,GAAkB,EAAgB,EAAZA,GAAkB,GAC5Erf,EAAIuf,EAAUnvB,KAAKnB,OAGvB,IAAKL,EAAI,EAAGA,EAAIoR,GAGS,IADvBsf,EADOC,EAAUnvB,KAAKxB,IACG,GAFRA,GAAK,GAUxB,OAFA2wB,EAAY,KAELD,GAQTG,kCAAmC,SAASC,GAC1C,IAC6CC,EADzCC,EAAc,OACdC,EAAmBH,EAAUjqB,MAAM,KAevC,OAbIoqB,GAAoBA,EAAiB5wB,SAEnB,UADpB2wB,EAAcC,EAAiB7X,QACe,UAAhB4X,GAC5BD,EAAQC,EACRA,EAAc,QAEPC,EAAiB5wB,SACxB0wB,EAAQE,EAAiB7X,QAMtB,CACL4X,YAAaA,EACbE,OAJiB,SAAVH,EAAmBA,EAAMpuB,MAAM,EAAG,GAAK,OAK9CwuB,OAJiB,SAAVJ,EAAmBA,EAAMpuB,MAAM,EAAG,GAAK,SAoBlDyuB,qBAAsB,SAASC,IAC7BA,GAAcA,GAAc,IAAItd,eAIvBqM,EAAO2D,gBAAgBsN,WACvBjR,EAAO2D,gBAAgBsN,GAH9BjR,EAAO2D,gBAAkB,IAgB7BuN,gBAAiB,SAASC,EAAIC,GAC5B,IAAIC,EAAapJ,KAAKD,KAAKoJ,EAAcD,GACrCG,EAAiBrJ,KAAKa,MAAMsI,EAAcC,GAC9C,MAAO,CAAE5yB,EAAGwpB,KAAKa,MAAMuI,GAAa3yB,EAAG4yB,IAGzCC,SAAU,SAAS9R,EAAK/U,EAAOgV,GAC7B,OAAOuI,KAAKvI,IAAID,EAAKwI,KAAKxI,IAAI/U,EAAOgV,KAgBvC8R,eAAgB,SAASnqB,EAAQyF,GAC/B,OAAOmb,KAAKxI,IAAI3S,EAAY6U,MAAQta,EAAOsa,MAAO7U,EAAY0U,OAASna,EAAOma,SAgBhFiQ,iBAAkB,SAASpqB,EAAQyF,GACjC,OAAOmb,KAAKvI,IAAI5S,EAAY6U,MAAQta,EAAOsa,MAAO7U,EAAY0U,OAASna,EAAOma,SAUhFkQ,YAAa,SAAS5H,GACpB,MAAO,UAAYA,EAAU9P,KAAI,SAAStP,GACxC,OAAOsV,EAAOkF,KAAKpF,QAAQpV,EAAOsV,EAAOhV,OAAO2mB,wBAC/ChnB,KAAK,KAAO,MA1+BrB,CA6+BoChJ,GAGpC,WAEE,IAAIiwB,EAAQlmB,MAAMvB,UAAUQ,KAM5B,SAASknB,EAAcC,EAAKC,EAAKC,EAAIC,EAAIC,EAAOC,EAAOC,GACrD,IAAIC,EAAaT,EAAMluB,KAAKC,WAC5B,GAAIqc,EAAOmE,mBAAmBkO,GAC5B,OAAOrS,EAAOmE,mBAAmBkO,GAGnC,IAAIhK,EAAKJ,KAAKI,GAAIiK,EAAKF,EAAU/J,EAAK,IAClCkK,EAAQvS,EAAOkF,KAAKuD,IAAI6J,GACxBE,EAAQxS,EAAOkF,KAAKqD,IAAI+J,GACxBG,EAAQ,EAAGC,EAAQ,EAKnBC,GAAMH,EAAQV,EAAM,GAAMS,EAAQR,EAAM,GACxCa,GAAMJ,EAAQT,EAAM,GAAMQ,EAAQT,EAAM,GACxCe,GALJb,EAAK/J,KAAK6K,IAAId,IAKCA,EAAIe,GAJnBd,EAAKhK,KAAK6K,IAAIb,IAIgBA,EAAIe,EAAMJ,EAAKA,EAAIK,EAAMN,EAAKA,EACxDO,EAAKL,EAAME,EAAMF,EAAMG,EAAMD,EAAME,EACnCE,EAAO,EAEX,GAAID,EAAK,EAAG,CACV,IAAIl0B,EAAIipB,KAAKD,KAAK,EAAIkL,GAAML,EAAME,IAClCf,GAAMhzB,EACNizB,GAAMjzB,OAGNm0B,GAAQjB,IAAUC,GAAS,EAAM,GACzBlK,KAAKD,KAAMkL,GAAML,EAAMG,EAAMD,EAAME,IAG7C,IAAIG,EAAKD,EAAOnB,EAAKY,EAAKX,EACtBoB,GAAMF,EAAOlB,EAAKU,EAAKX,EACvBsB,EAAMd,EAAQY,EAAKb,EAAQc,EAAW,GAANvB,EAChCyB,EAAMhB,EAAQa,EAAKZ,EAAQa,EAAW,GAANtB,EAChCyB,EAASC,EAAgB,EAAG,GAAId,EAAKS,GAAMpB,GAAKY,EAAKS,GAAMpB,GAC3DyB,EAASD,GAAiBd,EAAKS,GAAMpB,GAAKY,EAAKS,GAAMpB,IAAMU,EAAKS,GAAMpB,IAAMY,EAAKS,GAAMpB,GAE7E,IAAVE,GAAeuB,EAAS,EAC1BA,GAAU,EAAIrL,EAEG,IAAV8J,GAAeuB,EAAS,IAC/BA,GAAU,EAAIrL,GAShB,IALA,IAAIsL,EAAW1L,KAAK2L,KAAK3L,KAAK6K,IAAIY,EAASrL,EAAK,IAC5C1f,EAAS,GAAIkrB,EAASH,EAASC,EAC/BG,EAAK,EAAI,EAAI7L,KAAKQ,IAAIoL,EAAS,GAAK5L,KAAKQ,IAAIoL,EAAS,GAAK5L,KAAKQ,IAAIoL,EAAS,GAC7EE,EAAMP,EAASK,EAEVj0B,EAAI,EAAGA,EAAI+zB,EAAU/zB,IAC5B+I,EAAO/I,GAAKo0B,EAAgBR,EAAQO,EAAKvB,EAAOD,EAAOP,EAAIC,EAAIqB,EAAKC,EAAKO,EAAIrB,EAAOC,GACpFD,EAAQ9pB,EAAO/I,GAAG,GAClB8yB,EAAQ/pB,EAAO/I,GAAG,GAClB4zB,EAASO,EACTA,GAAOF,EAGT,OADA7T,EAAOmE,mBAAmBkO,GAAc1pB,EACjCA,EAGT,SAASqrB,EAAgBC,EAAKF,EAAKvB,EAAOD,EAAOP,EAAIC,EAAIqB,EAAKC,EAAKO,EAAIrB,EAAOC,GAC5E,IAAIwB,EAASlU,EAAOkF,KAAKqD,IAAI0L,GACzBE,EAASnU,EAAOkF,KAAKuD,IAAIwL,GACzBG,EAASpU,EAAOkF,KAAKqD,IAAIwL,GACzBM,EAASrU,EAAOkF,KAAKuD,IAAIsL,GACzBjC,EAAMU,EAAQR,EAAKoC,EAAS7B,EAAQN,EAAKoC,EAASf,EAClDvB,EAAMQ,EAAQP,EAAKoC,EAAS5B,EAAQP,EAAKoC,EAASd,EAMtD,MAAO,CALId,EAAQqB,IAAQtB,EAAQR,EAAKmC,EAAS5B,EAAQN,EAAKiC,GACnDxB,EAAQoB,IAAQvB,EAAQP,EAAKmC,EAAS3B,EAAQP,EAAKiC,GACnDpC,EAAMgC,GAAOtB,EAAQR,EAAKqC,EAAS9B,EAAQN,EAAKmC,GAChDrC,EAAM+B,GAAOvB,EAAQP,EAAKqC,EAAS7B,EAAQP,EAAKmC,GAKzDtC,EAAKC,GAOT,SAAS0B,EAAgBa,EAAIC,EAAIC,EAAIC,GACnC,IAAIxe,EAAKgS,KAAKC,MAAMqM,EAAID,GACpBI,EAAKzM,KAAKC,MAAMuM,EAAID,GACxB,OAAIE,GAAMze,EACDye,EAAKze,EAGL,EAAIgS,KAAKI,IAAMpS,EAAKye,GAwE/B,SAASC,EAAiBC,EAAIC,EAAIC,EAAIC,EAAIzH,EAAIC,EAAIyH,EAAIC,GACpD,IAAI5C,EACJ,GAAIrS,EAAOqE,sBACTgO,EAAaT,EAAMluB,KAAKC,WACpBqc,EAAOoE,mBAAmBiO,IAC5B,OAAOrS,EAAOoE,mBAAmBiO,GAIrC,IAIIvzB,EAAGC,EAAGM,EAAGJ,EAAGi2B,EAAIC,EAAIC,EAAMC,EAJ1BrN,EAAOC,KAAKD,KACZvI,EAAMwI,KAAKxI,IAAKC,EAAMuI,KAAKvI,IAC3BoT,EAAM7K,KAAK6K,IAAKwC,EAAU,GAC1BC,EAAS,CAAC,GAAI,IAGlBx2B,EAAI,EAAI61B,EAAK,GAAKE,EAAK,EAAIxH,EAC3BxuB,GAAK,EAAI81B,EAAK,EAAIE,EAAK,EAAIxH,EAAK,EAAI0H,EACpC31B,EAAI,EAAIy1B,EAAK,EAAIF,EAEjB,IAAK,IAAIh1B,EAAI,EAAGA,EAAI,IAAKA,EAOvB,GANIA,EAAI,IACNb,EAAI,EAAI81B,EAAK,GAAKE,EAAK,EAAIxH,EAC3BzuB,GAAK,EAAI+1B,EAAK,EAAIE,EAAK,EAAIxH,EAAK,EAAI0H,EACpC51B,EAAI,EAAI01B,EAAK,EAAIF,GAGf/B,EAAIh0B,GAAK,MAAb,CACE,GAAIg0B,EAAI/zB,GAAK,MACX,SAGE,GADJE,GAAKI,EAAIN,IACIE,EAAI,GACfq2B,EAAQ3vB,KAAK1G,QAIjBm2B,EAAOr2B,EAAIA,EAAI,EAAIM,EAAIP,GACZ,IAKP,GADJo2B,IAAOn2B,GADPs2B,EAAWrN,EAAKoN,MACQ,EAAIt2B,KACdo2B,EAAK,GACjBI,EAAQ3vB,KAAKuvB,GAGX,GADJC,IAAOp2B,EAAIs2B,IAAa,EAAIv2B,KACdq2B,EAAK,GACjBG,EAAQ3vB,KAAKwvB,IAKjB,IADA,IAAwCK,EAA9B7uB,EAAI2uB,EAAQr1B,OAAQw1B,EAAO9uB,EAC9BA,KAIL4uB,EAAO,GAAG5uB,IAFV6uB,EAAK,GADLv2B,EAAIq2B,EAAQ3uB,KAEF6uB,EAAKA,EAAKZ,EAAO,EAAIY,EAAKA,EAAKv2B,EAAI61B,EAAO,EAAIU,EAAKv2B,EAAIA,EAAIquB,EAAOruB,EAAIA,EAAIA,EAAI+1B,EAIxFO,EAAO,GAAG5uB,GADL6uB,EAAKA,EAAKA,EAAKX,EAAO,EAAIW,EAAKA,EAAKv2B,EAAI81B,EAAO,EAAIS,EAAKv2B,EAAIA,EAAIsuB,EAAOtuB,EAAIA,EAAIA,EAAIg2B,EAI1FM,EAAO,GAAGE,GAAQb,EAClBW,EAAO,GAAGE,GAAQZ,EAClBU,EAAO,GAAGE,EAAO,GAAKT,EACtBO,EAAO,GAAGE,EAAO,GAAKR,EACtB,IAAItsB,EAAS,CACX,CACElK,EAAGghB,EAAIhc,MAAM,KAAM8xB,EAAO,IAC1B72B,EAAG+gB,EAAIhc,MAAM,KAAM8xB,EAAO,KAE5B,CACE92B,EAAGihB,EAAIjc,MAAM,KAAM8xB,EAAO,IAC1B72B,EAAGghB,EAAIjc,MAAM,KAAM8xB,EAAO,MAM9B,OAHIvV,EAAOqE,sBACTrE,EAAOoE,mBAAmBiO,GAAc1pB,GAEnCA,EA5ITqX,EAAOkF,KAAKwQ,QAAU,SAASrU,EAAKsU,EAAIC,EAAIC,GAW1C,IAVA,IAOIC,EAAO,CAAC,GAAI,GAAI,GAAI,IACpBC,EAAWlE,EAHNgE,EAAO,GAGkBF,EAFzBE,EAAO,GAE2BD,EARlCC,EAAO,GACPA,EAAO,GAEJA,EAAO,GACPA,EAAO,GAFTA,EAAO,IAQRj2B,EAAI,EAAGD,EAAMo2B,EAAS91B,OAAQL,EAAID,EAAKC,IAC9Ck2B,EAAKl2B,GAAG,GAAKm2B,EAASn2B,GAAG,GAAK+1B,EAC9BG,EAAKl2B,GAAG,GAAKm2B,EAASn2B,GAAG,GAAKg2B,EAC9BE,EAAKl2B,GAAG,GAAKm2B,EAASn2B,GAAG,GAAK+1B,EAC9BG,EAAKl2B,GAAG,GAAKm2B,EAASn2B,GAAG,GAAKg2B,EAC9BE,EAAKl2B,GAAG,GAAKm2B,EAASn2B,GAAG,GAAK+1B,EAC9BG,EAAKl2B,GAAG,GAAKm2B,EAASn2B,GAAG,GAAKg2B,EAC9BvU,EAAI2U,cAAcvyB,MAAM4d,EAAKyU,EAAKl2B,KAgBtCogB,EAAOkF,KAAK+Q,eAAiB,SAASN,EAAIC,EAAI5D,EAAIC,EAAIvE,EAAKwE,EAAOC,EAAO+D,EAAIC,GAK3E,IAHA,IAA0BC,EAAtB3D,EAAQ,EAAGC,EAAQ,EAAU6C,EAAS,GACtCO,EAAOjE,EAAcqE,EAAKP,EAAIQ,EAAKP,EAAI5D,EAAIC,EAAIC,EAAOC,EAAOzE,GAExD9tB,EAAI,EAAGD,EAAMm2B,EAAK71B,OAAQL,EAAID,EAAKC,IAC1Cw2B,EAAQzB,EAAiBlC,EAAOC,EAAOoD,EAAKl2B,GAAG,GAAIk2B,EAAKl2B,GAAG,GAAIk2B,EAAKl2B,GAAG,GAAIk2B,EAAKl2B,GAAG,GAAIk2B,EAAKl2B,GAAG,GAAIk2B,EAAKl2B,GAAG,IAC3G21B,EAAO5vB,KAAK,CAAElH,EAAG23B,EAAM,GAAG33B,EAAIk3B,EAAIj3B,EAAG03B,EAAM,GAAG13B,EAAIk3B,IAClDL,EAAO5vB,KAAK,CAAElH,EAAG23B,EAAM,GAAG33B,EAAIk3B,EAAIj3B,EAAG03B,EAAM,GAAG13B,EAAIk3B,IAClDnD,EAAQqD,EAAKl2B,GAAG,GAChB8yB,EAAQoD,EAAKl2B,GAAG,GAElB,OAAO21B,GAiGTvV,EAAOkF,KAAKyP,iBAAmBA,EA5PjC,GAiQA,WAEE,IAAIpyB,EAAQmJ,MAAMvB,UAAU5H,MAyD5B,SAAS8zB,EAAKtZ,EAAOuZ,EAAYC,GAC/B,GAAKxZ,GAA0B,IAAjBA,EAAM9c,OAApB,CAIA,IAAIL,EAAImd,EAAM9c,OAAS,EACnB0I,EAAS2tB,EAAavZ,EAAMnd,GAAG02B,GAAcvZ,EAAMnd,GACvD,GAAI02B,EACF,KAAO12B,KACD22B,EAAUxZ,EAAMnd,GAAG02B,GAAa3tB,KAClCA,EAASoU,EAAMnd,GAAG02B,SAKtB,KAAO12B,KACD22B,EAAUxZ,EAAMnd,GAAI+I,KACtBA,EAASoU,EAAMnd,IAIrB,OAAO+I,GAMTqX,EAAOkF,KAAKnI,MAAQ,CAClBoI,KAvCF,SAAcpI,EAAOrS,GAEnB,IADA,IAAIxJ,EAAI6b,EAAM9c,OACPiB,KACL6b,EAAM7b,GAAKwJ,EAEb,OAAOqS,GAmCPyZ,OA7EF,SAAgBzZ,EAAO0Z,GAErB,IADA,IAAIpxB,EAAO9C,EAAMmB,KAAKC,UAAW,GAAIgF,EAAS,GACrC/I,EAAI,EAAGD,EAAMod,EAAM9c,OAAQL,EAAID,EAAKC,IAC3C+I,EAAO/I,GAAKyF,EAAKpF,OAAS8c,EAAMnd,GAAG62B,GAAQhzB,MAAMsZ,EAAMnd,GAAIyF,GAAQ0X,EAAMnd,GAAG62B,GAAQ/yB,KAAKqZ,EAAMnd,IAEjG,OAAO+I,GAyEP8W,IAlDF,SAAa1C,EAAOuZ,GAClB,OAAOD,EAAKtZ,EAAOuZ,GAAY,SAASI,EAAQC,GAC9C,OAAOD,EAASC,MAiDlBjX,IAhEF,SAAa3C,EAAOuZ,GAClB,OAAOD,EAAKtZ,EAAOuZ,GAAY,SAASI,EAAQC,GAC9C,OAAOD,GAAUC,OA5BvB,GAgGA,WAaE,SAAStb,EAAOvO,EAAazF,EAAQuvB,GAInC,GAAIA,EACF,IAAK5W,EAAO8C,cAAgBzb,aAAkBwvB,QAE5C/pB,EAAczF,OAEX,GAAIA,aAAkBqE,MAAO,CAChCoB,EAAc,GACd,IAAK,IAAIlN,EAAI,EAAGD,EAAM0H,EAAOpH,OAAQL,EAAID,EAAKC,IAC5CkN,EAAYlN,GAAKyb,EAAO,GAAKhU,EAAOzH,GAAIg3B,QAGvC,GAAIvvB,GAA4B,iBAAXA,EACxB,IAAK,IAAImV,KAAYnV,EACF,WAAbmV,EACF1P,EAAY0P,GAAYnB,EAAO,GAAKhU,EAAOmV,IAEpCnV,EAAO7D,eAAegZ,KAC7B1P,EAAY0P,GAAYnB,EAAO,GAAKhU,EAAOmV,GAAWoa,SAM1D9pB,EAAczF,OAIhB,IAAK,IAAImV,KAAYnV,EACnByF,EAAY0P,GAAYnV,EAAOmV,GAGnC,OAAO1P,EAeTkT,EAAOkF,KAAK3I,OAAS,CACnBlB,OAAQA,EACRQ,MAPF,SAAeU,EAAQqa,GACrB,OAAOvb,EAAO,GAAKkB,EAAQqa,KAQ7B5W,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOkF,KAAMlF,EAAO1C,YAnEhD,GAuEA,WA4DE,SAASwZ,EAAaC,EAAKn3B,GACzB,IAAIuf,EAAO4X,EAAIr2B,WAAWd,GAE1B,GAAIqZ,MAAMkG,GACR,MAAO,GAET,GAAIA,EAAO,OAAUA,EAAO,MAC1B,OAAO4X,EAAIn2B,OAAOhB,GAKpB,GAAI,OAAUuf,GAAQA,GAAQ,MAAQ,CACpC,GAAI4X,EAAI92B,QAAWL,EAAI,EACrB,KAAM,iDAER,IAAIuN,EAAO4pB,EAAIr2B,WAAWd,EAAI,GAC9B,GAAI,MAASuN,GAAQA,EAAO,MAC1B,KAAM,iDAER,OAAO4pB,EAAIn2B,OAAOhB,GAAKm3B,EAAIn2B,OAAOhB,EAAI,GAGxC,GAAU,IAANA,EACF,KAAM,iDAER,IAAIwJ,EAAO2tB,EAAIr2B,WAAWd,EAAI,GAI9B,GAAI,MAASwJ,GAAQA,EAAO,MAC1B,KAAM,iDAIR,OAAA,EAQF4W,EAAOkF,KAAKtjB,OAAS,CACnBspB,SAhGF,SAAkBtpB,GAChB,OAAOA,EAAOkP,QAAQ,WAAW,SAAS/L,EAAOiyB,GAC/C,OAAOA,EAAYA,EAAU7L,cAAgB,OA+F/C8L,WAlFF,SAAoBr1B,EAAQs1B,GAC1B,OAAOt1B,EAAOhB,OAAO,GAAGuqB,eACrB+L,EAAkBt1B,EAAOW,MAAM,GAAKX,EAAOW,MAAM,GAAGoR,gBAiFvDwjB,UAxEF,SAAmBv1B,GACjB,OAAOA,EAAOkP,QAAQ,KAAM,SACzBA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,SAoEjBsmB,cA3DF,SAAuBC,GACrB,IAAWC,EAAP13B,EAAI,EAAQ23B,EAAY,GAC5B,IAAK33B,EAAI,EAAQA,EAAIy3B,EAAWp3B,OAAQL,KAAAA,KACjC03B,EAAMR,EAAaO,EAAYz3B,KAGpC23B,EAAU5xB,KAAK2xB,GAEjB,OAAOC,IAxDX,GAgHA,WAEE,IAAIh1B,EAAQmJ,MAAMvB,UAAU5H,MAAOi1B,EAAgB,aAE/CC,EAAoB,WAClB,IAAK,IAAI9rB,IAAK,CAAE7G,SAAU,GACxB,GAAU,aAAN6G,EACF,OAAA,EAGJ,OAAA,EANkB,GAUpB+rB,EAAa,SAASC,EAAOtwB,EAAQmH,GACnC,IAAK,IAAIgO,KAAYnV,EAMjBswB,EAAMxtB,UAAUqS,GAJdA,KAAYmb,EAAMxtB,WACmB,mBAA9BwtB,EAAMxtB,UAAUqS,KACtBnV,EAAOmV,GAAY,IAAI3V,QAAQ,cAAgB,EAEtB,SAAU2V,GACpC,OAAO,WAEL,IAAIob,EAAa3yB,KAAK4G,YAAY+rB,WAClC3yB,KAAK4G,YAAY+rB,WAAappB,EAC9B,IAAIqpB,EAAcxwB,EAAOmV,GAAU/Y,MAAMwB,KAAMtB,WAG/C,GAFAsB,KAAK4G,YAAY+rB,WAAaA,EAEb,eAAbpb,EACF,OAAOqb,GATe,CAYzBrb,GAGyBnV,EAAOmV,GAGjCib,IACEpwB,EAAOvC,WAAakG,OAAOb,UAAUrF,WACvC6yB,EAAMxtB,UAAUrF,SAAWuC,EAAOvC,UAEhCuC,EAAOywB,UAAY9sB,OAAOb,UAAU2tB,UACtCH,EAAMxtB,UAAU2tB,QAAUzwB,EAAOywB,WAM7C,SAASC,KAET,SAASC,EAAUC,GAKjB,IAJA,IAAIC,EAAe,KACfzrB,EAAQxH,KAGLwH,EAAMZ,YAAY+rB,YAAY,CACnC,IAAIO,EAAmB1rB,EAAMZ,YAAY+rB,WAAWztB,UAAU8tB,GAC9D,GAAIxrB,EAAMwrB,KAAgBE,EAAkB,CAC1CD,EAAeC,EACf,MAGF1rB,EAAQA,EAAMZ,YAAY+rB,WAAWztB,UAGvC,OAAK+tB,EAIGv0B,UAAU1D,OAAS,EACvBi4B,EAAaz0B,MAAMwB,KAAM1C,EAAMmB,KAAKC,UAAW,IAC/Cu0B,EAAax0B,KAAKuB,MALbwE,QAAQgb,IAAI,sBAAwBwT,EAAa,wCAAyChzB,MA6CrG+a,EAAOkF,KAAKkT,YA9BZ,WACE,IAAI5pB,EAAS,KACT4e,EAAa7qB,EAAMmB,KAAKC,UAAW,GAKvC,SAASg0B,IACP1yB,KAAKozB,WAAW50B,MAAMwB,KAAMtB,WAJD,mBAAlBypB,EAAW,KACpB5e,EAAS4e,EAAWkL,SAMtBX,EAAMC,WAAappB,EACnBmpB,EAAMY,WAAa,GAEf/pB,IACFupB,EAAS5tB,UAAYqE,EAAOrE,UAC5BwtB,EAAMxtB,UAAY,IAAI4tB,EACtBvpB,EAAO+pB,WAAW5yB,KAAKgyB,IAEzB,IAAK,IAAI/3B,EAAI,EAAGK,EAASmtB,EAAWntB,OAAQL,EAAIK,EAAQL,IACtD83B,EAAWC,EAAOvK,EAAWxtB,GAAI4O,GAOnC,OALKmpB,EAAMxtB,UAAUkuB,aACnBV,EAAMxtB,UAAUkuB,WAAab,GAE/BG,EAAMxtB,UAAU0B,YAAc8rB,EAC9BA,EAAMxtB,UAAU6tB,UAAYA,EACrBL,GA9GX,GAuHMvY,IAAwBY,EAAOtd,SAAS+M,cAAc,OAAO+oB,YASjExY,EAAOkF,KAAKuT,YAAc,SAASvyB,EAAS6e,EAAWtf,EAASkV,GAC9DzU,GAAWA,EAAQwyB,iBAAiB3T,EAAWtf,GAAS2Z,GAA8BzE,IAWxFqF,EAAOkF,KAAKyT,eAAiB,SAASzyB,EAAS6e,EAAWtf,EAASkV,GACjEzU,GAAWA,EAAQ0yB,oBAAoB7T,EAAWtf,GAAS2Z,GAA8BzE,IAW3FqF,EAAOkF,KAAK2T,WAAa,SAASC,GAChC,IACIC,EAAS/Y,EAAOkF,KAAK8T,iBADXF,EAAMlpB,QAEhBqpB,EAXN,SAAsBH,GACpB,IAAII,EAAYJ,EAAMK,eACtB,OAAID,GAAaA,EAAU,GAClBA,EAAU,GAEZJ,EALT,CAW0BA,GACxB,MAAO,CACLr6B,EAAGw6B,EAAKG,QAAUL,EAAO5O,KACzBzrB,EAAGu6B,EAAKI,QAAUN,EAAO3O,MAwCzB/K,EAAUW,EAAOtd,SAAS+M,cAAc,OAGxC6P,EAAY,wCAGZC,EAAa,SAAUrZ,GAAW,OAAOA,GALU,iBAA1BmZ,EAAQ5N,MAAM6nB,QASzC/Z,EAAa,SAASrZ,EAASwE,GAE7B,OADAxE,EAAQuL,MAAM6nB,QAAU5uB,EACjBxE,GAV2C,iBAAzBmZ,EAAQ5N,MAAM0K,SAezCoD,EAAa,SAASrZ,EAASwE,GAC7B,IAAI6uB,EAAKrzB,EAAQuL,MAWjB,OAVIvL,EAAQszB,eAAiBtzB,EAAQszB,aAAaC,YAChDF,EAAGG,KAAO,GAERpa,EAAUnP,KAAKopB,EAAGpd,QAEpBod,EAAGpd,OAASod,EAAGpd,OAAOrL,QAAQwO,EAD9B5U,EAAQA,GAAS,MAAS,GAAM,iBAA4B,IAARA,EAAe,KAInE6uB,EAAGpd,QAAU,kBAA6B,IAARzR,EAAe,IAE5CxE,IAIX8Z,EAAOkF,KAAKyU,SA1DZ,SAAkBzzB,EAAS0zB,GACzB,IAAIC,EAAe3zB,EAAQuL,MAC3B,IAAKooB,EACH,OAAO3zB,EAET,GAAsB,iBAAX0zB,EAET,OADA1zB,EAAQuL,MAAMC,SAAW,IAAMkoB,EACxBA,EAAO/yB,QAAQ,YAAc,EAChC0Y,EAAWrZ,EAAS0zB,EAAO70B,MAAM,0BAA0B,IAC3DmB,EAEN,IAAK,IAAIsW,KAAYod,EACF,YAAbpd,EACF+C,EAAWrZ,EAAS0zB,EAAOpd,IAM3Bqd,EAHuC,UAAbrd,GAAqC,aAAbA,OAAAA,IACtCqd,EAAaC,WAA6B,WAAa,aAC/Dtd,GAC+Bod,EAAOpd,GAG9C,OAAOtW,GAyCX,WAEE,IAYI6zB,EAyKAC,EAkBEvoB,EACAwoB,EAxMF33B,EAASoJ,MAAMvB,UAAU5H,MAmBzB23B,EAAU,SAASC,GACjB,OAAO73B,EAAOoB,KAAKy2B,EAAW,IAGpC,IACEJ,EAA2BG,EAAQla,EAAOtd,SAAS03B,sBAAuB1uB,MAE5E,MAAOX,IAmBP,SAASsvB,EAAYtnB,EAASuY,GAC5B,IAAIgP,EAAKta,EAAOtd,SAAS+M,cAAcsD,GACvC,IAAK,IAAIsS,KAAQiG,EACF,UAATjG,EACFiV,EAAG/nB,UAAY+Y,EAAWjG,GAEV,QAATA,EACPiV,EAAGC,QAAUjP,EAAWjG,GAGxBiV,EAAG3oB,aAAa0T,EAAMiG,EAAWjG,IAGrC,OAAOiV,EAwCT,SAAStB,EAAiB9yB,GAaxB,IAXA,IAAIikB,EAAO,EACPC,EAAM,EACNoQ,EAAaxa,EAAOtd,SAASsP,gBAC7BzB,EAAOyP,EAAOtd,SAAS6N,MAAQ,CAC7BkqB,WAAY,EAAGC,UAAW,GAOzBx0B,IAAYA,EAAQkM,YAAclM,EAAQy0B,SAG/Cz0B,EAAUA,EAAQkM,YAAclM,EAAQy0B,QAExB3a,EAAOtd,UACrBynB,EAAO5Z,EAAKkqB,YAAcD,EAAWC,YAAc,EACnDrQ,EAAM7Z,EAAKmqB,WAAcF,EAAWE,WAAa,IAGjDvQ,GAAQjkB,EAAQu0B,YAAc,EAC9BrQ,GAAOlkB,EAAQw0B,WAAa,GAGL,IAArBx0B,EAAQ00B,UAA6C,UAA3B10B,EAAQuL,MAAMqa,YAK9C,MAAO,CAAE3B,KAAMA,EAAMC,IAAKA,GAtGvB2P,IACHG,EAAU,SAASC,GAEjB,IADA,IAAIU,EAAM,IAAInvB,MAAMyuB,EAAUl6B,QAASL,EAAIu6B,EAAUl6B,OAC9CL,KACLi7B,EAAIj7B,GAAKu6B,EAAUv6B,GAErB,OAAOi7B,IAqJTb,EADEha,EAAOtd,SAASo4B,aAAe9a,EAAOtd,SAASo4B,YAAYC,iBAC3C,SAAS70B,EAAS80B,GAClC,IAAIvpB,EAAQuO,EAAOtd,SAASo4B,YAAYC,iBAAiB70B,EAAS,MAClE,OAAOuL,EAAQA,EAAMupB,QAAAA,GAIL,SAAS90B,EAAS80B,GAClC,IAAItwB,EAAQxE,EAAQuL,MAAMupB,GAI1B,OAHKtwB,GAASxE,EAAQszB,eACpB9uB,EAAQxE,EAAQszB,aAAawB,IAExBtwB,GAMLuvB,EAAa,eADbxoB,EAAQuO,EAAOtd,SAASsP,gBAAgBP,OAEpC,aACA,kBAAmBA,EACjB,gBACA,qBAAsBA,EACpB,mBACA,oBAAqBA,EACnB,kBACA,GAwCduO,EAAOkF,KAAK+V,wBAhCZ,SAAiC/0B,GAU/B,YAAA,IATWA,EAAQg1B,gBACjBh1B,EAAQg1B,cAAgBlb,EAAOkF,KAAK6F,eAElCkP,EACF/zB,EAAQuL,MAAMwoB,GAAc,OAEW,iBAAzB/zB,EAAQi1B,eACtBj1B,EAAQi1B,aAAe,MAElBj1B,GAuBT8Z,EAAOkF,KAAKkW,sBAdZ,SAA+Bl1B,GAU7B,YAAA,IATWA,EAAQg1B,gBACjBh1B,EAAQg1B,cAAgB,MAEtBjB,EACF/zB,EAAQuL,MAAMwoB,GAAc,GAEW,iBAAzB/zB,EAAQi1B,eACtBj1B,EAAQi1B,aAAe,IAElBj1B,GAuCT8Z,EAAOkF,KAAKmW,UAxBZ,SAAmBt3B,EAAK4F,GACtB,IAAI2xB,EAAStb,EAAOtd,SAASqP,qBAAqB,QAAQ,GACtDwpB,EAAWvb,EAAOtd,SAAS+M,cAAc,UACzC+rB,GAAAA,EAGJD,EAAS3sB,OAAwB2sB,EAAS1oB,mBAAqB,SAASnK,GACtE,GAAI8yB,EAAS,CACX,GAA+B,iBAApBv2B,KAAK6N,YACQ,WAApB7N,KAAK6N,YACe,aAApB7N,KAAK6N,WACP,OAEF0oB,GAAAA,EACA7xB,EAASjB,GAAKsX,EAAO7d,OAAO22B,OAC5ByC,EAAWA,EAAS3sB,OAAS2sB,EAAS1oB,mBAAqB,OAG/D0oB,EAAS3oB,IAAM7O,EACfu3B,EAAO1pB,YAAY2pB,IA4BvBvb,EAAOkF,KAAKuW,QA3SZ,SAAiB/kB,GACf,MAAqB,iBAAPA,EAAkBsJ,EAAOtd,SAASg5B,eAAehlB,GAAMA,GA2SvEsJ,EAAOkF,KAAKgV,QAAUA,EACtBla,EAAOkF,KAAKmV,YAAcA,EAC1Bra,EAAOkF,KAAKyW,SAnPZ,SAAkBz1B,EAASqM,GACrBrM,IAA+E,KAAnE,IAAMA,EAAQqM,UAAY,KAAK1L,QAAQ,IAAM0L,EAAY,OACvErM,EAAQqM,YAAcrM,EAAQqM,UAAY,IAAM,IAAMA,IAkP1DyN,EAAOkF,KAAK0W,YAtOZ,SAAqB11B,EAAS21B,EAASvQ,GAQrC,MAPuB,iBAAZuQ,IACTA,EAAUxB,EAAYwB,EAASvQ,IAE7BplB,EAAQkM,YACVlM,EAAQkM,WAAW0pB,aAAaD,EAAS31B,GAE3C21B,EAAQjqB,YAAY1L,GACb21B,GA+NT7b,EAAOkF,KAAK8T,iBAAmBA,EAC/BhZ,EAAOkF,KAAK6W,iBA7KZ,SAA0B71B,GACxB,IAAI81B,EAIAC,EAHAC,EAAMh2B,GAAWA,EAAQi2B,cACzBC,EAAM,CAAEjS,KAAM,EAAGC,IAAK,GACtBzL,EAAS,CAAEwL,KAAM,EAAGC,IAAK,GAEzBiS,EAAmB,CACjBC,gBAAiB,OACjBC,eAAiB,MACjBC,YAAiB,OACjBC,WAAiB,OAGvB,IAAKP,EACH,OAAOvd,EAGT,IAAK,IAAIqc,KAAQqB,EACf1d,EAAO0d,EAAiBrB,KAAU1nB,SAAS0mB,EAAgB9zB,EAAS80B,GAAO,KAAO,EAUpF,OAPAgB,EAAUE,EAAIlqB,qBAAAA,IACF9L,EAAQw2B,wBAClBN,EAAMl2B,EAAQw2B,yBAGhBT,EAAgBjD,EAAiB9yB,GAE1B,CACLikB,KAAMiS,EAAIjS,KAAO8R,EAAc9R,MAAQ6R,EAAQW,YAAc,GAAKhe,EAAOwL,KACzEC,IAAKgS,EAAIhS,IAAM6R,EAAc7R,KAAO4R,EAAQY,WAAa,GAAMje,EAAOyL,MAgJ1EpK,EAAOkF,KAAK8U,gBAAkBA,EAC9Bha,EAAOkF,KAAK2X,cA5BZ,SAAuB32B,GACrB,IAAI42B,EAAO9c,EAAOU,oBAAoBxa,GACtC,OAAO42B,EAAKC,SAAWD,EAAKE,QA2B9Bhd,EAAOkF,KAAK+X,iBAxBZ,SAA0B/2B,GACxB,GAAK8Z,EAAO8C,aAAZ,CAGA,IAAIga,EAAO9c,EAAOU,oBAAoBxa,GAClC42B,IACFA,EAAKE,OAAS,KACdF,EAAKC,QAAU,KAEfD,EAAKI,YAAc,KACnBJ,EAAKK,YAAc,KACnBL,EAAKM,WAAa,QAjTxB,GAmUA,WAME,SAASC,KA8CTrd,EAAOkF,KAAKoY,QAjCZ,SAAiBv5B,EAAK4W,GACpBA,IAAYA,EAAU,IAEtB,IAAI8b,EAAS9b,EAAQ8b,OAAS9b,EAAQ8b,OAAOtL,cAAgB,MACzDoS,EAAa5iB,EAAQ4iB,YAAc,aACnCv2B,EAAM,IAAIgZ,EAAO7d,OAAO8E,eACxBsJ,EAAOoK,EAAQpK,MAAQoK,EAAQ6iB,WAwBnC,OArBAx2B,EAAI6L,mBAAqB,WACA,IAAnB7L,EAAI8L,aACNyqB,EAAWv2B,GACXA,EAAI6L,mBAAqBwqB,IAId,QAAX5G,IACFlmB,EAAO,KAC2B,iBAAvBoK,EAAQ6iB,aACjBz5B,EApCN,SAAuBA,EAAK05B,GAC1B,OAAO15B,GAAO,KAAKoM,KAAKpM,GAAO,IAAM,KAAO05B,EAD9C,CAoC0B15B,EAAK4W,EAAQ6iB,cAIrCx2B,EAAIE,KAAKuvB,EAAQ1yB,GAAAA,GAEF,SAAX0yB,GAAgC,QAAXA,GACvBzvB,EAAI02B,iBAAiB,eAAgB,qCAGvC12B,EAAIG,KAAKoJ,GACFvJ,GAjDX,GA4DAgZ,EAAOyE,IAAMhb,QAAQgb,IAMrBzE,EAAO9P,KAAOzG,QAAQyG,KAGtB,WAEE,SAASytB,IACP,OAAA,EAGF,SAASC,EAAc3+B,EAAGF,EAAGM,EAAGC,GAC9B,OAAQD,EAAI4oB,KAAKM,IAAItpB,EAAIK,GAAK2oB,KAAKI,GAAK,IAAMhpB,EAAIN,EA2DpD,IAAI8+B,EAAoB7d,EAAO7d,OAAO27B,uBACd9d,EAAO7d,OAAO47B,6BACd/d,EAAO7d,OAAO67B,0BACdhe,EAAO7d,OAAO87B,wBACdje,EAAO7d,OAAO+7B,yBACd,SAASv0B,GACP,OAAOqW,EAAO7d,OAAOmD,WAAWqE,EAAU,IAAO,KAGvEw0B,EAAmBne,EAAO7d,OAAOi8B,sBAAwBpe,EAAO7d,OAAO0S,aAS3E,SAASwpB,IACP,OAAOR,EAAkBp6B,MAAMuc,EAAO7d,OAAQwB,WAOhDqc,EAAOkF,KAAKoZ,QArEZ,SAAiB3jB,GAEf0jB,GAAiB,SAASE,GACxB5jB,IAAYA,EAAU,IAEtB,IAE+B6jB,EAF3BjqB,EAAQgqB,IAAc,IAAIptB,KAC1BstB,EAAW9jB,EAAQ8jB,UAAY,IAC/BC,EAASnqB,EAAQkqB,EACjBE,EAAWhkB,EAAQgkB,UAAYhB,EAC/BiB,EAAQjkB,EAAQikB,OAASjB,EACzBJ,EAAa5iB,EAAQ4iB,YAAcI,EACnCkB,EAASlkB,EAAQkkB,QAAUjB,EAC3BkB,EAAa,eAAgBnkB,EAAUA,EAAQmkB,WAAa,EAC5DC,EAAW,aAAcpkB,EAAUA,EAAQokB,SAAW,IACtDC,EAAUrkB,EAAQqkB,SAAWD,EAAWD,EAE5CnkB,EAAQskB,SAAWtkB,EAAQskB,UAE3B,SAAUC,EAAKC,GAIb,IAAIC,GADJZ,EAAOW,IAAa,IAAIhuB,MACCutB,EAASD,EAAYD,EAAOjqB,EACjD8qB,EAAWD,EAAcX,EACzB3X,EAAU+X,EAAOO,EAAaN,EAAYE,EAASP,GACnDa,EAAYrX,KAAK6K,KAAKhM,EAAUgY,GAAcE,GAClD,IAAIJ,IAIJ,OAAIJ,EAAOE,GACTC,EAASI,EAAU,EAAG,QACtBxB,EAAWwB,EAAU,EAAG,KAIxBJ,EAAS7X,EAASwY,EAAWD,QAC7BhB,EAAiBa,IAVjB3B,EAAWwB,EAAU,EAAG,GAT5B,CAqBGxqB,OA+BPyL,EAAOkF,KAAKmZ,iBAAmBA,EAC/Bre,EAAOkF,KAAKqa,gBANZ,WACE,OAAOpB,EAAiB16B,MAAMuc,EAAO7d,OAAQwB,YAzFjD,GAiJEqc,EAAOkF,KAAKsa,aApBZ,SAAsBC,EAAWC,EAASjB,EAAU9jB,GAClD,IAAIglB,EAAa,IAAI3f,EAAO4f,MAAMH,GAAWI,YACzCC,EAAW,IAAI9f,EAAO4f,MAAMF,GAASG,YAIzC7f,EAAOkF,KAAKoZ,QAAQte,EAAOkF,KAAK3I,OAAOlB,OAFvCV,EAAUA,GAAW,GAEkC,CACrD8jB,SAAUA,GAAY,IACtBK,WAAYa,EACZZ,SAAUe,EACVd,QAASc,EACTjB,OAAQ,SAAUO,EAAaN,EAAYE,EAASP,GAClD,IAnCkBsB,EAAOC,EAAKC,EAC9BC,EAqCA,OAtCkBH,EAsCIjB,EAtCGkB,EAsCShB,EAtCJiB,EAmCftlB,EAAQwlB,YACnBxlB,EAAQwlB,YAAYf,EAAaX,GACjC,EAAIxW,KAAKM,IAAI6W,EAAcX,GAAYxW,KAAKI,GAAK,IApCrD6X,EAAQ,QACN5sB,SAAUysB,EAAM,GAAKE,GAAOD,EAAI,GAAKD,EAAM,IAAM,IAAM,IACvDzsB,SAAUysB,EAAM,GAAKE,GAAOD,EAAI,GAAKD,EAAM,IAAM,IAAM,IACvDzsB,SAAUysB,EAAM,GAAKE,GAAOD,EAAI,GAAKD,EAAM,IAAM,KAEvDG,GAAS,KAAOH,GAASC,EAAMxV,WAAWuV,EAAM,GAAKE,GAAOD,EAAI,GAAKD,EAAM,KAAO,IACzE,SAyCb,WAEE,SAASK,EAAUthC,EAAGO,EAAGsM,EAAG3M,GAc1B,OAbIF,EAAImpB,KAAK6K,IAAIzzB,IACfP,EAAIO,EACJL,EAAI2M,EAAI,GAKN3M,EADQ,IAANK,GAAiB,IAANP,EACT6M,GAAK,EAAIsc,KAAKI,IAAMJ,KAAKoY,KAAK,GAG9B10B,GAAK,EAAIsc,KAAKI,IAAMJ,KAAKoY,KAAKhhC,EAAIP,GAGnC,CAAEA,EAAGA,EAAGO,EAAGA,EAAGsM,EAAGA,EAAG3M,EAAGA,GAGhC,SAASshC,EAAQC,EAAMthC,EAAGK,GACxB,OAAOihC,EAAKzhC,EACVmpB,KAAKE,IAAI,EAAG,IAAMlpB,GAAK,IACvBgpB,KAAKQ,KAAMxpB,EAAIK,EAAIihC,EAAKvhC,IAAM,EAAIipB,KAAKI,IAAMkY,EAAK50B,GA8QtD,SAAS60B,EAAavhC,EAAGF,EAAGM,EAAGC,GAC7B,OAAOD,EAAIohC,EAAenhC,EAAIL,EAAG,EAAGI,EAAGC,GAAKP,EAO9C,SAAS0hC,EAAcxhC,EAAGF,EAAGM,EAAGC,GAC9B,OAAKL,GAAKK,GAAM,EAAI,KACXD,GAAK,OAASJ,EAAIA,GAAKF,EAEvBE,EAAK,EAAI,KACTI,GAAK,QAAUJ,GAAM,IAAM,MAASA,EAAI,KAAQF,EAEhDE,EAAK,IAAM,KACXI,GAAK,QAAUJ,GAAM,KAAO,MAASA,EAAI,OAAUF,EAGnDM,GAAK,QAAUJ,GAAM,MAAQ,MAASA,EAAI,SAAYF,EAoBjEihB,EAAOkF,KAAKwb,KAAO,CAMjBC,WAAY,SAAS1hC,EAAGF,EAAGM,EAAGC,GAC5B,OAAOD,GAAKJ,GAAKK,GAAKL,EAAIF,GAO5B6hC,YAAa,SAAS3hC,EAAGF,EAAGM,EAAGC,GAC7B,OAAQD,GAAKJ,GAAKK,IAAML,EAAI,GAAKF,GAOnC8hC,cAAe,SAAS5hC,EAAGF,EAAGM,EAAGC,GAE/B,OADAL,GAAMK,EAAI,GACF,EACCD,EAAI,EAAIJ,EAAIA,EAAIF,GAEjBM,EAAI,KAAQJ,GAAMA,EAAI,GAAK,GAAKF,GAO1C+hC,YAAa,SAAS7hC,EAAGF,EAAGM,EAAGC,GAC7B,OAAOD,GAAKJ,GAAKK,GAAKL,EAAIA,EAAIF,GAGhCgiC,aApVF,SAAsB9hC,EAAGF,EAAGM,EAAGC,GAC7B,OAAOD,IAAMJ,EAAIA,EAAIK,EAAI,GAAKL,EAAIA,EAAI,GAAKF,GAoV3CiiC,eA7UF,SAAwB/hC,EAAGF,EAAGM,EAAGC,GAE/B,OADAL,GAAKK,EAAI,GACD,EACCD,EAAI,EAAIJ,EAAIA,EAAIA,EAAIF,EAEtBM,EAAI,IAAMJ,GAAK,GAAKA,EAAIA,EAAI,GAAKF,GAyUxCkiC,YAlUF,SAAqBhiC,EAAGF,EAAGM,EAAGC,GAC5B,OAAOD,GAAKJ,GAAKK,GAAKL,EAAIA,EAAIA,EAAIF,GAkUlCmiC,aA3TF,SAAsBjiC,EAAGF,EAAGM,EAAGC,GAC7B,OAAQD,IAAMJ,EAAIA,EAAIK,EAAI,GAAKL,EAAIA,EAAIA,EAAI,GAAKF,GA2ThDoiC,eApTF,SAAwBliC,EAAGF,EAAGM,EAAGC,GAE/B,OADAL,GAAKK,EAAI,GACD,EACCD,EAAI,EAAIJ,EAAIA,EAAIA,EAAIA,EAAIF,GAEzBM,EAAI,IAAMJ,GAAK,GAAKA,EAAIA,EAAIA,EAAI,GAAKF,GAgT7CqiC,YAzSF,SAAqBniC,EAAGF,EAAGM,EAAGC,GAC5B,OAAOD,GAAKJ,GAAKK,GAAKL,EAAIA,EAAIA,EAAIA,EAAIF,GAyStCsiC,aAlSF,SAAsBpiC,EAAGF,EAAGM,EAAGC,GAC7B,OAAOD,IAAMJ,EAAIA,EAAIK,EAAI,GAAKL,EAAIA,EAAIA,EAAIA,EAAI,GAAKF,GAkSnDuiC,eA3RF,SAAwBriC,EAAGF,EAAGM,EAAGC,GAE/B,OADAL,GAAKK,EAAI,GACD,EACCD,EAAI,EAAIJ,EAAIA,EAAIA,EAAIA,EAAIA,EAAIF,EAE9BM,EAAI,IAAMJ,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GAAKF,GAuRhDwiC,WAhRF,SAAoBtiC,EAAGF,EAAGM,EAAGC,GAC3B,OAAQD,EAAI4oB,KAAKM,IAAItpB,EAAIK,GAAK2oB,KAAKI,GAAK,IAAMhpB,EAAIN,GAgRlDyiC,YAzQF,SAAqBviC,EAAGF,EAAGM,EAAGC,GAC5B,OAAOD,EAAI4oB,KAAKQ,IAAIxpB,EAAIK,GAAK2oB,KAAKI,GAAK,IAAMtpB,GAyQ7C0iC,cAlQF,SAAuBxiC,EAAGF,EAAGM,EAAGC,GAC9B,OAAQD,EAAI,GAAK4oB,KAAKM,IAAIN,KAAKI,GAAKppB,EAAIK,GAAK,GAAKP,GAkQlD2iC,WA3PF,SAAoBziC,EAAGF,EAAGM,EAAGC,GAC3B,OAAc,IAANL,EAAWF,EAAIM,EAAI4oB,KAAKE,IAAI,EAAG,IAAMlpB,EAAIK,EAAI,IAAMP,GA2P3D4iC,YApPF,SAAqB1iC,EAAGF,EAAGM,EAAGC,GAC5B,OAAQL,IAAMK,EAAKP,EAAIM,EAAIA,GAAiC,EAA3B4oB,KAAKE,IAAI,GAAI,GAAKlpB,EAAIK,IAAUP,GAoPjE6iC,cA7OF,SAAuB3iC,EAAGF,EAAGM,EAAGC,GAC9B,OAAU,IAANL,EACKF,EAELE,IAAMK,EACDP,EAAIM,GAEbJ,GAAKK,EAAI,GACD,EACCD,EAAI,EAAI4oB,KAAKE,IAAI,EAAG,IAAMlpB,EAAI,IAAMF,EAEtCM,EAAI,GAA+B,EAAzB4oB,KAAKE,IAAI,GAAI,KAAOlpB,IAAUF,GAmO/C8iC,WA5NF,SAAoB5iC,EAAGF,EAAGM,EAAGC,GAC3B,OAAQD,GAAK4oB,KAAKD,KAAK,GAAK/oB,GAAKK,GAAKL,GAAK,GAAKF,GA4NhD+iC,YArNF,SAAqB7iC,EAAGF,EAAGM,EAAGC,GAC5B,OAAOD,EAAI4oB,KAAKD,KAAK,GAAK/oB,EAAIA,EAAIK,EAAI,GAAKL,GAAKF,GAqNhDgjC,cA9MF,SAAuB9iC,EAAGF,EAAGM,EAAGC,GAE9B,OADAL,GAAKK,EAAI,GACD,GACED,EAAI,GAAK4oB,KAAKD,KAAK,EAAI/oB,EAAIA,GAAK,GAAKF,EAExCM,EAAI,GAAK4oB,KAAKD,KAAK,GAAK/oB,GAAK,GAAKA,GAAK,GAAKF,GA0MnDijC,cAnMF,SAAuB/iC,EAAGF,EAAGM,EAAGC,GAC9B,IAAiBqM,EAAI,EACrB,OAAU,IAAN1M,EACKF,EAGC,IADVE,GAAKK,GAEIP,EAAIM,GAERsM,IACHA,EAAQ,GAAJrM,IAGEghC,EADGF,EAXiB/gC,EAWJA,EAAGsM,EAXnB,SAYc1M,EAAGK,GAAKP,IAuL9BkjC,eAhLF,SAAwBhjC,EAAGF,EAAGM,EAAGC,GAC/B,IAAiBqM,EAAI,EACrB,GAAU,IAAN1M,EACF,OAAOF,EAGT,GAAU,IADVE,GAAKK,GAEH,OAAOP,EAAIM,EAERsM,IACHA,EAAQ,GAAJrM,GAEN,IAAIihC,EAAOH,EAXiB/gC,EAWJA,EAAGsM,EAXnB,SAYR,OAAO40B,EAAKzhC,EAAImpB,KAAKE,IAAI,GAAI,GAAKlpB,GAAKgpB,KAAKQ,KAAKxpB,EAAIK,EAAIihC,EAAKvhC,IAAM,EAAIipB,KAAKI,IAAMkY,EAAK50B,GAAM40B,EAAKlhC,EAAIN,GAoKvGmjC,iBA7JF,SAA0BjjC,EAAGF,EAAGM,EAAGC,GACjC,IAAiBqM,EAAI,EACrB,GAAU,IAAN1M,EACF,OAAOF,EAGT,GAAU,IADVE,GAAKK,EAAI,GAEP,OAAOP,EAAIM,EAERsM,IACHA,EAAIrM,GAAK,GAAM,MAEjB,IAAIihC,EAAOH,EAXiB/gC,EAWJA,EAAGsM,EAXnB,SAYR,OAAI1M,EAAI,GACE,GAAMqhC,EAAQC,EAAMthC,EAAGK,GAAKP,EAE/BwhC,EAAKzhC,EAAImpB,KAAKE,IAAI,GAAI,IAAMlpB,GAAK,IACtCgpB,KAAKQ,KAAKxpB,EAAIK,EAAIihC,EAAKvhC,IAAM,EAAIipB,KAAKI,IAAMkY,EAAK50B,GAAM,GAAM40B,EAAKlhC,EAAIN,GA6IxEojC,WAtIF,SAAoBljC,EAAGF,EAAGM,EAAGC,EAAGN,GAI9B,YAAA,IAHIA,IACFA,EAAI,SAECK,GAAKJ,GAAKK,GAAKL,IAAMD,EAAI,GAAKC,EAAID,GAAKD,GAmI9CqjC,YA5HF,SAAqBnjC,EAAGF,EAAGM,EAAGC,EAAGN,GAI/B,YAAA,IAHIA,IACFA,EAAI,SAECK,IAAMJ,EAAIA,EAAIK,EAAI,GAAKL,IAAMD,EAAI,GAAKC,EAAID,GAAK,GAAKD,GAyH3DsjC,cAlHF,SAAuBpjC,EAAGF,EAAGM,EAAGC,EAAGN,GAKjC,YAAA,IAJIA,IACFA,EAAI,UAENC,GAAKK,EAAI,GACD,EACCD,EAAI,GAAKJ,EAAIA,IAAuB,GAAhBD,GAAK,QAAgBC,EAAID,IAAMD,EAErDM,EAAI,IAAMJ,GAAK,GAAKA,IAAuB,GAAhBD,GAAK,QAAgBC,EAAID,GAAK,GAAKD,GA2GrEyhC,aAAcA,EACdC,cAAeA,EACf6B,gBA3EF,SAAyBrjC,EAAGF,EAAGM,EAAGC,GAChC,OAAIL,EAAIK,EAAI,EAC6B,GAAhCkhC,EAAkB,EAAJvhC,EAAO,EAAGI,EAAGC,GAAWP,EAEJ,GAApC0hC,EAAkB,EAAJxhC,EAAQK,EAAG,EAAGD,EAAGC,GAAe,GAAJD,EAAUN,IAnU/D,GAgZA,SAAUqD,GAER,aAOA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3C3E,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5BQ,EAAQmE,EAAOkF,KAAK3I,OAAOV,MAC3BiE,EAAUE,EAAOkF,KAAKpF,QACtB4K,EAAY1K,EAAOkF,KAAKwF,UACxBmE,EAA4B7O,EAAOkF,KAAK2J,0BAQxC0T,EAAgB,CACdnP,GAAsB,OACtB30B,EAAsB,OACtBmX,EAAsB,SACtByd,GAAsB,MACtB30B,EAAsB,MACtB8jC,QAAsB,UACtBC,WAAsB,UACtB3Y,UAAsB,kBACtB,eAAsB,cACtB,YAAsB,WACtB,cAAsB,aACtB,YAAsB,WACtB,aAAsB,YACtB,cAAsB,aACtB,iBAAsB,cACtB,cAAsB,aACtB,mBAAsB,kBACtB,oBAAsB,mBACtB,iBAAsB,gBACtB,kBAAsB,iBACtB,oBAAsB,mBACtB,iBAAsB,gBACtB,eAAsB,cACtB,kBAAsB,iBACtB,cAAsB,aACtBwP,QAAsB,UACtB,YAAsB,WACtB,YAAsB,WACtB,gBAAsB,iBAGxBoJ,EAAkB,CAChBC,OAAQ,gBACRxd,KAAQ,eAcd,SAASyd,EAAc5H,GAErB,OAAIA,KAAQuH,EACHA,EAAcvH,GAEhBA,EAGT,SAAS6H,EAAe7H,EAAMtwB,EAAOo4B,EAAkBnY,GACrD,IACIoY,EADAhnB,EAAoD,mBAA1C/Q,OAAOb,UAAUrF,SAASpB,KAAKgH,GAG7C,GAAc,SAATswB,GAA4B,WAATA,GAAgC,SAAVtwB,EAGzC,GAAa,kBAATswB,EACPtwB,EAAkB,uBAAVA,OAEL,GAAa,oBAATswB,EAELtwB,EADY,SAAVA,EACM,KAGAA,EAAMoG,QAAQ,KAAM,KAAKrK,MAAM,OAAOuT,IAAIwQ,iBAGjD,GAAa,oBAATwQ,EAELtwB,EADEo4B,GAAoBA,EAAiBE,gBAC/BnU,EACNiU,EAAiBE,gBAAiBhjB,EAAOijB,wBAAwBv4B,IAG3DsV,EAAOijB,wBAAwBv4B,QAGtC,GAAa,YAATswB,EACPtwB,EAAkB,SAAVA,GAA8B,WAAVA,EAExBo4B,IAAAA,IAAoBA,EAAiBI,UACvCx4B,GAAAA,QAGC,GAAa,YAATswB,EACPtwB,EAAQ8f,WAAW9f,GACfo4B,QAAAA,IAA2BA,EAAiBxJ,UAC9C5uB,GAASo4B,EAAiBxJ,cAGzB,GAAa,eAAT0B,EACPtwB,EAAkB,UAAVA,EAAoB,OAAmB,QAAVA,EAAkB,QAAU,cAE9D,GAAa,gBAATswB,EAEP+H,EAASrY,EAAUhgB,EAAOigB,GAAYA,EAAW,SAE9C,GAAa,eAATqQ,EAAuB,CAC9B,IAAImI,EAAYz4B,EAAM7D,QAAQ,QAC1Bu8B,EAAc14B,EAAM7D,QAAQ,UAC5B6D,EAAQ,QACRy4B,GAAa,GAAKC,GAAe,GAAKA,EAAcD,IAGhC,IAAfA,GAAoBC,GAAe,KAF1C14B,EAAQ,cAMP,CAAA,GAAa,SAATswB,GAA4B,eAATA,EAC1B,OAAOtwB,EAGPq4B,EAAShnB,EAAUrR,EAAMsP,IAAI0Q,GAAaA,EAAUhgB,EAAOigB,QAzD3DjgB,EAAQ,GA4DV,OAASqR,GAAW9C,MAAM8pB,GAAUr4B,EAAQq4B,EAM9C,SAASM,EAAYxI,GACnB,OAAO,IAAI3f,OAAO,KAAO2f,EAAIlwB,KAAK,KAAO,OAAQ,KAkCnD,SAAS24B,EAAkBpH,EAAKqH,GAC9B,IAA8BC,EAAU5jC,EAAGD,EAA7B8jC,EAAY,GAC1B,IAAK7jC,EAAI,EAAGD,EAAM4jC,EAAUtjC,OAAQL,EAAID,EAAKC,IAE3C4jC,EAAWtH,EAAInqB,qBADJwxB,EAAU3jC,IAErB6jC,EAAYA,EAAUhiC,OAAOiK,MAAMvB,UAAU5H,MAAMmB,KAAK8/B,IAE1D,OAAOC,EA6MT,SAASC,EAAmBx9B,EAASy9B,GACnC,IAAIC,EAAeC,GAAAA,EAMnB,OAJAD,EAAgBE,EAAgB59B,EAASy9B,EAAU3qB,SAC9B2qB,EAAU1jC,SAC7B4jC,EAKJ,SAA6B39B,EAASy9B,GAEpC,IADA,IAAII,EAAUF,GAAAA,EACP39B,EAAQkM,YAA8C,IAAhClM,EAAQkM,WAAWwoB,UAAkB+I,EAAU1jC,QACtE4jC,IACFE,EAAWJ,EAAU3qB,OAGvB6qB,EAAiBC,EADjB59B,EAAUA,EAAQkM,WACwB2xB,GAE5C,OAA4B,IAArBJ,EAAU1jC,OATnB,CALyCiG,EAASy9B,IAEzCC,GAAiBC,GAAwC,IAArBF,EAAU1jC,OAkBvD,SAAS6jC,EAAgB59B,EAAS69B,GAChC,IAEqCC,EAASpkC,EAF1CqkC,EAAW/9B,EAAQ+9B,SACnBC,EAAah+B,EAAQi+B,aAAa,SAClCztB,EAAKxQ,EAAQi+B,aAAa,MAS9B,GANAH,EAAU,IAAI9oB,OAAO,IAAM+oB,EAAU,KACrCF,EAAWA,EAASjzB,QAAQkzB,EAAS,IACjCttB,GAAMqtB,EAAS9jC,SACjB+jC,EAAU,IAAI9oB,OAAO,IAAMxE,EAAK,mBAAoB,KACpDqtB,EAAWA,EAASjzB,QAAQkzB,EAAS,KAEnCE,GAAcH,EAAS9jC,OAEzB,IAAKL,GADLskC,EAAaA,EAAWz9B,MAAM,MACVxG,OAAQL,KAC1BokC,EAAU,IAAI9oB,OAAO,MAAQgpB,EAAWtkC,GAAK,mBAAoB,KACjEmkC,EAAWA,EAASjzB,QAAQkzB,EAAS,IAGzC,OAA2B,IAApBD,EAAS9jC,OAOlB,SAASmkC,EAAYlI,EAAKxlB,GACxB,IAAI4jB,EAEJ,GADA4B,EAAIR,iBAAmBpB,EAAK4B,EAAIR,eAAehlB,IAC3C4jB,EACF,OAAOA,EAET,IAAI+J,EAAMzkC,EAAGD,EAAK2kC,EAAWpI,EAAInqB,qBAAqB,KACtD,IAAKnS,EAAI,EAAGD,EAAM2kC,EAASrkC,OAAQL,EAAID,EAAKC,IAE1C,GAAI8W,KADJ2tB,EAAOC,EAAS1kC,IACAukC,aAAa,MAC3B,OAAOE,EA5YbrkB,EAAOukB,sBAAwBlB,EA7CR,CAAC,OAAQ,SAAU,UAAW,WAAY,UAAW,OAAQ,OAC9E,QAAS,SA6CfrjB,EAAOwkB,wBAA0BnB,EA5CR,CAAC,SAAU,QAAS,SAAU,UAAW,OAAQ,QA6C1ErjB,EAAOykB,yBAA2BpB,EA5CR,CAAC,UAAW,OAAQ,SAAU,WAAY,WAAY,OAAQ,SA6CxFrjB,EAAO0kB,qBAAuBrB,EA5CR,CAAC,SAAU,IAAK,IAAK,MAAO,WAAY,SA8C9DrjB,EAAO2kB,SAAW,GAClB3kB,EAAO4kB,aAAe,GACtB5kB,EAAO6kB,UAAY,GAsInB7kB,EAAOijB,wBAA0B,WAyB/B,SAAS6B,EAAW9U,EAAQ3qB,EAAM46B,GAChCjQ,EAAOiQ,GAAOhY,KAAK6H,IAAI9P,EAAOkF,KAAKvF,iBAAiBta,EAAK,KAW3D,IAAIie,EAAUtD,EAAOsD,QAGjBgH,EAAStK,EAAOkD,MAEhB6hB,EAAW,uBAyBXjb,EAAY,6BARIQ,EAAS,IAAMya,EACrB,IAAMza,EAAS,IAAMya,EACrB,IAAMza,EAAS,IAAMya,EACrB,IAAMza,EAAS,IAAMya,EACrB,IAAMza,EAAS,IAAMya,EACrB,IAAMza,EAAS,uCATkBA,EAAS,OACxCya,EAAW,IAAMza,EAAS,qCAJHA,EAAS,OAChCya,EAAW,IAAMza,EAAS,sCALDA,EAAS,OAClCya,EAAW,IAAMza,EAAS,IAC1Bya,EAAW,IAAMza,EAAS,qCANHA,EAAS,mCAETA,EAAS,aAmC5C0a,EAAkB,IAAI9pB,OAHN,cAFK4O,EAAY,MAAQib,EAAW,IAAMjb,EAAY,cAQtEmb,EAAc,IAAI/pB,OAAO4O,EAAW,KAExC,OAAO,SAASob,GAGd,IAAIlV,EAAS1M,EAAQ7hB,SACjB0jC,EAAW,GAIf,IAAKD,GAAmBA,IAAmBF,EAAgB70B,KAAK+0B,GAC9D,OAAOlV,EAGTkV,EAAep0B,QAAQm0B,GAAa,SAASlgC,GAE3C,IAAI0N,EAAI,IAAIyI,OAAO4O,GAAWpjB,KAAK3B,GAAOoX,QAAO,SAAUpX,GAErD,QAAUA,KAEZqgC,EAAY3yB,EAAE,GACdpN,EAAOoN,EAAElQ,MAAM,GAAGyX,IAAIwQ,YAE1B,OAAQ4a,GACN,IAAK,aA/EX,SAAyBpV,EAAQ3qB,GAC/B2qB,EAAO,GAAK3qB,EAAK,GACG,IAAhBA,EAAKpF,SACP+vB,EAAO,GAAK3qB,EAAK,IAHrB,CAgFwB2qB,EAAQ3qB,GACxB,MACF,IAAK,SACHA,EAAK,GAAK2a,EAAOkF,KAAKvF,iBAAiBta,EAAK,IA/GpD,SAAsB2qB,EAAQ3qB,GAC5B,IAAIkjB,EAAMvI,EAAOkF,KAAKqD,IAAIljB,EAAK,IAAKojB,EAAMzI,EAAOkF,KAAKuD,IAAIpjB,EAAK,IAC3D5G,EAAI,EAAGC,EAAI,EACK,IAAhB2G,EAAKpF,SACPxB,EAAI4G,EAAK,GACT3G,EAAI2G,EAAK,IAGX2qB,EAAO,GAAKzH,EACZyH,EAAO,GAAKvH,EACZuH,EAAO,IAAMvH,EACbuH,EAAO,GAAKzH,EACZyH,EAAO,GAAKvxB,GAAK8pB,EAAM9pB,EAAIgqB,EAAM/pB,GACjCsxB,EAAO,GAAKtxB,GAAK+pB,EAAMhqB,EAAI8pB,EAAM7pB,GAbnC,CAgHqBsxB,EAAQ3qB,GACrB,MACF,IAAK,SAlGX,SAAqB2qB,EAAQ3qB,GAC3B,IACIggC,EAA+B,IAAhBhgC,EAAKpF,OAAgBoF,EAAK,GAAKA,EAAK,GAEvD2qB,EAAO,GAHW3qB,EAAK,GAIvB2qB,EAAO,GAAKqV,EALd,CAmGoBrV,EAAQ3qB,GACpB,MACF,IAAK,QACHy/B,EAAW9U,EAAQ3qB,EAAM,GACzB,MACF,IAAK,QACHy/B,EAAW9U,EAAQ3qB,EAAM,GACzB,MACF,IAAK,SACH2qB,EAAS3qB,EAKb8/B,EAASx/B,KAAKqqB,EAAOvuB,UAErBuuB,EAAS1M,EAAQ7hB,YAInB,IADA,IAAI6jC,EAAiBH,EAAS,GACvBA,EAASllC,OAAS,GACvBklC,EAAS7M,QACTgN,EAAiBtlB,EAAOkF,KAAK2J,0BAA0ByW,EAAgBH,EAAS,IAElF,OAAOG,GA5IsB,GA6TjC,IAAIC,EAAqB,IAAIrqB,OAC3B,SACU8E,EAAOkD,MAAQ,gBACflD,EAAOkD,MAAQ,gBACflD,EAAOkD,MAAQ,gBACflD,EAAOkD,MAAQ,WAO3B,SAASsiB,EAAsBt/B,GAE7B,IAGI8jB,EACAE,EACAub,EAAcC,EAAe1V,EAAQsK,EALrCqL,EAAcz/B,EAAQi+B,aAAa,WACnClV,EAAS,EACTC,EAAS,EAIT0W,EAAY1/B,EAAQi+B,aAAa,SACjC0B,EAAa3/B,EAAQi+B,aAAa,UAClC1lC,EAAIyH,EAAQi+B,aAAa,MAAQ,EACjCzlC,EAAIwH,EAAQi+B,aAAa,MAAQ,EACjC2B,EAAsB5/B,EAAQi+B,aAAa,wBAA0B,GACrE4B,GAAmBJ,IAAgB3lB,EAAOwkB,wBAAwBr0B,KAAKjK,EAAQ+9B,aACvD0B,EAAcA,EAAY5gC,MAAMwgC,IACxDS,GAAmBJ,IAAcC,GAA4B,SAAdD,GAAuC,SAAfC,EACvEI,EAAaF,GAAkBC,EAC/BE,EAAY,GAAKC,EAAkB,GAAIC,EAAY,EAAGC,EAAa,EAMvE,GAJAH,EAAUvkB,MAAQ,EAClBukB,EAAU1kB,OAAS,EACnB0kB,EAAUD,WAAaA,EAEnBA,EACF,OAAOC,EAGT,GAAIH,EAGF,OAFAG,EAAUvkB,MAAQ+I,EAAUkb,GAC5BM,EAAU1kB,OAASkJ,EAAUmb,GACtBK,EAiDT,GA/CAlc,GAAQQ,WAAWmb,EAAY,IAC/Bzb,GAAQM,WAAWmb,EAAY,IAC/BF,EAAejb,WAAWmb,EAAY,IACtCD,EAAgBlb,WAAWmb,EAAY,IACvCO,EAAUlc,KAAOA,EACjBkc,EAAUhc,KAAOA,EACjBgc,EAAUT,aAAeA,EACzBS,EAAUR,cAAgBA,EACrBM,GAOHE,EAAUvkB,MAAQ8jB,EAClBS,EAAU1kB,OAASkkB,IAPnBQ,EAAUvkB,MAAQ+I,EAAUkb,GAC5BM,EAAU1kB,OAASkJ,EAAUmb,GAC7B5W,EAASiX,EAAUvkB,MAAQ8jB,EAC3BvW,EAASgX,EAAU1kB,OAASkkB,GASK,UADnCI,EAAsB9lB,EAAOkF,KAAKuL,kCAAkCqV,IAC5ChV,SAEkB,SAApCgV,EAAoBlV,cACtB1B,EAASD,EAAUA,EAASC,EAASA,EAASD,GAGR,UAApC6W,EAAoBlV,cACtB1B,EAASD,EAAUA,EAASC,EAASD,EAASC,GAGhDkX,EAAYF,EAAUvkB,MAAQ8jB,EAAexW,EAC7CoX,EAAaH,EAAU1kB,OAASkkB,EAAgBzW,EACb,QAA/B6W,EAAoBhV,SACtBsV,GAAa,GAEoB,QAA/BN,EAAoB/U,SACtBsV,GAAc,GAEmB,QAA/BP,EAAoBhV,SACtBsV,EAAY,GAEqB,QAA/BN,EAAoB/U,SACtBsV,EAAa,IAIF,IAAXpX,GAA2B,IAAXC,GAAyB,IAATlF,GAAuB,IAATE,GAAoB,IAANzrB,GAAiB,IAANC,EACzE,OAAOwnC,EAcT,IAXIznC,GAAKC,KACPynC,EAAkB,cAAgBzb,EAAUjsB,GAAK,IAAMisB,EAAUhsB,GAAK,MASxEwnC,EAAUI,iBAAmBtmB,EAAOijB,wBANpCjT,EAASmW,EAAkB,WAAalX,EAC1B,QAEAC,EAAS,KACRlF,EAAOiF,EAASmX,GAAa,KAC7Blc,EAAOgF,EAASmX,GAAc,MAEpB,QAArBngC,EAAQ+9B,SAAoB,CAG9B,IAFA3J,EAAKp0B,EAAQi2B,cAAcoK,gBAAgBvmB,EAAOuD,MAAO,KAElDrd,EAAQsgC,YACblM,EAAG1oB,YAAY1L,EAAQsgC,YAEzBtgC,EAAQ0L,YAAY0oB,QAIpBtK,GADAsK,EAAKp0B,GACOi+B,aAAa,aAAenU,EAG1C,OADAsK,EAAG3oB,aAAa,YAAaqe,GACtBkW,EAkFT,SAASO,EAA+BvK,EAAKwK,GAC3C,IAGIC,EAAqBvC,EAAYlI,EADzBwK,EAASvC,aADL,cAC6Bp9B,OAAO,IAUpD,GARI4/B,GAAsBA,EAAmBxC,aAH7B,eAIdsC,EAA+BvK,EAAKyK,GALjB,CAAC,oBAAqB,KAAM,KAAM,KAAM,KAAM,gBAAiB,KAAM,KAAM,IAAK,KAAM,MAO5F/pB,SAAQ,SAASoe,GAC1B2L,IAAuBD,EAASE,aAAa5L,IAAS2L,EAAmBC,aAAa5L,IACxF0L,EAAS/0B,aAAaqpB,EAAM2L,EAAmBxC,aAAanJ,QAG3D0L,EAASG,SAAS5mC,OAErB,IADA,IAAI6mC,EAAiBH,EAAmBI,WAAAA,GACjCD,EAAeN,YACpBE,EAAS90B,YAAYk1B,EAAeN,YAGxCE,EAASM,gBAjBO,cA3DlBhnB,EAAOinB,iBAAmB,SAAS/K,EAAKvyB,EAAUsiB,EAASib,GACzD,GAAKhL,EAAL,EAvMF,SAA4BA,GAE1B,IADA,IAAIoI,EAAWhB,EAAkBpH,EAAK,CAAC,MAAO,YAAat8B,EAAI,EACxD0kC,EAASrkC,QAAUL,EAAI0kC,EAASrkC,QAAQ,CAC7C,IAM6C+6B,EAAMr0B,EAAGwgC,EAAOxnC,EANzD26B,EAAKgK,EAAS1kC,GACdwnC,GAAS9M,EAAG6J,aAAa,eAAiB7J,EAAG6J,aAAa,SAASp9B,OAAO,GAC1EtI,EAAI67B,EAAG6J,aAAa,MAAQ,EAC5BzlC,EAAI47B,EAAG6J,aAAa,MAAQ,EAC5BkD,EAAMjD,EAAYlI,EAAKkL,GAAOL,WAAAA,GAC9BO,GAAgBD,EAAIlD,aAAa,cAAgB,IAAM,cAAgB1lC,EAAI,KAAOC,EAAI,IAC1E6oC,EAAYjD,EAASrkC,OAA6BgrB,EAAYjL,EAAOuD,MAGrF,GADAiiB,EAAsB6B,GAClB,SAASl3B,KAAKk3B,EAAIpD,UAAW,CAC/B,IAAIuD,EAAMH,EAAIlL,cAAcoK,gBAAgBtb,EAAW,KACvD,IAAKtkB,EAAI,EAA2BhH,GAAxBwnC,EAAQE,EAAI/b,YAAwBrrB,OAAQ0G,EAAIhH,EAAKgH,IAC/Dq0B,EAAOmM,EAAMh/B,KAAKxB,GAClB6gC,EAAIC,eAAexc,EAAW+P,EAAKiJ,SAAUjJ,EAAK0M,WAGpD,KAAOL,EAAIb,YACTgB,EAAI51B,YAAYy1B,EAAIb,YAEtBa,EAAMG,EAGR,IAAK7gC,EAAI,EAA0BhH,GAAvBwnC,EAAQ7M,EAAGhP,YAAwBrrB,OAAQ0G,EAAIhH,EAAKgH,IAExC,OADtBq0B,EAAOmM,EAAMh/B,KAAKxB,IACTs9B,UAAsC,MAAlBjJ,EAAKiJ,UACd,eAAlBjJ,EAAKiJ,UAA+C,SAAlBjJ,EAAKiJ,WAInB,cAAlBjJ,EAAKiJ,SACPqD,EAAetM,EAAK0M,UAAY,IAAMJ,EAGtCD,EAAI11B,aAAaqpB,EAAKiJ,SAAUjJ,EAAK0M,YAIzCL,EAAI11B,aAAa,YAAa21B,GAC9BD,EAAI11B,aAAa,sBAAuB,KACxC01B,EAAIL,gBAAgB,MACP1M,EAAGloB,WACL0pB,aAAauL,EAAK/M,GAEzBgK,EAASrkC,SAAWsnC,GACtB3nC,KA/CN,CA2MqBs8B,GAEnB,IAAqCt8B,EAAGD,EAApCgoC,EAAU3nB,EAAOhV,OAAO48B,QACxBjtB,EAAU6qB,EAAsBtJ,GAChC2L,EAAc7nB,EAAOkF,KAAKgV,QAAQgC,EAAInqB,qBAAqB,MAI/D,GAHA4I,EAAQ6Q,YAAc0b,GAAkBA,EAAe1b,YACvD7Q,EAAQgtB,OAASA,EAEU,IAAvBE,EAAY5nC,QAAgB+f,EAAO8C,aAAc,CAInD,IAAI+X,EAAM,GACV,IAAKj7B,EAAI,EAAGD,GAFZkoC,EAAc3L,EAAI4L,YAAY,wBAEA7nC,OAAQL,EAAID,EAAKC,IAC7Ci7B,EAAIj7B,GAAKioC,EAAYjoC,GAEvBioC,EAAchN,EAGhB,IAAI/N,EAAW+a,EAAY1rB,QAAO,SAASme,GAEzC,OADAkL,EAAsBlL,GACfta,EAAOukB,sBAAsBp0B,KAAKmqB,EAAG2J,SAASnzB,QAAQ,OAAQ,OAhDzE,SAAiC5K,EAAS+9B,GACxC,KAAO/9B,IAAYA,EAAUA,EAAQkM,aACnC,GAAIlM,EAAQ+9B,UAAYA,EAAS9zB,KAAKjK,EAAQ+9B,SAASnzB,QAAQ,OAAQ,OACjE5K,EAAQi+B,aAAa,uBACzB,OAAA,EAGJ,OAAA,EAPF,CAiDmC7J,EAAIta,EAAOykB,6BAG5C,IAAK3X,GAAaA,IAAaA,EAAS7sB,OACtC0J,GAAYA,EAAS,GAAI,QAD3B,CAIA,IAAIk7B,EAAY,GAChBgD,EAAY1rB,QAAO,SAASme,GAC1B,MAA2C,aAApCA,EAAG2J,SAASnzB,QAAQ,OAAQ,OAClC8L,SAAQ,SAAS0d,GAClB,IAAI5jB,EAAK4jB,EAAG6J,aAAa,MACzBU,EAAUnuB,GAAMsJ,EAAOkF,KAAKgV,QAAQI,EAAGvoB,qBAAqB,MAAMoK,QAAO,SAASme,GAChF,OAAOta,EAAOukB,sBAAsBp0B,KAAKmqB,EAAG2J,SAASnzB,QAAQ,OAAQ,WAGzEkP,EAAO4kB,aAAa+C,GAAU3nB,EAAO+nB,gBAAgB7L,GACrDlc,EAAO2kB,SAASgD,GAAU3nB,EAAOgoB,YAAY9L,GAC7Clc,EAAO6kB,UAAU8C,GAAU9C,EAE3B7kB,EAAOioB,cAAcnb,GAAU,SAASob,EAAWpb,GAC7CnjB,IACFA,EAASu+B,EAAWvtB,EAASmS,EAAU+a,UAChC7nB,EAAO4kB,aAAa+C,UACpB3nB,EAAO2kB,SAASgD,UAChB3nB,EAAO6kB,UAAU8C,MAEzB9rB,EAAMlB,GAAUsR,EAASib,MAyB9B,IAAIiB,EAAoB,IAAIjtB,OAC1B,qHAEE8E,EAAOkD,MACT,2CAA6ClD,EAAOkD,MAAQ,eAE9D7H,EAAO2E,EAAQ,CASbooB,qBAAsB,SAAS19B,EAAO29B,GACpC,IAAItjC,EAAQ2F,EAAM3F,MAAMojC,GAExB,GAAKpjC,EAAL,CAGA,IAAIyR,EAAYzR,EAAM,GAGlB0R,EAAa1R,EAAM,GACnB4lB,EAAW5lB,EAAM,GACjBujC,EAAavjC,EAAM,GACnBksB,EAAalsB,EAAM,GAEnByR,IACF6xB,EAAO7xB,UAAYA,GAEjBC,IACF4xB,EAAO5xB,WAAawC,MAAMuR,WAAW/T,IAAeA,EAAa+T,WAAW/T,IAE1EkU,IACF0d,EAAO1d,SAAWD,EAAUC,IAE1BsG,IACFoX,EAAOpX,WAAaA,GAElBqX,IACFD,EAAOC,WAA4B,WAAfA,EAA0B,EAAIA,KAYtDP,gBAAiB,SAAS7L,GACxB,IAMI5B,EADAiO,EAASjF,EAAkBpH,EALhB,CACT,iBACA,iBACA,qBACA,uBAEEv1B,EAAI,EAAGi+B,EAAe,GAE9B,IADAj+B,EAAI4hC,EAAOtoC,OACJ0G,MACL2zB,EAAKiO,EAAO5hC,IACLw9B,aAAa,eAClBsC,EAA+BvK,EAAK5B,GAEtCsK,EAAatK,EAAG6J,aAAa,OAAS7J,EAExC,OAAOsK,GAYT4D,gBAAiB,SAAStiC,EAASolB,EAAYqc,GAE7C,GAAKzhC,EAAL,CAIA,IAAIwE,EAEAigB,EAAU8d,EADV3F,EAAmB,QAAA,IAGZ6E,IACTA,EAASzhC,EAAQi+B,aAAa,WAG5Bj+B,EAAQkM,YAAc4N,EAAO0kB,qBAAqBv0B,KAAKjK,EAAQkM,WAAW6xB,YAC5EnB,EAAmB9iB,EAAOwoB,gBAAgBtiC,EAAQkM,WAAYkZ,EAAYqc,IAG5E,IAAIe,EAAgBpd,EAAWniB,QAAO,SAAS0d,EAAMmU,GAKnD,OAJAtwB,EAAQxE,EAAQi+B,aAAanJ,MAE3BnU,EAAKmU,GAAQtwB,GAERmc,IACN,IAGC8hB,EAAWttB,EAtdnB,SAAmCnV,EAASyhC,GAC1C,IAAI/N,EAAS,GACb,IAAK,IAAIgP,KAAQ5oB,EAAO2kB,SAASgD,GAC/B,GAAIjE,EAAmBx9B,EAAS0iC,EAAKniC,MAAM,MACzC,IAAK,IAAI+V,KAAYwD,EAAO2kB,SAASgD,GAAQiB,GAC3ChP,EAAOpd,GAAYwD,EAAO2kB,SAASgD,GAAQiB,GAAMpsB,GAIvD,OAAOod,EATT,CAudgC1zB,EAASyhC,GACnC3nB,EAAO6oB,oBAAoB3iC,IAE7BwiC,EAAgBrtB,EACdqtB,EACAC,GAEEA,EAhyByB,cAiyB3BziC,EAAQyL,aAjyBmB,YAiyBCg3B,EAjyBD,cAmyB7Bhe,EAAW8d,EAAiB3F,EAAiBnY,UAAY3K,EAAO6K,KAAKC,sBACjE4d,EApyBI,eAsyBNA,EAtyBM,aAsyBiB/d,EAAWD,EAAUge,EAtyBtC,aAsyB4DD,IAGpE,IAAIK,EAAgBC,EAAiBC,EAAkB,GACvD,IAAK,IAAIhO,KAAQ0N,EAEfK,EAAkBlG,EADlBiG,EAAiBlG,EAAc5H,GACkB0N,EAAc1N,GAAO8H,EAAkBnY,GACxFqe,EAAgBF,GAAkBC,EAEhCC,GAAmBA,EAAgBC,MACrCjpB,EAAOooB,qBAAqBY,EAAgBC,KAAMD,GAEpD,IAAIE,EAAc7tB,EAAOynB,EAAkBkG,GAC3C,OAAOhpB,EAAO0kB,qBAAqBv0B,KAAKjK,EAAQ+9B,UAAYiF,EAjtBhE,SAA+B5d,GAC7B,IAAK,IAAI0P,KAAQ0H,EAEf,QAAA,IAAWpX,EAAWoX,EAAgB1H,KAA+C,KAArB1P,EAAW0P,GAA3E,CAIA,QAAA,IAAW1P,EAAW0P,GAAuB,CAC3C,IAAKhb,EAAOhV,OAAOb,UAAU6wB,GAC3B,SAEF1P,EAAW0P,GAAQhb,EAAOhV,OAAOb,UAAU6wB,GAG7C,GAAyC,IAArC1P,EAAW0P,GAAMn0B,QAAQ,QAA7B,CAIA,IAAIq5B,EAAQ,IAAIlgB,EAAO4f,MAAMtU,EAAW0P,IACxC1P,EAAW0P,GAAQkF,EAAMiJ,SAASrpB,EAAQogB,EAAMkJ,WAAa9d,EAAWoX,EAAgB1H,IAAQ,IAAIqO,UAEtG,OAAO/d,EArBT,CAitBoG4d,KAYlGjB,cAAe,SAASnb,EAAUnjB,EAAUgR,EAASsR,EAASib,GAC5D,IAAIlnB,EAAOspB,eAAexc,EAAUnjB,EAAUgR,EAASsR,EAASib,GAAgBzsB,SAUlFouB,oBAAqB,SAAS3iC,GAC5B,IAAImiC,EAAS,GACT52B,EAAQvL,EAAQi+B,aAAa,SAEjC,OAAK1yB,GAIgB,iBAAVA,EAhjBf,SAA0BA,EAAO42B,GAC/B,IAAIrN,EAAMtwB,EACV+G,EAAMX,QAAQ,QAAS,IAAIrK,MAAM,KAAKmW,SAAQ,SAAU2sB,GACtD,IAAIC,EAAOD,EAAM9iC,MAAM,KAEvBu0B,EAAOwO,EAAK,GAAGvuB,OAAOtH,cACtBjJ,EAAS8+B,EAAK,GAAGvuB,OAEjBotB,EAAOrN,GAAQtwB,KARnB,CAijBuB+G,EAAO42B,GAliB9B,SAA0B52B,EAAO42B,GAE/B,IAAK,IAAIhjB,KAAQ5T,OAAAA,IACJA,EAAM4T,KAOjBgjB,EAHOhjB,EAAK1R,eACJlC,EAAM4T,IARlB,CAqiBuB5T,EAAO42B,GAGnBA,GAVEA,GAoBXoB,qBAAsB,SAAS5f,GAG7B,IAAKA,EACH,OAAO,KAOT,IAAuBjqB,EAAGD,EAAtB+pC,EAAe,GAEnB,IAAK9pC,EAAI,EAAGD,GAHZkqB,GAFAA,EAASA,EAAO/Y,QAAQ,KAAM,KAAKmK,QAEnBxU,MAAM,QAGGxG,OAAQL,EAAID,EAAKC,GAAK,EAC7C8pC,EAAa/jC,KAAK,CAChBlH,EAAG+rB,WAAWX,EAAOjqB,IACrBlB,EAAG8rB,WAAWX,EAAOjqB,EAAI,MAS7B,OAAO8pC,GAWT1B,YAAa,SAAS9L,GACpB,IAAgDt8B,EAAGD,EAA/Ci6B,EAASsC,EAAInqB,qBAAqB,SAClC43B,EAAW,GAGf,IAAK/pC,EAAI,EAAGD,EAAMi6B,EAAO35B,OAAQL,EAAID,EAAKC,IAAK,CAE7C,IAAIgqC,EAAgBhQ,EAAOh6B,GAAGiqC,aAAe,GAIhB,MAD7BD,EAAgBA,EAAc94B,QAAQ,oBAAqB,KACzCmK,QAGV2uB,EAAc7kC,MAAM,sBACdiV,KAAI,SAAS4uB,GAAQ,OAAOA,EAAK3tB,UAEzC2B,SAAQ,SAASgsB,GAErB,IAAI7jC,EAAQ6jC,EAAK7jC,MAAM,4BACnB+kC,EAAU,GACVC,EAD6BhlC,EAAM,GAAGkW,OACLnK,QAAQ,KAAM,IAAIrK,MAAM,WAE7D,IAAK7G,EAAI,EAAGD,EAAMoqC,EAAmB9pC,OAAQL,EAAID,EAAKC,IAAK,CACzD,IAAI4pC,EAAOO,EAAmBnqC,GAAG6G,MAAM,WAGvCqjC,EAFeN,EAAK,IACRA,EAAK,IAGnBZ,EAAO7jC,EAAM,IACR0B,MAAM,KAAKmW,SAAQ,SAASotB,GAEjB,MADdA,EAAQA,EAAMl5B,QAAQ,QAAS,IAAImK,UAI/B0uB,EAASK,GACXhqB,EAAOkF,KAAK3I,OAAOlB,OAAOsuB,EAASK,GAAQF,GAG3CH,EAASK,GAAShqB,EAAOkF,KAAK3I,OAAOV,MAAMiuB,UAKnD,OAAOH,GAaTM,eAAgB,SAASlmC,EAAK4F,EAAUsiB,EAAStR,GAE/C5W,EAAMA,EAAI+M,QAAQ,SAAU,IAAImK,OAChC,IAAI+E,EAAOkF,KAAKoY,QAAQv5B,EAAK,CAC3B0yB,OAAQ,MACR8G,WAGF,SAAoB3nB,GAElB,IAAIs0B,EAAMt0B,EAAEu0B,YAOZ,GANID,IAAQA,EAAIl4B,iBAAmBgO,EAAO7d,OAAOioC,eAAiBx0B,EAAEtO,gBAClE4iC,EAAM,IAAIE,cAAc,qBACpBjxB,MAAQ,QAEZ+wB,EAAIG,QAAQz0B,EAAEtO,aAAawJ,QAAQ,qCAAsC,OAEtEo5B,IAAQA,EAAIl4B,gBAEf,OADArI,GAAYA,EAAS,OAAA,EAIvBqW,EAAOinB,iBAAiBiD,EAAIl4B,iBAAiB,SAAUs4B,EAASC,EAAUzd,EAAU0d,GAClF7gC,GAAYA,EAAS2gC,EAASC,EAAUzd,EAAU0d,KACjDve,EAAStR,OAahB8vB,kBAAmB,SAAS7oC,EAAQ+H,EAAUsiB,EAAStR,GAErD,IAAIuhB,EACJ,GAFAt6B,EAASA,EAAOqZ,YAAAA,IAEL+E,EAAO7d,OAAO2e,UAA2B,CAClD,IAAI4pB,EAAS,IAAI1qB,EAAO7d,OAAO2e,UAC3B4pB,GAAUA,EAAOC,kBACnBzO,EAAMwO,EAAOC,gBAAgB/oC,EAAQ,kBAGhCoe,EAAO7d,OAAOioC,iBACrBlO,EAAM,IAAIkO,cAAc,qBACpBjxB,MAAQ,QAEZ+iB,EAAImO,QAAQzoC,EAAOkP,QAAQ,qCAAsC,MAGnEkP,EAAOinB,iBAAiB/K,EAAIlqB,iBAAiB,SAAUs4B,EAASC,EAAUzd,EAAU0d,GAClF7gC,EAAS2gC,EAASC,EAAUzd,EAAU0d,KACrCve,EAAStR,MAljClB,CAsjCoChZ,GAGpCqe,EAAOspB,eAAiB,SAASxc,EAAUnjB,EAAUgR,EAASsR,EAASib,EAAgBhL,GACrFj3B,KAAK6nB,SAAWA,EAChB7nB,KAAK0E,SAAWA,EAChB1E,KAAK0V,QAAUA,EACf1V,KAAKgnB,QAAUA,EACfhnB,KAAK0iC,OAAUhtB,GAAWA,EAAQgtB,QAAW,EAC7C1iC,KAAKiiC,eAAiBA,EACtBjiC,KAAK2lC,SAAW,+BAChB3lC,KAAKi3B,IAAMA,IAGH1c,EA4IPQ,EAAOspB,eAAen/B,WA3IjBsQ,MAAQ,WACZxV,KAAKijC,UAAY,IAAIx8B,MAAMzG,KAAK6nB,SAAS7sB,QACzCgF,KAAK4lC,YAAc5lC,KAAK6nB,SAAS7sB,OACjCgF,KAAK6lC,iBAGPtrB,EAAMsrB,cAAgB,WACpB,IAAIr+B,EAAQxH,KACZA,KAAK6nB,SAASlQ,SAAQ,SAAS1W,EAAStG,GACtCsG,EAAQyL,aAAa,SAAUlF,EAAMk7B,QACrCl7B,EAAMs+B,aAAa7kC,EAAStG,OAIhC4f,EAAMwrB,QAAU,SAAS1Q,GACvB,OAAOta,EAAOA,EAAOkF,KAAKtjB,OAAOq1B,WAAWqD,EAAGvnB,QAAQjC,QAAQ,OAAQ,OAGzE0O,EAAMurB,aAAe,SAASzQ,EAAIpU,GAChC,IAAIyR,EAAQ1yB,KAAK+lC,QAAQ1Q,GACzB,GAAI3C,GAASA,EAAMsT,YACjB,IACEtT,EAAMsT,YAAY3Q,EAAIr1B,KAAKimC,eAAehlB,EAAOoU,GAAKr1B,KAAK0V,SAE7D,MAAO5P,GACLiV,EAAOyE,IAAI1Z,QAIb9F,KAAKkmC,eAIT3rB,EAAM0rB,eAAiB,SAAShlB,EAAOoU,GACrC,IAAI7tB,EAAQxH,KACZ,OAAO,SAASgG,GACd,IAAIs/B,EACJ99B,EAAM2+B,gBAAgBngC,EAAKqvB,EAAI,QAC/B7tB,EAAM2+B,gBAAgBngC,EAAKqvB,EAAI,UAC3BrvB,aAAe+U,EAAOqrB,OAASpgC,EAAIqgC,mBACrCf,EAAWt/B,EAAIwlB,kCAAkC6J,IAEnDrvB,EAAIsgC,uBAAuBhB,GAC3B99B,EAAM++B,gBAAgBvgC,EAAKqvB,GAC3B7tB,EAAMwf,SAAWxf,EAAMwf,QAAQqO,EAAIrvB,GACnCwB,EAAMy7B,UAAUhiB,GAASjb,EACzBwB,EAAM0+B,gBAIV3rB,EAAMisB,0BAA4B,SAASxgC,EAAKuR,EAAUkvB,GACxD,IAAIhhC,EAAQO,EAAIuR,GAAWmvB,EAAQ1mC,KAAK2lC,SACxC,GAAKe,EAAMx7B,KAAKzF,GAAhB,CAGAihC,EAAMC,UAAY,EAClB,IAAIl1B,EAAKi1B,EAAMjlC,KAAKgE,GAAO,GAE3B,OADAihC,EAAMC,UAAY,EACX5rB,EAAO0rB,GAASzmC,KAAK0iC,QAAQjxB,KAGtC8I,EAAM4rB,gBAAkB,SAASngC,EAAKqvB,EAAI9d,GACxC,IAAIqvB,EAAc5mC,KAAKwmC,0BAA0BxgC,EAAKuR,EAAU,gBAChE,GAAIqvB,EAAa,CACf,IAAIC,EAAcxR,EAAG6J,aAAa3nB,EAAW,YACzCkqB,EAAW1mB,EAAOqH,SAAS4jB,YAAYY,EAAa5gC,EAAK6gC,EAAa7mC,KAAK0V,SAC/E1P,EAAIgc,IAAIzK,EAAUkqB,KAItBlnB,EAAMusB,uBAAyB,SAAS9gC,EAAK+gC,GAC3C,OAAO,SAASC,GACdA,EAAQV,yBACRU,EAAQC,SAAWD,EAAQE,SAC3BH,EAAUrmC,KAAKsmC,KAInBzsB,EAAMgsB,gBAAkB,SAASvgC,EAAKmhC,GACpC,IACIlmC,EAAgBmmC,EAAiBL,EAAWM,EAD5CC,EAAWtnC,KAAKwmC,0BAA0BxgC,EAAK,WAAY,aAE/D,GAAIshC,EAAU,CACZP,EAAY,GACZK,EAAkBrsB,EAAOkF,KAAKmF,gBAAgBpf,EAAIuhC,uBAIlD,IAFA,IAAIC,EAAcF,EAAS,GAAGn6B,WAC1Bs6B,EAAgBN,EACbM,EAAct6B,YAAcs6B,EAAcvI,aAAa,eAAiBl5B,EAAIshC,UACjFG,EAAgBA,EAAct6B,WAEhCs6B,EAAct6B,WAAWR,YAAY66B,GACrC,IAAK,IAAI7sC,EAAI,EAAGA,EAAI2sC,EAAStsC,OAAQL,IAE3BqF,KAAK+lC,QADb9kC,EAAUqmC,EAAS3sC,IAEbqrC,YACJ/kC,EACAjB,KAAK8mC,uBAAuB9gC,EAAK+gC,GACjC/mC,KAAK0V,SAIP4xB,EADuB,IAArBP,EAAU/rC,OACD+rC,EAAU,GAGV,IAAIhsB,EAAOiN,MAAM+e,GAE9BM,EAAatsB,EAAOkF,KAAK2J,0BACvBwd,EACAE,EAASC,uBAEPD,EAASA,UACXtnC,KAAKumC,gBAAgBe,EAAUG,GAEjC,IAAI/xB,EAAUqF,EAAOkF,KAAK6J,YAAYud,GACtCC,EAAS5c,OAAAA,EACT4c,EAAS3c,OAAAA,EACT2c,EAAStlB,IAAI,SAAUtM,EAAQsU,QAC/Bsd,EAAStlB,IAAI,SAAUtM,EAAQuU,QAC/Bqd,EAAS/jB,MAAQ7N,EAAQ6N,MACzB+jB,EAASpd,MAAQxU,EAAQwU,MACzBod,EAASnd,MAAQ,EACjBmd,EAASI,oBAAoB,CAAEluC,EAAGkc,EAAQ0U,WAAY3wB,EAAGic,EAAQ2U,YAAc,SAAU,UACzFrkB,EAAIshC,SAAWA,cAIRthC,EAAIshC,UAIf/sB,EAAM2rB,YAAc,WACS,KAArBlmC,KAAK4lC,cACT5lC,KAAKijC,UAAYjjC,KAAKijC,UAAU/rB,QAAO,SAASme,GAE9C,OAAa,MAANA,KAETr1B,KAAK0E,SAAS1E,KAAKijC,UAAWjjC,KAAK6nB,YAMzC,SAAU1qB,GAER,aAIA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAkB/C,SAASuJ,EAAM9qB,EAAGC,GAChBuG,KAAKxG,EAAIA,EACTwG,KAAKvG,EAAIA,EAlBPshB,EAAOuJ,MACTvJ,EAAO9P,KAAK,oCAId8P,EAAOuJ,MAAQA,EAgBfA,EAAMpf,UAAiD,CAErDiG,KAAM,QAENvE,YAAa0d,EAObvc,IAAK,SAAU4/B,GACb,OAAO,IAAIrjB,EAAMtkB,KAAKxG,EAAImuC,EAAKnuC,EAAGwG,KAAKvG,EAAIkuC,EAAKluC,IASlD8qB,UAAW,SAAUojB,GAGnB,OAFA3nC,KAAKxG,GAAKmuC,EAAKnuC,EACfwG,KAAKvG,GAAKkuC,EAAKluC,EACRuG,MAQT4nC,UAAW,SAAUC,GACnB,OAAO,IAAIvjB,EAAMtkB,KAAKxG,EAAIquC,EAAQ7nC,KAAKvG,EAAIouC,IAS7CC,gBAAiB,SAAUD,GAGzB,OAFA7nC,KAAKxG,GAAKquC,EACV7nC,KAAKvG,GAAKouC,EACH7nC,MAQT+nC,SAAU,SAAUJ,GAClB,OAAO,IAAIrjB,EAAMtkB,KAAKxG,EAAImuC,EAAKnuC,EAAGwG,KAAKvG,EAAIkuC,EAAKluC,IASlD2qB,eAAgB,SAAUujB,GAGxB,OAFA3nC,KAAKxG,GAAKmuC,EAAKnuC,EACfwG,KAAKvG,GAAKkuC,EAAKluC,EACRuG,MAQTgoC,eAAgB,SAAUH,GACxB,OAAO,IAAIvjB,EAAMtkB,KAAKxG,EAAIquC,EAAQ7nC,KAAKvG,EAAIouC,IAS7CI,qBAAsB,SAAUJ,GAG9B,OAFA7nC,KAAKxG,GAAKquC,EACV7nC,KAAKvG,GAAKouC,EACH7nC,MAST4qB,SAAU,SAAUid,GAClB,OAAO,IAAIvjB,EAAMtkB,KAAKxG,EAAIquC,EAAQ7nC,KAAKvG,EAAIouC,IAU7CK,eAAgB,SAAUL,GAGxB,OAFA7nC,KAAKxG,GAAKquC,EACV7nC,KAAKvG,GAAKouC,EACH7nC,MASTmoC,OAAQ,SAAUN,GAChB,OAAO,IAAIvjB,EAAMtkB,KAAKxG,EAAIquC,EAAQ7nC,KAAKvG,EAAIouC,IAU7CO,aAAc,SAAUP,GAGtB,OAFA7nC,KAAKxG,GAAKquC,EACV7nC,KAAKvG,GAAKouC,EACH7nC,MAQTqoC,GAAI,SAAUV,GACZ,OAAQ3nC,KAAKxG,IAAMmuC,EAAKnuC,GAAKwG,KAAKvG,IAAMkuC,EAAKluC,GAQ/C6uC,GAAI,SAAUX,GACZ,OAAQ3nC,KAAKxG,EAAImuC,EAAKnuC,GAAKwG,KAAKvG,EAAIkuC,EAAKluC,GAQ3C8uC,IAAK,SAAUZ,GACb,OAAQ3nC,KAAKxG,GAAKmuC,EAAKnuC,GAAKwG,KAAKvG,GAAKkuC,EAAKluC,GAS7C+uC,GAAI,SAAUb,GACZ,OAAQ3nC,KAAKxG,EAAImuC,EAAKnuC,GAAKwG,KAAKvG,EAAIkuC,EAAKluC,GAQ3CgvC,IAAK,SAAUd,GACb,OAAQ3nC,KAAKxG,GAAKmuC,EAAKnuC,GAAKwG,KAAKvG,GAAKkuC,EAAKluC,GAS7CivC,KAAM,SAAUf,EAAM3tC,GAKpB,YAAA,IAJWA,IACTA,EAAI,IAENA,EAAIgpB,KAAKvI,IAAIuI,KAAKxI,IAAI,EAAGxgB,GAAI,GACtB,IAAIsqB,EAAMtkB,KAAKxG,GAAKmuC,EAAKnuC,EAAIwG,KAAKxG,GAAKQ,EAAGgG,KAAKvG,GAAKkuC,EAAKluC,EAAIuG,KAAKvG,GAAKO,IAQhF2uC,aAAc,SAAUhB,GACtB,IAAIpf,EAAKvoB,KAAKxG,EAAImuC,EAAKnuC,EACnBgvB,EAAKxoB,KAAKvG,EAAIkuC,EAAKluC,EACvB,OAAOupB,KAAKD,KAAKwF,EAAKA,EAAKC,EAAKA,IAQlCogB,aAAc,SAAUjB,GACtB,OAAO3nC,KAAK0oC,KAAKf,IAQnBntB,IAAK,SAAUmtB,GACb,OAAO,IAAIrjB,EAAMtB,KAAKxI,IAAIxa,KAAKxG,EAAGmuC,EAAKnuC,GAAIwpB,KAAKxI,IAAIxa,KAAKvG,EAAGkuC,EAAKluC,KAQnEghB,IAAK,SAAUktB,GACb,OAAO,IAAIrjB,EAAMtB,KAAKvI,IAAIza,KAAKxG,EAAGmuC,EAAKnuC,GAAIwpB,KAAKvI,IAAIza,KAAKvG,EAAGkuC,EAAKluC,KAOnEoG,SAAU,WACR,OAAOG,KAAKxG,EAAI,IAAMwG,KAAKvG,GAS7BovC,MAAO,SAAUrvC,EAAGC,GAGlB,OAFAuG,KAAKxG,EAAIA,EACTwG,KAAKvG,EAAIA,EACFuG,MAQT8oC,KAAM,SAAUtvC,GAEd,OADAwG,KAAKxG,EAAIA,EACFwG,MAQT+oC,KAAM,SAAUtvC,GAEd,OADAuG,KAAKvG,EAAIA,EACFuG,MAQTgpC,aAAc,SAAUrB,GAGtB,OAFA3nC,KAAKxG,EAAImuC,EAAKnuC,EACdwG,KAAKvG,EAAIkuC,EAAKluC,EACPuG,MAOTipC,KAAM,SAAUtB,GACd,IAAInuC,EAAIwG,KAAKxG,EACTC,EAAIuG,KAAKvG,EACbuG,KAAKxG,EAAImuC,EAAKnuC,EACdwG,KAAKvG,EAAIkuC,EAAKluC,EACdkuC,EAAKnuC,EAAIA,EACTmuC,EAAKluC,EAAIA,GAOXmd,MAAO,WACL,OAAO,IAAI0N,EAAMtkB,KAAKxG,EAAGwG,KAAKvG,MA5UpC,CAgVoCiD,GAGpC,SAAUS,GAER,aAGA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAa/C,SAASmuB,EAAa/mC,GACpBnC,KAAKmC,OAASA,EACdnC,KAAK4kB,OAAS,GAbZ7J,EAAOmuB,aACTnuB,EAAO9P,KAAK,2CAed8P,EAAOmuB,aAAeA,EAEtBnuB,EAAOmuB,aAAahkC,UAAwD,CAE1E0B,YAAasiC,EAQbC,YAAa,SAAUhlB,GAErB,OADAnkB,KAAK4kB,OAAOlkB,KAAKyjB,GACVnkB,MASTopC,aAAc,SAAUxkB,GAEtB,OADA5kB,KAAK4kB,OAAS5kB,KAAK4kB,OAAOpoB,OAAOooB,GAC1B5kB,OAcX+a,EAAOmuB,aAAaG,kBAAoB,SAAUC,EAAIC,EAAIC,EAAIC,GAC5D,IAAI/lC,EACAgmC,GAAOD,EAAGjwC,EAAIgwC,EAAGhwC,IAAM8vC,EAAG7vC,EAAI+vC,EAAG/vC,IAAMgwC,EAAGhwC,EAAI+vC,EAAG/vC,IAAM6vC,EAAG9vC,EAAIgwC,EAAGhwC,GACjEmwC,GAAOJ,EAAG/vC,EAAI8vC,EAAG9vC,IAAM8vC,EAAG7vC,EAAI+vC,EAAG/vC,IAAM8vC,EAAG9vC,EAAI6vC,EAAG7vC,IAAM6vC,EAAG9vC,EAAIgwC,EAAGhwC,GACjEowC,GAAMH,EAAGhwC,EAAI+vC,EAAG/vC,IAAM8vC,EAAG/vC,EAAI8vC,EAAG9vC,IAAMiwC,EAAGjwC,EAAIgwC,EAAGhwC,IAAM+vC,EAAG9vC,EAAI6vC,EAAG7vC,GACpE,GAAW,IAAPmwC,EAAU,CACZ,IAAI34B,EAAKy4B,EAAME,EACXC,EAAKF,EAAMC,EACX,GAAK34B,GAAMA,GAAM,GAAK,GAAK44B,GAAMA,GAAM,GACzCnmC,EAAS,IAAIwlC,EAAa,iBACnBC,YAAY,IAAIpuB,EAAOuJ,MAAMglB,EAAG9vC,EAAIyX,GAAMs4B,EAAG/vC,EAAI8vC,EAAG9vC,GAAI8vC,EAAG7vC,EAAIwX,GAAMs4B,EAAG9vC,EAAI6vC,EAAG7vC,KAGtFiK,EAAS,IAAIwlC,OAKbxlC,EAAS,IAAIwlC,EADH,IAARQ,GAAqB,IAARC,EACW,aAGA,YAG9B,OAAOjmC,GAaTqX,EAAOmuB,aAAaY,qBAAuB,SAASR,EAAIC,EAAI3kB,GAC1D,IAEYmlB,EAAOpvC,EAFf+I,EAAS,IAAIwlC,EACbluC,EAAS4pB,EAAO5pB,OAGpB,IAAKL,EAAI,EAAGA,EAAIK,EAAQL,IAGtBovC,EAAQb,EAAaG,kBAAkBC,EAAIC,EAFtC3kB,EAAOjqB,GACPiqB,GAAQjqB,EAAI,GAAKK,IAGtB0I,EAAO0lC,aAAaW,EAAMnlB,QAK5B,OAHIlhB,EAAOkhB,OAAO5pB,OAAS,IACzB0I,EAAOvB,OAAS,gBAEXuB,GAUTqX,EAAOmuB,aAAac,wBAA0B,SAAUC,EAASC,GAC/D,IAC6BvvC,EADzB+I,EAAS,IAAIwlC,EACbluC,EAASivC,EAAQjvC,OAErB,IAAKL,EAAI,EAAGA,EAAIK,EAAQL,IAAK,CAC3B,IAEIovC,EAAQb,EAAaY,qBAFhBG,EAAQtvC,GACRsvC,GAAStvC,EAAI,GAAKK,GAC2BkvC,GAEtDxmC,EAAO0lC,aAAaW,EAAMnlB,QAK5B,OAHIlhB,EAAOkhB,OAAO5pB,OAAS,IACzB0I,EAAOvB,OAAS,gBAEXuB,GAWTqX,EAAOmuB,aAAaiB,0BAA4B,SAAUvlB,EAAQwlB,EAAIC,GACpE,IAAI7vB,EAAM4vB,EAAG5vB,IAAI6vB,GACb5vB,EAAM2vB,EAAG3vB,IAAI4vB,GACbC,EAAW,IAAIvvB,EAAOuJ,MAAM7J,EAAIjhB,EAAGghB,EAAI/gB,GACvC8wC,EAAa,IAAIxvB,EAAOuJ,MAAM9J,EAAIhhB,EAAGihB,EAAIhhB,GACzC+wC,EAAStB,EAAaY,qBAAqBtvB,EAAK8vB,EAAU1lB,GAC1D6lB,EAASvB,EAAaY,qBAAqBQ,EAAU7vB,EAAKmK,GAC1D8lB,EAASxB,EAAaY,qBAAqBrvB,EAAK8vB,EAAY3lB,GAC5D+lB,EAASzB,EAAaY,qBAAqBS,EAAY/vB,EAAKoK,GAC5DlhB,EAAS,IAAIwlC,EAUjB,OARAxlC,EAAO0lC,aAAaoB,EAAO5lB,QAC3BlhB,EAAO0lC,aAAaqB,EAAO7lB,QAC3BlhB,EAAO0lC,aAAasB,EAAO9lB,QAC3BlhB,EAAO0lC,aAAauB,EAAO/lB,QAEvBlhB,EAAOkhB,OAAO5pB,OAAS,IACzB0I,EAAOvB,OAAS,gBAEXuB,IAxKX,CA2KoChH,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAiB/C,SAAS4f,EAAMM,GACRA,EAIHj7B,KAAK4qC,iBAAiB3P,GAHtBj7B,KAAK6qC,UAAU,CAAC,EAAG,EAAG,EAAG,IA0b7B,SAASC,EAAQpkC,EAAG9M,EAAGI,GAOrB,OANIA,EAAI,IACNA,GAAK,GAEHA,EAAI,IACNA,GAAK,GAEHA,EAAI,EAAI,EACH0M,EAAc,GAAT9M,EAAI8M,GAAS1M,EAEvBA,EAAI,GACCJ,EAELI,EAAI,EAAI,EACH0M,GAAK9M,EAAI8M,IAAM,EAAI,EAAI1M,GAAK,EAE9B0M,EA3dLqU,EAAO4f,MACT5f,EAAO9P,KAAK,qCAuBd8P,EAAO4f,MAAQA,EAEf5f,EAAO4f,MAAMz1B,UAAiD,CAM5D0lC,iBAAkB,SAAS3P,GACzB,IAAI74B,EAEA64B,KAASN,EAAMoQ,eACjB9P,EAAQN,EAAMoQ,aAAa9P,IAGf,gBAAVA,IACF74B,EAAS,CAAC,IAAK,IAAK,IAAK,IAGtBA,IACHA,EAASu4B,EAAMqQ,cAAc/P,IAE1B74B,IACHA,EAASu4B,EAAMsQ,cAAchQ,IAE1B74B,IACHA,EAASu4B,EAAMuQ,cAAcjQ,IAE1B74B,IAEHA,EAAS,CAAC,EAAG,EAAG,EAAG,IAEjBA,GACFpC,KAAK6qC,UAAUzoC,IAYnB+oC,UAAW,SAASx6B,EAAGvG,EAAGtQ,GAGxB,IAAIuQ,EAAGtQ,EAAGgS,EACN0O,EAAMM,EAAOkF,KAAKnI,MAAM2C,IAAI,CAHhC9J,GAAK,IAAKvG,GAAK,IAAKtQ,GAAK,MAIrB0gB,EAAMO,EAAOkF,KAAKnI,MAAM0C,IAAI,CAAC7J,EAAGvG,EAAGtQ,IAIvC,GAFAiS,GAAK0O,EAAMD,GAAO,EAEdC,IAAQD,EACVnQ,EAAItQ,EAAI,MAEL,CACH,IAAIM,EAAIogB,EAAMD,EAEd,OADAzgB,EAAIgS,EAAI,GAAM1R,GAAK,EAAIogB,EAAMD,GAAOngB,GAAKogB,EAAMD,GACvCC,GACN,KAAK9J,EACHtG,GAAKD,EAAItQ,GAAKO,GAAK+P,EAAItQ,EAAI,EAAI,GAC/B,MACF,KAAKsQ,EACHC,GAAKvQ,EAAI6W,GAAKtW,EAAI,EAClB,MACF,KAAKP,EACHuQ,GAAKsG,EAAIvG,GAAK/P,EAAI,EAGtBgQ,GAAK,EAGP,MAAO,CACL2Y,KAAKooB,MAAU,IAAJ/gC,GACX2Y,KAAKooB,MAAU,IAAJrxC,GACXipB,KAAKooB,MAAU,IAAJr/B,KAQf6uB,UAAW,WACT,OAAO56B,KAAKqrC,SAOdR,UAAW,SAASzoC,GAClBpC,KAAKqrC,QAAUjpC,GAOjBkpC,MAAO,WACL,IAAIlpC,EAASpC,KAAK46B,YAClB,MAAO,OAASx4B,EAAO,GAAK,IAAMA,EAAO,GAAK,IAAMA,EAAO,GAAK,KAOlEgiC,OAAQ,WACN,IAAIhiC,EAASpC,KAAK46B,YAClB,MAAO,QAAUx4B,EAAO,GAAK,IAAMA,EAAO,GAAK,IAAMA,EAAO,GAAK,IAAMA,EAAO,GAAK,KAOrFmpC,MAAO,WACL,IAAInpC,EAASpC,KAAK46B,YACd4Q,EAAMxrC,KAAKmrC,UAAU/oC,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAEtD,MAAO,OAASopC,EAAI,GAAK,IAAMA,EAAI,GAAK,KAAOA,EAAI,GAAK,MAO1DC,OAAQ,WACN,IAAIrpC,EAASpC,KAAK46B,YACd4Q,EAAMxrC,KAAKmrC,UAAU/oC,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAEtD,MAAO,QAAUopC,EAAI,GAAK,IAAMA,EAAI,GAAK,KAAOA,EAAI,GAAK,KAAOppC,EAAO,GAAK,KAO9EspC,MAAO,WACL,IAA+B/6B,EAAGvG,EAAGtQ,EAAjCsI,EAASpC,KAAK46B,YAWlB,OARAjqB,EAAkB,KADlBA,EAAIvO,EAAO,GAAGvC,SAAS,KAChB7E,OAAiB,IAAM2V,EAAKA,EAGnCvG,EAAkB,KADlBA,EAAIhI,EAAO,GAAGvC,SAAS,KAChB7E,OAAiB,IAAMoP,EAAKA,EAGnCtQ,EAAkB,KADlBA,EAAIsI,EAAO,GAAGvC,SAAS,KAChB7E,OAAiB,IAAMlB,EAAKA,EAE5B6W,EAAEuV,cAAgB9b,EAAE8b,cAAgBpsB,EAAEosB,eAO/CylB,OAAQ,WACN,IAA+B9xC,EAA3BuI,EAASpC,KAAK46B,YAMlB,OAFA/gC,EAAkB,KADlBA,GADAA,EAAImpB,KAAKooB,MAAkB,IAAZhpC,EAAO,KAChBvC,SAAS,KACR7E,OAAiB,IAAMnB,EAAKA,EAE5BmG,KAAK0rC,QAAU7xC,EAAEqsB,eAO1Bie,SAAU,WACR,OAAOnkC,KAAK46B,YAAY,IAQ1BsJ,SAAU,SAAS0H,GACjB,IAAIxpC,EAASpC,KAAK46B,YAGlB,OAFAx4B,EAAO,GAAKwpC,EACZ5rC,KAAK6qC,UAAUzoC,GACRpC,MAOT6rC,YAAa,WACX,IAAIzpC,EAASpC,KAAK46B,YACdkR,EAAUz9B,UAAsB,GAAZjM,EAAO,GAAuB,IAAZA,EAAO,GAAwB,IAAZA,EAAO,IAAWyY,QAAQ,GAAI,IAG3F,OADA7a,KAAK6qC,UAAU,CAACiB,EAASA,EAASA,EADf1pC,EAAO,KAEnBpC,MAQT+rC,aAAc,SAASC,GACrB,IAAI5pC,EAASpC,KAAK46B,YACdkR,GAAuB,GAAZ1pC,EAAO,GAAuB,IAAZA,EAAO,GAAwB,IAAZA,EAAO,IAAWyY,QAAQ,GAC1EoxB,EAAe7pC,EAAO,GAM1B,OAJA4pC,EAAYA,GAAa,IAEzBF,EAAWtmB,OAAOsmB,GAAWtmB,OAAOwmB,GAAc,EAAI,IACtDhsC,KAAK6qC,UAAU,CAACiB,EAASA,EAASA,EAASG,IACpCjsC,MAQTksC,YAAa,SAASC,GACdA,aAAsBxR,IAC1BwR,EAAa,IAAIxR,EAAMwR,IAGzB,IAI0CxxC,EAJtC+I,EAAS,GACTkoC,EAAQ5rC,KAAKmkC,WAEb/hC,EAASpC,KAAK46B,YACdwR,EAAcD,EAAWvR,YAE7B,IAAKjgC,EAAI,EAAGA,EAAI,EAAGA,IACjB+I,EAAOhD,KAAKsiB,KAAKooB,MAAmB,GAAZhpC,EAAOzH,GALhB,GAK0CyxC,EAAYzxC,KAKvE,OAFA+I,EAAO,GAAKkoC,EACZ5rC,KAAK6qC,UAAUnnC,GACR1D,OAWX+a,EAAO4f,MAAM0R,OAAS,oIAQtBtxB,EAAO4f,MAAM2R,OAAS,gGAQtBvxB,EAAO4f,MAAM4R,MAAQ,yDASrBxxB,EAAO4f,MAAMoQ,aAAe,CAC1ByB,UAAsB,UACtBC,aAAsB,UACtBC,KAAsB,UACtBC,WAAsB,UACtBC,MAAsB,UACtBC,MAAsB,UACtBC,OAAsB,UACtB75B,MAAsB,UACtB85B,eAAsB,UACtBC,KAAsB,UACtBC,WAAsB,UACtBC,MAAsB,UACtBC,UAAsB,UACtBC,UAAsB,UACtBC,WAAsB,UACtBC,UAAsB,UACtBC,MAAsB,UACtBC,eAAsB,UACtBC,SAAsB,UACtBC,QAAsB,UACtBC,KAAsB,UACtBC,SAAsB,UACtBC,SAAsB,UACtBC,cAAsB,UACtBC,SAAsB,UACtBC,SAAsB,UACtBC,UAAsB,UACtBC,UAAsB,UACtBC,YAAsB,UACtBC,eAAsB,UACtBC,WAAsB,UACtBC,WAAsB,UACtBC,QAAsB,UACtBC,WAAsB,UACtBC,aAAsB,UACtBC,cAAsB,UACtBC,cAAsB,UACtBC,cAAsB,UACtBC,cAAsB,UACtBC,WAAsB,UACtBC,SAAsB,UACtBC,YAAsB,UACtBC,QAAsB,UACtBC,QAAsB,UACtBC,WAAsB,UACtBC,UAAsB,UACtBC,YAAsB,UACtBC,YAAsB,UACtBC,QAAsB,UACtBC,UAAsB,UACtBC,WAAsB,UACtBC,KAAsB,UACtBC,UAAsB,UACtBC,KAAsB,UACtBC,KAAsB,UACtBC,MAAsB,UACtBC,YAAsB,UACtBC,SAAsB,UACtBC,QAAsB,UACtBC,UAAsB,UACtBC,OAAsB,UACtBC,MAAsB,UACtBC,MAAsB,UACtBC,SAAsB,UACtBC,cAAsB,UACtBC,UAAsB,UACtBC,aAAsB,UACtBC,UAAsB,UACtBC,WAAsB,UACtBC,UAAsB,UACtBC,qBAAsB,UACtBC,UAAsB,UACtBC,UAAsB,UACtBC,WAAsB,UACtBC,UAAsB,UACtBC,YAAsB,UACtBC,cAAsB,UACtBC,aAAsB,UACtBC,eAAsB,UACtBC,eAAsB,UACtBC,eAAsB,UACtBC,YAAsB,UACtBC,KAAsB,UACtBC,UAAsB,UACtBC,MAAsB,UACtBC,QAAsB,UACtBC,OAAsB,UACtBC,iBAAsB,UACtBC,WAAsB,UACtBC,aAAsB,UACtBC,aAAsB,UACtBC,eAAsB,UACtBC,gBAAsB,UACtBC,kBAAsB,UACtBC,gBAAsB,UACtBC,gBAAsB,UACtBC,aAAsB,UACtBC,UAAsB,UACtBC,UAAsB,UACtBC,SAAsB,UACtBC,YAAsB,UACtBC,KAAsB,UACtBC,QAAsB,UACtBC,MAAsB,UACtBC,UAAsB,UACtBC,OAAsB,UACtBC,UAAsB,UACtBC,OAAsB,UACtBC,cAAsB,UACtBC,UAAsB,UACtBC,cAAsB,UACtBC,cAAsB,UACtBC,WAAsB,UACtBC,UAAsB,UACtBC,KAAsB,UACtBC,KAAsB,UACtBC,KAAsB,UACtBC,WAAsB,UACtBC,OAAsB,UACtBC,cAAsB,UACtBC,IAAsB,UACtBC,UAAsB,UACtBC,UAAsB,UACtBC,YAAsB,UACtBC,OAAsB,UACtBC,WAAsB,UACtBC,SAAsB,UACtBC,SAAsB,UACtBC,OAAsB,UACtBC,OAAsB,UACtBC,QAAsB,UACtBC,UAAsB,UACtBC,UAAsB,UACtBC,UAAsB,UACtBC,KAAsB,UACtBC,YAAsB,UACtBC,UAAsB,UACtBlqB,IAAsB,UACtBmqB,KAAsB,UACtBC,QAAsB,UACtBC,OAAsB,UACtBC,UAAsB,UACtBC,OAAsB,UACtBC,MAAsB,UACtBC,MAAsB,UACtBC,WAAsB,UACtBC,OAAsB,UACtBC,YAAsB,WAmCxB16B,EAAO4f,MAAM+a,QAAU,SAASza,GAC9B,OAAON,EAAMgb,WAAWhb,EAAMsQ,cAAchQ,KAS9ClgB,EAAO4f,MAAMsQ,cAAgB,SAAShQ,GACpC,IAAIn7B,EAAQm7B,EAAMn7B,MAAM66B,EAAM0R,QAC9B,GAAIvsC,EAAO,CACT,IAAI6Q,EAAItC,SAASvO,EAAM,GAAI,KAAO,KAAKoL,KAAKpL,EAAM,IAAM,IAAM,IAAM,KAAKoL,KAAKpL,EAAM,IAAM,IAAM,GAC5FsK,EAAIiE,SAASvO,EAAM,GAAI,KAAO,KAAKoL,KAAKpL,EAAM,IAAM,IAAM,IAAM,KAAKoL,KAAKpL,EAAM,IAAM,IAAM,GAC5FhG,EAAIuU,SAASvO,EAAM,GAAI,KAAO,KAAKoL,KAAKpL,EAAM,IAAM,IAAM,IAAM,KAAKoL,KAAKpL,EAAM,IAAM,IAAM,GAEhG,MAAO,CACLuO,SAASsC,EAAG,IACZtC,SAASjE,EAAG,IACZiE,SAASvU,EAAG,IACZgG,EAAM,GAAKylB,WAAWzlB,EAAM,IAAM,KAaxCib,EAAO4f,MAAMib,SAAWjb,EAAM+a,QAQ9B36B,EAAO4f,MAAMkb,QAAU,SAAS5a,GAC9B,OAAON,EAAMgb,WAAWhb,EAAMuQ,cAAcjQ,KAW9ClgB,EAAO4f,MAAMuQ,cAAgB,SAASjQ,GACpC,IAAIn7B,EAAQm7B,EAAMn7B,MAAM66B,EAAM2R,QAC9B,GAAKxsC,EAAL,CAIA,IAGI6Q,EAAGvG,EAAGtQ,EAHNuQ,GAAOkb,WAAWzlB,EAAM,IAAM,IAAO,KAAO,IAAO,IACnD/F,EAAIwrB,WAAWzlB,EAAM,KAAO,KAAKoL,KAAKpL,EAAM,IAAM,IAAM,GACxDiM,EAAIwZ,WAAWzlB,EAAM,KAAO,KAAKoL,KAAKpL,EAAM,IAAM,IAAM,GAG5D,GAAU,IAAN/F,EACF4W,EAAIvG,EAAItQ,EAAIiS,MAET,CACH,IAAInS,EAAImS,GAAK,GAAMA,GAAKhS,EAAI,GAAKgS,EAAIhS,EAAIgS,EAAIhS,EACzC2M,EAAQ,EAAJqF,EAAQnS,EAEhB+W,EAAIm6B,EAAQpkC,EAAG9M,EAAGyQ,EAAI,EAAI,GAC1BD,EAAI0gC,EAAQpkC,EAAG9M,EAAGyQ,GAClBvQ,EAAIgxC,EAAQpkC,EAAG9M,EAAGyQ,EAAI,EAAI,GAG5B,MAAO,CACL2Y,KAAKooB,MAAU,IAAJz6B,GACXqS,KAAKooB,MAAU,IAAJhhC,GACX4Y,KAAKooB,MAAU,IAAJtxC,GACXgG,EAAM,GAAKylB,WAAWzlB,EAAM,IAAM,KAYtCib,EAAO4f,MAAMmb,SAAWnb,EAAMkb,QAS9B96B,EAAO4f,MAAMob,QAAU,SAAS9a,GAC9B,OAAON,EAAMgb,WAAWhb,EAAMqQ,cAAc/P,KAU9ClgB,EAAO4f,MAAMqQ,cAAgB,SAAS/P,GACpC,GAAIA,EAAMn7B,MAAM66B,EAAM4R,OAAQ,CAC5B,IAAI9mC,EAAQw1B,EAAM39B,MAAM29B,EAAMr5B,QAAQ,KAAO,GACzCo0C,EAAoC,IAAjBvwC,EAAMzK,QAAiC,IAAjByK,EAAMzK,OAC/Ci7C,EAA2B,IAAjBxwC,EAAMzK,QAAiC,IAAjByK,EAAMzK,OACtC2V,EAAIqlC,EAAmBvwC,EAAM9J,OAAO,GAAK8J,EAAM9J,OAAO,GAAM8J,EAAMjC,UAAU,EAAG,GAC/E4G,EAAI4rC,EAAmBvwC,EAAM9J,OAAO,GAAK8J,EAAM9J,OAAO,GAAM8J,EAAMjC,UAAU,EAAG,GAC/E1J,EAAIk8C,EAAmBvwC,EAAM9J,OAAO,GAAK8J,EAAM9J,OAAO,GAAM8J,EAAMjC,UAAU,EAAG,GAC/E3J,EAAIo8C,EAAUD,EAAmBvwC,EAAM9J,OAAO,GAAK8J,EAAM9J,OAAO,GAAM8J,EAAMjC,UAAU,EAAG,GAAM,KAEnG,MAAO,CACL6K,SAASsC,EAAG,IACZtC,SAASjE,EAAG,IACZiE,SAASvU,EAAG,IACZyrB,YAAYlX,SAASxU,EAAG,IAAM,KAAKghB,QAAQ,OAYjDE,EAAO4f,MAAMgb,WAAa,SAASvzC,GACjC,IAAI8zC,EAAS,IAAIvb,EAEjB,OADAub,EAAOrL,UAAUzoC,GACV8zC,IAxnBX,CA2nBoCx5C,GAGpC,WAGE,SAASy5C,EAAa9gB,EAAI+gB,GACxB,IAEInb,EAAOob,EAAYhiB,EAAS15B,EAF5B6R,EAAQ6oB,EAAG6J,aAAa,SACxBxlB,EAAS2b,EAAG6J,aAAa,WAAa,EAM1C,GADAxlB,GADAA,EAAS6L,WAAW7L,IAAW,KAAKxO,KAAKwO,GAAU,IAAM,IACvC,EAAI,EAAIA,EAAS,EAAI,EAAIA,EACvClN,EAAO,CACT,IAAI8pC,EAAgB9pC,EAAMhL,MAAM,WAMhC,IAJgD,KAA5C80C,EAAcA,EAAct7C,OAAS,IACvCs7C,EAAcviC,MAGXpZ,EAAI27C,EAAct7C,OAAQL,KAAO,CAEpC,IAAI6G,EAAQ80C,EAAc37C,GAAG6G,MAAM,WAC/BtF,EAAMsF,EAAM,GAAGwU,OACfvQ,EAAQjE,EAAM,GAAGwU,OAET,eAAR9Z,EACF++B,EAAQx1B,EAEO,iBAARvJ,IACPm4B,EAAU5uB,IAiBhB,OAZKw1B,IACHA,EAAQ5F,EAAG6J,aAAa,eAAiB,cAEtC7K,IACHA,EAAUgB,EAAG6J,aAAa,iBAI5BmX,GADApb,EAAQ,IAAIlgB,EAAO4f,MAAMM,IACNkJ,WACnB9P,EAAUrgB,MAAMuR,WAAW8O,IAAY,EAAI9O,WAAW8O,GACtDA,GAAWgiB,EAAaD,EAEjB,CACL18B,OAAQA,EACRuhB,MAAOA,EAAMqQ,QACbjX,QAASA,GAyBb,IAAIzd,EAAQmE,EAAOkF,KAAK3I,OAAOV,MA6Z/B,SAAS2/B,EAA8BC,EAAU9gC,EAAS+gC,EAAYC,GACpE,IAAIC,EAAWC,EACf7wC,OAAOP,KAAKkQ,GAASiC,SAAQ,SAASyI,GAElB,cADlBu2B,EAAYjhC,EAAQ0K,IAElBw2B,EAAa,EAEQ,cAAdD,EACPC,EAAa,GAGbA,EAAarxB,WAAW7P,EAAQ0K,GAAO,IACd,iBAAdu2B,GAA0B,uBAAuBzrC,KAAKyrC,KAC/DC,GAAc,IACQ,WAAlBF,IAEW,OAATt2B,GAA0B,OAATA,GAA0B,OAATA,IACpCw2B,GAAcH,EAAWjW,cAAgBiW,EAAW/5B,OAEzC,OAAT0D,GAA0B,OAATA,IACnBw2B,GAAcH,EAAWhW,eAAiBgW,EAAWl6B,WAK7D7G,EAAQ0K,GAAQw2B,KA9apB77B,EAAOqH,SAAWrH,EAAOkF,KAAKkT,YAAoD,CAOhF0jB,QAAS,EAOTC,QAAS,EAUTC,kBAAmB,KAWnBL,cAAe,SAOfvrC,KAAM,SAmBNioB,WAAY,SAAS1d,GACnBA,IAAYA,EAAU,IACtBA,EAAQkb,SAAWlb,EAAQkb,OAAS,IAEpC,IAAIA,EAAQppB,EAAQxH,KAGpB+F,OAAOP,KAAKkQ,GAASiC,SAAQ,SAASq/B,GACpCxvC,EAAMwvC,GAAUthC,EAAQshC,MAGtBh3C,KAAKyR,GACPzR,KAAKyR,IAAM,IAAMsJ,EAAOhV,OAAO48B,QAG/B3iC,KAAKyR,GAAKsJ,EAAOhV,OAAO48B,QAG1B/R,EAAS,CACPf,GAAIna,EAAQkb,OAAOf,IAAM,EACzBC,GAAIpa,EAAQkb,OAAOd,IAAM,EACzBzH,GAAI3S,EAAQkb,OAAOvI,IAAM,EACzBC,GAAI5S,EAAQkb,OAAOtI,IAAM,GAGT,WAAdtoB,KAAKmL,OACPylB,EAAOwZ,GAAK10B,EAAQkb,OAAOwZ,IAAM,EACjCxZ,EAAOyZ,GAAK30B,EAAQkb,OAAOyZ,IAAM,GAGnCrqC,KAAK4wB,OAASA,EACd5wB,KAAKmiB,WAAazM,EAAQyM,WAAW7kB,SAQvC25C,aAAc,SAAS90B,GACrB,IAAK,IAAI0E,KAAY1E,EAAY,CAC/B,IAAI8Y,EAAQ,IAAIlgB,EAAO4f,MAAMxY,EAAW0E,IACxC7mB,KAAKmiB,WAAWzhB,KAAK,CACnBgZ,OAAQ6L,WAAWsB,GACnBoU,MAAOA,EAAMqQ,QACbjX,QAAS4G,EAAMkJ,aAGnB,OAAOnkC,MAQTk3C,SAAU,SAASC,GACjB,IAAI7/B,EAAS,CACXnM,KAAMnL,KAAKmL,KACXylB,OAAQ5wB,KAAK4wB,OACbzO,WAAYniB,KAAKmiB,WACjB00B,QAAS72C,KAAK62C,QACdC,QAAS92C,KAAK82C,QACdJ,cAAe12C,KAAK02C,cACpBK,kBAAmB/2C,KAAK+2C,kBAAoB/2C,KAAK+2C,kBAAkBv6C,SAAWwD,KAAK+2C,mBAIrF,OAFAh8B,EAAOkF,KAAKiI,uBAAuBloB,KAAMsX,EAAQ6/B,GAE1C7/B,GAST8/B,MAAO,SAAS9/B,EAAQ5B,GACtB,IAAuC/a,EAAGD,EACtC28C,EAAQC,EADR1mB,EAASha,EAAM5W,KAAK4wB,QAAAA,GACMzO,GADiBzM,EAAUA,GAAW,GACzBkB,EAAM5W,KAAKmiB,YAAAA,IAClDo1B,EAAY3mB,EAAOwZ,GAAKxZ,EAAOyZ,GAC/BxlB,EAAY7kB,KAAK+2C,kBAAoB/2C,KAAK+2C,kBAAkBv6C,SAAWue,EAAOsD,QAAQ7hB,SACtFq6C,GAAW72C,KAAK62C,QAASC,GAAW92C,KAAK82C,QACzCU,IAAiB9hC,EAAQ+hC,oBACzBf,EAAuC,WAAvB12C,KAAK02C,cAA6B,iBAAmB,oBAqDzE,GAnDAv0B,EAAWu1B,MAAK,SAAS79C,EAAGC,GAC1B,OAAOD,EAAE6f,OAAS5f,EAAE4f,UAGA,sBAAlBg9B,GACFG,GAAWv/B,EAAOoF,MAClBo6B,GAAWx/B,EAAOiF,SAGlBs6B,GAAWv/B,EAAOoF,MAAQ,EAC1Bo6B,GAAWx/B,EAAOiF,OAAS,GAET,SAAhBjF,EAAOnM,OACT0rC,GAAWv/B,EAAOqgC,WAAWn+C,EAC7Bs9C,GAAWx/B,EAAOqgC,WAAWl+C,GAI/BorB,EAAU,IAAMgyB,EAChBhyB,EAAU,IAAMiyB,EAEhBQ,EAAmB,aAAet3C,KAAKyR,GACxB,oBAAsBilC,EAAgB,IACrDY,GAAoB,wBAA0BE,EAC5C9hC,EAAQ+hC,oBAAsB,IAAM,IAAM18B,EAAOkF,KAAKwM,YAAY5H,GAAa,KAE/D,WAAd7kB,KAAKmL,KACPksC,EAAS,CACP,mBACAC,EACA,QAAS1mB,EAAOf,GAChB,SAAUe,EAAOd,GACjB,SAAUc,EAAOvI,GACjB,SAAUuI,EAAOtI,GACjB,QAGmB,WAAdtoB,KAAKmL,OAEZksC,EAAS,CACP,mBACAC,EACA,QAASC,EAAY3mB,EAAOf,GAAKe,EAAOvI,GACxC,SAAUkvB,EAAY3mB,EAAOd,GAAKc,EAAOtI,GACzC,QAASivB,EAAY3mB,EAAOwZ,GAAKxZ,EAAOyZ,GACxC,SAAUkN,EAAY3mB,EAAOvI,GAAKuI,EAAOf,GACzC,SAAU0nB,EAAY3mB,EAAOtI,GAAKsI,EAAOd,GACzC,SAIc,WAAd9vB,KAAKmL,KAAmB,CAC1B,GAAIosC,EAIF,KAFAp1B,EAAaA,EAAW3lB,UACbo7C,UACNj9C,EAAI,EAAGD,EAAMynB,EAAWnnB,OAAQL,EAAID,EAAKC,IAC5CwnB,EAAWxnB,GAAG+e,OAAS,EAAIyI,EAAWxnB,GAAG+e,OAG7C,IAAIm+B,EAAY70B,KAAKxI,IAAIoW,EAAOwZ,GAAIxZ,EAAOyZ,IAC3C,GAAIwN,EAAY,EAAG,CAEjB,IACIC,EAAkBD,EADN70B,KAAKvI,IAAImW,EAAOwZ,GAAIxZ,EAAOyZ,IAE3C,IAAK1vC,EAAI,EAAGD,EAAMynB,EAAWnnB,OAAQL,EAAID,EAAKC,IAC5CwnB,EAAWxnB,GAAG+e,QAAUo+B,GAAmB,EAAI31B,EAAWxnB,GAAG+e,SAKnE,IAAK/e,EAAI,EAAGD,EAAMynB,EAAWnnB,OAAQL,EAAID,EAAKC,IAAK,CACjD,IAAIo9C,EAAY51B,EAAWxnB,GAC3B08C,EAAO32C,KACL,SACA,WAAgC,IAAnBq3C,EAAUr+B,OAAgB,IACvC,uBAAwBq+B,EAAU9c,WAAAA,IAC1B8c,EAAU1jB,QAA0B,kBAAoB0jB,EAAU1jB,QAAU,IACpF,SAMJ,OAFAgjB,EAAO32C,KAAoB,WAAdV,KAAKmL,KAAoB,sBAAwB,uBAEvDksC,EAAO3xC,KAAK,KAUrBsyC,OAAQ,SAAS57B,EAAK9E,GACpB,IAAImqB,EAA0D9mC,EAAGD,EAAnDk2B,EAAS7V,EAAOkF,KAAK3I,OAAOV,MAAM5W,KAAK4wB,QACjDf,EAAKe,EAAOf,GAAIC,EAAKc,EAAOd,GAAIzH,EAAKuI,EAAOvI,GAAIC,EAAKsI,EAAOtI,GAC5D2vB,EAAQj4C,KAAKmiB,WAEjB,GAAKniB,KAAKmL,KAAV,CAgBA,IAZImM,aAAkByD,EAAO6K,MAA+B,eAAvB5lB,KAAK02C,gBACxC7mB,GAAMvY,EAAOoF,MACboT,GAAMxY,EAAOiF,OACb8L,GAAM/Q,EAAOoF,MACb4L,GAAMhR,EAAOiF,QAEG,WAAdvc,KAAKmL,KACPs2B,EAAWrlB,EAAI87B,qBAAqBroB,EAAIC,EAAIzH,EAAIC,GAE3B,WAAdtoB,KAAKmL,OACZs2B,EAAWrlB,EAAI+7B,qBAAqBtoB,EAAIC,EAAIc,EAAOwZ,GAAI/hB,EAAIC,EAAIsI,EAAOyZ,KAEnE1vC,EAAI,EAAGD,EAAMu9C,EAAMj9C,OAAQL,EAAID,EAAKC,IAAK,CAC5C,IAAIsgC,EAAQgd,EAAMt9C,GAAGsgC,MACjB5G,EAAU4jB,EAAMt9C,GAAG05B,QACnB3a,EAASu+B,EAAMt9C,GAAG+e,YAAAA,IAEX2a,IACT4G,EAAQ,IAAIlgB,EAAO4f,MAAMM,GAAOiJ,SAAS7P,GAAS+P,UAEpD3C,EAASwV,aAAav9B,EAAQuhB,GAGhC,OAAOwG,MAIX1mB,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOqH,SAAU,CAoBzC4jB,YAAa,SAAS3Q,EAAImhB,EAAU3P,EAAa4P,GAkC/C,IAAIL,EAAa7wB,WAAWshB,IAAgB,KAAK37B,KAAK27B,GAAe,IAAM,GAC3EuP,EAAaA,EAAa,EAAI,EAAIA,EAAa,EAAI,EAAIA,EACnDpiC,MAAMoiC,KACRA,EAAa,GAGf,IACIjrC,EAKAylB,EAAQj2B,EACRojC,EAPAqa,EAAe/iB,EAAGvoB,qBAAqB,QAEvC4pC,EAAqD,mBAArCrhB,EAAG6J,aAAa,iBAC9B,SAAW,aACb6X,EAAoB1hB,EAAG6J,aAAa,sBAAwB,GAC5D/c,EAAa,GACF00B,EAAU,EAAGC,EAAU,EAWtC,IAToB,mBAAhBzhB,EAAG2J,UAAiD,mBAAhB3J,EAAG2J,UACzC7zB,EAAO,SACPylB,EAxXN,SAAyByE,GACvB,MAAO,CACLxF,GAAIwF,EAAG6J,aAAa,OAAS,EAC7BpP,GAAIuF,EAAG6J,aAAa,OAAS,EAC7B7W,GAAIgN,EAAG6J,aAAa,OAAS,OAC7B5W,GAAI+M,EAAG6J,aAAa,OAAS,GALjC,CAwX+B7J,KAGzBlqB,EAAO,SACPylB,EAnXN,SAAyByE,GACvB,MAAO,CACLxF,GAAIwF,EAAG6J,aAAa,OAAS7J,EAAG6J,aAAa,OAAS,MACtDpP,GAAIuF,EAAG6J,aAAa,OAAS7J,EAAG6J,aAAa,OAAS,MACtDkL,GAAI,EACJ/hB,GAAIgN,EAAG6J,aAAa,OAAS,MAC7B5W,GAAI+M,EAAG6J,aAAa,OAAS,MAC7BmL,GAAIhV,EAAG6J,aAAa,MAAQ,OAPhC,CAmX+B7J,IAGtB16B,EAAIy9C,EAAap9C,OAAQL,KAC5BwnB,EAAWzhB,KAAKy1C,EAAaiC,EAAaz9C,GAAIy7C,IAuBhD,OApBArY,EAAkBhjB,EAAOijB,wBAAwB+Y,GAEjDR,EAA8BC,EAAU5lB,EAAQ6lB,EAAYC,GAEtC,WAAlBA,IACFG,GAAWL,EAAStxB,KACpB4xB,GAAWN,EAASrxB,KAGP,IAAIpK,EAAOqH,SAAS,CACjC3Q,GAAI4jB,EAAG6J,aAAa,MACpB/zB,KAAMA,EACNylB,OAAQA,EACRzO,WAAYA,EACZu0B,cAAeA,EACfK,kBAAmBhZ,EACnB8Y,QAASA,EACTC,QAASA,KAgBbuB,UAAW,SAASryC,EAAK0P,GAOvB,OANAA,IAAYA,EAAU,IACtB6gC,EAA8BvwC,EAAK0P,EAAQkb,OAAQlb,EAAQghC,cAAe,CAExElW,aAAc,IACdC,cAAe,MAEV,IAAI1lB,EAAOqH,SAAS1M,MA/djC,GAqgBA,WAEE,aAEA,IAAImF,EAAUE,EAAOkF,KAAKpF,QAW1BE,EAAOuH,QAAUvH,EAAOkF,KAAKkT,YAAmD,CAO9EmlB,OAAQ,SAORzB,QAAS,EAOTC,QAAS,EAQTvwB,YAAa,GAObgyB,iBAAkB,KAQlBnlB,WAAY,SAAS1d,EAAShR,GAK5B,GAJAgR,IAAYA,EAAU,IAEtB1V,KAAKyR,GAAKsJ,EAAOhV,OAAO48B,QACxB3iC,KAAKw4C,WAAW9iC,IACXA,EAAQtT,QAAWsT,EAAQtT,QAAoC,iBAAnBsT,EAAQtT,OACvDsC,GAAYA,EAAS1E,WAIvB,QAAA,IAAW+a,EAAOkF,KAAKyC,gBAAgBhN,EAAQtT,QAC7CpC,KAAKoC,OAAS,IAAI6C,SAAS8V,EAAOkF,KAAKyC,gBAAgBhN,EAAQtT,SAC/DsC,GAAYA,EAAS1E,UAElB,CAEH,IAAIwH,EAAQxH,KACZA,KAAKoC,OAAS2Y,EAAOkF,KAAKwG,cAC1B1L,EAAOkF,KAAKqG,UAAU5Q,EAAQtT,QAAQ,SAASokB,GAC7Chf,EAAMpF,OAASokB,EACf9hB,GAAYA,EAAS8C,KACpB,KAAMxH,KAAKumB,eASlB2wB,SAAU,SAASC,GACjB,IACI/0C,EAAQkV,EADRoV,EAAsB3R,EAAOhV,OAAO2mB,oBA2BxC,MAvB2B,mBAAhB1sB,KAAKoC,OACdA,EAAS/G,OAAO2E,KAAKoC,QAGa,iBAApBpC,KAAKoC,OAAOuL,IAC1BvL,EAASpC,KAAKoC,OAAOuL,IAGS,iBAAhB3N,KAAKoC,QAAuBpC,KAAKoC,OAAOgnB,YACtDhnB,EAASpC,KAAKoC,OAAOgnB,aAGvB9R,EAAS,CACPnM,KAAM,UACN/I,OAAQA,EACRk2C,OAAQt4C,KAAKs4C,OACb/xB,YAAavmB,KAAKumB,YAClBswB,QAASh8B,EAAQ7a,KAAK62C,QAASnqB,GAC/BoqB,QAASj8B,EAAQ7a,KAAK82C,QAASpqB,GAC/B6rB,iBAAkBv4C,KAAKu4C,iBAAmBv4C,KAAKu4C,iBAAiB/7C,SAAW,MAE7Eue,EAAOkF,KAAKiI,uBAAuBloB,KAAMsX,EAAQ6/B,GAE1C7/B,GAST8/B,MAAO,SAAS9/B,GACd,IAAImhC,EAAuC,mBAAhBz4C,KAAKoC,OAAwBpC,KAAKoC,SAAWpC,KAAKoC,OACzEs2C,EAAeD,EAAc/7B,MAAQpF,EAAOoF,MAC5Ci8B,EAAgBF,EAAcl8B,OAASjF,EAAOiF,OAC9Cq8B,EAAiB54C,KAAK62C,QAAUv/B,EAAOoF,MACvCm8B,EAAiB74C,KAAK82C,QAAUx/B,EAAOiF,OACvCu8B,EAAgB,GAqBpB,MApBoB,aAAhB94C,KAAKs4C,QAAyC,cAAhBt4C,KAAKs4C,SACrCK,EAAgB,EACZE,IACFF,GAAiB31B,KAAK6K,IAAIgrB,KAGV,aAAhB74C,KAAKs4C,QAAyC,cAAhBt4C,KAAKs4C,SACrCI,EAAe,EACXE,IACFF,GAAgB11B,KAAK6K,IAAI+qB,KAIzBH,EAAc9qC,IAChBmrC,EAAgBL,EAAc9qC,IAEvB8qC,EAAcrvB,YACrB0vB,EAAgBL,EAAcrvB,aAGzB,sBAAwBppB,KAAKyR,GACtB,QAAUmnC,EACV,QAAUC,EACV,YAAcH,EACd,aAAeC,EAAgB,iCAEhBF,EAAc/7B,MAC3B,aAAe+7B,EAAcl8B,OAC7B,iBAAmBu8B,EAC1B,4BAKXN,WAAY,SAAS9iC,GACnB,IAAK,IAAI0K,KAAQ1K,EACf1V,KAAKogB,GAAQ1K,EAAQ0K,IASzB43B,OAAQ,SAAS57B,GACf,IAAIha,EAAgC,mBAAhBpC,KAAKoC,OAAwBpC,KAAKoC,SAAWpC,KAAKoC,OAGtE,IAAKA,EACH,MAAO,GAIT,QAAA,IAAWA,EAAOuL,IAAqB,CACrC,IAAKvL,EAAOmF,SACV,MAAO,GAET,GAA4B,IAAxBnF,EAAO22C,cAA+C,IAAzB32C,EAAO42C,cACtC,MAAO,GAGX,OAAO58B,EAAI68B,cAAc72C,EAAQpC,KAAKs4C,WAnM5C,GAyMA,SAAUn7C,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3CF,EAAUE,EAAOkF,KAAKpF,QAEtBE,EAAOm+B,OACTn+B,EAAO9P,KAAK,sCAUd8P,EAAOm+B,OAASn+B,EAAOkF,KAAKkT,YAAkD,CAO5E8H,MAAO,aAMPke,KAAM,EAONtC,QAAS,EAOTC,QAAS,EAOTsC,cAAAA,EAOAC,sBAAAA,EASAC,YAAAA,EAOAlmB,WAAY,SAAS1d,GAMnB,IAAK,IAAI0K,IAJc,iBAAZ1K,IACTA,EAAU1V,KAAKu5C,aAAa7jC,IAGbA,EACf1V,KAAKogB,GAAQ1K,EAAQ0K,GAGvBpgB,KAAKyR,GAAKsJ,EAAOhV,OAAO48B,SAQ1B4W,aAAc,SAASC,GACrB,IAAIC,EAAYD,EAAOxjC,OACnB0jC,EAAiB3+B,EAAOm+B,OAAOS,iBAAiBl4C,KAAKg4C,IAAc,GAGvE,MAAO,CACLxe,OAHUwe,EAAU5tC,QAAQkP,EAAOm+B,OAAOS,iBAAkB,KAAO,cAGtD3jC,OACb6gC,QAASxoC,SAASqrC,EAAe,GAAI,KAAO,EAC5C5C,QAASzoC,SAASqrC,EAAe,GAAI,KAAO,EAC5CP,KAAM9qC,SAASqrC,EAAe,GAAI,KAAO,IAS7C75C,SAAU,WACR,MAAO,CAACG,KAAK62C,QAAS72C,KAAK82C,QAAS92C,KAAKm5C,KAAMn5C,KAAKi7B,OAAOv1B,KAAK,QASlE0xC,MAAO,SAAS9/B,GACd,IAAIsiC,EAAQ,GAAIC,EAAQ,GAAIntB,EAAsB3R,EAAOhV,OAAO2mB,oBAC5DhT,EAASqB,EAAOkF,KAAKoE,aACnB,CAAE7qB,EAAGwG,KAAK62C,QAASp9C,EAAGuG,KAAK82C,SAC3B/7B,EAAOkF,KAAKvF,kBAAkBpD,EAAOiM,QACxB0X,EAAQ,IAAIlgB,EAAO4f,MAAM36B,KAAKi7B,OAejD,OAbI3jB,EAAOoF,OAASpF,EAAOiF,SAGzBq9B,EAAwF,IAAhF/+B,GAASmI,KAAK6K,IAAInU,EAAOlgB,GAAKwG,KAAKm5C,MAAQ7hC,EAAOoF,MAAOgQ,GALpD,GAMbmtB,EAAyF,IAAjFh/B,GAASmI,KAAK6K,IAAInU,EAAOjgB,GAAKuG,KAAKm5C,MAAQ7hC,EAAOiF,OAAQmQ,GANrD,IAQXpV,EAAOoT,QACThR,EAAOlgB,IAAM,GAEX8d,EAAOqT,QACTjR,EAAOjgB,IAAM,GAIb,qBAAuBuG,KAAKyR,GAAK,SAAWooC,EAAQ,eAAiB,IAAM,EAAIA,GAAS,UAC7ED,EAAQ,cAAgB,IAAM,EAAIA,GAAS,0DAElD/+B,EAAQ7a,KAAKm5C,KAAOn5C,KAAKm5C,KAAO,EAAI,EAAGzsB,GAAuB,wCAC3C7R,EAAQnB,EAAOlgB,EAAGkzB,GACvC,SAAW7R,EAAQnB,EAAOjgB,EAAGizB,GAAuB,0DACvBuO,EAAMqQ,QAAU,oBAAsBrQ,EAAMkJ,WAAa,iLAc5F+S,SAAU,WACR,GAAIl3C,KAAKq5C,qBACP,MAAO,CACLpe,MAAOj7B,KAAKi7B,MACZke,KAAMn5C,KAAKm5C,KACXtC,QAAS72C,KAAK62C,QACdC,QAAS92C,KAAK82C,QACdsC,aAAcp5C,KAAKo5C,aACnBE,WAAYt5C,KAAKs5C,YAGrB,IAAItzC,EAAM,GAAKuU,EAAQQ,EAAOm+B,OAAOh0C,UAQrC,MANA,CAAC,QAAS,OAAQ,UAAW,UAAW,eAAgB,cAAcyS,SAAQ,SAASyI,GACjFpgB,KAAKogB,KAAU7F,EAAM6F,KACvBpa,EAAIoa,GAAQpgB,KAAKogB,MAElBpgB,MAEIgG,KAWX+U,EAAOm+B,OAAOS,iBAAmB,0FAhMnC,CAkMoCj9C,GAGpC,WAEE,aAEA,GAAIqe,EAAO++B,aACT/+B,EAAO9P,KAAK,+CADd,CAMA,IAAImL,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5B0gB,EAAmB/b,EAAOkF,KAAK6W,iBAC/BpT,EAAkB3I,EAAOkF,KAAKyD,gBAC9B7I,EAAUE,EAAOkF,KAAKpF,QACtB4J,EAAiB1J,EAAOkF,KAAKwE,eAC7BW,EAAkBrK,EAAOkF,KAAKmF,gBAC9BwS,EAAgB7c,EAAOkF,KAAK2X,cAC5B3O,EAAsBlO,EAAOkF,KAAKgJ,oBAElC8wB,EAAoB,IAAIl0C,MAAM,yCAelCkV,EAAO++B,aAAe/+B,EAAOkF,KAAKkT,YAAYpY,EAAO+G,cAA2D,CAQ9GsR,WAAY,SAASiC,EAAI3f,GACvBA,IAAYA,EAAU,IACtB1V,KAAKg6C,oBAAsBh6C,KAAKi6C,eAAelxC,KAAK/I,MACpDA,KAAKk6C,sBAAwBl6C,KAAK+gB,iBAAiBhY,KAAK/I,MACxDA,KAAKm6C,YAAY9kB,EAAI3f,IASvB0kC,gBAAiB,GAcjBC,gBAAiB,KASjBC,aAAc,GAcdC,aAAc,KAQdlB,sBAAAA,EAOAmB,UAAAA,EAYA15B,mBAAAA,EAYA0B,OAAQ,KAORi4B,sBAAAA,EAOAC,qBAAAA,EAOAC,uBAAAA,EAOAC,kBAAmB7/B,EAAOsD,QAAQ7hB,SAQlCq+C,eAAAA,EAQAC,YAAAA,EAOAC,oBAAqB,aASrBC,qBAAAA,EAWAC,UAAW,GAYXC,eAAAA,EASA5T,cAAAA,EAOA6S,YAAa,SAAS9kB,EAAI3f,GACxB,IAAIylC,EAAKn7C,KAAKk6C,sBACdl6C,KAAK4gB,SAAW,GAChB5gB,KAAKo7C,mBAAmB/lB,GACxBr1B,KAAKq7C,aAAa3lC,GAClB1V,KAAKs7C,qBAEAt7C,KAAKu7C,aACRv7C,KAAKw7C,qBAGH9lC,EAAQ6kC,cACVv6C,KAAKy7C,gBAAgB/lC,EAAQ6kC,aAAcY,GAEzCzlC,EAAQ2kC,iBACVr6C,KAAK07C,mBAAmBhmC,EAAQ2kC,gBAAiBc,GAE/CzlC,EAAQ0kC,iBACVp6C,KAAK27C,mBAAmBjmC,EAAQ0kC,gBAAiBe,GAE/CzlC,EAAQ4kC,cACVt6C,KAAK47C,gBAAgBlmC,EAAQ4kC,aAAca,GAE7Cn7C,KAAK67C,cAMPC,iBAAkB,WAChB,OAAoC,IAA5B/gC,EAAO+D,kBAA0B9e,KAAKg7C,qBAOhDe,iBAAkB,WAChB,OAAO/7C,KAAK87C,mBAAqB/gC,EAAO+D,iBAAmB,GAM7D08B,mBAAoB,WAClB,GAAKx7C,KAAK87C,mBAAV,CAGA,IAAIE,EAAajhC,EAAO+D,iBACxB9e,KAAKi8C,oBAAoBD,EAAYh8C,KAAKk8C,cAAel8C,KAAKm8C,kBAC1Dn8C,KAAKo8C,eACPp8C,KAAKi8C,oBAAoBD,EAAYh8C,KAAKo8C,cAAep8C,KAAKq8C,cAIlEJ,oBAAqB,SAASD,EAAY9/B,EAAQrT,GAChDqT,EAAOxP,aAAa,QAAS1M,KAAK0c,MAAQs/B,GAC1C9/B,EAAOxP,aAAa,SAAU1M,KAAKuc,OAASy/B,GAC5CnzC,EAAQ2T,MAAMw/B,EAAYA,IAU5BH,WAAY,WAEV,OADA77C,KAAKs8C,QAAUxlB,EAAiB92B,KAAKk8C,eAC9Bl8C,MAkDTy7C,gBAAiB,SAAUc,EAAO73C,EAAUgR,GAC1C,OAAO1V,KAAKw8C,oBAAoB,eAAgBD,EAAO73C,EAAUgR,IAmDnEgmC,mBAAoB,SAAUa,EAAO73C,EAAUgR,GAC7C,OAAO1V,KAAKw8C,oBAAoB,kBAAmBD,EAAO73C,EAAUgR,IAwBtEkmC,gBAAiB,SAAStB,EAAc51C,GACtC,OAAO1E,KAAKy8C,oBAAoB,eAAgBnC,EAAc51C,IAwBhEi3C,mBAAoB,SAASvB,EAAiB11C,GAC5C,OAAO1E,KAAKy8C,oBAAoB,kBAAmBrC,EAAiB11C,IAOtE42C,mBAAoB,WAClB,IAAIl/B,EAAMpc,KAAKqc,aAEfD,EAAIu+B,sBAAwBv+B,EAAIu+B,uBAAyBv+B,EAAIsgC,6BACxDtgC,EAAIugC,0BAA4BvgC,EAAIwgC,yBAA2BxgC,EAAIygC,uBACxEzgC,EAAIu+B,sBAAwB36C,KAAK26C,uBAWnC6B,oBAAqB,SAASjlC,EAAUglC,EAAO73C,EAAUgR,GAkBvD,MAjBqB,iBAAV6mC,EACTxhC,EAAOkF,KAAKqG,UAAUi2B,GAAO,SAAS/1B,GACpC,GAAIA,EAAK,CACP,IAAIgwB,EAAW,IAAIz7B,EAAOqrB,MAAM5f,EAAK9Q,GACrC1V,KAAKuX,GAAYi/B,EACjBA,EAASt6B,OAASlc,KAEpB0E,GAAYA,EAAS8hB,KACpBxmB,KAAM0V,GAAWA,EAAQ6Q,cAG5B7Q,GAAW6mC,EAAM/D,WAAW9iC,GAC5B1V,KAAKuX,GAAYglC,EACjBA,IAAUA,EAAMrgC,OAASlc,MACzB0E,GAAYA,EAAS63C,IAGhBv8C,MAUTy8C,oBAAqB,SAASllC,EAAU0jB,EAAOv2B,GAI7C,OAHA1E,KAAKuX,GAAY0jB,EACjBj7B,KAAKiiB,cAAcgZ,EAAO1jB,GAC1BvX,KAAKqiB,aAAa4Y,EAAO1jB,EAAU7S,GAC5B1E,MAMT88C,qBAAsB,WACpB,IAAI77C,EAAUgoB,IACd,IAAKhoB,EACH,MAAM84C,EAKR,GAHK94C,EAAQuL,QACXvL,EAAQuL,MAAQ,SAAA,IAEPvL,EAAQob,WACjB,MAAM09B,EAER,OAAO94C,GAOTo6C,aAAc,SAAU3lC,GACtB,IAAIwmC,EAAgBl8C,KAAKk8C,cACzBl8C,KAAK+hB,YAAYrM,GAEjB1V,KAAK0c,MAAQ1c,KAAK0c,OAASrO,SAAS6tC,EAAcx/B,MAAO,KAAO,EAChE1c,KAAKuc,OAASvc,KAAKuc,QAAUlO,SAAS6tC,EAAc3/B,OAAQ,KAAO,EAE9Dvc,KAAKk8C,cAAc1vC,QAIxB0vC,EAAcx/B,MAAQ1c,KAAK0c,MAC3Bw/B,EAAc3/B,OAASvc,KAAKuc,OAE5B2/B,EAAc1vC,MAAMkQ,MAAQ1c,KAAK0c,MAAQ,KACzCw/B,EAAc1vC,MAAM+P,OAASvc,KAAKuc,OAAS,KAE3Cvc,KAAK46C,kBAAoB56C,KAAK46C,kBAAkBt9C,UAQlD89C,mBAAoB,SAAU/xB,GAG1BrpB,KAAKk8C,cADH7yB,GAAYA,EAAShN,WACFgN,EAGAtO,EAAOkF,KAAKuW,QAAQnN,IAAarpB,KAAK88C,uBAG7D/hC,EAAOkF,KAAKyW,SAAS12B,KAAKk8C,cAAe,gBAErCl8C,KAAKu7C,aACPv7C,KAAK+8C,kBAAkB/8C,KAAKk8C,eAG9Bl8C,KAAKm8C,iBAAmBn8C,KAAKk8C,cAAc7/B,WAAW,OAOxD2gC,SAAU,WACR,OAAOh9C,KAAK0c,OAOdugC,UAAW,WACT,OAAOj9C,KAAKuc,QAYd2gC,SAAU,SAAUz3C,EAAOiQ,GACzB,OAAO1V,KAAKm9C,cAAc,CAAEzgC,MAAOjX,GAASiQ,IAY9C0nC,UAAW,SAAU33C,EAAOiQ,GAC1B,OAAO1V,KAAKm9C,cAAc,CAAE5gC,OAAQ9W,GAASiQ,IAc/CynC,cAAe,SAAUE,EAAY3nC,GACnC,IAAI4nC,EAIJ,IAAK,IAAIl9B,KAFT1K,EAAUA,GAAW,GAEJ2nC,EACfC,EAAWD,EAAWj9B,GAEjB1K,EAAQ6nC,UACXv9C,KAAKw9C,uBAAuBp9B,EAAMi9B,EAAWj9B,IAC7Ck9B,GAAY,KACZt9C,KAAKy9C,gBAAAA,GAGF/nC,EAAQgoC,eACX19C,KAAK29C,iBAAiBv9B,EAAMk9B,GAchC,OAXIt9C,KAAK49C,qBACP59C,KAAK69C,kBAAoB79C,KAAK69C,iBAAiBC,kBAEjD99C,KAAKw7C,qBACLx7C,KAAKs7C,qBACLt7C,KAAK67C,aAEAnmC,EAAQ6nC,SACXv9C,KAAK+gB,mBAGA/gB,MAWTw9C,uBAAwB,SAAUp9B,EAAM3a,GAatC,OAZAzF,KAAKk8C,cAAc97B,GAAQ3a,EAEvBzF,KAAKo8C,gBACPp8C,KAAKo8C,cAAch8B,GAAQ3a,GAGzBzF,KAAK+9C,gBACP/9C,KAAK+9C,cAAc39B,GAAQ3a,GAG7BzF,KAAKogB,GAAQ3a,EAENzF,MAWT29C,iBAAkB,SAAUv9B,EAAM3a,GAWhC,OAVAzF,KAAKk8C,cAAc1vC,MAAM4T,GAAQ3a,EAE7BzF,KAAKo8C,gBACPp8C,KAAKo8C,cAAc5vC,MAAM4T,GAAQ3a,GAG/BzF,KAAKg+C,YACPh+C,KAAKg+C,UAAUxxC,MAAM4T,GAAQ3a,GAGxBzF,MAOTi+C,QAAS,WACP,OAAOj+C,KAAK46C,kBAAkB,IAShCsD,qBAAsB,SAAUC,GAC9B,IAAuC7mC,EAAgD3c,EAAGD,EAAtF0jD,EAAep+C,KAAKq+C,cAExB,IADAr+C,KAAK46C,kBAAoBuD,EACpBxjD,EAAI,EAAGD,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,EAAKC,KAC/C2c,EAAStX,KAAK4gB,SAASjmB,IAChB2jD,OAAShnC,EAAOinC,WAAAA,GAJkC,GAW3D,OALIH,GAAsC,oBAAtBA,EAAajzC,MAC/BizC,EAAaG,WAAAA,GAP4C,GAS3Dv+C,KAAKw+C,yBACLx+C,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAUTy+C,YAAa,SAAUt6B,EAAO1e,GAE5B,IAAIi5C,EAASv6B,EAAOg6B,EAAMn+C,KAAK46C,kBAAkBt9C,MAAM,GACvD6mB,EAAQM,EAAeN,EAAOiB,EAAgBplB,KAAK46C,oBACnDuD,EAAI,GAAK14C,EACT04C,EAAI,GAAK14C,EACT,IAAIk5C,EAAQl6B,EAAeN,EAAOg6B,GAGlC,OAFAA,EAAI,IAAMO,EAAOllD,EAAImlD,EAAMnlD,EAC3B2kD,EAAI,IAAMO,EAAOjlD,EAAIklD,EAAMllD,EACpBuG,KAAKk+C,qBAAqBC,IASnCS,QAAS,SAAUn5C,GAEjB,OADAzF,KAAKy+C,YAAY,IAAI1jC,EAAOuJ,MAAM,EAAG,GAAI7e,GAClCzF,MAST6+C,YAAa,SAAU16B,GACrB,IAAIg6B,EAAMn+C,KAAK46C,kBAAkBt9C,MAAM,GAGvC,OAFA6gD,EAAI,IAAMh6B,EAAM3qB,EAChB2kD,EAAI,IAAMh6B,EAAM1qB,EACTuG,KAAKk+C,qBAAqBC,IASnCW,YAAa,SAAU36B,GACrB,OAAOnkB,KAAK6+C,YAAY,IAAI9jC,EAAOuJ,OAChCH,EAAM3qB,EAAIwG,KAAK46C,kBAAkB,IACjCz2B,EAAM1qB,EAAIuG,KAAK46C,kBAAkB,MAQtCmE,WAAY,WACV,OAAO/+C,KAAKk8C,eAOdr7B,eAAgB,SAAS7a,GACvBhG,KAAKw6C,UAAYx0C,EAAIg5C,aACrBh5C,EAAI4c,KAAK,SAAU5iB,MACnBgG,EAAIu4C,YACJv+C,KAAKugB,KAAK,eAAgB,CAAE5V,OAAQ3E,IACpCA,EAAIua,KAAK,UAOXc,iBAAkB,SAASrb,GACzBhG,KAAKugB,KAAK,iBAAkB,CAAE5V,OAAQ3E,IACtCA,EAAIua,KAAK,kBACFva,EAAIkW,QASb+iC,aAAc,SAAS7iC,GAErB,OADAA,EAAI8iC,UAAU,EAAG,EAAGl/C,KAAK0c,MAAO1c,KAAKuc,QAC9Bvc,MAOTqc,WAAY,WACV,OAAOrc,KAAKm8C,kBAQdgD,MAAO,WAcL,OAbAn/C,KAAK4gB,SAAS5lB,OAAS,EACvBgF,KAAKq6C,gBAAkB,KACvBr6C,KAAKu6C,aAAe,KACpBv6C,KAAKo6C,gBAAkB,GACvBp6C,KAAKs6C,aAAe,GAChBt6C,KAAKo/C,oBACPp/C,KAAKygB,IAAI,WAAYzgB,KAAKq/C,sBAC1Br/C,KAAKs/C,gBAAkB,KACvBt/C,KAAKo/C,mBAAAA,GAEPp/C,KAAKi/C,aAAaj/C,KAAKm8C,kBACvBn8C,KAAKugB,KAAK,kBACVvgB,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAQTu/C,UAAW,WAGT,OADAv/C,KAAKw/C,aADgBx/C,KAAKm8C,iBACQn8C,KAAK4gB,UAChC5gB,MAaTi6C,eAAgB,WACdj6C,KAAKy/C,YAAc,EACnBz/C,KAAKu/C,aAUPx+B,iBAAkB,WAIhB,OAHK/gB,KAAKy/C,cACRz/C,KAAKy/C,YAAc1kC,EAAOkF,KAAKmZ,iBAAiBp5B,KAAKg6C,sBAEhDh6C,MAUTw+C,uBAAwB,WACtB,IAAI55B,EAAS,GAAKlI,EAAQ1c,KAAK0c,MAAOH,EAASvc,KAAKuc,OAChDmjC,EAAOt6B,EAAgBplB,KAAK46C,mBAMhC,OALAh2B,EAAO+6B,GAAKl7B,EAAe,CAAEjrB,EAAG,EAAGC,EAAG,GAAKimD,GAC3C96B,EAAOg7B,GAAKn7B,EAAe,CAAEjrB,EAAGkjB,EAAOjjB,EAAG8iB,GAAUmjC,GACpD96B,EAAOi7B,GAAK,IAAI9kC,EAAOuJ,MAAMM,EAAOg7B,GAAGpmD,EAAGorB,EAAO+6B,GAAGlmD,GACpDmrB,EAAOk7B,GAAK,IAAI/kC,EAAOuJ,MAAMM,EAAO+6B,GAAGnmD,EAAGorB,EAAOg7B,GAAGnmD,GACpDuG,KAAKi7C,UAAYr2B,EACVA,GAGTm7B,sBAAuB,WACjB//C,KAAKy/C,cACP1kC,EAAOkF,KAAKqa,gBAAgBt6B,KAAKy/C,aACjCz/C,KAAKy/C,YAAc,IAWvBD,aAAc,SAASpjC,EAAK+E,GAC1B,IAAIjU,EAAIlN,KAAK46C,kBAAmB9yB,EAAO9nB,KAAKsnC,SAC5CtnC,KAAK+/C,wBACL//C,KAAKw+C,yBACLx+C,KAAKi/C,aAAa7iC,GAClBpc,KAAKugB,KAAK,gBAAiB,CAAEnE,IAAKA,IAC9Bpc,KAAKwiB,QACPzH,EAAOkF,KAAKuJ,YAAYxpB,KAAMoc,GAEhCpc,KAAKggD,kBAAkB5jC,GAEvBA,EAAIyM,OAEJzM,EAAIyI,UAAU3X,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAC9ClN,KAAKigD,eAAe7jC,EAAK+E,GACzB/E,EAAI4M,WACChpB,KAAKy6C,sBAAwBz6C,KAAKu7C,aACrCv7C,KAAKkgD,aAAa9jC,GAEhBpc,KAAKwiB,QACPpG,EAAI4M,UAEFlB,IACFA,EAAK5L,OAASlc,KAEd8nB,EAAKq4B,cACLr4B,EAAKs4B,gBAAAA,EACLt4B,EAAKu4B,YAAY,CAAEC,aAAAA,IACnBtgD,KAAKugD,qBAAqBnkC,IAE5Bpc,KAAKwgD,eAAepkC,GAChBpc,KAAKy6C,sBAAwBz6C,KAAKu7C,aACpCv7C,KAAKkgD,aAAa9jC,GAEpBpc,KAAKugB,KAAK,eAAgB,CAAEnE,IAAKA,KAOnCmkC,qBAAsB,SAASnkC,GAC7B,IAAIlP,EAAIlN,KAAK46C,kBAAmB9yB,EAAO9nB,KAAKsnC,SAC5ClrB,EAAIyM,OACJzM,EAAIyI,UAAU3X,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAG9CkP,EAAIqkC,yBAA2B,iBAC/B34B,EAAKjD,UAAUzI,GACfA,EAAII,MAAM,EAAIsL,EAAK44B,MAAO,EAAI54B,EAAK64B,OACnCvkC,EAAIK,UAAUqL,EAAK84B,cAAe94B,EAAK+4B,mBAAoB/4B,EAAKg5B,mBAChE1kC,EAAI4M,WAQNi3B,eAAgB,SAAS7jC,EAAK+E,GAC5B,IAAIxmB,EAAGD,EACP,IAAKC,EAAI,EAAGD,EAAMymB,EAAQnmB,OAAQL,EAAID,IAAOC,EAC3CwmB,EAAQxmB,IAAMwmB,EAAQxmB,GAAGomD,OAAO3kC,IASpC4kC,2BAA4B,SAAS5kC,EAAK7E,GACxC,IAAI2I,EAAOlgB,KAAKuX,EAAW,SAAUD,EAAStX,KAAKuX,EAAW,SAC1DrK,EAAIlN,KAAK46C,kBAAmBqG,EAAWjhD,KAAKuX,EAAW,OAC3D,GAAK2I,GAAS5I,EAAd,CAGA,GAAI4I,EAAM,CACR9D,EAAIyM,OACJzM,EAAIsN,YACJtN,EAAI0M,OAAO,EAAG,GACd1M,EAAI8kC,OAAOlhD,KAAK0c,MAAO,GACvBN,EAAI8kC,OAAOlhD,KAAK0c,MAAO1c,KAAKuc,QAC5BH,EAAI8kC,OAAO,EAAGlhD,KAAKuc,QACnBH,EAAI+kC,YACJ/kC,EAAIglC,UAAYlhC,EAAK83B,OACjB93B,EAAK83B,OAAO57B,EAAKpc,MACjBkgB,EACA+gC,GACF7kC,EAAIyI,UAAU3X,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEhDkP,EAAIyI,UAAU,EAAG,EAAG,EAAG,EAAG3E,EAAK22B,SAAW,EAAG32B,EAAK42B,SAAW,GAC7D,IAAItpC,EAAI0S,EAAK62B,mBAAqB72B,EAAKq4B,iBACvC/qC,GAAK4O,EAAIyI,UAAUrX,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACnD4O,EAAI8D,OACJ9D,EAAI4M,UAEF1R,IACF8E,EAAIyM,OACAo4B,GACF7kC,EAAIyI,UAAU3X,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEhDoK,EAAOypC,OAAO3kC,GACdA,EAAI4M,aAQRg3B,kBAAmB,SAAS5jC,GAC1Bpc,KAAKghD,2BAA2B5kC,EAAK,eAOvCokC,eAAgB,SAASpkC,GACvBpc,KAAKghD,2BAA2B5kC,EAAK,YAQvCilC,UAAW,WACT,MAAO,CACLl8B,IAAKnlB,KAAKuc,OAAS,EACnB2I,KAAMllB,KAAK0c,MAAQ,IASvB4kC,cAAe,SAAUhqC,GACvB,OAAOtX,KAAKuhD,cAAcjqC,EAAQ,IAAIyD,EAAOuJ,MAAMtkB,KAAKqhD,YAAYn8B,KAAM5N,EAAOkqC,iBAAiB/nD,KASpGgoD,cAAe,SAAUnqC,GACvB,OAAOtX,KAAKuhD,cAAcjqC,EAAQ,IAAIyD,EAAOuJ,MAAMhN,EAAOkqC,iBAAiBhoD,EAAGwG,KAAKqhD,YAAYl8B,OASjGu8B,aAAc,SAASpqC,GACrB,IAAIqqC,EAAS3hD,KAAKqhD,YAElB,OAAOrhD,KAAKuhD,cAAcjqC,EAAQ,IAAIyD,EAAOuJ,MAAMq9B,EAAOz8B,KAAMy8B,EAAOx8B,OASzEy8B,qBAAsB,SAAStqC,GAC7B,IAAIuqC,EAAW7hD,KAAK8hD,cAEpB,OAAO9hD,KAAKuhD,cAAcjqC,EAAQuqC,IASpCE,sBAAuB,SAASzqC,GAC9B,IAAIuqC,EAAW7hD,KAAK8hD,cAEpB,OADA9hD,KAAKuhD,cAAcjqC,EAAQ,IAAIyD,EAAOuJ,MAAMu9B,EAASroD,EAAG8d,EAAOkqC,iBAAiB/nD,IACzEuG,MASTgiD,sBAAuB,SAAS1qC,GAC9B,IAAIuqC,EAAW7hD,KAAK8hD,cAEpB,OAAO9hD,KAAKuhD,cAAcjqC,EAAQ,IAAIyD,EAAOuJ,MAAMhN,EAAOkqC,iBAAiBhoD,EAAGqoD,EAASpoD,KAQzFqoD,YAAa,WACX,IAAIH,EAAS3hD,KAAKqhD,YACd3B,EAAOt6B,EAAgBplB,KAAK46C,mBAChC,OAAOn2B,EAAe,CAAEjrB,EAAGmoD,EAAOz8B,KAAMzrB,EAAGkoD,EAAOx8B,KAAOu6B,IAU3D6B,cAAe,SAASjqC,EAAQqqC,GAI9B,OAHArqC,EAAOowB,oBAAoBia,EAAQ,SAAU,UAC7CrqC,EAAOinC,YACPv+C,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAQTiiD,eAAgB,SAAU9K,GACxB,OAAOn3C,KAAKkiD,iBAAiB/K,IAQ/BD,SAAU,SAAUC,GAClB,OAAOn3C,KAAKmiD,gBAAgB,WAAYhL,IAQ1C+K,iBAAkB,SAAU/K,GAC1B,OAAOn3C,KAAKmiD,gBAAgB,mBAAoBhL,IAMlDgL,gBAAiB,SAAUnvB,EAAYmkB,GAErC,IAAI7P,EAAWtnC,KAAKsnC,SAAUnrC,EAAO,CACnCiV,QAAS2J,EAAO3J,QAChB+P,QAASnhB,KAAKoiD,WAAWpvB,EAAYmkB,IASvC,OAPI7P,IACFnrC,EAAKmrC,SAAWtnC,KAAKqiD,UAAUriD,KAAKsnC,SAAUtU,EAAYmkB,IAE5D/gC,EAAOja,EAAM6D,KAAKsiD,qBAAqBtvB,EAAYmkB,IAEnDp8B,EAAOkF,KAAKiI,uBAAuBloB,KAAM7D,EAAMg7C,GAExCh7C,GAMTimD,WAAY,SAASpvB,EAAYmkB,GAC/B,OAAOn3C,KAAK4gB,SAAS1J,QAAO,SAASI,GACnC,OAAQA,EAAOirC,qBACdxtC,KAAI,SAASyhC,GACd,OAAOx2C,KAAKqiD,UAAU7L,EAAUxjB,EAAYmkB,KAC3Cn3C,OAMLqiD,UAAW,SAAS7L,EAAUxjB,EAAYmkB,GACxC,IAAIqL,EAECxiD,KAAKq5C,uBACRmJ,EAAgBhM,EAAS6C,qBACzB7C,EAAS6C,sBAAAA,GAGX,IAAI/hC,EAASk/B,EAASxjB,GAAYmkB,GAIlC,OAHKn3C,KAAKq5C,uBACR7C,EAAS6C,qBAAuBmJ,GAE3BlrC,GAMTgrC,qBAAsB,SAAStvB,EAAYmkB,GACzC,IAAIh7C,EAAO,GAAKsmD,EAAUziD,KAAKq6C,gBAAiBqI,EAAU1iD,KAAKu6C,aAoB/D,OAlBIv6C,KAAKo6C,kBACPj+C,EAAKwmD,WAAa3iD,KAAKo6C,gBAAgBlD,SACnCl3C,KAAKo6C,gBAAgBlD,SAASC,GAC9Bn3C,KAAKo6C,iBAGPp6C,KAAKs6C,eACPn+C,EAAKumD,QAAU1iD,KAAKs6C,aAAapD,SAC7Bl3C,KAAKs6C,aAAapD,SAASC,GAC3Bn3C,KAAKs6C,cAEPmI,IAAYA,EAAQF,oBACtBpmD,EAAKk+C,gBAAkBr6C,KAAKqiD,UAAUI,EAASzvB,EAAYmkB,IAEzDuL,IAAYA,EAAQH,oBACtBpmD,EAAKo+C,aAAev6C,KAAKqiD,UAAUK,EAAS1vB,EAAYmkB,IAGnDh7C,GAUTymD,2BAAAA,EAuCAxL,MAAO,SAAS1hC,EAASsR,GACvBtR,IAAYA,EAAU,IACtBA,EAAQsR,QAAUA,EAClB,IAAIqwB,EAAS,GAkBb,OAhBAr3C,KAAK6iD,gBAAgBxL,EAAQ3hC,GAC7B1V,KAAK8iD,cAAczL,EAAQ3hC,GACvB1V,KAAKsnC,UACP+P,EAAO32C,KAAK,sBAAwBV,KAAKsnC,SAASyb,WAAa,UAEjE/iD,KAAKgjD,sBAAsB3L,EAAQ,cACnCr3C,KAAKijD,sBAAsB5L,EAAQ,kBAAmBrwB,GACtDhnB,KAAKkjD,eAAe7L,EAAQrwB,GACxBhnB,KAAKsnC,UACP+P,EAAO32C,KAAK,UAEdV,KAAKgjD,sBAAsB3L,EAAQ,WACnCr3C,KAAKijD,sBAAsB5L,EAAQ,eAAgBrwB,GAEnDqwB,EAAO32C,KAAK,UAEL22C,EAAO3xC,KAAK,KAMrBm9C,gBAAiB,SAASxL,EAAQ3hC,GAC5BA,EAAQytC,kBAGZ9L,EAAO32C,KACL,iCAAmCgV,EAAQ0tC,UAAY,QAAU,yBACjE,kDACA,0DAOJN,cAAe,SAASzL,EAAQ3hC,GAC9B,IAEIyoC,EAFAzhC,EAAQhH,EAAQgH,OAAS1c,KAAK0c,MAC9BH,EAAS7G,EAAQ6G,QAAUvc,KAAKuc,OAC3B8mC,EAAU,gBAAkBrjD,KAAK0c,MAAQ,IAAM1c,KAAKuc,OAAS,KAClEmQ,EAAsB3R,EAAOhV,OAAO2mB,oBAEpChX,EAAQ2tC,QACVA,EAAU,YACF3tC,EAAQ2tC,QAAQ7pD,EAAI,IACpBkc,EAAQ2tC,QAAQ5pD,EAAI,IACpBic,EAAQ2tC,QAAQ3mC,MAAQ,IACxBhH,EAAQ2tC,QAAQ9mC,OAAS,KAG7Bvc,KAAK4iD,4BAEPS,EAAU,YACFxoC,IAFRsjC,EAAMn+C,KAAK46C,mBAEU,GAAKuD,EAAI,GAAIzxB,GAAuB,IACjD7R,GAASsjC,EAAI,GAAKA,EAAI,GAAIzxB,GAAuB,IACjD7R,EAAQ7a,KAAK0c,MAAQyhC,EAAI,GAAIzxB,GAAuB,IACpD7R,EAAQ7a,KAAKuc,OAAS4hC,EAAI,GAAIzxB,GAAuB,MAIjE2qB,EAAO32C,KACL,QACA,sCACA,8CACA,iBACA,UAAWgc,EAAO,KAClB,WAAYH,EAAQ,KACpB8mC,EACA,0BACA,gCAAiCtoC,EAAO3J,QAAS,YACjD,WACApR,KAAKsjD,2BACLtjD,KAAKujD,6BACLvjD,KAAKwjD,wBAAwB9tC,GAC7B,cAIJ8tC,wBAAyB,SAAS9tC,GAChC,IAAI4xB,EAAWtnC,KAAKsnC,SACpB,OAAIA,GACFA,EAASyb,WAAa,YAAchoC,EAAOhV,OAAO48B,QAC1C,iBAAmB2E,EAASyb,WAAa,QAC/C/iD,KAAKsnC,SAASmc,cAAc/tC,EAAQsR,SACpC,iBAEG,IAOTu8B,2BAA4B,WAC1B,IAAI/7C,EAAQxH,KAeZ,MAda,CAAC,aAAc,WAAW+U,KAAI,SAASqL,GAC9C,IAAIF,EAAO1Y,EAAM4Y,EAAO,SACxB,GAAIF,GAAQA,EAAK83B,OAAQ,CACvB,IAAI0L,EAAkBl8C,EAAM4Y,EAAO,OAAQ+9B,EAAM32C,EAAMozC,kBAKvD,OAAO16B,EAAKk3B,MAJC,CACP16B,MAAOlV,EAAMkV,OAASgnC,EAAkBvF,EAAI,GAAK,GACjD5hC,OAAQ/U,EAAM+U,QAAUmnC,EAAkBvF,EAAI,GAAK,IAIvD,CAAE1G,oBAAqBiM,EAAkB3oC,EAAOkF,KAAKwM,YAAY0xB,GAAO,SAIpEz4C,KAAK,KAUrB49C,yBAA0B,WACxB,IAAiCt9C,EAAKgmB,EAClCxf,EAAOm3C,EAAKC,EAAiBC,EAAWlpD,EAAGD,EAD3C28C,EAAS,GAAIyM,EAAW,GAExB1lC,EAAYrD,EAAOqD,UAAW+C,EAAU,GAS5C,IAPAnhB,KAAK4gB,SAASjJ,SAAQ,SAAS5P,EAAIuP,GACjC6J,EAAQzgB,KAAK4W,GACTA,EAAOsJ,UACTtJ,EAAOsJ,SAASjJ,QAAQ5P,MAIvBpN,EAAI,EAAGD,EAAMymB,EAAQnmB,OAAQL,EAAID,EAAKC,IAGzC,GADAqxB,GADAhmB,EAAMmb,EAAQxmB,IACGqxB,YACiB,IAA9BhmB,EAAImF,KAAKvJ,QAAQ,UAAkBkiD,EAAS93B,IAAgB5N,EAAU4N,KAG1E83B,EAAS93B,IAAAA,EACJhmB,EAAI2uB,QAIT,IAAKivB,KADLp3C,EAAQxG,EAAI2uB,OAGV,IAAKkvB,KADLF,EAAMn3C,EAAMo3C,IAILE,EADL93B,EADQ23B,EAAIE,GACO73B,aACU5N,EAAU4N,KACrC83B,EAAS93B,IAAAA,GAMjB,IAAK,IAAItqB,KAAKoiD,EACZzM,GAAU,CACR,qBACA,uBAAyB31C,EAAG,OAC5B,mBAAqB0c,EAAU1c,GAAI,QACnC,WACAgE,KAAK,IAaT,OAVI2xC,IACFA,EAAS,CACP,4BACA,cACAA,EACA,MACA,cACA3xC,KAAK,KAGF2xC,GAMT6L,eAAgB,SAAS7L,EAAQrwB,GAC/B,IAAIwvB,EAAU77C,EAAGD,EAAKymB,EAAUnhB,KAAK4gB,SACrC,IAAKjmB,EAAI,EAAGD,EAAMymB,EAAQnmB,OAAQL,EAAID,EAAKC,KACzC67C,EAAWr1B,EAAQxmB,IACN4nD,mBAGbviD,KAAK+jD,cAAc1M,EAAQb,EAAUxvB,IAOzC+8B,cAAe,SAAS1M,EAAQb,EAAUxvB,GACxCqwB,EAAO32C,KAAK81C,EAASY,MAAMpwB,KAM7Bi8B,sBAAuB,SAAS5L,EAAQ9/B,EAAUyP,GAC5ChnB,KAAKuX,KAAcvX,KAAKuX,GAAUgrC,mBAAqBviD,KAAKuX,GAAU6/B,OACxEC,EAAO32C,KAAKV,KAAKuX,GAAU6/B,MAAMpwB,KAOrCg8B,sBAAuB,SAAS3L,EAAQ9/B,GACtC,IAAI2K,EAASliB,KAAKuX,EAAW,SAAwCysC,EAAahkD,KAAK0c,MACnFunC,EAAcjkD,KAAKuc,OACvB,GAAK2F,EAGL,GAAIA,EAAO81B,OAAQ,CACjB,IAAIM,EAASp2B,EAAOo2B,OAAQoH,EAAO3kC,EAAOkF,KAAKmF,gBANJplB,KAAK46C,mBAO5CnD,EADgFz3C,KAAKuX,EAAW,OAC3DwD,EAAOkF,KAAKwM,YAAYizB,GAAQ,GACzErI,EAAO32C,KACL,oBAAsB+2C,EAAsB,cAAeuM,EAAa,EAAG,IAAKC,EAAc,EAAG,KACjG,OAAQ/hC,EAAO20B,QAAUmN,EAAa,EACtC,QAAS9hC,EAAO40B,QAAUmN,EAAc,EAAG,KAC3C,UACY,aAAX3L,GAAoC,cAAXA,EACtBp2B,EAAO9f,OAAOsa,MACdsnC,EACJ,aACY,aAAX1L,GAAoC,cAAXA,EACtBp2B,EAAO9f,OAAOma,OACd0nC,EACJ,sBAAwB/hC,EAAOzQ,GAAK,KACpC,mBAIF4lC,EAAO32C,KACL,gDACA,SAAUwhB,EAAQ,IAClB,eAaNgiC,WAAY,SAAU5sC,GACpB,IAAKA,EACH,OAAOtX,KAET,IACIrF,EAAGqL,EAAKm+C,EADRC,EAAkBpkD,KAAKq+C,cAE3B,GAAI/mC,IAAW8sC,GAAmC,oBAAhB9sC,EAAOnM,KAEvC,IAAKxQ,GADLwpD,EAAOC,EAAgBxjC,UACT5lB,OAAQL,KAEpB+oB,EAAgB1jB,KAAK4gB,SADrB5a,EAAMm+C,EAAKxpD,IAEXqF,KAAK4gB,SAAS9d,QAAQkD,QAIxB0d,EAAgB1jB,KAAK4gB,SAAUtJ,GAC/BtX,KAAK4gB,SAAS9d,QAAQwU,GAGxB,OADAtX,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAUTqkD,aAAc,SAAU/sC,GACtB,IAAKA,EACH,OAAOtX,KAET,IACIrF,EAAGqL,EAAKm+C,EADRC,EAAkBpkD,KAAKq+C,cAE3B,GAAI/mC,IAAW8sC,GAAmC,oBAAhB9sC,EAAOnM,KAEvC,IADAg5C,EAAOC,EAAgBxjC,SAClBjmB,EAAI,EAAGA,EAAIwpD,EAAKnpD,OAAQL,IAE3B+oB,EAAgB1jB,KAAK4gB,SADrB5a,EAAMm+C,EAAKxpD,IAEXqF,KAAK4gB,SAASlgB,KAAKsF,QAIrB0d,EAAgB1jB,KAAK4gB,SAAUtJ,GAC/BtX,KAAK4gB,SAASlgB,KAAK4W,GAGrB,OADAtX,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAcTskD,cAAe,SAAUhtC,EAAQitC,GAC/B,IAAKjtC,EACH,OAAOtX,KAET,IACIrF,EAAGqL,EAAK2d,EAAK6gC,EAAQL,EADrBC,EAAkBpkD,KAAKq+C,cACIoG,EAAY,EAE3C,GAAIntC,IAAW8sC,GAAmC,oBAAhB9sC,EAAOnM,KAEvC,IADAg5C,EAAOC,EAAgBxjC,SAClBjmB,EAAI,EAAGA,EAAIwpD,EAAKnpD,OAAQL,KAE3BgpB,EAAM3jB,KAAK4gB,SAAShf,QADpBoE,EAAMm+C,EAAKxpD,KAED,EAAI8pD,IACZD,EAAS7gC,EAAM,EACfD,EAAgB1jB,KAAK4gB,SAAU5a,GAC/BhG,KAAK4gB,SAAShgB,OAAO4jD,EAAQ,EAAGx+C,IAElCy+C,SAKU,KADZ9gC,EAAM3jB,KAAK4gB,SAAShf,QAAQ0V,MAG1BktC,EAASxkD,KAAK0kD,mBAAmBptC,EAAQqM,EAAK4gC,GAC9C7gC,EAAgB1jB,KAAK4gB,SAAUtJ,GAC/BtX,KAAK4gB,SAAShgB,OAAO4jD,EAAQ,EAAGltC,IAIpC,OADAtX,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAMT0kD,mBAAoB,SAASptC,EAAQqM,EAAK4gC,GACxC,IAAIC,EAAQ7pD,EAEZ,GAAI4pD,GAIF,IAHAC,EAAS7gC,EAGJhpB,EAAIgpB,EAAM,EAAGhpB,GAAK,IAAKA,EAM1B,GAJqB2c,EAAOqtC,qBAAqB3kD,KAAK4gB,SAASjmB,KAC1C2c,EAAOstC,wBAAwB5kD,KAAK4gB,SAASjmB,KAC7CqF,KAAK4gB,SAASjmB,GAAGiqD,wBAAwBttC,GAE1C,CAClBktC,EAAS7pD,EACT,YAKJ6pD,EAAS7gC,EAAM,EAGjB,OAAO6gC,GAcTK,aAAc,SAAUvtC,EAAQitC,GAC9B,IAAKjtC,EACH,OAAOtX,KAET,IACIrF,EAAGqL,EAAK2d,EAAK6gC,EAAQL,EADrBC,EAAkBpkD,KAAKq+C,cACIoG,EAAY,EAE3C,GAAIntC,IAAW8sC,GAAmC,oBAAhB9sC,EAAOnM,KAEvC,IAAKxQ,GADLwpD,EAAOC,EAAgBxjC,UACT5lB,OAAQL,MAEpBgpB,EAAM3jB,KAAK4gB,SAAShf,QADpBoE,EAAMm+C,EAAKxpD,KAEDqF,KAAK4gB,SAAS5lB,OAAS,EAAIypD,IACnCD,EAAS7gC,EAAM,EACfD,EAAgB1jB,KAAK4gB,SAAU5a,GAC/BhG,KAAK4gB,SAAShgB,OAAO4jD,EAAQ,EAAGx+C,IAElCy+C,SAIF9gC,EAAM3jB,KAAK4gB,SAAShf,QAAQ0V,MAChBtX,KAAK4gB,SAAS5lB,OAAS,IAEjCwpD,EAASxkD,KAAK8kD,mBAAmBxtC,EAAQqM,EAAK4gC,GAC9C7gC,EAAgB1jB,KAAK4gB,SAAUtJ,GAC/BtX,KAAK4gB,SAAShgB,OAAO4jD,EAAQ,EAAGltC,IAIpC,OADAtX,KAAK8gB,mBAAqB9gB,KAAK+gB,mBACxB/gB,MAMT8kD,mBAAoB,SAASxtC,EAAQqM,EAAK4gC,GACxC,IAAIC,EAAQ7pD,EAAGD,EAEf,GAAI6pD,GAIF,IAHAC,EAAS7gC,EAGJhpB,EAAIgpB,EAAM,EAAGjpB,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,IAAOC,EAMvD,GAJqB2c,EAAOqtC,qBAAqB3kD,KAAK4gB,SAASjmB,KAC1C2c,EAAOstC,wBAAwB5kD,KAAK4gB,SAASjmB,KAC7CqF,KAAK4gB,SAASjmB,GAAGiqD,wBAAwBttC,GAE1C,CAClBktC,EAAS7pD,EACT,YAKJ6pD,EAAS7gC,EAAM,EAGjB,OAAO6gC,GAUT17B,OAAQ,SAAUxR,EAAQ2J,GAGxB,OAFAyC,EAAgB1jB,KAAK4gB,SAAUtJ,GAC/BtX,KAAK4gB,SAAShgB,OAAOqgB,EAAO,EAAG3J,GACxBtX,KAAK8gB,mBAAqB9gB,KAAK+gB,oBAQxCgkC,QAAS,WAsBP,OApBI/kD,KAAKy/C,cACP1kC,EAAOkF,KAAKqa,gBAAgBt6B,KAAKy/C,aACjCz/C,KAAKy/C,YAAc,GAErBz/C,KAAKshB,eAAc,SAAShK,GAC1BA,EAAOytC,SAAWztC,EAAOytC,aAE3B/kD,KAAK4gB,SAAW,GACZ5gB,KAAKq6C,iBAAmBr6C,KAAKq6C,gBAAgB0K,SAC/C/kD,KAAKq6C,gBAAgB0K,UAEvB/kD,KAAKq6C,gBAAkB,KACnBr6C,KAAKu6C,cAAgBv6C,KAAKu6C,aAAawK,SACzC/kD,KAAKu6C,aAAawK,UAEpB/kD,KAAKu6C,aAAe,KACpBv6C,KAAKs/C,gBAAkB,KACvBt/C,KAAKm8C,iBAAmB,KACxBphC,EAAOkF,KAAK+X,iBAAiBh4B,KAAKk8C,eAClCl8C,KAAKk8C,mBAAAA,EACEl8C,MAOTH,SAAU,WACR,MAAO,oBAAsBG,KAAK2hB,aAAe,iBACxB3hB,KAAK4gB,SAAS5lB,OAAS,SAIpDob,EAAO2E,EAAO++B,aAAa50C,UAAW6V,EAAO1C,YAC7CjC,EAAO2E,EAAO++B,aAAa50C,UAAW6V,EAAO4F,YAC7CvK,EAAO2E,EAAO++B,aAAa50C,UAAW6V,EAAOiqC,iBAE7C5uC,EAAO2E,EAAO++B,aAAgD,CAO5DmL,WAAY,yCAWZC,SAAU,SAAUlyB,GAClB,IAAIqC,EAAKpM,IAET,IAAKoM,IAAOA,EAAGhZ,WACb,OAAO,KAGT,IAAID,EAAMiZ,EAAGhZ,WAAW,MACxB,IAAKD,EACH,OAAO,KAGT,OAAQ4W,GAEN,IAAK,cACH,YAAA,IAAc5W,EAAI+oC,YAEpB,QACE,OAAO,SAoBfpqC,EAAO++B,aAAa50C,UAAUkgD,OAASrqC,EAAO++B,aAAa50C,UAAUgyC,SAEjEn8B,EAAO8C,eACT9C,EAAO++B,aAAa50C,UAAUmgD,gBAAkB,WAC9C,IAAIxtB,EAAOD,EAAc53B,KAAKk8C,eAC9B,OAAOrkB,GAAQA,EAAKwtB,mBAEtBtqC,EAAO++B,aAAa50C,UAAUogD,iBAAmB,SAAShqB,GACxD,IAAIzD,EAAOD,EAAc53B,KAAKk8C,eAC9B,OAAOrkB,GAAQA,EAAKytB,iBAAiBhqB,MA51D3C,GAu2DAvgB,EAAOwqC,UAAYxqC,EAAOkF,KAAKkT,YAAqD,CAOlF8H,MAAO,eAOPve,MAAO,EASP88B,OAAQ,KAORgM,cAAe,QAOfC,eAAgB,QAOhBC,iBAA0B,GAO1BC,gBAAiB,KAQjBC,UAAW,SAASlwC,GAElB,OADA1V,KAAKw5C,OAAS,IAAIz+B,EAAOm+B,OAAOxjC,GACzB1V,MAOT89C,gBAAiB,WACf,IAAI1hC,EAAMpc,KAAKkc,OAAOmgC,WACtBjgC,EAAIypC,YAAc7lD,KAAKi7B,MACvB7e,EAAI0pC,UAAY9lD,KAAK0c,MACrBN,EAAI2pC,QAAU/lD,KAAKwlD,cACnBppC,EAAI4pC,WAAahmD,KAAK0lD,iBACtBtpC,EAAI6pC,SAAWjmD,KAAKylD,eAChB1qC,EAAO++B,aAAaoL,SAAS,gBAC/B9oC,EAAI+oC,YAAYnlD,KAAK2lD,iBAAmB,KAS5CO,kBAAmB,SAAS9pC,GAC1B,IAAIlP,EAAIlN,KAAKkc,OAAO0+B,kBACpBx+B,EAAIyM,OACJzM,EAAIyI,UAAU3X,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAOhDi5C,WAAY,WACV,GAAKnmD,KAAKw5C,OAAV,CAIA,IAAIt9B,EAASlc,KAAKkc,OACds9B,EAASx5C,KAAKw5C,OACdp9B,EAAMF,EAAOmgC,WACb5nB,EAAOvY,EAAO+hC,UACd/hC,GAAUA,EAAO4/B,qBACnBrnB,GAAQ1Z,EAAO+D,kBAGjB1C,EAAIgqC,YAAc5M,EAAOve,MACzB7e,EAAIiqC,WAAa7M,EAAOL,KAAO1kB,EAC/BrY,EAAIkqC,cAAgB9M,EAAO3C,QAAUpiB,EACrCrY,EAAImqC,cAAgB/M,EAAO1C,QAAUriB,IAGvC+xB,gBAAiB,WAEf,OADY,IAAIzrC,EAAO4f,MAAM36B,KAAKi7B,OACrBkJ,WAAa,KAAOnkC,KAAKw5C,QAOxCiN,aAAc,WACZ,IAAIrqC,EAAMpc,KAAKkc,OAAOmgC,WAEtBjgC,EAAIgqC,YAAc,GAClBhqC,EAAIiqC,WAAajqC,EAAIkqC,cAAgBlqC,EAAImqC,cAAgB,KAW3DxrC,EAAO2rC,YAAc3rC,EAAOkF,KAAKkT,YAAYpY,EAAOwqC,UAAsD,CAOxGoB,SAAU,GAOVvzB,WAAY,SAASlX,GACnBlc,KAAKkc,OAASA,EACdlc,KAAK4mD,QAAU,IAOjBC,aAAc,SAAUzqC,EAAK0qC,EAAIC,GAC/B,IAAIC,EAAWF,EAAGle,aAAame,GAE/B,OADA3qC,EAAI6qC,iBAAiBH,EAAGttD,EAAGstD,EAAGrtD,EAAGutD,EAASxtD,EAAGwtD,EAASvtD,GAC/CutD,GAOTE,YAAa,SAASC,EAASzxC,GACxB1V,KAAKkc,OAAOkrC,aAAa1xC,EAAQjS,KAGtCzD,KAAKqnD,mBAAmBF,GAGxBnnD,KAAKsnD,oBAAoBH,GACzBnnD,KAAKunD,YAOPC,YAAa,SAASL,EAASzxC,GAC7B,GAAK1V,KAAKkc,OAAOkrC,aAAa1xC,EAAQjS,IAGlCzD,KAAKsnD,oBAAoBH,IAAYnnD,KAAK4mD,QAAQ5rD,OAAS,EAC7D,GAAIgF,KAAKwmD,kBAGPxmD,KAAKkc,OAAO+iC,aAAaj/C,KAAKkc,OAAOmgC,YACrCr8C,KAAKunD,cAEF,CACH,IAAI3iC,EAAS5kB,KAAK4mD,QAAS5rD,EAAS4pB,EAAO5pB,OAAQohB,EAAMpc,KAAKkc,OAAOmgC,WAErEr8C,KAAKkmD,kBAAkB9pC,GACnBpc,KAAKynD,SACPrrC,EAAIsN,YACJtN,EAAI0M,OAAO9oB,KAAKynD,OAAOjuD,EAAGwG,KAAKynD,OAAOhuD,IAExCuG,KAAKynD,OAASznD,KAAK6mD,aAAazqC,EAAKwI,EAAO5pB,EAAS,GAAI4pB,EAAO5pB,EAAS,IAAA,GACzEohB,EAAIshB,SACJthB,EAAI4M,YAQV0+B,UAAW,SAAShyC,GAClB,OAAK1V,KAAKkc,OAAOkrC,aAAa1xC,EAAQjS,KAGtCzD,KAAKynD,YAAAA,EACLznD,KAAK2nD,uBAAAA,IAQPN,mBAAoB,SAASF,GAE3B,IAAIzgD,EAAI,IAAIqU,EAAOuJ,MAAM6iC,EAAQ3tD,EAAG2tD,EAAQ1tD,GAE5CuG,KAAK4nD,SACL5nD,KAAK6nD,UAAUnhD,GACf1G,KAAKkc,OAAOmgC,WAAWvzB,OAAOpiB,EAAElN,EAAGkN,EAAEjN,IAOvCouD,UAAW,SAAS1jC,GAClB,QAAInkB,KAAK4mD,QAAQ5rD,OAAS,GAAKmpB,EAAMkkB,GAAGroC,KAAK4mD,QAAQ5mD,KAAK4mD,QAAQ5rD,OAAS,MAG3EgF,KAAK4mD,QAAQlmD,KAAKyjB,GACX,KAOTyjC,OAAQ,WACN5nD,KAAK4mD,QAAU,GACf5mD,KAAK89C,kBACL99C,KAAKmmD,cAOPmB,oBAAqB,SAASH,GAC5B,IAAIW,EAAe,IAAI/sC,EAAOuJ,MAAM6iC,EAAQ3tD,EAAG2tD,EAAQ1tD,GACvD,OAAOuG,KAAK6nD,UAAUC,IAOxBP,QAAS,WACP,IAAmC5sD,EAAGD,EAAlC0hB,EAAOpc,KAAKkc,OAAOmgC,WACnByK,EAAK9mD,KAAK4mD,QAAQ,GAClBG,EAAK/mD,KAAK4mD,QAAQ,GAQtB,GANA5mD,KAAKkmD,kBAAkB9pC,GACvBA,EAAIsN,YAKwB,IAAxB1pB,KAAK4mD,QAAQ5rD,QAAgB8rD,EAAGttD,IAAMutD,EAAGvtD,GAAKstD,EAAGrtD,IAAMstD,EAAGttD,EAAG,CAC/D,IAAIijB,EAAQ1c,KAAK0c,MAAQ,IACzBoqC,EAAK,IAAI/rC,EAAOuJ,MAAMwiC,EAAGttD,EAAGstD,EAAGrtD,GAC/BstD,EAAK,IAAIhsC,EAAOuJ,MAAMyiC,EAAGvtD,EAAGutD,EAAGttD,GAC/BqtD,EAAGttD,GAAKkjB,EACRqqC,EAAGvtD,GAAKkjB,EAIV,IAFAN,EAAI0M,OAAOg+B,EAAGttD,EAAGstD,EAAGrtD,GAEfkB,EAAI,EAAGD,EAAMsF,KAAK4mD,QAAQ5rD,OAAQL,EAAID,EAAKC,IAG9CqF,KAAK6mD,aAAazqC,EAAK0qC,EAAIC,GAC3BD,EAAK9mD,KAAK4mD,QAAQjsD,GAClBosD,EAAK/mD,KAAK4mD,QAAQjsD,EAAI,GAKxByhB,EAAI8kC,OAAO4F,EAAGttD,EAAGstD,EAAGrtD,GACpB2iB,EAAIshB,SACJthB,EAAI4M,WAQN++B,uBAAwB,SAASnjC,GAC/B,IAAejqB,EAAXmtB,EAAO,GAAOpL,EAAQ1c,KAAK0c,MAAQ,IACnCoqC,EAAK,IAAI/rC,EAAOuJ,MAAMM,EAAO,GAAGprB,EAAGorB,EAAO,GAAGnrB,GAC7CstD,EAAK,IAAIhsC,EAAOuJ,MAAMM,EAAO,GAAGprB,EAAGorB,EAAO,GAAGnrB,GAC7CiB,EAAMkqB,EAAO5pB,OAAQgtD,EAAY,EAAGC,EAAY,EAAGC,EAAaxtD,EAAM,EAO1E,IALIwtD,IACFF,EAAYpjC,EAAO,GAAGprB,EAAIutD,EAAGvtD,GAAK,EAAIorB,EAAO,GAAGprB,IAAMutD,EAAGvtD,EAAI,EAAI,EACjEyuD,EAAYrjC,EAAO,GAAGnrB,EAAIstD,EAAGttD,GAAK,EAAImrB,EAAO,GAAGnrB,IAAMstD,EAAGttD,EAAI,EAAI,GAEnEquB,EAAKpnB,KAAK,KAAMomD,EAAGttD,EAAIwuD,EAAYtrC,EAAO,IAAKoqC,EAAGrtD,EAAIwuD,EAAYvrC,EAAO,KACpE/hB,EAAI,EAAGA,EAAID,EAAKC,IAAK,CACxB,IAAKmsD,EAAGze,GAAG0e,GAAK,CACd,IAAIC,EAAWF,EAAGle,aAAame,GAI/Bj/B,EAAKpnB,KAAK,KAAMomD,EAAGttD,EAAG,IAAKstD,EAAGrtD,EAAG,IAAKutD,EAASxtD,EAAG,IAAKwtD,EAASvtD,EAAG,KAErEqtD,EAAKliC,EAAOjqB,GACPA,EAAI,EAAKiqB,EAAO5pB,SACnB+rD,EAAKniC,EAAOjqB,EAAI,IAQpB,OALIutD,IACFF,EAAYlB,EAAGttD,EAAIorB,EAAOjqB,EAAI,GAAGnB,EAAI,EAAIstD,EAAGttD,IAAMorB,EAAOjqB,EAAI,GAAGnB,EAAI,GAAK,EACzEyuD,EAAYnB,EAAGrtD,EAAImrB,EAAOjqB,EAAI,GAAGlB,EAAI,EAAIqtD,EAAGrtD,IAAMmrB,EAAOjqB,EAAI,GAAGlB,EAAI,GAAK,GAE3EquB,EAAKpnB,KAAK,KAAMomD,EAAGttD,EAAIwuD,EAAYtrC,EAAO,IAAKoqC,EAAGrtD,EAAIwuD,EAAYvrC,GAC3DoL,GAQTqgC,WAAY,SAASC,GACnB,IAAItgC,EAAO,IAAI/M,EAAOstC,KAAKD,EAAU,CACnCloC,KAAM,KACNwd,OAAQ19B,KAAKi7B,MACbqtB,YAAatoD,KAAK0c,MAClB8oC,cAAexlD,KAAKwlD,cACpBE,iBAAkB1lD,KAAK0lD,iBACvBD,eAAgBzlD,KAAKylD,eACrBE,gBAAiB3lD,KAAK2lD,kBAOxB,OALI3lD,KAAKw5C,SACPx5C,KAAKw5C,OAAOJ,cAAAA,EACZtxB,EAAK89B,UAAU5lD,KAAKw5C,SAGf1xB,GAMTygC,eAAgB,SAAS3jC,EAAQ4jC,GAC/B,GAAI5jC,EAAO5pB,QAAU,EACnB,OAAO4pB,EAET,IACIjqB,EADA85B,EAAOz0B,KAAKkc,OAAO+hC,UAAWwK,EAAmBzlC,KAAKE,IAAIslC,EAAW/zB,EAAM,GACxE1oB,EAAI6Y,EAAO5pB,OAAS,EAAG0tD,EAAY9jC,EAAO,GAAI+jC,EAAY,CAACD,GAElE,IAAK/tD,EAAI,EAAGA,EAAIoR,EAAGpR,IACLqoB,KAAKE,IAAIwlC,EAAUlvD,EAAIorB,EAAOjqB,GAAGnB,EAAG,GAAKwpB,KAAKE,IAAIwlC,EAAUjvD,EAAImrB,EAAOjqB,GAAGlB,EAAG,IACxEgvD,GAEfE,EAAUjoD,KADVgoD,EAAY9jC,EAAOjqB,IAOvB,OAHyB,IAArBguD,EAAU3tD,QACZ2tD,EAAUjoD,KAAK,IAAIqa,EAAOuJ,MAAMqkC,EAAU,GAAGnvD,EAAGmvD,EAAU,GAAGlvD,IAExDkvD,GAQThB,oBAAqB,WACT3nD,KAAKkc,OAAOmgC,WAClB8E,YACAnhD,KAAK2mD,WACP3mD,KAAK4mD,QAAU5mD,KAAKuoD,eAAevoD,KAAK4mD,QAAS5mD,KAAK2mD,WAExD,IAAIyB,EAAWpoD,KAAK+nD,uBAAuB/nD,KAAK4mD,SAASlhD,KAAK,IAC9D,GAAiB,0BAAb0iD,EAAJ,CASA,IAAItgC,EAAO9nB,KAAKmoD,WAAWC,GAC3BpoD,KAAKkc,OAAO+iC,aAAaj/C,KAAKkc,OAAOmgC,YACrCr8C,KAAKkc,OAAOnU,IAAI+f,GAChB9nB,KAAKkc,OAAO6E,mBACZ+G,EAAKy2B,YACLv+C,KAAKymD,eAILzmD,KAAKkc,OAAOqE,KAAK,eAAgB,CAAEuH,KAAMA,SAbvC9nB,KAAKkc,OAAO6E,sBAuBpBhG,EAAO6tC,YAAc7tC,EAAOkF,KAAKkT,YAAYpY,EAAOwqC,UAAsD,CAOxG7oC,MAAO,GAOP0W,WAAY,SAASlX,GACnBlc,KAAKkc,OAASA,EACdlc,KAAK4kB,OAAS,IAOhBikC,QAAS,SAAS1B,GAChB,IAAIhjC,EAAQnkB,KAAK8oD,SAAS3B,GACtB/qC,EAAMpc,KAAKkc,OAAOmgC,WACtBr8C,KAAKkmD,kBAAkB9pC,GACvBpc,KAAK+oD,IAAI3sC,EAAK+H,GACd/H,EAAI4M,WAGN+/B,IAAK,SAAS3sC,EAAK+H,GACjB/H,EAAIglC,UAAYj9B,EAAMjE,KACtB9D,EAAIsN,YACJtN,EAAI4sC,IAAI7kC,EAAM3qB,EAAG2qB,EAAM1qB,EAAG0qB,EAAM8kC,OAAQ,EAAa,EAAVjmC,KAAKI,IAAAA,GAChDhH,EAAI+kC,YACJ/kC,EAAI8D,QAMNgnC,YAAa,SAASC,GACpBnnD,KAAK4kB,OAAO5pB,OAAS,EACrBgF,KAAKkc,OAAO+iC,aAAaj/C,KAAKkc,OAAOmgC,YACrCr8C,KAAKmmD,aACLnmD,KAAK6oD,QAAQ1B,IAOfI,QAAS,WACP,IAAmC5sD,EAAGD,EAAlC0hB,EAAOpc,KAAKkc,OAAOmgC,WACnBz3B,EAAS5kB,KAAK4kB,OAElB,IADA5kB,KAAKkmD,kBAAkB9pC,GAClBzhB,EAAI,EAAGD,EAAMkqB,EAAO5pB,OAAQL,EAAID,EAAKC,IACxCqF,KAAK+oD,IAAI3sC,EAAKwI,EAAOjqB,IAEvByhB,EAAI4M,WAONw+B,YAAa,SAASL,GAChBnnD,KAAKwmD,mBACPxmD,KAAKkc,OAAO+iC,aAAaj/C,KAAKkc,OAAOmgC,YACrCr8C,KAAK8oD,SAAS3B,GACdnnD,KAAKunD,WAGLvnD,KAAK6oD,QAAQ1B,IAOjBO,UAAW,WACT,IAA+D/sD,EAAGD,EAA9DwuD,EAA4BlpD,KAAKkc,OAAO4E,kBAC5C9gB,KAAKkc,OAAO4E,mBAAAA,EAEZ,IAAIqoC,EAAU,GAEd,IAAKxuD,EAAI,EAAGD,EAAMsF,KAAK4kB,OAAO5pB,OAAQL,EAAID,EAAKC,IAAK,CAClD,IAAIwpB,EAAQnkB,KAAK4kB,OAAOjqB,GACpByuD,EAAS,IAAIruC,EAAOsuC,OAAO,CACzBJ,OAAQ9kC,EAAM8kC,OACd/jC,KAAMf,EAAM3qB,EACZ2rB,IAAKhB,EAAM1qB,EACX6vD,QAAS,SACTC,QAAS,SACTrpC,KAAMiE,EAAMjE,OAGlBlgB,KAAKw5C,QAAU4P,EAAOxD,UAAU5lD,KAAKw5C,QAErC2P,EAAQzoD,KAAK0oD,GAEf,IAAI9K,EAAQ,IAAIvjC,EAAOiN,MAAMmhC,GAC7B7K,EAAMpiC,OAASlc,KAAKkc,OAEpBlc,KAAKkc,OAAOnU,IAAIu2C,GAChBt+C,KAAKkc,OAAOqE,KAAK,eAAgB,CAAEuH,KAAMw2B,IAEzCt+C,KAAKkc,OAAO+iC,aAAaj/C,KAAKkc,OAAOmgC,YACrCr8C,KAAKymD,eACLzmD,KAAKkc,OAAO4E,kBAAoBooC,EAChClpD,KAAKkc,OAAO6E,oBAOd+nC,SAAU,SAAS3B,GACjB,IAAIW,EAAe,IAAI/sC,EAAOuJ,MAAM6iC,EAAQ3tD,EAAG2tD,EAAQ1tD,GAEnD+vD,EAAezuC,EAAOkF,KAAK2D,aACzBZ,KAAKvI,IAAI,EAAGza,KAAK0c,MAAQ,IAAK1c,KAAK0c,MAAQ,IAAM,EAEnD+sC,EAAc,IAAI1uC,EAAO4f,MAAM36B,KAAKi7B,OACjCiJ,SAASnpB,EAAOkF,KAAK2D,aAAa,EAAG,KAAO,KAC5CwgB,SAOP,OALA0jB,EAAamB,OAASO,EACtB1B,EAAa5nC,KAAOupC,EAEpBzpD,KAAK4kB,OAAOlkB,KAAKonD,GAEVA,KASX/sC,EAAO2uC,WAAa3uC,EAAOkF,KAAKkT,YAAapY,EAAOwqC,UAAqD,CAOvG7oC,MAAoB,GAOpBitC,QAAoB,GAOpBC,SAAoB,EAOpBC,iBAAoB,EAOpBC,eAAAA,EAOAC,qBAAAA,EAOA32B,WAAY,SAASlX,GACnBlc,KAAKkc,OAASA,EACdlc,KAAKgqD,YAAc,IAOrB9C,YAAa,SAASC,GACpBnnD,KAAKgqD,YAAYhvD,OAAS,EAC1BgF,KAAKkc,OAAO+iC,aAAaj/C,KAAKkc,OAAOmgC,YACrCr8C,KAAKmmD,aAELnmD,KAAKiqD,cAAc9C,GACnBnnD,KAAK+gD,OAAO/gD,KAAKkqD,mBAOnB1C,YAAa,SAASL,GACpBnnD,KAAKiqD,cAAc9C,GACnBnnD,KAAK+gD,OAAO/gD,KAAKkqD,mBAMnBxC,UAAW,WACT,IAAIwB,EAA4BlpD,KAAKkc,OAAO4E,kBAC5C9gB,KAAKkc,OAAO4E,mBAAAA,EAIZ,IAFA,IAAIqpC,EAAQ,GAEHxvD,EAAI,EAAGyvD,EAAOpqD,KAAKgqD,YAAYhvD,OAAQL,EAAIyvD,EAAMzvD,IAGxD,IAFA,IAAI0vD,EAAarqD,KAAKgqD,YAAYrvD,GAEzB+G,EAAI,EAAG8uB,EAAO65B,EAAWrvD,OAAQ0G,EAAI8uB,EAAM9uB,IAAK,CAEvD,IAAI4oD,EAAO,IAAIvvC,EAAOwvC,KAAK,CACzB7tC,MAAO2tC,EAAW3oD,GAAGgb,MACrBH,OAAQ8tC,EAAW3oD,GAAGgb,MACtBwI,KAAMmlC,EAAW3oD,GAAGlI,EAAI,EACxB2rB,IAAKklC,EAAW3oD,GAAGjI,EAAI,EACvB6vD,QAAS,SACTC,QAAS,SACTrpC,KAAMlgB,KAAKi7B,QAEbkvB,EAAMzpD,KAAK4pD,GAIXtqD,KAAK+pD,sBACPI,EAAQnqD,KAAKwqD,mBAAmBL,IAGlC,IAAI7L,EAAQ,IAAIvjC,EAAOiN,MAAMmiC,GAC7BnqD,KAAKw5C,QAAU8E,EAAMsH,UAAU5lD,KAAKw5C,QACpCx5C,KAAKkc,OAAOnU,IAAIu2C,GAChBt+C,KAAKkc,OAAOqE,KAAK,eAAgB,CAAEuH,KAAMw2B,IAEzCt+C,KAAKkc,OAAO+iC,aAAaj/C,KAAKkc,OAAOmgC,YACrCr8C,KAAKymD,eACLzmD,KAAKkc,OAAO4E,kBAAoBooC,EAChClpD,KAAKkc,OAAO6E,oBAOdypC,mBAAoB,SAASL,GAG3B,IAAuBjuD,EAAKvB,EAAGD,EAA3B+vD,EAAc,GAElB,IAAK9vD,EAAI,EAAGD,EAAMyvD,EAAMnvD,OAAQL,EAAID,EAAKC,IAElC8vD,EADLvuD,EAAMiuD,EAAMxvD,GAAGuqB,KAAO,GAAKilC,EAAMxvD,GAAGwqB,OAElCslC,EAAYvuD,GAAOiuD,EAAMxvD,IAG7B,IAAI+vD,EAAmB,GACvB,IAAKxuD,KAAOuuD,EACVC,EAAiBhqD,KAAK+pD,EAAYvuD,IAGpC,OAAOwuD,GAMT3J,OAAQ,SAASsJ,GACf,IAAkC1vD,EAAGD,EAAjC0hB,EAAMpc,KAAKkc,OAAOmgC,WAKtB,IAJAjgC,EAAIglC,UAAYphD,KAAKi7B,MAErBj7B,KAAKkmD,kBAAkB9pC,GAElBzhB,EAAI,EAAGD,EAAM2vD,EAAWrvD,OAAQL,EAAID,EAAKC,IAAK,CACjD,IAAIwpB,EAAQkmC,EAAW1vD,QAAAA,IACZwpB,EAAMkQ,UACfjY,EAAIuuC,YAAcxmC,EAAMkQ,SAE1BjY,EAAIwuC,SAASzmC,EAAM3qB,EAAG2qB,EAAM1qB,EAAG0qB,EAAMzH,MAAOyH,EAAMzH,OAEpDN,EAAI4M,WAMNu+B,QAAS,WACP,IAAkC5sD,EAAGyvD,EAAjChuC,EAAMpc,KAAKkc,OAAOmgC,WAKtB,IAJAjgC,EAAIglC,UAAYphD,KAAKi7B,MAErBj7B,KAAKkmD,kBAAkB9pC,GAElBzhB,EAAI,EAAGyvD,EAAOpqD,KAAKgqD,YAAYhvD,OAAQL,EAAIyvD,EAAMzvD,IACpDqF,KAAK+gD,OAAO/gD,KAAKgqD,YAAYrvD,IAE/ByhB,EAAI4M,WAMNihC,cAAe,SAAS9C,GACtBnnD,KAAKkqD,iBAAmB,GAExB,IAAI1wD,EAAGC,EAAGijB,EAAgC/hB,EAAzBsuD,EAASjpD,KAAK0c,MAAQ,EAEvC,IAAK/hB,EAAI,EAAGA,EAAIqF,KAAK2pD,QAAShvD,IAAK,CAEjCnB,EAAIuhB,EAAOkF,KAAK2D,aAAaujC,EAAQ3tD,EAAIyvD,EAAQ9B,EAAQ3tD,EAAIyvD,GAC7DxvD,EAAIshB,EAAOkF,KAAK2D,aAAaujC,EAAQ1tD,EAAIwvD,EAAQ9B,EAAQ1tD,EAAIwvD,GAG3DvsC,EADE1c,KAAK6pD,iBACC9uC,EAAOkF,KAAK2D,aAElBZ,KAAKvI,IAAI,EAAGza,KAAK4pD,SAAW5pD,KAAK6pD,kBACjC7pD,KAAK4pD,SAAW5pD,KAAK6pD,kBAGf7pD,KAAK4pD,SAGf,IAAIzlC,EAAQ,IAAIpJ,EAAOuJ,MAAM9qB,EAAGC,GAChC0qB,EAAMzH,MAAQA,EAEV1c,KAAK8pD,gBACP3lC,EAAMkQ,QAAUtZ,EAAOkF,KAAK2D,aAAa,EAAG,KAAO,KAGrD5jB,KAAKkqD,iBAAiBxpD,KAAKyjB,GAG7BnkB,KAAKgqD,YAAYtpD,KAAKV,KAAKkqD,qBAU/BnvC,EAAO8vC,aAAe9vC,EAAOkF,KAAKkT,YAAYpY,EAAO2rC,YAAyD,CAE5GoE,cAAe,WAEb,IAEIC,EAAgBhwC,EAAOkF,KAAKgJ,sBAC5B+hC,EAAaD,EAAc1uC,WAAW,MAU1C,OARA0uC,EAAcruC,MAAQquC,EAAcxuC,OAASqtC,GAE7CoB,EAAW5J,UAAYphD,KAAKi7B,MAC5B+vB,EAAWthC,YACXshC,EAAWhC,IAAIY,GAAcA,GAAcA,GAAc,EAAa,EAAV5mC,KAAKI,IAAAA,GACjE4nC,EAAW7J,YACX6J,EAAW9qC,OAEJ6qC,GAGTE,sBAAuB,WACrB,OAAO5vD,OAAO2E,KAAK8qD,eAAej/C,QAAQ,aAAc,IAAM7L,KAAKi7B,MAAQ,MAM7EiwB,WAAY,WACV,OAAOlrD,KAAKkc,OAAOmgC,WAAWpD,cAAcj5C,KAAKoC,QAAUpC,KAAK8qD,gBAAiB,WAMnFhN,gBAAiB,WACf99C,KAAK+yB,UAAU,mBACf/yB,KAAKkc,OAAOmgC,WAAWwJ,YAAc7lD,KAAKkrD,cAM5C/C,WAAY,SAASC,GACnB,IAAItgC,EAAO9nB,KAAK+yB,UAAU,aAAcq1B,GACpC+C,EAAUrjC,EAAKsjC,oBAAoBxjB,UAAU9f,EAAKwgC,YAAc,GAOpE,OALAxgC,EAAK4V,OAAS,IAAI3iB,EAAOuH,QAAQ,CAC/BlgB,OAAQpC,KAAKoC,QAAUpC,KAAKirD,wBAC5BpU,SAAUsU,EAAQ3xD,EAClBs9C,SAAUqU,EAAQ1xD,IAEbquB,KAKX,WAEE,IAAI8L,EAAa7Y,EAAOkF,KAAK2T,WACzBlZ,EAAmBK,EAAOkF,KAAKvF,iBAC/BsJ,EAAmBjJ,EAAOkF,KAAK+D,iBAC/Bf,EAAQD,KAAKC,MACb4K,EAAM7K,KAAK6K,IACXw9B,EAAkBtwC,EAAO++B,aAAaoL,SAAS,eA8sDnD,IAAK,IAAI9kC,KA/pDTrF,EAAOa,OAASb,EAAOkF,KAAKkT,YAAYpY,EAAO++B,aAAoD,CAQjG1mB,WAAY,SAASiC,EAAI3f,GACvBA,IAAYA,EAAU,IACtB1V,KAAKg6C,oBAAsBh6C,KAAKi6C,eAAelxC,KAAK/I,MACpDA,KAAKk6C,sBAAwBl6C,KAAK+gB,iBAAiBhY,KAAK/I,MACxDA,KAAKm6C,YAAY9kB,EAAI3f,GACrB1V,KAAKsrD,mBACLtrD,KAAKurD,sBAQPC,mBAAAA,EAWAC,YAAuB,WASvBC,iBAAAA,EASAC,kBAAAA,EAWAC,YAAuB,SAWvBC,aAAwB,WAOxBtQ,aAAAA,EAOAuQ,WAAAA,EAYAC,aAAwB,WAcxBC,gBAA2B,KAO3BC,eAAwB,2BAOxBC,mBAAwB,GAOxBC,qBAAwB,2BAOxBC,mBAAwB,EAOxBC,yBAAAA,EAOAC,YAAwB,OAOxBC,WAAwB,OAOxBC,cAAwB,UAOxBC,kBAAwB,YAOxBC,eAAwB,YAQxBC,iBAA0B,cAO1BC,eAAwB,mBAOxBC,oBAAAA,EAOAC,oBAAwB,EAOxBC,gBAAAA,EAUAC,eAAAA,EAQAC,wBAAAA,EAQAC,UAAW,EASXC,cAAe,KAQfC,iBAAAA,EAQAC,gBAAAA,EAQAC,iBAAAA,EAMAC,QAAS,GAOTC,eAAgB,KAOhBC,gBAAiB,GAKjBnC,iBAAkB,WAChBtrD,KAAK0tD,kBAAoB,KACzB1tD,KAAK2tD,eAAiB,KACtB3tD,KAAK4tD,sBACL5tD,KAAK6tD,qBACL7tD,KAAK8tD,sBAEL9tD,KAAKw7C,qBAELx7C,KAAK69C,iBAAmB9iC,EAAO2rC,aAAe,IAAI3rC,EAAO2rC,YAAY1mD,MAErEA,KAAK67C,cAQPkS,uBAAwB,WACtB,IACIz2C,EAAQ02C,EAAcC,EADtBC,EAAgBluD,KAAKmuD,mBAGzB,GAAID,EAAclzD,OAAS,IAAMgF,KAAKitD,uBAAwB,CAC5De,EAAe,GACfC,EAAqB,GACrB,IAAK,IAAItzD,EAAI,EAAGK,EAASgF,KAAK4gB,SAAS5lB,OAAQL,EAAIK,EAAQL,KAElB,IAAnCuzD,EAActsD,QADlB0V,EAAStX,KAAK4gB,SAASjmB,IAErBqzD,EAAattD,KAAK4W,GAGlB22C,EAAmBvtD,KAAK4W,GAGxB42C,EAAclzD,OAAS,IACzBgF,KAAKq+C,cAAcz9B,SAAWqtC,GAEhCD,EAAattD,KAAKlC,MAAMwvD,EAAcC,QAGtCD,EAAehuD,KAAK4gB,SAEtB,OAAOotC,GAQTzO,UAAW,WAUT,OATIv/C,KAAKouD,iBAAoBpuD,KAAK2tD,gBAAmB3tD,KAAKgtD,gBACxDhtD,KAAKi/C,aAAaj/C,KAAKq8C,YACvBr8C,KAAKouD,iBAAAA,GAEHpuD,KAAKy9C,gBACPz9C,KAAKquD,eAAeruD,KAAKq8C,YAG3Br8C,KAAKw/C,aADgBx/C,KAAKm8C,iBACQn8C,KAAK+tD,0BAChC/tD,MAGTquD,eAAgB,SAASjyC,GACvBA,EAAIyM,OACA7oB,KAAKgtD,eAAiBhtD,KAAK49C,sBAC7B59C,KAAK69C,kBAAoB79C,KAAK69C,iBAAiB0J,UAC/CvnD,KAAKouD,iBAAAA,GAGHpuD,KAAK8rD,WAAa9rD,KAAK2tD,iBACzB3tD,KAAKsuD,eAAelyC,GACpBpc,KAAKouD,iBAAAA,GAEPhyC,EAAI4M,WASNulC,UAAW,WACT,IAAInyC,EAAMpc,KAAKq8C,WAIf,OAHAr8C,KAAKi/C,aAAa7iC,GAClBpc,KAAKquD,eAAejyC,GACpBpc,KAAKugB,KAAK,gBACHvgB,MAOTwuD,uBAAwB,WACtB,IAAIx0D,EAAIgG,KAAK0tD,kBAEb1zD,EAAE2Q,OAAOqX,IAAI,CACXgI,OAAQhwB,EAAEy0D,SAASzkC,OACnBC,OAAQjwB,EAAEy0D,SAASxkC,OACnBC,MAAOlwB,EAAEy0D,SAASvkC,MAClBC,MAAOnwB,EAAEy0D,SAAStkC,MAClBjF,KAAMlrB,EAAEy0D,SAASvpC,KACjBC,IAAKnrB,EAAEy0D,SAAStpC,MAGdnlB,KAAK0uD,uBAAuB10D,EAAE2Q,SACd,WAAd3Q,EAAEsvD,UAEFtvD,EAAE20D,WADc,UAAd30D,EAAEsvD,SACY,EAGD,GAGD,WAAdtvD,EAAEuvD,UAEFvvD,EAAE40D,WADc,WAAd50D,EAAEuvD,SACY,EAGD,GAInBvvD,EAAEsvD,QAAU,SACZtvD,EAAEuvD,QAAU,WAGZvvD,EAAEsvD,QAAUtvD,EAAEy0D,SAASnF,QACvBtvD,EAAEuvD,QAAUvvD,EAAEy0D,SAASlF,UAW3BsF,cAAe,SAAUprD,EAAGkH,EAAQwZ,GAClC,IAEI2qC,EADA3H,EAAUhjC,GAASnkB,KAAK4zB,WAAWnwB,GAAAA,GAWvC,OAPEqrD,EADEnkD,EAAO2zC,OAAS3zC,EAAO2zC,QAAUt+C,KAAKq+C,eAAuC,oBAAtB1zC,EAAO2zC,MAAMnzC,KACjEnL,KAAK+uD,kBAAkBpkD,EAAO2zC,MAAO6I,GAGrC,CAAE3tD,EAAG2tD,EAAQ3tD,EAAGC,EAAG0tD,EAAQ1tD,GAI1BkR,EAAOkkD,cAAcC,IAAOnkD,EAAOqkD,kBAAkB7H,IAM/D4H,kBAAmB,SAAUz3C,EAAQ6vC,GACnC,IAAI35C,EAAI8J,EAAOiwB,sBACX0nB,EAAYl0C,EAAOkF,KAAKmF,gBAAgB5X,GACxC0hD,EAAalvD,KAAKmvD,kBAAkBhI,GACxC,OAAOpsC,EAAOkF,KAAKwE,eAAeyqC,EAAYD,IAUhDG,oBAAqB,SAAUzkD,EAAQnR,EAAGC,GAGxC,GAAIkR,EAAOw1C,eAAiBx1C,EAAOi2C,cAAgBj2C,IAAW3K,KAAKq+C,cAAe,CAChF,IAAIgR,EAAoBrvD,KAAK+uD,kBAAkBpkD,EAAQ,CAACnR,EAAGA,EAAGC,EAAGA,IAC7D61D,EAAkBtsC,KAAKvI,IAAI9P,EAAOk2C,kBAAqBwO,EAAkB71D,EAAImR,EAAO+1C,MAAQ,GAC5F6O,EAAkBvsC,KAAKvI,IAAI9P,EAAOm2C,kBAAqBuO,EAAkB51D,EAAIkR,EAAOg2C,MAAQ,GAKhG,OAHoB5lC,EAAOkF,KAAKkL,cAC9BxgB,EAAO6kD,cAAexsC,KAAKooB,MAAMkkB,GAAkBtsC,KAAKooB,MAAMmkB,GAAkBvvD,KAAK8sD,qBAKzF,IAAI1wC,EAAMpc,KAAKyvD,aACXC,EAAgB/kD,EAAOglD,yBAA0BziD,EAAIlN,KAAK46C,kBAuB9D,OArBAjwC,EAAOglD,yBAA2B,GAElC3vD,KAAKi/C,aAAa7iC,GAElBA,EAAIyM,OACJzM,EAAIyI,UAAU3X,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAC9CvC,EAAOo2C,OAAO3kC,GACdA,EAAI4M,UAEJre,IAAW3K,KAAKq+C,eAAiB1zC,EAAOilD,gBAAgBxzC,EAAK,CAC3DyzC,YAAAA,EACAC,oBAAAA,GACC,CACDD,YAAAA,IAGFllD,EAAOglD,yBAA2BD,EAEd30C,EAAOkF,KAAKkL,cAC9B/O,EAAK5iB,EAAGC,EAAGuG,KAAK8sD,sBAUpBiD,uBAAwB,SAAStsD,GAU/B,MAP0D,mBAAtDsC,OAAOb,UAAUrF,SAASpB,KAAKuB,KAAK+rD,gBACd/rD,KAAK+rD,aAAa36B,MAAK,SAASl1B,GAAO,OAAA,IAAOuH,EAAEvH,MAGlDuH,EAAEzD,KAAK+rD,eAWjCiE,sBAAuB,SAAUvsD,EAAGkH,GAClC,IAAIujD,EAAgBluD,KAAKmuD,mBACrB/P,EAAep+C,KAAKq+C,cAExB,OACG1zC,GAEAA,GACCyzC,GACA8P,EAAclzD,OAAS,IACY,IAAnCkzD,EAActsD,QAAQ+I,IACtByzC,IAAiBzzC,IAChB3K,KAAK+vD,uBAAuBtsD,IAE9BkH,IAAWA,EAAOslD,SAElBtlD,IACEA,EAAOulD,YACR9R,GACAA,IAAiBzzC,GAUvB+jD,uBAAwB,SAAU/jD,GAChC,GAAKA,EAAL,CAIA,IACIwlD,EADAn2D,EAAIgG,KAAK0tD,kBAUb,MAPiB,UAAb1zD,EAAEo2D,QAAmC,WAAbp2D,EAAEo2D,QAAoC,WAAbp2D,EAAEo2D,OACrDD,EAAkBnwD,KAAK0rD,iBAAmB/gD,EAAO+gD,gBAE7B,WAAb1xD,EAAEo2D,SACTD,EAAkBnwD,KAAK2rD,kBAAoBhhD,EAAOghD,kBAG7CwE,GAAmBn2D,EAAEq2D,OAASr2D,EAAEq2D,SAMzCC,qBAAsB,SAAS3lD,EAAQ4lD,GACrC,IAAI/tD,EAAS,CACXhJ,EAAGmR,EAAO2+C,QACV7vD,EAAGkR,EAAO4+C,SAiBZ,MAde,OAAXgH,GAA8B,OAAXA,GAA8B,OAAXA,EACxC/tD,EAAOhJ,EAAI,QAEO,OAAX+2D,GAA8B,OAAXA,GAA8B,OAAXA,IAC7C/tD,EAAOhJ,EAAI,QAGE,OAAX+2D,GAA8B,OAAXA,GAA8B,OAAXA,EACxC/tD,EAAO/I,EAAI,SAEO,OAAX82D,GAA8B,OAAXA,GAA8B,OAAXA,IAC7C/tD,EAAO/I,EAAI,OAGN+I,GAUTguD,qBAAsB,SAASC,EAAiBF,EAAQ9sD,GACtD,IAAK8sD,IAAWE,EACd,MAAO,OAGT,OAAQF,GACN,IAAK,MACH,MAAO,SACT,IAAK,KACL,IAAK,KACH,OAAO9sD,EAAEzD,KAAK6rD,cAAgB,QAAU,SAC1C,IAAK,KACL,IAAK,KACH,OAAOpoD,EAAEzD,KAAK6rD,cAAgB,QAAU,SAC1C,QACE,MAAO,UASb6E,uBAAwB,SAAUjtD,EAAGkH,EAAQ8lD,GAC3C,GAAK9lD,EAAL,CAIA,IAAIw8C,EAAUnnD,KAAK4zB,WAAWnwB,GAC1B8sD,EAAS5lD,EAAOqkD,kBAAkBhvD,KAAK4zB,WAAWnwB,GAAAA,IAClD2sD,EAASpwD,KAAKwwD,qBAAqBC,EAAiBF,EAAQ9sD,EAAGkH,GAC/DnI,EAASxC,KAAKswD,qBAAqB3lD,EAAQ4lD,GAE/CvwD,KAAK0tD,kBAAoB,CACvB/iD,OAAQA,EACRylD,OAAQA,EACRG,OAAQA,EACRvmC,OAAQrf,EAAOqf,OACfC,OAAQtf,EAAOsf,OACfC,MAAOvf,EAAOuf,MACdC,MAAOxf,EAAOwf,MAEd0sB,QAASsQ,EAAQ3tD,EAAImR,EAAOua,KAC5B4xB,QAASqQ,EAAQ1tD,EAAIkR,EAAOwa,IAC5BmkC,QAAS9mD,EAAOhJ,EAChB+vD,QAAS/mD,EAAO/I,EAChBwF,GAAIkoD,EAAQ3tD,EACZm3D,GAAIxJ,EAAQ1tD,EACZm3D,MAAOzJ,EAAQ3tD,EACfq3D,MAAO1J,EAAQ1tD,EAIf8wB,MAAO7P,EAAiB/P,EAAO4Y,OAE/B7G,MAAO/R,EAAO+R,MAAQ/R,EAAOqf,OAC7B2kC,WAAY,EACZC,WAAY,EACZkC,SAAUrtD,EAAEqtD,SACZT,OAAQ5sD,EAAEzD,KAAK4rD,aACf6C,SAAU1zC,EAAOkF,KAAKiL,oBAAoBvgB,IAG5C3K,KAAK0tD,kBAAkBe,SAASnF,QAAU9mD,EAAOhJ,EACjDwG,KAAK0tD,kBAAkBe,SAASlF,QAAU/mD,EAAO/I,EAEjDuG,KAAKwuD,yBACLxuD,KAAK+wD,iBAAiBttD,KAUxButD,iBAAkB,SAAUx3D,EAAGC,GAC7B,IAAIorB,EAAY7kB,KAAK0tD,kBACjB/iD,EAASka,EAAUla,OACnBsmD,EAAUz3D,EAAIqrB,EAAUgyB,QACxBqa,EAASz3D,EAAIorB,EAAUiyB,QACvBqa,GAASxmD,EAAOkY,IAAI,kBAAoBlY,EAAOua,OAAS+rC,EACxDG,GAASzmD,EAAOkY,IAAI,kBAAoBlY,EAAOwa,MAAQ+rC,EAI3D,OAFAC,GAASxmD,EAAOqX,IAAI,OAAQivC,GAC5BG,GAASzmD,EAAOqX,IAAI,MAAOkvC,GACpBC,GAASC,GAQlBC,2BAA4B,SAASC,EAAWt3D,EAAGu3D,GACjD,IAAIh6C,EAAW,UAAWi6C,EAAU,CAAEC,EAAG,UACrCC,EAAO13D,EAAE2Q,OAAOuf,MAAOynC,EAAU,OAAQC,EAAU,QACnDrB,EAAsB,OAAbv2D,EAAEu2D,QAAgC,OAAbv2D,EAAEu2D,OAAkB,GAAK,EACvDsB,EAAW,EAEfP,EAAYA,EAAY,EAAI,GAAK,EACtB,MAAPC,IACFG,EAAO13D,EAAE2Q,OAAOwf,MAChBwnC,EAAU,MACVC,EAAU,SACVr6C,EAAW,WAEbi6C,GAAS,GAAKG,EACdH,EAAQ,GAAKI,EAEb53D,EAAE2Q,OAAO+f,QAAUmnC,IAAa,GAChC73D,EAAE2Q,OAAOggB,QAAUknC,IAAa,GAEnB,IAATH,GACF13D,EAAE83D,UAAYvB,EAASe,EAAYO,EACnC73D,EAAEud,GAAYi6C,GAASF,KAIvBt3D,EAAE83D,SADFJ,EAAOA,EAAO,EAAI,GAAK,EAEvB13D,EAAEud,GAAYi6C,EAAQE,EAAOnB,EAASsB,KAY1CE,YAAa,SAAUv4D,EAAGC,EAAG83D,GAC3B,IACuBS,EADnBh4D,EAAIgG,KAAK0tD,kBACT/iD,EAAS3Q,EAAE2Q,OACXsnD,EAAetnD,EAAOkY,IAAI,gBAC1BqvC,EAAevnD,EAAOkY,IAAI,gBAE9B,GAAKovC,GAAuB,MAAPV,GAAgBW,GAAuB,MAAPX,EACnD,OAAA,EAIF,IAGIY,EAAqBC,EAHrBzQ,EAASh3C,EAAO62C,iBAChB6Q,EAAsB1nD,EAAO2nD,aAAa,IAAIv3C,EAAOuJ,MAAM9qB,EAAGC,GAAI,SAAU,UAAU83D,GACtFgB,EAAoB5nD,EAAO2nD,aAAa,IAAIv3C,EAAOuJ,MAAMtqB,EAAE42D,MAAO52D,EAAE62D,OAAQ,SAAU,UAAUU,GACvDiB,EAAM7nD,EAAO8nD,4BAW1D,OATAzyD,KAAKqxD,2BAA2BgB,EAAsBE,EAAmBv4D,EAAGu3D,GAC5EY,EAAsBxnD,EAAO2nD,aAAa,IAAIv3C,EAAOuJ,MAAM9qB,EAAGC,GAAIO,EAAEsvD,QAAStvD,EAAEuvD,SAASgI,GACxFa,EAAqBznD,EAAO+nD,uBAAuB/Q,EAAQ3nD,EAAEsvD,QAAStvD,EAAEuvD,SAExEyI,EAAShyD,KAAK2yD,eAAeR,EAAqBn4D,EAAGu3D,EAAIiB,GACzDx4D,EAAE42D,MAAQp3D,EACVQ,EAAE62D,MAAQp3D,EAEVkR,EAAO+8B,oBAAoB0qB,EAAoBp4D,EAAEsvD,QAAStvD,EAAEuvD,SACrDyI,GAQTW,eAAgB,SAASC,EAAY/tC,EAAW0sC,EAAIsB,GAClD,IAA+BC,EAAUd,EACNe,EAAQC,EACvCC,EAASC,EAAUC,EAAKC,EAAalpC,EAAOC,EAF5Cxf,EAASka,EAAUla,OACnBmnD,EAAWjtC,EAAUitC,SAmCzB,MAhCW,MAAPP,GACF0B,EAAU,IACVC,EAAW,IACXC,EAAM,IACNjpC,EAAQ,EACRC,EAAQxf,EAAOwf,QAGf8oC,EAAU,IACVC,EAAW,IACXC,EAAM,IACNjpC,EAAQvf,EAAOuf,MACfC,EAAQ,GAGV6oC,EAAYroD,EAAO8nD,0BAA0BvoC,EAAOC,IACpDipC,EAAc,EAAIpwC,KAAK6K,IAAI+kC,GAAcI,EAAUzB,KAChC,EACjBuB,EAAW,GAGXA,EAAWhB,EAAW9uC,KAAKqwC,KAAMD,EAAczoD,EAAO,QAAUwoD,IAC/BH,EAAUC,GAAWtoD,EAAO,QAAUuoD,KACvEJ,EAAW/3C,EAAOkF,KAAK+D,iBAAiB8uC,IAE1Cd,EAASrnD,EAAO,OAASwoD,KAASL,EAClCnoD,EAAOqX,IAAI,OAASmxC,EAAKL,GACS,IAA9BnoD,EAAO,OAASuoD,KAClBH,EAASpoD,EAAO8nD,4BAEhB9nD,EAAOqX,IAAI,QAAUkxC,EADrBJ,EAAYD,EAAKI,GAAWF,EAAOE,GAAYtoD,EAAO,QAAUuoD,KAG3DlB,GAYTsB,aAAc,SAAU95D,EAAGC,EAAG83D,GAC5B,IAAIv3D,EAAIgG,KAAK0tD,kBACT/iD,EAAS3Q,EAAE2Q,OACX4oD,EAAe5oD,EAAO4oD,aACtBC,EAAe7oD,EAAO6oD,aACtBC,EAAkB9oD,EAAO8oD,gBAE7B,GAAIF,GAAgBC,EAClB,OAAA,EAIF,IAE8CE,EAF1CtB,EAAqBznD,EAAO+nD,uBAAuB/nD,EAAO62C,iBAAkBxnD,EAAEsvD,QAAStvD,EAAEuvD,SACzFqJ,EAAajoD,EAAO2nD,aAAa,IAAIv3C,EAAOuJ,MAAM9qB,EAAGC,GAAIO,EAAEsvD,QAAStvD,EAAEuvD,SACtEiJ,EAAM7nD,EAAO8nD,4BASjB,OAPAzyD,KAAK2zD,eAAef,EAAY54D,GAGhC05D,EAAS1zD,KAAK4zD,gBAAgBhB,EAAY54D,EAAGu5D,EAAcC,EAAcjC,EAAIkC,EAAiBjB,GAG9F7nD,EAAO+8B,oBAAoB0qB,EAAoBp4D,EAAEsvD,QAAStvD,EAAEuvD,SACrDmK,GAOTE,gBAAiB,SAAShB,EAAY/tC,EAAW0uC,EAAcC,EAAcjC,EAAIkC,EAAiBZ,GAChG,IAAIloD,EAASka,EAAUla,OAAQkpD,GAAAA,EAAwBC,GAAAA,EAAwBJ,GAAAA,EAC3E1pC,EAAS4oC,EAAWp5D,EAAImR,EAAOqf,OAAS6oC,EAAKr5D,EAC7CywB,EAAS2oC,EAAWn5D,EAAIkR,EAAOsf,OAAS4oC,EAAKp5D,EAC7Cs6D,EAAUppD,EAAOqf,SAAWA,EAC5BgqC,EAAUrpD,EAAOsf,SAAWA,EAIhC,GAFApF,EAAUovC,UAAYjqC,EACtBnF,EAAUqvC,UAAYjqC,EAClBlP,EAAOo5C,SAAkB,MAAP5C,GAAc5mD,aAAkBoQ,EAAOo5C,QAAS,CACpE,IAAI9mD,EAAI1C,EAAO+R,OAASk2C,EAAWp5D,EAAIq5D,EAAKr5D,GAC5C,OAAI6T,GAAK1C,EAAOypD,gBACdV,EAASrmD,IAAM1C,EAAO+R,MACtB/R,EAAOqX,IAAI,QAAS3U,GACbqmD,GA6BX,OAxBID,GAAmBzpC,GAAU,GAAKA,EAASrf,EAAOqf,SACpD6pC,GAAAA,EACAjB,EAAWp5D,EAAI,GAGbi6D,GAAmBxpC,GAAU,GAAKA,EAAStf,EAAOsf,SACpD6pC,GAAAA,EACAlB,EAAWn5D,EAAI,GAGN,YAAP83D,GAAqBgC,GAAiBC,EAGhCjC,EAIM,MAAPA,GAAe5mD,EAAOkY,IAAI,kBAGnB,MAAP0uC,GAAe5mD,EAAOkY,IAAI,mBACjCixC,GAAkBN,GAAiB7oD,EAAOqX,IAAI,SAAUiI,KAAYypC,EAASM,GAH7EH,GAAkBN,GAAiB5oD,EAAOqX,IAAI,SAAUgI,KAAY0pC,EAASK,IAJ7EF,GAAkBN,GAAiB5oD,EAAOqX,IAAI,SAAUgI,KAAY0pC,EAASA,GAAUK,GACvFD,GAAkBN,GAAiB7oD,EAAOqX,IAAI,SAAUiI,KAAYypC,EAASA,GAAUM,IAJvFN,EAAS1zD,KAAKq0D,oBAAoBzB,EAAYjoD,EAAQka,EAAWguC,GAYnEgB,GAAkBC,GAAkB9zD,KAAKs0D,YAAYzvC,EAAW0sC,GACzDmC,GAOTW,oBAAqB,SAASzB,EAAYjoD,EAAQka,EAAWguC,GAE3D,IAGIa,EACmCO,EAAWC,EAJ9CK,EAAO3B,EAAWn5D,EAAIm5D,EAAWp5D,EACjCg7D,EAAW3B,EAAKp5D,EAAIorB,EAAU4pC,SAASxkC,OAAStf,EAAOsf,OAC5C4oC,EAAKr5D,EAAIqrB,EAAU4pC,SAASzkC,OAASrf,EAAOqf,OAEvDyqC,EAAQ7B,EAAWn5D,EAAI,GAAK,EAAI,EASpC,OALAw6D,GALoBrB,EAAWp5D,EAAI,GAAK,EAAI,GAKxBwpB,KAAK6K,IAAIhJ,EAAU4pC,SAASzkC,OAASuqC,EAAOC,GAChEN,EAAYO,EAAQzxC,KAAK6K,IAAIhJ,EAAU4pC,SAASxkC,OAASsqC,EAAOC,GAChEd,EAASO,IAActpD,EAAOqf,QAAUkqC,IAAcvpD,EAAOsf,OAC7Dtf,EAAOqX,IAAI,SAAUiyC,GACrBtpD,EAAOqX,IAAI,SAAUkyC,GACdR,GAMTY,YAAa,SAASzvC,EAAW0sC,GAC3B1sC,EAAUovC,UAAY,GAAY,MAAP1C,IACH,SAAtB1sC,EAAUykC,QACZzkC,EAAUykC,QAAU,QAES,UAAtBzkC,EAAUykC,UACjBzkC,EAAUykC,QAAU,SAIpBzkC,EAAUqvC,UAAY,GAAY,MAAP3C,IACH,QAAtB1sC,EAAU0kC,QACZ1kC,EAAU0kC,QAAU,SAES,WAAtB1kC,EAAU0kC,UACjB1kC,EAAU0kC,QAAU,SAQ1BoK,eAAgB,SAASf,EAAY54D,GACnC,IAAI2Q,EAAS3Q,EAAE2Q,OAAQ8pB,EAAOz0B,KAAKi+C,UAC/ByW,EAAU/pD,EAAO+pD,QAAUjgC,EAEb,UAAdz6B,EAAEsvD,QACJsJ,EAAWp5D,IAAM,EAEI,WAAdQ,EAAEsvD,UACTsJ,EAAWp5D,GAAoB,EAAfQ,EAAE20D,WACdiE,EAAWp5D,EAAI,IACjBQ,EAAE20D,YAAc30D,EAAE20D,aAIJ,WAAd30D,EAAEuvD,QACJqJ,EAAWn5D,IAAM,EAEI,WAAdO,EAAEuvD,UACTqJ,EAAWn5D,GAAoB,EAAfO,EAAE40D,WACdgE,EAAWn5D,EAAI,IACjBO,EAAE40D,YAAc50D,EAAE40D,aAKlB/gC,EAAI+kC,EAAWp5D,GAAKk7D,EAClB9B,EAAWp5D,EAAI,EACjBo5D,EAAWp5D,GAAKk7D,EAGhB9B,EAAWp5D,GAAKk7D,EAIlB9B,EAAWp5D,EAAI,EAGbq0B,EAAI+kC,EAAWn5D,GAAKi7D,EAClB9B,EAAWn5D,EAAI,EACjBm5D,EAAWn5D,GAAKi7D,EAGhB9B,EAAWn5D,GAAKi7D,EAIlB9B,EAAWn5D,EAAI,GAWnBk7D,cAAe,SAAUn7D,EAAGC,GAE1B,IAAIO,EAAIgG,KAAK0tD,kBACT/iD,EAAS3Q,EAAE2Q,OACXynD,EAAqBznD,EAAO+nD,uBAAuB/nD,EAAO62C,iBAAkBxnD,EAAEsvD,QAAStvD,EAAEuvD,SAE7F,GAAI5+C,EAAOiqD,aACT,OAAA,EAGF,IAAIC,EAAY5xC,EAAMjpB,EAAE22D,GAAKyB,EAAmB34D,EAAGO,EAAEiF,GAAKmzD,EAAmB54D,GACzEs7D,EAAW7xC,EAAMxpB,EAAI24D,EAAmB34D,EAAGD,EAAI44D,EAAmB54D,GAClE+pB,EAAQS,EAAiB8wC,EAAWD,EAAY76D,EAAEuwB,OAClDwqC,GAAAA,EAEJ,GAAIpqD,EAAOuiD,UAAY,EAAG,CACxB,IAAIA,EAAaviD,EAAOuiD,UACpBC,EAAiBxiD,EAAOwiD,eAAiBD,EACzC8H,EAAmBhyC,KAAK2L,KAAKpL,EAAQ2pC,GAAaA,EAClD+H,EAAkBjyC,KAAKa,MAAMN,EAAQ2pC,GAAaA,EAElDlqC,KAAK6K,IAAItK,EAAQ0xC,GAAmB9H,EACtC5pC,EAAQ0xC,EAEDjyC,KAAK6K,IAAItK,EAAQyxC,GAAoB7H,IAC5C5pC,EAAQyxC,GAoBZ,OAfIzxC,EAAQ,IACVA,EAAQ,IAAMA,GAIZ5Y,EAAO4Y,SAFXA,GAAS,KAGPwxC,GAAAA,GAIApqD,EAAO4Y,MAAQA,EAEf5Y,EAAO+8B,oBAAoB0qB,EAAoBp4D,EAAEsvD,QAAStvD,EAAEuvD,UAGvDwL,GAQTG,UAAW,SAAUzvD,GACnBzF,KAAKo8C,cAAc5vC,MAAM2oD,OAAS1vD,GAOpC6oD,eAAgB,SAAUlyC,GACxB,IAAIg5C,EAAgBp1D,KAAK2tD,eACrBzoC,EAAOkwC,EAAclwC,KACrBC,EAAMiwC,EAAcjwC,IACpBkwC,EAAQxnC,EAAI3I,GACZowC,EAAOznC,EAAI1I,GAaf,GAXInlB,KAAKisD,iBACP7vC,EAAIglC,UAAYphD,KAAKisD,eAErB7vC,EAAIwuC,SACFwK,EAAcn2D,IAAOimB,EAAO,EAAK,GAAKA,GACtCkwC,EAAczE,IAAOxrC,EAAM,EAAK,GAAKA,GACrCkwC,EACAC,IAICt1D,KAAKosD,oBAAuBpsD,KAAKmsD,qBAOtC,GAJA/vC,EAAI0pC,UAAY9lD,KAAKosD,mBACrBhwC,EAAIypC,YAAc7lD,KAAKmsD,qBAGnBnsD,KAAKksD,mBAAmBlxD,OAAS,IAAMqwD,EAAiB,CAE1D,IAAI39B,EAAK0nC,EAAcn2D,GAhoCT,IAgoCgCimB,EAAO,EAAK,EAAImwC,GAC1D1nC,EAAKynC,EAAczE,GAjoCT,IAioCgCxrC,EAAM,EAAK,EAAImwC,GAE7Dl5C,EAAIsN,YAEJ3O,EAAOkF,KAAKmI,eAAehM,EAAKsR,EAAIC,EAAID,EAAK2nC,EAAO1nC,EAAI3tB,KAAKksD,oBAC7DnxC,EAAOkF,KAAKmI,eAAehM,EAAKsR,EAAIC,EAAK2nC,EAAO,EAAG5nC,EAAK2nC,EAAO1nC,EAAK2nC,EAAO,EAAGt1D,KAAKksD,oBACnFnxC,EAAOkF,KAAKmI,eAAehM,EAAKsR,EAAIC,EAAID,EAAIC,EAAK2nC,EAAMt1D,KAAKksD,oBAC5DnxC,EAAOkF,KAAKmI,eAAehM,EAAKsR,EAAK2nC,EAAQ,EAAG1nC,EAAID,EAAK2nC,EAAQ,EAAG1nC,EAAK2nC,EAAMt1D,KAAKksD,oBAEpF9vC,EAAI+kC,YACJ/kC,EAAIshB,cAGJ3iB,EAAOhV,OAAOb,UAAUqwD,aAAa92D,KAAKuB,KAAMoc,EAAKpc,KAAKksD,oBAC1D9vC,EAAIo5C,WACFJ,EAAcn2D,GAhpCF,IAgpCyBimB,EAAO,EAAK,EAAImwC,GACrDD,EAAczE,GAjpCF,IAipCyBxrC,EAAM,EAAK,EAAImwC,GACpDD,EACAC,IAcNG,WAAY,SAAUhyD,EAAGiyD,GACvB,IAAI11D,KAAK+sD,eAAT,CAIA,IAII4I,EAAcC,EAHdzO,EAAUnnD,KAAK4zB,WAAWnwB,GAAAA,GAC1B26C,EAAep+C,KAAKq+C,cACpBwX,EAAW71D,KAAKmuD,mBAQpB,GAFAnuD,KAAKutD,QAAU,GAEXsI,EAAS76D,OAAS,IAAM06D,GAAatX,IAAiBp+C,KAAK81D,uBAAuB,CAAC1X,GAAe+I,GACpG,OAAO/I,EAGT,GAAwB,IAApByX,EAAS76D,QAAgBojD,EAAa4Q,kBAAkB7H,GAC1D,OAAO/I,EAET,GAAwB,IAApByX,EAAS76D,QACXojD,IAAiBp+C,KAAK81D,uBAAuB,CAAC1X,GAAe+I,GAAU,CACvE,IAAKnnD,KAAKitD,uBACR,OAAO7O,EAGPuX,EAAevX,EACfwX,EAAmB51D,KAAKutD,QACxBvtD,KAAKutD,QAAU,GAGnB,IAAI5iD,EAAS3K,KAAK81D,uBAAuB91D,KAAK4gB,SAAUumC,GAKxD,OAJI1jD,EAAEzD,KAAKgsD,kBAAoBrhD,GAAUgrD,GAAgBhrD,IAAWgrD,IAClEhrD,EAASgrD,EACT31D,KAAKutD,QAAUqI,GAEVjrD,IAWTorD,aAAc,SAAS5O,EAASnhD,EAAKgwD,GACnC,GAAIhwD,GACAA,EAAIi4B,SACJj4B,EAAIiqD,SACJjwD,KAAK6uD,cAAc,KAAM7oD,EAAKmhD,GAAS,CACzC,IAAKnnD,KAAK6sD,qBAAsB7mD,EAAI6mD,oBAAwB7mD,EAAIiwD,UAO9D,OAAA,EALA,IADoBj2D,KAAKovD,oBAAoBppD,EAAKgwD,EAAcx8D,EAAGw8D,EAAcv8D,GAE/E,OAAA,IAgBRq8D,uBAAwB,SAAS30C,EAASgmC,GAKxC,IAHA,IAAIx8C,EAA4BurD,EAApBv7D,EAAIwmB,EAAQnmB,OAGjBL,KAAK,CACV,IAAIw7D,EAAah1C,EAAQxmB,GACrBy7D,EAAeD,EAAW7X,OAAmC,oBAA1B6X,EAAW7X,MAAMnzC,KACtDnL,KAAK+uD,kBAAkBoH,EAAW7X,MAAO6I,GAAWA,EACtD,GAAInnD,KAAK+1D,aAAaK,EAAcD,EAAYhP,GAAU,EACxDx8C,EAASwW,EAAQxmB,IACN07D,gBAAkB1rD,aAAkBoQ,EAAOiN,QACpDkuC,EAAYl2D,KAAK81D,uBAAuBnrD,EAAOiW,SAAUumC,KAC5CnnD,KAAKutD,QAAQ7sD,KAAKw1D,GAEjC,OAGJ,OAAOvrD,GAQTwkD,kBAAmB,SAAShI,GAC1B,OAAOpsC,EAAOkF,KAAKwE,eACjB0iC,EACApsC,EAAOkF,KAAKmF,gBAAgBplB,KAAK46C,qBAsBrChnB,WAAY,SAAUnwB,EAAG6yD,GAEvB,GAAIt2D,KAAKu2D,mBAAqBD,EAC5B,OAAOt2D,KAAKu2D,iBAEd,GAAIv2D,KAAKw2D,UAAYF,EACnB,OAAOt2D,KAAKw2D,SAGd,IAKIC,EALAtP,EAAUvzB,EAAWnwB,GACrB24C,EAAgBp8C,KAAKo8C,cACrB9rB,EAAS8rB,EAAc3kB,wBACvBi/B,EAAcpmC,EAAO5T,OAAS,EAC9Bi6C,EAAermC,EAAO/T,QAAU,EAG/Bm6C,GAAgBC,IACf,QAASrmC,GAAU,WAAYA,IACjCqmC,EAAe3zC,KAAK6K,IAAKyC,EAAOnL,IAAMmL,EAAOsmC,SAE3C,UAAWtmC,GAAU,SAAUA,IACjComC,EAAc1zC,KAAK6K,IAAKyC,EAAOumC,MAAQvmC,EAAOpL,QAIlDllB,KAAK67C,aACLsL,EAAQ3tD,EAAI2tD,EAAQ3tD,EAAIwG,KAAKs8C,QAAQp3B,KACrCiiC,EAAQ1tD,EAAI0tD,EAAQ1tD,EAAIuG,KAAKs8C,QAAQn3B,IAChCmxC,IACHnP,EAAUnnD,KAAKmvD,kBAAkBhI,IAGnC,IAAI2P,EAAgB92D,KAAK+7C,mBAiBzB,OAhBsB,IAAlB+a,IACF3P,EAAQ3tD,GAAKs9D,EACb3P,EAAQ1tD,GAAKq9D,GAcR,CACLt9D,EAAG2tD,EAAQ3tD,GAVXi9D,EAFkB,IAAhBC,GAAsC,IAAjBC,EAEZ,CAAEj6C,MAAO,EAAGH,OAAQ,GAGpB,CACTG,MAAO0/B,EAAc1/B,MAAQg6C,EAC7Bn6C,OAAQ6/B,EAAc7/B,OAASo6C,IAKTj6C,MACxBjjB,EAAG0tD,EAAQ1tD,EAAIg9D,EAASl6C,SAQ5BsxC,mBAAoB,WAClB,IAAIkJ,EAAmB/2D,KAAKk8C,cAAc5uC,UAAUzB,QAAQ,qBAAsB,IAC9EqwC,EAAgBl8C,KAAKk8C,cAAeE,EAAgBp8C,KAAKo8C,cAGzDA,EACFA,EAAc9uC,UAAY,IAG1B8uC,EAAgBp8C,KAAK88C,uBACrB98C,KAAKo8C,cAAgBA,GAEvBrhC,EAAOkF,KAAKyW,SAAS0lB,EAAe,gBAAkB2a,GAEtD/2D,KAAKg+C,UAAUrxC,YAAYyvC,GAE3Bp8C,KAAKg3D,iBAAiB9a,EAAeE,GACrCp8C,KAAK+8C,kBAAkBX,GACvBp8C,KAAKq8C,WAAaD,EAAc//B,WAAW,OAM7CkvC,mBAAoB,WAClBvrD,KAAK+9C,cAAgB/9C,KAAK88C,uBAC1B98C,KAAK+9C,cAAcrxC,aAAa,QAAS1M,KAAK0c,OAC9C1c,KAAK+9C,cAAcrxC,aAAa,SAAU1M,KAAKuc,QAC/Cvc,KAAKyvD,aAAezvD,KAAK+9C,cAAc1hC,WAAW,OAMpDuxC,oBAAqB,WACnB5tD,KAAKg+C,UAAYjjC,EAAOkF,KAAK0W,YAAY32B,KAAKk8C,cAAe,MAAO,CAClE,MAASl8C,KAAK4sD,iBAEhB7xC,EAAOkF,KAAKyU,SAAS10B,KAAKg+C,UAAW,CACnCthC,MAAO1c,KAAK0c,MAAQ,KACpBH,OAAQvc,KAAKuc,OAAS,KACtBsK,SAAU,aAEZ9L,EAAOkF,KAAK+V,wBAAwBh2B,KAAKg+C,YAO3CjB,kBAAmB,SAAU97C,GAC3B,IAAIyb,EAAQ1c,KAAK0c,OAASzb,EAAQyb,MAC9BH,EAASvc,KAAKuc,QAAUtb,EAAQsb,OAEpCxB,EAAOkF,KAAKyU,SAASzzB,EAAS,CAC5B4lB,SAAU,WACVnK,MAAOA,EAAQ,KACfH,OAAQA,EAAS,KACjB2I,KAAM,EACNC,IAAK,EACL,eAAgBnlB,KAAK06C,oBAAsB,eAAiB,OAC5D,mBAAoB16C,KAAK06C,oBAAsB,eAAiB,SAElEz5C,EAAQyb,MAAQA,EAChBzb,EAAQsb,OAASA,EACjBxB,EAAOkF,KAAK+V,wBAAwB/0B,IAStC+1D,iBAAkB,SAAUC,EAAQC,GAClCA,EAAK1qD,MAAMC,QAAUwqD,EAAOzqD,MAAMC,SAOpC0qD,oBAAqB,WACnB,OAAOn3D,KAAKq8C,YAOd+a,oBAAqB,WACnB,OAAOp3D,KAAKo8C,eAOdib,gBAAiB,WACf,OAAOr3D,KAAKq+C,eAOd8P,iBAAkB,WAChB,IAAImJ,EAASt3D,KAAKq+C,cAClB,OAAIiZ,EACkB,oBAAhBA,EAAOnsD,MAA8BmsD,EAAO12C,SACvC02C,EAAO12C,SAAStjB,MAAM,GAGtB,CAACg6D,GAGL,IAOTj2C,iBAAkB,SAASrb,GAErBA,IAAQhG,KAAKq+C,gBACfr+C,KAAKugB,KAAK,2BAA4B,CAAE5V,OAAQ3E,IAChDhG,KAAKu3D,uBACLv3D,KAAKugB,KAAK,oBAAqB,CAAE5V,OAAQ3E,IACzCA,EAAIua,KAAK,eAEPva,IAAQhG,KAAKwtD,iBACfxtD,KAAKwtD,eAAiB,KACtBxtD,KAAKytD,gBAAkB,IAEzBztD,KAAK+yB,UAAU,mBAAoB/sB,IAQrCwxD,qBAAsB,SAASC,EAAYh0D,GACzC,IAAIi0D,GAAAA,EAA0Bv2C,EAAUnhB,KAAKmuD,mBACzCwJ,EAAQ,GAAIC,EAAU,GAAIC,EAAM,CAAEp0D,EAAGA,GACzCg0D,EAAW9/C,SAAQ,SAASmgD,IACU,IAAhC32C,EAAQvf,QAAQk2D,KAClBJ,GAAAA,EACAI,EAAUv3C,KAAK,aAAcs3C,GAC7BD,EAAQl3D,KAAKo3D,OAGjB32C,EAAQxJ,SAAQ,SAASL,IACa,IAAhCmgD,EAAW71D,QAAQ0V,KACrBogD,GAAAA,EACApgD,EAAOiJ,KAAK,WAAYs3C,GACxBF,EAAMj3D,KAAK4W,OAGXmgD,EAAWz8D,OAAS,GAAKmmB,EAAQnmB,OAAS,GAC5C68D,EAAIE,SAAWJ,EACfE,EAAIG,WAAaJ,EAEjBC,EAAII,QAAUN,EAAM,IAAMC,EAAQ,GAClCC,EAAIltD,OAAS3K,KAAKq+C,cAClBqZ,GAAoB13D,KAAKugB,KAAK,oBAAqBs3C,IAE5C12C,EAAQnmB,OAAS,GAED,IAAnBmmB,EAAQnmB,SACV68D,EAAIltD,OAASgtD,EAAM,GACnB33D,KAAKugB,KAAK,kBAAmBs3C,IAE/BA,EAAIE,SAAWJ,EAEfE,EAAIltD,OAAS3K,KAAKq+C,cAClBr+C,KAAKugB,KAAK,oBAAqBs3C,IAExBJ,EAAWz8D,OAAS,IAC3B68D,EAAIG,WAAaJ,EACjB53D,KAAKugB,KAAK,oBAAqBs3C,KAWnCK,gBAAiB,SAAU5gD,EAAQ7T,GACjC,IAAI00D,EAAiBn4D,KAAKmuD,mBAG1B,OAFAnuD,KAAKo4D,iBAAiB9gD,EAAQ7T,GAC9BzD,KAAKw3D,qBAAqBW,EAAgB10D,GACnCzD,MASTo4D,iBAAkB,SAAS9gD,EAAQ7T,GACjC,OAAIzD,KAAKq+C,gBAAkB/mC,KAGtBtX,KAAKu3D,qBAAqB9zD,EAAG6T,KAG9BA,EAAO+gD,SAAS,CAAE50D,EAAGA,MAGzBzD,KAAKq+C,cAAgB/mC,GAAAA,IAOvBigD,qBAAsB,SAAS9zD,EAAG6T,GAChC,IAAItR,EAAMhG,KAAKq+C,cACf,GAAIr4C,EAAK,CAEP,GAAIA,EAAIsyD,WAAW,CAAE70D,EAAGA,EAAG6T,OAAQA,IACjC,OAAA,EAEFtX,KAAKq+C,cAAgB,KAEvB,OAAA,GAYFka,oBAAqB,SAAU90D,GAC7B,IAAI00D,EAAiBn4D,KAAKmuD,mBAAoB/P,EAAep+C,KAAKq3D,kBAMlE,OALIc,EAAen9D,QACjBgF,KAAKugB,KAAK,2BAA4B,CAAE5V,OAAQyzC,EAAc36C,EAAGA,IAEnEzD,KAAKu3D,qBAAqB9zD,GAC1BzD,KAAKw3D,qBAAqBW,EAAgB10D,GACnCzD,MAQT+kD,QAAS,WACP,IAAInuB,EAAU52B,KAAKg+C,UAenB,OAdAh+C,KAAKw4D,kBACL5hC,EAAQxpB,YAAYpN,KAAKo8C,eACzBxlB,EAAQxpB,YAAYpN,KAAKk8C,eACzBl8C,KAAKyvD,aAAe,KACpBzvD,KAAKq8C,WAAa,KAClB,CAAC,gBAAiB,iBAAiB1kC,SAAQ,SAAU1W,GACnD8Z,EAAOkF,KAAK+X,iBAAiBh4B,KAAKiB,IAClCjB,KAAKiB,QAAAA,IACJ8H,KAAK/I,OACJ42B,EAAQzpB,YACVypB,EAAQzpB,WAAW0pB,aAAa72B,KAAKk8C,cAAel8C,KAAKg+C,kBAEpDh+C,KAAKg+C,UACZjjC,EAAO++B,aAAa50C,UAAU6/C,QAAQtmD,KAAKuB,MACpCA,MAQTm/C,MAAO,WAIL,OAFAn/C,KAAKu4D,sBACLv4D,KAAKi/C,aAAaj/C,KAAKq8C,YAChBr8C,KAAK+yB,UAAU,UAOxBmtB,aAAc,SAAS9jC,GACrB,IAAIgiC,EAAep+C,KAAKq+C,cAEpBD,GACFA,EAAawR,gBAAgBxzC,IAOjCimC,UAAW,SAAS7L,EAAUxjB,EAAYmkB,GAKxC,IAAIshB,EAAqBz4D,KAAK04D,+BAA+BliB,GACzDl/B,EAAStX,KAAK+yB,UAAU,YAAayjB,EAAUxjB,EAAYmkB,GAG/D,OADAn3C,KAAK24D,8BAA8BniB,EAAUiiB,GACtCnhD,GASTohD,+BAAgC,SAASliB,GACvC,GAAIA,EAAS8H,OAAiC,oBAAxB9H,EAAS8H,MAAMnzC,MAA8BnL,KAAKq+C,gBAAkB7H,EAAS8H,MAAO,CACxG,IAEIsa,EAAiB,GAKrB,MAPkB,CAAC,QAAS,QAAS,QAAS,OAAQ,SAAU,SAAU,QAAS,QAAS,OAGhFjhD,SAAQ,SAASyI,GAC3Bw4C,EAAex4C,GAAQo2B,EAASp2B,MAElCpgB,KAAKq+C,cAAcwa,iBAAiBriB,GAC7BoiB,EAGP,OAAO,MAUXD,8BAA+B,SAASniB,EAAUoiB,GAC5CA,GACFpiB,EAASx0B,IAAI42C,IAOjB7U,cAAe,SAAS1M,EAAQb,EAAUxvB,GAGxC,IAAIyxC,EAAqBz4D,KAAK04D,+BAA+BliB,GAC7Dx2C,KAAK+yB,UAAU,gBAAiBskB,EAAQb,EAAUxvB,GAClDhnB,KAAK24D,8BAA8BniB,EAAUiiB,IAG/Cva,qBAAsB,SAAUC,GAC1Bn+C,KAAK8gB,mBAAqB9gB,KAAKq+C,eAAiBr+C,KAAKq+C,cAAc4X,WACrEj2D,KAAKq+C,cAAcya,kBAErB/9C,EAAO++B,aAAa50C,UAAUg5C,qBAAqBz/C,KAAKuB,KAAMm+C,MAMjDpjC,EAAO++B,aACT,cAAT15B,IACFrF,EAAOa,OAAOwE,GAAQrF,EAAO++B,aAAa15B,IAvtDhD,GA6tDA,WAEE,IAAI24C,EAAe,CACbxoC,GAAI,EACJsvB,GAAI,EACJmZ,GAAI,EACJpZ,GAAI,EACJqZ,GAAI,EACJnZ,GAAI,EACJoZ,GAAI,EACJvZ,GAAI,GAENnsB,EAAczY,EAAOkF,KAAKuT,YAC1BE,EAAiB3Y,EAAOkF,KAAKyT,eAE7BylC,EAAkB,CAAEC,SAAAA,GAExB,SAASC,EAAW51D,EAAGgC,GACrB,OAAOhC,EAAE61D,QAAW71D,EAAE61D,SAAW7zD,EAAQ,EAG3CsV,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOa,OAAO1W,UAAiD,CAMvFq0D,UAAW,CACT,WACA,YACA,WACA,YACA,WACA,YACA,WACA,aAQFC,YAAa,KAMb1L,oBAAqB,WAInB9tD,KAAKw4D,kBACLx4D,KAAKy5D,cACLz5D,KAAK05D,YAAYlmC,EAAa,QAOhCmmC,gBAAiB,WACf,OAAO35D,KAAK45D,oBAAsB,UAAY,SAGhDF,YAAa,SAASG,EAASC,GAC7B,IAAIC,EAAgB/5D,KAAKo8C,cACrB4d,EAAkBh6D,KAAK25D,kBAC3BE,EAAQ9+C,EAAO7d,OAAQ,SAAU8C,KAAKi6D,WACtCJ,EAAQE,EAAeC,EAAkB,OAAQh6D,KAAKk6D,cACtDL,EAAQE,EAAeC,EAAkB,OAAQh6D,KAAKm6D,aAAchB,GACpEU,EAAQE,EAAeC,EAAkB,MAAOh6D,KAAKo6D,aACrDP,EAAQE,EAAeC,EAAkB,QAASh6D,KAAKq6D,eACvDR,EAAQE,EAAe,QAAS/5D,KAAKs6D,eACrCT,EAAQE,EAAe,cAAe/5D,KAAKu6D,gBAC3CV,EAAQE,EAAe,WAAY/5D,KAAKw6D,gBACxCX,EAAQE,EAAe,WAAY/5D,KAAKy6D,aACxCZ,EAAQE,EAAe,YAAa/5D,KAAK06D,cACzCb,EAAQE,EAAe,YAAa/5D,KAAK26D,cACzCd,EAAQE,EAAe,OAAQ/5D,KAAK46D,SAC/B56D,KAAK45D,qBACRC,EAAQE,EAAe,aAAc/5D,KAAK66D,cAAe1B,GAEpC,oBAAZ2B,SAA2BhB,KAAkBgB,UACtDA,QAAQhB,GAAgBC,EAAe,UAAW/5D,KAAK+6D,YACvDD,QAAQhB,GAAgBC,EAAe,OAAQ/5D,KAAKg7D,SACpDF,QAAQhB,GAAgBC,EAAe,cAAe/5D,KAAKi7D,sBAC3DH,QAAQhB,GAAgBC,EAAe,QAAS/5D,KAAKk7D,UACrDJ,QAAQhB,GAAgBC,EAAe,YAAa/5D,KAAKm7D,gBAO7D3C,gBAAiB,WACfx4D,KAAK05D,YAAYhmC,EAAgB,UAEjC,IAAIsmC,EAAkBh6D,KAAK25D,kBAC3BjmC,EAAe3Y,EAAOtd,SAAUu8D,EAAkB,KAAMh6D,KAAKo7D,YAC7D1nC,EAAe3Y,EAAOtd,SAAU,WAAYuC,KAAKq7D,YAAalC,GAC9DzlC,EAAe3Y,EAAOtd,SAAUu8D,EAAkB,OAAQh6D,KAAKm6D,aAAchB,GAC7EzlC,EAAe3Y,EAAOtd,SAAU,YAAauC,KAAKm6D,aAAchB,IAMlEM,YAAa,WACPz5D,KAAKs7D,cAITt7D,KAAKk6D,aAAel6D,KAAKk6D,aAAanxD,KAAK/I,MAC3CA,KAAK66D,cAAgB76D,KAAK66D,cAAc9xD,KAAK/I,MAC7CA,KAAKm6D,aAAen6D,KAAKm6D,aAAapxD,KAAK/I,MAC3CA,KAAKo7D,WAAap7D,KAAKo7D,WAAWryD,KAAK/I,MACvCA,KAAKq7D,YAAcr7D,KAAKq7D,YAAYtyD,KAAK/I,MACzCA,KAAKi6D,UAAYj6D,KAAKi6D,UAAUlxD,KAAK/I,MACrCA,KAAK+6D,WAAa/6D,KAAK+6D,WAAWhyD,KAAK/I,MACvCA,KAAKg7D,QAAUh7D,KAAKg7D,QAAQjyD,KAAK/I,MACjCA,KAAKk7D,SAAWl7D,KAAKk7D,SAASnyD,KAAK/I,MACnCA,KAAKm7D,aAAen7D,KAAKm7D,aAAapyD,KAAK/I,MAC3CA,KAAKi7D,qBAAuBj7D,KAAKi7D,qBAAqBlyD,KAAK/I,MAC3DA,KAAKs6D,cAAgBt6D,KAAKs6D,cAAcvxD,KAAK/I,MAC7CA,KAAKo6D,YAAcp6D,KAAKo6D,YAAYrxD,KAAK/I,MACzCA,KAAKq6D,cAAgBr6D,KAAKq6D,cAActxD,KAAK/I,MAC7CA,KAAKu6D,eAAiBv6D,KAAKu6D,eAAexxD,KAAK/I,MAC/CA,KAAKw6D,eAAiBx6D,KAAKw6D,eAAezxD,KAAK/I,MAC/CA,KAAKy6D,YAAcz6D,KAAKy6D,YAAY1xD,KAAK/I,MACzCA,KAAK06D,aAAe16D,KAAKu7D,oBAAoBxyD,KAAK/I,KAAM,aACxDA,KAAK26D,aAAe36D,KAAKu7D,oBAAoBxyD,KAAK/I,KAAM,aACxDA,KAAK46D,QAAU56D,KAAKu7D,oBAAoBxyD,KAAK/I,KAAM,QACnDA,KAAKs7D,aAAAA,IAQPP,WAAY,SAASt3D,EAAGrG,GACtB4C,KAAKw7D,sBAAwBx7D,KAAKw7D,qBAAqB/3D,EAAGrG,IAQ5D49D,QAAS,SAASv3D,EAAGrG,GACnB4C,KAAKy7D,UAAYz7D,KAAKy7D,SAASh4D,EAAGrG,IAOpCk9D,cAAe,SAAS72D,GACtBzD,KAAK07D,eAAej4D,IAOtB22D,YAAa,SAAS32D,GACpB,IAAIkH,EAAS3K,KAAKwtD,eAClBxtD,KAAKugB,KAAK,YAAa,CAAE5V,OAAQA,EAAQlH,EAAGA,IAC5CzD,KAAKwtD,eAAiB,KACtB7iD,GAAUA,EAAO4V,KAAK,WAAY,CAAE9c,EAAGA,IAEvC,IAAI+D,EAAQxH,KACZA,KAAKytD,gBAAgB91C,SAAQ,SAASgkD,GACpCn0D,EAAM+Y,KAAK,YAAa,CAAE5V,OAAQA,EAAQlH,EAAGA,IAC7Ck4D,GAAWhxD,EAAO4V,KAAK,WAAY,CAAE9c,EAAGA,OAE1CzD,KAAKytD,gBAAkB,GAEnBztD,KAAKs/C,iBACPt/C,KAAKs/C,gBAAgB3nC,SAAQ,SAAS3R,GAChCA,EAAIiwD,WACNjwD,EAAI41D,eAAeC,YAU3BxB,cAAe,SAAS52D,GAOjBzD,KAAK87D,kBAAqB97D,KAAKy1D,WAAWhyD,KAC7CzD,KAAKugB,KAAK,aAAc,CAAE5V,OAAQ,KAAMlH,EAAGA,IAC3CzD,KAAKwtD,eAAiB,KACtBxtD,KAAKytD,gBAAkB,KAS3BwN,qBAAsB,SAASx3D,EAAGrG,GAChC4C,KAAK+7D,uBAAyB/7D,KAAK+7D,sBAAsBt4D,EAAGrG,IAQ9D89D,SAAU,SAASz3D,EAAGrG,GACpB4C,KAAKg8D,WAAah8D,KAAKg8D,UAAUv4D,EAAGrG,IAQtC+9D,aAAc,SAAS13D,EAAGrG,GACxB4C,KAAKi8D,eAAiBj8D,KAAKi8D,cAAcx4D,EAAGrG,IAQ9Cq9D,YAAa,SAASh3D,GACpBA,EAAEy4D,iBACF,IAAIvxD,EAAS3K,KAAKu7D,oBAAoB,WAAY93D,GAClDzD,KAAKm8D,sBAAsBxxD,EAAQlH,IAOrC82D,eAAgB,SAAU92D,GAKxB,OAJIzD,KAAKotD,kBACP3pD,EAAE24D,kBACF34D,EAAEy4D,mBAAAA,GASN1B,eAAgB,SAAU/2D,GACxBzD,KAAKq8D,yBAAyB54D,GAC9BzD,KAAKs8D,aAAa74D,EAAG,YACrBzD,KAAKu8D,yBAAyB94D,IAShC+4D,aAAc,SAASC,GACrB,IAAIvoC,EAAiBuoC,EAAIvoC,eAEzB,OAAIA,EACKA,EAAe,IAAMA,EAAe,GAAGwoC,WAG5C18D,KAAK45D,oBACA6C,EAAIE,WAGL,GAQVvV,aAAc,SAASqV,GACrB,OAAA,IAAIA,EAAIG,YAAAA,IAGJH,EAAIG,YAGS,aAAbH,EAAItxD,MAA8C,IAAvBsxD,EAAII,QAAQ7hE,SAGvCyhE,EAAIvoC,gBACCuoC,EAAIvoC,eAAe,GAAGwoC,aAAe18D,KAAKw5D,cASrDqB,cAAe,SAASp3D,GACtBA,EAAEy4D,iBACuB,OAArBl8D,KAAKw5D,cACPx5D,KAAKw5D,YAAcx5D,KAAKw8D,aAAa/4D,IAEvCzD,KAAK88D,cAAcr5D,GACnBzD,KAAKu8D,2BACL,IAAIxC,EAAgB/5D,KAAKo8C,cACrB4d,EAAkBh6D,KAAK25D,kBAC3BnmC,EAAYzY,EAAOtd,SAAU,WAAYuC,KAAKq7D,YAAalC,GAC3D3lC,EAAYzY,EAAOtd,SAAU,YAAauC,KAAKm6D,aAAchB,GAE7DzlC,EAAeqmC,EAAeC,EAAkB,OAAQh6D,KAAKk6D,eAO/DA,aAAc,SAAUz2D,GACtBzD,KAAK88D,cAAcr5D,GACnBzD,KAAKu8D,2BACL,IAAIxC,EAAgB/5D,KAAKo8C,cACrB4d,EAAkBh6D,KAAK25D,kBAC3BjmC,EAAeqmC,EAAeC,EAAkB,OAAQh6D,KAAKm6D,aAAchB,GAC3E3lC,EAAYzY,EAAOtd,SAAUu8D,EAAkB,KAAMh6D,KAAKo7D,YAC1D5nC,EAAYzY,EAAOtd,SAAUu8D,EAAkB,OAAQh6D,KAAKm6D,aAAchB,IAO5EkC,YAAa,SAAS53D,GACpB,KAAIA,EAAEo5D,QAAQ7hE,OAAS,GAAvB,CAIAgF,KAAK+8D,YAAYt5D,GACjBzD,KAAKu8D,2BACLv8D,KAAKw5D,YAAc,KACnB,IAAIQ,EAAkBh6D,KAAK25D,kBAC3BjmC,EAAe3Y,EAAOtd,SAAU,WAAYuC,KAAKq7D,YAAalC,GAC9DzlC,EAAe3Y,EAAOtd,SAAU,YAAauC,KAAKm6D,aAAchB,GAChE,IAAI3xD,EAAQxH,KACRA,KAAKg9D,mBACPptD,aAAa5P,KAAKg9D,mBAEpBh9D,KAAKg9D,kBAAoB38D,YAAW,WAGlCmzB,EAAYhsB,EAAM40C,cAAe4d,EAAkB,OAAQxyD,EAAM0yD,cACjE1yD,EAAMw1D,kBAAoB,IACzB,OAOL5B,WAAY,SAAU33D,GACpBzD,KAAK+8D,YAAYt5D,GACjBzD,KAAKu8D,2BACL,IAAIxC,EAAgB/5D,KAAKo8C,cACrB4d,EAAkBh6D,KAAK25D,kBACvB35D,KAAKonD,aAAa3jD,KACpBiwB,EAAe3Y,EAAOtd,SAAUu8D,EAAkB,KAAMh6D,KAAKo7D,YAC7D1nC,EAAe3Y,EAAOtd,SAAUu8D,EAAkB,OAAQh6D,KAAKm6D,aAAchB,GAC7E3lC,EAAYumC,EAAeC,EAAkB,OAAQh6D,KAAKm6D,aAAchB,KAQ5EgB,aAAc,SAAU12D,IACrBzD,KAAK06C,qBAAuBj3C,EAAEy4D,gBAAkBz4D,EAAEy4D,iBACnDl8D,KAAKi9D,cAAcx5D,IAMrBw2D,UAAW,WACTj6D,KAAK67C,cAQPqhB,cAAe,SAASvyD,GACtB,IAAIyzC,EAAep+C,KAAKq+C,cAExB,WACID,KAAmBzzC,GACpByzC,GAAgBzzC,GAAWyzC,IAAiBzzC,IAqBjDoyD,YAAa,SAAUt5D,GACrB,IAAIkH,EAAQka,EAAY7kB,KAAK0tD,kBACzB0H,EAAgBp1D,KAAK2tD,eAAgBwP,GAAAA,EACrCC,GAAYhI,GAAyC,IAAvBA,EAAclwC,MAAoC,IAAtBkwC,EAAcjwC,IAM5E,GALAnlB,KAAKq8D,yBAAyB54D,GAC9BkH,EAAS3K,KAAK27D,QACd37D,KAAKs8D,aAAa74D,EAAG,cAGjB41D,EAAW51D,EA1aD,GAibd,OAAI41D,EAAW51D,EAjbiB,IAkb1BzD,KAAKstD,iBACPttD,KAAKs8D,aAAa74D,EAAG,KAnbO,EAmba25D,QAE3Cp9D,KAAKu8D,iCAIHv8D,KAAKgtD,eAAiBhtD,KAAK49C,oBAC7B59C,KAAKq9D,wBAAwB55D,GAI1BzD,KAAKonD,aAAa3jD,KAGnBohB,IACF7kB,KAAKs9D,0BAA0B75D,GAC/B05D,EAAet4C,EAAU04C,iBAGtBH,IACHp9D,KAAKw9D,mBAAmB/5D,GACxB05D,IAAiBA,EAAen9D,KAAKk9D,cAAcvyD,KAEjDA,IACFA,EAAO8yD,UAAAA,GAETz9D,KAAK09D,oBAAoBj6D,EAAGkH,GAC5B3K,KAAKs8D,aAAa74D,EAAG,KA9c2B,EA8cT25D,GACvCp9D,KAAK2tD,eAAiB,KACtB3tD,KAAK0tD,kBAAoB,KAEzB/iD,IAAWA,EAAOgzD,SAAW,GACzBR,EACFn9D,KAAK+gB,mBAEGq8C,GACRp9D,KAAKuuD,cA5CDvuD,KAAKqtD,gBACPrtD,KAAKs8D,aAAa74D,EAAG,KA5aX,EA4a8B25D,IAsD9C7B,oBAAqB,SAASqC,EAAWn6D,GACvC,IAAIkH,EAAS3K,KAAKy1D,WAAWhyD,GACzB8pD,EAAUvtD,KAAKutD,QACf73C,EAAU,CACRjS,EAAGA,EACHkH,OAAQA,EACRkzD,WAAYtQ,GAIlB,GAFAvtD,KAAKugB,KAAKq9C,EAAWloD,GACrB/K,GAAUA,EAAO4V,KAAKq9C,EAAWloD,IAC5B63C,EACH,OAAO5iD,EAET,IAAK,IAAIhQ,EAAI,EAAGA,EAAI4yD,EAAQvyD,OAAQL,IAClC4yD,EAAQ5yD,GAAG4lB,KAAKq9C,EAAWloD,GAE7B,OAAO/K,GAYT2xD,aAAc,SAAS74D,EAAGm6D,EAAWtE,EAAQ8D,GAC3C,IAAIzyD,EAAS3K,KAAK27D,QACdpO,EAAUvtD,KAAKutD,SAAW,GAC1B73C,EAAU,CACRjS,EAAGA,EACHkH,OAAQA,EACRkzD,WAAYtQ,EACZ+L,OAAQA,GArgBkC,EAsgB1C8D,QAASA,IAAAA,EACTjW,QAASnnD,KAAKw2D,SACdsH,gBAAiB99D,KAAKu2D,iBACtB1xC,UAAW7kB,KAAK0tD,mBAEtB1tD,KAAKugB,KAAK,SAAWq9C,EAAWloD,GAChC/K,GAAUA,EAAO4V,KAAK,QAAUq9C,EAAWloD,GAC3C,IAAK,IAAI/a,EAAI,EAAGA,EAAI4yD,EAAQvyD,OAAQL,IAClC4yD,EAAQ5yD,GAAG4lB,KAAK,QAAUq9C,EAAWloD,IAQzC4nD,0BAA2B,SAAS75D,GAElC,IAEIqc,EAFA+E,EAAY7kB,KAAK0tD,kBACjB/iD,EAASka,EAAUla,OAEnB+K,EAAU,CACRjS,EAAGA,EACHkH,OAAQA,EACRka,UAAWA,GAGbla,EAAOozD,WACTpzD,EAAOozD,UAAAA,GAGTpzD,EAAO4zC,aAEH15B,EAAU04C,iBAAoBv9D,KAAKw6C,UAAY7vC,EAAOqzD,qBACpDn5C,EAAU04C,kBACZz9C,EAAY9f,KAAKi+D,iBAAiBvoD,EAASmP,GAC3C7kB,KAAKk+D,MAAMp+C,EAAWpK,IAExB1V,KAAKk+D,MAAM,WAAYxoD,KAU3BuoD,iBAAkB,SAASvoD,EAASmP,GAGlC,IAAI/E,EAAWyxC,EACf,OAAQ1sC,EAAUurC,QAChB,IAAK,SACHtwC,EAAY,SACZyxC,EAAK,IACL,MACF,IAAK,SACHzxC,EAAY,SACZyxC,EAAK,IACL,MACF,IAAK,QACHzxC,EAAY,SACZyxC,EAAK,IACL,MACF,IAAK,QACHzxC,EAAY,SACZyxC,EAAK,IACL,MACF,IAAK,QACHzxC,EAAY,SACZyxC,EAAK,UACL,MACF,IAAK,SACHzxC,EAAY,UACZ,MACF,IAAK,OACHA,EAAY,QAIhB,OADApK,EAAQ67C,GAAKA,EACNzxC,GAOTq+C,0BAA2B,SAAS16D,GAClCzD,KAAK49C,qBAAAA,EACD59C,KAAKq3D,mBACPr3D,KAAKu4D,oBAAoB90D,GAAGsd,mBAE1B/gB,KAAKwiB,QACPzH,EAAOkF,KAAKuJ,YAAYxpB,KAAMA,KAAKq8C,YAErC,IAAI8K,EAAUnnD,KAAK4zB,WAAWnwB,GAC9BzD,KAAK69C,iBAAiBqJ,YAAYC,EAAS,CAAE1jD,EAAGA,EAAG0jD,QAASA,IAC5DnnD,KAAKs8D,aAAa74D,EAAG,SAOvB26D,0BAA2B,SAAS36D,GAClC,GAAIzD,KAAK49C,oBAAqB,CAC5B,IAAIuJ,EAAUnnD,KAAK4zB,WAAWnwB,GAC9BzD,KAAK69C,iBAAiB2J,YAAYL,EAAS,CAAE1jD,EAAGA,EAAG0jD,QAASA,IAE9DnnD,KAAKk1D,UAAUl1D,KAAKysD,mBACpBzsD,KAAKs8D,aAAa74D,EAAG,SAOvB45D,wBAAyB,SAAS55D,GAC5BzD,KAAKwiB,QACPxiB,KAAKq8C,WAAWrzB,UAElB,IAAIm+B,EAAUnnD,KAAK4zB,WAAWnwB,GAC9BzD,KAAK49C,oBAAsB59C,KAAK69C,iBAAiB6J,UAAU,CAAEjkD,EAAGA,EAAG0jD,QAASA,IAC5EnnD,KAAKs8D,aAAa74D,EAAG,OAWvBq5D,cAAe,SAAUr5D,GACvBzD,KAAKq8D,yBAAyB54D,GAC9BzD,KAAKs8D,aAAa74D,EAAG,eACrB,IAAIkH,EAAS3K,KAAK27D,QAElB,GAAItC,EAAW51D,EAlpBD,GAmpBRzD,KAAKqtD,gBACPrtD,KAAKs8D,aAAa74D,EAAG,OAppBX,QAypBd,GAAI41D,EAAW51D,EAzpBiB,GA0pB1BzD,KAAKstD,iBACPttD,KAAKs8D,aAAa74D,EAAG,OA3pBO,QAgqBhC,GAAIzD,KAAKgtD,cACPhtD,KAAKm+D,0BAA0B16D,QAIjC,GAAKzD,KAAKonD,aAAa3jD,KAKnBzD,KAAK0tD,kBAAT,CAIA,IAAIvG,EAAUnnD,KAAKw2D,SAEnBx2D,KAAKq+D,iBAAmBlX,EACxB,IAAIgW,EAAen9D,KAAKk9D,cAAcvyD,GAClC2zD,EAAct+D,KAAKu+D,aAAa96D,EAAGkH,GAmBvC,GAlBI3K,KAAKgwD,sBAAsBvsD,EAAGkH,GAChC3K,KAAKu4D,oBAAoB90D,GAElB66D,IACPt+D,KAAKw+D,gBAAgB/6D,EAAGkH,GACxBA,EAAS3K,KAAKq+C,gBAGZr+C,KAAK8rD,WAAenhD,IACpBA,EAAOulD,YAAevlD,EAAOsrD,WAAatrD,IAAW3K,KAAKq+C,iBAC5Dr+C,KAAK2tD,eAAiB,CACpB1uD,GAAIkoD,EAAQ3tD,EACZm3D,GAAIxJ,EAAQ1tD,EACZ0rB,IAAK,EACLD,KAAM,IAINva,EAAQ,CACV,IAAI8lD,EAAkB9lD,IAAW3K,KAAKq+C,cAClC1zC,EAAOulD,YACTlwD,KAAKk4D,gBAAgBvtD,EAAQlH,GAE3BkH,IAAW3K,KAAKq+C,gBAAkB1zC,EAAOgzD,UAAaW,GACxDt+D,KAAK0wD,uBAAuBjtD,EAAGkH,EAAQ8lD,GAG3CzwD,KAAKs8D,aAAa74D,EAAG,SAEpB05D,GAAgBmB,IAAgBt+D,KAAK+gB,qBAOxCw7C,yBAA0B,WACxBv8D,KAAK27D,QAAU,KACf37D,KAAKw2D,SAAW,KAChBx2D,KAAKu2D,iBAAmB,MAQ1B8F,yBAA0B,SAAS54D,GAEjCzD,KAAKu8D,2BACLv8D,KAAKw2D,SAAWx2D,KAAK4zB,WAAWnwB,GAAAA,GAChCzD,KAAKu2D,iBAAmBv2D,KAAKmvD,kBAAkBnvD,KAAKw2D,UACpDx2D,KAAK27D,QAAU37D,KAAK0tD,kBAAoB1tD,KAAK0tD,kBAAkB/iD,OAAS3K,KAAKy1D,WAAWhyD,IAAM,MAMhGstD,iBAAkB,SAASttD,GACzB,IAAIzJ,EAAIgG,KAAK0tD,kBACb1tD,KAAKw6C,UAAYxgD,EAAE2Q,OAAO8zD,YAC1Bz+D,KAAKugB,KAAK,mBAAoB,CAC5B9c,EAAGA,EACHohB,UAAW7qB,IAGTA,EAAEu2D,QACJvwD,KAAK+6C,oBAAoB/gD,EAAE2Q,SAa/BsyD,cAAe,SAAUx5D,GAGvB,IAAIkH,EAAQw8C,EAEZ,GAJAnnD,KAAKs8D,aAAa74D,EAAG,eACrBzD,KAAKq8D,yBAAyB54D,GAG1BzD,KAAKgtD,cACPhtD,KAAKo+D,0BAA0B36D,QAIjC,GAAKzD,KAAKonD,aAAa3jD,GAAvB,CAIA,IAAI2xD,EAAgBp1D,KAAK2tD,eAGrByH,GAGFA,EAAclwC,MAFdiiC,EAAUnnD,KAAKw2D,UAEch9D,EAAI47D,EAAcn2D,GAC/Cm2D,EAAcjwC,IAAMgiC,EAAQ1tD,EAAI27D,EAAczE,GAE9C3wD,KAAKuuD,aAEGvuD,KAAK0tD,kBAMb1tD,KAAK0+D,iBAAiBj7D,IALtBkH,EAAS3K,KAAKy1D,WAAWhyD,IAAM,KAC/BzD,KAAK09D,oBAAoBj6D,EAAGkH,GAC5B3K,KAAK2+D,mBAAmBh0D,EAAQlH,IAKlCzD,KAAKs8D,aAAa74D,EAAG,QACrBzD,KAAKu8D,6BASPoC,mBAAoB,SAASh0D,EAAQlH,GACnC,IAAI+pD,EAAiBxtD,KAAKwtD,eACtBC,EAAkBztD,KAAKytD,gBAAiBF,EAAUvtD,KAAKutD,QACvDvyD,EAASgoB,KAAKvI,IAAIgzC,EAAgBzyD,OAAQuyD,EAAQvyD,QAEtDgF,KAAK4+D,yBAAyBj0D,EAAQlH,EAAG,CACvCo7D,UAAWrR,EACXsR,OAAQ,WACRC,aAAc,YACdC,MAAO,YACPC,YAAa,eAEf,IAAK,IAAItkE,EAAI,EAAGA,EAAIK,EAAQL,IAC1BqF,KAAK4+D,yBAAyBrR,EAAQ5yD,GAAI8I,EAAG,CAC3Co7D,UAAWpR,EAAgB9yD,GAC3BmkE,OAAQ,WACRE,MAAO,cAGXh/D,KAAKwtD,eAAiB7iD,EACtB3K,KAAKytD,gBAAkBztD,KAAKutD,QAAQ/wD,UAStC2/D,sBAAuB,SAASxxD,EAAQlH,GACtC,IAAIy7D,EAAqBl/D,KAAKk/D,mBAC1BzR,EAAkBztD,KAAKytD,gBAAiBF,EAAUvtD,KAAKutD,QACvDvyD,EAASgoB,KAAKvI,IAAIgzC,EAAgBzyD,OAAQuyD,EAAQvyD,QAEtDgF,KAAK4+D,yBAAyBj0D,EAAQlH,EAAG,CACvCo7D,UAAWK,EACXJ,OAAQ,YACRE,MAAO,cAET,IAAK,IAAIrkE,EAAI,EAAGA,EAAIK,EAAQL,IAC1BqF,KAAK4+D,yBAAyBrR,EAAQ5yD,GAAI8I,EAAG,CAC3Co7D,UAAWpR,EAAgB9yD,GAC3BmkE,OAAQ,YACRE,MAAO,cAGXh/D,KAAKk/D,mBAAqBv0D,GAe5Bi0D,yBAA0B,SAASj0D,EAAQlH,EAAGwF,GAC5C,IAAIk2D,EAAOC,EAAgDC,EAAxCR,EAAY51D,EAAO41D,UAClCS,EAAgBT,IAAcl0D,EAAQs0D,EAAch2D,EAAOg2D,YAAaF,EAAe91D,EAAO81D,aAC9FO,IACFH,EAAQ,CAAE17D,EAAGA,EAAGkH,OAAQA,EAAQ40D,eAAgBV,GAChDO,EAAS,CAAE37D,EAAGA,EAAGkH,OAAQk0D,EAAWW,WAAY70D,IAElD00D,EAAU10D,GAAU20D,EACTT,GAAaS,IAEtBP,GAAgB/+D,KAAKugB,KAAKw+C,EAAcK,GACxCP,EAAUt+C,KAAKtX,EAAO61D,OAAQM,IAE5BC,IACFJ,GAAej/D,KAAKugB,KAAK0+C,EAAaE,GACtCx0D,EAAO4V,KAAKtX,EAAO+1D,MAAOG,KAQ9BzD,eAAgB,SAASj4D,GACvBzD,KAAKq8D,yBAAyB54D,GAC9BzD,KAAKs8D,aAAa74D,EAAG,SACrBzD,KAAKu8D,4BAOPmC,iBAAkB,SAASj7D,GACzB,IAAI0jD,EAAUnnD,KAAK4zB,WAAWnwB,GAC1BohB,EAAY7kB,KAAK0tD,kBAErB7oC,EAAU46C,OAAAA,EACV56C,EAAUla,OAAO8yD,UAAAA,EACjB54C,EAAUisC,SAAWrtD,EAAEqtD,SACvBjsC,EAAUwrC,OAAS5sD,EAAEzD,KAAK4rD,aAE1B5rD,KAAK0/D,sBAAsBj8D,EAAGohB,GAC9B7kB,KAAK2/D,wBAAwBl8D,EAAGohB,EAAWsiC,GAE3CtiC,EAAU04C,iBAAmBv9D,KAAK+gB,oBAMpC4+C,wBAAyB,SAASl8D,EAAGohB,EAAWsiC,GAC9C,IAAI3tD,EAAI2tD,EAAQ3tD,EACZC,EAAI0tD,EAAQ1tD,EACZ22D,EAASvrC,EAAUurC,OACnBmN,GAAAA,EACA7nD,EAAU,CACR/K,OAAQka,EAAUla,OAClBlH,EAAGA,EACHohB,UAAWA,EACXsiC,QAASA,GAGA,WAAXiJ,GACDmN,EAAkBv9D,KAAK20D,cAAcn7D,EAAGC,KAAOuG,KAAKk+D,MAAM,WAAYxoD,GAErD,UAAX06C,GACNmN,EAAkBv9D,KAAK4/D,SAASn8D,EAAGohB,EAAWrrB,EAAGC,KAAOuG,KAAKk+D,MAAM,UAAWxoD,GAE7D,WAAX06C,GACNmN,EAAkBv9D,KAAKszD,aAAa95D,EAAGC,EAAG,OAASuG,KAAKk+D,MAAM,UAAWxoD,GAExD,WAAX06C,GACNmN,EAAkBv9D,KAAKszD,aAAa95D,EAAGC,EAAG,OAASuG,KAAKk+D,MAAM,UAAWxoD,GAExD,UAAX06C,GACNmN,EAAkBv9D,KAAK+xD,YAAYv4D,EAAGC,EAAG,OAASuG,KAAKk+D,MAAM,UAAWxoD,GAEvD,UAAX06C,GACNmN,EAAkBv9D,KAAK+xD,YAAYv4D,EAAGC,EAAG,OAASuG,KAAKk+D,MAAM,UAAWxoD,IAGzE6nD,EAAkBv9D,KAAKgxD,iBAAiBx3D,EAAGC,MAEzCuG,KAAKk+D,MAAM,SAAUxoD,GACrB1V,KAAKk1D,UAAUx/C,EAAQ/K,OAAO4hD,YAAcvsD,KAAKusD,aAGrD1nC,EAAU04C,gBAAkB14C,EAAU04C,iBAAmBA,GAM3DW,MAAO,SAASp+C,EAAWpK,GACzB1V,KAAKugB,KAAK,UAAYT,EAAWpK,GACjCA,EAAQ/K,OAAO4V,KAAKT,EAAWpK,IAMjCgqD,sBAAuB,SAASj8D,EAAGohB,GACjC,GAAyB,UAArBA,EAAUurC,QAA2C,WAArBvrC,EAAUurC,QAA4C,WAArBvrC,EAAUurC,OAAqB,CAClG,IAAID,EAAkBnwD,KAAK0uD,uBAAuB7pC,EAAUla,SAGvDwlD,IAA0C,WAAtBtrC,EAAUykC,SAA8C,WAAtBzkC,EAAU0kC,WAEhE4G,GAAyC,WAAtBtrC,EAAUykC,SAA8C,WAAtBzkC,EAAU0kC,WAElEvpD,KAAKwuD,yBACL3pC,EAAU46C,OAAAA,KAahBG,SAAU,SAASn8D,EAAGohB,EAAWrrB,EAAGC,GAClC,OAAIuG,KAAK6/D,oBAAoBp8D,EAAGohB,EAAUla,SACxCka,EAAUi7C,cAAgB,QACnB9/D,KAAKszD,aAAa95D,EAAGC,KAIvBorB,EAAU46C,OAAqC,UAA5B56C,EAAUi7C,eAChC9/D,KAAKwuD,yBAGP3pC,EAAUi7C,cAAgB,eACnB9/D,KAAKszD,aAAa95D,EAAGC,EAAG,aAUnComE,oBAAqB,SAASp8D,EAAGkH,GAC/B,OAAQlH,EAAEzD,KAAKyrD,cAAgBzrD,KAAKwrD,qBAAuB7gD,EAAOkY,IAAI,mBASxE66C,oBAAqB,SAAUj6D,EAAGkH,GAChC,IAAKA,EAEH,OADA3K,KAAKk1D,UAAUl1D,KAAKwsD,gBAAAA,EAGtB,IAAIF,EAAc3hD,EAAO2hD,aAAetsD,KAAKssD,YACzClI,EAAkBpkD,KAAKq+C,eAA6C,oBAA5Br+C,KAAKq+C,cAAclzC,KACzDnL,KAAKq+C,cAAgB,KAEvBkS,IAAWnM,IAAoBA,EAAgB1iC,SAAS/W,KAC3CA,EAAOqkD,kBAAkBhvD,KAAK4zB,WAAWnwB,GAAAA,IAErD8sD,EAWHvwD,KAAKk1D,UAAUl1D,KAAK+/D,gBAAgBxP,EAAQ5lD,EAAQlH,KAVhDkH,EAAO0rD,gBAGTr2D,KAAKutD,QAAQ/wD,SAASo7C,UAAU7iC,KAAI,SAAS4mD,GAC3CrP,EAAcqP,EAAQrP,aAAeA,KAGzCtsD,KAAKk1D,UAAU5I,KAUnByT,gBAAiB,SAASxP,EAAQ5lD,EAAQlH,GACxC,OAAIzD,KAAKggE,iBAAiBzP,EAAQ5lD,EAAQlH,GACjCzD,KAAK2sD,iBAEL4D,KAAUwI,EACV/4D,KAAKigE,wBAAwB1P,EAAQ5lD,EAAQlH,GAElC,QAAX8sD,GAAoB5lD,EAAOu1D,iBAC3BlgE,KAAK0sD,eAGL1sD,KAAKwsD,eAIhBwT,iBAAkB,SAASzP,EAAQ5lD,EAAQlH,GACzC,MAAe,OAAX8sD,GAA8B,OAAXA,EACd9sD,EAAEzD,KAAK6rD,cAAgBlhD,EAAOsnD,aAAetnD,EAAO6oD,aAEzC,OAAXjD,GAA8B,OAAXA,EACnB9sD,EAAEzD,KAAK6rD,cAAgBlhD,EAAOunD,aAAevnD,EAAO4oD,aAEzC,QAAXhD,EACA5lD,EAAOiqD,aAGP50D,KAAK6/D,oBAAoBp8D,EAAGkH,GACjCA,EAAO4oD,cAAgB5oD,EAAO6oD,aAAe7oD,EAAO4oD,cAAgB5oD,EAAO6oD,cAOjFyM,wBAAyB,SAAS1P,EAAQ5lD,EAAQlH,GAChD,IAAIiN,EAAIsS,KAAKooB,MAAOzgC,EAAO4Y,MAAQ,IAAO,IAa1C,OAXI7S,EAAI,IACNA,GAAK,GAEPA,GAAKqoD,EAAaxI,GACd9sD,EAAEzD,KAAK6rD,eAAiBkN,EAAaxI,GAAU,GAAM,IAEvD7/C,GAAK,GAKA1Q,KAAKu5D,UAFZ7oD,GAAK,MAlmCX,GA4mCM8J,EAAMwI,KAAKxI,IACXC,EAAMuI,KAAKvI,IAEfM,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOa,OAAO1W,UAAiD,CAQvFq5D,aAAc,SAAS96D,EAAGkH,GACxB,IAAIyzC,EAAep+C,KAAKq+C,cACxB,OAAOD,GAAgBp+C,KAAK+vD,uBAAuBtsD,IAAMkH,GAAUA,EAAOulD,YAAclwD,KAAK8rD,YACtF1N,IAAiBzzC,GAAgC,oBAAtByzC,EAAajzC,QAAgCR,EAAO0tD,SAAS,CAAE50D,EAAGA,KAQtG+6D,gBAAiB,SAAU/6D,EAAGkH,GAC5B,IAAIyzC,EAAep+C,KAAKq+C,cAEpBD,EAAauf,WAGbhzD,IAAWyzC,IAEbzzC,EAAS3K,KAAKy1D,WAAWhyD,GAAAA,KAETkH,EAAOulD,cAIrB9R,GAAsC,oBAAtBA,EAAajzC,KAC/BnL,KAAKmgE,uBAAuBx1D,EAAQlH,GAGpCzD,KAAKogE,uBAAuBz1D,EAAQlH,KAOxC08D,uBAAwB,SAASx1D,EAAQlH,GACvC,IAAI2gD,EAAkBpkD,KAAKq+C,cACvBgiB,EAAuBjc,EAAgBxjC,SAAStjB,MAAM,GACtD8mD,EAAgB1iC,SAAS/W,IAC3By5C,EAAgBkc,iBAAiB31D,GACjC3K,KAAKwtD,eAAiB7iD,EACtB3K,KAAKytD,gBAAkBztD,KAAKutD,QAAQ/wD,SACL,IAA3B4nD,EAAgB3iC,QAElBzhB,KAAKo4D,iBAAiBhU,EAAgBlhD,KAAK,GAAIO,KAIjD2gD,EAAgBmc,cAAc51D,GAC9B3K,KAAKwtD,eAAiBpJ,EACtBpkD,KAAKytD,gBAAkBztD,KAAKutD,QAAQ/wD,UAEtCwD,KAAKw3D,qBAAqB6I,EAAsB58D,IAMlD28D,uBAAwB,SAASz1D,EAAQlH,GACvC,IAAI00D,EAAiBn4D,KAAKmuD,mBAAoB7P,EAAQt+C,KAAKwgE,aAAa71D,GACxE3K,KAAKwtD,eAAiBlP,EAItBt+C,KAAKo4D,iBAAiB9Z,EAAO76C,GAC7BzD,KAAKw3D,qBAAqBW,EAAgB10D,IAO5C+8D,aAAc,SAAS71D,GACrB,IAAIwW,EAAUnhB,KAAK4gB,SAEf6/C,EADgBt/C,EAAQvf,QAAQ5B,KAAKq+C,eAAiBl9B,EAAQvf,QAAQ+I,GAElE,CAAC3K,KAAKq+C,cAAe1zC,GACrB,CAACA,EAAQ3K,KAAKq+C,eAEtB,OADAr+C,KAAKq+C,cAAc4X,WAAaj2D,KAAKq+C,cAAcqiB,cAC5C,IAAI3lD,EAAO4lD,gBAAgBF,EAAc,CAC9CvkD,OAAQlc,QAQZ4gE,sBAAuB,SAAUn9D,GAE/B,IACIo9D,EADAviB,EAAQt+C,KAAK8gE,gBAAgBr9D,GAIZ,IAAjB66C,EAAMtjD,OACRgF,KAAKk4D,gBAAgB5Z,EAAM,GAAI76C,GAExB66C,EAAMtjD,OAAS,IACtB6lE,EAAS,IAAI9lD,EAAO4lD,gBAAgBriB,EAAM1G,UAAW,CACnD17B,OAAQlc,OAEVA,KAAKk4D,gBAAgB2I,EAAQp9D,KAOjCq9D,gBAAiB,SAASr9D,GAYxB,IAXA,IACIs9D,EADAziB,EAAQ,GAERzuB,EAAK7vB,KAAK2tD,eAAe1uD,GACzB6wB,EAAK9vB,KAAK2tD,eAAegD,GACzBtoC,EAAKwH,EAAK7vB,KAAK2tD,eAAezoC,KAC9BoD,EAAKwH,EAAK9vB,KAAK2tD,eAAexoC,IAC9B67C,EAAgB,IAAIjmD,EAAOuJ,MAAM9J,EAAIqV,EAAIxH,GAAK7N,EAAIsV,EAAIxH,IACtD24C,EAAgB,IAAIlmD,EAAOuJ,MAAM7J,EAAIoV,EAAIxH,GAAK5N,EAAIqV,EAAIxH,IACtD44C,GAAkBlhE,KAAKqsD,wBACvB+Q,EAAUvtC,IAAOxH,GAAMyH,IAAOxH,EAEzB3tB,EAAIqF,KAAK4gB,SAAS5lB,OAAQL,QACjComE,EAAgB/gE,KAAK4gB,SAASjmB,KAEPomE,EAAc7Q,YAAe6Q,EAAc9iC,UAI7DijC,GAAkBH,EAAcI,mBAAmBH,EAAeC,IACnEF,EAAcK,sBAAsBJ,EAAeC,IAClDC,GAAkBH,EAAclS,cAAcmS,IAC9CE,GAAkBH,EAAclS,cAAcoS,MAEjD3iB,EAAM59C,KAAKqgE,GAEP3D,MAYR,OANI9e,EAAMtjD,OAAS,IACjBsjD,EAAQA,EAAMpnC,QAAO,SAASI,GAC5B,OAAQA,EAAO+gD,SAAS,CAAE50D,EAAGA,QAI1B66C,GAMTkf,mBAAoB,SAAS/5D,GACvBzD,KAAK8rD,WAAa9rD,KAAK2tD,gBACzB3tD,KAAK4gE,sBAAsBn9D,GAE7BzD,KAAKk1D,UAAUl1D,KAAKwsD,eAEpBxsD,KAAK2tD,eAAiB,QAQ1B5yC,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAO++B,aAAa50C,UAAuD,CAkCnGkkB,UAAW,SAAU1T,GACnBA,IAAYA,EAAU,IAEtB,IAAI4T,EAAS5T,EAAQ4T,QAAU,MAC3BC,EAAU7T,EAAQ6T,SAAW,EAC7B6sB,GAAc1gC,EAAQ0gC,YAAc,IAAM1gC,EAAQslC,oBAAsBh7C,KAAK+7C,mBAAqB,GAClG1yB,EAAWrpB,KAAKqhE,gBAAgBjrB,EAAY1gC,GAChD,OAAOqF,EAAOkF,KAAKmJ,UAAUC,EAAUC,EAAQC,IAgBjD83C,gBAAiB,SAASjrB,EAAYkrB,GAGpC,IAAIC,IADJD,EAAWA,GAAY,IACK5kD,OAAS1c,KAAK0c,QAF1C05B,EAAaA,GAAc,GAGvBorB,GAAgBF,EAAS/kD,QAAUvc,KAAKuc,QAAU65B,EAClD3hB,EAAOz0B,KAAKi+C,UACZwjB,EAAgBzhE,KAAK0c,MACrBglD,EAAiB1hE,KAAKuc,OACtBolD,EAAUltC,EAAO2hB,EACjBwrB,EAAK5hE,KAAK46C,kBAGVinB,EAAsB7hE,KAAKu7C,YAC3BumB,EAAQ,CAACH,EAAS,EAAG,EAAGA,GAHVC,EAAG,IAAMN,EAASp8C,MAAQ,IAAMkxB,GAChCwrB,EAAG,IAAMN,EAASn8C,KAAO,IAAMixB,GAG7C2rB,EAAiB/hE,KAAKg7C,oBACtB3xB,EAAWtO,EAAOkF,KAAKgJ,sBACvB+4C,EAAqBhiE,KAAKq8C,WAkB9B,OAjBAhzB,EAAS3M,MAAQ6kD,EACjBl4C,EAAS9M,OAASilD,EAClBxhE,KAAKq8C,WAAa,KAClBr8C,KAAKg7C,qBAAAA,EACLh7C,KAAKu7C,aAAAA,EACLv7C,KAAK46C,kBAAoBknB,EACzB9hE,KAAK0c,MAAQ6kD,EACbvhE,KAAKuc,OAASilD,EACdxhE,KAAKw+C,yBACLx+C,KAAKw/C,aAAan2B,EAAShN,WAAW,MAAOrc,KAAK4gB,UAClD5gB,KAAK46C,kBAAoBgnB,EACzB5hE,KAAK0c,MAAQ+kD,EACbzhE,KAAKuc,OAASmlD,EACd1hE,KAAKw+C,yBACLx+C,KAAKu7C,YAAcsmB,EACnB7hE,KAAKg7C,oBAAsB+mB,EAC3B/hE,KAAKq8C,WAAa2lB,EACX34C,KAObtO,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAO++B,aAAa50C,UAAuD,CAenG+8D,qBAAsB,SAAUC,EAAMx9D,EAAUsiB,GAC9C,OAAOhnB,KAAKmiE,aAAaD,EAAMx9D,EAAUsiB,IAwB3Cm7C,aAAc,SAAUD,EAAMx9D,EAAUsiB,GACtC,GAAKk7C,EAAL,CAKA,IAAIE,EAA8B,iBAATF,EACrBh8D,KAAKsP,MAAM0sD,GACXnnD,EAAOkF,KAAK3I,OAAOV,MAAMsrD,GAEzB16D,EAAQxH,KACRsnC,EAAW86B,EAAW96B,SACtBxmB,EAAoB9gB,KAAK8gB,kBAoB7B,OAlBA9gB,KAAK8gB,mBAAAA,SAEEshD,EAAW96B,SAElBtnC,KAAKqiE,gBAAgBD,EAAWjhD,SAAS,SAAU8F,GACjDzf,EAAM23C,QACN33C,EAAM86D,cAAcF,GAAY,WAC1B96B,EACF9/B,EAAM66D,gBAAgB,CAAC/6B,IAAW,SAAUi7B,GAC1C/6D,EAAM8/B,SAAWi7B,EAAoB,GACrC/6D,EAAMg7D,cAAc/jE,KAAK+I,EAAO46D,EAAYn7C,EAAkBnG,EAAmBpc,MAInF8C,EAAMg7D,cAAc/jE,KAAK+I,EAAO46D,EAAYn7C,EAAkBnG,EAAmBpc,QAGpFsiB,GACIhnB,OAUTwiE,cAAe,SAASJ,EAAYn7C,EAAkBnG,EAAmBpc,GACvE,IAAI8C,EAAQxH,KACZinB,EAAiBtP,SAAQ,SAAS3R,EAAKib,GAGrCzZ,EAAMwZ,SAAShb,EAAKib,MAEtBjhB,KAAK8gB,kBAAoBA,SAElBshD,EAAWjhD,eACXihD,EAAW/nB,uBACX+nB,EAAW7nB,oBACX6nB,EAAWzf,kBACXyf,EAAW1f,QAKlB1iD,KAAK+hB,YAAYqgD,GACjBpiE,KAAKu/C,YACL76C,GAAYA,KAQd49D,cAAe,SAASF,EAAY19D,GAClC,IAAI+9D,EAAS,CACXroB,iBAAAA,EACAE,cAAAA,EACAD,iBAAAA,EACAE,cAAAA,GAGF,GAAK6nB,EAAW/nB,iBAAoB+nB,EAAW7nB,cAAiB6nB,EAAWzf,YAAeyf,EAAW1f,QAArG,CAKA,IAAIggB,EAAa,WACXD,EAAOpoB,iBAAmBooB,EAAOloB,cAAgBkoB,EAAOroB,iBAAmBqoB,EAAOnoB,cACpF51C,GAAYA,KAIhB1E,KAAK2iE,eAAe,kBAAmBP,EAAW/nB,gBAAiBooB,EAAQC,GAC3E1iE,KAAK2iE,eAAe,eAAgBP,EAAW7nB,aAAckoB,EAAQC,GACrE1iE,KAAK2iE,eAAe,kBAAmBP,EAAWzf,WAAY8f,EAAQC,GACtE1iE,KAAK2iE,eAAe,eAAgBP,EAAW1f,QAAS+f,EAAQC,QAb9Dh+D,GAAYA,KAuBhBi+D,eAAgB,SAASprD,EAAU9R,EAAOg9D,EAAQ/9D,GAChD,IAAI8C,EAAQxH,KAEZ,IAAKyF,EAGH,OAFAg9D,EAAOlrD,IAAAA,OACP7S,GAAYA,KAIG,oBAAb6S,GAA+C,iBAAbA,EACpCwD,EAAOkF,KAAK8G,eAAe,CAACthB,IAAQ,SAASm9D,GAC3Cp7D,EAAM+P,GAAYqrD,EAAc,GAChCH,EAAOlrD,IAAAA,EACP7S,GAAYA,OAId1E,KAAK,MAAQ+a,EAAOkF,KAAKtjB,OAAOq1B,WAAWza,GAAAA,IAAiB9R,GAAO,WACjEg9D,EAAOlrD,IAAAA,EACP7S,GAAYA,QAWlB29D,gBAAiB,SAAUlhD,EAASzc,EAAUsiB,GACvC7F,GAA8B,IAAnBA,EAAQnmB,OAKxB+f,EAAOkF,KAAK8G,eAAe5F,GAAS,SAAS8F,GAC3CviB,GAAYA,EAASuiB,KACpB,KAAMD,GANPtiB,GAAYA,EAAS,KAczBm+D,WAAY,SAAUv5C,EAAQ5kB,GAC5B1E,KAAK4W,OAAM,SAAUA,GACnBlS,EAASkS,EAAMwS,UAAUE,QAU7Bw5C,yBAA0B,SAAUx5C,EAAQ8sB,EAAY1xC,GACtD1E,KAAK4W,OAAM,SAAUA,GACnBlS,EAASkS,EAAMmsD,wBAAwBz5C,EAAQ8sB,QASnDx/B,MAAO,SAAUlS,EAAUyjB,GACzB,IAAIhsB,EAAO+J,KAAKC,UAAUnG,KAAKolD,OAAOj9B,IACtCnoB,KAAKgjE,kBAAiB,SAASpsD,GAC7BA,EAAMurD,aAAahmE,GAAM,WACvBuI,GAAYA,EAASkS,UAW3BosD,iBAAkB,SAASt+D,GACzB,IAAI2wB,EAAKta,EAAOkF,KAAKgJ,sBAErBoM,EAAG3Y,MAAQ1c,KAAK0c,MAChB2Y,EAAG9Y,OAASvc,KAAKuc,OAEjB,IAAI3F,EAAQ,IAAImE,EAAOa,OAAOyZ,GAC9Bze,EAAM4L,OAASxiB,KAAKwiB,OAChBxiB,KAAKq6C,iBACPzjC,EAAM8kC,mBAAmB17C,KAAKq6C,gBAAgB1sC,KAAK,WACjDiJ,EAAM2oC,YACN76C,GAAYA,EAASkS,MAEvBA,EAAMqsD,uBAAyBjjE,KAAKijE,uBACpCrsD,EAAMssD,uBAAyBljE,KAAKkjE,wBAGpCx+D,GAAYA,EAASkS,MAM3B,SAAUzZ,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3C3E,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5BQ,EAAQmE,EAAOkF,KAAK3I,OAAOV,MAC3BiE,EAAUE,EAAOkF,KAAKpF,QACtBmX,EAAajX,EAAOkF,KAAKtjB,OAAOq1B,WAChCtX,EAAmBK,EAAOkF,KAAKvF,iBAC/ByoD,EAAmBpoD,EAAO++B,aAAaoL,SAAS,eAIhDnqC,EAAOhV,SAuCXgV,EAAOhV,OAASgV,EAAOkF,KAAKkT,YAAYpY,EAAO+G,cAAqD,CASlG3W,KAA0B,SAQ1Bm+C,QAA0B,OAQ1BC,QAA0B,MAO1BpkC,IAA0B,EAO1BD,KAA0B,EAO1BxI,MAA0B,EAO1BH,OAA0B,EAO1ByN,OAA0B,EAO1BC,OAA0B,EAO1BS,OAAAA,EAOAC,OAAAA,EAOA0J,QAA0B,EAO1B9Q,MAA0B,EAO1B2G,MAA0B,EAO1BC,MAA0B,EAO1Bi5C,WAA0B,GAO1BtT,oBAAAA,EAOAxD,YAA0B,KAO1BC,WAA0B,KAO1BmI,QAA0B,EAO1B2O,YAA0B,yBAO1BC,gBAA0B,KAO1BC,YAA0B,wBAQ1BC,kBAA0B,KAO1BC,YAAsB,OAOtBC,gBAA0B,KAU1BhY,iBAAAA,EAUAC,kBAAAA,EAQAzrC,KAA0B,aAS1B+mB,SAA0B,UAO1BwZ,yBAA0B,cAQ1BrG,gBAA0B,GAQ1BuV,yBAAmC,GAQnCjyB,OAA0B,KAO1B4qB,YAA0B,EAM1B3C,gBAA0B,KAO1Bge,iBAAkB,EAOlBne,cAA0B,OAO1BC,eAA0B,QAO1BC,iBAA0B,EAO1BlM,OAA0B,KAO1BoqB,wBAA0B,GAU1BC,kBAA0B,EAY1B9lC,gBAA0B,KAO1B+lC,cAA0B,EAQ1B5T,YAAAA,EAOAD,SAAAA,EAOAhyB,SAAAA,EAOA8lC,aAAAA,EAOAlU,YAAAA,EAOAqQ,kBAAAA,EAOA8D,oBAA0B,GAO1BnX,oBAAAA,EAOAxT,sBAAAA,EAUA72B,OAA0B,KAO1ByhD,eAAAA,EAOAC,eAAAA,EAOAtP,cAAAA,EAOArB,cAAAA,EAOAC,cAAAA,EAOA2Q,gBAAAA,EAOAlS,cAAAA,EAOAC,cAAAA,EAOAuB,iBAAAA,EAQAlR,mBAAAA,EAUA6hB,eAxhBmBrpD,EAAO8C,aAoiB1BwmD,gBAAAA,EAWAC,cAAAA,EAYAC,eAAAA,EAQAC,OAAAA,EAUA7G,SAAU,EAOV8G,WAAsB,OAQtBC,gBAAiB,6TAKfljE,MAAM,KASRmjE,gBAAiB,wKAGfnjE,MAAM,KASR8lC,cAAAA,EASAs9B,UAAAA,EAYAC,oBAAAA,EAMAzxC,WAAY,SAAS1d,GACfA,GACF1V,KAAKw4C,WAAW9iC,IAQpB61C,mBAAoB,WAClBvrD,KAAK8kE,iBAAmB,GACxB9kE,KAAK4gD,aAAe7lC,EAAOkF,KAAKgJ,sBAChCjpB,KAAKwvD,cAAgBxvD,KAAK4gD,aAAavkC,WAAW,MAClDrc,KAAK+kE,qBAEL/kE,KAAKwkE,OAAAA,GAkBPQ,gBAAiB,SAASC,GACxB,IAAI1mD,EAAqBxD,EAAOwD,mBAC5B7B,EAAQuoD,EAAKvoD,MAAOH,EAAS0oD,EAAK1oD,OAClC9B,EAAMM,EAAOyD,kBAAmBhE,EAAMO,EAAO0D,kBACjD,GAAI/B,GAASjC,GAAO8B,GAAU9B,GAAOiC,EAAQH,GAAUgC,EAOrD,OANI7B,EAAQlC,IACVyqD,EAAKvoD,MAAQlC,GAEX+B,EAAS/B,IACXyqD,EAAK1oD,OAAS/B,GAETyqD,EAET,IAAyBC,EAAcnqD,EAAOkF,KAAKgM,gBAA1CvP,EAAQH,EAAsDgC,GACnE+N,EAAWvR,EAAOkF,KAAKqM,SACvB9yB,EAAI8yB,EAAS9R,EAAK0qD,EAAY1rE,EAAGihB,GACjChhB,EAAI6yB,EAAS9R,EAAK0qD,EAAYzrE,EAAGghB,GAWrC,OAVIiC,EAAQljB,IACVyrE,EAAKvkB,OAAShkC,EAAQljB,EACtByrE,EAAKvoD,MAAQljB,EACbyrE,EAAKE,QAAAA,GAEH5oD,EAAS9iB,IACXwrE,EAAKtkB,OAASpkC,EAAS9iB,EACvBwrE,EAAK1oD,OAAS9iB,EACdwrE,EAAKE,QAAAA,GAEAF,GAcTG,0BAA2B,WACzB,IAAIC,EAAcrlE,KAAKslE,wBAEnB9S,EAAMxyD,KAAKyyD,0BAA0B,EAAG,GACxC8S,EAAU/S,EAAIh5D,EAAI6rE,EAAYr7C,OAAShqB,KAAKgqB,OAC5Cw7C,EAAUhT,EAAI/4D,EAAI4rE,EAAYp7C,OAASjqB,KAAKiqB,OAChD,MAAO,CAILvN,MAAO6oD,EAruBQ,EAsuBfhpD,OAAQipD,EAtuBO,EAuuBf9kB,MAAO2kB,EAAYr7C,OACnB22B,MAAO0kB,EAAYp7C,OACnBzwB,EAAG+rE,EACH9rE,EAAG+rE,IAUPT,mBAAoB,WAClB,IAAI5oD,EAAenc,KAAKkc,OACxB,GAAIlc,KAAKskE,cAAgBnoD,GAAgBA,EAAauxC,kBAAmB,CACvE,IACI0C,EAASj0C,EAAauxC,kBAAkB0C,OAC5C,GAAIpwD,OAFSmc,EAAauxC,kBAAkB/iD,QAErBylD,EAAO9yD,OAAgC,UAAvB8yD,EAAO9yD,MAAM,EAAG,GACrD,OAAA,EAGJ,IAG8CmoE,EAAcC,EAHxDxpD,EAASlc,KAAK4gD,aACdqkB,EAAOjlE,KAAKglE,gBAAgBhlE,KAAKolE,6BACjCO,EAAe5qD,EAAO0D,kBACtB/B,EAAQuoD,EAAKvoD,MAAOH,EAAS0oD,EAAK1oD,OAClCmkC,EAAQukB,EAAKvkB,MAAOC,EAAQskB,EAAKtkB,MACjCilB,EAAoBlpD,IAAU1c,KAAK6lE,YAActpD,IAAWvc,KAAK8lE,YAGjEC,EAAkB,EAAGC,EAAmB,EAAGC,GAAAA,EAC/C,GAAIL,EAAmB,CACrB,IAAIM,EAAclmE,KAAK4gD,aAAalkC,MAChCypD,EAAenmE,KAAK4gD,aAAarkC,OACjC6pD,EAAc1pD,EAAQwpD,GAAe3pD,EAAS4pD,EAGlDF,EAAqBG,IAFA1pD,EAAsB,GAAdwpD,GAAqB3pD,EAAwB,GAAf4pD,IACrDD,EAAcP,GAAgBQ,EAAeR,EAE/CS,IAAgBnB,EAAKE,SAAWzoD,EAAQipD,GAAgBppD,EAASopD,KACnEI,EAA0B,GAARrpD,EAClBspD,EAA4B,GAATzpD,GAGvB,SAdmBqpD,GADD5lE,KAAK0gD,QAAUA,GAAS1gD,KAAK2gD,QAAUA,IAgBnDslB,GACF/pD,EAAOQ,MAAQsG,KAAK2L,KAAKjS,EAAQqpD,GACjC7pD,EAAOK,OAASyG,KAAK2L,KAAKpS,EAASypD,KAGnChmE,KAAKwvD,cAAc6W,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/CrmE,KAAKwvD,cAActQ,UAAU,EAAG,EAAGhjC,EAAOQ,MAAOR,EAAOK,SAE1DkpD,EAAeR,EAAKzrE,EAAI,EACxBksE,EAAgBT,EAAKxrE,EAAI,EACzBuG,KAAK6gD,kBAAoB79B,KAAKooB,MAAMlvB,EAAOQ,MAAQ,EAAI+oD,GAAgBA,EACvEzlE,KAAK8gD,kBAAoB99B,KAAKooB,MAAMlvB,EAAOK,OAAS,EAAImpD,GAAiBA,EACzE1lE,KAAK6lE,WAAanpD,EAClB1c,KAAK8lE,YAAcvpD,EACnBvc,KAAKwvD,cAAclzC,UAAUtc,KAAK6gD,kBAAmB7gD,KAAK8gD,mBAC1D9gD,KAAKwvD,cAAchzC,MAAMkkC,EAAOC,GAChC3gD,KAAK0gD,MAAQA,EACb1gD,KAAK2gD,MAAQA,EACN,KASXnI,WAAY,SAAS9iC,GACnB1V,KAAK+hB,YAAYrM,GACjB1V,KAAKiiB,cAAcvM,EAAQwK,KAAM,QACjClgB,KAAKiiB,cAAcvM,EAAQgoB,OAAQ,UACnC19B,KAAKuiB,cAAc7M,GACnB1V,KAAKqiB,aAAa3M,EAAQwK,KAAM,QAChClgB,KAAKqiB,aAAa3M,EAAQgoB,OAAQ,WAOpC7Y,UAAW,SAASzI,GAClB,IAAI5O,EAEFA,EADExN,KAAKs+C,QAAUt+C,KAAKs+C,MAAM8B,eACxBpgD,KAAKunC,sBAGLvnC,KAAKsmE,gBAEXlqD,EAAIyI,UAAUrX,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAQhD0pC,SAAU,SAASC,GACjB,IAAIzqB,EAAsB3R,EAAOhV,OAAO2mB,oBAEpCpV,EAAS,CACPnM,KAA0BnL,KAAKmL,KAC/BiG,QAA0B2J,EAAO3J,QACjCk4C,QAA0BtpD,KAAKspD,QAC/BC,QAA0BvpD,KAAKupD,QAC/BrkC,KAA0BrK,EAAQ7a,KAAKklB,KAAMwH,GAC7CvH,IAA0BtK,EAAQ7a,KAAKmlB,IAAKuH,GAC5ChQ,MAA0B7B,EAAQ7a,KAAK0c,MAAOgQ,GAC9CnQ,OAA0B1B,EAAQ7a,KAAKuc,OAAQmQ,GAC/CxM,KAA2BlgB,KAAKkgB,MAAQlgB,KAAKkgB,KAAKg3B,SAAYl3C,KAAKkgB,KAAKg3B,WAAal3C,KAAKkgB,KAC1Fwd,OAA2B19B,KAAK09B,QAAU19B,KAAK09B,OAAOwZ,SAAYl3C,KAAK09B,OAAOwZ,WAAal3C,KAAK09B,OAChG4qB,YAA0BztC,EAAQ7a,KAAKsoD,YAAa57B,GACpDi5B,gBAA0B3lD,KAAK2lD,gBAAkB3lD,KAAK2lD,gBAAgBnpD,SAAWwD,KAAK2lD,gBACtFH,cAA0BxlD,KAAKwlD,cAC/Bme,iBAA0B3jE,KAAK2jE,iBAC/Ble,eAA0BzlD,KAAKylD,eAG/BC,iBAA0B7qC,EAAQ7a,KAAK0lD,iBAAkBh5B,GACzD1C,OAA0BnP,EAAQ7a,KAAKgqB,OAAQ0C,GAC/CzC,OAA0BpP,EAAQ7a,KAAKiqB,OAAQyC,GAC/CnJ,MAA0B1I,EAAQ7a,KAAKujB,MAAOmJ,GAC9ChC,MAA0B1qB,KAAK0qB,MAC/BC,MAA0B3qB,KAAK2qB,MAC/B0J,QAA0BxZ,EAAQ7a,KAAKq0B,QAAS3H,GAChD8sB,OAA2Bx5C,KAAKw5C,QAAUx5C,KAAKw5C,OAAOtC,SAAYl3C,KAAKw5C,OAAOtC,WAAal3C,KAAKw5C,OAChGvb,QAA0Bj+B,KAAKi+B,QAC/Bzb,OAA0BxiB,KAAKwiB,QAAUnnB,OAAO2E,KAAKwiB,QACrD43B,gBAA0Bp6C,KAAKo6C,gBAC/BnT,SAA0BjnC,KAAKinC,SAC/Bw9B,WAA0BzkE,KAAKykE,WAC/BhkB,yBAA0BzgD,KAAKygD,yBAC/B1iB,gBAA0B/9B,KAAK+9B,gBAAkB/9B,KAAK+9B,gBAAgBvhC,SAAW,KACjF0tB,MAA0BrP,EAAQ7a,KAAKkqB,MAAOwC,GAC9CvC,MAA0BtP,EAAQ7a,KAAKmqB,MAAOuC,IAcpD,OAXI1sB,KAAKsnC,WACPhwB,EAAOgwB,SAAWtnC,KAAKsnC,SAAS4P,SAASC,GACzC7/B,EAAOgwB,SAASs9B,SAAW5kE,KAAKsnC,SAASs9B,SACzCttD,EAAOgwB,SAASu9B,mBAAqB7kE,KAAKsnC,SAASu9B,oBAGrD9pD,EAAOkF,KAAKiI,uBAAuBloB,KAAMsX,EAAQ6/B,GAC5Cn3C,KAAKq5C,uBACR/hC,EAAStX,KAAKumE,qBAAqBjvD,IAG9BA,GAQT4qC,iBAAkB,SAAS/K,GAEzB,OAAOn3C,KAAKk3C,SAASC,IAOvBovB,qBAAsB,SAASjvD,GAC7B,IAAIpS,EAAY6V,EAAOkF,KAAK8F,SAASzO,EAAOnM,MAAMjG,UAkBlD,OAjBsBA,EAAUw/D,gBAChB/sD,SAAQ,SAASyI,GAClB,SAATA,GAA4B,QAATA,IAGnB9I,EAAO8I,KAAUlb,EAAUkb,WACtB9I,EAAO8I,GAE+C,mBAAjDra,OAAOb,UAAUrF,SAASpB,KAAK6Y,EAAO8I,KACc,mBAApDra,OAAOb,UAAUrF,SAASpB,KAAKyG,EAAUkb,KAGhB,IAAxB9I,EAAO8I,GAAMplB,QAA2C,IAA3BkK,EAAUkb,GAAMplB,eACnDsc,EAAO8I,OAIX9I,GAOTzX,SAAU,WACR,MAAO,YAAcmyB,EAAWhyB,KAAKmL,MAAQ,KAO/Cq7D,iBAAkB,WAChB,IAAI9wD,EAAUqF,EAAOkF,KAAK6J,YAAY9pB,KAAKunC,uBAC3C,MAAO,CAAEvd,OAAQhH,KAAK6K,IAAInY,EAAQsU,QAASC,OAAQjH,KAAK6K,IAAInY,EAAQuU,UAOtEq7C,sBAAuB,WACrB,IAAI9oD,EAAQxc,KAAKwmE,mBAAoBx8C,EAASxN,EAAMwN,OAAQC,EAASzN,EAAMyN,OAC3E,GAAIjqB,KAAKkc,OAAQ,CACf,IAAIuY,EAAOz0B,KAAKkc,OAAO+hC,UACnBwoB,EAASzmE,KAAKkc,OAAO6/B,mBACzB/xB,GAAUyK,EAAOgyC,EACjBx8C,GAAUwK,EAAOgyC,EAEnB,MAAO,CAAEz8C,OAAQA,EAAQC,OAAQA,IAOnCy8C,iBAAkB,WAChB,IAAIryC,EAAUr0B,KAAKq0B,QAInB,OAHIr0B,KAAKs+C,QACPjqB,GAAWr0B,KAAKs+C,MAAMooB,oBAEjBryC,GASTzR,KAAM,SAAS1mB,EAAKuJ,GAClB,IACIkhE,EAAY3mE,KAAK9D,KAASuJ,EAAOmhE,GAAAA,EAiCrC,OAlCoC,WAAR1qE,GAA4B,WAARA,KAI9CuJ,EAAQzF,KAAK6mE,gBAAgBphE,IAEnB,WAARvJ,GAAoBuJ,EAAQ,GAC9BzF,KAAK0qB,OAAS1qB,KAAK0qB,MACnBjlB,IAAU,GAEK,WAARvJ,GAAoBuJ,EAAQ,GACnCzF,KAAK2qB,OAAS3qB,KAAK2qB,MACnBllB,IAAU,GAEK,WAARvJ,IAAoBuJ,GAAWA,aAAiBsV,EAAOm+B,OAG/C,UAARh9C,GAAmB8D,KAAKs+C,OAC/Bt+C,KAAKs+C,MAAMt8B,IAAI,QAASvc,GAHxBA,EAAQ,IAAIsV,EAAOm+B,OAAOzzC,GAM5BzF,KAAK9D,GAAOuJ,EAERkhE,IACFC,EAAmB5mE,KAAKs+C,OAASt+C,KAAKs+C,MAAMwoB,aACxC9mE,KAAK2kE,gBAAgB/iE,QAAQ1F,IAAQ,GACvC8D,KAAKwkE,OAAAA,EACLoC,GAAoB5mE,KAAKs+C,MAAMt8B,IAAI,SAAA,IAE5B4kD,GAAoB5mE,KAAK0kE,gBAAgB9iE,QAAQ1F,IAAQ,GAChE8D,KAAKs+C,MAAMt8B,IAAI,SAAA,IAIZhiB,MAST+mE,WAAY,aAUZC,qBAAsB,WACpB,OAAIhnE,KAAKkc,QAAUlc,KAAKkc,OAAO0+B,kBACtB56C,KAAKkc,OAAO0+B,kBAEd7/B,EAAOsD,QAAQ7hB,UASxByqE,aAAc,WACZ,OAAwB,IAAjBjnE,KAAKq0B,SACM,IAAfr0B,KAAK0c,OAA+B,IAAhB1c,KAAKuc,QAAqC,IAArBvc,KAAKsoD,cAC9CtoD,KAAKi+B,SAOV8iB,OAAQ,SAAS3kC,GAEXpc,KAAKinE,gBAGLjnE,KAAKkc,QAAUlc,KAAKkc,OAAOg/B,gBAAkBl7C,KAAKs+C,QAAUt+C,KAAKknE,eAGrE9qD,EAAIyM,OACJ7oB,KAAKmnE,yBAAyB/qD,GAC9Bpc,KAAKonE,wBAAwBhrD,GAC7Bpc,KAAK6kB,UAAUzI,GACfpc,KAAKqnE,YAAYjrD,GACjBpc,KAAKmmD,WAAW/pC,EAAKpc,MACjBA,KAAK+9B,iBACP3hB,EAAIyI,UAAUrmB,MAAM4d,EAAKpc,KAAK+9B,iBAEhC/9B,KAAKwiB,QAAUzH,EAAOkF,KAAKuJ,YAAYxpB,KAAMoc,GACzCpc,KAAKmgD,eACPngD,KAAKqgD,cACLrgD,KAAKsnE,kBAAkBlrD,KAGvBpc,KAAKunE,qBACLvnE,KAAKwkE,OAAAA,EACLxkE,KAAKwnE,WAAWprD,GACZpc,KAAKokE,eAAiBpkE,KAAKqkE,gBAC7BrkE,KAAKy+D,UAAU,CAAEgJ,YAAa,qBAGlCznE,KAAKwiB,QAAUpG,EAAI4M,UACnB5M,EAAI4M,YAGNq3B,YAAa,SAAS3qC,GACpBA,EAAUA,GAAW,GAChB1V,KAAK4gD,cACR5gD,KAAKurD,qBAEHvrD,KAAK0nE,iBACP1nE,KAAKqkE,gBAAkBrkE,KAAKy+D,UAAU,CAAEgJ,YAAa,oBACrDznE,KAAKwnE,WAAWxnE,KAAKwvD,cAAe95C,EAAQ4qC,aAC5CtgD,KAAKwkE,OAAAA,IAOT+C,mBAAoB,WAClBvnE,KAAK4gD,aAAe,KACpB5gD,KAAK6lE,WAAa,EAClB7lE,KAAK8lE,YAAc,GAarB6B,UAAW,WACT,OAAO3nE,KAAK09B,QAA0B,gBAAhB19B,KAAK09B,QAAiD,IAArB19B,KAAKsoD,aAa9Dsf,QAAS,WACP,OAAO5nE,KAAKkgB,MAAsB,gBAAdlgB,KAAKkgB,MAW3B2nD,iBAAkB,WAChB,QAAwB,WAApB7nE,KAAKykE,aACPzkE,KAAK4nE,YAAa5nE,KAAK2nE,aAAsC,iBAAhB3nE,KAAKw5C,WAGhDx5C,KAAKsnC,UAeX6Y,YAAa,WAKX,OAJAngD,KAAK8nE,WAAa9nE,KAAK6nE,oBACrB7nE,KAAKokE,iBACHpkE,KAAKs+C,QAAUt+C,KAAKs+C,MAAMwoB,cAEvB9mE,KAAK8nE,YAQdC,eAAgB,WACd,QAAS/nE,KAAKw5C,SAAmC,IAAxBx5C,KAAKw5C,OAAO3C,SAAyC,IAAxB72C,KAAKw5C,OAAO1C,UAOpEkxB,oBAAqB,SAAS5rD,GAC5B,IAAI0L,EAAO9nB,KAAKsnC,SAWhB,GAVAlrB,EAAIyM,OAIFzM,EAAIqkC,yBADF34B,EAAK88C,SACwB,kBAGA,iBAG7B98C,EAAK+8C,mBAAoB,CAC3B,IAAIr3D,EAAIuN,EAAOkF,KAAKmF,gBAAgBplB,KAAKunC,uBACzCnrB,EAAIyI,UAAUrX,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEhDsa,EAAKjD,UAAUzI,GACfA,EAAII,MAAM,EAAIsL,EAAK44B,MAAO,EAAI54B,EAAK64B,OACnCvkC,EAAIK,UAAUqL,EAAK84B,cAAe94B,EAAK+4B,mBAAoB/4B,EAAKg5B,mBAChE1kC,EAAI4M,WAONw+C,WAAY,SAASprD,EAAKkkC,GACxB,IAAI2nB,EAAejoE,KAAKkgB,KAAMgoD,EAAiBloE,KAAK09B,OAChD4iB,GACFtgD,KAAKkgB,KAAO,QACZlgB,KAAK09B,OAAS,GACd19B,KAAKmoE,uBAAuB/rD,KAG5Bpc,KAAKggD,kBAAkB5jC,GACvBpc,KAAKooE,iBAAiBhsD,EAAKpc,MAC3BA,KAAKqoE,eAAejsD,EAAKpc,OAE3BA,KAAKunD,QAAQnrC,GACbpc,KAAKsoE,cAAclsD,GACnBpc,KAAKkgB,KAAO+nD,EACZjoE,KAAK09B,OAASwqC,GAGhBI,cAAe,SAASlsD,GACtB,IAAI0L,EAAO9nB,KAAKsnC,SACXxf,IAILA,EAAK5L,OAASlc,KAAKkc,OACnB4L,EAAKq4B,cACLr4B,EAAKs4B,gBAAAA,EACLt4B,EAAKu4B,YAAY,CAAEC,aAAAA,IACnBtgD,KAAKgoE,oBAAoB5rD,KAO3BkrD,kBAAmB,SAASlrD,GAC1BA,EAAII,MAAM,EAAIxc,KAAK0gD,MAAO,EAAI1gD,KAAK2gD,OACnCvkC,EAAIK,UAAUzc,KAAK4gD,cAAe5gD,KAAK6gD,mBAAoB7gD,KAAK8gD,oBAQlE4mB,aAAc,SAASa,GACrB,GAAIvoE,KAAKinE,eACP,OAAA,EAEF,GAAIjnE,KAAK4gD,eAAiB2nB,GAAcvoE,KAAK+kE,qBAE3C,OAAA,EAGA,GAAI/kE,KAAKwkE,OACNxkE,KAAKsnC,UAAYtnC,KAAKsnC,SAASu9B,oBAC/B7kE,KAAKqkE,gBAAkBrkE,KAAKg+D,gBAAgB,mBAC7C,CACA,GAAIh+D,KAAK4gD,eAAiB2nB,EAAY,CACpC,IAAI7rD,EAAQ1c,KAAK6lE,WAAa7lE,KAAK0gD,MAC/BnkC,EAASvc,KAAK8lE,YAAc9lE,KAAK2gD,MACrC3gD,KAAKwvD,cAActQ,WAAWxiC,EAAQ,GAAIH,EAAS,EAAGG,EAAOH,GAE/D,OAAA,EAGJ,OAAA,GAQFyjC,kBAAmB,SAAS5jC,GAC1B,GAAKpc,KAAKo6C,gBAAV,CAGA,IAAIoY,EAAMxyD,KAAKwoE,+BACfpsD,EAAIglC,UAAYphD,KAAKo6C,gBAErBh+B,EAAIwuC,UACD4H,EAAIh5D,EAAI,GACRg5D,EAAI/4D,EAAI,EACT+4D,EAAIh5D,EACJg5D,EAAI/4D,GAINuG,KAAKyoE,cAAcrsD,KAOrBirD,YAAa,SAASjrD,GAChBpc,KAAKs+C,QAAUt+C,KAAKs+C,MAAM8B,eAC5BhkC,EAAIuuC,YAAc3qD,KAAK0mE,mBAGvBtqD,EAAIuuC,aAAe3qD,KAAKq0B,SAI5B+zC,iBAAkB,SAAShsD,EAAKssD,GAC1BA,EAAKhrC,SACPthB,EAAI0pC,UAAY4iB,EAAKpgB,YACrBlsC,EAAI2pC,QAAU2iB,EAAKljB,cACnBppC,EAAIusD,eAAiBD,EAAK/E,iBAC1BvnD,EAAI6pC,SAAWyiB,EAAKjjB,eACpBrpC,EAAI4pC,WAAa0iB,EAAKhjB,iBACtBtpC,EAAIypC,YAAc6iB,EAAKhrC,OAAOsa,OAC1B0wB,EAAKhrC,OAAOsa,OAAO57B,EAAKpc,MACxB0oE,EAAKhrC,SAIb2qC,eAAgB,SAASjsD,EAAKssD,GACxBA,EAAKxoD,OACP9D,EAAIglC,UAAYsnB,EAAKxoD,KAAK83B,OACtB0wB,EAAKxoD,KAAK83B,OAAO57B,EAAKpc,MACtB0oE,EAAKxoD,OAIbioD,uBAAwB,SAAS/rD,GAC/BA,EAAIuuC,YAAc,EAClBvuC,EAAIypC,YAAc,cAClBzpC,EAAIglC,UAAY,WAUlBmU,aAAc,SAASn5C,EAAKwsD,EAAWC,GAChCD,GAAkC,IAArBA,EAAU5tE,SAIxB,EAAI4tE,EAAU5tE,QAChB4tE,EAAUloE,KAAKlC,MAAMoqE,EAAWA,GAE9BzF,EACF/mD,EAAI+oC,YAAYyjB,GAGhBC,GAAeA,EAAYzsD,KAS/BwzC,gBAAiB,SAASxzC,EAAK0sD,GAC7B,IAEIpzD,EAASqzD,EAAa7oB,EAFtB/B,EAAMn+C,KAAKgnE,uBACXj8C,EAAS/qB,KAAKunC,sBAGlBwhC,OAAAA,KADAD,EAAgBA,GAAiB,IACEjZ,WAA6BiZ,EAAcjZ,WAAa7vD,KAAK6vD,WAChG3P,OAAAA,IAAsB4oB,EAAc/E,YAA8B+E,EAAc/E,YAAc/jE,KAAK+jE,YACnGh5C,EAAShQ,EAAOkF,KAAK2J,0BAA0Bu0B,EAAKpzB,GACpDrV,EAAUqF,EAAOkF,KAAK6J,YAAYiB,GAClC3O,EAAIyM,OACJzM,EAAIE,UAAU5G,EAAQ0U,WAAY1U,EAAQ2U,YAC1CjO,EAAI0pC,UAAY,EAAI9lD,KAAK6jE,kBACpB7jE,KAAKs+C,QACRliC,EAAIuuC,YAAc3qD,KAAKy9D,SAAWz9D,KAAK4jE,wBAA0B,GAE/DkF,EAAcE,oBAChB5sD,EAAI2M,OAAOrO,EAAiBhF,EAAQ6N,QACpCwlD,GAAe/oE,KAAKipE,mBAAmB7sD,EAAK1G,EAASozD,KAGrD1sD,EAAI2M,OAAOrO,EAAiB1a,KAAKujB,QACjCwlD,GAAe/oE,KAAK+oE,YAAY3sD,EAAK0sD,IAEvC5oB,GAAgBlgD,KAAKkgD,aAAa9jC,EAAK0sD,GACvC1sD,EAAI4M,WAONm9B,WAAY,SAAS/pC,GACnB,GAAKpc,KAAKw5C,OAAV,CAIA,IAAgD0vB,EAA5C1vB,EAASx5C,KAAKw5C,OAAQt9B,EAASlc,KAAKkc,OACpCitD,EAASjtD,GAAUA,EAAO0+B,kBAAkB,IAAO,EACnDwuB,EAASltD,GAAUA,EAAO0+B,kBAAkB,IAAO,EAErDsuB,EADE1vB,EAAOF,WACC,CAAEtvB,OAAQ,EAAGC,OAAQ,GAGrBjqB,KAAKwmE,mBAEbtqD,GAAUA,EAAO4/B,qBACnBqtB,GAASpuD,EAAO+D,iBAChBsqD,GAASruD,EAAO+D,kBAElB1C,EAAIgqC,YAAc5M,EAAOve,MACzB7e,EAAIiqC,WAAa7M,EAAOL,KAAOp+B,EAAOkE,2BACnCkqD,EAAQC,IAAUF,EAAQl/C,OAASk/C,EAAQj/C,QAAU,EACxD7N,EAAIkqC,cAAgB9M,EAAO3C,QAAUsyB,EAAQD,EAAQl/C,OACrD5N,EAAImqC,cAAgB/M,EAAO1C,QAAUsyB,EAAQF,EAAQj/C,SAOvDw+C,cAAe,SAASrsD,GACjBpc,KAAKw5C,SAIVp9B,EAAIgqC,YAAc,GAClBhqC,EAAIiqC,WAAajqC,EAAIkqC,cAAgBlqC,EAAImqC,cAAgB,IAU3D8iB,+BAAgC,SAASjtD,EAAK8F,GAC5C,IAAKA,IAAWA,EAAO81B,OACrB,MAAO,CAAEnB,QAAS,EAAGC,QAAS,GAEhC,IAAI98C,EAAIkoB,EAAO60B,mBAAqB70B,EAAOq2B,iBACvC1B,GAAW72C,KAAK0c,MAAQ,EAAIwF,EAAO20B,SAAW,EAC9CC,GAAW92C,KAAKuc,OAAS,EAAI2F,EAAO40B,SAAW,EAWnD,MAT6B,eAAzB50B,EAAOw0B,cACTt6B,EAAIyI,UAAU7kB,KAAK0c,MAAO,EAAG,EAAG1c,KAAKuc,OAAQs6B,EAASC,GAGtD16B,EAAIyI,UAAU,EAAG,EAAG,EAAG,EAAGgyB,EAASC,GAEjC98C,GACFoiB,EAAIyI,UAAU7qB,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEzC,CAAE68C,QAASA,EAASC,QAASA,IAOtCwyB,oBAAqB,SAASltD,GACJ,WAApBpc,KAAKykE,YACPzkE,KAAKupE,cAAcntD,GACnBpc,KAAKwpE,YAAYptD,KAGjBpc,KAAKwpE,YAAYptD,GACjBpc,KAAKupE,cAAcntD,KAWvBmrC,QAAS,aAQTiiB,YAAa,SAASptD,GACfpc,KAAKkgB,OAIV9D,EAAIyM,OACJ7oB,KAAKqpE,+BAA+BjtD,EAAKpc,KAAKkgB,MACxB,YAAlBlgB,KAAKinC,SACP7qB,EAAI8D,KAAK,WAGT9D,EAAI8D,OAEN9D,EAAI4M,YAONugD,cAAe,SAASntD,GACtB,GAAKpc,KAAK09B,QAA+B,IAArB19B,KAAKsoD,YAAzB,CASA,GALItoD,KAAKw5C,SAAWx5C,KAAKw5C,OAAOJ,cAC9Bp5C,KAAKyoE,cAAcrsD,GAGrBA,EAAIyM,OACA7oB,KAAKukE,eAAiBvkE,KAAKs+C,MAAO,CACpC,IAAI4qB,EAAUlpE,KAAKwmE,mBACnBpqD,EAAII,MAAM,EAAI0sD,EAAQl/C,OAAQ,EAAIk/C,EAAQj/C,aAEnCjqB,KAAKukE,eACZnoD,EAAII,MAAM,EAAIxc,KAAKgqB,OAAQ,EAAIhqB,KAAKiqB,QAEtCjqB,KAAKu1D,aAAan5C,EAAKpc,KAAK2lD,gBAAiB3lD,KAAKypE,qBAC9CzpE,KAAK09B,OAAOsa,QAAwC,eAA9Bh4C,KAAK09B,OAAOgZ,cAKpC12C,KAAK0pE,oCAAoCttD,EAAKpc,KAAK09B,QAGnD19B,KAAKqpE,+BAA+BjtD,EAAKpc,KAAK09B,QAEhDthB,EAAIshB,SACJthB,EAAI4M,YAcN0gD,oCAAqC,SAASttD,EAAK8F,GACjD,IACiDynD,EAD7C1E,EAAOjlE,KAAKglE,gBAAgBhlE,KAAKolE,6BACjCwE,EAAU7uD,EAAOkF,KAAKgJ,sBAA6B6tC,EAAgB92D,KAAKkc,OAAO6/B,mBAC/Er/B,EAAQuoD,EAAKzrE,EAAIwG,KAAKgqB,OAAS8sC,EAAev6C,EAAS0oD,EAAKxrE,EAAIuG,KAAKiqB,OAAS6sC,EAClF8S,EAAQltD,MAAQA,EAChBktD,EAAQrtD,OAASA,GACjBotD,EAAOC,EAAQvtD,WAAW,OACrBqN,YAAaigD,EAAK7gD,OAAO,EAAG,GAAI6gD,EAAKzoB,OAAOxkC,EAAO,GAAIitD,EAAKzoB,OAAOxkC,EAAOH,GAC/EotD,EAAKzoB,OAAO,EAAG3kC,GAASotD,EAAKxoB,YAC7BwoB,EAAKrtD,UAAUI,EAAQ,EAAGH,EAAS,GACnCotD,EAAKntD,MACHyoD,EAAKvkB,MAAQ1gD,KAAKgqB,OAAS8sC,EAC3BmO,EAAKtkB,MAAQ3gD,KAAKiqB,OAAS6sC,GAE7B92D,KAAKqpE,+BAA+BM,EAAMznD,GAC1CynD,EAAKvoB,UAAYl/B,EAAO81B,OAAO57B,GAC/ButD,EAAKzpD,OACL9D,EAAIE,WAAWtc,KAAK0c,MAAQ,EAAI1c,KAAKsoD,YAAc,GAAItoD,KAAKuc,OAAS,EAAIvc,KAAKsoD,YAAc,GAC5FlsC,EAAII,MACFs6C,EAAgB92D,KAAKgqB,OAASi7C,EAAKvkB,MACnCoW,EAAgB92D,KAAKiqB,OAASg7C,EAAKtkB,OAErCvkC,EAAIypC,YAAc8jB,EAAK1wB,cAAc2wB,EAAS,cAShDC,uBAAwB,WACtB,MAAO,CAAErwE,EAAGwG,KAAKklB,KAAOllB,KAAK0c,MAAQ,EAAGjjB,EAAGuG,KAAKmlB,IAAMnlB,KAAKuc,OAAS,IAUtEutD,4BAA6B,WAC3B,GAAI9pE,KAAK+9B,gBAAiB,CACxB,IAAIroB,EAAUqF,EAAOkF,KAAK6J,YAAY9pB,KAAK+9B,iBAC3C/9B,KAAK0qB,OAAAA,EACL1qB,KAAK2qB,OAAAA,EACL3qB,KAAKgiB,IAAI,SAAUtM,EAAQsU,QAC3BhqB,KAAKgiB,IAAI,SAAUtM,EAAQuU,QAC3BjqB,KAAKujB,MAAQ7N,EAAQ6N,MACrBvjB,KAAKkqB,MAAQxU,EAAQwU,MACrBlqB,KAAKmqB,MAAQ,IAWjBmc,uBAAwB,SAASyjC,GAC/B,IAAIpoB,EAAS3hD,KAAK6pE,yBACd7pE,KAAK+9B,kBACP/9B,KAAK8pE,8BACLnoB,EAAS5mC,EAAOkF,KAAKwE,eAAek9B,EAAQ3hD,KAAK+9B,kBAEnD/9B,KAAK+9B,gBAAkB,KACnBgsC,IACF/pE,KAAKgqB,QAAU+/C,EAA2B//C,OAC1ChqB,KAAKiqB,QAAU8/C,EAA2B9/C,OAC1CjqB,KAAKgqE,MAAQD,EAA2BC,MACxChqE,KAAKiqE,MAAQF,EAA2BE,MACxCtoB,EAAOnoD,GAAKuwE,EAA2BG,WACvCvoB,EAAOloD,GAAKswE,EAA2BI,UACvCnqE,KAAK0c,MAAQqtD,EAA2BrtD,MACxC1c,KAAKuc,OAASwtD,EAA2BxtD,QAE3Cvc,KAAK0nC,oBAAoBia,EAAQ,SAAU,WAQ7C/qC,MAAO,SAASlS,EAAUyyC,GACxB,IAAIizB,EAAapqE,KAAKk3C,SAASC,GAC3Bn3C,KAAK4G,YAAYygB,WACnBrnB,KAAK4G,YAAYygB,WAAW+iD,EAAY1lE,GAGxCqW,EAAOhV,OAAOskE,YAAY,SAAUD,EAAY1lE,IAqBpD4lE,aAAc,SAAS5lE,EAAUgR,GAC/B,IAAI2T,EAAWrpB,KAAKqhE,gBAAgB3rD,GAIpC,OAHIhR,GACFA,EAAS,IAAIqW,EAAOqrB,MAAM/c,IAErBrpB,MAgBTqhE,gBAAiB,SAAS3rD,GACxBA,IAAYA,EAAU,IAEtB,IAAI7Y,EAAQke,EAAOkF,KAAMsqD,EAAa1tE,EAAMquB,oBAAoBlrB,MAC5DwqE,EAAgBxqE,KAAKs+C,MACrBmsB,EAAiBzqE,KAAKw5C,OAAQ3rB,EAAM7K,KAAK6K,IACzCuoB,GAAc1gC,EAAQ0gC,YAAc,IAAM1gC,EAAQslC,oBAAsBjgC,EAAO+D,iBAAmB,UAC/F9e,KAAKs+C,MACR5oC,EAAQg1D,kBACV7tE,EAAMouB,qBAAqBjrB,MAEzB0V,EAAQi1D,gBACV3qE,KAAKw5C,OAAS,MAGhB,IAG0B0vB,EACS7iB,EACxB9pC,EALP8Y,EAAKta,EAAOkF,KAAKgJ,sBAEjB2hD,EAAe5qE,KAAK6qE,iBAAAA,GAAgB,GACpCrxB,EAASx5C,KAAKw5C,OACdsxB,EAAe,CAAEtxE,EAAG,EAAGC,EAAG,GAG1B+/C,IACF6M,EAAa7M,EAAOL,KAElB+vB,EADE1vB,EAAOF,WACC,CAAEtvB,OAAQ,EAAGC,OAAQ,GAGrBjqB,KAAKwmE,mBAGjBsE,EAAatxE,EAAI,EAAIwpB,KAAKooB,MAAMvd,EAAI2rB,EAAO3C,SAAWwP,GAAex4B,EAAIq7C,EAAQl/C,QACjF8gD,EAAarxE,EAAI,EAAIupB,KAAKooB,MAAMvd,EAAI2rB,EAAO1C,SAAWuP,GAAex4B,EAAIq7C,EAAQj/C,SAGnF1N,EAASquD,EAAaruD,OAASuuD,EAAarxE,EAG5C47B,EAAG3Y,MAAQsG,KAAK2L,KAJRi8C,EAAaluD,MAAQouD,EAAatxE,GAK1C67B,EAAG9Y,OAASyG,KAAK2L,KAAKpS,GACtB,IAAIL,EAAS,IAAInB,EAAO++B,aAAazkB,EAAI,CACvC2lB,qBAAAA,EACAl6B,mBAAAA,EACAo6B,eAAAA,IAEqB,SAAnBxlC,EAAQ4T,SACVpN,EAAOk+B,gBAAkB,QAE3Bp6C,KAAK0nC,oBAAoB,IAAI3sB,EAAOuJ,MAAMpI,EAAOQ,MAAQ,EAAGR,EAAOK,OAAS,GAAI,SAAU,UAE1F,IAAIwuD,EAAiB/qE,KAAKkc,OAC1BA,EAAOnU,IAAI/H,MACX,IAAIqpB,EAAWnN,EAAOmlD,gBAAgBjrB,GAAc,EAAG1gC,GAcvD,OAbA1V,KAAKw5C,OAASixB,EACdzqE,KAAKgiB,IAAI,SAAU+oD,GACfP,IACFxqE,KAAKs+C,MAAQksB,GAEfxqE,KAAKgiB,IAAIuoD,GAAYhsB,YAIrBriC,EAAO0E,SAAW,GAClB1E,EAAO6oC,UACP7oC,EAAS,KAEFmN,GAkBTD,UAAW,SAAS1T,GAElB,OADAA,IAAYA,EAAU,IACfqF,EAAOkF,KAAKmJ,UAAUppB,KAAKqhE,gBAAgB3rD,GAAUA,EAAQ4T,QAAU,MAAO5T,EAAQ6T,SAAW,IAQ1GyhD,OAAQ,SAAS7/D,GACf,OAAOnL,KAAKmL,OAASA,GAOvBwW,WAAY,WACV,OAAO,GAQTyjC,OAAQ,SAASjO,GAEf,OAAOn3C,KAAKk3C,SAASC,IAqDvB8zB,YAAa,SAAS1zD,EAAU7B,GAC9BA,IAAYA,EAAU,IAEtB,IAAI+rB,EAAW,CAAEtf,WAAY,IAkB7B,OAhBAsf,EAASt2B,KAAOuK,EAAQvK,OAASuK,EAAQ00B,IAAM10B,EAAQ20B,GAAK,SAAW,UACvE5I,EAAS7Q,OAAS,CAChBf,GAAIna,EAAQma,GACZC,GAAIpa,EAAQoa,GACZzH,GAAI3S,EAAQ2S,GACZC,GAAI5S,EAAQ4S,IAEdmZ,EAASiV,cAAgBhhC,EAAQghC,eAAiB,UAC9ChhC,EAAQ00B,IAAM10B,EAAQ20B,MACxB5I,EAAS7Q,OAAOwZ,GAAK10B,EAAQ00B,GAC7B3I,EAAS7Q,OAAOyZ,GAAK30B,EAAQ20B,IAG/B5I,EAASsV,kBAAoBrhC,EAAQqhC,kBACrCh8B,EAAOqH,SAASld,UAAU+xC,aAAax4C,KAAKgjC,EAAU/rB,EAAQyM,YAEvDniB,KAAKgiB,IAAIzK,EAAUwD,EAAOqH,SAASi2B,UAAUr4C,KAAMyhC,KAqB5DypC,eAAgB,SAASx1D,EAAShR,GAChC,OAAO1E,KAAKgiB,IAAI,OAAQ,IAAIjH,EAAOuH,QAAQ5M,EAAShR,KA0BtDkhD,UAAW,SAASlwC,GAClB,OAAO1V,KAAKgiB,IAAI,SAAUtM,EAAU,IAAIqF,EAAOm+B,OAAOxjC,GAAW,OAUnEy1D,SAAU,SAASlwC,GAEjB,OADAj7B,KAAKgiB,IAAI,OAAQiZ,GACVj7B,MAST+oB,OAAQ,SAASxF,GACf,IAAI6nD,GAAuC,WAAjBprE,KAAKspD,SAAyC,WAAjBtpD,KAAKupD,UAAyBvpD,KAAK2rD,iBAY1F,OAVIyf,GACFprE,KAAKqrE,qBAGPrrE,KAAKgiB,IAAI,QAASuB,GAEd6nD,GACFprE,KAAKsrE,eAGAtrE,MASTurE,QAAS,WAEP,OADAvrE,KAAKkc,QAAUlc,KAAKkc,OAAOolC,cAActhD,MAClCA,MASTwrE,gBAAiB,WAEf,OADAxrE,KAAKkc,QAAUlc,KAAKkc,OAAO6lC,sBAAsB/hD,MAC1CA,MASTyrE,QAAS,WAEP,OADAzrE,KAAKkc,QAAUlc,KAAKkc,OAAOulC,cAAczhD,MAClCA,MAST0rE,gBAAiB,WAEf,OADA1rE,KAAKkc,QAAUlc,KAAKkc,OAAO8lC,sBAAsBhiD,MAC1CA,MAST2hD,OAAQ,WAEN,OADA3hD,KAAKkc,QAAUlc,KAAKkc,OAAOwlC,aAAa1hD,MACjCA,MAST2rE,eAAgB,WAEd,OADA3rE,KAAKkc,QAAUlc,KAAKkc,OAAO0lC,qBAAqB5hD,MACzCA,MAST4rE,gBAAiB,SAASnoE,EAAG0jD,GAC3BA,EAAUA,GAAWnnD,KAAKkc,OAAO0X,WAAWnwB,GAC5C,IAAIooE,EAAW,IAAI9wD,EAAOuJ,MAAM6iC,EAAQ3tD,EAAG2tD,EAAQ1tD,GAC/CqyE,EAAgB9rE,KAAKorD,oBAKzB,OAJIprD,KAAKujB,QACPsoD,EAAW9wD,EAAOkF,KAAKiE,YACrB2nD,EAAUC,EAAepxD,GAAkB1a,KAAKujB,SAE7C,CACL/pB,EAAGqyE,EAASryE,EAAIsyE,EAActyE,EAC9BC,EAAGoyE,EAASpyE,EAAIqyE,EAAcryE,IASlC0tE,yBAA0B,SAAU/qD,GAC9Bpc,KAAKygD,2BACPrkC,EAAIqkC,yBAA2BzgD,KAAKygD,6BAK1C1lC,EAAOkF,KAAK8rD,iBAAmBhxD,EAAOkF,KAAK8rD,gBAAgBhxD,EAAOhV,QAElEqQ,EAAO2E,EAAOhV,OAAOb,UAAW6V,EAAO1C,YAUvC0C,EAAOhV,OAAO2mB,oBAAsB,EAEpC3R,EAAOhV,OAAOskE,YAAc,SAAS/8D,EAAWgK,EAAQ5S,EAAUsnE,GAChE,IAAIt5C,EAAQ3X,EAAOzN,GACnBgK,EAASV,EAAMU,GAAAA,GACfyD,EAAOkF,KAAKqH,gBAAgB,CAAChQ,EAAO4I,KAAM5I,EAAOomB,SAAS,SAASnW,QAAAA,IACtDA,EAAS,KAClBjQ,EAAO4I,KAAOqH,EAAS,SAAA,IAEdA,EAAS,KAClBjQ,EAAOomB,OAASnW,EAAS,IAE3BxM,EAAOkF,KAAK8G,eAAe,CAACzP,EAAOgwB,WAAW,SAAS2kC,GACrD30D,EAAOgwB,SAAW2kC,EAAa,GAC/B,IAAIz1B,EAAWw1B,EAAa,IAAIt5C,EAAMpb,EAAO00D,GAAa10D,GAAU,IAAIob,EAAMpb,GAC9E5S,GAAYA,EAAS8xC,UAW3Bz7B,EAAOhV,OAAO48B,MAAQ,GA3kExB,CA4kEoCjmC,GAK9Bge,EAAmBK,EAAOkF,KAAKvF,iBAC/BC,EAAgB,CACduK,MAAO,GACPy8B,OAAQ,EACRkV,MAAO,IAETj8C,EAAgB,CACduK,KAAM,GACNw8B,OAAQ,EACRiV,OAAQ,IAGd77C,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOhV,OAAOb,UAAiD,CAWvFgnE,uBAAwB,SAAS/nD,EAAOgoD,EAAaC,EAAaC,EAAWC,GAC3E,IAEIz1B,EAASC,EAAS0b,EAFlBh5D,EAAI2qB,EAAM3qB,EACVC,EAAI0qB,EAAM1qB,EAyCd,MAtC2B,iBAAhB0yE,EACTA,EAAcxxD,EAAcwxD,GAG5BA,GAAe,GAGQ,iBAAdE,EACTA,EAAY1xD,EAAc0xD,GAG1BA,GAAa,GAKY,iBAAhBD,EACTA,EAAcxxD,EAAcwxD,GAG5BA,GAAe,GAGQ,iBAAdE,EACTA,EAAY1xD,EAAc0xD,GAG1BA,GAAa,GAGfx1B,EAAUw1B,EAAYF,IAhBtBv1B,EAAUw1B,EAAYF,IAkBPr1B,KACb0b,EAAMxyD,KAAKyyD,4BACXj5D,EAAI2qB,EAAM3qB,EAAIq9C,EAAU2b,EAAIh5D,EAC5BC,EAAI0qB,EAAM1qB,EAAIq9C,EAAU0b,EAAI/4D,GAGvB,IAAIshB,EAAOuJ,MAAM9qB,EAAGC,IAU7B8yE,uBAAwB,SAASpoD,EAAOmlC,EAASC,GAC/C,IAAI7iD,EAAI1G,KAAKksE,uBAAuB/nD,EAAOmlC,EAASC,EAAS,SAAU,UACvE,OAAIvpD,KAAKujB,MACAxI,EAAOkF,KAAKiE,YAAYxd,EAAGyd,EAAOzJ,EAAiB1a,KAAKujB,QAE1D7c,GAUTgsD,uBAAwB,SAAS/Q,EAAQ2H,EAASC,GAChD,IAAI7iD,EAAI1G,KAAKksE,uBAAuBvqB,EAAQ,SAAU,SAAU2H,EAASC,GACzE,OAAIvpD,KAAKujB,MACAxI,EAAOkF,KAAKiE,YAAYxd,EAAGi7C,EAAQjnC,EAAiB1a,KAAKujB,QAE3D7c,GAOT86C,eAAgB,WACd,IAAIgrB,EAAU,IAAIzxD,EAAOuJ,MAAMtkB,KAAKklB,KAAMllB,KAAKmlB,KAC/C,OAAOnlB,KAAKusE,uBAAuBC,EAASxsE,KAAKspD,QAAStpD,KAAKupD,UAkBjEkjB,iBAAkB,SAASnjB,EAASC,GAClC,IAAI5H,EAAS3hD,KAAKwhD,iBAClB,OAAOxhD,KAAK0yD,uBAAuB/Q,EAAQ2H,EAASC,IAUtD+I,aAAc,SAASnuC,EAAOmlC,EAASC,GACrC,IACI7iD,EAAGqgD,EADHpF,EAAS3hD,KAAKwhD,iBAclB,OAVE96C,OAAAA,IADS4iD,QAAAA,IAAkCC,EACvCvpD,KAAKksE,uBAAuBvqB,EAAQ,SAAU,SAAU2H,EAASC,GAGjE,IAAIxuC,EAAOuJ,MAAMtkB,KAAKklB,KAAMllB,KAAKmlB,KAGvC4hC,EAAK,IAAIhsC,EAAOuJ,MAAMH,EAAM3qB,EAAG2qB,EAAM1qB,GACjCuG,KAAKujB,QACPwjC,EAAKhsC,EAAOkF,KAAKiE,YAAY6iC,EAAIpF,GAASjnC,EAAiB1a,KAAKujB,SAE3DwjC,EAAG3iC,eAAe1d,IAmB3BghC,oBAAqB,SAAS1M,EAAKsuB,EAASC,GAC1C,IAAI5H,EAAS3hD,KAAKusE,uBAAuBvxC,EAAKsuB,EAASC,GACnD1iC,EAAW7mB,KAAK0yD,uBAAuB/Q,EAAQ3hD,KAAKspD,QAAStpD,KAAKupD,SACtEvpD,KAAKgiB,IAAI,OAAQ6E,EAASrtB,GAC1BwG,KAAKgiB,IAAI,MAAO6E,EAASptB,IAM3BizE,eAAgB,SAASC,GACvB,IAIIC,EAAYC,EAJZtpD,EAAQ7I,EAAiB1a,KAAKujB,OAC9BupD,EAAY9sE,KAAK+sE,iBACjBC,EAAQjyD,EAAOkF,KAAKqD,IAAIC,GAASupD,EACjCG,EAAQlyD,EAAOkF,KAAKuD,IAAID,GAASupD,EAgBrC9sE,KAAKklB,MAAQ8nD,IALXH,EADgB,iBAAPF,EACEhyD,EAAcgyD,GAGdA,EAAK,KAThBC,EAD0B,iBAAjB5sE,KAAKspD,QACD3uC,EAAc3a,KAAKspD,SAGnBtpD,KAAKspD,QAAU,KAS9BtpD,KAAKmlB,KAAO8nD,GAASJ,EAAWD,GAChC5sE,KAAKu+C,YACLv+C,KAAKspD,QAAUqjB,GAQjBtB,mBAAoB,WAClBrrE,KAAKktE,iBAAmBltE,KAAKspD,QAC7BtpD,KAAKmtE,iBAAmBntE,KAAKupD,QAE7B,IAAI5H,EAAS3hD,KAAKwhD,iBAElBxhD,KAAKspD,QAAU,SACftpD,KAAKupD,QAAU,SAEfvpD,KAAKklB,KAAOy8B,EAAOnoD,EACnBwG,KAAKmlB,IAAMw8B,EAAOloD,GAQpB6xE,aAAc,WACZ,IAAI8B,EAAcptE,KAAK0yD,uBACrB1yD,KAAKwhD,iBACLxhD,KAAKktE,iBACLltE,KAAKmtE,kBAEPntE,KAAKspD,QAAUtpD,KAAKktE,iBACpBltE,KAAKupD,QAAUvpD,KAAKmtE,iBAEpBntE,KAAKklB,KAAOkoD,EAAY5zE,EACxBwG,KAAKmlB,IAAMioD,EAAY3zE,EAEvBuG,KAAKktE,iBAAmB,KACxBltE,KAAKmtE,iBAAmB,MAM1B/hB,kBAAmB,WACjB,OAAOprD,KAAK0yD,uBAAuB1yD,KAAKwhD,iBAAkB,OAAQ,UAOxE,WAWE,IAAI9mC,EAAmBK,EAAOkF,KAAKvF,iBAC/B2yD,EAAmBtyD,EAAOkF,KAAK2J,0BAC/BnF,EAAiB1J,EAAOkF,KAAKwE,eAEjC1J,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOhV,OAAOb,UAAiD,CAcvFooE,QAAS,KAcTC,QAAS,KAKTC,eAAgB,KAKhBC,YAAa,KAKbC,UAAW,SAASC,EAAUC,GACvB5tE,KAAKstE,SACRttE,KAAKu+C,YAEP,IAAI3tB,EAAS+8C,EAAW3tE,KAAKutE,QAAUvtE,KAAKstE,QAC5C,OA7DJ,SAAmB18C,GACjB,MAAO,CACL,IAAI7V,EAAOuJ,MAAMsM,EAAO+uB,GAAGnmD,EAAGo3B,EAAO+uB,GAAGlmD,GACxC,IAAIshB,EAAOuJ,MAAMsM,EAAOivB,GAAGrmD,EAAGo3B,EAAOivB,GAAGpmD,GACxC,IAAIshB,EAAOuJ,MAAMsM,EAAOgvB,GAAGpmD,EAAGo3B,EAAOgvB,GAAGnmD,GACxC,IAAIshB,EAAOuJ,MAAMsM,EAAOkvB,GAAGtmD,EAAGo3B,EAAOkvB,GAAGrmD,IAL5C,CA6DqBm0E,EAAY5tE,KAAK6tE,WAAWF,GAAY/8C,IAW3DuwC,mBAAoB,SAAS2M,EAASC,EAASJ,EAAUC,GACvD,IAAIh9C,EAAS5wB,KAAK0tE,UAAUC,EAAUC,GAMtC,MAA+B,iBALZ7yD,EAAOmuB,aAAaiB,0BACjCvZ,EACAk9C,EACAC,GAEc5rE,QAUtBwiD,qBAAsB,SAASqpB,EAAOL,EAAUC,GAM9C,MAA+B,iBALZ7yD,EAAOmuB,aAAac,wBACrChqC,KAAK0tE,UAAUC,EAAUC,GACzBI,EAAMN,UAAUC,EAAUC,IAGRzrE,QACf6rE,EAAMppB,wBAAwB5kD,KAAM2tE,EAAUC,IAC9C5tE,KAAK4kD,wBAAwBopB,EAAOL,EAAUC,IAUrDhpB,wBAAyB,SAASopB,EAAOL,EAAUC,GAKjD,IAJA,IAAIhpD,EAAS5kB,KAAK0tE,UAAUC,EAAUC,GAClCjzE,EAAI,EAAG4G,EAAQysE,EAAMC,eACnBL,EAAYI,EAAMH,WAAWF,GAAYA,EAAWK,EAAMT,QAAUS,EAAMV,SAEzE3yE,EAAI,EAAGA,IACZ,IAAKqzE,EAAMnf,cAAcjqC,EAAOjqB,GAAI4G,GAClC,OAAA,EAGJ,OAAA,GAWF6/D,sBAAuB,SAAS0M,EAASC,EAASJ,EAAUC,GAC1D,IAAIhD,EAAe5qE,KAAK6qE,gBAAgB8C,EAAUC,GAElD,OACEhD,EAAa1lD,MAAQ4oD,EAAQt0E,GAC7BoxE,EAAa1lD,KAAO0lD,EAAaluD,OAASqxD,EAAQv0E,GAClDoxE,EAAazlD,KAAO2oD,EAAQr0E,GAC5BmxE,EAAazlD,IAAMylD,EAAaruD,QAAUwxD,EAAQt0E,GAYtDo1D,cAAe,SAAS1qC,EAAO5iB,EAAOosE,EAAUC,GAC1CrsE,EAAQA,GAASvB,KAAKiuE,eACpBL,EAAY5tE,KAAK6tE,WAAWF,GAAYA,EAAW3tE,KAAKutE,QAAUvtE,KAAKstE,SAD7E,IAGIxoD,EAAU9kB,KAAKkuE,iBAAiB/pD,EAAO5iB,GAG3C,OAAoB,IAAZujB,GAAiBA,EAAU,GAAM,GAS3CoiD,WAAY,SAAS0G,GACnB,IAAK5tE,KAAKkc,OACR,OAAA,EAIF,IAFA,IAC8CiI,EAD1C2pD,EAAU9tE,KAAKkc,OAAO++B,UAAU0E,GAAIouB,EAAU/tE,KAAKkc,OAAO++B,UAAU2E,GACpEh7B,EAAS5kB,KAAK0tE,WAAAA,EAAgBE,GACzBjzE,EAAI,EAAGA,EAAI,EAAGA,IAErB,IADAwpB,EAAQS,EAAOjqB,IACLnB,GAAKu0E,EAAQv0E,GAAK2qB,EAAM3qB,GAAKs0E,EAAQt0E,GAAK2qB,EAAM1qB,GAAKs0E,EAAQt0E,GAAK0qB,EAAM1qB,GAAKq0E,EAAQr0E,EAC7F,OAAA,EAIJ,QAAIuG,KAAKmhE,mBAAmB2M,EAASC,GAAAA,EAAeH,IAG7C5tE,KAAKmuE,wBAAwBL,EAASC,EAASH,IAYxDO,wBAAyB,SAASL,EAASC,EAASH,GAGlD,QAAI5tE,KAAK6uD,cADS,CAAEr1D,GAAIs0E,EAAQt0E,EAAIu0E,EAAQv0E,GAAK,EAAGC,GAAIq0E,EAAQr0E,EAAIs0E,EAAQt0E,GAAK,GAC7C,MAAA,EAAYm0E,IAWlDQ,oBAAqB,SAASR,GAC5B,IAAK5tE,KAAKkc,OACR,OAAA,EAEF,IAAI4xD,EAAU9tE,KAAKkc,OAAO++B,UAAU0E,GAAIouB,EAAU/tE,KAAKkc,OAAO++B,UAAU2E,GACxE,QAAI5/C,KAAKmhE,mBAAmB2M,EAASC,GAAAA,EAAeH,IAG7C5tE,KAAKmuE,wBAAwBL,EAASC,EAASH,IAQxDK,eAAgB,SAASX,GACvB,MAAO,CACLe,QAAS,CACPhiE,EAAGihE,EAAQ3tB,GACXtlD,EAAGizE,EAAQztB,IAEbyuB,UAAW,CACTjiE,EAAGihE,EAAQztB,GACXxlD,EAAGizE,EAAQ1tB,IAEb2uB,WAAY,CACVliE,EAAGihE,EAAQ1tB,GACXvlD,EAAGizE,EAAQxtB,IAEb0uB,SAAU,CACRniE,EAAGihE,EAAQxtB,GACXzlD,EAAGizE,EAAQ3tB,MAajBuuB,iBAAkB,SAAS/pD,EAAO5iB,GAChC,IAAQkoC,EAAYglC,EAEhBC,EADAC,EAAS,EAGb,IAAK,IAAIC,KAAWrtE,EAGlB,MAFAmtE,EAAQntE,EAAMqtE,IAEHviE,EAAE5S,EAAI0qB,EAAM1qB,GAAOi1E,EAAMr0E,EAAEZ,EAAI0qB,EAAM1qB,GAI3Ci1E,EAAMriE,EAAE5S,GAAK0qB,EAAM1qB,GAAOi1E,EAAMr0E,EAAEZ,GAAK0qB,EAAM1qB,IAKhDg1E,EADGC,EAAMriE,EAAE7S,IAAMk1E,EAAMr0E,EAAEb,GAAOk1E,EAAMriE,EAAE7S,GAAK2qB,EAAM3qB,EAC9Ck1E,EAAMriE,EAAE7S,IAOR2qB,EAAM1qB,EAFN,EAEe0qB,EAAM3qB,GACrBk1E,EAAMriE,EAAE5S,GAFbgwC,GAAMilC,EAAMr0E,EAAEZ,EAAIi1E,EAAMriE,EAAE5S,IAAMi1E,EAAMr0E,EAAEb,EAAIk1E,EAAMriE,EAAE7S,IAE9Bk1E,EAAMriE,EAAE7S,KAHzB,EAKmBiwC,GAItBglC,GAAMtqD,EAAM3qB,IACdm1E,GAAU,GAGG,IAAXA,IACF,MAGJ,OAAOA,GAUT9D,gBAAiB,SAAS8C,EAAUC,GAClC,IAAIh9C,EAAS5wB,KAAK0tE,UAAUC,EAAUC,GACtC,OAAO7yD,EAAOkF,KAAK0E,0BAA0BiM,IAQ/Cm8C,eAAgB,WACd,OAAO/sE,KAAKyyD,4BAA4Bj5D,GAQ1Cq1E,gBAAiB,WACf,OAAO7uE,KAAKyyD,4BAA4Bh5D,GAS1CotE,gBAAiB,SAASphE,GACxB,OAAIud,KAAK6K,IAAIpoB,GAASzF,KAAK8jE,cACrBr+D,EAAQ,GACFzF,KAAK8jE,cAGN9jE,KAAK8jE,cAGG,IAAVr+D,EACA,KAEFA,GAST+W,MAAO,SAAS/W,GAGd,OAFAzF,KAAK4iB,KAAK,SAAUnd,GACpBzF,KAAK4iB,KAAK,SAAUnd,GACbzF,KAAKu+C,aAUduwB,aAAc,SAASrpE,EAAOkoE,GAE5B,IAAIoB,EAAqB/uE,KAAK6qE,gBAAgB8C,GAAUjxD,MAAQ1c,KAAK+sE,iBACrE,OAAO/sE,KAAKwc,MAAM/W,EAAQzF,KAAK0c,MAAQqyD,IAUzCC,cAAe,SAASvpE,EAAOkoE,GAE7B,IAAIoB,EAAqB/uE,KAAK6qE,gBAAgB8C,GAAUpxD,OAASvc,KAAK6uE,kBACtE,OAAO7uE,KAAKwc,MAAM/W,EAAQzF,KAAKuc,OAASwyD,IAQ1ClB,WAAY,SAASF,GACnB,IAAIsB,EAAejvE,KAAKkvE,oBACpBhuC,EAAkBlhC,KAAKmvE,uBACvBC,EAAc/B,EAAiBnsC,EAAiB+tC,GAChD9wB,EAAMn+C,KAAKgnE,uBACXqI,EAAc1B,EAAWyB,EAAc/B,EAAiBlvB,EAAKixB,GAC7D5c,EAAMxyD,KAAKyyD,4BACXplD,EAAImlD,EAAIh5D,EAAI,EAAG6Q,EAAImoD,EAAI/4D,EAAI,EAC3BkmD,EAAKl7B,EAAe,CAAEjrB,GAAI6T,EAAG5T,GAAI4Q,GAAKglE,GACtCxvB,EAAKp7B,EAAe,CAAEjrB,EAAG6T,EAAG5T,GAAI4Q,GAAKglE,GACrCvvB,EAAKr7B,EAAe,CAAEjrB,GAAI6T,EAAG5T,EAAG4Q,GAAKglE,GACrCzvB,EAAKn7B,EAAe,CAAEjrB,EAAG6T,EAAG5T,EAAG4Q,GAAKglE,GACxC,IAAK1B,EAAU,CACb,IAAIjZ,EAAU10D,KAAK00D,QAASnxC,EAAQ7I,EAAiB1a,KAAKujB,OACtDD,EAAMvI,EAAOkF,KAAKqD,IAAIC,GAAQC,EAAMzI,EAAOkF,KAAKuD,IAAID,GACpD+rD,EAAOhsD,EAAMoxC,EAAS6a,EAAO/rD,EAAMkxC,EAAS8a,EAAWF,EAAOC,EAC9DE,EAAgBH,EAAOC,EACvB7a,IACF/U,EAAGnmD,GAAKi2E,EACR9vB,EAAGlmD,GAAK+1E,EACR3vB,EAAGrmD,GAAKg2E,EACR3vB,EAAGpmD,GAAKg2E,EACR3vB,EAAGtmD,GAAKg2E,EACR1vB,EAAGrmD,GAAKg2E,EACR7vB,EAAGpmD,GAAKi2E,EACR7vB,EAAGnmD,GAAK+1E,GAEV,IAAItW,EAAM,IAAIn+C,EAAOuJ,OAAOq7B,EAAGnmD,EAAIsmD,EAAGtmD,GAAK,GAAImmD,EAAGlmD,EAAIqmD,EAAGrmD,GAAK,GAC1D82B,EAAM,IAAIxV,EAAOuJ,OAAOu7B,EAAGrmD,EAAImmD,EAAGnmD,GAAK,GAAIqmD,EAAGpmD,EAAIkmD,EAAGlmD,GAAK,GAC1Du/D,EAAM,IAAIj+C,EAAOuJ,OAAOs7B,EAAGpmD,EAAIqmD,EAAGrmD,GAAK,GAAIomD,EAAGnmD,EAAIomD,EAAGpmD,GAAK,GAC1Dw/D,EAAM,IAAIl+C,EAAOuJ,OAAOs7B,EAAGpmD,EAAIsmD,EAAGtmD,GAAK,GAAIomD,EAAGnmD,EAAIqmD,EAAGrmD,GAAK,GAC1Di2E,EAAM,IAAI30D,EAAOuJ,MAAMiM,EAAG/2B,EAAIgqB,EAAMxjB,KAAKgkE,oBAAqBzzC,EAAG92B,EAAI6pB,EAAMtjB,KAAKgkE,qBAoBtF,IAAIpzC,EAAS,CAEX+uB,GAAIA,EAAIE,GAAIA,EAAID,GAAIA,EAAIE,GAAIA,GAW9B,OATK6tB,IAEH/8C,EAAOsoC,GAAKA,EACZtoC,EAAOL,GAAKA,EACZK,EAAOooC,GAAKA,EACZpoC,EAAOqoC,GAAKA,EAEZroC,EAAO8+C,IAAMA,GAER9+C,GAWT2tB,UAAW,SAAS+X,EAAYqZ,GAS9B,OARA3vE,KAAKstE,QAAUttE,KAAK6tE,WAAWvX,GAC1BqZ,IACH3vE,KAAKutE,QAAUvtE,KAAK6tE,YAAAA,IAItBvX,GAAet2D,KAAK4vE,kBAAoB5vE,KAAK4vE,mBAEtC5vE,MAOTkvE,kBAAmB,WACjB,OAAOn0D,EAAOkF,KAAKqK,iBAAiBtqB,OAOtCmvE,qBAAsB,WACpB,IAAIxtB,EAAS3hD,KAAKwhD,iBAClB,MAAO,CAAC,EAAG,EAAG,EAAG,EAAGG,EAAOnoD,EAAGmoD,EAAOloD,IAGvCo2E,mBAAoB,SAASna,GAC3B,IAAeoa,EAAS,GAIxB,OAHKpa,GAAa11D,KAAKs+C,QACrBwxB,EAAS9vE,KAAKs+C,MAAMuxB,mBAAmBna,GAF/B,KAIHoa,EAAS9vE,KAAKmlB,IAJX,IAIuBnlB,KAAKklB,KAJ5B,IAIyCllB,KAAKgqB,OAJ9C,IAI6DhqB,KAAKiqB,OAJlE,IAKFjqB,KAAKkqB,MALH,IAKiBlqB,KAAKmqB,MALtB,IAKoCnqB,KAAKujB,MALzC,IAKuDvjB,KAAKspD,QAL5D,IAK4EtpD,KAAKupD,QALjF,IAMFvpD,KAAK0c,MANH,IAMiB1c,KAAKuc,OANtB,IAMqCvc,KAAKsoD,YAActoD,KAAK0qB,MAAQ1qB,KAAK2qB,OAStF4c,oBAAqB,SAASmuB,GAC5B,GAAIA,EACF,OAAO11D,KAAKsmE,gBAEd,IAAIpqE,EAAM8D,KAAK6vE,qBAAsBE,EAAQ/vE,KAAKytE,cAAgBztE,KAAKytE,YAAc,IACrF,GAAIsC,EAAM7zE,MAAQA,EAChB,OAAO6zE,EAAMtqE,MAEf,IAAIslB,EAAS/qB,KAAKsmE,gBAMlB,OALItmE,KAAKs+C,QACPvzB,EAASsiD,EAAiBrtE,KAAKs+C,MAAM/W,sBAAuBxc,IAE9DglD,EAAM7zE,IAAMA,EACZ6zE,EAAMtqE,MAAQslB,EACPA,GAQTu7C,cAAe,WACb,IAAIpqE,EAAM8D,KAAK6vE,oBAAAA,GAA0BE,EAAQ/vE,KAAKwtE,iBAAmBxtE,KAAKwtE,eAAiB,IAC/F,GAAIuC,EAAM7zE,MAAQA,EAChB,OAAO6zE,EAAMtqE,MAEf,IAAIuqE,EAAUhwE,KAAKmvE,uBAKnB,OAJAnvE,KAAKoqB,WAAa4lD,EAAQ,GAC1BhwE,KAAKqqB,WAAa2lD,EAAQ,GAC1BD,EAAM7zE,IAAMA,EACZ6zE,EAAMtqE,MAAQsV,EAAOkF,KAAK6K,cAAc9qB,MACjC+vE,EAAMtqE,OAWfwqE,+BAAgC,SAAS/lD,EAAOC,EAAO+lD,GACrD,OAAOn1D,EAAOkF,KAAKuK,qBAAqB,CACtCN,MAAOA,EACPC,MAAOA,EACPH,OAAQhqB,KAAKgqB,QAAUkmD,GAAYlwE,KAAK0qB,OAAS,EAAI,GACrDT,OAAQjqB,KAAKiqB,QAAUimD,GAAYlwE,KAAK2qB,OAAS,EAAI,MAUzD69C,6BAA8B,WAC5B,IAAIlgB,EAActoD,KAAKsoD,YAGvB,MAAO,CAAE9uD,EAFDwG,KAAK0c,MAAQ4rC,EAEN7uD,EADPuG,KAAKuc,OAAS+rC,IAcxBmK,0BAA2B,SAASvoC,EAAOC,QAAAA,IAC9BD,IACTA,EAAQlqB,KAAKkqB,YAAAA,IAEJC,IACTA,EAAQnqB,KAAKmqB,OAEf,IAAsDgmD,EAAMC,EAAxD/yB,EAAar9C,KAAKwoE,+BAWtB,GARIxoE,KAAKukE,eACP4L,EAAOnwE,KAAK0c,MACZ0zD,EAAOpwE,KAAKuc,SAGZ4zD,EAAO9yB,EAAW7jD,EAClB42E,EAAO/yB,EAAW5jD,GARG,IAAVywB,GAAyB,IAAVC,EAW1B,OAAOnqB,KAAKqwE,oBAAoBF,EAAOnwE,KAAKgqB,OAAQomD,EAAOpwE,KAAKiqB,QAMlE,IAAIrF,EAAS,CACP,CACEprB,IALN22E,GAAQ,GAMF12E,IALN22E,GAAQ,IAOJ,CACE52E,EAAG22E,EACH12E,GAAI22E,GAEN,CACE52E,GAAI22E,EACJ12E,EAAG22E,GAEL,CACE52E,EAAG22E,EACH12E,EAAG22E,IAEPryC,EAAkBhjB,EAAOkF,KAAKuK,qBAAqB,CACjDR,OAAQhqB,KAAKgqB,OACbC,OAAQjqB,KAAKiqB,OACbC,MAAOA,EACPC,MAAOA,IAETmmD,EAAOv1D,EAAOkF,KAAK0E,0BAA0BC,EAAQmZ,GACzD,OAAO/9B,KAAKqwE,oBAAoBC,EAAK5zD,MAAO4zD,EAAK/zD,SAWnD8zD,oBAAqB,SAAS3zD,EAAOH,GACnC,OAAOvc,KAAKukE,cACV,CAAE/qE,EAAGkjB,EAAQ1c,KAAKsoD,YAAa7uD,EAAG8iB,EAASvc,KAAKsoD,aAEhD,CAAE9uD,EAAGkjB,EAAOjjB,EAAG8iB,IAMnBg0D,4BAA6B,WAC3B,IAAIpyB,EAAMn+C,KAAKgnE,uBACXxU,EAAMxyD,KAAKyyD,4BAGf,OAFQ13C,EAAOkF,KAAKwE,eAAe+tC,EAAKrU,GAAAA,GAE/BvW,UAAU,EAAI5nC,KAAK00D,YAlpBlC,GAwpBA35C,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOhV,OAAOb,UAAiD,CAOvFg/C,WAAY,WAOV,OANIlkD,KAAKs+C,MACPvjC,EAAO++B,aAAa50C,UAAUg/C,WAAWzlD,KAAKuB,KAAKs+C,MAAOt+C,MAEnDA,KAAKkc,QACZlc,KAAKkc,OAAOgoC,WAAWlkD,MAElBA,MAQTqkD,aAAc,WAOZ,OANIrkD,KAAKs+C,MACPvjC,EAAO++B,aAAa50C,UAAUm/C,aAAa5lD,KAAKuB,KAAKs+C,MAAOt+C,MAErDA,KAAKkc,QACZlc,KAAKkc,OAAOmoC,aAAarkD,MAEpBA,MASTskD,cAAe,SAASC,GAOtB,OANIvkD,KAAKs+C,MACPvjC,EAAO++B,aAAa50C,UAAUo/C,cAAc7lD,KAAKuB,KAAKs+C,MAAOt+C,KAAMukD,GAE5DvkD,KAAKkc,QACZlc,KAAKkc,OAAOooC,cAActkD,KAAMukD,GAE3BvkD,MAST6kD,aAAc,SAASN,GAOrB,OANIvkD,KAAKs+C,MACPvjC,EAAO++B,aAAa50C,UAAU2/C,aAAapmD,KAAKuB,KAAKs+C,MAAOt+C,KAAMukD,GAE3DvkD,KAAKkc,QACZlc,KAAKkc,OAAO2oC,aAAa7kD,KAAMukD,GAE1BvkD,MAST8oB,OAAQ,SAAS7H,GAOf,OANIjhB,KAAKs+C,OAA6B,oBAApBt+C,KAAKs+C,MAAMnzC,KAC3B4P,EAAO++B,aAAa50C,UAAU4jB,OAAOrqB,KAAKuB,KAAKs+C,MAAOt+C,KAAMihB,GAErDjhB,KAAKkc,QACZlc,KAAKkc,OAAO4M,OAAO9oB,KAAMihB,GAEpBjhB,QAMX,WACE,SAASwwE,EAAkBpwD,EAAM3a,GAC/B,GAAKA,EAGA,CAAA,GAAIA,EAAMuyC,OACb,OAAO53B,EAAO,gBAAkB3a,EAAMgM,GAAK,MAG3C,IAAIwpB,EAAQ,IAAIlgB,EAAO4f,MAAMl1B,GACzBqsB,EAAM1R,EAAO,KAAO6a,EAAMqQ,QAAU,KACpCjX,EAAU4G,EAAMkJ,WAKpB,OAJgB,IAAZ9P,IAEFvC,GAAO1R,EAAO,aAAeiU,EAAQx0B,WAAa,MAE7CiyB,EAbP,OAAO1R,EAAO,WAiBlB,IAAIvF,EAAUE,EAAOkF,KAAKpF,QAE1BE,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOhV,OAAOb,UAAiD,CAMvFurE,aAAc,SAASC,GAErB,IAAIzpC,EAAWjnC,KAAKinC,SAAWjnC,KAAKinC,SAAW,UAC3CqhB,EAActoD,KAAKsoD,YAActoD,KAAKsoD,YAAc,IACpD3C,EAAkB3lD,KAAK2lD,gBAAkB3lD,KAAK2lD,gBAAgBjgD,KAAK,KAAO,OAC1Ei+D,EAAmB3jE,KAAK2jE,iBAAmB3jE,KAAK2jE,iBAAmB,IACnEne,EAAgBxlD,KAAKwlD,cAAgBxlD,KAAKwlD,cAAgB,OAC1DC,EAAiBzlD,KAAKylD,eAAiBzlD,KAAKylD,eAAiB,QAC7DC,EAAmB1lD,KAAK0lD,iBAAmB1lD,KAAK0lD,iBAAmB,IACnErxB,OAAAA,IAAiBr0B,KAAKq0B,QAA0Br0B,KAAKq0B,QAAU,IAC/DmJ,EAAax9B,KAAKi+B,QAAU,GAAK,uBACjC/mB,EAASw5D,EAAa,GAAK1wE,KAAK2wE,eAChCzwD,EAAOswD,EAAkB,OAAQxwE,KAAKkgB,MAG1C,MAAO,CAFMswD,EAAkB,SAAUxwE,KAAK09B,QAI5C,iBAAkB4qB,EAAa,KAC/B,qBAAsB3C,EAAiB,KACvC,mBAAoBH,EAAe,KACnC,sBAAuBme,EAAkB,KACzC,oBAAqBle,EAAgB,KACrC,sBAAuBC,EAAkB,KACzCxlC,EACA,cAAe+mB,EAAU,KACzB,YAAa5S,EAAS,IACtBnd,EACAsmB,GACA93B,KAAK,KASTkrE,iBAAkB,SAASpkE,EAAOqkE,GAChC,IACI7kD,EAAaxf,EAAMwf,WACrB,kBAAyD,IAApCxf,EAAMwf,WAAWpqB,QAAQ,OAAmD,IAAnC4K,EAAMwf,WAAWpqB,QAAQ,KACrF,IAAO4K,EAAMwf,WAAc,IAAOxf,EAAMwf,YAHjC,KAGuD,GAC9Ds8B,EAAc97C,EAAM87C,YAAc,iBAAmB97C,EAAM87C,YAJpD,KAIyE,GAEhF5iC,GADAsG,EAAaA,EACFxf,EAAMkZ,SAAW,cAAgBlZ,EAAMkZ,SAAW,OAAc,IAC3EnU,EAAY/E,EAAM+E,UAAY,eAAiB/E,EAAM+E,UAP9C,KAOiE,GACxEC,EAAahF,EAAMgF,WAAa,gBAAkBhF,EAAMgF,WARjD,KAQqE,GAC5E0O,EAAO1T,EAAM0T,KAAOswD,EAAkB,OAAQhkE,EAAM0T,MAAQ,GAC5Dwd,EAASlxB,EAAMkxB,OAAS8yC,EAAkB,SAAUhkE,EAAMkxB,QAAU,GACpEozC,EAAiB9wE,KAAK+wE,qBAAqBvkE,GAM/C,OAJIskE,IACFA,EAAiB,oBAAsBA,EAd9B,MAiBJ,CACLpzC,EACA4qB,EACAt8B,EACAtG,EACAnU,EACAC,EACAs/D,EACA5wD,EAbW1T,EAAMwkE,OAAS,oBAAuBxkE,EAAMwkE,OAAU,KAAO,GAexEH,EAAgB,qBAAuB,IACvCnrE,KAAK,KAQTqrE,qBAAsB,SAASvkE,GAC7B,MAAO,CAAC,WAAY,YAAa,gBAAgB0K,QAAO,SAAS+5D,GAC/D,OAAOzkE,EAAMykE,EAAWplE,QAAQ,IAAK,QACpCnG,KAAK,MAOVirE,aAAc,WACZ,OAAO3wE,KAAKw5C,OAAS,sBAAwBx5C,KAAKw5C,OAAO/nC,GAAK,KAAO,IAOvEy/D,cAAe,WACb,MAAO,CACLlxE,KAAKyR,GAAK,OAASzR,KAAKyR,GAAK,KAAO,GACpCzR,KAAKsnC,SAAW,mBAAqBtnC,KAAKsnC,SAASyb,WAAa,MAAQ,IACxEr9C,KAAK,KAQTyrE,gBAAiB,SAASC,EAAM35B,GAC9B,IAAI5yB,EAAYusD,EAAOpxE,KAAKunC,sBAAwBvnC,KAAKsmE,gBAEzD,MADmB,cAAgBvrD,EAAOkF,KAAKwM,YAAY5H,IAExD4yB,GAAuB,IAAMz3C,KAAKqxE,wBAA0B,MAOjEA,sBAAuB,WACrB,OAAOrxE,KAAK+9B,gBAAkB,IAAMhjB,EAAOkF,KAAKwM,YAAYzsB,KAAK+9B,iBAAmB,IAGtFuzC,UAAW,SAASC,GAClB,GAAIvxE,KAAKo6C,gBAAiB,CACxB,IAAI1tB,EAAsB3R,EAAOhV,OAAO2mB,oBACxC6kD,EAAY7wE,KACV,aACAV,KAAKwxE,mBAAmBxxE,KAAKo6C,iBAC7B,OACAv/B,GAAS7a,KAAK0c,MAAQ,EAAGgQ,GACzB,QACA7R,GAAS7a,KAAKuc,OAAS,EAAGmQ,GAC1B,YACA7R,EAAQ7a,KAAK0c,MAAOgQ,GACpB,aACA7R,EAAQ7a,KAAKuc,OAAQmQ,GACrB,iBASN0qB,MAAO,SAASpwB,GACd,OAAOhnB,KAAKyxE,qBAAqBzxE,KAAK0xE,OAAO1qD,GAAU,CAAEA,QAASA,KAQpEy8B,cAAe,SAASz8B,GACtB,MAAO,KAAOhnB,KAAK2xE,6BAA6B3xE,KAAK0xE,OAAO1qD,GAAU,CAAEA,QAASA,KAMnF2qD,6BAA8B,SAASC,EAAcl8D,GAEnD,IAAIsR,GADJtR,EAAUA,GAAW,IACCsR,QAElB6qD,EAAe,CACb7xE,KAAKmxE,iBAAAA,EAFez7D,EAAQ+hC,qBAAuB,IAGnDz3C,KAAKkxE,iBACLxrE,KAAK,IAEPub,EAAQ2wD,EAAahwE,QAAQ,gBAEjC,OADAgwE,EAAa3wD,GAAS4wD,EACf7qD,EAAUA,EAAQ4qD,EAAalsE,KAAK,KAAOksE,EAAalsE,KAAK,KAMtE+rE,qBAAsB,SAASG,EAAcl8D,GAE3C,IAQIm8D,EAA2BC,EAR3BC,GADJr8D,EAAUA,GAAW,IACCq8D,QAClB/qD,EAAUtR,EAAQsR,QAClBgrD,EAAYD,EAAU,GAAK,UAAY/xE,KAAKywE,eAAiB,KAC7DwB,EAAav8D,EAAQw8D,WAAa,UAAYlyE,KAAK2wE,eAAiB,KAAO,GAC3ErpC,EAAWtnC,KAAKsnC,SAChB6qC,EAAenyE,KAAKukE,cAAgB,sCAAwC,GAC5E6N,EAAmB9qC,GAAYA,EAASu9B,mBACxCnnC,EAAS19B,KAAK09B,OAAQxd,EAAOlgB,KAAKkgB,KAAMs5B,EAASx5C,KAAKw5C,OACxCnC,EAAS,GAEvBp2B,EAAQ2wD,EAAahwE,QAAQ,gBAC7B61C,EAAsB/hC,EAAQ+hC,oBAwClC,OAvCInQ,IACFA,EAASyb,WAAa,YAAchoC,EAAOhV,OAAO48B,QAClDmvC,EAAiB,iBAAmBxqC,EAASyb,WAAa,QACxDzb,EAASmc,cAAcz8B,GACvB,iBAEAorD,GACF/6B,EAAO32C,KACL,MAAOuxE,EAAYjyE,KAAKkxE,gBAAiB,QAG7C75B,EAAO32C,KACL,MACAV,KAAKmxE,iBAAAA,GACJiB,EAAuD,GAApCH,EAAajyE,KAAKkxE,gBACtC,QAEFW,EAAe,CACbG,EACAG,EACAJ,EAAU,GAAK/xE,KAAKqyE,gBAAiB,IACrC56B,EAAsB,cAAgBA,EAAsB,KAAO,IACnE/xC,KAAK,IACPksE,EAAa3wD,GAAS4wD,EAClB3xD,GAAQA,EAAK83B,QACfX,EAAO32C,KAAKwf,EAAKk3B,MAAMp3C,OAErB09B,GAAUA,EAAOsa,QACnBX,EAAO32C,KAAKg9B,EAAO0Z,MAAMp3C,OAEvBw5C,GACFnC,EAAO32C,KAAK84C,EAAOpC,MAAMp3C,OAEvBsnC,GACF+P,EAAO32C,KAAKoxE,GAEdz6B,EAAO32C,KAAKkxE,EAAalsE,KAAK,KAC9B2xC,EAAO32C,KAAK,UACZ0xE,GAAoB/6B,EAAO32C,KAAK,UACzBsmB,EAAUA,EAAQqwB,EAAO3xC,KAAK,KAAO2xC,EAAO3xC,KAAK,KAG1D2sE,cAAe,WACb,MAA2B,SAApBryE,KAAKykE,WAAwB,iBAAmBzkE,KAAKykE,WAAa,KAAO,MApQtF,GA2QA,WAEE,IAAIruD,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAMhC,SAASk8D,EAAU9vE,EAAQqF,EAAa0qE,GACtC,IAAIC,EAAS,GACbD,EAAM56D,SAAQ,SAASyI,GACrBoyD,EAAOpyD,GAAQ5d,EAAO4d,MAExBhK,EAAO5T,EAAOqF,GAAc2qE,GAAAA,GA2C9Bz3D,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOhV,OAAOb,UAAiD,CAOvF84D,gBAAiB,SAASyJ,GAExB,IAAIgL,EAAoB,KADxBhL,EAAcA,GA7DA,mBA+Dd,OAAI1hE,OAAOP,KAAKxF,KAAKyyE,IAAoBz3E,OAASgF,KAAKynE,GAAazsE,SAlDxE,SAAS03E,EAASC,EAAWC,EAAcC,GACzC,GAAIF,IAAcC,EAEhB,OAAA,EAEG,GAAInsE,MAAMqQ,QAAQ67D,GAAY,CACjC,IAAKlsE,MAAMqQ,QAAQ87D,IAAiBD,EAAU33E,SAAW43E,EAAa53E,OACpE,OAAA,EAEF,IAAK,IAAIL,EAAI,EAAGD,EAAMi4E,EAAU33E,OAAQL,EAAID,EAAKC,IAC/C,IAAK+3E,EAASC,EAAUh4E,GAAIi4E,EAAaj4E,IACvC,OAAA,EAGJ,OAAA,EAEG,GAAIg4E,GAAkC,iBAAdA,EAAwB,CACnD,IAAmCz2E,EAA/BsJ,EAAOO,OAAOP,KAAKmtE,GACvB,IAAKC,GACuB,iBAAjBA,IACLC,GAAartE,EAAKxK,SAAW+K,OAAOP,KAAKotE,GAAc53E,OAE3D,OAAA,EAEF,IAASL,EAAI,EAAGD,EAAM8K,EAAKxK,OAAQL,EAAID,EAAKC,IAI1C,GAAY,YAHZuB,EAAMsJ,EAAK7K,MAMN+3E,EAASC,EAAUz2E,GAAM02E,EAAa12E,IACzC,OAAA,EAGJ,OAAA,GAnCJ,CAqDqB8D,KAAKyyE,GAAoBzyE,MAAAA,IAQ5Cy+D,UAAW,SAAS/oD,GAClB,IAAI+xD,EAAc/xD,GAAWA,EAAQ+xD,aA3EvB,kBA4EV5/D,EAAc,IAAM4/D,EACxB,OAAKznE,KAAK6H,IAGVyqE,EAAUtyE,KAAM6H,EAAa7H,KAAKynE,IAC9B/xD,GAAWA,EAAQgvD,iBACrB4N,EAAUtyE,KAAM6H,EAAa6N,EAAQgvD,iBAEhC1kE,MANEA,KAAKg/C,WAAWtpC,IAc3BspC,WAAY,SAAStpC,GAEnB,IAAI+xD,GADJ/xD,EAAUA,GAAW,IACK+xD,aA9FZ,kBAkGd,OAHA/xD,EAAQ+xD,YAAcA,EACtBznE,KAAK,IAAMynE,GAAe,GAC1BznE,KAAKy+D,UAAU/oD,GACR1V,QArGb,GA2GA,WAEE,IAAI0a,EAAmBK,EAAOkF,KAAKvF,iBAEnCK,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOhV,OAAOb,UAAiD,CAMvF4tE,oBAAqB,KAQrB9jB,kBAAmB,SAAS7H,GAG1B,IAAKnnD,KAAK+jE,aAAe/jE,KAAKs+C,QAAWt+C,KAAKkc,QAAUlc,KAAKkc,OAAOmiC,gBAAkBr+C,KACpF,OAAA,EAGF,IAEI8kB,EACAvjB,EAHAtC,EAAKkoD,EAAQ3tD,EACbm3D,EAAKxJ,EAAQ1tD,EAIjB,IAAK,IAAIkB,KADTqF,KAAK29D,SAAW,EACF39D,KAAKstE,QAEjB,GAAKttE,KAAK+yE,iBAAiBp4E,KAIjB,QAANA,GAAgBqF,KAAKkgE,qBAIrBlgE,KAAK6iB,IAAI,mBACH,OAANloB,GAAoB,OAANA,GAAoB,OAANA,GAAoB,OAANA,KAI9C4G,EAAQvB,KAAKiuE,eAAejuE,KAAKstE,QAAQ3yE,GAAG41D,QAiB5B,KADhBzrC,EAAU9kB,KAAKkuE,iBAAiB,CAAE10E,EAAGyF,EAAIxF,EAAGk3D,GAAMpvD,KAC7BujB,EAAU,GAAM,GAEnC,OADA9kB,KAAK29D,SAAWhjE,EACTA,EAGX,OAAA,GAQFi1E,iBAAkB,WAChB,IAOIp2E,EAAGC,EAPHm3B,EAAS5wB,KAAKstE,QACd0F,EAAWt4D,EAAiB,GAAK1a,KAAKujB,OAGtC0vD,EAAqC,QAAlBjzE,KAAKojE,WACxB8P,EAAgBD,EAAmBl4D,EAAOkF,KAAKqD,IAAI0vD,GACnDG,EAAgBF,EAAmBl4D,EAAOkF,KAAKuD,IAAIwvD,GAGvD,IAAK,IAAI7uD,KAASyM,EAGhBA,EAAOzM,GAAOosC,OAAS,CACrB5Q,GAAI,CACFnmD,GAJJA,EAAIo3B,EAAOzM,GAAO3qB,GAIP25E,EACP15E,GAJJA,EAAIm3B,EAAOzM,GAAO1qB,GAIPy5E,GAETrzB,GAAI,CACFrmD,EAAGA,EAAI05E,EACPz5E,EAAGA,EAAI05E,GAETrzB,GAAI,CACFtmD,EAAGA,EAAI05E,EACPz5E,EAAGA,EAAI05E,GAETvzB,GAAI,CACFpmD,EAAGA,EAAI25E,EACP15E,EAAGA,EAAIy5E,KAef9L,wBAAyB,SAAShrD,GAChC,IAAKpc,KAAK2vD,0BACP3vD,KAAKkc,SAAWlc,KAAKkc,OAAOq/B,aAC5Bv7C,KAAKkc,QAAUlc,KAAKkc,OAAOmiC,gBAAkBr+C,KAE9C,OAAOA,KAEToc,EAAIyM,OACJ,IAAI84B,EAAS3hD,KAAKwhD,iBAAkB4xB,EAAKpzE,KAAKuwE,8BAC1CpyB,EAAMn+C,KAAKkc,OAAO0+B,kBAOtB,OANAx+B,EAAIE,UAAUqlC,EAAOnoD,EAAGmoD,EAAOloD,GAC/B2iB,EAAII,MAAM,EAAI2hC,EAAI,GAAI,EAAIA,EAAI,IAC9B/hC,EAAI2M,OAAOrO,EAAiB1a,KAAKujB,QACjCnH,EAAIglC,UAAYphD,KAAK2vD,yBACrBvzC,EAAIwuC,UAAUwoB,EAAG55E,EAAI,GAAI45E,EAAG35E,EAAI,EAAG25E,EAAG55E,EAAG45E,EAAG35E,GAC5C2iB,EAAI4M,UACGhpB,MAYT+oE,YAAa,SAAS3sD,EAAK0sD,GACzBA,EAAgBA,GAAiB,GACjC,IAAIsK,EAAKpzE,KAAKuwE,8BACVjoB,EAActoD,KAAK6jE,kBACnBnnD,EAAQ02D,EAAG55E,EAAI8uD,EACf/rC,EAAS62D,EAAG35E,EAAI6uD,EAChB+qB,OAAAA,IAA2BvK,EAAc5I,iBACvC4I,EAAc5I,iBAAmBlgE,KAAKkgE,iBACxC6D,OAAAA,IAAqB+E,EAAc/E,YACjC+E,EAAc/E,YAAc/jE,KAAK+jE,YACnCC,OAAAA,IAA6B8E,EAAc9E,oBACzC8E,EAAc9E,oBAAsBhkE,KAAKgkE,oBAa/C,GAXA5nD,EAAIyM,OACJzM,EAAIypC,YAAcijB,EAAczF,aAAerjE,KAAKqjE,YACpDrjE,KAAKu1D,aAAan5C,EAAK0sD,EAAcxF,iBAAmBtjE,KAAKsjE,gBAAiB,MAE9ElnD,EAAIo5C,YACD94C,EAAQ,GACRH,EAAS,EACVG,EACAH,GAGE82D,GAAqBrzE,KAAK+yE,iBAAiB,QAAUhP,EAAa,CAEpE,IAAIuP,GAAgB/2D,EAAS,EAE7BH,EAAIsN,YACJtN,EAAI0M,OAAO,EAAGwqD,GACdl3D,EAAI8kC,OAAO,EAAGoyB,EAAetP,GAC7B5nD,EAAIshB,SAIN,OADAthB,EAAI4M,UACGhpB,MAaTipE,mBAAoB,SAAS7sD,EAAK1G,EAASozD,GACzCA,EAAgBA,GAAiB,GACjC,IAAIpiE,EAAI,CAAElN,EAAGwG,KAAK0c,MAAOjjB,EAAGuG,KAAKuc,QAC7BwO,EAAShQ,EAAOkF,KAAK6K,cAAc,CACjCd,OAAQtU,EAAQsU,OAChBC,OAAQvU,EAAQuU,OAChBC,MAAOxU,EAAQwU,QAEjBkpD,EAAKr4D,EAAOkF,KAAKwE,eAAe/d,EAAGqkB,GACnCu9B,EAActoD,KAAKsoD,YACnBub,EAAoB7jE,KAAK6jE,kBACzBnnD,EACE02D,EAAG55E,EAAI8uD,GAAetoD,KAAKukE,cAAgBvkE,KAAKkc,OAAO+hC,UAAYvoC,EAAQsU,QAAU65C,EACvFtnD,EACE62D,EAAG35E,EAAI6uD,GAAetoD,KAAKukE,cAAgBvkE,KAAKkc,OAAO+hC,UAAYvoC,EAAQuU,QAAU45C,EAa3F,OAZAznD,EAAIyM,OACJ7oB,KAAKu1D,aAAan5C,EAAK0sD,EAAcxF,iBAAmBtjE,KAAKsjE,gBAAiB,MAC9ElnD,EAAIypC,YAAcijB,EAAczF,aAAerjE,KAAKqjE,YAEpDjnD,EAAIo5C,YACD94C,EAAQ,GACRH,EAAS,EACVG,EACAH,GAGFH,EAAI4M,UACGhpB,MAYTkgD,aAAc,SAAS9jC,EAAK0sD,GAC1BA,EAAgBA,GAAiB,GACjC,IAAIsK,EAAKpzE,KAAKuwE,8BACV7zD,EAAQ02D,EAAG55E,EACX+iB,EAAS62D,EAAG35E,EACZ85E,EAAczK,EAAc1F,YAAcpjE,KAAKojE,WAC/Cl+C,IAASxI,EAAQ62D,GAAe,EAChCpuD,IAAQ5I,EAASg3D,GAAe,EAGhCrT,OAAAA,IAA0B4I,EAAc5I,iBACtC4I,EAAc5I,iBAAmBlgE,KAAKkgE,iBACxCltC,QAAAA,IAJ4B81C,EAAchZ,mBACxCgZ,EAAchZ,mBAAqB9vD,KAAK8vD,oBAGR,SAAW,OA6DjD,OA3DA1zC,EAAIyM,OACJzM,EAAIypC,YAAczpC,EAAIglC,UAAY0nB,EAAcvF,aAAevjE,KAAKujE,YAC/DvjE,KAAK8vD,qBACR1zC,EAAIypC,YAAcijB,EAActF,mBAAqBxjE,KAAKwjE,mBAE5DxjE,KAAKu1D,aAAan5C,EAAK0sD,EAAcpF,iBAAmB1jE,KAAK0jE,gBAAiB,MAG9E1jE,KAAKwzE,aAAa,KAAMp3D,EAAK4W,EAC3B9N,EACAC,EAAK2jD,GAGP9oE,KAAKwzE,aAAa,KAAMp3D,EAAK4W,EAC3B9N,EAAOxI,EACPyI,EAAK2jD,GAGP9oE,KAAKwzE,aAAa,KAAMp3D,EAAK4W,EAC3B9N,EACAC,EAAM5I,EAAQusD,GAGhB9oE,KAAKwzE,aAAa,KAAMp3D,EAAK4W,EAC3B9N,EAAOxI,EACPyI,EAAM5I,EAAQusD,GAEX9oE,KAAK6iB,IAAI,oBAGZ7iB,KAAKwzE,aAAa,KAAMp3D,EAAK4W,EAC3B9N,EAAOxI,EAAQ,EACfyI,EAAK2jD,GAGP9oE,KAAKwzE,aAAa,KAAMp3D,EAAK4W,EAC3B9N,EAAOxI,EAAQ,EACfyI,EAAM5I,EAAQusD,GAGhB9oE,KAAKwzE,aAAa,KAAMp3D,EAAK4W,EAC3B9N,EAAOxI,EACPyI,EAAM5I,EAAS,EAAGusD,GAGpB9oE,KAAKwzE,aAAa,KAAMp3D,EAAK4W,EAC3B9N,EACAC,EAAM5I,EAAS,EAAGusD,IAIlB5I,GACFlgE,KAAKwzE,aAAa,MAAOp3D,EAAK4W,EAC5B9N,EAAOxI,EAAQ,EACfyI,EAAMnlB,KAAKgkE,oBAAqB8E,GAGpC1sD,EAAI4M,UAEGhpB,MAMTwzE,aAAc,SAASC,EAASr3D,EAAK4W,EAAY9N,EAAMC,EAAK2jD,GAE1D,GADAA,EAAgBA,GAAiB,GAC5B9oE,KAAK+yE,iBAAiBU,GAA3B,CAGA,IAAIhyD,EAAOzhB,KAAKojE,WAAY1lC,GAAU19B,KAAK8vD,oBAAsB9vD,KAAKwjE,kBACtE,OAAQsF,EAAcrF,aAAezjE,KAAKyjE,aACxC,IAAK,SACHrnD,EAAIsN,YACJtN,EAAI4sC,IAAI9jC,EAAOzD,EAAO,EAAG0D,EAAM1D,EAAO,EAAGA,EAAO,EAAG,EAAG,EAAIuB,KAAKI,IAAAA,GAC/DhH,EAAI4W,KACA0K,GACFthB,EAAIshB,SAEN,MACF,QACE19B,KAAK8vD,oBAAsB1zC,EAAI8iC,UAAUh6B,EAAMC,EAAK1D,EAAMA,GAC1DrF,EAAI4W,EAAa,QAAQ9N,EAAMC,EAAK1D,EAAMA,GACtCic,GACFthB,EAAIo5C,WAAWtwC,EAAMC,EAAK1D,EAAMA,MAUxCsxD,iBAAkB,SAASW,GACzB,OAAO1zE,KAAK2zE,yBAAyBD,IAUvCE,kBAAmB,SAASF,EAAaz1C,GAEvC,OADAj+B,KAAK2zE,yBAAyBD,GAAez1C,EACtCj+B,MAkBT6zE,sBAAuB,SAASn+D,GAG9B,IAAK,IAAIhP,KAFTgP,IAAYA,EAAU,IAERA,EACZ1V,KAAK4zE,kBAAkBltE,EAAGgP,EAAQhP,IAEpC,OAAO1G,MAQT2zE,uBAAwB,WActB,OAbK3zE,KAAK8yE,sBACR9yE,KAAK8yE,oBAAsB,CACzBnzB,IAAAA,EACAE,IAAAA,EACAD,IAAAA,EACAE,IAAAA,EACAoZ,IAAAA,EACA3oC,IAAAA,EACAyoC,IAAAA,EACAC,IAAAA,EACAyW,KAAAA,IAGG1vE,KAAK8yE,qBASdxa,WAAY,aAWZD,SAAU,eApad,GA2aAt9C,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAO++B,aAAa50C,UAAuD,CAOnG4uE,YAAa,IAWbC,gBAAiB,SAAUz8D,EAAQ08D,GAGjC,IAAIlsE,EAAQ,aACRwwB,GAHJ07C,EAAYA,GAAa,IAGE17C,YAAcxwB,EACrC4xB,EAAWs6C,EAAUt6C,UAAY5xB,EACjCN,EAAQxH,KAiBZ,OAfA+a,EAAOkF,KAAKoZ,QAAQ,CAClBQ,WAAYviB,EAAO4N,KACnB4U,SAAU95B,KAAKqhD,YAAYn8B,KAC3BsU,SAAUx5B,KAAK8zE,YACfp6C,SAAU,SAASj0B,GACjB6R,EAAO0K,IAAI,OAAQvc,GACnB+B,EAAMuZ,mBACN2Y,KAEFpB,WAAY,WACVhhB,EAAOinC,YACPjmB,OAIGt4B,MAYTi0E,gBAAiB,SAAU38D,EAAQ08D,GAGjC,IAAIlsE,EAAQ,aACRwwB,GAHJ07C,EAAYA,GAAa,IAGE17C,YAAcxwB,EACrC4xB,EAAWs6C,EAAUt6C,UAAY5xB,EACjCN,EAAQxH,KAiBZ,OAfA+a,EAAOkF,KAAKoZ,QAAQ,CAClBQ,WAAYviB,EAAO6N,IACnB2U,SAAU95B,KAAKqhD,YAAYl8B,IAC3BqU,SAAUx5B,KAAK8zE,YACfp6C,SAAU,SAASj0B,GACjB6R,EAAO0K,IAAI,MAAOvc,GAClB+B,EAAMuZ,mBACN2Y,KAEFpB,WAAY,WACVhhB,EAAOinC,YACPjmB,OAIGt4B,MAYTk0E,SAAU,SAAU58D,EAAQ08D,GAG1B,IAAIlsE,EAAQ,aACRwwB,GAHJ07C,EAAYA,GAAa,IAGE17C,YAAcxwB,EACrC4xB,EAAWs6C,EAAUt6C,UAAY5xB,EACjCN,EAAQxH,KAiBZ,OAfA+a,EAAOkF,KAAKoZ,QAAQ,CAClBQ,WAAYviB,EAAO+c,QACnByF,SAAU,EACVN,SAAUx5B,KAAK8zE,YACfp6C,SAAU,SAASj0B,GACjB6R,EAAO0K,IAAI,UAAWvc,GACtB+B,EAAMuZ,mBACN2Y,KAEFpB,WAAY,WACV9wB,EAAMuO,OAAOuB,GACbghB,OAIGt4B,QAIX+a,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOhV,OAAOb,UAAiD,CAoBvFm0B,QAAS,WACP,GAAI36B,UAAU,IAA8B,iBAAjBA,UAAU,GAAiB,CACpD,IAAyB0hB,EAArB+zD,EAAiB,GACrB,IAAK/zD,KAAQ1hB,UAAU,GACrBy1E,EAAezzE,KAAK0f,GAEtB,IAAK,IAAIzlB,EAAI,EAAGD,EAAMy5E,EAAen5E,OAAQL,EAAID,EAAKC,IAGpDqF,KAAKo0E,SAFLh0D,EAAO+zD,EAAex5E,GAEF+D,UAAU,GAAG0hB,GAAO1hB,UAAU,GADlC/D,IAAMD,EAAM,QAK9BsF,KAAKo0E,SAAS51E,MAAMwB,KAAMtB,WAE5B,OAAOsB,MAUTo0E,SAAU,SAAS78D,EAAUo1D,EAAIj3D,EAAS2+D,GACxC,IAAkBC,EAAd9sE,EAAQxH,KAEZ2sE,EAAKA,EAAG9sE,WAMN6V,EAJGA,EAIOqF,EAAOkF,KAAK3I,OAAOV,MAAMlB,GAHzB,IAMP6B,EAAS3V,QAAQ,OACpB0yE,EAAW/8D,EAAS/V,MAAM,MAG5B,IAAIoxE,EAAe0B,EACft0E,KAAK6iB,IAAIyxD,EAAS,IAAIA,EAAS,IAC/Bt0E,KAAK6iB,IAAItL,GAEP,SAAU7B,IACdA,EAAQ6+D,KAAO3B,GAIfjG,GADGA,EAAG/qE,QAAQ,KACTgxE,EAAertD,WAAWonD,EAAG9gE,QAAQ,IAAK,KAG1C0Z,WAAWonD,GAGlB5xD,EAAOkF,KAAKoZ,QAAQ,CAClBQ,WAAYnkB,EAAQ6+D,KACpBz6C,SAAU6yC,EACV5yC,QAASrkB,EAAQ67C,GACjB33B,OAAQlkB,EAAQkkB,OAChBJ,SAAU9jB,EAAQ8jB,SAClBG,MAAOjkB,EAAQikB,OAAS,WACtB,OAAOjkB,EAAQikB,MAAMl7B,KAAK+I,IAE5BkyB,SAAU,SAASj0B,EAAO+uE,EAAeC,GACnCH,EACF9sE,EAAM8sE,EAAS,IAAIA,EAAS,IAAM7uE,EAGlC+B,EAAMwa,IAAIzK,EAAU9R,GAElB4uE,GAGJ3+D,EAAQgkB,UAAYhkB,EAAQgkB,SAASj0B,EAAO+uE,EAAeC,IAE7Dn8C,WAAY,SAAS7yB,EAAO+uE,EAAeC,GACrCJ,IAIJ7sE,EAAM+2C,YACN7oC,EAAQ4iB,YAAc5iB,EAAQ4iB,WAAW7yB,EAAO+uE,EAAeC,UAOvE,SAAUt3E,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3C3E,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5BQ,EAAQmE,EAAOkF,KAAK3I,OAAOV,MAC3B89D,EAAa,CAAE7kD,GAAI,EAAGxH,GAAI,EAAGyH,GAAI,EAAGxH,GAAI,GACxC66C,EAAmBpoD,EAAO++B,aAAaoL,SAAS,eAqTpD,SAASyvB,EAAuBC,EAAeC,GAC7C,IAAIryE,EAASoyE,EAAcpyE,OACvBsyE,EAAQF,EAAcE,MACtBC,EAAQH,EAAcG,MACtBC,EAAYJ,EAAcI,UAC1BC,EAAUJ,EAAaI,QACvBtzB,EAASkzB,EAAalzB,OACtBuzB,EAAWL,EAAaK,SAE5B,OAAO,WACL,OAAQl1E,KAAK6iB,IAAIrgB,IACf,KAAKyyE,EACH,OAAOjyD,KAAKxI,IAAIxa,KAAK6iB,IAAIiyD,GAAQ90E,KAAK6iB,IAAIkyD,IAC5C,KAAKpzB,EACH,OAAO3+B,KAAKxI,IAAIxa,KAAK6iB,IAAIiyD,GAAQ90E,KAAK6iB,IAAIkyD,IAAW,GAAM/0E,KAAK6iB,IAAImyD,GACtE,KAAKE,EACH,OAAOlyD,KAAKvI,IAAIza,KAAK6iB,IAAIiyD,GAAQ90E,KAAK6iB,IAAIkyD,MAnU9Ch6D,EAAOo6D,KACTp6D,EAAO9P,KAAK,mCAUd8P,EAAOo6D,KAAOp6D,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAA4C,CAOvFoF,KAAM,OAON0kB,GAAI,EAOJC,GAAI,EAOJzH,GAAI,EAOJC,GAAI,EAEJq8C,gBAAiB5pD,EAAOhV,OAAOb,UAAUy/D,gBAAgBnoE,OAAO,KAAM,KAAM,KAAM,MAQlF42B,WAAY,SAASxO,EAAQlP,GACtBkP,IACHA,EAAS,CAAC,EAAG,EAAG,EAAG,IAGrB5kB,KAAK+yB,UAAU,aAAcrd,GAE7B1V,KAAKgiB,IAAI,KAAM4C,EAAO,IACtB5kB,KAAKgiB,IAAI,KAAM4C,EAAO,IACtB5kB,KAAKgiB,IAAI,KAAM4C,EAAO,IACtB5kB,KAAKgiB,IAAI,KAAM4C,EAAO,IAEtB5kB,KAAKo1E,gBAAgB1/D,IAOvB0/D,gBAAiB,SAAS1/D,GACxBA,IAAYA,EAAU,IAEtB1V,KAAK0c,MAAQsG,KAAK6K,IAAI7tB,KAAKqoB,GAAKroB,KAAK6vB,IACrC7vB,KAAKuc,OAASyG,KAAK6K,IAAI7tB,KAAKsoB,GAAKtoB,KAAK8vB,IAEtC9vB,KAAKklB,KAAO,SAAUxP,EAClBA,EAAQwP,KACRllB,KAAKq1E,oBAETr1E,KAAKmlB,IAAM,QAASzP,EAChBA,EAAQyP,IACRnlB,KAAKs1E,oBAQX1yD,KAAM,SAAS1mB,EAAKuJ,GAKlB,OAJAzF,KAAK+yB,UAAU,OAAQ72B,EAAKuJ,QAAAA,IACjBivE,EAAWx4E,IACpB8D,KAAKo1E,kBAEAp1E,MAOTq1E,kBAAmBV,EACjB,CACEnyE,OAAQ,UACRsyE,MAAO,KACPC,MAAO,KACPC,UAAW,SAEb,CACEC,QAAS,OACTtzB,OAAQ,SACRuzB,SAAU,UAQdI,iBAAkBX,EAChB,CACEnyE,OAAQ,UACRsyE,MAAO,KACPC,MAAO,KACPC,UAAW,UAEb,CACEC,QAAS,MACTtzB,OAAQ,SACRuzB,SAAU,WAQd3tB,QAAS,SAASnrC,GAGhB,GAFAA,EAAIsN,aAEC1pB,KAAK2lD,iBAAmB3lD,KAAK2lD,iBAAmBwd,EAAkB,CAGrE,IAAIz8D,EAAI1G,KAAKu1E,iBACbn5D,EAAI0M,OAAOpiB,EAAEmpB,GAAInpB,EAAEopB,IACnB1T,EAAI8kC,OAAOx6C,EAAE2hB,GAAI3hB,EAAE4hB,IAGrBlM,EAAI0pC,UAAY9lD,KAAKsoD,YAKrB,IAAIktB,EAAkBp5D,EAAIypC,YAC1BzpC,EAAIypC,YAAc7lD,KAAK09B,QAAUthB,EAAIglC,UACrCphD,KAAK09B,QAAU19B,KAAKupE,cAAcntD,GAClCA,EAAIypC,YAAc2vB,GAOpB/L,oBAAqB,SAASrtD,GAC5B,IAAI1V,EAAI1G,KAAKu1E,iBAEbn5D,EAAIsN,YACJ3O,EAAOkF,KAAKmI,eAAehM,EAAK1V,EAAEmpB,GAAInpB,EAAEopB,GAAIppB,EAAE2hB,GAAI3hB,EAAE4hB,GAAItoB,KAAK2lD,iBAC7DvpC,EAAI+kC,aASN0oB,uBAAwB,WACtB,MAAO,CACLrwE,GAAIwG,KAAK6vB,GAAK7vB,KAAKqoB,IAAM,EACzB5uB,GAAIuG,KAAK8vB,GAAK9vB,KAAKsoB,IAAM,IAU7B4uB,SAAU,SAASC,GACjB,OAAO/gC,EAAOpW,KAAK+yB,UAAU,WAAYokB,GAAsBn3C,KAAKu1E,mBAOtE/M,6BAA8B,WAC5B,IAAIhW,EAAMxyD,KAAK+yB,UAAU,gCASzB,MAR2B,SAAvB/yB,KAAKwlD,gBACY,IAAfxlD,KAAK0c,QACP81C,EAAI/4D,GAAKuG,KAAKsoD,aAEI,IAAhBtoD,KAAKuc,SACPi2C,EAAIh5D,GAAKwG,KAAKsoD,cAGXkK,GAOT+iB,eAAgB,WACd,IAAIE,EAAQz1E,KAAK6vB,IAAM7vB,KAAKqoB,IAAM,EAAI,EAClCqtD,EAAQ11E,KAAK8vB,IAAM9vB,KAAKsoB,IAAM,EAAI,EAMtC,MAAO,CACLuH,GANQ4lD,EAAQz1E,KAAK0c,MAAQ,GAO7B2L,GALQotD,EAAQz1E,KAAK0c,OAAS,GAM9BoT,GAPQ4lD,EAAQ11E,KAAKuc,OAAS,GAQ9B+L,GANQotD,EAAQ11E,KAAKuc,QAAU,KAgBnCm1D,OAAQ,WACN,IAAIhrE,EAAI1G,KAAKu1E,iBACb,MAAO,CACL,SAAU,eACV,OAAQ7uE,EAAEmpB,GACV,SAAUnpB,EAAEopB,GACZ,SAAUppB,EAAE2hB,GACZ,SAAU3hB,EAAE4hB,GACZ,aAaNvN,EAAOo6D,KAAKQ,gBAAkB56D,EAAOgD,kBAAkBvhB,OAAO,cAAcgF,MAAM,MAUlFuZ,EAAOo6D,KAAKnvC,YAAc,SAAS/kC,EAASyD,EAAUgR,GACpDA,EAAUA,GAAW,GACrB,IAAIkgE,EAAmB76D,EAAOwoB,gBAAgBtiC,EAAS8Z,EAAOo6D,KAAKQ,iBAOnEjxE,EAAS,IAAIqW,EAAOo6D,KANP,CACPS,EAAiB/lD,IAAM,EACvB+lD,EAAiB9lD,IAAM,EACvB8lD,EAAiBvtD,IAAM,EACvButD,EAAiBttD,IAAM,GAEIlS,EAAOw/D,EAAkBlgE,MAW5DqF,EAAOo6D,KAAK9tD,WAAa,SAAS/P,EAAQ5S,GAKxC,IAAIgR,EAAUkB,EAAMU,GAAAA,GACpB5B,EAAQkP,OAAS,CAACtN,EAAOuY,GAAIvY,EAAOwY,GAAIxY,EAAO+Q,GAAI/Q,EAAOgR,IAC1DvN,EAAOhV,OAAOskE,YAAY,OAAQ30D,GANlC,SAAmB8gC,UACVA,EAAS5xB,OAChBlgB,GAAYA,EAAS8xC,KAI+B,YAvT1D,CAmVoC95C,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3C86D,EAAK7yD,KAAKI,GAEVrI,EAAOsuC,OACTtuC,EAAO9P,KAAK,sCAUd8P,EAAOsuC,OAAStuC,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAA8C,CAO3FoF,KAAM,SAON89C,OAAQ,EASR6sB,WAAY,EASZC,SAAe,EAALF,EAEVlR,gBAAiB5pD,EAAOhV,OAAOb,UAAUy/D,gBAAgBnoE,OAAO,SAAU,aAAc,YAQxFomB,KAAM,SAAS1mB,EAAKuJ,GAOlB,OANAzF,KAAK+yB,UAAU,OAAQ72B,EAAKuJ,GAEhB,WAARvJ,GACF8D,KAAKg2E,UAAUvwE,GAGVzF,MAQTk3C,SAAU,SAASC,GACjB,OAAOn3C,KAAK+yB,UAAU,WAAY,CAAC,SAAU,aAAc,YAAYv2B,OAAO26C,KAUhFu6B,OAAQ,WACN,IAAIuE,EACA1yD,GAASvjB,KAAK+1E,SAAW/1E,KAAK81E,aAAgB,EAAID,GAEtD,GAAc,IAAVtyD,EACF0yD,EAAY,CACV,WAAY,eACZ,iBACA,MAAOj2E,KAAKipD,OACZ,cAGC,CACH,IAAIitB,EAASn7D,EAAOkF,KAAKqD,IAAItjB,KAAK81E,YAAc91E,KAAKipD,OACjDktB,EAASp7D,EAAOkF,KAAKuD,IAAIxjB,KAAK81E,YAAc91E,KAAKipD,OACjDmtB,EAAOr7D,EAAOkF,KAAKqD,IAAItjB,KAAK+1E,UAAY/1E,KAAKipD,OAC7CotB,EAAOt7D,EAAOkF,KAAKuD,IAAIxjB,KAAK+1E,UAAY/1E,KAAKipD,OAEjDgtB,EAAY,CACV,cAAgBC,EAAS,IAAMC,EAC/B,MAAQn2E,KAAKipD,OAAS,IAAMjpD,KAAKipD,OACjC,QAJc1lC,EAAQsyD,EAAK,IAAM,KAIb,KAAM,IAAMO,EAAO,IAAMC,EAC7C,KAAM,eAAgB,SAG1B,OAAOJ,GAQT1uB,QAAS,SAASnrC,GAChBA,EAAIsN,YACJtN,EAAI4sC,IACF,EACA,EACAhpD,KAAKipD,OACLjpD,KAAK81E,WACL91E,KAAK+1E,UAAAA,GACP/1E,KAAKspE,oBAAoBltD,IAO3Bk6D,WAAY,WACV,OAAOt2E,KAAK6iB,IAAI,UAAY7iB,KAAK6iB,IAAI,WAOvC0zD,WAAY,WACV,OAAOv2E,KAAK6iB,IAAI,UAAY7iB,KAAK6iB,IAAI,WAOvCmzD,UAAW,SAASvwE,GAElB,OADAzF,KAAKipD,OAASxjD,EACPzF,KAAKgiB,IAAI,QAAiB,EAARvc,GAAWuc,IAAI,SAAkB,EAARvc,MAWtDsV,EAAOsuC,OAAOssB,gBAAkB56D,EAAOgD,kBAAkBvhB,OAAO,UAAUgF,MAAM,MAWhFuZ,EAAOsuC,OAAOrjB,YAAc,SAAS/kC,EAASyD,GAC5C,IAcqB2hB,EAdjBuvD,EAAmB76D,EAAOwoB,gBAAgBtiC,EAAS8Z,EAAOsuC,OAAOssB,iBAErE,KAaS,WADYtvD,EAZFuvD,IAakBvvD,EAAW4iC,QAAU,GAZxD,MAAM,IAAIpjD,MAAM,8DAGlB+vE,EAAiB1wD,MAAQ0wD,EAAiB1wD,MAAQ,GAAK0wD,EAAiB3sB,OACxE2sB,EAAiBzwD,KAAOywD,EAAiBzwD,KAAO,GAAKywD,EAAiB3sB,OACtEvkD,EAAS,IAAIqW,EAAOsuC,OAAOusB,KAmB7B76D,EAAOsuC,OAAOhiC,WAAa,SAAS/P,EAAQ5S,GAC1C,OAAOqW,EAAOhV,OAAOskE,YAAY,SAAU/yD,EAAQ5S,KA3MvD,CA8MoChI,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAE3CA,EAAOy7D,SACTz7D,EAAO9P,KAAK,uCAWd8P,EAAOy7D,SAAWz7D,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAAgD,CAO/FoF,KAAM,WAONuR,MAAO,IAOPH,OAAQ,IAMRgrC,QAAS,SAASnrC,GAChB,IAAIq6D,EAAWz2E,KAAK0c,MAAQ,EACxBg6D,EAAY12E,KAAKuc,OAAS,EAE9BH,EAAIsN,YACJtN,EAAI0M,QAAQ2tD,EAAUC,GACtBt6D,EAAI8kC,OAAO,GAAIw1B,GACft6D,EAAI8kC,OAAOu1B,EAAUC,GACrBt6D,EAAI+kC,YAEJnhD,KAAKspE,oBAAoBltD,IAO3BqtD,oBAAqB,SAASrtD,GAC5B,IAAIq6D,EAAWz2E,KAAK0c,MAAQ,EACxBg6D,EAAY12E,KAAKuc,OAAS,EAE9BH,EAAIsN,YACJ3O,EAAOkF,KAAKmI,eAAehM,GAAMq6D,EAAUC,EAAW,GAAIA,EAAW12E,KAAK2lD,iBAC1E5qC,EAAOkF,KAAKmI,eAAehM,EAAK,GAAIs6D,EAAWD,EAAUC,EAAW12E,KAAK2lD,iBACzE5qC,EAAOkF,KAAKmI,eAAehM,EAAKq6D,EAAUC,GAAYD,EAAUC,EAAW12E,KAAK2lD,iBAChFvpC,EAAI+kC,aASNuwB,OAAQ,WACN,IAAI+E,EAAWz2E,KAAK0c,MAAQ,EACxBg6D,EAAY12E,KAAKuc,OAAS,EAM9B,MAAO,CACL,YAAa,eACb,WAPW,EACNk6D,EAAW,IAAMC,EAClB,MAAQA,EACRD,EAAW,IAAMC,GACjBhxE,KAAK,KAIT,WAaNqV,EAAOy7D,SAASnvD,WAAa,SAAS/P,EAAQ5S,GAC5C,OAAOqW,EAAOhV,OAAOskE,YAAY,WAAY/yD,EAAQ5S,KAxGzD,CA2GoChI,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3C47D,EAAoB,EAAV3zD,KAAKI,GAEfrI,EAAO67D,QACT77D,EAAO9P,KAAK,uCAWd8P,EAAO67D,QAAU77D,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAA+C,CAO7FoF,KAAM,UAON4hB,GAAM,EAONC,GAAM,EAEN23C,gBAAiB5pD,EAAOhV,OAAOb,UAAUy/D,gBAAgBnoE,OAAO,KAAM,MAOtE42B,WAAY,SAAS1d,GACnB1V,KAAK+yB,UAAU,aAAcrd,GAC7B1V,KAAKgiB,IAAI,KAAMtM,GAAWA,EAAQqX,IAAM,GACxC/sB,KAAKgiB,IAAI,KAAMtM,GAAWA,EAAQsX,IAAM,IAS1CpK,KAAM,SAAS1mB,EAAKuJ,GAElB,OADAzF,KAAK+yB,UAAU,OAAQ72B,EAAKuJ,GACpBvJ,GAEN,IAAK,KACH8D,KAAK+sB,GAAKtnB,EACVzF,KAAKgiB,IAAI,QAAiB,EAARvc,GAClB,MAEF,IAAK,KACHzF,KAAKgtB,GAAKvnB,EACVzF,KAAKgiB,IAAI,SAAkB,EAARvc,GAIvB,OAAOzF,MAOT62E,MAAO,WACL,OAAO72E,KAAK6iB,IAAI,MAAQ7iB,KAAK6iB,IAAI,WAOnCi0D,MAAO,WACL,OAAO92E,KAAK6iB,IAAI,MAAQ7iB,KAAK6iB,IAAI,WAQnCq0B,SAAU,SAASC,GACjB,OAAOn3C,KAAK+yB,UAAU,WAAY,CAAC,KAAM,MAAMv2B,OAAO26C,KASxDu6B,OAAQ,WACN,MAAO,CACL,YAAa,eACb,iBACA,OAAQ1xE,KAAK+sB,GACb,SAAU/sB,KAAKgtB,GACf,WASJu6B,QAAS,SAASnrC,GAChBA,EAAIsN,YACJtN,EAAIyM,OACJzM,EAAIyI,UAAU,EAAG,EAAG,EAAG7kB,KAAKgtB,GAAKhtB,KAAK+sB,GAAI,EAAG,GAC7C3Q,EAAI4sC,IACF,EACA,EACAhpD,KAAK+sB,GACL,EACA4pD,GAAAA,GAEFv6D,EAAI4M,UACJhpB,KAAKspE,oBAAoBltD,MAW7BrB,EAAO67D,QAAQjB,gBAAkB56D,EAAOgD,kBAAkBvhB,OAAO,cAAcgF,MAAM,MAUrFuZ,EAAO67D,QAAQ5wC,YAAc,SAAS/kC,EAASyD,GAE7C,IAAIkxE,EAAmB76D,EAAOwoB,gBAAgBtiC,EAAS8Z,EAAO67D,QAAQjB,iBAEtEC,EAAiB1wD,MAAQ0wD,EAAiB1wD,MAAQ,GAAK0wD,EAAiB7oD,GACxE6oD,EAAiBzwD,KAAOywD,EAAiBzwD,KAAO,GAAKywD,EAAiB5oD,GACtEtoB,EAAS,IAAIqW,EAAO67D,QAAQhB,KAY9B76D,EAAO67D,QAAQvvD,WAAa,SAAS/P,EAAQ5S,GAC3C,OAAOqW,EAAOhV,OAAOskE,YAAY,UAAW/yD,EAAQ5S,KAjLxD,CAoLoChI,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3C3E,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAE5B2E,EAAOwvC,KACTxvC,EAAO9P,KAAK,mCAWd8P,EAAOwvC,KAAOxvC,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAA4C,CAOvF2+D,gBAAiB3pD,EAAOhV,OAAOb,UAAUw/D,gBAAgBloE,OAAO,KAAM,MAOtE2O,KAAM,OAON4hB,GAAM,EAONC,GAAM,EAEN23C,gBAAiB5pD,EAAOhV,OAAOb,UAAUy/D,gBAAgBnoE,OAAO,KAAM,MAOtE42B,WAAY,SAAS1d,GACnB1V,KAAK+yB,UAAU,aAAcrd,GAC7B1V,KAAK+2E,aAOPA,UAAW,WACL/2E,KAAK+sB,KAAO/sB,KAAKgtB,GACnBhtB,KAAKgtB,GAAKhtB,KAAK+sB,GAER/sB,KAAKgtB,KAAOhtB,KAAK+sB,KACxB/sB,KAAK+sB,GAAK/sB,KAAKgtB,KAQnBu6B,QAAS,SAASnrC,GAKhB,IAAI2Q,EAAK/sB,KAAK+sB,GAAK/J,KAAKxI,IAAIxa,KAAK+sB,GAAI/sB,KAAK0c,MAAQ,GAAK,EACnDsQ,EAAKhtB,KAAKgtB,GAAKhK,KAAKxI,IAAIxa,KAAKgtB,GAAIhtB,KAAKuc,OAAS,GAAK,EACpDlP,EAAIrN,KAAK0c,MACTrS,EAAIrK,KAAKuc,OACT/iB,GAAKwG,KAAK0c,MAAQ,EAClBjjB,GAAKuG,KAAKuc,OAAS,EACnBy6D,EAAmB,IAAPjqD,GAAmB,IAAPC,EAExB/wB,EAAI,YACRmgB,EAAIsN,YAEJtN,EAAI0M,OAAOtvB,EAAIuzB,EAAItzB,GAEnB2iB,EAAI8kC,OAAO1nD,EAAI6T,EAAI0f,EAAItzB,GACvBu9E,GAAa56D,EAAI2U,cAAcv3B,EAAI6T,EAAIpR,EAAI8wB,EAAItzB,EAAGD,EAAI6T,EAAG5T,EAAIwC,EAAI+wB,EAAIxzB,EAAI6T,EAAG5T,EAAIuzB,GAEhF5Q,EAAI8kC,OAAO1nD,EAAI6T,EAAG5T,EAAI4Q,EAAI2iB,GAC1BgqD,GAAa56D,EAAI2U,cAAcv3B,EAAI6T,EAAG5T,EAAI4Q,EAAIpO,EAAI+wB,EAAIxzB,EAAI6T,EAAIpR,EAAI8wB,EAAItzB,EAAI4Q,EAAG7Q,EAAI6T,EAAI0f,EAAItzB,EAAI4Q,GAE7F+R,EAAI8kC,OAAO1nD,EAAIuzB,EAAItzB,EAAI4Q,GACvB2sE,GAAa56D,EAAI2U,cAAcv3B,EAAIyC,EAAI8wB,EAAItzB,EAAI4Q,EAAG7Q,EAAGC,EAAI4Q,EAAIpO,EAAI+wB,EAAIxzB,EAAGC,EAAI4Q,EAAI2iB,GAEhF5Q,EAAI8kC,OAAO1nD,EAAGC,EAAIuzB,GAClBgqD,GAAa56D,EAAI2U,cAAcv3B,EAAGC,EAAIwC,EAAI+wB,EAAIxzB,EAAIyC,EAAI8wB,EAAItzB,EAAGD,EAAIuzB,EAAItzB,GAErE2iB,EAAI+kC,YAEJnhD,KAAKspE,oBAAoBltD,IAO3BqtD,oBAAqB,SAASrtD,GAC5B,IAAI5iB,GAAKwG,KAAK0c,MAAQ,EAClBjjB,GAAKuG,KAAKuc,OAAS,EACnBlP,EAAIrN,KAAK0c,MACTrS,EAAIrK,KAAKuc,OAEbH,EAAIsN,YACJ3O,EAAOkF,KAAKmI,eAAehM,EAAK5iB,EAAGC,EAAGD,EAAI6T,EAAG5T,EAAGuG,KAAK2lD,iBACrD5qC,EAAOkF,KAAKmI,eAAehM,EAAK5iB,EAAI6T,EAAG5T,EAAGD,EAAI6T,EAAG5T,EAAI4Q,EAAGrK,KAAK2lD,iBAC7D5qC,EAAOkF,KAAKmI,eAAehM,EAAK5iB,EAAI6T,EAAG5T,EAAI4Q,EAAG7Q,EAAGC,EAAI4Q,EAAGrK,KAAK2lD,iBAC7D5qC,EAAOkF,KAAKmI,eAAehM,EAAK5iB,EAAGC,EAAI4Q,EAAG7Q,EAAGC,EAAGuG,KAAK2lD,iBACrDvpC,EAAI+kC,aAQNjK,SAAU,SAASC,GACjB,OAAOn3C,KAAK+yB,UAAU,WAAY,CAAC,KAAM,MAAMv2B,OAAO26C,KASxDu6B,OAAQ,WAEN,MAAO,CACL,SAAU,eACV,OAHO1xE,KAAK0c,MAAQ,EAGV,SAHkB1c,KAAKuc,OAAS,EAI1C,SAAUvc,KAAK+sB,GAAI,SAAU/sB,KAAKgtB,GAClC,YAAahtB,KAAK0c,MAAO,aAAc1c,KAAKuc,OAC5C,aAaNxB,EAAOwvC,KAAKorB,gBAAkB56D,EAAOgD,kBAAkBvhB,OAAO,yBAAyBgF,MAAM,MAU7FuZ,EAAOwvC,KAAKvkB,YAAc,SAAS/kC,EAASyD,EAAUgR,GACpD,IAAKzU,EACH,OAAOyD,EAAS,MAElBgR,EAAUA,GAAW,GAErB,IAAIkgE,EAAmB76D,EAAOwoB,gBAAgBtiC,EAAS8Z,EAAOwvC,KAAKorB,iBAEnEC,EAAiB1wD,KAAO0wD,EAAiB1wD,MAAQ,EACjD0wD,EAAiBzwD,IAAOywD,EAAiBzwD,KAAQ,EACjDywD,EAAiBr5D,OAAUq5D,EAAiBr5D,QAAU,EACtDq5D,EAAiBl5D,MAASk5D,EAAiBl5D,OAAS,EACpD,IAAI4tC,EAAO,IAAIvvC,EAAOwvC,KAAKn0C,EAAQV,EAAUqF,EAAOkF,KAAK3I,OAAOV,MAAMlB,GAAW,GAAMkgE,IACvFtrB,EAAKrsB,QAAUqsB,EAAKrsB,SAAWqsB,EAAK5tC,MAAQ,GAAK4tC,EAAK/tC,OAAS,EAC/D7X,EAAS4lD,IAWXvvC,EAAOwvC,KAAKljC,WAAa,SAAS/P,EAAQ5S,GACxC,OAAOqW,EAAOhV,OAAOskE,YAAY,OAAQ/yD,EAAQ5S,KA1MrD,CA6MoChI,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3C3E,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5BoE,EAAMO,EAAOkF,KAAKnI,MAAM0C,IACxBC,EAAMM,EAAOkF,KAAKnI,MAAM2C,IACxBI,EAAUE,EAAOkF,KAAKpF,QAEtBE,EAAOk8D,SACTl8D,EAAO9P,KAAK,uCAUd8P,EAAOk8D,SAAWl8D,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAAgD,CAO/FoF,KAAM,WAONyZ,OAAQ,KAER+/C,gBAAiB5pD,EAAOhV,OAAOb,UAAUy/D,gBAAgBnoE,OAAO,UAqBhE42B,WAAY,SAASxO,EAAQlP,GAC3BA,EAAUA,GAAW,GACrB1V,KAAK4kB,OAASA,GAAU,GACxB5kB,KAAK+yB,UAAU,aAAcrd,GAC7B1V,KAAKk3E,uBAAuBxhE,IAG9BwhE,uBAAwB,SAASxhE,GAC/B,IAA6CyhE,EAAzCC,EAAUp3E,KAAKq3E,gBAAgB3hE,GACnC1V,KAAK0c,MAAQ06D,EAAQ16D,MACrB1c,KAAKuc,OAAS66D,EAAQ76D,OACjB7G,EAAQ4hE,UACXH,EAAiBn3E,KAAKksE,uBACpB,CAAE1yE,EAAG49E,EAAQlyD,KAAOllB,KAAKsoD,YAAc,EAAG7uD,EAAG29E,EAAQjyD,IAAMnlB,KAAKsoD,YAAc,GAC9E,OACA,MACAtoD,KAAKspD,QACLtpD,KAAKupD,eAAAA,IAGE7zC,EAAQwP,OACjBllB,KAAKklB,KAAOxP,EAAQ4hE,QAAUF,EAAQlyD,KAAOiyD,EAAe39E,QAAAA,IAEnDkc,EAAQyP,MACjBnlB,KAAKmlB,IAAMzP,EAAQ4hE,QAAUF,EAAQjyD,IAAMgyD,EAAe19E,GAE5DuG,KAAK23C,WAAa,CAChBn+C,EAAG49E,EAAQlyD,KAAOllB,KAAK0c,MAAQ,EAC/BjjB,EAAG29E,EAAQjyD,IAAMnlB,KAAKuc,OAAS,IAcnC86D,gBAAiB,WAEf,IAAIzyD,EAAS5kB,KAAK4kB,OACdG,EAAOvK,EAAIoK,EAAQ,MAAQ,EAC3BK,EAAOzK,EAAIoK,EAAQ,MAAQ,EAM/B,MAAO,CACLM,KAAMH,EACNI,IAAKF,EACLvI,OARSjC,EAAImK,EAAQ,MAAQ,GAEXG,EAOlBxI,QARS9B,EAAImK,EAAQ,MAAQ,GAEVK,IAevBiyB,SAAU,SAASC,GACjB,OAAO/gC,EAAOpW,KAAK+yB,UAAU,WAAYokB,GAAsB,CAC7DvyB,OAAQ5kB,KAAK4kB,OAAOpoB,YAUxBk1E,OAAQ,WAIN,IAHA,IAAI9sD,EAAS,GAAI2yD,EAAQv3E,KAAK23C,WAAWn+C,EAAGg+E,EAAQx3E,KAAK23C,WAAWl+C,EAChEizB,EAAsB3R,EAAOhV,OAAO2mB,oBAE/B/xB,EAAI,EAAGD,EAAMsF,KAAK4kB,OAAO5pB,OAAQL,EAAID,EAAKC,IACjDiqB,EAAOlkB,KACLma,EAAQ7a,KAAK4kB,OAAOjqB,GAAGnB,EAAI+9E,EAAO7qD,GAAsB,IACxD7R,EAAQ7a,KAAK4kB,OAAOjqB,GAAGlB,EAAI+9E,EAAO9qD,GAAsB,KAG5D,MAAO,CACL,IAAM1sB,KAAKmL,KAAO,IAAK,eACvB,WAAYyZ,EAAOlf,KAAK,IACxB,WAUJ+xE,aAAc,SAASr7D,GACrB,IAAI+H,EAAOzpB,EAAMsF,KAAK4kB,OAAO5pB,OACzBxB,EAAIwG,KAAK23C,WAAWn+C,EACpBC,EAAIuG,KAAK23C,WAAWl+C,EAExB,IAAKiB,GAAOsZ,MAAMhU,KAAK4kB,OAAOlqB,EAAM,GAAGjB,GAGrC,OAAA,EAEF2iB,EAAIsN,YACJtN,EAAI0M,OAAO9oB,KAAK4kB,OAAO,GAAGprB,EAAIA,EAAGwG,KAAK4kB,OAAO,GAAGnrB,EAAIA,GACpD,IAAK,IAAIkB,EAAI,EAAGA,EAAID,EAAKC,IAEvByhB,EAAI8kC,QADJ/8B,EAAQnkB,KAAK4kB,OAAOjqB,IACHnB,EAAIA,EAAG2qB,EAAM1qB,EAAIA,GAEpC,OAAA,GAOF8tD,QAAS,SAASnrC,GACXpc,KAAKy3E,aAAar7D,IAGvBpc,KAAKspE,oBAAoBltD,IAO3BqtD,oBAAqB,SAASrtD,GAC5B,IAAI0qC,EAAIC,EAER3qC,EAAIsN,YACJ,IAAK,IAAI/uB,EAAI,EAAGD,EAAMsF,KAAK4kB,OAAO5pB,OAAQL,EAAID,EAAKC,IAGjDogB,EAAOkF,KAAKmI,eAAehM,GAF3B0qC,EAAK9mD,KAAK4kB,OAAOjqB,IAEkBnB,EAAGstD,EAAGrtD,GADzCstD,EAAK/mD,KAAK4kB,OAAOjqB,EAAI,IAAMmsD,GACoBttD,EAAGutD,EAAGttD,EAAGuG,KAAK2lD,kBAQjEhkC,WAAY,WACV,OAAO3hB,KAAK6iB,IAAI,UAAU7nB,UAW9B+f,EAAOk8D,SAAStB,gBAAkB56D,EAAOgD,kBAAkBvhB,SAU3Due,EAAOk8D,SAASS,qBAAuB,SAASC,GAC9C,OAAO,SAAS12E,EAASyD,EAAUgR,GACjC,IAAKzU,EACH,OAAOyD,EAAS,MAElBgR,IAAYA,EAAU,IAEtB,IAAIkP,EAAS7J,EAAOypB,qBAAqBvjC,EAAQi+B,aAAa,WAC1D02C,EAAmB76D,EAAOwoB,gBAAgBtiC,EAAS8Z,EAAO48D,GAAQhC,iBACtEC,EAAiB0B,SAAAA,EACjB5yE,EAAS,IAAIqW,EAAO48D,GAAQ/yD,EAAQxO,EAAOw/D,EAAkBlgE,OAIjEqF,EAAOk8D,SAASjxC,YAAcjrB,EAAOk8D,SAASS,qBAAqB,YAWnE38D,EAAOk8D,SAAS5vD,WAAa,SAAS/P,EAAQ5S,GAC5C,OAAOqW,EAAOhV,OAAOskE,YAAY,WAAY/yD,EAAQ5S,EAAU,YA/PnE,CAkQoChI,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAE3CA,EAAO68D,QACT78D,EAAO9P,KAAK,sCAUd8P,EAAO68D,QAAU78D,EAAOkF,KAAKkT,YAAYpY,EAAOk8D,SAAiD,CAO/F9rE,KAAM,UAMNo8C,QAAS,SAASnrC,GACXpc,KAAKy3E,aAAar7D,KAGvBA,EAAI+kC,YACJnhD,KAAKspE,oBAAoBltD,KAO3BqtD,oBAAqB,SAASrtD,GAC5Bpc,KAAK+yB,UAAU,sBAAuB3W,GACtCA,EAAI+kC,eAWRpmC,EAAO68D,QAAQjC,gBAAkB56D,EAAOgD,kBAAkBvhB,SAU1Due,EAAO68D,QAAQ5xC,YAAcjrB,EAAOk8D,SAASS,qBAAqB,WAUlE38D,EAAO68D,QAAQvwD,WAAa,SAAS/P,EAAQ5S,GAC3C,OAAOqW,EAAOhV,OAAOskE,YAAY,UAAW/yD,EAAQ5S,EAAU,YA5ElE,CA+EoChI,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3CP,EAAMO,EAAOkF,KAAKnI,MAAM0C,IACxBC,EAAMM,EAAOkF,KAAKnI,MAAM2C,IACxBrE,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5ByhE,EAAY9xE,OAAOb,UAAUrF,SAC7B4wB,EAAU1V,EAAOkF,KAAKwQ,QACtB5V,EAAUE,EAAOkF,KAAKpF,QACtBi9D,EAAiB,CACftqE,EAAG,EACHzB,EAAG,EACH1B,EAAG,EACH6C,EAAG,EACH9S,EAAG,EACHL,EAAG,EACHH,EAAG,EACHI,EAAG,EACHH,EAAG,GAELk+E,EAAmB,CACjBvqE,EAAG,IACHyB,EAAG,KAGL8L,EAAOstC,KACTttC,EAAO9P,KAAK,mCAWd8P,EAAOstC,KAAOttC,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAA4C,CAOvFoF,KAAM,OAON2c,KAAM,KAEN68C,gBAAiB5pD,EAAOhV,OAAOb,UAAUy/D,gBAAgBnoE,OAAO,OAAQ,YAExEkoE,gBAAiB3pD,EAAOhV,OAAOb,UAAUw/D,gBAAgBloE,OAAO,QAQhE42B,WAAY,SAAStL,EAAMpS,GAEzB1V,KAAK+yB,UAAU,aADfrd,EAAUA,GAAW,IAGhBoS,IACHA,EAAO,IAGT,IAAIkwD,EAAqC,mBAAzBH,EAAUp5E,KAAKqpB,GAE/B9nB,KAAK8nB,KAAOkwD,EACRlwD,EAEAA,EAAKhoB,OAASgoB,EAAKhoB,MAAM,gCAExBE,KAAK8nB,OAILkwD,IACHh4E,KAAK8nB,KAAO9nB,KAAKi4E,cAGnBl9D,EAAOk8D,SAAS/xE,UAAUgyE,uBAAuBz4E,KAAKuB,KAAM0V,KAO9DwiE,oBAAqB,SAAS97D,GAC5B,IAAIyF,EAQAs2D,EACAC,EARAC,EAAW,KACXC,EAAgB,EAChBC,EAAgB,EAChB/+E,EAAI,EACJC,EAAI,EACJ++E,EAAW,EACXC,EAAW,EAGX1sE,GAAK/L,KAAK23C,WAAWn+C,EACrBQ,GAAKgG,KAAK23C,WAAWl+C,EAEzB2iB,EAAIsN,YAEJ,IAAK,IAAI/uB,EAAI,EAAGD,EAAMsF,KAAK8nB,KAAK9sB,OAAQL,EAAID,IAAOC,EAAG,CAIpD,QAFAknB,EAAU7hB,KAAK8nB,KAAKntB,IAEJ,IAEd,IAAK,IAGHyhB,EAAI8kC,QAFJ1nD,GAAKqoB,EAAQ,IAEE9V,GADftS,GAAKooB,EAAQ,IACS7nB,GACtB,MAEF,IAAK,IAGHoiB,EAAI8kC,QAFJ1nD,EAAIqoB,EAAQ,IAEG9V,GADftS,EAAIooB,EAAQ,IACU7nB,GACtB,MAEF,IAAK,IAEHoiB,EAAI8kC,QADJ1nD,GAAKqoB,EAAQ,IACE9V,EAAGtS,EAAIO,GACtB,MAEF,IAAK,IAEHoiB,EAAI8kC,QADJ1nD,EAAIqoB,EAAQ,IACG9V,EAAGtS,EAAIO,GACtB,MAEF,IAAK,IAEHoiB,EAAI8kC,OAAO1nD,EAAIuS,GADftS,GAAKooB,EAAQ,IACS7nB,GACtB,MAEF,IAAK,IAEHoiB,EAAI8kC,OAAO1nD,EAAIuS,GADftS,EAAIooB,EAAQ,IACU7nB,GACtB,MAEF,IAAK,IAGHs+E,EAFA9+E,GAAKqoB,EAAQ,GAGb02D,EAFA9+E,GAAKooB,EAAQ,GAGbzF,EAAI0M,OAAOtvB,EAAIuS,EAAGtS,EAAIO,GACtB,MAEF,IAAK,IAGHs+E,EAFA9+E,EAAIqoB,EAAQ,GAGZ02D,EAFA9+E,EAAIooB,EAAQ,GAGZzF,EAAI0M,OAAOtvB,EAAIuS,EAAGtS,EAAIO,GACtB,MAEF,IAAK,IAKHoiB,EAAI2U,cACFv3B,EAAIqoB,EAAQ,GAAK9V,EACjBtS,EAAIooB,EAAQ,GAAK7nB,GAJnBw+E,EAAWh/E,EAAIqoB,EAAQ,IAKV9V,GAJb0sE,EAAWh/E,EAAIooB,EAAQ,IAKV7nB,GARbm+E,EAAQ3+E,EAAIqoB,EAAQ,IASV9V,GARVqsE,EAAQ3+E,EAAIooB,EAAQ,IASV7nB,GAEVR,EAAI2+E,EACJ1+E,EAAI2+E,EACJ,MAEF,IAAK,IAKHh8D,EAAI2U,cACFlP,EAAQ,GAAK9V,EACb8V,EAAQ,GAAK7nB,GAJfw+E,EAAW32D,EAAQ,IAKN9V,GAJb0sE,EAAW52D,EAAQ,IAKN7nB,GARbR,EAAIqoB,EAAQ,IASN9V,GARNtS,EAAIooB,EAAQ,IASN7nB,GAEN,MAEF,IAAK,IAGHm+E,EAAQ3+E,EAAIqoB,EAAQ,GACpBu2D,EAAQ3+E,EAAIooB,EAAQ,GAEgB,OAAhCw2D,EAAS,GAAGv4E,MAAM,WAGpB04E,EAAWh/E,EACXi/E,EAAWh/E,IAIX++E,EAAW,EAAIh/E,EAAIg/E,EACnBC,EAAW,EAAIh/E,EAAIg/E,GAGrBr8D,EAAI2U,cACFynD,EAAWzsE,EACX0sE,EAAWz+E,EACXR,EAAIqoB,EAAQ,GAAK9V,EACjBtS,EAAIooB,EAAQ,GAAK7nB,EACjBm+E,EAAQpsE,EACRqsE,EAAQp+E,GAMVw+E,EAAWh/E,EAAIqoB,EAAQ,GACvB42D,EAAWh/E,EAAIooB,EAAQ,GAEvBroB,EAAI2+E,EACJ1+E,EAAI2+E,EACJ,MAEF,IAAK,IACHD,EAAQt2D,EAAQ,GAChBu2D,EAAQv2D,EAAQ,GACoB,OAAhCw2D,EAAS,GAAGv4E,MAAM,WAGpB04E,EAAWh/E,EACXi/E,EAAWh/E,IAIX++E,EAAW,EAAIh/E,EAAIg/E,EACnBC,EAAW,EAAIh/E,EAAIg/E,GAErBr8D,EAAI2U,cACFynD,EAAWzsE,EACX0sE,EAAWz+E,EACX6nB,EAAQ,GAAK9V,EACb8V,EAAQ,GAAK7nB,EACbm+E,EAAQpsE,EACRqsE,EAAQp+E,GAEVR,EAAI2+E,EACJ1+E,EAAI2+E,EAMJI,EAAW32D,EAAQ,GACnB42D,EAAW52D,EAAQ,GAEnB,MAEF,IAAK,IAQHzF,EAAI6qC,kBAHJuxB,EAAWh/E,EAAIqoB,EAAQ,IAIV9V,GAHb0sE,EAAWh/E,EAAIooB,EAAQ,IAIV7nB,GARbm+E,EAAQ3+E,EAAIqoB,EAAQ,IASV9V,GARVqsE,EAAQ3+E,EAAIooB,EAAQ,IASV7nB,GAEVR,EAAI2+E,EACJ1+E,EAAI2+E,EACJ,MAEF,IAAK,IAIHh8D,EAAI6qC,iBACFplC,EAAQ,GAAK9V,EACb8V,EAAQ,GAAK7nB,GALfm+E,EAAQt2D,EAAQ,IAMN9V,GALVqsE,EAAQv2D,EAAQ,IAMN7nB,GAEVR,EAAI2+E,EACJ1+E,EAAI2+E,EACJI,EAAW32D,EAAQ,GACnB42D,EAAW52D,EAAQ,GACnB,MAEF,IAAK,IAGHs2D,EAAQ3+E,EAAIqoB,EAAQ,GACpBu2D,EAAQ3+E,EAAIooB,EAAQ,GAEgB,OAAhCw2D,EAAS,GAAGv4E,MAAM,WAGpB04E,EAAWh/E,EACXi/E,EAAWh/E,IAIX++E,EAAW,EAAIh/E,EAAIg/E,EACnBC,EAAW,EAAIh/E,EAAIg/E,GAGrBr8D,EAAI6qC,iBACFuxB,EAAWzsE,EACX0sE,EAAWz+E,EACXm+E,EAAQpsE,EACRqsE,EAAQp+E,GAEVR,EAAI2+E,EACJ1+E,EAAI2+E,EAEJ,MAEF,IAAK,IACHD,EAAQt2D,EAAQ,GAChBu2D,EAAQv2D,EAAQ,GAEoB,OAAhCw2D,EAAS,GAAGv4E,MAAM,WAGpB04E,EAAWh/E,EACXi/E,EAAWh/E,IAIX++E,EAAW,EAAIh/E,EAAIg/E,EACnBC,EAAW,EAAIh/E,EAAIg/E,GAErBr8D,EAAI6qC,iBACFuxB,EAAWzsE,EACX0sE,EAAWz+E,EACXm+E,EAAQpsE,EACRqsE,EAAQp+E,GAEVR,EAAI2+E,EACJ1+E,EAAI2+E,EACJ,MAEF,IAAK,IAEH3nD,EAAQrU,EAAK5iB,EAAIuS,EAAGtS,EAAIO,EAAG,CACzB6nB,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GAAKroB,EAAIuS,EACjB8V,EAAQ,GAAKpoB,EAAIO,IAEnBR,GAAKqoB,EAAQ,GACbpoB,GAAKooB,EAAQ,GACb,MAEF,IAAK,IAEH4O,EAAQrU,EAAK5iB,EAAIuS,EAAGtS,EAAIO,EAAG,CACzB6nB,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GAAK9V,EACb8V,EAAQ,GAAK7nB,IAEfR,EAAIqoB,EAAQ,GACZpoB,EAAIooB,EAAQ,GACZ,MAEF,IAAK,IACL,IAAK,IACHroB,EAAI8+E,EACJ7+E,EAAI8+E,EACJn8D,EAAI+kC,YAGRk3B,EAAWx2D,IAQf0lC,QAAS,SAASnrC,GAChBpc,KAAKk4E,oBAAoB97D,GACzBpc,KAAKspE,oBAAoBltD,IAO3Bvc,SAAU,WACR,MAAO,kBAAoBG,KAAK2hB,aAC9B,eAAiB3hB,KAAKmlB,IAAM,aAAenlB,KAAKklB,KAAO,OAQ3DgyB,SAAU,SAASC,GACjB,OAAO/gC,EAAOpW,KAAK+yB,UAAU,WAAYokB,GAAsB,CAC7DrvB,KAAM9nB,KAAK8nB,KAAK/S,KAAI,SAAS7R,GAAQ,OAAOA,EAAK5F,cASrD4kD,iBAAkB,SAAS/K,GACzB,IAAI9qC,EAAIrM,KAAKk3C,SAAS,CAAC,cAAc16C,OAAO26C,IAI5C,OAHI9qC,EAAE4b,mBACG5b,EAAEyb,KAEJzb,GASTqlE,OAAQ,WAIN,MAAO,CACL,SAAU,eACV,MALS1xE,KAAK8nB,KAAK/S,KAAI,SAAS+S,GAChC,OAAOA,EAAKpiB,KAAK,QAChBA,KAAK,KAIN,4BACA,SAIJgzE,oBAAqB,WACnB,IAAIC,EAAS59D,EAAOhV,OAAO2mB,oBAC3B,MAAO,cAAgB7R,GAAS7a,KAAK23C,WAAWn+C,EAAGm/E,GAAU,KACzD99D,GAAS7a,KAAK23C,WAAWl+C,EAAGk/E,GAAU,KAQ5Cl1B,cAAe,SAASz8B,GACtB,IAAIywB,EAAsBz3C,KAAK04E,sBAC/B,MAAO,KAAO14E,KAAK2xE,6BACjB3xE,KAAK0xE,SAAU,CAAE1qD,QAASA,EAASywB,oBAAqBA,KAS5DL,MAAO,SAASpwB,GACd,IAAIywB,EAAsBz3C,KAAK04E,sBAC/B,OAAO14E,KAAKyxE,qBAAqBzxE,KAAK0xE,SAAU,CAAE1qD,QAASA,EAASywB,oBAAqBA,KAQ3F91B,WAAY,WACV,OAAO3hB,KAAK8nB,KAAK9sB,QAMnBi9E,WAAY,WASV,IARA,IAEIW,EACA96C,EAEAh+B,EACA+4E,EAEYC,EARZp1E,EAAS,GACTktB,EAAS,GAGTmoD,EAAKh+D,EAAOmD,cAIPvjB,EAAI,EAAiBD,EAAMsF,KAAK8nB,KAAK9sB,OAAQL,EAAID,EAAKC,IAAK,CAMlE,IAHAk+E,GAFAD,EAAc54E,KAAK8nB,KAAKntB,IAEA2C,MAAM,GAAG0Y,OACjC4a,EAAO51B,OAAS,EAER8E,EAAQi5E,EAAGt3E,KAAKo3E,IACtBjoD,EAAOlwB,KAAKZ,EAAM,IAGpBg5E,EAAe,CAACF,EAAYj9E,OAAO,IAEnC,IAAK,IAAI+F,EAAI,EAAG8uB,EAAOI,EAAO51B,OAAQ0G,EAAI8uB,EAAM9uB,IAC9Co8B,EAASvY,WAAWqL,EAAOlvB,IACtBsS,MAAM8pB,IACTg7C,EAAap4E,KAAKo9B,GAItB,IAAIk7C,EAAUF,EAAa,GACvBG,EAAgBnB,EAAekB,EAAQtqE,eACvCwqE,EAAkBnB,EAAiBiB,IAAYA,EAEnD,GAAIF,EAAa99E,OAAS,EAAIi+E,EAC5B,IAAK,IAAIh9E,EAAI,EAAGk9E,EAAOL,EAAa99E,OAAQiB,EAAIk9E,EAAMl9E,GAAKg9E,EACzDv1E,EAAOhD,KAAK,CAACs4E,GAASx8E,OAAOs8E,EAAax7E,MAAMrB,EAAGA,EAAIg9E,KACvDD,EAAUE,OAIZx1E,EAAOhD,KAAKo4E,GAIhB,OAAOp1E,GAMT2zE,gBAAiB,WAgBf,IAdA,IAEIx1D,EAQAs2D,EACAC,EACA9nD,EAZA8oD,EAAK,GACLC,EAAK,GAELhB,EAAW,KACXC,EAAgB,EAChBC,EAAgB,EAChB/+E,EAAI,EACJC,EAAI,EACJ++E,EAAW,EACXC,EAAW,EAKN99E,EAAI,EAAGD,EAAMsF,KAAK8nB,KAAK9sB,OAAQL,EAAID,IAAOC,EAAG,CAIpD,QAFAknB,EAAU7hB,KAAK8nB,KAAKntB,IAEJ,IAEd,IAAK,IACHnB,GAAKqoB,EAAQ,GACbpoB,GAAKooB,EAAQ,GACbyO,EAAS,GACT,MAEF,IAAK,IACH92B,EAAIqoB,EAAQ,GACZpoB,EAAIooB,EAAQ,GACZyO,EAAS,GACT,MAEF,IAAK,IACH92B,GAAKqoB,EAAQ,GACbyO,EAAS,GACT,MAEF,IAAK,IACH92B,EAAIqoB,EAAQ,GACZyO,EAAS,GACT,MAEF,IAAK,IACH72B,GAAKooB,EAAQ,GACbyO,EAAS,GACT,MAEF,IAAK,IACH72B,EAAIooB,EAAQ,GACZyO,EAAS,GACT,MAEF,IAAK,IAGHgoD,EAFA9+E,GAAKqoB,EAAQ,GAGb02D,EAFA9+E,GAAKooB,EAAQ,GAGbyO,EAAS,GACT,MAEF,IAAK,IAGHgoD,EAFA9+E,EAAIqoB,EAAQ,GAGZ02D,EAFA9+E,EAAIooB,EAAQ,GAGZyO,EAAS,GACT,MAEF,IAAK,IAKHA,EAASvV,EAAOkF,KAAKyP,iBAAiBl2B,EAAGC,EACvCD,EAAIqoB,EAAQ,GACZpoB,EAAIooB,EAAQ,GAJd22D,EAAWh/E,EAAIqoB,EAAQ,GACvB42D,EAAWh/E,EAAIooB,EAAQ,GAHvBs2D,EAAQ3+E,EAAIqoB,EAAQ,GACpBu2D,EAAQ3+E,EAAIooB,EAAQ,IAWpBroB,EAAI2+E,EACJ1+E,EAAI2+E,EACJ,MAEF,IAAK,IAGH9nD,EAASvV,EAAOkF,KAAKyP,iBAAiBl2B,EAAGC,EACvCooB,EAAQ,GACRA,EAAQ,GAJV22D,EAAW32D,EAAQ,GACnB42D,EAAW52D,EAAQ,GAMjBA,EAAQ,GACRA,EAAQ,IAEVroB,EAAIqoB,EAAQ,GACZpoB,EAAIooB,EAAQ,GACZ,MAEF,IAAK,IAGHs2D,EAAQ3+E,EAAIqoB,EAAQ,GACpBu2D,EAAQ3+E,EAAIooB,EAAQ,GAEgB,OAAhCw2D,EAAS,GAAGv4E,MAAM,WAGpB04E,EAAWh/E,EACXi/E,EAAWh/E,IAIX++E,EAAW,EAAIh/E,EAAIg/E,EACnBC,EAAW,EAAIh/E,EAAIg/E,GAGrBnoD,EAASvV,EAAOkF,KAAKyP,iBAAiBl2B,EAAGC,EACvC++E,EACAC,EACAj/E,EAAIqoB,EAAQ,GACZpoB,EAAIooB,EAAQ,GACZs2D,EACAC,GAMFI,EAAWh/E,EAAIqoB,EAAQ,GACvB42D,EAAWh/E,EAAIooB,EAAQ,GACvBroB,EAAI2+E,EACJ1+E,EAAI2+E,EACJ,MAEF,IAAK,IACHD,EAAQt2D,EAAQ,GAChBu2D,EAAQv2D,EAAQ,GACoB,OAAhCw2D,EAAS,GAAGv4E,MAAM,WAGpB04E,EAAWh/E,EACXi/E,EAAWh/E,IAIX++E,EAAW,EAAIh/E,EAAIg/E,EACnBC,EAAW,EAAIh/E,EAAIg/E,GAErBnoD,EAASvV,EAAOkF,KAAKyP,iBAAiBl2B,EAAGC,EACvC++E,EACAC,EACA52D,EAAQ,GACRA,EAAQ,GACRs2D,EACAC,GAEF5+E,EAAI2+E,EACJ1+E,EAAI2+E,EAKJI,EAAW32D,EAAQ,GACnB42D,EAAW52D,EAAQ,GACnB,MAEF,IAAK,IAMHyO,EAASvV,EAAOkF,KAAKyP,iBAAiBl2B,EAAGC,EAFzC++E,EAAWh/E,EAAIqoB,EAAQ,GACvB42D,EAAWh/E,EAAIooB,EAAQ,GAIrB22D,EACAC,EARFN,EAAQ3+E,EAAIqoB,EAAQ,GACpBu2D,EAAQ3+E,EAAIooB,EAAQ,IAWpBroB,EAAI2+E,EACJ1+E,EAAI2+E,EACJ,MAEF,IAAK,IAGH9nD,EAASvV,EAAOkF,KAAKyP,iBAAiBl2B,EAAGC,EAFzC++E,EAAW32D,EAAQ,GACnB42D,EAAW52D,EAAQ,GAIjB22D,EACAC,EACA52D,EAAQ,GACRA,EAAQ,IAEVroB,EAAIqoB,EAAQ,GACZpoB,EAAIooB,EAAQ,GACZ,MAEF,IAAK,IAEHs2D,EAAQ3+E,EAAIqoB,EAAQ,GACpBu2D,EAAQ3+E,EAAIooB,EAAQ,GACgB,OAAhCw2D,EAAS,GAAGv4E,MAAM,WAGpB04E,EAAWh/E,EACXi/E,EAAWh/E,IAIX++E,EAAW,EAAIh/E,EAAIg/E,EACnBC,EAAW,EAAIh/E,EAAIg/E,GAGrBnoD,EAASvV,EAAOkF,KAAKyP,iBAAiBl2B,EAAGC,EACvC++E,EACAC,EACAD,EACAC,EACAN,EACAC,GAEF5+E,EAAI2+E,EACJ1+E,EAAI2+E,EAEJ,MAEF,IAAK,IACHD,EAAQt2D,EAAQ,GAChBu2D,EAAQv2D,EAAQ,GAEoB,OAAhCw2D,EAAS,GAAGv4E,MAAM,WAGpB04E,EAAWh/E,EACXi/E,EAAWh/E,IAIX++E,EAAW,EAAIh/E,EAAIg/E,EACnBC,EAAW,EAAIh/E,EAAIg/E,GAErBnoD,EAASvV,EAAOkF,KAAKyP,iBAAiBl2B,EAAGC,EACvC++E,EACAC,EACAD,EACAC,EACAN,EACAC,GAEF5+E,EAAI2+E,EACJ1+E,EAAI2+E,EACJ,MAEF,IAAK,IAEH9nD,EAASvV,EAAOkF,KAAK+Q,eAAex3B,EAAGC,EACrCooB,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GAAKroB,EACbqoB,EAAQ,GAAKpoB,GAEfD,GAAKqoB,EAAQ,GACbpoB,GAAKooB,EAAQ,GACb,MAEF,IAAK,IAEHyO,EAASvV,EAAOkF,KAAK+Q,eAAex3B,EAAGC,EACrCooB,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,IAEVroB,EAAIqoB,EAAQ,GACZpoB,EAAIooB,EAAQ,GACZ,MAEF,IAAK,IACL,IAAK,IACHroB,EAAI8+E,EACJ7+E,EAAI8+E,EAGRF,EAAWx2D,EACXyO,EAAO3Y,SAAQ,SAAUwM,GACvBi1D,EAAG14E,KAAKyjB,EAAM3qB,GACd6/E,EAAG34E,KAAKyjB,EAAM1qB,MAEhB2/E,EAAG14E,KAAKlH,GACR6/E,EAAG34E,KAAKjH,GAGV,IAAIsrB,EAAOvK,EAAI4+D,IAAO,EAClBn0D,EAAOzK,EAAI6+D,IAAO,EAMtB,MAAO,CACLn0D,KAAMH,EACNI,IAAKF,EACLvI,OARSjC,EAAI2+D,IAAO,GAEFr0D,EAOlBxI,QARS9B,EAAI4+D,IAAO,GAEFp0D,MAkBxBlK,EAAOstC,KAAKhhC,WAAa,SAAS/P,EAAQ5S,GACP,iBAAtB4S,EAAO2Q,WAEhBlN,EAAOiqB,eADO1tB,EAAO2Q,YACU,SAAUJ,GACvC,IAAIC,EAAOD,EAAS,GACpBC,EAAK0wB,WAAWlhC,GAChB5S,GAAYA,EAASojB,MAIvB/M,EAAOhV,OAAOskE,YAAY,OAAQ/yD,EAAQ5S,EAAU,SAWxDqW,EAAOstC,KAAKstB,gBAAkB56D,EAAOgD,kBAAkBvhB,OAAO,CAAC,MAW/Due,EAAOstC,KAAKriB,YAAc,SAAS/kC,EAASyD,EAAUgR,GACpD,IAAIkgE,EAAmB76D,EAAOwoB,gBAAgBtiC,EAAS8Z,EAAOstC,KAAKstB,iBACnEC,EAAiB0B,SAAAA,EACjB5yE,EAAS,IAAIqW,EAAOstC,KAAKutB,EAAiBv7E,EAAG+b,EAAOw/D,EAAkBlgE,OA54B1E,CAg5BoChZ,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3CP,EAAMO,EAAOkF,KAAKnI,MAAM0C,IACxBC,EAAMM,EAAOkF,KAAKnI,MAAM2C,IAExBM,EAAOiN,QAYXjN,EAAOiN,MAAQjN,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAAQgV,EAAO4F,WAAiD,CAO5GxV,KAAM,QAONm9C,YAAa,EAOb+N,gBAAAA,EAOAsO,gBAAiB,GASjB2U,eAAAA,EASAlmD,WAAY,SAASjS,EAASzL,EAAS6jE,GACrC7jE,EAAUA,GAAW,GACrB1V,KAAK4gB,SAAW,GAIhB24D,GAAoBv5E,KAAK+yB,UAAU,aAAcrd,GACjD1V,KAAK4gB,SAAWO,GAAW,GAC3B,IAAK,IAAIxmB,EAAIqF,KAAK4gB,SAAS5lB,OAAQL,KACjCqF,KAAK4gB,SAASjmB,GAAG2jD,MAAQt+C,KAG3B,GAAKu5E,EAoBHv5E,KAAKw5E,4BApBgB,CACrB,IAAI73B,EAASjsC,GAAWA,EAAQqS,iBAAAA,IAK5BrS,EAAQ4zC,UACVtpD,KAAKspD,QAAU5zC,EAAQ4zC,cAAAA,IAErB5zC,EAAQ6zC,UACVvpD,KAAKupD,QAAU7zC,EAAQ6zC,SAIzB5H,GAAU3hD,KAAKy5E,cACfz5E,KAAK05E,qBAAqB/3B,UACnBjsC,EAAQqS,YACf/nB,KAAK+yB,UAAU,aAAcrd,GAM/B1V,KAAKu+C,aAOPi7B,sBAAuB,WAErB,IADA,IACS7+E,EAAIqF,KAAK4gB,SAAS5lB,OAAQL,KACjCqF,KAAK4gB,SAASjmB,GAAG4jD,WAAAA,GAFF,IAUnBm7B,qBAAsB,SAAS/3B,GACzBA,EAASA,GAAU3hD,KAAKwhD,iBAC5B,IADA,IACS7mD,EAAIqF,KAAK4gB,SAAS5lB,OAAQL,KACjCqF,KAAK25E,oBAAoB35E,KAAK4gB,SAASjmB,GAAIgnD,IAS/Cg4B,oBAAqB,SAASriE,EAAQqqC,GAKpCrqC,EAAO0K,IAAI,CACTkD,KALe5N,EAAO4N,KAKHy8B,EAAOnoD,EAC1B2rB,IALc7N,EAAO6N,IAKJw8B,EAAOloD,IAE1B6d,EAAOgnC,MAAQt+C,KACfsX,EAAOinC,WAAAA,GAPU,IAcnB1+C,SAAU,WACR,MAAO,oBAAsBG,KAAK2hB,aAAe,MASnD4+C,cAAe,SAASjpD,GAYtB,OAXAtX,KAAK45E,uBACL7+D,EAAOkF,KAAKgL,qBAAqBjrB,MAC7BsX,IACFtX,KAAK4gB,SAASlgB,KAAK4W,GACnBA,EAAOgnC,MAAQt+C,KACfsX,EAAOsL,KAAK,SAAU5iB,KAAKkc,SAE7Blc,KAAKy5E,cACLz5E,KAAK05E,uBACL15E,KAAKu+C,YACLv+C,KAAKwkE,OAAAA,EACExkE,MASTsgE,iBAAkB,SAAShpD,GASzB,OARAtX,KAAK45E,uBACL7+D,EAAOkF,KAAKgL,qBAAqBjrB,MAEjCA,KAAK+V,OAAOuB,GACZtX,KAAKy5E,cACLz5E,KAAK05E,uBACL15E,KAAKu+C,YACLv+C,KAAKwkE,OAAAA,EACExkE,MAMT6gB,eAAgB,SAASvJ,GACvBtX,KAAKwkE,OAAAA,EACLltD,EAAOgnC,MAAQt+C,KACfsX,EAAOsL,KAAK,SAAU5iB,KAAKkc,SAM7BmF,iBAAkB,SAAS/J,GACzBtX,KAAKwkE,OAAAA,SACEltD,EAAOgnC,OAMhB17B,KAAM,SAAS1mB,EAAKuJ,GAClB,IAAI9K,EAAIqF,KAAK4gB,SAAS5lB,OACtB,GAAIgF,KAAKs5E,cACP,KAAO3+E,KACLqF,KAAK4gB,SAASjmB,GAAGosE,WAAW7qE,EAAKuJ,GAGrC,GAAY,WAARvJ,EACF,KAAOvB,KACLqF,KAAK4gB,SAASjmB,GAAGioB,KAAK1mB,EAAKuJ,GAG/BsV,EAAOhV,OAAOb,UAAU0d,KAAKnkB,KAAKuB,KAAM9D,EAAKuJ,IAQ/CyxC,SAAU,SAASC,GACjB,IAAI0iC,EAAwB75E,KAAKq5C,qBAC7BygC,EAAe95E,KAAK4gB,SAAS7L,KAAI,SAAS/O,GAC5C,IAAI+zE,EAAmB/zE,EAAIqzC,qBAC3BrzC,EAAIqzC,qBAAuBwgC,EAC3B,IAAIG,EAAOh0E,EAAIkxC,SAASC,GAExB,OADAnxC,EAAIqzC,qBAAuB0gC,EACpBC,KAELh0E,EAAM+U,EAAOhV,OAAOb,UAAUgyC,SAASz4C,KAAKuB,KAAMm3C,GAEtD,OADAnxC,EAAImb,QAAU24D,EACP9zE,GAQTk8C,iBAAkB,SAAS/K,GACzB,IAAI2iC,EAAc7xD,EAAajoB,KAAKioB,WACpC,GAAIA,EACF6xD,EAAe7xD,MAEZ,CACH,IAAI4xD,EAAwB75E,KAAKq5C,qBACjCygC,EAAe95E,KAAK4gB,SAAS7L,KAAI,SAAS/O,GACxC,IAAI+zE,EAAmB/zE,EAAIqzC,qBAC3BrzC,EAAIqzC,qBAAuBwgC,EAC3B,IAAIG,EAAOh0E,EAAIk8C,iBAAiB/K,GAEhC,OADAnxC,EAAIqzC,qBAAuB0gC,EACpBC,KAGX,IAAIh0E,EAAM+U,EAAOhV,OAAOb,UAAUg9C,iBAAiBzjD,KAAKuB,KAAMm3C,GAE9D,OADAnxC,EAAImb,QAAU24D,EACP9zE,GAOT+6C,OAAQ,SAAS3kC,GACfpc,KAAKogD,gBAAAA,EACLpgD,KAAK+yB,UAAU,SAAU3W,GACzBpc,KAAKogD,gBAAAA,GAUPD,YAAa,WACX,IAAI85B,EAAWl/D,EAAOhV,OAAOb,UAAUi7C,YAAY1hD,KAAKuB,MACxD,GAAIi6E,EACF,IAAK,IAAIt/E,EAAI,EAAGD,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,EAAKC,IACnD,GAAIqF,KAAK4gB,SAASjmB,GAAGotE,iBAEnB,OADA/nE,KAAK8nE,YAAAA,GAAa,EAKxB,OAAOmS,GAOTlS,eAAgB,WACd,GAAIhtD,EAAOhV,OAAOb,UAAU6iE,eAAetpE,KAAKuB,MAC9C,OAAA,EAEF,IAAK,IAAIrF,EAAI,EAAGD,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,EAAKC,IACnD,GAAIqF,KAAK4gB,SAASjmB,GAAGotE,iBACnB,OAAA,EAGJ,OAAA,GAOFjB,WAAY,WACV,OAAO9mE,KAAK8nE,YAAe9nE,KAAKs+C,OAASt+C,KAAKs+C,MAAMwoB,cAOtDU,WAAY,SAASprD,GACnB,IAAK,IAAIzhB,EAAI,EAAGD,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,EAAKC,IACnDqF,KAAK4gB,SAASjmB,GAAGomD,OAAO3kC,GAE1Bpc,KAAKsoE,cAAclsD,IAMrBsrD,aAAc,SAASa,GACrB,GAAIvoE,KAAK+yB,UAAU,eAAgBw1C,GACjC,OAAA,EAEF,IAAKvoE,KAAKqkE,eACR,OAAA,EAEF,IAAK,IAAI1pE,EAAI,EAAGD,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,EAAKC,IACnD,GAAIqF,KAAK4gB,SAASjmB,GAAG+sE,cAAAA,GAAoB,CACvC,GAAI1nE,KAAK4gD,aAAc,CAErB,IAAIpnD,EAAIwG,KAAK6lE,WAAa7lE,KAAK0gD,MAAOjnD,EAAIuG,KAAK8lE,YAAc9lE,KAAK2gD,MAClE3gD,KAAKwvD,cAActQ,WAAW1lD,EAAI,GAAIC,EAAI,EAAGD,EAAGC,GAElD,OAAA,EAGJ,OAAA,GASFmgF,qBAAsB,WAEpB,OADA55E,KAAK4gB,SAASjJ,QAAQ3X,KAAKk6E,oBAAqBl6E,MACzCA,MAWT64D,iBAAkB,SAASvhD,GACzB,IAAIyT,EAASzT,EAAOiwB,sBAChB7xB,EAAUqF,EAAOkF,KAAK6J,YAAYiB,GAClC42B,EAAS,IAAI5mC,EAAOuJ,MAAM5O,EAAQ0U,WAAY1U,EAAQ2U,YAS1D,OARA/S,EAAOoT,OAAAA,EACPpT,EAAOqT,OAAAA,EACPrT,EAAO0K,IAAI,SAAUtM,EAAQsU,QAC7B1S,EAAO0K,IAAI,SAAUtM,EAAQuU,QAC7B3S,EAAO4S,MAAQxU,EAAQwU,MACvB5S,EAAO6S,MAAQzU,EAAQyU,MACvB7S,EAAOiM,MAAQ7N,EAAQ6N,MACvBjM,EAAOowB,oBAAoBia,EAAQ,SAAU,UACtCrqC,GAST4iE,oBAAqB,SAAS5iE,GAI5B,OAHAtX,KAAK64D,iBAAiBvhD,GACtBA,EAAOinC,mBACAjnC,EAAOgnC,MACPt+C,MAQTm6E,QAAS,WAMP,OAHAn6E,KAAK4gB,SAASjJ,SAAQ,SAASL,GAC7BA,EAAO0K,IAAI,SAAA,MAENhiB,KAAK45E,wBASdQ,kBAAmB,WACjB,GAAKp6E,KAAKkc,OAAV,CAGA,IAAIiF,EAAUnhB,KAAK4gB,SAAU1E,EAASlc,KAAKkc,OAC3Clc,KAAK4gB,SAAW,GAChB,IAAIlL,EAAU1V,KAAKk3C,kBACZxhC,EAAQyL,QACf,IAAIijC,EAAkB,IAAIrpC,EAAO4lD,gBAAgB,IAajD,OAZAvc,EAAgBpiC,IAAItM,GACpB0uC,EAAgBj5C,KAAO,kBACvB+Q,EAAOnG,OAAO/V,MACdmhB,EAAQxJ,SAAQ,SAASL,GACvBA,EAAOgnC,MAAQ8F,EACf9sC,EAAOktD,OAAAA,EACPtoD,EAAOnU,IAAIuP,MAEb8sC,EAAgBloC,OAASA,EACzBkoC,EAAgBxjC,SAAWO,EAC3BjF,EAAOmiC,cAAgB+F,EACvBA,EAAgB7F,YACT6F,IAQTi2B,gBAAiB,WACf,OAAOr6E,KAAK45E,wBAQdU,iBAAkB,WAKhB,OAHAt6E,KAAKshB,eAAc,SAAShK,GAC1BA,EAAOinC,WAAAA,GAFQ,MAIVv+C,MAMTy5E,YAAa,SAASc,GASpB,IARA,IAEIluE,EAAG+T,EAGH1e,EALA03E,EAAK,GACLC,EAAK,GAEL9G,EAAQ,CAAC,KAAM,KAAM,KAAM,MAC3B53E,EAAI,EAAG6/E,EAAOx6E,KAAK4gB,SAAS5lB,OACzBy/E,EAAOlI,EAAMv3E,OAGZL,EAAI6/E,IAAQ7/E,EAGlB,KAFA0R,EAAIrM,KAAK4gB,SAASjmB,IAChB4jD,WAAAA,GACG78C,EAAI,EAAGA,EAAI+4E,EAAM/4E,IAEpB03E,EAAG14E,KAAK2L,EAAEihE,QADVltD,EAAOmyD,EAAM7wE,IACWlI,GACxB6/E,EAAG34E,KAAK2L,EAAEihE,QAAQltD,GAAM3mB,GAI5BuG,KAAK06E,WAAWtB,EAAIC,EAAIkB,IAM1BG,WAAY,SAAStB,EAAIC,EAAIkB,GAC3B,IAAII,EAAQ,IAAI5/D,EAAOuJ,MAAM9J,EAAI4+D,GAAK5+D,EAAI6+D,IACtCuB,EAAQ,IAAI7/D,EAAOuJ,MAAM7J,EAAI2+D,GAAK3+D,EAAI4+D,IACtCl0D,EAAMw1D,EAAMlhF,GAAK,EAAGyrB,EAAOy1D,EAAMnhF,GAAK,EAEtC+iB,EAAUq+D,EAAMnhF,EAAIkhF,EAAMlhF,GAAM,EACpCuG,KAAK0c,MAFQk+D,EAAMphF,EAAImhF,EAAMnhF,GAAM,EAGnCwG,KAAKuc,OAASA,EACTg+D,GAGHv6E,KAAK0nC,oBAAoB,CAAEluC,EAAG0rB,EAAMzrB,EAAG0rB,GAAO,OAAQ,QAU1DusD,OAAQ,SAAS1qD,GAGf,IAFA,IAAIivD,EAAY,CAAC,MAAO,eAAgB,QAE/Bt7E,EAAI,EAAGD,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,EAAKC,IACnDs7E,EAAUv1E,KAAK,OAAQV,KAAK4gB,SAASjmB,GAAGy8C,MAAMpwB,IAGhD,OADAivD,EAAUv1E,KAAK,UACRu1E,GAOTxF,aAAc,WACZ,IAEIjzC,EAAax9B,KAAKi+B,QAAU,GAAK,uBACrC,MAAO,MAAA,IAHcj+B,KAAKq0B,SAA4C,IAAjBr0B,KAAKq0B,QACpD,YAAcr0B,KAAKq0B,QAAU,IAAM,GAIvCr0B,KAAK2wE,eACLnzC,GACA93B,KAAK,KAQT+9C,cAAe,SAASz8B,GAGtB,IAFA,IAAIivD,EAAY,GAEPt7E,EAAI,EAAGD,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,EAAKC,IACnDs7E,EAAUv1E,KAAK,KAAMV,KAAK4gB,SAASjmB,GAAG8oD,cAAcz8B,IAGtD,OAAOhnB,KAAK2xE,6BAA6BsE,EAAW,CAAEjvD,QAASA,OAYnEjM,EAAOiN,MAAMX,WAAa,SAAS/P,EAAQ5S,GACzC,IAAIyc,EAAU7J,EAAO6J,QACjBzL,EAAUqF,EAAOkF,KAAK3I,OAAOV,MAAMU,GAAAA,UAChC5B,EAAQyL,QACQ,iBAAZA,EASXpG,EAAOkF,KAAK8G,eAAe5F,GAAS,SAAS8F,GAC3ClM,EAAOkF,KAAK8G,eAAe,CAACzP,EAAOgwB,WAAW,SAASuzC,GACrD,IAAInlE,EAAUqF,EAAOkF,KAAK3I,OAAOV,MAAMU,GAAAA,GACvC5B,EAAQ4xB,SAAWuzC,EAAgB,UAC5BnlE,EAAQyL,QACfzc,GAAYA,EAAS,IAAIqW,EAAOiN,MAAMf,EAAkBvR,GAAAA,UAZ1DqF,EAAOiqB,eAAe7jB,GAAS,SAAU0G,GACvC,IAAIy2B,EAAQvjC,EAAOkF,KAAK2H,iBAAiBC,EAAUvQ,EAAQ6J,GAC3Dm9B,EAAMt8B,IAAItM,GACVhR,GAAYA,EAAS45C,QAlkB7B,CAglBoC5hD,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAE3CA,EAAO4lD,kBAWX5lD,EAAO4lD,gBAAkB5lD,EAAOkF,KAAKkT,YAAYpY,EAAOiN,MAAsD,CAO5G7c,KAAM,kBAQNioB,WAAY,SAASjS,EAASzL,GAC5BA,EAAUA,GAAW,GACrB1V,KAAK4gB,SAAWO,GAAW,GAC3B,IAAK,IAAIxmB,EAAIqF,KAAK4gB,SAAS5lB,OAAQL,KACjCqF,KAAK4gB,SAASjmB,GAAG2jD,MAAQt+C,KAGvB0V,EAAQ4zC,UACVtpD,KAAKspD,QAAU5zC,EAAQ4zC,SAErB5zC,EAAQ6zC,UACVvpD,KAAKupD,QAAU7zC,EAAQ6zC,SAEzBvpD,KAAKy5E,cACLz5E,KAAK05E,uBACL3+D,EAAOhV,OAAOb,UAAUkuB,WAAW30B,KAAKuB,KAAM0V,GAC9C1V,KAAKu+C,aAUPu8B,QAAS,WACP,IAAI35D,EAAUnhB,KAAK4gB,SAASpkB,SAC5BwD,KAAK4gB,SAAW,GAChB,IAAIlL,EAAUqF,EAAOhV,OAAOb,UAAUgyC,SAASz4C,KAAKuB,MAChD+6E,EAAW,IAAIhgE,EAAOiN,MAAM,IAQhC,UAPOtS,EAAQvK,KACf4vE,EAAS/4D,IAAItM,GACbyL,EAAQxJ,SAAQ,SAASL,GACvBA,EAAO4E,OAAOnG,OAAOuB,GACrBA,EAAOgnC,MAAQy8B,KAEjBA,EAASn6D,SAAWO,GACfnhB,KAAKkc,OACR,OAAO6+D,EAET,IAAI7+D,EAASlc,KAAKkc,OAIlB,OAHAA,EAAOnU,IAAIgzE,GACX7+D,EAAOmiC,cAAgB08B,EACvBA,EAASx8B,YACFw8B,GAQTziB,WAAY,WAEV,OADAt4D,KAAKm6E,WAAAA,GAQPt6E,SAAU,WACR,MAAO,8BAAgCG,KAAK2hB,aAAe,MAW7Dw+B,YAAa,WACX,OAAA,GAOF2mB,WAAY,WACV,OAAA,GASFlX,gBAAiB,SAASxzC,EAAK0sD,EAAekS,GAC5C5+D,EAAIyM,OACJzM,EAAIuuC,YAAc3qD,KAAKy9D,SAAWz9D,KAAK4jE,wBAA0B,EACjE5jE,KAAK+yB,UAAU,kBAAmB3W,EAAK0sD,QAAAA,KACvCkS,EAAmBA,GAAoB,IACXjX,cAC1BiX,EAAiBjX,aAAAA,QAAc,IAEtBiX,EAAiB9a,mBAC1B8a,EAAiB9a,kBAAAA,GAEnB8a,EAAiBhS,oBAAAA,EACjB,IAAK,IAAIruE,EAAI,EAAGD,EAAMsF,KAAK4gB,SAAS5lB,OAAQL,EAAID,EAAKC,IACnDqF,KAAK4gB,SAASjmB,GAAGi1D,gBAAgBxzC,EAAK4+D,GAExC5+D,EAAI4M,aAWRjO,EAAO4lD,gBAAgBt5C,WAAa,SAAS/P,EAAQ5S,GACnDqW,EAAOkF,KAAK8G,eAAezP,EAAO6J,SAAS,SAAS8F,UAC3C3P,EAAO6J,QACdzc,GAAYA,EAAS,IAAIqW,EAAO4lD,gBAAgB15C,EAAkB3P,GAAAA,SAzJxE,CA6JoC5a,GAGpC,SAAUS,GAER,aAEA,IAAIiZ,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAE3BjZ,EAAO4d,SACV5d,EAAO4d,OAAS,IAGd5d,EAAO4d,OAAOqrB,MAChBrrB,EAAO9P,KAAK,qCAWd8P,EAAOqrB,MAAQrrB,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAA6C,CAOzFoF,KAAM,QAQNob,YAAa,GAQb+hC,YAAa,EASb2yB,kBAAAA,EAQAC,YAAa,EAQbC,YAAa,EAObC,gBAAiB,EAOjBC,gBAAiB,EAQjBC,oBAAqB,GAQrB5W,gBAAiB3pD,EAAOhV,OAAOb,UAAUw/D,gBAAgBloE,OAAO,QAAS,SAQzE++E,SAAU,GAQVvR,MAAO,EAQPC,MAAO,EASP72C,WAAY,SAASnyB,EAASyU,GAC5BA,IAAYA,EAAU,IACtB1V,KAAKw7E,QAAU,GACfx7E,KAAKu7E,SAAW,UAAYxgE,EAAOhV,OAAO48B,QAC1C3iC,KAAK+yB,UAAU,aAAcrd,GAC7B1V,KAAKy7E,aAAax6E,EAASyU,IAO7BqpC,WAAY,WACV,OAAO/+C,KAAK07E,UAAY,IAY1BC,WAAY,SAAS16E,EAASyU,GAgB5B,OAfA1V,KAAK47E,cAAc57E,KAAKu7E,UACxBv7E,KAAK47E,cAAc57E,KAAKu7E,SAAW,aACnCv7E,KAAK07E,SAAWz6E,EAChBjB,KAAKqmC,iBAAmBplC,EACxBjB,KAAK67E,YAAYnmE,GACW,IAAxB1V,KAAKw7E,QAAQxgF,QACfgF,KAAK87E,eAMH97E,KAAK+7E,cACP/7E,KAAKg8E,qBAEAh8E,MAMT47E,cAAe,SAAS1/E,GACtB,IAAI+/E,EAAUlhE,EAAOmhE,cACjBD,GAAWA,EAAQE,mBACrBF,EAAQE,kBAAkBjgF,IAO9B6oD,QAAS,WACP/kD,KAAK47E,cAAc57E,KAAKu7E,UACxBv7E,KAAK47E,cAAc57E,KAAKu7E,SAAW,aACnCv7E,KAAKwvD,mBAAAA,EACL,CAAC,mBAAoB,WAAY,cAAe,gBAAgB73C,SAAQ,SAAU1W,GAChF8Z,EAAOkF,KAAK+X,iBAAiBh4B,KAAKiB,IAClCjB,KAAKiB,QAAAA,IACJ8H,KAAK/I,QAQVo8E,eAAgB,SAAS32E,GAIvB,OAHAzF,KAAKumB,YAAc9gB,EACnBzF,KAAK07E,SAASn1D,YAAc9gB,EAErBzF,MAOTq8E,gBAAiB,WACf,IAAIp7E,EAAUjB,KAAK++C,aACnB,MAAO,CACLriC,MAAOzb,EAAQ83C,cAAgB93C,EAAQyb,MACvCH,OAAQtb,EAAQ+3C,eAAiB/3C,EAAQsb,SAQ7C+/D,QAAS,SAASlgE,GAChB,GAAKpc,KAAK09B,QAA+B,IAArB19B,KAAKsoD,YAAzB,CAGA,IAAIj7C,EAAIrN,KAAK0c,MAAQ,EAAGrS,EAAIrK,KAAKuc,OAAS,EAC1CH,EAAIsN,YACJtN,EAAI0M,QAAQzb,GAAIhD,GAChB+R,EAAI8kC,OAAO7zC,GAAIhD,GACf+R,EAAI8kC,OAAO7zC,EAAGhD,GACd+R,EAAI8kC,QAAQ7zC,EAAGhD,GACf+R,EAAI8kC,QAAQ7zC,GAAIhD,GAChB+R,EAAI+kC,cAONsoB,oBAAqB,SAASrtD,GAC5B,IAAI5iB,GAAKwG,KAAK0c,MAAQ,EAClBjjB,GAAKuG,KAAKuc,OAAS,EACnBlP,EAAIrN,KAAK0c,MACTrS,EAAIrK,KAAKuc,OAEbH,EAAIyM,OACJ7oB,KAAKooE,iBAAiBhsD,EAAKpc,MAE3Boc,EAAIsN,YACJ3O,EAAOkF,KAAKmI,eAAehM,EAAK5iB,EAAGC,EAAGD,EAAI6T,EAAG5T,EAAGuG,KAAK2lD,iBACrD5qC,EAAOkF,KAAKmI,eAAehM,EAAK5iB,EAAI6T,EAAG5T,EAAGD,EAAI6T,EAAG5T,EAAI4Q,EAAGrK,KAAK2lD,iBAC7D5qC,EAAOkF,KAAKmI,eAAehM,EAAK5iB,EAAI6T,EAAG5T,EAAI4Q,EAAG7Q,EAAGC,EAAI4Q,EAAGrK,KAAK2lD,iBAC7D5qC,EAAOkF,KAAKmI,eAAehM,EAAK5iB,EAAGC,EAAI4Q,EAAG7Q,EAAGC,EAAGuG,KAAK2lD,iBACrDvpC,EAAI+kC,YACJ/kC,EAAI4M,WAQNkuB,SAAU,SAASC,GACjB,IAAIqkC,EAAU,GAEdx7E,KAAKw7E,QAAQ7jE,SAAQ,SAAS4kE,GACxBA,GACFf,EAAQ96E,KAAK67E,EAAUrlC,eAG3B,IAAI5/B,EAASlB,EACXpW,KAAK+yB,UACH,WACA,CAAC,cAAe,QAAS,SAASv2B,OAAO26C,IACxC,CACDxpC,IAAK3N,KAAKw8E,SACVhB,QAASA,IAKb,OAHIx7E,KAAK+7E,eACPzkE,EAAOykE,aAAe/7E,KAAK+7E,aAAa7kC,YAEnC5/B,GAOTmlE,QAAS,WACP,OAAOz8E,KAAKgqE,OAAShqE,KAAKiqE,OAASjqE,KAAK0c,MAAQ1c,KAAK07E,SAASh/D,OAAS1c,KAAKuc,OAASvc,KAAK07E,SAASn/D,QASrGm1D,OAAQ,WACN,IAAsCgL,EAAlCzG,EAAY,GAAI0G,EAAc,GAC9BnjF,GAAKwG,KAAK0c,MAAQ,EAAGjjB,GAAKuG,KAAKuc,OAAS,EAAG+qB,EAAW,GAC1D,GAAItnC,KAAKy8E,UAAW,CAClB,IAAI15B,EAAahoC,EAAOhV,OAAO48B,QAC/BszC,EAAUv1E,KACR,2BAA6BqiD,EAAa,OAC1C,cAAgBvpD,EAAI,QAAUC,EAAI,YAAcuG,KAAK0c,MAAQ,aAAe1c,KAAKuc,OAAS,SAC1F,iBAEF+qB,EAAW,8BAAgCyb,EAAa,MAY1D,GAVA45B,EAAYj8E,KAAK,YAAa,eAAgB,eAAgBV,KAAK48E,WAAAA,GACjE,QAASpjF,EAAIwG,KAAKgqE,MAAO,QAASvwE,EAAIuG,KAAKiqE,MAI3C,YAAajqE,KAAK07E,SAASh/D,OAAS1c,KAAK07E,SAAS3iC,aAClD,aAAc/4C,KAAK07E,SAASn/D,QAAUvc,KAAK07E,SAASn/D,OACpD,IAAK+qB,EACL,eAEEtnC,KAAK09B,QAAU19B,KAAK2lD,gBAAiB,CACvC,IAAIk3B,EAAW78E,KAAKkgB,KACpBlgB,KAAKkgB,KAAO,KACZw8D,EAAY,CACV,WACA,MAAOljF,EAAG,QAASC,EACnB,YAAauG,KAAK0c,MAAO,aAAc1c,KAAKuc,OAC5C,YAAavc,KAAKywE,eAClB,SAEFzwE,KAAKkgB,KAAO28D,EAQd,MANwB,SAApB78E,KAAKykE,WACKwR,EAAUz5E,OAAOkgF,EAAWC,GAG5B1G,EAAUz5E,OAAOmgF,EAAaD,IAW9CF,OAAQ,SAASM,GACf,IAAI77E,EAAU67E,EAAW98E,KAAK07E,SAAW17E,KAAKqmC,iBAC9C,OAAIplC,EACEA,EAAQmoB,UACHnoB,EAAQmoB,YAGbppB,KAAKi7E,iBACAh6E,EAAQi+B,aAAa,OAGrBj+B,EAAQ0M,IAIV3N,KAAK2N,KAAO,IAYvBovE,OAAQ,SAASpvE,EAAKjJ,EAAUgR,GAM9B,OALAqF,EAAOkF,KAAKqG,UAAU3Y,GAAK,SAAS6Y,GAClCxmB,KAAK27E,WAAWn1D,EAAK9Q,GACrB1V,KAAKo1E,kBACL1wE,GAAYA,EAAS1E,QACpBA,KAAM0V,GAAWA,EAAQ6Q,aACrBvmB,MAOTH,SAAU,WACR,MAAO,2BAA6BG,KAAKw8E,SAAW,QAGtDR,mBAAoB,WAClB,IAAI9kE,EAASlX,KAAK+7E,aACdiB,EAAeh9E,KAAKs7E,oBACpBjW,EAAcrlE,KAAKslE,wBACnBt7C,EAASq7C,EAAYr7C,OACrBC,EAASo7C,EAAYp7C,OACrBgzD,EAAkBj9E,KAAKk9E,aAAel9E,KAAKqmC,iBAI/C,GAHIrmC,KAAKs+C,OACPt+C,KAAKgiB,IAAI,SAAA,IAEN9K,GAAW8S,EAASgzD,GAAgB/yD,EAAS+yD,EAMhD,OALAh9E,KAAK07E,SAAWuB,EAChBj9E,KAAKo7E,gBAAkB,EACvBp7E,KAAKq7E,gBAAkB,EACvBr7E,KAAKk7E,YAAclxD,OACnBhqB,KAAKm7E,YAAclxD,GAGhBlP,EAAOmhE,gBACVnhE,EAAOmhE,cAAgBnhE,EAAOuE,qBAEhC,IAAI+J,EAAWtO,EAAOkF,KAAKgJ,sBACvBsyD,EAAWv7E,KAAKk9E,YAAel9E,KAAKu7E,SAAW,YAAev7E,KAAKu7E,SACnE4B,EAAcF,EAAgBvgE,MAAO0gE,EAAeH,EAAgB1gE,OACxE8M,EAAS3M,MAAQygE,EACjB9zD,EAAS9M,OAAS6gE,EAClBp9E,KAAK07E,SAAWryD,EAChBrpB,KAAKk7E,YAAchkE,EAAO8S,OAASA,EACnChqB,KAAKm7E,YAAcjkE,EAAO+S,OAASA,EACnClP,EAAOmhE,cAAcJ,aACnB,CAAC5kE,GAAS+lE,EAAiBE,EAAaC,EAAcp9E,KAAK07E,SAAUH,GACvEv7E,KAAKo7E,gBAAkB/xD,EAAS3M,MAAQ1c,KAAKqmC,iBAAiB3pB,MAC9D1c,KAAKq7E,gBAAkBhyD,EAAS9M,OAASvc,KAAKqmC,iBAAiB9pB,QAWjEu/D,aAAc,SAASN,GASrB,GANAA,GADAA,EAAUA,GAAWx7E,KAAKw7E,SAAW,IACnBtkE,QAAO,SAASA,GAAU,OAAOA,IAAWA,EAAOmmE,oBACrEr9E,KAAKgiB,IAAI,SAAA,GAGThiB,KAAK47E,cAAc57E,KAAKu7E,SAAW,aAEZ,IAAnBC,EAAQxgF,OAKV,OAJAgF,KAAK07E,SAAW17E,KAAKqmC,iBACrBrmC,KAAKk9E,YAAc,KACnBl9E,KAAKo7E,gBAAkB,EACvBp7E,KAAKq7E,gBAAkB,EAChBr7E,KAGT,IAAIs9E,EAAat9E,KAAKqmC,iBAClB82C,EAAcG,EAAWvkC,cAAgBukC,EAAW5gE,MACpD0gE,EAAeE,EAAWtkC,eAAiBskC,EAAW/gE,OAE1D,GAAIvc,KAAK07E,WAAa17E,KAAKqmC,iBAAkB,CAE3C,IAAIhd,EAAWtO,EAAOkF,KAAKgJ,sBAC3BI,EAAS3M,MAAQygE,EACjB9zD,EAAS9M,OAAS6gE,EAClBp9E,KAAK07E,SAAWryD,EAChBrpB,KAAKk9E,YAAc7zD,OAKnBrpB,KAAK07E,SAAW17E,KAAKk9E,YACrBl9E,KAAKk9E,YAAY7gE,WAAW,MAAM6iC,UAAU,EAAG,EAAGi+B,EAAaC,GAE/Dp9E,KAAKk7E,YAAc,EACnBl7E,KAAKm7E,YAAc,EAYrB,OAVKpgE,EAAOmhE,gBACVnhE,EAAOmhE,cAAgBnhE,EAAOuE,qBAEhCvE,EAAOmhE,cAAcJ,aACnBN,EAASx7E,KAAKqmC,iBAAkB82C,EAAaC,EAAcp9E,KAAK07E,SAAU17E,KAAKu7E,UAC7Ev7E,KAAKqmC,iBAAiB3pB,QAAU1c,KAAK07E,SAASh/D,OAChD1c,KAAKqmC,iBAAiB9pB,SAAWvc,KAAK07E,SAASn/D,SAC/Cvc,KAAKo7E,gBAAkBp7E,KAAK07E,SAASh/D,MAAQ1c,KAAKqmC,iBAAiB3pB,MACnE1c,KAAKq7E,gBAAkBr7E,KAAK07E,SAASn/D,OAASvc,KAAKqmC,iBAAiB9pB,QAE/Dvc,MAOTunD,QAAS,SAASnrC,IAAAA,IACZpc,KAAKy9D,UAAqBz9D,KAAK+7E,cAAgB/7E,KAAKu9E,gBACtDv9E,KAAKg8E,qBAEPh8E,KAAKs8E,QAAQlgE,GACbpc,KAAKspE,oBAAoBltD,IAc3B+jC,YAAa,WACX,OAAOngD,KAAK6nE,oBAGd2B,YAAa,SAASptD,GACpB,IAAIohE,EAAgBx9E,KAAK07E,SACrBruE,EAAIrN,KAAK0c,MAAOrS,EAAIrK,KAAKuc,OACzBkhE,EAAKz6D,KAAKxI,IAAIgjE,EAAczkC,cAAgBykC,EAAc9gE,MAAOrP,EAAIrN,KAAKo7E,iBAC1EsC,EAAK16D,KAAKxI,IAAIgjE,EAAcxkC,eAAiBwkC,EAAcjhE,OAAQlS,EAAIrK,KAAKq7E,iBAC5E7hF,GAAK6T,EAAI,EAAG5T,GAAK4Q,EAAI,EACrBszE,EAAK36D,KAAKvI,IAAI,EAAGza,KAAKgqE,MAAQhqE,KAAKo7E,iBACnCwC,EAAK56D,KAAKvI,IAAI,EAAGza,KAAKiqE,MAAQjqE,KAAKq7E,iBAEvCmC,GAAiBphE,EAAIK,UAAU+gE,EAAeG,EAAIC,EAAIH,EAAIC,EAAIlkF,EAAGC,EAAG4T,EAAGhD,IAOzEkzE,aAAc,WACZ,IAAI/gE,EAAQxc,KAAKslE,wBACjB,OAAQ9oD,EAAMwN,SAAWhqB,KAAKk7E,aAAe1+D,EAAMyN,SAAWjqB,KAAKm7E,aAMrE0C,kBAAmB,WACjB79E,KAAKgiB,IAAIhiB,KAAKq8E,oBAUhBZ,aAAc,SAASx6E,EAASyU,GAC9B1V,KAAK27E,WAAW5gE,EAAOkF,KAAKuW,QAAQv1B,GAAUyU,GAC9CqF,EAAOkF,KAAKyW,SAAS12B,KAAK++C,aAAchkC,EAAOqrB,MAAM03C,aAOvDjC,YAAa,SAASnmE,GACpBA,IAAYA,EAAU,IACtB1V,KAAKw4C,WAAW9iC,GAChB1V,KAAKo1E,gBAAgB1/D,GACjB1V,KAAK07E,UAAY17E,KAAKumB,cACxBvmB,KAAK07E,SAASn1D,YAAcvmB,KAAKumB,cASrCw3D,aAAc,SAASvC,EAAS92E,GAC1B82E,GAAWA,EAAQxgF,OACrB+f,EAAOkF,KAAK8G,eAAey0D,GAAS,SAASv0D,GAC3CviB,GAAYA,EAASuiB,KACpB,wBAGHviB,GAAYA,KAUhB0wE,gBAAiB,SAAS1/D,GACxBA,IAAYA,EAAU,IACtB,IAAI2f,EAAKr1B,KAAK++C,aACd/+C,KAAK0c,MAAQhH,EAAQgH,OAAS2Y,EAAG0jB,cAAgB1jB,EAAG3Y,OAAS,EAC7D1c,KAAKuc,OAAS7G,EAAQ6G,QAAU8Y,EAAG2jB,eAAiB3jB,EAAG9Y,QAAU,GASnEiP,kCAAmC,WACjC,IAGI9R,EAHAskE,EAAMjjE,EAAOkF,KAAKuL,kCAAkCxrB,KAAK6gC,qBAAuB,IAChFo9C,EAASj+E,KAAK07E,SAASh/D,MAAOwhE,EAAUl+E,KAAK07E,SAASn/D,OACtDyN,EAAS,EAAGC,EAAS,EAAGigD,EAAa,EAAGC,EAAY,EAAGH,EAAQ,EAAGC,EAAQ,EAClEkU,EAASn+E,KAAK0c,MAAO0hE,EAAUp+E,KAAKuc,OAAQq5D,EAAmB,CAAEl5D,MAAOyhE,EAAQ5hE,OAAQ6hE,GA2CpG,OA1CIJ,GAAuB,SAAfA,EAAInyD,QAAoC,SAAfmyD,EAAIlyD,QAuCvC9B,EAASm0D,EAASF,EAClBh0D,EAASm0D,EAAUF,IAvCK,SAApBF,EAAIryD,cAENjS,GAAUykE,EAASF,GADnBj0D,EAASC,EAASlP,EAAOkF,KAAKsM,eAAevsB,KAAK07E,SAAU9F,KACtB,EACnB,QAAfoI,EAAInyD,SACNq+C,GAAcxwD,GAEG,QAAfskE,EAAInyD,SACNq+C,EAAaxwD,GAEfA,GAAU0kE,EAAUF,EAAUj0D,GAAU,EACrB,QAAf+zD,EAAIlyD,SACNq+C,GAAazwD,GAEI,QAAfskE,EAAIlyD,SACNq+C,EAAYzwD,IAGQ,UAApBskE,EAAIryD,cAENjS,EAASukE,EAASE,GADlBn0D,EAASC,EAASlP,EAAOkF,KAAKuM,iBAAiBxsB,KAAK07E,SAAU9F,IAE3C,QAAfoI,EAAInyD,SACNm+C,EAAQtwD,EAAS,GAEA,QAAfskE,EAAInyD,SACNm+C,EAAQtwD,GAEVA,EAASwkE,EAAUE,EAAUn0D,EACV,QAAf+zD,EAAIlyD,SACNm+C,EAAQvwD,EAAS,GAEA,QAAfskE,EAAIlyD,SACNm+C,EAAQvwD,GAEVukE,EAASE,EAASn0D,EAClBk0D,EAAUE,EAAUn0D,IAOjB,CACLvN,MAAOuhE,EACP1hE,OAAQ2hE,EACRl0D,OAAQA,EACRC,OAAQA,EACRigD,WAAYA,EACZC,UAAWA,EACXH,MAAOA,EACPC,MAAOA,MAWblvD,EAAOqrB,MAAM03C,WAAa,aAM1B/iE,EAAOqrB,MAAMlhC,UAAU03E,UAAY7hE,EAAOqrB,MAAMlhC,UAAUs3E,OAQ1DzhE,EAAOqrB,MAAM/e,WAAa,SAASg3D,EAAS35E,GAC1C,IAAI4S,EAASyD,EAAOkF,KAAK3I,OAAOV,MAAMynE,GACtCtjE,EAAOkF,KAAKqG,UAAUhP,EAAO3J,KAAK,SAAS6Y,EAAKrnB,GAC1CA,EACFuF,GAAYA,EAAS,KAAMvF,GAG7B4b,EAAOqrB,MAAMlhC,UAAU64E,aAAat/E,KAAK6Y,EAAQA,EAAOkkE,SAAS,SAASA,GACxElkE,EAAOkkE,QAAUA,GAAW,GAC5BzgE,EAAOqrB,MAAMlhC,UAAU64E,aAAat/E,KAAK6Y,EAAQ,CAACA,EAAOykE,eAAe,SAASuC,GAC/EhnE,EAAOykE,aAAeuC,EAAc,GACpCvjE,EAAOkF,KAAK8G,eAAe,CAACzP,EAAOgwB,WAAW,SAAS2kC,GACrD30D,EAAOgwB,SAAW2kC,EAAa,GAC/B,IAAI1vB,EAAQ,IAAIxhC,EAAOqrB,MAAM5f,EAAKlP,GAClC5S,EAAS63C,cAId,KAAMjlC,EAAOiP,cAUlBxL,EAAOqrB,MAAMm4C,QAAU,SAASz/E,EAAK4F,EAAU85E,GAC7CzjE,EAAOkF,KAAKqG,UAAUxnB,GAAK,SAAS0nB,GAClC9hB,GAAYA,EAAS,IAAIqW,EAAOqrB,MAAM5f,EAAKg4D,MAC1C,KAAMA,GAAcA,EAAWj4D,cASpCxL,EAAOqrB,MAAMuvC,gBACX56D,EAAOgD,kBAAkBvhB,OAAO,8DAA8DgF,MAAM,MAUtGuZ,EAAOqrB,MAAMJ,YAAc,SAAS/kC,EAASyD,EAAUgR,GACrD,IAAIkgE,EAAmB76D,EAAOwoB,gBAAgBtiC,EAAS8Z,EAAOqrB,MAAMuvC,iBACpE56D,EAAOqrB,MAAMm4C,QAAQ3I,EAAiB,cAAelxE,EACnD0R,EAAQV,EAAUqF,EAAOkF,KAAK3I,OAAOV,MAAMlB,GAAW,GAAMkgE,MAruBlE,CAyuBoCl5E,GAGpCqe,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOhV,OAAOb,UAAiD,CAMvFu5E,4BAA6B,WAC3B,IAAIl7D,EAAQvjB,KAAKujB,MAAQ,IACzB,OAAIA,EAAQ,EAC4B,GAA/BP,KAAKooB,OAAO7nB,EAAQ,GAAK,IAEF,GAAzBP,KAAKooB,MAAM7nB,EAAQ,KAQ5Bm7D,WAAY,WAEV,OADA1+E,KAAK+oB,OAAO/oB,KAAKy+E,+BACVz+E,MAWT2+E,aAAc,SAAS3K,GAGrB,IAAIlsE,EAAQ,aACRwwB,GAHJ07C,EAAYA,GAAa,IAGE17C,YAAcxwB,EACrC4xB,EAAWs6C,EAAUt6C,UAAY5xB,EACjCN,EAAQxH,KAgBZ,OAdA+a,EAAOkF,KAAKoZ,QAAQ,CAClBQ,WAAY75B,KAAK6iB,IAAI,SACrBiX,SAAU95B,KAAKy+E,8BACfjlD,SAAUx5B,KAAK8zE,YACfp6C,SAAU,SAASj0B,GACjB+B,EAAMuhB,OAAOtjB,GACbi0B,KAEFpB,WAAY,WACV9wB,EAAM+2C,YACNjmB,OAIGt4B,QAIX+a,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAO++B,aAAa50C,UAAuD,CAQnG05E,iBAAkB,SAAUtnE,GAG1B,OAFAA,EAAOonE,aACP1+E,KAAK+gB,mBACE/gB,MAST6+E,mBAAoB,SAAUvnE,GAI5B,OAHAA,EAAOqnE,aAAa,CAClBjlD,SAAU15B,KAAKk6C,wBAEVl6C,QAKX,WAEE,aAQA,SAAS8+E,EAAc/iE,EAAIgjE,GACzB,IAAIC,EAAiB,aAAeD,EAAY,yBAC5CE,EAAiBljE,EAAGmjE,aAAanjE,EAAGojE,iBAGxC,OAFApjE,EAAGqjE,aAAaH,EAAgBD,GAChCjjE,EAAGsjE,cAAcJ,KACZljE,EAAGujE,mBAAmBL,EAAgBljE,EAAGwjE,gBAwChD,SAAS7/D,EAAmBhK,GACtBA,GAAWA,EAAQiK,WACrB3f,KAAK2f,SAAWjK,EAAQiK,UAE1B3f,KAAKw/E,eAAex/E,KAAK2f,SAAU3f,KAAK2f,UACxC3f,KAAKy/E,iBAlCP1kE,EAAOwE,iBAAmB,SAASI,GACjC,GAAI5E,EAAO8C,aACT,OAAA,EAEF8B,EAAWA,GAAY5E,EAAO2E,mBAAmBxa,UAAUya,SAC3D,IAAIzD,EAASze,SAAS+M,cAAc,UAChCuR,EAAKG,EAAOG,WAAW,UAAYH,EAAOG,WAAW,sBACrDqjE,GAAAA,EAEJ,GAAI3jE,EAAI,CACNhB,EAAO0E,eAAiB1D,EAAG4jE,aAAa5jE,EAAG6jE,kBAC3CF,EAAc3kE,EAAO0E,gBAAkBE,EAEvC,IADA,IAAIkgE,EAAa,CAAC,QAAS,UAAW,QAC7BllF,EAAI,EAAGA,EAAI,EAAGA,IACrB,GAAImkF,EAAc/iE,EAAI8jE,EAAWllF,IAAI,CACnCogB,EAAO+kE,eAAiBD,EAAWllF,GACnC,OAKN,OADAqF,KAAK0/E,YAAcA,EACZA,GAGT3kE,EAAO2E,mBAAqBA,EAa5BA,EAAmBxa,UAA8D,CAE/Eya,SAAU,KASVnE,UAAW,GAOXgkE,eAAgB,SAAS9iE,EAAOH,GAC9Bvc,KAAK+kD,UACL/kD,KAAK+/E,kBAAkBrjE,EAAOH,GAE9Bvc,KAAKggF,UAAY,IAAIC,aAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IACxDjgF,KAAKkgF,8BAA8BxjE,EAAOH,IAO5C2jE,8BAA+B,SAASxjE,EAAOH,GAC7C,IAAgE4jE,EAA5DC,OAAAA,IAAwBljF,OAAOmjF,YACnC,IACE,IAAI5iE,UAAU,EAAG,GACjB0iE,GAAAA,EAEF,MAAO18E,GACL08E,GAAAA,EAGF,IAAIG,EAA2C,oBAAhBC,YAE3BC,EAAkD,oBAAtBpjE,kBAEhC,GAAMgjE,GAAkBD,GAAmBG,GAAqBE,EAAhE,CAIA,IAAIrkE,EAAepB,EAAOkF,KAAKgJ,sBAE3B/L,EAAc,IAAIqjE,YAAY7jE,EAAQH,EAAS,GACnD,GAAIxB,EAAOsE,oBAGT,OAFArf,KAAKkd,YAAcA,OACnBld,KAAKygF,WAAa9jE,GAGpB,IAMI+jE,EAAWC,EANXC,EAAc,CAChB1jE,YAAaA,EACbL,iBAAkBH,EAClBK,kBAAmBR,EACnBJ,aAAcA,GAGhBA,EAAaO,MAAQA,EACrBP,EAAaI,OAASA,EAEtBmkE,EAAYxjF,OAAOmjF,YAAYl0E,MAC/B2P,EAAoBrd,KAAKmiF,EAAa5gF,KAAK+b,GAAI6kE,GAC/CD,EAAgBzjF,OAAOmjF,YAAYl0E,MAAQu0E,EAE3CA,EAAYxjF,OAAOmjF,YAAYl0E,MAC/BwQ,EAAuBle,KAAKmiF,EAAa5gF,KAAK+b,GAAI6kE,GAG9CD,EAFezjF,OAAOmjF,YAAYl0E,MAAQu0E,GAG5C1gF,KAAKkd,YAAcA,EACnBld,KAAKygF,WAAa9jE,GAGlB3c,KAAKygF,WAAa3kE,IAQtBikE,kBAAmB,SAASrjE,EAAOH,GACjC,IAAIL,EAASnB,EAAOkF,KAAKgJ,sBACzB/M,EAAOQ,MAAQA,EACfR,EAAOK,OAASA,EAChB,IAAIskE,EAAY,CACVj1C,OAAAA,EACAk1C,oBAAAA,EACA79E,OAAAA,EACA89E,SAAAA,EACAC,WAAAA,GAEFjlE,EAAKG,EAAOG,WAAW,QAASwkE,GAC/B9kE,IACHA,EAAKG,EAAOG,WAAW,qBAAsBwkE,IAE1C9kE,IAGLA,EAAGklE,WAAW,EAAG,EAAG,EAAG,GAEvBjhF,KAAKkc,OAASA,EACdlc,KAAK+b,GAAKA,IAeZ+/D,aAAc,SAASN,EAASp5E,EAAQsa,EAAOH,EAAQJ,EAAco/D,GACnE,IACI2F,EADAnlE,EAAK/b,KAAK+b,GAEVw/D,IACF2F,EAAgBlhF,KAAKmhF,iBAAiB5F,EAAUn5E,IAElD,IAAI4Z,EAAgB,CAClBylD,cAAer/D,EAAOsa,OAASta,EAAOq/D,cACtCC,eAAgBt/D,EAAOma,QAAUna,EAAOs/D,eACxCyb,YAAazgE,EACb0gE,aAAc7gE,EACdM,iBAAkBH,EAClBK,kBAAmBR,EACnB1T,QAASkT,EACTqlE,cAAephF,KAAKqhF,cAActlE,EAAIW,EAAOH,GAAS2kE,GAAiB9+E,GACvEk/E,cAAethF,KAAKqhF,cAActlE,EAAIW,EAAOH,GAC7CglE,gBAAiBL,GACflhF,KAAKqhF,cAActlE,EAAIW,EAAOH,GAAS2kE,GAAiB9+E,GAC1Do/E,OAAQhG,EAAQxgF,OAChBymF,OAAAA,EACAzB,UAAWhgF,KAAKggF,UAChB0B,aAAc1hF,KAAK0hF,aACnBC,KAAM,EACNzF,cAAel8E,KACfmc,aAAcA,GAEZylE,EAAU7lE,EAAG8lE,oBAUjB,OATA9lE,EAAG+lE,gBAAgB/lE,EAAGgmE,YAAaH,GACnCpG,EAAQ7jE,SAAQ,SAAST,GAAUA,GAAUA,EAAO8qE,QAAQhmE,MA6HlE,SAA8BA,GAC5B,IAAIG,EAAeH,EAAcG,aAE7BS,EAASZ,EAAca,iBACvBC,EAAUd,EAAce,kBAFhBZ,EAAaO,QAIXE,GAJ2BT,EAAaI,SAInBO,IACjCX,EAAaO,MAAQE,EACrBT,EAAaI,OAASO,GAR1B,CA5H2Bd,GACrBhc,KAAKygF,WAAW1kE,EAAIC,GACpBD,EAAGkmE,YAAYlmE,EAAGmmE,WAAY,MAC9BnmE,EAAGomE,cAAcnmE,EAAcolE,eAC/BrlE,EAAGomE,cAAcnmE,EAAcslE,eAC/BvlE,EAAGqmE,kBAAkBR,GACrBzlE,EAAaE,WAAW,MAAMgqD,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACnDrqD,GAMT+oC,QAAS,WACH/kD,KAAKkc,SACPlc,KAAKkc,OAAS,KACdlc,KAAK+b,GAAK,MAEZ/b,KAAKqiF,oBAMPA,iBAAkB,WAChBriF,KAAK0hF,aAAe,GACpB1hF,KAAKsiF,aAAe,IActBjB,cAAe,SAAStlE,EAAIW,EAAOH,EAAQgmE,GACzC,IAAIC,EAAUzmE,EAAGslE,gBAYjB,OAXAtlE,EAAGkmE,YAAYlmE,EAAGmmE,WAAYM,GAC9BzmE,EAAG0mE,cAAc1mE,EAAGmmE,WAAYnmE,EAAG2mE,mBAAoB3mE,EAAG4mE,SAC1D5mE,EAAG0mE,cAAc1mE,EAAGmmE,WAAYnmE,EAAG6mE,mBAAoB7mE,EAAG4mE,SAC1D5mE,EAAG0mE,cAAc1mE,EAAGmmE,WAAYnmE,EAAG8mE,eAAgB9mE,EAAG+mE,eACtD/mE,EAAG0mE,cAAc1mE,EAAGmmE,WAAYnmE,EAAGgnE,eAAgBhnE,EAAG+mE,eAClDP,EACFxmE,EAAGinE,WAAWjnE,EAAGmmE,WAAY,EAAGnmE,EAAGuB,KAAMvB,EAAGuB,KAAMvB,EAAGwB,cAAeglE,GAGpExmE,EAAGinE,WAAWjnE,EAAGmmE,WAAY,EAAGnmE,EAAGuB,KAAMZ,EAAOH,EAAQ,EAAGR,EAAGuB,KAAMvB,EAAGwB,cAAe,MAEjFilE,GAYTrB,iBAAkB,SAAS8B,EAAUV,GACnC,GAAIviF,KAAKsiF,aAAaW,GACpB,OAAOjjF,KAAKsiF,aAAaW,GAGzB,IAAIT,EAAUxiF,KAAKqhF,cACjBrhF,KAAK+b,GAAIwmE,EAAmB7lE,MAAO6lE,EAAmBhmE,OAAQgmE,GAEhE,OADAviF,KAAKsiF,aAAaW,GAAYT,EACvBA,GAUXrG,kBAAmB,SAASZ,GACtBv7E,KAAKsiF,aAAa/G,KACpBv7E,KAAK+b,GAAGomE,cAAcniF,KAAKsiF,aAAa/G,WACjCv7E,KAAKsiF,aAAa/G,KAI7BkF,WAAY3kE,EASZ2jE,eAAgB,WACd,GAAIz/E,KAAKkjF,QACP,OAAOljF,KAAKkjF,QAEd,IAAInnE,EAAK/b,KAAK+b,GAAImnE,EAAU,CAAEC,SAAU,GAAItyE,OAAQ,IACpD,IAAKkL,EACH,OAAOmnE,EAET,IAAIE,EAAMrnE,EAAGsnE,aAAa,6BAC1B,GAAID,EAAK,CACP,IAAID,EAAWpnE,EAAG4jE,aAAayD,EAAIE,yBAC/BzyE,EAASkL,EAAG4jE,aAAayD,EAAIG,uBAC7BJ,IACFD,EAAQC,SAAWA,EAASz0E,eAE1BmC,IACFqyE,EAAQryE,OAASA,EAAOnC,eAI5B,OADA1O,KAAKkjF,QAAUA,EACRA,IA9Ub,GA6YA,WAEE,aAEA,IAAIxqD,EAAO,aAOX,SAAS9Y,KALT7E,EAAO6E,sBAAwBA,EAO/BA,EAAsB1a,UAAiE,CACrFi3E,kBAAmBzjD,EACnBqsB,QAASrsB,EACT2pD,iBAAkB3pD,EASlBld,UAAW,GAcXsgE,aAAc,SAASN,EAASgI,EAAerG,EAAaC,EAAcjhE,GACxE,IAAIC,EAAMD,EAAaE,WAAW,MAClCD,EAAIK,UAAU+mE,EAAe,EAAG,EAAGrG,EAAaC,GAChD,IAEIphE,EAAgB,CAClBmhE,YAAaA,EACbC,aAAcA,EACd9xD,UALclP,EAAImP,aAAa,EAAG,EAAG4xD,EAAaC,GAMlDqG,WAAYD,EACZE,kBANsBtnE,EAAImP,aAAa,EAAG,EAAG4xD,EAAaC,GAO1D/zD,SAAUlN,EACVC,IAAKA,EACL8/D,cAAel8E,MAQjB,OANAw7E,EAAQ7jE,SAAQ,SAAST,GAAUA,EAAO8qE,QAAQhmE,MAC9CA,EAAcsP,UAAU5O,QAAUygE,GAAenhE,EAAcsP,UAAU/O,SAAW6gE,IACtFjhE,EAAaO,MAAQV,EAAcsP,UAAU5O,MAC7CP,EAAaI,OAASP,EAAcsP,UAAU/O,QAEhDH,EAAIsB,aAAa1B,EAAcsP,UAAW,EAAG,GACtCtP,IA5Db,GAyEAjB,EAAOqrB,MAAQrrB,EAAOqrB,OAAS,GAC/BrrB,EAAOqrB,MAAMo1C,QAAUzgE,EAAOqrB,MAAMo1C,SAAW,GAO/CzgE,EAAOqrB,MAAMo1C,QAAQmI,WAAa5oE,EAAOkF,KAAKkT,YAAoE,CAOhHhoB,KAAM,aAONy4E,aAAc,qJAOd5E,eAAgB,iJAWhB5rD,WAAY,SAAS1d,GACfA,GACF1V,KAAKw4C,WAAW9iC,IAQpB8iC,WAAY,SAAS9iC,GACnB,IAAK,IAAI0K,KAAQ1K,EACf1V,KAAKogB,GAAQ1K,EAAQ0K,IAWzByjE,cAAe,SAAS9nE,EAAIijE,EAAgB4E,GAC1C5E,EAAiBA,GAAkBh/E,KAAKg/E,eACxC4E,EAAeA,GAAgB5jF,KAAK4jF,aACN,UAA1B7oE,EAAO+kE,iBACTd,EAAiBA,EAAenzE,QAC9B,yBACA,aAAekP,EAAO+kE,eAAiB,WAG3C,IAAIgE,EAAe/nE,EAAGmjE,aAAanjE,EAAGgoE,eAGtC,GAFAhoE,EAAGqjE,aAAa0E,EAAcF,GAC9B7nE,EAAGsjE,cAAcyE,IACZ/nE,EAAGujE,mBAAmBwE,EAAc/nE,EAAGwjE,gBAC1C,MAAM,IAAI15E,MAER,mCAAqC7F,KAAKmL,KAAO,KACjD4Q,EAAGioE,iBAAiBF,IAIxB,IAAI7E,EAAiBljE,EAAGmjE,aAAanjE,EAAGojE,iBAGxC,GAFApjE,EAAGqjE,aAAaH,EAAgBD,GAChCjjE,EAAGsjE,cAAcJ,IACZljE,EAAGujE,mBAAmBL,EAAgBljE,EAAGwjE,gBAC5C,MAAM,IAAI15E,MAER,qCAAuC7F,KAAKmL,KAAO,KACnD4Q,EAAGioE,iBAAiB/E,IAIxB,IAAIgF,EAAUloE,EAAG8nE,gBAIjB,GAHA9nE,EAAGmoE,aAAaD,EAASH,GACzB/nE,EAAGmoE,aAAaD,EAAShF,GACzBljE,EAAGooE,YAAYF,IACVloE,EAAGqoE,oBAAoBH,EAASloE,EAAGsoE,aACtC,MAAM,IAAIx+E,MAER,wCACAkW,EAAGuoE,kBAAkBL,IAIzB,IAAIM,EAAqBvkF,KAAKwkF,sBAAsBzoE,EAAIkoE,GACpDQ,EAAmBzkF,KAAK0kF,oBAAoB3oE,EAAIkoE,IAAY,GAGhE,OAFAQ,EAAiBE,OAAS5oE,EAAG6oE,mBAAmBX,EAAS,UACzDQ,EAAiBI,OAAS9oE,EAAG6oE,mBAAmBX,EAAS,UAClD,CACLA,QAASA,EACTM,mBAAoBA,EACpBE,iBAAkBA,IAWtBD,sBAAuB,SAASzoE,EAAIkoE,GAClC,MAAO,CACLjE,UAAWjkE,EAAG+oE,kBAAkBb,EAAS,eAa7CS,oBAAqB,WAEnB,MAAO,IASTK,kBAAmB,SAAShpE,EAAIwoE,EAAoBS,GAClD,IAAIC,EAAoBV,EAAmBvE,UACvCkF,EAASnpE,EAAGopE,eAChBppE,EAAGqpE,WAAWrpE,EAAGspE,aAAcH,GAC/BnpE,EAAGupE,wBAAwBL,GAC3BlpE,EAAGwpE,oBAAoBN,EAAmB,EAAGlpE,EAAGypE,OAAAA,EAAc,EAAG,GACjEzpE,EAAG0pE,WAAW1pE,EAAGspE,aAAcL,EAAejpE,EAAG2pE,cAGnDC,kBAAmB,SAASjwE,GAC1B,IAA0BgH,EAAOH,EAA7BR,EAAKrG,EAAQ7M,QACb6M,EAAQ8rE,OAAS,GAEnBjlE,EAAS7G,EAAQqH,kBACbrH,EAAQynE,eAFZzgE,EAAQhH,EAAQmH,mBAEqBnH,EAAQ0nE,eAAiB7gE,IAC5DR,EAAGomE,cAAczsE,EAAQ4rE,eACzB5rE,EAAQ4rE,cAAgB5rE,EAAQwmE,cAAcmF,cAActlE,EAAIW,EAAOH,IAEzER,EAAG6pE,qBAAqB7pE,EAAGgmE,YAAahmE,EAAG8pE,kBAAmB9pE,EAAGmmE,WAC/DxsE,EAAQ4rE,cAAe,KAIzBvlE,EAAG+lE,gBAAgB/lE,EAAGgmE,YAAa,MACnChmE,EAAG0d,WAIPqsD,cAAe,SAASpwE,GACtBA,EAAQ8rE,SACR9rE,EAAQisE,OACR,IAAIoE,EAAOrwE,EAAQ4rE,cACnB5rE,EAAQ4rE,cAAgB5rE,EAAQ0rE,cAChC1rE,EAAQ0rE,cAAgB2E,GAU1B1I,eAAgB,WACd,IAAI2I,EAAOhmF,KAAKimF,cACZtO,EAAS58D,EAAOqrB,MAAMo1C,QAAQx7E,KAAKmL,MAAMjG,UAC7C,GAAI8gF,EAAM,CACR,GAAIv/E,MAAMqQ,QAAQ6gE,EAAOqO,IAAQ,CAC/B,IAAK,IAAIrrF,EAAIg9E,EAAOqO,GAAMhrF,OAAQL,KAChC,GAAIqF,KAAKgmF,GAAMrrF,KAAOg9E,EAAOqO,GAAMrrF,GACjC,OAAA,EAGJ,OAAA,EAGA,OAAOg9E,EAAOqO,KAAUhmF,KAAKgmF,GAI/B,OAAA,GAiBJhE,QAAS,SAAStsE,GACZA,EAAQ+rE,OACVzhF,KAAK2lF,kBAAkBjwE,GACvB1V,KAAKkmF,aAAaxwE,GAClB1V,KAAK8lF,cAAcpwE,IAGnB1V,KAAKmmF,UAAUzwE,IAUnB0wE,eAAgB,SAAS1wE,GAIvB,OAHKA,EAAQgsE,aAAanjF,eAAeyB,KAAKmL,QAC5CuK,EAAQgsE,aAAa1hF,KAAKmL,MAAQnL,KAAK6jF,cAAcnuE,EAAQ7M,UAExD6M,EAAQgsE,aAAa1hF,KAAKmL,OAenC+6E,aAAc,SAASxwE,GACrB,IAAIqG,EAAKrG,EAAQ7M,QACbw9E,EAASrmF,KAAKomF,eAAe1wE,GAE/BqG,EAAGkmE,YAAYlmE,EAAGmmE,WADC,IAAjBxsE,EAAQisE,MAAcjsE,EAAQ6rE,gBACF7rE,EAAQ6rE,gBAGR7rE,EAAQ0rE,eAExCrlE,EAAGuqE,WAAWD,EAAOpC,SACrBjkF,KAAK+kF,kBAAkBhpE,EAAIsqE,EAAO9B,mBAAoB7uE,EAAQsqE,WAE9DjkE,EAAGwqE,UAAUF,EAAO5B,iBAAiBE,OAAQ,EAAIjvE,EAAQynE,aACzDphE,EAAGwqE,UAAUF,EAAO5B,iBAAiBI,OAAQ,EAAInvE,EAAQ0nE,cAEzDp9E,KAAKwmF,gBAAgBzqE,EAAIsqE,EAAO5B,kBAChC1oE,EAAG0qE,SAAS,EAAG,EAAG/wE,EAAQmH,iBAAkBnH,EAAQqH,mBACpDhB,EAAG2qE,WAAW3qE,EAAG4qE,eAAgB,EAAG,IAGtCC,sBAAuB,SAAS7qE,EAAIymE,EAASqE,GAC3C9qE,EAAG+qE,cAAcD,GACjB9qE,EAAGkmE,YAAYlmE,EAAGmmE,WAAYM,GAE9BzmE,EAAG+qE,cAAc/qE,EAAGgrE,WAGtBC,wBAAyB,SAASjrE,EAAI8qE,GACpC9qE,EAAG+qE,cAAcD,GACjB9qE,EAAGkmE,YAAYlmE,EAAGmmE,WAAY,MAC9BnmE,EAAG+qE,cAAc/qE,EAAGgrE,WAGtBE,iBAAkB,WAChB,OAAOjnF,KAAKA,KAAKimF,gBAGnBiB,iBAAkB,SAASzhF,GACzBzF,KAAKA,KAAKimF,eAAiBxgF,GAW7B+gF,gBAAiB,aAQjBW,gBAAiB,SAASzxE,GACxB,IAAKA,EAAQ0xE,UAAW,CACtB,IAAIA,EAAY3pF,SAAS+M,cAAc,UACvC48E,EAAU1qE,MAAQhH,EAAQynE,YAC1BiK,EAAU7qE,OAAS7G,EAAQ0nE,aAC3B1nE,EAAQ0xE,UAAYA,IAQxBlwC,SAAU,WACR,IAAI5/B,EAAS,CAAEnM,KAAMnL,KAAKmL,MAAQk8E,EAAQrnF,KAAKimF,cAI/C,OAHIoB,IACF/vE,EAAO+vE,GAASrnF,KAAKqnF,IAEhB/vE,GAOT8tC,OAAQ,WAEN,OAAOplD,KAAKk3C,cAIhBn8B,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAAa,SAAS/P,EAAQ5S,GAC5D,IAAIwS,EAAS,IAAI6D,EAAOqrB,MAAMo1C,QAAQlkE,EAAOnM,MAAMmM,GAEnD,OADA5S,GAAYA,EAASwS,GACdA,GAIT,SAAU/Z,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAwB3BA,EAAQ8L,aAAAA,EAvBUvsE,EAAOkF,KAAKkT,aAuBIqoD,EAAQmI,WAAqE,CAO7Gx4E,KAAM,cAEN6zE,eAAgB,0QAoBhBj0D,OAAQ,CACN,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,GAGdk7D,cAAe,SAMfsB,YAAAA,EAMAn0D,WAAY,SAAS1d,GACnB1V,KAAK+yB,UAAU,aAAcrd,GAE7B1V,KAAK+qB,OAAS/qB,KAAK+qB,OAAOztB,MAAM,IASlC6oF,UAAW,SAASzwE,GAClB,IAII/E,EAAGvG,EAAGtQ,EAAGD,EAAGc,EAHZwB,EADYuZ,EAAQ4V,UACHnvB,KACjBq+E,EAAOr+E,EAAKnB,OACZwS,EAAIxN,KAAK+qB,OACMw8D,EAAavnF,KAAKunF,WAErC,IAAK5sF,EAAI,EAAGA,EAAI6/E,EAAM7/E,GAAK,EACzBgW,EAAIxU,EAAKxB,GACTyP,EAAIjO,EAAKxB,EAAI,GACbb,EAAIqC,EAAKxB,EAAI,GACT4sF,GACFprF,EAAKxB,GAAKgW,EAAInD,EAAE,GAAKpD,EAAIoD,EAAE,GAAK1T,EAAI0T,EAAE,GAAY,IAAPA,EAAE,GAC7CrR,EAAKxB,EAAI,GAAKgW,EAAInD,EAAE,GAAKpD,EAAIoD,EAAE,GAAK1T,EAAI0T,EAAE,GAAY,IAAPA,EAAE,GACjDrR,EAAKxB,EAAI,GAAKgW,EAAInD,EAAE,IAAMpD,EAAIoD,EAAE,IAAM1T,EAAI0T,EAAE,IAAc,IAARA,EAAE,MAIpDrR,EAAKxB,GAAKgW,EAAInD,EAAE,GAAKpD,EAAIoD,EAAE,GAAK1T,EAAI0T,EAAE,IADtC3T,EAAIsC,EAAKxB,EAAI,IACkC6S,EAAE,GAAY,IAAPA,EAAE,GACxDrR,EAAKxB,EAAI,GAAKgW,EAAInD,EAAE,GAAKpD,EAAIoD,EAAE,GAAK1T,EAAI0T,EAAE,GAAK3T,EAAI2T,EAAE,GAAY,IAAPA,EAAE,GAC5DrR,EAAKxB,EAAI,GAAKgW,EAAInD,EAAE,IAAMpD,EAAIoD,EAAE,IAAM1T,EAAI0T,EAAE,IAAM3T,EAAI2T,EAAE,IAAc,IAARA,EAAE,IAChErR,EAAKxB,EAAI,GAAKgW,EAAInD,EAAE,IAAMpD,EAAIoD,EAAE,IAAM1T,EAAI0T,EAAE,IAAM3T,EAAI2T,EAAE,IAAc,IAARA,EAAE,MAWtEk3E,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLuD,aAAczrE,EAAG6oE,mBAAmBX,EAAS,gBAC7CwD,WAAY1rE,EAAG6oE,mBAAmBX,EAAS,gBAU/CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B,IAAIj3E,EAAIxN,KAAK+qB,OAOT28D,EAAY,CAACl6E,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAKA,EAAE,KACtCuO,EAAG4rE,iBAAiBlD,EAAiB+C,cAAAA,EAPxB,CACPh6E,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GACpBA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GACpBA,EAAE,IAAKA,EAAE,IAAKA,EAAE,IAAKA,EAAE,IACvBA,EAAE,IAAKA,EAAE,IAAKA,EAAE,IAAKA,EAAE,MAI7BuO,EAAG6rE,WAAWnD,EAAiBgD,WAAYC,MAW/C3sE,EAAOqrB,MAAMo1C,QAAQ8L,YAAYjgE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WA3JhF,CA4JoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAiB3BA,EAAQqM,YAAAA,EAhBU9sE,EAAOkF,KAAKkT,aAgBGqoD,EAAQmI,WAAoE,CAO3Gx4E,KAAM,aAKN6zE,eAAgB,6NAiBhB8I,WAAY,EAOZ7B,cAAe,aAQfE,UAAW,SAASzwE,GAClB,GAAwB,IAApB1V,KAAK8nF,WAAT,CAGA,IAC2BntF,EAAvBwB,EADYuZ,EAAQ4V,UACHnvB,KAASzB,EAAMyB,EAAKnB,OACrC8sF,EAAa9kE,KAAKooB,MAAwB,IAAlBprC,KAAK8nF,YACjC,IAAKntF,EAAI,EAAGA,EAAID,EAAKC,GAAK,EACxBwB,EAAKxB,GAAKwB,EAAKxB,GAAKmtF,EACpB3rF,EAAKxB,EAAI,GAAKwB,EAAKxB,EAAI,GAAKmtF,EAC5B3rF,EAAKxB,EAAI,GAAKwB,EAAKxB,EAAI,GAAKmtF,IAUhCpD,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACL8D,YAAahsE,EAAG6oE,mBAAmBX,EAAS,iBAUhDuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAGwqE,UAAU9B,EAAiBsD,YAAa/nF,KAAK8nF,eAWpD/sE,EAAOqrB,MAAMo1C,QAAQqM,WAAWxgE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WA9G/E,CAgHoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5C3E,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5BolE,EAAUzgE,EAAOqrB,MAAMo1C,QAgD3BA,EAAQwM,WAAAA,EA/CUjtE,EAAOkF,KAAKkT,aA+CEqoD,EAAQmI,WAAmE,CAOzGx4E,KAAM,YAKN88E,QAAAA,EAKAl9D,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAKjCi0D,eAAgB,CACdkJ,cAAe,qcAgBfC,cAAe,2hBAkBfC,cAAe,0cAgBfC,cAAe,4hBAkBfC,cAAe,0cAgBfC,cAAe,4hBAkBfC,cAAe,0cAgBfC,cAAe,6hBAmCjBrC,eAAgB,SAAS1wE,GACvB,IAAI+L,EAAOuB,KAAKD,KAAK/iB,KAAK+qB,OAAO/vB,QAC7BugF,EAAWv7E,KAAKmL,KAAO,IAAMsW,EAAO,KAAOzhB,KAAKioF,OAAS,EAAI,GAC7D7I,EAAep/E,KAAKg/E,eAAezD,GAIvC,OAHK7lE,EAAQgsE,aAAanjF,eAAeg9E,KACvC7lE,EAAQgsE,aAAanG,GAAYv7E,KAAK6jF,cAAcnuE,EAAQ7M,QAASu2E,IAEhE1pE,EAAQgsE,aAAanG,IAS9B4K,UAAW,SAASzwE,GAClB,IAWI/E,EAAGvG,EAAGtQ,EAAGD,EAAG6uF,EACZC,EAAKC,EAAKC,EAAQC,EAClBtvF,EAAGC,EAAG00B,EAAIC,EAbV9C,EAAY5V,EAAQ4V,UACpBnvB,EAAOmvB,EAAUnvB,KACjB4sF,EAAU/oF,KAAK+qB,OACfi+D,EAAOhmE,KAAKooB,MAAMpoB,KAAKD,KAAKgmE,EAAQ/tF,SACpCiuF,EAAWjmE,KAAKa,MAAMmlE,EAAO,GAC7BE,EAAK59D,EAAU5O,MACfysE,EAAK79D,EAAU/O,OACfphB,EAASua,EAAQ0G,IAAIgtE,gBAAgBF,EAAIC,GACzCE,EAAMluF,EAAOgB,KAEbmtF,EAAWtpF,KAAKioF,OAAS,EAAI,EAKjC,IAAKxuF,EAAI,EAAGA,EAAI0vF,EAAI1vF,IAClB,IAAKD,EAAI,EAAGA,EAAI0vF,EAAI1vF,IAAK,CAMvB,IALAkvF,EAAwB,GAAdjvF,EAAIyvF,EAAK1vF,GAGnBmX,EAAI,EAAGvG,EAAI,EAAGtQ,EAAI,EAAGD,EAAI,EAEpBu0B,EAAK,EAAGA,EAAK46D,EAAM56D,IACtB,IAAKD,EAAK,EAAGA,EAAK66D,EAAM76D,IAEtBw6D,EAAMnvF,EAAI20B,EAAK86D,GADfL,EAAMnvF,EAAI20B,EAAK66D,GAIL,GAAKL,GAAOO,GAAMR,EAAM,GAAKA,GAAOO,IAO9Cv4E,GAAKxU,EAHL0sF,EAA4B,GAAlBD,EAAMM,EAAKP,KACrBG,EAAKC,EAAQ36D,EAAK46D,EAAO76D,IAGzB/jB,GAAKjO,EAAK0sF,EAAS,GAAKC,EACxBhvF,GAAKqC,EAAK0sF,EAAS,GAAKC,EAEnBQ,IACHzvF,GAAKsC,EAAK0sF,EAAS,GAAKC,IAI9BO,EAAIX,GAAU/3E,EACd04E,EAAIX,EAAS,GAAKt+E,EAClBi/E,EAAIX,EAAS,GAAK5uF,EAKhBuvF,EAAIX,EAAS,GAJVY,EAIentF,EAAKusF,EAAS,GAHd7uF,EAOxB6b,EAAQ4V,UAAYnwB,GAStBupF,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLsF,QAASxtE,EAAG6oE,mBAAmBX,EAAS,WACxCuF,QAASztE,EAAG6oE,mBAAmBX,EAAS,WACxCwF,UAAW1tE,EAAG6oE,mBAAmBX,EAAS,aAC1CyF,MAAO3tE,EAAG6oE,mBAAmBX,EAAS,WAU1CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAG4tE,WAAWlF,EAAiB8E,QAASvpF,KAAK+qB,SAO/CmsB,SAAU,WACR,OAAO9gC,EAAOpW,KAAK+yB,UAAU,YAAa,CACxCk1D,OAAQjoF,KAAKioF,OACbl9D,OAAQ/qB,KAAK+qB,YAYnBhQ,EAAOqrB,MAAMo1C,QAAQwM,UAAU3gE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WA7V9E,CA+VoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAc3BA,EAAQoO,WAAAA,EAbU7uE,EAAOkF,KAAKkT,aAaEqoD,EAAQmI,WAAmE,CAOzGx4E,KAAM,YAEN6zE,eAAgB,CACdlzC,QAAS,+PAQT+9C,UAAW,+SASXC,WAAY,uRAiBdC,KAAM,UAEN9D,cAAe,OAQfE,UAAW,SAASzwE,GAClB,IAC2B/a,EACJ8K,EADnBtJ,EADYuZ,EAAQ4V,UACHnvB,KACjBzB,EAAMyB,EAAKnB,OACX+uF,EAAO/pF,KAAK+pF,KAChB,IAAKpvF,EAAI,EAAGA,EAAID,EAAKC,GAAK,EACX,YAATovF,EACFtkF,GAAStJ,EAAKxB,GAAKwB,EAAKxB,EAAI,GAAKwB,EAAKxB,EAAI,IAAM,EAEhC,cAATovF,EACPtkF,GAASud,KAAKxI,IAAIre,EAAKxB,GAAIwB,EAAKxB,EAAI,GAAIwB,EAAKxB,EAAI,IAC/CqoB,KAAKvI,IAAIte,EAAKxB,GAAIwB,EAAKxB,EAAI,GAAIwB,EAAKxB,EAAI,KAAO,EAEjC,eAATovF,IACPtkF,EAAQ,IAAOtJ,EAAKxB,GAAK,IAAOwB,EAAKxB,EAAI,GAAK,IAAOwB,EAAKxB,EAAI,IAEhEwB,EAAKxB,GAAK8K,EACVtJ,EAAKxB,EAAI,GAAK8K,EACdtJ,EAAKxB,EAAI,GAAK8K,GAUlB2gF,eAAgB,SAAS1wE,GACvB,IAAI6lE,EAAWv7E,KAAKmL,KAAO,IAAMnL,KAAK+pF,KAKtC,OAJKr0E,EAAQgsE,aAAanjF,eAAeg9E,KAEvC7lE,EAAQgsE,aAAanG,GAAYv7E,KAAK6jF,cAAcnuE,EAAQ7M,QADzC7I,KAAKg/E,eAAeh/E,KAAK+pF,QAGvCr0E,EAAQgsE,aAAanG,IAS9BmJ,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACL+F,MAAOjuE,EAAG6oE,mBAAmBX,EAAS,WAU1CuC,gBAAiB,SAASzqE,EAAI0oE,GAG5B1oE,EAAGkuE,UAAUxF,EAAiBuF,MADnB,IASb3M,eAAgB,WACd,OAAA,KAWJtiE,EAAOqrB,MAAMo1C,QAAQoO,UAAUviE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAvJ9E,CAyJoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAc3BA,EAAQ0O,QAAAA,EAbUnvE,EAAOkF,KAAKkT,aAaDqoD,EAAQmI,WAAgE,CAOnGx4E,KAAM,SAEN6zE,eAAgB,qSAkBhBmL,QAAAA,EAEAlE,cAAe,SAQfE,UAAW,SAASzwE,GAClB,IAC2B/a,EAAvBwB,EADYuZ,EAAQ4V,UACHnvB,KACjBzB,EAAMyB,EAAKnB,OACf,IAAKL,EAAI,EAAGA,EAAID,EAAKC,GAAK,EACxBwB,EAAKxB,GAAK,IAAMwB,EAAKxB,GACrBwB,EAAKxB,EAAI,GAAK,IAAMwB,EAAKxB,EAAI,GAC7BwB,EAAKxB,EAAI,GAAK,IAAMwB,EAAKxB,EAAI,IAUjC0iF,eAAgB,WACd,OAAQr9E,KAAKmqF,QASfzF,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLmG,QAASruE,EAAG6oE,mBAAmBX,EAAS,aAU5CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAGkuE,UAAUxF,EAAiB2F,QAASpqF,KAAKmqF,WAWhDpvE,EAAOqrB,MAAMo1C,QAAQ0O,OAAO7iE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WA3G3E,CA8GoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5C3E,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5BolE,EAAUzgE,EAAOqrB,MAAMo1C,QAkB3BA,EAAQ6O,OAAAA,EAjBUtvE,EAAOkF,KAAKkT,aAiBFqoD,EAAQmI,WAA+D,CAOjGx4E,KAAM,QAKN6zE,eAAgB,ucAoBhBiH,cAAe,QAOfqE,MAAO,EAQPnE,UAAW,SAASzwE,GAClB,GAAmB,IAAf1V,KAAKsqF,MAAT,CAGA,IAC2B3vF,EAAGD,EACN6vF,EADpBpuF,EADYuZ,EAAQ4V,UACHnvB,KACjBmuF,EAAQtqF,KAAKsqF,MAEjB,IAAK3vF,EAAI,EAAGD,EAAMyB,EAAKnB,OAAQL,EAAID,EAAKC,GAAK,EAE3C4vF,GAAQ,GAAMvnE,KAAKc,UAAYwmE,EAE/BnuF,EAAKxB,IAAM4vF,EACXpuF,EAAKxB,EAAI,IAAM4vF,EACfpuF,EAAKxB,EAAI,IAAM4vF,IAUnB7F,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLuG,OAAQzuE,EAAG6oE,mBAAmBX,EAAS,UACvCwG,MAAO1uE,EAAG6oE,mBAAmBX,EAAS,WAU1CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAGwqE,UAAU9B,EAAiB+F,OAAQxqF,KAAKsqF,MAAQ,KACnDvuE,EAAGwqE,UAAU9B,EAAiBgG,MAAOznE,KAAKc,WAO5CozB,SAAU,WACR,OAAO9gC,EAAOpW,KAAK+yB,UAAU,YAAa,CACxCu3D,MAAOtqF,KAAKsqF,WAYlBvvE,EAAOqrB,MAAMo1C,QAAQ6O,MAAMhjE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAnI1E,CAqIoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAiB3BA,EAAQkP,UAAAA,EAhBU3vE,EAAOkF,KAAKkT,aAgBCqoD,EAAQmI,WAAkE,CAOvGx4E,KAAM,WAENw/E,UAAW,EAEX1E,cAAe,YAKfjH,eAAgB,6fAwBhBmH,UAAW,SAASzwE,GAClB,IAIIuL,EAAOtmB,EAAG+G,EAAGiP,EAAGvG,EAAGtQ,EAAGD,EACtByK,EAAIsmF,EAAIC,EAAOC,EALfx/D,EAAY5V,EAAQ4V,UACpBnvB,EAAOmvB,EAAUnvB,KACjBq+E,EAAOlvD,EAAU/O,OACjBk+D,EAAOnvD,EAAU5O,MAIrB,IAAK/hB,EAAI,EAAGA,EAAI6/E,EAAM7/E,GAAKqF,KAAK2qF,UAC9B,IAAKjpF,EAAI,EAAGA,EAAI+4E,EAAM/4E,GAAK1B,KAAK2qF,UAW9B,IAPAh6E,EAAIxU,EAFJ8kB,EAAa,EAAJtmB,EAAS8/E,EAAY,EAAJ/4E,GAG1B0I,EAAIjO,EAAK8kB,EAAQ,GACjBnnB,EAAIqC,EAAK8kB,EAAQ,GACjBpnB,EAAIsC,EAAK8kB,EAAQ,GAEjB4pE,EAAQ7nE,KAAKxI,IAAI7f,EAAIqF,KAAK2qF,UAAWnQ,GACrCsQ,EAAQ9nE,KAAKxI,IAAI9Y,EAAI1B,KAAK2qF,UAAWlQ,GAChCn2E,EAAK3J,EAAG2J,EAAKumF,EAAOvmF,IACvB,IAAKsmF,EAAKlpF,EAAGkpF,EAAKE,EAAOF,IAEvBzuF,EADA8kB,EAAc,EAAL3c,EAAUm2E,EAAa,EAALmQ,GACbj6E,EACdxU,EAAK8kB,EAAQ,GAAK7W,EAClBjO,EAAK8kB,EAAQ,GAAKnnB,EAClBqC,EAAK8kB,EAAQ,GAAKpnB,GAU5BwjF,eAAgB,WACd,OAA0B,IAAnBr9E,KAAK2qF,WASdjG,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACL8G,WAAYhvE,EAAG6oE,mBAAmBX,EAAS,cAC3CU,OAAQ5oE,EAAG6oE,mBAAmBX,EAAS,UACvCY,OAAQ9oE,EAAG6oE,mBAAmBX,EAAS,YAU3CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAGwqE,UAAU9B,EAAiBsG,WAAY/qF,KAAK2qF,cAWnD5vE,EAAOqrB,MAAMo1C,QAAQkP,SAASrjE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAtI7E,CAwIoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5C3E,EAAS2E,EAAOkF,KAAK3I,OAAOlB,OAC5BolE,EAAUzgE,EAAOqrB,MAAMo1C,QAkB3BA,EAAQwP,aAAAA,EAjBUjwE,EAAOkF,KAAKkT,aAiBIqoD,EAAQmI,WAAqE,CAO7Gx4E,KAAM,cAON8vB,MAAO,UAKP+jD,eAAgB,uTAgBhBx2B,SAAU,IAMVyiC,UAAAA,EAcA9E,UAAW,SAASzwE,GAClB,IAC2B/a,EAEvBgW,EAAGvG,EAAGtQ,EAFNqC,EADYuZ,EAAQ4V,UACHnvB,KACjBqsD,EAA2B,IAAhBxoD,KAAKwoD,SAEhBpmD,EAAS,IAAI2Y,EAAO4f,MAAM36B,KAAKi7B,OAAOL,YACtCswD,EAAO,CACL9oF,EAAO,GAAKomD,EACZpmD,EAAO,GAAKomD,EACZpmD,EAAO,GAAKomD,GAEd2iC,EAAQ,CACN/oF,EAAO,GAAKomD,EACZpmD,EAAO,GAAKomD,EACZpmD,EAAO,GAAKomD,GAIlB,IAAK7tD,EAAI,EAAGA,EAAIwB,EAAKnB,OAAQL,GAAK,EAEhCyP,EAAIjO,EAAKxB,EAAI,GACbb,EAAIqC,EAAKxB,EAAI,IAFbgW,EAAIxU,EAAKxB,IAIDuwF,EAAK,IACT9gF,EAAI8gF,EAAK,IACTpxF,EAAIoxF,EAAK,IACTv6E,EAAIw6E,EAAM,IACV/gF,EAAI+gF,EAAM,IACVrxF,EAAIqxF,EAAM,KACZhvF,EAAKxB,EAAI,GAAK,IAWpB+pF,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLmH,KAAMrvE,EAAG6oE,mBAAmBX,EAAS,QACrCoH,MAAOtvE,EAAG6oE,mBAAmBX,EAAS,WAU1CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B,IAAIriF,EAAS,IAAI2Y,EAAO4f,MAAM36B,KAAKi7B,OAAOL,YACtC4tB,EAAWjjC,WAAWvlB,KAAKwoD,UAO3B2iC,EAAQ,CACN/oF,EAAO,GAAK,IAAMomD,EAClBpmD,EAAO,GAAK,IAAMomD,EAClBpmD,EAAO,GAAK,IAAMomD,EAClB,GAENzsC,EAAG6rE,WAAWnD,EAAiB2G,KAZpB,CACL,EAAIhpF,EAAO,GAAK,IAAMomD,EACtB,EAAIpmD,EAAO,GAAK,IAAMomD,EACtB,EAAIpmD,EAAO,GAAK,IAAMomD,EACtB,IASNzsC,EAAG6rE,WAAWnD,EAAiB4G,MAAOF,IAOxCj0C,SAAU,WACR,OAAO9gC,EAAOpW,KAAK+yB,UAAU,YAAa,CACxCkI,MAAOj7B,KAAKi7B,MACZutB,SAAUxoD,KAAKwoD,cAYrBztC,EAAOqrB,MAAMo1C,QAAQwP,YAAY3jE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WA1KhF,CA4KoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QACvBroD,EAAcpY,EAAOkF,KAAKkT,YAE1B+M,EAAW,CACborD,QAAS,CACP,MAAQ,QAAS,OAAQ,EAAE,MAC1B,MAAQ,OAAQ,OAAQ,GAAG,MAC5B,QAAS,OAAQ,OAAQ,GAAG,OAC5B,EAAE,EAAE,EAAE,EAAE,GAEVC,QAAS,CACP,OAAQ,QAAS,OAAQ,EAAE,OAC3B,OAAQ,OAAQ,OAAQ,EAAE,OAC1B,OAAS,OAAQ,OAAQ,EAAE,OAC3B,EAAE,EAAE,EAAE,EAAE,GAEVC,WAAY,CACV,SAAS,QAAS,OAAQ,EAAE,QAC3B,OAAQ,SAAS,OAAQ,EAAE,QAC3B,QAAS,OAAQ,QAAQ,EAAE,OAC5B,EAAE,EAAE,EAAE,EAAE,GAEVC,YAAa,CACX,SAAS,QAAS,OAAQ,EAAE,QAC3B,OAAQ,SAAS,OAAQ,GAAG,QAC5B,OAAS,OAAQ,QAAQ,EAAE,OAC5B,EAAE,EAAE,EAAE,EAAE,GAEVC,SAAU,CACR,OAAO,MAAO,KAAM,EAAE,GACrB,KAAM,OAAO,KAAM,EAAE,GACrB,MAAO,KAAM,MAAM,EAAE,EACtB,EAAE,EAAE,EAAE,EAAE,GAEVC,MAAO,CACL,KAAO,KAAO,KAAO,EAAG,EACxB,KAAO,KAAO,KAAO,EAAG,EACxB,KAAO,KAAO,KAAO,EAAG,EACxB,EAAG,EAAG,EAAG,EAAG,GAEdC,WAAY,CACV,IAAK,IAAK,IAAK,GAAI,EACnB,IAAK,IAAK,IAAK,GAAI,EACnB,IAAK,IAAK,IAAK,GAAI,EACnB,EAAG,EAAG,EAAG,EAAG,IAIhB,IAAK,IAAI1vF,KAAOgkC,EACds7C,EAAQt/E,GAAOi3B,EAAYqoD,EAAQ8L,YAAgE,CAOjGn8E,KAAMjP,EASN6uB,OAAQmV,EAAShkC,GAKjB+pF,eAAAA,EAIAsB,YAAAA,IAGFxsE,EAAOqrB,MAAMo1C,QAAQt/E,GAAKmrB,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAlF3E,CAoFoC3qB,GAGpC,SAAUS,GACR,aAEA,IAAI4d,EAAS5d,EAAO4d,OAChBygE,EAAUzgE,EAAOqrB,MAAMo1C,QAwB3BA,EAAQqQ,YAAAA,EAvBU9wE,EAAOkF,KAAKkT,aAuBGqoD,EAAQmI,WAA+D,CACtGx4E,KAAM,aAMN8vB,MAAO,UAMP8uD,KAAM,WAKNn+C,MAAO,EAKPozC,eAAgB,CACdp0D,SAAU,oCACVkhE,OAAQ,4EACR/jF,IAAK,oCACLgkF,KAAM,2DACNhkD,SAAU,oCACVikD,QAAS,0DACTC,OAAQ,0DACRC,UAAW,4EACXxpC,QAAS,mbAeTypC,KAAM,4EAWRC,YAAa,SAASrC,GACpB,MAAO,iNAQD/pF,KAAKg/E,eAAe+K,GACtB,QAUN3D,eAAgB,SAAS1wE,GACvB,IAA4C0pE,EAAxC7D,EAAWv7E,KAAKmL,KAAO,IAAMnL,KAAK+pF,KAKtC,OAJKr0E,EAAQgsE,aAAanjF,eAAeg9E,KACvC6D,EAAep/E,KAAKosF,YAAYpsF,KAAK+pF,MACrCr0E,EAAQgsE,aAAanG,GAAYv7E,KAAK6jF,cAAcnuE,EAAQ7M,QAASu2E,IAEhE1pE,EAAQgsE,aAAanG,IAS9B4K,UAAW,SAASzwE,GAClB,IAEImqC,EAAIwsC,EAAI58D,EACR9e,EAAGvG,EAAGtQ,EACNsI,EAHAjG,EADYuZ,EAAQ4V,UACHnvB,KAAMq+E,EAAOr+E,EAAKnB,OAG3BsxF,EAAS,EAAItsF,KAAK4rC,MAG9BiU,GADAz9C,EAAS,IAAI2Y,EAAO4f,MAAM36B,KAAKi7B,OAAOL,aAC1B,GAAK56B,KAAK4rC,MACtBygD,EAAKjqF,EAAO,GAAKpC,KAAK4rC,MACtBnc,EAAKrtB,EAAO,GAAKpC,KAAK4rC,MAEtB,IAAK,IAAIjxC,EAAI,EAAGA,EAAI6/E,EAAM7/E,GAAK,EAM7B,OAJAgW,EAAIxU,EAAKxB,GACTyP,EAAIjO,EAAKxB,EAAI,GACbb,EAAIqC,EAAKxB,EAAI,GAELqF,KAAK+pF,MACX,IAAK,WACH5tF,EAAKxB,GAAKgW,EAAIkvC,EAAK,IACnB1jD,EAAKxB,EAAI,GAAKyP,EAAIiiF,EAAK,IACvBlwF,EAAKxB,EAAI,GAAKb,EAAI21B,EAAK,IACvB,MACF,IAAK,SACHtzB,EAAKxB,GAAK,KAAO,IAAMgW,IAAM,IAAMkvC,GAAM,IACzC1jD,EAAKxB,EAAI,GAAK,KAAO,IAAMyP,IAAM,IAAMiiF,GAAM,IAC7ClwF,EAAKxB,EAAI,GAAK,KAAO,IAAMb,IAAM,IAAM21B,GAAM,IAC7C,MACF,IAAK,MACHtzB,EAAKxB,GAAKgW,EAAIkvC,EACd1jD,EAAKxB,EAAI,GAAKyP,EAAIiiF,EAClBlwF,EAAKxB,EAAI,GAAKb,EAAI21B,EAClB,MACF,IAAK,OACL,IAAK,aACHtzB,EAAKxB,GAAKqoB,KAAK6K,IAAIld,EAAIkvC,GACvB1jD,EAAKxB,EAAI,GAAKqoB,KAAK6K,IAAIzjB,EAAIiiF,GAC3BlwF,EAAKxB,EAAI,GAAKqoB,KAAK6K,IAAI/zB,EAAI21B,GAC3B,MACF,IAAK,WACHtzB,EAAKxB,GAAKgW,EAAIkvC,EACd1jD,EAAKxB,EAAI,GAAKyP,EAAIiiF,EAClBlwF,EAAKxB,EAAI,GAAKb,EAAI21B,EAClB,MACF,IAAK,SACHtzB,EAAKxB,GAAKqoB,KAAKxI,IAAI7J,EAAGkvC,GACtB1jD,EAAKxB,EAAI,GAAKqoB,KAAKxI,IAAIpQ,EAAGiiF,GAC1BlwF,EAAKxB,EAAI,GAAKqoB,KAAKxI,IAAI1gB,EAAG21B,GAC1B,MACF,IAAK,UACHtzB,EAAKxB,GAAKqoB,KAAKvI,IAAI9J,EAAGkvC,GACtB1jD,EAAKxB,EAAI,GAAKqoB,KAAKvI,IAAIrQ,EAAGiiF,GAC1BlwF,EAAKxB,EAAI,GAAKqoB,KAAKvI,IAAI3gB,EAAG21B,GAC1B,MACF,IAAK,UACHtzB,EAAKxB,GAAKklD,EAAK,IAAO,EAAIlvC,EAAIkvC,EAAK,IAAQ,IAAM,GAAK,IAAMlvC,IAAM,IAAMkvC,GAAM,IAC9E1jD,EAAKxB,EAAI,GAAK0xF,EAAK,IAAO,EAAIjiF,EAAIiiF,EAAK,IAAQ,IAAM,GAAK,IAAMjiF,IAAM,IAAMiiF,GAAM,IAClFlwF,EAAKxB,EAAI,GAAK80B,EAAK,IAAO,EAAI31B,EAAI21B,EAAK,IAAQ,IAAM,GAAK,IAAM31B,IAAM,IAAM21B,GAAM,IAClF,MACF,IAAK,YACHtzB,EAAKxB,GAAKklD,EAAKlvC,EAAM,EAAIkvC,EAAKlvC,EAAK,IACnCxU,EAAKxB,EAAI,GAAK0xF,EAAKjiF,EAAM,EAAIiiF,EAAKjiF,EAAK,IACvCjO,EAAKxB,EAAI,GAAK80B,EAAK31B,EAAM,EAAI21B,EAAK31B,EAAK,IACvC,MACF,IAAK,OACHqC,EAAKxB,GAAKklD,EAAKlvC,EAAI27E,EACnBnwF,EAAKxB,EAAI,GAAK0xF,EAAKjiF,EAAIkiF,EACvBnwF,EAAKxB,EAAI,GAAK80B,EAAK31B,EAAIwyF,IAW/B5H,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLsI,OAAQxwE,EAAG6oE,mBAAmBX,EAAS,YAU3CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B,IAAIriF,EAAS,IAAI2Y,EAAO4f,MAAM36B,KAAKi7B,OAAOL,YAC1Cx4B,EAAO,GAAKpC,KAAK4rC,MAAQxpC,EAAO,GAAK,IACrCA,EAAO,GAAKpC,KAAK4rC,MAAQxpC,EAAO,GAAK,IACrCA,EAAO,GAAKpC,KAAK4rC,MAAQxpC,EAAO,GAAK,IACrCA,EAAO,GAAKpC,KAAK4rC,MACjB7vB,EAAG6rE,WAAWnD,EAAiB8H,OAAQnqF,IAOzC80C,SAAU,WACR,MAAO,CACL/rC,KAAMnL,KAAKmL,KACX8vB,MAAOj7B,KAAKi7B,MACZ8uD,KAAM/pF,KAAK+pF,KACXn+C,MAAO5rC,KAAK4rC,UAYlB7wB,EAAOqrB,MAAMo1C,QAAQqQ,WAAWxkE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAlP/E,CAoPoC3qB,GAGpC,SAAUS,GACR,aAEA,IAAI4d,EAAS5d,EAAO4d,OAChBygE,EAAUzgE,EAAOqrB,MAAMo1C,QAwB3BA,EAAQgR,YAAAA,EAvBUzxE,EAAOkF,KAAKkT,aAuBGqoD,EAAQmI,WAAoE,CAC3Gx4E,KAAM,aAMNoxC,MAAO,KAMPwtC,KAAM,WAMNn+C,MAAO,EAEPg4C,aAAc,2QAad5E,eAAgB,CACdp0D,SAAU,2TAYV6hE,KAAM,qTAoBRrG,eAAgB,SAAS1wE,GACvB,IAAI6lE,EAAWv7E,KAAKmL,KAAO,IAAMnL,KAAK+pF,KAClC3K,EAAep/E,KAAKg/E,eAAeh/E,KAAK+pF,MAI5C,OAHKr0E,EAAQgsE,aAAanjF,eAAeg9E,KACvC7lE,EAAQgsE,aAAanG,GAAYv7E,KAAK6jF,cAAcnuE,EAAQ7M,QAASu2E,IAEhE1pE,EAAQgsE,aAAanG,IAG9B2K,aAAc,SAASxwE,GAErB,IAAIqG,EAAKrG,EAAQ7M,QACb25E,EAAUxiF,KAAKqhF,cAAc3rE,EAAQwmE,cAAel8E,KAAKu8C,OAC7Dv8C,KAAK4mF,sBAAsB7qE,EAAIymE,EAASzmE,EAAG2wE,UAC3C1sF,KAAK+yB,UAAU,eAAgBrd,GAC/B1V,KAAKgnF,wBAAwBjrE,EAAIA,EAAG2wE,WAGtCrL,cAAe,SAASpF,EAAS1/B,GAC/B,OAAO0/B,EAAQkF,iBAAiB5kC,EAAMg/B,SAAUh/B,EAAMm/B,WASxDiR,gBAAiB,WACf,IAAIpwC,EAAQv8C,KAAKu8C,MAGjB,MAAO,CACL,EAAIA,EAAMvyB,OAAQ,EAAG,EACrB,EAAG,EAAIuyB,EAAMtyB,OAAQ,GACpBsyB,EAAMr3B,KALGq3B,EAAMm/B,SAASh/D,OAKH6/B,EAAMp3B,IAJjBo3B,EAAMm/B,SAASn/D,OAIgB,IAU9C4pE,UAAW,SAASzwE,GAClB,IAKImqC,EAAIwsC,EAAI58D,EAAIze,EACZL,EAAGvG,EAAGtQ,EAAGD,EACT+yF,EAAS/jF,EAA6BgkF,EAPtCvhE,EAAY5V,EAAQ4V,UACpB9P,EAAY9F,EAAQwmE,cAAc1gE,UAClCrf,EAAOmvB,EAAUnvB,KAAMq+E,EAAOr+E,EAAKnB,OACnC0hB,EAAQ4O,EAAU5O,MAClBH,EAAS+O,EAAU/O,OAGDggC,EAAQv8C,KAAKu8C,MAE9B/gC,EAAUsxE,aACbtxE,EAAUsxE,WAAa/xE,EAAOkF,KAAKgJ,uBAGrCpgB,GADA+jF,EAAUpxE,EAAUsxE,YACFzwE,WAAW,MACzBuwE,EAAQlwE,QAAUA,GAASkwE,EAAQrwE,SAAWA,GAChDqwE,EAAQlwE,MAAQA,EAChBkwE,EAAQrwE,OAASA,GAGjB1T,EAAQq2C,UAAU,EAAG,EAAGxiC,EAAOH,GAEjC1T,EAAQw9D,aAAa9pB,EAAMvyB,OAAQ,EAAG,EAAGuyB,EAAMtyB,OAAQsyB,EAAMr3B,KAAMq3B,EAAMp3B,KACzEtc,EAAQ4T,UAAU8/B,EAAMm/B,SAAU,EAAG,EAAGh/D,EAAOH,GAC/CswE,EAAYhkF,EAAQ0iB,aAAa,EAAG,EAAG7O,EAAOH,GAAQpgB,KACtD,IAAK,IAAIxB,EAAI,EAAGA,EAAI6/E,EAAM7/E,GAAK,EAY7B,OAVAgW,EAAIxU,EAAKxB,GACTyP,EAAIjO,EAAKxB,EAAI,GACbb,EAAIqC,EAAKxB,EAAI,GACbd,EAAIsC,EAAKxB,EAAI,GAEbklD,EAAKgtC,EAAUlyF,GACf0xF,EAAKQ,EAAUlyF,EAAI,GACnB80B,EAAKo9D,EAAUlyF,EAAI,GACnBqW,EAAK67E,EAAUlyF,EAAI,GAEXqF,KAAK+pF,MACX,IAAK,WACH5tF,EAAKxB,GAAKgW,EAAIkvC,EAAK,IACnB1jD,EAAKxB,EAAI,GAAKyP,EAAIiiF,EAAK,IACvBlwF,EAAKxB,EAAI,GAAKb,EAAI21B,EAAK,IACvBtzB,EAAKxB,EAAI,GAAKd,EAAImX,EAAK,IACvB,MACF,IAAK,OACH7U,EAAKxB,EAAI,GAAKqW,IAYtB0zE,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACL8I,iBAAkBhxE,EAAG6oE,mBAAmBX,EAAS,oBACjD+I,OAAQjxE,EAAG6oE,mBAAmBX,EAAS,YAU3CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B,IAAI15D,EAAS/qB,KAAK2sF,kBAClB5wE,EAAGkuE,UAAUxF,EAAiBuI,OAAQ,GACtCjxE,EAAGkxE,iBAAiBxI,EAAiBsI,kBAAAA,EAAyBhiE,IAOhEmsB,SAAU,WACR,MAAO,CACL/rC,KAAMnL,KAAKmL,KACXoxC,MAAOv8C,KAAKu8C,OAASv8C,KAAKu8C,MAAMrF,WAChC6yC,KAAM/pF,KAAK+pF,KACXn+C,MAAO5rC,KAAK4rC,UAYlB7wB,EAAOqrB,MAAMo1C,QAAQgR,WAAWnlE,WAAa,SAAS/P,EAAQ5S,GAC5DqW,EAAOqrB,MAAM/e,WAAW/P,EAAOilC,OAAO,SAASA,GAC7C,IAAI7mC,EAAUqF,EAAOkF,KAAK3I,OAAOV,MAAMU,GACvC5B,EAAQ6mC,MAAQA,EAChB73C,EAAS,IAAIqW,EAAOqrB,MAAMo1C,QAAQgR,WAAW92E,QAjPnD,CAqPoChZ,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAAMmI,EAAMF,KAAKE,IAAKW,EAAQb,KAAKa,MAC/Ed,EAAOC,KAAKD,KAAM8K,EAAM7K,KAAK6K,IAAKud,EAAQpoB,KAAKooB,MAAO5nB,EAAMR,KAAKQ,IACjEmL,EAAO3L,KAAK2L,KACZ6sD,EAAUzgE,EAAOqrB,MAAMo1C,QAc3BA,EAAQ0R,QAAAA,EAbUnyE,EAAOkF,KAAKkT,aAaDqoD,EAAQmI,WAAgE,CAOnGx4E,KAAM,SASNgiF,WAAY,UAOZnjE,OAAQ,EAORC,OAAQ,EAORmjE,aAAc,EASd1I,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLoJ,OAAQtxE,EAAG6oE,mBAAmBX,EAAS,UACvCqJ,MAAOvxE,EAAG6oE,mBAAmBX,EAAS,WAU1CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAGwxE,WAAW9I,EAAiB4I,OAAQrtF,KAAKwtF,WAAa,CAAC,EAAIxtF,KAAK0c,MAAO,GAAK,CAAC,EAAG,EAAI1c,KAAKuc,SAC5FR,EAAG4tE,WAAWlF,EAAiB6I,MAAOttF,KAAKytF,OAS7CrH,eAAgB,SAAS1wE,GACvB,IAAIg4E,EAAe1tF,KAAK2tF,kBAAmBpS,EAAWv7E,KAAKmL,KAAO,IAAMuiF,EACxE,IAAKh4E,EAAQgsE,aAAanjF,eAAeg9E,GAAW,CAClD,IAAI0D,EAAiBj/E,KAAK4tF,eAAeF,GACzCh4E,EAAQgsE,aAAanG,GAAYv7E,KAAK6jF,cAAcnuE,EAAQ7M,QAASo2E,GAEvE,OAAOvpE,EAAQgsE,aAAanG,IAG9BoS,gBAAiB,WAEf,OAAO3qE,KAAK2L,KAAK3uB,KAAKotF,aADVptF,KAAK6tF,YAInBC,QAAS,WAGP,IAFA,IAAIC,EAAe/tF,KAAKguF,cAAchuF,KAAKotF,cAAe5wE,EAAQxc,KAAK6tF,UACnEH,EAAe1tF,KAAK2tF,kBAAmBF,EAAO,IAAIhnF,MAAMinF,GACnD/yF,EAAI,EAAGA,GAAK+yF,EAAc/yF,IACjC8yF,EAAK9yF,EAAI,GAAKozF,EAAapzF,EAAI6hB,GAEjC,OAAOixE,GAOTG,eAAgB,SAASF,GAIvB,IAHA,IAAIO,EAAU,IAAIxnF,MAAMinF,GACpBzO,EAAiBj/E,KAAKkuF,kBAEjBvzF,EAAI,EAAGA,GAAK+yF,EAAc/yF,IACjCszF,EAAQtzF,EAAI,GAAKA,EAAI,cAevB,OAZAskF,GAAkB,uBAAyByO,EAAe,OAC1DzO,GAAkB,kBAClBA,GAAkB,mDAClBA,GAAkB,uBAElBgP,EAAQt2E,SAAQ,SAAS+B,EAAQ/e,GAC/BskF,GAAkB,8CAAgDvlE,EAAS,aAAe/e,EAAI,OAC9FskF,GAAkB,8CAAgDvlE,EAAS,aAAe/e,EAAI,OAC9FskF,GAAkB,wBAA0BtkF,EAAI,UAElDskF,GAAkB,kCAClBA,GAAkB,KAIpBiP,kBAAmB,uGAiBnBlM,QAAS,SAAStsE,GACZA,EAAQ+rE,OACV/rE,EAAQ8rE,SACRxhF,KAAK0c,MAAQhH,EAAQynE,YACrBn9E,KAAKwtF,YAAAA,EACLxtF,KAAKmuF,GAAKnrE,KAAKooB,MAAMprC,KAAK0c,MAAQ1c,KAAKgqB,QACvChqB,KAAKouF,GAAK14E,EAAQ0nE,aAClBp9E,KAAK6tF,UAAY7tF,KAAKmuF,GAAKnuF,KAAK0c,MAChC1c,KAAKytF,KAAOztF,KAAK8tF,UACjBp4E,EAAQmH,iBAAmB7c,KAAKmuF,GAChCnuF,KAAK2lF,kBAAkBjwE,GACvB1V,KAAKkmF,aAAaxwE,GAClB1V,KAAK8lF,cAAcpwE,GACnBA,EAAQynE,YAAcznE,EAAQmH,iBAE9B7c,KAAKuc,OAAS7G,EAAQ0nE,aACtBp9E,KAAKwtF,YAAAA,EACLxtF,KAAKouF,GAAKprE,KAAKooB,MAAMprC,KAAKuc,OAASvc,KAAKiqB,QACxCjqB,KAAK6tF,UAAY7tF,KAAKouF,GAAKpuF,KAAKuc,OAChCvc,KAAKytF,KAAOztF,KAAK8tF,UACjBp4E,EAAQqH,kBAAoB/c,KAAKouF,GACjCpuF,KAAK2lF,kBAAkBjwE,GACvB1V,KAAKkmF,aAAaxwE,GAClB1V,KAAK8lF,cAAcpwE,GACnBA,EAAQ0nE,aAAe1nE,EAAQqH,mBAG/B/c,KAAKmmF,UAAUzwE,IAInB2nE,eAAgB,WACd,OAAuB,IAAhBr9E,KAAKgqB,QAAgC,IAAhBhqB,KAAKiqB,QAGnC+jE,cAAe,SAASK,GACtB,OAAO,SAAS70F,GACd,GAAIA,GAAK60F,GAAS70F,IAAM60F,EACtB,OAAO,EAET,GAAI70F,EAAI,cAAkBA,GAAK,aAC7B,OAAO,EAGT,IAAI80F,GADJ90F,GAAKwpB,KAAKI,IACGirE,EACb,OAAQ7qE,EAAIhqB,GAAKA,EAAKgqB,EAAI8qE,GAAMA,IAWpCnI,UAAW,SAASzwE,GAClB,IAAI4V,EAAY5V,EAAQ4V,UACpBtB,EAAShqB,KAAKgqB,OACdC,EAASjqB,KAAKiqB,OAElBjqB,KAAKuuF,UAAY,EAAIvkE,EACrBhqB,KAAKwuF,UAAY,EAAIvkE,EAErB,IAEIwkE,EAFAC,EAAKpjE,EAAU5O,MAAOiyE,EAAKrjE,EAAU/O,OACrC4xE,EAAK/iD,EAAMsjD,EAAK1kE,GAASokE,EAAKhjD,EAAMujD,EAAK1kE,GAGrB,cAApBjqB,KAAKmtF,WACPsB,EAAUzuF,KAAK4uF,WAAWl5E,EAASg5E,EAAIC,EAAIR,EAAIC,GAEpB,YAApBpuF,KAAKmtF,WACZsB,EAAUzuF,KAAK6uF,kBAAkBn5E,EAASg5E,EAAIC,EAAIR,EAAIC,GAE3B,aAApBpuF,KAAKmtF,WACZsB,EAAUzuF,KAAK8uF,kBAAkBp5E,EAASg5E,EAAIC,EAAIR,EAAIC,GAE3B,YAApBpuF,KAAKmtF,aACZsB,EAAUzuF,KAAK+uF,cAAcr5E,EAASg5E,EAAIC,EAAIR,EAAIC,IAEpD14E,EAAQ4V,UAAYmjE,GAYtBG,WAAY,SAASl5E,EAASg5E,EAAIC,EAAIR,EAAIC,GACxC,IAGIY,EAAW5yE,EAHXkP,EAAY5V,EAAQ4V,UACR2jE,GAAAA,EAAeC,GAAAA,EAAeC,EAAnC,GAA2CT,EAClDU,EADO,GACCT,EAAWnzE,EAAYT,EAAOmhE,cAAc1gE,UACpCmiE,EAAK,EAAGC,EAAK,EAAGyR,EAAKX,EAAIY,EAAK,EAgBlD,IAfK9zE,EAAUozE,aACbpzE,EAAUozE,WAAanxF,SAAS+M,cAAc,aAEhDwkF,EAAYxzE,EAAUozE,YACRlyE,MAAa,IAALgyE,GAAYM,EAAUzyE,OAASoyE,KACnDK,EAAUtyE,MAAa,IAALgyE,EAClBM,EAAUzyE,OAASoyE,IAErBvyE,EAAM4yE,EAAU3yE,WAAW,OACvB6iC,UAAU,EAAG,EAAQ,IAALwvC,EAAUC,GAC9BvyE,EAAIsB,aAAa4N,EAAW,EAAG,GAE/B6iE,EAAKtqE,EAAMsqE,GACXC,EAAKvqE,EAAMuqE,IAEHa,IAAUC,GAChBR,EAAKS,EACLR,EAAKS,EACDjB,EAAKtqE,EArBA,GAqBMsrE,GACbA,EAAQtrE,EAtBD,GAsBOsrE,IAGdA,EAAQhB,EACRc,GAAAA,GAEEb,EAAKvqE,EA5BA,GA4BMurE,GACbA,EAAQvrE,EA7BD,GA6BOurE,IAGdA,EAAQhB,EACRc,GAAAA,GAEF9yE,EAAIK,UAAUuyE,EAAWrR,EAAIC,EAAI8Q,EAAIC,EAAIU,EAAIC,EAAIH,EAAOC,GACxDzR,EAAK0R,EACLzR,EAAK0R,EACLA,GAAMF,EAER,OAAOhzE,EAAImP,aAAaoyD,EAAIC,EAAIuQ,EAAIC,IAYtCW,cAAe,SAASr5E,EAASg5E,EAAIC,EAAIR,EAAIC,GAqD3C,IAAImB,EAAU75E,EAAQ4V,UAAUnvB,KAC5BqzF,EAAU95E,EAAQ0G,IAAIgtE,gBAAgB+E,EAAIC,GAC1CqB,EAAWD,EAAQrzF,KACnBuzF,EAAU1vF,KAAKguF,cAAchuF,KAAKotF,cAClCuC,EAAS3vF,KAAKuuF,UAAWqB,EAAS5vF,KAAKwuF,UACvCqB,EAAY,EAAI7vF,KAAKuuF,UAAWuB,EAAY,EAAI9vF,KAAKwuF,UACrDuB,EAAUphE,EAAKghE,EAAS3vF,KAAKotF,aAAe,GAC5C4C,EAAUrhE,EAAKihE,EAAS5vF,KAAKotF,aAAe,GAC5C6C,EAAY,GAAKtuC,EAAS,GAAKuuC,EAAU,GAE7C,OA7DA,SAASC,EAAQtjF,GACf,IAAIK,EAAGvS,EAAGyZ,EAAQuP,EAAK9pB,EAAGk6C,EAAKjE,EAC3B9C,EAAMpB,EAAOwkD,EAAIC,EAGrB,IAFA1uC,EAAOnoD,GAAKqT,EAAI,IAAO8iF,EACvBO,EAAQ12F,EAAIqqB,EAAM89B,EAAOnoD,GACpB0T,EAAI,EAAGA,EAAIkhF,EAAIlhF,IAAK,CAIvB,IAHAy0C,EAAOloD,GAAKyT,EAAI,IAAO0iF,EACvBM,EAAQz2F,EAAIoqB,EAAM89B,EAAOloD,GACzBI,EAAI,EAAGk6C,EAAM,EAAGjE,EAAQ,EAAG9C,EAAO,EAAGpB,EAAQ,EACxCjxC,EAAIu1F,EAAQ12F,EAAIu2F,EAASp1F,GAAKu1F,EAAQ12F,EAAIu2F,EAASp1F,IACtD,KAAIA,EAAI,GAAKA,GAAK+zF,GAAlB,CAGA0B,EAAKvsE,EAAM,IAAOgK,EAAIlzB,EAAIgnD,EAAOnoD,IAC5By2F,EAAUG,KACbH,EAAUG,GAAM,IAElB,IAAK,IAAI1uF,EAAIwuF,EAAQz2F,EAAIu2F,EAAStuF,GAAKwuF,EAAQz2F,EAAIu2F,EAAStuF,IACtDA,EAAI,GAAKA,GAAKitF,IAGlB0B,EAAKxsE,EAAM,IAAOgK,EAAInsB,EAAIigD,EAAOloD,IAC5Bw2F,EAAUG,GAAIC,KACjBJ,EAAUG,GAAIC,GAAMX,EAAQ3sE,EAAKG,EAAIktE,EAAKP,EAAW,GAAK3sE,EAAImtE,EAAKP,EAAW,IAAM,OAEtF17E,EAAS67E,EAAUG,GAAIC,IACV,IAEXx2F,GAAKua,EACL2/B,GAAO3/B,EAASm7E,EAFhB5rE,EAAqB,GAAdjiB,EAAIgtF,EAAK/zF,IAGhBm1C,GAAS17B,EAASm7E,EAAQ5rE,EAAM,GAChCqpB,GAAQ54B,EAASm7E,EAAQ5rE,EAAM,GAC/BioB,GAASx3B,EAASm7E,EAAQ5rE,EAAM,KAKtC8rE,EADA9rE,EAAqB,GAAdzW,EAAIihF,EAAKthF,IACAknC,EAAMl6C,EACtB41F,EAAS9rE,EAAM,GAAKmsB,EAAQj2C,EAC5B41F,EAAS9rE,EAAM,GAAKqpB,EAAOnzC,EAC3B41F,EAAS9rE,EAAM,GAAKioB,EAAQ/xC,EAG9B,QAAMgT,EAAIshF,EACDgC,EAAQtjF,GAGR2iF,EA/CX,CA6De,IAYjBV,kBAAmB,SAASp5E,EAASg5E,EAAIC,EAAIR,EAAIC,GAC/C,IAAgB50F,EAAGC,EAAGkB,EAAG+G,EAAG4uF,EAAOC,EAAOC,EACnBC,EAAZ/2E,EAAS,EAAYi2E,EAAS3vF,KAAKuuF,UAC1CqB,EAAS5vF,KAAKwuF,UACdkC,EAAK,GAAKhC,EAAK,GACfiC,EADyBj7E,EAAQ4V,UACpBnvB,KAAMy0F,EAAYl7E,EAAQ0G,IAAIgtE,gBAAgB+E,EAAIC,GAC/DyC,EAAaD,EAAUz0F,KAC3B,IAAKxB,EAAI,EAAGA,EAAIyzF,EAAIzzF,IAClB,IAAK+G,EAAI,EAAGA,EAAIysF,EAAIzsF,IAOlB,IAJA4uF,EAAQX,EAASjuF,GAFjBlI,EAAIqqB,EAAM8rE,EAASjuF,IAGnB6uF,EAAQX,EAASj1F,GAFjBlB,EAAIoqB,EAAM+rE,EAASj1F,IAGnB81F,EAAU,GAAKh3F,EAAIi1F,EAAKl1F,GAEnBg3F,EAAO,EAAGA,EAAO,EAAGA,IAOvBK,EAAWn3E,KANPi3E,EAAOF,EAAUD,IAIR,EAAIF,IAAU,EAAIC,GAH3BI,EAAOF,EAAU,EAAID,GAGmBF,GAAS,EAAIC,GAFrDI,EAAOF,EAAUC,EAAKF,GAGdD,GAAS,EAAID,GAFrBK,EAAOF,EAAUC,EAAK,EAAIF,GAEQF,EAAQC,EAKpD,OAAOK,GAYT/B,kBAAmB,SAASn5E,EAASg5E,EAAIC,EAAIR,EAAIC,GAM/C,IALA,IAAI0C,EAAS9wF,KAAKuuF,UAAWwC,EAAS/wF,KAAKwuF,UACvCwC,EAAariE,EAAKmiE,EAAS,GAC3BG,EAAatiE,EAAKoiE,EAAS,GACF50F,EAAnBuZ,EAAQ4V,UAAsBnvB,KACpC+0F,EAAOx7E,EAAQ0G,IAAIgtE,gBAAgB+E,EAAIC,GAAK+C,EAAQD,EAAK/0F,KACpDuF,EAAI,EAAGA,EAAI0sF,EAAI1sF,IACtB,IAAK,IAAI/G,EAAI,EAAGA,EAAIwzF,EAAIxzF,IAAK,CAG3B,IAFA,IAAI0tB,EAAoB,GAAd1tB,EAAI+G,EAAIysF,GAAS/5E,EAAS,EAAG20E,EAAU,EAAGqI,EAAe,EAC/DC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,EAAM,EAAGC,GAAW/vF,EAAI,IAAOqvF,EACrDW,EAAK7tE,EAAMniB,EAAIqvF,GAASW,GAAMhwF,EAAI,GAAKqvF,EAAQW,IAGtD,IAFA,IAAIlpE,EAAKqF,EAAI4jE,GAAWC,EAAK,KAAQT,EACjCU,GAAWh3F,EAAI,IAAOm2F,EAAQc,EAAKppE,EAAKA,EACnC8lE,EAAKzqE,EAAMlpB,EAAIm2F,GAASxC,GAAM3zF,EAAI,GAAKm2F,EAAQxC,IAAM,CAC5D,IAAI/lE,EAAKsF,EAAI8jE,GAAWrD,EAAK,KAAQ0C,EACjC3jF,EAAI0V,EAAK6uE,EAAKrpE,EAAKA,GAEnBlb,EAAI,GAAKA,GAAK,IAIlB+G,EAAS,EAAI/G,EAAIA,EAAIA,EAAI,EAAIA,EAAIA,EAAI,GACxB,IAGXmkF,GAAOp9E,EAASjY,EAAU,GAF1BosB,EAAK,GAAK+lE,EAAKoD,EAAKhD,KAGpB0C,GAAgBh9E,EAEZjY,EAAKosB,EAAK,GAAK,MACjBnU,EAASA,EAASjY,EAAKosB,EAAK,GAAK,KAEnC8oE,GAAOj9E,EAASjY,EAAKosB,GACrB+oE,GAAOl9E,EAASjY,EAAKosB,EAAK,GAC1BgpE,GAAOn9E,EAASjY,EAAKosB,EAAK,GAC1BwgE,GAAW30E,GAKjB+8E,EAAM9oE,GAAMgpE,EAAMtI,EAClBoI,EAAM9oE,EAAK,GAAKipE,EAAMvI,EACtBoI,EAAM9oE,EAAK,GAAKkpE,EAAMxI,EACtBoI,EAAM9oE,EAAK,GAAKmpE,EAAMJ,EAG1B,OAAOF,GAOTh6C,SAAU,WACR,MAAO,CACL/rC,KAAMnL,KAAKmL,KACX6e,OAAQhqB,KAAKgqB,OACbC,OAAQjqB,KAAKiqB,OACbkjE,WAAYntF,KAAKmtF,WACjBC,aAAcptF,KAAKotF,iBAYzBryE,EAAOqrB,MAAMo1C,QAAQ0R,OAAO7lE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAve3E,CAyeoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAiB3BA,EAAQqW,UAAAA,EAhBU92E,EAAOkF,KAAKkT,aAgBCqoD,EAAQmI,WAAkE,CAOvGx4E,KAAM,WAEN6zE,eAAgB,8TAWhB8S,SAAU,EAEV7L,cAAe,WAefE,UAAW,SAASzwE,GAClB,GAAsB,IAAlB1V,KAAK8xF,SAAT,CAGA,IAAmCn3F,EAC/BwB,EADYuZ,EAAQ4V,UACHnvB,KAAMzB,EAAMyB,EAAKnB,OAClC82F,EAAW9uE,KAAKa,MAAsB,IAAhB7jB,KAAK8xF,UAC3BC,EAAY,KAAOD,EAAW,MAAQ,KAAO,IAAMA,IAEvD,IAAKn3F,EAAI,EAAGA,EAAID,EAAKC,GAAK,EACxBwB,EAAKxB,GAAKo3F,GAAa51F,EAAKxB,GAAK,KAAO,IACxCwB,EAAKxB,EAAI,GAAKo3F,GAAa51F,EAAKxB,EAAI,GAAK,KAAO,IAChDwB,EAAKxB,EAAI,GAAKo3F,GAAa51F,EAAKxB,EAAI,GAAK,KAAO,MAUpD+pF,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACL+N,UAAWj2E,EAAG6oE,mBAAmBX,EAAS,eAU9CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAGwqE,UAAU9B,EAAiBuN,UAAWhyF,KAAK8xF,aAWlD/2E,EAAOqrB,MAAMo1C,QAAQqW,SAASxqE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAzG7E,CA2GoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAiB3BA,EAAQyW,YAAAA,EAhBUl3E,EAAOkF,KAAKkT,aAgBGqoD,EAAQmI,WAAoE,CAO3Gx4E,KAAM,aAEN6zE,eAAgB,weAchBkT,WAAY,EAEZjM,cAAe,aAefE,UAAW,SAASzwE,GAClB,GAAwB,IAApB1V,KAAKkyF,WAAT,CAGA,IAE+Bv3F,EAAG8f,EAD9Bte,EADYuZ,EAAQ4V,UACHnvB,KAAMzB,EAAMyB,EAAKnB,OAClCm3F,GAAUnyF,KAAKkyF,WAEnB,IAAKv3F,EAAI,EAAGA,EAAID,EAAKC,GAAK,EACxB8f,EAAMuI,KAAKvI,IAAIte,EAAKxB,GAAIwB,EAAKxB,EAAI,GAAIwB,EAAKxB,EAAI,IAC9CwB,EAAKxB,IAAM8f,IAAQte,EAAKxB,IAAM8f,EAAMte,EAAKxB,IAAMw3F,EAAS,EACxDh2F,EAAKxB,EAAI,IAAM8f,IAAQte,EAAKxB,EAAI,IAAM8f,EAAMte,EAAKxB,EAAI,IAAMw3F,EAAS,EACpEh2F,EAAKxB,EAAI,IAAM8f,IAAQte,EAAKxB,EAAI,IAAM8f,EAAMte,EAAKxB,EAAI,IAAMw3F,EAAS,IAUxEzN,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLmO,YAAar2E,EAAG6oE,mBAAmBX,EAAS,iBAUhDuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAGwqE,UAAU9B,EAAiB2N,aAAcpyF,KAAKkyF,eAWrDn3E,EAAOqrB,MAAMo1C,QAAQyW,WAAW5qE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WA5G/E,CA8GoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAkB3BA,EAAQ6W,MAAAA,EAjBUt3E,EAAOkF,KAAKkT,aAiBHqoD,EAAQmI,WAA8D,CAE/Fx4E,KAAM,OAsBN6zE,eAAgB,mnBA6BhB7lC,KAAM,EAEN8sC,cAAe,OAEfjE,QAAS,SAAStsE,GACZA,EAAQ+rE,OAEVzhF,KAAKsyF,YAAc58E,EAAQynE,YAAcznE,EAAQ0nE,aACjD1nE,EAAQ8rE,SACRxhF,KAAK2lF,kBAAkBjwE,GACvB1V,KAAKwtF,YAAAA,EACLxtF,KAAKkmF,aAAaxwE,GAClB1V,KAAK8lF,cAAcpwE,GACnB1V,KAAK2lF,kBAAkBjwE,GACvB1V,KAAKwtF,YAAAA,EACLxtF,KAAKkmF,aAAaxwE,GAClB1V,KAAK8lF,cAAcpwE,IAGnB1V,KAAKmmF,UAAUzwE,IAInBywE,UAAW,SAASzwE,GAGlBA,EAAQ4V,UAAYtrB,KAAKuyF,WAAW78E,IAGtC68E,WAAY,SAAS78E,GACnB,IAAiDk3E,EAAS4F,EAAtDh3E,EAAY9F,EAAQwmE,cAAc1gE,UAClCkB,EAAQhH,EAAQ4V,UAAU5O,MAC1BH,EAAS7G,EAAQ4V,UAAU/O,OAE1Bf,EAAUi3E,aACbj3E,EAAUi3E,WAAa13E,EAAOkF,KAAKgJ,sBACnCzN,EAAUk3E,WAAa33E,EAAOkF,KAAKgJ,uBAGrCupE,EAAUh3E,EAAUk3E,YADpB9F,EAAUpxE,EAAUi3E,YAER/1E,QAAUA,GAASkwE,EAAQrwE,SAAWA,IAChDi2E,EAAQ91E,MAAQkwE,EAAQlwE,MAAQA,EAChC81E,EAAQj2E,OAASqwE,EAAQrwE,OAASA,GAEpC,IAGIuH,EAAQ6uE,EAASjxF,EAAG/G,EAHpBi4F,EAAOhG,EAAQvwE,WAAW,MAC1Bw2E,EAAOL,EAAQn2E,WAAW,MAG1B88B,EAAmB,IAAZn5C,KAAKm5C,KAAc,GAM9B,IAHAy5C,EAAKl1E,aAAahI,EAAQ4V,UAAW,EAAG,GACxCunE,EAAK3zC,UAAU,EAAG,EAAGxiC,EAAOH,GAEvB5hB,GARU,GAQKA,GARL,GAQoBA,IAGjC+G,EAAIy3C,GADJw5C,EAAUh4F,EAVG,IAWQ+hB,GAFrBoH,GAAUd,KAAKc,SAAW,IAAO,GAGjC+uE,EAAKloC,YAAc,EAAI3nC,KAAK6K,IAAI8kE,GAChCE,EAAKp2E,UAAUmwE,EAASlrF,EAAGoiB,GAC3B8uE,EAAKn2E,UAAU+1E,EAAS,EAAG,GAC3BK,EAAKloC,YAAc,EACnBkoC,EAAK3zC,UAAU,EAAG,EAAGszC,EAAQ91E,MAAO81E,EAAQj2E,QAE9C,IAAK5hB,GAlBU,GAkBKA,GAlBL,GAkBoBA,IAGjC+G,EAAIy3C,GADJw5C,EAAUh4F,EApBG,IAqBQ4hB,GAFrBuH,GAAUd,KAAKc,SAAW,IAAO,GAGjC+uE,EAAKloC,YAAc,EAAI3nC,KAAK6K,IAAI8kE,GAChCE,EAAKp2E,UAAUmwE,EAAS9oE,EAAQpiB,GAChCkxF,EAAKn2E,UAAU+1E,EAAS,EAAG,GAC3BK,EAAKloC,YAAc,EACnBkoC,EAAK3zC,UAAU,EAAG,EAAGszC,EAAQ91E,MAAO81E,EAAQj2E,QAE9C7G,EAAQ0G,IAAIK,UAAUmwE,EAAS,EAAG,GAClC,IAAIkG,EAAep9E,EAAQ0G,IAAImP,aAAa,EAAG,EAAGqhE,EAAQlwE,MAAOkwE,EAAQrwE,QAGzE,OAFAq2E,EAAKjoC,YAAc,EACnBioC,EAAK1zC,UAAU,EAAG,EAAG0tC,EAAQlwE,MAAOkwE,EAAQrwE,QACrCu2E,GASTpO,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACL8O,MAAOh3E,EAAG6oE,mBAAmBX,EAAS,YAU1CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B,IAAIsO,EAAQ/yF,KAAKgzF,mBACjBj3E,EAAGwxE,WAAW9I,EAAiBsO,MAAOA,IAOxCC,iBAAkB,WAChB,IAAmC75C,EAA/B85C,EAAY,EAAGF,EAAQ,CAAC,EAAG,GAoB/B,OAnBI/yF,KAAKwtF,WACHxtF,KAAKsyF,YAAc,IAErBW,EAAY,EAAIjzF,KAAKsyF,aAInBtyF,KAAKsyF,YAAc,IAErBW,EAAYjzF,KAAKsyF,aAGrBn5C,EAAO85C,EAAYjzF,KAAKm5C,KAAO,IAC3Bn5C,KAAKwtF,WACPuF,EAAM,GAAK55C,EAGX45C,EAAM,GAAK55C,EAEN45C,KAOXvX,EAAQ6W,KAAKhrE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WApN5D,CAsNoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAiB3BA,EAAQ0X,OAAAA,EAhBUn4E,EAAOkF,KAAKkT,aAgBFqoD,EAAQmI,WAA+D,CAOjGx4E,KAAM,QAEN6zE,eAAgB,kXAmBhBmU,MAAO,CAAC,EAAG,EAAG,GAOdlN,cAAe,QAMf7yD,WAAY,SAAS1d,GACnB1V,KAAKmzF,MAAQ,CAAC,EAAG,EAAG,GACpB3X,EAAQmI,WAAWz+E,UAAUkuB,WAAW30B,KAAKuB,KAAM0V,IASrDywE,UAAW,SAASzwE,GAClB,IAGyB/a,EAHUwB,EAAnBuZ,EAAQ4V,UAA4BnvB,KAChDg3F,EAAQnzF,KAAKmzF,MAAOz4F,EAAMyB,EAAKnB,OAC/Bo4F,EAAO,EAAID,EAAM,GAAIE,EAAO,EAAIF,EAAM,GACtCG,EAAO,EAAIH,EAAM,GAarB,IAXKnzF,KAAKuzF,QAERvzF,KAAKuzF,MAAQ,IAAI15E,WAAW,KAE5B7Z,KAAKwzF,MAAQ,IAAI35E,WAAW,KAE5B7Z,KAAKyzF,MAAQ,IAAI55E,WAAW,MAKzBlf,EAAI,EAAGD,EAAM,IAAKC,EAAID,EAAKC,IAC9BqF,KAAKuzF,MAAM54F,GAA+B,IAA1BqoB,KAAKE,IAAIvoB,EAAI,IAAKy4F,GAClCpzF,KAAKwzF,MAAM74F,GAA+B,IAA1BqoB,KAAKE,IAAIvoB,EAAI,IAAK04F,GAClCrzF,KAAKyzF,MAAM94F,GAA+B,IAA1BqoB,KAAKE,IAAIvoB,EAAI,IAAK24F,GAEpC,IAAK34F,EAAI,EAAGD,EAAMyB,EAAKnB,OAAQL,EAAID,EAAKC,GAAK,EAC3CwB,EAAKxB,GAAKqF,KAAKuzF,MAAMp3F,EAAKxB,IAC1BwB,EAAKxB,EAAI,GAAKqF,KAAKwzF,MAAMr3F,EAAKxB,EAAI,IAClCwB,EAAKxB,EAAI,GAAKqF,KAAKyzF,MAAMt3F,EAAKxB,EAAI,KAUtC+pF,oBAAqB,SAAS3oE,EAAIkoE,GAChC,MAAO,CACLyP,OAAQ33E,EAAG6oE,mBAAmBX,EAAS,YAU3CuC,gBAAiB,SAASzqE,EAAI0oE,GAC5B1oE,EAAG43E,WAAWlP,EAAiBiP,OAAQ1zF,KAAKmzF,UAWhDp4E,EAAOqrB,MAAMo1C,QAAQ0X,MAAM7rE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WArI1E,CAuIoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAM3BA,EAAQoY,UAAAA,EALU74E,EAAOkF,KAAKkT,aAKCqoD,EAAQmI,WAAkE,CAEvGx4E,KAAM,WAKN0oF,WAAY,GAMZzgE,WAAY,SAAS1d,GACnB1V,KAAK+yB,UAAU,aAAcrd,GAE7B1V,KAAK6zF,WAAa7zF,KAAK6zF,WAAWv2F,MAAM,IAS1C0kF,QAAS,SAAStsE,GAChBA,EAAQ8rE,QAAUxhF,KAAK6zF,WAAW74F,OAAS,EAC3CgF,KAAK6zF,WAAWl8E,SAAQ,SAAST,GAC/BA,EAAO8qE,QAAQtsE,OASnBwhC,SAAU,WACR,OAAOn8B,EAAOkF,KAAK3I,OAAOlB,OAAOpW,KAAK+yB,UAAU,YAAa,CAC3D8gE,WAAY7zF,KAAK6zF,WAAW9+E,KAAI,SAASmC,GAAU,OAAOA,EAAOggC,iBAIrEmmC,eAAgB,WACd,OAAQr9E,KAAK6zF,WAAWC,MAAK,SAAS58E,GAAU,OAAQA,EAAOmmE,uBAOnEtiE,EAAOqrB,MAAMo1C,QAAQoY,SAASvsE,WAAa,SAAS/P,EAAQ5S,GAC1D,IACImvF,GADUv8E,EAAOu8E,YAAc,IACV9+E,KAAI,SAASmC,GAChC,OAAO,IAAI6D,EAAOqrB,MAAMo1C,QAAQtkE,EAAO/L,MAAM+L,MAE/Cs/B,EAAW,IAAIz7B,EAAOqrB,MAAMo1C,QAAQoY,SAAS,CAAEC,WAAYA,IAE/D,OADAnvF,GAAYA,EAAS8xC,GACdA,GArEX,CAuEoC95C,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAU5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC5CygE,EAAUzgE,EAAOqrB,MAAMo1C,QAiB3BA,EAAQuY,aAAAA,EAhBUh5E,EAAOkF,KAAKkT,aAgBIqoD,EAAQ8L,YAAsE,CAO9Gn8E,KAAM,cAQN6oF,SAAU,EAOV/N,cAAe,WAEf0G,gBAAiB,WACf,IAAIsH,EAAMj0F,KAAKg0F,SAAWhxE,KAAKI,GAAIE,EAAMvI,EAAOkF,KAAKqD,IAAI2wE,GAAMzwE,EAAMzI,EAAOkF,KAAKuD,IAAIywE,GACjEC,EAAelxE,KAAKD,KAA3B,EAAI,GAAsCS,EAAK2wE,EAAc,EAAI7wE,EAC9EtjB,KAAK+qB,OAAS,CACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,EACZ,EAAG,EAAG,EAAG,EAAG,GAEd/qB,KAAK+qB,OAAO,GAAKzH,EAAM6wE,EAAc,EACrCn0F,KAAK+qB,OAAO,GARC,EAAI,EAQSopE,EAAcD,EACxCl0F,KAAK+qB,OAAO,GATC,EAAI,EASSopE,EAAcD,EACxCl0F,KAAK+qB,OAAO,GAVC,EAAI,EAUSopE,EAAcD,EACxCl0F,KAAK+qB,OAAO,GAAKzH,EAXJ,EAAI,EAWe6wE,EAChCn0F,KAAK+qB,OAAO,GAZC,EAAI,EAYSopE,EAAcD,EACxCl0F,KAAK+qB,OAAO,IAbC,EAAI,EAaUopE,EAAcD,EACzCl0F,KAAK+qB,OAAO,IAdC,EAAI,EAcUopE,EAAcD,EACzCl0F,KAAK+qB,OAAO,IAAMzH,EAfL,EAAI,EAegB6wE,GASnC9W,eAAgB,SAAS3nE,GAEvB,OADA1V,KAAK2sF,kBACEnR,EAAQmI,WAAWz+E,UAAUm4E,eAAe5+E,KAAKuB,KAAM0V,IAgBhEssE,QAAS,SAAStsE,GAChB1V,KAAK2sF,kBACLnR,EAAQmI,WAAWz+E,UAAU88E,QAAQvjF,KAAKuB,KAAM0V,MAYpDqF,EAAOqrB,MAAMo1C,QAAQuY,YAAY1sE,WAAatM,EAAOqrB,MAAMo1C,QAAQmI,WAAWt8D,WAxGhF,CA0GoC3qB,GAGpC,SAAUS,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAC3CnE,EAAQmE,EAAOkF,KAAK3I,OAAOV,MAE3BmE,EAAO6K,KACT7K,EAAO9P,KAAK,mCAYd8P,EAAO6K,KAAO7K,EAAOkF,KAAKkT,YAAYpY,EAAOhV,OAA4C,CAOvFquF,yBAA0B,CACxB,WACA,aACA,aACA,YACA,aACA,OACA,cACA,YACA,UAMFC,WAAY,QAOZC,iBAAkB,WAOlBC,eAAgB,UAOhBC,SAAU,OAOVrpF,KAAsB,OAOtBua,SAAsB,GAOtBlU,WAAsB,SAOtBwa,WAAsB,kBAOtByoE,WAAAA,EAOAC,UAAAA,EAOAC,aAAAA,EAQAC,UAAsB,OAOtBrjF,UAAsB,SAOtB8xB,WAAsB,KAOtBwxD,YAAa,CACXpzE,KAAW,GACXqzE,UAAW,KAQbC,UAAW,CACTtzE,KAAW,GACXqzE,SAAW,KAQbE,oBAAsB,GAQtBtwB,gBAAiB3pD,EAAOhV,OAAOb,UAAUw/D,gBAAgBloE,OAAO,aAC9D,aACA,WACA,OACA,YACA,WACA,cACA,YACA,YACA,aACA,sBACA,cACA,UAMFmoE,gBAAiB5pD,EAAOhV,OAAOb,UAAUy/D,gBAAgBnoE,OAAO,aAC9D,aACA,WACA,OACA,YACA,WACA,cACA,YACA,YACA,aACA,sBACA,cACA,UAQFkhC,OAAsB,KAQtB8b,OAAsB,KAKtBy7C,kBAAmB,KAKnBhH,QAAS,CACPwG,UAAW,GACXE,aAAc,KACdD,UAAW,KAQbQ,cAA2B,KAQ3BC,YAAyB,EAQzBxgE,OAAQ,KAURygE,kBAAmB,KAOnBpkB,OAAQ,EAORqkB,iBAAkB,CAChB,SACA,cACA,OACA,aACA,WACA,aACA,YACA,YACA,WACA,cACA,SACA,uBAMFC,aAAc,GASdC,gBAAiB,IAOjBC,eAAgB,EAQhBpiE,WAAY,SAAStf,EAAM4B,GACzB1V,KAAK20B,OAASjf,GAAWA,EAAQif,QAAiB,GAClD30B,KAAK8T,KAAOA,EACZ9T,KAAKy1F,iBAAAA,EACLz1F,KAAK+yB,UAAU,aAAcrd,GAC7B1V,KAAKy1F,iBAAAA,EACLz1F,KAAK01F,iBACL11F,KAAKu+C,YACLv+C,KAAKg/C,WAAW,CAAEyoB,YAAa,8BAUjCkuB,oBAAqB,WAMnB,OAJK56E,EAAOq6E,oBACVr6E,EAAOq6E,kBAAoBp1F,KAAKkc,QAAUlc,KAAKkc,OAAOuzC,cACpD10C,EAAOkF,KAAKgJ,sBAAsB5M,WAAW,OAE1CtB,EAAOq6E,mBAOhBQ,WAAY,WACV,IAAIC,EAAW71F,KAAK81F,oBAAoB91F,KAAK8T,MAK7C,OAJA9T,KAAK+1F,UAAYF,EAASt0F,MAC1BvB,KAAKg2F,WAAaH,EAASI,cAC3Bj2F,KAAKk2F,oBAAsBL,EAASM,gBACpCn2F,KAAKo2F,MAAQP,EAASQ,aACfR,GAQTH,eAAgB,WACV11F,KAAKy1F,kBAGTz1F,KAAK41F,aACL51F,KAAKs2F,cACLt2F,KAAK0c,MAAQ1c,KAAKu2F,iBAAmBv2F,KAAKw2F,aAAex2F,KAAKw1F,gBACnB,IAAvCx1F,KAAK40F,UAAUhzF,QAAQ,YAEzB5B,KAAKy2F,gBAEPz2F,KAAKuc,OAASvc,KAAK02F,iBACnB12F,KAAKy+D,UAAU,CAAEgJ,YAAa,+BAMhCgvB,cAAe,WAEb,IADA,IAAIE,EAAWC,EAAkCC,EAAkBn3F,EAAMo3F,EAAW7wF,EAC3EtL,EAAI,EAAGD,EAAMsF,KAAKg2F,WAAWh7F,OAAQL,EAAID,EAAKC,IACrD,IAAuB,YAAnBqF,KAAK40F,WAA4Bj6F,IAAMD,EAAM,IAAKsF,KAAK+2F,gBAAgBp8F,MAG3Ek8F,EAAmB,EACnBn3F,EAAOM,KAAKg2F,WAAWr7F,IACvBi8F,EAAmB52F,KAAKg3F,aAAar8F,IACdqF,KAAK0c,QAAUzW,EAASjG,KAAK+1F,UAAUp7F,GAAGmF,MAAME,KAAKs0F,oBAAoB,CAE9FqC,GAAa32F,KAAK0c,MAAQk6E,GADT3wF,EAAOjL,OAExB,IAAK,IAAI0G,EAAI,EAAG8uB,EAAO9wB,EAAK1E,OAAQ0G,GAAK8uB,EAAM9uB,IAC7Co1F,EAAY92F,KAAKs1F,aAAa36F,GAAG+G,GAC7B1B,KAAKu0F,eAAerpF,KAAKxL,EAAKgC,KAChCo1F,EAAUp6E,OAASi6E,EACnBG,EAAUG,aAAeN,EACzBG,EAAU5xE,MAAQ2xE,EAClBA,GAAoBF,GAGpBG,EAAU5xE,MAAQ2xE,IAY5BE,gBAAiB,SAASG,GACxB,OAAOA,IAAcl3F,KAAKg2F,WAAWh7F,OAAS,GAShDm8F,qBAAsB,WACpB,OAAO,GAOTt3F,SAAU,WACR,MAAO,kBAAoBG,KAAK2hB,aAC9B,iBAAmB3hB,KAAK8T,KAAO,qBAAuB9T,KAAKgsB,WAAa,QAc5Eo5C,0BAA2B,WACzB,IAAIH,EAAOjlE,KAAK+yB,UAAU,6BACtBrN,EAAW1lB,KAAK0lB,SAGpB,OAFAu/C,EAAKvoD,OAASgJ,EAAWu/C,EAAKvkB,MAC9BukB,EAAK1oD,QAAUmJ,EAAWu/C,EAAKtkB,MACxBskB,GAOT1d,QAAS,SAASnrC,GAChBpc,KAAKo3F,eAAeh7E,GACpBpc,KAAKq3F,2BAA2Bj7E,GAChCpc,KAAKs3F,sBAAsBl7E,EAAK,aAChCpc,KAAKu3F,YAAYn7E,GACjBpc,KAAKs3F,sBAAsBl7E,EAAK,YAChCpc,KAAKs3F,sBAAsBl7E,EAAK,gBAOlCm7E,YAAa,SAASn7E,GACI,WAApBpc,KAAKykE,YACPzkE,KAAKw3F,kBAAkBp7E,GACvBpc,KAAKy3F,gBAAgBr7E,KAGrBpc,KAAKy3F,gBAAgBr7E,GACrBpc,KAAKw3F,kBAAkBp7E,KAc3Bg7E,eAAgB,SAASh7E,EAAKs7E,EAAWC,GACvCv7E,EAAIw7E,aAAe,aACnBx7E,EAAI4nB,KAAOhkC,KAAK63F,oBAAoBH,EAAWC,IASjDpB,cAAe,WAGb,IAFA,IAAIuB,EAAW93F,KAAKg3F,aAAa,GAExBr8F,EAAI,EAAGD,EAAMsF,KAAKg2F,WAAWh7F,OAAQL,EAAID,EAAKC,IAAK,CAC1D,IAAIi8F,EAAmB52F,KAAKg3F,aAAar8F,GACrCi8F,EAAmBkB,IACrBA,EAAWlB,GAGf,OAAOkB,GAYTC,gBAAiB,SAASvmE,EAAQpV,EAAK1c,EAAMwlB,EAAMC,EAAK+xE,GACtDl3F,KAAKg4F,aAAaxmE,EAAQpV,EAAK1c,EAAMwlB,EAAMC,EAAK+xE,IAQlDG,2BAA4B,SAASj7E,GACnC,GAAKpc,KAAKg1F,qBAAwBh1F,KAAKi4F,SAAS,uBAAhD,CAUA,IAPA,IAAuBC,EACnBC,EACAz4F,EAAM04F,EAGsBC,EAASC,EALrCC,EAAgB,EACAtwB,EAAe7rD,EAAIglC,UAEnCo3C,EAAax4F,KAAKy4F,iBAClBC,EAAY14F,KAAK24F,gBACjBC,EAAW,EAAGC,EAAW,EAEpBl+F,EAAI,EAAGD,EAAMsF,KAAKg2F,WAAWh7F,OAAQL,EAAID,EAAKC,IAErD,GADAu9F,EAAel4F,KAAK84F,gBAAgBn+F,GAC/BqF,KAAKg1F,qBAAwBh1F,KAAKi4F,SAAS,sBAAuBt9F,GAAvE,CAIA+E,EAAOM,KAAKg2F,WAAWr7F,GACvBw9F,EAAiBn4F,KAAK+4F,mBAAmBp+F,GACzCk+F,EAAW,EACXD,EAAW,EACXR,EAAYp4F,KAAKg5F,qBAAqBr+F,EAAG,EAAG,uBAC5C,IAAK,IAAI+G,EAAI,EAAG8uB,EAAO9wB,EAAK1E,OAAQ0G,EAAI8uB,EAAM9uB,IAC5C22F,EAAUr4F,KAAKs1F,aAAa36F,GAAG+G,IAC/B42F,EAAet4F,KAAKg5F,qBAAqBr+F,EAAG+G,EAAG,0BAC1B02F,GACnBh8E,EAAIglC,UAAYg3C,EAChBA,GAAah8E,EAAIwuC,SACf4tC,EAAaL,EAAiBS,EAC9BF,EAAYH,EACZM,EACAX,EAAel4F,KAAKqjC,YAEtBu1D,EAAWP,EAAQnzE,KACnB2zE,EAAWR,EAAQ37E,MACnB07E,EAAYE,GAGZO,GAAYR,EAAQpB,YAGpBqB,IACFl8E,EAAIglC,UAAYk3C,EAChBl8E,EAAIwuC,SACF4tC,EAAaL,EAAiBS,EAC9BF,EAAYH,EACZM,EACAX,EAAel4F,KAAKqjC,aAGxBk1D,GAAiBL,OApCfK,GAAiBL,EAsCrB97E,EAAIglC,UAAY6mB,EAGhBjoE,KAAKyoE,cAAcrsD,KAWrB68E,aAAc,SAASvwB,GACrB,IAAI18C,EAAa08C,EAAK18C,WAAWtd,cAC5BqM,EAAO2D,gBAAgBsN,KAC1BjR,EAAO2D,gBAAgBsN,GAAc,IAEvC,IAAI+jD,EAAQh1D,EAAO2D,gBAAgBsN,GAC/BktE,EAAYxwB,EAAKn3D,UAAU7C,cAAgB,KAAOg6D,EAAKl3D,WAAa,IAAI9C,cAI5E,OAHKqhE,EAAMmpB,KACTnpB,EAAMmpB,GAAa,IAEdnpB,EAAMmpB,IAWfC,iBAAkB,SAAS3nE,EAAQpV,EAAK86E,EAAWrzC,EAAWu1C,GAE5Dp5F,KAAKqoE,eAAejsD,EAAKg9E,GACzBp5F,KAAKooE,iBAAiBhsD,EAAKg9E,GAE3Bh9E,EAAI4nB,KAAOhkC,KAAK63F,oBAAoBuB,IAatCC,aAAc,SAASC,EAAO5B,EAAW6B,EAAcC,GAErD,IAEkE98E,EAAO+8E,EAAaC,EACtBzC,EAH5D0C,EAAY35F,KAAKi5F,aAAavB,GACqCkC,EAASL,EAAeD,EAC3FO,EAF4D75F,KAAK63F,oBAAoBH,KAC3D13F,KAAK63F,oBAAoB2B,GAEnDM,EAAiBpC,EAAUhyE,SAAW1lB,KAAKu1F,gBAY/C,GAVIgE,QAAAA,IAAgBI,EAAUJ,KAC5BG,EAAgBC,EAAUJ,SAAAA,IAExBI,EAAUL,KACZrC,EAAcv6E,EAAQi9E,EAAUL,IAE9BO,QAAAA,IAAkBF,EAAUC,KAE9B3C,GADAwC,EAAcE,EAAUC,IACIF,QAAAA,IAE1Bh9E,QAAAA,IAAuBg9E,QAAAA,IAA+BD,EAA2B,CACnF,IAAIr9E,EAAMpc,KAAK21F,sBAEf31F,KAAKo3F,eAAeh7E,EAAKs7E,GAAAA,GAgB3B,YAAA,IAdIh7E,IACFu6E,EAAcv6E,EAAQN,EAAI29E,YAAYT,GAAO58E,MAC7Ci9E,EAAUL,GAAS58E,QAAAA,IAEjBg9E,GAA+BG,GAAkBN,IACnDG,EAAgBt9E,EAAI29E,YAAYR,GAAc78E,MAC9Ci9E,EAAUJ,GAAgBG,GAExBG,QAAAA,IAAkBJ,IAEpBA,EAAcr9E,EAAI29E,YAAYH,GAAQl9E,MACtCi9E,EAAUC,GAAUH,EACpBxC,EAAcwC,EAAcC,GAEvB,CAAEh9E,MAAOA,EAAQo9E,EAAgB7C,YAAaA,EAAc6C,IASrEE,gBAAiB,SAASt6F,EAAM45F,GAC9B,OAAOt5F,KAAKg5F,qBAAqBt5F,EAAM45F,EAAO,aAQhDW,YAAa,SAAS/C,GACpB,IAAIgD,EAAWl6F,KAAKm6F,aAAajD,GAOjC,OANyB,IAArBl3F,KAAKm1F,cACP+E,EAASx9E,OAAS1c,KAAKo6F,0BAErBF,EAASx9E,MAAQ,IACnBw9E,EAASx9E,MAAQ,GAEZw9E,GASTC,aAAc,SAASjD,GACrB,IAAev8F,EAAG0/F,EAA6CC,EAC3DC,EADA79E,EAAQ,EAAgBhd,EAAOM,KAAKg2F,WAAWkB,GAChBsD,EAAa,IAAI/zF,MAAM/G,EAAK1E,QAG/D,IADAgF,KAAKs1F,aAAa4B,GAAasD,EAC1B7/F,EAAI,EAAGA,EAAI+E,EAAK1E,OAAQL,IAE3B4/F,EAAev6F,KAAKy6F,gBADpBJ,EAAW36F,EAAK/E,GAC8Bu8F,EAAWv8F,EAAG2/F,GAC5DE,EAAW7/F,GAAK4/F,EAChB79E,GAAS69E,EAAatD,YACtBqD,EAAeD,EAUjB,OANAG,EAAW7/F,GAAK,CACduqB,KAAMq1E,EAAeA,EAAar1E,KAAOq1E,EAAa79E,MAAQ,EAC9DA,MAAO,EACPu6E,YAAa,EACb16E,OAAQvc,KAAK0lB,UAER,CAAEhJ,MAAOA,EAAOg+E,YAlBS,IA8BlCD,gBAAiB,SAASJ,EAAUnD,EAAWrzC,EAAWy2C,EAAcK,GACtE,IAIwBxF,EAJpB3oF,EAAQxM,KAAK46F,4BAA4B1D,EAAWrzC,GACpDg3C,EAAYP,EAAet6F,KAAK46F,4BAA4B1D,EAAWrzC,EAAY,GAAK,GACxFi3C,EAAO96F,KAAKq5F,aAAagB,EAAU7tF,EAAO8tF,EAAcO,GACxD5D,EAAc6D,EAAK7D,YACnBv6E,EAAQo+E,EAAKp+E,MAEQ,IAArB1c,KAAKm1F,cAEPz4E,GADAy4E,EAAcn1F,KAAKo6F,yBAEnBnD,GAAe9B,GAGjB,IAAIh+D,EAAM,CACRza,MAAOA,EACPwI,KAAM,EACN3I,OAAQ/P,EAAMkZ,SACduxE,YAAaA,EACbjmB,OAAQxkE,EAAMwkE,QAEhB,GAAIntB,EAAY,IAAM82C,EAAU,CAC9B,IAAII,EAAc/6F,KAAKs1F,aAAa4B,GAAWrzC,EAAY,GAC3D1sB,EAAIjS,KAAO61E,EAAY71E,KAAO61E,EAAYr+E,MAAQo+E,EAAK7D,YAAc6D,EAAKp+E,MAE5E,OAAOya,GAQT2hE,gBAAiB,SAAS5B,GACxB,GAAIl3F,KAAKg7F,cAAc9D,GACrB,OAAOl3F,KAAKg7F,cAAc9D,GAO5B,IAJA,IAAIx3F,EAAOM,KAAKg2F,WAAWkB,GAGvB+D,EAAYj7F,KAAKg6F,gBAAgB9C,EAAW,GACvCv8F,EAAI,EAAGD,EAAMgF,EAAK1E,OAAQL,EAAID,EAAKC,IAC1CsgG,EAAYj4E,KAAKvI,IAAIza,KAAKg6F,gBAAgB9C,EAAWv8F,GAAIsgG,GAG3D,OAAOj7F,KAAKg7F,cAAc9D,GAAa+D,EAAYj7F,KAAKqjC,WAAarjC,KAAKk1F,eAM5EwB,eAAgB,WAEd,IADA,IAAIrzD,EAAY9mB,EAAS,EAChB5hB,EAAI,EAAGD,EAAMsF,KAAKg2F,WAAWh7F,OAAQL,EAAID,EAAKC,IACrD0oC,EAAarjC,KAAK84F,gBAAgBn+F,GAClC4hB,GAAW5hB,IAAMD,EAAM,EAAI2oC,EAAarjC,KAAKqjC,WAAaA,EAE5D,OAAO9mB,GAOTk8E,eAAgB,WACd,OAAQz4F,KAAK0c,MAAQ,GAOvBi8E,cAAe,WACb,OAAQ34F,KAAKuc,OAAS,GAUxB8sD,+BAAgC,SAASjtD,EAAK8F,GAC5C,IAAKA,IAAWA,EAAO81B,OACrB,MAAO,CAAEnB,QAAS,EAAGC,QAAS,GAEhC,IAAID,GAAW72C,KAAK0c,MAAQ,EAAIwF,EAAO20B,SAAW,EAC9CC,GAAW92C,KAAKuc,OAAS,EAAI2F,EAAO40B,SAAW,EAGnD,OADA16B,EAAIyI,UAAU,EAAG,EAAG,EAAG,EAAGgyB,EAASC,GAC5B,CAAED,QAASA,EAASC,QAASA,IAQtCokD,kBAAmB,SAAS9+E,EAAKoV,GAC/BpV,EAAIyM,OAGJ,IAFA,IAAIsyE,EAAc,EAAGj2E,EAAOllB,KAAKy4F,iBAAkBtzE,EAAMnlB,KAAK24F,gBAC1D1K,EAAUjuF,KAAKqpE,+BAA+BjtD,EAAgB,aAAXoV,EAAwBxxB,KAAKkgB,KAAOlgB,KAAK09B,QACvF/iC,EAAI,EAAGD,EAAMsF,KAAKg2F,WAAWh7F,OAAQL,EAAID,EAAKC,IAAK,CAC1D,IAAIu9F,EAAel4F,KAAK84F,gBAAgBn+F,GACpCsgG,EAAY/C,EAAel4F,KAAKqjC,WAChCm1D,EAAax4F,KAAK+4F,mBAAmBp+F,GACzCqF,KAAK+3F,gBACHvmE,EACApV,EACApc,KAAKg2F,WAAWr7F,GAChBuqB,EAAOszE,EAAavK,EAAQp3C,QAC5B1xB,EAAMg2E,EAAcF,EAAYhN,EAAQn3C,QACxCn8C,GAEFwgG,GAAejD,EAEjB97E,EAAI4M,WAONyuE,gBAAiB,SAASr7E,IACnBpc,KAAKkgB,MAASlgB,KAAKi4F,SAAS,UAIjCj4F,KAAKk7F,kBAAkB9+E,EAAK,aAO9Bo7E,kBAAmB,SAASp7E,IACpBpc,KAAK09B,QAA+B,IAArB19B,KAAKsoD,cAAsBtoD,KAAKo7F,mBAIjDp7F,KAAKw5C,SAAWx5C,KAAKw5C,OAAOJ,cAC9Bp5C,KAAKyoE,cAAcrsD,GAGrBA,EAAIyM,OACJ7oB,KAAKu1D,aAAan5C,EAAKpc,KAAK2lD,iBAC5BvpC,EAAIsN,YACJ1pB,KAAKk7F,kBAAkB9+E,EAAK,cAC5BA,EAAI+kC,YACJ/kC,EAAI4M,YAaNgvE,aAAc,SAASxmE,EAAQpV,EAAK1c,EAAMwlB,EAAMC,EAAK+xE,GAEnD,IAEImE,EACAC,EAEAjD,EAEAkD,EAPAl4D,EAAarjC,KAAK84F,gBAAgB5B,GAClCsE,GAAmD,IAAvCx7F,KAAK40F,UAAUhzF,QAAQ,WAGnC65F,EAAgB,GAEhB5C,EAAW,EAEX6C,GAAYF,GAAkC,IAArBx7F,KAAKm1F,aAAqBn1F,KAAKo7F,cAAclE,GAI1E,GAFA96E,EAAIyM,OACJ1D,GAAOke,EAAarjC,KAAKi1F,kBAAoBj1F,KAAKqjC,WAC9Cq4D,EAIF,OAFA17F,KAAK27F,YAAYnqE,EAAQpV,EAAK86E,EAAW,EAAGl3F,KAAK+1F,UAAUmB,GAAYhyE,EAAMC,EAAKke,QAClFjnB,EAAI4M,UAGN,IAAK,IAAIruB,EAAI,EAAGD,EAAMgF,EAAK1E,OAAS,EAAGL,GAAKD,EAAKC,IAC/C4gG,EAAe5gG,IAAMD,GAAOsF,KAAKm1F,YACjCsG,GAAiB/7F,EAAK/E,GACtB09F,EAAUr4F,KAAKs1F,aAAa4B,GAAWv8F,GACtB,IAAbk+F,GACF3zE,GAAQmzE,EAAQpB,YAAcoB,EAAQ37E,MACtCm8E,GAAYR,EAAQ37E,OAGpBm8E,GAAYR,EAAQpB,YAElBuE,IAAcD,GACZv7F,KAAKu0F,eAAerpF,KAAKxL,EAAK/E,MAChC4gG,GAAAA,GAGCA,IAEHF,EAAcA,GAAer7F,KAAK46F,4BAA4B1D,EAAWv8F,GACzE2gG,EAAYt7F,KAAK46F,4BAA4B1D,EAAWv8F,EAAI,GAC5D4gG,EAAev7F,KAAK47F,iBAAiBP,EAAaC,IAEhDC,IACFv7F,KAAK27F,YAAYnqE,EAAQpV,EAAK86E,EAAWv8F,EAAG8gG,EAAev2E,EAAMC,EAAKke,GACtEo4D,EAAgB,GAChBJ,EAAcC,EACdp2E,GAAQ2zE,EACRA,EAAW,GAGfz8E,EAAI4M,WAcN2yE,YAAa,SAASnqE,EAAQpV,EAAK86E,EAAWrzC,EAAWy1C,EAAOp0E,EAAMC,GACpE,IAAIujD,EAAO1oE,KAAK67F,qBAAqB3E,EAAWrzC,GAC5Ci4C,EAAW97F,KAAK46F,4BAA4B1D,EAAWrzC,GACvDk4C,EAAwB,aAAXvqE,GAAyBsqE,EAAS57E,KAC/C87E,EAA0B,eAAXxqE,GAA2BsqE,EAASp+D,QAAUo+D,EAASxzC,aAErE0zC,GAAiBD,KAGtBrzB,GAAQtsD,EAAIyM,OAEZ7oB,KAAKm5F,iBAAiB3nE,EAAQpV,EAAK86E,EAAWrzC,EAAWi4C,GAErDpzB,GAAQA,EAAKssB,qBACfh1F,KAAKyoE,cAAcrsD,GAEjBssD,GAAQA,EAAKsI,SACf7rD,GAAOujD,EAAKsI,QAGd+qB,GAAc3/E,EAAI6/E,SAAS3C,EAAOp0E,EAAMC,GACxC62E,GAAgB5/E,EAAI8/E,WAAW5C,EAAOp0E,EAAMC,GAC5CujD,GAAQtsD,EAAI4M,YAUdmzE,eAAgB,SAAS7sF,EAAOyrB,GAC9B,OAAO/6B,KAAKo8F,WAAW9sF,EAAOyrB,EAAK/6B,KAAK60F,cAU1CwH,aAAc,SAAS/sF,EAAOyrB,GAC5B,OAAO/6B,KAAKo8F,WAAW9sF,EAAOyrB,EAAK/6B,KAAK+0F,YAY1CqH,WAAY,SAAS9sF,EAAOyrB,EAAKuhE,GAC/B,IAAIC,EAAMv8F,KAAKw8F,oBAAoBltF,GAAAA,GAC/BoW,EAAW1lB,KAAKg5F,qBAAqBuD,EAAIrF,UAAWqF,EAAI14C,UAAW,YACnEr7B,EAAKxoB,KAAKg5F,qBAAqBuD,EAAIrF,UAAWqF,EAAI14C,UAAW,UAGjE,OADA7jD,KAAKy8F,mBADO,CAAE/2E,SAAUA,EAAW42E,EAAO76E,KAAMuvD,OAAQxoD,EAAK9C,EAAW42E,EAAOxH,UAChDxlF,EAAOyrB,GAC/B/6B,MAQT47F,iBAAkB,SAASf,EAAW6B,GACpC,OAAO7B,EAAU36E,OAASw8E,EAAUx8E,MAC5B26E,EAAUn9D,SAAWg/D,EAAUh/D,QAC/Bm9D,EAAUvyC,cAAgBo0C,EAAUp0C,aACpCuyC,EAAUn1E,WAAag3E,EAAUh3E,UACjCm1E,EAAU7uE,aAAe0wE,EAAU1wE,YACnC6uE,EAAUrpF,aAAekrF,EAAUlrF,YACnCqpF,EAAUtpF,YAAcmrF,EAAUnrF,WAClCspF,EAAU7pB,SAAW0rB,EAAU1rB,QAQzC2rB,uBAAwB,SAAS9B,EAAW6B,GAC1C,OAAO18F,KAAK47F,iBAAiBf,EAAW6B,IACtC7B,EAAUnG,WAAagI,EAAUhI,UACjCmG,EAAUpG,YAAciI,EAAUjI,WAClCoG,EAAUlG,cAAgB+H,EAAU/H,aAQxCoE,mBAAoB,SAAS7B,GAC3B,IAAIpxC,EAAY9lD,KAAKg3F,aAAaE,GAClC,MAAuB,WAAnBl3F,KAAK40F,WACC50F,KAAK0c,MAAQopC,GAAa,EAEb,UAAnB9lD,KAAK40F,UACA50F,KAAK0c,MAAQopC,EAEC,mBAAnB9lD,KAAK40F,WAAkC50F,KAAK+2F,gBAAgBG,IACtDl3F,KAAK0c,MAAQopC,GAAa,EAEb,kBAAnB9lD,KAAK40F,WAAiC50F,KAAK+2F,gBAAgBG,GACtDl3F,KAAK0c,MAAQopC,EAEf,GAMTwwC,YAAa,WACXt2F,KAAK48F,aAAe,GACpB58F,KAAKg7F,cAAgB,GACrBh7F,KAAKs1F,aAAe,IAMtBuH,2BAA4B,WAC1B,IAAIC,EAAc98F,KAAK+8F,iBAMvB,OALAD,IAAgBA,EAAc98F,KAAKg+D,gBAAgB,6BAC/C8+B,IACF98F,KAAKwkE,OAAAA,EACLxkE,KAAK+8F,kBAAAA,GAEAD,GAUT9F,aAAc,SAASE,GACrB,OAAIl3F,KAAK48F,aAAa1F,GACbl3F,KAAK48F,aAAa1F,IAMzBx6E,EADW,KAFK1c,KAAKg2F,WAAWkB,GAGxB,EAGGl3F,KAAKi6F,YAAY/C,GACXx6E,MAEnB1c,KAAK48F,aAAa1F,GAAax6E,EACxBA,GAVP,IAAIA,GAaN09E,uBAAwB,WACtB,OAAyB,IAArBp6F,KAAKm1F,YACAn1F,KAAK0lB,SAAW1lB,KAAKm1F,YAAc,IAErC,GAUT6D,qBAAsB,SAAS9B,EAAWrzC,EAAWtsC,GACnD,IAAImgF,EAAY13F,KAAK67F,qBAAqB3E,EAAWrzC,GACrD,OAAI6zC,QAAAA,IAAoBA,EAAUngF,GACzBmgF,EAAUngF,GAEZvX,KAAKuX,IAOd+/E,sBAAuB,SAASl7E,EAAKjR,GACnC,GAAKnL,KAAKmL,IAAUnL,KAAKi4F,SAAS9sF,GAAlC,CAYA,IATA,IAAI+sF,EAAcz2E,EAAMu7E,EACpB7E,EAAgB3vE,EAAIy0E,EACpBv9F,EAAMw9F,EAE4B/3E,EAClCyzE,EAAUC,EAAUR,EAAS8E,EAC7BlC,EAAWmC,EAAaC,EAHxB7E,EAAax4F,KAAKy4F,iBAClBC,EAAY14F,KAAK24F,gBAGjBxD,EAAcn1F,KAAKo6F,yBAEdz/F,EAAI,EAAGD,EAAMsF,KAAKg2F,WAAWh7F,OAAQL,EAAID,EAAKC,IAErD,GADAu9F,EAAel4F,KAAK84F,gBAAgBn+F,GAC/BqF,KAAKmL,IAAUnL,KAAKi4F,SAAS9sF,EAAMxQ,GAAxC,CAIA+E,EAAOM,KAAKg2F,WAAWr7F,GACvBsgG,EAAY/C,EAAel4F,KAAKqjC,WAChC80D,EAAiBn4F,KAAK+4F,mBAAmBp+F,GACzCi+F,EAAW,EACXC,EAAW,EACXqE,EAAiBl9F,KAAKg5F,qBAAqBr+F,EAAG,EAAGwQ,GACjDkyF,EAAWr9F,KAAKg5F,qBAAqBr+F,EAAG,EAAG,QAC3CwqB,EAAMuzE,EAAYuC,GAAa,EAAIj7F,KAAKi1F,mBACxCxzE,EAAOzhB,KAAKg6F,gBAAgBr/F,EAAG,GAC/B6tB,EAAKxoB,KAAKg5F,qBAAqBr+F,EAAG,EAAG,UACrC,IAAK,IAAI+G,EAAI,EAAG8uB,EAAO9wB,EAAK1E,OAAQ0G,EAAI8uB,EAAM9uB,IAC5C22F,EAAUr4F,KAAKs1F,aAAa36F,GAAG+G,GAC/By7F,EAAoBn9F,KAAKg5F,qBAAqBr+F,EAAG+G,EAAGyJ,GACpDiyF,EAAcp9F,KAAKg5F,qBAAqBr+F,EAAG+G,EAAG,QAC9Cs7F,EAAQh9F,KAAKg6F,gBAAgBr/F,EAAG+G,GAChCu7F,EAAMj9F,KAAKg5F,qBAAqBr+F,EAAG+G,EAAG,WACjCy7F,IAAsBD,GAAkBE,IAAgBC,GAAYL,IAAUv7E,GAAQw7E,IAAQz0E,IAC/FqwE,EAAW,GACbz8E,EAAIglC,UAAYi8C,EAChBH,GAAkBG,GAAYjhF,EAAIwuC,SAChC4tC,EAAaL,EAAiBS,EAC9BzzE,EAAMnlB,KAAKiuF,QAAQ9iF,GAAQsW,EAAO+G,EAClCqwE,EACA74F,KAAK0lB,SAAW,IAElBkzE,EAAWP,EAAQnzE,KACnB2zE,EAAWR,EAAQ37E,MACnBwgF,EAAiBC,EACjBE,EAAWD,EACX37E,EAAOu7E,EACPx0E,EAAKy0E,GAGLpE,GAAYR,EAAQpB,YAGxB76E,EAAIglC,UAAYg8C,EAChBD,GAAqBC,GAAehhF,EAAIwuC,SACtC4tC,EAAaL,EAAiBS,EAC9BzzE,EAAMnlB,KAAKiuF,QAAQ9iF,GAAQsW,EAAO+G,EAClCqwE,EAAW1D,EACXn1F,KAAK0lB,SAAW,IAElBgzE,GAAaR,OA9CXQ,GAAaR,EAkDjBl4F,KAAKyoE,cAAcrsD,KAQrBy7E,oBAAqB,SAASyF,EAAa3F,GACzC,IAAInrF,EAAQ8wF,GAAet9F,KAAMu9F,EAASv9F,KAAKgsB,WAC3CwxE,EAAgBziF,EAAO6K,KAAK63E,aAAa77F,QAAQ27F,EAAO7uF,gBAAkB,EAC1Esd,OAAAA,IAAauxE,GACjBA,EAAO37F,QAAQ,MAAS,GAAK27F,EAAO37F,QAAQ,MAAQ,GACpD27F,EAAO37F,QAAQ,MAAQ,GAAK47F,EACxBhxF,EAAMwf,WAAa,IAAMxf,EAAMwf,WAAa,IAChD,MAAO,CAGJjR,EAAO8C,aAAerR,EAAMgF,WAAahF,EAAM+E,UAC/CwJ,EAAO8C,aAAerR,EAAM+E,UAAY/E,EAAMgF,WAC/CmmF,EAAe33F,KAAKu1F,gBAAkB,KAAO/oF,EAAMkZ,SAAW,KAC9DsG,GACAtmB,KAAK,MAOTq7C,OAAQ,SAAS3kC,GAEVpc,KAAKi+B,UAGNj+B,KAAKkc,QAAUlc,KAAKkc,OAAOg/B,gBAAkBl7C,KAAKs+C,QAAUt+C,KAAKknE,eAGjElnE,KAAK68F,8BACP78F,KAAK01F,iBAEP11F,KAAK+yB,UAAU,SAAU3W,MAQ3B05E,oBAAqB,SAAShiF,GAK5B,IAJA,IAAIvS,EAAQuS,EAAKtS,MAAMxB,KAAKq0F,YACxBwB,EAAW,IAAIpvF,MAAMlF,EAAMvG,QAC3B0iG,EAAU,CAAC,MACXC,EAAU,GACLhjG,EAAI,EAAGA,EAAI4G,EAAMvG,OAAQL,IAChCk7F,EAASl7F,GAAKogB,EAAOkF,KAAKtjB,OAAOw1B,cAAc5wB,EAAM5G,IACrDgjG,EAAUA,EAAQnhG,OAAOq5F,EAASl7F,GAAI+iG,GAGxC,OADAC,EAAQ5pF,MACD,CAAEoiF,gBAAiBN,EAAUt0F,MAAOA,EAAO80F,aAAcsH,EAAS1H,cAAeJ,IAQ1F3+C,SAAU,SAASC,GACjB,IAAIymD,EAAuB,CACzB,OACA,WACA,aACA,aACA,YACA,aACA,YACA,WACA,cACA,YACA,sBACA,eACAphG,OAAO26C,GACLnxC,EAAMhG,KAAK+yB,UAAU,WAAY6qE,GAErC,OADA53F,EAAI2uB,OAAS/d,EAAM5W,KAAK20B,QAAAA,GACjB3uB,GAUTgc,IAAK,SAAS9lB,EAAKuJ,GACjBzF,KAAK+yB,UAAU,MAAO72B,EAAKuJ,GAC3B,IAAIo4F,GAAAA,EACJ,GAAmB,iBAAR3hG,EACT,IAAK,IAAI4hG,KAAQ5hG,EACf2hG,EAAYA,IAA8D,IAAjD79F,KAAKo0F,yBAAyBxyF,QAAQk8F,QAIjED,GAA4D,IAAhD79F,KAAKo0F,yBAAyBxyF,QAAQ1F,GAMpD,OAJI2hG,IACF79F,KAAK01F,iBACL11F,KAAKu+C,aAEAv+C,MAOT2hB,WAAY,WACV,OAAO,KAWX5G,EAAO6K,KAAK+vD,gBAAkB56D,EAAOgD,kBAAkBvhB,OACrD,oGAAoGgF,MAAM,MAO5GuZ,EAAO6K,KAAKC,sBAAwB,GAUpC9K,EAAO6K,KAAKogB,YAAc,SAAS/kC,EAASyD,EAAUgR,GACpD,IAAKzU,EACH,OAAOyD,EAAS,MAGlB,IAAIkxE,EAAmB76D,EAAOwoB,gBAAgBtiC,EAAS8Z,EAAO6K,KAAK+vD,iBAC/DooB,EAAenoB,EAAiBooB,YAAc,OAKlD,IAJAtoF,EAAUqF,EAAOkF,KAAK3I,OAAOlB,OAAQV,EAAUkB,EAAMlB,GAAW,GAAMkgE,IAE9DzwD,IAAMzP,EAAQyP,KAAO,EAC7BzP,EAAQwP,KAAOxP,EAAQwP,MAAQ,EAC3B0wD,EAAiB9E,eAAgB,CACnC,IAAIA,EAAiB8E,EAAiB9E,gBACO,IAAzCA,EAAelvE,QAAQ,eACzB8T,EAAQ++E,WAAAA,IAEkC,IAAxC3jB,EAAelvE,QAAQ,cACzB8T,EAAQg/E,UAAAA,IAEsC,IAA5C5jB,EAAelvE,QAAQ,kBACzB8T,EAAQi/E,aAAAA,UAEHj/E,EAAQo7D,eAEb,OAAQ8E,IACVlgE,EAAQwP,MAAQ0wD,EAAiBrtD,IAE/B,OAAQqtD,IACVlgE,EAAQyP,KAAOywD,EAAiBptD,IAE5B,aAAc9S,IAClBA,EAAQgQ,SAAW3K,EAAO6K,KAAKC,uBAGjC,IAAI+e,EAAc,GAKZ,gBAAiB3jC,EAQrB2jC,EAAc3jC,EAAQ2jC,YAPlB,eAAgB3jC,GAAkC,OAAvBA,EAAQsgC,YACjC,SAAUtgC,EAAQsgC,YAA0C,OAA5BtgC,EAAQsgC,WAAWplC,OACrDyoC,EAAc3jC,EAAQsgC,WAAWplC,MAQvCyoC,EAAcA,EAAY/4B,QAAQ,iBAAkB,IAAIA,QAAQ,OAAQ,KACxE,IAAIoyF,EAAsBvoF,EAAQ4yC,YAClC5yC,EAAQ4yC,YAAc,EAEtB,IAAIx0C,EAAO,IAAIiH,EAAO6K,KAAKgf,EAAalvB,GACpCwoF,EAAwBpqF,EAAK+6D,kBAAoB/6D,EAAKyI,OAEtD4hF,IADkBrqF,EAAKyI,OAASzI,EAAKw0C,aAAex0C,EAAKuvB,WAAavvB,EAAKyI,QAC7C2hF,EAC9BE,EAAatqF,EAAK+6D,kBAAoBsvB,EACtCE,EAAO,EAMU,WAAjBN,IACFM,EAAOvqF,EAAKi5D,iBAAmB,GAEZ,UAAjBgxB,IACFM,EAAOvqF,EAAKi5D,kBAEdj5D,EAAKkO,IAAI,CACPkD,KAAMpR,EAAKoR,KAAOm5E,EAClBl5E,IAAKrR,EAAKqR,KAAOi5E,EAAatqF,EAAK4R,UAAY,IAAO5R,EAAKmhF,oBAAsBnhF,EAAKuvB,WACtFilB,iBAAAA,IAAoB21C,EAAsCA,EAAsB,IAElFv5F,EAASoP,IAWXiH,EAAO6K,KAAKyB,WAAa,SAAS/P,EAAQ5S,GACxC,OAAOqW,EAAOhV,OAAOskE,YAAY,OAAQ/yD,EAAQ5S,EAAU,SAG7DqW,EAAO6K,KAAK63E,aAAe,CAAC,aAAc,QAAS,UAAW,UAAW,aAEzE1iF,EAAOkF,KAAK8rD,iBAAmBhxD,EAAOkF,KAAK8rD,gBAAgBhxD,EAAO6K,OAt7CpE,CAw7CoClpB,GAIlCqe,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAO6K,KAAK1gB,UAA+C,CAMnFk2F,cAAe,SAASlE,GACtB,IAAKl3F,KAAK20B,OACR,OAAA,EAEF,QAAA,IAAWuiE,IAA8Bl3F,KAAK20B,OAAOuiE,GACnD,OAAA,EAEF,IAAIlxF,OAAAA,IAAakxF,EAA4Bl3F,KAAK20B,OAAS,CAAEj1B,KAAMM,KAAK20B,OAAOuiE,IAC/E,IAAK,IAAIpwC,KAAM9gD,EACb,IAAK,IAAI+gD,KAAM/gD,EAAI8gD,GAEjB,IAAK,IAAIw3C,KAAMt4F,EAAI8gD,GAAIC,GACrB,OAAA,EAIN,OAAA,GAUFkxC,SAAU,SAAS1gF,EAAU2/E,GAC3B,IAAKl3F,KAAK20B,SAAWpd,GAAyB,KAAbA,EAC/B,OAAA,EAEF,QAAA,IAAW2/E,IAA8Bl3F,KAAK20B,OAAOuiE,GACnD,OAAA,EAEF,IAAIlxF,OAAAA,IAAakxF,EAA4Bl3F,KAAK20B,OAAS,CAAE88B,EAAGzxD,KAAK20B,OAAOuiE,IAE5E,IAAK,IAAIpwC,KAAM9gD,EAEb,IAAK,IAAI+gD,KAAM/gD,EAAI8gD,GACjB,QAAA,IAAW9gD,EAAI8gD,GAAIC,GAAIxvC,GACrB,OAAA,EAIN,OAAA,GAaFgnF,WAAY,SAAShnF,GACnB,IAAKvX,KAAK20B,SAAWpd,GAAyB,KAAbA,EAC/B,OAAA,EAEF,IAAwCinF,EAAaC,EAAjDz4F,EAAMhG,KAAK20B,OAAQ+pE,EAAc,EACjCC,GAAAA,EAAsCC,EAAgB,EAE1D,IAAK,IAAI93C,KAAM9gD,EAAK,CAGlB,IAAK,IAAI+gD,KAFTy3C,EAAc,EAECx4F,EAAI8gD,GAAK,CACtB,IAAIw2C,EAGJoB,KAHIpB,EAAct3F,EAAI8gD,GAAIC,IACgBxoD,eAAegZ,IAKlDknF,EAGInB,EAAY/lF,KAAcknF,IACjCE,GAAAA,GAHAF,EAAqBnB,EAAY/lF,GAM/B+lF,EAAY/lF,KAAcvX,KAAKuX,WAC1B+lF,EAAY/lF,IAIrBonF,GAAAA,EAGsC,IAApC54F,OAAOP,KAAK83F,GAAatiG,OAC3BwjG,WAGOx4F,EAAI8gD,GAAIC,GAIC,IAAhBy3C,UACKx4F,EAAI8gD,GAKf,IAAK,IAAInsD,EAAI,EAAGA,EAAIqF,KAAKg2F,WAAWh7F,OAAQL,IAC1CikG,GAAiB5+F,KAAKg2F,WAAWr7F,GAAGK,OAElC2jG,GAAiCD,IAAgBE,IACnD5+F,KAAKuX,GAAYknF,EACjBz+F,KAAK6+F,YAAYtnF,KAWrBsnF,YAAa,SAAStnF,GACpB,GAAKvX,KAAK20B,QAAWpd,GAAyB,KAAbA,EAAjC,CAGA,IAAuB7X,EAAMo/F,EAASC,EAAlC/4F,EAAMhG,KAAK20B,OACf,IAAKmqE,KAAW94F,EAAK,CAEnB,IAAK+4F,KADLr/F,EAAOsG,EAAI84F,UAEFp/F,EAAKq/F,GAASxnF,GACqB,IAAtCxR,OAAOP,KAAK9F,EAAKq/F,IAAU/jG,eACtB0E,EAAKq/F,GAGiB,IAA7Bh5F,OAAOP,KAAK9F,GAAM1E,eACbgL,EAAI84F,MAQjBE,cAAe,SAAS/9E,EAAO0T,GAC7B,IAAI4nE,EAAMv8F,KAAKw8F,oBAAoBv7E,GAE9BjhB,KAAKi/F,cAAc1C,EAAIrF,YAC1Bl3F,KAAKk/F,cAAc3C,EAAIrF,WAGpBl3F,KAAK67F,qBAAqBU,EAAIrF,UAAWqF,EAAI14C,YAChD7jD,KAAKm/F,qBAAqB5C,EAAIrF,UAAWqF,EAAI14C,UAAW,IAG1D9oC,EAAOkF,KAAK3I,OAAOlB,OAAOpW,KAAK67F,qBAAqBU,EAAIrF,UAAWqF,EAAI14C,WAAYlvB,IAQrF6nE,oBAAqB,SAAS4C,EAAgBC,QAAAA,IACjCD,IACTA,EAAiBp/F,KAAKo/F,gBAIxB,IAFA,IAAI79F,EAAQ89F,EAAer/F,KAAKk2F,oBAAsBl2F,KAAKg2F,WACvDt7F,EAAM6G,EAAMvG,OACPL,EAAI,EAAGA,EAAID,EAAKC,IAAK,CAC5B,GAAIykG,GAAkB79F,EAAM5G,GAAGK,OAC7B,MAAO,CACLk8F,UAAWv8F,EACXkpD,UAAWu7C,GAGfA,GAAkB79F,EAAM5G,GAAGK,OAASgF,KAAKm3F,qBAAqBx8F,GAEhE,MAAO,CACLu8F,UAAWv8F,EAAI,EACfkpD,UAAWtiD,EAAM5G,EAAI,GAAGK,OAASokG,EAAiB79F,EAAM5G,EAAI,GAAGK,OAASokG,IAY5EE,mBAAoB,SAASC,EAAYC,EAAUj4F,QAAAA,IACtCg4F,IACTA,EAAav/F,KAAKo/F,gBAAkB,QAAA,IAE3BI,IACTA,EAAWx/F,KAAKy/F,cAAgBF,GAGlC,IADA,IAAI5qE,EAAS,GACJh6B,EAAI4kG,EAAY5kG,EAAI6kG,EAAU7kG,IACrCg6B,EAAOj0B,KAAKV,KAAK0/F,mBAAmB/kG,EAAG4M,IAEzC,OAAOotB,GAUT+qE,mBAAoB,SAAS74E,EAAUtf,GACrC,IAAIg1F,EAAMv8F,KAAKw8F,oBAAoB31E,GAGnC,OAFYtf,EAAWvH,KAAK46F,4BAA4B2B,EAAIrF,UAAWqF,EAAI14C,WACrE7jD,KAAK67F,qBAAqBU,EAAIrF,UAAWqF,EAAI14C,aACnC,IAWlB44C,mBAAoB,SAAS9nE,EAAQ4qE,EAAYC,QAAAA,IACpCD,IACTA,EAAav/F,KAAKo/F,gBAAkB,QAAA,IAE3BI,IACTA,EAAWx/F,KAAKy/F,cAAgBF,GAElC,IAAK,IAAI5kG,EAAI4kG,EAAY5kG,EAAI6kG,EAAU7kG,IACrCqF,KAAKg/F,cAAcrkG,EAAGg6B,GAIxB,OADA30B,KAAK+8F,kBAAAA,EACE/8F,MAST67F,qBAAsB,SAAS3E,EAAWrzC,GACxC,IAAI87C,EAAY3/F,KAAK20B,QAAU30B,KAAK20B,OAAOuiE,GAC3C,OAAKyI,EAGEA,EAAU97C,GAFR,MAYX+2C,4BAA6B,SAAS1D,EAAWrzC,GAG/C,IAFA,IACuBzjC,EADnB5T,EAAQxM,KAAK67F,qBAAqB3E,EAAWrzC,IAAc,GAC3Dy5C,EAAc,GACT3iG,EAAI,EAAGA,EAAIqF,KAAKq1F,iBAAiBr6F,OAAQL,IAEhD2iG,EADAl9E,EAAOpgB,KAAKq1F,iBAAiB16F,SAAAA,IACF6R,EAAM4T,GAAwBpgB,KAAKogB,GAAQ5T,EAAM4T,GAE9E,OAAOk9E,GAST6B,qBAAsB,SAASjI,EAAWrzC,EAAWr3C,GACnDxM,KAAK20B,OAAOuiE,GAAWrzC,GAAar3C,GAStCozF,wBAAyB,SAAS1I,EAAWrzC,UACpC7jD,KAAK20B,OAAOuiE,GAAWrzC,IAQhCo7C,cAAe,SAAS/H,GACtB,QAASl3F,KAAK20B,OAAOuiE,IAQvBgI,cAAe,SAAShI,GACtBl3F,KAAK20B,OAAOuiE,GAAa,IAO3B2I,iBAAkB,SAAS3I,UAClBl3F,KAAK20B,OAAOuiE,MAMzB,WAEE,SAAS4I,EAAgBxoF,GACnBA,EAAOw5D,iBACTx5D,EAAOw5D,eAAelvE,QAAQ,cAAgB,IAAM0V,EAAOm9E,WAAAA,GAC3Dn9E,EAAOw5D,eAAelvE,QAAQ,iBAAmB,IAAM0V,EAAOq9E,aAAAA,GAC9Dr9E,EAAOw5D,eAAelvE,QAAQ,aAAe,IAAM0V,EAAOo9E,UAAAA,UACnDp9E,EAAOw5D,gBAkDlB/1D,EAAOglF,MAAQhlF,EAAOkF,KAAKkT,YAAYpY,EAAO6K,KAAM7K,EAAO1C,WAAiD,CAO1GlN,KAAM,SAONi0F,eAAgB,EAOhBK,aAAc,EAOdxzC,eAAgB,uBAOhBgK,WAAAA,EAOA+pC,UAAAA,EAOAC,mBAAoB,yBAOpBzJ,YAAa,EAOb0J,YAAa,OAObC,YAAa,IAObC,eAAgB,IAOhBC,SAAAA,EAKAC,SAAU,QAKVC,sBAAuB,EAKvBC,oBAAqB,KAKrBC,uBAAAA,EAKAC,eAAgB,GAMhBC,mBAAAA,EAQAvtE,WAAY,SAAStf,EAAM4B,GACzB1V,KAAK+yB,UAAU,aAAcjf,EAAM4B,GACnC1V,KAAK4gG,gBAOPC,kBAAmB,SAAS5/E,GAC1BA,EAAQ+B,KAAKvI,IAAIwG,EAAO,GACxBjhB,KAAK8gG,eAAe,iBAAkB7/E,IAOxC8/E,gBAAiB,SAAS9/E,GACxBA,EAAQ+B,KAAKxI,IAAIyG,EAAOjhB,KAAK8T,KAAK9Y,QAClCgF,KAAK8gG,eAAe,eAAgB7/E,IAQtC6/E,eAAgB,SAASvpF,EAAU0J,GAC7BjhB,KAAKuX,KAAc0J,IACrBjhB,KAAKghG,wBACLhhG,KAAKuX,GAAY0J,GAEnBjhB,KAAKihG,mBAOPD,sBAAuB,WACrBhhG,KAAKugB,KAAK,qBACVvgB,KAAKkc,QAAUlc,KAAKkc,OAAOqE,KAAK,yBAA0B,CAAE5V,OAAQ3K,QAUtE01F,eAAgB,WACd11F,KAAKi2D,WAAaj2D,KAAKkhG,oBACvBlhG,KAAK84D,kBACL94D,KAAK+yB,UAAU,mBAOjBguB,OAAQ,SAAS3kC,GACfpc,KAAK84D,kBACL94D,KAAK+yB,UAAU,SAAU3W,GAGzBpc,KAAKmhG,kBAAoB,GACzBnhG,KAAKohG,2BAOP75C,QAAS,SAASnrC,GAChBpc,KAAK+yB,UAAU,UAAW3W,IAM5B08C,gBAAiB,SAASuoC,GACxB,GAAKrhG,KAAKi2D,WAAcj2D,KAAKkc,QAAWlc,KAAKkc,OAAOmgC,WAApD,CAGA,IAAIjgC,EAAMpc,KAAKkc,OAAOmgC,WAAYnvC,EAAIlN,KAAKkc,OAAO0+B,kBAClDx+B,EAAIyM,OACJzM,EAAIyI,UAAU3X,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAC9ClN,KAAK6kB,UAAUzI,GACfpc,KAAK+9B,iBAAmB3hB,EAAIyI,UAAUrmB,MAAM4d,EAAKpc,KAAK+9B,iBACtD/9B,KAAKshG,eAAellF,GACpBilF,GAAejlF,EAAI4M,YAOrBo4E,wBAAyB,WACvB,GAAKphG,KAAKi2D,WAAcj2D,KAAKkc,QAAWlc,KAAKkc,OAAOmgC,WAApD,CAGA,IAAIklD,EAAavhG,KAAKwhG,uBAClBplF,EAAMpc,KAAKkc,OAAOmgC,WACtBr8C,KAAK84D,iBAAAA,GACD94D,KAAKo/F,iBAAmBp/F,KAAKy/F,aAC/Bz/F,KAAKyhG,aAAaF,EAAYnlF,GAG9Bpc,KAAK0hG,gBAAgBH,EAAYnlF,GAEnCA,EAAI4M,YAGNs4E,eAAgB,SAASllF,GAEvB,IAAIM,EAAQ1c,KAAK0c,MAAQ,EAAGH,EAASvc,KAAKuc,OAAS,EACnDH,EAAI8iC,WAAWxiC,EAAQ,GAAIH,EAAS,EAAGG,EAAOH,IAShDilF,qBAAsB,SAAS36E,QAAAA,IAKlBA,IACTA,EAAW7mB,KAAKo/F,gBAGlB,IAAIl6E,EAAOllB,KAAKy4F,iBACZtzE,EAAMnlB,KAAK24F,gBACX1K,EAAUjuF,KAAK2hG,4BAA4B96E,GAE/C,MAAO,CACL3B,KAAMA,EACNC,IAAKA,EACLqzE,WAAYvK,EAAQ/oE,KACpBwzE,UAAWzK,EAAQ9oE,MAOvBw8E,4BAA6B,SAAS96E,GACpC,GAAI7mB,KAAKmhG,mBAAqB,QAASnhG,KAAKmhG,kBAC1C,OAAOnhG,KAAKmhG,kBAEd,IAAIhJ,EACAjB,EACArzC,EACA60C,EAAY,EACZF,EAAa,EAEboJ,EAAiB5hG,KAAKw8F,oBAAoB31E,GAC9Cg9B,EAAY+9C,EAAe/9C,UAC3BqzC,EAAY0K,EAAe1K,UAC3B,IAAK,IAAIv8F,EAAI,EAAGA,EAAIu8F,EAAWv8F,IAC7B+9F,GAAa14F,KAAK84F,gBAAgBn+F,GAEpCw9F,EAAiBn4F,KAAK+4F,mBAAmB7B,GACzC,IAAI/lE,EAAQnxB,KAAKs1F,aAAa4B,GAAWrzC,GAUzC,OATA1yB,IAAUqnE,EAAarnE,EAAMjM,MACJ,IAArBllB,KAAKm1F,aAAqBtxC,IAAc7jD,KAAKg2F,WAAWkB,GAAWl8F,SACrEw9F,GAAcx4F,KAAKo6F,0BAMrBp6F,KAAKmhG,kBAJQ,CACXh8E,IAAKuzE,EACLxzE,KAAMizE,GAAkBK,EAAa,EAAIA,EAAa,IAGjDx4F,KAAKmhG,mBAQdM,aAAc,SAASF,EAAYnlF,GACjC,IAAIylF,EAAiB7hG,KAAKw8F,sBACtBtF,EAAY2K,EAAe3K,UAC3BrzC,EAAYg+C,EAAeh+C,UAAY,EAAIg+C,EAAeh+C,UAAY,EAAI,EAC1Ei+C,EAAa9hG,KAAKg5F,qBAAqB9B,EAAWrzC,EAAW,YAC7DzN,EAAap2C,KAAKgqB,OAAShqB,KAAKkc,OAAO+hC,UACvCu4C,EAAcx2F,KAAKw2F,YAAcpgD,EACjCsiD,EAAY6I,EAAW7I,UACvBlwE,EAAKxoB,KAAKg5F,qBAAqB9B,EAAWrzC,EAAW,UAEzD60C,IAAc,EAAI14F,KAAKi1F,mBAAqBj1F,KAAK84F,gBAAgB5B,GAAal3F,KAAKqjC,WAC/Ey+D,GAAc,EAAI9hG,KAAKi1F,mBAEvBj1F,KAAK2gG,mBACP3gG,KAAK0hG,gBAAgBH,EAAYnlF,GAGnCA,EAAIglC,UAAYphD,KAAKg5F,qBAAqB9B,EAAWrzC,EAAW,QAChEznC,EAAIuuC,YAAc3qD,KAAK+hG,cAAgB,EAAI/hG,KAAKugG,sBAChDnkF,EAAIwuC,SACF22C,EAAWr8E,KAAOq8E,EAAW/I,WAAahC,EAAc,EACxDkC,EAAY6I,EAAWp8E,IAAMqD,EAC7BguE,EACAsL,IAQJJ,gBAAiB,SAASH,EAAYnlF,GAYpC,IAVA,IAAIgjF,EAAiBp/F,KAAK2gG,kBAAoB3gG,KAAK47D,eAAewjC,eAAiBp/F,KAAKo/F,eACpFK,EAAez/F,KAAK2gG,kBAAoB3gG,KAAK47D,eAAe6jC,aAAez/F,KAAKy/F,aAChFjE,GAAmD,IAAvCx7F,KAAK40F,UAAUhzF,QAAQ,WACnC0N,EAAQtP,KAAKw8F,oBAAoB4C,GACjCrkE,EAAM/6B,KAAKw8F,oBAAoBiD,GAC/BuC,EAAY1yF,EAAM4nF,UAClB+K,EAAUlnE,EAAIm8D,UACdgL,EAAY5yF,EAAMu0C,UAAY,EAAI,EAAIv0C,EAAMu0C,UAC5Cs+C,EAAUpnE,EAAI8oB,UAAY,EAAI,EAAI9oB,EAAI8oB,UAEjClpD,EAAIqnG,EAAWrnG,GAAKsnG,EAAStnG,IAAK,CACzC,IAEIynG,EAFAC,EAAariG,KAAK+4F,mBAAmBp+F,IAAM,EAC3C0oC,EAAarjC,KAAK84F,gBAAgBn+F,GACdi+F,EAAW,EAAG0J,EAAS,EAK/C,GAHI3nG,IAAMqnG,IACRpJ,EAAW54F,KAAKs1F,aAAa0M,GAAWE,GAAWh9E,MAEjDvqB,GAAKqnG,GAAarnG,EAAIsnG,EACxBK,EAAS9G,IAAcx7F,KAAK+2F,gBAAgBp8F,GAAKqF,KAAK0c,MAAQ1c,KAAKg3F,aAAar8F,IAAM,OAEnF,GAAIA,IAAMsnG,EACb,GAAgB,IAAZE,EACFG,EAAStiG,KAAKs1F,aAAa2M,GAASE,GAASj9E,SAE1C,CACH,IAAIiwE,EAAcn1F,KAAKo6F,yBACvBkI,EAAStiG,KAAKs1F,aAAa2M,GAASE,EAAU,GAAGj9E,KAC7CllB,KAAKs1F,aAAa2M,GAASE,EAAU,GAAGzlF,MAAQy4E,EAGxDiN,EAAiB/+D,GACbrjC,KAAKqjC,WAAa,GAAM1oC,IAAMsnG,GAAWjiG,KAAKqjC,WAAa,KAC7DA,GAAcrjC,KAAKqjC,YAEjBrjC,KAAK2gG,mBACPvkF,EAAIglC,UAAYphD,KAAKuiG,kBAAoB,QACzCnmF,EAAIwuC,SACF22C,EAAWr8E,KAAOm9E,EAAazJ,EAC/B2I,EAAWp8E,IAAMo8E,EAAW7I,UAAYr1D,EACxCi/D,EAAS1J,EACT,KAGFx8E,EAAIglC,UAAYphD,KAAKisD,eACrB7vC,EAAIwuC,SACF22C,EAAWr8E,KAAOm9E,EAAazJ,EAC/B2I,EAAWp8E,IAAMo8E,EAAW7I,UAC5B4J,EAAS1J,EACTv1D,IAIJk+D,EAAW7I,WAAa0J,IAU5BI,uBAAwB,WACtB,IAAIC,EAAKziG,KAAK0iG,uBACd,OAAO1iG,KAAKg5F,qBAAqByJ,EAAG12F,EAAG02F,EAAGroG,EAAG,aAS/CuoG,oBAAqB,WACnB,IAAIF,EAAKziG,KAAK0iG,uBACd,OAAO1iG,KAAKg5F,qBAAqByJ,EAAG12F,EAAG02F,EAAGroG,EAAG,SAO/CsoG,qBAAsB,WACpB,IAAId,EAAiB5hG,KAAKw8F,oBAAoBx8F,KAAKo/F,gBAAAA,GAEnD,MAAO,CAAErzF,EAAG61F,EAAe1K,UAAW98F,EADtBwnG,EAAe/9C,UAAY,EAAI+9C,EAAe/9C,UAAY,EAAI,MAYlF9oC,EAAOglF,MAAM14E,WAAa,SAAS/P,EAAQ5S,GAEzC,GADAo7F,EAAgBxoF,GACZA,EAAOqd,OACT,IAAK,IAAIh6B,KAAK2c,EAAOqd,OACnB,IAAK,IAAIjzB,KAAK4V,EAAOqd,OAAOh6B,GAC1BmlG,EAAgBxoF,EAAOqd,OAAOh6B,GAAG+G,IAIvCqZ,EAAOhV,OAAOskE,YAAY,QAAS/yD,EAAQ5S,EAAU,SAzfzD,GAggBMkS,EAAQmE,EAAOkF,KAAK3I,OAAOV,MAE/BmE,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOglF,MAAM76F,UAAgD,CAKrF07F,aAAc,WACZ5gG,KAAK4iG,mBACL5iG,KAAK6iG,qBACL7iG,KAAK8iG,8BACL9iG,KAAK+iG,4BACL/iG,KAAKgjG,iBAAmBhjG,KAAKgjG,iBAAiBj6F,KAAK/I,OAGrDs4D,WAAY,WACVt4D,KAAKi2D,WAAaj2D,KAAK0gE,cACvB1gE,KAAK+3D,UAAAA,GAMP6qC,iBAAkB,WAChB,IAAIp7F,EAAQxH,KACZA,KAAKqgB,GAAG,SAAS,WACf,IAAInE,EAAS1U,EAAM0U,OACfA,IACGA,EAAOkjC,oBACVljC,EAAOkjC,mBAAAA,EACP53C,EAAMy7F,oBAAoB/mF,IAE5BA,EAAOojC,gBAAkBpjC,EAAOojC,iBAAmB,GACnDpjC,EAAOojC,gBAAgB5+C,KAAK8G,QAKlCq7F,mBAAoB,WAClB,IAAIr7F,EAAQxH,KACZA,KAAKqgB,GAAG,WAAW,WACjB,IAAInE,EAAS1U,EAAM0U,OACfA,IACFA,EAAOojC,gBAAkBpjC,EAAOojC,iBAAmB,GACnDvkC,EAAOkF,KAAKyD,gBAAgBxH,EAAOojC,gBAAiB93C,GACd,IAAlC0U,EAAOojC,gBAAgBtkD,SACzBkhB,EAAOkjC,mBAAAA,EACP53C,EAAM07F,sBAAsBhnF,SAUpC+mF,oBAAqB,SAAS/mF,GAC5BA,EAAOmjC,qBAAuB,WACxBnjC,EAAOojC,iBACTpjC,EAAOojC,gBAAgB3nC,SAAQ,SAAS3R,GACtCA,EAAI+7F,eAAAA,MAIV7lF,EAAOmE,GAAG,WAAYnE,EAAOmjC,uBAO/B6jD,sBAAuB,SAAShnF,GAC9BA,EAAOuE,IAAI,WAAYvE,EAAOmjC,uBAMhC8jD,MAAO,WACLnjG,KAAKojG,kBAAoBpjG,KAAKqjG,eAAerjG,KAAM,EAAGA,KAAKogG,eAAgB,oBAM7EiD,eAAgB,SAASr9F,EAAKs9F,EAAe9pE,EAAU+pE,GAErD,IAAIC,EA0BJ,OAxBAA,EAAY,CACVC,WAAAA,EACA9pE,MAAO,WACL35B,KAAKyjG,WAAAA,IAITz9F,EAAIqzB,QAAQ,wBAAyBiqE,EAAe,CAClD9pE,SAAUA,EACVlB,WAAY,WACLkrE,EAAUC,WACbz9F,EAAIu9F,MAGR7pE,SAAU,WAEJ1zB,EAAIkW,QAAUlW,EAAIo5F,iBAAmBp5F,EAAIy5F,cAC3Cz5F,EAAIo7F,2BAGRznE,MAAO,WACL,OAAO6pE,EAAUC,aAGdD,GAMTE,gBAAiB,WAEf,IAAIl8F,EAAQxH,KAERA,KAAK2jG,iBACP/zF,aAAa5P,KAAK2jG,iBAEpB3jG,KAAK2jG,gBAAkBtjG,YAAW,WAChCmH,EAAMo8F,0BAA4Bp8F,EAAM67F,eAAe77F,EAAO,EAAGxH,KAAKogG,eAAiB,EAAG,WACzF,MAMLc,kBAAmB,SAAS2C,GAC1B,IAAIr8F,EAAQxH,KACR8jG,EAAQD,EAAU,EAAI7jG,KAAKmgG,YAE/BngG,KAAK+jG,uBACL/jG,KAAKugG,sBAAwB,EAC7BvgG,KAAKgkG,gBAAkB3jG,YAAW,WAChCmH,EAAM27F,UACLW,IAMLC,qBAAsB,WACpB,IAAIjH,EAAc98F,KAAKojG,mBAAqBpjG,KAAK4jG,0BAC7C1nF,EAASlc,KAAKkc,OAClBlc,KAAKojG,mBAAqBpjG,KAAKojG,kBAAkBzpE,QACjD35B,KAAK4jG,2BAA6B5jG,KAAK4jG,0BAA0BjqE,QAEjE/pB,aAAa5P,KAAK2jG,iBAClB/zF,aAAa5P,KAAKgkG,iBAElBhkG,KAAKugG,sBAAwB,EAGzBzD,GAAe5gF,GACjBA,EAAO+iC,aAAa/iC,EAAOmgC,YAAcngC,EAAOigC,mBAUpD8nD,UAAW,WAKT,OAJAjkG,KAAKo/F,eAAiB,EACtBp/F,KAAKy/F,aAAez/F,KAAKo2F,MAAMp7F,OAC/BgF,KAAKghG,wBACLhhG,KAAKihG,kBACEjhG,MAOTkkG,gBAAiB,WACf,OAAOlkG,KAAKo2F,MAAM94F,MAAM0C,KAAKo/F,eAAgBp/F,KAAKy/F,cAAc/5F,KAAK,KAQvEy+F,qBAAsB,SAASC,GAC7B,IAAI1qF,EAAS,EAAGuH,EAAQmjF,EAAY,EAGpC,GAAIpkG,KAAKsgG,SAASp1F,KAAKlL,KAAKo2F,MAAMn1E,IAChC,KAAOjhB,KAAKsgG,SAASp1F,KAAKlL,KAAKo2F,MAAMn1E,KACnCvH,IACAuH,IAGJ,KAAO,KAAK/V,KAAKlL,KAAKo2F,MAAMn1E,KAAWA,GAAS,GAC9CvH,IACAuH,IAGF,OAAOmjF,EAAY1qF,GAQrB2qF,sBAAuB,SAASD,GAC9B,IAAI1qF,EAAS,EAAGuH,EAAQmjF,EAGxB,GAAIpkG,KAAKsgG,SAASp1F,KAAKlL,KAAKo2F,MAAMn1E,IAChC,KAAOjhB,KAAKsgG,SAASp1F,KAAKlL,KAAKo2F,MAAMn1E,KACnCvH,IACAuH,IAGJ,KAAO,KAAK/V,KAAKlL,KAAKo2F,MAAMn1E,KAAWA,EAAQjhB,KAAKo2F,MAAMp7F,QACxD0e,IACAuH,IAGF,OAAOmjF,EAAY1qF,GAQrB4qF,qBAAsB,SAASF,GAG7B,IAFA,IAAI1qF,EAAS,EAAGuH,EAAQmjF,EAAY,GAE5B,KAAKl5F,KAAKlL,KAAKo2F,MAAMn1E,KAAWA,GAAS,GAC/CvH,IACAuH,IAGF,OAAOmjF,EAAY1qF,GAQrB6qF,sBAAuB,SAASH,GAG9B,IAFA,IAAI1qF,EAAS,EAAGuH,EAAQmjF,GAEhB,KAAKl5F,KAAKlL,KAAKo2F,MAAMn1E,KAAWA,EAAQjhB,KAAKo2F,MAAMp7F,QACzD0e,IACAuH,IAGF,OAAOmjF,EAAY1qF,GASrB8qF,mBAAoB,SAASpF,EAAgBqF,GAO3C,IANA,IAAI3wF,EAAO9T,KAAKo2F,MACZn1E,EAAYjhB,KAAKsgG,SAASp1F,KAAK4I,EAAKsrF,IAAmBA,EAAiB,EAAIA,EAC5E9F,EAAYxlF,EAAKmN,GAEjB9C,EAAYpD,EAAOoD,WAEfA,EAAUjT,KAAKouF,IAAUr4E,EAAQ,GAAKA,EAAQnN,EAAK9Y,QAEzDs+F,EAAQxlF,EADRmN,GAASwjF,GAMX,OAHItmF,EAAUjT,KAAKouF,KACjBr4E,GAAuB,IAAdwjF,EAAkB,EAAI,GAE1BxjF,GAOTyjF,WAAY,SAAStF,GAEnB,IAAIuF,EAAoB3kG,KAAKwkG,mBAD7BpF,EAAiBA,GAAkBp/F,KAAKo/F,gBACyB,GAC7DwF,EAAkB5kG,KAAKwkG,mBAAmBpF,EAAgB,GAE9Dp/F,KAAKo/F,eAAiBuF,EACtB3kG,KAAKy/F,aAAemF,EACpB5kG,KAAKghG,wBACLhhG,KAAKihG,kBACLjhG,KAAKohG,2BASPyD,WAAY,SAASzF,GAEnB,IAAIuF,EAAoB3kG,KAAKskG,qBAD7BlF,EAAiBA,GAAkBp/F,KAAKo/F,gBAEpCwF,EAAkB5kG,KAAKukG,sBAAsBnF,GAMjD,OAJAp/F,KAAKo/F,eAAiBuF,EACtB3kG,KAAKy/F,aAAemF,EACpB5kG,KAAKghG,wBACLhhG,KAAKihG,kBACEjhG,MAQT8kG,aAAc,SAASrhG,GACrB,IAAIzD,KAAKi2D,WAAcj2D,KAAKggG,SAsB5B,OAlBIhgG,KAAKkc,SACPlc,KAAKkc,OAAO2/B,aACZ77C,KAAK+kG,oBAAoB/kG,KAAKkc,SAGhClc,KAAKi2D,WAAAA,EAELj2D,KAAKglG,mBAAmBvhG,GACxBzD,KAAK47D,eAAeC,QACpB77D,KAAK47D,eAAen2D,MAAQzF,KAAK8T,KACjC9T,KAAKihG,kBACLjhG,KAAKilG,oBACLjlG,KAAKklG,mBACLllG,KAAKmlG,gBAAkBnlG,KAAK8T,KAE5B9T,KAAKmjG,QACLnjG,KAAKugB,KAAK,mBACVvgB,KAAKghG,wBACAhhG,KAAKkc,QAGVlc,KAAKkc,OAAOqE,KAAK,uBAAwB,CAAE5V,OAAQ3K,OACnDA,KAAKolG,uBACLplG,KAAKkc,OAAO6E,mBACL/gB,MALEA,MAQX+kG,oBAAqB,SAAS7oF,GACxBA,EAAOojC,iBACTpjC,EAAOojC,gBAAgB3nC,SAAQ,SAAS3R,GACtCA,EAAI+xD,UAAAA,EACA/xD,EAAIiwD,WACNjwD,EAAI06D,kBASZ0kC,qBAAsB,WACpBplG,KAAKkc,OAAOmE,GAAG,aAAcrgB,KAAKgjG,mBAMpCA,iBAAkB,SAASttF,GACzB,GAAK1V,KAAK+hG,eAAkB/hG,KAAKi2D,UAAjC,CAIA,IAAI0uC,EAAoB3kG,KAAKqlG,6BAA6B3vF,EAAQjS,GAC9D6hG,EAAetlG,KAAKo/F,eACpBmG,EAAavlG,KAAKy/F,cAEnBkF,IAAsB3kG,KAAKwlG,6BAA+BF,IAAiBC,GAE3ED,IAAiBX,GAAqBY,IAAeZ,KAIpDA,EAAoB3kG,KAAKwlG,6BAC3BxlG,KAAKo/F,eAAiBp/F,KAAKwlG,4BAC3BxlG,KAAKy/F,aAAekF,IAGpB3kG,KAAKo/F,eAAiBuF,EACtB3kG,KAAKy/F,aAAez/F,KAAKwlG,6BAEvBxlG,KAAKo/F,iBAAmBkG,GAAgBtlG,KAAKy/F,eAAiB8F,IAChEvlG,KAAKylG,wBACLzlG,KAAKghG,wBACLhhG,KAAKihG,kBACLjhG,KAAKohG,8BAOT8D,iBAAkB,WAChBllG,KAAKssD,YAAc,OAEftsD,KAAKkc,SACPlc,KAAKkc,OAAOswC,cAAgBxsD,KAAKkc,OAAOqwC,WAAa,QAGvDvsD,KAAKqjE,YAAcrjE,KAAKigG,mBACxBjgG,KAAK+jE,YAAc/jE,KAAKkwD,YAAAA,EACxBlwD,KAAKikE,cAAgBjkE,KAAKkkE,eAAAA,GAM5BwhC,8BAA+B,SAASp2F,EAAOyrB,EAAKjnB,GAClD,IAAI6xF,EAAmB7xF,EAAKxW,MAAM,EAAGgS,GACjCs2F,EAAgB7qF,EAAOkF,KAAKtjB,OAAOw1B,cAAcwzE,GAAkB3qG,OACvE,GAAIsU,IAAUyrB,EACZ,MAAO,CAAEqkE,eAAgBwG,EAAenG,aAAcmG,GAExD,IAAIC,EAAiB/xF,EAAKxW,MAAMgS,EAAOyrB,GAEvC,MAAO,CAAEqkE,eAAgBwG,EAAenG,aAAcmG,EADpC7qF,EAAOkF,KAAKtjB,OAAOw1B,cAAc0zE,GAAgB7qG,SAOrE8qG,8BAA+B,SAASx2F,EAAOyrB,EAAKq7D,GAClD,IACIwP,EADmBxP,EAAM94F,MAAM,EAAGgS,GACD5J,KAAK,IAAI1K,OAC9C,OAAIsU,IAAUyrB,EACL,CAAEqkE,eAAgBwG,EAAenG,aAAcmG,GAIjD,CAAExG,eAAgBwG,EAAenG,aAAcmG,EAFjCxP,EAAM94F,MAAMgS,EAAOyrB,GACPr1B,KAAK,IAAI1K,SAO5CimG,gBAAiB,WAEf,GADAjhG,KAAKmhG,kBAAoB,GACpBnhG,KAAK47D,eAAV,CAGA,IAAK57D,KAAK2gG,kBAAmB,CAC3B,IAAIoF,EAAe/lG,KAAK8lG,8BAA8B9lG,KAAKo/F,eAAgBp/F,KAAKy/F,aAAcz/F,KAAKo2F,OACnGp2F,KAAK47D,eAAewjC,eAAiB2G,EAAa3G,eAClDp/F,KAAK47D,eAAe6jC,aAAesG,EAAatG,aAElDz/F,KAAKgmG,2BAMPC,mBAAoB,WAClB,GAAKjmG,KAAK47D,eAAV,CAGA57D,KAAKmhG,kBAAoB,GACzBnhG,KAAK8T,KAAO9T,KAAK47D,eAAen2D,MAC5BzF,KAAK68F,+BACP78F,KAAK01F,iBACL11F,KAAKu+C,aAEP,IAAIwnD,EAAe/lG,KAAK0lG,8BACtB1lG,KAAK47D,eAAewjC,eAAgBp/F,KAAK47D,eAAe6jC,aAAcz/F,KAAK47D,eAAen2D,OAC5FzF,KAAKy/F,aAAez/F,KAAKo/F,eAAiB2G,EAAatG,aAClDz/F,KAAK2gG,oBACR3gG,KAAKo/F,eAAiB2G,EAAa3G,gBAErCp/F,KAAKgmG,2BAMPA,uBAAwB,WACtB,GAAIhmG,KAAKo/F,iBAAmBp/F,KAAKy/F,aAAc,CAC7C,IAAIjzF,EAAQxM,KAAKkmG,wBACjBlmG,KAAK47D,eAAepvD,MAAM0Y,KAAO1Y,EAAM0Y,KACvCllB,KAAK47D,eAAepvD,MAAM2Y,IAAM3Y,EAAM2Y,MAQ1C+gF,sBAAuB,WACrB,IAAKlmG,KAAKkc,OACR,MAAO,CAAE1iB,EAAG,EAAGC,EAAG,GAEpB,IAAI0sG,EAAkBnmG,KAAK2gG,kBAAoB3gG,KAAKomG,iBAAmBpmG,KAAKo/F,eACxEmC,EAAavhG,KAAKwhG,qBAAqB2E,GACvCtE,EAAiB7hG,KAAKw8F,oBAAoB2J,GAG1CrE,EAAa9hG,KAAKg5F,qBAFN6I,EAAe3K,UACf2K,EAAeh+C,UACkC,YAAc7jD,KAAKqjC,WAChFm1D,EAAa+I,EAAW/I,WACxBhrF,EAAIxN,KAAKunC,sBACT7gC,EAAI,CACFlN,EAAG+nG,EAAWr8E,KAAOszE,EACrB/+F,EAAG8nG,EAAWp8E,IAAMo8E,EAAW7I,UAAYoJ,GAE7ChrC,EAAgB92D,KAAKkc,OAAO6/B,mBAC5BsqD,EAAcrmG,KAAKkc,OAAOkgC,cAC1BkqD,EAAmBD,EAAY3pF,MAAQo6C,EACvCyvC,EAAoBF,EAAY9pF,OAASu6C,EACzCghC,EAAWwO,EAAmBxE,EAC9B7G,EAAYsL,EAAoBzE,EAChC93E,EAASq8E,EAAYG,YAAcF,EACnCr8E,EAASo8E,EAAYI,aAAeF,EAuBxC,OArBA7/F,EAAIqU,EAAOkF,KAAKwE,eAAe/d,EAAG8G,IAClC9G,EAAIqU,EAAOkF,KAAKwE,eAAe/d,EAAG1G,KAAKkc,OAAO0+B,oBAC5CphD,GAAKwwB,EACPtjB,EAAEjN,GAAKwwB,EACHvjB,EAAElN,EAAI,IACRkN,EAAElN,EAAI,GAEJkN,EAAElN,EAAIs+F,IACRpxF,EAAElN,EAAIs+F,GAEJpxF,EAAEjN,EAAI,IACRiN,EAAEjN,EAAI,GAEJiN,EAAEjN,EAAIwhG,IACRv0F,EAAEjN,EAAIwhG,GAIRv0F,EAAElN,GAAKwG,KAAKkc,OAAOogC,QAAQp3B,KAC3Bxe,EAAEjN,GAAKuG,KAAKkc,OAAOogC,QAAQn3B,IAEpB,CAAED,KAAMxe,EAAElN,EAAI,KAAM2rB,IAAKze,EAAEjN,EAAI,KAAMisB,SAAUo8E,EAAa,KAAMA,WAAYA,IAMvFmD,kBAAmB,WACjBjlG,KAAK0mG,YAAc,CACjB3iC,YAAa/jE,KAAK+jE,YAClBV,YAAarjE,KAAKqjE,YAClBY,cAAejkE,KAAKikE,cACpBC,cAAelkE,KAAKkkE,cACpB5X,YAAatsD,KAAKssD,YAClB4D,WAAYlwD,KAAKkwD,WACjB1D,cAAexsD,KAAKkc,QAAUlc,KAAKkc,OAAOswC,cAC1CD,WAAYvsD,KAAKkc,QAAUlc,KAAKkc,OAAOqwC,aAO3Co6C,qBAAsB,WACf3mG,KAAK0mG,cAIV1mG,KAAKssD,YAActsD,KAAK0mG,YAAYp6C,YACpCtsD,KAAK+jE,YAAc/jE,KAAK0mG,YAAY3iC,YACpC/jE,KAAKqjE,YAAcrjE,KAAK0mG,YAAYrjC,YACpCrjE,KAAKkwD,WAAalwD,KAAK0mG,YAAYx2C,WACnClwD,KAAKikE,cAAgBjkE,KAAK0mG,YAAYziC,cACtCjkE,KAAKkkE,cAAgBlkE,KAAK0mG,YAAYxiC,cAElClkE,KAAKkc,SACPlc,KAAKkc,OAAOswC,cAAgBxsD,KAAK0mG,YAAYl6C,cAC7CxsD,KAAKkc,OAAOqwC,WAAavsD,KAAK0mG,YAAYn6C,cAS9CmU,YAAa,WACX,IAAIkmC,EAAiB5mG,KAAKmlG,kBAAoBnlG,KAAK8T,KAC/C8nD,EAAiB57D,KAAK47D,eAyB1B,OAxBA57D,KAAK+3D,UAAAA,EACL/3D,KAAKi2D,WAAAA,EAELj2D,KAAKy/F,aAAez/F,KAAKo/F,eAErBxjC,IACFA,EAAeziB,MAAQyiB,EAAeziB,OACtCyiB,EAAezuD,YAAcyuD,EAAezuD,WAAWC,YAAYwuD,IAErE57D,KAAK47D,eAAiB,KACtB57D,KAAK+jG,uBACL/jG,KAAK2mG,uBACL3mG,KAAKugG,sBAAwB,EACzBvgG,KAAK68F,+BACP78F,KAAK01F,iBACL11F,KAAKu+C,aAEPv+C,KAAKugB,KAAK,kBACVqmF,GAAiB5mG,KAAKugB,KAAK,YACvBvgB,KAAKkc,SACPlc,KAAKkc,OAAOuE,IAAI,aAAczgB,KAAKgjG,kBACnChjG,KAAKkc,OAAOqE,KAAK,sBAAuB,CAAE5V,OAAQ3K,OAClD4mG,GAAiB5mG,KAAKkc,OAAOqE,KAAK,kBAAmB,CAAE5V,OAAQ3K,QAE1DA,MAMT6mG,wBAAyB,WACvB,IAAK,IAAIzmF,KAAQpgB,KAAK20B,OACf30B,KAAKg2F,WAAW51E,WACZpgB,KAAK20B,OAAOvU,IAUzB0mF,kBAAmB,SAASx3F,EAAOyrB,GACjC,IAMIpgC,EAAGosG,EANHC,EAAchnG,KAAKw8F,oBAAoBltF,GAAAA,GACvC23F,EAAYjnG,KAAKw8F,oBAAoBzhE,GAAAA,GACrCmsE,EAAYF,EAAY9P,UACxBiQ,EAAYH,EAAYnjD,UACxBujD,EAAUH,EAAU/P,UACpBmQ,EAAUJ,EAAUpjD,UAExB,GAAIqjD,IAAcE,EAAS,CAEzB,GAAIpnG,KAAK20B,OAAOuyE,GACd,IAAKvsG,EAAIwsG,EAAWxsG,EAAIqF,KAAKk2F,oBAAoBgR,GAAWlsG,OAAQL,WAC3DqF,KAAK20B,OAAOuyE,GAAWvsG,GAIlC,GAAIqF,KAAK20B,OAAOyyE,GACd,IAAKzsG,EAAI0sG,EAAS1sG,EAAIqF,KAAKk2F,oBAAoBkR,GAASpsG,OAAQL,KAC9DosG,EAAW/mG,KAAK20B,OAAOyyE,GAASzsG,MAE9BqF,KAAK20B,OAAOuyE,KAAelnG,KAAK20B,OAAOuyE,GAAa,IACpDlnG,KAAK20B,OAAOuyE,GAAWC,EAAYxsG,EAAI0sG,GAAWN,GAKxD,IAAKpsG,EAAIusG,EAAY,EAAGvsG,GAAKysG,EAASzsG,WAC7BqF,KAAK20B,OAAOh6B,GAGrBqF,KAAKsnG,gBAAgBF,EAASF,EAAYE,QAI1C,GAAIpnG,KAAK20B,OAAOuyE,GAAY,CAC1BH,EAAW/mG,KAAK20B,OAAOuyE,GACvB,IAAgCK,EAAajO,EAAzCvN,EAAOsb,EAAUF,EACrB,IAAKxsG,EAAIwsG,EAAWxsG,EAAI0sG,EAAS1sG,WACxBosG,EAASpsG,GAElB,IAAK2+F,KAASt5F,KAAK20B,OAAOuyE,IACxBK,EAAcl5F,SAASirF,EAAO,MACX+N,IACjBN,EAASQ,EAAcxb,GAAQgb,EAASzN,UACjCyN,EAASzN,MAY1BgO,gBAAiB,SAASpQ,EAAWx9E,GAGnC,IAAI8tF,EAAe5wF,EAAM5W,KAAK20B,QAC9B,IAAK,IAAIj1B,KAAQM,KAAK20B,OAAQ,CAC5B,IAAI8yE,EAAcp5F,SAAS3O,EAAM,IAC7B+nG,EAAcvQ,IAChBl3F,KAAK20B,OAAO8yE,EAAc/tF,GAAU8tF,EAAaC,GAC5CD,EAAaC,EAAc/tF,WACvB1Z,KAAK20B,OAAO8yE,MAM3BhC,sBAAuB,WAChBzlG,KAAKojG,oBAAqBpjG,KAAKojG,kBAAkBK,WAChDzjG,KAAK4jG,4BAA6B5jG,KAAK4jG,0BAA0BH,WAErEzjG,KAAKkhG,qBAWTwG,yBAA0B,SAASxQ,EAAWrzC,EAAW8jD,EAAKC,GAC5D,IAAIC,EACAC,EAAgB,GAChBC,GAAAA,EAUJ,IAAK,IAAI9mF,KART0mF,IAAQA,EAAM,GACd3nG,KAAKsnG,gBAAgBpQ,EAAWyQ,GAC5B3nG,KAAK20B,OAAOuiE,KACd2Q,EAAmB7nG,KAAK20B,OAAOuiE,GAAyB,IAAdrzC,EAAkBA,EAAYA,EAAY,IAKpE7jD,KAAK20B,OAAOuiE,GAAY,CACxC,IAAI8Q,EAAW35F,SAAS4S,EAAO,IAC3B+mF,GAAYnkD,IACdkkD,GAAAA,EACAD,EAAcE,EAAWnkD,GAAa7jD,KAAK20B,OAAOuiE,GAAWj2E,UAEtDjhB,KAAK20B,OAAOuiE,GAAWj2E,IAWlC,IARI8mF,EACF/nG,KAAK20B,OAAOuiE,EAAYyQ,GAAOG,SAGxB9nG,KAAK20B,OAAOuiE,EAAYyQ,GAI1BA,EAAM,GACXA,IACIC,GAAeA,EAAYD,GAC7B3nG,KAAK20B,OAAOuiE,EAAYyQ,GAAO,CAAEl2C,EAAG76C,EAAMgxF,EAAYD,KAE/CE,EACP7nG,KAAK20B,OAAOuiE,EAAYyQ,GAAO,CAAEl2C,EAAG76C,EAAMixF,WAGnC7nG,KAAK20B,OAAOuiE,EAAYyQ,GAGnC3nG,KAAK+8F,kBAAAA,GAUPkL,sBAAuB,SAAS/Q,EAAWrzC,EAAWqkD,EAAUN,GACzD5nG,KAAK20B,SACR30B,KAAK20B,OAAS,IAEhB,IAAIwzE,EAA0BnoG,KAAK20B,OAAOuiE,GACtCkR,EAA0BD,EAAoBvxF,EAAMuxF,GAAqB,GAK7E,IAAK,IAAIlnF,KAHTinF,IAAaA,EAAW,GAGNE,EAAyB,CACzC,IAAIC,EAAeh6F,SAAS4S,EAAO,IAC/BonF,GAAgBxkD,IAClBskD,EAAkBE,EAAeH,GAAYE,EAAwBC,GAEhED,EAAwBC,EAAeH,WACnCC,EAAkBE,IAK/B,GADAroG,KAAK+8F,kBAAAA,EACD6K,EACF,KAAOM,KACAniG,OAAOP,KAAKoiG,EAAYM,IAAWltG,SAGnCgF,KAAK20B,OAAOuiE,KACfl3F,KAAK20B,OAAOuiE,GAAa,IAE3Bl3F,KAAK20B,OAAOuiE,GAAWrzC,EAAYqkD,GAAYtxF,EAAMgxF,EAAYM,UAIrE,GAAKC,EAIL,IADA,IAAIG,EAAWH,EAAkBtkD,EAAYA,EAAY,EAAI,GACtDykD,GAAYJ,KACjBloG,KAAK20B,OAAOuiE,GAAWrzC,EAAYqkD,GAAYtxF,EAAM0xF,IAUzDC,oBAAqB,SAASC,EAAcl5F,EAAOs4F,GAGjD,IAFA,IAAIa,EAAYzoG,KAAKw8F,oBAAoBltF,GAAAA,GACrCo5F,EAAa,CAAC,GAAIC,EAAc,EAC3BhuG,EAAI,EAAGA,EAAI6tG,EAAaxtG,OAAQL,IACf,OAApB6tG,EAAa7tG,GAEf+tG,IADAC,GAC0B,EAG1BD,EAAWC,KASf,IANID,EAAW,GAAK,IAClB1oG,KAAKioG,sBAAsBQ,EAAUvR,UAAWuR,EAAU5kD,UAAW6kD,EAAW,GAAId,GACpFA,EAAcA,GAAeA,EAAYtqG,MAAMorG,EAAW,GAAK,IAEjEC,GAAe3oG,KAAK0nG,yBAClBe,EAAUvR,UAAWuR,EAAU5kD,UAAY6kD,EAAW,GAAIC,GACnDhuG,EAAI,EAAGA,EAAIguG,EAAahuG,IAC3B+tG,EAAW/tG,GAAK,EAClBqF,KAAKioG,sBAAsBQ,EAAUvR,UAAYv8F,EAAG,EAAG+tG,EAAW/tG,GAAIitG,GAE/DA,IACP5nG,KAAK20B,OAAO8zE,EAAUvR,UAAYv8F,GAAG,GAAKitG,EAAY,IAExDA,EAAcA,GAAeA,EAAYtqG,MAAMorG,EAAW/tG,GAAK,GAG7D+tG,EAAW/tG,GAAK,GAClBqF,KAAKioG,sBAAsBQ,EAAUvR,UAAYv8F,EAAG,EAAG+tG,EAAW/tG,GAAIitG,IAQ1EgB,8BAA+B,SAASt5F,EAAOyrB,EAAKgrE,GAC9CA,GAAgBz2F,GACdyrB,IAAQzrB,EACVtP,KAAKwgG,oBAAsB,OAES,UAA7BxgG,KAAKwgG,sBACZxgG,KAAKwgG,oBAAsB,OAC3BxgG,KAAKy/F,aAAenwF,GAEtBtP,KAAKo/F,eAAiB2G,GAEfA,EAAez2F,GAASy2F,EAAehrE,EACb,UAA7B/6B,KAAKwgG,oBACPxgG,KAAKy/F,aAAesG,EAGpB/lG,KAAKo/F,eAAiB2G,GAKpBhrE,IAAQzrB,EACVtP,KAAKwgG,oBAAsB,QAES,SAA7BxgG,KAAKwgG,sBACZxgG,KAAKwgG,oBAAsB,QAC3BxgG,KAAKo/F,eAAiBrkE,GAExB/6B,KAAKy/F,aAAesG,IAIxB8C,yBAA0B,WACxB,IAAI7tG,EAASgF,KAAK8T,KAAK9Y,OACnBgF,KAAKo/F,eAAiBpkG,EACxBgF,KAAKo/F,eAAiBpkG,EAEfgF,KAAKo/F,eAAiB,IAC7Bp/F,KAAKo/F,eAAiB,GAEpBp/F,KAAKy/F,aAAezkG,EACtBgF,KAAKy/F,aAAezkG,EAEbgF,KAAKy/F,aAAe,IAC3Bz/F,KAAKy/F,aAAe,MAO5B1kF,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOglF,MAAM76F,UAAgD,CAIrF69F,0BAA2B,WAGzB/iG,KAAK8oG,iBAAmB,IAAI58F,KAG5BlM,KAAK+oG,qBAAuB,IAAI78F,KAEhClM,KAAKgpG,cAAgB,GAErBhpG,KAAKqgB,GAAG,YAAargB,KAAKknD,cAO5BA,YAAa,SAASxxC,GACpB,GAAK1V,KAAKkc,OAAV,CAGAlc,KAAKipG,gBAAkB,IAAI/8F,KAC3B,IAAIg9F,EAAaxzF,EAAQyxC,QACrBnnD,KAAKmpG,cAAcD,KACrBlpG,KAAKugB,KAAK,cAAe7K,GACzB1V,KAAKopG,WAAW1zF,EAAQjS,IAE1BzD,KAAK+oG,oBAAsB/oG,KAAK8oG,gBAChC9oG,KAAK8oG,gBAAkB9oG,KAAKipG,eAC5BjpG,KAAKgpG,cAAgBE,EACrBlpG,KAAKqpG,gBAAkBrpG,KAAKi2D,UAC5Bj2D,KAAKspG,eAAiBtpG,KAAK+3D,WAG7BoxC,cAAe,SAASD,GACtB,OAAOlpG,KAAKipG,eAAiBjpG,KAAK8oG,gBAAkB,KAChD9oG,KAAK8oG,gBAAkB9oG,KAAK+oG,oBAAsB,KAClD/oG,KAAKgpG,cAAcxvG,IAAM0vG,EAAW1vG,GACpCwG,KAAKgpG,cAAcvvG,IAAMyvG,EAAWzvG,GAM1C2vG,WAAY,SAAS3lG,GACnBA,EAAEy4D,gBAAkBz4D,EAAEy4D,iBACtBz4D,EAAE24D,iBAAmB34D,EAAE24D,mBAMzB0mC,4BAA6B,WAC3B9iG,KAAKupG,uBACLvpG,KAAKwpG,qBACLxpG,KAAKypG,cAMPC,mBAAoB,SAASh0F,GACtB1V,KAAKi2D,WAGVj2D,KAAK0kG,WAAW1kG,KAAKqlG,6BAA6B3vF,EAAQjS,KAM5DkmG,mBAAoB,SAASj0F,GACtB1V,KAAKi2D,WAGVj2D,KAAK6kG,WAAW7kG,KAAKqlG,6BAA6B3vF,EAAQjS,KAM5DgmG,WAAY,WACVzpG,KAAKqgB,GAAG,gBAAiBrgB,KAAK0pG,oBAC9B1pG,KAAKqgB,GAAG,cAAergB,KAAK2pG,qBAS9BC,kBAAmB,SAASl0F,IACrB1V,KAAKkc,SAAWlc,KAAKggG,UAAatqF,EAAQjS,EAAE61D,QAA+B,IAArB5jD,EAAQjS,EAAE61D,SAIrEt5D,KAAK+hG,eAAAA,EAED/hG,KAAK+3D,UACP/3D,KAAK6pG,iBAAiBn0F,EAAQjS,GAG5BzD,KAAKi2D,YACPj2D,KAAKwlG,4BAA8BxlG,KAAKo/F,eACpCp/F,KAAKo/F,iBAAmBp/F,KAAKy/F,cAC/Bz/F,KAAK+jG,uBAEP/jG,KAAKohG,6BAST0I,wBAAyB,SAASp0F,IAC3B1V,KAAKkc,SAAWlc,KAAKggG,UAAatqF,EAAQjS,EAAE61D,QAA+B,IAArB5jD,EAAQjS,EAAE61D,SAKrEt5D,KAAK+3D,SAAW/3D,OAASA,KAAKkc,OAAOmiC,gBAMvCkrD,qBAAsB,WACpBvpG,KAAKqgB,GAAG,YAAargB,KAAK4pG,mBAC1B5pG,KAAKqgB,GAAG,mBAAoBrgB,KAAK8pG,0BAMnCN,mBAAoB,WAClBxpG,KAAKqgB,GAAG,UAAWrgB,KAAK+pG,iBAO1BA,eAAgB,SAASr0F,GAEvB,GADA1V,KAAK+hG,eAAAA,KACA/hG,KAAKggG,UAAYhgG,KAAKs+C,OACxB5oC,EAAQmP,WAAanP,EAAQmP,UAAU04C,iBACvC7nD,EAAQjS,EAAE61D,QAA+B,IAArB5jD,EAAQjS,EAAE61D,QAFjC,CAMA,GAAIt5D,KAAKkc,OAAQ,CACf,IAAI8tF,EAAgBhqG,KAAKkc,OAAOmiC,cAChC,GAAI2rD,GAAiBA,IAAkBhqG,KAIrC,OAIAA,KAAKspG,iBAAmBtpG,KAAK29D,UAC/B39D,KAAK+3D,UAAAA,EACL/3D,KAAKspG,gBAAAA,EACLtpG,KAAK8kG,aAAapvF,EAAQjS,GACtBzD,KAAKo/F,iBAAmBp/F,KAAKy/F,aAC/Bz/F,KAAKkhG,mBAAAA,GAGLlhG,KAAKohG,2BAIPphG,KAAK+3D,UAAAA,IAQT8xC,iBAAkB,SAASpmG,GACzB,IAAIsiG,EAAe/lG,KAAKqlG,6BAA6B5hG,GAEjDA,EAAEqtD,SACJ9wD,KAAK4oG,8BAFK5oG,KAAKo/F,eAAsBp/F,KAAKy/F,aAEKsG,IAG/C/lG,KAAKo/F,eAAiB2G,EACtB/lG,KAAKy/F,aAAesG,GAElB/lG,KAAKi2D,YACPj2D,KAAKghG,wBACLhhG,KAAKihG,oBASToE,6BAA8B,SAAS5hG,GAUrC,IATA,IAAIwmG,EAAcjqG,KAAK4rE,gBAAgBnoE,GACnCymG,EAAY,EACZxtF,EAAQ,EACRH,EAAS,EACTsnC,EAAY,EACZqzC,EAAY,EAIPv8F,EAAI,EAAGD,EAAMsF,KAAKg2F,WAAWh7F,OAAQL,EAAID,GAC5C6hB,GAAU0tF,EAAYxwG,EAD2BkB,IAEnD4hB,GAAUvc,KAAK84F,gBAAgBn+F,GAAKqF,KAAKiqB,OACzCitE,EAAYv8F,EACRA,EAAI,IACNkpD,GAAa7jD,KAAKg2F,WAAWr7F,EAAI,GAAGK,OAASgF,KAAKm3F,qBAAqBx8F,EAAI,IAQjF+hB,EADiB1c,KAAK+4F,mBAAmB7B,GAChBl3F,KAAKgqB,OAE9B,IAAK,IAAItoB,EAAI,EAAG8uB,EADTxwB,KAAKg2F,WAAWkB,GACKl8F,OAAQ0G,EAAI8uB,IACtC05E,EAAYxtF,GAEZA,GAAS1c,KAAKs1F,aAAa4B,GAAWx1F,GAAGu1F,YAAcj3F,KAAKgqB,SAC/CigF,EAAYzwG,GAJmBkI,IAK1CmiD,IAMJ,OAAO7jD,KAAKmqG,gCAAgCF,EAAaC,EAAWxtF,EAAOmnC,EAAWrzB,IAMxF25E,gCAAiC,SAASF,EAAaC,EAAWxtF,EAAOuE,EAAOuP,GAE9E,IACI45E,EAA+B1tF,EAAQutF,EAAYzwG,EAGnDmrG,EAAoB1jF,GAFXmpF,EAFsBH,EAAYzwG,EAAI0wG,GAG7CE,EAA+B,EAAI,EAAI,GAW7C,OARIpqG,KAAK0qB,QACPi6E,EAAoBn0E,EAAOm0E,GAGzBA,EAAoB3kG,KAAKo2F,MAAMp7F,SACjC2pG,EAAoB3kG,KAAKo2F,MAAMp7F,QAG1B2pG,KAKX5pF,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAOglF,MAAM76F,UAAgD,CAKrF8/F,mBAAoB,WAClBhlG,KAAK47D,eAAiB7gD,EAAOtd,SAAS+M,cAAc,YACpDxK,KAAK47D,eAAelvD,aAAa,iBAAkB,OACnD1M,KAAK47D,eAAelvD,aAAa,cAAe,OAChD1M,KAAK47D,eAAelvD,aAAa,eAAgB,OACjD1M,KAAK47D,eAAelvD,aAAa,aAAc,SAC/C1M,KAAK47D,eAAelvD,aAAa,6BAA8B,IAC/D1M,KAAK47D,eAAelvD,aAAa,OAAQ,OACzC,IAAIF,EAAQxM,KAAKkmG,wBAGjBlmG,KAAK47D,eAAepvD,MAAMC,QAAU,4BAA8BD,EAAM2Y,IACxE,WAAa3Y,EAAM0Y,KAAO,2FACP1Y,EAAMkZ,SAAW,IACpC3K,EAAOtd,SAAS6N,KAAKqB,YAAY3M,KAAK47D,gBAEtC7gD,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,UAAW57D,KAAKqqG,UAAUthG,KAAK/I,OAC5E+a,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,QAAS57D,KAAKsqG,QAAQvhG,KAAK/I,OACxE+a,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,QAAS57D,KAAKuqG,QAAQxhG,KAAK/I,OACxE+a,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,OAAQ57D,KAAKwqG,KAAKzhG,KAAK/I,OACpE+a,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,MAAO57D,KAAKwqG,KAAKzhG,KAAK/I,OACnE+a,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,QAAS57D,KAAKyqG,MAAM1hG,KAAK/I,OACtE+a,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,mBAAoB57D,KAAK0qG,mBAAmB3hG,KAAK/I,OAC9F+a,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,oBAAqB57D,KAAK2qG,oBAAoB5hG,KAAK/I,OAChG+a,EAAOkF,KAAKuT,YAAYxzB,KAAK47D,eAAgB,iBAAkB57D,KAAK4qG,iBAAiB7hG,KAAK/I,QAErFA,KAAK6qG,0BAA4B7qG,KAAKkc,SACzCnB,EAAOkF,KAAKuT,YAAYxzB,KAAKkc,OAAOkgC,cAAe,QAASp8C,KAAK8qG,QAAQ/hG,KAAK/I,OAC9EA,KAAK6qG,0BAAAA,IAeTE,QAAS,CACPC,EAAI,cACJC,GAAI,cACJC,GAAI,eACJC,GAAI,iBACJC,GAAI,kBACJC,GAAI,iBACJC,GAAI,iBACJC,GAAI,eACJC,GAAI,kBACJC,GAAI,kBAMNC,cAAe,CACbC,GAAI,OACJC,GAAI,OAMNC,gBAAiB,CACfC,GAAI,aAGNhB,QAAS,WAEP9qG,KAAK47D,gBAAkB57D,KAAK47D,eAAeC,SAO7CwuC,UAAW,SAAS5mG,GAClB,GAAKzD,KAAKi2D,YAAaj2D,KAAK2gG,kBAA5B,CAGA,GAAIl9F,EAAEsoG,WAAW/rG,KAAK+qG,QACpB/qG,KAAKA,KAAK+qG,QAAQtnG,EAAEsoG,UAAUtoG,OAE3B,CAAA,KAAKA,EAAEsoG,WAAW/rG,KAAK6rG,mBAAqBpoG,EAAEuoG,UAAWvoG,EAAEwoG,QAI9D,OAHAjsG,KAAKA,KAAK6rG,gBAAgBpoG,EAAEsoG,UAAUtoG,GAKxCA,EAAEyoG,2BACFzoG,EAAEy4D,iBACEz4D,EAAEsoG,SAAW,IAAMtoG,EAAEsoG,SAAW,IAElC/rG,KAAK84D,kBACL94D,KAAKohG,2BAGLphG,KAAKkc,QAAUlc,KAAKkc,OAAO6E,qBAU/BupF,QAAS,SAAS7mG,IACXzD,KAAKi2D,WAAaj2D,KAAKmsG,WAAansG,KAAK2gG,kBAC5C3gG,KAAKmsG,WAAAA,EAGF1oG,EAAEsoG,WAAW/rG,KAAK0rG,gBAAmBjoG,EAAEuoG,SAAWvoG,EAAEwoG,WACvDjsG,KAAKA,KAAK0rG,cAAcjoG,EAAEsoG,UAAUtoG,GAKtCA,EAAEyoG,2BACFzoG,EAAEy4D,iBACFl8D,KAAKkc,QAAUlc,KAAKkc,OAAO6E,qBAO7BwpF,QAAS,SAAS9mG,GAChB,IAAI2oG,EAAYpsG,KAAKosG,UAGrB,GAFApsG,KAAKosG,WAAAA,EACL3oG,GAAKA,EAAE24D,kBACFp8D,KAAKi2D,UAAV,CAIA,IAGIo2C,EAAa7D,EAHb8D,EAAWtsG,KAAK81F,oBAAoB91F,KAAK47D,eAAen2D,OAAO4wF,aAC/DkW,EAAYvsG,KAAKo2F,MAAMp7F,OACvBwxG,EAAgBF,EAAStxG,OAEzByxG,EAAWD,EAAgBD,EAC/B,GAAkC,KAA9BvsG,KAAK47D,eAAen2D,MAQtB,OAPAzF,KAAK20B,OAAS,GACd30B,KAAKimG,qBACLjmG,KAAKugB,KAAK,gBACNvgB,KAAKkc,SACPlc,KAAKkc,OAAOqE,KAAK,eAAgB,CAAE5V,OAAQ3K,OAC3CA,KAAKkc,OAAO6E,qBAKhB,IAAI2rF,EAAoB1sG,KAAK0lG,8BAC3B1lG,KAAK47D,eAAewjC,eACpBp/F,KAAK47D,eAAe6jC,aACpBz/F,KAAK47D,eAAen2D,OAElBknG,EAAa3sG,KAAKo/F,eAAiBsN,EAAkBtN,eAErDp/F,KAAKo/F,iBAAmBp/F,KAAKy/F,cAC/B4M,EAAcrsG,KAAKo2F,MAAM94F,MAAM0C,KAAKo/F,eAAgBp/F,KAAKy/F,cACzDgN,GAAYzsG,KAAKy/F,aAAez/F,KAAKo/F,gBAE9BoN,EAAgBD,IAErBF,EADEM,EACY3sG,KAAKo2F,MAAM94F,MAAM0C,KAAKy/F,aAAegN,EAAUzsG,KAAKy/F,cAGpDz/F,KAAKo2F,MAAM94F,MAAM0C,KAAKo/F,eAAgBp/F,KAAKo/F,eAAiBqN,IAG9EjE,EAAe8D,EAAShvG,MAAMovG,EAAkBjN,aAAegN,EAAUC,EAAkBjN,cACvF4M,GAAeA,EAAYrxG,SACzBgF,KAAKo/F,iBAAmBp/F,KAAKy/F,aAC/Bz/F,KAAK8mG,kBAAkB9mG,KAAKo/F,eAAgBp/F,KAAKy/F,cAE1CkN,EAEP3sG,KAAK8mG,kBAAkB9mG,KAAKy/F,aAAe4M,EAAYrxG,OAAQgF,KAAKy/F,cAGpEz/F,KAAK8mG,kBAAkB9mG,KAAKy/F,aAAcz/F,KAAKy/F,aAAe4M,EAAYrxG,SAG1EwtG,EAAaxtG,SACXoxG,GAAa5D,EAAa9iG,KAAK,MAAQqV,EAAO6xF,aAAe7xF,EAAO6D,sBACtE5e,KAAKuoG,oBAAoBC,EAAcxoG,KAAKo/F,eAAgBrkF,EAAO8xF,iBAGnE7sG,KAAKuoG,oBAAoBC,EAAcxoG,KAAKo/F,iBAGhDp/F,KAAKimG,qBACLjmG,KAAKugB,KAAK,WACNvgB,KAAKkc,SACPlc,KAAKkc,OAAOqE,KAAK,eAAgB,CAAE5V,OAAQ3K,OAC3CA,KAAKkc,OAAO6E,sBAMhB2pF,mBAAoB,WAClB1qG,KAAK2gG,mBAAAA,GAMPiK,iBAAkB,WAChB5qG,KAAK2gG,mBAAAA,GAMPgK,oBAAqB,SAASlnG,GAC5BzD,KAAKomG,iBAAmB3iG,EAAEkH,OAAOy0F,eACjCp/F,KAAK8sG,eAAiBrpG,EAAEkH,OAAO80F,aAC/Bz/F,KAAKgmG,0BAOPwE,KAAM,WACAxqG,KAAKo/F,iBAAmBp/F,KAAKy/F,eAKjC1kF,EAAO6xF,WAAa5sG,KAAKkkG,kBAKvBnpF,EAAO8xF,gBAJJ9xF,EAAO6D,sBAIe,KAHA5e,KAAKs/F,mBAAmBt/F,KAAKo/F,eAAgBp/F,KAAKy/F,cAAAA,GAK7Ez/F,KAAKmsG,WAAAA,IAOP1B,MAAO,WACLzqG,KAAKosG,WAAAA,GAQPW,kBAAmB,SAAStpG,GAC1B,OAAQA,GAAKA,EAAEupG,eAAkBjyF,EAAO7d,OAAO8vG,eAUjDC,sBAAuB,SAAS/V,EAAWrzC,GACzC,IAA4D1yB,EAAxD+7E,EAAoBltG,KAAK+4F,mBAAmB7B,GAMhD,OAJIrzC,EAAY,IAEdqpD,IADA/7E,EAAQnxB,KAAKs1F,aAAa4B,GAAWrzC,EAAY,IACtB3+B,KAAOiM,EAAMzU,OAEnCwwF,GASTC,oBAAqB,SAAS1pG,EAAG2pG,GAC/B,IAAIC,EAAgBrtG,KAAKstG,uBAAuB7pG,EAAG2pG,GAC/CvL,EAAiB7hG,KAAKw8F,oBAAoB6Q,GAC1CnW,EAAY2K,EAAe3K,UAE/B,GAAIA,IAAcl3F,KAAKg2F,WAAWh7F,OAAS,GAAKyI,EAAEwoG,SAAyB,KAAdxoG,EAAEsoG,QAE7D,OAAO/rG,KAAKo2F,MAAMp7F,OAASqyG,EAE7B,IAAIxpD,EAAYg+C,EAAeh+C,UAC3BqpD,EAAoBltG,KAAKitG,sBAAsB/V,EAAWrzC,GAC1D0pD,EAAmBvtG,KAAKwtG,gBAAgBtW,EAAY,EAAGgW,GAE3D,OADsBltG,KAAKg2F,WAAWkB,GAAW55F,MAAMumD,GAChC7oD,OAASuyG,EAAmB,EAAIvtG,KAAKm3F,qBAAqBD,IAUnFoW,uBAAwB,SAAS7pG,EAAG2pG,GAClC,OAAI3pG,EAAEqtD,UAAY9wD,KAAKo/F,iBAAmBp/F,KAAKy/F,cAAgB2N,EACtDptG,KAAKy/F,aAGLz/F,KAAKo/F,gBAShBqO,kBAAmB,SAAShqG,EAAG2pG,GAC7B,IAAIC,EAAgBrtG,KAAKstG,uBAAuB7pG,EAAG2pG,GAC/CvL,EAAiB7hG,KAAKw8F,oBAAoB6Q,GAC1CnW,EAAY2K,EAAe3K,UAC/B,GAAkB,IAAdA,GAAmBzzF,EAAEwoG,SAAyB,KAAdxoG,EAAEsoG,QAEpC,OAAQsB,EAEV,IAAIxpD,EAAYg+C,EAAeh+C,UAC3BqpD,EAAoBltG,KAAKitG,sBAAsB/V,EAAWrzC,GAC1D0pD,EAAmBvtG,KAAKwtG,gBAAgBtW,EAAY,EAAGgW,GACvDQ,EAAmB1tG,KAAKg2F,WAAWkB,GAAW55F,MAAM,EAAGumD,GACvDszC,EAAuBn3F,KAAKm3F,qBAAqBD,EAAY,GAEjE,OAAQl3F,KAAKg2F,WAAWkB,EAAY,GAAGl8F,OACpCuyG,EAAmBG,EAAiB1yG,QAAU,EAAIm8F,IAOvDqW,gBAAiB,SAAStW,EAAWx6E,GAOnC,IALA,IAGqBixF,EAAWC,EAH5BluG,EAAOM,KAAKg2F,WAAWkB,GAEvB2W,EADiB7tG,KAAK+4F,mBAAmB7B,GAEzC4W,EAAc,EAETpsG,EAAI,EAAG8uB,EAAO9wB,EAAK1E,OAAQ0G,EAAI8uB,EAAM9uB,IAG5C,IADAmsG,GADAF,EAAY3tG,KAAKs1F,aAAa4B,GAAWx1F,GAAGgb,OAEnBA,EAAO,CAC9BkxF,GAAAA,EACA,IACIG,EAAYF,EACZG,EAAqBhrF,KAAK6K,IAFfggF,EAAqBF,EAESjxF,GAG7CoxF,EAF0B9qF,KAAK6K,IAAIkgF,EAAYrxF,GAEXsxF,EAAqBtsG,EAAKA,EAAI,EAClE,MASJ,OAJKksG,IACHE,EAAcpuG,EAAK1E,OAAS,GAGvB8yG,GAQTG,eAAgB,SAASxqG,GACnBzD,KAAKo/F,gBAAkBp/F,KAAKo2F,MAAMp7F,QAAUgF,KAAKy/F,cAAgBz/F,KAAKo2F,MAAMp7F,QAGhFgF,KAAKkuG,oBAAoB,OAAQzqG,IAOnC0qG,aAAc,SAAS1qG,GACO,IAAxBzD,KAAKo/F,gBAA8C,IAAtBp/F,KAAKy/F,cAGtCz/F,KAAKkuG,oBAAoB,KAAMzqG,IAQjCyqG,oBAAqB,SAASzJ,EAAWhhG,GAGvC,IACIiW,EAAS1Z,KADA,MAAQykG,EAAY,gBACPhhG,EAAgC,UAA7BzD,KAAKwgG,qBAC9B/8F,EAAEqtD,SACJ9wD,KAAKouG,oBAAoB10F,GAGzB1Z,KAAKquG,uBAAuB30F,GAEf,IAAXA,IACF1Z,KAAK6oG,2BACL7oG,KAAK+jG,uBACL/jG,KAAKugG,sBAAwB,EAC7BvgG,KAAKkhG,oBACLlhG,KAAKghG,wBACLhhG,KAAKihG,oBAQTmN,oBAAqB,SAAS10F,GAK5B,OADA1Z,KAAK4oG,8BAA8B5oG,KAAKo/F,eAAgBp/F,KAAKy/F,aAHb,SAA7Bz/F,KAAKwgG,oBACpBxgG,KAAKo/F,eAAiB1lF,EACtB1Z,KAAKy/F,aAAe/lF,GAEN,IAAXA,GAOT20F,uBAAwB,SAAS30F,GAS/B,OARIA,EAAS,GACX1Z,KAAKo/F,gBAAkB1lF,EACvB1Z,KAAKy/F,aAAez/F,KAAKo/F,iBAGzBp/F,KAAKy/F,cAAgB/lF,EACrB1Z,KAAKo/F,eAAiBp/F,KAAKy/F,cAEX,IAAX/lF,GAOT40F,eAAgB,SAAS7qG,GACK,IAAxBzD,KAAKo/F,gBAA8C,IAAtBp/F,KAAKy/F,cAGtCz/F,KAAKuuG,uBAAuB,OAAQ9qG,IAOtC+qG,MAAO,SAAS/qG,EAAG2c,EAAMqkF,GACvB,IAAI3xC,EACJ,GAAIrvD,EAAE4sD,OACJyC,EAAW9yD,KAAK,mBAAqBykG,GAAWzkG,KAAKogB,QAElD,CAAA,IAAI3c,EAAEwoG,SAAyB,KAAdxoG,EAAEsoG,SAAiC,KAAdtoG,EAAEsoG,QAK3C,OADA/rG,KAAKogB,IAAuB,SAAdqkF,GAAwB,EAAI,GAAA,EAH1C3xC,EAAW9yD,KAAK,mBAAqBykG,GAAWzkG,KAAKogB,IAMvD,QAAA,WAAW0yC,GAA0B9yD,KAAKogB,KAAU0yC,EAElD,OADA9yD,KAAKogB,GAAQ0yC,GAAAA,GAQjB27C,UAAW,SAAShrG,EAAG2c,GACrB,OAAOpgB,KAAKwuG,MAAM/qG,EAAG2c,EAAM,SAM7BsuF,WAAY,SAASjrG,EAAG2c,GACtB,OAAOpgB,KAAKwuG,MAAM/qG,EAAG2c,EAAM,UAO7BuuF,2BAA4B,SAASlrG,GACnC,IAAImrG,GAAAA,EAUJ,OATA5uG,KAAKwgG,oBAAsB,OAIvBxgG,KAAKy/F,eAAiBz/F,KAAKo/F,gBAA0C,IAAxBp/F,KAAKo/F,iBACpDwP,EAAS5uG,KAAKyuG,UAAUhrG,EAAG,mBAG7BzD,KAAKy/F,aAAez/F,KAAKo/F,eAClBwP,GAOTC,wBAAyB,SAASprG,GAChC,MAAiC,UAA7BzD,KAAKwgG,qBAAmCxgG,KAAKo/F,iBAAmBp/F,KAAKy/F,aAChEz/F,KAAKyuG,UAAUhrG,EAAG,gBAEM,IAAxBzD,KAAKo/F,gBACZp/F,KAAKwgG,oBAAsB,OACpBxgG,KAAKyuG,UAAUhrG,EAAG,wBAAA,GAQ7BqrG,gBAAiB,SAASrrG,GACpBzD,KAAKo/F,gBAAkBp/F,KAAKo2F,MAAMp7F,QAAUgF,KAAKy/F,cAAgBz/F,KAAKo2F,MAAMp7F,QAGhFgF,KAAKuuG,uBAAuB,QAAS9qG,IAQvC8qG,uBAAwB,SAAS9J,EAAWhhG,GAC1C,IAAIsrG,EAAa,aAAetK,EAAY,OAC5CzkG,KAAKugG,sBAAwB,EAQzBvgG,KALF+uG,GADEtrG,EAAEqtD,SACU,QAGA,YAEKrtD,KACnBzD,KAAK+jG,uBACL/jG,KAAKkhG,oBACLlhG,KAAKghG,wBACLhhG,KAAKihG,oBAQT+N,yBAA0B,SAASvrG,GACjC,MAAiC,SAA7BzD,KAAKwgG,qBAAkCxgG,KAAKo/F,iBAAmBp/F,KAAKy/F,aAC/Dz/F,KAAK0uG,WAAWjrG,EAAG,kBAEnBzD,KAAKy/F,eAAiBz/F,KAAKo2F,MAAMp7F,QACxCgF,KAAKwgG,oBAAsB,QACpBxgG,KAAK0uG,WAAWjrG,EAAG,sBAAA,GAQ9BwrG,4BAA6B,SAASxrG,GACpC,IAAIyrG,GAAAA,EAUJ,OATAlvG,KAAKwgG,oBAAsB,QAEvBxgG,KAAKo/F,iBAAmBp/F,KAAKy/F,cAC/ByP,EAAUlvG,KAAK0uG,WAAWjrG,EAAG,kBAC7BzD,KAAKy/F,aAAez/F,KAAKo/F,gBAGzBp/F,KAAKo/F,eAAiBp/F,KAAKy/F,aAEtByP,GAUTC,YAAa,SAAS7/F,EAAOyrB,QAAAA,IAChBA,IACTA,EAAMzrB,EAAQ,GAEhBtP,KAAK8mG,kBAAkBx3F,EAAOyrB,GAC9B/6B,KAAKo2F,MAAMx1F,OAAO0O,EAAOyrB,EAAMzrB,GAC/BtP,KAAK8T,KAAO9T,KAAKo2F,MAAM1wF,KAAK,IAC5B1F,KAAKgiB,IAAI,SAAA,GACLhiB,KAAK68F,+BACP78F,KAAK01F,iBACL11F,KAAKu+C,aAEPv+C,KAAK6mG,2BAePuI,YAAa,SAASt7F,EAAMtH,EAAO8C,EAAOyrB,QAAAA,IAC7BA,IACTA,EAAMzrB,GAEJyrB,EAAMzrB,GACRtP,KAAK8mG,kBAAkBx3F,EAAOyrB,GAEhC,IAAIzI,EAAYvX,EAAOkF,KAAKtjB,OAAOw1B,cAAcre,GACjD9T,KAAKuoG,oBAAoBj2E,EAAWhjB,EAAO9C,GAC3CxM,KAAKo2F,MAAQ,GAAG55F,OAAOwD,KAAKo2F,MAAM94F,MAAM,EAAGgS,GAAQgjB,EAAWtyB,KAAKo2F,MAAM94F,MAAMy9B,IAC/E/6B,KAAK8T,KAAO9T,KAAKo2F,MAAM1wF,KAAK,IAC5B1F,KAAKgiB,IAAI,SAAA,GACLhiB,KAAK68F,+BACP78F,KAAK01F,iBACL11F,KAAKu+C,aAEPv+C,KAAK6mG,6BAQHhsF,EAAUE,EAAOkF,KAAKpF,QACtBC,EAAsB,OAE1BC,EAAOkF,KAAK3I,OAAOlB,OAAO2E,EAAO6K,KAAK1gB,UAA+C,CAOnFwsE,OAAQ,WACN,IAAIuc,EAAUjuF,KAAKqvG,wBACfC,EAAYtvG,KAAKuvG,iBAAiBthB,EAAQuhB,QAASvhB,EAAQwhB,UAC/D,OAAOzvG,KAAK0vG,kBAAkBJ,IAQhCl4D,MAAO,SAASpwB,GACd,OAAOhnB,KAAKyxE,qBACVzxE,KAAK0xE,SACL,CAAE1qD,QAASA,EAAS+qD,SAAAA,EAAeG,YAAAA,KAOvCm9B,sBAAuB,WACrB,MAAO,CACLI,UAAWzvG,KAAK0c,MAAQ,EACxB8yF,SAAUxvG,KAAKuc,OAAS,EACxBozF,QAAS3vG,KAAK84F,gBAAgB,KAOlC4W,kBAAmB,SAASJ,GAC1B,IACIx+B,EAAiB9wE,KAAK+wE,qBAAqB/wE,MAC/C,MAAO,CACLsvG,EAAU/9B,YAAY7rE,KAAK,IAC3B,kCACC1F,KAAKgsB,WAAa,gBAAkBhsB,KAAKgsB,WAAWngB,QAAQ,KAAM,KAAQ,KAAO,GACjF7L,KAAK0lB,SAAW,cAAgB1lB,KAAK0lB,SAAW,KAAO,GACvD1lB,KAAKuR,UAAY,eAAiBvR,KAAKuR,UAAY,KAAO,GAC1DvR,KAAKwR,WAAa,gBAAkBxR,KAAKwR,WAAa,KAAO,GAC7Ds/D,EAAiB,oBAAsBA,EAAiB,KAAO,GAChE,UAAW9wE,KAAKywE,cAAAA,GAAwB,IAAKzwE,KAAKqyE,gBAAiB,KACnEi9B,EAAUM,UAAUlqG,KAAK,IACzB,cAUJ6pG,iBAAkB,SAASM,EAAeC,GACxC,IAE4BzN,EAFxBuN,EAAY,GACZr+B,EAAc,GACdh1D,EAASszF,EAEb7vG,KAAKsxE,UAAUC,GAGf,IAAK,IAAI52E,EAAI,EAAGD,EAAMsF,KAAKg2F,WAAWh7F,OAAQL,EAAID,EAAKC,IACrD0nG,EAAariG,KAAK+4F,mBAAmBp+F,IACjCqF,KAAKg1F,qBAAuBh1F,KAAKi4F,SAAS,sBAAuBt9F,KACnEqF,KAAK+vG,kBAAkBx+B,EAAa52E,EAAGm1G,EAAiBzN,EAAY9lF,GAEtEvc,KAAKgwG,oBAAoBJ,EAAWj1G,EAAGm1G,EAAiBzN,EAAY9lF,GACpEA,GAAUvc,KAAK84F,gBAAgBn+F,GAGjC,MAAO,CACLi1G,UAAWA,EACXr+B,YAAaA,IAOjB0+B,oBAAqB,SAAS3W,EAAO4W,EAAWhrF,EAAMC,GACpD,IAAIgrF,EAAsB7W,IAAUA,EAAMtjF,QAAUsjF,EAAMx5F,MAAMgb,GAC5Ds1F,EAAapwG,KAAK4wE,iBAAiBs/B,EAAWC,GAC9CE,EAAaD,EAAa,UAAYA,EAAa,IAAM,GACzD5nF,EAAK0nF,EAAUl/B,OAAQs/B,EAAS,GAChC5jF,EAAsB3R,EAAOhV,OAAO2mB,oBAIxC,OAHIlE,IACF8nF,EAAS,QAAUz1F,EAAQ2N,EAAIkE,GAAuB,MAEjD,CACL,aAAc7R,EAAQqK,EAAMwH,GAAsB,QAClD7R,EAAQsK,EAAKuH,GAAsB,KAAM4jF,EACzCD,EAAY,IACZt1F,EAAOkF,KAAKtjB,OAAOu1B,UAAUonE,GAC7B,YACA5zF,KAAK,KAGTsqG,oBAAqB,SAASJ,EAAW1Y,EAAW4Y,EAAgBD,GAElE,IAEIxU,EACAC,EAEAjD,EAAS7rF,EAGT+uF,EARAl4D,EAAarjC,KAAK84F,gBAAgB5B,GAClCsE,GAAmD,IAAvCx7F,KAAK40F,UAAUhzF,QAAQ,WAGnC65F,EAAgB,GAEhB5C,EAAW,EACXn5F,EAAOM,KAAKg2F,WAAWkB,GAG3B2Y,GAAiBxsE,GAAc,EAAIrjC,KAAKi1F,mBAAqBj1F,KAAKqjC,WAClE,IAAK,IAAI1oC,EAAI,EAAGD,EAAMgF,EAAK1E,OAAS,EAAGL,GAAKD,EAAKC,IAC/C4gG,EAAe5gG,IAAMD,GAAOsF,KAAKm1F,YACjCsG,GAAiB/7F,EAAK/E,GACtB09F,EAAUr4F,KAAKs1F,aAAa4B,GAAWv8F,GACtB,IAAbk+F,GACFiX,GAAkBzX,EAAQpB,YAAcoB,EAAQ37E,MAChDm8E,GAAYR,EAAQ37E,OAGpBm8E,GAAYR,EAAQpB,YAElBuE,IAAcD,GACZv7F,KAAKu0F,eAAerpF,KAAKxL,EAAK/E,MAChC4gG,GAAAA,GAGCA,IAEHF,EAAcA,GAAer7F,KAAK46F,4BAA4B1D,EAAWv8F,GACzE2gG,EAAYt7F,KAAK46F,4BAA4B1D,EAAWv8F,EAAI,GAC5D4gG,EAAev7F,KAAK28F,uBAAuBtB,EAAaC,IAEtDC,IACF/uF,EAAQxM,KAAK67F,qBAAqB3E,EAAWv8F,IAAM,GACnDi1G,EAAUlvG,KAAKV,KAAKiwG,oBAAoBxU,EAAejvF,EAAOsjG,EAAgBD,IAC9EpU,EAAgB,GAChBJ,EAAcC,EACdwU,GAAkBjX,EAClBA,EAAW,IAKjB0X,gBAAiB,SAASh/B,EAAat2C,EAAO/V,EAAMC,EAAKzI,EAAOH,GAC9D,IAAImQ,EAAsB3R,EAAOhV,OAAO2mB,oBACxC6kD,EAAY7wE,KACV,aACAV,KAAKwxE,mBAAmBv2C,GACxB,OACApgB,EAAQqK,EAAMwH,GACd,QACA7R,EAAQsK,EAAKuH,GACb,YACA7R,EAAQ6B,EAAOgQ,GACf,aACA7R,EAAQ0B,EAAQmQ,GAChB,gBAGJqjF,kBAAmB,SAASx+B,EAAa52E,EAAG69F,EAAYqX,GAOtD,IANA,IAIIxX,EAASC,EAJT54F,EAAOM,KAAKg2F,WAAWr7F,GACvBu9F,EAAel4F,KAAK84F,gBAAgBn+F,GAAKqF,KAAKqjC,WAC9Cw1D,EAAW,EACXD,EAAW,EAEXR,EAAYp4F,KAAKg5F,qBAAqBr+F,EAAG,EAAG,uBACvC+G,EAAI,EAAG8uB,EAAO9wB,EAAK1E,OAAQ0G,EAAI8uB,EAAM9uB,IAC5C22F,EAAUr4F,KAAKs1F,aAAa36F,GAAG+G,IAC/B42F,EAAet4F,KAAKg5F,qBAAqBr+F,EAAG+G,EAAG,0BAC1B02F,GACnBA,GAAap4F,KAAKuwG,gBAAgBh/B,EAAa6mB,EAAWI,EAAaI,EACrEiX,EAAehX,EAAUX,GAC3BU,EAAWP,EAAQnzE,KACnB2zE,EAAWR,EAAQ37E,MACnB07E,EAAYE,GAGZO,GAAYR,EAAQpB,YAGxBqB,GAAgBt4F,KAAKuwG,gBAAgBh/B,EAAa+mB,EAAcE,EAAaI,EAC3EiX,EAAehX,EAAUX,IAW7B1mB,mBAAoB,SAAS/rE,GAC3B,IAAI+qG,EAAa/qG,GAA0B,iBAAVA,EAAsB,IAAIsV,EAAO4f,MAAMl1B,GAAS,GACjF,OAAK+qG,GAAcA,EAAU51E,aAAwC,IAAzB41E,EAAUrsE,WAG/C,YAAcqsE,EAAUrsE,WAAa,WAAaqsE,EAAUtsE,SAAS,GAAGoH,QAAU,IAFhF,SAAW7lC,EAAQ,KAQ9BgrG,qBAAsB,SAASvZ,GAE7B,IADA,IAAuBwZ,EAAnBnY,EAAgB,EACX72F,EAAI,EAAGA,EAAIw1F,EAAWx1F,IAC7B62F,GAAiBv4F,KAAK84F,gBAAgBp3F,GAGxC,OADAgvG,EAAa1wG,KAAK84F,gBAAgBp3F,GAC3B,CACLiuG,QAASpX,EACT7+E,QAAS1Z,KAAKk1F,cAAgBl1F,KAAKi1F,mBAAqByb,GAAc1wG,KAAKqjC,WAAarjC,KAAKk1F,iBASjGzkB,aAAc,SAASC,GAErB,OADe31D,EAAOhV,OAAOb,UAAUurE,aAAahyE,KAAKuB,KAAM0wE,GAC7C,wBAOxB,SAAUvzE,GAER,aAEA,IAAI4d,EAAS5d,EAAO4d,SAAW5d,EAAO4d,OAAS,IAa/CA,EAAOo5C,QAAUp5C,EAAOkF,KAAKkT,YAAYpY,EAAOglF,MAAOhlF,EAAO1C,WAAY,CAOxElN,KAAM,UAONwlG,SAAU,GASVC,gBAAiB,EAMjBC,cAAe,KAKfp9C,iBAAAA,EAMA6Q,cAAAA,EAOA8vB,yBAA0Br5E,EAAO6K,KAAK1gB,UAAUkvF,yBAAyB53F,OAAO,SAMhFs0G,aAAc,UAQdC,iBAAAA,EAQArb,eAAgB,WACV11F,KAAKy1F,kBAGTz1F,KAAKi2D,WAAaj2D,KAAKkhG,oBACvBlhG,KAAK84D,kBACL94D,KAAKs2F,cAELt2F,KAAK4wG,gBAAkB,EAEvB5wG,KAAKgxG,UAAYhxG,KAAKixG,kBAAkBjxG,KAAK41F,cAEzC51F,KAAK4wG,gBAAkB5wG,KAAK0c,OAC9B1c,KAAK4iB,KAAK,QAAS5iB,KAAK4wG,kBAEiB,IAAvC5wG,KAAK40F,UAAUhzF,QAAQ,YAEzB5B,KAAKy2F,gBAGPz2F,KAAKuc,OAASvc,KAAK02F,iBACnB12F,KAAKy+D,UAAU,CAAEgJ,YAAa,+BAUhCwpC,kBAAmB,SAASC,GAM1B,IALA,IAAIC,EAAoB,EACpBC,EAAoB,EACpB7E,EAAoB,EACpBx3F,EAAoB,GAEfpa,EAAI,EAAGA,EAAIu2G,EAASjb,cAAcj7F,OAAQL,IACR,OAArCu2G,EAAS7a,aAAakW,IAAuB5xG,EAAI,GACnDy2G,EAAoB,EACpB7E,IACA4E,MAEQnxG,KAAK+wG,iBAAmB/wG,KAAKu0F,eAAerpF,KAAKgmG,EAAS7a,aAAakW,KAAe5xG,EAAI,IAElGy2G,IACA7E,KAGFx3F,EAAIpa,GAAK,CAAE+E,KAAMyxG,EAAez3F,OAAQ03F,GAExC7E,GAAa2E,EAASjb,cAAct7F,GAAGK,OACvCo2G,GAAqBF,EAASjb,cAAct7F,GAAGK,OAGjD,OAAO+Z,GAQTkjF,SAAU,SAAS1gF,EAAU2/E,GAC3B,GAAIl3F,KAAKgxG,YAAchxG,KAAKqxG,WAAY,CACtC,IAAIt8F,EAAM/U,KAAKgxG,UAAU9Z,GACrBniF,IACFmiF,EAAYniF,EAAIrV,MAGpB,OAAOqb,EAAO6K,KAAK1gB,UAAU+yF,SAASx5F,KAAKuB,KAAMuX,EAAU2/E,IAQ7DkE,cAAe,SAASlE,GACtB,IAAKl3F,KAAK20B,OACR,OAAA,EAEF,IAA+C28E,EAAYtrG,EAAvD0T,EAAS,EAAmD63F,GAAAA,EAC5Dx8F,EAAM/U,KAAKgxG,UAAU9Z,GAAYsa,EAAcxxG,KAAKgxG,UAAU9Z,EAAY,GAW9E,IAAK,IAAIpwC,KAVL/xC,IACFmiF,EAAYniF,EAAIrV,KAChBga,EAAS3E,EAAI2E,QAEX83F,IAEFD,EADgBC,EAAY9xG,OACIw3F,EAChCoa,EAAaE,EAAY93F,QAE3B1T,OAAAA,IAAakxF,EAA4Bl3F,KAAK20B,OAAS,CAAEj1B,KAAMM,KAAK20B,OAAOuiE,IAEzE,IAAK,IAAInwC,KAAM/gD,EAAI8gD,GACjB,GAAIC,GAAMrtC,KAAY63F,GAAexqD,EAAKuqD,GAExC,IAAK,IAAIhT,KAAMt4F,EAAI8gD,GAAIC,GACrB,OAAA,EAKR,OAAA,GAQF80C,qBAAsB,SAAS3E,EAAWrzC,GACxC,GAAI7jD,KAAKgxG,YAAchxG,KAAKqxG,WAAY,CACtC,IAAIt8F,EAAM/U,KAAKgxG,UAAU9Z,GACzB,IAAKniF,EACH,OAAO,KAETmiF,EAAYniF,EAAIrV,KAChBmkD,EAAY9uC,EAAI2E,OAASmqC,EAE3B,OAAO7jD,KAAK+yB,UAAU,uBAAwBmkE,EAAWrzC,IAS3Ds7C,qBAAsB,SAASjI,EAAWrzC,EAAWr3C,GACnD,IAAIuI,EAAM/U,KAAKgxG,UAAU9Z,GAIzBl3F,KAAK20B,OAHLuiE,EAAYniF,EAAIrV,MAChBmkD,EAAY9uC,EAAI2E,OAASmqC,GAEWr3C,GAQtCozF,wBAAyB,SAAS1I,EAAWrzC,GAC3C,IAAI9uC,EAAM/U,KAAKgxG,UAAU9Z,UAGlBl3F,KAAK20B,OAFZuiE,EAAYniF,EAAIrV,MAChBmkD,EAAY9uC,EAAI2E,OAASmqC,IAY3Bo7C,cAAe,SAAS/H,GAEtB,QAASl3F,KAAK20B,OADJ30B,KAAKgxG,UAAU9Z,GACAx3F,OAS3Bw/F,cAAe,SAAShI,GAEtBl3F,KAAK20B,OADK30B,KAAKgxG,UAAU9Z,GACTx3F,MAAQ,IAY1B+xG,UAAW,SAASlwG,EAAOmwG,GACzB,IAAkB/2G,EAAdg3G,EAAU,GAEd,IADA3xG,KAAKqxG,YAAAA,EACA12G,EAAI,EAAGA,EAAI4G,EAAMvG,OAAQL,IAC5Bg3G,EAAUA,EAAQn1G,OAAOwD,KAAK4xG,UAAUrwG,EAAM5G,GAAIA,EAAG+2G,IAGvD,OADA1xG,KAAKqxG,YAAAA,EACEM,GAaTE,aAAc,SAASC,EAAM5a,EAAW6a,GACtC,IAAezX,EAAX59E,EAAQ,EACZq1F,EAAaA,GAAc,EAC3B,IAAK,IAAIp3G,EAAI,EAAGD,EAAMo3G,EAAK92G,OAAQL,EAAID,EAAKC,IAE1C+hB,GADU1c,KAAKy6F,gBAAgBqX,EAAKn3G,GAAIu8F,EAAWv8F,EAAIo3G,EAAYzX,GAAAA,GACtDrD,YACbqD,EAAewX,EAAKn3G,GAEtB,OAAO+hB,GAYTk1F,UAAW,SAASI,EAAO9a,EAAWwa,EAAcO,GAClD,IAAInsD,EAAY,EACZirD,EAAkB/wG,KAAK+wG,gBACvB9a,EAAgB,GAChBv2F,EAAO,GAEPwyG,EAAQnB,EAAkBh2F,EAAOkF,KAAKtjB,OAAOw1B,cAAc6/E,GAASA,EAAMxwG,MAAMxB,KAAK8wG,cACrFgB,EAAO,GACPp4F,EAAS,EACTy4F,EAAQpB,EAAkB,GAAK,IAC/BqB,EAAY,EACZC,EAAa,EACbC,EAAmB,EACnBC,GAAAA,EACAC,EAAkBzB,EAAkB,EAAI/wG,KAAKo6F,yBAC7C6X,EAAgBA,GAAiB,EAEhB,IAAjBC,EAAMl3G,QACRk3G,EAAMxxG,KAAK,IAEbgxG,GAAgBO,EAChB,IAAK,IAAIt3G,EAAI,EAAGA,EAAIu3G,EAAMl3G,OAAQL,IAEhCm3G,EAAOf,EAAkBmB,EAAMv3G,GAAKogB,EAAOkF,KAAKtjB,OAAOw1B,cAAc+/E,EAAMv3G,IAC3Ey3G,EAAYpyG,KAAK6xG,aAAaC,EAAM5a,EAAWx9E,GAC/CA,GAAUo4F,EAAK92G,QAEf8qD,GAAausD,EAAaD,EAAYI,IAErBd,IAAiBa,GAChCtc,EAAcv1F,KAAKhB,GACnBA,EAAO,GACPomD,EAAYssD,EACZG,GAAAA,GAGAzsD,GAAa0sD,EAGVD,GAAoBxB,GACvBrxG,EAAKgB,KAAKyxG,GAEZzyG,EAAOA,EAAKlD,OAAOs1G,GAEnBO,EAAaryG,KAAK6xG,aAAa,CAACM,GAAQjb,EAAWx9E,GACnDA,IACA64F,GAAAA,EAEIH,EAAYE,IACdA,EAAmBF,GAUvB,OANAz3G,GAAKs7F,EAAcv1F,KAAKhB,GAEpB4yG,EAAmBL,EAAgBjyG,KAAK4wG,kBAC1C5wG,KAAK4wG,gBAAkB0B,EAAmBE,EAAkBP,GAGvDhc,GASTc,gBAAiB,SAASG,GACxB,OAAKl3F,KAAKgxG,UAAU9Z,EAAY,IAI5Bl3F,KAAKgxG,UAAU9Z,EAAY,GAAGx3F,OAASM,KAAKgxG,UAAU9Z,GAAWx3F,MAYvEy3F,qBAAsB,SAASD,GAC7B,OAAIl3F,KAAK+wG,gBACA/wG,KAAK+2F,gBAAgBG,GAAa,EAAI,EAExC,GAUTpB,oBAAqB,SAAShiF,GAI5B,IAHA,IAAI6pF,EAAU5iF,EAAO6K,KAAK1gB,UAAU4wF,oBAAoBr3F,KAAKuB,KAAM8T,GAC/DmiF,EAAgBj2F,KAAKyxG,UAAU9T,EAAQp8F,MAAOvB,KAAK0c,OACnDnb,EAAQ,IAAIkF,MAAMwvF,EAAcj7F,QAC3BL,EAAI,EAAGA,EAAIs7F,EAAcj7F,OAAQL,IACxC4G,EAAM5G,GAAKs7F,EAAct7F,GAAG+K,KAAK,IAInC,OAFAi4F,EAAQp8F,MAAQA,EAChBo8F,EAAQ1H,cAAgBA,EACjB0H,GAGTvpC,YAAa,WACX,OAAOpxC,KAAKvI,IAAIza,KAAK2wG,SAAU3wG,KAAK4wG,kBAGtC/J,wBAAyB,WACvB,IAAI4L,EAAc,GAClB,IAAK,IAAIryF,KAAQpgB,KAAKgxG,UAChBhxG,KAAKg2F,WAAW51E,KAClBqyF,EAAYzyG,KAAKgxG,UAAU5wF,GAAM1gB,MAAQ,GAG7C,IAAK,IAAI0gB,KAAQpgB,KAAK20B,OACf89E,EAAYryF,WACRpgB,KAAK20B,OAAOvU,IAWzB82B,SAAU,SAASC,GACjB,OAAOn3C,KAAK+yB,UAAU,WAAY,CAAC,WAAY,mBAAmBv2B,OAAO26C,OAW7Ep8B,EAAOo5C,QAAQ9sC,WAAa,SAAS/P,EAAQ5S,GAC3C,OAAOqW,EAAOhV,OAAOskE,YAAY,UAAW/yD,EAAQ5S,EAAU,SAzclE,CA2coChI,IAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aCph6BpC,SAASg2G,EAAUxlG,EAAGylG,GACpB,IAAIh4G,EACAgW,EAEJ,GAAmB,mBAARgiG,OAAAA,KACThiG,EAAIgiG,EAAIzlG,MAENA,EAAIyD,QAED,GAAIlK,MAAMqQ,QAAQ67F,GACvB,IAAKh4G,EAAI,EAAGA,EAAIg4G,EAAI33G,OAAQL,SAAAA,KAC1BgW,EAAIgiG,EAAIh4G,GAAGuS,MAETA,EAAIyD,GAKV,OAAOzD,EAGT,SAAS0lG,EAAU12G,EAAK22G,GAEtB,MAAe,MAAX32G,EAAI,IAAcuK,MAAMqQ,QAAQ+7F,IAAQ,SAAS3nG,KAAKhP,GACjD22G,EAAI73G,OAASqT,SAASnS,EAAK,IAE7BA,EAOT,SAASuN,EAAUopG,GACjB,MAA+C,oBAAxC9sG,OAAOb,UAAUrF,SAASpB,KAAKo0G,GAGxC,SAASC,EAAiBD,GACxB,OAAO9sG,OAAO8sG,KAASA,EAGzB,SAASE,EAAeF,GACtB,OAAmC,IAA5B9sG,OAAOP,KAAKqtG,GAAK73G,OAG1B,IAAIg4G,EAAY,CAAC,YAAa,YAAa,eACvCC,EAAkB,SAAUC,GAAQ,OAAoC,IAA7BF,EAAUpxG,QAAQsxG,IAEjE,SAASC,EAAWrrF,EAAMsrF,GACpBtrF,EAAKlmB,QAAQ,MAAQ,IACvBkmB,EAAOA,EAAKjc,QAAQ,MAAO,KAAKA,QAAQ,KAAM,KAGhD,IAAI7K,EAAQ8mB,EAAKtmB,MAAM4xG,GAIvB,GAFYpyG,EAAMkW,OAAO+7F,GAEfj4G,SAAWgG,EAAMhG,OACzB,MAAM6K,MAAM,2CAA6CiiB,GAG3D,OAAO9mB,EAGT,IAAIzC,EAAiBwH,OAAOb,UAAU3G,eAEtC,SAAS80G,EAAWC,EAAWC,EAAUC,EAAUC,GACjD,KAAMzzG,gBAAgBqzG,GACpB,OAAO,IAAIA,EAAUC,EAAWC,EAAUC,EAAUC,QAAAA,IAG3CF,IAA0BA,GAAAA,QAAW,IACrCC,IAA0BA,GAAAA,QAAW,IACrCC,IAA6BA,GAAAA,GACxCzzG,KAAKszG,UAAYA,GAAa,IAC9BtzG,KAAKuzG,SAAWA,EAChBvzG,KAAKwzG,SAAWA,EAChBxzG,KAAKyzG,YAAcA,EACnBzzG,KAAK0zG,WAAAA,EAGL1zG,KAAK2zG,QAAU,GAGjB,IAAIC,EAAa,IAAIP,EAAU,KAAA,GAAK,GAAO,GAC3C,SAASQ,EAAMriF,GACb,OAAO,WACL,OAAOoiF,EAAWpiF,GAAQhzB,MAAMo1G,EAAYl1G,YAIhD20G,EAAUnuG,UAAU4uG,MAAQ,SAAUj6G,EAAGmM,EAAKkH,EAAGylG,GAC/C,IAAI12G,EAAIpC,EAAEw5B,QAEV,GAAIx5B,EAAEmB,OAAS,EAAG,CAGhB,GAFAgL,EAAI/J,GAAK+J,EAAI/J,KAAO+D,KAAKwzG,UAlE7B,SAAkBv3G,GAChB,MAAO,QAAQiP,KAAKjP,GADtB,CAkEiDpC,EAAE,IAAM,GAAK,KAErDi5G,EAAgB9sG,EAAI/J,IAAK,CAC5B,IAAI+D,KAAKuzG,SAEF,CACL,IAAMT,EAAgB5lG,KAAM6lG,EAAc7lG,GACxC,MAAM,IAAIrH,MACR,uBAAyB5J,EAAI,uBAAyB+J,EAAI/J,IAI9D,OARA+J,EAAI/J,GAAK,GAYb+D,KAAK8zG,MAAMj6G,EAAGmM,EAAI/J,GAAIiR,EAAGylG,OACpB,CACL,IAAK3yG,KAAKuzG,UAAYT,EAAgB9sG,EAAI/J,MAAQ82G,EAAc/sG,EAAI/J,IAAK,CACvE,IAAM62G,EAAgB5lG,KAAM6lG,EAAc7lG,GACxC,MAAM,IAAIrH,MAAM,qCAAuC5J,EAAI,MAG7D,OAGF+J,EAAI/J,GAAKy2G,EAASxlG,EAAGylG,KA0BzBU,EAAUnuG,UAAUoS,OAAS,SAAUtR,EAAK+tG,GAC1C,IAAI32G,EAAO4C,KAeX,OAbA+F,OAAOP,KAAKQ,GAAK2R,SAAQ,SAAU1b,GACjC,IAAI02G,OAAAA,IAAMoB,EAAqB,KAAOA,EAAK93G,GAEvC+3G,EAAKb,EAAUl3G,EAAGmB,EAAKk2G,WAAW5tG,KAAKtI,EAAKk2G,YAEZ,IAAhCU,EAAGpyG,QAAQxE,EAAKk2G,YAClBl2G,EAAK02G,MAAME,EAAGxyG,MAAMpE,EAAKk2G,WAAYttG,EAAKA,EAAI/J,GAAI02G,UAC3C3sG,EAAI/J,IAEX+J,EAAI/J,GAAKy2G,EAAS1sG,EAAI/J,GAAI02G,MAIvB3sG,GASTqtG,EAAUnuG,UAAU4sB,IAAM,SAAUhK,EAAM5a,EAAGlH,EAAK2sG,GAChD,IAAIqB,EAAKb,EAAUrrF,EAAM9nB,KAAKszG,WAAW5tG,KAAK1F,KAAKszG,WAQnD,OANsC,IAAlCxrF,EAAKlmB,QAAQ5B,KAAKszG,WACpBtzG,KAAK8zG,MAAME,EAAGxyG,MAAMxB,KAAKszG,WAAYttG,EAAKkH,EAAGylG,GAE7C3sG,EAAI8hB,GAAQ4qF,EAASxlG,EAAGylG,GAGnB3sG,GAaTqtG,EAAUnuG,UAAU+uG,KAAO,SAAUnsF,EAAM9hB,EAAK+P,EAAQm+F,GACtD,IAAIv5G,EACA6K,EACAqtG,EACA32G,EACAumG,EAGJ,IADAj9F,EAAO2tG,EAAUrrF,EAAM9nB,KAAKszG,WACvB34G,EAAI,EAAGA,EAAI6K,EAAKxK,OAAQL,IAAK,CAEhC,GADAuB,EAAM02G,EAASptG,EAAK7K,GAAIqL,IACpBA,GAAsB,iBAARA,KAAoB9J,KAAO8J,GAuB3C,OAtBA,GAAIrL,IAAM6K,EAAKxK,OAAS,EACtB,OAAI+a,GACF88F,EAAM7sG,EAAI9J,GACNg4G,GAAgBztG,MAAMqQ,QAAQ9Q,GAChCA,EAAIpF,OAAO1E,EAAK,UAET8J,EAAI9J,GAETuK,MAAMqQ,QAAQ9Q,KAChBy8F,EAAKj9F,EAAKlI,MAAM,GAAI,GAAGoI,KAAK,MACM,IAA9B1F,KAAK2zG,QAAQ/xG,QAAQ6gG,IACvBziG,KAAK2zG,QAAQjzG,KAAK+hG,IAGfoQ,GAEA7sG,EAAI9J,GAGb8J,EAAMA,EAAI9J,GAWhB,OALI6Z,GAAUtP,MAAMqQ,QAAQ9Q,KAC1BA,EAAMA,EAAIkR,QAAO,SAAUxG,GACzB,YAAA,IAAOA,MAGJ1K,GAUTqtG,EAAUnuG,UAAVmuG,OAA6B,SAAUvrF,EAAM9hB,GAC3C,OAAOhG,KAAK+V,OAAO+R,EAAM9hB,GAAAA,IAkB3BqtG,EAAUnuG,UAAU6Q,OAAS,SAAU+R,EAAM9hB,EAAKkuG,GAChD,IAAIv5G,EAGJ,GADAqF,KAAK2zG,QAAU,GACXltG,MAAMqQ,QAAQgR,GAAO,CACvB,IAAKntB,EAAI,EAAGA,EAAImtB,EAAK9sB,OAAQL,IAC3BqF,KAAKi0G,KAAKnsF,EAAKntB,GAAIqL,GAAAA,EAAWkuG,GAKhC,OAHKA,GACHl0G,KAAKm0G,SAASnuG,GAETA,EAEP,OAAOhG,KAAKi0G,KAAKnsF,EAAM9hB,GAAAA,EAAWkuG,IAItCb,EAAUnuG,UAAUivG,SAAW,SAAUnuG,GACvC,IAAIouG,EACAz5G,EACA6K,EACA0oB,EACJ,GAAIluB,KAAK2zG,QAAQ34G,OAAQ,CACvB,IAAKL,EAAI,EAAGA,EAAIqF,KAAK2zG,QAAQ34G,OAAQL,IAInCy5G,GADAA,GADAlmF,GADA1oB,EAAOxF,KAAK2zG,QAAQh5G,GAAG6G,MAAM,MACjBZ,OAAO,GAAI,GAAG8E,KAAK,MAClB1F,KAAKi0G,KAAK/lF,EAAMloB,GAAOA,GAC1BR,EAAK,IAAI0R,QAAO,SAAUhK,GAClC,YAAA,IAAOA,KAETlN,KAAKgiB,IAAIhiB,KAAK2zG,QAAQh5G,GAAIy5G,EAAKpuG,GAEjChG,KAAK2zG,QAAU,KAcnBN,EAAUnuG,UAAUmvG,IAAMhB,EAAUnuG,UAAU6Q,OAe9Cs9F,EAAUnuG,UAAUovG,KAAO,SAAUlyG,EAAQuI,EAAQ3E,EAAK+tG,EAAMQ,GAQ9D,MAPoB,mBAATR,GAAuBttG,MAAMqQ,QAAQi9F,GAC9C/zG,KAAKgiB,IAAIrX,EAAQ+nG,EAAS1yG,KAAKi0G,KAAK7xG,EAAQ4D,GAAAA,GAAY+tG,GAAO/tG,EAAKuuG,IAEpEA,EAAQR,EACR/zG,KAAKgiB,IAAIrX,EAAQ3K,KAAKi0G,KAAK7xG,EAAQ4D,GAAAA,GAAYA,EAAKuuG,IAG/CvuG,GAiBTqtG,EAAUnuG,UAAUsvG,SAAW,SAC7BpyG,EACAuI,EACA8pG,EACAC,EACAX,EACAQ,GAcA,MAZoB,mBAATR,GAAuBttG,MAAMqQ,QAAQi9F,GAC9C/zG,KAAKgiB,IACHrX,EACA+nG,EAAS1yG,KAAKi0G,KAAK7xG,EAAQqyG,GAAAA,GAAaV,GACxCW,EACAH,IAGFA,EAAQR,EACR/zG,KAAKgiB,IAAIrX,EAAQ3K,KAAKi0G,KAAK7xG,EAAQqyG,GAAAA,GAAaC,EAAMH,IAGjDG,GAiBTrB,EAAUnuG,UAAUslG,KAAO,SAAUpoG,EAAQuI,EAAQ8pG,EAAMC,EAAMX,EAAMQ,GAiBrE,MAhBoB,mBAATR,GAAuBttG,MAAMqQ,QAAQi9F,GAC9C/zG,KAAKgiB,IACHrX,EACA+nG,EAEExsG,KAAKsP,MAAMtP,KAAKC,UAAUnG,KAAKi0G,KAAK7xG,EAAQqyG,GAAAA,KAC5CV,GAEFW,EACAH,IAGFA,EAAQR,EACR/zG,KAAKgiB,IAAIrX,EAAQ3K,KAAKi0G,KAAK7xG,EAAQqyG,GAAAA,GAAcC,EAAMH,IAGlDG,GAYTrB,EAAUnuG,UAAU8c,IAAM,SAAU8F,EAAM+qF,EAAK7sG,EAAKuuG,GAClD,IAAI55G,EACAsB,EACAuJ,EACAtJ,EAGJ,QAAA,IAAW22G,EACT,OAAO7sG,EAIT,IAFAR,EAAO2tG,EAAUrrF,EAAM9nB,KAAKszG,WAEvB34G,EAAI,EAAGA,EAAI6K,EAAKxK,OAAQL,IAAK,CAEhC,GADAuB,EAAMsJ,EAAK7K,GACPA,IAAM6K,EAAKxK,OAAS,EACtB,GAAIu5G,GAAS9qG,EAASopG,IAAQppG,EAASzD,EAAI9J,IACzC,IAAKD,KAAK42G,EACJt0G,EAAeE,KAAKo0G,EAAK52G,KAC3B+J,EAAI9J,GAAKD,GAAK42G,EAAI52G,SAGjB,GAAIs4G,GAAS9tG,MAAMqQ,QAAQ9Q,EAAI9J,KAASuK,MAAMqQ,QAAQ+7F,GAC3D,IAAK,IAAInxG,EAAI,EAAGA,EAAImxG,EAAI73G,OAAQ0G,IAC9BsE,EAAIR,EAAK7K,IAAI+F,KAAKmyG,EAAInxG,SAGxBsE,EAAI9J,GAAO22G,OAIZt0G,EAAeE,KAAKuH,EAAK9J,KACxBuN,EAASzD,EAAI9J,KAAUuK,MAAMqQ,QAAQ9Q,EAAI9J,OAIzC8J,EAAI9J,GADF,QAAQgP,KAAK1F,EAAK7K,EAAI,IACb,GAEA,IAGfqL,EAAMA,EAAI9J,GAEZ,OAAO8J,GA2BTqtG,EAAUnuG,UAAU2f,UAAY,SAAU8vF,EAAQ3uG,EAAK4uG,GAQrD,OAPA5uG,EAAMA,GAAO,GACb4uG,EAAMA,GAAO,GACb7uG,OAAOP,KAAKmvG,GAAQh9F,SAClB,SAAUzb,GACR8D,KAAKgiB,IAAI2yF,EAAOz4G,GAAM8D,KAAKi0G,KAAK/3G,EAAK8J,GAAM4uG,KAC3C7rG,KAAK/I,OAEF40G,GAoBTvB,EAAUnuG,UAAU6jD,IAAM,SAAU/iD,EAAK4uG,EAAK9sF,GAC5C8sF,EAAMA,GAAO,GACb9sF,EAAOA,GAAQ,GACf,IAAIhR,EAAUrQ,MAAMqQ,QAAQ9Q,GA6B5B,OA3BAD,OAAOP,KAAKQ,GAAK2R,SACf,SAAUzb,GACR,IAAI+kB,EAAQnK,GAAW9W,KAAKyzG,YAAc,IAAMv3G,EAAM,IAAMA,EAC5D,GACE42G,EAAgB9sG,EAAI9J,MAClBuN,EAASzD,EAAI9J,MAAU62G,EAAc/sG,EAAI9J,KACxCuK,MAAMqQ,QAAQ9Q,EAAI9J,MAAU8D,KAAK0zG,WAAiC,IAApB1tG,EAAI9J,GAAKlB,QAC1D,CACA,GAAI8b,GAAW9W,KAAKyzG,YAAa,CAC/B,IAAIoB,EAAc/sF,EAAKA,EAAK9sB,OAAS,IAAM,GAC3C,OAAOgF,KAAK+oD,IACV/iD,EAAI9J,GACJ04G,EACA9sF,EAAKxqB,MAAM,GAAI,GAAGd,OAAOq4G,EAAc5zF,IAGzC,OAAOjhB,KAAK+oD,IAAI/iD,EAAI9J,GAAM04G,EAAK9sF,EAAKtrB,OAAOykB,IAGzCnK,GAAW9W,KAAKyzG,YAClBmB,EAAI9sF,EAAKpiB,KAAK1F,KAAKszG,WAAW92G,OAAO,IAAMN,EAAM,MAAQ8J,EAAI9J,GAE7D04G,EAAI9sF,EAAKtrB,OAAOykB,GAAOvb,KAAK1F,KAAKszG,YAActtG,EAAI9J,KAGvD6M,KAAK/I,OAEF40G,GAGTvB,EAAUY,KAAOJ,EAAK,QACtBR,EAAUiB,KAAOT,EAAK,QACtBR,EAAUmB,SAAWX,EAAK,YAC1BR,EAAUxuF,UAAYgvF,EAAK,aAC3BR,EAAU7I,KAAOqJ,EAAK,QACtBR,EAAU/7F,OAASu8F,EAAK,UACxBR,EAAUvhF,IAAM+hF,EAAK,OACrBR,EAAUrxF,IAAM6xF,EAAK,OACrBR,EAAAA,OAAmBQ,EAAK,UACxBR,EAAUgB,IAAMhB,EAAUt9F,OAAS89F,EAAK,UACxCR,EAAUtqD,IAAM8qD,EAAK,OACrB,CAAC,WAAY,aAAal8F,SAAQ,SAAUyI,GAC1Cra,OAAO+uG,eAAezB,EAAWjzF,EAAM,CACrCyC,IAAK,WACH,OAAO+wF,EAAWL,UAEpBvxF,IAAK,SAAU6wF,GACbe,EAAWL,WAAaV,QAI9B,CAAC,WAAY,YAAa,eAAel7F,SAAQ,SAAUyI,GACzDra,OAAO+uG,eAAezB,EAAWjzF,EAAM,CACrCyC,IAAK,WACH,OAAO+wF,EAAWxzF,IAEpB4B,IAAK,SAAU6wF,GACbe,EAAWxzF,GAAQyyF,QAKzBQ,EAAUX,SAAWA,EAErBj2G,EAAOC,QAAU22G,GAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GCtkBjB,IAAIv2G,EAAW,EAAQ,QACnBqJ,EAAY,EAAQ,QACpB4uG,EAAM,EAAQ,QACdC,EAAmB,EAAQ,QAE3Bn4G,EAAQ,EAAQ,QAChBqC,EAAerC,EAAMqC,aACrB+1G,EAAap4G,EAAMo4G,WACnBC,EAAiBr4G,EAAMq4G,eACvB11G,EAAU3C,EAAM2C,QAChBiK,EAAW5M,EAAM4M,SACjB0rG,EAAgBt4G,EAAMs4G,cACtBC,EAAcv4G,EAAMu4G,YACpBtsG,EAAajM,EAAMiM,WACnBusG,EAAWx4G,EAAMw4G,SACjBv+F,EAAUja,EAAMia,QAChBi8F,EAAgBl2G,EAAMk2G,cACtBuC,EAAOz4G,EAAMy4G,KACbC,EAAc14G,EAAM04G,YACpBC,EAAW34G,EAAM24G,SACjBC,EAAe54G,EAAM44G,aACrBC,EAAS74G,EAAM64G,OACfC,EAAa94G,EAAM84G,WACnBC,EAAY/4G,EAAM+4G,UAClBC,EAAQh5G,EAAMg5G,MACdC,EAAmBj5G,EAAMi5G,iBACzBC,EAAkBl5G,EAAMk5G,gBACxBC,EAAmBn5G,EAAMm5G,iBACzBC,EAAWp5G,EAAMo5G,SACjB/1F,EAAOrjB,EAAMqjB,KACbg2F,EAAgBr5G,EAAMq5G,cACtBC,EAAyBt5G,EAAMs5G,uBAC/BC,EAA0Bv5G,EAAMu5G,wBAChCC,EAAqBx5G,EAAMw5G,mBAC3BC,EAAWz5G,EAAMy5G,SAEjBC,EAAoB,EAAQ,QAAahyG,WAEzCiyG,EAAU,2CAA2Ch1G,MAAM,KAC7Di1G,EAAa,gEAEf,SAAStqG,IACP,OAAQ,IAAID,KAId,IAAIjP,EACgB,oBAAXC,OACHA,OACkB,oBAAXC,OAAyBA,OAAyB,oBAATC,KAAuBA,KAAO,GAChFs5G,EAAYz5G,EAAQQ,SACpBk5G,EAAa15G,EAAQ6N,UAEzB,SAAS8rG,EAAqBnoD,EAAU/pD,GACtC,OAAOoE,EAAWpE,GACd,SAASvI,GACP,OAAOuI,EAASvI,EAAMsyD,IAExB/pD,EAMN,SAASwQ,IA0DP,IAAK,IAAIsc,KAzDTxxB,KAAK62G,WAA8B,iBAAT3wG,OAAqBA,KAAKC,WAEpDnG,KAAK82G,cAAgB1B,EAAYsB,GACjC12G,KAAK+2G,eAAiB3B,EAAYuB,GAClC32G,KAAKg3G,uBAAyB,KAC9Bh3G,KAAKi3G,UAAY,KACjBj3G,KAAKk3G,aAAe,KACpBl3G,KAAKm3G,cAAgB,KACrBn3G,KAAKo3G,WAAa,KAClBp3G,KAAKq3G,eAAiB,KACtBr3G,KAAKs3G,eAAiB,GACtBt3G,KAAKu3G,eAAiB,CAEpBC,QAASv6G,EAAQw6G,gBAAkBx6G,EAAQw6G,eAAehmG,GAC1D1M,OAAQ,aACR2yG,aAAc,GACdC,WAAY,GACZC,cAAe,GACfC,aAAc,GACdC,QAAS,KACT/6G,qBAAAA,EACAg7G,4BAAAA,EACAC,iBAAkB,EAElBC,aAAc,IACdC,gBAAiB,GACjBC,iBAAAA,EACAC,YAAAA,EACAC,WAAY,EACZC,aAAc,IAEhBt4G,KAAKu4G,eAAiB,CACpB/mF,OAAQ,OAKRgnF,eAAgBrC,IAA2B,SAAW,IAExDn2G,KAAKy4G,eAAiB,EACtBz4G,KAAK04G,mBAAAA,EACL14G,KAAK24G,8BAAgC9yG,MAAMqyG,gBAG3Cl4G,KAAK44G,iBAAmB37G,EAAQuH,SAAW,GAC3CxE,KAAK64G,wBAA0B,GAC/B74G,KAAK84G,SAAW,GAChB94G,KAAK+4G,WAAa5sG,IAClBnM,KAAKg5G,iBAAmB,GACxBh5G,KAAKi5G,aAAe,GACpBj5G,KAAKk5G,mBAAqB,KAE1Bl5G,KAAKm5G,UAAYl8G,EAAQS,SACzBsC,KAAKo5G,UAAYp5G,KAAKm5G,WAAan5G,KAAKm5G,UAAUx7G,KAClDqC,KAAKq5G,gBAGcr5G,KAAK44G,iBACtB54G,KAAK64G,wBAAwBrnF,GAAUxxB,KAAK44G,iBAAiBpnF,IAUjEtc,EAAMhQ,UAAY,CAKhBo0G,QAAS,SAETt8G,OAAAA,EAEAF,SAAUA,EASVmM,OAAQ,SAASswG,EAAK7jG,GACpB,IAAItY,EAAO4C,KAEX,GAAI5C,EAAK+5G,cAEP,OADAn3G,KAAKw5G,UAAU,QAAS,4CACjBp8G,EAET,IAAKm8G,EAAK,OAAOn8G,EAEjB,IAAIq8G,EAAgBr8G,EAAKm6G,eAGrB7hG,GACF4/F,EAAK5/F,GAAS,SAASxZ,EAAKuJ,GAEd,SAARvJ,GAA0B,UAARA,GAA2B,SAARA,EACvCkB,EAAKk6G,eAAep7G,GAAOuJ,EAE3Bg0G,EAAcv9G,GAAOuJ,KAK3BrI,EAAKs8G,OAAOH,GAIZE,EAAc/B,aAAah3G,KAAK,qBAChC+4G,EAAc/B,aAAah3G,KAAK,iDAGhC+4G,EAAc/B,aAAe/B,EAAW8D,EAAc/B,cACtD+B,EAAc9B,aAAa8B,EAAc9B,WAAW38G,QAChD26G,EAAW8D,EAAc9B,YAE7B8B,EAAc7B,gBAAgB6B,EAAc7B,cAAc58G,QACtD26G,EAAW8D,EAAc7B,eAE7B6B,EAAc5B,aAAelC,EAAW8D,EAAc5B,cACtD4B,EAAcE,eAAiB32F,KAAKvI,IAClC,EACAuI,KAAKxI,IAAIi/F,EAAcE,gBAAkB,IAAK,MAGhD,IAAIC,EAAyB,CAC3B73G,KAAAA,EACAyC,SAAAA,EACAq1G,KAAAA,EACAn8G,UAAAA,EACAo8G,QAAAA,GAGE3B,EAAkBsB,EAActB,gBACM,oBAAtC,GAAGt4G,SAASpB,KAAK05G,GACnBA,EAAkB5C,EAAYqE,EAAwBzB,IAAAA,IAC7CA,IACTA,EAAkByB,GAEpBH,EAActB,gBAAkBA,EAEhC,IAAI4B,EAAqB,CACvBC,UAAAA,GAGE5B,EAAaqB,EAAcrB,WAW/B,MAVqC,oBAAjC,GAAGv4G,SAASpB,KAAK25G,GACnBA,EAAa7C,EAAYwE,EAAoB3B,IAAAA,IACpCA,IACTA,EAAa2B,GAEfN,EAAcrB,WAAaA,EAE3Bt7G,EAASC,sBAAwB08G,EAAc18G,oBAGxCK,GAWT68G,QAAS,WACP,IAAI78G,EAAO4C,KAyBX,OAxBI5C,EAAK88G,YAAc98G,EAAKs7G,oBAC1B57G,EAASc,OAAO2C,WAAU,WACxBnD,EAAK+8G,wBAAwB37G,MAAMpB,EAAMsB,cAGvCtB,EAAKm6G,eAAeQ,4BACtB36G,EAAKg9G,iCAGPh9G,EAAKi9G,yBAEDj9G,EAAKm6G,eAAea,YAAch7G,EAAKm6G,eAAea,WAAW4B,UACnE58G,EAAKk9G,sBAGHl9G,EAAKm6G,eAAeY,iBAAiB/6G,EAAKm9G,yBAG9Cn9G,EAAKo9G,gBAELp9G,EAAKs7G,mBAAAA,GAGP7yG,MAAMqyG,gBAAkB96G,EAAKm6G,eAAeW,gBACrCl4G,MAQT05G,OAAQ,SAASH,GACf,IACEkB,EADSz6G,KACE06G,UAAUnB,GACrBoB,EAAYF,EAAI3yF,KAAK8yF,YAAY,KACjC9yF,EAAO2yF,EAAI3yF,KAAKhmB,OAAO,EAAG64G,GAHjB36G,KAKN66G,KAAOtB,EALDv5G,KAMNo3G,WAAaqD,EAAIK,KANX96G,KAON+6G,cAAgBN,EAAI94B,MAAQ84B,EAAI94B,KAAK7/E,OAAO,GAPtC9B,KAQNq3G,eAAiBoD,EAAI3yF,KAAKhmB,OAAO64G,EAAY,GARvC36G,KAUNm3G,cAVMn3G,KAUeg7G,iBAAiBP,GAVhCz6G,KAYNi7G,gBAZMj7G,KAaJm3G,cAAgB,IAAMrvF,EAAO,OAbzB9nB,KAauCq3G,eAAiB,UAInEr3G,KAAKq5G,iBAWPxwG,QAAS,SAAS6M,EAAS3V,EAAMK,GAO/B,OANI0I,EAAW4M,KACbtV,EAAOL,GAAQ,GACfA,EAAO2V,EACPA,EAAU,IAGL1V,KAAK6zG,KAAKn+F,EAAS3V,GAAMvB,MAAMwB,KAAMI,IAW9CyzG,KAAM,SAASn+F,EAAS3V,EAAMm7G,GAC5B,IAAI99G,EAAO4C,KAGX,GAAIo1G,EAAYr1G,KAAU+I,EAAW4M,GACnC,OAAOA,EAWT,GAPI5M,EAAW4M,KACb3V,EAAO2V,EACPA,OAAAA,IAKG5M,EAAW/I,GACd,OAAOA,EAIT,IACE,GAAIA,EAAKo7G,UACP,OAAOp7G,EAIT,GAAIA,EAAKq7G,kBACP,OAAOr7G,EAAKq7G,kBAEd,MAAO33G,GAIP,OAAO1D,EAGT,SAAS4xG,IACP,IAAIvxG,EAAO,GACTzF,EAAI+D,UAAU1D,OACd22B,GAAQjc,GAAYA,IAAAA,IAAWA,EAAQic,KAQzC,IANIupF,GAAWpyG,EAAWoyG,IACxBA,EAAQ18G,MAAMwB,KAAMtB,WAKf/D,KAAKyF,EAAKzF,GAAKg3B,EAAOv0B,EAAKy2G,KAAKn+F,EAAShX,UAAU/D,IAAM+D,UAAU/D,GAE1E,IAKE,OAAOoF,EAAKvB,MAAMwB,KAAMI,GACxB,MAAOqD,GAGP,MAFArG,EAAKi+G,qBACLj+G,EAAKk+G,iBAAiB73G,EAAGiS,GACnBjS,GAKV,IAAK,IAAI8T,KAAYxX,EACf21G,EAAO31G,EAAMwX,KACfo6F,EAAQp6F,GAAYxX,EAAKwX,IAW7B,OARAo6F,EAAQzsG,UAAYnF,EAAKmF,UAEzBnF,EAAKq7G,kBAAoBzJ,EAGzBA,EAAQwJ,WAAAA,EACRxJ,EAAQ4J,SAAWx7G,EAEZ4xG,GAQT9wG,UAAW,WAWT,OAVA/D,EAASc,OAAOiD,YAEhBb,KAAKw7G,iCACLx7G,KAAKy7G,2BACLz7G,KAAK07G,mBACL17G,KAAK27G,kBAEL91G,MAAMqyG,gBAAkBl4G,KAAK24G,8BAC7B34G,KAAK04G,mBAAAA,EAEE14G,MAWT47G,yBAA0B,SAAS/nF,GACjC7zB,KAAKw5G,UAAU,QAAS,4CAA6C3lF,GACrE7zB,KAAKs7G,iBAAiBznF,EAAMgoF,OAAQ,CAClCC,UAAW,CACT3wG,KAAM,uBACN4wG,SAAAA,MAUN3B,+BAAgC,WAI9B,OAHAp6G,KAAK47G,yBAA2B57G,KAAK47G,yBAAyB7yG,KAAK/I,MACnE/C,EAAQw2B,kBACNx2B,EAAQw2B,iBAAiB,qBAAsBzzB,KAAK47G,0BAC/C57G,MAQTw7G,+BAAgC,WAG9B,OAFAv+G,EAAQ02B,qBACN12B,EAAQ02B,oBAAoB,qBAAsB3zB,KAAK47G,0BAClD57G,MAUTs7G,iBAAkB,SAASr8G,EAAIyW,GAG7B,GAFAA,EAAU6/F,EAAY,CAACyG,eAAgB,GAAItmG,GAAoB,IAE3DxW,EAAaD,IAAOA,EAAGE,MAEzBF,EAAKA,EAAGE,UACH,CAAA,GAAI81G,EAAWh2G,IAAOi2G,EAAej2G,GAAK,CAK/C,IAAIW,EAAOX,EAAGW,OAASq1G,EAAWh2G,GAAM,WAAa,gBAGrD,OAAOe,KAAKi8G,eAFEh9G,EAAGG,QAAUQ,EAAO,KAAOX,EAAGG,QAAUQ,EAIpD21G,EAAY7/F,EAAS,CAGnBwmG,YAAAA,EACAF,eAAgBtmG,EAAQsmG,eAAiB,KAGxC,GAAIx8G,EAAQP,GAEjBA,EAAKA,MACA,CAAA,IAAIk2G,EAAcl2G,GAavB,OAAOe,KAAKi8G,eACVh9G,EACAs2G,EAAY7/F,EAAS,CACnBwmG,YAAAA,EACAF,eAAgBtmG,EAAQsmG,eAAiB,KAb7CtmG,EAAU1V,KAAKm8G,2CAA2CzmG,EAASzW,GACnEA,EAAK,IAAI4G,MAAM6P,EAAQtW,UAkBzBY,KAAKg3G,uBAAyB/3G,EAO9B,IACE,IAAIb,EAAQtB,EAASuC,kBAAkBJ,GACvCe,KAAKo8G,iBAAiBh+G,EAAOsX,GAC7B,MAAO2mG,GACP,GAAIp9G,IAAOo9G,EACT,MAAMA,EAIV,OAAOr8G,MAGTm8G,2CAA4C,SAASG,EAAgBr9G,GACnE,IAAIs9G,EAASx2G,OAAOP,KAAKvG,GAAIy4C,OACzBhiC,EAAU6/F,EAAY+G,EAAgB,CACxCl9G,QACE,2CAA6Cg3G,EAAwBmG,GACvEC,YAAa,CAACzH,EAAIwH,IAClBv3G,MAAOs3G,EAAet3G,OAAS,KAIjC,OAFA0Q,EAAQ1Q,MAAMy3G,eAAiBpG,EAAmBp3G,GAE3CyW,GAUTumG,eAAgB,SAASp9G,EAAK6W,GAI5B,IACI1V,KAAKu3G,eAAeG,aAAaxsG,OACnClL,KAAKu3G,eAAeG,aAAaxsG,KAAKrM,GAFxC,CAUA,IAOII,EAPA9C,EAAOo5G,EACT,CACEn2G,QAJJP,GAAY,IADZ6W,EAAUA,GAAW,IAerB,IACE,MAAM,IAAI7P,MAAMhH,GAChB,MAAOw9G,GACPp9G,EAAKo9G,EAIPp9G,EAAGW,KAAO,KACV,IAAIxB,EAAQtB,EAASuC,kBAAkBJ,GAGnCy9G,EAAc5lG,EAAQ1Y,EAAMA,QAAUA,EAAMA,MAAM,GAKlDs+G,GAAoC,2BAArBA,EAAY38G,OAC7B28G,EAAct+G,EAAMA,MAAM,IAG5B,IAAIu+G,EAAWD,GAAeA,EAAY59G,KAAQ,GAElD,KACIkB,KAAKu3G,eAAeI,WAAWzsG,OACjClL,KAAKu3G,eAAeI,WAAWzsG,KAAKyxG,OAMlC38G,KAAKu3G,eAAeK,cAAc1sG,MACnClL,KAAKu3G,eAAeK,cAAc1sG,KAAKyxG,IAF1C,CASA,GAAI38G,KAAKu3G,eAAe2E,YAAcxmG,EAAQwmG,YAA+B,KAAjB//G,EAAKiD,QAAgB,CAE/EjD,EAAKqgH,YAAkC,MAApBrgH,EAAKqgH,YAAsB39G,EAAM1C,EAAKqgH,aAEzD9mG,EAAU6/F,EACR,CACEyG,eAAgB,GAElBtmG,IAMMsmG,gBAAkB,EAE1B,IAAIY,EAAS58G,KAAK68G,eAAez+G,EAAOsX,GACxCvZ,EAAK+/G,WAAa,CAEhBU,OAAQA,EAAOhlE,WAcnB,OATIz7C,EAAKqgH,cACPrgH,EAAKqgH,YAAc1lG,EAAQ3a,EAAKqgH,aAC5BrgH,EAAKqgH,YACL,CAACrgH,EAAKqgH,cAIZx8G,KAAK88G,MAAM3gH,GAEJ6D,QAGT+8G,kBAAmB,SAAS/2G,GAC1B,IAAIg3G,EAAQzH,EACV,CACEj8E,UAAWntB,IAAQ,KAErBnG,GAGF,GAAI8C,EAAW9I,KAAKu3G,eAAe0F,oBAAqB,CACtD,IAAIv5G,EAAS1D,KAAKu3G,eAAe0F,mBAAmBD,GAEpD,GAAIvzG,EAAS/F,KAAYqvG,EAAcrvG,GACrCs5G,EAAQt5G,OACH,IAAA,IAAIA,EACT,OAAO1D,KAQX,OAJAA,KAAKi5G,aAAav4G,KAAKs8G,GACnBh9G,KAAKi5G,aAAaj+G,OAASgF,KAAKu3G,eAAeoC,gBACjD35G,KAAKi5G,aAAa5lF,QAEbrzB,MAGTk9G,UAAW,SAASC,GAClB,IAAIC,EAAa,GAAG9/G,MAAMmB,KAAKC,UAAW,GAO1C,OALAsB,KAAK84G,SAASp4G,KAAK,CAACy8G,EAAQC,IACxBp9G,KAAK04G,mBACP14G,KAAKw6G,gBAGAx6G,MASTq9G,eAAgB,SAASvC,GAIvB,OAFA96G,KAAKs3G,eAAewD,KAAOA,EAEpB96G,MASTs9G,gBAAiB,SAASt4G,GAGxB,OAFAhF,KAAKu9G,cAAc,QAASv4G,GAErBhF,MASTw9G,eAAgB,SAASC,GAGvB,OAFAz9G,KAAKu9G,cAAc,OAAQE,GAEpBz9G,MAQTi/C,aAAc,WAGZ,OAFAj/C,KAAKs3G,eAAiB,GAEft3G,MAQTqc,WAAY,WAEV,OAAOnW,KAAKsP,MAAMrP,EAAUnG,KAAKs3G,kBASnCoG,eAAgB,SAASC,GAGvB,OAFA39G,KAAKu3G,eAAeoG,YAAcA,EAE3B39G,MAST49G,WAAY,SAASpG,GAGnB,OAFAx3G,KAAKu3G,eAAeC,QAAUA,EAEvBx3G,MAUT69G,gBAAiB,SAASn5G,GAGxB,OADA1E,KAAKu3G,eAAeuG,aAAelH,EADpB52G,KAAKu3G,eAAeuG,aAC+Bp5G,GAC3D1E,MAUT+9G,sBAAuB,SAASr5G,GAG9B,OADA1E,KAAKu3G,eAAe0F,mBAAqBrG,EAD1B52G,KAAKu3G,eAAe0F,mBACqCv4G,GACjE1E,MAUTg+G,sBAAuB,SAASt5G,GAG9B,OADA1E,KAAKu3G,eAAe0G,mBAAqBrH,EAD1B52G,KAAKu3G,eAAe0G,mBACqCv5G,GACjE1E,MAYTk+G,aAAc,SAASC,GAGrB,OAFAn+G,KAAKu3G,eAAe4G,UAAYA,EAEzBn+G,MAQT/B,cAAe,WACb,OAAO+B,KAAKg3G,wBAQdoH,YAAa,WACX,OAAOp+G,KAAKk3G,cAQdgD,QAAS,WACP,SAAKl6G,KAAK62G,WACL72G,KAAKm3G,gBACHn3G,KAAKq+G,0BACRr+G,KAAKq+G,yBAAAA,EACLr+G,KAAKw5G,UAAU,QAAS,0CAEnB,KAKXpkG,UAAW,WAIT,IAAIkpG,EAAcrhH,EAAQqhH,YACtBA,GACFt+G,KAAKiJ,OAAOq1G,EAAY/E,IAAK+E,EAAYr1G,QAAQgxG,WAIrDsE,iBAAkB,SAAS7oG,GACzB,GACGghG,EADH,CAcA,KATAhhG,EAAU6/F,EACR,CACEiJ,QAASx+G,KAAKo+G,cACd7E,IAAKv5G,KAAK66G,KACVC,KAAM96G,KAAKs3G,eAAewD,MAAQ,IAEpCplG,IAGW8oG,QACX,MAAM,IAAIxJ,EAAiB,mBAG7B,IAAKt/F,EAAQ6jG,IACX,MAAM,IAAIvE,EAAiB,eAG7B,IAAIyJ,EAAS3iH,mBACT4iH,EAAiB,GAErB,IAAK,IAAIxiH,KAAOwZ,EACd,GAAY,SAARxZ,EAAgB,CAClB,IAAI4+G,EAAOplG,EAAQolG,KACfA,EAAKl7G,MAAM8+G,EAAeh+G,KAAK,QAAU+9G,EAAO3D,EAAKl7G,OACrDk7G,EAAK6D,OAAOD,EAAeh+G,KAAK,SAAW+9G,EAAO3D,EAAK6D,aAE3DD,EAAeh+G,KAAK+9G,EAAOviH,GAAO,IAAMuiH,EAAO/oG,EAAQxZ,KAG3D,IAAI0iH,EAAe5+G,KAAKg7G,iBAAiBh7G,KAAK06G,UAAUhlG,EAAQ6jG,MAE5DsF,EAASnI,EAAUlsG,cAAc,UACrCq0G,EAAO3qG,OAAAA,EACP2qG,EAAOlxG,IAAMixG,EAAe,0BAA4BF,EAAeh5G,KAAK,MAC3EgxG,EAAUoI,MAAQpI,EAAUprG,MAAMqB,YAAYkyG,KAIjDxD,mBAAoB,WAClB,IAAIj+G,EAAO4C,KACXA,KAAKy4G,gBAAkB,EACvBp4G,YAAW,WAETjD,EAAKq7G,gBAAkB,MAI3BsG,cAAe,SAASnhD,EAAWloD,GAEjC,IAAI+mD,EAAKvgE,EAET,GAAK8D,KAAK82G,aAAV,CAcA,IAAK56G,KAZLwZ,EAAUA,GAAW,GAErBkoD,EAAY,QAAUA,EAAU97D,OAAO,EAAG,GAAGokB,cAAgB03C,EAAU97D,OAAO,GAE1E40G,EAAU3sG,aACZ0yD,EAAMi6C,EAAU3sG,YAAY,eACxBi1G,UAAUphD,GAAAA,GAAW,IAEzBnB,EAAMi6C,EAAUuI,qBACZrhD,UAAYA,EAGNloD,EACNggG,EAAOhgG,EAASxZ,KAClBugE,EAAIvgE,GAAOwZ,EAAQxZ,IAGvB,GAAIw6G,EAAU3sG,YAEZ2sG,EAAU7sG,cAAc4yD,QAIxB,IACEi6C,EAAUwI,UAAU,KAAOziD,EAAImB,UAAUlvD,cAAe+tD,GACxD,MAAOh5D,OAYb07G,wBAAyB,SAASC,GAChC,IAAIhiH,EAAO4C,KACX,OAAO,SAASy8D,GASd,GALAr/D,EAAKiiH,iBAAmB,KAKpBjiH,EAAK87G,qBAAuBz8C,EAAhC,CAQA,IAAI9xD,EANJvN,EAAK87G,mBAAqBz8C,EAO1B,IACE9xD,EAASmrG,EAAiBr5C,EAAI9xD,QAC9B,MAAOlH,GACPkH,EAAS,YAGXvN,EAAK2/G,kBAAkB,CACrBuC,SAAU,MAAQF,EAClBhgH,QAASuL,OAUf40G,sBAAuB,WACrB,IAAIniH,EAAO4C,KAMX,OAAO,SAASy8D,GACd,IAAI9xD,EACJ,IACEA,EAAS8xD,EAAI9xD,OACb,MAAOlH,GAGP,OAEF,IAAIqK,EAAUnD,GAAUA,EAAOmD,QAK/B,GACGA,IACY,UAAZA,GAAmC,aAAZA,GAA2BnD,EAAO60G,mBAF5D,CAQA,IAAItuG,EAAU9T,EAAKiiH,iBACdnuG,GACH9T,EAAK+hH,wBAAwB,QAA7B/hH,CAAsCq/D,GAExC7sD,aAAasB,GACb9T,EAAKiiH,iBAAmBh/G,YAAW,WACjCjD,EAAKiiH,iBAAmB,OAjCP,QA4CvBI,kBAAmB,SAASlrC,EAAM5H,GAChC,IAAI+yC,EAAYzJ,EAASj2G,KAAKm5G,UAAUx7G,MACpCgiH,EAAW1J,EAAStpC,GACpBizC,EAAa3J,EAAS1hC,GAK1Bv0E,KAAKo5G,UAAYzsC,EAIb+yC,EAAUj9G,WAAak9G,EAASl9G,UAAYi9G,EAAUhqF,OAASiqF,EAASjqF,OAC1Ei3C,EAAKgzC,EAASE,UACZH,EAAUj9G,WAAam9G,EAAWn9G,UAAYi9G,EAAUhqF,OAASkqF,EAAWlqF,OAC9E6+C,EAAOqrC,EAAWC,UAEpB7/G,KAAK+8G,kBAAkB,CACrBuC,SAAU,aACVnjH,KAAM,CACJwwE,GAAIA,EACJ4H,KAAMA,MAKZ8lC,uBAAwB,WACtB,IAAIj9G,EAAO4C,KACX5C,EAAK0iH,0BAA4B76G,SAASC,UAAUrF,SAEpDoF,SAASC,UAAUrF,SAAW,WAC5B,OACSzC,EAAK0iH,0BAA0BthH,MADpB,mBAATwB,MAAuBA,KAAKm7G,UACOn7G,KAAKu7G,SAEPv7G,KAFiBtB,aAMjE+8G,yBAA0B,WACpBz7G,KAAK8/G,4BAEP76G,SAASC,UAAUrF,SAAWG,KAAK8/G,4BAQvCxF,oBAAqB,WACnB,IAAIl9G,EAAO4C,KAEP+/G,EAAkB3iH,EAAK47G,iBAE3B,SAASgH,EAAWC,GAClB,OAAO,SAAS77G,EAAIpK,GAKlB,IADA,IAAIoG,EAAO,IAAIqG,MAAM/H,UAAU1D,QACtBL,EAAI,EAAGA,EAAIyF,EAAKpF,SAAUL,EACjCyF,EAAKzF,GAAK+D,UAAU/D,GAEtB,IAAIulH,EAAmB9/G,EAAK,GAgB5B,OAfI0I,EAAWo3G,KACb9/G,EAAK,GAAKhD,EAAKy2G,KACb,CACEiI,UAAW,CACT3wG,KAAM,aACNhP,KAAM,CAACgkH,SAAUF,EAAKrgH,MAAQ,iBAGlCsgH,IAOAD,EAAKzhH,MACAyhH,EAAKzhH,MAAMwB,KAAMI,GAEjB6/G,EAAK7/G,EAAK,GAAIA,EAAK,KAKhC,IAAI+3G,EAAkBn4G,KAAKu3G,eAAeY,gBAE1C,SAASiI,EAAgBjjH,GACvB,IAAIod,EAAQtd,EAAQE,IAAWF,EAAQE,GAAQ+H,UAC3CqV,GAASA,EAAMhc,gBAAkBgc,EAAMhc,eAAe,sBACxD2hB,EACE3F,EACA,oBACA,SAAS0lG,GACP,OAAO,SAASb,EAASh7G,EAAIi8G,EAASC,GAEpC,IACMl8G,GAAMA,EAAGm8G,cACXn8G,EAAGm8G,YAAcnjH,EAAKy2G,KACpB,CACEiI,UAAW,CACT3wG,KAAM,aACNhP,KAAM,CACJwO,OAAQxN,EACRgjH,SAAU,cACV3/G,QAAU4D,GAAMA,EAAGxE,MAAS,iBAIlCwE,EAAGm8G,cAGP,MAAOz6G,IAMT,IAAI44C,EAAQ8hE,EAAcC,EA6B1B,OA1BEtI,GACAA,EAAgB0B,MACJ,gBAAX18G,GAAuC,SAAXA,KAI7BqjH,EAAepjH,EAAK+hH,wBAAwB,SAC5CsB,EAAkBrjH,EAAKmiH,wBACvB7gE,EAAS,SAAS+d,GAIhB,GAAKA,EAAL,CAEA,IAAImB,EACJ,IACEA,EAAYnB,EAAItxD,KAChB,MAAO1H,GAGP,OAEF,MAAkB,UAAdm6D,EAA8B4iD,EAAa/jD,GACxB,aAAdmB,EAAiC6iD,EAAgBhkD,QAAAA,KAGvDwjD,EAAKxhH,KACVuB,KACAo/G,EACAhiH,EAAKy2G,KACH,CACEiI,UAAW,CACT3wG,KAAM,aACNhP,KAAM,CACJwO,OAAQxN,EACRgjH,SAAU,mBACV3/G,QAAU4D,GAAMA,EAAGxE,MAAS,iBAIlCwE,EACAs6C,GAEF2hE,EACAC,MAINP,GAEF7/F,EACE3F,EACA,uBACA,SAAS0lG,GACP,OAAO,SAASxjD,EAAKr4D,EAAIi8G,EAASC,GAChC,IACEl8G,EAAKA,IAAOA,EAAGg3G,kBAAoBh3G,EAAGg3G,kBAAoBh3G,GAC1D,MAAOX,IAGT,OAAOw8G,EAAKxhH,KAAKuB,KAAMy8D,EAAKr4D,EAAIi8G,EAASC,MAG7CP,IAKN7/F,EAAKjjB,EAAS,aAAc+iH,EAAYD,GACxC7/F,EAAKjjB,EAAS,cAAe+iH,EAAYD,GACrC9iH,EAAQ47B,uBACV3Y,EACEjjB,EACA,yBACA,SAASgjH,GACP,OAAO,SAAS9kE,GACd,OAAO8kE,EACL7iH,EAAKy2G,KACH,CACEiI,UAAW,CACT3wG,KAAM,aACNhP,KAAM,CACJgkH,SAAU,wBACV3/G,QAAUy/G,GAAQA,EAAKrgH,MAAS,iBAItCu7C,OAKR4kE,GAqCJ,IA/BA,IAAIW,EAAe,CACjB,cACA,SACA,OACA,mBACA,iBACA,oBACA,kBACA,cACA,aACA,qBACA,cACA,aACA,iBACA,eACA,kBACA,cACA,cACA,eACA,qBACA,SACA,YACA,eACA,gBACA,YACA,kBACA,SACA,iBACA,4BACA,wBAEO/lH,EAAI,EAAGA,EAAI+lH,EAAa1lH,OAAQL,IACvCylH,EAAgBM,EAAa/lH,KAajC4/G,uBAAwB,WACtB,IAAIn9G,EAAO4C,KACPm4G,EAAkBn4G,KAAKu3G,eAAeY,gBAEtC4H,EAAkB3iH,EAAK47G,iBAE3B,SAAS2H,EAASvgG,EAAMre,GAClBqe,KAAQre,GAAO+G,EAAW/G,EAAIqe,KAChCF,EAAKne,EAAKqe,GAAM,SAAS6/F,GACvB,OAAO7iH,EAAKy2G,KACV,CACEiI,UAAW,CACT3wG,KAAM,aACNhP,KAAM,CAACgkH,SAAU//F,EAAM5f,QAAUy/G,GAAQA,EAAKrgH,MAAS,iBAG3DqgH,MAMR,GAAI9H,EAAgBp2G,KAAO,mBAAoB9E,EAAS,CACtD,IAAI2jH,EAAW3jH,EAAQ+E,gBAAkB/E,EAAQ+E,eAAekD,UAChEgb,EACE0gG,EACA,QACA,SAASC,GACP,OAAO,SAASrvF,EAAQ1yB,GAYtB,OARIu2G,EAASv2G,KAA0C,IAAlCA,EAAI8C,QAAQxE,EAAKg6G,cACpCp3G,KAAK8gH,YAAc,CACjBtvF,OAAQA,EACR1yB,IAAKA,EACLiiH,YAAa,OAIVF,EAASriH,MAAMwB,KAAMtB,cAGhCqhH,GAGF7/F,EACE0gG,EACA,QACA,SAASI,GACP,OAAO,WAEL,IAAIj/G,EAAM/B,KAEV,SAASihH,IACP,GAAIl/G,EAAI++G,aAAkC,IAAnB/+G,EAAI8L,WAAkB,CAC3C,IAGE9L,EAAI++G,YAAYC,YAAch/G,EAAII,OAClC,MAAOsB,IAITrG,EAAK2/G,kBAAkB,CACrB5xG,KAAM,OACNm0G,SAAU,MACVnjH,KAAM4F,EAAI++G,eAMhB,IADA,IAAIvuC,EAAQ,CAAC,SAAU,UAAW,cACzB7wE,EAAI,EAAGA,EAAI6wE,EAAMv3E,OAAQ0G,IAChCi/G,EAASpuC,EAAM7wE,GAAIK,GA6BrB,MA1BI,uBAAwBA,GAAO+G,EAAW/G,EAAI6L,oBAChDsS,EACEne,EACA,sBACA,SAASk+G,GACP,OAAO7iH,EAAKy2G,KACV,CACEiI,UAAW,CACT3wG,KAAM,aACNhP,KAAM,CACJgkH,SAAU,qBACV3/G,QAAUy/G,GAAQA,EAAKrgH,MAAS,iBAItCqgH,EACAgB,MAONl/G,EAAI6L,mBAAqBqzG,EAGpBD,EAASxiH,MAAMwB,KAAMtB,cAGhCqhH,GAIA5H,EAAgBp2G,KAAOm0G,KACzBh2F,EACEjjB,EACA,SACA,SAASikH,GACP,OAAO,WAKL,IADA,IAAI9gH,EAAO,IAAIqG,MAAM/H,UAAU1D,QACtBL,EAAI,EAAGA,EAAIyF,EAAKpF,SAAUL,EACjCyF,EAAKzF,GAAK+D,UAAU/D,GAGtB,IAEImE,EAFAqiH,EAAa/gH,EAAK,GAClBoxB,EAAS,MAeb,GAZ0B,iBAAf2vF,EACTriH,EAAMqiH,EACG,YAAalkH,GAAWkkH,aAAsBlkH,EAAQmkH,SAC/DtiH,EAAMqiH,EAAWriH,IACbqiH,EAAW3vF,SACbA,EAAS2vF,EAAW3vF,SAGtB1yB,EAAM,GAAKqiH,GAIyB,IAAlCriH,EAAI8C,QAAQxE,EAAKg6G,YACnB,OAAO8J,EAAU1iH,MAAMwB,KAAMI,GAG3BA,EAAK,IAAMA,EAAK,GAAGoxB,SACrBA,EAASpxB,EAAK,GAAGoxB,QAGnB,IAAI6vF,EAAY,CACd7vF,OAAQA,EACR1yB,IAAKA,EACLiiH,YAAa,MAGf,OAAOG,EACJ1iH,MAAMwB,KAAMI,GACZsP,MAAK,SAAS9F,GASb,OARAy3G,EAAUN,YAAcn3G,EAASzH,OAEjC/E,EAAK2/G,kBAAkB,CACrB5xG,KAAM,OACNm0G,SAAU,QACVnjH,KAAMklH,IAGDz3G,KAXJs3G,OAaK,SAASp7G,GASjB,MAPA1I,EAAK2/G,kBAAkB,CACrB5xG,KAAM,OACNm0G,SAAU,QACVnjH,KAAMklH,EACN58G,MAAO,UAGHqB,QAIdi6G,GAMA5H,EAAgB0B,KAAO75G,KAAK82G,eAC1BJ,EAAUjjF,kBACZijF,EAAUjjF,iBAAiB,QAASr2B,EAAK+hH,wBAAwB,UAAA,GACjEzI,EAAUjjF,iBAAiB,WAAYr2B,EAAKmiH,yBAAAA,IACnC7I,EAAUnjF,cAEnBmjF,EAAUnjF,YAAY,UAAWn2B,EAAK+hH,wBAAwB,UAC9DzI,EAAUnjF,YAAY,aAAcn2B,EAAKmiH,2BAQ7C,IAAIr+G,EAASjE,EAAQiE,OAOrB,GAAIi3G,EAAgBz6G,YANMwD,GAAUA,EAAOogH,KAAOpgH,EAAOogH,IAAIC,UAG3DtkH,EAAQukH,SACRvkH,EAAQukH,QAAQC,WAChBxkH,EAAQukH,QAAQE,aACsC,CAEtD,IAAIC,EAAgB1kH,EAAQ2kH,WAC5B3kH,EAAQ2kH,WAAa,WACnB,IAAIC,EAAczkH,EAAK+7G,UAAUx7G,KAGjC,GAFAP,EAAKqiH,kBAAkBriH,EAAKg8G,UAAWyI,GAEnCF,EACF,OAAOA,EAAcnjH,MAAMwB,KAAMtB,YAIrC,IAAIojH,EAA6B,SAASC,GAGxC,OAAO,WACL,IAAIjjH,EAAMJ,UAAU1D,OAAS,EAAI0D,UAAU,QAAA,EAQ3C,OALII,GAEF1B,EAAKqiH,kBAAkBriH,EAAKg8G,UAAWt6G,EAAM,IAGxCijH,EAAiBvjH,MAAMwB,KAAMtB,aAIxCwhB,EAAKjjB,EAAQukH,QAAS,YAAaM,EAA4B/B,GAC/D7/F,EAAKjjB,EAAQukH,QAAS,eAAgBM,EAA4B/B,GAGpE,GAAI5H,EAAgB3zG,SAAW,YAAavH,GAAWuH,QAAQgb,IAAK,CAElE,IAAIwiG,EAAwB,SAASnjH,EAAK1C,GACxCiB,EAAK2/G,kBAAkB,CACrB39G,QAASP,EACT4F,MAAOtI,EAAKsI,MACZ66G,SAAU,aAIdhK,EAAK,CAAC,QAAS,OAAQ,OAAQ,QAAS,QAAQ,SAAS99F,EAAG/S,GAC1D8xG,EAAkB/xG,QAASC,EAAOu9G,QAKxCtG,iBAAkB,WAGhB,IADA,IAAIuG,EACGjiH,KAAKg5G,iBAAiBh+G,SAC3BinH,EAAUjiH,KAAKg5G,iBAAiB3lF,SAEd,GACT4uF,EAAQ,IACRA,EAAQ,IAMrBtG,gBAAiB,WAEf,IAAK,IAAInqF,KAAUxxB,KAAK64G,wBACtB74G,KAAK44G,iBAAiBpnF,GAAUxxB,KAAK64G,wBAAwBrnF,IAIjEgpF,cAAe,WACb,IAAIp9G,EAAO4C,KAGXs1G,EAAKt1G,KAAK84G,UAAU,SAASthG,EAAG2lG,GACdA,EAAO,GAEb3+G,MAAMpB,EAAM,CAACA,GAAMZ,OADlB2gH,EAAO,SAKtBzC,UAAW,SAAS5oF,GAClB,IAAItkB,EAAIipG,EAAWh1G,KAAKqwB,GACtBynF,EAAM,GACN5+G,EAAI,EAEN,IACE,KAAOA,KAAK4+G,EAAI/C,EAAQ77G,IAAM6S,EAAE7S,IAAM,GACtC,MAAO8I,GACP,MAAM,IAAIuxG,EAAiB,gBAAkBljF,GAG/C,GAAIynF,EAAI53B,OAAS3hF,KAAKu3G,eAAe2K,eACnC,MAAM,IAAIlN,EACR,kFAIJ,OAAOuE,GAGTyB,iBAAkB,SAASP,GAEzB,IAAImE,EAAe,KAAOnE,EAAI/kF,MAAQ+kF,EAAI93G,KAAO,IAAM83G,EAAI93G,KAAO,IAKlE,OAHI83G,EAAIh4G,WACNm8G,EAAenE,EAAIh4G,SAAW,IAAMm8G,GAE/BA,GAGTzE,wBAAyB,SAASv3G,EAAW8S,IAC3CA,EAAUA,GAAW,IACbomG,UAAYpmG,EAAQomG,WAAa,CACvC3wG,KAAM,UACN4wG,SAAAA,GAIG/7G,KAAKy4G,gBACRz4G,KAAKo8G,iBAAiBx5G,EAAW8S,IAIrC0mG,iBAAkB,SAASx5G,EAAW8S,GACpC,IAAIknG,EAAS58G,KAAK68G,eAAej6G,EAAW8S,GAE5C1V,KAAK++G,cAAc,SAAU,CAC3Bn8G,UAAWA,EACX8S,QAASA,IAGX1V,KAAKmiH,kBACHv/G,EAAUhD,KACVgD,EAAUxD,QACVwD,EAAU9D,IACV8D,EAAUw/G,OACVxF,EACAlnG,IAIJmnG,eAAgB,SAASj6G,EAAW8S,GAClC,IAAItY,EAAO4C,KACP48G,EAAS,GACb,GAAIh6G,EAAUxE,OAASwE,EAAUxE,MAAMpD,SACrCs6G,EAAK1yG,EAAUxE,OAAO,SAASzD,EAAGyD,GAChC,IAAIikH,EAAQjlH,EAAKklH,gBAAgBlkH,EAAOwE,EAAU9D,KAC9CujH,GACFzF,EAAOl8G,KAAK2hH,MAKZ3sG,GAAWA,EAAQsmG,gBACrB,IAAK,IAAIt6G,EAAI,EAAGA,EAAIgU,EAAQsmG,gBAAkBt6G,EAAIk7G,EAAO5hH,OAAQ0G,IAC/Dk7G,EAAOl7G,GAAG6gH,QAAAA,EAKhB,OADA3F,EAASA,EAAOt/G,MAAM,EAAG0C,KAAKu3G,eAAeW,kBAI/CoK,gBAAiB,SAASD,EAAOG,GAE/B,IAAIC,EAAa,CACfC,SAAUL,EAAMvjH,IAChBsjH,OAAQC,EAAM3iH,KACdijH,MAAON,EAAM1iH,OACbwgH,SAAUkC,EAAMtiH,MAAQ,KAuB1B,OAfKsiH,EAAMvjH,MACT2jH,EAAWC,SAAWF,GAGxBC,EAAWF,SAGNviH,KAAKu3G,eAAeM,aAAa3sG,OACjClL,KAAKu3G,eAAeM,aAAa3sG,KAAKu3G,EAAWC,WAEpD,qBAAqBx3G,KAAKu3G,EAAAA,WAE1B,qBAAqBv3G,KAAKu3G,EAAWC,WAGhCD,GAGTN,kBAAmB,SAASh3G,EAAM/L,EAASu9G,EAASyF,EAAQxF,EAAQlnG,GAClE,IASIwmG,EATA0G,GAAmBz3G,EAAOA,EAAO,KAAO,KAAO/L,GAAW,IAC9D,KACIY,KAAKu3G,eAAeG,aAAaxsG,OAClClL,KAAKu3G,eAAeG,aAAaxsG,KAAK9L,KACrCY,KAAKu3G,eAAeG,aAAaxsG,KAAK03G,MAOtChG,GAAUA,EAAO5hH,QACnB2hH,EAAUC,EAAO,GAAG8F,UAAY/F,EAGhCC,EAAOhlE,UACPskE,EAAa,CAACU,OAAQA,IACbD,IACTT,EAAa,CACXU,OAAQ,CACN,CACE8F,SAAU/F,EACVyF,OAAQA,EACRG,QAAAA,QAOJviH,KAAKu3G,eAAeI,WAAWzsG,OACjClL,KAAKu3G,eAAeI,WAAWzsG,KAAKyxG,OAMlC38G,KAAKu3G,eAAeK,cAAc1sG,MACnClL,KAAKu3G,eAAeK,cAAc1sG,KAAKyxG,KAF1C,CAOA,IAAIxgH,EAAOo5G,EACT,CAEEj3G,UAAW,CACTukH,OAAQ,CACN,CACE13G,KAAMA,EACN1F,MAAOrG,EACP88G,WAAYA,KAIlB4G,YAAanG,GAEfjnG,GAGEzW,EAAK9C,EAAKmC,UAAUukH,OAAO,GAChB,MAAX5jH,EAAGkM,MAA6B,KAAblM,EAAGwG,QACxBxG,EAAGwG,MAAQ,+BAMRtJ,EAAKmC,UAAUw9G,WAAa3/G,EAAK2/G,YACpC3/G,EAAKmC,UAAUw9G,UAAY3/G,EAAK2/G,iBACzB3/G,EAAK2/G,WAGd3/G,EAAKmC,UAAUw9G,UAAYvG,EACzB,CACEpqG,KAAM,UACN4wG,SAAAA,GAEF5/G,EAAKmC,UAAUw9G,WAAa,IAI9B97G,KAAK88G,MAAM3gH,KAGb4mH,YAAa,SAAS5mH,GAGpB,IAAIse,EAAMza,KAAKu3G,eAAeS,iBAI9B,GAHI77G,EAAKiD,UACPjD,EAAKiD,QAAUo2G,EAASr5G,EAAKiD,QAASqb,IAEpCte,EAAKmC,UAAW,CAClB,IAAIA,EAAYnC,EAAKmC,UAAUukH,OAAO,GACtCvkH,EAAUmH,MAAQ+vG,EAASl3G,EAAUmH,MAAOgV,GAG9C,IAAI4d,EAAUl8B,EAAKk8B,QAanB,OAZIA,IACEA,EAAQv5B,MACVu5B,EAAQv5B,IAAM02G,EAASn9E,EAAQv5B,IAAKkB,KAAKu3G,eAAeU,eAEtD5/E,EAAQ2qF,UACV3qF,EAAQ2qF,QAAUxN,EAASn9E,EAAQ2qF,QAAShjH,KAAKu3G,eAAeU,gBAIhE97G,EAAK8mH,aAAe9mH,EAAK8mH,YAAYJ,QACvC7iH,KAAKkjH,iBAAiB/mH,EAAK8mH,aAEtB9mH,GAMT+mH,iBAAkB,SAASD,GAQzB,IALA,IACEE,EACAnG,EACA7gH,EAHEinH,EAAW,CAAC,KAAM,OAAQ,OAKrBzoH,EAAI,EAAGA,EAAIsoH,EAAYJ,OAAO7nH,SAAUL,EAE/C,IADAqiH,EAAQiG,EAAYJ,OAAOloH,IAElB4D,eAAe,SACrBkL,EAASuzG,EAAM7gH,QAChBs5G,EAAauH,EAAM7gH,MAHrB,CAOAA,EAAOo5G,EAAY,GAAIyH,EAAM7gH,MAC7B,IAAK,IAAIuF,EAAI,EAAGA,EAAI0hH,EAASpoH,SAAU0G,EAEjCvF,EAAKoC,eADT4kH,EAAUC,EAAS1hH,KACiBvF,EAAKgnH,KACvChnH,EAAKgnH,GAAW3N,EAASr5G,EAAKgnH,GAAUnjH,KAAKu3G,eAAeU,eAGhEgL,EAAYJ,OAAOloH,GAAGwB,KAAOA,IAIjCknH,aAAc,WACZ,GAAKrjH,KAAK+2G,eAAkB/2G,KAAK82G,aAAjC,CACA,IAAIwM,EAAW,GAkBf,OAhBItjH,KAAK+2G,eAAiBJ,EAAWjrG,YACnC43G,EAASxL,QAAU,CACjB,aAAcnB,EAAWjrG,YAKzBzO,EAAQS,UAAYT,EAAQS,SAASC,OACvC2lH,EAASxkH,IAAM7B,EAAQS,SAASC,MAG9BqC,KAAK82G,cAAgBJ,EAAU6M,WAC5BD,EAASxL,UAASwL,EAASxL,QAAU,IAC1CwL,EAASxL,QAAQkL,QAAUtM,EAAU6M,UAGhCD,IAGTjK,cAAe,WACbr5G,KAAKwjH,iBAAmB,EACxBxjH,KAAKyjH,cAAgB,MAGvBC,eAAgB,WACd,OAAO1jH,KAAKwjH,kBAAoBr3G,IAAQnM,KAAKyjH,cAAgBzjH,KAAKwjH,kBAYpEG,cAAe,SAAS9hG,GACtB,IAAI+hG,EAAO5jH,KAAKi3G,UAEhB,SACG2M,GACD/hG,EAAQziB,UAAYwkH,EAAKxkH,SACzByiB,EAAQihG,cAAgBc,EAAKd,eAK3BjhG,EAAQq6F,YAAc0H,EAAK1H,WACtBlG,EAAiBn0F,EAAQq6F,WAAY0H,EAAK1H,YACxCr6F,EAAQvjB,WAAaslH,EAAKtlH,UAE5By3G,EAAgBl0F,EAAQvjB,UAAWslH,EAAKtlH,YACtCujB,EAAQ26F,cAAeoH,EAAKpH,aAC9BqH,QAAQhiG,EAAQ26F,aAAeoH,EAAKpH,cACzCt2G,KAAKC,UAAU0b,EAAQ26F,eAAiBt2G,KAAKC,UAAUy9G,EAAKpH,eAMlEsH,iBAAkB,SAASzrF,GAEzB,IAAIr4B,KAAK0jH,iBAAT,CAIA,IAAIvhH,EAASk2B,EAAQl2B,OAKrB,GAAiB,MAAXA,GAA6B,MAAXA,GAA6B,MAAXA,EAA1C,CAEA,IAAI4hH,EACJ,IAIIA,EADE7N,IACM79E,EAAQy/E,QAAQj1F,IAAI,eAEpBwV,EAAQ2rF,kBAAkB,eAIpCD,EAA8B,IAAtB11G,SAAS01G,EAAO,IACxB,MAAOtgH,IAITzD,KAAKwjH,iBAAmBO,GAII,EAAxB/jH,KAAKwjH,kBAAwB,IAEjCxjH,KAAKyjH,cAAgBt3G,OAGvB2wG,MAAO,SAAS3gH,GACd,IAAIs9G,EAAgBz5G,KAAKu3G,eAErB0M,EAAW,CACXC,QAASlkH,KAAKq3G,eACdtyG,OAAQ00G,EAAc10G,OACtBo/G,SAAU,cAEZb,EAAWtjH,KAAKqjH,eAEdC,IACFW,EAAS5rF,QAAUirF,GAIjBnnH,EAAK6/G,uBAAuB7/G,EAAK6/G,gBAErC7/G,EAAOo5G,EAAY0O,EAAU9nH,IAGxBshH,KAAOlI,EAAYA,EAAY,GAAIv1G,KAAKs3G,eAAemG,MAAOthH,EAAKshH,MACxEthH,EAAK6I,MAAQuwG,EAAYA,EAAY,GAAIv1G,KAAKs3G,eAAetyG,OAAQ7I,EAAK6I,OAG1E7I,EAAK6I,MAAM,oBAAsBmH,IAAQnM,KAAK+4G,WAE1C/4G,KAAKi5G,cAAgBj5G,KAAKi5G,aAAaj+G,OAAS,IAGlDmB,EAAK8mH,YAAc,CACjBJ,OAAQ,GAAGvlH,MAAMmB,KAAKuB,KAAKi5G,aAAc,KAIzCj5G,KAAKs3G,eAAewD,OAEtB3+G,EAAK2+G,KAAO96G,KAAKs3G,eAAewD,MAI9BrB,EAAckE,cAAaxhH,EAAKwhH,YAAclE,EAAckE,aAG5DlE,EAAcjC,UAASr7G,EAAKq7G,QAAUiC,EAAcjC,SAGpDiC,EAAc2K,aAAYjoH,EAAKkoH,YAAc5K,EAAc2K,YAE/DjoH,EAAO6D,KAAKskH,cAAcnoH,GAG1B4J,OAAOP,KAAKrJ,GAAMwb,SAAQ,SAASzb,IAChB,MAAbC,EAAKD,IAA8B,KAAdC,EAAKD,IAAe62G,EAAc52G,EAAKD,aACvDC,EAAKD,MAIZ4M,EAAW2wG,EAAcqE,gBAC3B3hH,EAAOs9G,EAAcqE,aAAa3hH,IAASA,GAIxCA,IAAQ42G,EAAc52G,KAMzB2M,EAAW2wG,EAAcwE,sBACxBxE,EAAcwE,mBAAmB9hH,KAOhC6D,KAAK0jH,iBACP1jH,KAAKw5G,UAAU,OAAQ,uCAAwCr9G,GAIzB,iBAA7Bs9G,EAAcpB,WACnBr1F,KAAKc,SAAW21F,EAAcpB,YAChCr4G,KAAKukH,sBAAsBpoH,GAG7B6D,KAAKukH,sBAAsBpoH,MAI/BmoH,cAAe,SAASnoH,GACtB,OAAOm6G,EAASn6G,EAAM6D,KAAKu3G,eAAee,eAG5CkM,SAAU,WACR,OAAO3O,KAGT0O,sBAAuB,SAASpoH,EAAMuI,GACpC,IAAItH,EAAO4C,KACPy5G,EAAgBz5G,KAAKu3G,eAEzB,GAAKv3G,KAAKk6G,UAQV,GALA/9G,EAAO6D,KAAK+iH,YAAY5mH,GAKnB6D,KAAKu3G,eAAekN,kBAAmBzkH,KAAK2jH,cAAcxnH,GAA/D,CAQA6D,KAAKk3G,aAAe/6G,EAAKuoH,WAAavoH,EAAKuoH,SAAW1kH,KAAKwkH,YAG3DxkH,KAAKi3G,UAAY96G,EAEjB6D,KAAKw5G,UAAU,QAAS,uBAAwBr9G,GAEhD,IAAIwoH,EAAO,CACTC,eAAgB,IAChBC,cAAe,YAAc7kH,KAAKs5G,QAClCwL,WAAY9kH,KAAKo3G,YAGfp3G,KAAK+6G,gBACP4J,EAAKI,cAAgB/kH,KAAK+6G,eAG5B,IAAIz8G,EAAYnC,EAAKmC,WAAanC,EAAKmC,UAAUukH,OAAO,GAItD7iH,KAAKu3G,eAAeY,iBACpBn4G,KAAKu3G,eAAeY,gBAAgB2B,QAEpC95G,KAAK+8G,kBAAkB,CACrBuC,SAAU,SACVlgH,QAASd,GACJA,EAAU6M,KAAO7M,EAAU6M,KAAO,KAAO,IAAM7M,EAAUmH,MAC1DtJ,EAAKiD,QACTslH,SAAUvoH,EAAKuoH,SACfjgH,MAAOtI,EAAKsI,OAAS,UAIzB,IAAI3F,EAAMkB,KAAKi7G,iBACdxB,EAAc0E,WAAan+G,KAAKglH,cAAcvmH,KAAKuB,KAAM,CACxDlB,IAAKA,EACL6lH,KAAMA,EACNxoH,KAAMA,EACNuZ,QAAS+jG,EACTwL,UAAW,WACT7nH,EAAKi8G,gBAELj8G,EAAK2hH,cAAc,UAAW,CAC5B5iH,KAAMA,EACNwR,IAAK7O,IAEP4F,GAAYA,KAEdwgH,QAAS,SAAiB/lH,GACxB/B,EAAKo8G,UAAU,QAAS,mCAAoCr6G,GAExDA,EAAMk5B,SACRj7B,EAAK0mH,iBAAiB3kH,EAAMk5B,SAG9Bj7B,EAAK2hH,cAAc,UAAW,CAC5B5iH,KAAMA,EACNwR,IAAK7O,IAEPK,EAAQA,GAAS,IAAI0G,MAAM,sDAC3BnB,GAAYA,EAASvF,WApEvBa,KAAKw5G,UAAU,OAAQ,+BAAgCr9G,IAyE3D6oH,aAAc,SAAS1pF,GAErB,IAAIx8B,EAAMw8B,EAAKx8B,IAAM,IAAM82G,EAAUt6E,EAAKqpF,MAEtCQ,EAAmB,KACnBC,EAA2B,GAU/B,GARI9pF,EAAK5lB,QAAQoiG,UACfqN,EAAmBnlH,KAAKqlH,cAAc/pF,EAAK5lB,QAAQoiG,UAGjDx8E,EAAK5lB,QAAQ4vG,kBACfF,EAA2BplH,KAAKqlH,cAAc/pF,EAAK5lB,QAAQ4vG,kBAGzDpP,IAAiB,CACnBkP,EAAyB95G,KAAOnF,EAAUm1B,EAAKn/B,MAE/C,IAAIopH,EAAsBhQ,EAAY,GAAIv1G,KAAKu4G,gBAC3CiN,EAAejQ,EAAYgQ,EAAqBH,GAMpD,OAJID,IACFK,EAAa1N,QAAUqN,GAGlBloH,EACJwoH,MAAM3mH,EAAK0mH,GACX91G,MAAK,SAAS9F,GACb,GAAIA,EAASoqG,GACX14E,EAAK2pF,WAAa3pF,EAAK2pF,gBAClB,CACL,IAAI9lH,EAAQ,IAAI0G,MAAM,sBAAwB+D,EAASzH,QAGvDhD,EAAMk5B,QAAUzuB,EAChB0xB,EAAK4pF,SAAW5pF,EAAK4pF,QAAQ/lH,OAV5BlC,OAaK,WACRq+B,EAAK4pF,SACH5pF,EAAK4pF,QAAQ,IAAIr/G,MAAM,8CAI/B,IAAIwyB,EAAUp7B,EAAQ+E,gBAAkB,IAAI/E,EAAQ+E,eAC/Cq2B,IAGS,oBAAqBA,GAAqC,oBAAnBqtF,kBAIjD,oBAAqBrtF,EACvBA,EAAQzqB,mBAAqB,WAC3B,GAA2B,IAAvByqB,EAAQxqB,WAEL,GAAuB,MAAnBwqB,EAAQl2B,OACjBm5B,EAAK2pF,WAAa3pF,EAAK2pF,iBAClB,GAAI3pF,EAAK4pF,QAAS,CACvB,IAAIp/G,EAAM,IAAID,MAAM,sBAAwBwyB,EAAQl2B,QACpD2D,EAAIuyB,QAAUA,EACdiD,EAAK4pF,QAAQp/G,MAIjBuyB,EAAU,IAAIqtF,eAGd5mH,EAAMA,EAAI+M,QAAQ,WAAY,IAG1ByvB,EAAK2pF,YACP5sF,EAAQ1uB,OAAS2xB,EAAK2pF,WAEpB3pF,EAAK4pF,UACP7sF,EAAQ53B,QAAU,WAChB,IAAIqF,EAAM,IAAID,MAAM,qCACpBC,EAAIuyB,QAAUA,EACdiD,EAAK4pF,QAAQp/G,MAKnBuyB,EAAQp2B,KAAK,OAAQnD,GAEjBqmH,GACF7P,EAAK6P,GAAkB,SAASjpH,EAAKuJ,GACnC4yB,EAAQI,iBAAiBv8B,EAAKuJ,MAIlC4yB,EAAQn2B,KAAKiE,EAAUm1B,EAAKn/B,SAG9BkpH,cAAe,SAASjpH,GACtB,IAAIupH,EAAY,GAEhB,IAAK,IAAIzpH,KAAOE,EACd,GAAIA,EAAKmC,eAAerC,GAAM,CAC5B,IAAIuJ,EAAQrJ,EAAKF,GACjBypH,EAAUzpH,GAAwB,mBAAVuJ,EAAuBA,IAAUA,EAI7D,OAAOkgH,GAGTnM,UAAW,SAAS/0G,GAGhBzE,KAAK64G,wBAAwBp0G,KAC5BzE,KAAKhD,OAASgD,KAAKu3G,eAAev6G,QAGnCiI,SAASC,UAAU1G,MAAMC,KACvBuB,KAAK64G,wBAAwBp0G,GAC7BzE,KAAK44G,iBACL,GAAGt7G,MAAMmB,KAAKC,UAAW,KAK/B6+G,cAAe,SAASrhH,EAAK2M,GACvBusG,EAAYvsG,UACP7I,KAAKs3G,eAAep7G,GAE3B8D,KAAKs3G,eAAep7G,GAAOq5G,EAAYv1G,KAAKs3G,eAAep7G,IAAQ,GAAI2M,MAM7D+8G,QAAU1wG,EAAMhQ,UAAUm4G,eAC1CnoG,EAAMhQ,UAAU2gH,kBAAoB3wG,EAAMhQ,UAAU04G,WAEpDnhH,EAAOC,QAAUwY,GAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aC9uEjBxY,EAAQoa,QAAgCrQ,MAAMqQ,SAAW,SAAWtd,GAAK,OAAOA,GAAyB,iBAAbA,EAAEwB,SAA5E,KAAA,SAAA,EAAA,EAAA,GAAA,aCAlB,IAAI8qH,GAAAA,EACJppH,EAAQuM,OAAS,CACbsG,aAAAA,EACA,0CAA0C9J,GACtC,GAAIA,EAAO,CACP,IAAItG,EAAQ,IAAI0G,MAChBrB,QAAQyG,KAAK,gGAAkG9L,EAAMf,YAEhH0nH,GACLthH,QAAQgb,IAAI,wDAEhBsmG,EAAsDrgH,GAE1D,4CACI,OAAOqgH,KAAAA,OAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aCdfppH,EAAQuL,aACqB,mBAAXyO,OACRA,OAAO,gBACP,kBAAoBsM,KAAKc,SAEnCpnB,EAAQqpH,eAAiBrpH,EAAQuL,cAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aCFjCvL,EAAQoM,WAHR,SAAoBtP,GAChB,MAAoB,mBAANA,IAAAA,KAAAA,SAAAA,EAAAA,GCHlB,SAASw7G,EAAiB51G,GACxBY,KAAKJ,KAAO,mBACZI,KAAKZ,QAAUA,GAEjB41G,EAAiB9vG,UAAY,IAAIW,OACNe,YAAcouG,EAEzCv4G,EAAOC,QAAUs4G,GAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GCPjB,IAAI7uG,EAAY,EAAQ,QAEpBlJ,EACgB,oBAAXC,OACHA,OACkB,oBAAXC,OACLA,OACgB,oBAATC,KACLA,KACA,GAiCV,SAASg4G,EAAY4Q,GACnB,YAAA,IAAOA,EAOT,SAAS7Q,EAAc6Q,GACrB,MAAgD,oBAAzCjgH,OAAOb,UAAUrF,SAASpB,KAAKunH,GAGxC,SAAS3Q,EAAS2Q,GAChB,MAAgD,oBAAzCjgH,OAAOb,UAAUrF,SAASpB,KAAKunH,GAGxC,SAASlvG,EAAQkvG,GACf,MAAgD,mBAAzCjgH,OAAOb,UAAUrF,SAASpB,KAAKunH,GAyCxC,SAAS9P,IACP,KAAM,UAAWj5G,GAAU,OAAA,EAE3B,IAIE,OAHA,IAAIgpH,QACJ,IAAI7E,QAAQ,IACZ,IAAI8E,UAAAA,EAEJ,MAAOziH,GACP,OAAA,GAsCJ,SAAS6xG,EAAKtvG,EAAKtB,GACjB,IAAI/J,EAAG+G,EAEP,GAAI0zG,EAAYpvG,EAAIhL,QAClB,IAAKL,KAAKqL,EACJ0vG,EAAO1vG,EAAKrL,IACd+J,EAASjG,KAAK,KAAM9D,EAAGqL,EAAIrL,SAK/B,GADA+G,EAAIsE,EAAIhL,OAEN,IAAKL,EAAI,EAAGA,EAAI+G,EAAG/G,IACjB+J,EAASjG,KAAK,KAAM9D,EAAGqL,EAAIrL,IA+BnC,SAAS66G,EAAS1jF,EAAKrX,GACrB,GAAmB,iBAARA,EACT,MAAM,IAAI5U,MAAM,0DAElB,MAAmB,iBAARisB,GAA4B,IAARrX,GAGxBqX,EAAI92B,QAAUyf,EAFZqX,EAEwBA,EAAIhwB,OAAO,EAAG2Y,GAAO,SAUxD,SAASi7F,EAAOp+F,EAAQpb,GACtB,OAAO6J,OAAOb,UAAU3G,eAAeE,KAAK6Y,EAAQpb,GAGtD,SAASy5G,EAAWpuF,GAQlB,IALA,IAGEI,EAHEw+F,EAAU,GACZxrH,EAAI,EACJD,EAAM6sB,EAASvsB,OAGVL,EAAID,EAAKC,IAEV06G,EADJ1tF,EAAUJ,EAAS5sB,IAIjBwrH,EAAQzlH,KAAKinB,EAAQ9b,QAAQ,8BAA+B,SACnD8b,GAAWA,EAAQvlB,QAE5B+jH,EAAQzlH,KAAKinB,EAAQvlB,QAIzB,OAAO,IAAI6T,OAAOkwG,EAAQzgH,KAAK,KAAM,KAoHvC,SAAS0gH,EAAoBC,GAC3B,IACE/4G,EACAuB,EACA3S,EACA65B,EACAp7B,EALE2rH,EAAM,GAOV,IAAKD,IAASA,EAAKv4G,QACjB,MAAO,GAST,GANAw4G,EAAI5lH,KAAK2lH,EAAKv4G,QAAQY,eAClB23G,EAAK50G,IACP60G,EAAI5lH,KAAK,IAAM2lH,EAAK50G,KAGtBnE,EAAY+4G,EAAK/4G,YACA+nG,EAAS/nG,GAExB,IADAuB,EAAUvB,EAAU9L,MAAM,OACrB7G,EAAI,EAAGA,EAAIkU,EAAQ7T,OAAQL,IAC9B2rH,EAAI5lH,KAAK,IAAMmO,EAAQlU,IAG3B,IAAI4rH,EAAgB,CAAC,OAAQ,OAAQ,QAAS,OAC9C,IAAK5rH,EAAI,EAAGA,EAAI4rH,EAAcvrH,OAAQL,KAEpCo7B,EAAOswF,EAAKnnF,aADZhjC,EAAMqqH,EAAc5rH,MAGlB2rH,EAAI5lH,KAAK,IAAMxE,EAAM,KAAO65B,EAAO,MAGvC,OAAOuwF,EAAI5gH,KAAK,IAMlB,SAAS8gH,EAAgB3sH,EAAGC,GAC1B,WAAYD,IAAMC,GA8BpB,SAASk8G,EAAiByQ,EAAQC,GAChC,GAAIF,EAAgBC,EAAQC,GAAS,OAAA,EAErC,IAUI7sH,EAAGC,EAVH6sH,EAAUF,EAAO7J,OACjBgK,EAAUF,EAAO9J,OAGrB,QAAA,IAAI+J,QAAAA,IAAyBC,EAAuB,OAAA,EAGpD,GAAID,EAAQ3rH,SAAW4rH,EAAQ5rH,OAAQ,OAAA,EAIvC,IAAK,IAAIL,EAAI,EAAGA,EAAIgsH,EAAQ3rH,OAAQL,IAGlC,IAFAd,EAAI8sH,EAAQhsH,IAGR+nH,YAFJ5oH,EAAI8sH,EAAQjsH,IAEO+nH,UACjB7oH,EAAEuoH,SAAWtoH,EAAEsoH,QACfvoH,EAAE8oH,QAAU7oH,EAAE6oH,OACd9oH,EAAAA,WAAkBC,EAAAA,SAElB,OAAA,EAEJ,OAAA,EAyDF,SAAS+sH,EAAephH,GACtB,GAAqB,iBAAVA,EAET,OAAO+vG,EAAS/vG,EADA,IAEX,GACY,iBAAVA,GACU,kBAAVA,QAAAA,IACAA,EAEP,OAAOA,EAGT,IAAI0F,EAAOpF,OAAOb,UAAUrF,SAASpB,KAAKgH,GAG1C,MAAa,oBAAT0F,EAAmC,WAC1B,mBAATA,EAAkC,UACzB,sBAATA,EACK1F,EAAM7F,KAAO,cAAgB6F,EAAM7F,KAAO,IAAM,aAElD6F,EA+FThJ,EAAOC,QAAU,CACf+M,SA5lBF,SAAkBu8G,GAChB,MAAuB,iBAATA,GAA8B,OAATA,GA4lBnCxmH,QAvlBF,SAAiBiG,GACf,OAAQM,OAAOb,UAAUrF,SAASpB,KAAKgH,IACrC,IAAK,iBAEL,IAAK,qBAEL,IAAK,wBACH,OAAA,EACF,QACE,OAAOA,aAAiBI,QA+kB5B3G,aA3kBF,SAAsBuG,GACpB,MAAiD,wBAA1CM,OAAOb,UAAUrF,SAASpB,KAAKgH,IA2kBtCwvG,WAxkBF,SAAoBxvG,GAClB,MAAiD,sBAA1CM,OAAOb,UAAUrF,SAASpB,KAAKgH,IAwkBtCyvG,eArkBF,SAAwBzvG,GACtB,MAAiD,0BAA1CM,OAAOb,UAAUrF,SAASpB,KAAKgH,IAqkBtC2vG,YAAaA,EACbtsG,WA/jBF,SAAoBk9G,GAClB,MAAuB,mBAATA,GA+jBd7Q,cAAeA,EACfE,SAAUA,EACVv+F,QAASA,EACTi8F,cAnjBF,SAAuBiT,GACrB,IAAK7Q,EAAc6Q,GAAO,OAAA,EAE1B,IAAK,IAAIxuG,KAAKwuG,EACZ,GAAIA,EAAKznH,eAAeiZ,GACtB,OAAA,EAGJ,OAAA,GA4iBAsvG,mBAziBF,WACE,IAEE,OADA,IAAIC,WAAW,KAAA,EAEf,MAAOtjH,GACP,OAAA,IAqiBFujH,iBAjiBF,WACE,IAEE,OADA,IAAIC,SAAS,KAAA,EAEb,MAAOxjH,GACP,OAAA,IA6hBFyjH,qBAzhBF,WACE,IAEE,OADA,IAAIC,aAAa,KAAA,EAEjB,MAAO1jH,GACP,OAAA,IAqhBFyyG,cAAeA,EACfC,uBAjgBF,WACE,IAAKD,IAAiB,OAAA,EAEtB,IAKE,OAHA,IAAIkL,QAAQ,aAAc,CACxB5I,eAAgB,YAAA,EAGlB,MAAO/0G,GACP,OAAA,IAwfF2jH,8BApfF,WACE,MAAwC,mBAA1BC,uBAofdC,gBAjfF,SAAyB5iH,GASvB,OARA,SAAsBvI,EAAMsyD,GAC1B,IAAI84D,EAAiB7iH,EAASvI,IAASA,EACvC,OAAIsyD,GACKA,EAAS84D,IAEXA,IA4eTjS,KAAMA,EACNC,YApdF,SAAqBd,EAAMC,GACzB,OAAKA,GAGLY,EAAKZ,GAAM,SAASx4G,EAAKuJ,GACvBgvG,EAAKv4G,GAAOuJ,KAEPgvG,GALEA,GAmdTe,SAAUA,EACVC,aApcF,SAAsBzvG,GACpB,QAAKD,OAAOyhH,UAGLzhH,OAAOyhH,SAASxhH,IAicvB0vG,OAAQA,EACRC,WAAYA,EACZC,UApZF,SAAmBvpG,GACjB,IAAIo7G,EAAQ,GAIZ,OAHAnS,EAAKjpG,GAAG,SAASnQ,EAAKuJ,GACpBgiH,EAAM/mH,KAAK5E,mBAAmBI,GAAO,IAAMJ,mBAAmB2J,OAEzDgiH,EAAM/hH,KAAK,MAgZlBmwG,MA5XF,WACE,IAAI6R,EAASzqH,EAAQyqH,QAAUzqH,EAAQ0qH,SAEvC,IAAKvS,EAAYsS,IAAWA,EAAOE,gBAAiB,CAGlD,IAAIhyF,EAAM,IAAIiyF,YAAY,GAC1BH,EAAOE,gBAAgBhyF,GAGvBA,EAAI,GAAe,KAATA,EAAI,GAAc,MAE5BA,EAAI,GAAe,MAATA,EAAI,GAAe,MAE7B,IAAIkyF,EAAM,SAAS7tH,GAEjB,IADA,IAAIiT,EAAIjT,EAAI4F,SAAS,IACdqN,EAAElS,OAAS,GAChBkS,EAAI,IAAMA,EAEZ,OAAOA,GAGT,OACE46G,EAAIlyF,EAAI,IACRkyF,EAAIlyF,EAAI,IACRkyF,EAAIlyF,EAAI,IACRkyF,EAAIlyF,EAAI,IACRkyF,EAAIlyF,EAAI,IACRkyF,EAAIlyF,EAAI,IACRkyF,EAAIlyF,EAAI,IACRkyF,EAAIlyF,EAAI,IAIV,MAAO,mCAAmC/pB,QAAQ,SAAS,SAASzR,GAClE,IAAIuW,EAAqB,GAAhBqS,KAAKc,SAAiB,EAE/B,OADY,MAAN1pB,EAAYuW,EAAS,EAAJA,EAAW,GACzB9Q,SAAS,QAwVtBi2G,iBA5UF,SAA0BuQ,GAWxB,IATA,IAOE0B,EALAzB,EAAM,GACN/pG,EAAS,EACT7hB,EAAM,EAENstH,EADY,MACUhtH,OAGjBqrH,GAAQ9pG,IATW,KAgBV,UANdwrG,EAAU3B,EAAoBC,KAO3B9pG,EAAS,GAAK7hB,EAAM4rH,EAAItrH,OAASgtH,EAAYD,EAAQ/sH,QAhBvC,KAqBjBsrH,EAAI5lH,KAAKqnH,GAETrtH,GAAOqtH,EAAQ/sH,OACfqrH,EAAOA,EAAKl5G,WAGd,OAAOm5G,EAAI1uE,UAAUlyC,KAvBP,QAsUd0gH,oBAAqBA,EACrBrQ,gBAnPF,SAAyBsG,EAAK4L,GAC5B,OAAIzB,EAAgBnK,EAAK4L,KAEzB5L,EAAMA,EAAIwG,OAAO,IAGT13G,QAFR88G,EAAMA,EAAIpF,OAAO,IAEI13G,MAAQkxG,EAAI52G,QAAUwiH,EAAIxiH,QAbrB3L,EAgBUmuH,EAAI/L,aAfjC9G,EAeaiH,EAAIH,cAfC9G,EAAYt7G,KAiB9Bk8G,EAAiBqG,EAAIH,WAAY+L,EAAI/L,aAlB9C,IAA4BpiH,GA2P1Bk8G,iBAAkBA,EAClBC,SA/YF,SAAkBn3G,GAChB,GAAmB,iBAARA,EAAkB,MAAO,GACpC,IAAIgB,EAAQhB,EAAIgB,MAAM,kEAKtB,MAAO,CACL2C,SAAU3C,EAAM,GAChB41B,KAAM51B,EAAM,GACZgoB,KAAMhoB,EAAM,GACZ+/G,SAAU//G,EAAM,IANNA,EAAM,IAAM,KACTA,EAAM,IAAM,MA0Y3BogB,KAlMF,SAAcla,EAAKpG,EAAMgW,EAAasyG,GACpC,GAAW,MAAPliH,EAAJ,CACA,IAAIi6G,EAAOj6G,EAAIpG,GACfoG,EAAIpG,GAAQgW,EAAYqqG,GACxBj6G,EAAIpG,GAAMu7G,WAAAA,EACVn1G,EAAIpG,GAAM27G,SAAW0E,EACjBiI,GACFA,EAAMxnH,KAAK,CAACsF,EAAKpG,EAAMqgH,MA4LzBn7G,SAlLF,SAAkB5J,EAAOitH,GACvB,IAAKrxG,EAAQ5b,GAAQ,MAAO,GAI5B,IAFA,IAAIC,EAAS,GAEJR,EAAI,EAAGA,EAAIO,EAAMF,OAAQL,IAChC,IACEQ,EAAOuF,KAAKrF,OAAOH,EAAMP,KACzB,MAAO8I,GACPtI,EAAOuF,KAAK,gCAIhB,OAAOvF,EAAOuK,KAAKyiH,IAsKnB9R,mBA7GF,SAASA,EAAmBp3G,EAAIgE,EAAOmlH,GACrC,IAAKjT,EAAcl2G,GAAK,OAAOA,EAG/BmpH,EAA2B,iBAD3BnlH,EAAyB,iBAAVA,EAxDmB,EAwDkCA,GAtDnC,MAuDoCmlH,EAErE,IAlDgB3iH,EAkDZ28D,EAvBN,SAASimD,EAAgB5iH,EAAOxC,GAC9B,OAAc,IAAVA,EAAoB4jH,EAAephH,GAEnC0vG,EAAc1vG,GACTM,OAAOP,KAAKC,GAAOvB,QAAO,SAASokH,EAAKpsH,GAE7C,OADAosH,EAAIpsH,GAAOmsH,EAAgB5iH,EAAMvJ,GAAM+G,EAAQ,GACxCqlH,IACN,IACM7hH,MAAMqQ,QAAQrR,GAChBA,EAAMsP,KAAI,SAAS89F,GACxB,OAAOwV,EAAgBxV,EAAK5vG,EAAQ,MAIjC4jH,EAAephH,GAdxB,CAuBmCxG,EAAIgE,GAErC,OApDgBwC,EAoDHU,EAAUi8D,GAxDzB,SAAoB38D,GAClB,QAAS8iH,UAAU9iH,GAAOjE,MAAM,SAASxG,OAD3C,CAKoBkL,KAAKC,UAAUV,IAmDK2iH,EAC7B/R,EAAmBp3G,EAAIgE,EAAQ,GAGjCm/D,GAkGPg0C,wBA/FF,SAAiC5wG,EAAMgjH,GACrC,GAAoB,iBAAThjH,GAAqC,iBAATA,EAAmB,OAAOA,EAAK3F,WACtE,IAAK4G,MAAMqQ,QAAQtR,GAAO,MAAO,GAKjC,GAAoB,KAHpBA,EAAOA,EAAK0R,QAAO,SAAShb,GAC1B,MAAsB,iBAARA,MAEPlB,OAAc,MAAO,uBAG9B,GAAIwK,EAAK,GAAGxK,SADZwtH,EAAiC,iBAAdA,EA1EW,GA0E0CA,GACvC,OAAOhjH,EAAK,GAE7C,IAAK,IAAIijH,EAAWjjH,EAAKxK,OAAQytH,EAAW,EAAGA,IAAY,CACzD,IAAIrmD,EAAa58D,EAAKlI,MAAM,EAAGmrH,GAAU/iH,KAAK,MAC9C,KAAI08D,EAAWpnE,OAASwtH,GACxB,OAAIC,IAAajjH,EAAKxK,OAAeonE,EAC9BA,EAAa,SAGtB,MAAO,IA6EPk0C,SA1EF,SAAkBp7G,EAAOo9G,GACvB,IAAKxhG,EAAQwhG,IAAkBxhG,EAAQwhG,IAAyC,IAAxBA,EAAat9G,OACnE,OAAOE,EAET,IAEIwtH,EAFAC,EAAiBhT,EAAW2C,GAIhC,IACEoQ,EAAYxiH,KAAKsP,MAAMrP,EAAUjL,IACjC,MAAO0tH,GACP,OAAO1tH,EAwBT,OArBA,SAAS2tH,EAAeC,GACtB,OAAIhyG,EAAQgyG,GACHA,EAAY/zG,KAAI,SAAS89F,GAC9B,OAAOgW,EAAehW,MAItBsC,EAAc2T,GACT/iH,OAAOP,KAAKsjH,GAAa5kH,QAAO,SAASokH,EAAKrsH,GAMnD,OAJEqsH,EAAIrsH,GADF0sH,EAAez9G,KAAKjP,GAlBX,WAqBF4sH,EAAeC,EAAY7sH,IAE/BqsH,IACN,IAGEQ,EAlBT,CAqBsBJ,MAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GCnmBxB,IAAA,GAKA,SAAUxrH,EAAQO,EAAUsrH,EAAYC,GACtC,aAEF,IA+FIC,EA/FAC,EAAkB,CAAC,GAAI,SAAU,MAAO,KAAM,KAAM,KACpDC,EAAe1rH,EAAS+M,cAAc,OAItC4gC,EAAQpoB,KAAKooB,MACbvd,EAAM7K,KAAK6K,IACX1hB,EAAMD,KAAKC,IASf,SAASi9G,EAAkBhlH,EAAI8M,EAASrI,GACpC,OAAOxI,WAAWgpH,EAAOjlH,EAAIyE,GAAUqI,GAY3C,SAASo4G,EAAeC,EAAKnlH,EAAIyE,GAC7B,QAAIpC,MAAMqQ,QAAQyyG,KACdjU,EAAKiU,EAAK1gH,EAAQzE,GAAKyE,IAAAA,GAY/B,SAASysG,EAAKtvG,EAAKwjH,EAAU3gH,GACzB,IAAIlO,EAEJ,GAAKqL,EAIL,GAAIA,EAAI2R,QACJ3R,EAAI2R,QAAQ6xG,EAAU3gH,QACnB,QAAA,IAAI7C,EAAIhL,OAEX,IADAL,EAAI,EACGA,EAAIqL,EAAIhL,QACXwuH,EAAS/qH,KAAKoK,EAAS7C,EAAIrL,GAAIA,EAAGqL,GAClCrL,SAGJ,IAAKA,KAAKqL,EACNA,EAAIzH,eAAe5D,IAAM6uH,EAAS/qH,KAAKoK,EAAS7C,EAAIrL,GAAIA,EAAGqL,GAYvE,SAASyjH,EAAUj4F,EAAQ5xB,EAAMR,GAC7B,IAAIsqH,EAAqB,sBAAwB9pH,EAAO,KAAOR,EAAU,SACzE,OAAO,WACH,IAAIqE,EAAI,IAAIoC,MAAM,mBACdzH,EAAQqF,GAAKA,EAAErF,MAAQqF,EAAErF,MAAMyN,QAAQ,kBAAmB,IACzDA,QAAQ,cAAe,IACvBA,QAAQ,6BAA8B,kBAAoB,sBAE3D2T,EAAMtiB,EAAOsH,UAAYtH,EAAOsH,QAAQyG,MAAQ/N,EAAOsH,QAAQgb,KAInE,OAHIA,GACAA,EAAI/gB,KAAKvB,EAAOsH,QAASklH,EAAoBtrH,GAE1CozB,EAAOhzB,MAAMwB,KAAMtB,YAa9BuqH,EADyB,mBAAlBljH,OAAOkjH,OACL,SAAgBt+G,GACrB,GAAIA,MAAAA,EACA,MAAM,IAAIg/G,UAAU,8CAIxB,IADA,IAAIxuH,EAAS4K,OAAO4E,GACXsW,EAAQ,EAAGA,EAAQviB,UAAU1D,OAAQimB,IAAS,CACnD,IAAI7e,EAAS1D,UAAUuiB,GACvB,GAAI7e,MAAAA,EACA,IAAK,IAAIwnH,KAAWxnH,EACZA,EAAO7D,eAAeqrH,KACtBzuH,EAAOyuH,GAAWxnH,EAAOwnH,IAKzC,OAAOzuH,GAGF4K,OAAOkjH,OAWpB,IAAI7yG,EAASqzG,GAAU,SAAgBI,EAAMl8G,EAAK4mG,GAG9C,IAFA,IAAI/uG,EAAOO,OAAOP,KAAKmI,GACnBhT,EAAI,EACDA,EAAI6K,EAAKxK,UACPu5G,GAAUA,QAAAA,IAASsV,EAAKrkH,EAAK7K,OAC9BkvH,EAAKrkH,EAAK7K,IAAMgT,EAAInI,EAAK7K,KAE7BA,IAEJ,OAAOkvH,IACR,SAAU,iBASTtV,EAAQkV,GAAU,SAAeI,EAAMl8G,GACvC,OAAOyI,EAAOyzG,EAAMl8G,GAAAA,KACrB,QAAS,iBAQZ,SAASm8G,EAAQC,EAAOC,EAAM7hG,GAC1B,IACI8hG,EADAC,EAAQF,EAAK9kH,WAGjB+kH,EAASF,EAAM7kH,UAAYa,OAAOc,OAAOqjH,IAClCtjH,YAAcmjH,EACrBE,EAAO5iH,OAAS6iH,EAEZ/hG,GACA8gG,EAAOgB,EAAQ9hG,GAUvB,SAASkhG,EAAOjlH,EAAIyE,GAChB,OAAO,WACH,OAAOzE,EAAG5F,MAAMqK,EAASnK,YAWjC,SAASyrH,EAAStX,EAAKzyG,GACnB,MA1LgB,mBA0LLyyG,EACAA,EAAIr0G,MAAM4B,GAAOA,EAAK,SAAA,EAA6BA,GAEvDyyG,EASX,SAASuX,EAAYC,EAAMC,GACvB,YAAA,IAAQD,EAAsBC,EAAOD,EASzC,SAASE,EAAkB5/G,EAAQ6/G,EAAOhqH,GACtC80G,EAAKmV,EAASD,IAAQ,SAASr/G,GAC3BR,EAAO8oB,iBAAiBtoB,EAAM3K,GAAAA,MAUtC,SAASkqH,EAAqB//G,EAAQ6/G,EAAOhqH,GACzC80G,EAAKmV,EAASD,IAAQ,SAASr/G,GAC3BR,EAAOgpB,oBAAoBxoB,EAAM3K,GAAAA,MAWzC,SAASmqH,EAAUvrF,EAAM71B,GACrB,KAAO61B,GAAM,CACT,GAAIA,GAAQ71B,EACR,OAAA,EAEJ61B,EAAOA,EAAKjyB,WAEhB,OAAA,EASJ,SAASy9G,EAAM94F,EAAKV,GAChB,OAAOU,EAAIlwB,QAAQwvB,IAAS,EAQhC,SAASq5F,EAAS34F,GACd,OAAOA,EAAI9b,OAAOxU,MAAM,QAU5B,SAASqpH,EAAQl9G,EAAKyjB,EAAM05F,GACxB,GAAIn9G,EAAI/L,UAAYkpH,EAChB,OAAOn9G,EAAI/L,QAAQwvB,GAGnB,IADA,IAAIz2B,EAAI,EACDA,EAAIgT,EAAI3S,QAAQ,CACnB,GAAK8vH,GAAan9G,EAAIhT,GAAGmwH,IAAc15F,IAAW05F,GAAan9G,EAAIhT,KAAOy2B,EACtE,OAAOz2B,EAEXA,IAEJ,OAAQ,EAShB,SAASs6B,EAAQjvB,GACb,OAAOS,MAAMvB,UAAU5H,MAAMmB,KAAKuH,EAAK,GAU3C,SAAS+kH,EAAYp9G,EAAKzR,EAAKw7C,GAK3B,IAJA,IAAIrS,EAAU,GACVw9E,EAAS,GACTloH,EAAI,EAEDA,EAAIgT,EAAI3S,QAAQ,CACnB,IAAI63G,EAAM32G,EAAMyR,EAAIhT,GAAGuB,GAAOyR,EAAIhT,GAC9BkwH,EAAQhI,EAAQhQ,GAAO,GACvBxtE,EAAQ3kC,KAAKiN,EAAIhT,IAErBkoH,EAAOloH,GAAKk4G,EACZl4G,IAaJ,OAVI+8C,IAIIrS,EAHCnpC,EAGSmpC,EAAQqS,MAAK,SAAyB79C,EAAGC,GAC/C,OAAOD,EAAEqC,GAAOpC,EAAEoC,MAHZmpC,EAAQqS,QAQnBrS,EASX,SAAS2lF,EAAShlH,EAAKuR,GAKnB,IAJA,IAAIu4D,EAAQ1vD,EACR6qG,EAAY1zG,EAAS,GAAG2O,cAAgB3O,EAASja,MAAM,GAEvD3C,EAAI,EACDA,EAAIuuH,EAAgBluH,QAAQ,CAI/B,IAFAolB,GADA0vD,EAASo5C,EAAgBvuH,IACPm1E,EAASm7C,EAAY1zG,KAE3BvR,EACR,OAAOoa,EAEXzlB,KASR,IAAIuwH,EAAY,EAUhB,SAASC,EAAoBlqH,GACzB,IAAIg2B,EAAMh2B,EAAQi2B,eAAiBj2B,EACnC,OAAQg2B,EAAIpB,aAAeoB,EAAIm0F,cAAgBluH,EAGnD,IAEImuH,EAAiB,iBAAkBnuH,EACnCouH,OAAAA,IAAyBN,EAAS9tH,EAAQ,gBAC1CquH,EAAqBF,GAJN,wCAIoCngH,KAAKJ,UAAUY,WAwBlE8/G,EAAW,CAAC,IAAK,KACjBC,EAAkB,CAAC,UAAW,WASlC,SAASC,EAAMC,EAASjnH,GACpB,IAAItH,EAAO4C,KACXA,KAAK2rH,QAAUA,EACf3rH,KAAK0E,SAAWA,EAChB1E,KAAKiB,QAAU0qH,EAAQ1qH,QACvBjB,KAAK2K,OAASghH,EAAQj2G,QAAQk2G,YAI9B5rH,KAAK6rH,WAAa,SAASC,GACnB3B,EAASwB,EAAQj2G,QAAQq2G,OAAQ,CAACJ,KAClCvuH,EAAKoD,QAAQsrH,IAIrB9rH,KAAKgsH,OA4DT,SAASC,EAAaN,EAAS/tD,EAAW1iE,GACtC,IAAIgxH,EAAchxH,EAAMixH,SAASnxH,OAC7BoxH,EAAqBlxH,EAAMmxH,gBAAgBrxH,OAC3CsxH,EAvGU,EAuGC1uD,GAA4BsuD,EAAcE,GAAuB,EAC5EG,EAAuB,GAAZ3uD,GAA2CsuD,EAAcE,GAAuB,EAE/FlxH,EAAMoxH,UAAYA,EAClBpxH,EAAMqxH,UAAYA,EAEdD,IACAX,EAAQa,QAAU,IAKtBtxH,EAAM0iE,UAAYA,EAiBtB,SAA0B+tD,EAASzwH,GAC/B,IAAIsxH,EAAUb,EAAQa,QAClBL,EAAWjxH,EAAMixH,SACjBM,EAAiBN,EAASnxH,OAGzBwxH,EAAQE,aACTF,EAAQE,WAAaC,EAAqBzxH,IAI1CuxH,EAAiB,IAAMD,EAAQI,cAC/BJ,EAAQI,cAAgBD,EAAqBzxH,GACnB,IAAnBuxH,IACPD,EAAQI,eAAAA,GAGZ,IAAIF,EAAaF,EAAQE,WACrBE,EAAgBJ,EAAQI,cACxBC,EAAeD,EAAgBA,EAAcjrE,OAAS+qE,EAAW/qE,OAEjEA,EAASzmD,EAAMymD,OAASN,EAAU8qE,GACtCjxH,EAAM4xH,UAAY3gH,IAClBjR,EAAM6xH,UAAY7xH,EAAM4xH,UAAYJ,EAAWI,UAE/C5xH,EAAMqoB,MAAQypG,EAASH,EAAclrE,GACrCzmD,EAAMstD,SAAWykE,EAAYJ,EAAclrE,GA0B/C,SAAwB6qE,EAAStxH,GAC7B,IAAIymD,EAASzmD,EAAMymD,OACfjoC,EAAS8yG,EAAQU,aAAe,GAChCC,EAAYX,EAAQW,WAAa,GACjCC,EAAYZ,EAAQY,WAAa,GA5LvB,IA8LVlyH,EAAM0iE,WA5LE,IA4L2BwvD,EAAUxvD,YAC7CuvD,EAAYX,EAAQW,UAAY,CAC5B3zH,EAAG4zH,EAAUC,QAAU,EACvB5zH,EAAG2zH,EAAUp8C,QAAU,GAG3Bt3D,EAAS8yG,EAAQU,YAAc,CAC3B1zH,EAAGmoD,EAAOnoD,EACVC,EAAGkoD,EAAOloD,IAIlByB,EAAMmyH,OAASF,EAAU3zH,GAAKmoD,EAAOnoD,EAAIkgB,EAAOlgB,GAChD0B,EAAM81E,OAASm8C,EAAU1zH,GAAKkoD,EAAOloD,EAAIigB,EAAOjgB,GAnBpD,CAxBmB+yH,EAAStxH,GACxBA,EAAMoyH,gBAAkBC,EAAaryH,EAAMmyH,OAAQnyH,EAAM81E,QAEzD,IAuNc1hE,EAAOyrB,EAvNjByyF,EAAkBC,EAAYvyH,EAAM6xH,UAAW7xH,EAAMmyH,OAAQnyH,EAAM81E,QACvE91E,EAAMwyH,iBAAmBF,EAAgBh0H,EACzC0B,EAAMyyH,iBAAmBH,EAAgB/zH,EACzCyB,EAAMsyH,gBAAmB3/F,EAAI2/F,EAAgBh0H,GAAKq0B,EAAI2/F,EAAgB/zH,GAAM+zH,EAAgBh0H,EAAIg0H,EAAgB/zH,EAEhHyB,EAAMshB,MAAQowG,GAkNAt9G,EAlNyBs9G,EAAcT,SAmN9Cc,GADclyF,EAlN0CoxF,GAmNxC,GAAIpxF,EAAI,GAAI0wF,GAAmBwB,EAAY39G,EAAM,GAAIA,EAAM,GAAIm8G,IAnNX,EAC3EvwH,EAAM84F,SAAW44B,EAsMrB,SAAqBt9G,EAAOyrB,GACxB,OAAOiyF,EAASjyF,EAAI,GAAIA,EAAI,GAAI0wF,GAAmBuB,EAAS19G,EAAM,GAAIA,EAAM,GAAIm8G,GADpF,CAtMiDmB,EAAcT,SAAUA,GAAY,EAEjFjxH,EAAM0yH,YAAepB,EAAQY,UAAsClyH,EAAMixH,SAASnxH,OAC9EwxH,EAAQY,UAAUQ,YAAe1yH,EAAMixH,SAASnxH,OAASwxH,EAAQY,UAAUQ,YADtC1yH,EAAMixH,SAASnxH,OAwC5D,SAAkCwxH,EAAStxH,GACvC,IAEI2yH,EAAUC,EAAWC,EAAWtpB,EAFhCmf,EAAO4I,EAAQwB,cAAgB9yH,EAC/B6xH,EAAY7xH,EAAM4xH,UAAYlJ,EAAKkJ,UAGvC,GArNe,GAqNX5xH,EAAM0iE,YAA8BmvD,EA1NrB,SAAA,IA0NqDnJ,EAAKiK,UAAyB,CAClG,IAAIR,EAASnyH,EAAMmyH,OAASzJ,EAAKyJ,OAC7Br8C,EAAS91E,EAAM81E,OAAS4yC,EAAK5yC,OAE7B9jE,EAAIugH,EAAYV,EAAWM,EAAQr8C,GACvC88C,EAAY5gH,EAAE1T,EACdu0H,EAAY7gH,EAAEzT,EACdo0H,EAAYhgG,EAAI3gB,EAAE1T,GAAKq0B,EAAI3gB,EAAEzT,GAAMyT,EAAE1T,EAAI0T,EAAEzT,EAC3CgrG,EAAY8oB,EAAaF,EAAQr8C,GAEjCw7C,EAAQwB,aAAe9yH,OAGvB2yH,EAAWjK,EAAKiK,SAChBC,EAAYlK,EAAKkK,UACjBC,EAAYnK,EAAKmK,UACjBtpB,EAAYmf,EAAKnf,UAGrBvpG,EAAM2yH,SAAWA,EACjB3yH,EAAM4yH,UAAYA,EAClB5yH,EAAM6yH,UAAYA,EAClB7yH,EAAMupG,UAAYA,EA3BtB,CArC6B+nB,EAAStxH,GAGlC,IAAIyP,EAASghH,EAAQ1qH,QACjB0pH,EAAUzvH,EAAM+yH,SAAStjH,OAAQA,KACjCA,EAASzP,EAAM+yH,SAAStjH,QAE5BzP,EAAMyP,OAASA,EAjDnB,CAdqBghH,EAASzwH,GAG1BywH,EAAQuC,KAAK,eAAgBhzH,GAE7BywH,EAAQwC,UAAUjzH,GAClBywH,EAAQa,QAAQY,UAAYlyH,EA0HhC,SAASyxH,EAAqBzxH,GAK1B,IAFA,IAAIixH,EAAW,GACXxxH,EAAI,EACDA,EAAIO,EAAMixH,SAASnxH,QACtBmxH,EAASxxH,GAAK,CACVw5B,QAASiX,EAAMlwC,EAAMixH,SAASxxH,GAAGw5B,SACjCC,QAASgX,EAAMlwC,EAAMixH,SAASxxH,GAAGy5B,UAErCz5B,IAGJ,MAAO,CACHmyH,UAAW3gH,IACXggH,SAAUA,EACVxqE,OAAQN,EAAU8qE,GAClBkB,OAAQnyH,EAAMmyH,OACdr8C,OAAQ91E,EAAM81E,QAStB,SAAS3vB,EAAU8qE,GACf,IAAIM,EAAiBN,EAASnxH,OAG9B,GAAuB,IAAnByxH,EACA,MAAO,CACHjzH,EAAG4xC,EAAM+gF,EAAS,GAAGh4F,SACrB16B,EAAG2xC,EAAM+gF,EAAS,GAAG/3F,UAK7B,IADA,IAAI56B,EAAI,EAAGC,EAAI,EAAGkB,EAAI,EACfA,EAAI8xH,GACPjzH,GAAK2yH,EAASxxH,GAAGw5B,QACjB16B,GAAK0yH,EAASxxH,GAAGy5B,QACjBz5B,IAGJ,MAAO,CACHnB,EAAG4xC,EAAM5xC,EAAIizH,GACbhzH,EAAG2xC,EAAM3xC,EAAIgzH,IAWrB,SAASgB,EAAYV,EAAWvzH,EAAGC,GAC/B,MAAO,CACHD,EAAGA,EAAIuzH,GAAa,EACpBtzH,EAAGA,EAAIszH,GAAa,GAU5B,SAASQ,EAAa/zH,EAAGC,GACrB,OAAID,IAAMC,EAzTO,EA6Tbo0B,EAAIr0B,IAAMq0B,EAAIp0B,GACPD,EAAI,EA7TE,EACC,EA8TXC,EAAI,EA7TI,EACE,GAsUrB,SAASwzH,EAAYnmE,EAAIC,EAAIwrB,GACpBA,IACDA,EAAQi5C,GAEZ,IAAIhyH,EAAIutD,EAAGwrB,EAAM,IAAMzrB,EAAGyrB,EAAM,IAC5B94E,EAAIstD,EAAGwrB,EAAM,IAAMzrB,EAAGyrB,EAAM,IAEhC,OAAOvvD,KAAKD,KAAMvpB,EAAIA,EAAMC,EAAIA,GAUpC,SAASuzH,EAASlmE,EAAIC,EAAIwrB,GAMtB,OALKA,IACDA,EAAQi5C,GAIc,IAAnBxoG,KAAKC,MADJ8jC,EAAGwrB,EAAM,IAAMzrB,EAAGyrB,EAAM,IADxBxrB,EAAGwrB,EAAM,IAAMzrB,EAAGyrB,EAAM,KAEAvvD,KAAKI,GA1TzCsoG,EAAMxmH,UAAY,CAKd1E,QAAS,aAKTwrH,KAAM,WACFhsH,KAAKouH,MAAQ7D,EAAkBvqH,KAAKiB,QAASjB,KAAKouH,KAAMpuH,KAAK6rH,YAC7D7rH,KAAKquH,UAAY9D,EAAkBvqH,KAAK2K,OAAQ3K,KAAKquH,SAAUruH,KAAK6rH,YACpE7rH,KAAKsuH,OAAS/D,EAAkBY,EAAoBnrH,KAAKiB,SAAUjB,KAAKsuH,MAAOtuH,KAAK6rH,aAMxF1xC,QAAS,WACLn6E,KAAKouH,MAAQ1D,EAAqB1qH,KAAKiB,QAASjB,KAAKouH,KAAMpuH,KAAK6rH,YAChE7rH,KAAKquH,UAAY3D,EAAqB1qH,KAAK2K,OAAQ3K,KAAKquH,SAAUruH,KAAK6rH,YACvE7rH,KAAKsuH,OAAS5D,EAAqBS,EAAoBnrH,KAAKiB,SAAUjB,KAAKsuH,MAAOtuH,KAAK6rH,cA4T/F,IAAI0C,EAAkB,CAClBC,UA/Xc,EAgYdC,UA/Xa,EAgYbC,QA/XY,GA0YhB,SAASC,IACL3uH,KAAKouH,KATkB,YAUvBpuH,KAAKsuH,MATiB,oBAWtBtuH,KAAK4uH,SAAAA,EAELlD,EAAMltH,MAAMwB,KAAMtB,WAGtBorH,EAAQ6E,EAAYjD,EAAO,CAKvBlrH,QAAS,SAAmBsrH,GACxB,IAAIluD,EAAY2wD,EAAgBzC,EAAG3gH,MA3ZzB,EA8ZNyyD,GAAyC,IAAdkuD,EAAGxyD,SAC9Bt5D,KAAK4uH,SAAAA,GA9ZA,EAiaLhxD,GAAuC,IAAbkuD,EAAG+C,QAC7BjxD,EAjaI,GAqaH59D,KAAK4uH,UAraF,EAyaJhxD,IACA59D,KAAK4uH,SAAAA,GAGT5uH,KAAK0E,SAAS1E,KAAK2rH,QAAS/tD,EAAW,CACnCuuD,SAAU,CAACL,GACXO,gBAAiB,CAACP,GAClBgD,YAvbW,QAwbXb,SAAUnC,QAKtB,IAAIiD,EAAoB,CACpBC,YAzbc,EA0bdC,YAzba,EA0bbC,UAzbY,EA0bZC,cAzbe,EA0bfC,WA1be,GA8bfC,EAAyB,CACzBC,EAzcmB,QA0cnBC,EAzciB,MA0cjBC,EAzcmB,QA0cnBC,EAzcoB,UA4cpBC,EAAyB,cACzBC,EAAwB,sCAa5B,SAASC,KACL5vH,KAAKouH,KAAOsB,EACZ1vH,KAAKsuH,MAAQqB,EAEbjE,EAAMltH,MAAMwB,KAAMtB,WAElBsB,KAAK6vH,MAAS7vH,KAAK2rH,QAAQa,QAAQsD,cAAgB,GAhBnD5yH,EAAO6yH,iBAAmB7yH,EAAO8yH,eACjCN,EAAyB,gBACzBC,EAAwB,6CAiB5B7F,EAAQ8F,GAAmBlE,EAAO,CAK9BlrH,QAAS,SAAmBsrH,GACxB,IAAI+D,EAAQ7vH,KAAK6vH,MACbI,GAAAA,EAEAC,EAAsBpE,EAAG3gH,KAAKuD,cAAc7C,QAAQ,KAAM,IAC1D+xD,EAAYmxD,EAAkBmB,GAC9BpB,EAAcO,EAAuBvD,EAAGgD,cAAgBhD,EAAGgD,YAE3DqB,EAnfW,SAmfArB,EAGXsB,EAAavF,EAAQgF,EAAO/D,EAAGnvD,UAAW,aA/epC,EAkfNiB,IAA0C,IAAdkuD,EAAGxyD,QAAgB62D,GAC3CC,EAAa,IACbP,EAAMnvH,KAAKorH,GACXsE,EAAaP,EAAM70H,OAAS,GAEb,GAAZ4iE,IACPqyD,GAAAA,GAIAG,EAAa,IAKjBP,EAAMO,GAActE,EAEpB9rH,KAAK0E,SAAS1E,KAAK2rH,QAAS/tD,EAAW,CACnCuuD,SAAU0D,EACVxD,gBAAiB,CAACP,GAClBgD,YAAaA,EACbb,SAAUnC,IAGVmE,GAEAJ,EAAMjvH,OAAOwvH,EAAY,OAKrC,IAAIC,GAAyB,CACzBC,WAlhBc,EAmhBdC,UAlhBa,EAmhBbC,SAlhBY,EAmhBZC,YAlhBe,GA6hBnB,SAASC,KACL1wH,KAAKquH,SATwB,aAU7BruH,KAAKsuH,MATwB,4CAU7BtuH,KAAK2wH,SAAAA,EAELjF,EAAMltH,MAAMwB,KAAMtB,WAsCtB,SAASkyH,GAAuB9E,EAAI3gH,GAChC,IAAI0M,EAAMod,EAAQ62F,EAAGjvD,SACjBqyC,EAAUj6E,EAAQ62F,EAAG53F,gBAMzB,OAJW,GAAP/oB,IACA0M,EAAMkzG,EAAYlzG,EAAIrb,OAAO0yG,GAAU,cAAA,IAGpC,CAACr3F,EAAKq3F,GA3CjB4a,EAAQ4G,GAAkBhF,EAAO,CAC7BlrH,QAAS,SAAmBsrH,GACxB,IAAI3gH,EAAOklH,GAAuBvE,EAAG3gH,MAOrC,GAjjBU,IA6iBNA,IACAnL,KAAK2wH,SAAAA,GAGJ3wH,KAAK2wH,QAAV,CAIA,IAAI9zD,EAAU+zD,GAAuBnyH,KAAKuB,KAAM8rH,EAAI3gH,GAGzC,GAAPA,GAAqC0xD,EAAQ,GAAG7hE,OAAS6hE,EAAQ,GAAG7hE,QAAW,IAC/EgF,KAAK2wH,SAAAA,GAGT3wH,KAAK0E,SAAS1E,KAAK2rH,QAASxgH,EAAM,CAC9BghH,SAAUtvD,EAAQ,GAClBwvD,gBAAiBxvD,EAAQ,GACzBiyD,YAtkBW,QAukBXb,SAAUnC,QAsBtB,IAAI+E,GAAkB,CAClBP,WAvlBc,EAwlBdC,UAvlBa,EAwlBbC,SAvlBY,EAwlBZC,YAvlBe,GAimBnB,SAASK,KACL9wH,KAAKquH,SARiB,4CAStBruH,KAAK+wH,UAAY,GAEjBrF,EAAMltH,MAAMwB,KAAMtB,WA0BtB,SAASsyH,GAAWlF,EAAI3gH,GACpB,IAAI8lH,EAAah8F,EAAQ62F,EAAGjvD,SACxBk0D,EAAY/wH,KAAK+wH,UAGrB,GAAW,EAAP5lH,GAA2D,IAAtB8lH,EAAWj2H,OAEhD,OADA+1H,EAAUE,EAAW,GAAGv0D,aAAAA,EACjB,CAACu0D,EAAYA,GAGxB,IAAIt2H,EACAu2H,EACAh9F,EAAiBe,EAAQ62F,EAAG53F,gBAC5Bi9F,EAAuB,GACvBxmH,EAAS3K,KAAK2K,OAQlB,GALAumH,EAAgBD,EAAW/5G,QAAO,SAASk6G,GACvC,OAAOzG,EAAUyG,EAAMzmH,OAAQA,MAppBrB,IAwpBVQ,EAEA,IADAxQ,EAAI,EACGA,EAAIu2H,EAAcl2H,QACrB+1H,EAAUG,EAAcv2H,GAAG+hE,aAAAA,EAC3B/hE,IAMR,IADAA,EAAI,EACGA,EAAIu5B,EAAel5B,QAClB+1H,EAAU78F,EAAev5B,GAAG+hE,aAC5By0D,EAAqBzwH,KAAKwzB,EAAev5B,IAIlC,GAAPwQ,UACO4lH,EAAU78F,EAAev5B,GAAG+hE,YAEvC/hE,IAGJ,OAAKw2H,EAAqBn2H,OAInB,CAEH+vH,EAAYmG,EAAc10H,OAAO20H,GAAuB,cAAA,GACxDA,QAAAA,EAiBR,SAASE,KACL3F,EAAMltH,MAAMwB,KAAMtB,WAElB,IAAI8B,EAAU6oH,EAAOrpH,KAAKQ,QAASR,MACnCA,KAAKoxH,MAAQ,IAAIN,GAAW9wH,KAAK2rH,QAASnrH,GAC1CR,KAAKsxH,MAAQ,IAAI3C,EAAW3uH,KAAK2rH,QAASnrH,GAE1CR,KAAKuxH,aAAe,KACpBvxH,KAAKwxH,YAAc,GAqCvB,SAASC,GAAc7zD,EAAW8zD,GAnvBhB,EAovBV9zD,GACA59D,KAAKuxH,aAAeG,EAAUrF,gBAAgB,GAAG3vD,WACjDi1D,GAAalzH,KAAKuB,KAAM0xH,IACL,GAAZ9zD,GACP+zD,GAAalzH,KAAKuB,KAAM0xH,GAIhC,SAASC,GAAaD,GAClB,IAAIN,EAAQM,EAAUrF,gBAAgB,GAEtC,GAAI+E,EAAM10D,aAAe18D,KAAKuxH,aAAc,CACxC,IAAIK,EAAY,CAACp4H,EAAG43H,EAAMj9F,QAAS16B,EAAG23H,EAAMh9F,SAC5Cp0B,KAAKwxH,YAAY9wH,KAAKkxH,GACtB,IAAIC,EAAM7xH,KAAKwxH,YAOfnxH,YANsB,WAClB,IAAI1F,EAAIk3H,EAAIjwH,QAAQgwH,GAChBj3H,GAAK,GACLk3H,EAAIjxH,OAAOjG,EAAG,KAnEV,OA0EpB,SAASm3H,GAAiBJ,GAEtB,IADA,IAAIl4H,EAAIk4H,EAAUzD,SAAS95F,QAAS16B,EAAIi4H,EAAUzD,SAAS75F,QAClDz5B,EAAI,EAAGA,EAAIqF,KAAKwxH,YAAYx2H,OAAQL,IAAK,CAC9C,IAAIX,EAAIgG,KAAKwxH,YAAY72H,GACrB4tB,EAAKvF,KAAK6K,IAAIr0B,EAAIQ,EAAER,GAAIgvB,EAAKxF,KAAK6K,IAAIp0B,EAAIO,EAAEP,GAChD,GAAI8uB,GA9ES,IA8EeC,GA9Ef,GA+ET,OAAA,EAGR,OAAA,EA3KJshG,EAAQgH,GAAYpF,EAAO,CACvBlrH,QAAS,SAAoBsrH,GACzB,IAAI3gH,EAAO0lH,GAAgB/E,EAAG3gH,MAC1B0xD,EAAUm0D,GAAWvyH,KAAKuB,KAAM8rH,EAAI3gH,GACnC0xD,GAIL78D,KAAK0E,SAAS1E,KAAK2rH,QAASxgH,EAAM,CAC9BghH,SAAUtvD,EAAQ,GAClBwvD,gBAAiBxvD,EAAQ,GACzBiyD,YA7nBW,QA8nBXb,SAAUnC,OA0FtBhC,EAAQuH,GAAiB3F,EAAO,CAO5BlrH,QAAS,SAAoBmrH,EAASoG,EAAYC,GAC9C,IACIC,EA/tBW,SA+tBAD,EAAUlD,YAEzB,KAAImD,GAAWD,EAAUE,oBAAsBF,EAAUE,mBAAmBC,kBAA5E,CAKA,GAxuBe,SAguBAH,EAAUlD,YASrB2C,GAAchzH,KAAKuB,KAAM+xH,EAAYC,QAClC,GAAIC,GAAWH,GAAiBrzH,KAAKuB,KAAMgyH,GAC9C,OAGJhyH,KAAK0E,SAASinH,EAASoG,EAAYC,KAMvC73C,QAAS,WACLn6E,KAAKoxH,MAAMj3C,UACXn6E,KAAKsxH,MAAMn3C,aA0CnB,IAAIi4C,GAAwBpH,EAAS7B,EAAa38G,MAAO,eACrD6lH,QAAAA,IAAsBD,GAStBE,GA4IJ,WACI,IAAKD,GACD,OAAA,EAEJ,IAAIE,EAAW,GACXC,EAAct1H,EAAOu1H,KAAOv1H,EAAOu1H,IAAIvtE,SAO3C,MANA,CAAC,OAAQ,eAAgB,QAAS,QAAS,cAAe,QAAQvtC,SAAQ,SAASk7F,GAI/E0f,EAAS1f,IAAO2f,GAAct1H,EAAOu1H,IAAIvtE,SAAS,eAAgB2tD,MAE/D0f,EAZX,GAnIA,SAASG,GAAY/G,EAASlmH,GAC1BzF,KAAK2rH,QAAUA,EACf3rH,KAAKgiB,IAAIvc,GAyLb,SAASktH,GAAWj9G,GAChB1V,KAAK0V,QAAUuzG,EAAO,GAAIjpH,KAAK4yH,SAAUl9G,GAAW,IAEpD1V,KAAKyR,GApgCEy5G,IAsgCPlrH,KAAK2rH,QAAU,KAGf3rH,KAAK0V,QAAQq2G,OAAS3B,EAAYpqH,KAAK0V,QAAQq2G,QAAAA,GAE/C/rH,KAAK6yH,MAxBY,EA0BjB7yH,KAAK8yH,aAAe,GACpB9yH,KAAK+yH,YAAc,GAqOvB,SAASC,GAASH,GACd,OA5PkB,GA4PdA,EACO,SA/PG,EAgQHA,EACA,MAlQK,EAmQLA,EACA,OArQG,EAsQHA,EACA,QAEJ,GAQX,SAASI,GAAaxuB,GAClB,OAnuCiB,IAmuCbA,EACO,OAruCI,GAsuCJA,EACA,KAzuCM,GA0uCNA,EACA,OA1uCO,GA2uCPA,EACA,QAEJ,GASX,SAASyuB,GAA6BC,EAAiBC,GACnD,IAAIzH,EAAUyH,EAAWzH,QACzB,OAAIA,EACOA,EAAQ9oG,IAAIswG,GAEhBA,EAQX,SAASE,KACLV,GAAWn0H,MAAMwB,KAAMtB,WA6D3B,SAAS40H,KACLD,GAAe70H,MAAMwB,KAAMtB,WAE3BsB,KAAKuzH,GAAK,KACVvzH,KAAKwzH,GAAK,KA4Ed,SAASC,KACLJ,GAAe70H,MAAMwB,KAAMtB,WAsC/B,SAASg1H,KACLf,GAAWn0H,MAAMwB,KAAMtB,WAEvBsB,KAAK2zH,OAAS,KACd3zH,KAAK4zH,OAAS,KAmElB,SAASC,KACLR,GAAe70H,MAAMwB,KAAMtB,WA8B/B,SAASo1H,KACLT,GAAe70H,MAAMwB,KAAMtB,WA2D/B,SAASq1H,KACLpB,GAAWn0H,MAAMwB,KAAMtB,WAIvBsB,KAAKg0H,OAAAA,EACLh0H,KAAKi0H,SAAAA,EAELj0H,KAAK2zH,OAAS,KACd3zH,KAAK4zH,OAAS,KACd5zH,KAAKk0H,MAAQ,EAqGjB,SAASC,GAAOlzH,EAASyU,GAGrB,OAFAA,EAAUA,GAAW,IACb0+G,YAAchK,EAAY10G,EAAQ0+G,YAAaD,GAAOvB,SAASyB,QAChE,IAAIC,GAAQrzH,EAASyU,GAiIhC,SAAS4+G,GAAQrzH,EAASyU,GAzwD1B,IAA6Bi2G,EA0wDzB3rH,KAAK0V,QAAUuzG,EAAO,GAAIkL,GAAOvB,SAAUl9G,GAAW,IAEtD1V,KAAK0V,QAAQk2G,YAAc5rH,KAAK0V,QAAQk2G,aAAe3qH,EAEvDjB,KAAKjC,SAAW,GAChBiC,KAAKwsH,QAAU,GACfxsH,KAAKo0H,YAAc,GACnBp0H,KAAKu0H,YAAc,GAEnBv0H,KAAKiB,QAAUA,EACfjB,KAAK9E,MArwDE,KAfkBywH,EAoxDQ3rH,MAlxDR0V,QAAQ8+G,aAItBlJ,EACAsE,GACArE,EACAuF,GACCzF,EAGDgG,GAFA1C,IAIOhD,EAASM,GAswD3BjsH,KAAKy0H,YAAc,IAAI/B,GAAY1yH,KAAMA,KAAK0V,QAAQ++G,aAEtDC,GAAe10H,MAAAA,GAEfs1G,EAAKt1G,KAAK0V,QAAQ0+G,aAAa,SAASlxH,GACpC,IAAIkwH,EAAapzH,KAAK+H,IAAI,IAAK7E,EAAK,GAAIA,EAAK,KAC7CA,EAAK,IAAMkwH,EAAWuB,cAAczxH,EAAK,IACzCA,EAAK,IAAMkwH,EAAWwB,eAAe1xH,EAAK,MAC3ClD,MA4PP,SAAS00H,GAAe/I,EAAS5jH,GAC7B,IAIIqY,EAJAnf,EAAU0qH,EAAQ1qH,QACjBA,EAAQuL,QAIb8oG,EAAKqW,EAAQj2G,QAAQm/G,UAAU,SAASpvH,EAAO7F,GAC3CwgB,EAAO4qG,EAAS/pH,EAAQuL,MAAO5M,GAC3BmI,GACA4jH,EAAQ4I,YAAYn0G,GAAQnf,EAAQuL,MAAM4T,GAC1Cnf,EAAQuL,MAAM4T,GAAQ3a,GAEtBxE,EAAQuL,MAAM4T,GAAQurG,EAAQ4I,YAAYn0G,IAAS,MAGtDrY,IACD4jH,EAAQ4I,YAAc,KAp0C9B7B,GAAYxtH,UAAY,CAKpB8c,IAAK,SAASvc,GAzBS,WA2BfA,IACAA,EAAQzF,KAAK80H,WAGbzC,IAAuBryH,KAAK2rH,QAAQ1qH,QAAQuL,OAAS8lH,GAAiB7sH,KACtEzF,KAAK2rH,QAAQ1qH,QAAQuL,MAAM4lH,IAAyB3sH,GAExDzF,KAAK+0H,QAAUtvH,EAAMiJ,cAAcsH,QAMvCg/G,OAAQ,WACJh1H,KAAKgiB,IAAIhiB,KAAK2rH,QAAQj2G,QAAQ++G,cAOlCK,QAAS,WACL,IAAIC,EAAU,GAMd,OALAzf,EAAKt1G,KAAK2rH,QAAQyI,aAAa,SAAShB,GAChCjJ,EAASiJ,EAAW19G,QAAQq2G,OAAQ,CAACqH,MACrC2B,EAAUA,EAAQv4H,OAAO42H,EAAW6B,sBAgEpD,SAA2BF,GAEvB,GAAInK,EAAMmK,EAnHU,QAoHhB,MApHgB,OAuHpB,IAAIG,EAAUtK,EAAMmK,EAtHC,SAuHjBI,EAAUvK,EAAMmK,EAtHC,SA4HrB,OAAIG,GAAWC,EA9HK,OAmIhBD,GAAWC,EACJD,EAnIU,QACA,QAsIjBtK,EAAMmK,EAzIkB,gBAAA,eADR,OAmHxB,CA7DiCA,EAAQrvH,KAAK,OAO1C0vH,gBAAiB,SAASl6H,GACtB,IAAI+yH,EAAW/yH,EAAM+yH,SACjBxpB,EAAYvpG,EAAMoyH,gBAGtB,GAAIttH,KAAK2rH,QAAQa,QAAQ6I,UACrBpH,EAAS/xD,qBADb,CAKA,IAAI64D,EAAU/0H,KAAK+0H,QACfO,EAAU1K,EAAMmK,EAtEJ,UAsEoCzC,GAAkC,KAClF6C,EAAUvK,EAAMmK,EArEH,WAqEoCzC,GArEpC,SAsEb4C,EAAUtK,EAAMmK,EAvEH,WAuEoCzC,GAvEpC,SAyEjB,GAAIgD,GAG6C,IAA1Bp6H,EAAMixH,SAASnxH,QACdE,EAAMstD,SAAW,GAChBttD,EAAM6xH,UAAY,IAGnC,OAIR,IAAImI,IAAWC,EAKf,OAAIG,GACCH,GAj3BcI,EAi3BH9wB,GACXywB,GAj3BYM,GAi3BD/wB,EACLzkG,KAAKy1H,WAAWxH,QAAAA,IAQ/BwH,WAAY,SAASxH,GACjBjuH,KAAK2rH,QAAQa,QAAQ6I,WAAAA,EACrBpH,EAAS/xD,mBA+GjBy2D,GAAWztH,UAAY,CAKnB0tH,SAAU,GAOV5wG,IAAK,SAAStM,GAKV,OAJAuzG,EAAOjpH,KAAK0V,QAASA,GAGrB1V,KAAK2rH,SAAW3rH,KAAK2rH,QAAQ8I,YAAYO,SAClCh1H,MAQX20H,cAAe,SAASxB,GACpB,GAAI7J,EAAe6J,EAAiB,gBAAiBnzH,MACjD,OAAOA,KAGX,IAAI8yH,EAAe9yH,KAAK8yH,aAMxB,OAJKA,GADLK,EAAkBD,GAA6BC,EAAiBnzH,OAC9ByR,MAC9BqhH,EAAaK,EAAgB1hH,IAAM0hH,EACnCA,EAAgBwB,cAAc30H,OAE3BA,MAQX01H,kBAAmB,SAASvC,GACxB,OAAI7J,EAAe6J,EAAiB,oBAAqBnzH,QAIzDmzH,EAAkBD,GAA6BC,EAAiBnzH,aACzDA,KAAK8yH,aAAaK,EAAgB1hH,KAJ9BzR,MAaf40H,eAAgB,SAASzB,GACrB,GAAI7J,EAAe6J,EAAiB,iBAAkBnzH,MAClD,OAAOA,KAGX,IAAI+yH,EAAc/yH,KAAK+yH,YAMvB,OAJ+C,IAA3ClI,EAAQkI,EADZI,EAAkBD,GAA6BC,EAAiBnzH,SAE5D+yH,EAAYryH,KAAKyyH,GACjBA,EAAgByB,eAAe50H,OAE5BA,MAQX21H,mBAAoB,SAASxC,GACzB,GAAI7J,EAAe6J,EAAiB,qBAAsBnzH,MACtD,OAAOA,KAGXmzH,EAAkBD,GAA6BC,EAAiBnzH,MAChE,IAAIihB,EAAQ4pG,EAAQ7qH,KAAK+yH,YAAaI,GAItC,OAHIlyG,GAAS,GACTjhB,KAAK+yH,YAAYnyH,OAAOqgB,EAAO,GAE5BjhB,MAOX41H,mBAAoB,WAChB,OAAO51H,KAAK+yH,YAAY/3H,OAAS,GAQrC66H,iBAAkB,SAAS1C,GACvB,QAASnzH,KAAK8yH,aAAaK,EAAgB1hH,KAQ/Cy8G,KAAM,SAAShzH,GACX,IAAIkC,EAAO4C,KACP6yH,EAAQ7yH,KAAK6yH,MAEjB,SAAS3E,EAAKr6F,GACVz2B,EAAKuuH,QAAQuC,KAAKr6F,EAAO34B,GAIzB23H,EArJM,GAsJN3E,EAAK9wH,EAAKsY,QAAQme,MAAQm/F,GAASH,IAGvC3E,EAAK9wH,EAAKsY,QAAQme,OAEd34B,EAAM46H,iBACN5H,EAAKhzH,EAAM46H,iBAIXjD,GAhKM,GAiKN3E,EAAK9wH,EAAKsY,QAAQme,MAAQm/F,GAASH,KAU3CkD,QAAS,SAAS76H,GACd,GAAI8E,KAAKg2H,UACL,OAAOh2H,KAAKkuH,KAAKhzH,GAGrB8E,KAAK6yH,MA7KM,IAoLfmD,QAAS,WAEL,IADA,IAAIr7H,EAAI,EACDA,EAAIqF,KAAK+yH,YAAY/3H,QAAQ,CAChC,KAAkC,GAA5BgF,KAAK+yH,YAAYp4H,GAAGk4H,OACtB,OAAA,EAEJl4H,IAEJ,OAAA,GAOJwzH,UAAW,SAAS6D,GAGhB,IAAIiE,EAAiBhN,EAAO,GAAI+I,GAGhC,IAAK7H,EAASnqH,KAAK0V,QAAQq2G,OAAQ,CAAC/rH,KAAMi2H,IAGtC,OAFAj2H,KAAKy/D,aACLz/D,KAAK6yH,MA3ME,IAgNM,GAAb7yH,KAAK6yH,QACL7yH,KAAK6yH,MAvNI,GA0Nb7yH,KAAK6yH,MAAQ7yH,KAAKmwF,QAAQ8lC,GAIT,GAAbj2H,KAAK6yH,OACL7yH,KAAK+1H,QAAQE,IAWrB9lC,QAAS,SAAS6hC,KAOlBiD,eAAgB,aAOhBx1D,MAAO,cA8DXqqD,EAAQuJ,GAAgBV,GAAY,CAKhCC,SAAU,CAKNzG,SAAU,GASd+J,SAAU,SAASh7H,GACf,IAAIi7H,EAAiBn2H,KAAK0V,QAAQy2G,SAClC,OAA0B,IAAnBgK,GAAwBj7H,EAAMixH,SAASnxH,SAAWm7H,GAS7DhmC,QAAS,SAASj1F,GACd,IAAI23H,EAAQ7yH,KAAK6yH,MACbj1D,EAAY1iE,EAAM0iE,UAElBw4D,EAAuB,EAARvD,EACfwD,EAAUr2H,KAAKk2H,SAASh7H,GAG5B,OAAIk7H,IAlzCO,EAkzCUx4D,IAA6By4D,GAvVpC,GAwVHxD,EACAuD,GAAgBC,EArzCnB,EAszCAz4D,EA5VE,EA6VKi1D,EA/VL,EAgWOA,EA/VL,EAkWDA,EAnWD,EAKC,MAiXnB/I,EAAQwJ,GAAeD,GAAgB,CAKnCT,SAAU,CACN/+F,MAAO,MACPmY,UAAW,GACXmgF,SAAU,EACV1nB,UA50CY6xB,IA+0ChBrB,eAAgB,WACZ,IAAIxwB,EAAYzkG,KAAK0V,QAAQ+uF,UACzBswB,EAAU,GAOd,OA11CmBQ,EAo1Cf9wB,GACAswB,EAAQr0H,KA9jBK,SAtxBA80H,GAs1Cb/wB,GACAswB,EAAQr0H,KAlkBK,SAokBVq0H,GAGXwB,cAAe,SAASr7H,GACpB,IAAIwa,EAAU1V,KAAK0V,QACf8gH,GAAAA,EACAhuE,EAAWttD,EAAMstD,SACjBi8C,EAAYvpG,EAAMupG,UAClBjrG,EAAI0B,EAAMmyH,OACV5zH,EAAIyB,EAAM81E,OAed,OAZMyzB,EAAY/uF,EAAQ+uF,YAt2CP8wB,EAu2CX7/G,EAAQ+uF,WACRA,EAAmB,IAANjrG,EA92CR,EA82CqCA,EAAI,EA72CzC,EACC,EA62CNg9H,EAAWh9H,GAAKwG,KAAKuzH,GACrB/qE,EAAWxlC,KAAK6K,IAAI3yB,EAAMmyH,UAE1B5oB,EAAmB,IAANhrG,EAl3CR,EAk3CqCA,EAAI,EA/2C3C,EACE,GA+2CL+8H,EAAW/8H,GAAKuG,KAAKwzH,GACrBhrE,EAAWxlC,KAAK6K,IAAI3yB,EAAM81E,UAGlC91E,EAAMupG,UAAYA,EACX+xB,GAAYhuE,EAAW9yC,EAAQs2B,WAAay4D,EAAY/uF,EAAQ+uF,WAG3EyxB,SAAU,SAASh7H,GACf,OAAOm4H,GAAenuH,UAAUgxH,SAASz3H,KAAKuB,KAAM9E,KAva1C,EAwaL8E,KAAK6yH,SAxaA,EAwa0B7yH,KAAK6yH,QAAwB7yH,KAAKu2H,cAAcr7H,KAGxFgzH,KAAM,SAAShzH,GAEX8E,KAAKuzH,GAAKr4H,EAAMmyH,OAChBrtH,KAAKwzH,GAAKt4H,EAAM81E,OAEhB,IAAIyzB,EAAYwuB,GAAa/3H,EAAMupG,WAE/BA,IACAvpG,EAAM46H,gBAAkB91H,KAAK0V,QAAQme,MAAQ4wE,GAEjDzkG,KAAKqH,OAAO6mH,KAAKzvH,KAAKuB,KAAM9E,MAcpC4uH,EAAQ2J,GAAiBJ,GAAgB,CAKrCT,SAAU,CACN/+F,MAAO,QACPmY,UAAW,EACXmgF,SAAU,GAGd8I,eAAgB,WACZ,MAAO,CAzoBS,SA4oBpBiB,SAAU,SAASh7H,GACf,OAAO8E,KAAKqH,OAAO6uH,SAASz3H,KAAKuB,KAAM9E,KAClC8nB,KAAK6K,IAAI3yB,EAAMshB,MAAQ,GAAKxc,KAAK0V,QAAQs2B,WApdpC,EAodiDhsC,KAAK6yH,QAGpE3E,KAAM,SAAShzH,GACS,IAAhBA,EAAMshB,QAENthB,EAAM46H,gBAAkB91H,KAAK0V,QAAQme,OADzB34B,EAAMshB,MAAQ,EAAI,KAAO,QAGzCxc,KAAKqH,OAAO6mH,KAAKzvH,KAAKuB,KAAM9E,MAiBpC4uH,EAAQ4J,GAAiBf,GAAY,CAKjCC,SAAU,CACN/+F,MAAO,QACPs4F,SAAU,EACV5yF,KAAM,IACNyS,UAAW,GAGfipF,eAAgB,WACZ,MAAO,CAtrBS,SAyrBpB9kC,QAAS,SAASj1F,GACd,IAAIwa,EAAU1V,KAAK0V,QACf+gH,EAAgBv7H,EAAMixH,SAASnxH,SAAW0a,EAAQy2G,SAClDuK,EAAgBx7H,EAAMstD,SAAW9yC,EAAQs2B,UACzC2qF,EAAYz7H,EAAM6xH,UAAYr3G,EAAQ6jB,KAM1C,GAJAv5B,KAAK4zH,OAAS14H,GAITw7H,IAAkBD,GAAoC,GAAlBv7H,EAAM0iE,YAA2C+4D,EACtF32H,KAAKy/D,aACF,GAn+CG,EAm+CCvkE,EAAM0iE,UACb59D,KAAKy/D,QACLz/D,KAAK2zH,OAASvK,GAAkB,WAC5BppH,KAAK6yH,MA1gBH,EA2gBF7yH,KAAK+1H,YACNrgH,EAAQ6jB,KAAMv5B,WACd,GAv+CC,EAu+CG9E,EAAM0iE,UACb,OA9gBM,EAghBV,OA7gBW,IAghBf6B,MAAO,WACH7vD,aAAa5P,KAAK2zH,SAGtBzF,KAAM,SAAShzH,GAvhBD,IAwhBN8E,KAAK6yH,QAIL33H,GAt/CI,EAs/CMA,EAAM0iE,UAChB59D,KAAK2rH,QAAQuC,KAAKluH,KAAK0V,QAAQme,MAAQ,KAAM34B,IAE7C8E,KAAK4zH,OAAO9G,UAAY3gH,IACxBnM,KAAK2rH,QAAQuC,KAAKluH,KAAK0V,QAAQme,MAAO7zB,KAAK4zH,aAevD9J,EAAQ+J,GAAkBR,GAAgB,CAKtCT,SAAU,CACN/+F,MAAO,SACPmY,UAAW,EACXmgF,SAAU,GAGd8I,eAAgB,WACZ,MAAO,CAvvBS,SA0vBpBiB,SAAU,SAASh7H,GACf,OAAO8E,KAAKqH,OAAO6uH,SAASz3H,KAAKuB,KAAM9E,KAClC8nB,KAAK6K,IAAI3yB,EAAM84F,UAAYh0F,KAAK0V,QAAQs2B,WAlkBnC,EAkkBgDhsC,KAAK6yH,UAcvE/I,EAAQgK,GAAiBT,GAAgB,CAKrCT,SAAU,CACN/+F,MAAO,QACPmY,UAAW,GACX6hF,SAAU,GACVppB,UAAW6xB,GACXnK,SAAU,GAGd8I,eAAgB,WACZ,OAAO3B,GAAcpuH,UAAU+vH,eAAex2H,KAAKuB,OAGvDk2H,SAAU,SAASh7H,GACf,IACI2yH,EADAppB,EAAYzkG,KAAK0V,QAAQ+uF,UAW7B,OARgB,GAAZA,EACAopB,EAAW3yH,EAAMsyH,gBArjDF+H,EAsjDR9wB,EACPopB,EAAW3yH,EAAMwyH,iBAtjDJ8H,GAujDN/wB,IACPopB,EAAW3yH,EAAMyyH,kBAGd3tH,KAAKqH,OAAO6uH,SAASz3H,KAAKuB,KAAM9E,IACnCupG,EAAYvpG,EAAMoyH,iBAClBpyH,EAAMstD,SAAWxoD,KAAK0V,QAAQs2B,WAC9B9wC,EAAM0yH,aAAe5tH,KAAK0V,QAAQy2G,UAClCt+F,EAAIggG,GAAY7tH,KAAK0V,QAAQm4G,UAzkDzB,EAykDqC3yH,EAAM0iE,WAGvDswD,KAAM,SAAShzH,GACX,IAAIupG,EAAYwuB,GAAa/3H,EAAMoyH,iBAC/B7oB,GACAzkG,KAAK2rH,QAAQuC,KAAKluH,KAAK0V,QAAQme,MAAQ4wE,EAAWvpG,GAGtD8E,KAAK2rH,QAAQuC,KAAKluH,KAAK0V,QAAQme,MAAO34B,MA2B9C4uH,EAAQiK,GAAepB,GAAY,CAK/BC,SAAU,CACN/+F,MAAO,MACPs4F,SAAU,EACV1+B,KAAM,EACNmpC,SAAU,IACVr9F,KAAM,IACNyS,UAAW,EACX6qF,aAAc,IAGlB5B,eAAgB,WACZ,MAAO,CAh2BiB,iBAm2B5B9kC,QAAS,SAASj1F,GACd,IAAIwa,EAAU1V,KAAK0V,QAEf+gH,EAAgBv7H,EAAMixH,SAASnxH,SAAW0a,EAAQy2G,SAClDuK,EAAgBx7H,EAAMstD,SAAW9yC,EAAQs2B,UACzC8qF,EAAiB57H,EAAM6xH,UAAYr3G,EAAQ6jB,KAI/C,GAFAv5B,KAAKy/D,QAzoDK,EA2oDLvkE,EAAM0iE,WAA4C,IAAf59D,KAAKk0H,MACzC,OAAOl0H,KAAK+2H,cAKhB,GAAIL,GAAiBI,GAAkBL,EAAe,CAClD,GAhpDI,GAgpDAv7H,EAAM0iE,UACN,OAAO59D,KAAK+2H,cAGhB,IAAIC,GAAgBh3H,KAAKg0H,OAAS94H,EAAM4xH,UAAY9sH,KAAKg0H,MAAQt+G,EAAQkhH,SACrEK,GAAiBj3H,KAAKi0H,SAAWhH,EAAYjtH,KAAKi0H,QAAS/4H,EAAMymD,QAAUjsC,EAAQmhH,aAgBvF,GAdA72H,KAAKg0H,MAAQ94H,EAAM4xH,UACnB9sH,KAAKi0H,QAAU/4H,EAAMymD,OAEhBs1E,GAAkBD,EAGnBh3H,KAAKk0H,OAAS,EAFdl0H,KAAKk0H,MAAQ,EAKjBl0H,KAAK4zH,OAAS14H,EAKG,GADF8E,KAAKk0H,MAAQx+G,EAAQ+3E,KAIhC,OAAKztF,KAAK41H,sBAGN51H,KAAK2zH,OAASvK,GAAkB,WAC5BppH,KAAK6yH,MAltBX,EAmtBM7yH,KAAK+1H,YACNrgH,EAAQkhH,SAAU52H,MAttBvB,GAEA,EAytBV,OAttBW,IAytBf+2H,YAAa,WAIT,OAHA/2H,KAAK2zH,OAASvK,GAAkB,WAC5BppH,KAAK6yH,MA3tBE,KA4tBR7yH,KAAK0V,QAAQkhH,SAAU52H,MA5tBf,IAguBfy/D,MAAO,WACH7vD,aAAa5P,KAAK2zH,SAGtBzF,KAAM,WAvuBQ,GAwuBNluH,KAAK6yH,QACL7yH,KAAK4zH,OAAOsD,SAAWl3H,KAAKk0H,MAC5Bl0H,KAAK2rH,QAAQuC,KAAKluH,KAAK0V,QAAQme,MAAO7zB,KAAK4zH,YAoBvDO,GAAO7a,QAAU,QAMjB6a,GAAOvB,SAAW,CAOduE,WAAAA,EAQA1C,YAl9BuB,UAw9BvB1I,QAAAA,EASAH,YAAa,KAOb4I,WAAY,KAOZH,OAAQ,CAEJ,CAACR,GAAkB,CAAC9H,QAAAA,IACpB,CAAC0H,GAAiB,CAAC1H,QAAAA,GAAgB,CAAC,WACpC,CAAC+H,GAAiB,CAACrvB,UArwDA8wB,IAswDnB,CAACjC,GAAe,CAAC7uB,UAtwDE8wB,GAswDgC,CAAC,UACpD,CAACxB,IACD,CAACA,GAAe,CAAClgG,MAAO,YAAa45D,KAAM,GAAI,CAAC,QAChD,CAACimC,KAQLmB,SAAU,CAMNuC,WAAY,OAOZC,YAAa,OASbC,aAAc,OAOdC,eAAgB,OAOhBC,SAAU,OAQVC,kBAAmB,kBAoC3BnD,GAAQpvH,UAAY,CAMhB8c,IAAK,SAAStM,GAaV,OAZAuzG,EAAOjpH,KAAK0V,QAASA,GAGjBA,EAAQ++G,aACRz0H,KAAKy0H,YAAYO,SAEjBt/G,EAAQk2G,cAER5rH,KAAK9E,MAAMi/E,UACXn6E,KAAK9E,MAAMyP,OAAS+K,EAAQk2G,YAC5B5rH,KAAK9E,MAAM8wH,QAERhsH,MASX03H,KAAM,SAASC,GACX33H,KAAKwsH,QAAQoL,QAAUD,EA5Db,EADP,GAsEPxJ,UAAW,SAAS6D,GAChB,IAAIxF,EAAUxsH,KAAKwsH,QACnB,IAAIA,EAAQoL,QAAZ,CAOA,IAAIxE,EAFJpzH,KAAKy0H,YAAYW,gBAAgBpD,GAGjC,IAAIoC,EAAcp0H,KAAKo0H,YAKnByD,EAAgBrL,EAAQqL,gBAIvBA,GAAkBA,GAz8Bb,EAy8B8BA,EAAchF,SAClDgF,EAAgBrL,EAAQqL,cAAgB,MAI5C,IADA,IAAIl9H,EAAI,EACDA,EAAIy5H,EAAYp5H,QACnBo4H,EAAagB,EAAYz5H,GA9FnB,IAsGF6xH,EAAQoL,SACHC,GAAiBzE,GAAcyE,IAChCzE,EAAWyC,iBAAiBgC,GAGhCzE,EAAW3zD,QAFX2zD,EAAWjF,UAAU6D,IAOpB6F,GAAoC,GAAnBzE,EAAWP,QAC7BgF,EAAgBrL,EAAQqL,cAAgBzE,GAE5Cz4H,MASRkoB,IAAK,SAASuwG,GACV,GAAIA,aAAsBT,GACtB,OAAOS,EAIX,IADA,IAAIgB,EAAcp0H,KAAKo0H,YACdz5H,EAAI,EAAGA,EAAIy5H,EAAYp5H,OAAQL,IACpC,GAAIy5H,EAAYz5H,GAAG+a,QAAQme,OAASu/F,EAChC,OAAOgB,EAAYz5H,GAG3B,OAAO,MASXoN,IAAK,SAASqrH,GACV,GAAI9J,EAAe8J,EAAY,MAAOpzH,MAClC,OAAOA,KAIX,IAAI83H,EAAW93H,KAAK6iB,IAAIuwG,EAAW19G,QAAQme,OAS3C,OARIikG,GACA93H,KAAK+V,OAAO+hH,GAGhB93H,KAAKo0H,YAAY1zH,KAAK0yH,GACtBA,EAAWzH,QAAU3rH,KAErBA,KAAKy0H,YAAYO,SACV5B,GAQXr9G,OAAQ,SAASq9G,GACb,GAAI9J,EAAe8J,EAAY,SAAUpzH,MACrC,OAAOA,KAMX,GAHAozH,EAAapzH,KAAK6iB,IAAIuwG,GAGN,CACZ,IAAIgB,EAAcp0H,KAAKo0H,YACnBnzG,EAAQ4pG,EAAQuJ,EAAahB,IAElB,IAAXnyG,IACAmzG,EAAYxzH,OAAOqgB,EAAO,GAC1BjhB,KAAKy0H,YAAYO,UAIzB,OAAOh1H,MASXqgB,GAAI,SAASzR,EAAQpO,GACjB,QAAA,IAAIoO,QAAAA,IAGApO,EAAJ,CAIA,IAAIzC,EAAWiC,KAAKjC,SAKpB,OAJAu3G,EAAKmV,EAAS77G,IAAS,SAASilB,GAC5B91B,EAAS81B,GAAS91B,EAAS81B,IAAU,GACrC91B,EAAS81B,GAAOnzB,KAAKF,MAElBR,OASXygB,IAAK,SAAS7R,EAAQpO,GAClB,QAAA,IAAIoO,EAAJ,CAIA,IAAI7Q,EAAWiC,KAAKjC,SAQpB,OAPAu3G,EAAKmV,EAAS77G,IAAS,SAASilB,GACvBrzB,EAGDzC,EAAS81B,IAAU91B,EAAS81B,GAAOjzB,OAAOiqH,EAAQ9sH,EAAS81B,GAAQrzB,GAAU,UAFtEzC,EAAS81B,MAKjB7zB,OAQXkuH,KAAM,SAASr6F,EAAO13B,GAEd6D,KAAK0V,QAAQyhH,WAkEzB,SAAyBtjG,EAAO13B,GAC5B,IAAI47H,EAAet6H,EAASsM,YAAY,SACxCguH,EAAa/Y,UAAUnrF,GAAAA,GAAO,GAC9BkkG,EAAaC,QAAU77H,EACvBA,EAAKwO,OAAOd,cAAckuH,GAJ9B,CAjE4BlkG,EAAO13B,GAI3B,IAAI4B,EAAWiC,KAAKjC,SAAS81B,IAAU7zB,KAAKjC,SAAS81B,GAAOv2B,QAC5D,GAAKS,GAAaA,EAAS/C,OAA3B,CAIAmB,EAAKgP,KAAO0oB,EACZ13B,EAAK+/D,eAAiB,WAClB//D,EAAK8xH,SAAS/xD,kBAIlB,IADA,IAAIvhE,EAAI,EACDA,EAAIoD,EAAS/C,QAChB+C,EAASpD,GAAGwB,GACZxB,MAQRw/E,QAAS,WACLn6E,KAAKiB,SAAWyzH,GAAe10H,MAAAA,GAE/BA,KAAKjC,SAAW,GAChBiC,KAAKwsH,QAAU,GACfxsH,KAAK9E,MAAMi/E,UACXn6E,KAAKiB,QAAU,OAyCvBgoH,EAAOkL,GAAQ,CACX8D,YAtoEc,EAuoEdC,WAtoEa,EAuoEbC,UAtoEY,EAuoEZC,aAtoEe,EAwoEfC,eAlrCiB,EAmrCjBC,YAlrCc,EAmrCdC,cAlrCgB,EAmrChBC,YAlrCc,EAmrCdC,iBAnrCc,EAorCdC,gBAlrCkB,GAmrClBC,aAlrCe,GAorCfC,eA9oEiB,EA+oEjBrD,eA9oEiB,EA+oEjBsD,gBA9oEkB,EA+oElBrD,aA9oEe,EA+oEfsD,eA9oEiB,GA+oEjBxC,qBA7oEuBf,EA8oEvBwD,mBA7oEqBvD,GA8oErBwD,cA7oEgB1C,GA+oEhBhC,QAASA,GACT5I,MAAOA,EACPgH,YAAaA,GAEb5B,WAAYA,GACZnC,WAAYA,EACZiB,kBAAmBA,GACnByB,gBAAiBA,GACjBX,iBAAkBA,GAElBiC,WAAYA,GACZU,eAAgBA,GAChB4F,IAAKlF,GACLmF,IAAK5F,GACL6F,MAAOrF,GACPsF,MAAO3F,GACP4F,OAAQxF,GACRyF,MAAO5F,GAEPrzG,GAAIkqG,EACJ9pG,IAAKiqG,EACLpV,KAAMA,EACNf,MAAOA,EACPn+F,OAAQA,EACR6yG,OAAQA,EACRa,QAASA,EACTT,OAAQA,EACR2B,SAAUA,UAAAA,IAKW9tH,EAAyBA,EAA0B,oBAATE,KAAuBA,KAAO,IACtF+2H,OAASA,QAAAA,KAGhB,GAAA,WACI,OAAOA,KACV,KAAA,EAAA,EAAA,EAAA,MAAA,EAAA,QAAA,GAtkFL,CA6kFGj3H,OAAQO,WAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aC7kFXf,EAAQuH,SAHR,SAAkBzK,GACd,OAAOA,IAAAA,KAAAA,SAAAA,EAAAA,EAAAA,GAAAA,aCDX,IAAIsgB,EAAe,EAAQ,QAgB3Bpd,EAAQoc,eAfR,SAAwBygH,GACpB,KAAOA,GAAU,CACb,IAAyC1xH,EAAhC0xH,EAAiD1xH,YAC1D,GADS0xH,EAAwBhxH,QAAxBgxH,EAA6E3xH,UAElF,OAAA,EAGA2xH,EADK1xH,GAAeA,aAAuBiS,EAAa1S,WAC7CS,EAGA,KAGnB,OAAA,IAAO,OAAA,SAAA,EAAA,EAAA,GAAA,aCdX,IAAI2xH,EAAY,EAAQ,QACpBC,EAAa,EAAQ,QACrB3yH,EAAe,EAAQ,QACvB4yH,EAAwB,EAAQ,QAgIpC,SAASC,EAA4B7kH,GACjC,OAAOA,EAAO5Q,QAAO,SAAU01H,EAAM9zH,GAAO,OAAO8zH,EAAKp9H,OAAQsJ,aAAe4zH,EAAsB9kH,oBAAuB9O,EAAIgP,OAAShP,KAAS,IAFtJpJ,EAAQgM,aA9HY,WAChB,SAASA,EAAa/H,GAClBX,KAAKuI,QAAAA,EACLvI,KAAKyI,iBAAmB,KACxBzI,KAAK65H,eAAiB,KAClBl5H,IACAX,KAAKwJ,aAAe7I,GAkHN,IAAUmH,EAIhC,OAnHAY,EAAaxD,UAAUvE,YAAc,WACjC,IAAImU,EACJ,IAAI9U,KAAKuI,OAAT,CAGA,IAAeE,EAANzI,KAA4ByI,iBAAkBe,EAA9CxJ,KAAgEwJ,aAAcqwH,EAA9E75H,KAAkG65H,eAI3G,GAHA75H,KAAKuI,QAAAA,EACLvI,KAAKyI,iBAAmB,KACxBzI,KAAK65H,eAAiB,KAClBpxH,aAA4BC,EAC5BD,EAAiBsN,OAAO/V,WAEvB,GAAyB,OAArByI,EACL,IAAK,IAAIwY,EAAQ,EAAGA,EAAQxY,EAAiBzN,SAAUimB,EACpCxY,EAAiBwY,GACvBlL,OAAO/V,MAGxB,GAAI8G,EAAagC,WAAWU,GACxB,IACIA,EAAa/K,KAAKuB,MAEtB,MAAOyD,GACHqR,EAASrR,aAAai2H,EAAsB9kH,oBAAsB+kH,EAA4Bl2H,EAAEqR,QAAU,CAACrR,GAGnH,GAAI+1H,EAAU1iH,QAAQ+iH,GAClB,CAAI54G,GAAS,EAEb,IAFA,IACIvmB,EAAMm/H,EAAe7+H,SAChBimB,EAAQvmB,GAAK,CAClB,IAAIo/H,EAAMD,EAAe54G,GACzB,GAAIw4G,EAAWhwH,SAASqwH,GACpB,IACIA,EAAIn5H,cAER,MAAO8C,GACHqR,EAASA,GAAU,GACfrR,aAAai2H,EAAsB9kH,oBACnCE,EAASA,EAAOtY,OAAOm9H,EAA4Bl2H,EAAEqR,SAGrDA,EAAOpU,KAAK+C,KAMhC,GAAIqR,EACA,MAAM,IAAI4kH,EAAsB9kH,oBAAoBE,KAG5DpM,EAAaxD,UAAU6C,IAAM,SAAUgyH,GACnC,IAAI9gH,EAAe8gH,EACnB,IAAKA,EACD,OAAOrxH,EAAasxH,MAExB,cAAeD,GACX,IAAK,WACD9gH,EAAe,IAAIvQ,EAAaqxH,GACpC,IAAK,SACD,GAAI9gH,IAAiBjZ,MAAQiZ,EAAa1Q,QAA8C,mBAA7B0Q,EAAatY,YACpE,OAAOsY,EAEN,GAAIjZ,KAAKuI,OAEV,OADA0Q,EAAatY,cACNsY,EAEN,KAAMA,aAAwBvQ,GAAe,CAC9C,IAAIuxH,EAAMhhH,GACVA,EAAe,IAAIvQ,GACNmxH,eAAiB,CAACI,GAEnC,MACJ,QACI,MAAM,IAAIp0H,MAAM,yBAA2Bk0H,EAAW,2BAG9D,IAAItxH,EAAmBwQ,EAAaxQ,iBACpC,GAAyB,OAArBA,EACAwQ,EAAaxQ,iBAAmBzI,UAE/B,GAAIyI,aAA4BC,EAAc,CAC/C,GAAID,IAAqBzI,KACrB,OAAOiZ,EAEXA,EAAaxQ,iBAAmB,CAACA,EAAkBzI,UAElD,CAAA,IAAwC,IAApCyI,EAAiB7G,QAAQ5B,MAI9B,OAAOiZ,EAHPxQ,EAAiB/H,KAAKV,MAK1B,IAAIk6H,EAAgBl6H,KAAK65H,eAOzB,OANsB,OAAlBK,EACAl6H,KAAK65H,eAAiB,CAAC5gH,GAGvBihH,EAAcx5H,KAAKuY,GAEhBA,GAEXvQ,EAAaxD,UAAU6Q,OAAS,SAAUkD,GACtC,IAAIihH,EAAgBl6H,KAAK65H,eACzB,GAAIK,EAAe,CACf,IAAIC,EAAoBD,EAAct4H,QAAQqX,IACnB,IAAvBkhH,GACAD,EAAct5H,OAAOu5H,EAAmB,KAIpDzxH,EAAasxH,QAAmBlyH,EAG9B,IAAIY,GAFIH,QAAAA,EACCT,GAEJY,EA5HS,IAAD,KAAA,SAAA,EAAA,EAAA,GAAA,aCNZ,SAASI,EAAWtP,GACvB,MAAoB,mBAANA,EAAAA,EAAAA,EAAAA,GCDlB,IAAIssH,GAAAA,EACS,EAAS,CAClBv2G,aAAAA,EACA,0CAA0C9J,GACtC,GAAIA,EAAO,CACP,IAAMtG,EAAQ,IAAI0G,MAClBrB,QAAQyG,KAAK,gGAAkG9L,EAAMf,YAEhH0nH,GACLthH,QAAQgb,IAAI,wDAEhBsmG,EAAsDrgH,GAE1D,4CACI,OAAOqgH,ICdR,SAASz8G,EAAgBvD,GAC5BzF,YAAW,WAAQ,MAAMyF,IAAQ,GCC9B,IAAMgC,EAAQ,CACjBS,QAAAA,EACA,KAFiB,SAEZ9C,KACL,MAHiB,SAGXK,GACF,GAAI,EAAOoD,sCACP,MAAMpD,EAGNuD,EAAgBvD,IAGxB,SAXiB,cCFRgR,EAAiBrQ,MAAMqQ,SAAatd,SAAAA,GAAAA,OAAMA,GAAyB,iBAAbA,EAAEwB,QCA9D,SAASyO,EAASjQ,GACrB,OAAa,OAANA,GAA2B,iBAANA,ECDhC,ICIakP,EDSAkM,EAbmB,WAC5B,SAASC,EAAwBC,GAO7B,OANAjP,MAAMpH,KAAKuB,MACXA,KAAKZ,QAAU0V,EAAAA,GAAAA,OACRA,EAAO9Z,OADC8Z,6CAAAA,OAErBA,EAAOC,KAAI,SAACjP,EAAKnL,GAAN,MAAA,GAAA,OAAeA,EAAI,EAAnB,MAAA,OAAyBmL,EAAIjG,eAAc6F,KAAK,SAAY,GACjE1F,KAAKJ,KAAO,sBACZI,KAAK8U,OAASA,EACP9U,KAGX,OADA6U,EAAwB3P,UAAYa,OAAOc,OAAOhB,MAAMX,WACjD2P,EAXqB,GCIzB,IAAMnM,EAAN,WACH,SAAA,EAAY/H,GAAAA,gBAAAA,KAAAA,GACRX,KAAKuI,QAAAA,EACLvI,KAAKyI,iBAAmB,KACxBzI,KAAK65H,eAAiB,KAClBl5H,IACAX,KAAKwJ,aAAe7I,GANzB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WAUC,IAAImU,EACJ,IAAI9U,KAAKuI,OAAT,CAFJ,IAKUE,EAAmDzI,KAArD,iBAAoBwJ,EAAiCxJ,KAAnC,aAAgB65H,EAAmB75H,KAArB,eAIpC,GAHAA,KAAKuI,QAAAA,EACLvI,KAAKyI,iBAAmB,KACxBzI,KAAK65H,eAAiB,KAClBpxH,aAA4BC,EAC5BD,EAAiBsN,OAAO/V,WAEvB,GAAyB,OAArByI,EACL,IAAK,IAAIwY,EAAQ,EAAGA,EAAQxY,EAAiBzN,SAAUimB,EACpCxY,EAAiBwY,GACzBlL,OAAO/V,MAGtB,GAAI8I,EAAWU,GACX,IACIA,EAAa/K,KAAKuB,MAEtB,MAAOyD,GACHqR,EAASrR,aAAamR,EAAsB+kH,EAA4Bl2H,EAAEqR,QAAU,CAACrR,GAG7F,GAAIqT,EAAQ+iH,GAGR,IAFA,IAAI54G,GAAS,EACTvmB,EAAMm/H,EAAe7+H,SAChBimB,EAAQvmB,GAAK,CAClB,IAAMo/H,EAAMD,EAAe54G,GAC3B,GAAIxX,EAASqwH,GACT,IACIA,EAAIn5H,cAER,MAAO8C,GACHqR,EAASA,GAAU,GACfrR,aAAamR,EACbE,EAASA,EAAOtY,OAAOm9H,EAA4Bl2H,EAAEqR,SAGrDA,EAAOpU,KAAK+C,IAMhC,GAAIqR,EACA,MAAM,IAAIF,EAAoBE,MAzDnC,CAAA,IAAA,MAAA,MAAA,SA4DCilH,GACA,IAAI9gH,EAAe8gH,EACnB,IAAKA,EACD,OAAOrxH,EAAasxH,MAExB,cAAeD,GACX,IAAK,WACD9gH,EAAe,IAAIvQ,EAAaqxH,GACpC,IAAK,SACD,GAAI9gH,IAAiBjZ,MAAQiZ,EAAa1Q,QAA8C,mBAA7B0Q,EAAatY,YACpE,OAAOsY,EAEN,GAAIjZ,KAAKuI,OAEV,OADA0Q,EAAatY,cACNsY,EAEN,KAAMA,aAAwBvQ,GAAe,CAC9C,IAAMuxH,EAAMhhH,GACZA,EAAe,IAAIvQ,GACNmxH,eAAiB,CAACI,GAEnC,MACJ,QACI,MAAM,IAAIp0H,MAAM,yBAA2Bk0H,EAAW,2BAvB9DA,IA0BMtxH,EAAqBwQ,EAAvB,iBACJ,GAAyB,OAArBxQ,EACAwQ,EAAaxQ,iBAAmBzI,UAE/B,GAAIyI,aAA4BC,EAAc,CAC/C,GAAID,IAAqBzI,KACrB,OAAOiZ,EAEXA,EAAaxQ,iBAAmB,CAACA,EAAkBzI,UAElD,CAAA,IAAwC,IAApCyI,EAAiB7G,QAAQ5B,MAI9B,OAAOiZ,EAHPxQ,EAAiB/H,KAAKV,MAK1B,IAAMk6H,EAAgBl6H,KAAK65H,eAO3B,OANsB,OAAlBK,EACAl6H,KAAK65H,eAAiB,CAAC5gH,GAGvBihH,EAAcx5H,KAAKuY,GAEhBA,IA7GR,CAAA,IAAA,SAAA,MAAA,SA+GIA,GACH,IAAMihH,EAAgBl6H,KAAK65H,eAC3B,GAAIK,EAAe,CACf,IAAMC,EAAoBD,EAAct4H,QAAQqX,IACrB,IAAvBkhH,GACAD,EAAct5H,OAAOu5H,EAAmB,QApHjD,EAAA,IAyHMH,MAAS,SAAUlyH,GAE5B,OADAA,EAAMS,QAAAA,EACCT,EAFW,CAGpB,IAAIY,GAHNA,GAIA,SAASixH,EAA4B7kH,GACjC,OAAOA,EAAO5Q,QAAO,SAAC01H,EAAM9zH,GAAP,OAAe8zH,EAAKp9H,OAAQsJ,aAAe8O,EAAuB9O,EAAIgP,OAAShP,KAAM,IClIvG,IAAMmC,EAAwC,mBAAXyO,OACpCA,OAAO,gBACP,kBAAoBsM,KAAKc,SCIlB,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYxc,EAAmBnI,EAAOoI,GAAAA,IAAAA,EAMlC,OANkCA,gBAAAA,KAAAA,IAClC6yH,EAAAA,EAAAA,KAAAA,OACK3yH,eAAiB,KACtBzH,EAAK0H,iBAAAA,EACL1H,EAAK2H,oBAAAA,EACL3H,EAAK4H,WAAAA,EACGlJ,UAAU1D,QACd,KAAK,EACDgF,EAAK6H,YAAcC,EACnB,MACJ,KAAK,EACD,IAAKR,EAAmB,CACpBtH,EAAK6H,YAAcC,EACnB,MAEJ,GAAiC,iBAAtBR,EAAgC,CACnCA,aAA6B,GAC7BtH,EAAK2H,mBAAqBL,EAAkBK,mBAC5C3H,EAAK6H,YAAcP,EACnBA,EAAkBS,IAAlBT,uBAAAA,MAGAtH,EAAK2H,oBAAAA,EACL3H,EAAK6H,YAAc,IAAI,EAAJ,uBAAA,GAAyBP,IAEhD,MAER,QACItH,EAAK2H,oBAAAA,EACL3H,EAAK6H,YAAc,IAAI,EAAJ,uBAAA,GAAyBP,EAAmBnI,EAAOoI,GA7B5CA,OAAAA,EAuCtC,OANA,aAAA,EAAA,CAAA,CAAA,IAACU,EAAAA,MAAAA,WAAwB,OAAOjI,OAChC,CAAA,IAAA,OAAA,MAAA,SAKKyF,GACIzF,KAAK4H,WACN5H,KAAKoI,MAAM3C,KAGnB,CAAA,IAAA,QAAA,MAAA,SAAMK,GACG9F,KAAK4H,YACN5H,KAAK4H,WAAAA,EACL5H,KAAKqI,OAAOvC,MAGpB,CAAA,IAAA,WAAA,MAAA,WACS9F,KAAK4H,YACN5H,KAAK4H,WAAAA,EACL5H,KAAKsI,eAGb,CAAA,IAAA,cAAA,MAAA,WACQtI,KAAKuI,SAGTvI,KAAK4H,WAAAA,EAAL5H,KAAAA,gBAAAA,EAAAA,WAAAA,cAAAA,MAAAA,KAAAA,SAGJ,CAAA,IAAA,QAAA,MAAA,SAAMyF,GACFzF,KAAK6H,YAAYK,KAAKzC,KAE1B,CAAA,IAAA,SAAA,MAAA,SAAOK,GACH9F,KAAK6H,YAAY1I,MAAM2G,GACvB9F,KAAKW,gBAET,CAAA,IAAA,YAAA,MAAA,WACIX,KAAK6H,YAAYN,WACjBvH,KAAKW,gBAET,CAAA,IAAA,yBAAA,MAAA,WAAA,IACY8H,EAAqBzI,KAAvB,iBAMN,OALAA,KAAKyI,iBAAmB,KACxBzI,KAAKW,cACLX,KAAKuI,QAAAA,EACLvI,KAAK4H,WAAAA,EACL5H,KAAKyI,iBAAmBA,EACjBzI,QAAAA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,SA/CGkI,EAAM/I,EAAOoI,GACvB,IAAMY,EAAa,IAAI,EAAWD,EAAM/I,EAAOoI,GAE/C,OADAY,EAAWR,oBAAAA,EACJQ,MAEX,EAxCS,CAAmB,GAqFnB,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYQ,EAAmBC,EAAgBzJ,EAAOoI,GAAAA,IAAAA,EAG9CW,EAH8CX,gBAAAA,KAAAA,IAClD6yH,EAAAA,EAAAA,KAAAA,OACKzxH,kBAAoBA,EAEzB,IAAIE,EAAAA,uBAAAA,GAJ8CtB,OAK9CuB,EAAWF,GACXV,EAAOU,EAEFA,IACLV,EAAOU,EAAeV,KACtB/I,EAAQyJ,EAAezJ,MACvBoI,EAAWqB,EAAerB,SACtBqB,IAAmBd,IAEfgB,GADJD,EAAU9C,OAAOc,OAAO+B,IACDjI,cACnBX,EAAK+H,IAAIc,EAAQlI,YAAYoI,KAAKF,IAEtCA,EAAQlI,YAAcX,EAAKW,YAAYoI,KAAjB/I,uBAAAA,MAG9BA,EAAKgJ,SAAWH,EAChB7I,EAAKoI,MAAQF,EACblI,EAAKqI,OAASlJ,EACda,EAAKsI,UAAYf,EAvBiCA,EA8HhC5G,OArGtB,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK8E,GACD,IAAKzF,KAAK4H,WAAa5H,KAAKoI,MAAO,CAAA,IACvBO,EAAsB3I,KAAxB,kBACD,EAAOkJ,uCAA0CP,EAAkBhB,mBAG/D3H,KAAKmJ,gBAAgBR,EAAmB3I,KAAKoI,MAAO3C,IACzDzF,KAAKW,cAHLX,KAAKoJ,aAAapJ,KAAKoI,MAAO3C,MAO1C,CAAA,IAAA,QAAA,MAAA,SAAMK,GACF,IAAK9F,KAAK4H,UAAW,CACjB,IAAQe,EAAsB3I,KAAxB,kBACEkJ,EAA0C,EAA5C,sCACN,GAAIlJ,KAAKqI,OACAa,GAA0CP,EAAkBhB,oBAK7D3H,KAAKmJ,gBAAgBR,EAAmB3I,KAAKqI,OAAQvC,GACrD9F,KAAKW,gBALLX,KAAKoJ,aAAapJ,KAAKqI,OAAQvC,GAC/B9F,KAAKW,oBAOR,GAAKgI,EAAkBhB,mBAQpBuB,GACAP,EAAkBlB,eAAiB3B,EACnC6C,EAAkBjB,iBAAAA,GAGlB2B,EAAgBvD,GAEpB9F,KAAKW,kBAfuC,CAE5C,GADAX,KAAKW,cACDuI,EACA,MAAMpD,EAEVuD,EAAgBvD,OAc5B,CAAA,IAAA,WAAA,MAAA,WAAA,IAAA,EAAA,KACI,IAAK9F,KAAK4H,UAAW,CAAA,IACTe,EAAsB3I,KAAxB,kBACN,GAAIA,KAAKsI,UAAW,CAChB,IAAMgB,EAAkB,WAAA,OAAMtJ,EAAKsI,UAAU7J,KAAKuB,EAAKgJ,WAClD,EAAOE,uCAA0CP,EAAkBhB,oBAKpE3H,KAAKmJ,gBAAgBR,EAAmBW,GACxCtJ,KAAKW,gBALLX,KAAKoJ,aAAaE,GAClBtJ,KAAKW,oBAQTX,KAAKW,iBAIjB,CAAA,IAAA,eAAA,MAAA,SAAayD,EAAIqB,GACb,IACIrB,EAAG3F,KAAKuB,KAAKgJ,SAAUvD,GAE3B,MAAOK,GAEH,GADA9F,KAAKW,cACD,EAAOuI,sCACP,MAAMpD,EAGNuD,EAAgBvD,MAI5B,CAAA,IAAA,kBAAA,MAAA,SAAgByD,EAAQnF,EAAIqB,GACxB,IAAK,EAAOyD,sCACR,MAAM,IAAIrD,MAAM,YAEpB,IACIzB,EAAG3F,KAAKuB,KAAKgJ,SAAUvD,GAE3B,MAAOK,GACH,OAAI,EAAOoD,uCACPK,EAAO9B,eAAiB3B,EACxByD,EAAO7B,iBAAAA,GAAkB,IAIzB2B,EAAgBvD,IAAAA,GAIxB,OAAA,IAEJ,CAAA,IAAA,eAAA,MAAA,WAAA,IACY6C,EAAsB3I,KAAxB,kBACNA,KAAKgJ,SAAW,KAChBhJ,KAAK2I,kBAAoB,KACzBA,EAAkBhI,kBAAAA,EA/Hb,CAAuB,GC3FvB,EAAsC,mBAAX+V,QAAyBA,OAAOgC,YAAc,eCA/E,SAASzU,EAASzK,GACrB,OAAOA,ECIJ,IAAM6e,EAAN,IAAMA,EAAN,WACH,SAAA,EAAY9X,GAAAA,gBAAAA,KAAAA,GACRP,KAAKsY,WAAAA,EACD/X,IACAP,KAAKuY,WAAahY,GAJvB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAOEkY,GACD,IAAMC,EAAa,IAAIL,EAGvB,OAFAK,EAAWtW,OAASpC,KACpB0Y,EAAWD,SAAWA,EACfC,IAXR,CAAA,IAAA,YAAA,MAAA,SAaO9P,EAAgBzJ,EAAOoI,GAC7B,IAAQkR,EAAazY,KAAf,SACA2Y,ECjBP,SAAsBoB,EAAgB5a,EAAOoI,GAChD,GAAIwS,EAAgB,CAChB,GAAIA,aAA0B,EAC1B,OAAOA,EAEX,GAAIA,EAAe9R,GACf,OAAO8R,EAAe9R,KAG9B,OAAK8R,GAAmB5a,GAAUoI,EAG3B,IAAI,EAAWwS,EAAgB5a,EAAOoI,GAFlC,IAAI,EAAWO,GAVvB,CDiB2Bc,EAAgBzJ,EAAOoI,GASjD,GAPIoR,EAAK5Q,IADL0Q,EACSA,EAASha,KAAKka,EAAM3Y,KAAKoC,QAGzBpC,KAAKoC,QAAW,EAAO8G,wCAA0CyP,EAAKhR,mBAC3E3H,KAAKuY,WAAWI,GAChB3Y,KAAK6Y,cAAcF,IAEvB,EAAOzP,uCACHyP,EAAKhR,qBACLgR,EAAKhR,oBAAAA,EACDgR,EAAKjR,iBACL,MAAMiR,EAAKlR,eAIvB,OAAOkR,IAhCR,CAAA,IAAA,gBAAA,MAAA,SAkCWA,GACV,IACI,OAAO3Y,KAAKuY,WAAWI,GAE3B,MAAO7S,GACC,EAAOoD,wCACPyP,EAAKjR,iBAAAA,EACLiR,EAAKlR,eAAiB3B,GE7C/B,SAAwByzH,GAC3B,KAAOA,GAAU,CAAA,IAAA,EAC8BA,EAAnChxH,EADK,EACP,OAAUV,EADH,EACC,YAAeD,EADhB,EACc,UAC3B,GAAIW,GAAUX,EACV,OAAA,EAGA2xH,EADK1xH,GAAeA,aAAuB,EAChCA,EAGA,KAGnB,OAAA,EAbG,CF+CwB8Q,GACfA,EAAKxZ,MAAM2G,GAGXtB,QAAQyG,KAAKnF,MA/CtB,CAAA,IAAA,UAAA,MAAA,SAmDKoC,EAAMkQ,GAAAA,IAAAA,EAAAA,KAEV,OAAO,IADPA,EAAcD,EAAeC,KACN,SAACW,EAASC,GAC7B,IAAIC,EACJA,EAAejZ,EAAKO,WAAWkF,SAAAA,GAC3B,IACIyC,EAAKzC,GAET,MAAOK,GACHkT,EAAOlT,GACHmT,GACAA,EAAatY,iBAGtBqY,EAAQD,QAjEhB,CAAA,IAAA,aAAA,MAAA,SAoEQ5Q,GAAAA,IACC/F,EAAWpC,KAAb,OACN,OAAOoC,GAAUA,EAAO7B,UAAU4H,KAtEnC,CAAA,IAwEF,EAxEE,MAAA,WAyEC,OAAOnI,OAzER,CAAA,IAAA,OAAA,MAAA,WA2EKkZ,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GACJ,OAA0B,IAAtBA,EAAWle,OACJgF,MG7EI,KADOgE,EHgFDkV,GG/EjBle,OACGiJ,EAEQ,IAAfD,EAAIhJ,OACGgJ,EAAI,GAER,SAAe9I,GAClB,OAAO8I,EAAIE,QAAO,SAACC,EAAMC,GAAP,OAAcA,EAAGD,KAAOjJ,KHwET8E,MGhFlC,IAAuBgE,IHCvB,CAAA,IAAA,YAAA,MAAA,SAiFOoU,GAAAA,IAAAA,EAAAA,KAEN,OAAO,IADPA,EAAcD,EAAeC,KACN,SAACW,EAASC,GAC7B,IAAIvT,EACJzF,EAAKO,WAAW/G,SAAAA,GAAAA,OAAMiM,EAAQjM,KAAIsM,SAAAA,GAAAA,OAAQkT,EAAOlT,MAAM,WAAA,OAAMiT,EAAQtT,aArF1E,EAAA,IAyFIoB,OAAUtG,SAAAA,GAAAA,OACV,IAAI8X,EAAW9X,IAD1B8X,GAGA,SAASF,EAAeC,GAIpB,GAHKA,IACDA,EAAc,EAAO7I,SAAWA,UAE/B6I,EACD,MAAM,IAAIvS,MAAM,yBAEpB,OAAOuS,EIxGX,ICYaiiH,EDFAC,EAVuB,WAChC,SAASC,IAIL,OAHA10H,MAAMpH,KAAKuB,MACXA,KAAKZ,QAAU,sBACfY,KAAKJ,KAAO,0BACLI,KAGX,OADAu6H,EAA4Br1H,UAAYa,OAAOc,OAAOhB,MAAMX,WACrDq1H,EARyB,GECvB,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYC,EAASryH,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACjBiyH,EAAAA,EAAAA,KAAAA,OACKI,QAAUA,EACfx6H,EAAKmI,WAAaA,EAClBnI,EAAKuI,QAAAA,EAJYJ,EAmBqB,OAb1C,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WACI,IAAInI,KAAKuI,OAAT,CAGAvI,KAAKuI,QAAAA,EACL,IAAMiyH,EAAUx6H,KAAKw6H,QACfC,EAAYD,EAAQC,UAE1B,GADAz6H,KAAKw6H,QAAU,KACVC,GAAkC,IAArBA,EAAUz/H,SAAgBw/H,EAAQ5yH,YAAa4yH,EAAQjyH,OAAzE,CAGA,IAAMmyH,EAAkBD,EAAU74H,QAAQ5B,KAAKmI,aACtB,IAArBuyH,GACAD,EAAU75H,OAAO85H,EAAiB,SAAA,EApBjC,CAA4B,GDK5B,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAY7yH,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRuyH,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDA,YAAcA,EAFXA,EAEWA,OAAAA,EAHd,CAA0B,GAMhC,IAAMwyH,EAAN,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACH,SAAA,IAAA,IAAA,EAAA,OAAA,gBAAA,KAAA,IACID,EAAAA,EAAAA,KAAAA,OACKK,UAAY,GACjBz6H,EAAKuI,QAAAA,EACLvI,EAAK4H,WAAAA,EACL5H,EAAK26H,UAAAA,EACL36H,EAAK46H,YAAc,KANvB,EADG,OAAA,aAAA,EAAA,CAAA,CAAA,IASF3yH,EATE,MAAA,WAUC,OAAO,IAAI,EAAkBjI,QAV9B,CAAA,IAAA,OAAA,MAAA,SAYEyY,GACD,IAAM+hH,EAAU,IAAI,EAAiBx6H,KAAMA,MAE3C,OADAw6H,EAAQ/hH,SAAWA,EACZ+hH,IAfR,CAAA,IAAA,OAAA,MAAA,SAiBE/0H,GACD,GAAIzF,KAAKuI,OACL,MAAM,IAAI+xH,EAEd,IAAKt6H,KAAK4H,UAIN,IAHA,IAAQ6yH,EAAcz6H,KAAhB,UACAtF,EAAM+/H,EAAUz/H,OAChBwvG,EAAOiwB,EAAUn9H,QACd3C,EAAI,EAAGA,EAAID,EAAKC,IACrB6vG,EAAK7vG,GAAGuN,KAAKzC,KA1BtB,CAAA,IAAA,QAAA,MAAA,SA8BGK,GACF,GAAI9F,KAAKuI,OACL,MAAM,IAAI+xH,EAEdt6H,KAAK26H,UAAAA,EACL36H,KAAK46H,YAAc90H,EACnB9F,KAAK4H,WAAAA,EAIL,IAHA,IAAQ6yH,EAAcz6H,KAAhB,UACAtF,EAAM+/H,EAAUz/H,OAChBwvG,EAAOiwB,EAAUn9H,QACd3C,EAAI,EAAGA,EAAID,EAAKC,IACrB6vG,EAAK7vG,GAAGwE,MAAM2G,GAElB9F,KAAKy6H,UAAUz/H,OAAS,IA3CzB,CAAA,IAAA,WAAA,MAAA,WA8CC,GAAIgF,KAAKuI,OACL,MAAM,IAAI+xH,EAEdt6H,KAAK4H,WAAAA,EAIL,IAHA,IAAQ6yH,EAAcz6H,KAAhB,UACAtF,EAAM+/H,EAAUz/H,OAChBwvG,EAAOiwB,EAAUn9H,QACd3C,EAAI,EAAGA,EAAID,EAAKC,IACrB6vG,EAAK7vG,GAAG4M,WAEZvH,KAAKy6H,UAAUz/H,OAAS,IAxDzB,CAAA,IAAA,cAAA,MAAA,WA2DCgF,KAAK4H,WAAAA,EACL5H,KAAKuI,QAAAA,EACLvI,KAAKy6H,UAAY,OA7DlB,CAAA,IAAA,gBAAA,MAAA,SA+DWtyH,GACV,GAAInI,KAAKuI,OACL,MAAM,IAAI+xH,EAGV,OAAA,KAAA,gBAAA,EAAA,WAAA,gBAAA,MAAA,KAAA,KAA2BnyH,KApEhC,CAAA,IAAA,aAAA,MAAA,SAuEQA,GACP,GAAInI,KAAKuI,OACL,MAAM,IAAI+xH,EAET,OAAIt6H,KAAK26H,UACVxyH,EAAWhJ,MAAMa,KAAK46H,aACf,EAAaZ,OAEfh6H,KAAK4H,WACVO,EAAWZ,WACJ,EAAayyH,QAGpBh6H,KAAKy6H,UAAU/5H,KAAKyH,GACb,IAAI,EAAoBnI,KAAMmI,MArF1C,CAAA,IAAA,eAAA,MAAA,WAyFC,IAAMuQ,EAAa,IAAI,EAEvB,OADAA,EAAWtW,OAASpC,KACb0Y,MA3FR,EAAA,CAAsB,IA8FrB7R,OAAS,SAACgB,EAAazF,GAAd,OACN,IAAI,EAAiByF,EAAazF,IAD7Ci4H,GAGa,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYxyH,EAAazF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBg4H,EAAAA,EAAAA,KAAAA,OACKvyH,YAAcA,EACnB7H,EAAKoC,OAASA,EAHOA,EA6BG43H,OAxB5B,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKv0H,GAAAA,IACOoC,EAAgB7H,KAAlB,YACF6H,GAAeA,EAAYK,MAC3BL,EAAYK,KAAKzC,KAGzB,CAAA,IAAA,QAAA,MAAA,SAAMK,GAAAA,IACM+B,EAAgB7H,KAAlB,YACF6H,GAAeA,EAAY1I,OAC3Ba,KAAK6H,YAAY1I,MAAM2G,KAG/B,CAAA,IAAA,WAAA,MAAA,WAAA,IACY+B,EAAgB7H,KAAlB,YACF6H,GAAeA,EAAYN,UAC3BvH,KAAK6H,YAAYN,aAGzB,CAAA,IAAA,aAAA,MAAA,SAAWY,GAEP,OADmBnI,KAAb,OAEKA,KAAKoC,OAAO7B,UAAU4H,GAGtB,EAAa6xH,UAAAA,EA9BnB,CAAyB,GE7G/B,SAASa,EAAYp1H,GACxB,OAAOA,GAAmC,mBAAnBA,EAAMq1H,SCA1B,IAAM,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYvxH,EAAQwxH,EAAYC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC5BZ,EAAAA,EAAAA,KAAAA,OACK7wH,OAASA,EACdvJ,EAAK+6H,WAAaA,EAClB/6H,EAAKg7H,WAAaA,EAClBh7H,EAAKihB,MAAQ,EALe+5G,EAgBvBr6H,OATT,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM8E,GACFzF,KAAKuJ,OAAO0xH,WAAWj7H,KAAK+6H,WAAYt1H,EAAOzF,KAAKg7H,WAAYh7H,KAAKihB,QAASjhB,QAElF,CAAA,IAAA,SAAA,MAAA,SAAOb,GACHa,KAAKuJ,OAAO2xH,YAAY/7H,EAAOa,MAC/BA,KAAKW,gBAET,CAAA,IAAA,YAAA,MAAA,WACIX,KAAKuJ,OAAO4xH,eAAen7H,MAC3BA,KAAKW,kBAAAA,EAjBA,CAAwB,GCDxBy6H,EAAoBtjH,SAAAA,GAAAA,OAAW3P,SAAAA,GACxC,IAAK,IAAIxN,EAAI,EAAGD,EAAMod,EAAM9c,OAAQL,EAAID,IAAQyN,EAAWI,OAAQ5N,IAC/DwN,EAAWD,KAAK4P,EAAMnd,IAE1BwN,EAAWZ,aCER,IAAM,EALa,mBAAXmP,QAA0BA,OAAO8yG,SAGrC9yG,OAAO8yG,SAFH,aCFF6R,EAAgB7hI,SAAAA,GAAAA,OAAMA,GAAyB,iBAAbA,EAAEwB,QAAoC,mBAANxB,GCAxE,SAAS8hI,EAAU71H,GACtB,QAASA,GAAoC,mBAApBA,EAAMlF,WAAkD,mBAAfkF,EAAMiK,KCQrE,IAAM6rH,EAAe73H,SAAAA,GACxB,GAAMA,GAA+C,mBAA9BA,EAAO,GAC1B,OCV8BsC,EDUDtC,ECVUyE,SAAAA,GAC3C,IAAMqzH,EAAMx1H,EAAI,KAChB,GAA6B,mBAAlBw1H,EAAIj7H,UACX,MAAM,IAAIopH,UAAU,kEAGpB,OAAO6R,EAAIj7H,UAAU4H,IDMpB,GAAIkzH,EAAY33H,GACjB,OAAO03H,EAAiB13H,GAEvB,GAAI43H,EAAU53H,GACf,OEhB2B+3H,EFgBD/3H,EEhBcyE,SAAAA,GAAAA,OAC5CszH,EAAQ/rH,MAAMjK,SAAAA,GACL0C,EAAWI,SACZJ,EAAWD,KAAKzC,GAChB0C,EAAWZ,eAEfzB,SAAAA,GAAAA,OAAQqC,EAAWhJ,MAAM2G,MACxB4J,KAAK,KAAMrG,GACTlB,GFUF,GAAMzE,GAA6C,mBAA5BA,EAAO,GAC/B,OGnB4Bg4H,EHmBDh4H,EGnBeyE,SAAAA,GAE9C,IADA,IAAMqhH,EAAWkS,EAAS,OACvB,CACC,IAAMx4H,EAAOsmH,EAASthH,OACtB,GAAIhF,EAAKy4H,KAAM,CACXxzH,EAAWZ,WACX,MAGJ,GADAY,EAAWD,KAAKhF,EAAKuC,OACjB0C,EAAWI,OACX,MAUR,MAP+B,mBAApBihH,EAAAA,QACPrhH,EAAWJ,KAAI,WACPyhH,EAAAA,QACAA,EAAAA,YAILrhH,GHEH,IGtB4BuzH,EDADD,EDAGz1H,EDsBxBP,EAAQgE,EAAS/F,GAAU,oBAAnB+F,IAAAA,OAA6C/F,EAA7C+F,KAGd,MAAM,IAAIkgH,UAFE,gBAAA,OAAgBlkH,EAAhB,iCACN,iEItBP,SAASm2H,EAAkBC,EAAiBn4H,EAAQq3H,EAAYC,GAA+EA,IAAnEc,EAAmEd,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAjD,IAAI,EAAgBa,EAAiBd,EAAYC,GAClJ,IAAIc,EAAgBvzH,OAGpB,OAAI7E,aAAkB,EACXA,EAAOnD,UAAUu7H,GAErBP,EAAY73H,EAAZ63H,CAAoBO,GCTxB,IAAM,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAAA,SAAA,IAAA,OAAA,gBAAA,KAAA,GAAA,EAAA,MAAA,KAAA,WAQYv0H,OARZ,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SACEwzH,EAAYgB,EAAYf,EAAYgB,EAAYC,GACvDj8H,KAAK6H,YAAYK,KAAK6zH,KAE1B,CAAA,IAAA,cAAA,MAAA,SAAY58H,EAAO88H,GACfj8H,KAAK6H,YAAY1I,MAAMA,KAE3B,CAAA,IAAA,iBAAA,MAAA,SAAe88H,GACXj8H,KAAK6H,YAAYN,eAAAA,EARZ,CAAwB,GCA9B,SAASwN,EAAImvG,EAASgY,GACzB,OAAO,SAAsB95H,GACzB,GAAuB,mBAAZ8hH,EACP,MAAM,IAAIyF,UAAU,8DAExB,OAAOvnH,EAAOoW,KAAK,IAAI2jH,EAAYjY,EAASgY,KAG7C,IAAMC,EAAAA,WACT,SAAA,EAAYjY,EAASgY,GAAAA,gBAAAA,KAAAA,GACjBl8H,KAAKkkH,QAAUA,EACflkH,KAAKk8H,QAAUA,EAG0DA,OAD7E,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK/zH,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,EAAc4H,EAAYnI,KAAKkkH,QAASlkH,KAAKk8H,cAAAA,EANpEC,GASP,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYt0H,EAAaq8G,EAASgY,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC9B9B,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDq8G,QAAUA,EACflkH,EAAKk0H,MAAQ,EACbl0H,EAAKk8H,QAAUA,GAAAA,uBAAAA,GAJeA,EAeRx4H,OAT1B,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM+B,GACF,IAAI/B,EACJ,IACIA,EAAS1D,KAAKkkH,QAAQzlH,KAAKuB,KAAKk8H,QAASz2H,EAAOzF,KAAKk0H,SAEzD,MAAOpuH,GAEH,YADA9F,KAAK6H,YAAY1I,MAAM2G,GAG3B9F,KAAK6H,YAAYK,KAAKxE,OAAAA,EAhBxB,CAAsB,GChBrB,SAAS04H,EAAclhI,EAAOmhI,GACjC,OAAO,IAAI,GAAWl0H,SAAAA,GAClB,IAAM2xH,EAAM,IAAI,EACZn/H,EAAI,EAWR,OAVAm/H,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WACnBngI,IAAMO,EAAMF,QAIhBmN,EAAWD,KAAKhN,EAAMP,MACjBwN,EAAWI,QACZuxH,EAAI/xH,IAAI/H,KAAK86H,aALb3yH,EAAWZ,eAQZuyH,KCbR,SAAS,EAAK5+H,EAAOmhI,GACxB,OAAKA,ECIF,SAAmBnhI,EAAOmhI,GAC7B,GAAa,MAATnhI,EAAe,CACf,GCTD,SAA6BA,GAChC,OAAOA,GAA6C,mBAA7BA,EAAM,GAD1B,CDSyBA,GACpB,OERL,SAA4BA,EAAOmhI,GACtC,OAAO,IAAI,GAAWl0H,SAAAA,GAClB,IAAM2xH,EAAM,IAAI,EAShB,OARAA,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WACvB,IAAMpiH,EAAaxd,EAAM,KACzB4+H,EAAI/xH,IAAI2Q,EAAWnY,UAAU,CACzB,KADyB,SACpBkF,GAASq0H,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WAAA,OAAM3yH,EAAWD,KAAKzC,QAC/D,MAFyB,SAEnBK,GAAOg0H,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WAAA,OAAM3yH,EAAWhJ,MAAM2G,QAC/D,SAHyB,WAGZg0H,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WAAA,OAAM3yH,EAAWZ,uBAG1DuyH,KAXR,CFQ+B5+H,EAAOmhI,GAEhC,GAAIf,EAAUpgI,GACf,OGZL,SAAyBA,EAAOmhI,GACnC,OAAO,IAAI,GAAWl0H,SAAAA,GAClB,IAAM2xH,EAAM,IAAI,EAShB,OARAA,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WAAA,OAAM5/H,EAAMwU,MAAKjK,SAAAA,GACxCq0H,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WACvB3yH,EAAWD,KAAKzC,GAChBq0H,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WAAA,OAAM3yH,EAAWZ,sBAEjDzB,SAAAA,GACCg0H,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WAAA,OAAM3yH,EAAWhJ,MAAM2G,cAE/Cg0H,KAXR,CHY4B5+H,EAAOmhI,GAE7B,GAAIhB,EAAYngI,GACjB,OAAOkhI,EAAclhI,EAAOmhI,GAE3B,GIlBN,SAAoBnhI,GACvB,OAAOA,GAA2C,mBAA3BA,EAAM,GAD1B,CJkBqBA,IAA2B,iBAAVA,EACjC,OKjBL,SAA0BA,EAAOmhI,GACpC,IAAKnhI,EACD,MAAM,IAAI2K,MAAM,2BAEpB,OAAO,IAAI,GAAWsC,SAAAA,GAClB,IACIqhH,EADEsQ,EAAM,IAAI,EAiChB,OA/BAA,EAAI/xH,KAAI,WACAyhH,GAAuC,mBAApBA,EAAAA,QACnBA,EAAAA,YAGRsQ,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WACvBtR,EAAWtuH,EAAM,KACjB4+H,EAAI/xH,IAAIs0H,EAAUvB,UAAS,WACvB,IAAI3yH,EAAWI,OAAf,CAGA,IAAI9C,EACAk2H,EACJ,IACI,IAAMj4H,EAAS8lH,EAASthH,OACxBzC,EAAQ/B,EAAO+B,MACfk2H,EAAOj4H,EAAOi4H,KAElB,MAAO71H,GAEH,YADAqC,EAAWhJ,MAAM2G,GAGjB61H,EACAxzH,EAAWZ,YAGXY,EAAWD,KAAKzC,GAChBzF,KAAK86H,qBAIVhB,KAtCR,CLiB6B5+H,EAAOmhI,GAGvC,MAAM,IAAI1S,WAAqB,OAAVzuH,UAAyBA,GAASA,GAAS,sBAf7D,CDGkBA,EAAOmhI,GANpBnhI,aAAiB,EACVA,EAEJ,IAAI,EAAWqgI,EAAYrgI,IOHnC,SAASohI,EAASpY,EAASqY,GAAoCC,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAPh3G,OAAOg3G,kBAClE,MAA8B,mBAAnBD,EACCn6H,SAAAA,GAAAA,OAAWA,EAAOiC,KAAKi4H,GAAS,SAACziI,EAAGc,GAAJ,OAAU,EAAKupH,EAAQrqH,EAAGc,IAAI0J,KAAK0Q,GAAI,SAACjb,EAAG4iI,GAAJ,OAAWH,EAAe1iI,EAAGC,EAAGa,EAAG+hI,SAAOD,MAE1F,iBAAnBF,IACZE,EAAaF,GAETn6H,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAImkH,EAAiBzY,EAASuY,MAE1D,IAAME,EAAAA,WACT,SAAA,EAAYzY,GAA6BsY,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAPh3G,OAAOg3G,kBAAAA,gBAAAA,KAAAA,GACrCx8H,KAAKkkH,QAAUA,EACflkH,KAAKy8H,WAAaA,EAG0DA,OADhF,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKlD,EAAUn3H,GACX,OAAOA,EAAO7B,UAAU,IAAI,EAAmBg5H,EAAUv5H,KAAKkkH,QAASlkH,KAAKy8H,iBAAAA,EANvEE,GASA,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAY90H,EAAaq8G,GAA6BsY,IAAAA,EAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAPh3G,OAAOg3G,kBAAAA,OAAAA,gBAAAA,KAAAA,IAClDpC,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDq8G,QAAUA,EACflkH,EAAKy8H,WAAaA,EAClBz8H,EAAK48H,cAAAA,EACL58H,EAAKklF,OAAS,GACdllF,EAAKs3D,OAAS,EACdt3D,EAAKihB,MAAQ,EAPqCu7G,EAyD7Bj1H,OAhDzB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM9B,GACEzF,KAAKs3D,OAASt3D,KAAKy8H,WACnBz8H,KAAK68H,SAASp3H,GAGdzF,KAAKklF,OAAOxkF,KAAK+E,KAGzB,CAAA,IAAA,WAAA,MAAA,SAASA,GACL,IAAI/B,EACEud,EAAQjhB,KAAKihB,QACnB,IACIvd,EAAS1D,KAAKkkH,QAAQz+G,EAAOwb,GAEjC,MAAOnb,GAEH,YADA9F,KAAK6H,YAAY1I,MAAM2G,GAG3B9F,KAAKs3D,SACLt3D,KAAK88H,UAAUp5H,EAAQ+B,EAAOwb,KAElC,CAAA,IAAA,YAAA,MAAA,SAAU87G,EAAKt3H,EAAOwb,GAClB,IAAM66G,EAAkB,IAAI,EAAgB97H,KAAMyF,EAAOwb,GACnDpZ,EAAc7H,KAAK6H,YACzBA,EAAYE,IAAI+zH,GAChB,IAAMkB,EAAoBpB,EAAkB57H,KAAM+8H,OAAAA,OAAK/T,EAAsB8S,GACzEkB,IAAsBlB,GACtBj0H,EAAYE,IAAIi1H,KAGxB,CAAA,IAAA,YAAA,MAAA,WACIh9H,KAAK48H,cAAAA,EACe,IAAhB58H,KAAKs3D,QAAuC,IAAvBt3D,KAAKklF,OAAOlqF,QACjCgF,KAAK6H,YAAYN,WAErBvH,KAAKW,gBAET,CAAA,IAAA,aAAA,MAAA,SAAWo6H,EAAYgB,EAAYf,EAAYgB,EAAYC,GACvDj8H,KAAK6H,YAAYK,KAAK6zH,KAE1B,CAAA,IAAA,iBAAA,MAAA,SAAeE,GACX,IAAM/2C,EAASllF,KAAKklF,OACpBllF,KAAK+V,OAAOkmH,GACZj8H,KAAKs3D,SACD4tB,EAAOlqF,OAAS,EAChBgF,KAAKoI,MAAM88E,EAAO7xD,SAEG,IAAhBrzB,KAAKs3D,QAAgBt3D,KAAK48H,cAC/B58H,KAAK6H,YAAYN,eAAAA,EA1DhB,CAA2B,GCrBjC,SAAS01H,IAA6BT,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAPh3G,OAAOg3G,kBACzC,OAAOF,EAASr4H,EAAUw4H,GCAvB,SAASzkD,EAAU98E,EAAOmhI,GAC7B,OAAKA,EAIMD,EAAclhI,EAAOmhI,GAHrB,IAAI,EAAWjB,EAAiBlgI,ICDxC,SAASq5G,IAAS2oB,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GACrB,IAAIT,EAAaj3G,OAAOg3G,kBACpBH,EAAY,KACZzY,EAAOsZ,EAAYA,EAAYliI,OAAS,GAU5C,OATI6/H,EAAYjX,IACZyY,EAAYa,EAAYnpH,MACpBmpH,EAAYliI,OAAS,GAAoD,iBAAxCkiI,EAAYA,EAAYliI,OAAS,KAClEyhI,EAAaS,EAAYnpH,QAGR,iBAAT6vG,IACZ6Y,EAAaS,EAAYnpH,OAEX,OAAdsoH,GAA6C,IAAvBa,EAAYliI,QAAgBkiI,EAAY,aAAc,EACrEA,EAAY,GAEhBD,EAASR,EAATQ,CAAqBjlD,EAAUklD,EAAab,ICnBhD,SAAS,IACZ,OAAO,SAAkCj6H,GACrC,OAAOA,EAAOoW,KAAK,IAAI2kH,EAAiB/6H,KAGhD,ICoCUg7H,EDpCJD,EAAAA,WACF,SAAA,EAAYE,GAAAA,gBAAAA,KAAAA,GACRr9H,KAAKq9H,YAAcA,EAUZpkH,OARX,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK9Q,EAAY/F,GAAAA,IACLi7H,EAAgBr9H,KAAlB,YACNq9H,EAAYC,YACZ,IAAMC,EAAa,IAAI,EAAmBp1H,EAAYk1H,GAChDpkH,EAAe7W,EAAO7B,UAAUg9H,GAItC,OAHKA,EAAWh1H,SACZg1H,EAAWC,WAAaH,EAAYI,WAEjCxkH,MAAAA,EAZTkkH,GAeA,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYt1H,EAAaw1H,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBjD,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDw1H,YAAcA,EAFEA,EAyBA18H,OArBzB,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,WAAA,IACY08H,EAAgBr9H,KAAlB,YACN,GAAKq9H,EAAL,CAIAr9H,KAAKq9H,YAAc,KACnB,IAAMK,EAAWL,EAAYC,UAC7B,GAAII,GAAY,EACZ19H,KAAKw9H,WAAa,UAItB,GADAH,EAAYC,UAAYI,EAAW,EAC/BA,EAAW,EACX19H,KAAKw9H,WAAa,SADtB,CAIA,IAAQA,EAAex9H,KAAjB,WACA29H,EAAmBN,EAAYO,YACrC59H,KAAKw9H,WAAa,MACdG,GAAsBH,GAAcG,IAAqBH,GACzDG,EAAiBh9H,oBAlBjBX,KAAKw9H,WAAa,SAkBD78H,EA1BvB,CAA2B,GCoBpBk9H,EAEF,CACHplH,SAAU,CAAEhT,MAAO,MACnB63H,UAAW,CAAE73H,MAAO,EAAGq4H,UAAAA,GACvBC,SAAU,CAAEt4H,MAAO,KAAMq4H,UAAAA,GACzBF,YAAa,CAAEn4H,MAAO,KAAMq4H,UAAAA,GAC5BvlH,WAAY,CAAE9S,OANZ23H,EArCG,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYh7H,EAAQ47H,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAChB5D,EAAAA,EAAAA,KAAAA,OACKh4H,OAASA,EACdpC,EAAKg+H,eAAiBA,EACtBh+H,EAAKs9H,UAAY,EACjBt9H,EAAKi+H,aAAAA,EALWD,EAgCah+H,OAzBjC,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWmI,GACP,OAAOnI,KAAKk+H,aAAa39H,UAAU4H,KAEvC,CAAA,IAAA,aAAA,MAAA,WACI,IAAMqyH,EAAUx6H,KAAK+9H,SAIrB,OAHKvD,IAAWA,EAAQ5yH,YACpB5H,KAAK+9H,SAAW/9H,KAAKg+H,kBAElBh+H,KAAK+9H,WAEhB,CAAA,IAAA,UAAA,MAAA,WACI,IAAIP,EAAax9H,KAAK49H,YAWtB,OAVKJ,IACDx9H,KAAKi+H,aAAAA,GACLT,EAAax9H,KAAK49H,YAAc,IAAI,GACzB71H,IAAI/H,KAAKoC,OACf7B,UAAU,IAAI,EAAsBP,KAAKk+H,aAAcl+H,QACxDw9H,EAAWj1H,SACXvI,KAAK49H,YAAc,KACnBJ,EAAa,EAAaxD,QAG3BwD,IAEX,CAAA,IAAA,WAAA,MAAA,WACI,OAAO,GAAA,CAAsBx9H,UAAAA,EAjCxB,CAA8B,GAqCQkF,WAMLqT,YACtC0lH,YAAa,CAAEx4H,MAAO23H,EAAiBa,YAAaH,UAAAA,GACpDI,WAAY,CAAEz4H,MAAO23H,EAAiBc,YACtCT,QAAS,CAAEh4H,MAAO23H,EAAiBK,SACnCC,SAAU,CAAEj4H,MAAO23H,EAAiBM,WAGtC,EAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAY71H,EAAaw1H,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBjD,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDw1H,YAAcA,EAFEA,EAsBF18H,OAlBvB,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOmF,GACH9F,KAAKwJ,eAALxJ,KAAAA,gBAAAA,EAAAA,WAAAA,SAAAA,MAAAA,KAAAA,KACa8F,KAEjB,CAAA,IAAA,YAAA,MAAA,WACI9F,KAAKq9H,YAAYY,aAAAA,EACjBj+H,KAAKwJ,eADLxJ,KAAAA,gBAAAA,EAAAA,WAAAA,YAAAA,MAAAA,KAAAA,QAIJ,CAAA,IAAA,eAAA,MAAA,WACI,IAAMq9H,EAAcr9H,KAAKq9H,YACzB,GAAIA,EAAa,CACbr9H,KAAKq9H,YAAc,KACnB,IAAMG,EAAaH,EAAYO,YAC/BP,EAAYC,UAAY,EACxBD,EAAYU,SAAW,KACvBV,EAAYO,YAAc,KACtBJ,GACAA,EAAW78H,mBAAAA,EAvBrB,CAA8B,GCpDpC,SAASw9H,KACL,OAAO,IAAI,EAER,SAASC,KACZ,OAAQh8H,SAAAA,GAAW,OAAA,GAAA,ECNGi8H,EDMkBF,GCLjC,SAAmC/7H,GACtC,IAAI47H,EAEAA,EADmC,mBAA5BK,EACUA,EAGA,WACb,OAAOA,GAMf,IAAMhB,EAAct3H,OAAOc,OAAOzE,EAAQy7H,GAG1C,OAFAR,EAAYj7H,OAASA,EACrBi7H,EAAYW,eAAiBA,EACtBX,IDXkDj7H,ICN1D,IAAmBi8H,GCwB1B,SAASC,GAAcl6H,GACnB,MAAO,CAAEvE,SAAUuE,GAAKvE,WAU5B,IACM0+H,GAAa,iBA8CnB,SAASC,GAAmB5+H,EAAM2yE,EAAOksD,GACrC,OAAOH,IAAc,WACjB,IAAMI,EAZd,SAA0BnsD,GACtB,OAAO,WACH,GAAIA,EAAO,CACP,IAAMswC,EAAStwC,EAAAA,WAAAA,EAAAA,WACf,IAAK,IAAMosD,KAAY9b,EACnB7iH,KAAK2+H,GAAY9b,EAAO8b,KALxC,CAY0CpsD,GAClC,SAASqsD,IAAyBx+H,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAC9B,GAAIJ,gBAAgB4+H,EAEhB,OADAF,EAASlgI,MAAMwB,KAAMI,GACdJ,KAEX,IAAM6+H,EAAAA,WAAyBD,EAAyBx+H,GAExD,OADA0+H,EAAeC,WAAaF,EACrBC,EACP,SAASA,EAAeE,EAAKC,EAAWh+G,GAQpC,IALA,IAAMsX,EAAaymG,EAAIzgI,eAAeggI,IAClCS,EAAIT,IACJx4H,OAAO+uG,eAAekqB,EAAKT,GAAY,CAAE94H,MAAO,KAAM84H,IAGnDhmG,EAAWv9B,QAAUimB,GACxBsX,EAAW73B,KAAK,MAGpB,OADC63B,EAAWtX,GAASsX,EAAWtX,IAAU,IAAIvgB,KAAKm+H,GAC5CG,GAQf,OALIP,IACAG,EAAsB15H,UAAYa,OAAOc,OAAO43H,EAAYv5H,YAEhE05H,EAAsB15H,UAAUg6H,eAAiBt/H,EACjDg/H,EAAsBO,cAAgBP,EAC/BA,KAgDf,IAYMQ,GAASZ,GAAmB,UARjCa,SAAAA,GAAAA,MAAU,CAAGA,MAAAA,MAwBRC,GAAWd,GAAmB,YAgB9Be,GAAOf,GAAmB,QAgB1BgB,GAAWhB,GAAmB,YAmDhCiB,GACJ,SAAWA,GAAAA,OAGPA,EAAYA,EAAqB,QAAI,GAAK,UAK1CA,EAAYA,EAAkB,KAAI,GAAK,OAEvCA,EAAYA,EAAkB,KAAI,GAAK,OAEvCA,EAAYA,EAAsB,SAAI,GAAK,WAE3CA,EAAYA,EAAsB,SAAI,GAAK,WAdpCA,EAAX,CAeG,IASH,SAASC,GAAuBC,GAC5B,IAAK,IAAIzjI,KAAOyjI,EACZ,GAAIA,EAAyBzjI,KAASwjI,GAClC,OAAOxjI,EAGf,MAAM2J,MAAM,qDAQhB,SAAS+5H,GAAej1H,EAAQvI,GAC5B,IAAK,IAAMlG,KAAOkG,EACVA,EAAO7D,eAAerC,KAASyO,EAAOpM,eAAerC,KACrDyO,EAAOzO,GAAOkG,EAAOlG,IA4BjC,SAAS2jI,GAAmBvkG,GACxB,MAAO,CACH+jG,MAAO/jG,EAAK+jG,MACZS,WAAYxkG,EAAKwkG,YAAc,KAC/BxqH,QAASgmB,EAAKhmB,QACd7P,WAAAA,GA6BR,SAASs6H,GAAiBrqH,GACtB,MAAO,CACHJ,QAASI,EAAQJ,QACjB0qH,UAAWtqH,EAAQsqH,WAAa,GAChCC,QAASvqH,EAAQuqH,SAAW,IASpC,SAASC,GAAiB/0H,GACtB,OAAOg1H,GAAiBh1H,EAAMA,EAAKi1H,MAC/BD,GAAiBh1H,EAAMA,EAAKk1H,KAapC,SAASF,GAAiBh1H,EAAMm1H,GAC5B,OAAOA,GAAOA,EAAIjB,QAAUl0H,EAAOm1H,EAAM,KA8C7C,SAASC,GAAep1H,GACpB,OAAOA,IAASA,EAAK5M,eAAeiiI,KAAer1H,EAAK5M,eAAekiI,KACnEt1H,EAAKq1H,IACL,KAER,IAAMJ,GAAcV,GAAuB,CAAEgB,aAAOhB,KAC9Cc,GAAad,GAAuB,CAAEiB,YAAMjB,KAO5CkB,GAAuBlB,GAAuB,CAAEmB,qBAAenB,KAE/DW,GAAoBX,GAAuB,CAAEoB,gBAAiBpB,KAC9De,GAAkBf,GAAuB,CAAEqB,cAAerB,KAShE,SAASv5H,GAAUk5H,GACf,GAAqB,iBAAVA,EACP,OAAOA,EAEX,GAAI54H,MAAMqQ,QAAQuoH,GACd,MAAO,IAAMA,EAAMtqH,IAAI5O,IAAWT,KAAK,MAAQ,IAEnD,GAAa,MAAT25H,EACA,MAAO,GAAKA,EAEhB,GAAIA,EAAM2B,eACN,MAAA,GAAA,OAAU3B,EAAM2B,gBAEpB,GAAI3B,EAAMz/H,KACN,MAAA,GAAA,OAAUy/H,EAAMz/H,MAEpB,IAAMqhI,EAAM5B,EAAMx/H,WAClB,GAAW,MAAPohI,EACA,MAAO,GAAKA,EAEhB,IAAMC,EAAeD,EAAIr/H,QAAQ,MACjC,OAAyB,IAAlBs/H,EAAsBD,EAAMA,EAAIz9H,UAAU,EAAG09H,GAUxD,SAASC,GAAuBziF,EAAQC,GACpC,OAAkB,MAAVD,GAA6B,KAAXA,EACX,OAAVC,EAAiB,GAAKA,EACZ,MAATA,GAA2B,KAAVA,EAAgBD,EAASA,EAAS,IAAMC,EAoBnE,IAAMyiF,GAAkB1B,GAAuB,CAAE0B,gBAAiB1B,KAelE,SAAS2B,GAAWC,GAQhB,OAPA,EAAoCF,gBAAkBC,GACtD,EAAoCxhI,SAAW,WAI3C,OAAOsG,GAAUnG,SAEd,EAkBX,SAASuhI,GAAkBp2H,GACvB,OAAOq2H,GAAar2H,GAAQA,IAASA,EAOzC,SAASq2H,GAAap9H,GAClB,MAAqB,mBAAPA,GAAqBA,EAAG7F,eAAe6iI,KACjDh9H,EAAGg9H,kBAAoBC,GAU/B,IAiUII,GAjUEC,GAAqC,oBAAfC,YAA8BA,WACpDC,GAA6B,oBAAX1kI,QAA0BA,OAC5C2kI,GAAyB,oBAATzkI,MAAqD,oBAAtB0kI,mBACjD1kI,gBAAgB0kI,mBAAqB1kI,KACnC2kI,GAA6B,oBAAX5kI,QAA0BA,OAI5C6kI,GAAUN,IAAgBK,IAAYH,IAAYC,GAwDlDI,GAAcvC,GAAuB,CAAEwC,YAAMxC,KAE7CyC,GAAazC,GAAuB,CAAE0C,YAAM1C,KAE5C2C,GAAc3C,GAAuB,CAAE4C,aAAO5C,KAE9C6C,GAAa7C,GAAuB,CAAE8C,YAAM9C,KAE5C+C,GAAgB/C,GAAuB,CAAEgD,YAAMhD,KAE/CiD,GAAiBjD,GAAuB,CAAEkD,YAAMlD,KAQhDmD,GAAgBnD,GAAuB,CAAEoD,kBAAmBpD,KA0H5DqD,GAAAA,WAKF,SAAA,EAAYC,EAAOttH,GAAAA,gBAAAA,KAAAA,GACf1V,KAAKgjI,MAAQA,EAIbhjI,KAAKk/H,eAAiB,iBACtBl/H,KAAK0gI,gBAAAA,EACiB,iBAAXhrH,EAIP,KAA4BotH,kBAAoBptH,OAAAA,IAE3CA,IACL1V,KAAK0gI,WAAQb,GAAmB,CAC5BR,MAAOr/H,KACP8/H,WAAYpqH,EAAQoqH,YAAc,OAClCxqH,QAASI,EAAQJ,WAQK0tH,OADlC,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WACI,MAAA,kBAAA,OAAyBhjI,KAAKgjI,WAAAA,EA9BhCD,GAuEAE,GAAW,IAAIF,GAAe,YAAgC,GAI9DG,GAFsB,GAQtBC,GAAW,OAOXC,GAAY1D,GAAuB,CAAE2D,QAAShoI,OAAQioI,SAF/C5D,KAUT6D,QAAAA,EAKJ,SAASC,GAAmBC,GAExB,IAAMC,EAASH,GAEf,OADAA,GAAmBE,EACZC,EAkBX,SAASC,GAAwB9rG,GAE7B,IAAMwgD,EAAWopD,GAEjB,OADAA,GAAwB5pG,EACjBwgD,EAQX,SAASurD,GAAmBvE,GAA2BwE,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAZpE,GAAYoE,QACnD,QAAA,IAAIN,GACA,MAAM,IAAI19H,MAAM,qDAEf,OAAyB,OAArB09H,GACEQ,GAAmB1E,OAAAA,EAAkByE,GAGrCP,GAAiB1gH,IAAIw8G,EAAOyE,EAAQrE,GAAYH,SAAW,UAAA,EAAkBwE,GAS5F,SAASE,GAAS3E,GAA2BwE,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAZpE,GAAYoE,QACzC,OAAQpC,IAAyBmC,IAAoBrC,GAAkBlC,GAAQyE,GAmDnF,IAAMG,GAASD,GAaf,SAASD,GAAmB1E,EAAO6E,EAAeJ,GAE9C,IAAMK,EAAgBjE,GAAiBb,GACvC,GAAI8E,GAA6C,QAA5BA,EAAcrE,WAC/B,YAAA,IAAOqE,EAAc1+H,MAAsB0+H,EAAc1+H,MAAQ0+H,EAAc7uH,UAC3E6uH,EAAc1+H,MAEtB,GAAIq+H,EAAQrE,GAAYH,SACpB,OAAO,KACX,QAAA,IAAI4E,EACA,OAAOA,EACX,MAAM,IAAIr+H,MAAJ,wBAAA,OAAkCM,GAAUk5H,GAA5C,MAMV,SAAS+E,GAAW5Z,GAGhB,IADA,IAAMpqH,EAAO,GACJzF,EAAI,EAAGA,EAAI6vH,EAAMxvH,OAAQL,IAAK,CAEnC,IAAM4uH,EAAMgY,GAAkB/W,EAAM7vH,IACpC,GAAI8L,MAAMqQ,QAAQyyG,GAAM,CACpB,GAAmB,IAAfA,EAAIvuH,OACJ,MAAM,IAAI6K,MAAM,wCAMpB,IAHA,IAAIsF,OAAAA,EAEA24H,EAAQrE,GAAYoE,QACfniI,EAAI,EAAGA,EAAI6nH,EAAIvuH,OAAQ0G,IAAK,CAEjC,IAAM2iI,EAAO9a,EAAI7nH,GACb2iI,aAAgB/E,IAAoC,aAAxB+E,EAAKnF,gBAAiCmF,IAAS/E,GAC3EwE,GAASrE,GAAYH,SAEhB+E,aAAgB7E,IAAoC,aAAxB6E,EAAKnF,gBAAiCmF,IAAS7E,GAChFsE,GAASrE,GAAYD,SAEhB6E,aAAgB9E,IAAgC,SAAxB8E,EAAKnF,gBAA6BmF,IAAS9E,GACxEuE,GAASrE,GAAYF,KAGrBp0H,EADKk5H,aAAgBjF,IAAUiF,IAASjF,GACjCiF,EAAKhF,MAGLgF,EAGfjkI,EAAKM,KAAKsjI,GAAS,EAA2BF,SAG9C1jI,EAAKM,KAAKsjI,GAASza,IAG3B,OAAOnpH,EAEX,IAAMkkI,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAiBSJ,OAjBTI,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,MAAAA,MAAAA,SAMEjF,GAAuB6D,IAAhBgB,EAAgBhB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAAA,GACvB,GAAIgB,IAAkBhB,GAAoB,CAMtC,IAAM/jI,EAAQ,IAAI0G,MAAJ,sCAAA,OAAgDM,GAAUk5H,GAA1D,MAEd,MADAlgI,EAAMS,KAAO,oBACPT,EAEV,OAAO+kI,MAAAA,EAjBTI,GAqIAC,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAkMN,SAASC,GAAYtpI,EAAOkJ,GACxBlJ,EAAMyc,SAAQlS,SAAAA,GAAAA,OAASgB,MAAMqQ,QAAQrR,GAAS++H,GAAY/+H,EAAOrB,GAAMA,EAAGqB,MAE9E,SAASg/H,GAAW7uG,EAAK3U,EAAOxb,GAExBwb,GAAS2U,EAAI56B,OACb46B,EAAIl1B,KAAK+E,GAGTmwB,EAAIh1B,OAAOqgB,EAAO,EAAGxb,GAG7B,SAASie,GAAgBkS,EAAK3U,GAE1B,OAAIA,GAAS2U,EAAI56B,OAAS,EACf46B,EAAI7hB,MAGJ6hB,EAAIh1B,OAAOqgB,EAAO,GAAG,GAGpC,SAASyjH,GAASjjH,EAAMhc,GAEpB,IADA,IAAMk/H,EAAO,GACJhqI,EAAI,EAAGA,EAAI8mB,EAAM9mB,IACtBgqI,EAAKjkI,KAAK+E,GAEd,OAAOk/H,EAkJX,SAASC,GAAiBC,EAAe3oI,EAAKuJ,GAC1C,IAAIwb,EAAQ6jH,GAAqBD,EAAe3oI,GAShD,OARI+kB,GAAS,EAET4jH,EAAsB,EAAR5jH,GAAaxb,EA5FnC,SAAsBqS,EAAOmJ,EAAOwQ,EAAQC,GAExC,IAAIqJ,EAAMjjB,EAAM9c,OAChB,GAAI+/B,GAAO9Z,EAEPnJ,EAAMpX,KAAK+wB,EAAQC,QAElB,GAAY,IAARqJ,EAELjjB,EAAMpX,KAAKgxB,EAAQ5Z,EAAM,IACzBA,EAAM,GAAK2Z,MAEV,CAGD,IAFAsJ,IACAjjB,EAAMpX,KAAKoX,EAAMijB,EAAM,GAAIjjB,EAAMijB,IAC1BA,EAAM9Z,GAETnJ,EAAMijB,GAAOjjB,EADOijB,EAAM,GAE1BA,IAEJjjB,EAAMmJ,GAASwQ,EACf3Z,EAAMmJ,EAAQ,GAAKyQ,GArB3B,CAgGqBmzG,EADb5jH,GAASA,EAC0B/kB,EAAKuJ,GAErCwb,EASX,SAAS8jH,GAAiBF,EAAe3oI,GACrC,IAAM+kB,EAAQ6jH,GAAqBD,EAAe3oI,GAClD,GAAI+kB,GAAS,EAET,OAAO4jH,EAAsB,EAAR5jH,GAc7B,SAAS6jH,GAAqBD,EAAe3oI,GACzC,OAqCJ,SAA6B4b,EAAOrS,EAAO4tB,GAIvC,IAFA,IAAI/jB,EAAQ,EACRyrB,EAAMjjB,EAAM9c,QAxC+B,EAyCxC+/B,IAAQzrB,GAAO,CAClB,IAAM01H,EAAS11H,GAAUyrB,EAAMzrB,GAAU,GACnCuS,EAAU/J,EAAMktH,GA3CqB,GA4C3C,GAAIv/H,IAAUoc,EACV,OAAQmjH,GA7C+B,EA+ClCnjH,EAAUpc,EACfs1B,EAAMiqG,EAGN11H,EAAQ01H,EAAS,EAGzB,QAASjqG,GAtDsC,GAqCnD,CArC+B8pG,EAAe3oI,GAsE9C,IAAM+oI,GAAuB,WAAA,IAAA,EAAG,CAO5BC,OAAQ,EAKRrB,QAAS,GAZmB,OAchCoB,EAAwBA,EAAwBC,QAAU,SAC1DD,EAAwBA,EAAwBpB,SAAW,UAD3DoB,EAd6B,GA+EvBE,GAAmB,WAAA,IAAA,EAAG,CASxBC,SAAU,EASVC,OAAQ,EAIRC,KAAM,EAQNC,UAAW,GA9Ba,OAgC5BJ,EAAoBA,EAAoBC,UAAY,WACpDD,EAAoBA,EAAoBE,QAAU,SAClDF,EAAoBA,EAAoBG,MAAQ,OAChDH,EAAoBA,EAAoBI,WAAa,YAHrDJ,EAhCyB,GAiDnBK,GAAY,GAEZC,GAAc,GAiBhBC,GAAmB,EAoBvB,SAASC,GAAkBC,GACvB,OAAOtH,IAAc,WAQjB,IAAMnzH,EAAOy6H,EAAoBz6H,KAE3B06H,EAAgB16H,EAAKjG,UAErB4gI,EAAiB,GAEjBxF,EAAM,CACRn1H,KAAMA,EACN46H,kBAAmB,KACnBC,MAAOJ,EAAoBI,MAC3BC,KAAML,EAAoBK,KAC1B3wH,QAAS,KACT4wH,SAAUN,EAAoBM,UAAY,KAC1CC,OAAQP,EAAoBO,QAAU,KACtCC,mBAAoBR,EAAoBQ,mBACxCC,aAAcT,EAAoBS,cAAgB,KAClDC,SAAUV,EAAoBU,UAAY,EAC1CC,UAAWX,EAAoBW,WAAa,KAC5CC,eAAgBZ,EAAoBY,gBAAkB,KACtDV,eAAgBA,EAChBW,OAAQ,KAERC,QAAS,KAETC,SAAUf,EAAoBe,UAAY,KAC1CC,UAAW,KACXC,OAAQhB,EAAciB,UAAY,KAClCC,QAASlB,EAAcmB,WAAa,KACpCC,iBAAkBpB,EAAcqB,oBAAsB,KACtDC,oBAAqBtB,EAAcuB,uBAAyB,KAC5DC,cAAexB,EAAcyB,iBAAmB,KAChDC,iBAAkB1B,EAAc2B,oBAAsB,KACtDC,UAAW5B,EAAc6B,aAAe,KACxCC,OAAQ/B,EAAoBgC,kBAAoB3C,GAAwBC,OACxE2C,cAAe,KAEfC,SAAU,KAEVppG,UAAWknG,EAAoBlnG,WAAa+mG,GAC5CsC,UAAWnC,EAAoBmC,WAAa,KAC5CzsH,SAA6BsqH,EAA6B,UAAK,KAC/DzpI,KAAMypI,EAAoBzpI,MAAQ,GAGlC6rI,cAAepC,EAAoBoC,eAAiB7C,GAAoBC,SACxE3zH,GAAI,IACJkjB,OAAQixG,EAAoBjxG,QAAU8wG,GACtCjuH,EAAG,KACHywH,SAAU,KACVC,QAAStC,EAAoBsC,SAAW,KACxCC,MAAO,MAGLC,EAAoCxC,EAA+B,WAEnEyC,EAAUzC,EAAoBtqH,SAE9BgtH,EAA+B1C,EAA0B,MAsB/D,OArBAtF,EAAI7uH,IAAMi0H,KACVpF,EAAImG,OAAS8B,GAAa3C,EAAoBa,OAAQX,GAClDxF,EAAIoG,QAAU6B,GAAa3C,EAAoBc,SAC/C2B,GAAWA,EAAQ1wH,SAIlBvT,SAAAA,GAAAA,OAAOA,EAAGk8H,MACfA,EAAIuH,cAAgBO,EAChB,WAAA,OAGiC,mBAAnBA,EAAgCA,IAAmBA,GAC5DrzH,IAAIyzH,KACT,KACJlI,EAAIwH,SAAWQ,EACX,WAAA,OAG4B,mBAAdA,EAA2BA,IAAcA,GAAWvzH,IAAI0zH,KACtE,KACG,KA0Bf,SAASD,GAAoBr9H,GAMzB,OAJYu9H,GAAgBv9H,IAuNhC,SAAyBA,GACrB,OAAOA,EAAKg3H,KAAe,KAD/B,CAvNyDh3H,GAUzD,SAASs9H,GAAet9H,GAMpB,OA+MJ,SAAoBA,GAChB,OAAOA,EAAKk3H,KAAgB,KADhC,CAnN2Bl3H,GAO3B,IAAMw9H,GAAyB,GAO/B,SAASC,GAAiBtI,GAEtB,IAAMW,EAAM,CACR91H,KAAMm1H,EAAIn1H,KACV09H,UAAWvI,EAAIuI,WAAapD,GAC5BqD,aAAcxI,EAAIwI,cAAgBrD,GAClCxF,QAASK,EAAIL,SAAWwF,GACxB/oI,QAAS4jI,EAAI5jI,SAAW+oI,GACxBsD,wBAAyB,KACzBb,QAAS5H,EAAI4H,SAAW,KACxBz2H,GAAI6uH,EAAI7uH,IAAM,MAUlB,OARc,MAAV6uH,EAAI7uH,IACJ6sH,IAAc,WAIVqK,GAA0CrI,EAAO,IAA2CA,EAAW,QAGxG,EAqFX,SAASiI,GAAaviI,EAAKgjI,GACvB,GAAW,MAAPhjI,EACA,OAAO,GAEX,IAAMijI,EAAY,GAClB,IAAK,IAAMC,KAAeljI,EACtB,GAAIA,EAAIzH,eAAe2qI,GAAc,CAEjC,IAAIC,EAAgCnjI,EAAIkjI,GAEpCE,EAAeD,EACf1iI,MAAMqQ,QAAQqyH,KACdC,EAAeD,EAAW,GAC1BA,EAAaA,EAAW,IAE5BF,EAAUE,GAAcD,EACpBF,IACCA,EAAUG,GAAc,GAIrC,OAAOF,EAmBX,IAAMI,GAAoB,GAmB1B,SAASC,GAAaC,GAClB,MAAO,CACHp+H,KAAMo+H,EAAQp+H,KACdvL,KAAM2pI,EAAQ3pI,KACd0V,QAAS,KACTk0H,MAAAA,IAAMD,EAAQC,KACd/B,UAAW8B,EAAQp+H,KAAKjG,UAAUwiI,aAAe,MAWzD,SAASgB,GAAgBv9H,GACrB,OAAOA,EAAK82H,KAAgB,KAwBhC,SAASwH,GAAct+H,EAAMu+H,GAMzB,OAJsBv+H,EAAK5M,eAAeokI,IAInBx3H,EAAKw3H,IAAkB,KAQlD,SAASgH,GAAex+H,EAAMu+H,GAE1B,IAAME,EAAcz+H,EAAKo3H,KAAe,KACxC,IAAKqH,IAAAA,IAAeF,EAChB,MAAM,IAAI7jI,MAAJ,QAAA,OAAkBM,GAAUgF,GAA5B,yCAEV,OAAOy+H,EAgpBX,SAASC,GAAQpkI,GACb,OAAOgB,MAAMqQ,QAAQrR,IAAiC,iBAAhBA,EA9E7B,GAqFb,SAASqkI,GAAarkI,GAClB,OAAOgB,MAAMqQ,QAAQrR,KAAAA,IAAUA,EAtFtB,GA4Fb,SAASskI,GAAmBC,GACxB,OAAmD,IAA7B,EAAdA,EAAMlG,OAMlB,SAASmG,GAAgBD,GACrB,OAAmD,IAA7B,EAAdA,EAAMlG,OAMlB,SAASoG,GAAgBF,GACrB,OAAmD,IAA7B,EAAdA,EAAMlG,OAOlB,SAASqG,GAAe7J,GACpB,OAA+C,OAAxC,EAA2B4F,SAMtC,SAASkE,GAAWz/H,GAChB,OAA8C,IAAtB,IAAhBA,EA/pBE,IAi4Bd,IAAI0/H,QAAAA,EAyFJ,SAASC,GAAqBnnD,GAC1B,QAAU,EAAsC,OA8JpD,IASMonD,GAAsB,CACxBC,eALJ,SAACC,EAAaC,GAAd,YAAcA,IAzONL,GACOA,GAEkB,oBAAb5sI,SACLA,cAAAA,IAiaf,SAASktI,GAAYllI,GACjB,KAAOgB,MAAMqQ,QAAQrR,IACjBA,EAA2BA,EAh0CtB,GAk0CT,OAAO,EAuCX,SAASmlI,GAAiB3pH,EAAO4pH,GAC7B,OAAOF,GAAYE,EAAM5pH,EA/zCP,KA00CtB,SAAS6pH,GAAiBd,EAAOa,GAM7B,OAFaF,GAAYE,EAAMb,EAAM/oH,QA8BzC,SAAS8pH,GAAS5C,EAAOlnH,GAGrB,OAA0BknH,EAAMhsI,KAAK8kB,EA/2CnB,IAw3CtB,SAASxR,GAAKu7H,EAAM/pH,GAEhB,OAAO+pH,EAAK/pH,EA13CM,IAi4CtB,SAASgqH,GAAyBC,EAAWC,GAIzC,IAAMC,EAAYD,EAASD,GAG3B,OADcrB,GAAQuB,GAAaA,EAAYA,EAl7CtC,GAm8Cb,SAASC,GAAiB1gI,GAEtB,IAAMlF,EAVV,SAAyBkF,GAErB,OAAOA,EAA4B,eAAK,KAF5C,CAUkCA,GAC9B,OAAIlF,EACOgB,MAAMqQ,QAAQrR,GAASA,EAAQ,EAA6BolI,MAEhE,KAOX,SAASS,GAAeN,GACpB,OAAgD,IAA1B,EAAdA,EA78CE,IAu9Cd,SAASO,GAA6BP,GAClC,OAA8C,MAAxB,IAAdA,EAx9CE,IAy+Cd,SAASQ,GAAYrF,EAAQllH,GACzB,OAAkB,OAAXklH,GAA4B,MAATllH,EAAgB,KAA6CklH,EAAOllH,GAOlG,SAASwqH,GAAuBZ,GAC5BA,EAl9CwB,IAk9CK,EAYjC,SAASa,GAA4BC,EAAYC,GAC7CD,EAz/CkC,IAy/CWC,EAK7C,IAHA,IAAIC,EAAkBF,EAElBpiI,EAASoiI,EAjgDF,GAkgDO,OAAXpiI,IACU,IAAXqiI,GAAmE,IAAnDC,EA//CY,KAggDb,IAAZD,GAAoE,IAAnDC,EAhgDQ,KAigD9BtiI,EAjgD8B,IAigDWqiI,EACzCC,EAAkBtiI,EAClBA,EAASA,EAvgDF,GA6qDf,IAAMuiI,GAAmB,CACrBC,OAAQC,GAAa,MACrBC,iBAAAA,EACAC,oBAAAA,GAuBJ,SAASC,KACL,OAAOL,GAAiBG,gBAoD5B,SAASG,KACL,OAAON,GAAiBC,OAAOlB,MAMnC,SAASwB,KACL,OAAOP,GAAiBC,OAAO5D,MAcnC,SAASmE,GAAcC,GACnBT,GAAiBC,OAAOS,aAAe,EAK3C,SAASC,KACL,OAAOX,GAAiBC,OAAOW,sBAOnC,SAASC,GAAyB3C,EAAO4C,GACrCd,GAAiBC,OAAOW,sBAAwB1C,EAChD8B,GAAiBC,OAAOa,SAAWA,EAKvC,SAASC,KACL,OAAOf,GAAiBC,OAAOa,SAKnC,SAASE,KACLhB,GAAiBC,OAAOa,UAAAA,EAiB5B,SAASG,KAEL,OAAOjB,GAAiBI,mBAM5B,SAASc,GAAsBjjD,GAC3B+hD,GAAiBI,mBAAqBniD,EAM1C,SAASkjD,KAEL,IAAMlB,EAASD,GAAiBC,OAE5B9qH,EAAQ8qH,EAAOmB,iBAInB,OAHe,IAAXjsH,IACAA,EAAQ8qH,EAAOmB,iBAAmBnB,EAAO5D,MAAMgF,mBAE5ClsH,EAKX,SAASmsH,KACL,OAAOtB,GAAiBC,OAAOsB,aAYnC,SAASC,KACL,OAAOxB,GAAiBC,OAAOsB,eAMnC,SAASE,GAAsBrZ,GAE3B,IAAM6X,EAASD,GAAiBC,OAE1B9qH,EAAQ8qH,EAAOsB,aAErB,OADAtB,EAAOsB,aAAetB,EAAOsB,aAAenZ,EACrCjzG,EAcX,SAASusH,GAA8BN,EAAkBO,GAErD,IAAM1B,EAASD,GAAiBC,OAChCA,EAAOsB,aAAetB,EAAOmB,iBAAmBA,EAChDQ,GAAyBD,GAiB7B,SAASC,GAAyBD,GAC9B3B,GAAiBC,OAAO0B,sBAAwBA,EASpD,SAASE,GAAuBC,GAE5B,IAAMH,EAAwB3B,GAAiBC,OAAO0B,sBACtD,OAAkC,IAA3BA,EAA+B,KAA0BG,EAAMH,GAK1E,SAASI,KACL,OAAO/B,GAAiBC,OAAO+B,kBAMnC,SAASC,GAAqBtoI,GAC1BqmI,GAAiBC,OAAO+B,kBAAoBroI,EAQhD,SAASuoI,GAAQC,EAASjE,GAGtB,IAAMkE,EAAYC,KAClBrC,GAAiBC,OAASmC,EAC1BA,EAAUxB,sBAAwB,EAClCwB,EAAUrD,MAAQoD,EActB,SAASG,GAAUH,EAASjE,GAGxB,IAAMkE,EAAYC,KAcZhG,EAAQ8F,EAn+DJ,GAo+DVnC,GAAiBC,OAASmC,EAC1BA,EAAUxB,sBAAwB,EAClCwB,EAAUrD,MAAQoD,EAClBC,EAAU/F,MAAQA,EAClB+F,EAAU1B,aAAe,EACzB0B,EAAUb,aAAelF,EAAMgF,kBAMnC,SAASgB,KAEL,IAAME,EAAgBvC,GAAiBC,OAEjCuC,EAAgC,OAAlBD,EAAyB,KAAOA,EAActkB,MAGlE,OADkC,OAAhBukB,EAAuBtC,GAAaqC,GAAiBC,EAO3E,SAAStC,GAAaziI,GAElB,IAAMwiI,EAAS,CACXW,sBAAuB,KAEvBE,UAAAA,EAEA/B,MAAO,KAEP1C,MAAO,KAEPoG,cAAe,EAEf/B,aAAc,KAEdgC,kBAAmB,EAEnBC,iBAAkB,KAElBC,iBAAkB,KAElBjB,uBAAwB,EAExBP,kBAAmB,EAEnBG,cAAe,EAEfS,kBAAmB,EAEnBvkI,OAAQ,EAERwgH,MAAO,MAGX,OADW,OAAXxgH,IAAoBA,EAAOwgH,MAAQgiB,GAC5BA,EAYX,SAAS4C,KAEL,IAAMC,EAAY9C,GAAiBC,OAInC,OAHAD,GAAiBC,OAAS6C,EAAUrlI,OACpCqlI,EAAUlC,sBAAwB,KAClCkC,EAAU/D,MAAQ,KACX+D,EASX,IAAMC,GAAUF,GAUhB,SAASG,KAEL,IAAMF,EAAYD,KAClBC,EAAUhC,UAAAA,EACVgC,EAAUzG,MAAQ,KAClByG,EAAUL,cAAgB,EAC1BK,EAAUpC,aAAe,KACzBoC,EAAUJ,kBAAoB,EAC9BI,EAAUnB,uBAAyB,EACnCmB,EAAUH,iBAAmB,KAC7BG,EAAUF,iBAAmB,KAC7BE,EAAU1B,kBAAoB,EAC9B0B,EAAUvB,cAAgB,EAC1BuB,EAAUd,kBAAoB,EAkClC,SAASiB,KACL,OAAOjD,GAAiBC,OAAOwC,cAanC,SAASS,GAAiB/tH,GACtB6qH,GAAiBC,OAAOwC,cAAgBttH,EAM5C,SAASguH,KAEL,IAAMlD,EAASD,GAAiBC,OAChC,OAAOhB,GAASgB,EAAO5D,MAAO4D,EAAOwC,eAQzC,SAASW,KACLpD,GAAiBC,OAAO0C,iBAh3CN,6BAk4CtB,SAASU,KASLrD,GAAiBC,OAAO0C,iBAAmB,KAoF/C,SAASW,GAAuBjH,EAAO6B,GAKnC,IAAK,IAAIrvI,EAAIqvI,EAAMqF,eAAgBt0G,EAAMivG,EAAMsF,aAAc30I,EAAIogC,EAAKpgC,IAAK,CAEvE,IAAM40I,EAAkCpH,EAAMhsI,KAAKxB,GAC/C40I,EAAatI,mBACZkB,EAAMqH,eAAiBrH,EAAMqH,aAAe,KAAK9uI,MAAM/F,EAAG40I,EAAatI,kBAExEsI,EAAapI,uBACZgB,EAAMqH,eAAiBrH,EAAMqH,aAAe,KAAK9uI,KAAK/F,EAAG40I,EAAapI,sBACtEgB,EAAMsH,oBAAsBtH,EAAMsH,kBAAoB,KAClD/uI,KAAK/F,EAAG40I,EAAapI,sBAE1BoI,EAAalI,gBACZc,EAAMuH,YAAcvH,EAAMuH,UAAY,KAAKhvI,MAAM/F,EAAG40I,EAAalI,eAElEkI,EAAahI,oBACZY,EAAMuH,YAAcvH,EAAMuH,UAAY,KAAKhvI,KAAK/F,EAAG40I,EAAahI,mBAChEY,EAAMwH,iBAAmBxH,EAAMwH,eAAiB,KAAKjvI,KAAK/F,EAAG40I,EAAahI,mBAEjD,MAA1BgI,EAAa9H,YACZU,EAAMyH,eAAiBzH,EAAMyH,aAAe,KAAKlvI,KAAK/F,EAAG40I,EAAa9H,YAqCnF,SAASoI,GAAkBhF,EAAOiF,EAAO5E,GACrC6E,GAAUlF,EAAOiF,EAAO,EAA4B5E,GAgBxD,SAAS8E,GAAyBnF,EAAOiF,EAAOG,EAAW/E,IAGnC,EAAfL,EAj1EK,MAi1E0CoF,GAChDF,GAAUlF,EAAOiF,EAAOG,EAAW/E,GAQ3C,SAASgF,GAAwBrF,EAAOoF,GAIpC,IAAInM,EAAQ+G,EA91EF,IA+1EG,EAAR/G,KAAwCmM,IACzCnM,GAAS,KACTA,GAAS,EACT+G,EAl2EM,GAk2ES/G,GAkBvB,SAASiM,GAAUI,EAAav6G,EAAKq6G,EAAWG,GAW5C,IAPA,IAIMC,EAAqC,MAApBD,EAA2BA,GAAoB,EAElEE,EAAqB,EAChB31I,OAAAA,IAPUy1I,EACqB,MAAnCD,EAz1EmB,IA01EpB,EAKqBx1I,EAAIi7B,EAAI56B,OAAQL,IAGrC,GAAoB,iBADYi7B,EAAIj7B,EAAI,IAGpC,GADA21I,EAAwC16G,EAAIj7B,GACpB,MAApBy1I,GAA4BE,GAAsBF,EAClD,WAKex6G,EAAIj7B,GAAK,IAExBw1I,EA52EY,KA42EwB,QACpCG,EAAqBD,IAAqC,GAAnBA,KACvCE,GAASJ,EAAaF,EAAWr6G,EAAKj7B,GACtCw1I,EA/2EY,KAg3E4B,WAAnCA,EAh3EO,KAg3E4Ex1I,EAChF,GAEZA,IAaZ,SAAS41I,GAASJ,EAAaF,EAAWr6G,EAAKj7B,GAE3C,IAAM61I,EAAa56G,EAAIj7B,GAAK,EAEtB81I,EAA0B76G,EAAIj7B,EAAI,GAIlC+1I,EAAYP,EAFKK,GAAc56G,EAAIj7B,GAAwBi7B,EAAIj7B,IAGjE61I,EAE8BL,EA36ExB,IA26E8C,GAI/CA,EA/4Ee,KA+4EqB,KACf,EAArBA,EAh7EC,MAg7EoDF,IACtDE,EAj7EE,IAi7EoB,KACtBM,EAAKhyI,KAAKiyI,IAIdD,EAAKhyI,KAAKiyI,GAwIlB,IAAMC,GAMF,SAAA,EAAYr7H,EAIZs7H,EAAgBC,GAAAA,gBAAAA,KAAAA,GACZ7wI,KAAKsV,QAAUA,EAKftV,KAAK8wI,WAAAA,EACL9wI,KAAK+wI,oBAAsBH,EAC3B5wI,KAAKgxI,WAAaH,GAwL1B,SAASI,GAAgB9tD,EAAU+tD,EAAQhvG,GAKvC,IAHA,IAAMivG,EAAS7G,GAAqBnnD,GAEhCxoF,EAAI,EACDA,EAAIunC,EAAMlnC,QAAQ,CAErB,IAAMyK,EAAQy8B,EAAMvnC,GACpB,GAAqB,iBAAV8K,EAAoB,CAG3B,GAAc,IAAVA,EACA,MAIJ9K,IAEA,IAAMy2I,EAAkClvG,EAAMvnC,KAExC02I,EAA8BnvG,EAAMvnC,KAEpC22I,EAA6BpvG,EAAMvnC,KAEzCw2I,EACI,EAAgCzkI,aAAawkI,EAAQG,EAAUC,EAASF,GACxEF,EAAO1uG,eAAe4uG,EAAcC,EAAUC,OAEjD,CAGD,IAAMD,EAAW,EAEXC,EAAUpvG,IAAQvnC,GAGpB42I,GAAgBF,GACZF,GACA,EAAgCK,YAAYN,EAAQG,EAAUC,GAIlEH,EACI,EAAgCzkI,aAAawkI,EAAQG,EAAU,GAC/DH,EAAOxkI,aAAa2kI,EAAU,GAEtC12I,KAOR,OAAOA,EASX,SAAS82I,GAA0BC,GAC/B,OAAkB,IAAXA,GAA0C,IAAXA,GACvB,IAAXA,EAMR,SAASH,GAAgB3xI,GAIrB,OAA8B,KAAvBA,EAAKnE,WAAW,GAW3B,SAASk2I,GAAetoD,EAAK17E,GACzB,GAAY,OAARA,GAA+B,IAAfA,EAAI3S,aAGnB,GAAY,OAARquF,GAA+B,IAAfA,EAAIruF,OAEzBquF,EAAM17E,EAAIrQ,aAKV,IADA,IAAIs0I,GAAa,EACRj3I,EAAI,EAAGA,EAAIgT,EAAI3S,OAAQL,IAAK,CAEjC,IAAMuI,EAAOyK,EAAIhT,GACG,iBAATuI,EACP0uI,EAAY1uI,EAGM,IAAd0uI,GAMAC,GAAmBxoD,EAAKuoD,EAAW,EAA2B,MAH1C,IAAfA,GACS,IAAdA,EAEuFjkI,IAAMhT,GAIzB,MAKpF,OAAO0uF,EAYX,SAASwoD,GAAmBxoD,EAAKqoD,EAAQI,EAAMC,EAAMtsI,GAEjD,IAAI9K,EAAI,EAGJq3I,EAAuB3oD,EAAIruF,OAE/B,IAAgB,IAAZ02I,EACAM,GAAwB,OAGxB,KAAOr3I,EAAI0uF,EAAIruF,QAAQ,CAEnB,IAAMi3I,EAAW5oD,EAAI1uF,KACrB,GAAwB,iBAAbs3I,EAAuB,CAC9B,GAAIA,IAAaP,EAAQ,CACrBM,GAAwB,EACxB,MAEC,GAAIC,EAAWP,EAAQ,CAExBM,EAAuBr3I,EAAI,EAC3B,QAMhB,KAAOA,EAAI0uF,EAAIruF,QAAQ,CAEnB,IAAMkI,EAAOmmF,EAAI1uF,GACjB,GAAoB,iBAATuI,EAGP,MAEC,GAAIA,IAAS4uI,EAAM,CAEpB,GAAa,OAATC,EAIA,YAHc,OAAVtsI,IACA4jF,EAAI1uF,EAAI,GAAK8K,IAIhB,GAAIssI,IAAS1oD,EAAI1uF,EAAI,GAEtB,YADA0uF,EAAI1uF,EAAI,GAAK,GAKrBA,IACa,OAATo3I,GACAp3I,IACU,OAAV8K,GACA9K,KAGsB,IAA1Bq3I,IACA3oD,EAAIzoF,OAAOoxI,EAAsB,EAAGN,GACpC/2I,EAAIq3I,EAAuB,GAE/B3oD,EAAIzoF,OAAOjG,IAAK,EAAGm3I,GACN,OAATC,GACA1oD,EAAIzoF,OAAOjG,IAAK,EAAGo3I,GAET,OAAVtsI,GACA4jF,EAAIzoF,OAAOjG,IAAK,EAAG8K,GAc3B,SAASysI,GAAkBC,GACvB,OA5fuB,IA4fhBA,EAMX,SAASC,GAAuBD,GAC5B,OAAoE,MAA7D,EAMX,SAASE,GAA4BF,GACjC,OAAO,GAA8D,GAWzE,SAASG,GAAsB50I,EAAU60I,GASrC,IAPA,IAAIC,EAAaH,GAA4B30I,GAEzC+0I,EAAaF,EAKVC,EAAa,GAChBC,EAAgCA,EAp+Ff,IAq+FjBD,IAEJ,OAAOC,EAeX,SAASC,GAAgBjtI,GACrB,MAAqB,iBAAVA,EACAA,EACE,MAATA,EACO,GACJ,GAAKA,EAShB,SAASktI,GAAkBltI,GACvB,MAAqB,mBAAVA,EACAA,EAAM7F,MAAQ6F,EAAM5F,WACV,iBAAV4F,GAA+B,MAATA,GAAuC,mBAAfA,EAAM0F,KACpD1F,EAAM0F,KAAKvL,MAAQ6F,EAAM0F,KAAKtL,WAElC6yI,GAAgBjtI,GAE3B,IASMmtI,IANkC,oBAA1B/5G,uBACVA,uBACAx4B,YAEC0I,KAAKi5H,IAkBV,SAAS6Q,GAAkB5xI,GACvB,MAAO,CAAErB,KAAM,WAAY+K,OAAQ1J,EAAQi2B,eAQ/C,SAAS47G,GAAc7xI,GACnB,MAAO,CAAErB,KAAM,OAAQ+K,OAAQ1J,EAAQi2B,cAAc5rB,MAwBzD,SAASynI,GAActtI,GACnB,OAAIA,aAAiBR,SACVQ,IAGAA,EA8Cf,IAAIutI,IAAAA,EAKJ,SAASC,GAAwB/lI,GAE7B,IAAMgmI,EAAWF,GAEjB,OADAA,GAAuB9lI,EAChBgmI,EAeX,IAAIC,GAAkB,EAsDtB,SAASC,GAA+BpJ,EAAOmB,GAE3C,IAAMkI,EAAwBC,GAAiBtJ,EAAOmB,GACtD,IAA+B,IAA3BkI,EACA,OAAOA,EAGX,IAAMlL,EAAQgD,EA3uGJ,GA4uGNhD,EAAMoL,kBACNvJ,EAAMwJ,cAAgBrI,EAASnwI,OAC/By4I,GAAYtL,EAAMhsI,KAAM6tI,GACxByJ,GAAYtI,EAAU,MACtBsI,GAAYtL,EAAMuL,UAAW,OAGjC,IAAMC,EAAYC,GAA0B5J,EAAOmB,GAE7CqI,EAAgBxJ,EAAMwJ,cAG5B,GAAItB,GAAkByB,GASlB,IAPA,IAAME,EAAczB,GAAuBuB,GAErCG,EAAcxB,GAAsBqB,EAAWxI,GAE/C4I,EAAgCD,EA9vGhC,GA8vGwD,KAGrDn5I,EAAI,EAAGA,EAAI,EAAGA,IACnBwwI,EAASqI,EAAgB74I,GAAKm5I,EAAYD,EAAcl5I,GAAKo5I,EAAWF,EAAcl5I,GAI9F,OADAwwI,EAASqI,EA1zBW,GA0zBwBG,EACrCH,EAOX,SAASC,GAAY79G,EAAKo+G,GACtBp+G,EAAIl1B,KAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGszI,GAOrC,SAASV,GAAiBtJ,EAAOmB,GAC7B,OAA6B,IAAzBnB,EAAMwJ,eAGLxJ,EAAMzgI,QAAUygI,EAAMzgI,OAAOiqI,gBAAkBxJ,EAAMwJ,eAGH,MAAnDrI,EAASnB,EAAMwJ,cAj1BC,IAk1BR,EAGDxJ,EAAMwJ,cAYrB,SAASI,GAA0B5J,EAAOgB,GACtC,GAAIhB,EAAMzgI,SAA0C,IAAhCygI,EAAMzgI,OAAOiqI,cAC7B,OAA0BxJ,EAAMzgI,OAAqB,cASzD,IAHA,IAAI0qI,EAAYjJ,EA1yGL,GA4yGPwH,EAAa,EACVyB,IAA0C,IAA7BA,EAAUT,eAE1BS,GADAjJ,EAA0BA,EA5xGT,KA6xGEA,EA/yGZ,GA+yG2B,KAClCwH,IAEJ,OAAOyB,EACHA,EAAUT,cAAiBhB,GAAc,IACrB,EAW5B,SAAS0B,GAAmBV,EAAerL,EAAO9I,IAjJlD,SAAkBmU,EAAerL,EAAOh9H,GAGpC,IAAIsG,EAAqB,iBAATtG,EAAoB,EAA4B03H,IAAiB13H,EAAK1P,WAAW,IAAM,EAG7F,MAANgW,IACAA,EAAK,EAA4BoxH,IAAiBsQ,MAKtD,IAAMgB,EA3BSC,IA2BE3iI,EAKXg7E,EAAO,GAAK0nD,EAMZE,EAAgB,GAAXF,EAELG,EAAgB,GAAXH,EAELvG,EAA2BzF,EAAW,KANtB,IAAXgM,EAQPE,EAAMC,EAAM1G,EAAM4F,EAAgB,IAAM/mD,EAASmhD,EAAM4F,EAAgB,IAAM/mD,EACxE6nD,EAAM1G,EAAM4F,EAAgB,IAAM/mD,EAASmhD,EAAM4F,EAAgB,IAAM/mD,EAG5E4nD,EAAMC,EAAM1G,EAAM4F,EAAgB,IAAM/mD,EAASmhD,EAAM4F,EAAgB,IAAM/mD,EACxE6nD,EAAM1G,EAAM4F,EAAgB,IAAM/mD,EAASmhD,EAAM4F,IAAkB/mD,EAlChF,CAkJa+mD,EAAerL,EAAO9I,GAsGnC,SAASkV,GAAsBvK,EAAOa,EAAOxL,GAAoC6E,IAA7BJ,EAA6BI,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAArBzE,GAAYoE,QAASK,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAC7E,GAAc,OAAV8F,EAAgB,CAEhB,IAAMwK,EAsRd,SAA+BnV,GAE3B,GAAqB,iBAAVA,EACP,OAAOA,EAAM5jI,WAAW,IAAM,EAGlC,IAAMg5I,EAAU,EAA6B5R,IAE7C,MAA2B,iBAAZ4R,GAAwBA,EAAU,EAxiBlCL,IAwiBuCK,EAAuBA,EARjF,CAtRgDpV,GAGxC,GAAyB,mBAAdmV,EAA0B,CACjCxG,GAAQnD,EAAOb,GACf,IAEI,IAAMvkI,EAAQ+uI,IACd,GAAa,MAAT/uI,GAAmBq+H,EAAQrE,GAAYH,SAIvC,OAAO75H,EAHP,MAAM,IAAII,MAAJ,mBAAA,OAA6B8sI,GAAkBtT,GAA/C,MAJd,QAWIwP,WAGH,GAAwB,iBAAb2F,EAAuB,CACnC,IAAmB,IAAfA,EAEA,OAAO,IAAuBE,GAAa1K,EAAOa,GAOtD,IAAI8J,EAAgB,KAEhBnB,EAAgBF,GAAiBtJ,EAAOa,GAExCsH,GAn/BW,EAq/BXyC,EAAmB9Q,EAAQrE,GAAYoV,KAAOhK,EAx7G3B,IApBpB,GA48G2F,KAkB9F,MAduB,IAAnB2I,GAAwB1P,EAAQrE,GAAYD,YAC5C2S,GAAoC,IAAnBqB,EAAuBI,GAA0B5J,EAAOa,GACrEA,EAAM2I,EAjhCF,GAkhCHsB,GAAmBhR,GAAAA,IAIpB6Q,EAAgB9J,EAj+GtB,GAk+GM2I,EAAgBpB,GAAuBD,GACvCtH,EAAQyH,GAAsBH,EAAgBtH,IAL9C2I,GAAiB,IAUC,IAAnBA,GAAsB,CACzBrB,EAAiBtH,EAAM2I,EA9hCf,GAiiCR,IAAMrL,EAAQ0C,EA5+GhB,GA6+GE,GAAIkK,GAAcP,EAAWhB,EAAerL,EAAMhsI,MAAO,CAKrD,IAAMq6C,EAAWw+F,GAAuBxB,EAAe3I,EAAOxL,EAAOsV,EAAe7Q,EAAO8Q,GAC3F,GAAIp+F,IAAay+F,GACb,OAAOz+F,EAGXs+F,GAAmBhR,EAAO+G,EAv/GhC,GAu/G6C1uI,KAAKq3I,EA9iClD,KA8iC6EoB,IACvEG,GAAcP,EAAWhB,EAAe3I,IAGxC8J,EAAgBxM,EAChBqL,EAAgBpB,GAAuBD,GACvCtH,EAAQyH,GAAsBH,EAAgBtH,IAM9C2I,GAAiB,IASjC,GAJI1P,EAAQrE,GAAYH,eAAAA,IAAY4E,IAEhCA,EAAgB,MAEoC,IAAnDJ,GAASrE,GAAYF,KAAOE,GAAYoV,OAAc,CAEvD,IAAMK,EAAiBrK,EA9/GZ,GAmgHLsK,EAA+BxR,QAAAA,GACrC,IACI,OAAIuR,EACOA,EAAeryH,IAAIw8G,EAAO6E,EAAeJ,EAAQrE,GAAYH,UAG7DyE,GAAmB1E,EAAO6E,EAAeJ,EAAQrE,GAAYH,UAL5E,QASIqE,GAAwBwR,IAGhC,GAAIrR,EAAQrE,GAAYH,SACpB,OAAO4E,EAGP,MAAM,IAAIr+H,MAAJ,4BAAA,OAAsC8sI,GAAkBtT,GAAxD,MAId,IAAM4V,GAAY,GAWlB,SAASD,GAAuBxB,EAAe3I,EAAOxL,EAAOsV,EAAe7Q,EAAO8Q,GAE/E,IAAMQ,EAAevK,EArjHX,GAujHJb,EAA2BoL,EAAaj5I,KAAKq3I,EA9mCzC,GAuoCJ6B,EAAgBC,GAA0BtL,EAAOoL,EAAc/V,EArBrB,MAAjBsV,EAQ1B1K,GAAgBD,IAAUgJ,GAO1B2B,GAAiBS,GAAgC,IAAfpL,EAAM7+H,KAIlB24H,EAAQrE,GAAYoV,MAASD,IAAqB5K,GAG7E,OAAsB,OAAlBqL,EACOE,GAAkB1K,EAAOuK,EAAcC,EAAe,GAGtDJ,GAcf,SAASK,GAA0BtL,EAAO7B,EAAO9I,EAAOmW,EAAwBC,GAkB5E,IAhBA,IAAMC,EAAsB1L,EAAM2L,gBAE5BC,EAAezN,EAAMhsI,KAErB05I,EAAyC,MAAtBH,EAEnBI,EAAkB9L,EAAMqF,eAIxB0G,EAAwBL,GAAuB,GAK/Cl2C,EAAWi2C,EAAoBI,EAAmBE,EAPnC/L,EAAMsF,aAQlB30I,EAJa66I,EAAyBK,EAAmBA,EAAmBE,EAIzDp7I,EAAI6kG,EAAU7kG,IAAK,CAE3C,IAAMq7I,EAAwCJ,EAAaj7I,GAC3D,GAAIA,EAAIm7I,GAAmBzW,IAAU2W,GACjCr7I,GAAKm7I,GAAmB,EAA0C3qI,OAASk0H,EAC3E,OAAO1kI,EAGf,GAAI86I,EAAmB,CAEnB,IAAMQ,EAA4BL,EAAaE,GAC/C,GAAIG,GAAU9L,GAAe8L,IAAWA,EAAO9qI,OAASk0H,EACpD,OAAOyW,EAGf,OAAO,KAcX,SAASP,GAAkB1K,EAAO1C,EAAOlnH,EAAO+oH,GAE5C,IAAIvkI,EAAQolI,EAAM5pH,GAEZ2sH,EAAQzF,EAAMhsI,KACpB,GAAcsJ,aAr+BQkrI,GAq+BA,CAElB,IAAMr7H,EAAU7P,EAChB,GAAI6P,EAAQw7H,UACR,MAAM,IAAIjrI,MAAJ,oBAAA,OAA8B8sI,GAAkB/E,EAAM3sH,MAGhE,IAGIk0H,EAHEe,EAA+BjD,GAAwB39H,EAAQy7H,qBACrEz7H,EAAQw7H,WAAAA,EAGJx7H,EAAQ07H,aACRmE,EAA+BxR,GAAwBruH,EAAQ07H,aAEnEhD,GAAQnD,EAAOb,GACf,IACIvkI,EAAQolI,EAAM5pH,GAAS3L,EAAQA,aAAAA,EAAmBs4H,EAAO/C,EAAOb,GAO5D7B,EAAMoL,iBAAmBtyH,GAAS+oH,EAAMqF,gBA98CxD,SAA+B8G,EAAgB5G,EAAcpH,GAAAA,IAEjDvB,EAA+B2I,EAAjC,UAAa1I,EAAoB0I,EAAtB,OAAUxI,EAAYwI,EAAd,QACrB3I,KACCuB,EAAMiO,gBAAkBjO,EAAMiO,cAAgB,KAAK11I,KAAKy1I,EAAgBvP,IACxEuB,EAAMkO,qBAAuBlO,EAAMkO,mBAAqB,KAAK31I,KAAKy1I,EAAgBvP,IAEnFC,IACCsB,EAAMiO,gBAAkBjO,EAAMiO,cAAgB,KAAK11I,MAAMy1I,EAAgBtP,GAE1EE,KACCoB,EAAMiO,gBAAkBjO,EAAMiO,cAAgB,KAAK11I,KAAKy1I,EAAgBpP,IACxEoB,EAAMkO,qBAAuBlO,EAAMkO,mBAAqB,KAAK31I,KAAKy1I,EAAgBpP,IAZ3F,CAg9CsC9lH,EAA0B2sH,EAAM3sH,GAAUknH,GAVxE,QAcQ7yH,EAAQ07H,YACRrN,GAAwBwR,GAC5BlC,GAAwBiD,GACxB5gI,EAAQw7H,WAAAA,EACRjC,MAGR,OAAOppI,EA8BX,SAASsvI,GAAcP,EAAWhB,EAAe8C,GAK7C,IAIMjC,EAAiB,GAAZG,EAELF,EAAiB,GAAZE,EAgBX,UApBuB,IAAZA,EAWCH,EAAMC,EAAKgC,EAAa9C,EAAgB,GAAK8C,EAAa9C,EAAgB,GAC7Ec,EAAKgC,EAAa9C,EAAgB,GAAK8C,EAAa9C,EAAgB,GAGjEa,EAAMC,EAAKgC,EAAa9C,EAAgB,GAAK8C,EAAa9C,EAAgB,GAC7Ec,EAAKgC,EAAa9C,EAAgB,GAAK8C,EAAa9C,IAlBhD,GAAKgB,GA8BtB,SAASM,GAAmBhR,EAAOyS,GAC/B,QAASzS,EAAQrE,GAAYF,MAAWuE,EAAQrE,GAAYoV,MAAQ0B,GAExE,IAAM7B,GAAAA,WAKF,SAAA,EAAY8B,EAAQC,GAAAA,gBAAAA,KAAAA,GAChBz2I,KAAKw2I,OAASA,EACdx2I,KAAKy2I,OAASA,EAQ2DvS,OAD7E,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAI7E,EAAO6E,GACP,OAAOqQ,GAAsBv0I,KAAKw2I,OAAQx2I,KAAKy2I,OAAQpX,OAAAA,EAAkB6E,OAAAA,EAf3EwQ,GAgEN,SAASgC,GAAsBvrI,GAC3B,OAAOmzH,IAAc,WAKjB,IAAM/jH,EAA2BxU,OAAO4wI,eAAexrI,EAAKjG,WAAuB,YAE7EoQ,EAAU,EAA6BqtH,KApCrD,SAASiU,EAAezrI,GAEpB,IAAM0rI,EAAU,EAChB,GAAIrV,GAAar2H,GACb,OAAO,WAKH,IAAMmK,EAAUshI,EAAerV,GAAkBsV,IACjD,OAAOvhI,EAAUA,IAAY,MAIrC,IAAIA,EAAUm0H,GAAcoN,GAC5B,GAAgB,OAAZvhI,EAAkB,CAElB,IAAMwhI,EAAcvW,GAAesW,GACnCvhI,EAAUwhI,GAAeA,EAAYxhI,QAEzC,OAAOA,GAAW,KApBtB,CAoCuFiF,GAC/E,OAAgB,OAAZjF,EACOA,EAWNtb,SAAAA,GAAAA,OAAM,IAAIA,MAuCvB,SAAS+8I,GAAgB53I,GACrB,OAAO,EAAgD,eAM3D,SAAS63I,GAAiB73I,GACtB,OAAO,EAAiD,gBAc5D,SAAS83I,GAAmBzyI,GAAYq+G,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,GAChBr+G,EAAe,MAAfA,MAAAA,EAAoBq+G,GAiC5C,IAAMq0B,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAIIl3I,KAAKm3I,SAAW3yI,QA8CTf,OAxCX,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAAYtE,GAER,IAAMi4I,EAAgBp3I,KAAKq3I,mBAAmBl4I,GAExC0J,EAAU7I,KAAKs3I,aAAan4I,GAI5Bo4I,EA7Dd,SAAwBp4I,GACpB,OAAO,EAAyC,eAAK83I,GADzD,CA6D2C93I,GACnCo4I,EAAYv3I,KAAKm3I,SAAU,QAASh4I,GAChCi4I,GACAG,EAAYv3I,KAAKm3I,SAAU,iBAAkBC,GAE7CvuI,GACA0uI,EAAYv3I,KAAKm3I,SAAU,gBAAiBtuI,KAQpD,CAAA,IAAA,eAAA,MAAA,SAAa1J,GACT,OAAIA,EACO43I,GAAgB53I,GAAS43I,GAAgB53I,GAC5Ca,KAAKs3I,aAAaN,GAAiB73I,IAEpC,OAOX,CAAA,IAAA,qBAAA,MAAA,SAAmBA,GAGf,IADA,IAAIsE,EAAIuzI,GAAiB73I,GAClBsE,GAAKuzI,GAAiBvzI,IACzBA,EAAIuzI,GAAiBvzI,GAEzB,OAAOA,MAAAA,EAnDTyzI,GAgLAM,GAAAA,WAIF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRz3I,KAAKy3I,sCAAwCA,EAOzC,OAFR,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WACI,MAAO,0CAAA,OAA0Cz3I,KAAKy3I,uCAClD,yCAAA,EAZND,GAwBAE,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAKS,OALTA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,WAKE,MAAO,WAAA,EALTA,CAAqBF,IAQrBG,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAKS,OALTA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,WAKE,MAAO,YAAA,EALTA,CAAsBH,IAQtBI,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAKS,OALTA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,WAKE,MAAO,aAAA,EALTA,CAAuBJ,IAQvBK,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAKS,OALTA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,WAKE,MAAO,UAAA,EALTA,CAAoBL,IAQpBM,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAKS,OALTA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,WAKE,MAAO,kBAAA,EALTA,CAA4BN,IAalC,SAASO,GAAgBtyI,GACrB,OAAOA,aAAiB+xI,GAAsD/xI,EAA8C,sCACxH,EAOR,SAASuyI,GAAgCvyI,EAAO0F,GAE5C,IAAM8sI,EAAaC,GAA0BzyI,GAC7C,GAAkB,MAAdwyI,GAAsBA,IAAe9sI,EAAM,CAE3C,GAAmB,gBAAf8sI,GAA2D,QAAT9sI,EAClD,OAAA,EACJ,MAAM,IAAItF,MAAJ,mBAAA,OAA6BsF,EAA7B,YAAA,OAA4C8sI,EAA5C,uCAEV,OAAOA,IAAe9sI,EAM1B,SAAS+sI,GAA0BzyI,GAC/B,OAAOA,aAAiB+xI,IAAoC/xI,EAAM0yI,eAAmB,KA4EzF,IAAIC,IAAAA,EACAC,IAAAA,EASJ,SAASC,KAEL,OADAD,IAAAA,EACOD,GAuCX,IAAMG,GAAAA,WAIF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRx4I,KAAKw4I,WAAaA,EAClBx4I,KAAKy4I,cAAgBz4I,KAAKw4I,WAAWt9H,eAAeC,mBAAmB,sBAEvE,IAAIu9H,EAAmB14I,KAAKy4I,cAAcntI,KAC1C,GAAwB,MAApBotI,EAA0B,CAI1B,IAAMC,EAAY34I,KAAKy4I,cAAcjuI,cAAc,QACnDxK,KAAKy4I,cAAc9rI,YAAYgsI,GAC/BD,EAAmB14I,KAAKy4I,cAAcjuI,cAAc,QACpDmuI,EAAUhsI,YAAY+rI,GAE1BA,EAAiBE,UAAY,wDACzBF,EAAiB5xH,eAAkB4xH,EAAiB5xH,cAAc,QAMtE4xH,EAAiBE,UAAY,mEAOrB54I,KAAK64I,oBANTH,EAAiB5xH,eAAiB4xH,EAAiB5xH,cAAc,YA8J7E,WACI,IACI,QAAS,OAA8BjL,UAE3C,MAAOi9H,GACH,OAAA,GALR,GAxJ2C94I,KAAK+4I,8BAKb/4I,KAAKg5I,mCAf5Bh5I,KAAK64I,oBAAsB74I,KAAKi5I,wBAoIVC,OA3G9B,aAAA,EAAA,CAAA,CAAA,IAAA,0BAAA,MAAA,SAAwBC,GAIpBA,EAAO,0BAA4BA,EAAO,UAC1C,IACIA,EAAO5wB,UAAU4wB,GAErB,MAAOL,GACH,OAAO,KAGX,IAAM/2I,EAAM,IAAIC,eAChBD,EAAI2H,aAAe,WACnB3H,EAAIE,KAAK,MAAO,gCAAkCk3I,GAAAA,GAClDp3I,EAAIG,UAAAA,GAEJ,IAAMoJ,EAAOvJ,EAAI6H,SAAS0B,KAE1B,OADAA,EAAK8B,YAA+B9B,EAAgB,YAC7CA,IAUX,CAAA,IAAA,gCAAA,MAAA,SAA8B6tI,GAI1BA,EAAO,0BAA4BA,EAAO,UAC1C,IAEI,IAAM7tI,GAA0B,IAAI,OAA8BuQ,WAAY6pB,gBAAgByzG,EAAM,aAAkB,KAEtH,OADA7tI,EAAK8B,YAA+B9B,EAAgB,YAC7CA,EAEX,MAAOwtI,GACH,OAAO,QAYf,CAAA,IAAA,oCAAA,MAAA,SAAkCK,GAG9B,IAAMC,EAAap5I,KAAKy4I,cAAcjuI,cAAc,YACpD,GAAI,YAAa4uI,EAEb,OADAA,EAAWR,UAAYO,EAChBC,EAUX,IAAMC,EAAYr5I,KAAKy4I,cAAcjuI,cAAc,QAOnD,OANA6uI,EAAUT,UAAYO,EAGEn5I,KAAiB,WAAEs5I,cACvCt5I,KAAKu5I,mBAAmBF,GAErBA,IAaX,CAAA,IAAA,qBAAA,MAAA,SAAmBhkH,GAIf,IAFA,IAAMmkH,EAAUnkH,EAAGhP,WAEV1rB,EAAI6+I,EAAQx+I,OAAS,EAAG,EAAIL,EAAGA,IAAK,CAEzC,IAEM02I,EAFSmI,EAAQt2I,KAAKvI,GAEiBiF,KAC5B,cAAbyxI,GAAyD,IAA7BA,EAASzvI,QAAQ,SAC7CyzB,EAAG0M,gBAAgBsvG,GAK3B,IADA,IAAIoI,EAA+BpkH,EAAc,WAC1CokH,GACCA,EAAU9jH,WAAa+jH,KAAKC,cAC5B35I,KAAKu5I,mBAAmB,GAC5BE,EAAYA,EAAUP,gBAAAA,EA1J5BX,GAiOAqB,GAAmB,8DAQnBC,GAAmB,uIAKzB,SAASC,GAAah7I,GAElB,OADAA,EAAMzD,OAAOyD,IACLgB,MAAM85I,KAAqB96I,EAAIgB,MAAM+5I,IAClC/6I,GACPw5I,MACA9zI,QAAQyG,KAARzG,wCAAAA,OAAqD1F,EAArD0F,uCAEG,UAAY1F,GAwBvB,SAASi7I,GAAOt8B,GAEZ,IAFYA,EAENwjB,EAAM,GAFAxjB,EAAAA,2BAGIA,EAAKj8G,MAAM,MAHfi8G,IAGZ,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAA,CACIwjB,EADJ,EAAA,QACQjnI,GAJIyjH,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,IAKZ,OAAOwjB,EAMX,SAAS,KAAS+Y,IAEd,IAAM/Y,EAAM,GAFE+Y,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAGd,IAAA,IAAA,EAAA,EAAA,EAAgBA,EAAhB,EAAA,EAAA,OAAA,IAAA,CAAK,IAAMjgJ,EAAAA,EAAAA,GACP,IAAK,IAAMmT,KAAKnT,EACRA,EAAEwE,eAAe2O,KACjB+zH,EAAI/zH,IAAAA,GAGhB,OAAO+zH,EAQX,IA4OIgZ,GA5OEC,GAAgBH,GAAO,0BAIvBI,GAAkCJ,GAAO,kDAEzCK,GAAmCL,GAAO,SAE1CM,GAA4B,GAAMD,GAAkCD,IAYpEG,GAAiB,GAAMJ,GATN,GAAMC,GAAiCJ,GAAO,oMAK7C,GAAMK,GAAkCL,GAAO,+LAIMM,IAGvEE,GAAYR,GAAO,gEAGnBS,GAAeT,GAAO,UAuBtBU,GAAc,GAAMF,GAAWC,GArBlBT,GAAO,idAOPA,GAAO,6qBAqBpBW,GAA8CX,GAAO,yBAKrDY,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAGI36I,KAAK46I,oBAAAA,EACL56I,KAAK66I,IAAM,GAyHJC,OAnHX,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,SAAiBzlH,GAQb,IAHA,IAAIxT,EAA6BwT,EAAc,WAE3C0lH,GAAAA,EACGl5H,GAWH,GAVIA,EAAQ8T,WAAa+jH,KAAKC,aAC1BoB,EAAkB/6I,KAAKg7I,aAAa,GAE/Bn5H,EAAQ8T,WAAa+jH,KAAKuB,UAC/Bj7I,KAAKk7I,MAAyBr5H,EAAkB,WAIhD7hB,KAAK46I,oBAAAA,EAELG,GAAmBl5H,EAAQ0f,WAC3B1f,EAA6BA,EAAmB,gBAGpD,KAAOA,GAAS,CAERA,EAAQ8T,WAAa+jH,KAAKC,cAC1B35I,KAAKm7I,WAAW,GAGpB,IAAIjzI,EAAOlI,KAAKo7I,sBAAsBv5H,EAA4BA,EAAoB,aACtF,GAAI3Z,EAAM,CACN2Z,EAAU3Z,EACV,MAEJ2Z,EAAU7hB,KAAKo7I,sBAAsBv5H,EAA4BA,EAAmB,YAG5F,OAAO7hB,KAAK66I,IAAIn1I,KAAK,MAWzB,CAAA,IAAA,eAAA,MAAA,SAAazE,GAET,IAAM6M,EAAU7M,EAAQ+9B,SAAStwB,cACjC,IAAK4rI,GAAe/7I,eAAeuP,GAE/B,OADA9N,KAAK46I,oBAAAA,GACGF,GAA4Cn8I,eAAeuP,GAEvE9N,KAAK66I,IAAIn6I,KAAK,KACdV,KAAK66I,IAAIn6I,KAAKoN,GAGd,IADA,IAhLgButI,EAgLV7B,EAAUv4I,EAAQolB,WACf1rB,EAAI,EAAGA,EAAI6+I,EAAQx+I,OAAQL,IAAK,CAErC,IAAM2gJ,EAAS9B,EAAQt2I,KAAKvI,GAEtB02I,EAAW,EAA4BzxI,KAEvCsW,EAAQm7H,EAAS3iI,cACvB,GAAK+rI,GAAYl8I,eAAe2X,GAAhC,CAKA,IAAIzQ,EAAQ,EAA4BA,MAEpC80I,GAAUrkI,KACVzQ,EAAQq0I,GAAar0I,IACrB+0I,GAAatkI,KAjMLmlI,EAkMe51I,EAAvBA,GAjMZ41I,EAAShgJ,OAAOggJ,IACF75I,MAAM,KAAKuT,KAIxBsmI,SAAAA,GAAAA,OAAWvB,GAAauB,EAAOrlI,WAAUtQ,KAAK,OA6LvC1F,KAAK66I,IAAIn6I,KAAK,IAAK2wI,EAAU,KAAMkK,GAAe91I,GAAQ,UAVtDzF,KAAK46I,oBAAAA,EAab,OADA56I,KAAK66I,IAAIn6I,KAAK,MAAA,IAQlB,CAAA,IAAA,aAAA,MAAA,SAAWmhB,GAEP,IAAM/T,EAAU+T,EAAQmd,SAAStwB,cAC7B4rI,GAAe/7I,eAAeuP,KAAaosI,GAAc37I,eAAeuP,KACxE9N,KAAK66I,IAAIn6I,KAAK,MACdV,KAAK66I,IAAIn6I,KAAKoN,GACd9N,KAAK66I,IAAIn6I,KAAK,QAQtB,CAAA,IAAA,QAAA,MAAA,SAAMw6I,GACFl7I,KAAK66I,IAAIn6I,KAAK66I,GAAeL,MAOjC,CAAA,IAAA,wBAAA,MAAA,SAAsB97G,EAAM07G,GACxB,GAAIA,IACC17G,EAAKo8G,wBAAwBV,GAC1BpB,KAAK+B,kCAAoC/B,KAAK+B,+BAClD,MAAM,IAAI51I,MAAJ,6DAAA,OAAuE,EAA4B61I,YAE7G,OAAOZ,MAAAA,EA9HTH,GA4IAgB,GAAwB,kCAGxBC,GAA0B,gBAQhC,SAASL,GAAe91I,GACpB,OAAOA,EAAMoG,QAAQ,KAAM,SACtBA,QAAQ8vI,IAAuB,SAI1B77I,GAKN,MAAO,MAAyB,MAHrBA,EAAMrE,WAAW,GAGN,QADVqE,EAAMrE,WAAW,GACmB,OAAU,OAAW,OAEpEoQ,QAAQ+vI,IAAyB,SAI5B97I,GACN,MAAO,KAAOA,EAAMrE,WAAW,GAAK,OAEnCoQ,QAAQ,KAAM,QACdA,QAAQ,KAAM,QA2DvB,SAASgwI,GAAmBxmH,GACxB,MAAO,YAAa,GAQxB,SAA2BA,GACvB,OAAOA,EAAGM,WAAa+jH,KAAKC,cAAgC,aAAhBtkH,EAAG2J,SADnD,CARuE3J,GAC/DA,EAAGymH,QACH,KAuBR,IAAMC,GAAe,WAAA,IAAA,EAAG,CACpBC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,OAAQ,EACR7xI,IAAK,EACL8xI,aAAc,GANM,OAQxBL,EAAgBA,EAAgBC,MAAQ,OACxCD,EAAgBA,EAAgBE,MAAQ,OACxCF,EAAgBA,EAAgBG,OAAS,QACzCH,EAAgBA,EAAgBI,QAAU,SAC1CJ,EAAgBA,EAAgBzxI,KAAO,MACvCyxI,EAAgBA,EAAgBK,cAAgB,eALhDL,EARqB,GA+CfM,GAAmB,IAAIpmI,OAAO,oMAEhB,KAoBdqmI,GAAS,mBAkCf,SAASC,GAAe92I,GAEpB,KADAA,EAAQpK,OAAOoK,GAAOuQ,QAElB,MAAO,GAIX,IAAMwmI,EAAW/2I,EAAM3F,MAAMw8I,IAC7B,OAAKE,GAAY1C,GAAa0C,EAAS,MAAQA,EAAS,IACpD/2I,EAAM3F,MAAMu8I,KAhCpB,SAA2B52I,GAKvB,IAHA,IAAIg3I,GAAAA,EAEAC,GAAAA,EACK/hJ,EAAI,EAAGA,EAAI8K,EAAMzK,OAAQL,IAAK,CAEnC,IAAMP,EAAIqL,EAAM9J,OAAOhB,GACb,MAANP,GAAcsiJ,EACdD,GAAiBA,EAEN,MAANriJ,GAAaqiJ,IAClBC,GAAiBA,GAGzB,OAAOD,GAAiBC,EAf5B,CAgC2Dj3I,GAC5CA,GAEP6yI,MACA9zI,QAAQyG,KAARzG,0CAAAA,OAAuDiB,EAAvDjB,wCAEG,UAmEX,SAASm4I,GAAgBC,GAErB,IAAMC,EAAYC,KAClB,OAAID,EACOA,EAAUvmC,SAASylC,GAAgBG,MAAOU,IAAgB,GAEjE5E,GAAgC4E,EAAa,SACtC7E,GAAgB6E,GAEpBL,GAAe7J,GAAgBkK,IAkB1C,SAASG,GAAcC,GAEnB,IAAMH,EAAYC,KAClB,OAAID,EACOA,EAAUvmC,SAASylC,GAAgBzxI,IAAK0yI,IAAc,GAE7DhF,GAAgCgF,EAAW,OACpCjF,GAAgBiF,GAEpBlD,GAAapH,GAAgBsK,IA2FxC,IAAMC,GAA0B,SAMtB78H,EAAM3a,EAAOskF,GACnB,QAAA,IAAItkF,QAAAA,IAAuBskF,EAIvB,OAAO4yD,GAAgBv8H,GAI3B,IAAI88H,GAAAA,EAIJ,OAHW,GAHXnzD,EAAOA,GAAQ,KAIXmzD,EAaR,SAAoC98H,GAChC,MAAgB,qBAATA,GAAwC,oBAATA,GAAuC,eAATA,GACvD,iBAATA,GAAoC,gBAATA,GAAmC,wBAATA,GAC5C,sBAATA,GAAyC,WAATA,GAA8B,eAATA,GAC5C,cAATA,GAAiC,qBAATA,GAAwC,mBAATA,GAC9C,cAATA,GAAiC,aAATA,EALhC,CAbqDA,IAEtC,EAAP2pE,EACOmzD,EAAkBP,GAAgBl3I,GAASsyI,GAAgBtyI,GAG3Dy3I,GA2Cf,SAASJ,KAEL,IAAMjS,EAAQuB,KACd,OAAOvB,GAASA,EA9wKF,IAsgLlB,SAASsS,GAAgBxyI,EAAQxO,GAC7BwO,EAA4B,cAAIxO,EAkMpC,SAASihJ,GAA4BpT,GACjC,MAAM,IAAInkI,MAAJ,+CAAA,OAAyDmkI,EAAMl8H,UAKzE,SAASuvI,KACL,MAAM,IAAIx3I,MAAM,oDAu8BpB,SAASy3I,GAAahwI,EAAWiwI,EAAeC,GAI5C,IADA,IAAIziH,EAAMztB,EAAUtS,SACP,CAET,IAAMyiJ,EAAanwI,EAAU1L,QAAQ27I,EAAeC,GACpD,IAAoB,IAAhBC,EACA,OAAOA,EACX,GAAmB,IAAfA,GAAoBnwI,EAAU7R,WAAWgiJ,EAAa,IAAM,GAAgB,CAG5E,IAAMziJ,EAASuiJ,EAAcviJ,OAC7B,GAAIyiJ,EAAaziJ,IAAW+/B,GACxBztB,EAAU7R,WAAWgiJ,EAAaziJ,IAAW,GAE7C,OAAOyiJ,EAIfD,EAAgBC,EAAa,GAsBrC,SAASC,GAAmBx7G,EAAOy7G,EAAiBC,GAShD,IADA,IAAIjjJ,EAAI,EACDA,EAAIunC,EAAMlnC,QAAQ,CAErB,IAAIkI,EAAOg/B,EAAMvnC,KACjB,GAAIijJ,GAA6B,UAAT16I,GAEpB,IAA8D,IAA1Do6I,IADJp6I,EAA0Bg/B,EAAMvnC,IACV+T,cAAeivI,EAAiB,GAClD,OAAA,OAGH,GAAa,IAATz6I,EAA0B,CAE/B,KAAOvI,EAAIunC,EAAMlnC,QAAwC,iBAAtBkI,EAAOg/B,EAAMvnC,OAE5C,GAAIuI,EAAKwL,gBAAkBivI,EACvB,OAAA,EAER,OAAA,GAGR,OAAA,EAQJ,SAASE,GAAiB7T,GACtB,OAAsB,IAAfA,EAAM7+H,MA/CY,gBA+CkB6+H,EAAMl8H,QAiBrD,SAASgwI,GAAmB9T,EAAO+T,EAAiBH,GAKhD,OAAOG,KAHiC,IAAf/T,EAAM7+H,MAA+ByyI,EAE1D5T,EAAMl8H,QApEe,eAgF7B,SAASkwI,GAAuBhU,EAAOlrG,EAAU8+G,GAa7C,IAVA,IAAI7zD,EAAO,EAELk0D,EAAYjU,EAAM9nG,OAAS,GAG3Bg8G,EA0MV,SAAgCD,GAC5B,IAAK,IAAItjJ,EAAI,EAAGA,EAAIsjJ,EAAUjjJ,OAAQL,IAGlC,GAAI82I,GADawM,EAAUtjJ,IAEvB,OAAOA,EAGf,OAAOsjJ,EAAUjjJ,OARrB,CA1MqDijJ,GAI7CE,GAAAA,EACKxjJ,EAAI,EAAGA,EAAImkC,EAAS9jC,OAAQL,IAAK,CAEtC,IAAMknB,EAAUid,EAASnkC,GACzB,GAAuB,iBAAZknB,GAaX,IAAIs8H,EAEJ,GAAW,EAAPp0D,GAEA,GADAA,EAAO,EAA2B,EAAPA,EACX,KAAZloE,IAAmBi8H,GAAmB9T,EAAOnoH,EAAS+7H,IAC1C,KAAZ/7H,GAAsC,IAApBid,EAAS9jC,OAAc,CACzC,GAAIojJ,GAAWr0D,GACX,OAAA,EACJo0D,GAAAA,OAGH,CAED,IAAME,EAA2B,EAAPt0D,EAAuBloE,EAAUid,IAAWnkC,GAGtE,GAAY,EAAPovF,GAAyC,OAAhBigD,EAAM9nG,MAAgB,CAChD,IAAKw7G,GAAmB1T,EAAM9nG,MAAO,EAAwC07G,GAAmB,CAC5F,GAAIQ,GAAWr0D,GACX,OAAA,EACJo0D,GAAAA,EAEJ,SAGJ,IAEMG,EAAkBC,GAFC,EAAPx0D,EAAwB,QAAUloE,EAEEo8H,EAAWJ,GAAiB7T,GAAQ4T,GAC1F,IAAyB,IAArBU,EAAwB,CACxB,GAAIF,GAAWr0D,GACX,OAAA,EACJo0D,GAAAA,EACA,SAEJ,GAA0B,KAAtBE,EAA0B,CAE1B,IAAIG,EAEAA,EADAF,EAAkBJ,EACF,GAQoBD,EAAUK,EAAkB,GAAM5vI,cAG1E,IAAM+vI,EAAiC,EAAP10D,EAAuBy0D,EAAgB,KACvE,GAAIC,IACsF,IAAtFnB,GAAamB,EAAyB,EAAwC,IACvE,EAAP10D,GAA4Bs0D,IAAsBG,EAAe,CACjE,GAAIJ,GAAWr0D,GACX,OAAA,EACJo0D,GAAAA,SApEZ,CAEI,IAAKA,IAAuBC,GAAWr0D,KAAUq0D,GAAWv8H,GACxD,OAAA,EAIJ,GAAIs8H,GAAsBC,GAAWv8H,GACjC,SACJs8H,GAAAA,EACAp0D,EAAO,EAAyC,EAAPA,GA+DjD,OAAOq0D,GAAWr0D,IAASo0D,EAM/B,SAASC,GAAWr0D,GAChB,OAAgC,IAAjB,EAAPA,GAgCZ,SAASw0D,GAAoB3+I,EAAMsiC,EAAO27G,EAAkBD,GACxD,GAAc,OAAV17G,EACA,OAAQ,EAEZ,IAAIvnC,EAAI,EACR,GAAIijJ,IAAqBC,EAAkB,CAGvC,IADA,IAAIa,GAAAA,EACG/jJ,EAAIunC,EAAMlnC,QAAQ,CAErB,IAAM2jJ,EAAgBz8G,EAAMvnC,GAC5B,GAAIgkJ,IAAkB/+I,EAClB,OAAOjF,EAEN,GAAsB,IAAlBgkJ,GAAwD,IAAlBA,EAC3CD,GAAAA,MAEC,CAAA,GAAsB,IAAlBC,GAAuD,IAAlBA,EAAkC,CAK5E,IAHA,IAAIl5I,EAAQy8B,IAAQvnC,GAGI,iBAAV8K,GACVA,EAAQy8B,IAAQvnC,GAEpB,SAEC,GAAsB,IAAlBgkJ,EAEL,MAEC,GAAsB,IAAlBA,EAAwC,CAE7ChkJ,GAAK,EACL,UAGJA,GAAK+jJ,EAAe,EAAI,EAG5B,OAAQ,EAGR,OAsDR,SAAgCx8G,EAAOtiC,GAEnC,IAAIjF,EAAIunC,EAAMtgC,QAAQ,GACtB,GAAIjH,GAAK,EAEL,IADAA,IACOA,EAAIunC,EAAMlnC,QAAQ,CAErB,IAAM+6B,EAAOmM,EAAMvnC,GAGnB,GAAoB,iBAATo7B,EACP,OAAQ,EACZ,GAAIA,IAASn2B,EACT,OAAOjF,EACXA,IAGR,OAAQ,EAjBZ,CAtDsCunC,EAAOtiC,GAS7C,SAASg/I,GAA2B5U,EAAOlrG,GACvC,IADoE,IAAnB8+G,EAAmB,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAC3DjjJ,EAAI,EAAGA,EAAImkC,EAAS9jC,OAAQL,IACjC,GAAIqjJ,GAAuBhU,EAAOlrG,EAASnkC,GAAIijJ,GAC3C,OAAA,EAGR,OAAA,EAgEJ,SAASiB,GAAyB//G,EAAU6lG,GACxCma,EAAkB,IAAK,IAAInkJ,EAAI,EAAGA,EAAIgqI,EAAK3pI,OAAQL,IAAK,CAEpD,IAAMokJ,EAAwBpa,EAAKhqI,GACnC,GAAImkC,EAAS9jC,SAAW+jJ,EAAsB/jJ,OAA9C,CAGA,IAAK,IAAI0G,EAAI,EAAGA,EAAIo9B,EAAS9jC,OAAQ0G,IACjC,GAAIo9B,EAASp9B,KAAOq9I,EAAsBr9I,GACtC,SAASo9I,EAGjB,OAAA,GAEJ,OAAA,EAOJ,SAASE,GAAuBC,EAAgB36G,GAC5C,OAAO26G,EAAiB,QAAU36G,EAAMtuB,OAAS,IAAMsuB,EAM3D,SAAS46G,GAAqBpgH,GAW1B,IATA,IAAIp7B,EAA4Bo7B,EAAS,GAErCnkC,EAAI,EAEJovF,EAAO,EAEPo1D,EAAe,GAEfF,GAAAA,EACGtkJ,EAAImkC,EAAS9jC,QAAQ,CAExB,IAAIokJ,EAAgBtgH,EAASnkC,GAC7B,GAA6B,iBAAlBykJ,EACP,GAAW,EAAPr1D,EAA0B,CAE1B,IAAMs1D,EAA+BvgH,IAAWnkC,GAChDwkJ,GACI,IAAMC,GAAiBC,EAAUrkJ,OAAS,EAAI,KAAOqkJ,EAAY,IAAM,IAAM,SAErE,EAAPt1D,EACLo1D,GAAgB,IAAMC,EAEV,EAAPr1D,IACLo1D,GAAgB,IAAMC,OAqBL,KAAjBD,GAAwBf,GAAWgB,KACnC17I,GAAUs7I,GAAuBC,EAAgBE,GACjDA,EAAe,IAEnBp1D,EAAOq1D,EAGPH,EAAiBA,IAAmBb,GAAWr0D,GAEnDpvF,IAKJ,MAHqB,KAAjBwkJ,IACAz7I,GAAUs7I,GAAuBC,EAAgBE,IAE9Cz7I,EA+EX,IAAM47I,GAA2F,GAajG,SAASC,GAAe1U,GAGpB,IAAMthI,EAASshI,EA1sOJ,GA2sOX,OAAOf,GAAavgI,GAA6BA,EA3sOtC,GA2sOyDA,EAuCxE,SAASi2I,GAAmB3U,GACxB,OAAO4U,GAAqB5U,EA/tOb,KAsuOnB,SAAS6U,GAAkB34G,GACvB,OAAO04G,GAAqB14G,EAzvOnB,IA+vOb,SAAS04G,GAAqB5T,GAC1B,KAA2B,OAApBA,IAA6B/B,GAAa+B,IAC7CA,EAAkBA,EAjwOb,GAmwOT,OAAOA,EAgCX,SAAS8T,GAAU5sD,GAEf6sD,GAAoBvT,KAAYD,KAAY2C,KAAqBh8C,EAAOg6C,MAoB5E,SAAS6S,GAAoBzX,EAAO0C,EAAO5pH,EAAOirH,GAK9C,IAAKA,EAGD,GADgF,IAAhC,EAAfrB,EAp0O3B,IAq0OuB,CAEzB,IAAMwL,EAAqBlO,EAAMkO,mBACN,OAAvBA,GACAxG,GAAkBhF,EAAOwL,EAAoBp1H,OAGhD,CAED,IAAMm1H,EAAgBjO,EAAMiO,cACN,OAAlBA,GACApG,GAAyBnF,EAAOuL,EAAe,EAA4Bn1H,GAQvF+tH,GAAiB/tH,GAufrB,SAAS4+H,GAAgB17I,EAAM+D,GAG3B,OAA2B/D,GAAQ,GAAsB+D,GAAQ,EAMrE,SAAS43I,GAAqBC,GAE1B,OAAQ,GAA6D,GAAuB,MA0BhG,SAASC,GAA8BD,GAEnC,OAAuF,EAA5D,EAM/B,SAASE,GAAqBF,GAE1B,OAAoE,OAA5D,IAAuF,EAOnG,SAASG,GAAqBH,EAAe73I,GAGzC,OAAwF,OAA5D,EACxBA,GAAQ,EAehB,SAASi4I,GAA8BJ,GAEnC,OAAuF,EAA5D,EA00C/B,SAASK,GAAsBjY,EAAO0C,GAElC,IAAMrE,EAAiB2B,EAAM3B,eAC7B,GAAuB,OAAnBA,EACA,IAAK,IAAI7rI,EAAI,EAAGA,EAAI6rI,EAAexrI,OAAQL,GAAK,EAAG,CAE/C,IAAM0lJ,EAAgB7Z,EAAe7rI,GAE/B2lJ,EAAkB9Z,EAAe7rI,EAAI,GAC3C,IAAyB,IAArB2lJ,EAAwB,CAExB,IAAM/Q,EAAkCpH,EAAMhsI,KAAKmkJ,GAGnDvS,GAAqBsS,GACF9Q,EAA4B,eAAE,EAAgB1E,EAAMyV,GAAkBA,KAkCzG,SAASC,GAAc3gJ,EAAMujF,EAAUn9D,GACnC,OAAIskH,GAAqBnnD,GACdA,EAAS34E,cAAc5K,EAAMomB,GAGf,OAAdA,EAAqBm9D,EAAS34E,cAAc5K,GAC/CujF,EAAS7hD,gBAAgBtb,EAAWpmB,GAiBhD,SAAS4gJ,GAAY1M,EAAa3L,EAAOt/H,EAASi7H,EAAOpuG,EAAM+qH,EAAWC,EAAiBv9D,EAAU05D,EAAWpZ,GAE5G,IAAMoH,EAA+E1C,EAAMuL,UAAUp2I,QAkBrG,OAjBAutI,EAnzSS,GAmzSKn1G,EACdm1G,EAhzSU,GAgzSa,IAAR/G,EACf2H,GAAuBZ,GACvBA,EAhzSW,GAgzSKA,EAxxSK,IAwxSqBiJ,EAC1CjJ,EAvySY,GAuySKhiI,EACjBgiI,EApySqB,IAoySyB6V,GAAmB5M,GAAeA,EApyS3D,IAsySrBjJ,EApySa,IAoySyB1nD,GAAY2wD,GAAeA,EApySpD,IAsySbjJ,EApySc,IAoySKgS,GAAa/I,GAAeA,EApySjC,KAoyS2D,KACzEjJ,EA3ySe,GA2yS0BpH,GAAYqQ,GAAeA,EA3ySrD,IA2ySgF,KAC/FjJ,EAlzSW,GAkzSK4V,EAGhB5V,EAjyS+B,IAkySb,GAAd1C,EAAMh9H,KAA2B,EAlySN,IAkySqE0/H,EAE7FA,EAWX,SAAS8V,GAAiBxY,EAAOsY,EAAWx/H,EAAO9V,EAAMvL,EAAMsiC,GAG3D,IAAM0+G,EAAgB3/H,EAvySJ,GAyySZ+oH,EAA2B7B,EAAMhsI,KAAKykJ,IAchD,SAA4BzY,EAAOsY,EAAWG,EAAez1I,EAAMvL,EAAMsiC,GAErE,IAAMwqG,EAAwBD,KAExBG,EAAWC,KAEXtjI,EAASqjI,EAAWF,EAAwBA,GAAyBA,EAAsBnjI,OAQ3FygI,EAAQ7B,EAAMhsI,KAAKykJ,GACrBC,GAAY1Y,EALS5+H,GAAUA,IAAWk3I,EAEP,EAA8B,KAGjCt1I,EAAMy1I,EAAehhJ,EAAMsiC,GAiB/D,OAbyB,OAArBimG,EAAM5mG,aACN4mG,EAAM5mG,WAAayoG,GAEnB0C,KACIE,GAA2C,MAA/BF,EAAsB3iB,OAChB,OAAjBigB,EAAMzgI,QAAkD,IAA/BmjI,EAAsBvhI,KAI1CyhI,IACNF,EAAsBxkI,KAAO8hI,GAH7B0C,EAAsB3iB,MAAQigB,GAM/BA,EAhCX,CAb2B7B,EAAOsY,EAAWG,EAAez1I,EAAMvL,EAAMsiC,GAEpE,OADAyqG,GAAyB3C,GAAAA,GAClB,EAiHX,SAAS8W,GAAW3Y,EAAO0C,EAAOhiI,GAE9BulI,GAAUvD,EAAOA,EA97SN,IA+7SX,IAEI,IAAM9C,EAAYI,EAAMJ,UACN,OAAdA,GACAgZ,GAAmB,EAAgBhZ,EAAWl/H,GAKlD,IAAMm4I,EAAa7Y,EAAMjC,SACN,OAAf8a,GACAC,GAAgB9Y,EAAO0C,EAAOmW,EAAY,EAAgBn4I,GAO1Ds/H,EAAMoL,kBACNpL,EAAMoL,iBAAAA,GAKNpL,EAAM+Y,sBACNd,GAAsBjY,EAAO0C,GAK7B1C,EAAMgZ,mBACNJ,GAAmB,EAAmC5Y,EAAgB,UAAGt/H,GAI7E,IAAMu4I,EAAajZ,EAAMiZ,WACN,OAAfA,GAlOZ,SAA+BC,EAAWD,GACtC,IAAK,IAAIzmJ,EAAI,EAAGA,EAAIymJ,EAAWpmJ,OAAQL,IACnC2mJ,GAAgBD,EAAWD,EAAWzmJ,IAF9C,CAmOkCkwI,EAAOuW,GAGrC,MAAOjiJ,GAMH,MAHIgpI,EAAMoL,kBACNpL,EAAMoZ,qBAAAA,GAEJpiJ,EA9CV,QAiDI0rI,EAx/SM,KAw/SU,EAChBiE,MAiBR,SAAS0S,GAAYrZ,EAAO0C,EAAOmW,EAAYn4I,GAG3C,IAAMi7H,EAAQ+G,EA7gTJ,GA8gTV,GAAsC,MAAzB,IAAR/G,GAAL,CAEAsK,GAAUvD,EAAOA,EAxgTN,IA0gTX,IAAMqB,EAAqBa,KAC3B,IACItB,GAAuBZ,GA/qPpBiB,GAAiBC,OAAOsB,aAgrPXlF,EAAMgF,kBACH,OAAf6T,GACAC,GAAgB9Y,EAAO0C,EAAOmW,EAAY,EAAgBn4I,GAG9D,IAAM44I,EAAmE,IAAhC,EAAR3d,GAGjC,IAAKoI,EACD,GAAIuV,EAAyB,CAEzB,IAAMpL,EAAqBlO,EAAMkO,mBACN,OAAvBA,GACAxG,GAAkBhF,EAAOwL,EAAoB,UAGhD,CAED,IAAMD,EAAgBjO,EAAMiO,cACN,OAAlBA,GACApG,GAAyBnF,EAAOuL,EAAe,EAA4B,MAE/ElG,GAAwBrF,EAAO,GAcvC,GA61CR,SAAyCA,GACrC,IAAK,IAAIc,EAAa6T,GAAmB3U,GAAuB,OAAfc,EAAqBA,EAAa+T,GAAkB/T,GACjG,GAAKA,EAz2UkB,GA82UvB,IAFA,IAAM+V,EAAgC/V,EAl2U1B,GAo2UHhxI,EAAI,EAAGA,EAAI+mJ,EAAW1mJ,OAAQL,IAAK,CAExC,IAAMgnJ,EAAgCD,EAAW/mJ,GAE3CinJ,EAAyCD,EA/5V5C,GAm6V8D,IAAxC,KAApBA,EAr6VH,KAs6VEjW,GAA4BkW,EAAqB,GAMrDD,EA56VE,IA46VmB,MAtBjC,CAr2CwC9W,GAi1CxC,SAA8BA,GAC1B,IAAK,IAAIc,EAAa6T,GAAmB3U,GAAuB,OAAfc,EAAqBA,EAAa+T,GAAkB/T,GACjG,IAAK,IAAIhxI,EAn0Ue,GAm0UcA,EAAIgxI,EAAW3wI,OAAQL,IAAK,CAE9D,IAAMknJ,EAAgBlW,EAAWhxI,GAE3BmnJ,EAAgBD,EA14VpB,GA44VEtW,GAA6BsW,IAC7BL,GAAYM,EAAeD,EAAeC,EAAc5b,SAA6B2b,EA/3VrF,KAs3VhB,CAh1C6BhX,GAEQ,OAAzB1C,EAAM3B,gBACN4Z,GAAsBjY,EAAO0C,IAI5BqB,EACD,GAAIuV,EAAyB,CAEzB,IAAMhS,EAAoBtH,EAAMsH,kBACN,OAAtBA,GACAI,GAAkBhF,EAAO4E,OAG5B,CAED,IAAMD,EAAerH,EAAMqH,aACN,OAAjBA,GACAQ,GAAyBnF,EAAO2E,EAAc,GAElDU,GAAwBrF,EAAO,IA9a/C,SAAuD1C,EAAO0C,GAE1D,IAEI,IAAMkX,EAAsB5Z,EAAM4Z,oBAClC,GAA4B,OAAxBA,EAcA,IAZA,IAAI7U,EAAmB/E,EAAM6Z,kBAEzBvU,GAAyB,EAUpB9yI,EAAI,EAAGA,EAAIonJ,EAAoB/mJ,OAAQL,IAAK,CAEjD,IAAMsnJ,EAAcF,EAAoBpnJ,GACb,iBAAhBsnJ,EACHA,GAAe,GASfjT,GADsB,EAAIiT,GAM1BxU,EADAP,GAlvNW,EAivN+B6U,IAAsBpnJ,IAQhEuyI,GAAoB+U,GAKJ,OAAhBA,IACAzU,GAA8BN,EAAkBO,GAGhDwU,EAAY,EADIpX,EAAM4C,KAS1BA,MA1DhB,QAgEIuB,IAAkB,IAlE1B,CAibsD7G,EAAO0C,GAGrD,IAAMuW,EAAajZ,EAAMiZ,WACN,OAAfA,GAhVZ,SAAgCC,EAAWD,GACvC,IAAK,IAAIzmJ,EAAI,EAAGA,EAAIymJ,EAAWpmJ,OAAQL,IACnCunJ,GAAiBb,EAAWD,EAAWzmJ,IAF/C,CAiVmCkwI,EAAOuW,GAMlC,IAAMrZ,EAAYI,EAAMJ,UAMxB,GALkB,OAAdA,GACAgZ,GAAmB,EAAgBhZ,EAAWl/H,IAI7CqjI,EACD,GAAIuV,EAAyB,CAEzB,IAAM9R,EAAiBxH,EAAMwH,eACN,OAAnBA,GACAE,GAAkBhF,EAAO8E,OAG5B,CAED,IAAMD,EAAYvH,EAAMuH,UACN,OAAdA,GACAM,GAAyBnF,EAAO6E,EAAW,GAE/CQ,GAAwBrF,EAAO,IAAA,IAGnC1C,EAAMga,kBAONha,EAAMga,iBAAAA,GAQLjW,IACDrB,EA5nTE,KA4nTc,IAED,KAAfA,EA9nTE,KA+nTFA,EA/nTE,KA+nTc,KAChBa,GAA+Cb,EA9nT5C,IA8nT8D,IA7GzE,QAiHIiE,OAWR,SAASsT,GAA0Bja,EAAO0C,EAAOmW,EAAYn4I,GAEzD,IAAM63I,EAAkB7V,EAjoTH,IAmoTfwX,GAAuBtV,KAEvBuV,EAAuBhX,GAAeT,GAC5C,IACQwX,IAAwBC,GAAwB5B,EAAgB5lH,OAChE4lH,EAAgB5lH,QAEhBwnH,GACAxB,GAAW3Y,EAAO0C,EAAOhiI,GAE7B24I,GAAYrZ,EAAO0C,EAAOmW,EAAYn4I,GAP1C,QAUQw5I,IAAwBC,GAAwB5B,EAAgB3lH,KAChE2lH,EAAgB3lH,OAa5B,SAASkmH,GAAgB9Y,EAAO0C,EAAOmW,EAAYuB,EAAI15I,GAEnD,IAAM25I,EAAoBzT,KAC1B,IACIC,IAAkB,GACT,EAALuT,GAAuB1X,EAAM7vI,OA5oTnB,IA+oTV4kJ,GAAoBzX,EAAO0C,EAAO,EAAGkC,MAEzCiU,EAAWuB,EAAI15I,GAPnB,QAUImmI,GAAiBwT,IAYzB,SAASC,GAAsBta,EAAO6B,EAAOa,GACzC,GAAId,GAAmBC,GAKnB,IAHA,IAEMjvG,EAAMivG,EAAMsF,aACT6G,EAHKnM,EAAMqF,eAGa8G,EAAiBp7G,EAAKo7G,IAAkB,CAErE,IAAM7V,EAAyB6H,EAAMhsI,KAAKg6I,GACtC7V,EAAIkG,gBACJlG,EAAIkG,eAAe,EAAgBqE,EAAMsL,GAAiBA,IAY1E,SAASuM,GAA0Bva,EAAO0C,EAAOb,GACxCmC,OAiwBT,SAAkChE,EAAO0C,EAAOb,EAAOkH,GAEnD,IAAM5hI,EAAQ06H,EAAMqF,eAEdt0G,EAAMivG,EAAMsF,aACbnH,EAAMoL,iBACPH,GAA+BpJ,EAAOa,GAE1CsS,GAAgBjM,EAAQrG,GAGxB,IADA,IAAM8X,EAAgB3Y,EAAM2Y,cACnBhoJ,EAAI2U,EAAO3U,EAAIogC,EAAKpgC,IAAK,CAE9B,IAAM2lI,EAAyB6H,EAAMhsI,KAAKxB,GAEpCioJ,EAAczY,GAAe7J,GAC/BsiB,GAEAC,GAAkBhY,EAAO,EAA4B,GAGzD,IAAM6F,EAAY6E,GAAkB1K,EAAO1C,EAAOxtI,EAAGqvI,GACrDmT,GAAgBzM,EAAW7F,GACL,OAAlB8X,GACAG,GAAmBjY,EAAOlwI,EAAI2U,EAAOohI,EAAWpQ,EAAK0J,EAAO,GAE5D4Y,IAEsB3X,GAAyBjB,EAAM/oH,MAAO4pH,GA/+UxD,GAg/UqB6F,IA7BrC,CA/vB6BvI,EAAO0C,EAAOb,EAAOc,GAAiBd,EAAOa,IACpB,MAA/B,IAAdb,EAAMlG,QAqyBf,SAAsCqE,EAAO0C,EAAOb,GAEhD,IAAM16H,EAAQ06H,EAAMqF,eAEdt0G,EAAMivG,EAAMsF,aAEZyT,EAA6B5a,EAA0B,oBAEvDoL,EAAkBpL,EAAMoL,gBAExByP,EAAehZ,EAAM/oH,MAz+UT,GA2+UZwsH,EAhoRC3B,GAAiBC,OAAO0B,sBAioR/B,IACIuB,GAAiBgU,GACjB,IAAK,IAAIC,EAAW3zI,EAAO2zI,EAAWloH,EAAKkoH,IAAY,CAEnD,IAAM3iB,EAAyB6H,EAAMhsI,KAAK8mJ,GAEpCvS,EAAY7F,EAAMoY,GACxBvV,GAAyBuV,GACA,OAArB3iB,EAAI+F,cAA0C,IAAjB/F,EAAIgG,UAAoC,OAAlBhG,EAAIiG,UACvD2c,GAAiC5iB,EAAKoQ,GAEjC6C,GACLwP,EAAQriJ,KAAK,OAZzB,QAiBIsuI,IAAkB,GAClBtB,GAAyBD,IA/BjC,CApyBqCtF,EAAO0C,EAAOb,IAWnD,SAASmZ,GAAyBC,EAAUpZ,GAA2Bc,IAApBuY,EAAoBvY,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAAA,GAE7DwY,EAAatZ,EAAMsZ,WACzB,GAAmB,OAAfA,EAGA,IADA,IAAIC,EAAavZ,EAAM/oH,MAAQ,EACtBtmB,EAAI,EAAGA,EAAI2oJ,EAAWtoJ,OAAQL,GAAK,EAAG,CAE3C,IAAMsmB,EAA2BqiI,EAAW3oJ,EAAI,GAE1C8K,GAAmB,IAAXwb,EACVoiI,EAAkB,EAA4BD,GAC9CA,EAASniI,GACbmiI,EAASG,KAAgB99I,GAWrC,SAAS+9I,GAA0BljB,GAE/B,IAAM6H,EAAQ7H,EAAI6H,MAGlB,OAAc,OAAVA,GAAkBA,EAAMoZ,oBACjBjhB,EAAI6H,MAAQsb,GAAY,GAAoB,EAAGnjB,EAAI4F,SAAU5F,EAAI0F,MAAO1F,EAAI2F,KAAM3F,EAAIuH,cAAevH,EAAIwH,SAAUxH,EAAIyH,UAAWzH,EAAI4H,QAAS5H,EAAI6F,QAEvJgC,EAiBX,SAASsb,GAAYt4I,EAAMu4I,EAAW1C,EAAYhb,EAAOC,EAAM0d,EAAYC,EAAO7b,EAAWG,EAAS/B,GAGlG,IAAMgH,EA1vTY,GA0vTwBnH,EAKpC6d,EAAoB1W,EAAoBlH,EAExCyN,EAyEV,SAA6BvG,EAAmB0W,GAG5C,IADA,IAAMnQ,EAA+C,GAC5C/4I,EAAI,EAAGA,EAAIkpJ,EAAmBlpJ,IACnC+4I,EAAUhzI,KAAK/F,EAAIwyI,EAAoB,KAAOmS,IAElD,OAAO,EANX,CAzE0CnS,EAAmB0W,GACzD,OAAOnQ,EA3yTG,GA40TN,CACIvoI,KAAMA,EACNsG,GAAIiyI,EACJhQ,UAAWA,EACXxN,SAAU8a,EACV8C,QAAS,KACT/b,UAAWA,EACX3oG,KAAM,KACNjjC,KAAMu3I,EAAUp2I,QAAQ4iB,KAAK,KAAMitH,GACnCA,kBAAmBA,EACnB6U,kBAAmB6B,EACnB9B,oBAAqB,KACrBxO,iBAAAA,EACA4O,iBAAAA,EACAhB,mBAAAA,EACAD,sBAAAA,EACA9K,cAAe,KACfC,mBAAoB,KACpB7G,aAAc,KACdC,kBAAmB,KACnBC,UAAW,KACXC,eAAgB,KAChBC,aAAc,KACdj8B,QAAS,KACT6yB,eAAgB,KAChB4a,WAAY,KACZ2C,kBAAyC,mBAAfJ,EAA4BA,IAAeA,EACrEK,aAA+B,mBAAVJ,EAAuBA,IAAUA,EACtDriH,WAAY,KACZ2mG,QAASA,EACT/B,OAAQA,EACRob,qBAAAA,GAmHZ,SAASV,GAAY1Y,EAAO8b,EAAS94I,EAAMy1I,EAAe9yI,EAASo0B,GAI/D,MA6BI,CACI/2B,KAAMA,EACN8V,MAAO2/H,EACPpN,cAjCYyQ,EAAUA,EAAQzQ,eAAiB,EAkC/CnE,gBAAiB,EACjBC,cAAe,EACf4U,sBAAuB,EACvBC,iBAAkB,KAClBrgB,MAAO,EACP6R,gBAAiB,EACjB7nI,QAASA,EACTo0B,MAAOA,EACP+B,YAAa,KACbq/G,WAAY,KACZX,mBAAAA,EACAlc,OAAQ,KACRC,QAAS,KACT0d,OAAQ,KACRl8I,KAAM,KACNm8I,eAAgB,KAChBt6B,MAAO,KACPxgH,OAAQ06I,EACRK,WAAY,KACZ3vH,OAAQ,KACR4vH,kBAAmB,KACnBC,oBAAAA,EACA31I,QAAS,KACT41I,mBAAoB,KACpBC,qBAAAA,EACAC,cAAe,EACfC,cAAe,GAS3B,SAASC,GAAwBC,EAAexE,EAAiByE,GAC7D,IAAK,IAAI5b,KAAc2b,EACnB,GAAIA,EAAcvmJ,eAAe4qI,GAAa,CAG1C,IAAM6b,EAAeF,EAAc3b,IAFnC4b,EAA0B,OAAdA,EAAqB,GAAKA,GAGxBxmJ,eAAe4qI,GACzB4b,EAAU5b,GAAYzoI,KAAK4/I,EAAiB0E,GAG3CD,EAAU5b,GAAc,CAACmX,EAAiB0E,GAIvD,OAAOD,EA6FX,SAASE,GAAwB9c,EAAO6B,EAAOa,EAAOlM,EAAUl5H,EAAO09E,EAAU05D,EAAWqI,GAGxF,IAIIC,EAlCavlJ,EA8BXqB,EAA6B6pI,GAAiBd,EAAOa,GAEvD7Y,EAAYgY,EAAMvD,QAGjBye,GAA2B,MAAblzB,IAAsBmzB,EAAYnzB,EAAU2M,KAC3DymB,GAAqBjd,EAAO0C,EAAOsa,EAAWxmB,EAAUl5H,GACpDwkI,GAAgBD,IA0C5B,SAA2Ba,EAAO6Y,GAG9B,IAAM2B,EAAsBpa,GAAyByY,EAAW7Y,GAC7B,GAA7Bwa,EAvsUI,KAwsUNA,EAxsUM,IAwsUwB,IALtC,CAzC8Bxa,EAAOb,EAAM/oH,QAKf,IAAf+oH,EAAM7+H,OACXwzH,EA3CS,WADI/+H,EA4CU++H,GA1ChB,YACE,QAAT/+H,EACO,UACE,eAATA,EACO,aACE,cAATA,EACO,YACE,aAATA,EACO,WACE,aAATA,EACO,WACJA,EA2CH6F,EAAqB,MAAbo3I,EAAwCA,EAAUp3I,EAAOukI,EAAMl8H,SAAW,GAAI6wH,GAAel5H,EACjG6kI,GAAqBnnD,GACrBA,EAASquD,YAAY,EAA8B7S,EAAUl5H,GAEvD8rI,GAAgB5S,KACtB,EAA+B6S,YAAc,EAA+BA,YAAY7S,EAAUl5H,GAC9F,EAA+Bk5H,GAAYl5H,IA8K3D,SAAS6/I,GAAkBnd,EAAO0C,EAAOb,EAAOub,GAK5C,IAAIC,GAAAA,EACJ,GAAIrZ,KAAsB,CAEtB,IAAMtE,EA6Od,SAAiCM,EAAOib,EAAUpZ,GAK9C,IAAMyb,EAAWtd,EAAM4b,kBAEnB2B,EAAU,KACd,GAAID,EACA,IAAK,IAAI9qJ,EAAI,EAAGA,EAAI8qJ,EAASzqJ,OAAQL,IAAK,CAEtC,IAAM2lI,EAAyBmlB,EAAS9qJ,GACpCikJ,GAA2B5U,EAA0B1J,EAAc,WAAA,KACnEolB,IAAYA,EAA2C,IACvDxR,GAAmBd,GAA+BpJ,EAAOoZ,GAAWjb,EAAO7H,EAAIn1H,MAC3Eg/H,GAAe7J,IACG,EAAd0J,EAAMlG,OACNsZ,GAA4BpT,GAChC2b,GAAoBxd,EAAO6B,GAE3B0b,EAAQ5iJ,QAAQw9H,IAGhBolB,EAAQhlJ,KAAK4/H,IAK7B,OAAOolB,EA5BX,CA7OsDvd,EAAO0C,EAAOb,GAEtD4b,EAA2B,OAAdL,EAAqB,KAAO,CAAE,IAAK,GACtD,GAAsB,OAAlB1d,EAAwB,CAExB,IAAIge,EAAyB,EAC7BL,GAAAA,EACAM,GAAe9b,EAAO7B,EAAMhsI,KAAKnB,OAAQ6sI,EAAc7sI,QAOvD,IAAK,IAAIL,EAAI,EAAGA,EAAIktI,EAAc7sI,OAAQL,IAAK,CAE3C,IAAM2lI,EAAMuH,EAAcltI,GACtB2lI,EAAIyF,mBACJzF,EAAIyF,kBAAkBzF,GAE9BylB,GAAgC5d,EAAO6B,EAAOnC,EAAc7sI,QAK5D,IAHA,IAAIgrJ,GAAAA,EAEAC,GAAAA,EACKtrJ,EAAI,EAAGA,EAAIktI,EAAc7sI,OAAQL,IAAK,CAE3C,IAAM2lI,EAAMuH,EAAcltI,GAG1BqvI,EAAM/lG,YAAc0tG,GAAe3H,EAAM/lG,YAAaq8F,EAAIiG,WAC1D2f,GAAqB/d,EAAO0C,EAAOvK,GACnC6lB,GAAuChe,EAAW,KAAEntI,OAAS,EAAGslI,EAAKslB,GAC1C,OAAvBtlB,EAAIkG,iBACJwD,EAAMlG,OAAS,GACM,OAArBxD,EAAI+F,cAA2C,OAAlB/F,EAAIiG,WAAuC,IAAjBjG,EAAIgG,WAC3D0D,EAAMlG,OAAS,MAGdkiB,IAAuB1lB,EAAIsG,WAAatG,EAAIuG,QAAUvG,EAAIyG,YAI1DoB,EAAMiO,gBAAkBjO,EAAMiO,cAAgB,KAAK11I,KAAKspI,EAAM/oH,MA52U7D,IA62UF+kI,GAAAA,GAECC,IAA4B3lB,EAAIsG,YAAatG,EAAIyG,WACjDoB,EAAMkO,qBAAuBlO,EAAMkO,mBAAqB,KACpD31I,KAAKspI,EAAM/oH,MAj3Ud,IAk3UFglI,GAAAA,GAEJG,GAAqCje,EAAO7H,GAC5CulB,GAA0BvlB,EAAIgG,UAjW9C,SAAyC6B,EAAO6B,GAgB5C,IAbA,IAEMjvG,EAAMivG,EAAMsF,aAEZ+W,EAAOle,EAAMhsI,KAEbmqJ,EAAatc,EAAM9nG,MAEnBqkH,EAAyD,GAE3DC,EAAc,KAEdC,EAAe,KACV9rJ,EAbKqvI,EAAMqF,eAaA10I,EAAIogC,EAAKpgC,IAAK,CAE9B,IAAM40I,EAAkC8W,EAAK1rJ,GAEvC+rJ,EAAkBnX,EAAa9I,OAM/Bkc,EAAgC,OAAf2D,GAAwBzI,GAAiB7T,GAE5D,KADA2c,GAAsBD,EAAiBJ,GAE3CC,EAAgB7lJ,KAAKiiJ,GACrB6D,EAAc3B,GAAwB6B,EAAiB/rJ,EAAG6rJ,GAC1DC,EAAe5B,GAAwBtV,EAAa7I,QAAS/rI,EAAG8rJ,GAEhD,OAAhBD,IACIA,EAAYjoJ,eAAe,WAC3ByrI,EAAMlG,OAAS,IAEf0iB,EAAYjoJ,eAAe,WAC3ByrI,EAAMlG,OAAS,KAGvBkG,EAAM2Y,cAAgB4D,EACtBvc,EAAMvD,OAAS+f,EACfxc,EAAMtD,QAAU+f,EA3CpB,CAmW4Cte,EAAO6B,GACvC4c,GAAkBze,EAAO0C,EAAOgb,GAEhCD,GAuOZ,SAAiC5b,EAAOub,EAAWK,GAC/C,GAAIL,EAMA,IAJA,IAAMjC,EAAatZ,EAAMsZ,WAAiD,GAIjE3oJ,EAAI,EAAGA,EAAI4qJ,EAAUvqJ,OAAQL,GAAK,EAAG,CAE1C,IAAMsmB,EAAQ2kI,EAAWL,EAAU5qJ,EAAI,IACvC,GAAa,MAATsmB,EACA,MAAM,IAAIpb,MAAJ,mBAAA,OAA6B0/I,EAAU5qJ,EAAI,GAA3C,iBACV2oJ,EAAW5iJ,KAAK6kJ,EAAU5qJ,GAAIsmB,IAZ1C,CAtOoC+oH,EAAOub,EAAWK,GAIlD,OADA5b,EAAM/lG,YAAc0tG,GAAe3H,EAAM/lG,YAAa+lG,EAAM9nG,OACrDsjH,EASX,SAASY,GAAqCje,EAAO7H,GAGjD,IAAMyiB,EAA6B5a,EAA0B,oBAS7D4a,EAAQriJ,KAAK4/H,EAAI+F,cAGA,IADA/F,EAAIgG,UAEjByc,EAAQriJ,KAAK4/H,EAAIgG,UAezB,SAASsgB,GAAkBze,EAAO0C,EAAO3W,GAGrC,IAAK,IAAIv5H,EAAI,EAAGA,EAAIu5H,EAAOv5H,IACvBkwI,EAAMnqI,KAAK4+I,IACXnX,EAAMuL,UAAUhzI,KAAK4+I,IACrBnX,EAAMhsI,KAAKuE,KAAK,MA2FxB,SAASwiJ,GAAiC5iB,EAAKoQ,GAClB,OAArBpQ,EAAI+F,cACe/F,EAAiB,aAAE,EAAgBoQ,GAa9D,SAASqV,GAAgC5d,EAAO6B,EAAO6c,GAOnD,IAAM7D,EA9hVY,GA8hVmBhZ,EAAM/oH,MAIrC6lI,EAAgB3e,EAAMhsI,KAAKnB,QAFkB,MAAxBgvI,EAAM2L,kBAGhCxN,EAAM4Z,sBAAwB5Z,EAAM4Z,oBAAsB,KACtDrhJ,KAAKsiJ,EAAc8D,EAAeD,GAgD3C,SAASlB,GAAoBxd,EAAO8L,GAEhCA,EAAUnQ,OAAS,GAClBqE,EAAMiZ,aAAejZ,EAAMiZ,WAAiD,KACxE1gJ,KAAKuzI,EAAUhzH,OAiCxB,SAASklI,GAAoBllI,EAAOq/G,EAAKslB,GACrC,GAAIA,EAAY,CACZ,GAAItlB,EAAIqG,SACJ,IAAK,IAAIhsI,EAAI,EAAGA,EAAI2lI,EAAIqG,SAAS3rI,OAAQL,IACrCirJ,EAAWtlB,EAAIqG,SAAShsI,IAAMsmB,EAGlCkpH,GAAe7J,KACfslB,EAAW,IAAM3kI,IAW7B,SAAS6kI,GAAe9b,EAAO/oH,EAAO8lI,GAGlC/c,EAAMlG,OAAS,EAEfkG,EAAMqF,eAAiBpuH,EACvB+oH,EAAMsF,aAAeruH,EAAQ8lI,EAC7B/c,EAAM2L,gBAAkB10H,EAS5B,SAASilI,GAAqB/d,EAAOib,EAAU9iB,GAC3C6H,EAAMhsI,KAAKuE,KAAK4/H,GAEhB,IAAM0mB,EAAmB1mB,EAAIhrH,UAAY,EAA2BA,QAAUm0H,GAAcnJ,EAAIn1H,OAE1F87I,EAAsB,IAAItW,GAAoBqW,EAAkB7c,GAAe7J,GAAM,MAC3F6H,EAAMuL,UAAUhzI,KAAKumJ,GACrB7D,EAAS1iJ,KAAKumJ,GASlB,SAASpE,GAAkBhY,EAAOoJ,EAAW3T,GAEzC,IAAM4Q,EAA4BpG,GAAiBmJ,EAAWpJ,GAExD1C,EAAQqb,GAA0BljB,GAIlCogB,EAAkB7V,EA3sVH,IA6sVfqc,EAAgBC,GAActc,EAAO2V,GAAY3V,EAAO1C,EAAO,KAAM7H,EAAIqH,OAAS,GAAiB,GAAsBuJ,EAAQ,EAAgCwP,EAAiBA,EAAgBlW,eAAe0G,EAAQ5Q,KAG/NuK,EAAMoJ,EAAUhzH,OAASimI,EAgD7B,SAASpE,GAAmBjY,EAAOsL,EAAgB3/F,EAAU8pF,EAAK0J,EAAOod,GAErE,IAAMzE,EAAgB,EAAsCxM,GAC5D,GAAsB,OAAlBwM,EAGA,IADA,IAAM1a,EAAW3H,EAAI2H,SACZttI,EAAI,EAAGA,EAAIgoJ,EAAc3nJ,QAAS,CAEvC,IAAMmuI,EAAawZ,EAAchoJ,KAE3B0sJ,EAAc1E,EAAchoJ,KAE5B8K,EAAQk9I,EAAchoJ,KACX,OAAbstI,EACmB3H,EAAa,SAAE9pF,EAAU/wC,EAAO0jI,EAAYke,GAG/D,EAAgCA,GAAe5hJ,GAyB/D,SAASkhJ,GAAsBlgB,EAAQvkG,GAKnC,IAHA,IAAIolH,EAAgB,KAEhB3sJ,EAAI,EACDA,EAAIunC,EAAMlnC,QAAQ,CAErB,IAAMq2I,EAAWnvG,EAAMvnC,GACvB,GAAiB,IAAb02I,EAKC,GAAiB,IAAbA,EAAJ,CAML,GAAwB,iBAAbA,EACP,MACA5K,EAAOloI,eAAe,KACA,OAAlB+oJ,IACAA,EAAgB,IACpBA,EAAc5mJ,KAAK,EAA+B+lI,EAAO,GAAmDvkG,EAAMvnC,EAAI,KAE1HA,GAAK,OAXDA,GAAK,OALLA,GAAK,EAkBb,OAAO2sJ,EAkBX,SAASC,GAAiBC,EAAYrX,EAAae,EAAQlH,GAkBvD,OAbmB,IAAmCvjI,MAAO+gJ,GAAAA,GAC7D,EAEArX,EACA,KACA,EACAnG,EACAkH,EACA,KACA,MAkEJ,SAASgR,GAAiBb,EAAWoG,GAGjC,IAAMP,EAAgBjc,GAAyBwc,EAAkBpG,GAEjE,GAAI9V,GAA6B2b,GAAgB,CAE7C,IAAM/e,EAAQ+e,EAj8VR,GAk8VqB,GAAvBA,EAh8VE,GAi8VF1F,GAAYrZ,EAAO+e,EAAe/e,EAAMjC,SAAUghB,EAr7V9C,IAu7VCA,EA77VqB,GA67V0B,GAahE,SAASQ,EAAyB7c,GAC9B,IAAK,IAAIc,EAAa6T,GAAmB3U,GAAuB,OAAfc,EAAqBA,EAAa+T,GAAkB/T,GACjG,IAAK,IAAIhxI,EAj5Ue,GAi5UcA,EAAIgxI,EAAW3wI,OAAQL,IAAK,CAE9D,IAAMknJ,EAAgBlW,EAAWhxI,GACjC,GAA2B,KAAvBknJ,EAr9VF,GAq9V6D,CAE3D,IAAMC,EAAgBD,EAz9VxB,GA29VEL,GAAYM,EAAeD,EAAeC,EAAc5b,SAA6B2b,EA78VrF,SA+8VKA,EAr9ViB,GAq9V8B,GACpD6F,EAAyB7F,GAKrC,IAGMT,EAHQvW,EAn+VJ,GAs+VeuW,WACzB,GAAmB,OAAfA,EACA,IAAK,IAAIzmJ,EAAI,EAAGA,EAAIymJ,EAAWpmJ,OAAQL,IAAK,CAExC,IAAMusJ,EAAgBjc,GAAyBmW,EAAWzmJ,GAAIkwI,GAE1DU,GAA6B2b,IAC7BA,EAr+VsB,GAq+VyB,GAC/CQ,EAAyBR,IA5BzC,CAXqCA,IAiDrC,SAAS5F,GAAgBD,EAAWoG,GAGhC,IAAMP,EAAgBjc,GAAyBwc,EAAkBpG,GAE3DsG,EAAiBT,EA7/Vb,IA6hWd,SAA+B/e,EAAO0C,GAClC,IAAK,IAAIlwI,EAAIkwI,EAAM7vI,OAAQL,EAAIwtI,EAAMuL,UAAU14I,OAAQL,IACnDkwI,EAAMnqI,KAAKynI,EAAMuL,UAAU/4I,IAFnC,CA/B0BgtJ,EAAgBT,GACtCpG,GAAW6G,EAAgBT,EAAeA,EAj/V9B,IA+hWhB,SAASC,GAActc,EAAO+c,GAY1B,OAPI/c,EA1hWW,IA2hWQA,EAzhWR,IApBN,GA6iW0C+c,EAG/C/c,EA9hWW,IA8hWS+c,EAExB/c,EA9hWe,IA8hWK+c,EACbA,EAgBX,SAASC,GAAchd,GACnB,KAAOA,GAAO,CACVA,EAzkWM,IAykWU,GAEhB,IAAMthI,EAASg2I,GAAe1U,GAE9B,GAAIT,GAAWS,KAAWthI,EACtB,OAAOshI,EAGXA,EAAQ,EAEZ,OAAO,KAuEX,SAASid,GAAsB3f,EAAO0C,EAAOhiI,GAEzC,IAAM63I,EAAkB7V,EA5oWH,IA6oWjB6V,EAAgB5lH,OAChB4lH,EAAgB5lH,QACpB,IACI0mH,GAAYrZ,EAAO0C,EAAO1C,EAAMjC,SAAUr9H,GAE9C,MAAO1J,GAEH,MADA4oJ,GAAYld,EAAO1rI,GACbA,EALV,QAQQuhJ,EAAgB3lH,KAChB2lH,EAAgB3lH,OAS5B,SAASitH,GAAwBnd,IAzCjC,SAAyBod,GACrB,IAAK,IAAIttJ,EAAI,EAAGA,EAAIstJ,EAAY7G,WAAWpmJ,OAAQL,IAAK,CAEpD,IAAMutJ,EAAgBD,EAAY7G,WAAWzmJ,GAEvCkwI,EAA2BQ,GAAiB6c,GAE5C/f,EAAQ0C,EAjpWR,GAkpWNuX,GAA0Bja,EAAO0C,EAAO1C,EAAMjC,SAAUgiB,IARhE,CA0CuCrd,EAtqWvB,IAktWhB,SAASkW,GAAmBjd,EAAOqkB,EAAaC,GAE5Cra,GAAqB,GACrBoa,EAAYrkB,EAAOskB,GA+CvB,IAAMC,GAroEA94I,QAAQwJ,QAAQ,MA0oEtB,SAASuvI,GAAYtd,GAEjB,OAAOA,EA7wWK,KA6wWaA,EA7wWb,GA6wW0D,IAM1E,SAASud,GAAgBpgB,GACrB,OAAOA,EAAMx0B,UAAYw0B,EAAMx0B,QAAuC,IAU1E,SAAS60C,GAAsBC,EAAYze,EAAOa,GAU9C,OAHmB,OAAf4d,GAAuBte,GAAese,MACtC5d,EA3+TR,SAAqBplI,GACjB,KAAOgB,MAAMqQ,QAAQrR,IAAQ,CAGzB,GAA2B,iBAAhBA,EApyBN,GAqyBD,OAAO,EACXA,EAA2BA,EA/0CtB,GAi1CT,OAAO,KARX,CA2+T+ColI,EAAMb,EAAM/oH,SAEhD4pH,EAhyWM,IAwyWjB,SAASkd,GAAYld,EAAO1rI,GAExB,IAAMskI,EAAWoH,EA9yWF,GAgzWT6d,EAAejlB,EAAWA,EAAS5gH,IAAIq0H,GAAc,MAAQ,KACnEwR,GAAgBA,EAAaX,YAAY5oJ,GAa7C,SAASimJ,GAAqBjd,EAAO0C,EAAOpE,EAAQ0C,EAAY1jI,GAC5D,IAAK,IAAI9K,EAAI,EAAGA,EAAI8rI,EAAOzrI,QAAS,CAEhC,IAAMimB,EAA2BwlH,EAAO9rI,KAElC0sJ,EAAiC5gB,EAAO9rI,KAExC67C,EAAWq0F,EAAM5pH,GAGjBq/G,EAAyB6H,EAAMhsI,KAAK8kB,GACrB,OAAjBq/G,EAAI2H,SACe3H,EAAa,SAAE9pF,EAAU/wC,EAAO0jI,EAAYke,GAG/D7wG,EAAS6wG,GAAe5hJ,GAWpC,SAASkjJ,GAAoB9d,EAAO5pH,EAAOxb,GAIvC,IAAMxE,EAAgD2pI,GAAiB3pH,EAAO4pH,GAIxE1nD,EAAW0nD,EA51WJ,IA61WbP,GAAqBnnD,GAAYA,EAASylE,SAAS3nJ,EAASwE,GAASxE,EAAQ2jC,YAAcn/B,EAe/F,SAASojJ,GAAc7e,EAAO8e,GAG1B,IAAM/hH,EAA+B+hH,EA/3W1B,GAg4WX,OAAqB,IAAjB9e,EAAM/oH,MAGC6oH,GAAa/iG,GAAaA,EAAY,KAKtCA,EAUf,SAASgiH,GAAyBC,EAAWhe,GAEzC,IAAMjkG,EAAY8hH,GAAcG,EAAWhe,GAC3C,OAAOjkG,EAAYkiH,GAAiBje,EAr4WvB,IAq4WuCjkG,EAl2VzC,IAk2V8D,KA0B7E,SAASmiH,GAA0B94F,EAAQ+yB,EAAU55E,EAAQ4/I,EAAeC,GAKxE,GAAqB,MAAjBD,EAAuB,CAEvB,IAAIxd,EAEAiX,GAAAA,EAIA9Y,GAAaqf,GACbxd,EAAawd,EAERtf,GAAQsf,KACbvG,GAAAA,EAEAuG,EAAmCA,EAx8WlC,IA28WL,IAAME,EAAQ1e,GAAYwe,GAEX,IAAX/4F,GAAwC,OAAX7mD,EACX,MAAd6/I,EACAE,GAAkBnmE,EAAU55E,EAAQ8/I,GAGpCE,GAAmBpmE,EAAU55E,EAAQ8/I,EAAOD,GAAc,MAG9C,IAAXh5F,GAAwC,OAAX7mD,EAClCggJ,GAAmBpmE,EAAU55E,EAAQ8/I,EAAOD,GAAc,MAE1C,IAAXh5F,EAiuBjB,SAA0B+yB,EAAUkmE,EAAOG,GAEvC,IAAMC,EAAeR,GAAiB9lE,EAAUkmE,GAC5CI,GAxKR,SAA2BtmE,EAAU55E,EAAQwgH,EAAOy/B,GAC5Clf,GAAqBnnD,GACrBA,EAAS/1E,YAAY7D,EAAQwgH,EAAOy/B,GAGpCjgJ,EAAO6D,YAAY28G,GAL3B,CAyK0B5mC,EAAUsmE,EAAcJ,EAAOG,GAJzD,CAhuB6BrmE,EAAUkmE,EAAOzG,GAElB,IAAXxyF,GAEc,EAA4C,YAAEi5F,GAEnD,MAAd1d,GA03BZ,SAAwBxoD,EAAU/yB,EAAQu7E,EAAY+d,EAAcN,GAGhE,IAAMO,EAAShe,EAnyXJ,GA6yXPge,IAPWhf,GAAYgB,IAYvBud,GAA0B94F,EAAQ+yB,EAAUumE,EAAcC,EAAQP,GAEtE,IAAK,IAAIzuJ,EAxyXmB,GAwyXUA,EAAIgxI,EAAW3wI,OAAQL,IAAK,CAE9D,IAAMkwI,EAA2Bc,EAAWhxI,GAC5CivJ,GAAU/e,EA92YJ,GA82YkBA,EAAO1nD,EAAU/yB,EAAQs5F,EAAcC,IAvBvE,CAz3B2BxmE,EAAU/yB,EAAQu7E,EAAYpiI,EAAQ6/I,IAsBjE,SAASS,GAA2B1hB,EAAO0C,EAAOif,EAAYV,GAE1D,IAAMM,EAAeX,GAA4C5gB,EAAW,KAAG0C,GAE3E6e,GAKAE,GAAUzhB,EAAO0C,EAHAA,EAt+WR,IAw+WMif,EAAa,EAAiB,EACHJ,EAAcN,GAwJhE,SAASW,GAAgBC,EAAsBnf,GAK3C,IAAM6W,EAAgCsI,EA/lWtB,GAimWVC,EAAuBvI,EAAW9/I,QAAQipI,GAO7B,KAAfA,EAjqXM,IAkqXNa,GAN2Cb,EA1pXpC,IAgqX2C,GAEtD6W,EAAW9gJ,OAAOqpJ,EAAsB,GAY5C,SAASC,GAAWve,EAAYwe,GAC5B,KAAIxe,EAAW3wI,QAhnWa,IAgnW5B,CAGA,IAAMovJ,EAnnWsB,GAmnWuBD,EAE7CE,EAAe1e,EAAWye,GAChC,GAAIC,EAAc,CAEd,IAAMC,EAAwBD,EA3pXP,IA4pXO,OAA1BC,GAAkCA,IAA0B3e,GAC5Doe,GAAgBO,EAAuBD,GAEvCF,EAAc,IACdxe,EAAWye,EAAmB,GA1rX7B,GA0rX2DC,EA1rX3D,IA6rXL,IAAME,EAAe7mI,GAAgBioH,EAhoWb,GAgoWmDwe,GAC3EN,GAA2BQ,EApsXrB,GAosX0CA,GAAAA,EAAqB,MAGrE,IAAMG,EAAWD,EAnqXT,IAoqXS,OAAbC,GACAA,EAASN,WAAWK,EAzsXlB,IA2sXNF,EAvsXO,GAusXgB,KACvBA,EAtsXK,GAssXgB,KAErBA,EA5sXM,KA4sXiB,IAE3B,OAAOA,GAsBX,SAASI,GAAatiB,EAAO0C,GACzB,KAAqB,IAAfA,EAruXI,IAquXiC,CAEvC,IAAM1nD,EAAW0nD,EArtXR,IAstXLP,GAAqBnnD,IAAaA,EAASunE,aAC3Cd,GAAUzhB,EAAO0C,EAAO1nD,EAAU,EAAiB,KAAM,MAnNrE,SAAyBwnE,GAGrB,IAAI/C,EAAoB+C,EAngXT,IAogXf,IAAK/C,EACD,OAAOgD,GAAYD,EA7hXb,GA6hX8BA,GAExC,KAAO/C,GAAmB,CAEtB,IAAI1/I,EAAO,KACX,GAAI2hI,GAAQ+d,GAER1/I,EAAO0/I,EA5gXA,QA8gXN,CAID,IAAMiD,EAAYjD,EAv+VE,IAw+VhBiD,IACA3iJ,EAAO2iJ,GAEf,IAAK3iJ,EAAM,CAGP,KAAO0/I,IAAsB,EA3iX5B,IA2iX4EA,IAAsB+C,GAC/F9gB,GAAQ+d,IAAsBgD,GAAYhD,EAljX5C,GAkjXsEA,GACpEA,EAAoBkD,GAAelD,EAAmB+C,GAEhC,OAAtB/C,IACAA,EAAoB+C,GACxB9gB,GAAQ+d,IAAsBgD,GAAYhD,EAvjXxC,GAujXkEA,GACpE1/I,EAAO0/I,GAAqB,EAljX3B,GAojXLA,EAAoB1/I,GAlC5B,CAqNwB2iI,IAexB,SAASigB,GAAelD,EAAmB+C,GAEvC,IAAI3gB,EACJ,OAAIH,GAAQ+d,KAAuB5d,EAAQ4d,EArvXhC,KAsvXQ,IAAf5d,EAAM7+H,KAGC09I,GAAc,EAA4BjB,GAI1CA,EAnwXA,KAmwX8B+C,EAAW,KAAO/C,EAnwXhD,GA+wXf,SAASgD,GAAYziB,EAAO0C,GACxB,KAAqB,IAAfA,EAlxXI,IAkxXiC,CAGvCA,EArxXM,KAqxXU,IAMhBA,EA3xXM,IA2xXU,IAqFxB,SAA2B1C,EAAO0C,GAE9B,IAAI+E,EACJ,GAAa,MAATzH,GAAwD,OAAtCyH,EAAezH,EAAMyH,cACvC,IAAK,IAAIj1I,EAAI,EAAGA,EAAIi1I,EAAa50I,OAAQL,GAAK,EAAG,CAE7C,IAAMkO,EAAUgiI,EAAyB+E,EAAaj1I,IAEtD,KAAMkO,aAAmB8nI,IAAsB,CAE3C,IAAMoa,EAA4Bnb,EAAaj1I,EAAI,GACnD,GAAI8L,MAAMqQ,QAAQi0I,GACd,IAAK,IAAIrpJ,EAAI,EAAGA,EAAIqpJ,EAAO/vJ,OAAQ0G,GAAK,EAChBqpJ,EAAOrpJ,EAAI,GAAMjD,KAAKoK,EAA2BkiJ,EAAOrpJ,UAIhFqpJ,EAAOtsJ,KAAKoK,KAjBhC,CApF0Bs/H,EAAO0C,GAiCjC,SAAyB1C,EAAO0C,GAE5B,IAAMmgB,EAAW7iB,EAAMx0B,QACvB,GAAiB,OAAbq3C,EAAmB,CAGnB,IADA,IAAMC,EAA8BpgB,EAxzX5B,GAyzXClwI,EAAI,EAAGA,EAAIqwJ,EAAShwJ,OAAS,EAAGL,GAAK,EAC1C,GAA2B,iBAAhBqwJ,EAASrwJ,GAAiB,CAGjC,IAAMuwJ,EAAoBF,EAASrwJ,EAAI,GAEjCgQ,EAAsC,mBAAtBugJ,EAClBA,EAAkBrgB,GAClBF,GAAYE,EAAMqgB,IAEhBC,EAAWF,EAASD,EAASrwJ,EAAI,IAEjCywJ,EAAqBJ,EAASrwJ,EAAI,GACN,kBAAvBywJ,EAEPzgJ,EAAOgpB,oBAAoBq3H,EAASrwJ,GAAIwwJ,EAAUC,GAG9CA,GAAsB,EAEtBH,EAASG,KAITH,GAAUG,GAAoBzqJ,cAGtChG,GAAK,OAMLqwJ,EAASrwJ,GAAG8D,KADIwsJ,EAASD,EAASrwJ,EAAI,KAI9CkwI,EA71XQ,GA61XS,MA1CzB,CAhCwB1C,EAAO0C,GAEvB,IAAMoJ,EAAYpJ,EAvxXX,GAyxXHoJ,GAAgC,IAAnBA,EAAU9oI,MACvBm/H,GAAqBO,EAhxXhB,MAkxXeA,EAlxXf,IAkxXkC1wD,UAG3C,IAAM6vE,EAAuBnf,EAzwXN,IA2wXvB,GAA6B,OAAzBmf,GAAiClgB,GAAae,EAvyX3C,IAuyX2D,CAE1Dmf,IAAyBnf,EAzyX1B,IA0yXCkf,GAAgBC,EAAsBnf,GAI1C,IAAM2f,EAAW3f,EA9wXb,IA+wXa,OAAb2f,GACAA,EAASN,WAAW/hB,KAqGpC,SAASkjB,GAAgBljB,EAAO6B,EAAOmG,GAKnC,IADA,IAAImb,EAActhB,EAAMzgI,OACF,MAAf+hJ,IACmB,IAArBA,EAAYngJ,MACY,IAArBmgJ,EAAYngJ,OAEhBmgJ,GADAthB,EAAQshB,GACY/hJ,OAIxB,GAAmB,MAAf+hJ,EAAqB,CAErB,IAAMrX,EAA+B9D,EA95X9B,GA+5XP,OAAuB,IAAnB8D,EAAU9oI,KAQH49I,GAAyB,EAAgC5Y,GAMzDA,EAz7XN,GAi8XL,GAHkBnG,GAAwB,IAAfA,EAAM7+H,MAGF,EAAd6+H,EAAMlG,MACnB,OAA0BgH,GAAiBd,EAAOmG,GAAwB,WAG9E,GAAwB,EAApBmb,EAAYxnB,MAAiC,CAE7C,IAAM8J,EAAQzF,EAAMhsI,KAId6rI,EAAoC4F,EAFTA,EAAM0d,EAAYrqI,OAEGouH,gBAAmBrH,cAOzE,GAAIA,IAAkB7C,GAAoBI,WACtCyC,IAAkB7C,GAAoBE,OACtC,OAAO,KAGf,OAA0ByF,GAAiBwgB,EAAanb,GAahE,SAASoZ,GAAmBpmE,EAAU55E,EAAQwgH,EAAOq/B,GAE7C9e,GAAqBnnD,GACrBA,EAASn2E,aAAazD,EAAQwgH,EAAOq/B,GAGrC7/I,EAAOyD,aAAa+8G,EAAOq/B,GAAAA,GASnC,SAASE,GAAkBnmE,EAAU55E,EAAQwgH,GAGrCugB,GAAqBnnD,GACrBA,EAASx2E,YAAYpD,EAAQwgH,GAG7BxgH,EAAOoD,YAAYo9G,GAU3B,SAASwhC,GAA2BpoE,EAAU55E,EAAQwgH,EAAOq/B,GACtC,OAAfA,EACAG,GAAmBpmE,EAAU55E,EAAQwgH,EAAOq/B,GAG5CE,GAAkBnmE,EAAU55E,EAAQwgH,GAyB5C,SAASk/B,GAAiB9lE,EAAU/jD,GAChC,OAA2BkrG,GAAqBnnD,GAAYA,EAASh2E,WAAWiyB,GAAQA,EAAKjyB,WAkBjG,SAASq+I,GAAoBF,EAAazgB,GACtC,GAAyB,IAArBygB,EAAYngJ,KAAuB,CAEnC,IAAMwgI,EAAakd,GAAc,EAAkChe,GACnE,OAAmB,OAAfc,EACO,KAGJ8f,GADO9f,EAAW/pI,QAAQipI,EAv/WT,IAAA,GAw/WWc,GAElC,OAAyB,IAArB2f,EAAYngJ,MACI,IAArBmgJ,EAAYngJ,KACL2/H,GAAiBwgB,EAAazgB,GAElC,KAaX,SAASl+H,GAAYw7H,EAAO0C,EAAO6gB,EAASC,GAExC,IAAMjC,EAAe2B,GAAgBljB,EAAOwjB,EAAY9gB,GACxD,GAAoB,MAAhB6e,EAAsB,CAEtB,IAAMvmE,EAAW0nD,EA/jYR,IAmkYH+gB,EAAaJ,GAFCG,EAAWpiJ,QAA6BshI,EA3kYrD,GA6kY6CA,GACpD,GAAIpkI,MAAMqQ,QAAQ40I,GACd,IAAK,IAAI/wJ,EAAI,EAAGA,EAAI+wJ,EAAQ1wJ,OAAQL,IAChC4wJ,GAA2BpoE,EAAUumE,EAAcgC,EAAQ/wJ,GAAIixJ,QAInEL,GAA2BpoE,EAAUumE,EAAcgC,EAASE,IAiExE,SAASH,GAAqBI,EAAsBlgB,GAEhD,IAAMmgB,EA9lXsB,GA8lXoBD,EAAuB,EACvE,GAAIC,EAAgBngB,EAAW3wI,OAAQ,CAEnC,IAAM6vI,EAA2Bc,EAAWmgB,GAEtCC,EAAmBlhB,EAtqYnB,GAsqYgCtpG,WACtC,GAAyB,OAArBwqH,EACA,OA9DZ,SAASC,EAAmBnhB,EAAOb,GAC/B,GAAc,OAAVA,EAAgB,CAIhB,IAAMiiB,EAAYjiB,EAAM7+H,KACxB,GAAkB,IAAd8gJ,EACA,OAAOnhB,GAAiBd,EAAOa,GAE9B,GAAkB,IAAdohB,EACL,OAAOR,IAAsB,EAAG5gB,EAAMb,EAAM/oH,QAE3C,GAAkB,IAAdgrI,GAAwD,IAAdA,EAAoC,CAEnF,IAAMC,EAAsBliB,EAAMjgB,MAClC,GAA4B,OAAxBmiC,EACA,OAAOF,EAAmBnhB,EAAOqhB,GAIjC,IAAMC,EAAoBthB,EAAMb,EAAM/oH,OACtC,OAAI6oH,GAAaqiB,GACNV,IAAsB,EAAGU,GAGzBxhB,GAAYwhB,GAM3B,IAAMjF,EAAgBrc,EA3mYC,IA6mYjBuhB,EAAmClF,EAjoYtC,GAmoYGzU,EAAa8M,GAAe2H,GAE5BmF,EAA0CD,EAA0B,WAAqBpiB,EAAiB,YAChH,OAA2B,MAAvBqiB,EACOL,EAAmB,EAAiCK,GAGpDL,EAAmBnhB,EAAOb,EAAM9hI,MAInD,OAAO,KA9CX,CA8DsC2iI,EAAOkhB,GAGzC,OAAOpgB,EApnXI,GAmpXf,SAAS2gB,GAAWnpE,EAAU/yB,EAAQ45E,EAAOa,EAAO6e,EAAcN,EAAYmD,GAC1E,KAAgB,MAATviB,GAAe,CAKlB,IAAMwiB,EAAe3hB,EAAMb,EAAM/oH,OAE3BgrI,EAAYjiB,EAAM7+H,KACpBohJ,GACe,IAAXn8F,IACAo8F,GAAgBrP,GAAgBxS,GAAY6hB,GAAe3hB,GAC3Db,EAAMlG,OAAS,GAGqB,KAAzB,GAAdkG,EAAMlG,SACW,IAAdmoB,GAAwD,IAAdA,GAC1CK,GAAWnpE,EAAU/yB,EAAQ45E,EAAMjgB,MAAO8gB,EAAO6e,EAAcN,GAAAA,GAC/DF,GAA0B94F,EAAQ+yB,EAAUumE,EAAc8C,EAAcpD,IAErD,IAAd6C,EACLQ,GAAyBtpE,EAAU/yB,EAAQy6E,EAAO,EAA4B6e,EAAcN,GAI5FF,GAA0B94F,EAAQ+yB,EAAUumE,EAAc8C,EAAcpD,IAGhFpf,EAAQuiB,EAAeviB,EAAMqa,eAAiBra,EAAM9hI,MA2B5D,SAAS0hJ,GAAUzhB,EAAO0C,EAAO1nD,EAAU/yB,EAAQs5F,EAAcN,GAI7DkD,GAAWnpE,EAAU/yB,EADoB+3E,EAAW,KAAEpe,MACV8gB,EAAO6e,EAAcN,GAAAA,GAuCrE,SAASqD,GAAyBtpE,EAAU/yB,EAAQy6E,EAAO6hB,EAAiBhD,EAAcN,GAEtF,IAAMuD,EAAiB9hB,EAhxYQ,IAsxYzB+hB,EAJmCD,EAtyY9B,GA0yYkF,WAAED,EAAgBpI,YAC/G,GAAI79I,MAAMqQ,QAAQ81I,GAMd,IAAK,IAAIjyJ,EAAI,EAAGA,EAAIiyJ,EAAsB5xJ,OAAQL,IAG9CuuJ,GAA0B94F,EAAQ+yB,EAAUumE,EAD9BkD,EAAsBjyJ,GAC6ByuJ,QAQrEkD,GAAWnpE,EAAU/yB,EAHDw8F,EAE+BD,EAj0Y5C,GAk0Y8DjD,EAAcN,GAAAA,GAoH3F,SAASyD,GAAiB1pE,EAAUliF,EAAS6xD,GAErCw3E,GAAqBnnD,GACrBA,EAASz2E,aAAazL,EAAS,QAAS6xD,GAGxC,EAA+BtmD,MAAMC,QAAUqmD,EAevD,SAASg6F,GAAiB3pE,EAAUliF,EAAS6xD,GAErCw3E,GAAqBnnD,GACJ,KAAbrwB,EAEAqwB,EAASphD,gBAAgB9gC,EAAS,SAGlCkiF,EAASz2E,aAAazL,EAAS,QAAS6xD,GAI5C7xD,EAAQqM,UAAYwlD,EAgE5B,IAuaIi6F,GAiBAC,GAoEAC,GA5fEC,GAAAA,WAKF,SAAA,EAAYzW,EAAQ0W,GAAAA,gBAAAA,KAAAA,GAChBntJ,KAAKy2I,OAASA,EACdz2I,KAAKmtJ,oBAAsBA,EAC3BntJ,KAAKotJ,QAAU,KACfptJ,KAAKqtJ,kBAAoB,KA8B7B,OAzBA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WA0BI,GAAIrtJ,KAAKotJ,QACLptJ,KAAKotJ,QAAQlD,WAAWlqJ,WAEvB,GAAIA,KAAKqtJ,kBAAmB,CAE7B,IAAMpsI,EAAQjhB,KAAKqtJ,kBAAkBzrJ,QAAQ5B,MACzCihB,GAAS,GACTjhB,KAAKqtJ,kBAAkBC,OAAOrsI,GAElCjhB,KAAKqtJ,kBAAoB,KAE7B5C,GAAazqJ,KAAKy2I,OA9kZZ,GA8kZ2Bz2I,KAAKy2I,UAM1C,CAAA,IAAA,YAAA,MAAA,SAAU/xI,GAvoFd,IAAwByjI,EAAO0C,EAAO0iB,EAAdplB,EAwoFDnoI,KAAKy2I,OArlZd,GA68TwB8W,EAwoFkB7oJ,EAvoFpD4jJ,GAD2Bzd,EAwoFY7qI,KAAKy2I,QAvoFzB/1I,KAAK6sJ,GACpBplB,EAAMoL,iBACNgV,GAAgBpgB,GAAOznI,KAAwBmqI,EAp8TvC,GAo8TwD7vI,OAAS,EAAG,QA0qFhF,CAAA,IAAA,eAAA,MAAA,WACI6sJ,GAAc7nJ,KAAKmtJ,qBAAuBntJ,KAAKy2I,UAuDnD,CAAA,IAAA,SAAA,MAAA,WACIz2I,KAAKy2I,OAjrZC,KAirZgB,MA0D1B,CAAA,IAAA,WAAA,MAAA,WACIz2I,KAAKy2I,OA5uZC,IA4uZgB,MAwB1B,CAAA,IAAA,gBAAA,MAAA,WACIqR,GAAsB9nJ,KAAKy2I,OAvwZrB,GAuwZoCz2I,KAAKy2I,OAAQz2I,KAAK6I,WAShE,CAAA,IAAA,iBAAA,MAAA,YAnlDJ,SAAgCs/H,EAAO6C,EAAMniI,GACzCmkI,IAAAA,GACA,IACI8a,GAAsB3f,EAAO6C,EAAMniI,GADvC,QAIImkI,IAAAA,IANR,CAolD+BhtI,KAAKy2I,OAjxZtB,GAixZqCz2I,KAAKy2I,OAAQz2I,KAAK6I,WAMjE,CAAA,IAAA,2BAAA,MAAA,SAAyB2kJ,GACrB,GAAIxtJ,KAAKotJ,QACL,MAAM,IAAIvnJ,MAAM,iEAEpB7F,KAAKqtJ,kBAAoBG,IAK7B,CAAA,IAAA,mBAAA,MAAA,WAzxCJ,IAAiC3iB,EA0xCzB7qI,KAAKotJ,QAAU,KAzxCnBxD,GA0xCqB5pJ,KAAKy2I,OAlyZhB,GAugXmB5L,EA2xCY7qI,KAAKy2I,OA1xCtB5L,EAp/WX,IAo/W4B,EAAgB,KAAM,QAgyC/D,CAAA,IAAA,iBAAA,MAAA,SAAe4iB,GACX,GAAIztJ,KAAKqtJ,kBACL,MAAM,IAAIxnJ,MAAM,qDAEpB7F,KAAKotJ,QAAUK,IAAAA,CAAAA,IAAAA,YAAAA,IAAAA,WAjQf,IAAM5iB,EAAQ7qI,KAAKy2I,OACnB,OAAmB,MAAf5L,EA9iZC,GA83Zb,SAAS6iB,EAAmBvlB,EAAO0C,EAAOb,EAAOtmI,GAC7C,IADoE,IAAf6oJ,EAAe,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACnD,OAAVviB,GAAgB,CAInB,IAAM2jB,EAAQ9iB,EAAMb,EAAM/oH,OAO1B,GANc,OAAV0sI,GACAjqJ,EAAOhD,KAAKiqI,GAAYgjB,IAKxB7jB,GAAa6jB,GACb,IAAK,IAAIhzJ,EAt0YW,GAs0YkBA,EAAIgzJ,EAAM3yJ,OAAQL,IAAK,CAEzD,IAAMizJ,EAAoBD,EAAMhzJ,GAE1BkzJ,EAAuBD,EA74Z/B,GA64ZwDrsH,WACzB,OAAzBssH,GACAH,EAAmBE,EA/4ZzB,GA+4ZmDA,EAAmBC,EAAsBnqJ,GAKlG,IAAMuoJ,EAAYjiB,EAAM7+H,KACxB,GAAkB,IAAd8gJ,GAAwD,IAAdA,EAC1CyB,EAAmBvlB,EAAO0C,EAAOb,EAAMjgB,MAAOrmH,QAE7C,GAAkB,IAAduoJ,EAAkC,CAEvC,IAAM/E,EAAgBrc,EA53ZC,IAo4ZjBijB,EANmC5G,EAl5ZtC,GAw5Z6D,WAJ7Bld,EAAiB,YAKpD,GAAIvjI,MAAMqQ,QAAQg3I,GACdpqJ,EAAOhD,KAAPgD,MAAAA,EAAAA,oBAAeoqJ,QAEd,CAED,IAAMrb,EAAgC8M,GAAe2H,GAGrDwG,EAAmBjb,EA36ZrB,GA26ZwCA,EAAYqb,EAAapqJ,GAAAA,IAGvEsmI,EAAQuiB,EAAeviB,EAAMqa,eAAiBra,EAAM9hI,KAExD,OAAOxE,EApDX,CA7UsCmnI,EA/iZxB,GA+iZsCA,EADHA,EApiZlC,GAqiZsD9gB,MAAO,IAE7D,KAKX,CAAA,IAAA,UAAA,IAAA,WACI,OAA0B/pH,KAAKy2I,OAziZvB,KA8iZZ,CAAA,IAAA,YAAA,IAAA,WACI,OAAsD,MAAzB,IAArBz2I,KAAKy2I,OA3jZP,QAgkZV,EAvCEyW,GA0TAa,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACR5zB,EAAAA,EAAAA,KAAAA,KAAM4zB,IACDA,MAAQA,EAFLA,EAoBD,OAbX,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,WACIhG,GAAwBhoJ,KAAKguJ,SAKjC,CAAA,IAAA,iBAAA,MAAA,YAtpDJ,SAAkCnjB,GAC9BmC,IAAAA,GACA,IACIgb,GAAwBnd,GAD5B,QAIImC,IAAAA,IANR,CAupDiChtI,KAAKguJ,SAKlC,CAAA,IAAA,UAAA,IAAA,WACI,OAAO,SAAA,EAxBTD,CAAoBb,IAsH1B,SAASe,GAAiBC,EAAiBlkB,EAAOgB,GAK9C,OAJK+hB,KACDA,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAAAA,OAAAA,EAAAA,CAAwCmB,IAGrC,IAAInB,GAAgCjiB,GAAiBd,EAAOgB,IAyBvE,SAASmjB,GAAkBC,EAAkBF,EAAiBja,EAAW9I,GAqCrE,OApCK6hB,KACDA,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMI,SAAA,EAAYqB,EAAkBC,EAAwBC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAClDn0B,EAAAA,EAAAA,KAAAA,OACKi0B,iBAAmBA,EACxBruJ,EAAKsuJ,uBAAyBA,EAC9BtuJ,EAAKuuJ,WAAaA,EAJgCA,EAN1DvB,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,qBAAAA,MAAAA,SAgBuBnkJ,GAEf,IAAMi5I,EAAmC9hJ,KAAKsuJ,uBAA8B,OAEtEzM,EAAgBrB,GAAYxgJ,KAAKquJ,iBAAkBvM,EAAej5I,EAAS,GAAsB,KAAMi5I,EAAc1iH,MAI3HyiH,EAn+Ze,IAi+Ze7hJ,KAAKquJ,iBAAiBruJ,KAAKsuJ,uBAAuBrtI,OAIhF,IAAMutI,EAA0BxuJ,KAAKquJ,iBAj+ZrC,IAs+ZA,OAJgC,OAA5BG,IACA3M,EAn+ZJ,IAm+Z6B2M,EAAwBC,mBAAmB3M,IAExEhB,GAAWgB,EAAeD,EAAeh5I,GAClC,IAAIqkJ,GAAQrL,OA/B3BmL,EAAAA,CAA0CoB,IAmCvB,IAAnBna,EAAU9oI,KAEH,IAAI6hJ,GAAc7hB,EAAU,EAAgC8iB,GAAiBC,EAAiBja,EAAW9I,IAGzG,KA2Bf,SAASujB,GAAmBC,EAAuBT,EAAiBja,EAAW9I,GAiO3E,IAAIQ,EAhOCshB,KACDA,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMI,SAAA,EAAY2B,EAAaC,EAAYC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACjC10B,EAAAA,EAAAA,KAAAA,OACKw0B,YAAcA,EACnB5uJ,EAAK6uJ,WAAaA,EAClB7uJ,EAAK8uJ,UAAYA,EAJgBA,EANzC7B,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,WA2CQ,KAAOjtJ,KAAKhF,OAAS,GACjBgF,KAAK+V,OAAO/V,KAAKhF,OAAS,KA5CtCiyJ,CAAAA,IAAAA,MAAAA,MAAAA,SAmDQhsI,GACA,OAAuC,OAAhCjhB,KAAK4uJ,YA3iZV,IA2iZgE5uJ,KAAK4uJ,YA3iZrE,GA2iZ8F3tI,IAAU,OApDlHgsI,CAAAA,IAAAA,qBAAAA,MAAAA,SAmEuB8B,EAAalmJ,EAASoY,GAErC,IAAM+tI,EAAUD,EAAYN,mBAAmB5lJ,GAAW,IAE1D,OADA7I,KAAKivJ,OAAOD,EAAS/tI,GACd+tI,IAvEf/B,CAAAA,IAAAA,kBAAAA,MAAAA,SAkFoBiC,EAAkBjuI,EAAOwiH,EAAU0rB,EAAkBC,GAEjE,IAAMC,EAAkB5rB,GAAYzjI,KAAKsvJ,eACzC,IAAKF,GAAmE,MAApD,EAAwCG,UAAoBF,EAAiB,CAK7F,IAAM3rJ,EAAS2rJ,EAAgBxsI,IAAI0hH,GAAa,MAC5C7gI,IACA0rJ,EAAc1rJ,GAItB,IAAM8rJ,EAAeN,EAAiBroJ,OAAOwoJ,EAAiBF,OAAAA,EAA6BC,GAE3F,OADApvJ,KAAKivJ,OAAOO,EAAarkB,SAAUlqH,GAC5BuuI,IAlGfvC,CAAAA,IAAAA,SAAAA,MAAAA,SAyGW+B,EAAS/tI,GAEZ,IAAM4pH,EAA2B,EAAsC,OAEjE1C,EAAQ0C,EA7pahB,GA8paE,GAAImkB,EAAQS,UACR,MAAM,IAAI5pJ,MAAM,sDAGpB,GADA7F,KAAK0vJ,4BA/rXV5lB,GAgsXiCe,EA9pa7B,IA8paqC,CAGhC,IAAM8kB,EAAU3vJ,KAAK4B,QAAQotJ,GAK7B,IAAiB,IAAbW,EACA3vJ,KAAKstJ,OAAOqC,OAEX,CAED,IAAMC,EAAoC/kB,EA3qanD,GAiraeglB,EAAY,IAAI5C,GAAmB2C,EAAmCA,EA3qarF,GA2qa+GA,EAjra/G,IAkraSC,EAAUvC,OAAOuC,EAAUjuJ,QAAQotJ,KAI3C,IAAMc,EAAc9vJ,KAAK+vJ,aAAa9uI,GAOtC,OAtnDhB,SAAoBknH,EAAO0C,EAAOc,EAAY1qH,GAI1C,IAAMmpI,EA5gWsB,GA4gWuBnpI,EAE7C+uI,EAAkBrkB,EAAW3wI,OAC/BimB,EAAQ,IAER0qH,EAAWye,EAAmB,GA9kXzB,GA8kXoCvf,GAEzC5pH,EAAQ+uI,EAnhWgB,IAohWxBnlB,EAjlXK,GAilXSc,EAAWye,GACzB3lB,GAAWkH,EArhWa,GAqhWyB1qH,EAAO4pH,KAGxDc,EAAWjrI,KAAKmqI,GAChBA,EAtlXK,GAslXS,MAElBA,EA1lXW,GA0lXKc,EAGhB,IAAM2e,EAAwBzf,EAjkXH,IAkkXG,OAA1Byf,GAAkC3e,IAAe2e,GAmBzD,SAAwBN,EAAsBnf,GAI1C,IAAM6W,EAAasI,EA9jWH,GAskWenf,EAnmXA,MA6lXeA,EAvnXnC,GAAA,GA0BoB,MAymX3Bmf,EAtlWuB,IAAA,GAwlWR,OAAftI,EACAsI,EA/kWY,GA+kWwB,CAACnf,GAGrC6W,EAAWhhJ,KAAKmqI,GAxBxB,CAlBuByf,EAAuBzf,GAI1C,IAAM2f,EAAW3f,EAnkXL,IAokXK,OAAb2f,GACAA,EAASyF,WAAW9nB,GAGxB0C,EA1mXU,IA0mXM,IAjCpB,CAgnD2B1C,EAAO0C,EAAO7qI,KAAK4uJ,YAAakB,GAG3CjG,GAA2B1hB,EAAO0C,GAAAA,EADf4gB,GAAqBqE,EAAa9vJ,KAAK4uJ,cAE1D,EAA+BsB,yBAAyBlwJ,MACxDykI,GAA8BzkI,KAAK4uJ,YAvoZjC,GAuoZ2DkB,EAAad,GACnEA,IAjJf/B,CAAAA,IAAAA,OAAAA,MAAAA,SAwJS+B,EAASmB,GACV,GAAInB,EAAQS,UACR,MAAM,IAAI5pJ,MAAM,oDAEpB,OAAO7F,KAAKivJ,OAAOD,EAASmB,KA5JpClD,CAAAA,IAAAA,UAAAA,MAAAA,SAkKY+B,GAEJ,IAAMoB,EAAcpwJ,KAAK4uJ,YA3pZvB,GA4pZF,OAAuB,OAAhBwB,EAAuBA,EAAYxuJ,QAAQotJ,IAAY,IArKtE/B,CAAAA,IAAAA,SAAAA,MAAAA,SA2KWhsI,GACHjhB,KAAK0vJ,4BAEL,IAAMI,EAAc9vJ,KAAK+vJ,aAAa9uI,GAAQ,IArgD9D,SAAoB0qH,EAAYwe,GAE5B,IAAMkG,EAAenG,GAAWve,EAAYwe,GAC5CkG,GAAgB5F,GAAa4F,EA5tXnB,GA4tXwCA,GAHtD,CAsgD2BrwJ,KAAK4uJ,YAAakB,GAC7BpsI,GAAmC1jB,KAAK4uJ,YAvqZtC,GAuqZgEkB,KAhL1E7C,CAAAA,IAAAA,SAAAA,MAAAA,SAsLWhsI,GACHjhB,KAAK0vJ,4BAEL,IAAMI,EAAc9vJ,KAAK+vJ,aAAa9uI,GAAQ,GAExC+pH,EAAOkf,GAAWlqJ,KAAK4uJ,YAAakB,GAG1C,OADoB9kB,GAA0F,MAAlFtnH,GAAmC1jB,KAAK4uJ,YAprZlE,GAorZ4FkB,GACzE,IAAI5C,GAAQ,GAA6B,OA9LtED,CAAAA,IAAAA,eAAAA,MAAAA,SAsMiBhsI,GAAe,IAARoS,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EACxB,OAAa,MAATpS,EACOjhB,KAAKhF,OAASq4B,EAOlBpS,IA/MfgsI,CAAAA,IAAAA,4BAAAA,MAAAA,WAsN4C,OAAhCjtJ,KAAK4uJ,YA7sZP,KA8sZE5uJ,KAAK4uJ,YA9sZP,GA8sZgC,MAvN1C3B,CAAAA,IAAAA,UAAAA,IAAAA,WAgBQ,OAAOgB,GAAiBC,EAAiBluJ,KAAK6uJ,WAAY7uJ,KAAK8uJ,aAhBvE7B,CAAAA,IAAAA,WAAAA,IAAAA,WAsBQ,OAAO,IAAIvY,GAAa10I,KAAK6uJ,WAAY7uJ,KAAK8uJ,aAtBtD7B,CAAAA,IAAAA,iBAAAA,IAAAA,WA8BQ,IAAM9a,EAAiByB,GAA0B5zI,KAAK6uJ,WAAY7uJ,KAAK8uJ,WAEjErc,EAAaH,GAAsBH,EAAgBnyI,KAAK8uJ,WAExDxD,EAlmBtB,SAAgC5tJ,EAAU60I,EAAW+d,GAEjD,GAAIA,EAAW/mJ,SAA+C,IAArC+mJ,EAAW/mJ,OAAOiqI,cAAsB,CAQ7D,IALA,IAAMA,EAAgB8c,EAAW/mJ,OAAOiqI,cAEpCxJ,EAAQsmB,EAAW/mJ,OAGA,MAAhBygI,EAAMzgI,QAAkBiqI,GAAiBxJ,EAAMzgI,OAAOiqI,eACzDxJ,EAAQA,EAAMzgI,OAElB,OAAOygI,EAUX,IAPA,IAAIwI,EAAaH,GAA4B30I,GAGzC+0I,EAAaF,EAEb+Y,EAAiC/Y,EA3/Y1B,GA6/YJC,EAAa,GAEhB8Y,GADA7Y,EAAgCA,EA5+Yf,KAlBV,GAggZPD,IAEJ,OAAO8Y,EA5BX,CAkmB2DnZ,EAAgBnyI,KAAK8uJ,UAAW9uJ,KAAK6uJ,YAChF,OAAQ3c,GAAkBC,IAAkC,MAAfmZ,EAEzC,IAAI5W,GAAa4W,EAAa7Y,GAD9B,IAAIiC,GAAa,KAAM10I,KAAK8uJ,aApCxC7B,CAAAA,IAAAA,SAAAA,IAAAA,WA0DQ,OAAOjtJ,KAAK4uJ,YAAY5zJ,OAviZR,OA6+YxBiyJ,EAAAA,CAAoD0B,IAiOxD,IAAMvjB,EAAYD,EAAS8I,EAAUhzH,OACrC,GAAI6oH,GAAasB,GAEbO,EAAaP,MAEZ,CAED,IAAImlB,EAKJ,GAAuB,IAAnBtc,EAAU9oI,KACVolJ,EAAiC5lB,GAAYS,QAU7C,GANAmlB,EAAcplB,EA9waT,IA8wa4BqlB,cAAwC,IAMrEpmB,GAAWe,GAAW,CAEtB,IAAMhoD,EAAWgoD,EAtxahB,IAwxaKqc,EAAgC1c,GAAiBmJ,EAAW9I,GAGlEoe,GAAmBpmE,EADQ8lE,GAAiB9lE,EAAUqkE,GACgB+I,EAtwCtF,SAA2BptE,EAAU/jD,GACjC,OAAOkrG,GAAqBnnD,GAAYA,EAAS+1D,YAAY95G,GAAQA,EAAK85G,YAD9E,CAswCqH/1D,EAAUqkE,SAG/G76I,GAAYw+H,EAlzad,GAkza+BA,EAAUolB,EAAatc,GAG5D9I,EAAS8I,EAAUhzH,OAAS0qH,EACxB4b,GAAiBnc,EAAWD,EAAUolB,EAAatc,GACvDkT,GAAchc,EAAUQ,GAE5B,OAAO,IAAIshB,GAAmBthB,EAAYsI,EAAW9I,GAOzD,SAASslB,KAAiC,IAATC,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACtC,OAUJ,SAAuB1mB,EAAOa,EAAO6lB,GAKjC,IADyBA,GAAUzmB,GAAgBD,GAC9B,CAIjB,IAAMkd,EAAgBjc,GAAyBjB,EAAM/oH,MAAO4pH,GAC5D,OAAO,IAAIqiB,GAAQhG,EAAeA,GAEjC,OAAmB,IAAfld,EAAM7+H,MAA2C,IAAf6+H,EAAM7+H,MAC9B,IAAf6+H,EAAM7+H,MAAoD,IAAf6+H,EAAM7+H,KAK1C,IAAI+hJ,GADeriB,EA9zaC,IA+zaWA,GAEnC,KApBX,CAVyB4B,KAA4BL,KAAYskB,GAUjE,IAAA,GAAA,WAAA,IAqGMC,EAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,OAMNA,EAAkB7tB,kBAAoB,WAAA,OAGhC8tB,MAHND,EA3GA,GA8LMC,GATgDH,GA4BhDI,GAAO5rJ,SACb,SAAS+lE,GAAO99D,GACZ,MAAoB,mBAANA,EAalB,IAAM4jJ,GAAgB,6DAChBC,GAAkB,4CAClBC,GAA4B,mEAC5BC,GAAqC,oGAarCC,GAAAA,WACF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRnxJ,KAAKoxJ,SAAWD,GAAWnvB,GAAiB,QA8MtBpiI,OA5M1B,aAAA,EAAA,CAAA,CAAA,IAAA,sBAAA,MAAA,WACI,OAAA,IAEJ,CAAA,IAAA,UAAA,MAAA,SAAQ5F,GACJ,OAAO,WAAA,IAAA,IAAA,EAAA,UAAA,OAAIoG,EAAJ,IAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAAIA,EAAJ,GAAA,UAAA,GAAA,OAAA,WAAiBpG,EAAKoG,MAGjC,CAAA,IAAA,0BAAA,MAAA,SAAwBixJ,EAAYC,GAChC,IAAI5tJ,EAEAA,EAASghI,QAAAA,IADF2sB,EACWC,EAAiBt2J,OAGjBq2J,EAAWr2J,QAEjC,IAAK,IAAIL,EAAI,EAAGA,EAAI+I,EAAO1I,OAAQL,IAK3B+I,EAAO/I,QAAAA,IADA02J,EACK,GAEPA,EAAW12J,IAAM02J,EAAW12J,IAAMoL,OAC3B,CAACsrJ,EAAW12J,IAGZ,GAEZ22J,GAA2C,MAAvBA,EAAiB32J,KACrC+I,EAAO/I,GAAK+I,EAAO/I,GAAG6B,OAAO80J,EAAiB32J,KAGtD,OAAO+I,IAEX,CAAA,IAAA,iBAAA,MAAA,SAAeyH,EAAMomJ,GASjB,GAnDgBC,EA2CArmJ,EAAKtL,WA1ClBixJ,GAAc5lJ,KAAKsmJ,IAAYP,GAAmC/lJ,KAAKsmJ,IACzET,GAAgB7lJ,KAAKsmJ,KAAaR,GAA0B9lJ,KAAKsmJ,GAkD9D,OAAO,KApDnB,IAAwBA,EAuDhB,GAAIrmJ,EAAKotB,YAAcptB,EAAKotB,aAAeg5H,EAAWh5H,WAClD,OAAOptB,EAAKotB,WAGhB,IAAMk5H,EAAoBtmJ,EAAKumJ,eAC/B,GAAID,GAAqBA,IAAsBF,EAAWG,eAAgB,CAGtE,IAAMA,EAA8C,mBAAtBD,EAAmCA,IAAsBA,EACjFJ,EAAaK,EAAe38I,KAAK48I,SAAAA,GAAAA,OAAcA,GAAaA,EAAUxmJ,QACtEmmJ,EAAmBI,EAAe38I,KAAK48I,SAAAA,GAAAA,OAAcA,GAAaC,GAAoCD,EAAUE,eACtH,OAAO7xJ,KAAK8xJ,wBAAwBT,EAAYC,GAGpD,IAAMA,EAAmBnmJ,EAAK5M,eAAeggI,KAAepzH,EAAKozH,IAC3D8yB,EAAarxJ,KAAKoxJ,UAAYpxJ,KAAKoxJ,SAASW,gBAC9C/xJ,KAAKoxJ,SAASW,eAAe,oBAAqB5mJ,GACtD,OAAIkmJ,GAAcC,EACPtxJ,KAAK8xJ,wBAAwBT,EAAYC,GAM7C5sB,GAASv5H,EAAKnQ,UAEzB,CAAA,IAAA,aAAA,MAAA,SAAWmQ,GAGP,IAAK6/D,GAAO7/D,GACR,MAAO,GAEX,IAAMomJ,EAAaS,GAAc7mJ,GAC7BotB,EAAav4B,KAAKiyJ,eAAe9mJ,EAAMomJ,GAI3C,OAHKh5H,GAAcg5H,IAAexrJ,SAC9BwyB,EAAav4B,KAAKu4B,WAAWg5H,IAE1Bh5H,GAAc,KAEzB,CAAA,IAAA,kBAAA,MAAA,SAAgB25H,EAAYX,GAExB,GAAIW,EAAWC,aAAeD,EAAWC,cAAgBZ,EAAWY,YAAa,CAC7E,IAAIA,EAAcD,EAAWC,YAI7B,MAH2B,mBAAhBA,GAA8BA,EAAYA,cACjDA,EAAcA,EAAYA,aAEvBA,EAGX,OAAID,EAAWL,YAAcK,EAAWL,aAAeN,EAAWM,WACvDD,GAAoCM,EAAWL,YAGtDK,EAAW3zJ,eAh0fH,mBAi0fD2zJ,EAAsB,gBAE1B,OAEX,CAAA,IAAA,cAAA,MAAA,SAAYA,GACR,IAAKlnF,GAAOknF,GACR,MAAO,GAEX,IAAMX,EAAaS,GAAcE,GAC3BE,EAAiBpyJ,KAAKqyJ,gBAAgBH,EAAYX,IAAe,GAEvE,OAD0BA,IAAexrJ,OAAS/F,KAAKmyJ,YAAYZ,GAAc,IACxD/0J,OAAO41J,KAEpC,CAAA,IAAA,mBAAA,MAAA,SAAiBF,EAAYX,GAEzB,GAAIW,EAAWI,cACXJ,EAAWI,eAAiBf,EAAWe,aAAc,CACrD,IAAIA,EAAeJ,EAAWI,aAI9B,MAH4B,mBAAjBA,GAA+BA,EAAaA,eACnDA,EAAeA,EAAaA,cAEzBA,EAGX,GAAIJ,EAAWK,gBACXL,EAAWK,iBAAmBhB,EAAWgB,eAAgB,CACzD,IAAMA,EAAiBL,EAAWK,eAC5BD,EAAe,GAIrB,OAHAvsJ,OAAOP,KAAK+sJ,GAAgB56I,SAAQyI,SAAAA,GAChCkyI,EAAalyI,GAAQwxI,GAAoCW,EAAenyI,OAErEkyI,EAGX,OAAIJ,EAAW3zJ,eAj2fD,sBAk2fH2zJ,EAAwB,mBAE5B,OAEX,CAAA,IAAA,eAAA,MAAA,SAAaA,GACT,IAAKlnF,GAAOknF,GACR,MAAO,GAEX,IAAMX,EAAaS,GAAcE,GAC3BI,EAAe,GACrB,GAAIf,IAAexrJ,OAAQ,CACvB,IAAMysJ,EAAqBxyJ,KAAKsyJ,aAAaf,GAC7CxrJ,OAAOP,KAAKgtJ,GAAoB76I,SAASgnH,SAAAA,GACrC2zB,EAAa3zB,GAAY6zB,EAAmB7zB,MAGpD,IAAM8zB,EAAkBzyJ,KAAK0yJ,iBAAiBR,EAAYX,GAW1D,OAVIkB,GACA1sJ,OAAOP,KAAKitJ,GAAiB96I,SAASgnH,SAAAA,GAClC,IAAMkzB,EAAa,GACfS,EAAa/zJ,eAAeogI,IAC5BkzB,EAAWnxJ,KAAXmxJ,MAAAA,EAAAA,oBAAmBS,EAAa3zB,KAEpCkzB,EAAWnxJ,KAAXmxJ,MAAAA,EAAAA,oBAAmBY,EAAgB9zB,KACnC2zB,EAAa3zB,GAAYkzB,KAG1BS,IAEX,CAAA,IAAA,kBAAA,MAAA,SAAgBJ,GACZ,OAAKlnF,GAAOknF,IAGLlyJ,KAAK0yJ,iBAAiBR,EAAYF,GAAcE,KAF5C,KAIf,CAAA,IAAA,mBAAA,MAAA,SAAiB/mJ,EAAMwnJ,GACnB,OAAOxnJ,aAAgB0lJ,IAAQ8B,KAAcxnJ,EAAKjG,YAEtD,CAAA,IAAA,SAAA,MAAA,SAAOiG,GACH,MAAO,KAEX,CAAA,IAAA,SAAA,MAAA,SAAOvL,GACH,OAAO,IAAIqF,SAAS,IAAK,YAAcrF,EAAO,OAElD,CAAA,IAAA,SAAA,MAAA,SAAOA,GACH,OAAO,IAAIqF,SAAS,IAAK,IAAK,YAAcrF,EAAO,WAEvD,CAAA,IAAA,SAAA,MAAA,SAAOA,GAGH,OAAO,IAAIqF,SAAS,IAAK,OAAlB,UAAA,OAFwBrF,EAExB,yBAAA,OAFmDA,EAEnD,yCAAA,OADIA,EACJ,uBAGX,CAAA,IAAA,YAAA,MAAA,SAAUuL,GAEN,MAAoB,iBAATA,GAAqBA,EAAe,SACpCA,EAAe,SADN,KAAA,OAIRhF,GAAUgF,MAE1B,CAAA,IAAA,cAAA,MAAA,SAAYA,GACR,MAAA,KAAA,OAAYhF,GAAUgF,MAE1B,CAAA,IAAA,oBAAA,MAAA,SAAkBvL,EAAMgzJ,EAAWC,EAAStxC,GACxC,OAAOA,IAEX,CAAA,IAAA,cAAA,MAAA,SAAYuxC,EAAgBlzJ,GACxB,OAAOkzJ,EAAelzJ,OAAAA,EAhNxBsxJ,GAmNN,SAASU,GAAoCmB,GACzC,OAAKA,EAGEA,EAAqBh+I,KAAIi+I,SAAAA,GAAAA,OAAAA,WACNA,EAAoB7nJ,KACNg0H,cAFR6zB,oBAGLA,EAAoB5yJ,KAAO4yJ,EAAoB5yJ,KAAO,QALtE,GASf,SAAS4xJ,GAAciB,GACnB,IAAMC,EAAcD,EAAK/tJ,UAAYa,OAAO4wI,eAAesc,EAAK/tJ,WAAa,KAI7E,OAHmBguJ,EAAcA,EAAYtsJ,YAAc,OAGtCb,OAuXzB,IAiBMotJ,GAAiB,IAAIpwB,GAAe,uBAWpCqwB,GAAU,GASVC,GAAW,GAEXC,GAAgB,GAKlBC,QAAAA,EAIJ,SAASC,KAIL,YAAA,IAHID,KACAA,GAAgB,IAAIjvB,IAEjBivB,GA2CX,SAASE,GAAuCC,GAAoD9zJ,IAA3C2J,EAA2C3J,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAlC,KAAM+zJ,EAA4B/zJ,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAN,KAAMA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAChG,OAAO,IAAIg0J,GAAWF,EAASC,EAAqBpqJ,GAAUiqJ,KAAmB5zJ,GAErF,IAAMg0J,GAAAA,WAOF,SAAA,EAAYtzB,EAAKqzB,EAAqBpqJ,GAAiB,IAAA,EAAA,KAATnH,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAAA,gBAAA,KAAA,GACnDpC,KAAKuJ,OAASA,EAMdvJ,KAAK6zJ,QAAU,IAAIC,IAInB9zJ,KAAK+zJ,iBAAmB,IAAIC,IAI5Bh0J,KAAKynI,UAAY,IAAIusB,IACrBh0J,KAAKi0J,YAAAA,EAEL,IAAMC,EAAa,GAInBP,GACInvB,GAAYmvB,GAIZQ,SAAAA,GAAAA,OAAYn0J,EAAKo0J,gBAAgBD,EAAU7zB,EAAKqzB,MACpDnvB,GAAY,CAAClE,IAIbwW,SAAAA,GAAAA,OAAe92I,EAAKq0J,oBAAoBvd,EAAa,GAAIod,MAEzDl0J,KAAK6zJ,QAAQ7xI,IAAIihH,GAAUqxB,QAAAA,EAAsBt0J,OAIjD,IAAMu0J,EAASv0J,KAAK6zJ,QAAQhxI,IAAIswI,IAChCnzJ,KAAKw0J,MAAkB,MAAVD,EAAiBA,EAAO9uJ,MAAQ,KAE7CzF,KAAKoC,OAASA,IAA0B,iBAARk+H,EAAmB,KAAOn6H,GAAUm6H,IAgBxE,OAVA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WAWItgI,KAAKy0J,qBAELz0J,KAAKi0J,YAAAA,EACL,IAEIj0J,KAAKynI,UAAU9vH,SAIf+8I,SAAAA,GAAAA,OAAWA,EAAQhtB,iBANvB,QAUI1nI,KAAK6zJ,QAAQ10G,QACbn/C,KAAKynI,UAAUtoF,QACfn/C,KAAK+zJ,iBAAiB50G,WAU9B,CAAA,IAAA,MAAA,MAAA,SAAIkgF,GAA+DwE,IAAxDK,EAAwDL,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAxCX,GAAoBY,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAZpE,GAAYoE,QAC/D7jI,KAAKy0J,qBAGL,IA4hBuBhvJ,EA5hBjBkvJ,EAAmBnxB,GAAmBxjI,MAC5C,IAEI,KAAM8jI,EAAQrE,GAAYD,UAAW,CAGjC,IAAI+0B,EAASv0J,KAAK6zJ,QAAQhxI,IAAIw8G,GAC9B,QAAA,IAAIk1B,EAAsB,CAItB,IAAMj0B,GAkhBG,mBADE76H,EAjhBuB45H,IAmhB5B,iBAAV55H,GAAsBA,aAAiBs9H,KAnhBS7C,GAAiBb,GAIzDk1B,EAHAj0B,GAAOtgI,KAAK40J,qBAAqBt0B,GAGxBg0B,GAAWO,GAAkCx1B,GAAQ+zB,IAGrD,KAEbpzJ,KAAK6zJ,QAAQ7xI,IAAIq9G,EAAOk1B,GAG5B,GAAc,MAAVA,EACA,OAAOv0J,KAAK80J,QAAQz1B,EAAOk1B,GAYnC,OANuBzwB,EAAQrE,GAAYF,KAAsBi0B,KAAdxzJ,KAAKuJ,QAMpCsZ,IAAIw8G,EAHxB6E,EAAiBJ,EAAQrE,GAAYH,UAAa4E,IAAkBhB,GAChE,KACAgB,GAGR,MAAOzgI,GACH,GAAe,sBAAXA,EAAE7D,KAA8B,CAIhC,IAFa6D,EAAoB,gBAAIA,EAAoB,iBAAK,IACzDX,QAAQqD,GAAUk5H,IACnBs1B,EAEA,MAAMlxJ,EAIN,OA7/epB,SAA4BA,EAAG47H,EAAO01B,EAAmB3yJ,GAErD,IAAM4yJ,EAAYvxJ,EAAoB,gBAOtC,MANI47H,EAAY,UACZ21B,EAAUlyJ,QAAQu8H,EAAY,UAElC57H,EAAErE,QAYN,SAAqB0U,EAAM9N,EAAK+uJ,GAA4B,IAAT3yJ,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KACxD0R,EAAOA,GAA2B,OAAnBA,EAAKnY,OAAO,IA9OX,UA8O0BmY,EAAKnY,OAAO,GAAoBmY,EAAKhS,OAAO,GAAKgS,EAE3F,IAAIjL,EAAU1C,GAAUH,GACxB,GAAIS,MAAMqQ,QAAQ9Q,GACd6C,EAAU7C,EAAI+O,IAAI5O,IAAWT,KAAK,aAEjC,GAAmB,iBAARM,EAAkB,CAE9B,IAAIhF,EAAQ,GACZ,IAAK,IAAI9E,KAAO8J,EACZ,GAAIA,EAAIzH,eAAerC,GAAM,CAEzB,IAAIuJ,EAAQO,EAAI9J,GAChB8E,EAAMN,KAAKxE,EAAM,KAAwB,iBAAVuJ,EAAqBS,KAAKC,UAAUV,GAASU,GAAUV,KAG9FoD,EAAAA,IAAAA,OAAc7H,EAAM0E,KAAK,MAAzBmD,KAEJ,MAAA,GAAA,OAAUksJ,GAAV,OAA8B3yJ,EAAS,IAAMA,EAAS,IAAM,GAA5D,KAAA,OAAkEyG,EAAlE,OAAA,OAA+EiL,EAAKjI,QAAQs3H,GAAU,SAnB1G,CAZ4B,KAAO1/H,EAAErE,QAAS41J,EAu/eU,kBAv/eoB5yJ,GACxEqB,EAAe,YAAIuxJ,EACnBvxJ,EAAoB,gBAAI,KAClBA,EATV,CA6/e8CA,EAAG47H,EAAO,EAAmBr/H,KAAKoC,QAIhE,MAAMqB,EApDd,QAyDI+/H,GAAmBmxB,MAO3B,CAAA,IAAA,2BAAA,MAAA,WAAA,IAAA,EAAA,KACI30J,KAAK+zJ,iBAAiBp8I,SAItB+7I,SAAAA,GAAAA,OAAW1zJ,EAAK6iB,IAAI6wI,QAKxB,CAAA,IAAA,WAAA,MAAA,WAEI,IAAMuB,EAAS,GASf,OAPgBj1J,KAAK6zJ,QACbl8I,SAAQ,SAKfzK,EAAGmyH,GALY,OAKF41B,EAAOv0J,KAAKyF,GAAUk5H,OANpBr/H,cAAAA,OAOKi1J,EAAOvvJ,KAAK,MAPjB1F,OAapB,CAAA,IAAA,qBAAA,MAAA,WACI,GAAIA,KAAKi0J,WACL,MAAM,IAAIpuJ,MAAM,0CAiBxB,CAAA,IAAA,sBAAA,MAAA,SAAoBqvJ,EAAiBC,EAASjB,GAAAA,IAAAA,EAAAA,KAE1C,KADAgB,EAAkB3zB,GAAkB2zB,IAEhC,OAAA,EAMJ,IAAI50B,EAAMC,GAAe20B,GAGnB3F,EAAmB,MAAPjvB,GAAgB,EAAuCivB,eAAAA,EAKnEmE,OAAAA,IAAWnE,EAA0B,EAAyCA,EAa9E6F,GAA+C,IAAjClB,EAAWtyJ,QAAQ8xJ,GAOvC,QAAA,IAJInE,IACAjvB,EAAMC,GAAegvB,IAGd,MAAPjvB,EACA,OAAA,EAIJ,GAAmB,MAAfA,EAAIL,UAAoBm1B,EAAa,CAOrC,IAAIC,EAFJnB,EAAWxzJ,KAAKgzJ,GAGhB,IACIlvB,GAAYlE,EAAIL,SAIhBq1B,SAAAA,GACQt1J,EAAKq0J,oBAAoBiB,EAAUH,EAASjB,UAAAA,IACxCmB,IACAA,EAA2B,IAG/BA,EAAyB30J,KAAK40J,OAX1C,SAsBA,QAAA,IAAID,EACA,IADJ,IAAA,EAAA,SACa16J,GADb,IAAA,EAEwC06J,EAAyB16J,GAAjD40J,EAFhB,EAEc,SAAYvvB,EAF1B,EAEwB,UAChBwE,GAAY,GAIZ2vB,SAAAA,GAAAA,OAAYn0J,EAAKo0J,gBAAgBD,EAAU5E,EAAUvvB,GAAaszB,QAN7D34J,EAAI,EAAGA,EAAI06J,EAAyBr6J,OAAQL,IAAK,EAAjDA,GAYjBqF,KAAK+zJ,iBAAiBhsJ,IAAI2rJ,GAC1B1zJ,KAAK6zJ,QAAQ7xI,IAAI0xI,EAASY,GAAWh0B,EAAIhrH,QAAS89I,KAGlD,IAAMmC,EAAej1B,EAAIN,UACzB,GAAoB,MAAhBu1B,IAAyBH,EAAa,CAEtC,IAAMI,EAAe,EACrBhxB,GAAY+wB,GAIZpB,SAAAA,GAAAA,OAAYn0J,EAAKo0J,gBAAgBD,EAAUqB,EAAcD,MAE7D,YAAA,IAAQhG,QAAAA,IACJ,EAAuCvvB,YAU/C,CAAA,IAAA,kBAAA,MAAA,SAAgBm0B,EAAUsB,EAAcz1B,GAKpC,IAAIX,EAAQq2B,GAFZvB,EAAW5yB,GAAkB4yB,IAEUA,EAAW5yB,GAAkB4yB,GAAYA,EAAS9wB,SAGnFkxB,EAkLd,SAA0BJ,EAAUsB,EAAcz1B,GAC9C,OAAI21B,GAAgBxB,GACTG,QAAAA,EAAsBH,EAAS7wB,UAK/BgxB,GADSsB,GAAkBzB,EAAUsB,EAAcz1B,GAC/BozB,IAPnC,CAlLwCe,EAAUsB,EAAcz1B,GACxD,GAAK01B,GAAevB,KAAAA,IAAaA,EAAS0B,MAsBrC,CAED,IAAM/9B,EAAW93H,KAAK6zJ,QAAQhxI,IAAIw8G,GAC9BvH,QAAAA,IAAYA,EAAS+9B,OACrBxY,SA1BkD,CAItD,IAAIyY,EAAc91J,KAAK6zJ,QAAQhxI,IAAIw8G,GAC/By2B,OAAAA,IAEIA,EAAYD,OACZxY,OAIJyY,EAAcxB,QAAAA,EAAsBlB,IAAAA,IACxB99I,QAAU,WAAA,OAGhB8uH,GAA8B,EAAuC,QAC3EpkI,KAAK6zJ,QAAQ7xI,IAAIq9G,EAAOy2B,IAE5Bz2B,EAAQ80B,EACW2B,EAAkB,MAAEp1J,KAAKyzJ,GAShDn0J,KAAK6zJ,QAAQ7xI,IAAIq9G,EAAOk1B,KAS5B,CAAA,IAAA,UAAA,MAAA,SAAQl1B,EAAOk1B,GAwQnB,IAAsB9uJ,EA7Pd,OAVI8uJ,EAAO9uJ,QAAU4tJ,GA34R7B,SAAoCh0B,GAChC,MAAM,IAAIx5H,MAAJ,yCAAA,OAAmDw5H,IAD7D,CA44RuCl5H,GAAUk5H,IAEhCk1B,EAAO9uJ,QAAU2tJ,KACtBmB,EAAO9uJ,MAAQ4tJ,GACfkB,EAAO9uJ,MAA2B8uJ,EAAe,WAEzB,iBAAjBA,EAAO9uJ,OAAsB8uJ,EAAO9uJ,OAiQlC,QADCA,EAhQuD8uJ,EAAO9uJ,QAiQtC,iBAAVA,GACwB,mBAA7C,EAA6BiiI,aAjQhC1nI,KAAKynI,UAAU1/H,IAAIwsJ,EAAO9uJ,OAEJ8uJ,EAAa,QAO3C,CAAA,IAAA,uBAAA,MAAA,SAAqBj0B,GACjB,QAAKA,EAAIR,aAG0B,iBAAnBQ,EAAIR,WACU,QAAnBQ,EAAIR,YAAyBQ,EAAIR,aAAe9/H,KAAKw0J,MAGrDx0J,KAAK+zJ,iBAAiBgC,IAAIz1B,EAAIR,eAAAA,CAAAA,IAAAA,YAAAA,IAAAA,WA7UzC,OAAO9/H,KAAKi0J,eAShB,EAhEEL,GAkbN,SAASiB,GAAkCx1B,GAGvC,IAAM8E,EAAgBjE,GAAiBb,GAEjC/pH,EAA4B,OAAlB6uH,EAAyBA,EAAc7uH,QAAUm0H,GAAcpK,GAC/E,GAAgB,OAAZ/pH,EACA,OAAOA,EAKX,IAAMwhI,EAAcvW,GAAelB,GACnC,GAAoB,OAAhByX,EACA,OAAOA,EAAYxhI,QAIvB,GAAI+pH,aAAiB0D,GACjB,MAAM,IAAIl9H,MAAJ,SAAA,OAAmBM,GAAUk5H,GAA7B,yCAGV,GAAIA,aAAiBp6H,SACjB,OASR,SAAyCo6H,GAGrC,IAAM22B,EAAc32B,EAAMrkI,OAC1B,GAAIg7J,EAAc,EAAG,CAEjB,IAAM51J,EAAOskI,GAASsxB,EAAa,KACnC,MAAM,IAAInwJ,MAAJ,oCAAA,OAA8CM,GAAUk5H,GAAxD,OAAA,OAAoEj/H,EAAKsF,KAAK,MAA9E,OAQV,IAAMuwJ,EAz/gBV,SAAmC9qJ,GAE/B,IAAMm1H,EAAMn1H,IACPA,EAAKi1H,KAAgBj1H,EAAKk1H,KACtBl1H,EAAKy1H,KAAyBz1H,EAAKy1H,OAC5C,GAAIN,EAAK,CACL,IAAM41B,EAYd,SAAqB/qJ,GAOjB,GAAIA,EAAK5M,eAAe,QACpB,OAAO4M,EAAKvL,KAEhB,IAAME,GAAS,GAAKqL,GAAMrL,MAAM,yBAChC,OAAiB,OAAVA,EAAiB,GAAKA,EAAM,GAXvC,CAZqCqL,GAK7B,OAFA3G,QAAQyG,KAAK,4CAAA,OAA4CirJ,EAA5C,gFAAA,sEAAA,OAC6DA,EAD7D,aAEN51B,EAGP,OAAO,KAdf,CAy/gB6DjB,GACzD,OAA+B,OAA3B42B,EACO,WAAA,OAGDA,EAAuB3gJ,QAAQ,IAG9B,WAAA,OAGD,IAAI,GA1BlB,CAT+C+pH,GAG3C,MAAM,IAAIx5H,MAAM,eA2DpB,SAAS+vJ,GAAkBzB,EAAUsB,EAAcz1B,GAE/C,IA6EuBv6H,EA7EnB6P,OAAAA,EACJ,GAAIogJ,GAAevB,GAAW,CAE1B,IAAMgC,EAAoB50B,GAAkB4yB,GAC5C,OAAO1qB,GAAc0sB,IAAsBtB,GAAkCsB,GAG7E,GAAIR,GAAgBxB,GAChB7+I,EAAU,WAAA,OAGJisH,GAAkB4yB,EAAS7wB,gBAEhC,IAgEc79H,EAhEQ0uJ,IAiEZ,EAA6BiC,WAhExC9gJ,EAAU,WAAA,OAGJ6+I,EAASiC,WAATjC,MAAAA,EAAAA,oBAAuB/vB,GAAW+vB,EAASkC,MAAQ,YAExD,GAmDb,SAA4B5wJ,GACxB,SAAUA,IAAS,EAA6B6wJ,aADpD,CAnDoCnC,GACxB7+I,EAAU,WAAA,OAGJ0uH,GAASzC,GAAkB4yB,EAASmC,mBAEzC,CAED,IAAMC,EAAWh1B,GAAkB4yB,IAC9B,EAAgCqC,UAAYrC,EAAS9wB,UAI1D,GAHKkzB,GA/iSjB,SAAmCd,EAAcz1B,EAAWm0B,GAExD,IAAIsC,EAAiB,GAWrB,MAVIhB,GAAgBz1B,IAOhBy2B,EAAAA,6DAAAA,OALuBz2B,EAAUjrH,KAIjC7H,SAAAA,GAAAA,OAAKA,GAAKinJ,EAAW,IAAMA,EAAW,IAAM,SAEoCzuJ,KAAK,MADrF+wJ,MAGE,IAAI5wJ,MAAM,sCAAA,OAAsCM,GAAUsvJ,GAAhD,KAAmEgB,GAbvF,CAgjS0ChB,EAAcz1B,EAAWm0B,IAoEnE,SAAiB1uJ,GACb,QAAS,EAA6B4wJ,KAD1C,CAlEwBlC,GAOR,OAAO1qB,GAAc8sB,IAAa1B,GAAkC0B,GANpEjhJ,EAAU,WAAA,OAAA,WAGA,EAHA,oBAGc8uH,GAAW+vB,EAASkC,SAOxD,OAAO/gJ,EASX,SAASg/I,GAAWh/I,EAAS7P,GAAe,IAARowJ,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACxC,MAAO,CACHvgJ,QAASA,EACT7P,MAAOA,EACPowJ,MAAOA,EAAQ,QAAA,GAOvB,SAASF,GAAgBlwJ,GACrB,OAAiB,OAAVA,GAAkC,iBAATA,GAAqB29H,MAAa39H,EAoBtE,SAASiwJ,GAAejwJ,GACpB,MAAwB,mBAAVA,EAyDlB,IAAMixJ,GAJN,SAAkC12B,EAAWz2H,EAAQ3J,GACjD,OAvqBJ,SAAwB8zJ,GAAoD9zJ,IAA3C2J,EAA2C3J,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAlC,KAAM+zJ,EAA4B/zJ,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAN,KAAMA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAElE6jI,EAAWgwB,GAAuCC,EAASnqJ,EAAQoqJ,EAAqB/zJ,GAE9F,OADA6jI,EAASkzB,2BACFlzB,EAJX,CAuqB0B,CAAE7jI,KAAMA,GAAQ2J,EAAQy2H,EAAWpgI,IAG7D,GAAA,WAAA,IA0BMg3J,EAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAW8E,OAX9EA,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,SAMYlhJ,EAASnM,GACnB,OAAI9C,MAAMqQ,QAAQpB,GACPghJ,GAAchhJ,EAASnM,EAAQ,IAG/BmtJ,GAAchhJ,EAAQsqH,UAAWtqH,EAAQnM,OAAQmM,EAAQ9V,MAAQ,QAAA,EAX9Eg3J,GAW8E,OAIpFA,EAAS1zB,mBAAqBA,GAC9B0zB,EAASC,KAAO,IAAIvyB,GAEpBsyB,EAASl2B,WAAQb,GAAmB,CAChCR,MAAOu3B,EACP92B,WAAY,MACZxqH,QAAS,WAAA,OAGH0uH,GAASf,OAMnB2zB,EAAS9zB,mBAAqB,EAf9B8zB,EAzCA,GA4gBA,SAASE,GAAuBtxJ,GAC5B,OAAIA,EAAKxK,OAAS,EASP,KA1Bf,SAA8BwK,GAG1B,IADA,IAAMy7H,EAAM,GACHtmI,EAAI,EAAGA,EAAI6K,EAAKxK,SAAUL,EAAG,CAClC,GAAIsmI,EAAIr/H,QAAQ4D,EAAK7K,KAAO,EAExB,OADAsmI,EAAIvgI,KAAK8E,EAAK7K,IACPsmI,EAEXA,EAAIvgI,KAAK8E,EAAK7K,IAElB,OAAOsmI,EAVX,CAmB8Cz7H,EAAKlI,QAAQs6C,WAExB7iC,KAI3B9Y,SAAAA,GAAAA,OAAKkK,GAAUlK,EAAEojI,UACO35H,KAAK,QAAU,IAEpC,GA2BX,SAASqxJ,GAAetzB,EAAUvnI,EAAK86J,EAA2B5f,GAE9D,IAAM5xI,EAAO,CAACtJ,GAER+6J,EAASD,EAA0BxxJ,GAEnCrG,EAA4Bi4I,EAnmXtC,SAAsBh4I,EAASg4I,GAC3B,IAAMv4I,EAAAA,GAAAA,OAASO,EAATP,gBAAAA,OAA+Bu4I,aAAyBvxI,MAAQuxI,EAAch4I,QAAUg4I,GACxFj4I,EAAQ0G,MAAMhH,GAEpB,OADAM,EAA0B,gBAAIi4I,EACvBj4I,EAJX,CAmmXmE83J,EAAQ7f,GAAiBvxI,MAAMoxJ,GAM9F,OALA93J,EAAM+3J,OAASA,GACf/3J,EAAMqG,KAAOA,EACbrG,EAAMg4J,UAAY,CAAC1zB,GACnBtkI,EAAM63J,0BAA4BA,EAClC,EAAiD,gBAAI5f,EAC9Cj4I,EAQX,SAAS+3J,GAAOzzB,EAAUvnI,GACtB8D,KAAKm3J,UAAUz2J,KAAK+iI,GACpBzjI,KAAKwF,KAAK9E,KAAKxE,GAEf8D,KAAKZ,QAAUY,KAAKg3J,0BAA0Bh3J,KAAKwF,MAuJvD,SAAS4xJ,GAAkBlF,EAAYmF,GAGnC,IADA,IAAMC,EAAY,GACT38J,EAAI,EAAG+hI,EAAK26B,EAAOr8J,OAAQL,EAAI+hI,EAAI/hI,IAAK,CAE7C,IAAM48J,EAAYF,EAAO18J,GAKrB28J,EAAU52J,KAJT62J,GAAiC,GAApBA,EAAUv8J,OAITu8J,EAAUxiJ,IAAI5O,IAAWT,KAAK,KAH9B,KAMvB,OAAOG,MAAM,sCAAyCM,GAAU+rJ,GAAc,KAC1EoF,EAAU5xJ,KAAK,MAAQ,2GAEvBS,GAAU+rJ,GAAc,mCAkEhC,IAAMsF,GAAAA,WAMF,SAAA,EAAYn4B,EAAO5tH,GAGf,GAHeA,gBAAAA,KAAAA,GACfzR,KAAKq/H,MAAQA,EACbr/H,KAAKyR,GAAKA,GACL4tH,EACD,MAAM,IAAIx5H,MAAM,0BAEpB7F,KAAKy3J,YAActxJ,GAAUnG,KAAKq/H,OAcRq4B,OAP9B,aAAA,EAAA,KAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAWr4B,GACP,OAAOs4B,GAAmB90I,IAAI0+G,GAAkBlC,MAKpD,CAAA,IAAA,eAAA,IAAA,WACI,OAAOs4B,GAAmBD,iBAAAA,EA1B5BF,GAuEAG,GAAqB,IAlCrBC,WACF,SAAA,IAAA,gBAAA,KAAA,GACI53J,KAAK63J,SAAW,IAAI/D,IAqBCryI,OAfzB,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAI49G,GACA,GAAIA,aAAiBm4B,GACjB,OAAOn4B,EACX,GAAIr/H,KAAK63J,SAAS9B,IAAI12B,GAClB,OAA0Br/H,KAAK63J,SAASh1I,IAAIw8G,GAGhD,IAAMy4B,EAAS,IAAIN,GAAcn4B,EAAOm4B,GAAcE,cAEtD,OADA13J,KAAK63J,SAAS71I,IAAIq9G,EAAOy4B,GAClBA,IAKX,CAAA,IAAA,eAAA,IAAA,WACI,OAAO93J,KAAK63J,SAASp2I,SAAAA,EAvBvBm2I,IAuGAG,GAAY,IAxDZC,WACF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRj4J,KAAKi4J,uBAAyBA,EAuC6Br4J,OArC/D,aAAA,EAAA,CAAA,CAAA,IAAA,qBAAA,MAAA,SAAmBs4J,GACfl4J,KAAKi4J,uBAAyBC,IAElC,CAAA,IAAA,UAAA,MAAA,SAAQ/sJ,GACJ,OAAOnL,KAAKi4J,uBAAuB3iJ,QAAQnK,KAE/C,CAAA,IAAA,aAAA,MAAA,SAAW+mJ,GACP,OAAOlyJ,KAAKi4J,uBAAuB1/H,WAAW25H,KAElD,CAAA,IAAA,cAAA,MAAA,SAAYA,GACR,OAAOlyJ,KAAKi4J,uBAAuB9F,YAAYD,KAEnD,CAAA,IAAA,eAAA,MAAA,SAAaA,GACT,OAAOlyJ,KAAKi4J,uBAAuB3F,aAAaJ,KAEpD,CAAA,IAAA,mBAAA,MAAA,SAAiB/mJ,EAAMwnJ,GACnB,OAAO3yJ,KAAKi4J,uBAAuBE,iBAAiBhtJ,EAAMwnJ,KAE9D,CAAA,IAAA,SAAA,MAAA,SAAO/yJ,GACH,OAAOI,KAAKi4J,uBAAuBG,OAAOx4J,KAE9C,CAAA,IAAA,SAAA,MAAA,SAAOA,GACH,OAAOI,KAAKi4J,uBAAuBI,OAAOz4J,KAE9C,CAAA,IAAA,SAAA,MAAA,SAAOA,GACH,OAAOI,KAAKi4J,uBAAuBzmI,OAAO5xB,KAE9C,CAAA,IAAA,YAAA,MAAA,SAAUuL,GACN,OAAOnL,KAAKi4J,uBAAuBK,UAAUntJ,KAEjD,CAAA,IAAA,cAAA,MAAA,SAAYA,GACR,OAAOnL,KAAKi4J,uBAAuBM,YAAYptJ,KAEnD,CAAA,IAAA,oBAAA,MAAA,SAAkBvL,EAAMgzJ,EAAWC,EAAStxC,GACxC,OAAOvhH,KAAKi4J,uBAAuBO,kBAAkB54J,EAAMgzJ,EAAWC,EAAStxC,KAEnF,CAAA,IAAA,cAAA,MAAA,SAAY7kD,EAAY98D,GACpB,OAAOI,KAAKi4J,uBAAuBQ,YAAY/7F,EAAY98D,OAAAA,EAzC7Do4J,GAwDY,CAAc,IAAI9G,IAe9BwH,GAAAA,WAMF,SAAA,EAAYx8J,EAAKy8J,EAAUn7H,GAAAA,gBAAAA,KAAAA,GACvBx9B,KAAK9D,IAAMA,EACX8D,KAAK24J,SAAWA,EAChB34J,KAAKw9B,WAAaA,EAO0B,OADhD,aAAA,EAAA,KAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAAethC,GACX,OAAO,IAAIw8J,EAAqBx8J,GAAAA,EAAY,UAAA,EAhB9Cw8J,GA4BAE,GAAc,GAuCdC,GAMF,SAAA,EAAY38J,EAAK48J,EAAmBC,GAAAA,gBAAAA,KAAAA,GAChC/4J,KAAK9D,IAAMA,EACX8D,KAAK84J,kBAAoBA,EACzB94J,KAAK+4J,cAAgBA,EACrB/4J,KAAKg5J,gBAAkBh5J,KAAK84J,kBAAkB,IAiBhDG,GAKF,SAAA,EAAY3jJ,EAAS4jJ,GAAAA,gBAAAA,KAAAA,GACjBl5J,KAAKsV,QAAUA,EACftV,KAAKk5J,aAAeA,GAoB5B,SAASC,GAAyBhF,GAE9B,IAAIiF,EAEAC,EACJ,GAAIlF,EAASqC,SAAU,CAEnB,IAAMA,EAAWj1B,GAAkB4yB,EAASqC,UAC5C4C,EAAYrB,GAAUziJ,QAAQkhJ,GAC9B6C,EAAeC,GAAiB9C,QAE3BrC,EAASmC,aACd8C,EAICG,SAAAA,GAAAA,OAAkBA,GACnBF,EAAe,CAACX,GAAqBc,QAAQhC,GAAc30I,IAAIsxI,EAASmC,gBAEnEnC,EAASiC,YACdgD,EAAYjF,EAASiC,WACrBiD,EA2GR,SAA+BnH,EAAYgH,GACvC,GAAKA,EAGA,CAED,IAAM7B,EAAS6B,EAAankJ,KAI5B/a,SAAAA,GAAAA,MAAK,CAACA,MACN,OAAOk/J,EAAankJ,KAIpB/a,SAAAA,GAAAA,OAAKy/J,GAAcvH,EAAYl4J,EAAGq9J,MAblC,OAAOiC,GAAiBpH,GAFhC,CA3G6CiC,EAASiC,WAAYjC,EAASkC,QAGnE+C,EAAY,WAAA,OAGNjF,EAAS7wB,UACf+1B,EAAeT,IAEnB,OAAO,IAAIK,GAA0BG,EAAWC,GAUpD,SAASK,GAA0BvF,GAC/B,OAAO,IAAI0E,GAA4BrB,GAAc30I,IAAIsxI,EAAS9wB,SAAU,CAAC81B,GAAyBhF,IAAYA,EAAS0B,QAAAA,GA6G/H,SAASyD,GAAiBpH,GAEtB,IAAMmF,EAASU,GAAUx/H,WAAW25H,GACpC,IAAKmF,EACD,MAAO,GACX,GAAIA,EAAOvjE,MAIXptF,SAAAA,GAAAA,OAAU,MAALA,KACD,MAAM0wJ,GAAkBlF,EAAYmF,GAExC,OAAOA,EAAOtiJ,KAIdrO,SAAAA,GAAAA,OAAK+yJ,GAAcvH,EAAYxrJ,EAAG2wJ,MAQtC,SAASoC,GAAcvH,EAAYyH,EAAUtC,GAEzC,IAAIh4B,EAAQ,KAERs5B,GAAAA,EACJ,IAAKlyJ,MAAMqQ,QAAQ6iJ,GACf,OACWC,GADPD,aAAoBv6B,GACKu6B,EAASt6B,MAGTs6B,EAHgBhB,EAAU,MAQ3D,IADA,IAAIn7H,EAAa,KACR7iC,EAAI,EAAGA,EAAIg/J,EAAS3+J,SAAUL,EAAG,CAEtC,IAAMk/J,EAAgBF,EAASh/J,GAC3Bk/J,aAAyBhJ,GACzBxxB,EAAQw6B,EAEHA,aAAyBz6B,GAC9BC,EAAQw6B,EAAcx6B,MAEjBw6B,aAAyBv6B,GAC9Bq5B,GAAAA,EAEKkB,aAAyBt6B,IAAQs6B,aAAyBr6B,GAC/DhiG,EAAaq8H,EAERA,aAAyB92B,KAC9B1D,EAAQw6B,GAIhB,GAAa,OADbx6B,EAAQkC,GAAkBlC,IAEtB,OAAOu6B,GAAkBv6B,EAAOs5B,EAAUn7H,GAG1C,MAAM45H,GAAkBlF,EAAYmF,GAS5C,SAASuC,GAAkBv6B,EAAOs5B,EAAUn7H,GACxC,OAAO,IAAIk7H,GAAqBlB,GAAc30I,IAAIw8G,GAAQs5B,EAAUn7H,GAUxE,IAAMs8H,GAAY,GAuCZC,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GA8F4CxwJ,OA9F5CwwJ,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,UAAAA,MAAAA,SAmCa/5B,GACX,OApQR,SAAoCA,GAEhC,IAIMg6B,EAUV,SAA0Ch6B,EAAWi6B,GACjD,IAAK,IAAIt/J,EAAI,EAAGA,EAAIqlI,EAAUhlI,OAAQL,IAAK,CAEvC,IAAMw5J,EAAWn0B,EAAUrlI,GAErBm9H,EAAWmiC,EAAuBp3I,IAAIsxI,EAASj4J,IAAIuV,IACzD,GAAIqmH,EAAU,CACV,GAAIq8B,EAAS4E,gBAAkBjhC,EAASihC,cACpC,MAtXLlzJ,MAAAA,0DAAAA,OAsXyDiyH,EAtXzDjyH,KAAAA,OAsXmEsuJ,IAElE,GAAIA,EAAS4E,cACT,IAAK,IAAIr3J,EAAI,EAAGA,EAAIyyJ,EAAS2E,kBAAkB99J,OAAQ0G,IACnDo2H,EAASghC,kBAAkBp4J,KAAKyzJ,EAAS2E,kBAAkBp3J,SAI/Du4J,EAAuBj4I,IAAImyI,EAASj4J,IAAIuV,GAAI0iJ,OAG/C,CAED,IAAI+F,EAEAA,EADA/F,EAAS4E,cACU,IAAIF,GAA4B1E,EAASj4J,IAAKi4J,EAAS2E,kBAAkBx7J,QAAS62J,EAAS4E,eAG3F5E,EAEvB8F,EAAuBj4I,IAAImyI,EAASj4J,IAAIuV,GAAIyoJ,IAGpD,OAAOD,EA/BX,CAsCA,SAASE,EAAoBn6B,EAAWiB,GAmBpC,OAlBAjB,EAAUroH,SAIV7d,SAAAA,GACI,GAAIA,aAAa+2J,GACb5vB,EAAIvgI,KAAK,CAAqB2iI,QAASvpI,EAAG08J,SAAU18J,SAEnD,GAAIA,GAAiB,iBAALA,QAAAA,IAAiB,EAAyBupI,QAC3DpC,EAAIvgI,KAAK,OAER,CAAA,IAAI+F,MAAMqQ,QAAQhd,GAInB,MA/fD+L,MAAAA,4EAAAA,OA+f4B/L,IAH3BqgK,EAAoBrgK,EAAGmnI,OAMxBA,EAnBX,CApD2CjB,EAAW,IAEtBjrH,IAAI2kJ,IAEuC,IAAI5F,KAC3E,OAAOrtJ,MAAM8tE,KAAKylF,EAAoBn3C,UAP1C,CAoQ0Cmd,KA2BtC,CAAA,IAAA,mBAAA,MAAA,SAAwBA,EAAWz2H,GAE/B,IAAM6wJ,EAA8BL,EAAmBhhJ,QAAQinH,GAC/D,OAAO+5B,EAAmBM,sBAAsBD,EAA6B7wJ,KA2BjF,CAAA,IAAA,wBAAA,MAAA,SAA6By2H,EAAWz2H,GACpC,OAAO,IAAI+wJ,GAAoBt6B,EAAWz2H,OAAAA,EA9F5CwwJ,GA8F4CxwJ,GAAAA,WAAAA,IAuI5C+wJ,EAAAA,WAMF,SAAA,EAAYC,EAAYC,GAAAA,gBAAAA,KAAAA,GAIpBx6J,KAAKy6J,qBAAuB,EAC5Bz6J,KAAKu6J,WAAaA,EAClBv6J,KAAKuJ,OAASixJ,GAAW,KAEzB,IAAM9/J,EAAM6/J,EAAWv/J,OACvBgF,KAAK06J,OAAS,GACd16J,KAAKmkD,KAAO,GACZ,IAAK,IAAIxpD,EAAI,EAAGA,EAAID,EAAKC,IACrBqF,KAAK06J,OAAO//J,GAAK4/J,EAAW5/J,GAAGuB,IAAIuV,GACnCzR,KAAKmkD,KAAKxpD,GAAKm/J,GAgPvB,OAxOA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAIz6B,GAAuB6D,IAAhBgB,EAAgBhB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAAA,GACvB,OAAOljI,KAAK26J,UAAUnD,GAAc30I,IAAIw8G,GAAQ,KAAM6E,KAM1D,CAAA,IAAA,wBAAA,MAAA,SAAsBlE,GAElB,IAAMo6B,EAA8BL,GAAmBhhJ,QAAQinH,GAC/D,OAAOhgI,KAAK46J,wBAAwBR,KAMxC,CAAA,IAAA,0BAAA,MAAA,SAAwBp6B,GAEpB,IAAM66B,EAAM,IAAIP,EAAoBt6B,GAEpC,OADA,EAA2Bz2H,OAASvJ,KAC7B66J,IAMX,CAAA,IAAA,wBAAA,MAAA,SAAsB1G,GAClB,OAAOn0J,KAAK86J,oBAAoBf,GAAmBhhJ,QAAQ,CAACo7I,IAAW,MAM3E,CAAA,IAAA,sBAAA,MAAA,SAAoBA,GAChB,OAAOn0J,KAAK+6J,qBAAqB5G,KAMrC,CAAA,IAAA,qBAAA,MAAA,SAAmBlzI,GACf,GAAIA,EAAQ,GAAKA,GAASjhB,KAAKu6J,WAAWv/J,OACtC,MA73BZ,SAA0BimB,GACtB,OAAOpb,MAAAA,SAAAA,OAAeob,EAAfpb,uBADX,CA63BmCob,GAE3B,OAAOjhB,KAAKu6J,WAAWt5I,KAO3B,CAAA,IAAA,OAAA,MAAA,SAAKkzI,GACD,GAAIn0J,KAAKy6J,uBAAyBz6J,KAAKg7J,yBACnC,MA9gCDjE,GA8gC6B/2J,KAAMm0J,EAASj4J,KA9gCd,SAI3BsJ,GACN,MAAA,wCAAA,OAA+CsxJ,GAAuBtxJ,OA2gCtE,OAAOxF,KAAK+6J,qBAAqB5G,KAMrC,CAAA,IAAA,yBAAA,MAAA,WACI,OAAOn0J,KAAKmkD,KAAKnpD,SAOrB,CAAA,IAAA,uBAAA,MAAA,SAAqBm5J,GACjB,GAAIA,EAAS4E,cAAe,CAGxB,IADA,IAAM93B,EAAM,GACHtmI,EAAI,EAAGA,EAAIw5J,EAAS2E,kBAAkB99J,SAAUL,EACrDsmI,EAAItmI,GAAKqF,KAAKi7J,aAAa9G,EAAUA,EAAS2E,kBAAkBn+J,IAEpE,OAAOsmI,EAGP,OAAOjhI,KAAKi7J,aAAa9G,EAAUA,EAAS2E,kBAAkB,MAStE,CAAA,IAAA,eAAA,MAAA,SAAa3E,EAAU8E,GAAAA,IAIf5C,EAgBArwJ,EA9hC0Bk1J,EA0gCXjC,EAAAA,KAEb3jJ,EAAU2jJ,EAA0B3jJ,QAG1C,IACI+gJ,EACI4C,EAA0BC,aAAankJ,KAIvComJ,SAAAA,GAAAA,OAAOn7J,EAAKo7J,2BAA2BD,MAE/C,MAAO13J,GAIH,MAHIA,EAAEyzJ,QACFzzJ,EAAEyzJ,OAAOl3J,KAAMm0J,EAASj4J,KAEtBuH,EAIV,IACIuC,EAAMsP,EAAAA,WAAAA,EAAAA,oBAAW+gJ,IAErB,MAAO5yJ,GACH,MAliCDszJ,GAkiC0B/2J,KAAkBm0J,EAASj4J,KAliCvB,SAI3BsJ,GAEN,IAAM61J,EAAQl1J,GAAUX,EAAK,GAAG65H,OAChC,MAAA,GAAA,OAAU67B,EAAkB97J,QAA5B,oCAAA,OAAsEi8J,EAAtE,KAAA,OAA+EvE,GAAuBtxJ,GAAtG,OAR8B01J,EAmiCKz3J,GAEnC,OAAOuC,IAOX,CAAA,IAAA,6BAAA,MAAA,SAA2Bm1J,GACvB,OAAOn7J,KAAK26J,UAAUQ,EAAIj/J,IAAKi/J,EAAI39H,WAAY29H,EAAIxC,SAAW,KAAOz1B,MASzE,CAAA,IAAA,YAAA,MAAA,SAAUhnI,EAAKshC,EAAY0mG,GACvB,OAAIhoI,IAAQo+J,EAAoBgB,aACrBt7J,KAEPw9B,aAAsB+hG,GACfv/H,KAAKu7J,cAAcr/J,EAAKgoI,GAGxBlkI,KAAKw7J,iBAAiBt/J,EAAKgoI,EAAe1mG,KAQzD,CAAA,IAAA,iBAAA,MAAA,SAAei+H,GACX,IAAK,IAAI9gK,EAAI,EAAGA,EAAIqF,KAAK06J,OAAO1/J,OAAQL,IACpC,GAAIqF,KAAK06J,OAAO//J,KAAO8gK,EAInB,OAHIz7J,KAAKmkD,KAAKxpD,KAAOm/J,KACjB95J,KAAKmkD,KAAKxpD,GAAKqF,KAAK07J,KAAK17J,KAAKu6J,WAAW5/J,KAEtCqF,KAAKmkD,KAAKxpD,GAGzB,OAAOm/J,KAQX,CAAA,IAAA,eAAA,MAAA,SAAa59J,EAAKgoI,GACd,GAAIA,IAAkBhB,GAClB,OAAOgB,EAGP,MAnqCZ,SAAyBT,EAAUvnI,GAC/B,OAAO66J,GAAetzB,EAAUvnI,GAAK,SAI3BsJ,GAGN,MAAA,mBAAA,OADcW,GAAUX,EAAK,GAAG65H,OAChC,KAAA,OAAmCy3B,GAAuBtxJ,OARlE,CAmqCkCxF,KAAM9D,KASpC,CAAA,IAAA,gBAAA,MAAA,SAAcA,EAAKgoI,GAEf,IAAMl+H,EAAMhG,KAAK27J,eAAez/J,EAAIuV,IACpC,OAAQzL,IAAQ8zJ,GAAa9zJ,EAAMhG,KAAK47J,aAAa1/J,EAAKgoI,KAS9D,CAAA,IAAA,mBAAA,MAAA,SAAiBhoI,EAAKgoI,EAAe1mG,GAEjC,IAAIq9H,EAOJ,IALIA,EADAr9H,aAAsBgiG,GAChBx/H,KAAKuJ,OAGLvJ,KAEH66J,aAAeP,GAAqB,CAEvC,IAAMuB,EAAO,EAEP71J,EAAM61J,EAAKF,eAAez/J,EAAIuV,IACpC,GAAIzL,IAAQ8zJ,GACR,OAAO9zJ,EACX60J,EAAMgB,EAAKtyJ,OAEf,OAAY,OAARsxJ,EACOA,EAAIh4I,IAAI3mB,EAAImjI,MAAO6E,GAGnBlkI,KAAK47J,aAAa1/J,EAAKgoI,KAMtC,CAAA,IAAA,WAAA,MAAA,WAcI,OAAOlkI,KAAKy3J,cAAAA,CAAAA,IAAAA,cAAAA,IAAAA,WANZ,MAAA,kCAAA,OAsCR,SAAuBh0B,EAAUr/H,GAG7B,IADA,IAAM68H,EAAM,GACHtmI,EAAI,EAAGA,EAAI8oI,EAAS82B,WAAWv/J,SAAUL,EAC9CsmI,EAAItmI,GA5CG,KA4CK8oI,EAASq4B,mBAAmBnhK,GA5CxBuB,IAAIu7J,YAAc,KA8CtC,OAAOx2B,EANX,CA5CwCjhI,MAK3B0F,KAAK,MACV,UAKJ,EAnQE40J,GAmQF,OAIJA,EAAoBgB,aAAe9D,GAAc30I,IAAI+zI,IAArD0D,EA9YkD/wJ,GAquB9CwyJ,GAAmC,IAAIjI,IAGrCkI,GAAgC,IAAIhI,IA4D1C,SAASiI,GAAeryJ,GACpB,MAA0B,iBAAZA,EAAuBA,EAAWA,EAASkK,OA2B7D,SAASooJ,GAAqBlyB,EAAO9nG,EAAOi6H,GAIxC,IAAIxnI,EAASwnI,EAAcnyB,EAAMr1G,OAAS,KAEtC9lB,EAAUstJ,EAAcnyB,EAAMn7H,QAAU,KAExCk7E,EAAO,EACX,GAAc,OAAV7nD,EACA,IAAK,IAAIvnC,EAAI,EAAGA,EAAIunC,EAAMlnC,OAAQL,IAAK,CAEnC,IAAM8K,EAAQy8B,EAAMvnC,GACC,iBAAV8K,EACPskF,EAAOtkF,EAEM,GAARskF,EACLl7E,EAAUsyH,GAAuBtyH,EAAS,GAE7B,GAARk7E,IAKLp1D,EAASwsG,GAAuBxsG,EAHlB,EAGkC,KADVuN,IAAQvnC,GACsB,MAIhFwhK,EAAcnyB,EAAMr1G,OAASA,EAASq1G,EAAMua,kBAAoB5vH,EAChEwnI,EAAcnyB,EAAMn7H,QAAUA,EAAUm7H,EAAMya,mBAAqB51I,EAUvE,IAAIutJ,GAAkB,KACtB,SAAS,KACL,IAAKA,GAAiB,CAClB,IAAM1lJ,EAASsrH,GAAgB,OAC/B,GAAItrH,GAAUA,EAAO8yG,SACjB4yC,GAAkB1lJ,EAAO8yG,cAKzB,IADA,IAAMhkH,EAAOO,OAAOs2J,oBAAoBvI,IAAI5uJ,WACnCvK,EAAI,EAAGA,EAAI6K,EAAKxK,SAAUL,EAAG,CAClC,IAAMuB,EAAMsJ,EAAK7K,GACL,YAARuB,GAA6B,SAARA,GACrB43J,IAAI5uJ,UAAUhJ,KAAS43J,IAAI5uJ,UAAmB,UAC9Ck3J,GAAkBlgK,IAKlC,OAAOkgK,GA4DX,SAASE,GAAeziK,EAAGC,GACvB,OAAOD,IAAMC,GAAkB,iBAAND,GAA+B,iBAANC,GAAkBka,MAAMna,IAAMma,MAAMla,GAuE1F,IAAMyiK,GAAAA,WAIF,SAAA,EAAY92J,GAAAA,gBAAAA,KAAAA,GACRzF,KAAK2xG,QAAUlsG,EA0BS82J,OAnB5B,aAAA,EAAA,KAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAY92J,GACR,OAAO,IAAI82J,EAAa92J,KAS5B,CAAA,IAAA,SAAA,MAAA,SAAcA,GACV,OAAO82J,EAAaC,UAAU/2J,GAASA,EAAMksG,QAAUlsG,IAO3D,CAAA,IAAA,YAAA,MAAA,SAAiBA,GACb,OAAOA,aAAiB82J,MAAAA,EA/B1BA,GA6CN,SAASE,GAAqBz2J,GAC1B,QAAK02J,GAAa12J,KAEXS,MAAMqQ,QAAQ9Q,MACdA,aAAe8tJ,MACd,OAAuB9tJ,GAmDnC,SAAS02J,GAAarwJ,GAClB,OAAa,OAANA,IAA4B,mBAANA,GAAiC,iBAANA,GAgB5D,SAASswJ,GAAc9xB,EAAOwC,EAAc5nI,GACxC,OAAOolI,EAAMwC,GAAgB5nI,EA2BjC,SAASm3J,GAAe/xB,EAAOwC,EAAc5nI,GAMzC,OAAIM,OAAO82J,GADMhyB,EAAMwC,GACC5nI,KAoBpBolI,EAAMwC,GAAgB5nI,GAAAA,GAY9B,SAASq3J,GAAgBjyB,EAAOwC,EAAc0vB,EAAMC,GAEhD,IAAMC,EAAYL,GAAe/xB,EAAOwC,EAAc0vB,GACtD,OAAOH,GAAe/xB,EAAOwC,EAAe,EAAG2vB,IAASC,EAmD5D,SAASC,GAAYt9J,EAAM6F,EAAOo3I,EAAW72H,GAEzC,IAAM6kH,EAAQuB,KAWd,OARIwwB,GAAe/xB,EADEyC,KACmB7nI,KAEtB4mI,KA10NtB,SAAkCrC,EAAOa,EAAOjrI,EAAM6F,EAAOo3I,EAAW72H,GAIpE,IAAM/kB,EAA6B6pI,GAAiBd,EAAOa,GAErD1nD,EAAW0nD,EA/tVJ,IAguVb,GAAa,MAATplI,EAEA6kI,GAAqBnnD,GAAYA,EAASphD,gBAAgB9gC,EAASrB,EAAMomB,GACrE/kB,EAAQ8gC,gBAAgBniC,OAE3B,CAGD,IAAMu9J,EAAwB,MAAbtgB,EAAoBnK,GAAgBjtI,GAASo3I,EAAUp3I,EAAOukI,EAAMl8H,SAAW,GAAIlO,GAChG0qI,GAAqBnnD,GACrBA,EAASz2E,aAAazL,EAASrB,EAAMu9J,EAAUn3I,GAG/CA,EAAY/kB,EAAQuhC,eAAexc,EAAWpmB,EAAMu9J,GAChDl8J,EAAQyL,aAAa9M,EAAMu9J,IArB3C,CA40NsBluB,KACkBpE,EAAOjrI,EAAM6F,EAAOo3I,EAAW72H,IAG5Dk3I,GAuDX,SAASE,GAAevyB,EAAO/6D,EAAQutF,EAAIC,GAGvC,OADkBV,GAAe/xB,EAAOyC,KAAoB+vB,GACzCvtF,EAAS4iE,GAAgB2qB,GAAMC,EAAShe,GA8tB/D,SAASie,GAAWt8I,EAAO+/H,EAAYhb,EAAOC,EAAMn4H,EAAS0vJ,EAAYC,EAAgBpa,GAErF,IAAMxY,EAAQuB,KAERjE,EAAQkE,KAERuU,EAAgB3/H,EAlzkBJ,GAozkBZ+oH,EAAQ7B,EAAMoL,gBAlDxB,SAAiCtyH,EAAOknH,EAAO0C,EAAOmW,EAAYhb,EAAOC,EAAMn4H,EAAS0vJ,EAAYC,GAIhG,IAAMC,EAAcv1B,EAAMhC,OAGpB6D,EAAQ2W,GAAiBxY,EAAO0C,EAxykB3B,GAwykB0C5pH,EAAO,EAAmBnT,GAAW,KAAM09H,GAAYkyB,EAAaF,IACzHlY,GAAkBnd,EAAO0C,EAAOb,EAAOwB,GAAYkyB,EAAaD,IAChEruB,GAAuBjH,EAAO6B,GAE9B,IAAM8X,EAAgB9X,EAAMoa,OAASX,GAAY,GAAmB,EAAGzC,EAAYhb,EAAOC,EAAMkC,EAAM4b,kBAAmB5b,EAAM6b,aAAc,KAAM7b,EAAMD,QAASw1B,GAE5JC,EAAuC9c,GAAY1Y,EAAO,KAAM,GAAe,EAAG,KAAM,MAO9F,OANAw1B,EAAkBnqB,cAAgBxJ,EAAMwJ,cACxCsO,EAAc1iH,KAAOu+H,EACC,OAAlBx1B,EAAM2b,UACN3b,EAAM2b,QAAQ5d,SAASiC,EAAO6B,GAC9B8X,EAAcgC,QAAU3b,EAAM2b,QAAQhC,cAAc9X,IAEjDA,EApBX,CAmDgC/oH,EAAOknH,EAAO0C,EAAOmW,EAAYhb,EAAOC,EAAMn4H,EAAS0vJ,EAAYC,GACxEt1B,EAAMhsI,KAAKykJ,GAClCjU,GAAyB3C,GAAAA,GAEzB,IAAM4zB,EAAU/yB,EA90kBH,IA80kBmB2lB,cAAwC,IACxE7jJ,GAAYw7H,EAAO0C,EAAO+yB,EAAS5zB,GACnCmT,GAAgBygB,EAAS/yB,GACzBsc,GAActc,EAAOA,EAAM+V,GAAiB2G,GAAiBqW,EAAS/yB,EAAO+yB,EAAS5zB,IAClFE,GAAgBF,IAChB0Y,GAA0Bva,EAAO0C,EAAOb,GAEtB,MAAlByzB,GACAta,GAAyBtY,EAAOb,EAAOqZ,GAyC/C,SAASwa,GAAY58I,GAGjB,OAAOxR,GAxlhBAq8H,GAAiBC,OAAOS,aAwlhBLvrH,GAc9B,SAAS68I,GAAkBz+B,GAA2BwE,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAZpE,GAAYoE,QAE5CgH,EAAQuB,KAGd,OAAa,MAATvB,EACO7G,GAAS3E,EAAOyE,GAGpByQ,GADO9H,KAC2C5B,EAAOtJ,GAAkBlC,GAAQyE,GAS9F,SAASi6B,GAAkBC,GACvB,OAzkeJ,SAA6Bh0B,EAAOg0B,GAIhC,GAAyB,UAArBA,EACA,OAAOh0B,EAAMn7H,QAEjB,GAAyB,UAArBmvJ,EACA,OAAOh0B,EAAMr1G,OAGjB,IAAMuN,EAAQ8nG,EAAM9nG,MACpB,GAAIA,EAKA,IAHA,IAAM+7H,EAAc/7H,EAAMlnC,OAEtBL,EAAI,EACDA,EAAIsjK,GAAa,CAEpB,IAAMx4J,EAAQy8B,EAAMvnC,GAEpB,GAAI82I,GAA0BhsI,GAC1B,MAEJ,GAAc,IAAVA,EAKA9K,GAAQ,OAEP,GAAqB,iBAAV8K,EAGZ,IADA9K,IACOA,EAAIsjK,GAAmC,iBAAb/7H,EAAMvnC,IACnCA,QAGH,CAAA,GAAI8K,IAAUu4J,EACf,OAA0B97H,EAAMvnC,EAAI,GAGpCA,GAAQ,GAIpB,OAAO,KA9CX,CAyke+B8xI,KAA4BuxB,GA6C3D,SAASE,GAAWv/B,EAAUl5H,EAAOo3I,GAEjC,IAAMhS,EAAQuB,KAWd,OARIwwB,GAAe/xB,EADEyC,KACmB7nI,IAKpCw/I,GAHc5Y,KAEA4C,KACwBpE,EAAOlM,EAAUl5H,EAAOolI,EA19kBrD,IA09kBsEgS,GAAAA,GAG5EqhB,GAYX,SAASC,GAAsCh2B,EAAO6B,EAAOa,EAAOplI,EAAO24J,GAEvE,IAEM7mJ,EAAW6mJ,EAAe,QAAU,QAE1ChZ,GAAqBjd,EAAO0C,EAJMb,EAAa,OAILzyH,GAAWA,EAAU9R,GAwDnE,SAAS44J,GAAep9I,EAAOrhB,EAAM49J,EAAYC,GAE7C,IAAM5yB,EAAQuB,KAERjE,EAAQkE,KAERuU,EAxhlBY,GAwhlBoB3/H,EAMhCkiE,EAAW0nD,EAnjlBJ,IAqjlBPqG,EAASrG,EAAM+V,GAAiBL,GAAc3gJ,EAAMujF,EAr5gBnD2oD,GAAiBC,OAAO0C,kBAu5gBzBzE,EAAQ7B,EAAMoL,gBAtDxB,SAAqCtyH,EAAOknH,EAAO0C,EAAOqG,EAAQtxI,EAAM49J,EAAYC,GAIhF,IAAMC,EAAcv1B,EAAMhC,OAEpBjkG,EAAQspG,GAAYkyB,EAAaF,GAEjCxzB,EAAQ2W,GAAiBxY,EAAO0C,EAnhlB3B,GAmhlB0C5pH,EAAO,EAAiBrhB,EAAMsiC,GAanF,OAXsBojH,GAAkBnd,EAAO0C,EAAOb,EAAOwB,GAAYkyB,EAAaD,IAElE,OAAhBzzB,EAAM9nG,OACNg6H,GAAqBlyB,EAAOA,EAAM9nG,OAAAA,GAEZ,OAAtB8nG,EAAM/lG,aACNi4H,GAAqBlyB,EAAOA,EAAM/lG,aAAAA,GAEhB,OAAlBkkG,EAAM2b,SACN3b,EAAM2b,QAAQwa,aAAan2B,EAAO6B,GAE/BA,EArBX,CAuDoC/oH,EAAOknH,EAAO0C,EAAOqG,EAAQtxI,EAAM49J,EAAYC,GACxDt1B,EAAMhsI,KAAKykJ,GAClCjU,GAAyB3C,GAAAA,GAEzB,IAAM/lG,EAAc+lG,EAAM/lG,YACN,OAAhBA,GACAgtG,GAAgB9tD,EAAU+tD,EAAQjtG,GAGtC,IAAMp1B,EAAUm7H,EAAMn7H,QACN,OAAZA,GACAi+I,GAAiB3pE,EAAU+tD,EAAQriI,GAGvC,IAAM8lB,EAASq1G,EAAMr1G,OACN,OAAXA,GACAk4H,GAAiB1pE,EAAU+tD,EAAQv8G,GAEvChoB,GAAYw7H,EAAO0C,EAAOqG,EAAQlH,GAIH,IAx6hBxB8B,GAAiBC,OAAOyC,mBAy6hB3B2O,GAAgBjM,EAAQrG,GAn6hB5BiB,GAAiBC,OAAOyC,oBAs6hBpBtE,GAAgBF,KAChB0Y,GAA0Bva,EAAO0C,EAAOb,GACxCyY,GAAsBta,EAAO6B,EAAOa,IAEjB,OAAnB4yB,GACAta,GAAyBtY,EAAOb,GASxC,SAASu0B,KAEL,IAAI7xB,EAAwBD,KAExBI,KACAC,KAKAH,GADAD,EAA2CA,EAA6B,QAC/CA,GAG7B,IAAM1C,EAAQ0C,EA37hBdZ,GAAiBC,OAAOyC,oBA+7hBxB,IAAMrG,EAAQkE,KACVlE,EAAMoL,kBACNnE,GAAuBjH,EAAOuE,GAC1B3C,GAAmB2C,IACAvE,EAAc,QAAEq2B,WAAW9xB,IAGtB,MAA5B1C,EAAMya,oBAviYd,SAAuBza,GACnB,OAAkD,IAA5B,GAAdA,EAAMlG,OADlB,CAuiY0DkG,IAClDm0B,GAAsCh2B,EAAO6B,EAAOoC,KAAYpC,EAAMya,oBAAAA,GAE3C,MAA3Bza,EAAMua,mBAjhYd,SAAuBva,GACnB,OAAkD,IAA5B,GAAdA,EAAMlG,OADlB,CAihYyDkG,IACjDm0B,GAAsCh2B,EAAO6B,EAAOoC,KAAYpC,EAAMua,mBAAAA,GAc9E,SAASka,GAAUx9I,EAAOrhB,EAAM49J,EAAYC,GACxCY,GAAep9I,EAAOrhB,EAAM49J,EAAYC,GACxCc,KAmGJ,SAASG,GAAwBz9I,EAAOu8I,EAAYC,GAEhD,IAAM5yB,EAAQuB,KAERjE,EAAQkE,KAERuU,EAAgB3/H,EAhulBJ,GAqulBZ+oH,EAAQ7B,EAAMoL,gBA/CxB,SAA8CtyH,EAAOknH,EAAO0C,EAAO2yB,EAAYC,GAG3E,IAAMC,EAAcv1B,EAAMhC,OAEpBjkG,EAAQspG,GAAYkyB,EAAaF,GAEjCxzB,EAAQ2W,GAAiBxY,EAAO0C,EA5tlB3B,GA4tlB0C5pH,EAAO,EAA0B,eAAgBihB,GAYtG,OATc,OAAVA,GACAg6H,GAAqBlyB,EAAO9nG,GAAAA,GAIhCojH,GAAkBnd,EAAO0C,EAAOb,EADdwB,GAAYkyB,EAAaD,IAErB,OAAlBt1B,EAAM2b,SACN3b,EAAM2b,QAAQwa,aAAan2B,EAAO6B,GAE/BA,EAnBX,CAgD6C/oH,EAAOknH,EAAO0C,EAAO2yB,EAAYC,GACnDt1B,EAAMhsI,KAAKykJ,GAClCjU,GAAyB3C,GAAAA,GAGzB,IAAMkH,EAASrG,EAAM+V,GACjB/V,EAjwlBS,IAiwlBO2lB,cAA2C,IAC/D7jJ,GAAYw7H,EAAO0C,EAAOqG,EAAQlH,GAClCmT,GAAgBjM,EAAQrG,GACpBX,GAAgBF,KAChB0Y,GAA0Bva,EAAO0C,EAAOb,GACxCyY,GAAsBta,EAAO6B,EAAOa,IAElB,MAAlB4yB,GACAta,GAAyBtY,EAAOb,GASxC,SAAS20B,KAEL,IAAIjyB,EAAwBD,KAEtBtE,EAAQkE,KACVQ,KACAC,KAKAH,GADAD,EAA2CA,EAA6B,QAC/CA,GAGzBvE,EAAMoL,kBACNnE,GAAuBjH,EAAOuE,GAC1B3C,GAAmB2C,IACAvE,EAAc,QAAEq2B,WAAW9xB,IAmC1D,SAASkyB,KACL,OAA6CxyB,KAajD,SAAS,GAAUpmI,GAGf,QAASA,GAA2B,mBAAbA,EAAI0J,KAK/B,SAASmvJ,GAAa74J,GAGlB,QAASA,GAAgC,mBAAlBA,EAAIzF,UAuB/B,SAASu+J,GAAWh/I,EAAWi/I,GAAgCC,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GAAAA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAErDn0B,EAAQuB,KAERjE,EAAQkE,KAERrC,EAAQyC,KAEd,OADAyyB,GAAiB/2B,EAAO0C,EAAOA,EA73lBlB,IA63lBmCb,EAAOlqH,EAAWi/I,EAAYE,EAAYD,GACnFF,GAwBX,SAASK,GAAiCr/I,EAAWi/I,GAAgCC,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GAAAA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAE3Eh1B,EAAQyC,KAER5B,EAAQuB,KAERjE,EAAQkE,KAMd,OADA6yB,GAAiB/2B,EAAO0C,EADP2d,GAFE7a,GAAuBxF,EAAMhsI,MAEG6tI,EAAOa,GACjBb,EAAOlqH,EAAWi/I,EAAYE,EAAYD,GAC5EG,GAoDX,SAASD,GAAiB/2B,EAAO0C,EAAO1nD,EAAU6mD,EAAOlqH,EAAWi/I,GAAgCC,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GAAAA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAE1FI,EAAuBl1B,GAAgBF,GAIvCghB,EAFkB7iB,EAAMoL,kBAEOpL,EAAMx0B,UAAYw0B,EAAMx0B,QAAU,KAKjEs3C,EAAW3C,GAAYzd,GAIzBw0B,GAAAA,EAEJ,GAAmB,IAAfr1B,EAAM7+H,KAA0B,CAEhC,IAAM+lI,EAA4BpG,GAAiBd,EAAOa,GAEpDy0B,EAAWN,EAAsBA,EAAoB9tB,GAAU,GAE/DvmI,EAAS20J,EAAS30J,QAAUumI,EAE5BquB,EAAgBtU,EAASjwJ,OAEzBkwJ,EAAoB8T,EAKrBvoB,SAAAA,GAAAA,OAAWuoB,EAAoBr0B,GAAY8L,EAAOzM,EAAM/oH,SAAStW,QAClEq/H,EAAM/oH,MAGV,GAAIqpH,GAAqBnnD,GAAW,CAYhC,IAAIq8E,EAAmB,KAUvB,IAHKR,GAAuBI,IACxBI,EAhGhB,SAA8Br3B,EAAO0C,EAAO/qH,EAAW2/I,GAEnD,IAAMzU,EAAW7iB,EAAMx0B,QACvB,GAAgB,MAAZq3C,EACA,IAAK,IAAIrwJ,EAAI,EAAGA,EAAIqwJ,EAAShwJ,OAAS,EAAGL,GAAK,EAAG,CAE7C,IAAM+kK,EAAmB1U,EAASrwJ,GAClC,GAAI+kK,IAAqB5/I,GAAakrI,EAASrwJ,EAAI,KAAO8kK,EAAU,CAKhE,IAAMxU,EAA8BpgB,EAl8lBpC,GAo8lBM80B,EAAwB3U,EAASrwJ,EAAI,GAC3C,OAAOswJ,EAASjwJ,OAAS2kK,EAAwB1U,EAAS0U,GAAyB,KAOvD,iBAArBD,IACP/kK,GAAK,GAIjB,OAAO,KA3BX,CAgGwDwtI,EAAO0C,EAAO/qH,EAAWkqH,EAAM/oH,QAElD,OAArBu+I,GAMuB,EAAwCI,sBAAwBJ,GACxEK,qBAAuBd,EACtC,EAAwCa,qBAAuBb,EAC/DM,GAAAA,MAEC,CAIDN,EAAae,GAAa91B,EAAOa,EAAOk0B,GAAAA,GAExC,IAAMxR,EAAYpqE,EAAS48E,OAAOT,EAAS1/J,MAAQ+K,EAAQmV,EAAWi/I,GAEtE9T,EAASvqJ,KAAKq+J,EAAYxR,GAC1BvC,GAAYA,EAAStqJ,KAAKof,EAAWorI,EAAmBqU,EAAeA,EAAgB,SAI3FR,EAAae,GAAa91B,EAAOa,EAAOk0B,GAAAA,GACxCp0J,EAAO8oB,iBAAiB3T,EAAWi/I,EAAYE,GAE/ChU,EAASvqJ,KAAKq+J,GACd/T,GAAYA,EAAStqJ,KAAKof,EAAWorI,EAAmBqU,EAAeN,GAK/E,IAEI1sF,EAFEm0D,EAAUsD,EAAMtD,QAGtB,GAAI24B,GAA8B,OAAZ34B,IAAqBn0D,EAAQm0D,EAAQ5mH,IAAa,CAEpE,IAAMkgJ,EAAcztF,EAAMv3E,OAC1B,GAAIglK,EACA,IAAK,IAAIrlK,EAAI,EAAGA,EAAIqlK,EAAarlK,GAAK,EAAG,CAErC,IAYMse,EAPoB4xH,EALOt4D,EAAM53E,IAGlB43E,EAAM53E,EAAI,IASH4F,UAAUw+J,GAEhCp7I,EAAMsnI,EAASjwJ,OACrBiwJ,EAASvqJ,KAAKq+J,EAAY9lJ,GAC1B+xI,GAAYA,EAAStqJ,KAAKof,EAAWkqH,EAAM/oH,MAAO0C,IAAOA,EAAM,MAW/E,SAASs8I,GAAiCp1B,EAAOk0B,EAAYt7J,GACzD,IAEI,OAAA,IAAOs7J,EAAWt7J,GAEtB,MAAOtE,GAEH,OADA4oJ,GAAYld,EAAO1rI,IAAAA,GAe3B,SAAS2gK,GAAa91B,EAAOa,EAAOk0B,EAAYmB,GAG5C,OAAO,SAIEC,EAA0C18J,GAG/C,GAAIA,IAAMwB,SACN,OAAO85J,EAKX,IAAMxsB,EAA0B,EAAdvI,EAAMlG,MACpBmH,GAAyBjB,EAAM/oH,MAAO4pH,GACtCA,EAE2C,IAA3B,GAAfA,EAhpmBC,KAipmBFgd,GAActV,GAQlB,IALA,IAAI7uI,EAASu8J,GAAiCp1B,EAAOk0B,EAAYt7J,GAI7D28J,EAAiB,EAAiEP,qBAC/EO,GAEH18J,EAASu8J,GAAiCp1B,EAAOu1B,EAAgB38J,IAAMC,EACvE08J,EAAiB,EAAsCP,qBAO3D,OALIK,IAAAA,IAA0Bx8J,IAC1BD,EAAEy4D,iBAEFz4D,EAAEmvB,aAAAA,GAEClvB,GA4Bf,SAAS28J,KAAsB,IAAR57J,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAC3B,OA3miBJ,SAAyBA,GAIrB,OAFqBqnI,GAAiBC,OAAOS,aASjD,SAAqB8zB,EAAcnwB,GAC/B,KAAOmwB,EAAe,GAGlBnwB,EAAiCA,EA1kEhB,IA2kEjBmwB,IAEJ,OAAOnwB,EAPX,CARoB1rI,EAA0BqnI,GAAiBC,OAAoB,eA5kEnE,GAykEhB,CA2miB2BtnI,GAmB3B,SAAS87J,GAA4Bv2B,EAAOw2B,GAKxC,IAHA,IAAIC,EAAyB,KAEvBC,EA5vYV,SAA+B12B,GAE3B,IAAMiU,EAAYjU,EAAM9nG,MACxB,GAAiB,MAAb+7G,EAAmB,CAEnB,IAAM0iB,EAAqB1iB,EAAUr8I,QAAQ,GAG7C,GAAiC,IAAP,EAArB++J,GACD,OAA0B1iB,EAAU0iB,EAAqB,GAGjE,OAAO,KAZX,CA4vYqD32B,GACxCrvI,EAAI,EAAGA,EAAI6lK,EAAgBxlK,OAAQL,IAAK,CAE7C,IAAMywI,EAAYo1B,EAAgB7lK,GAGlC,GAAkB,MAAdywI,GAMJ,GAA2B,OAAvBs1B,EACA9hB,GAA2B5U,EAAOoB,GAAAA,GAClCyT,GAAyB6hB,EAAoBt1B,GAC7C,OAAOzwI,OARP8lK,EAAyB9lK,EAWjC,OAAO8lK,EAwBX,SAASG,GAAgBJ,GAErB,IAAMK,EAAmCz0B,KAvumBV,IApBpB,GA4vmBX,IAAKy0B,EAAcvc,WAYf,IARA,IAEMwc,EAAkBD,EAAcvc,WAClC5f,GAHuB87B,EAAkBA,EAAgBxlK,OAAS,EAGrC,MAE3B+lK,EAAQD,EAAgBxjK,QAE1B0jK,EAAiBH,EAAc92C,MACT,OAAnBi3C,GAAyB,CAE5B,IAAMC,EAAYT,EAAkBD,GAA4BS,EAAgBR,GAAmB,EACjF,OAAdS,IACIF,EAAME,GACaF,EAAME,GAAa5c,eAAiB2c,EAGvDF,EAAgBG,GAAaD,EAEjCD,EAAME,GAAaD,GAEvBA,EAAiBA,EAAe94J,MAuB5C,SAASg5J,GAAah2B,GAA8BhpG,IAAnBi/H,EAAmBj/H,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAH,EAAGA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAE1C2oG,EAAQuB,KAERjE,EAAQkE,KAERqgB,EAAkB/L,GAAiBxY,EAAO0C,EAjzmBrC,GAizmBoDK,EAAW,EAAoB,KAAMhpG,GAAS,MAE1E,OAA/BwqH,EAAgBpI,aAChBoI,EAAgBpI,WAAa6c,GAEjCr0B,KA9iOJ,SAAyB3E,EAAO0C,EAAO6hB,GASnCD,GAPiB5hB,EAhwYJ,IAuwYsB,EAAgBA,EAAO6hB,EALrCrB,GAAgBljB,EAAOukB,EAAiB7hB,GAI5C2gB,GAFGkB,EAAgBnjJ,QAA6BshI,EA9wYtD,GAgxYuCA,IARtD,CAkjOwB1C,EAAO0C,EAAO6hB,GAoEtC,SAAS0U,GAAuBziC,EAAU7uD,EAAQutF,EAAIC,EAAQzgB,GAE1D,IAAMhS,EAAQuB,KAERi1B,EAAoBjE,GAAevyB,EAAO/6D,EAAQutF,EAAIC,GAU5D,OATI+D,IAAsB/hB,IAKtB2F,GAHc5Y,KAEA4C,KACwBpE,EAAOlM,EAAU0iC,EAAmBx2B,EA93mBjE,IA83mBkFgS,GAAAA,GAIxFukB,GAsbX,IACME,GAAgB,GA2WtB,SAASC,GAAe3zB,EAAO4zB,EAAavgJ,EAAOwgJ,EAAWC,GAc1D,IAZA,IAAMC,EAAqC/zB,EAAM3sH,EAAQ,GAEnD2gJ,EAAwB,OAAhBJ,EAEVrsG,EAASssG,EAAY3hB,GAAqB6hB,GAAmB1hB,GAAqB0hB,GAElFE,GAAAA,EAMc,IAAX1sG,KAAAA,IAAiB0sG,GAA4BD,IAAQ,CAGxD,IAEME,EAAyCl0B,EAAMz4E,EAAS,GAC1D4sG,GAH6Cn0B,EAAMz4E,GAGbqsG,KACtCK,GAAAA,EACAj0B,EAAMz4E,EAAS,GAAKssG,EAAYthB,GAA8B2hB,GAC1D9hB,GAA8B8hB,IAEtC3sG,EAASssG,EAAY3hB,GAAqBgiB,GACtC7hB,GAAqB6hB,GAEzBD,IAEAj0B,EAAM3sH,EAAQ,GAAKwgJ,EAAYzhB,GAA8B2hB,GACzDxhB,GAA8BwhB,IAsB1C,SAASI,GAAeC,EAAmBR,GAGvC,OAA0B,OAAtBQ,GAEe,MAAfR,IAEC/6J,MAAMqQ,QAAQkrJ,GAAqBA,EAAkB,GAAKA,KACvDR,MAIC/6J,MAAMqQ,QAAQkrJ,IAA6C,iBAAhBR,IAGzC18B,GAAqBk9B,EAAmBR,IAC3C,EAkDZ,IAAMS,GAAc,CAChBC,QAAS,EACThmK,IAAK,EACLimK,OAAQ,EACR18J,MAAO,EACP28J,SAAU,GAOd,SAASC,GAAiBvuJ,GACtB,OAAOA,EAAKtQ,UAAUy+J,GAAY/lK,IAAK+lK,GAAYE,QA0CvD,SAASG,GAAmBxuJ,EAAMmN,GAE9B,IAAM8Z,EAAMknI,GAAYC,QACxB,OAAInnI,IAAQ9Z,GACA,GAEZA,EAAQghJ,GAAYE,OAsFxB,SAA2BruJ,EAAMyrF,EAAYC,GACzC,KAAOD,EAAaC,GAAY1rF,EAAKrY,WAAW8jG,GAAc,IAC1DA,IAEJ,OAAOA,EAJX,CAtFmDzrF,EAAMmuJ,GAAY/lK,IAAM+kB,EAAO8Z,GACvEwnI,GAAkBzuJ,EAAMmN,EAAO8Z,IAuE1C,SAASwnI,GAAkBzuJ,EAAMyrF,EAAYC,GACzC,KAAOD,EAAaC,GAAY1rF,EAAKrY,WAAW8jG,IAAe,IAC3DA,IAEJ,OAAOA,EA+LX,SAASijE,GAAYpiJ,EAAM3a,EAAO63J,GAE9B,OADAmF,GAAqBriJ,EAAM3a,EAAO63J,GAAAA,GAC3BkF,GAkBX,SAASE,GAAYp1J,EAAW7H,GAE5B,OADAg9J,GAAqBn1J,EAAW7H,EAAO,MAAA,GAChCi9J,GA2DX,SAASC,GAAW9zJ,GAChB+zJ,GAAgBh+B,GAAkBi+B,GAAmBh0J,GAAAA,GAYzD,SAASg0J,GAAkBh+B,EAAe/wH,GACtC,IAAK,IAAInZ,EAnYb,SAAwBmZ,GAEpB,OA+EJ,SAA0BA,GACtBmuJ,GAAY/lK,IAAM,EAClB+lK,GAAYE,OAAS,EACrBF,GAAYx8J,MAAQ,EACpBw8J,GAAYG,SAAW,EACvBH,GAAYC,QAAUpuJ,EAAK9Y,OAL/B,CAhFqB8Y,GACVwuJ,GAAmBxuJ,EAAMyuJ,GAAkBzuJ,EAAM,EAAGmuJ,GAAYC,UAF3E,CAmYgCpuJ,GAAOnZ,GAAK,EAAGA,EAAI2nK,GAAmBxuJ,EAAMnZ,GACpEiqI,GAAiBC,EAAew9B,GAAiBvuJ,IAAAA,GAYzD,SAAS2uJ,GAAqBriJ,EAAM3a,EAAOq9J,EAAmB1E,GAE1D,IAeQ2E,EA1ilBFh3B,EA2hlBAlB,EAAQuB,KAERjE,EAAQkE,KAKRgB,EAAeE,GAAsB,IACvCpF,EAAMga,iBACN6gB,GAAuB76B,EAAO/nH,EAAMitH,EAAc+wB,GAElD34J,IAAU65I,IAAasd,GAAe/xB,EAAOwC,EAAc5nI,MAKlC,MAArBq9J,IACIC,EA3ilBM,QADZh3B,EAASD,GAAiBC,QACP,KAAOA,EAAO2C,oBA4ilB3Bo0B,EAAoB,GAK5BG,GAAc96B,EADmBA,EAAMhsI,KAAK4yI,KAltpB9B,IAmtpBclE,EAAOA,EAxupB1B,IAwupB2CzqH,EAAMyqH,EAAMwC,EAAe,GA4qBvF,SAA4C5nI,EAAOq9J,GAc/C,OAba,MAATr9J,IAGkC,mBAAtBq9J,EAEZr9J,EAAQq9J,EAAkBr9J,GAEQ,iBAAtBq9J,EACZr9J,GAAgBq9J,EAEM,iBAAVr9J,IACZA,EAAQU,GAAU4xI,GAAgBtyI,MAE/BA,EAdX,CA5qB+HA,EAAOq9J,GAAoB1E,EAAc/wB,IAgBxK,SAASu1B,GAAgBh+B,EAAkBs+B,EAAcz9J,EAAO24J,GAE5D,IAAMj2B,EAAQkE,KAERgB,EAAeE,GAAsB,GACvCpF,EAAMga,iBACN6gB,GAAuB76B,EAAO,KAAMkF,EAAc+wB,GAGtD,IAAMvzB,EAAQuB,KACd,GAAI3mI,IAAU65I,IAAasd,GAAe/xB,EAAOwC,EAAc5nI,GAAQ,CAInE,IAAMukI,EAA2B7B,EAAMhsI,KAAK4yI,KAjvpB9B,IAkvpBd,GAAIo0B,GAAsBn5B,EAAOo0B,KAAkBgF,GAAiBj7B,EAAOkF,GAAe,CAgBtF,IAAIg2B,EAAejF,EAAep0B,EAAMya,mBAAqBza,EAAMua,kBAG9C,OAAjB8e,IAEA59J,EAAQ07H,GAAuBkiC,EAAc59J,GAAgB,KAIjE04J,GAAsCh2B,EAAO6B,EAAOa,EAAOplI,EAAO24J,QA4Z9E,SAA0Bj2B,EAAO6B,EAAOa,EAAO1nD,EAAUmgF,EAAkBC,EAAkBnF,EAAc/wB,GACnG,IAA0CiS,KAE1CgkB,EAAmB,IAUvB,IAPA,IAAIE,EAAW,EAEXrT,EAAW,EAEXsT,EAAS,EAAIH,EAAiBtoK,OAASsoK,EAAiB,GAAK,KAE7DxL,EAAS,EAAIyL,EAAiBvoK,OAASuoK,EAAiB,GAAK,KAC/C,OAAXE,GAA8B,OAAX3L,GAAiB,CAIvC,IAAM5kB,EAAWswB,EAAWF,EAAiBtoK,OAASsoK,EAAiBE,EAAW,QAAA,EAE5E1wG,EAAWq9F,EAAWoT,EAAiBvoK,OAASuoK,EAAiBpT,EAAW,QAAA,EAE9EuT,EAAS,KAET9a,OAAAA,EACA6a,IAAW3L,GAEX0L,GAAY,EACZrT,GAAY,EACRjd,IAAapgF,IACb4wG,EAAS5L,EACTlP,EAAW91F,IAGC,OAAXglG,GAA8B,OAAX2L,GAAmBA,EAAS,GAKpDD,GAAY,EACZE,EAASD,IAOTtT,GAAY,EACZuT,EAAS5L,EACTlP,EAAW91F,GAEA,OAAX4wG,GACAT,GAAc96B,EAAO6B,EAAOa,EAAO1nD,EAAUugF,EAAQ9a,EAAUwV,EAAc/wB,GAEjFo2B,EAASD,EAAWF,EAAiBtoK,OAASsoK,EAAiBE,GAAY,KAC3E1L,EAAS3H,EAAWoT,EAAiBvoK,OAASuoK,EAAiBpT,GAAY,MAtDnF,CAzZ6BhoB,EAAO6B,EAAOa,EAAOA,EAnypBjC,IAmypBkDA,EAAMwC,EAAe,GAAIxC,EAAMwC,EAAe,GA0VjH,SAAgCzI,EAAkBs+B,EAAcz9J,GAC5D,GAAa,MAATA,GAAuD,KAAVA,EAC7C,OAAO,GAEX,IAAMk+J,EAAqB,GAErBC,EAAoC7rB,GAAgBtyI,GAC1D,GAAIgB,MAAMqQ,QAAQ8sJ,GACd,IAAK,IAAIjpK,EAAI,EAAGA,EAAIipK,EAAe5oK,OAAQL,IACvCiqI,EAAiB++B,EAAoBC,EAAejpK,IAAAA,QAGvD,GAA8B,iBAAnBipK,EACZ,IAAK,IAAM1nK,KAAO0nK,EACVA,EAAerlK,eAAerC,IAC9B0oI,EAAiB++B,EAAoBznK,EAAK0nK,EAAe1nK,QAIlC,iBAAnB0nK,GACZV,EAAaS,EAAoBC,GAMrC,OAAOD,EA1BX,CA1V6I/+B,EAAkBs+B,EAAcz9J,GAAQ24J,EAAc/wB,IAWnM,SAAS+1B,GAAiBj7B,EAAOkF,GAE7B,OAAOA,GAAgBlF,EAAM6Z,kBAYjC,SAASghB,GAAuB76B,EAAOq5B,EAAan0B,EAAc+wB,GAG9D,IAAMxwB,EAAQzF,EAAMhsI,KACpB,GAAgC,OAA5ByxI,EAAMP,EAAe,GAAa,CAOlC,IAAMrD,EAA2B4D,EAAMmB,KAlzpBzB,IAozpBR80B,EAAiBT,GAAiBj7B,EAAOkF,GAC3C81B,GAAsBn5B,EAAOo0B,IAAiC,OAAhBoD,IAAyBqC,IAKvErC,GAAAA,GAEJA,EAmBR,SAAgC5zB,EAAO5D,EAAO85B,EAAY1F,GAEtD,IAAM2F,EAAmBp2B,GAAuBC,GAE5Co2B,EAAW5F,EAAep0B,EAAM0a,gBAAkB1a,EAAMwa,eAC5D,GAAyB,OAArBuf,EAMqJ,KAAlE3F,EAAep0B,EAAM2a,cAAgB3a,EAAM4a,iBAM1Hkf,EAAaG,GADbH,EAAaI,GAA6B,KAAMt2B,EAAO5D,EAAO85B,EAAY1F,GACxBp0B,EAAM9nG,MAAOk8H,GAE/D4F,EAAW,UAGd,CAID,IAAM9f,EAAuBla,EAAMka,qBAGnC,IADyE,IAA1BA,GAA+BtW,EAAMsW,KAA0B6f,EAI1G,GAFAD,EACII,GAA6BH,EAAkBn2B,EAAO5D,EAAO85B,EAAY1F,GAC5D,OAAb4F,EAAmB,CAQnB,IAAIG,EAuCpB,SAAoCv2B,EAAO5D,EAAOo0B,GAE9C,IAAMgG,EAAWhG,EAAep0B,EAAM2a,cAAgB3a,EAAM4a,cAC5D,GAAuC,IAAnC3E,GAAqBmkB,GAIzB,OAA0Bx2B,EAAMkS,GAAqBskB,IAPzD,CAvCoEx2B,EAAO5D,EAAOo0B,QAAAA,IAC9D+F,GAAoC19J,MAAMqQ,QAAQqtJ,IAoGtE,SAAoCv2B,EAAO5D,EAAOo0B,EAAcoD,GAK5D5zB,EAAMkS,GAHWse,EAAep0B,EAAM2a,cAAgB3a,EAAM4a,gBAGpB4c,EAL5C,CA7F+C5zB,EAAO5D,EAAOo0B,EAFzC+F,EACIF,GAFJE,EAAqBD,GAA6B,KAAMt2B,EAAO5D,EAAOm6B,EAAmB,GAAkC/F,GAE1Ep0B,EAAM9nG,MAAOk8H,SAUlE4F,EAsGhB,SAAyBp2B,EAAO5D,EAAOo0B,GASnC,IAPA,IAAI4F,OAAAA,EAEE10B,EAAetF,EAAMsF,aAKlB30I,EAAI,EAAIqvI,EAAMka,qBAAsBvpJ,EAAI20I,EAAc30I,IAG3DqpK,EAA8BC,GAAyBD,EADrBp2B,EAAMjzI,GAAM4rI,UAC0B63B,GAE5E,OAA0B6F,GAAyBD,EAAUh6B,EAAM9nG,MAAOk8H,GAd9E,CAtG2CxwB,EAAO5D,EAAOo0B,GAOrD,YAAA,IAHI4F,IACA5F,EAAgBp0B,EAAM0a,gBAAkBsf,EAAah6B,EAAMwa,eAAiBwf,GAEzEF,EAhEX,CAnB6Cl2B,EAAO5D,EAAOw3B,EAAapD,GAx1BxE,SAA+BxwB,EAAO5D,EAAOq6B,EAAuBpjJ,EAAOqjJ,EAAe5C,GAGtF,IAAI6C,EAAY7C,EAAiB13B,EAAM2a,cAAgB3a,EAAM4a,cAEzD4f,EAAW1kB,GAAqBykB,GAEhCE,EAAWxkB,GAAqBskB,GACpC32B,EAAM3sH,GAASojJ,EAEf,IAEI7C,EAFAkD,GAAAA,EAGJ,GAAIj+J,MAAMqQ,QAAQutJ,GAAwB,CAGtC,IAAMM,EAAsB,GAGR,QAFpBnD,EAAcmD,EAAoB,KAG9B7/B,GAAqB6/B,EAAqB,GAAoC,KAE9ED,GAAAA,QAIJlD,EAAc6C,EAElB,GAAIC,EAOA,GAHyC,IAAbG,EAGH,CAGrB,IAAMG,EAAe9kB,GAAwClS,EAAM42B,EAAW,IAC9E52B,EAAM3sH,EAAQ,GAAK4+H,GAAgB+kB,EAAcJ,GAG5B,IAAjBI,IAEAh3B,EAAMg3B,EAAe,GACjB1kB,GAAwCtS,EAAMg3B,EAAe,GAAM3jJ,IAG3E2sH,EAAM42B,EAAW,GA9sY+D,OA8sYlB52B,EAAM42B,EAAW,GAAMvjJ,GA7sY5E,QAgtYT2sH,EAAM3sH,EAAQ,GAAK4+H,GAAgB2kB,EAAU,GAG5B,IAAbA,IAEA52B,EAAM42B,EAAW,GAAKtkB,GAAwCtS,EAAM42B,EAAW,GAAMvjJ,IAGzFujJ,EAAWvjJ,OAMf2sH,EAAM3sH,EAAQ,GAAK4+H,GAAgB4kB,EAAU,GAG5B,IAAbD,EACAA,EAAWvjJ,EAIX2sH,EAAM62B,EAAW,GAAKvkB,GAAwCtS,EAAM62B,EAAW,GAAMxjJ,GAEzFwjJ,EAAWxjJ,EAIXyjJ,IACA92B,EAAM3sH,EAAQ,GAAK++H,GAAiDpS,EAAM3sH,EAAQ,KAEtFsgJ,GAAe3zB,EAAO4zB,EAAavgJ,GAAAA,GACnCsgJ,GAAe3zB,EAAO4zB,EAAavgJ,GAAAA,GAqBvC,SAAwC+oH,EAAOw3B,EAAa5zB,EAAO3sH,EAAOygJ,GAEtE,IAAMsC,EAAWtC,EAAiB13B,EAAM0a,gBAAkB1a,EAAMwa,eAChD,MAAZwf,GAA6D,iBAAfxC,GAC9C18B,GAAqBk/B,EAAUxC,IAAgB,IAE/C5zB,EAAM3sH,EAAQ,GAAKk/H,GAAiDvS,EAAM3sH,EAAQ,KAN1F,CApBmC+oH,EAAOw3B,EAAa5zB,EAAO3sH,EAAOygJ,GACjE6C,EAAY1kB,GAAgB2kB,EAAUC,GAClC/C,EACA13B,EAAM2a,cAAgB4f,EAGtBv6B,EAAM4a,cAAgB2f,EA1F9B,CAy1B8B32B,EAAO5D,EAAOw3B,EAAan0B,EAAcw2B,EAAgBzF,IA8MvF,SAAS8F,GAA6BH,EAAkBn2B,EAAO5D,EAAO85B,EAAY1F,GAI9E,IAAIyG,EAAmB,KAEjBv1B,EAAetF,EAAMsF,aAEvB4U,EAAuBla,EAAMka,qBAOjC,KAN8B,IAA1BA,EACAA,EAAuBla,EAAMqF,eAG7B6U,IAEGA,EAAuB5U,IAG1Bw0B,EAAaG,GAAyBH,GAFtCe,EAAsCj3B,EAAMsW,IAEuB3d,UAAW63B,GAC1EyG,IAAqBd,IAEzB7f,IAQJ,OANyB,OAArB6f,IAIA/5B,EAAMka,qBAAuBA,GAE1B4f,EAUX,SAASG,GAAyBH,EAAY5hI,EAAOk8H,GAEjD,IAAM0G,EAAgB1G,EAAe,EAAkB,EAEnD2G,GAAiB,EACrB,GAAc,OAAV7iI,EACA,IAAK,IAAIvnC,EAAI,EAAGA,EAAIunC,EAAMlnC,OAAQL,IAAK,CAEnC,IAAMuI,EAA0Bg/B,EAAMvnC,GAClB,iBAATuI,EACP6hK,EAAgB7hK,EAGZ6hK,IAAkBD,IACbr+J,MAAMqQ,QAAQgtJ,KACfA,OAAAA,IAAaA,EAA2B,GAAK,CAAoB,GAAIA,IAEzEl/B,GAAiB,EAAiC1hI,IAAMk7J,GAAsBl8H,IAAQvnC,KAKtG,YAAA,IAAOmpK,EAA2B,KAAOA,EA0K7C,SAASb,GAAc96B,EAAO6B,EAAOa,EAAO1nD,EAAU/iE,EAAM3a,EAAO24J,EAAc/wB,GAC7E,GAAmB,IAAfrD,EAAM7+H,KAAV,CAMA,IAAMyiI,EAAQzF,EAAMhsI,KAEd6oK,EAA4Bp3B,EAAMP,EAAe,GAKlD43B,GAr5aD,IADgE,EAm5aVD,GACtDE,GAAiBt3B,EAAO5D,EAAOa,EAAOzqH,EAAM6/H,GAAqB+kB,GAAS5G,QAAAA,KAIrE6G,GAAsBx/J,IAt8a3B,IADgE,EAy8a1Bu/J,KAE9Bv/J,EAAQy/J,GAAiBt3B,EAAO,KAAM/C,EAAOzqH,EAAMitH,EAAc+wB,IAn7RjF,SAAsBj7E,EAAUi7E,EAAc/U,EAAOjpI,EAAM3a,GAEvD,IAAM0/J,EAAe76B,GAAqBnnD,GAC1C,GAAIi7E,EAEK34J,EAWG0/J,EACA,EAAgCzuI,SAAS2yH,EAAOjpI,GAIhD,EAA6BglJ,UAAUr9J,IAAIqY,GAd3C+kJ,EACA,EAAgCE,YAAYhc,EAAOjpI,GAGnD,EAA6BglJ,UAAUrvJ,OAAOqK,OAcrD,CAID,IAAM0jH,GAA8B,GAAtB1jH,EAAKxe,QAAQ,UAAA,EAAyB,EACvC,MAAT6D,EAEI0/J,EACA,EAAgCtmE,YAAYwqD,EAAOjpI,EAAM0jH,GAGzD,EAA6Bt3H,MAAM84J,eAAellJ,GAKlD+kJ,EACA,EAAgCzwI,SAAS20H,EAAOjpI,EAAM3a,EAAOq+H,GAI7D,EAA6Bt3H,MAAMglI,YAAYpxH,EAAM3a,IA9CrE,CAw7RqB09E,EAAUi7E,EADUxzB,GAAiBmE,KAAoBlE,GAC1BzqH,EAAM3a,KAmC1D,SAASy/J,GAAiBt3B,EAAO5D,EAAOa,EAAOzqH,EAAMa,EAAOm9I,GAUxD,IAHA,IAAMmH,EAA4B,OAAVv7B,EAEpBvkI,OAAAA,EACGwb,EAAQ,GAAG,CAEd,IAAMukJ,EAA4B53B,EAAM3sH,GAElCwkJ,EAAkBh/J,MAAMqQ,QAAQ0uJ,GAGhCtpK,EAAMupK,EAAkB,EAA8B,GAAKD,EAE3DE,EAAuB,OAARxpK,EAEjBypK,EAAoB96B,EAAM5pH,EAAQ,GAClC0kJ,IAAsBrmB,KAQtBqmB,EAAoBD,EAAepE,QAAAA,GAGvC,IAAI1uF,EAAe8yF,EAAe3gC,GAAiB4gC,EAAmBvlJ,GAClElkB,IAAQkkB,EAAOulJ,OAAAA,EAInB,GAHIF,IAAoBR,GAAsBryF,KAC1CA,EAAemyD,GAAiB,EAA6B3kH,IAE7D6kJ,GAAsBryF,KACtBntE,EAAQmtE,EACJ2yF,GACA,OAAO9/J,EAIf,IAAMu/J,EAA4Bp3B,EAAM3sH,EAAQ,GAChDA,EAAQskJ,EAAkBzlB,GAAqBklB,GAAU/kB,GAAqB+kB,GAElF,GAAc,OAAVh7B,EAAgB,CAIhB,IAAIg6B,EAAW5F,EAAep0B,EAAM0a,gBAAkB1a,EAAMwa,eAC5C,MAAZwf,IACAv+J,EAAQs/H,GAAiB,EAA+B3kH,IAGhE,OAAO3a,EASX,SAASw/J,GAAsBx/J,GAK3B,YAAA,IAAOA,EAoCX,SAAS09J,GAAsBn5B,EAAOo0B,GAClC,OAA4F,IAApFp0B,EAAMlG,OAASs6B,EAAe,GAAyB,KAiBnE,SAASwH,GAAO3kJ,GAAe,IAARxb,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAErBolI,EAAQuB,KAERjE,EAAQkE,KAERuU,EAAgB3/H,EAj7qBJ,GAs7qBZ+oH,EAAQ7B,EAAMoL,gBAChBoN,GAAiBxY,EAAO0C,EAt9qBjB,GAs9qBgC5pH,EAAO,EAAiB,KAAM,MAClDknH,EAAMhsI,KAAKykJ,GAE5BilB,EAAah7B,EAAM+V,GA5/T7B,SAAwBn7I,EAAO09E,GAG3B,OAAOmnD,GAAqBnnD,GAAYA,EAAS2iF,WAAWrgK,GACxD09E,EAASv2E,eAAenH,GAJhC,CA4/T6DA,EAAOolI,EA/8qBnD,KAg9qBbl+H,GAAYw7H,EAAO0C,EAAOg7B,EAAY77B,GAEtC2C,GAAyB3C,GAAAA,GA6B7B,SAAS+7B,GAAkB1I,GAEvB,OADA2I,GAAmB,GAAI3I,EAAI,IACpB0I,GAwBX,SAASC,GAAmBl2F,EAAQutF,EAAIC,GAEpC,IAAMzyB,EAAQuB,KAER65B,EAAe7I,GAAevyB,EAAO/6D,EAAQutF,EAAIC,GAIvD,OAHI2I,IAAiB3mB,IACjBqJ,GAAoB9d,EAAOkE,KAAoB,GAE5Ci3B,GA0BX,SAASE,GAAmBp2F,EAAQutF,EAAI8I,EAAIC,EAAI9I,GAE5C,IAAMzyB,EAAQuB,KAER65B,EAh8HV,SAAwBp7B,EAAO/6D,EAAQutF,EAAI8I,EAAIC,EAAI9I,GAE/C,IAEML,EAAYH,GAAgBjyB,EAFbuC,KAEkCiwB,EAAI+I,GAE3D,OADA74B,GAAsB,GACf0vB,EAAYntF,EAAS4iE,GAAgB2qB,GAAM8I,EAAKzzB,GAAgB0zB,GAAM9I,EAAShe,GAN1F,CAg8HwCzU,EAAO/6D,EAAQutF,EAAI8I,EAAIC,EAAI9I,GAI/D,OAHI2I,IAAiB3mB,IACjBqJ,GAAoB9d,EAAOkE,KAAoB,GAE5Cm3B,GA6TX,SAASG,GAAuBv2F,EAAQutF,EAAIC,GAKxCsF,GAAgBh+B,GAAkBi+B,GADRzF,GAFZhxB,KAEkCt8D,EAAQutF,EAAIC,IAAAA,GAs/BhE,SAASgJ,GAAe3nC,EAAUl5H,EAAOo3I,GAErC,IAAMhS,EAAQuB,KAWd,OARIwwB,GAAe/xB,EADEyC,KACmB7nI,IAKpCw/I,GAHc5Y,KAEA4C,KACwBpE,EAAOlM,EAAUl5H,EAAOolI,EAp3tBrD,IAo3tBsEgS,GAAAA,GAG5EypB,GAwBX,SAASC,GAA6B5nC,EAAUl5H,EAAOo3I,GAEnD,IAAMhS,EAAQuB,KAGd,GAAIwwB,GAAe/xB,EADEyC,KACmB7nI,GAAQ,CAE5C,IAAM0iI,EAAQkE,KAERrC,EAAQiF,KAKdgW,GAAwB9c,EAAO6B,EAAOa,EAAOlM,EAAUl5H,EADtC+iJ,GAFE7a,GAAuBxF,EAAMhsI,MAEG6tI,EAAOa,GACcgS,GAAAA,GAG5E,OAAO0pB,GA+yBX,SAASC,GAAsBpe,EAAW9nB,GAEtC,IAAMmmC,EAA+Bp7B,GAAiB+c,GAruvB5C,GAuuvBJnF,EAAWwjB,EAAUtqK,KAAKnB,OAAS,EAGzCo0I,GAAuBq3B,EAAW,CAAqBp3B,eAAgB4T,EAAU3T,aAAc2T,EAAW,IAyC9G,SAASyjB,GAA2BC,GAOhC,IALA,IAAIC,EAXG7gK,OAAO4wI,eAWegwB,EAAWx7J,KAXNjG,WAAW0B,YAazCigK,GAAAA,EAEEC,EAAmB,CAACH,GACnBC,GAAW,CAEd,IAAIG,OAAAA,EACJ,GAAI58B,GAAew8B,GAEfI,EAAWH,EAAU1kC,WAAQ0kC,EAAUxkC,cAEtC,CACD,GAAIwkC,EAAU1kC,UACV,MAAM,IAAIr8H,MAAM,wCAGpBkhK,EAAWH,EAAUxkC,UAEzB,GAAI2kC,EAAU,CACV,GAAIF,EAAqB,CACrBC,EAAiBpmK,KAAKqmK,GAItB,IAAMC,EAAe,EACrBA,EAAavgC,OAASwgC,GAAiBN,EAAWlgC,QAClDugC,EAAalhC,eAAiBmhC,GAAiBN,EAAW7gC,gBAC1DkhC,EAAatgC,QAAUugC,GAAiBN,EAAWjgC,SAGnD,IAAMwgC,EAAoBH,EAAS1gC,aACnC6gC,GAAqBC,GAAoBR,EAAYO,GAGrD,IAAME,EAAiBL,EAASh/B,UAE1Bs/B,EAAsBN,EAASvgC,eASrC,GARA4gC,GAAkBE,GAAiBX,EAAYS,GAC/CC,GAAuBE,GAAsBZ,EAAYU,GAEzDznC,GAAe+mC,EAAWlgC,OAAQsgC,EAAStgC,QAC3C7G,GAAe+mC,EAAW7gC,eAAgBihC,EAASjhC,gBACnDlG,GAAe+mC,EAAWjgC,QAASqgC,EAASrgC,SAGxCyD,GAAe48B,IAAaA,EAAS5qK,KAAKqrK,UAAW,CAIrD,IAAMC,EAAU,EAAkCtrK,KAClDsrK,EAAQD,WAAaC,EAAQD,WAAa,IAAIhrK,OAAOuqK,EAAS5qK,KAAKqrK,WAIvER,EAAa7/B,oBACT6/B,EAAa7/B,qBAAuB4/B,EAAS5/B,oBACjD6/B,EAAa//B,iBAAmB0/B,EAAW1/B,kBAAoB8/B,EAAS9/B,iBACxE+/B,EAAaz/B,iBAAmBo/B,EAAWp/B,kBAAoBw/B,EAASx/B,iBACxEy/B,EAAa3/B,cAAgBs/B,EAAWt/B,eAAiB0/B,EAAS1/B,cAClE2/B,EAAajgC,QAAU4/B,EAAW5/B,SAAWggC,EAAShgC,QACtDigC,EAAav/B,UAAYk/B,EAAWl/B,WAAas/B,EAASt/B,UAC1Du/B,EAAangC,OAAS8/B,EAAW9/B,QAAUkgC,EAASlgC,OAIxD,IAAMvrH,EAAWyrJ,EAASzrJ,SAC1B,GAAIA,EACA,IAAK,IAAI3gB,EAAI,EAAGA,EAAI2gB,EAAStgB,OAAQL,IAAK,CAEtC,IAAM0tI,EAAU/sH,EAAS3gB,GACrB0tI,GAAWA,EAAQq/B,WACnB,EAA+Bf,GAS/Bt+B,IAAYq+B,KACZG,GAAAA,IAKhBD,EAAY7gK,OAAO4wI,eAAeiwB,IAY1C,SAAyCE,GAMrC,IAJA,IAAIxgC,EAAW,EAEXC,EAAY,KAEP5rI,EAAImsK,EAAiB9rK,OAAS,EAAGL,GAAK,EAAGA,IAAK,CAEnD,IAAM2lI,EAAMwmC,EAAiBnsK,GAE7B2lI,EAAIgG,SAAYA,GAAYhG,EAAIgG,SAEhChG,EAAIiG,UACAoL,GAAerR,EAAIiG,UAAWA,EAAYoL,GAAepL,EAAWjG,EAAIiG,aAbpF,CAVoCugC,GA8BpC,SAASG,GAAiBxhK,GACtB,OAAIA,IAAU+/H,GACH,GAEF//H,IAAUggI,GACR,GAGAhgI,EAQf,SAAS6hK,GAAiBX,EAAYS,GAElC,IAAMO,EAAgBhB,EAAW5+B,UAE7B4+B,EAAW5+B,UADX4/B,EACuB,SAKtBplB,EAAInmI,GACDgrJ,EAAe7kB,EAAInmI,GACnBurJ,EAAcplB,EAAInmI,IAICgrJ,EAQ/B,SAASG,GAAsBZ,EAAYU,GAEvC,IAAMO,EAAqBjB,EAAWngC,eAElCmgC,EAAWngC,eADXohC,EAC4B,SAM3BrlB,EAAInmI,EAAK+5H,GACNkxB,EAAoB9kB,EAAInmI,EAAK+5H,GAC7ByxB,EAAmBrlB,EAAInmI,EAAK+5H,IAIJkxB,EAQpC,SAASF,GAAoBR,EAAYO,GAErC,IAAMW,EAAmBlB,EAAWtgC,aAEhCsgC,EAAWtgC,aADXwhC,EAC0B,SAKzBtlB,EAAInmI,GACD8qJ,EAAkB3kB,EAAInmI,GACtByrJ,EAAiBtlB,EAAInmI,IAIC8qJ,EAsGlC,IAAMY,GAAAA,WACF,SAAA,EAAYC,EAAen1F,EAAco1F,GAAAA,gBAAAA,KAAAA,GACrChoK,KAAK+nK,cAAgBA,EACrB/nK,KAAK4yE,aAAeA,EACpB5yE,KAAKgoK,YAAcA,EAMPA,OADhB,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,WACI,OAAOhoK,KAAKgoK,gBAAAA,EAVdF,GA8CN,SAASG,GAAqBtB,GACtBA,EAAWx7J,KAAKjG,UAAUgjK,cAC1BvB,EAAW1+B,SAAWkgC,GACtB,EAAkCvhC,UAY/B,WAMH,IAAMwhC,EAAqBC,GAAsBroK,MAE3C6hB,EAAUumJ,GAAsBA,EAAmBvmJ,QACzD,GAAIA,EAAS,CAET,IAAMw2D,EAAW,EAAwCA,SACzD,GAAIA,IAAamtD,GACb,EAAwCntD,SAAWx2D,OAKnD,IAAK,IAAI3lB,KAAO2lB,EACZw2D,EAASn8E,GAAO2lB,EAAQ3lB,GAGhC,EAAwC2lB,QAAU,KAClD7hB,KAAKkoK,YAAYrmJ,MAa7B,SAASsmJ,GAAoB3xH,EAAU/wC,EAAO0jI,EAAYke,GAEtD,IAAM+gB,EAAqBC,GAAsB7xH,IA2BrD,SAA+BA,EAAUq5E,GACrC,OAAOr5E,EAA6B,oBAAIq5E,EAD5C,CA1B8Br5E,EAAU,CAAE6hC,SAAUmtD,GAAW3jH,QAAS,OAE9DA,EAAUumJ,EAAmBvmJ,UAAYumJ,EAAmBvmJ,QAAU,IAEtEw2D,EAAW+vF,EAAmB/vF,SAE9B+wD,EAAmCppI,KAAqB,eAAEmpI,GAE1Dm/B,EAAiBjwF,EAAS+wD,GAChCvnH,EAAQunH,GAAgB,IAAI0+B,GAAaQ,GAAkBA,EAAe11F,aAAcntE,EAAO4yE,IAAamtD,IAC5G,EAAgC6hB,GAAe5hJ,EAQnD,SAAS4iK,GAAsB7xH,GAC3B,OAAOA,EAA6B,qBAAK,KAmE7C,SAAS+xH,GAAkBpU,EAAUve,EAAc4yB,EAAuB5lB,EAAahS,GAEnF,GADAujB,EAAW5yB,GAAkB4yB,GACzB1tJ,MAAMqQ,QAAQq9I,GAId,IAAK,IAAIx5J,EAAI,EAAGA,EAAIw5J,EAASn5J,OAAQL,IACjC4tK,GAAkBpU,EAASx5J,GAAIi7I,EAAc4yB,EAAuB5lB,EAAahS,OAGpF,CAED,IAAMzI,EAAQkE,KAERxB,EAAQuB,KAEV/M,EAAQq2B,GAAevB,GAAYA,EAAW5yB,GAAkB4yB,EAAS9wB,SAEzEolC,EAAkB7S,GAAkBzB,GAElCnqB,EAAQyC,KAERi8B,EAAqC,MAAxB1+B,EAAM2L,gBAEnBn2C,EAAWwqC,EAAMqF,eAEjB0G,EAAwB/L,EAAM2L,iBAAmB,GACvD,GAAI+f,GAAevB,KAAcA,EAAS0B,MAAO,CAG7C,IAAMvgJ,EAAU,IAAIq7H,GAAoB83B,EAAiB73B,EAAgBktB,IAEnE6K,EAAuB/mK,GAAQy9H,EAAOuW,EAAchF,EAAiB83B,EAAaA,EAAa3yB,EAAuBv2C,IAC9F,IAA1BmpE,GACAz0B,GAAmBd,GAA+B,EAA4BvI,GAAQ1C,EAAO9I,GAC7FupC,GAAgCzgC,EAAOgsB,EAAUve,EAAa56I,QAC9D46I,EAAal1I,KAAK2+H,GAClB2K,EAAMqF,iBACNrF,EAAMsF,eACFsB,IACA5G,EAAM2L,iBAAmB,OAE7B6yB,EAAsB9nK,KAAK4U,GAC3Bu1H,EAAMnqI,KAAK4U,KAGXkzJ,EAAsBG,GAAwBrzJ,EAC9Cu1H,EAAM89B,GAAwBrzJ,OAGjC,CAsBD,IAAMuzJ,EAAgCjnK,GAAQy9H,EAAOuW,EAAc8yB,EAAa3yB,EAAuBv2C,GAEjGspE,EAAoClnK,GAAQy9H,EAAOuW,EAAc8yB,EAAYA,EAAa3yB,GAE1FgzB,EAA4BF,GAAiC,GAC/DL,EAAsBK,GAEpBG,EAAgCF,GAAqC,GACvEN,EAAsBM,GAC1B,GAAIl4B,IAAmBo4B,IAClBp4B,IAAmBm4B,EAA2B,CAE/C70B,GAAmBd,GAA+B,EAA4BvI,GAAQ1C,EAAO9I,GAE7F,IAAM/pH,EAsKtB,SAAsB8jJ,EAAWn4I,EAAO2vH,EAAgBgS,EAAa34I,GAEjE,IAAMqL,EAAU,IAAIq7H,GAAoByoB,EAAWxoB,EAAgBktB,IAKnE,OAJAxoJ,EAAQugJ,MAAQ,GAChBvgJ,EAAQ2L,MAAQA,EAChB3L,EAAQ2zJ,mBAAqB,EAC7BC,GAAgB5zJ,EAASrL,EAAG24I,IAAgBhS,GACrCt7H,EAPX,CAtK6Cs7H,EAAiBu4B,GAAoCC,GAA+BZ,EAAsBxtK,OAAQ41I,EAAgBgS,EAAa6lB,IACvK73B,GAAkBo4B,IACnBR,EAAsBM,GAAmCL,gBAAkBnzJ,GAE/EszJ,GAAgCzgC,EAAOgsB,EAAUve,EAAa56I,OAAQ,GACtE46I,EAAal1I,KAAK2+H,GAClB2K,EAAMqF,iBACNrF,EAAMsF,eACFsB,IACA5G,EAAM2L,iBAAmB,OAE7B6yB,EAAsB9nK,KAAK4U,GAC3Bu1H,EAAMnqI,KAAK4U,QAOXszJ,GAAgCzgC,EAAOgsB,EAAU0U,GAAiC,EAAIA,EAClFC,EAHmBI,GAAgB,EAA2Ct4B,EAAiBk4B,EAC/FD,GAAgCJ,GAAkB73B,GAAkBgS,KAIvEhS,GAAkBgS,GAAeomB,GACfR,EAAsBM,GAAsD,uBAc/G,SAASF,GAAgCzgC,EAAOgsB,EAAUkV,EAAcC,GAEpE,IAAMC,EAAyB7T,GAAevB,GAC9C,GAAIoV,GAA0CpV,EA5hTRqC,SA4hTmB,CAErD,IAEM9uB,GAFa,EAAgC8uB,UAAYrC,GAAUjvJ,UAE3CwiI,YAC9B,GAAIA,EAAa,CAEb,IAAMoI,EAAQ3H,EAAMyH,eAAiBzH,EAAMyH,aAAe,IAC1D,IAAK25B,GAA0B,EAAkC1T,MAAO,CAIpE,IAAM2T,EAAyB15B,EAAMluI,QAAQynK,IACb,IAA5BG,EACA15B,EAAMpvI,KAAK2oK,EAAc,CAACC,EAAgB5hC,IAGtBoI,EAAM05B,EAAyB,GAAM9oK,KAAK,EAAqCgnI,QAIvGoI,EAAMpvI,KAAK2oK,EAAc3hC,KAYzC,SAASwhC,GAAgBO,EAAcn0J,EAASo0J,GAI5C,OAHIA,GACmBD,EAAgC,qBAE7BA,EAAmB,MAAE/oK,KAAK4U,GAAW,EAUnE,SAAS1T,GAAQsB,EAAM0yB,EAAKkF,EAAOC,GAC/B,IAAK,IAAIpgC,EAAImgC,EAAOngC,EAAIogC,EAAKpgC,IACzB,GAAIi7B,EAAIj7B,KAAOuI,EACX,OAAOvI,EAEf,OAAQ,EAWZ,SAASyuK,GAA8B5xJ,EAAGo2H,EAAO+7B,EAAO3/B,GACpD,OAAO4/B,GAAgC5pK,KAAW,MAAG,IAazD,SAASmpK,GAAkC3xJ,EAAGo2H,EAAO/C,EAAOb,GAExD,IAEItmI,EAFEmmK,EAA+B7pK,KAAW,MAGhD,GAAIA,KAAKyoK,gBAAiB,CAEtB,IAAMqB,EAAoC9pK,KAAKyoK,gBAAmC,mBAE5EsB,EAAiBx0B,GAAkB1K,EAAOA,EA98wB1C,GA88wB8F7qI,KAAqB,gBAAQ,MAAGgqI,GAIpI4/B,GAAaC,EAFbnmK,EAASqmK,EAAezsK,MAAM,EAAGwsK,IAIjC,IAAK,IAAInvK,EAAImvK,EAAgBnvK,EAAIovK,EAAe/uK,OAAQL,IACpD+I,EAAOhD,KAAKqpK,EAAepvK,SAM/BivK,GAAaC,EAFbnmK,EAAS,IAIb,OAAOA,EAQX,SAASkmK,GAAaC,EAAWnmK,GAC7B,IAAK,IAAI/I,EAAI,EAAGA,EAAIkvK,EAAU7uK,OAAQL,IAGlC+I,EAAOhD,MAAAA,EAD+CmpK,EAAUlvK,OAGpE,OAAO+I,EA4DX,SAASsmK,GAAmBhqC,GAA2B,IAAhBiqC,EAAgB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACnD,OAICtD,SAAAA,GACGA,EAAW5gC,kBACP,SAKCzF,EAAK4pC,GALN,OAzUZ,SAA2B5pC,EAAKN,EAAWiqC,GAEvC,IAAM9hC,EAAQkE,KACd,GAAIlE,EAAMoL,gBAAiB,CAEvB,IAAMqP,EAAczY,GAAe7J,GAEnCioC,GAAkB0B,EAAe9hC,EAAMhsI,KAAMgsI,EAAMuL,UAAWkP,GAAAA,GAE9D2lB,GAAkBvoC,EAAWmI,EAAMhsI,KAAMgsI,EAAMuL,UAAWkP,GAAAA,IATlE,CA+UyCtiB,EACzB4pC,EAAqBA,EAAmBlqC,GAAaA,EACrDiqC,KA9bhB,GAA4CvC,WAAAA,EAA5C,IA2hBMyC,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAqEAC,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAOgChiB,OAPhCgiB,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,0BAAAA,MAAAA,SAMsBhiB,GACpB,MAtBR,SAAiCA,GAE7B,IAAMjpJ,EAAQ0G,MAAAA,kCAAAA,OAAwCM,GAAUiiJ,GAAlDviJ,mDAEd,OADA,EAA4C,YAAIuiJ,EACzCjpJ,EAJX,CAsBsCipJ,OAAAA,EAPhCgiB,GAOgChiB,GAAAA,WAAAA,IAahCiiB,EAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,OAENA,EAAyBxT,KAAO,IAAIuT,GAApCC,EAfsCjiB,GAetCiiB,GAAAA,WAAAA,IAmJMC,EAIF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRvqK,KAAKuqK,cAAgBA,GAAAA,OAO7BD,EAAWxnC,kBAAoB,WAAA,OAGzB0nC,GAA2BF,IAHjCA,EA/JAD,GAuMMG,GAv/XN,SAA0Btc,GACtB,OAAOD,GAAiBC,EAAiBzhB,KAA4BL,OA2iYnEq+B,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IA+BAC,GAAmB,WAAA,IAAA,EAAG,CAOxBC,UAAW,EAIXC,SAAU,GAXc,OAa5BF,EAAoBA,EAAoBC,WAAa,YACrDD,EAAoBA,EAAoBE,UAAY,WADpDF,EAbyB,GAAzB,GAAA,WAAA,IA+BMG,EAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,OAMNA,EAAU/nC,kBAAoB,WAAA,OAGxBgoC,MAHND,EArCA,GAgPMC,GAr4XN,WAII,IAAMjgC,EAAQuB,KAIR2+B,EAAc9/B,GAFNwB,KAEqCxrH,MAAO4pH,GAC1D,OAvBJ,SAA8BG,GAE1B,IAAM7nD,EAAW6nD,EAp1aJ,IAq1ab,GAAIV,GAAqBnnD,GACrB,OAAO,EAGP,MAAM,IAAIt9E,MAAM,gEAPxB,CAuBgCgkI,GAAQkhC,GAAeA,EAAclgC,IAw3XrE,GAAA,WAAA,IAiBMmgC,EAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,OAGNA,EAAUtqC,WAAQb,GAAmB,CACjCR,MAAO2rC,EACPlrC,WAAY,OACZxqH,QAAS,WAAA,OAGH,QANV01J,EApBA,GA4DMC,GAIF,SAAA,EAAY75F,GAAAA,gBAAAA,KAAAA,GACRpxE,KAAKoxE,KAAOA,EACZpxE,KAAKkrK,MAAQ95F,EAAK5vE,MAAM,KAAK,GAC7BxB,KAAKmrK,MAAQ/5F,EAAK5vE,MAAM,KAAK,GAC7BxB,KAAKorK,MAAQh6F,EAAK5vE,MAAM,KAAKlE,MAAM,GAAGoI,KAAK,MAiB7C4zG,GAAU,IAAI2xD,GAAQ,SAOtBI,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAcqCC,OATrC,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAAStlK,GACL,OAAOy2J,GAAqBz2J,KAOhC,CAAA,IAAA,SAAA,MAAA,SAAOslK,GACH,OAAO,IAAIC,GAAsBD,OAAAA,EAfnCD,GAmBAG,GAAkB,SAKvBvqJ,EAAO/d,GALgB,OAKPA,GAOXqoK,GAAAA,WAIF,SAAA,EAAYD,GAAAA,gBAAAA,KAAAA,GACRtrK,KAAKhF,OAAS,EAEdgF,KAAKyrK,eAAiB,KAEtBzrK,KAAK0rK,iBAAmB,KACxB1rK,KAAK2rK,gBAAkB,KACvB3rK,KAAK4rK,QAAU,KACf5rK,KAAK6rK,QAAU,KACf7rK,KAAK8rK,eAAiB,KACtB9rK,KAAK+rK,eAAiB,KACtB/rK,KAAKgsK,WAAa,KAClBhsK,KAAKisK,WAAa,KAClBjsK,KAAKksK,cAAgB,KACrBlsK,KAAKmsK,cAAgB,KAErBnsK,KAAKosK,qBAAuB,KAC5BpsK,KAAKqsK,qBAAuB,KAC5BrsK,KAAKssK,WAAahB,GAAaE,GA+OnC,OAzOA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAAYpnK,GAER,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAK4rK,QAAoB,OAAXrX,EAAiBA,EAASA,EAAOnsJ,MACzDhE,EAAGmwJ,KAOX,CAAA,IAAA,mBAAA,MAAA,SAAiBnwJ,GASb,IAPA,IAAImoK,EAASvsK,KAAK4rK,QAEdY,EAAaxsK,KAAKksK,cAElBO,EAAkB,EAElBC,EAAc,KACXH,GAAUC,GAAY,CAIzB,IAAMjY,GAAUiY,GACZD,GACuBA,EAAoB,aACnCI,GAAiBH,EAAYC,EAAiBC,GACtD,EACAF,EAEEI,EAAmBD,GAAiBpY,EAAQkY,EAAiBC,GAE7DG,EAAetY,EAAOsY,aAE5B,GAAItY,IAAWiY,EACXC,IACAD,EAAaA,EAAWM,kBAIxB,GADAP,EAAS,EAA4BnkK,MACT,MAAxBmsJ,EAAOwY,cACPN,QAEC,CAEIC,IACDA,EAAc,IAElB,IAAMM,EAAyBJ,EAAmBH,EAE5CQ,EAAoB,EAAoCR,EAC9D,GAAIO,GAA0BC,EAAmB,CAC7C,IAAK,IAAItyK,EAAI,EAAGA,EAAIqyK,EAAwBryK,IAAK,CAE7C,IAAM+e,EAAS/e,EAAI+xK,EAAY1xK,OAAS0xK,EAAY/xK,GAAM+xK,EAAY/xK,GAAK,EAErEsmB,EAAQvH,EAAS/e,EACnBsyK,GAAqBhsJ,GAASA,EAAQ+rJ,IACtCN,EAAY/xK,GAAK+e,EAAS,GAKlCgzJ,EADsBnY,EAAOwY,eACAE,EAAoBD,GAIzDJ,IAAqBC,GACrBzoK,EAAGmwJ,EAAQqY,EAAkBC,MAQzC,CAAA,IAAA,sBAAA,MAAA,SAAoBzoK,GAEhB,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAK2rK,gBAA4B,OAAXpX,EAAiBA,EAASA,EAAO2Y,cACjE9oK,EAAGmwJ,KAOX,CAAA,IAAA,mBAAA,MAAA,SAAiBnwJ,GAEb,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAK8rK,eAA2B,OAAXvX,EAAiBA,EAASA,EAAO4Y,WAChE/oK,EAAGmwJ,KAOX,CAAA,IAAA,mBAAA,MAAA,SAAiBnwJ,GAEb,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAKgsK,WAAuB,OAAXzX,EAAiBA,EAASA,EAAO6Y,WAC5DhpK,EAAGmwJ,KAOX,CAAA,IAAA,qBAAA,MAAA,SAAmBnwJ,GAEf,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAKksK,cAA0B,OAAX3X,EAAiBA,EAASA,EAAOuY,aAC/D1oK,EAAGmwJ,KAOX,CAAA,IAAA,wBAAA,MAAA,SAAsBnwJ,GAElB,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAKosK,qBAAiC,OAAX7X,EAAiBA,EAASA,EAAO8Y,oBACtEjpK,EAAGmwJ,KAOX,CAAA,IAAA,OAAA,MAAA,SAAK+Y,GAGD,GAFkB,MAAdA,IACAA,EAAa,KACZ7Q,GAAqB6Q,GACtB,MAAM,IAAIznK,MAAJ,yBAAA,OAAmCM,GAAUmnK,GAA7C,6CAEV,OAAIttK,KAAKutK,MAAMD,GACJttK,KAGA,OAMf,CAAA,IAAA,YAAA,MAAA,cAKA,CAAA,IAAA,QAAA,MAAA,SAAMstK,GAAAA,IAAAA,EAAAA,KACFttK,KAAK4nD,SAEL,IAII3mC,EAEA/d,EAEAsqK,EARAjZ,EAASv0J,KAAK4rK,QAEd6B,GAAAA,EAOJ,GAAIhnK,MAAMqQ,QAAQw2J,GAAa,CAC3B,KAA4BtyK,OAASsyK,EAAWtyK,OAChD,IAAK,IAAIimB,EAAQ,EAAGA,EAAQjhB,KAAKhF,OAAQimB,IACrC/d,EAAOoqK,EAAWrsJ,GAClBusJ,EAAcxtK,KAAKssK,WAAWrrJ,EAAO/d,GACtB,OAAXqxJ,GAAoB+H,GAAe/H,EAAOmZ,UAAWF,IAKjDC,IAEAlZ,EAASv0J,KAAK2tK,mBAAmBpZ,EAAQrxJ,EAAMsqK,EAAavsJ,IAE3Dq7I,GAAe/H,EAAOrxJ,KAAMA,IAC7BlD,KAAK4tK,mBAAmBrZ,EAAQrxJ,KATpCqxJ,EAASv0J,KAAK6tK,UAAUtZ,EAAQrxJ,EAAMsqK,EAAavsJ,GACnDwsJ,GAAAA,GAUJlZ,EAASA,EAAOnsJ,WAIpB6Y,EAAQ,EAnrQpB,SAA2Bjb,EAAK5B,GAC5B,GAAIqC,MAAMqQ,QAAQ9Q,GACd,IAAK,IAAIrL,EAAI,EAAGA,EAAIqL,EAAIhL,OAAQL,IAC5ByJ,EAAG4B,EAAIrL,SAQX,IAHA,IAEIuI,EAFEsmH,EAAWxjH,EAAI,UAGX9C,EAAOsmH,EAASthH,QAAY,MAClC9D,EAAGlB,EAAKuC,OAZpB,CAorQ8B6nK,GAIjBpqK,SAAAA,GACGsqK,EAAcxtK,EAAKssK,WAAWrrJ,EAAO/d,GACtB,OAAXqxJ,GAAoB+H,GAAe/H,EAAOmZ,UAAWF,IAKjDC,IAEAlZ,EAASv0J,EAAK2tK,mBAAmBpZ,EAAQrxJ,EAAMsqK,EAAavsJ,IAE3Dq7I,GAAe/H,EAAOrxJ,KAAMA,IAC7BlD,EAAK4tK,mBAAmBrZ,EAAQrxJ,KATpCqxJ,EAASv0J,EAAK6tK,UAAUtZ,EAAQrxJ,EAAMsqK,EAAavsJ,GACnDwsJ,GAAAA,GAUJlZ,EAASA,EAAOnsJ,MAChB6Y,OAEJ,KAA4BjmB,OAASimB,EAIzC,OAFAjhB,KAAK8tK,UAAUvZ,GACf,KAA4B+Y,WAAaA,EAClCttK,KAAK+tK,UAQhB,CAAA,IAAA,SAAA,MAAA,WAcI,GAAI/tK,KAAK+tK,QAAS,CAEd,IAAIxZ,EAEAyZ,EACJ,IAAKzZ,EAASv0J,KAAK2rK,gBAAkB3rK,KAAK4rK,QAAoB,OAAXrX,EAAiBA,EAASA,EAAOnsJ,MAChFmsJ,EAAO2Y,cAAgB3Y,EAAOnsJ,MAElC,IAAKmsJ,EAASv0J,KAAK8rK,eAA2B,OAAXvX,EAAiBA,EAASA,EAAO4Y,WAChE5Y,EAAOwY,cAAgBxY,EAAOsY,aAGlC,IADA7sK,KAAK8rK,eAAiB9rK,KAAK+rK,eAAiB,KACvCxX,EAASv0J,KAAKgsK,WAAuB,OAAXzX,EAAiBA,EAASyZ,EACrDzZ,EAAOwY,cAAgBxY,EAAOsY,aAC9BmB,EAAazZ,EAAO6Y,WAExBptK,KAAKgsK,WAAahsK,KAAKisK,WAAa,KACpCjsK,KAAKksK,cAAgBlsK,KAAKmsK,cAAgB,KAC1CnsK,KAAKosK,qBAAuBpsK,KAAKqsK,qBAAuB,QAoBhE,CAAA,IAAA,YAAA,MAAA,SAAU9X,EAAQrxJ,EAAMsqK,EAAavsJ,GAGjC,IAAIgtJ,EAkCJ,OAjCe,OAAX1Z,EACA0Z,EAAiBjuK,KAAK6rK,SAGtBoC,EAAiB1Z,EAAO2Z,MAExBluK,KAAKmuK,QAAQ5Z,IAIF,QADfA,EAAiC,OAAxBv0J,KAAKyrK,eAA0B,KAAOzrK,KAAKyrK,eAAe5oJ,IAAI2qJ,EAAavsJ,KAI3Eq7I,GAAe/H,EAAOrxJ,KAAMA,IAC7BlD,KAAK4tK,mBAAmBrZ,EAAQrxJ,GACpClD,KAAKouK,WAAW7Z,EAAQ0Z,EAAgBhtJ,IAKzB,QADfszI,EAAmC,OAA1Bv0J,KAAK0rK,iBAA4B,KAAO1rK,KAAK0rK,iBAAiB7oJ,IAAI2qJ,EAAa,QAI/ElR,GAAe/H,EAAOrxJ,KAAMA,IAC7BlD,KAAK4tK,mBAAmBrZ,EAAQrxJ,GACpClD,KAAKquK,eAAe9Z,EAAQ0Z,EAAgBhtJ,IAI5CszI,EACIv0J,KAAKsuK,UAAU,IAAIC,GAAsBrrK,EAAMsqK,GAAcS,EAAgBhtJ,GAGlFszI,IAkCX,CAAA,IAAA,qBAAA,MAAA,SAAmBA,EAAQrxJ,EAAMsqK,EAAavsJ,GAE1C,IAAIutJ,EAA2C,OAA1BxuK,KAAK0rK,iBAA4B,KAAO1rK,KAAK0rK,iBAAiB7oJ,IAAI2qJ,EAAa,MAQpG,OAPuB,OAAnBgB,EACAja,EAASv0J,KAAKquK,eAAeG,EAAmCja,EAAa,MAAGtzI,GAE3EszI,EAAOsY,cAAgB5rJ,IAC5BszI,EAAOsY,aAAe5rJ,EACtBjhB,KAAKyuK,YAAYla,EAAQtzI,IAEtBszI,IAWX,CAAA,IAAA,YAAA,MAAA,SAAUA,GAEN,KAAkB,OAAXA,GAAiB,CAEpB,IAAMyZ,EAAazZ,EAAOnsJ,MAC1BpI,KAAK0uK,eAAe1uK,KAAK2uK,QAAQpa,IACjCA,EAASyZ,EAEiB,OAA1BhuK,KAAK0rK,kBACL1rK,KAAK0rK,iBAAiBvsH,QAEE,OAAxBn/C,KAAK+rK,iBACL/rK,KAAK+rK,eAAeoB,WAAa,MAEb,OAApBntK,KAAKisK,aACLjsK,KAAKisK,WAAWmB,WAAa,MAEZ,OAAjBptK,KAAK6rK,UACL7rK,KAAK6rK,QAAQzjK,MAAQ,MAEE,OAAvBpI,KAAKmsK,gBACLnsK,KAAKmsK,cAAcW,aAAe,MAEJ,OAA9B9sK,KAAKqsK,uBACLrsK,KAAKqsK,qBAAqBgB,oBAAsB,QAUxD,CAAA,IAAA,iBAAA,MAAA,SAAe9Y,EAAQqa,EAAY3tJ,GACD,OAA1BjhB,KAAK0rK,kBACL1rK,KAAK0rK,iBAAiB31J,OAAOw+I,GAGjC,IAAMpwJ,EAAOowJ,EAAOsa,aAEd3mK,EAAOqsJ,EAAOuY,aAepB,OAda,OAAT3oK,EACAnE,KAAKksK,cAAgBhkK,EAGrB/D,EAAK2oK,aAAe5kK,EAEX,OAATA,EACAlI,KAAKmsK,cAAgBhoK,EAGrB+D,EAAK2mK,aAAe1qK,EAExBnE,KAAK8uK,aAAava,EAAQqa,EAAY3tJ,GACtCjhB,KAAKyuK,YAAYla,EAAQtzI,GAClBszI,IASX,CAAA,IAAA,aAAA,MAAA,SAAWA,EAAQqa,EAAY3tJ,GAI3B,OAHAjhB,KAAK2uK,QAAQpa,GACbv0J,KAAK8uK,aAAava,EAAQqa,EAAY3tJ,GACtCjhB,KAAKyuK,YAAYla,EAAQtzI,GAClBszI,IASX,CAAA,IAAA,YAAA,MAAA,SAAUA,EAAQqa,EAAY3tJ,GAa1B,OAZAjhB,KAAK8uK,aAAava,EAAQqa,EAAY3tJ,GAIlCjhB,KAAK+rK,eAHmB,OAAxB/rK,KAAK+rK,eAGiB/rK,KAAK8rK,eAAiBvX,EAMtBv0J,KAAK+rK,eAAeoB,WAAa5Y,EAEpDA,IASX,CAAA,IAAA,eAAA,MAAA,SAAaA,EAAQqa,EAAY3tJ,GAU7B,IAAM/Y,EAAsB,OAAf0mK,EAAsB5uK,KAAK4rK,QAAUgD,EAAWxmK,MAuB7D,OAnBAmsJ,EAAOnsJ,MAAQF,EACfqsJ,EAAO2Z,MAAQU,EACF,OAAT1mK,EACAlI,KAAK6rK,QAAUtX,EAGfrsJ,EAAKgmK,MAAQ3Z,EAEE,OAAfqa,EACA5uK,KAAK4rK,QAAUrX,EAGfqa,EAAWxmK,MAAQmsJ,EAEK,OAAxBv0J,KAAKyrK,iBACLzrK,KAAKyrK,eAAiB,IAAIsD,IAE9B/uK,KAAKyrK,eAAeuD,IAAIza,GACxBA,EAAOsY,aAAe5rJ,EACfszI,IAOX,CAAA,IAAA,UAAA,MAAA,SAAQA,GACJ,OAAOv0J,KAAK0uK,eAAe1uK,KAAK2uK,QAAQpa,MAO5C,CAAA,IAAA,UAAA,MAAA,SAAQA,GACwB,OAAxBv0J,KAAKyrK,gBACLzrK,KAAKyrK,eAAe11J,OAAOw+I,GAG/B,IAAMpwJ,EAAOowJ,EAAO2Z,MAEdhmK,EAAOqsJ,EAAOnsJ,MAgBpB,OAZa,OAATjE,EACAnE,KAAK4rK,QAAU1jK,EAGf/D,EAAKiE,MAAQF,EAEJ,OAATA,EACAlI,KAAK6rK,QAAU1nK,EAGf+D,EAAKgmK,MAAQ/pK,EAEVowJ,IAQX,CAAA,IAAA,cAAA,MAAA,SAAYA,EAAQ0a,GAGhB,OAAI1a,EAAOwY,gBAAkBkC,IAMzBjvK,KAAKisK,WAHe,OAApBjsK,KAAKisK,WAGajsK,KAAKgsK,WAAazX,EAKlBv0J,KAAKisK,WAAWmB,WAAa7Y,GAVxCA,IAmBf,CAAA,IAAA,iBAAA,MAAA,SAAeA,GAoBX,OAnB8B,OAA1Bv0J,KAAK0rK,mBACL1rK,KAAK0rK,iBAAmB,IAAIqD,IAEhC/uK,KAAK0rK,iBAAiBsD,IAAIza,GAC1BA,EAAOsY,aAAe,KACtBtY,EAAOuY,aAAe,KACK,OAAvB9sK,KAAKmsK,eAGLnsK,KAAKmsK,cAAgBnsK,KAAKksK,cAAgB3X,EAC1CA,EAAOsa,aAAe,OAMtBta,EAAOsa,aAAe7uK,KAAKmsK,cAC3BnsK,KAAKmsK,cAAgBnsK,KAAKmsK,cAAcW,aAAevY,GAEpDA,IAQX,CAAA,IAAA,qBAAA,MAAA,SAAmBA,EAAQrxJ,GAQvB,OAPAqxJ,EAAOrxJ,KAAOA,EAEVlD,KAAKqsK,qBADyB,OAA9BrsK,KAAKqsK,qBACuBrsK,KAAKosK,qBAAuB7X,EAG5Bv0J,KAAKqsK,qBAAqBgB,oBAAsB9Y,EAEzEA,IAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WA7XP,OAA+B,OAAxBv0J,KAAK8rK,gBAA+C,OAApB9rK,KAAKgsK,YACjB,OAAvBhsK,KAAKksK,eAAwD,OAA9BlsK,KAAKosK,yBAW5C,EArQEb,GAwsBAgD,GAKF,SAAA,EAAYrrK,EAAMwqK,GAAAA,gBAAAA,KAAAA,GACd1tK,KAAKkD,KAAOA,EACZlD,KAAK0tK,UAAYA,EACjB1tK,KAAK6sK,aAAe,KACpB7sK,KAAK+sK,cAAgB,KAIrB/sK,KAAKktK,cAAgB,KAIrBltK,KAAKkuK,MAAQ,KAIbluK,KAAKoI,MAAQ,KAIbpI,KAAKkvK,SAAW,KAIhBlvK,KAAKmvK,SAAW,KAIhBnvK,KAAK6uK,aAAe,KAIpB7uK,KAAK8sK,aAAe,KAIpB9sK,KAAKmtK,WAAa,KAIlBntK,KAAKotK,WAAa,KAIlBptK,KAAKqtK,oBAAsB,MAmE7B+B,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAIIpvK,KAAKqvK,MAAQ,KAIbrvK,KAAKsvK,MAAQ,KAmFDD,OA1EhB,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAI9a,GACmB,OAAfv0J,KAAKqvK,OACLrvK,KAAKqvK,MAAQrvK,KAAKsvK,MAAQ/a,EAC1BA,EAAO4a,SAAW,KAClB5a,EAAO2a,SAAW,OAMClvK,KAAW,MAAEmvK,SAAW5a,EAC3CA,EAAO2a,SAAWlvK,KAAKsvK,MACvB/a,EAAO4a,SAAW,KAClBnvK,KAAKsvK,MAAQ/a,KAUrB,CAAA,IAAA,MAAA,MAAA,SAAImZ,EAAW6B,GAEX,IAAIhb,EACJ,IAAKA,EAASv0J,KAAKqvK,MAAkB,OAAX9a,EAAiBA,EAASA,EAAO4a,SACvD,IAAwB,OAAnBI,GAA2BA,GAAqChb,EAAoB,eACrF+H,GAAe/H,EAAOmZ,UAAWA,GACjC,OAAOnZ,EAGf,OAAO,OASX,CAAA,IAAA,SAAA,MAAA,SAAOA,GAkBH,IAAMpwJ,EAAOowJ,EAAO2a,SAEdhnK,EAAOqsJ,EAAO4a,SAapB,OAZa,OAAThrK,EACAnE,KAAKqvK,MAAQnnK,EAGb/D,EAAKgrK,SAAWjnK,EAEP,OAATA,EACAlI,KAAKsvK,MAAQnrK,EAGb+D,EAAKgnK,SAAW/qK,EAEE,OAAfnE,KAAKqvK,UAAAA,EA5FdD,GA8GAL,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACI/uK,KAAK+U,IAAM,IAAI++I,IA6DnB,OAvDA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAIS,GAEA,IAAMr4J,EAAMq4J,EAAOmZ,UAEf8B,EAAaxvK,KAAK+U,IAAI8N,IAAI3mB,GACzBszK,IACDA,EAAa,IAAIJ,GACjBpvK,KAAK+U,IAAIiN,IAAI9lB,EAAKszK,IAEtBA,EAAWznK,IAAIwsJ,KAYnB,CAAA,IAAA,MAAA,MAAA,SAAImZ,EAAW6B,GAEX,IAEME,EAAazvK,KAAK+U,IAAI8N,IAFhB6qJ,GAGZ,OAAO+B,EAAaA,EAAW5sJ,IAAI6qJ,EAAW6B,GAAkB,OASpE,CAAA,IAAA,SAAA,MAAA,SAAOhb,GAEH,IAAMr4J,EAAMq4J,EAAOmZ,UAOnB,OALsC1tK,KAAK+U,IAAI8N,IAAI3mB,GAEpC6Z,OAAOw+I,IAClBv0J,KAAK+U,IAAL/U,OAAgB9D,GAEbq4J,IAKX,CAAA,IAAA,QAAA,MAAA,WAOIv0J,KAAK+U,IAAIoqC,UAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WANT,OAAyB,IAAlBn/C,KAAK+U,IAAI0M,SAKpB,EA/DEstJ,GA6EN,SAASpC,GAAiBzpK,EAAMupK,EAAiBC,GAE7C,IAAMK,EAAgB7pK,EAAK6pK,cAC3B,GAAsB,OAAlBA,EACA,OAAOA,EAEX,IAAI2C,EAAa,EAIjB,OAHIhD,GAAeK,EAAgBL,EAAY1xK,SAC3C00K,EAAahD,EAAYK,IAEtBA,EAAgBN,EAAkBiD,EAW7C,IAAMC,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAaeC,OARf,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAAS5pK,GACL,OAAOA,aAAe8tJ,KAAO4I,GAAa12J,KAM9C,CAAA,IAAA,SAAA,MAAA,WACI,OAAO,IAAI4pK,OAAAA,EAdbD,GAoBAC,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACI5vK,KAAK6vK,SAAW,IAAI/b,IACpB9zJ,KAAK8vK,SAAW,KAEhB9vK,KAAK+vK,aAAe,KACpB/vK,KAAKgwK,iBAAmB,KACxBhwK,KAAKiwK,aAAe,KACpBjwK,KAAKkwK,aAAe,KACpBlwK,KAAK8rK,eAAiB,KACtB9rK,KAAK+rK,eAAiB,KACtB/rK,KAAKksK,cAAgB,KACrBlsK,KAAKmsK,cAAgB,KAazB,OARA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAQY/nK,GAER,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAK8vK,SAAqB,OAAXvb,EAAiBA,EAASA,EAAOnsJ,MAC1DhE,EAAGmwJ,KAOX,CAAA,IAAA,sBAAA,MAAA,SAAoBnwJ,GAEhB,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAKgwK,iBAA6B,OAAXzb,EAAiBA,EAASA,EAAO2Y,cAClE9oK,EAAGmwJ,KAOX,CAAA,IAAA,qBAAA,MAAA,SAAmBnwJ,GAEf,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAKiwK,aAAyB,OAAX1b,EAAiBA,EAASA,EAAO4b,aAC9D/rK,EAAGmwJ,KAOX,CAAA,IAAA,mBAAA,MAAA,SAAiBnwJ,GAEb,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAK8rK,eAA2B,OAAXvX,EAAiBA,EAASA,EAAO4Y,WAChE/oK,EAAGmwJ,KAOX,CAAA,IAAA,qBAAA,MAAA,SAAmBnwJ,GAEf,IAAImwJ,EACJ,IAAKA,EAASv0J,KAAKksK,cAA0B,OAAX3X,EAAiBA,EAASA,EAAOuY,aAC/D1oK,EAAGmwJ,KAOX,CAAA,IAAA,OAAA,MAAA,SAAKx/I,GACD,GAAKA,GAGA,KAAMA,aAAe++I,KAAO4I,GAAa3nJ,IAC1C,MAAM,IAAIlP,MAAJ,yBAAA,OAAmCM,GAAU4O,GAA7C,8CAHNA,EAAM,IAAI++I,IAKd,OAAO9zJ,KAAKutK,MAAMx4J,GAAO/U,KAAO,OAKpC,CAAA,IAAA,YAAA,MAAA,cAOA,CAAA,IAAA,QAAA,MAAA,SAAM+U,GAAAA,IAAAA,EAAAA,KACF/U,KAAK4nD,SAEL,IAAI56C,EAAehN,KAAK8vK,SAoBxB,GAnBA9vK,KAAK+vK,aAAe,KACpB/vK,KAAKowK,SAASr7J,GAAK,SAKlBtP,EAAOvJ,GACJ,GAAI8Q,GAAgBA,EAAa9Q,MAAQA,EACrC8D,EAAKqwK,mBAAmBrjK,EAAcvH,GACtCzF,EAAK+vK,aAAe/iK,EACpBA,EAAeA,EAAa5E,UAE3B,CAED,IAAMmsJ,EAASv0J,EAAKswK,yBAAyBp0K,EAAKuJ,GAClDuH,EAAehN,EAAKuwK,sBAAsBvjK,EAAcunJ,OAI5DvnJ,EAAc,CACVA,EAAakhK,QACblhK,EAAakhK,MAAM9lK,MAAQ,MAE/BpI,KAAKksK,cAAgBl/J,EACrB,IAAK,IAAIunJ,EAASvnJ,EAAyB,OAAXunJ,EAAiBA,EAASA,EAAOuY,aACzDvY,IAAWv0J,KAAK8vK,WAChB9vK,KAAK8vK,SAAW,MAEpB9vK,KAAK6vK,SAAL7vK,OAAqBu0J,EAAOr4J,KAC5Bq4J,EAAOuY,aAAevY,EAAOnsJ,MAC7BmsJ,EAAOwT,cAAgBxT,EAAO3hF,aAC9B2hF,EAAO3hF,aAAe,KACtB2hF,EAAO2Z,MAAQ,KACf3Z,EAAOnsJ,MAAQ,KAQvB,OAJIpI,KAAKkwK,eACLlwK,KAAKkwK,aAAaC,aAAe,MACjCnwK,KAAK+rK,iBACL/rK,KAAK+rK,eAAeoB,WAAa,MAC9BntK,KAAK+tK,UAchB,CAAA,IAAA,wBAAA,MAAA,SAAsBrvH,EAAQ61G,GAC1B,GAAI71G,EAAQ,CAER,IAAMv6C,EAAOu6C,EAAOwvH,MAWpB,OAVA3Z,EAAOnsJ,MAAQs2C,EACf61G,EAAO2Z,MAAQ/pK,EACfu6C,EAAOwvH,MAAQ3Z,EACXpwJ,IACAA,EAAKiE,MAAQmsJ,GAEb71G,IAAW1+C,KAAK8vK,WAChB9vK,KAAK8vK,SAAWvb,GAEpBv0J,KAAK+vK,aAAerxH,EACbA,EAUX,OARI1+C,KAAK+vK,cACL/vK,KAAK+vK,aAAa3nK,MAAQmsJ,EAC1BA,EAAO2Z,MAAQluK,KAAK+vK,cAGpB/vK,KAAK8vK,SAAWvb,EAEpBv0J,KAAK+vK,aAAexb,EACb,OAQX,CAAA,IAAA,2BAAA,MAAA,SAAyBr4J,EAAKuJ,GAC1B,GAAIzF,KAAK6vK,SAAS9Z,IAAI75J,GAAM,CAExB,IAAMq4J,EAA4Bv0J,KAAK6vK,SAAShtJ,IAAI3mB,GACpD8D,KAAKqwK,mBAAmB9b,EAAQ9uJ,GAEhC,IAAMtB,EAAOowJ,EAAO2Z,MAEdhmK,EAAOqsJ,EAAOnsJ,MASpB,OARIjE,IACAA,EAAKiE,MAAQF,GAEbA,IACAA,EAAKgmK,MAAQ/pK,GAEjBowJ,EAAOnsJ,MAAQ,KACfmsJ,EAAO2Z,MAAQ,KACR3Z,EAGX,IAAMA,EAAS,IAAIic,GAAsBt0K,GAIzC,OAHA8D,KAAK6vK,SAAS7tJ,IAAI9lB,EAAKq4J,GACvBA,EAAO3hF,aAAentE,EACtBzF,KAAKywK,gBAAgBlc,GACdA,IAMX,CAAA,IAAA,SAAA,MAAA,WACI,GAAIv0J,KAAK+tK,QAAS,CAEd,IAAIxZ,EAGJ,IADAv0J,KAAKgwK,iBAAmBhwK,KAAK8vK,SACxBvb,EAASv0J,KAAKgwK,iBAA6B,OAAXzb,EAAiBA,EAASA,EAAOnsJ,MAClEmsJ,EAAO2Y,cAAgB3Y,EAAOnsJ,MAIlC,IAAKmsJ,EAASv0J,KAAKiwK,aAAyB,OAAX1b,EAAiBA,EAASA,EAAO4b,aAC9D5b,EAAOwT,cAAgBxT,EAAO3hF,aAElC,IAAK2hF,EAASv0J,KAAK8rK,eAA0B,MAAVvX,EAAgBA,EAASA,EAAO4Y,WAC/D5Y,EAAOwT,cAAgBxT,EAAO3hF,aAElC5yE,KAAKiwK,aAAejwK,KAAKkwK,aAAe,KACxClwK,KAAK8rK,eAAiB9rK,KAAK+rK,eAAiB,KAC5C/rK,KAAKksK,cAAgB,QAU7B,CAAA,IAAA,qBAAA,MAAA,SAAmB3X,EAAQzhG,GAClBwpG,GAAexpG,EAAUyhG,EAAO3hF,gBACjC2hF,EAAOwT,cAAgBxT,EAAO3hF,aAC9B2hF,EAAO3hF,aAAe9f,EACtB9yD,KAAK0wK,cAAcnc,MAQ3B,CAAA,IAAA,kBAAA,MAAA,SAAgBA,GACgB,OAAxBv0J,KAAK8rK,eACL9rK,KAAK8rK,eAAiB9rK,KAAK+rK,eAAiBxX,GAGzBv0J,KAAoB,eAAEmtK,WAAa5Y,EACtDv0J,KAAK+rK,eAAiBxX,KAQ9B,CAAA,IAAA,gBAAA,MAAA,SAAcA,GACgB,OAAtBv0J,KAAKiwK,aACLjwK,KAAKiwK,aAAejwK,KAAKkwK,aAAe3b,GAGrBv0J,KAAkB,aAAEmwK,aAAe5b,EACtDv0J,KAAKkwK,aAAe3b,KAW5B,CAAA,IAAA,WAAA,MAAA,SAASvuJ,EAAK5B,GACN4B,aAAe8tJ,IACf9tJ,EAAI2R,QAAQvT,GAGZ2B,OAAOP,KAAKQ,GAAK2R,SAIjB1b,SAAAA,GAAAA,OAAKmI,EAAG4B,EAAI/J,GAAIA,QAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WA3RpB,OAA+B,OAAxB+D,KAAK8rK,gBAAiD,OAAtB9rK,KAAKiwK,cACjB,OAAvBjwK,KAAKksK,kBAMb,EAzBE0D,GAwWAY,GAIF,SAAA,EAAYt0K,GAAAA,gBAAAA,KAAAA,GACR8D,KAAK9D,IAAMA,EACX8D,KAAK+nK,cAAgB,KACrB/nK,KAAK4yE,aAAe,KAIpB5yE,KAAKktK,cAAgB,KAIrBltK,KAAKoI,MAAQ,KAIbpI,KAAKkuK,MAAQ,KAIbluK,KAAKmtK,WAAa,KAIlBntK,KAAK8sK,aAAe,KAIpB9sK,KAAKmwK,aAAe,MAAA,GAAA,WAAA,IAyMtBQ,EAAAA,WAIF,SAAA,EAAY9G,GAAAA,gBAAAA,KAAAA,GACR7pK,KAAK6pK,UAAYA,EA6DrB,OAtDA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAsDKnuC,GAED,IAsCyBvwH,EAtCnBmK,EAAUtV,KAAK6pK,UAAUz4I,MAI/BnnB,SAAAA,GAAAA,OAAKA,EAAEi7C,SAASw2E,MAChB,GAAe,MAAXpmH,EACA,OAAOA,EAGP,MAAM,IAAIzP,MAAJ,2CAAA,OAAqD61H,EAArD,eAAA,QA6BevwH,EA7BoFuwH,GA8B/F,aAAYvwH,EA9BhB,SA6BeA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,SA9Ff0+J,EAAWtgK,GACrB,GAAc,MAAVA,EAAgB,CAEhB,IAAMqnK,EAASrnK,EAAOsgK,UAAUvsK,QAChCusK,EAAYA,EAAUrtK,OAAOo0K,GAEjC,OAAO,IAAID,EAAgB9G,KAwB/B,CAAA,IAAA,SAAA,MAAA,SAAcA,GACV,MAAO,CACHxmC,QAASstC,EACTva,WAIC7sJ,SAAAA,GACG,IAAKA,EAID,MAAM,IAAI1D,MAAM,2DAEpB,OAAO8qK,EAAgB9pK,OAAOgjK,EAAWtgK,IAG7C8sJ,KAAM,CAAC,CAACsa,EAAiB,IAAInxC,GAAY,IAAIF,UAOrD,EAlEEqxC,GAkEF,OAgBJA,EAAgBjwC,WAAQb,GAAmB,CACvCR,MAAOsxC,EACP7wC,WAAY,OACZxqH,QAAS,WAAA,OAGH,IAAIq7J,EAAgB,CAAC,IAAItF,QANnCsF,EA3R4B,GA2R5BA,GAAAA,WAAAA,IAyJME,EAAAA,WAIF,SAAA,EAAYhH,GAAAA,gBAAAA,KAAAA,GACR7pK,KAAK6pK,UAAYA,EA8DrB,OAtDA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAsDKiH,GAED,IAAMx7J,EAAUtV,KAAK6pK,UAAUz4I,MAI/BnnB,SAAAA,GAAAA,OAAKA,EAAEi7C,SAAS4rH,MAChB,GAAIx7J,EACA,OAAOA,EAEX,MAAM,IAAIzP,MAAJ,2CAAA,OAAqDirK,EAArD,SAAqDA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,SAhEjDjH,EAAWtgK,GACrB,GAAIA,EAAQ,CAER,IAAMqnK,EAASrnK,EAAOsgK,UAAUvsK,QAChCusK,EAAYA,EAAUrtK,OAAOo0K,GAEjC,OAAO,IAAIC,EAAgBhH,KAyB/B,CAAA,IAAA,SAAA,MAAA,SAAcA,GACV,MAAO,CACHxmC,QAASwtC,EACTza,WAIC7sJ,SAAAA,GACG,IAAKA,EAGD,MAAM,IAAI1D,MAAM,2DAEpB,OAAOgrK,EAAgBhqK,OAAOgjK,EAAWtgK,IAG7C8sJ,KAAM,CAAC,CAACwa,EAAiB,IAAIrxC,GAAY,IAAIF,UAOrD,EAnEEuxC,GAmEF,OAcJA,EAAgBnwC,WAAQb,GAAmB,CACvCR,MAAOwxC,EACP/wC,WAAY,OACZxqH,QAAS,WAAA,OAGH,IAAIu7J,EAAgB,CAAC,IAAIlB,QANnCkB,EA1OAF,GAwQMI,GAAa,CAAC,IAAIpB,IAOlBqB,GAAyB,IAAIL,GAFd,CAAC,IAAItF,KAIpB4F,GAAyB,IAAIJ,GAAgBE,IATnD,GAAA,WAAA,IAoCMG,EAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,OAMNA,EAAYpuC,kBAAoB,WAAA,OAG1BquC,GAA4BD,EAAa5G,KAH/C4G,EA1CA,GAkFMC,GAh7cN,SAA2B/iB,EAAkBF,GACzC,OAAOC,GAAkBC,EAAkBF,EAAiBzhB,KAA4BL,OA26c5F,GAAA,WAAA,IA2BMglC,EAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,OAMNA,EAAiBtuC,kBAAoB,WAAA,OAG/BuuC,GAAkCD,EAAkB9G,KAH1D8G,EAjCA,GAyKMC,GAjhdN,SAAgC1iB,EAAuBT,GAGnD,OAAOQ,GAAmBC,EAAuBT,EADRzhB,KACwCL,OAmljB/EklC,GAAwC,GAkSxCC,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYhiB,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRn1B,EAAAA,EAAAA,KAAAA,OACKm1B,SAAWA,EAFRA,EAayCA,OAJrD,aAAA,EAAA,CAAA,CAAA,IAAA,0BAAA,MAAA,SAAwBnH,GAGpB,IAAMopB,EAAkC9oC,GAAgB0f,GACxD,OAAO,IAAIqpB,GAAmBD,EAAcxxK,KAAKuvJ,cAAAA,EAjBnDgiB,CAAmClH,IA+BzC,SAASqH,GAAW38J,GAEhB,IAAM+C,EAAQ,GACd,IAAK,IAAI65J,KAAe58J,EAChBA,EAAIxW,eAAeozK,IAGnB75J,EAAMpX,KAAK,CAAEi+H,SADI5pH,EAAI48J,GACYC,aAAcD,IAGvD,OAAO75J,EAgBX,IAAM+5J,GAAY,IAAI9uC,GAAe,kBAAmB,CACpDjD,WAAY,OACZxqH,QAAS,WAAA,OAGHs9H,MAoCJ6+B,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,EAAYD,EAAcjiB,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACtBn1B,EAAAA,EAAAA,KAAAA,OACKo3C,aAAeA,EACpBxxK,EAAKuvJ,SAAWA,EAChBvvJ,EAAK8xK,cAAgBN,EAAarmK,KAClCnL,EAAK8+B,SAAoC0yI,EAAa9yI,UAt4vBtC3pB,IAAImqI,IAAsBx5I,KAAK,KAu4vB/C1F,EAAKomI,mBACDorC,EAAaprC,mBAAqBorC,EAAaprC,mBAAqB,GACxEpmI,EAAK+xK,kBAAoBxiB,EARHA,EA6B1B,OAhBA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAgBO9rB,EAAU0rB,EAAkB6iB,EAAoBziB,GAGnD,IAuCInH,EAEA6pB,EAzCEC,GAFN3iB,EAAWA,GAAYvvJ,KAAKuvJ,UAhEpC,SAA+B2iB,EAAkBh9B,GAC7C,MAAO,CACHryH,IAAK,SAOJw8G,EAAO6E,EAAeJ,GAEnB,IAAMr+H,EAAQysK,EAAiBrvJ,IAAIw8G,EAAO,GAA4DyE,GACtG,OAAIr+H,IAAU6rK,IACVptC,IAAkBotC,GAMX7rK,EAEJyvI,EAAeryH,IAAIw8G,EAAO6E,EAAeJ,KArB5D,CAkEkEL,EAAU8rB,EAAS9rB,UAAYA,EAEnFid,EAAqCwxB,EAAiBrvJ,IAAI4nJ,GAAkBlgC,IAE5EsS,EAAYq1B,EAAiBrvJ,IAAImoJ,GAAW,MAE5CmH,EAAezxB,EAAgBlW,eAAe,KAAMxqI,KAAKwxK,cAIzDY,EAAiCpyK,KAAKwxK,aAAa9yI,UAAU,GAAG,IAAQ,MAExE2zI,EAAYL,EAjpqB1B,SAA2B7uF,EAAUmvF,EAAmBtqC,GACpD,GAAIsC,GAAqBnnD,GAIrB,OAAOA,EAASovF,kBAAkBD,EADVtqC,IAAkB7C,GAAoBI,WAIlE,IAAIitC,EAAwC,iBAAtBF,EACCnvF,EAASr8D,cAAcwrJ,GAC1CA,EAOJ,OADAE,EAAS5tI,YAAc,GAChB4tI,EAjBX,CAkpqB8BL,EAAcH,EAAoBhyK,KAAKwxK,aAAaxpC,eACtEuY,GAAc6xB,EAAa1xB,EAAgBlW,eAAe,KAAMxqI,KAAKwxK,cAtGjF,SAAwBY,GAEpB,IAAMxyK,EAAOwyK,EAAY1jK,cACzB,MAAgB,QAAT9O,EAvq8BW,6BAuq8BgC,SAATA,EArq8BnB,iCAqq8ByD,KAHnF,CAsG+GwyK,IAEjGK,EAAYzyK,KAAKwxK,aAAa7pC,OAAS,IACzC,IAME+qC,EAA2C,iBAAvBV,GACtB,kCAAkC9mK,KAAK8mK,GAErC/pB,EA92OH,CACH7G,WAAY,GACZ/kB,UAAwBuW,GACxB+/B,MAAOtqB,GACPuqB,cAAgC,KAChC9uC,MAAO,GA42OD2iC,EAAYhjB,GAAY,GAAe,EAAG,KAAM,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,MAE9EovB,EAAYryB,GAAY,KAAMimB,EAAWxe,EAAawqB,EAAW,KAAM,KAAM/xB,EAAiByxB,EAAct1B,EAAWq1B,GAM7H9jC,GAAUykC,EAAW,MAKrB,IAEI,IAAM3rB,EAp9OlB,SAAiCmC,EAAO/oB,EAAKqqB,EAAUjK,EAAiByxB,EAAct1B,GAElF,IAAM1U,EAAQwiB,EAznvBJ,GA2nvBVA,EAAS,IAAqBtB,EAE9B,IAAMrf,EAAQ2W,GAAiBxY,EAAO,KAAM,EAAG,EAAiB,KAAM,MAEhElkG,EAAc+lG,EAAM/lG,YAAcq8F,EAAIiG,UACxB,OAAhBtiG,IACAi4H,GAAqBlyB,EAAO/lG,GAAAA,GACd,OAAVolH,IACApY,GAAgBkhC,EAAc9oB,EAAOplH,GACf,OAAlB+lG,EAAMn7H,SACNi+I,GAAiBqlB,EAAc9oB,EAAOrf,EAAMn7H,SAE3B,OAAjBm7H,EAAMr1G,QACNk4H,GAAiBslB,EAAc9oB,EAAOrf,EAAMr1G,UAKxD,IAAMm+I,EAAepyB,EAAgBlW,eAAe6e,EAAO/oB,GAErD4mB,EAAgB1G,GAAYmK,EAAUnH,GAA0BljB,GAAM,KAAMA,EAAIqH,OAAS,GAAiB,GAAsBgjB,EAtmvBpH,IAsmvB6I3gB,EAAO0W,EAAiBoyB,OAAAA,GAQvL,OAPI3qC,EAAMoL,kBACNW,GAAmBd,GAA+BpJ,EAAO2gB,GAAWxiB,EAAO7H,EAAIn1H,MAC/Ew6I,GAAoBxd,EAAO6B,GAC3B8b,GAAe9b,EAAO2gB,EAAS3vJ,OAAQ,IAE3CmsJ,GAAcwD,EAAUzD,GAEjByD,EA9mvBW,IA8mvBezD,EAhCrC,CAo9O0DmrB,EAAWryK,KAAKwxK,aAAcqB,EAAWnyB,EAAiByxB,GACxG,GAAIE,EACA,GAAIL,EACA/gC,GAAgBkhC,EAAcE,EAAW,CAAC,aAAc/4D,GAAQloC,WAE/D,CAAA,IAAA,EAt8vBrB,SAA4CtyC,GASxC,IAPA,IAAMoD,EAAQ,GAERrzB,EAAU,GAEZlU,EAAI,EAEJovF,EAAO,EACJpvF,EAAImkC,EAAS9jC,QAAQ,CAExB,IAAIokJ,EAAgBtgH,EAASnkC,GAC7B,GAA6B,iBAAlBykJ,EACM,IAATr1D,EACsB,KAAlBq1D,GACAl9G,EAAMxhC,KAAK0+I,EAAkCtgH,IAAWnkC,IAG9C,IAATovF,GACLl7E,EAAQnO,KAAK0+I,OAGhB,CAID,IAAKhB,GAAWr0D,GACZ,MACJA,EAAOq1D,EAEXzkJ,IAEJ,MAAO,CAAEunC,MAAAA,EAAOrzB,QAAAA,GAhCpB,CA08vBkF7O,KAAKwxK,aAAa9yI,UAAU,IAAlFwD,EAJP,EAIK,MAASrzB,EAJd,EAIY,QACTqzB,GACA+uG,GAAgBkhC,EAAcE,EAAWnwI,GAEzCrzB,GAAWA,EAAQ7T,OAAS,GAC5B8xJ,GAAiBqlB,EAAcE,EAAWxjK,EAAQnJ,KAAK,MAKnE,GADAusK,EAAkClnC,GAAS07B,EAAW,QAAA,IAClDtX,EAGA,IADA,IAAM7K,EAAa2tB,EAAa3tB,WAAa,GACpC3pJ,EAAI,EAAGA,EAAIqF,KAAKomI,mBAAmBprI,OAAQL,IAAK,CAErD,IAAMo4K,EAAe5jB,EAAiBx0J,GAMtC2pJ,EAAW5jJ,KAAqB,MAAhBqyK,EAAuBtsK,MAAM8tE,KAAKw+F,GAAgB,MAM1E3qB,EA38OZ,SAA6BlB,EAAesqB,EAAcqB,EAAW5qB,EAAa+qB,GAE9E,IAAM7qC,EAAQ0qC,EAtqvBJ,GAyqvBJzqB,EAl2aV,SAAkCjgB,EAAO0C,EAAOvK,GAE5C,IAAM2yC,EAAYxmC,KACdtE,EAAMoL,kBACFjT,EAAIyF,mBACJzF,EAAIyF,kBAAkBzF,GAC1BylB,GAAgC5d,EAAO8qC,EAAW,GAClD/sB,GAAqB/d,EAAO0C,EAAOvK,IAGvC,IAAMoQ,EAAY6E,GAAkB1K,EAAO1C,EAAO0C,EAAM7vI,OAAS,EAAG,GACpEmiJ,GAAgBzM,EAAW7F,GAE3B,IAAMqG,EAASpG,GAAiBmoC,EAAWpoC,GAI3C,OAHIqG,GACAiM,GAAgBjM,EAAQrG,GAErB6F,EAjBX,CAk2a+CvI,EAAO0qC,EAAWrB,GAC7DvpB,EAAY7G,WAAW1gJ,KAAK0nJ,GAC5BlB,EA7pvBY,GA6pvBakB,EACzB4qB,GAAgBA,EAAar7J,SAI5B0wH,SAAAA,GAAAA,OAAYA,EAAQ+f,EAAWopB,MAG5BA,EAAahrC,gBACbgrC,EAAahrC,eAAe,EAAgB4hB,EAAWyqB,EAAU73K,OAAS,GAG9E,IAAMi4K,EAAYxmC,KAClB,GAAItE,EAAMoL,kBACyB,OAA9Bi+B,EAAanrC,cAAoD,OAA3BmrC,EAAajrC,WAAqB,CAGzEyI,GADqBikC,EAAUhyJ,MAlpvBjB,IAqpvBd,IAAMwlJ,EAAYoM,EA9rvBZ,GA+rvBNzsB,GAAqCqgB,EAAW+K,GAChD5qB,GAAkB6f,EAAWoM,EAAWrB,EAAalrC,UACrD4c,GAAiCsuB,EAAcppB,GAEnD,OAAOA,EA/BX,CA28O4ClB,EAAelnJ,KAAKwxK,aAAcqB,EAAW5qB,EAAa,CAACue,KAC3F1lB,GAAW2lB,EAAWoM,EAAW,MAvCrC,QA0CI/jC,KAGJ,IAAM0gB,EAAe,IAAI0jB,GAAelzK,KAAK8xK,cAAe1pB,EAAW6F,GAAiBqc,GAAY2H,EAAcY,GAAYA,EAAWZ,GAOzI,OANKD,IAAsBU,IAIJjM,EAAe,KAAE18C,MAAQkoD,GAEzCziB,IAAAA,CAAAA,IAAAA,SAAAA,IAAAA,WAhHP,OAAOkiB,GAAW1xK,KAAKwxK,aAAa/qC,UAKxC,CAAA,IAAA,UAAA,IAAA,WACI,OAAOirC,GAAW1xK,KAAKwxK,aAAa9qC,aASxC,EAlCE+qC,CAA2BtH,IA+K3B+I,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQF,SAAA,EAAYpB,EAAet7H,EAAU94C,EAAUy1K,EAAY38B,GAAAA,IAAAA,EAxyrB/BrO,EAA2B0C,EAInDb,EAoyrBuDwM,OAAAA,gBAAAA,KAAAA,IACvDpc,EAAAA,EAAAA,KAAAA,OACK18H,SAAWA,EAChBsC,EAAKmzK,WAAaA,EAClBnzK,EAAKw2I,OAASA,EACdx2I,EAAKozK,WAAa,GAClBpzK,EAAKw2C,SAAWA,EAChBx2C,EAAKmrI,SAAWnrI,EAAKqzK,kBAAoB,IAAItlB,GAAYolB,GA/yrBjChrC,EAgzrBDgrC,EAzr+BjB,GAy4S6CtoC,EAgzrBCsoC,EA3yrB3C,OADTnpC,EAAQ7B,EAAM/oG,QAId+oG,EAAM/oG,KAAO4qG,EAA2B6W,GAAY1Y,EAwyrBV,KAvyrB1C,GAuyrBiD,EAvyrB5B,KAAM,OAE/B0C,EA14SW,GA04SK,EAsyrBZ7qI,EAAK8xK,cAAgBA,EATkCt7B,EAoB3D,OANA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WAOQx2I,KAAKozK,aACLpzK,KAAKozK,WAAWz7J,SAIhBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKozK,WAAa,MACjBpzK,KAAKmrI,SAASskB,WAAazvJ,KAAKmrI,SAAShxD,aAOlD,CAAA,IAAA,YAAA,MAAA,SAAUz1E,GACF1E,KAAKozK,YACLpzK,KAAKozK,WAAW1yK,KAAKgE,KAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WAtBzB,OAAO,IAAIgwI,GAAa10I,KAAKw2I,OAAQx2I,KAAKmzK,gBAK9C,EA5BED,CA4BF,WAAA,OAAA,SAAA,IAAA,gBAAA,KAAA,IAAA,IAqFErmK,QAAAA,EAcFymK,GAAW,CACX,KACA,CAAC,CAAC,IAAK,KAAM,CAAC,KAAM,MAAOzmK,IAC3B,CAAC,CAAC,KAAM,MAAOA,GAAGA,IAClB,CACI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAChF,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YACnE,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAEzCA,GACA,CACI,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxD,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC9E,CACI,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAC1E,UAAW,WAAY,aAG/BA,GACA,CAAC,CAAC,IAAK,KAAM,CAAC,KAAM,MAAO,CAAC,gBAAiB,gBAC7C,EACA,CAAC,EAAG,GACJ,CAAC,SAAU,WAAY,YAAa,mBACpC,CAAC,SAAU,YAAa,cAAe,kBACvC,CAAC,WAAYA,GAAG,eAAkBA,IAClC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAK,SAAK,SAAK,MAAO,KAC1D,CAAC,YAAa,SAAU,eAAa,OACrC,MACA,IACA,YACA,GACA,MAxCJ,SAAgB6D,GAEZ,IAAI/V,EAAIqoB,KAAKa,MAAMb,KAAK6K,IAAInd,IAExBxD,EAAIwD,EAAE7Q,WAAWgM,QAAQ,YAAa,IAAI7Q,OAC9C,OAAU,IAANL,GAAiB,IAANuS,EACJ,EACJ,IA8CPqmK,GAAc,GAiFlB,SAASC,GAAcC,GAKnB,OAJMA,KAAoBF,KACtBA,GAAYE,GAAoBzxC,GAAQ0xC,IAAM1xC,GAAQ0xC,GAAGC,QAAU3xC,GAAQ0xC,GAAGC,OAAOl+J,SACjFusH,GAAQ0xC,GAAGC,OAAOl+J,QAAQg+J,IAE3BF,GAAYE,GAUvB,IAAMG,GAAe,WAAA,IAAA,EAAG,CACpBC,SAAU,EACVC,iBAAkB,EAClBC,qBAAsB,EACtBC,WAAY,EACZC,eAAgB,EAChBC,aAAc,EACdC,iBAAkB,EAClBC,KAAM,EACNC,eAAgB,EAChBC,aAAc,EACdC,WAAY,GACZC,WAAY,GACZC,eAAgB,GAChBC,cAAe,GACfC,cAAe,GACfC,aAAc,GACdC,eAAgB,GAChBC,aAAc,GACdC,WAAY,GACZC,eAAgB,GAChBC,WAAY,GACZC,UAAW,IAtBS,OAwBxBtB,EAAgBA,EAAgBC,UAAY,WAC5CD,EAAgBA,EAAgBE,kBAAoB,mBACpDF,EAAgBA,EAAgBG,sBAAwB,uBACxDH,EAAgBA,EAAgBI,YAAc,aAC9CJ,EAAgBA,EAAgBK,gBAAkB,iBAClDL,EAAgBA,EAAgBM,cAAgB,eAChDN,EAAgBA,EAAgBO,kBAAoB,mBACpDP,EAAgBA,EAAgBQ,MAAQ,OACxCR,EAAgBA,EAAgBS,gBAAkB,iBAClDT,EAAgBA,EAAgBU,cAAgB,eAChDV,EAAgBA,EAAgBW,YAAc,aAC9CX,EAAgBA,EAAgBY,YAAc,aAC9CZ,EAAgBA,EAAgBa,gBAAkB,iBAClDb,EAAgBA,EAAgBc,eAAiB,gBACjDd,EAAgBA,EAAgBe,eAAiB,gBACjDf,EAAgBA,EAAgBgB,cAAgB,eAChDhB,EAAgBA,EAAgBiB,gBAAkB,iBAClDjB,EAAgBA,EAAgBkB,cAAgB,eAChDlB,EAAgBA,EAAgBmB,YAAc,aAC9CnB,EAAgBA,EAAgBoB,gBAAkB,iBAClDpB,EAAgBA,EAAgBqB,YAAc,aAC9CrB,EAAgBA,EAAgBsB,WAAa,YArB7CtB,EAxBqB,GAsoDrB,SAASuB,GAAYC,GAl8jCrB,IAAuBC,EACL,OADKA,EAm8jCLD,IA97jClB,SAAoBv2K,EAAKw2K,EAAQC,EAAUC,GACvC,MAAM,IAAI1vK,MAAM,oBAAA,OAJDhH,mCAIC,wBAAA,OACyDw2K,EADzD,eADpB,CA87jC4B,EAj8jCJA,GAk8jCI,iBAAbD,GACKA,EAAS1mK,cAAc7C,QAAQ,KAAM,KAuGzD,IAAM2pK,GAAU,IAAI1hB,IAkFd2hB,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,EAAYhgB,EAAc+E,GAAAA,IAAAA,EAAAA,gBAAAA,KAAAA,IACtBpgC,EAAAA,EAAAA,KAAAA,OACKogC,QAAUA,EAEfx6J,EAAK01K,qBAAuB,GAC5B11K,EAAKyjI,SAALzjI,uBAAAA,GACAA,EAAKozK,WAAa,GAOlBpzK,EAAK21K,yBAA2B,IAAIpE,GAAJ,uBAAA,IAEhC,IAAM3nC,EAAcD,GAAe8rB,GAI7BmgB,EAAiCngB,EAnyiCRhzB,KAAkB,KAgxiC3B+3B,OAoBtBob,GAAiBT,GAAYS,GAC7B51K,EAAK01K,qBAAuB3iC,GAAc,EAAiClK,WAC3E7oI,EAAK61K,YAAiCpiB,GAAuCgC,EAAc+E,EAAS,CAChG,CAAEn3B,QAASkB,GAAajB,SAAAA,uBAAAA,IAAkB,CACtCD,QAASgnC,GACT/mC,SAAUtjI,EAAK21K,2BAEpBxvK,GAAUsvJ,IAIbz1J,EAAK61K,YAAYlf,2BACjB32J,EAAKw2C,SAAWx2C,EAAK6iB,IAAI4yI,GAhCH+E,EAmEoB91J,OA3B9C,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAI26H,GAA8EwE,IAAvEK,EAAuEL,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAvD+yB,GAAS1zB,mBAAoB4yC,EAA0BjyC,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAZpE,GAAYoE,QAC9E,OAAIxE,IAAUu3B,IAAYv3B,IAAUkF,IAAelF,IAAU4D,GAClDjjI,KAEJA,KAAK61K,YAAYhzJ,IAAIw8G,EAAO6E,EAAe4xC,KAKtD,CAAA,IAAA,UAAA,MAAA,WAGI,IAAMryC,EAAWzjI,KAAK61K,aACrBpyC,EAASgsB,WAAahsB,EAAStpD,UACbn6E,KAAgB,WAAE2X,SAIrCvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKozK,WAAa,OAMtB,CAAA,IAAA,YAAA,MAAA,SAAU1uK,GAEa1E,KAAgB,WAAEU,KAAKgE,OAAAA,EAxE5C+wK,CAAsBlxC,IA8FtBwxC,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACR57C,EAAAA,EAAAA,KAAAA,OACK47C,WAAaA,EAGE,OADArsC,GAAeqsC,IA3J3C,SAASC,EAAqBxgB,GAC1B,GAA6B,OAAzBA,EAAajzB,UAAK/wH,GAAa,CAE/B,IAAMA,EAAKgkJ,EAAajzB,UAAK/wH,IAAAA,SAZJA,EAAItG,EAAM+qK,GACvC,GAAI/qK,GAAQA,IAAS+qK,EACjB,MAAM,IAAIrwK,MAAJ,mCAAA,OAA6C4L,EAA7C,OAAA,OAAqDtL,GAAUgF,GAA/D,QAAA,OAA2EhF,GAAUgF,EAAKvL,SAUnE6R,CAGLA,EADY+jK,GAAQ3yJ,IAAIpR,GACVgkJ,GACtC+f,GAAQxzJ,IAAIvQ,EAAIgkJ,GAGpB,IAAIx1B,EAAUw1B,EAAajzB,UAAKvC,QAC5BA,aAAmBh7H,WACnBg7H,EAAUA,KAEVA,GACAA,EAAQtoH,SAIRhd,SAAAA,GAAAA,OAAKs7K,EAAqB,MAnBlC,CAoLiC,GA7BjBD,EAqCkC1mB,OAD9C,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOA,GACH,OAAO,IAAImmB,GAAcz1K,KAAKg2K,WAAY1mB,OAAAA,EAzC5CymB,CAyC4CzmB,WAAAA,OAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,IA0ClD,SAAS6mB,GAAgBC,EAAYC,EAAQn6C,GAEzC,IAAMmR,EAAeJ,KAAmBmpC,EAElCvrC,EAAQuB,KACd,OAAOvB,EAAMwC,KAAkBiS,GAC3Bqd,GAAc9xB,EAAOwC,EAAcnR,EAAUm6C,EAAO53K,KAAKy9H,GAAWm6C,KA5+f5E,SAAoBxrC,EAAOwC,GAIvB,OAAOxC,EAAMwC,GAJjB,CA6+fmBxC,EAAOwC,GAsN1B,SAASipC,GAA2BzrC,EAAO0rC,GAGvC,IAAMC,EAAkB3rC,EAAM0rC,GAC9B,OAAOC,IAAoBl3B,QAAAA,EAAwBk3B,EA8HvD,SAASC,GAAOx1J,EAAOy1J,GAEnB,IAEIntC,EAFEpB,EAAQkE,KAIRuU,EAAgB3/H,EAnujCJ,GAoujCdknH,EAAMoL,iBACNhK,EAgCR,SAAsB3pI,EAAM6lJ,GACxB,GAAIA,EACA,IAAK,IAAI9qJ,EAAI8qJ,EAASzqJ,OAAS,EAAGL,GAAK,EAAGA,IAAK,CAE3C,IAAM4uI,EAAUkc,EAAS9qJ,GACzB,GAAIiF,IAAS2pI,EAAQ3pI,KACjB,OAAO2pI,EAInB,MAAM,IAAI1jI,MAAJ,aAAA,OAAuBjG,EAAvB,0BAVV,CAhC+B82K,EAAUvuC,EAAM6b,cACvC7b,EAAMhsI,KAAKykJ,GAAiBrX,EACxBA,EAAQ9B,YACPU,EAAMyH,eAAiBzH,EAAMyH,aAAe,KAAKlvI,KAAKkgJ,EAAerX,EAAQ9B,YAIlF8B,EAA6BpB,EAAMhsI,KAAKykJ,GAG5C,IAAM+1B,EAAcptC,EAAQj0H,UAAYi0H,EAAQj0H,QAAUm0H,GAAcF,EAAQp+H,OAE1EgqI,EAA+BxR,GAAwBm6B,IAIvD5nB,EAA+BjD,IAAAA,GAE/B2jC,EAAeD,IAIrB,OAHA1jC,GAAwBiD,GACxBvS,GAAwBwR,GAt6e5B,SAAehN,EAAO0C,EAAO5pH,EAAOxb,GAIhC,IAAMm7I,EAAgB3/H,EAv1kBJ,GAw1kBd2/H,GAAiBzY,EAAMhsI,KAAKnB,SAC5BmtI,EAAMhsI,KAAKykJ,GAAiB,KAC5BzY,EAAMuL,UAAUkN,GAAiB,MAErC/V,EAAM+V,GAAiBn7I,EAT3B,CAu6eU0iI,EAAOiE,KAAYnrH,EAAO21J,GACzBA,EAmCX,SAASC,GAAY51J,EAAOm1J,EAAYhQ,GAEpC,IAAMv7B,EAAQuB,KAERwqC,EAAennK,GAAKo7H,EAAO5pH,GACjC,OAiHJ,SAAuB4pH,EAAO/3E,GAS1B,OARIypG,GAAaC,UAAU1pG,KACvBA,EAAWypG,GAAaua,OAAOhkH,GAK/B+3E,EAD+BuC,MACCkS,IAE7BxsF,EATX,CAjHyB+3E,EAqGzB,SAAgBA,EAAO5pH,GACnB,OAA2B4pH,EAl7jCjB,GAk7jC8B1uI,KAAK8kB,EAz4jC3B,IAy4jCqDuoH,KAD3E,CArGuCqB,EAAO5pH,GAtL9C,SAA+B4pH,EAAOksC,EAAaX,EAAYC,EAAQW,EAAK96C,GAExE,IAAMmR,EAAe0pC,EAAcX,EACnC,OAAOxZ,GAAe/xB,EAAOwC,EAAc2pC,GACvCra,GAAc9xB,EAAOwC,EAAe,EAAGnR,EAAUm6C,EAAO53K,KAAKy9H,EAAS86C,GAAOX,EAAOW,IACpFV,GAA2BzrC,EAAOwC,EAAe,GALzD,CAuL8BxC,EAAOoC,KAAkBmpC,EAAYQ,EAAa/xJ,UAAWuhJ,EAAIwQ,GACvFA,EAAa/xJ,UAAUuhJ,IAoL/B,IAAM,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GASF,SAAA,IAAsB,IAAA,EAAV6Q,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAAA,OAAA,gBAAA,KAAA,IAClB78C,EAAAA,EAAAA,KAAAA,OACK88C,UAAYD,EAFC,EAgJXt+J,OAvIX,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKlT,GACD20H,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,KAAW30H,KAWf,CAAA,IAAA,YAAA,MAAA,SAAU0xK,EAAiBh4K,EAAOoI,GAE9B,IAAI6vK,EAEAC,EAIHvxK,SAAAA,GAAAA,OAAQ,MAELwxK,EAAa,WAAA,OAGX,MACFH,GAA8C,iBAApBA,GAC1BC,EAAcp3K,KAAKk3K,UAIlBzxK,SAAAA,GACGpF,YAAW,WAAA,OAGL82K,EAAgBjvK,KAAKzC,OAK9BA,SAAAA,GACG0xK,EAAgBjvK,KAAKzC,IAErB0xK,EAAgBh4K,QAChBk4K,EAAUr3K,KAAKk3K,UAIdpxK,SAAAA,GACGzF,YAAW,WAAA,OAGL82K,EAAgBh4K,MAAM2G,OAK/BA,SAAAA,GACGqxK,EAAgBh4K,MAAM2G,KAG1BqxK,EAAgB5vK,WAChB+vK,EAAat3K,KAAKk3K,UAAY,WAI1B72K,YAAW,WAAA,OAGL82K,EAAgB5vK,eACrB,WAID4vK,EAAgB5vK,eAKxB6vK,EAAcp3K,KAAKk3K,UAIlBzxK,SAAAA,GACGpF,YAAW,WAAA,OAGL82K,EAAgB1xK,OAKzBA,SAAAA,GACG0xK,EAAgB1xK,IAEhBtG,IACAk4K,EAAUr3K,KAAKk3K,UAIdpxK,SAAAA,GACGzF,YAAW,WAAA,OAGLlB,EAAM2G,OAKfA,SAAAA,GACG3G,EAAM2G,KAGVyB,IACA+vK,EAAat3K,KAAKk3K,UAAY,WAI1B72K,YAAW,WAAA,OAGLkH,QACL,WAIDA,OAKZ,IAAMoR,EAAAA,KAAAA,gBAAAA,EAAAA,WAAAA,YAAAA,MAAAA,KAAAA,KAAuBy+J,EAAaC,EAASC,GAInD,OAHIH,aAA2B,GAC3BA,EAAgBpvK,IAAI4Q,GAEjBA,MAAAA,EAzJT,CAAqB,GA8K3B,SAAS4+J,KACL,OAA2B,KAA2D,SAAE,QA6B5F,IAAMC,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACIx3K,KAAKwkE,OAAAA,EACLxkE,KAAKy3K,SAAW,GAChBz3K,KAAK03K,QAAU,IAAI,GACnB13K,KAAKhF,OAAS,EAMd,IAAMmc,EAAS,KAEToD,EAA2Bi9J,EAAoB,UAChDj9J,EAAMpD,KACPoD,EAAMpD,GAAUogK,IA2GgB52K,OAlGxC,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAIyD,GACA,OAAOpE,KAAKy3K,SAAS1iK,IAAI3Q,KAQ7B,CAAA,IAAA,SAAA,MAAA,SAAOA,GACH,OAAOpE,KAAKy3K,SAASvgK,OAAO9S,KAQhC,CAAA,IAAA,OAAA,MAAA,SAAKA,GACD,OAAOpE,KAAKy3K,SAASrmJ,KAAKhtB,KAU9B,CAAA,IAAA,SAAA,MAAA,SAAOA,EAAI4nH,GACP,OAAOhsH,KAAKy3K,SAASvzK,OAAOE,EAAI4nH,KAQpC,CAAA,IAAA,UAAA,MAAA,SAAQ5nH,GACJpE,KAAKy3K,SAAS9/J,QAAQvT,KAQ1B,CAAA,IAAA,OAAA,MAAA,SAAKA,GACD,OAAOpE,KAAKy3K,SAAS3jF,KAAK1vF,KAM9B,CAAA,IAAA,UAAA,MAAA,WACI,OAAOpE,KAAKy3K,SAASn6K,UAKzB,CAAA,IAAA,WAAA,MAAA,WACI,OAAO0C,KAAKy3K,SAAS53K,aAUzB,CAAA,IAAA,QAAA,MAAA,SAAM83K,GACF33K,KAAKy3K,SA7omCb,SAASG,EAAQjzC,EAAMt7C,QAAAA,IACfA,IACAA,EAAMs7C,GACV,IAAK,IAAIhqI,EAAI,EAAGA,EAAIgqI,EAAK3pI,OAAQL,IAAK,CAClC,IAAIuI,EAAOyhI,EAAKhqI,GACZ8L,MAAMqQ,QAAQ5T,IAEVmmF,IAAQs7C,IAGRt7C,EAAMs7C,EAAKrnI,MAAM,EAAG3C,IAExBi9K,EAAQ10K,EAAMmmF,IAETA,IAAQs7C,GACbt7C,EAAI3oF,KAAKwC,GAGjB,OAAOmmF,EAlBX,CA6omCgCsuF,GACxB,KAA4BnzG,OAAAA,EAC5B,KAA4BxpE,OAASgF,KAAKy3K,SAASz8K,OACnD,KAA4B4oH,KAAO5jH,KAAKy3K,SAASz3K,KAAKhF,OAAS,GAC/D,KAA4BqgK,MAAQr7J,KAAKy3K,SAAS,KAMtD,CAAA,IAAA,kBAAA,MAAA,WACwBz3K,KAAc,QAAEkuH,KAAKluH,QAM7C,CAAA,IAAA,WAAA,MAAA,WACI,KAA4BwkE,OAAAA,IAMhC,CAAA,IAAA,UAAA,MAAA,WACwBxkE,KAAc,QAAEuH,WAChBvH,KAAc,QAAEW,kBAAAA,EA1HtC62K,GAoxBAK,GAAAA,WAIF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACR93K,KAAK83K,UAAYA,EACjB93K,KAAK0lJ,QAAU,KAYAqyB,OAPnB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WACI,OAAO,IAAIF,EAAQ73K,KAAK83K,aAK5B,CAAA,IAAA,WAAA,MAAA,WACI93K,KAAK83K,UAAUC,eAAAA,EAlBjBF,GA2BAG,GAAAA,WAIF,SAAA,IAAsB,IAAVl0B,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAAA,gBAAA,KAAA,GAClB9jJ,KAAK8jJ,QAAUA,EAmDSi0B,OA7C5B,aAAA,EAAA,CAAA,CAAA,IAAA,qBAAA,MAAA,SAAmB5vC,GAEf,IAAM8vC,EAAW9vC,EAAM2b,QACvB,GAAiB,OAAbm0B,EAAmB,CASnB,IAPA,IAAMC,EAAgD,OAAzB/vC,EAAM3B,eAA0B2B,EAAM3B,eAAe,GAAKyxC,EAASj9K,OAE1Fm9K,EAAe,GAKZx9K,EAAI,EAAGA,EAAIu9K,EAAsBv9K,IAAK,CAE3C,IAAMy9K,EAASH,EAASI,WAAW19K,GAGnCw9K,EAAaz3K,KADQV,KAAK8jJ,QAAQs0B,EAAOE,wBACV1hK,SAEnC,OAAO,IAAIohK,EAAUG,GAEzB,OAAO,OAMX,CAAA,IAAA,aAAA,MAAA,SAAWhwC,GACPnoI,KAAKu4K,wBAAwBpwC,KAMjC,CAAA,IAAA,aAAA,MAAA,SAAWA,GACPnoI,KAAKu4K,wBAAwBpwC,KAOjC,CAAA,IAAA,0BAAA,MAAA,SAAwBA,GACpB,IAAK,IAAIxtI,EAAI,EAAGA,EAAIqF,KAAK8jJ,QAAQ9oJ,OAAQL,IACD,OAAhC69K,GAAUrwC,EAAOxtI,GAAG+qJ,SACpB1lJ,KAAK8jJ,QAAQnpJ,GAAGo9K,eAAAA,EAxD1BC,GAiEAS,GAOF,SAAA,EAAYC,EAAW91I,EAAa+1I,GAAiB,IAAPC,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAAA,gBAAA,KAAA,GACjD54K,KAAK04K,UAAYA,EACjB14K,KAAK4iC,YAAcA,EACnB5iC,KAAK24K,SAAWA,EAChB34K,KAAK44K,KAAOA,GAadC,GAAAA,WAIF,SAAA,IAAsB,IAAV/0B,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAAA,gBAAA,KAAA,GAClB9jJ,KAAK8jJ,QAAUA,EA6EnB,OAtEA,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,SAAa3b,EAAO6B,GAGhB,IAAK,IAAIrvI,EAAI,EAAGA,EAAIqF,KAAK8jJ,QAAQ9oJ,OAAQL,IACrCqF,KAAK8jJ,QAAQnpJ,GAAG2jK,aAAan2B,EAAO6B,KAO5C,CAAA,IAAA,aAAA,MAAA,SAAWA,GACP,IAAK,IAAIrvI,EAAI,EAAGA,EAAIqF,KAAK8jJ,QAAQ9oJ,OAAQL,IACrCqF,KAAK8jJ,QAAQnpJ,GAAG6jK,WAAWx0B,KAOnC,CAAA,IAAA,gBAAA,MAAA,SAAcA,GAGV,IADA,IAAI8uC,EAAwB,KACnBn+K,EAAI,EAAGA,EAAIqF,KAAKhF,OAAQL,IAAK,CAElC,IAAMo+K,EAA4C,OAA1BD,EAAiCA,EAAsB99K,OAAS,EAElFg+K,EAAch5K,KAAKq4K,WAAW19K,GAAGmnJ,cAAc9X,EAAO+uC,GACxDC,IACAA,EAAYV,uBAAyB39K,EACP,OAA1Bm+K,EACAA,EAAsBp4K,KAAKs4K,GAG3BF,EAAwB,CAACE,IAIrC,OAAiC,OAA1BF,EAAiC,IAAID,EAAUC,GAAyB,OAOnF,CAAA,IAAA,WAAA,MAAA,SAAS3wC,EAAO6B,GAGZ,IAAK,IAAIrvI,EAAI,EAAGA,EAAIqF,KAAK8jJ,QAAQ9oJ,OAAQL,IACrCqF,KAAK8jJ,QAAQnpJ,GAAGurI,SAASiC,EAAO6B,KAOxC,CAAA,IAAA,aAAA,MAAA,SAAW/oH,GAEP,OAAOjhB,KAAK8jJ,QAAQ7iI,KAKxB,CAAA,IAAA,QAAA,MAAA,SAOMg4J,GACFj5K,KAAK8jJ,QAAQpjJ,KAAKu4K,KAAAA,CAAAA,IAAAA,SAAAA,IAAAA,WAPlB,OAAOj5K,KAAK8jJ,QAAQ9oJ,WAMxB,EAlFE69K,GA6FAK,GAAAA,WAKF,SAAA,EAAYvf,GAAsB,IAAZzuB,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,IAAA,EAAA,gBAAA,KAAA,GAC9BlrI,KAAK25J,SAAWA,EAChB35J,KAAK0lJ,QAAU,KACf1lJ,KAAKs4K,wBAA0B,EAC/Bt4K,KAAKm5K,mBAAAA,EAMLn5K,KAAKo5K,oBAAAA,EACLp5K,KAAKq5K,sBAAwBnuC,EA4IGouC,OArIpC,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,SAAanxC,EAAO6B,GACZhqI,KAAKu5K,iBAAiBvvC,IACtBhqI,KAAKw5K,WAAWrxC,EAAO6B,KAO/B,CAAA,IAAA,aAAA,MAAA,SAAWA,GACHhqI,KAAKq5K,wBAA0BrvC,EAAM/oH,QACrCjhB,KAAKo5K,oBAAAA,KAQb,CAAA,IAAA,WAAA,MAAA,SAASjxC,EAAO6B,GACZhqI,KAAKs+J,aAAan2B,EAAO6B,KAO7B,CAAA,IAAA,gBAAA,MAAA,SAAcA,EAAO+uC,GACjB,OAAI/4K,KAAKu5K,iBAAiBvvC,IACtBhqI,KAAKm5K,mBAAAA,EAGLn5K,KAAKy5K,UAAUzvC,EAAM/oH,MAAO83J,GACrB,IAAIG,EAAQl5K,KAAK25J,WAErB,OAOX,CAAA,IAAA,mBAAA,MAAA,SAAiB3vB,GACb,GAAIhqI,KAAKo5K,qBAAAA,IAAsBp5K,KAAK25J,SAAS/2H,YAAuB,CAehE,IAbA,IAAM82I,EAAqB15K,KAAKq5K,sBAE5B9vK,EAASygI,EAAMzgI,OAWD,OAAXA,GAAmC,IAAhBA,EAAO4B,MAC7B5B,EAAO0X,QAAUy4J,GACjBnwK,EAASA,EAAOA,OAEpB,OAAOmwK,KAAmC,OAAXnwK,EAAkBA,EAAO0X,OAAS,GAErE,OAAOjhB,KAAKo5K,qBAQhB,CAAA,IAAA,aAAA,MAAA,SAAWjxC,EAAO6B,GACd,GAAIvjI,MAAMqQ,QAAQ9W,KAAK25J,SAAS+e,WAG5B,IADA,IAAMp1B,EAAatjJ,KAAK25J,SAAS+e,UACxB/9K,EAAI,EAAGA,EAAI2oJ,EAAWtoJ,OAAQL,IACnCqF,KAAK25K,yBAAyBxxC,EAAO6B,EAAO4vC,GAAyB5vC,EAAOsZ,EAAW3oJ,SAG1F,CAED,IAAMk/K,EAAmC75K,KAAK25J,SAAmB,UAC7DkgB,IAAkB3I,GACC,IAAflnC,EAAM7+H,MACNnL,KAAK25K,yBAAyBxxC,EAAO6B,GAAQ,GAIjDhqI,KAAK25K,yBAAyBxxC,EAAO6B,EAAOsL,GAA0BtL,EAAO7B,EAAO0xC,GAAAA,GAAe,OAW/G,CAAA,IAAA,2BAAA,MAAA,SAAyB1xC,EAAO6B,EAAO8vC,GACnC,GAAqB,OAAjBA,EAAuB,CAEvB,IAAMlB,EAAO54K,KAAK25J,SAASif,KAC3B,GAAa,OAATA,EACA,GAAIA,IAAStO,IAAcsO,IAASxH,IAChCwH,IAAS1H,IAA8B,IAAflnC,EAAM7+H,KAC9BnL,KAAKy5K,SAASzvC,EAAM/oH,OAAQ,OAE3B,CAED,IAAM84J,EAAyBzkC,GAA0BtL,EAAO7B,EAAOywC,GAAAA,GAAM,GAC9C,OAA3BmB,GACA/5K,KAAKy5K,SAASzvC,EAAM/oH,MAAO84J,QAKnC/5K,KAAKy5K,SAASzvC,EAAM/oH,MAAO64J,MAUvC,CAAA,IAAA,WAAA,MAAA,SAASra,EAAU6Z,GACM,OAAjBt5K,KAAK0lJ,QACL1lJ,KAAK0lJ,QAAU,CAAC+Z,EAAU6Z,GAG1Bt5K,KAAK0lJ,QAAQhlJ,KAAK++J,EAAU6Z,OAAAA,EA5JlCJ,GAkMN,SAASU,GAAyB5vC,EAAOlrG,GAErC,IAAMwkH,EAAatZ,EAAMsZ,WACzB,GAAmB,OAAfA,EACA,IAAK,IAAI3oJ,EAAI,EAAGA,EAAI2oJ,EAAWtoJ,OAAQL,GAAK,EACxC,GAAI2oJ,EAAW3oJ,KAAOmkC,EAClB,OAA0BwkH,EAAW3oJ,EAAI,GAIrD,OAAO,KAuBX,SAASq/K,GAAoBnvC,EAAOb,EAAOiwC,EAAarB,GACpD,OAAqB,IAAjBqB,EAjBR,SAAiCjwC,EAAOmG,GACpC,OAAmB,IAAfnG,EAAM7+H,MAA2C,IAAf6+H,EAAM7+H,KACjC8iJ,GAAiBqc,GAAYtgC,EAAOmG,GAEvB,IAAfnG,EAAM7+H,KACJgjJ,GAAkB+iB,GAAa5G,GAAYtgC,EAAOmG,GAEtD,KAPX,CAmBuCnG,EAAOa,IAEhB,IAAjBovC,EAeb,SAA4BpvC,EAAOb,EAAO4uC,GACtC,OAAIA,IAAStO,GACFrc,GAAiBqc,GAAYtgC,EAAOa,GAEtC+tC,IAAS1H,GACP/iB,GAAkB+iB,GAAa5G,GAAYtgC,EAAOa,GAEpD+tC,IAASxH,GAGP1iB,GAAmB0iB,GAAkB9G,GAAY,EAA4Bz/B,QAAAA,EAV5F,CAbkCA,EAAOb,EAAO4uC,GAIjCrjC,GAAkB1K,EAAOA,EAj6mC1B,GAi6mCwCovC,EAAa,GAqCnE,SAASC,GAAuB/xC,EAAO0C,EAAOutC,EAAQ+B,GAElD,IAAMC,EAA+CvvC,EAp6mCzC,IAo6mCkE,QAAEsvC,GAChF,GAAuB,OAAnBC,EAAO10B,QAAkB,CAOzB,IALA,IAAM20B,EAAYlyC,EAAMhsI,KAElBm+K,EAAmClC,EAAe,QAElD10K,EAAS,GACN/I,EAAI,EAAGA,EAAI2/K,EAAct/K,OAAQL,GAAK,EAAG,CAE9C,IAAM4/K,EAAiBD,EAAc3/K,GAKjC+I,EAAOhD,KAJP65K,EAAiB,EAIL,KAMAP,GAAoBnvC,EADCwvC,EAAUE,GACGD,EAAc3/K,EAAI,GAAIy9K,EAAOze,SAASif,OAG5FwB,EAAO10B,QAAUhiJ,EAErB,OAAO02K,EAAO10B,QAkElB,SAAS80B,GAAe1C,GAEpB,IAAMjtC,EAAQuB,KAERjE,EAAQkE,KAER8tC,EAAatsC,KACnBE,GAAqBosC,EAAa,GAElC,IAAM/B,EAASI,GAAUrwC,EAAOgyC,GAChC,GAAIrC,EAAUtzG,OAAU8mE,GAAeT,KAAWutC,EAAOze,SAASgf,SAAW,CACzE,GAAuB,OAAnBP,EAAO1yB,QACPoyB,EAAUr4G,MAAM,QAEf,CAED,IAAM/7D,EAAS00K,EAAOe,kBAtElC,SAASsB,EAAoBtyC,EAAO0C,EAAOsvC,EAAYz2K,GAEnD,IAAM00K,EAA4BjwC,EAAc,QAAEkwC,WAAW8B,GAEvDG,EAAgBlC,EAAO1yB,QAC7B,GAAsB,OAAlB40B,EAGA,IADA,IAAMI,EAAeR,GAAuB/xC,EAAO0C,EAAOutC,EAAQ+B,GACzDx/K,EAAI,EAAGA,EAAI2/K,EAAct/K,OAAQL,GAAK,EAAG,CAE9C,IAAM8kK,EAAW6a,EAAc3/K,GAC/B,GAAI8kK,EAAW,EACX/7J,EAAOhD,KAAwBg6K,EAAa//K,EAAI,QAE/C,CAOD,IALA,IAAMo+K,EAAkBuB,EAAc3/K,EAAI,GAEpC2vJ,EAA2Czf,GAAO40B,GAG/C9kK,EAh8lCO,GAg8lCsBA,EAAI2vJ,EAAsBtvJ,OAAQL,IAAK,CAEzE,IAAMknJ,EAAgByI,EAAsB3vJ,GACxCknJ,EAt+mCO,MAs+mCmCA,EAlgnCnD,IAmgnCS44B,EAAoB54B,EAvgnC9B,GAugnCoDA,EAAek3B,EAAiBr1K,GAKlF,GAA2C,OAAvC4mJ,EAj9lCA,GAo9lCA,IADA,IAAMqwB,EAAoCrwB,EAn9lC1C,GAo9lCS3vJ,EAAI,EAAGA,EAAIggL,EAAe3/K,OAAQL,IAAK,CAE5C,IAAMknJ,EAAgB84B,EAAehgL,GACrC8/K,EAAoB54B,EAlhnC9B,GAkhnCoDA,EAAek3B,EAAiBr1K,KAM9F,OAAOA,EA1CX,CAuEoCykI,EAAO0C,EAAOsvC,EAAY,IAC9CD,GAAuB/xC,EAAO0C,EAAOutC,EAAQ+B,GACjDrC,EAAUr4G,MAAM/7D,GAChBo0K,EAAU8C,kBAEd,OAAA,EAEJ,OAAA,EAaJ,SAASC,GAAkBnC,EAAWoC,EAASlC,GAC3CmC,GAAkB1uC,KAAYD,KAAYssC,EAAWoC,EAASlC,GAAAA,GAalE,SAASoC,GAAYtC,EAAWoC,EAASlC,GACrCmC,GAAkB1uC,KAAYD,KAAYssC,EAAWoC,EAASlC,GAAAA,GAYlE,SAASmC,GAAkB5yC,EAAO0C,EAAO6tC,EAAWoC,EAASlC,EAAMD,GAC3DxwC,EAAMoL,kBACN0nC,GAAa9yC,EAAO,IAAIswC,GAAgBC,EAAWoC,EAASnC,EAAUC,IAAQ,GAC1ED,IACAxwC,EAAMgZ,mBAAAA,IAGd+5B,GAAa/yC,EAAO0C,GAexB,SAASswC,GAAehlC,EAAgBuiC,EAAWoC,EAASlC,GACxDwC,GAAqB/uC,KAAYD,KAAYssC,EAAWoC,EAASlC,GAAAA,EAAansC,KAA4B0J,GAe9G,SAASklC,GAAqBllC,EAAgBuiC,EAAWoC,EAASlC,GAC9DwC,GAAqB/uC,KAAYD,KAAYssC,EAAWoC,EAASlC,GAAAA,EAAYnsC,KAA4B0J,GAc7G,SAASilC,GAAqBjzC,EAAO0C,EAAO6tC,EAAWoC,EAASlC,EAAMD,EAAU3uC,EAAOmM,GAC/EhO,EAAMoL,kBACN0nC,GAAa9yC,EAAO,IAAIswC,GAAgBC,EAAWoC,EAASnC,EAAUC,GAAO5uC,EAAM/oH,OA4D3F,SAA2CknH,EAAOgO,GAE9C,IAAMmlC,EAAsBnzC,EAAM3B,iBAAmB2B,EAAM3B,eAAiB,IAGxE2P,KAD4BhO,EAAM3B,eAAexrI,OAASsgL,EAAoBA,EAAoBtgL,OAAS,IAAM,IAEjHsgL,EAAoB56K,KAAwBynI,EAAc,QAAEntI,OAAS,EAAGm7I,GANhF,CA3D0ChO,EAAOgO,GACrCwiC,IACAxwC,EAAM+Y,sBAAAA,IAGdg6B,GAAa/yC,EAAO0C,GASxB,SAAS0wC,KACL,OAQuB1wC,EAREuB,KAQK+tC,EAROtsC,KAYXhD,EAnpnCd,IAmpnC+BiZ,QAAQq2B,GAAYrC,UAJnE,IAA2BjtC,EAAOsvC,EAYlC,SAASe,GAAa/yC,EAAO0C,GAEzB,IAAMitC,EAAY,IAAIN,IAxwzB1B,SAAiCrvC,EAAO0C,EAAOhiI,EAAS0kJ,GAEpD,IAAMtC,EAAW3C,GAAYzd,GAC7BogB,EAASvqJ,KAAKmI,GACVs/H,EAAMoL,iBACNgV,GAAgBpgB,GAAOznI,KAAK6sJ,EAAWtC,EAASjwJ,OAAS,GALjE,CAywzB4BmtI,EAAO0C,EAAOitC,EAAWA,EAAU39F,SACpC,OAAnB0wD,EA/pnCQ,MAgqnCRA,EAhqnCQ,IAgqnCS,IAAImtC,IACNntC,EAjqnCP,IAiqnCwBiZ,QAAQpjJ,KAAK,IAAIm3K,GAAQC,IAQjE,SAASmD,GAAa9yC,EAAOwxB,EAAUzuB,GACb,OAAlB/C,EAAM2b,UACN3b,EAAM2b,QAAU,IAAI+0B,IACxB1wC,EAAM2b,QAAQ57B,MAAM,IAAIgxD,GAAQvf,EAAUzuB,IAqB9C,SAASstC,GAAUrwC,EAAOlnH,GAEtB,OAA0BknH,EAAc,QAAEkwC,WAAWp3J,GAiBzD,SAASu6J,GAAuBxxC,EAAOmG,GACnC,OAAOge,GAAkB+iB,GAAa5G,GAAYtgC,EAAOmG,GAsuD7D,IAuCMsrC,GAAkB,IAAI14C,GAAe,2BAvC3C,GAAA,WAAA,IA6CM24C,EAAAA,WAIF,SAAA,EAAYC,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACR37K,KAAK27K,SAAWA,EAChB37K,KAAK47K,aAAAA,EACL57K,KAAK27H,MAAAA,EACL37H,KAAK67K,YAAc,IAAItsK,SAAQ,SAK9B0xH,EAAK66C,GACF97K,EAAK+Y,QAAUkoH,EACfjhI,EAAKgZ,OAAS8iK,KA+CC,OAxCvB,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WAAA,IAAA,EAAA,KACI,IAAI97K,KAAK47K,YAAT,CAIA,IAAMG,EAAoB,GAEpBx0K,EAAW,WAIb,EAA4Bo0H,MAAAA,EAC5B37H,EAAK+Y,WAET,GAAI/Y,KAAK27K,SACL,IAAK,IAAIhhL,EAAI,EAAGA,EAAIqF,KAAK27K,SAAS3gL,OAAQL,IAAK,CAE3C,IAAMqhL,EAAah8K,KAAK27K,SAAShhL,KAC7B,GAAUqhL,IACVD,EAAkBr7K,KAAKs7K,GAInCzsK,QAAQsI,IAAIkkK,GACPrsK,MAAK,WAINnI,OALJgI,OAWA9L,SAAAA,GACIzD,EAAKgZ,OAAOvV,MAEiB,IAA7Bs4K,EAAkB/gL,QAClBuM,IAEJvH,KAAK47K,aAAAA,OAAc,EA9DrBF,GA8DqB,OAG3BA,EAAsB94C,UAAO,SAAuC5oI,GAAK,OAAO,IAAKA,GAAK0hL,GAAuB13C,GAASy3C,GAAiB,KAC3IC,EAAsBh7C,WAAQb,GAAmB,CAAER,MAAOq8C,EAAuBpmK,QAASomK,EAAsB94C,YADhH84C,EA9GA,GAuKMO,GAAS,IAAIl5C,GAAe,SAY5Bm5C,GAAyB,CAC3B74C,QAAS44C,GACT7lB,WAVJ,WACI,MAAA,GAAA,OAAU+lB,MAAV,OAA0BA,MAA1B,OAA0CA,OAU1C9lB,KAAM,IAKV,SAAS8lB,KACL,OAAO9gL,OAAOC,aAAa,GAAK0nB,KAAKa,MAAsB,GAAhBb,KAAKc,WAOpD,IAAMs4J,GAAuB,IAAIr5C,GAAe,wBAM1Cs5C,GAAc,IAAIt5C,GAAe,eAUjCu5C,GAAyB,IAAIv5C,GAAe,wBAhBlD,GAAA,WAAA,IA6BMw5C,EAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAgBen9K,OAhBfm9K,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,MAAAA,MAAAA,SAKEn9K,GAEAoF,QAAQgb,IAAIpgB,KAOhB,CAAA,IAAA,OAAA,MAAA,SAAKA,GAEDoF,QAAQyG,KAAK7L,OAAAA,EAhBfm9K,GAgBen9K,OAGrBm9K,EAAQ35C,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAKuiL,IAC9DA,EAAQ77C,WAAQb,GAAmB,CAAER,MAAOk9C,EAASjnK,QAASinK,EAAQ35C,YADtE25C,EAhDA,GAkFMC,GAAc,IAAIz5C,GAAe,YAwCjC05C,GAAwB,IAAI15C,GAAe,uBA0F3C25C,GAKF,SAAA,EAAYC,EAAiBC,GAAAA,gBAAAA,KAAAA,GACzB58K,KAAK28K,gBAAkBA,EACvB38K,KAAK48K,mBAAqBA,GAkB5BC,GAAwC,SAKpC7G,GACN,OAAO,IAAID,GAAkBC,IAG3B8G,GAA6BD,GAa7BE,GATyC,SAKrC/G,GACN,OAAOzmK,QAAQwJ,QAAQ8jK,GAAsC7G,KAO3DgH,GAAwD,SAKpDhH,GAEN,IAAM2G,EAAkBE,GAAsC7G,GAIxD4G,EAAqB7pC,GAFUpJ,GAAeqsC,GAEDltC,cAC9C5kI,QAAO,SAKX2lK,EAAWoT,GAER,IAAMzL,EAAe9oC,GAAgBu0C,GAErC,OADAzL,GAAgB3H,EAAUnpK,KAAK,IAAI+wK,GAAmBD,IAC/C3H,IACP,IACJ,OAAO,IAAI6S,GAA6BC,EAAiBC,IAGvDM,GAA6CF,GAa7CG,GATyD,SAKrDnH,GACN,OAAOzmK,QAAQwJ,QAAQikK,GAAsDhH,KAhEjF,GAAA,WAAA,IA+EMoH,EAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAKIp9K,KAAKq9K,kBAAoBP,GAIzB98K,KAAKs9K,mBAAqBP,GAI1B/8K,KAAKu9K,kCAAoCL,GAIzCl9K,KAAKw9K,mCAAqCL,GAkBlCnH,OAZZ,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,cAMA,CAAA,IAAA,gBAAA,MAAA,SAAc7qK,MAMd,CAAA,IAAA,cAAA,MAAA,SAAY6qK,QAAAA,EApCVoH,GAoCUpH,OAIhBoH,EAASx6C,UAAO,SAA0B5oI,GAAK,OAAO,IAAKA,GAAKojL,IAChEA,EAAS18C,WAAQb,GAAmB,CAAER,MAAO+9C,EAAU9nK,QAAS8nK,EAASx6C,YADzEw6C,EAvHA,GAyJMK,GAAmB,IAAI16C,GAAe,mBAyBtC,GAAiBxzH,QAAQwJ,QAAQ,GACvC,SAAS2kK,GAAkBt5K,GACH,oBAATu5K,KAEP,GAAQjuK,MAAK,WACTtL,GAAMA,EAAG5F,MAAM,KAAM,SAIzBm/K,KAAK97J,QAAQ67J,kBAAkB,oBAAqBt5K,GA4G5D,IAAMw5K,GAAAA,WAIF,SAAA,EAAA,GAAiF,IA4Q3CC,EAShCC,EArR2E,EAAA,EAArE,qBAAEC,OAAmE,IAAA,GAAA,EAAA,EAAA,EAAvC,mCAAEC,OAAqC,IAAA,GAAA,EA2B7E,GA3B6E,gBAAA,KAAA,GAC7Eh+K,KAAKi+K,sBAAAA,EACLj+K,KAAKk+K,sBAAAA,EAILl+K,KAAKm+K,UAAAA,EAILn+K,KAAKo+K,WAAa,IAAI,IAAA,GAMtBp+K,KAAKq+K,iBAAmB,IAAI,IAAA,GAM5Br+K,KAAKs+K,SAAW,IAAI,IAAA,GAIpBt+K,KAAKklH,QAAU,IAAI,IAAA,GACA,oBAARy4D,KACP,MAAM,IAAI93K,MAAM,kDAEpB83K,KAAKY,oBAEQ,KACRC,SAAW,EADH,KAERC,OAFQ,KAEMC,OAASf,KAAK97J,QAC7B,KAAyC,cAHhC,KAIJ68J,OAJI,KAIUA,OAAOC,KAAK,KAAyC,cAExE,KAAkD,uBANzC,KAOJD,OAPI,KAOUA,OAAOC,KAAK,IAAwB,KAAqD,uBAE5GZ,GAAwB,KAAoD,yBATnE,KAUJW,OAVI,KAUUA,OAAOC,KAAK,KAAoD,yBAV1E,KAYRX,mCAAqCA,EAZ7B,KAaRY,6BAA+B,EAbvB,KAcRC,4BAnJb,WACI,IAAIA,EAA8B78C,GAA+B,sBAC7D88C,EAA6B98C,GAA8B,qBAC/D,GAAoB,oBAAT27C,MAAwBkB,GAA+BC,EAA4B,CAG1F,IAAMC,EAAiCF,EAA4BlB,KAAKqB,WAAW,qBAC/ED,IACAF,EAA8BE,GAElC,IAAME,EAAgCH,EAA2BnB,KAAKqB,WAAW,qBAC7EC,IACAH,EAA6BG,GAGrC,MAAO,CAAEJ,4BAAAA,EAA6BC,2BAAAA,GAf1C,GAmJ4ED,4BAuOlEf,KATgCD,EA5OrB,MAqPwBG,oCACrCH,EAAKgB,6BARqC,YApBlD,SAAuChB,IACO,IAAtCA,EAAKe,8BAGTf,EAAKe,4BAA8Bf,EAAKgB,4BAA4BpgL,KAAKujI,IAAS,WAI9E67C,EAAKe,6BAA+B,EACpCM,GAAsBrB,GACtBsB,GAAYtB,MAEhBqB,GAAsBrB,IAZ1B,CAwBsCA,IAKlCA,EAAKa,OAASb,EAAKa,OAAOC,KAAK,CAC3B/+K,KAAM,UACNuoB,WAAY,CAAqB,eAAA,EAAuB,0BAA6B21J,GACrFsB,aAAc,SASbC,EAAUx9J,EAASlX,EAAQ20K,EAAMC,EAAWC,GACzC,IAEI,OADAC,GAAQ5B,GACDwB,EAASK,WAAW/0K,EAAQ20K,EAAMC,EAAWC,GAFxD,QAKQ1B,GAA2C,cAAdwB,EAAKn0K,MAClC2yK,IAEJ6B,GAAQ9B,KAGhB+B,SAAU,SAUTP,EAAUx9J,EAASlX,EAAQjG,EAAU66K,EAAWC,EAAWp9K,GACxD,IAEI,OADAq9K,GAAQ5B,GACDwB,EAAS9tJ,OAAO5mB,EAAQjG,EAAU66K,EAAWC,EAAWp9K,GAFnE,QAKIu9K,GAAQ9B,KAGhBgC,UAAW,SAOVR,EAAUx9J,EAASlX,EAAQm1K,GACxBT,EAASU,QAAQp1K,EAAQm1K,GACrBj+J,IAAYlX,IAGe,aAAvBm1K,EAAalxE,QACbivE,EAAKmC,sBAAwBF,EAAaG,UAC1Cf,GAAsBrB,GACtBsB,GAAYtB,IAEgB,aAAvBiC,EAAalxE,SAClBivE,EAAKI,qBAAuB6B,EAAaI,aAIrDC,cAAe,SAOdd,EAAUx9J,EAASlX,EAAQxL,GAPb,OAQXkgL,EAASt3B,YAAYp9I,EAAQxL,GAC7B0+K,EAAKuC,mBAAkB,WAAA,OAGjBvC,EAAK34D,QAAQgJ,KAAK/uH,OAAAA,KA5QhC,OApCA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAoCIiF,EAAIm7K,EAAWC,GACf,OAA0B,KAAiDd,OAAO2B,IAAIj8K,EAAIm7K,EAAWC,KAoBzG,CAAA,IAAA,UAAA,MAAA,SAAQp7K,EAAIm7K,EAAWC,EAAW5/K,GAE9B,IAAMi+K,EAAO,KAAiDa,OAExDY,EAAOzB,EAAKyC,kBAAkB,gBAAkB1gL,EAAMwE,EAAIm8K,GAAeC,GAAQA,IACvF,IACI,OAA0B3C,EAAK4C,QAAQnB,EAAMC,EAAWC,GAD5D,QAII3B,EAAK6C,WAAWpB,MAYxB,CAAA,IAAA,aAAA,MAAA,SAAWl7K,EAAIm7K,EAAWC,GACtB,OAA0B,KAAiDd,OAAOiC,WAAWv8K,EAAIm7K,EAAWC,KAkBhH,CAAA,IAAA,oBAAA,MAAA,SAAkBp7K,GACd,OAA0B,KAAiDq6K,OAAO4B,IAAIj8K,MAAAA,CAAAA,CAAAA,IAAAA,kBAAAA,MAAAA,WAjGtF,OAAA,IAAOu5K,KAAK97J,QAAQgB,IAAI,mBAK5B,CAAA,IAAA,sBAAA,MAAA,WACI,IAAK+6J,EAAOgD,kBACR,MAAM,IAAI/6K,MAAM,oDAMxB,CAAA,IAAA,yBAAA,MAAA,WACI,GAAI+3K,EAAOgD,kBACP,MAAM,IAAI/6K,MAAM,sDAoBxB,EA5FE+3K,GAmMN,SAAS4C,MAET,IAAMD,GAAgB,GA+BtB,SAASpB,GAAYtB,GACjB,GAAqB,GAAjBA,EAAKW,WAAkBX,EAAKK,uBAAyBL,EAAKM,SAC1D,IACIN,EAAKW,WACLX,EAAKQ,iBAAiBnwD,KAAK,MAF/B,QAMI,GADA2vD,EAAKW,YACAX,EAAKK,qBACN,IACIL,EAAKuC,mBAAkB,WAAA,OAGjBvC,EAAKS,SAASpwD,KAAK,SAJ7B,QAOI2vD,EAAKM,UAAAA,IA6HzB,SAASe,GAAsBrB,GAGvBA,EAAKK,wBAFLL,EAAKmC,uBACJnC,EAAKG,qCAA4E,IAAtCH,EAAKe,6BAWzD,SAASa,GAAQ5B,GACbA,EAAKW,WACDX,EAAKM,WACLN,EAAKM,UAAAA,EACLN,EAAKO,WAAWlwD,KAAK,OAO7B,SAASyxD,GAAQ9B,GACbA,EAAKW,WACLW,GAAYtB,GAMhB,IAmgBI,GAngBEgD,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACI7gL,KAAKk+K,sBAAAA,EACLl+K,KAAKi+K,sBAAAA,EACLj+K,KAAKm+K,UAAAA,EACLn+K,KAAKo+K,WAAa,IAAI,GACtBp+K,KAAKq+K,iBAAmB,IAAI,GAC5Br+K,KAAKs+K,SAAW,IAAI,GACpBt+K,KAAKklH,QAAU,IAAI,GAmCQs6D,OA3B/B,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAIp7K,EAAIm7K,EAAWC,GACf,OAAOp7K,EAAG5F,MAAM+gL,EAAWC,KAQ/B,CAAA,IAAA,aAAA,MAAA,SAAWp7K,EAAIm7K,EAAWC,GACtB,OAAOp7K,EAAG5F,MAAM+gL,EAAWC,KAM/B,CAAA,IAAA,oBAAA,MAAA,SAAkBp7K,GACd,OAAOA,MASX,CAAA,IAAA,UAAA,MAAA,SAAQA,EAAIm7K,EAAWC,EAAW5/K,GAC9B,OAAOwE,EAAG5F,MAAM+gL,EAAWC,OAAAA,EA3C7BqB,GA2C6BrB,GAAAA,WAAAA,IAqE7BsB,EAAAA,WAIF,SAAA,EAAYC,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACR/gL,KAAK+gL,QAAUA,EACf/gL,KAAKghL,cAAgB,EACrBhhL,KAAKihL,eAAAA,EAOLjhL,KAAKkhL,UAAAA,EACLlhL,KAAKmhL,WAAa,GAClBnhL,KAAKohL,iBAAmB,KACxBphL,KAAKqhL,sBACLN,EAAQV,KAAI,WAIRrgL,EAAKohL,iBACc,oBAARzD,KAAsB,KAAOA,KAAK97J,QAAQgB,IAAI,uBAiMtD,OA1LX,aAAA,EAAA,CAAA,CAAA,IAAA,sBAAA,MAAA,WAAA,IAAA,EAAA,KACI7iB,KAAK+gL,QAAQ3C,WAAW79K,UAAU,CAC9B2H,KAAM,WAIFlI,EAAKkhL,UAAAA,EACLlhL,EAAKihL,eAAAA,KAGbjhL,KAAK+gL,QAAQX,mBAAkB,WAI3BpgL,EAAK+gL,QAAQzC,SAAS/9K,UAAU,CAC5B2H,KAAM,WAIF01K,GAAO0D,yBACP5D,IAAkB,WAId19K,EAAKihL,eAAAA,EACLjhL,EAAKuhL,kCAWzB,CAAA,IAAA,8BAAA,MAAA,WAGI,OAFAvhL,KAAKghL,eAAiB,EACtBhhL,KAAKkhL,UAAAA,EACElhL,KAAKghL,gBAOhB,CAAA,IAAA,8BAAA,MAAA,WAEI,GADAhhL,KAAKghL,eAAiB,EAClBhhL,KAAKghL,cAAgB,EACrB,MAAM,IAAIn7K,MAAM,qCAGpB,OADA7F,KAAKuhL,uBACEvhL,KAAKghL,gBAMhB,CAAA,IAAA,WAAA,MAAA,WACI,OAAOhhL,KAAKihL,eAAwC,IAAvBjhL,KAAKghL,gBAAwBhhL,KAAK+gL,QAAQ9C,uBAM3E,CAAA,IAAA,uBAAA,MAAA,WAAA,IAAA,EAAA,KACI,GAAIj+K,KAAKm+K,WAELT,IAAkB,WAId,KAAkC,IAA3B19K,EAAKmhL,WAAWnmL,QAAc,CAEjC,IAAImgD,EAAwBn7C,EAAKmhL,WAAWptK,MAC5CnE,aAAaurC,EAAGqmI,WAChBrmI,EAAGsmI,OAAOzhL,EAAKkhL,UAEnBlhL,EAAKkhL,UAAAA,SAGR,CAGD,IAAIQ,EAAU1hL,KAAK2hL,kBACnB3hL,KAAKmhL,WAAanhL,KAAKmhL,WAAWjqK,QAIjCikC,SAAAA,GAAAA,OACOA,EAAGymI,WAAYzmI,EAAGymI,SAASF,KAC3B9xK,aAAaurC,EAAGqmI,YAAAA,MAKxBxhL,KAAKkhL,UAAAA,KAOb,CAAA,IAAA,kBAAA,MAAA,WACI,OAAKlhL,KAAKohL,iBAIHphL,KAAKohL,iBAAiBS,WAAW9sK,KAIvC/a,SAAAA,GAAAA,MACU,CACHoI,OAAQpI,EAAEoI,OAGV0/K,iBAAqC,EAA0C,iBAC/E3lL,KAAMnC,EAAEmC,SAbL,KAwBf,CAAA,IAAA,cAAA,MAAA,SAAYg/C,EAAIjqC,EAAS0wK,GAAAA,IAAAA,EAAAA,KAEjBJ,GAAa,EACbtwK,GAAWA,EAAU,IACrBswK,EAAYnhL,YAAW,WAInBL,EAAKmhL,WAAanhL,EAAKmhL,WAAWjqK,QAIjCikC,SAAAA,GAAAA,OAAOA,EAAGqmI,YAAcA,KACzBrmI,EAAGn7C,EAAKkhL,SAAUlhL,EAAK2hL,qBACvBzwK,IAERlR,KAAKmhL,WAAWzgL,KAAK,CAAqB+gL,OAAQtmI,EAAIqmI,UAAWA,EAAWI,SAAUA,MAe1F,CAAA,IAAA,aAAA,MAAA,SAAWH,EAAQvwK,EAAS0wK,GACxB,GAAIA,IAAa5hL,KAAKohL,iBAClB,MAAM,IAAIv7K,MAAM,8HAIpB7F,KAAK+hL,YAAY,EAA6B7wK,EAAS,GACvDlR,KAAKuhL,yBAOT,CAAA,IAAA,yBAAA,MAAA,WACI,OAAOvhL,KAAKghL,gBAShB,CAAA,IAAA,gBAAA,MAAA,SAAcgB,EAAO7tB,EAAU8tB,GAE3B,MAAO,OAAA,EAxNTnB,GAwNS,OAGfA,EAAYl+C,UAAO,SAA6B5oI,GAAK,OAAO,IAAKA,GAAK8mL,GAAa98C,GAAS45C,MAC5FkD,EAAYpgD,WAAQb,GAAmB,CAAER,MAAOyhD,EAAaxrK,QAASwrK,EAAYl+C,YADlFk+C,EAhSmCtB,GAgSnCsB,GAAAA,WAAAA,IAiDMoB,EAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAIIliL,KAAKmiL,cAAgB,IAAIruB,IACzBsuB,GAAmBC,YAAYriL,MAwD6BsiL,OAhDhE,aAAA,EAAA,CAAA,CAAA,IAAA,sBAAA,MAAA,SAAoBjjD,EAAOkjD,GACvBviL,KAAKmiL,cAAcngK,IAAIq9G,EAAOkjD,KAOlC,CAAA,IAAA,wBAAA,MAAA,SAAsBljD,GAClBr/H,KAAKmiL,cAALniL,OAA0Bq/H,KAM9B,CAAA,IAAA,4BAAA,MAAA,WACIr/H,KAAKmiL,cAAchjI,UAOvB,CAAA,IAAA,iBAAA,MAAA,SAAeknE,GACX,OAAOrmH,KAAKmiL,cAAct/J,IAAIwjG,IAAS,OAM3C,CAAA,IAAA,sBAAA,MAAA,WACI,OAAO5/G,MAAM8tE,KAAKv0E,KAAKmiL,cAAct/D,YAMzC,CAAA,IAAA,qBAAA,MAAA,WACI,OAAOp8G,MAAM8tE,KAAKv0E,KAAKmiL,cAAc38K,UASzC,CAAA,IAAA,wBAAA,MAAA,SAAsB6gH,GAAwB,IAAlBi8D,IAAkB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAC1C,OAAOF,GAAmBI,sBAAsBxiL,KAAMqmH,EAAMi8D,OAAAA,EA9D9DJ,GA8D8DI,OAGpEJ,EAAoBt/C,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAKkoL,IACtFA,EAAoBxhD,WAAQb,GAAmB,CAAER,MAAO6iD,EAAqB5sK,QAAS4sK,EAAoBt/C,YAD1Gs/C,EAlHApB,GAgLIsB,GAAqB,IA1BnBK,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAaS,OAbTA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,SAKUh9B,MAOZ,CAAA,IAAA,wBAAA,MAAA,SAAsBA,EAAUp/B,EAAMi8D,GAClC,OAAO,SAAA,EAbTG,IAoCFC,GAsBJ,SAA2Cj/C,EAAU/tH,EAASsgK,GAG1D,IAAM2M,EAAkBl/C,EAAS5gH,IAAI46J,GAAkB,IAAIjhL,OAAOkZ,GAmB5DktK,EAAgB,IAAI7M,GAAkBC,GAC5C,GArhsBiD,IAA1Cja,GAAiCt6I,KAshsBpC,OAAOlS,QAAQwJ,QAAQ6pK,GAG3B,IAihCkB5hL,EAEZ0C,EAnhCAm/K,GAihCY7hL,EAjhCqB2hL,EAAgB5tK,KAIvD1I,SAAAA,GAAAA,OAAwBA,EAAY,aA+gC9B3I,EAAS,GACf1C,EAAM2W,SAILu7F,SAAAA,GAAAA,OAASA,GAAQxvG,EAAOhD,KAAPgD,MAAAA,EAAAA,oBAAewvG,OAC1BxvG,GAhhCP,GAAiC,IAA7Bm/K,EAAkB7nL,OAClB,OAAOuU,QAAQwJ,QAAQ6pK,GAG3B,IAAME,EA1sxCV,WACI,IAAMC,EAAW/gD,GAAY,GAC7B,IAAK+gD,IAAaA,EAASC,qBACvB,MAAM,IAAIn9K,MAAM,+VAKpB,OAAOk9K,EAASC,qBARpB,GA8sxCUC,EAFmBrsB,GAAS/vJ,OAAO,CAAEm5H,UAAW6iD,IAEdhgK,IAAIigK,EAASI,gBAGrD,OAnrsBJ,SAAmCC,GAG/B,IAAMC,EAAoB,GAGpBC,EAAS,IAAIvvB,IAKnB,SAASwvB,EAAsBxkL,GAE3B,IAAI28H,EAAU4nD,EAAOxgK,IAAI/jB,GACzB,IAAK28H,EAAS,CAEV,IAAM8nD,EAuqsBdzkL,SAAAA,GAAAA,OAAOyQ,QAAQwJ,QAAQkqK,EAAepgK,IAAI/jB,IAA1CA,CAvqsBsCA,GAC9BukL,EAAOrhK,IAAIljB,EAAK28H,EAAU8nD,EAAK7zK,KAAKusJ,KAExC,OAAOxgC,EAoDX,OAlDAsgC,GAAiCpkJ,SAAQ,SAKxCywI,EAAWj9I,GAER,IAAMq4K,EAAW,GACbp7B,EAAUq7B,aACVD,EAAS9iL,KAAK4iL,EAAsBl7B,EAAUq7B,aAAa/zK,MAI1Dw2H,SAAAA,GACGkiB,EAAUliB,SAAWA,MAI7B,IAAMw9C,EAAYt7B,EAAUs7B,UAEtB/uJ,EAASyzH,EAAUzzH,SAAWyzH,EAAUzzH,OAAS,IAEjDgvJ,EAAcv7B,EAAUzzH,OAAO35B,OACrC0oL,GAAaA,EAAU/rK,SAAQ,SAK9BisK,EAAU3iK,GACP0T,EAAOj0B,KAAK,IACZ8iL,EAAS9iL,KAAK4iL,EAAsBM,GAAUl0K,MAI7ClD,SAAAA,GACGmoB,EAAOgvJ,EAAc1iK,GAASzU,EAC9Bk3K,EAAU9iL,OAAO8iL,EAAU9hL,QAAQgiL,GAAW,GACtB,GAApBF,EAAU1oL,SACVotJ,EAAUs7B,eAAAA,UAKtB,IAAMG,EAAgBt0K,QAAQsI,IAAI2rK,GAAU9zK,MAAK,WAAA,OAmFzD,SAA8BvE,GAC1B6wJ,GAAAA,OAAqC7wJ,GADzC,CAhFmCA,MAC3Bi4K,EAAkB1iL,KAAKmjL,MA6C3B9nB,GAAmC,IAAIjI,IA1ChCvkJ,QAAQsI,IAAIurK,GAAmB1zK,MAAK,eAvE/C,GAwrsBSA,MAAK,WAAA,OAGJkzK,MAoCJkB,GAA2B,IAAI/gD,GAAe,sBAwDpD,SAASghD,GAAsBC,EAAuBpkL,GAAkB,IAAZogI,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAE9DikD,EAAAA,aAAAA,OAAoBrkL,GAEpB8xI,EAAS,IAAI3O,GAAekhD,GAClC,OAAO,WAIW,IAAjBC,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAEV//D,EAAWggE,KACf,IAAKhgE,GAAYA,EAASsf,SAAS5gH,IAAIihK,IAAAA,GACnC,GAAIE,EACAA,EAAsBhkD,EAAUxjI,OAAO0nL,GAAgB1nL,OAAO,CAAE6mI,QAASqO,EAAQpO,UAAAA,SAEhF,CAED,IAAM8gD,EAAoBpkD,EAAUxjI,OAAO0nL,GAAgB1nL,OAAO,CAAE6mI,QAASqO,EAAQpO,UAAAA,GAAkB,CACnGD,QAAS8vB,GACT7vB,SAAU,cA9C9B,SAAwBG,GACpB,GAAI,KAAc,GAAUgsB,YACvB,GAAUhsB,SAAS5gH,IAAIihK,IAAAA,GACxB,MAAM,IAAIj+K,MAAM,iFAGpB,GAAY49H,EAAS5gH,IAAIwhK,IAEzB,IAAMC,EAAQ7gD,EAAS5gH,IAAIu5J,GAAsB,MAC7CkI,GACAA,EAAM3sK,SAILq0G,SAAAA,GAAAA,OAASA,OAdlB,CAgD+B4qC,GAAS/vJ,OAAO,CAAEm5H,UAAWokD,EAAmBxkL,KAAMqkL,KAG7E,OAUR,SAAwBM,GAEpB,IAAMpgE,EAAWggE,KACjB,IAAKhgE,EACD,MAAM,IAAIt+G,MAAM,uBAEpB,IAAKs+G,EAASsf,SAAS5gH,IAAI0hK,EAAe,MACtC,MAAM,IAAI1+K,MAAM,wFAEpB,OAAOs+G,EATX,CAV8ButB,IAsC9B,SAASyyC,KACL,OAAO,KAAc,GAAU10B,UAAY,GAAY,KAAA,IAAA,GAAA,WAAA,IAmDrD40B,EAAAA,WAKF,SAAA,EAAYG,GAAAA,gBAAAA,KAAAA,GACRxkL,KAAKwkL,UAAYA,EACjBxkL,KAAKykL,SAAW,GAChBzkL,KAAK0kL,kBAAoB,GACzB1kL,KAAKi0J,YAAAA,EA8LOA,OAlKhB,aAAA,EAAA,CAAA,CAAA,IAAA,yBAAA,MAAA,SAAuB2uB,EAAeltK,GAAAA,IAyMvBivK,EAAcC,EAzMSlvK,EAAAA,KAU5BmvK,GA+LKF,EAnMUjvK,EAAUA,EAAQmvK,YAAAA,EAmMdD,EAjMMlvK,GAAWA,EAAQkvK,wBAAAA,EAoMjC,SAAjBD,EACS,IAAI9D,IAGc,YAAjB8D,OAAAA,EAAyCA,IAAiB,IAAI/G,GAAO,CAC3EG,qBAAsBzlC,KACtB0lC,mCAAoC4G,KAtMlC5kD,EAAY,CAAC,CAAEqD,QAASu6C,GAAQt6C,SAAUuhD,IAGhD,OAAOA,EAAOxE,KAAI,WAKd,IAAMyE,EAAiBluB,GAAS/vJ,OAAO,CAAEm5H,UAAWA,EAAWz2H,OAAQvJ,EAAKyjI,SAAU7jI,KAAMgjL,EAAc5M,WAAWp2K,OAE/GmlL,EAA+BnC,EAAc/7K,OAAOi+K,GAEpDE,EAAmBD,EAAUthD,SAAS5gH,IAAIq0H,GAAc,MAC9D,IAAK8tC,EACD,MAAM,IAAIn/K,MAAM,iEAkBpB,OAhBAk/K,EAAUt9C,WAAU,WAAA,OAGd1xH,GAAO/V,EAAKykL,SAAUM,MAC5B,EAA4B3E,mBAAkB,WAAA,OAGxC,EAA4Bl7D,QAAQ3kH,UAAU,CAChD2H,KAIC/I,SAAAA,GACG6lL,EAAiBj9B,YAAY5oJ,SAoLjD,SAAsCupJ,EAAcm8B,EAAQngL,GACxD,IAEI,IAAMhB,IA/KQuhL,EAAaF,EAAUthD,SAAS5gH,IAAI64J,KAC/BwJ,kBACJD,EAAWpJ,YAAYnsK,MAAK,WAAA,OAQ3BylK,GADiB4P,EAAUthD,SAAS5gH,IAAI25J,GAt7PtC,UAAA,SAy7PNx8K,EAAKmlL,mBAAmBJ,GACjBA,MAmKnB,OAAI,GAAUrhL,GACHA,EAAAA,OAIND,SAAAA,GAMG,MALAohL,EAAOzE,mBAAkB,WAAA,OAGnB13B,EAAaX,YAAYtkJ,MAEzBA,KAGPC,EAEX,MAAOD,GAMH,MALAohL,EAAOzE,mBAAkB,WAAA,OAGnB13B,EAAaX,YAAYtkJ,MAEzBA,EA3MiF,IAKzEwhL,EA4KtB,CAjLgDD,EAAkB,QA2C9D,CAAA,IAAA,kBAAA,MAAA,SAAgBhP,GAA8B,IAAA,EAAA,KAAlB2M,EAAkB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAEpCjtK,EAAU0vK,GAAe,GAAIzC,GACnC,OAAOD,GAAuB1iL,KAAKyjI,SAAU/tH,EAASsgK,GACjDtmK,MAILkzK,SAAAA,GAAAA,OAAiB5iL,EAAKqlL,uBAAuBzC,EAAeltK,QAOhE,CAAA,IAAA,qBAAA,MAAA,SAAmBqvK,GAEf,IAAMt3B,EAA4Bs3B,EAAUthD,SAAS5gH,IAAI,IACzD,GAAIkiK,EAAUrP,qBAAqB16K,OAAS,EACxC+pL,EAAUrP,qBAAqB/9J,SAI/B1N,SAAAA,GAAAA,OAAKwjJ,EAAO5kB,UAAU5+H,UAErB,CAAA,IAAI86K,EAAUvuI,SAAS8uI,cAIxB,MAAM,IAAIz/K,MAAM,cAAA,OAAcM,GAAU4+K,EAAUvuI,SAC7C5vC,aADW,8GAEZ,+BALJm+K,EAAUvuI,SAAS8uI,cAAc73B,GAOrCztJ,KAAKykL,SAAS/jL,KAAKqkL,KAOvB,CAAA,IAAA,YAAA,MAAA,SAAUrgL,GACN1E,KAAK0kL,kBAAkBhkL,KAAKgE,KAOhC,CAAA,IAAA,UAAA,MAAA,WAQI,GAAI1E,KAAKi0J,WACL,MAAM,IAAIpuJ,MAAM,4CAEpB7F,KAAKykL,SAASnnL,QAAQqa,SAItBlb,SAAAA,GAAAA,OAAUA,EAAO09E,aACjBn6E,KAAK0kL,kBAAkB/sK,SAIvBwzI,SAAAA,GAAAA,OAAYA,OACZnrJ,KAAKi0J,YAAAA,IAKT,CAAA,IAAA,WAAA,IAAA,WAzBI,OAAOj0J,KAAKwkL,YAMhB,CAAA,IAAA,YAAA,IAAA,WAoBI,OAAOxkL,KAAKi0J,eAAAA,EAvMdowB,GAuMcpwB,OAGpBowB,EAAYzhD,UAAO,SAA6B5oI,GAAK,OAAO,IAAKA,GAAKqqL,GAAargD,GAAS4yB,MAC5FytB,EAAY3jD,WAAQb,GAAmB,CAAER,MAAOglD,EAAa/uK,QAAS+uK,EAAYzhD,YADlFyhD,EA7P2D,GAwV3D,SAASe,GAAe/7F,EAAKllC,GAOzB,OANI19C,MAAMqQ,QAAQqtC,GACRA,EAAKjgD,OAAOkhL,GAAgB/7F,GAG5BtjF,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAI5/B,GAAM,GAAtCtjF,IAiGRw/K,GAjGQx/K,KAiGRw/K,GAAAA,WAUF,SAAA,EAAYC,EAAOruC,EAAUqtC,EAAWiB,EAAmBC,EAA2BC,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAClF3lL,KAAKwlL,MAAQA,EACbxlL,KAAKm3I,SAAWA,EAChBn3I,KAAKwkL,UAAYA,EACjBxkL,KAAKylL,kBAAoBA,EACzBzlL,KAAK0lL,0BAA4BA,EACjC1lL,KAAK2lL,YAAcA,EAInB3lL,KAAK4lL,oBAAsB,GAC3B5lL,KAAK6lL,OAAS,GACd7lL,KAAK8lL,cAAAA,EACL9lL,KAAK+lL,sBAAAA,EACL/lL,KAAKgmL,SAAAA,EAKLhmL,KAAKimL,eAAiB,GAItBjmL,KAAKohJ,WAAa,GAClBphJ,KAAK+lL,qBAAuBztC,KAC5Bt4I,KAAKwlL,MAAMnH,iBAAiB99K,UAAU,CAClC2H,KAAM,WAIFlI,EAAKwlL,MAAMnF,KAAI,WAIXrgL,EAAKi6B,aAKjB,IAAMisJ,EAAoB,IAAI,GAI7B3sD,SAAAA,GACGv5H,EAAKgmL,QAAUhmL,EAAKwlL,MAAMrH,WAAan+K,EAAKwlL,MAAMvH,uBAC7Cj+K,EAAKwlL,MAAMtH,qBAChBl+K,EAAKwlL,MAAMpF,mBAAkB,WAIzB7mD,EAASrxH,KAAKlI,EAAKgmL,SACnBzsD,EAAShyH,iBAIX42K,EAAW,IAAI,GAIpB5kD,SAAAA,GAIG,IAAI4sD,EACJnmL,EAAKwlL,MAAMpF,mBAAkB,WAIzB+F,EAAYnmL,EAAKwlL,MAAMlH,SAAS/9K,WAAU,WAItCq9K,GAAO0D,yBAGP5D,IAAkB,WAIT19K,EAAKgmL,SAAYhmL,EAAKwlL,MAAMvH,sBAC5Bj+K,EAAKwlL,MAAMtH,uBACZl+K,EAAKgmL,SAAAA,EACLzsD,EAASrxH,MAAAA,aAMzB,IAAMk+K,EAAcpmL,EAAKwlL,MAAMpH,WAAW79K,WAAU,WAIhDq9K,GAAOyI,sBACHrmL,EAAKgmL,UACLhmL,EAAKgmL,SAAAA,EACLhmL,EAAKwlL,MAAMpF,mBAAkB,WAIzB7mD,EAASrxH,MAAAA,UAIrB,OAAO,WAIHi+K,EAAUxlL,cACVylL,EAAYzlL,kBAGpB,KAA4Bw9K,SACxB5pE,EAAQ2xE,EAAmB/H,EAAS95K,KAAK+5H,OAsK1BpjI,OAhJvB,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,SAAUsrL,EAAoBtU,GAAAA,IAKtB9iB,EALsB8iB,EAAAA,KAC1B,IAAKhyK,KAAK2lL,YAAYhqD,KAClB,MAAM,IAAI91H,MAAM,iJAKhBqpJ,EADAo3B,aAA8Bnc,GACXmc,EAIItmL,KAAK0lL,0BAA0Ba,wBAAwBD,GAElFtmL,KAAKimL,eAAevlL,KAAKwuJ,EAAiB4iB,eAG1C,IAAMviB,EAA2BL,EAztBJ6iB,qBAAAA,EAytBoC/xK,KAAKwkL,UAAU3hK,IAAI0hH,IAI9EiiD,EAAUt3B,EAAiBroJ,OAAO+vJ,GAASC,KAAM,GAFhCmb,GAAsB9iB,EAAiBpwH,SAEaywH,GAC3Ei3B,EAAQ/+C,WAAU,WAIdznI,EAAKymL,iBAAiBD,MAG1B,IAAMjE,EAAciE,EAAQ/iD,SAAS5gH,IAAIi+J,GAAa,MAStD,OARIyB,GACAiE,EAAQ/iD,SAAS5gH,IAAIq/J,IAChBwE,oBAAoBF,EAAQ9oL,SAAS6sK,cAAegY,GAE7DviL,KAAK2mL,eAAeH,GAChBluC,MACAt4I,KAAKm3I,SAAS33H,IAAI,oGAEfgnK,IAaX,CAAA,IAAA,OAAA,MAAA,WAAA,IAAA,EAAA,KACI,GAAIxmL,KAAK8lL,aACL,MAAM,IAAIjgL,MAAM,6CAEpB,IACI7F,KAAK8lL,cAAAA,EADT,IAAA,EAAA,EAAA,2BAEqB9lL,KAAK6lL,QAF1B,IAEI,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAA,EAAA,MACSe,gBAHb,MAAA,GAAA,EAAA,EAAA,GAAA,QAAA,EAAA,IAKI,GAAI5mL,KAAK+lL,qBAAT,CAAA,IAAA,EAAA,EAAA,2BACqB/lL,KAAK6lL,QAD1B,IACI,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAA,EAAA,MACSgB,iBAFb,MAAA,GAAA,EAAA,EAAA,GAAA,QAAA,EAAA,MAMJ,MAAOpjL,GAEHzD,KAAKwlL,MAAMpF,mBAAkB,WAAA,OAGvBpgL,EAAKylL,kBAAkB19B,YAAYtkJ,MAhB7C,QAmBIzD,KAAK8lL,cAAAA,KAUb,CAAA,IAAA,aAAA,MAAA,SAAW92B,GAEP,IAAMhkB,EAAO,EACbhrI,KAAK6lL,OAAOnlL,KAAKsqI,GACjBA,EAAK87C,eAAe9mL,QAOxB,CAAA,IAAA,aAAA,MAAA,SAAWgvJ,GAEP,IAAMhkB,EAAO,EACbj1H,GAAO/V,KAAK6lL,OAAQ76C,GACpBA,EAAK+7C,qBAOT,CAAA,IAAA,iBAAA,MAAA,SAAev3B,GACXxvJ,KAAKgnL,WAAWx3B,EAAarkB,UAC7BnrI,KAAKi6B,OACLj6B,KAAKohJ,WAAW1gJ,KAAK8uJ,GAGHxvJ,KAAKwkL,UAAU3hK,IAAIy5J,GAAwB,IAAI9/K,OAAOwD,KAAK4lL,qBACnEjuK,SAITwzI,SAAAA,GAAAA,OAAaA,EAASqE,QAO3B,CAAA,IAAA,mBAAA,MAAA,SAAiBA,GACbxvJ,KAAKkqJ,WAAWsF,EAAarkB,UAC7Bp1H,GAAO/V,KAAKohJ,WAAYoO,KAM5B,CAAA,IAAA,cAAA,MAAA,WAEIxvJ,KAAK6lL,OAAOvoL,QAAQqa,SAInBqzH,SAAAA,GAAAA,OAASA,EAAK7wD,eAMnB,CAAA,IAAA,YAAA,IAAA,WACI,OAAOn6E,KAAK6lL,OAAO7qL,WAAAA,EAhSrBuqL,IAmSS3iD,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAKurL,IAAgBvhD,GAAS45C,IAAS55C,GAASu4C,IAAUv4C,GAAS4yB,IAAW5yB,GAASkT,IAAelT,GAASqmC,IAA2BrmC,GAAS03C,MAC1N6J,GAAe7kD,WAAQb,GAAmB,CAAER,MAAOkmD,GAAgBjwK,QAASiwK,GAAe3iD,YAD3F2iD,IAgGA,SAASxvK,GAAO4uH,EAAMtvG,GAElB,IAAMpU,EAAQ0jH,EAAK/iI,QAAQyzB,GACvBpU,GAAS,GACT0jH,EAAK/jI,OAAOqgB,EAAO,GAw1C3B,IAgCMgmK,GAAelD,GAAsB,KAAM,OAbhB,CAE7B,CAAE1gD,QAASg5C,GAAa/4C,SAAU,WAClC,CAAED,QAASghD,GAAahuB,KAAM,CAACO,KAC/B,CAAEvzB,QAAS6+C,GAAqB7rB,KAAM,IACtC,CAAEhzB,QAASk5C,GAASlmB,KAAM,MAyExB6wB,GAA+B,CACjC,CACI7jD,QAAS,GACTmzB,SAAU,GACVH,KAAM,CAACunB,GAAQrB,GAAS3lB,GAAU1f,GAAcmzB,GAA0BqR,KAE9E,CAAEr4C,QAASwuC,GAAWxb,KAAM,CAACunB,IAASxnB,WA2B1C,SAA8ByuB,GAE1B,IAAIsC,EAAQ,GASZ,OARAtC,EAAOvG,SAAS/9K,WAAU,WAItB,KAAO4mL,EAAMnsL,QACUmsL,EAAMpzK,KAANozK,MAGpB,SAIG/iL,GACN+iL,EAAMzmL,KAAK0D,MA1Cf,CACIi/H,QAASq4C,GACTllB,SAAUklB,GACVrlB,KAAM,CAAC,CAAC,IAAI/2B,GAAYm8C,MAE5B,CAAEp4C,QAAS+5C,GAAU5mB,SAAU4mB,GAAU/mB,KAAM,IAC/C6lB,GACA,CAAE74C,QAASstC,GAAiBva,WArEhC,WACI,OAAO4a,IAoE0D3a,KAAM,IACvE,CAAEhzB,QAASwtC,GAAiBza,WAhEhC,WACI,OAAO6a,IA+D0D5a,KAAM,IACvE,CACIhzB,QAASm5C,GACTpmB,WA5DR,SAAwBzgJ,GAKpB,OAFIw/J,GAFJx/J,EAASA,GA+BsC,oBAAdyxK,WAA6BA,UAAUzxK,QAxhUlD,SA6/TfA,GAwDH0gJ,KAAM,CAAC,CAAC,IAAIj3B,GAAOo9C,IAAc,IAAIl9C,GAAY,IAAIE,MAEzD,CAAE6D,QAASo5C,GAAuBn5C,SAjjUZ,QA27T1B,GAAA,WAAA,IA+JM+jD,EAKF,SAAA,EAAY55B,GAAAA,gBAAAA,KAAAA,IAAAA,OAEhB45B,EAAkB7kD,UAAOoG,GAAiB,CAAEz9H,KAAMk8K,IAClDA,EAAkB1mD,UAAOZ,GAAiB,CAAEzqH,QAAS,SAAmCtb,GAAK,OAAO,IAAKA,GAAKqtL,GAAmBrjD,GAAS,MAAqBhE,UAAWknD,KAD1KG,EAtKA,GAsKAA,EAAAA,QChz3CO,ICEMC,GAAa,CAAC,EAAG,EAAG,GAAI,GAAI,ICT7BC,GAAZ,SAAYA,GAAAA,OACR,EAAA,OAAA,SACA,EAAA,QAAA,UAFQA,EAAZ,CAGC,ICHWC,GAAZ,SAAYA,GAAAA,OACR,EAAA,KAAA,OACA,EAAA,MAAA,QAFQA,EAAZ,CAGC,ICHWC,GAAZ,SAAYA,GAAAA,OACR,EAAA,IAAA,MACA,EAAA,OAAA,SACA,EAAA,KAAA,OAHQA,EAAZ,CAIC,ICJWC,GAAZ,SAAYA,GAAAA,OACR,EAAA,WAAA,aACA,EAAA,OAAA,SACA,EAAA,OAAA,SACA,EAAA,KAAA,OACA,EAAA,UAAA,YACA,EAAA,KAAA,OACA,EAAA,KAAA,OACA,EAAA,OAAA,SACA,EAAA,SAAA,WACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,WAAA,aACA,EAAA,MAAA,QACA,EAAA,gBAAA,iBAdQA,EAAZ,CAeC,ICfYC,GAAqB,CAC9BznK,KAAM,oBACNmU,QAAS,EACT+lB,gBAAiB,KACjBkO,YAAa,GACb5qB,OAAQ,OACR8b,OAAQ,CACJve,MAAO,OACPke,KAAM,EACNtC,SAAU,EACVC,QAAS,ICGJ8wI,GAAgB,IAAI7kD,GAA4B,iBAupBhD,GAA8B,CACvCjkG,SAAU,eACVngB,YAAa,KACbkpK,GAAI,CACA5pJ,SAAAA,EACA8rD,KAAMw9F,GAAWO,OACjBC,aAAcP,GAAYQ,MAC1BC,sBAAAA,EACAC,kBAAAA,EACAC,QAAS,CACLC,UAAW,CACP,CACIj9K,KAAM,SACNk9K,KAAM,gBACNv0K,KAAM,OACNw0K,mBAAAA,EACAC,cAAe,CACX,CAACn4H,OAAQ,sBAAuBo4H,MAAO,oBACvC,CAACp4H,OAAQ,mBAAoBo4H,MAAO,iBACpC,CAACp4H,OAAQ,gBAAiBo4H,MAAO,yBAGzC,CACIr9K,KAAM,SACNk9K,KAAM,gBACNv0K,KAAM,OACNs8C,OAAQ,gBAGhBq4H,YAAa,CACT,CACIt9K,KAAM,aACNmmB,UAAW,CAAC,4BAAA,IAEhB,CACInmB,KAAM,kBACNu9K,iBAAAA,IAGRC,WAAY,CACR,CACIx9K,KAAM,cAEV,CACIA,KAAM,SACNk9K,KAAM,UACNj4H,OAAQ,gBACRw4H,WAAY,QAEhB,CACIz9K,KAAM,SACNk9K,KAAM,SACNj4H,OAAQ,iBAEZ,CACIjlD,KAAM,SACNk9K,KAAM,QACNj4H,OAAQ,cACRw4H,WAAY,OACZt3J,UAAW,CAAC,UAAW,YAE3B,CACInmB,KAAM,SACNk9K,KAAM,gBACNj4H,OAAQ,cACRs4H,iBAAAA,KAIZG,IAAK,CACDhiK,SAAU4gK,GAAYqB,IACtBC,gBAAAA,EACAC,MAAO,CACH,CAACppL,KAAM,SAAUyoL,KAAM,gBAAiBj4H,OAAQs3H,GAAWuB,QAC3D,CAAC99K,KAAM,aACP,CAACvL,KAAM,SAAUyoL,KAAM,gBAAiBj4H,OAAQs3H,GAAWwB,QAC3D,CAACtpL,KAAM,OAAQyoL,KAAM,cAAej4H,OAAQs3H,GAAWyB,MACvD,CAACvpL,KAAM,YAAayoL,KAAM,mBAAoBj4H,OAAQs3H,GAAW0B,WACjE,CAACj+K,KAAM,aACP,CAACvL,KAAM,OAAQyoL,KAAM,gBAAiBj4H,OAAQs3H,GAAW2B,MACzD,CAACzpL,KAAM,OAAQyoL,KAAM,kBAAmBj4H,OAAQs3H,GAAW4B,MAC3D,CAAC1pL,KAAM,SAAUyoL,KAAM,iBAAkBj4H,OAAQs3H,GAAW6B,QAC5D,CAAC3pL,KAAM,WAAYyoL,KAAM,iBAAkBj4H,OAAQs3H,GAAW8B,UAC9D,CAAC5pL,KAAM,QAASyoL,KAAM,eAAgBj4H,OAAQs3H,GAAW+B,OACzD,CAACt+K,KAAM,aACP,CAACvL,KAAM,UAAWyoL,KAAM,wBAAyBj4H,OAAQs3H,GAAWgC,SACpE,CAAC9pL,KAAM,aAAcyoL,KAAM,oBAAqBj4H,OAAQs3H,GAAWiC,YACnE,CAAC/pL,KAAM,QAASyoL,KAAM,eAAgBj4H,OAAQs3H,GAAWkC,SAGjEC,gBAAiB,CACbC,MAAAA,EACAC,aAAc,CACV,CACIjrL,IAAK,6BACLkrL,UAAW,wCAEf,CACIlrL,IAAK,6BACLkrL,UAAW,wCAEf,CACIlrL,IAAK,6BACLkrL,UAAW,0CAIvBC,aAAc,CACVlB,gBAAAA,EACAC,MAAO,CACH,aACA,qBACA,mBACA,oBACA,qBACA,mBACA,oBACA,uBAIZkB,UAAW,CACP5yH,OAAQ,WAEZ6yH,kBAAmB,0CACnBC,eAAgB,CACZjtL,OAAQ,OAAF,OAAA,CACF2yD,oBAAAA,EACA8T,wBAAyB,EACzBH,YAAa,SACbF,YAAa,OACbC,kBAAmB,OACnBJ,WAAY,GACZ9a,YAAa,IACb6b,gBAAAA,GACGwjH,IAEP7zK,KAAM,CACF8gF,UAAW,UACXH,WAAAA,EACAE,aAAAA,EACApjF,UAAW,SACXya,WAAY,kBACZxa,WAAY,MAGpB64K,MAAO,CACHnzK,OAAQ,CACJ6xK,gBAAAA,EACAC,MAAO,CACH,YACA,aACA,UACA,SACA,UACA,WACA,aACA,cACA,UACA,QACA,cACA,aACA,QACA,QACA,WACA,OACA,SACA,eAGRv0J,KAAM,CACF61J,eAAAA,EACAC,kBAAAA,GAEJC,KAAM,CACFC,uBAAAA,EACAC,oBAAAA,EACAC,aAAc,OACdC,QAAS,CACL,CAACC,MAAO,MAAOjrL,KAAM,OACrB,CAACirL,MAAO,MAAOjrL,KAAM,OACrB,CAACirL,MAAO,MAAOjrL,KAAM,OACrB,CAACirL,MAAO,MAAOjrL,KAAM,OACrB,CAACirL,MAAO,MAAOjrL,KAAM,OACrB,CAACirL,MAAO,MAAOjrL,KAAM,OACrB,CAACirL,MAAO,OAAQjrL,KAAM,QACtB,CAACirL,MAAO,OAAQjrL,KAAM,UAG9BkU,KAAM,CACFg3K,gBAAiB,cACjBC,YAAa,wBAEjBniK,KAAM,CACFoiK,WAAY1D,GACZ2D,WNv2Bc,CACtB,cACA,aACA,aACA,cACA,cACA,eMm2BIC,OAAQ,CACJnC,gBAAAA,EACAC,MPp2B+B,CACvC,CACIppL,KAAM,SACNuL,KAAM,UAEV,CACIvL,KAAM,YACNuL,KAAM,OACNuK,QAAS,CACLyuD,gBAAAA,IAGR,CACIvkE,KAAM,WACNuL,KAAM,YAEV,CACIvL,KAAM,UACNuL,KAAM,UACNuK,QAAS,CACLyuD,gBAAAA,IAGR,CACIvkE,KAAM,WACNuL,KAAM,OACNuK,QAAS,CACLoS,KAAM,oPAGd,CACIloB,KAAM,WACNuL,KAAM,OACNuK,QAAS,CACLoS,KAAM,iHAGd,CACIloB,KAAM,WACNuL,KAAM,OACNuK,QAAS,CACLoS,KAAM,+EAGd,CACIloB,KAAM,OACNuL,KAAM,OACNuK,QAAS,CACLoS,KAAM,iBACNwgC,YAAa,GACb5qB,OAAQ,SAGhB,CACI99B,KAAM,OACNuL,KAAM,OACNuK,QAAS,CACLoS,KAAM,yIAGd,CACIloB,KAAM,UACNuL,KAAM,OACNuK,QAAS,CACLoS,KAAM,8HAGd,CACIloB,KAAM,QACNuL,KAAM,OACNuK,QAAS,CACLoS,KAAM,6JO6xBexqB,SAEzB6tL,SAAU,CACNpC,gBAAAA,EACAC,MCp2BsC,CAC9C,CAACppL,KAAM,YAAa+kI,KCZK,CAAC,SAAS,OAAO,QAAQ,UAAU,QAAQ,QAAQ,UAAU,UAAU,UAAU,UAAU,UAAU,QAAQ,UAAU,WAAW,UAAU,QAAQ,SAAS,SAAS,SAAS,OAAO,QAAQ,UAAU,cAAc,WAAW,SAAS,QAAQ,aAAa,aAAa,aAAa,WAAW,SAAS,WAAW,WAAW,WAAW,SAAS,UAAU,UAAU,UAAU,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,cAAc,YAAY,YAAY,iBAAiB,SAAS,QAAQ,OAAO,QAAQ,QAAQ,MAAM,WAAW,OAAO,UAAU,QAAQ,UAAU,UAAU,QAAQ,SAAS,WAAW,SAAS,OAAO,cAAc,cAAc,cAAc,cAAc,YAAY,SAAS,SAAS,OAAO,UAAU,UAAU,UAAU,UAAU,QAAQ,WAAW,SAAS,UAAU,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,QAAQ,eAAe,aAAa,YAAY,YAAY,UAAU,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU,QAAQ,MAAM,WAAW,WAAW,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,aAAa,aAAa,aAAa,WAAW,YAAY,OAAO,QAAQ,YAAY,UAAU,SAAS,SAAS,SAAS,SAAS,OAAO,QAAQ,WAAW,WAAW,SAAS,SAAS,SAAS,OAAO,SAAS,WAAW,SAAS,SAAS,OAAO,WAAW,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,MAAM,WAAW,WAAW,WAAW,SAAS,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,UAAU,SAAS,YAAY,YAAY,YAAY,UAAU,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,WAAW,QAAQ,YAAY,UAAU,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,OAAO,SAAS,UAAU,cAAc,cAAc,cAAc,cAAc,YAAY,cAAc,YAAY,WAAW,UAAU,UAAU,UAAU,QAAQ,UAAU,QAAQ,SAAS,YAAY,UAAU,SAAS,SAAS,OAAO,YAAY,UAAU,YAAY,YAAY,YAAY,UAAU,UAAU,UDYnoEx5H,KAAM,MAAOigL,aAAc,0BACpE,CAACxrL,KAAM,UAAWopL,MAAO,IAAK79K,KAAM,MAAOigL,aAAc,yBACzD,CAACxrL,KAAM,YAAaopL,MAAO,IAAK79K,KAAM,MAAOigL,aAAc,0BAC3D,CAACxrL,KAAM,QAASopL,MAAO,EAAG79K,KAAM,MAAOkgL,QAAAA,EAAcD,aAAc,sBACnE,CAACxrL,KAAM,SAAUopL,MAAO,GAAI79K,KAAM,MAAOkgL,QAAAA,EAAcD,aAAc,wBACrE,CAACxrL,KAAM,UAAWopL,MAAO,IAAK79K,KAAM,MAAOigL,aAAc,+BACzD,CAACxrL,KAAM,iBAAkBopL,MAAO,GAAI79K,KAAM,MAAOigL,aAAc,gCAC/D,CAACxrL,KAAM,QAASopL,MAAO,GAAI79K,KAAM,MAAOigL,aAAc,yBD81BlDE,OAAQ,CACJC,gBAAiB,CAAC,MAAO,MAAO,OAAQ,MAAO,OAAQ,OACvDC,oBAAAA,EACAC,8BAAAA,GAEJC,OAAQ,CACJC,cAAe,MACfC,eAAgB,GAChBC,YAAa,SAEjBxpE,MAAO,CACH0mE,gBAAAA,EACAC,MAAO,CACH,CACIppL,KAAM,QACNmqF,KAAM,QACNtoE,KAAM,CACFjH,IAAK,EACLC,IAAK,GACLqxK,QAAS,KAGjB,CACIlsL,KAAM,OACNmqF,KAAM,UACNtoE,KAAM,CACFjH,IAAK,EACLC,IAAK,GACLqxK,QAAS,KAGjB,CACIlsL,KAAM,MACNmqF,KAAM,UACNtoE,KAAM,CACFjH,IAAK,EACLC,IAAK,GACLqxK,QAAS,KAGjB,CACIlsL,KAAM,UACNmqF,KAAM,UACNtoE,KAAM,CACFjH,IAAK,EACLC,IAAK,GACLqxK,QAAS,KAGjB,CACIlsL,KAAM,UACNmsL,aAAc,YACdhiG,KAAM,UACNtoE,KAAM,CACFjH,IAAK,EACLC,IAAK,GACLqxK,QAAS,KAGjB,CACIlsL,KAAM,UACNmsL,aAAc,YACdhiG,KAAM,UACNtoE,KAAM,CACFjH,IAAK,EACLC,IAAK,GACLqxK,QAAS,KAGjB,CACIlsL,KAAM,QACNmqF,KAAM,UACNtoE,KAAM,CACFjH,IAAK,EACLC,IAAK,GACLqxK,QAAS,KAGjB,CACIlsL,KAAM,OACNmsL,aAAc,SACdhiG,KAAM,SACNtoE,KAAM,CACFjH,IAAK,GACLC,IAAK,GACLqxK,QAAS,KAGjB,CACIlsL,KAAM,OACNmsL,aAAc,SACdhiG,KAAM,SACNtoE,KAAM,CACFjH,IAAK,GACLC,IAAK,GACLqxK,QAAS,SG98B1B,GAAA,WAAA,IAAME,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAA7gL,KAAO,gBAAP,EADb,GAIA,GAAA,WAAA,IAAM8gL,EAET,SAAA,IAAqC,IAAlBC,IAAkB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAAA,gBAAA,KAAA,GAAlB,KAAAA,gBAAAA,GAFhB,OACa,EAAA/gL,KAAO,iBAAP,EADb,GAKA,GAAA,WAAA,IAAMghL,EAET,SAAA,EAAmBC,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,MAAAA,GAFhB,OACa,EAAAjhL,KAAO,sBAAP,EADb,GAKA,GAAA,WAAA,IAAMkhL,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAAlhL,KAAO,4BAAP,EADb,GAIA,GAAA,WAAA,IAAMmhL,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAAnhL,KAAO,4BAAP,EADb,GAIA,GAAA,WAAA,IAAMohL,EAET,SAAA,EAA0BH,GAAuC,IAAbI,IAAa,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAAA,gBAAA,KAAA,GAAvC,KAAAJ,MAAAA,EAA0B,KAAAI,WAAAA,GAFjD,OACa,EAAArhL,KAAO,yBAAP,EADb,GAKA,GAAA,WAAA,IAAMshL,EAET,SAAA,EAA0BL,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,MAAAA,GAFvB,OACa,EAAAjhL,KAAO,0BAAP,EADb,GAKA,GAAA,WAAA,IAAMuhL,EAGT,SAAA,EAAmBC,EAA2BC,GAAAA,gBAAAA,KAAAA,GAA3B,KAAAD,WAAAA,EAA2B,KAAAC,eAAAA,GAH3C,OACa,EAAAzhL,KAAO,2BAAP,EADb,GAMA,GAAA,WAAA,IAAM0hL,EAGT,SAAA,EAAmBD,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,eAAAA,GAHhB,OACa,EAAAzhL,KAAO,6BAAP,EADb,GAWA,GAAA,WAAA,IAAM2hL,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAA3hL,KAAO,0BAAP,EADb,GAIA,GAAA,WAAA,IAAM4hL,EAET,SAAA,EAAmBt4J,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,KAAAA,GAFhB,OACa,EAAAtpB,KAAO,oBAAP,EADb,GCtDM,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYkxH,EAAW2wD,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACnB5yD,EAAAA,EAAAA,KAAAA,KAAMiC,EAAW2wD,IACZ3wD,UAAYA,EACjBr8H,EAAKgtL,KAAOA,EACZhtL,EAAK0hL,SAAAA,EAJcsL,EA0EN,OApEjB,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASn6D,GAAe,IAAR/uB,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EACpB,GAAI9jG,KAAKuI,OACL,OAAOvI,KAEXA,KAAK6yH,MAAQA,EACb,IAAMphH,EAAKzR,KAAKyR,GACV4qH,EAAYr8H,KAAKq8H,UAOvB,OANU,MAAN5qH,IACAzR,KAAKyR,GAAKzR,KAAKitL,eAAe5wD,EAAW5qH,EAAIqyF,IAEjD9jG,KAAK0hL,SAAAA,EACL1hL,KAAK8jG,MAAQA,EACb9jG,KAAKyR,GAAKzR,KAAKyR,IAAMzR,KAAKktL,eAAe7wD,EAAWr8H,KAAKyR,GAAIqyF,GACtD9jG,OAEX,CAAA,IAAA,iBAAA,MAAA,SAAeq8H,EAAW5qH,GAAY,IAARqyF,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAClC,OAAOqpF,YAAY9wD,EAAU+wD,MAAMrkL,KAAKszH,EAAWr8H,MAAO8jG,KAE9D,CAAA,IAAA,iBAAA,MAAA,SAAeu4B,EAAW5qH,GAAY,IAARqyF,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAClC,GAAc,OAAVA,GAAkB9jG,KAAK8jG,QAAUA,IAAAA,IAAS9jG,KAAK0hL,QAC/C,OAAOjwK,EAEX47K,cAAc57K,KAGlB,CAAA,IAAA,UAAA,MAAA,SAAQohH,EAAO/uB,GACX,GAAI9jG,KAAKuI,OACL,OAAO,IAAI1C,MAAM,gCAErB7F,KAAK0hL,SAAAA,EACL,IAAMviL,EAAQa,KAAKstL,SAASz6D,EAAO/uB,GACnC,GAAI3kG,EACA,OAAOA,GAAAA,IAEFa,KAAK0hL,SAAgC,MAAX1hL,KAAKyR,KACpCzR,KAAKyR,GAAKzR,KAAKitL,eAAejtL,KAAKq8H,UAAWr8H,KAAKyR,GAAI,SAG/D,CAAA,IAAA,WAAA,MAAA,SAASohH,EAAO/uB,GACZ,IAAIypF,GAAAA,EACAC,OAAAA,EACJ,IACIxtL,KAAKgtL,KAAKn6D,GAEd,MAAOpvH,GACH8pL,GAAAA,EACAC,IAAe/pL,GAAKA,GAAK,IAAIoC,MAAMpC,GAEvC,GAAI8pL,EAEA,OADAvtL,KAAKW,cACE6sL,IAGf,CAAA,IAAA,eAAA,MAAA,WACI,IAAM/7K,EAAKzR,KAAKyR,GACV4qH,EAAYr8H,KAAKq8H,UACjBtH,EAAUsH,EAAUtH,QACpB9zG,EAAQ8zG,EAAQnzH,QAAQ5B,MAC9BA,KAAKgtL,KAAO,KACZhtL,KAAK6yH,MAAQ,KACb7yH,KAAK0hL,SAAAA,EACL1hL,KAAKq8H,UAAY,MACF,IAAXp7G,GACA8zG,EAAQn0H,OAAOqgB,EAAO,GAEhB,MAANxP,IACAzR,KAAKyR,GAAKzR,KAAKitL,eAAe5wD,EAAW5qH,EAAI,OAEjDzR,KAAK8jG,MAAQ,SAAA,EA3ER,CCAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYu4B,EAAW2wD,GAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,KAAAA,MAIZhtL,OADX,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAAS6yH,GAAe,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACpB,OAAO7yH,SAAAA,EALF,CAAe,ICDrB,GAAA,WAAA,IAAMytL,EAAN,WACH,SAAA,EAAYC,GAAiCvhL,IAAhBA,EAAgBA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAVshL,EAAUthL,IAAAA,gBAAAA,KAAAA,GACzCnM,KAAK0tL,gBAAkBA,EACvB1tL,KAAKmM,IAAMA,EAHZ,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAKM6gL,GAAiBn6D,IAAX/uB,EAAW+uB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAH,EAAGA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EACtB,OAAO,IAAI7yH,KAAK0tL,gBAAgB1tL,KAAMgtL,GAAMlyD,SAASjI,EAAO/uB,OAN7D,EAAA,GAAA,OASP2pF,EAAUthL,IAAM,WAAA,OAAMD,KAAKC,OAA3BshL,EATO,GCCM,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYC,GAAiCvhL,IAAAA,EAAhBA,EAAgBA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAVshL,GAAUthL,IAAAA,OAAAA,gBAAAA,KAAAA,IACzCiuH,EAAAA,EAAAA,KAAAA,KAAMszD,GAAiB,WAAA,OACf,EAAerO,UAAY,EAAeA,WAAf,uBAAA,GACpB,EAAeA,SAASlzK,MAGxBA,QAGV4oH,QAAU,GACf/0H,EAAKs3D,QAAAA,EACLt3D,EAAK2tL,eAAAA,EAXoCxhL,EAuC/BhN,OA1Bd,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAAS6tL,GAAiBn6D,IAAX/uB,EAAW+uB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAH,EAAGA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EACtB,OAAI,EAAewsD,UAAY,EAAeA,WAAar/K,KAChD,EAAeq/K,SAASvkD,SAASkyD,EAAMlpF,EAAO+uB,GADrD,KAAA,gBAAA,EAAA,WAAA,WAAA,MAAA,KAAA,KAIsBm6D,EAAMlpF,EAAO+uB,KAG3C,CAAA,IAAA,QAAA,MAAA,SAAMziE,GAAAA,IACM2kE,EAAY/0H,KAAd,QACN,GAAIA,KAAKs3D,OACLy9D,EAAQr0H,KAAK0vD,OADjB,CAIA,IAAIjxD,EACJa,KAAKs3D,QAAAA,EACL,GACI,GAAIn4D,EAAQixD,EAAOw9H,QAAQx9H,EAAOyiE,MAAOziE,EAAO0zC,OAC5C,YAEC1zC,EAAS2kE,EAAQ1hG,SAE1B,GADArzB,KAAKs3D,QAAAA,EACDn4D,EAAO,CACP,KAAOixD,EAAS2kE,EAAQ1hG,SACpB+8B,EAAOzvD,cAEX,MAAMxB,QAAAA,EAxCL,CAAuBsuL,ICCvB,GAAQ,IAAI,GAAe,ICD3B,GAAQ,IAAI,GAAWtlL,SAAAA,GAAAA,OAAcA,EAAWZ,cACtD,SAAS,GAAM80H,GAClB,OAAOA,EAEX,SAAwBA,GACpB,OAAO,IAAI,GAAWl0H,SAAAA,GAAAA,OAAck0H,EAAUvB,UAAS,WAAA,OAAM3yH,EAAWZ,iBAD5E,CAFsC80H,GAAa,GCA5C,SAASwxD,KAAMztL,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAClB,IAAIi8H,EAAYj8H,EAAKA,EAAKpF,OAAS,GACnC,OAAI6/H,EAAYwB,IACZj8H,EAAK2T,MACEqoH,EAAch8H,EAAMi8H,IAGpBrkD,EAAU53E,GCTlB,SAAS,GAAWjB,EAAOk9H,GAC9B,OAIW,IAAI,EAJVA,EAIqBl0H,SAAAA,GAAAA,OAAck0H,EAAUvB,SAASgzD,GAAU,EAAG,CAAE3uL,MAAAA,EAAOgJ,WAAAA,KAHvDA,SAAAA,GAAAA,OAAcA,EAAWhJ,MAAMA,KAM7D,SAAS2uL,GAAT,GAA2B3lL,IAAPhJ,EAAOgJ,EAAT,MAASA,EAAF,WACVhJ,MAAMA,GCDd,IAAM4uL,GAAN,KAAMA,GAAN,WACH,SAAA,EAAYC,EAAMvoL,EAAOtG,GAAAA,gBAAAA,KAAAA,GACrBa,KAAKguL,KAAOA,EACZhuL,KAAKyF,MAAQA,EACbzF,KAAKb,MAAQA,EACba,KAAKiuL,SAAoB,MAATD,EALjB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAOKz0D,GACJ,OAAQv5H,KAAKguL,MACT,IAAK,IACD,OAAOz0D,EAASrxH,MAAQqxH,EAASrxH,KAAKlI,KAAKyF,OAC/C,IAAK,IACD,OAAO8zH,EAASp6H,OAASo6H,EAASp6H,MAAMa,KAAKb,OACjD,IAAK,IACD,OAAOo6H,EAAShyH,UAAYgyH,EAAShyH,cAd9C,CAAA,IAAA,KAAA,MAAA,SAiBAW,EAAM/I,EAAOoI,GAEZ,OADavH,KAAKguL,MAEd,IAAK,IACD,OAAO9lL,GAAQA,EAAKlI,KAAKyF,OAC7B,IAAK,IACD,OAAOtG,GAASA,EAAMa,KAAKb,OAC/B,IAAK,IACD,OAAOoI,GAAYA,OAzB5B,CAAA,IAAA,SAAA,MAAA,SA4BIwS,EAAgB5a,EAAOoI,GAC1B,OAAIwS,GAAiD,mBAAxBA,EAAe7R,KACjClI,KAAKmgB,QAAQpG,GAGb/Z,KAAAA,GAAQ+Z,EAAgB5a,EAAOoI,KAjC3C,CAAA,IAAA,eAAA,MAAA,WAsCC,OADavH,KAAKguL,MAEd,IAAK,IACD,OAAOH,GAAG7tL,KAAKyF,OACnB,IAAK,IACD,OAAO,GAAWzF,KAAKb,OAC3B,IAAK,IACD,OAAO,KAEf,MAAM,IAAI0G,MAAM,yCA9CjB,CAAA,CAAA,IAAA,aAAA,MAAA,SAgDeJ,GACd,YAAA,IAAWA,EACA,IAAIsoL,EAAa,IAAKtoL,GAE1BsoL,EAAaG,6BApDrB,CAAA,IAAA,cAAA,MAAA,SAsDgBpoL,GACf,OAAO,IAAIioL,EAAa,SAAA,EAAgBjoL,KAvDzC,CAAA,IAAA,iBAAA,MAAA,WA0DC,OAAOioL,EAAaI,yBA1DrB,EAAA,IA6DMA,qBAAuB,IAAIJ,GAAa,KACrDA,GAAaG,2BAA6B,IAAIH,GAAa,SAAA,GAD3DA,IClEO,SAAS,GAAMjqF,GAAmB,ICJlBr+F,EDIM42H,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAE/B+xD,GCNa3oL,EDKUq+F,aCJL53F,OAAS8H,OAAOvO,IDKLq+F,EAAQu4B,EAAUlwH,MAAS6W,KAAK6K,IAAIi2E,GACvE,OAAQ1hG,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAI61K,GAAcD,EAAU/xD,KAE/D,IAAMgyD,GAAAA,WACF,SAAA,EAAYvqF,EAAOu4B,GAAAA,gBAAAA,KAAAA,GACfr8H,KAAK8jG,MAAQA,EACb9jG,KAAKq8H,UAAYA,EAGwDA,OAD7E,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKl0H,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAgB4H,EAAYnI,KAAK8jG,MAAO9jG,KAAKq8H,gBAAAA,EAN3EgyD,GASA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYxmL,EAAai8F,EAAOu4B,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC5BjC,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDi8F,MAAQA,EACb9jG,EAAKq8H,UAAYA,EACjBr8H,EAAKmnL,MAAQ,GACbnnL,EAAKs3D,QAAAA,EACLt3D,EAAKutL,SAAAA,EANuBlxD,EAyBhC,OAjBA,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,SAiBUA,GACNr8H,KAAKs3D,QAAAA,EACet3D,KAAK6H,YACbE,IAAIs0H,EAAUvB,SAAS,EAAgBgzD,SAAU9tL,KAAK8jG,MAAO,CACrE1hG,OAAQpC,KAAM6H,YAAa7H,KAAK6H,YAAaw0H,UAAWA,OAGhE,CAAA,IAAA,uBAAA,MAAA,SAAqBiyD,GACjB,IAAA,IAAItuL,KAAKutL,QAAT,CAGA,IAAMlxD,EAAYr8H,KAAKq8H,UACjBj9H,EAAU,IAAImvL,GAAalyD,EAAUlwH,MAAQnM,KAAK8jG,MAAOwqF,GAC/DtuL,KAAKmnL,MAAMzmL,KAAKtB,IAAAA,IACZY,KAAKs3D,QACLt3D,KAAKwuL,UAAUnyD,MAGvB,CAAA,IAAA,QAAA,MAAA,SAAM52H,GACFzF,KAAKyuL,qBAAqB,GAAaC,WAAWjpL,MAEtD,CAAA,IAAA,SAAA,MAAA,SAAOK,GACH9F,KAAKutL,SAAAA,EACLvtL,KAAKmnL,MAAQ,GACbnnL,KAAK6H,YAAY1I,MAAM2G,GACvB9F,KAAKW,gBAET,CAAA,IAAA,YAAA,MAAA,WACIX,KAAKyuL,qBAAqB,GAAaE,kBACvC3uL,KAAKW,iBAAAA,CAAAA,CAAAA,IAAAA,WAAAA,MAAAA,SA9COkyH,GAKZ,IAJA,IAAMzwH,EAASywH,EAAMzwH,OACf+kL,EAAQ/kL,EAAO+kL,MACf9qD,EAAYxJ,EAAMwJ,UAClBx0H,EAAcgrH,EAAMhrH,YACnBs/K,EAAMnsL,OAAS,GAAMmsL,EAAM,GAAG5tJ,KAAO8iG,EAAUlwH,OAAU,GAC5Dg7K,EAAM9zJ,QAAQi7J,aAAanuK,QAAQtY,GAEvC,GAAIs/K,EAAMnsL,OAAS,EAAG,CAClB,IAAM8oG,EAAQ9gF,KAAKvI,IAAI,EAAG0sK,EAAM,GAAG5tJ,KAAO8iG,EAAUlwH,OACpDnM,KAAK86H,SAASjI,EAAO/uB,QAGrB9jG,KAAKW,cACLyB,EAAOk1D,QAAAA,MAGf,EA1BE,CAAwB,GA0DxBi3H,GACF,SAAA,EAAYh1J,EAAM+0J,GAAAA,gBAAAA,KAAAA,GACdtuL,KAAKu5B,KAAOA,EACZv5B,KAAKsuL,aAAeA,GE3BrB,SAASM,GAAW/8B,EAAYlnJ,EAAQzO,EAAK+nL,GAChD,IAA2H5pL,EAAvHD,EAAIsE,UAAU1D,OAAQ2V,EAAIvW,EAAI,EAAIuQ,EAAkB,OAATs5K,EAAgBA,EAAOl+K,OAAO8oL,yBAAyBlkL,EAAQzO,GAAO+nL,EACrH,GAAuB,iBAAZ6K,SAAoD,mBAArBA,QAAQC,SAAyBp+K,EAAIm+K,QAAQC,SAASl9B,EAAYlnJ,EAAQzO,EAAK+nL,QACpH,IAAK,IAAItpL,EAAIk3J,EAAW72J,OAAS,EAAGL,GAAK,EAAGA,KAASN,EAAIw3J,EAAWl3J,MAAIgW,GAAKvW,EAAI,EAAIC,EAAEsW,GAAKvW,EAAI,EAAIC,EAAEsQ,EAAQzO,EAAKyU,GAAKtW,EAAEsQ,EAAQzO,KAASyU,GAChJ,OAAOvW,EAAI,GAAKuW,GAAK5K,OAAO+uG,eAAenqG,EAAQzO,EAAKyU,GAAIA,EAOzD,SAASq+K,GAAWC,EAAaC,GACpC,GAAuB,iBAAZJ,SAAoD,mBAArBA,QAAQn1B,SAAyB,OAAOm1B,QAAQn1B,SAASs1B,EAAaC,GAG7G,SAASC,GAAUjzD,EAASkzD,EAAYhgL,EAAGigL,GAE9C,OAAO,IAAKjgL,IAAMA,EAAIG,WAAU,SAAUwJ,EAASC,GAC/C,SAASs2K,EAAU7pL,GAAS,IAAM8pL,EAAKF,EAAUnnL,KAAKzC,IAAW,MAAOhC,GAAKuV,EAAOvV,IACpF,SAAS+rL,EAAS/pL,GAAS,IAAM8pL,EAAKF,EAAAA,MAAmB5pL,IAAW,MAAOhC,GAAKuV,EAAOvV,IACvF,SAAS8rL,EAAK7rL,GAJlB,IAAe+B,EAIa/B,EAAOi4H,KAAO5iH,EAAQrV,EAAO+B,QAJ1CA,EAIyD/B,EAAO+B,MAJhDA,aAAiB2J,EAAI3J,EAAQ,IAAI2J,GAAE,SAAU2J,GAAWA,EAAQtT,OAITiK,KAAK4/K,EAAWE,GAClGD,GAAMF,EAAYA,EAAU7wL,MAAM09H,EAASkzD,GAAc,KAAKlnL,WCxE/D,IAAM,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYm0H,EAAW2wD,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACnB5yD,EAAAA,EAAAA,KAAAA,KAAMiC,EAAW2wD,IACZ3wD,UAAYA,EACjBr8H,EAAKgtL,KAAOA,EAHOA,EAuBIhtL,OAlB3B,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAAS6yH,GAAe,IAAR/uB,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EACpB,OAAIA,EAAQ,EAARA,KAAAA,gBAAAA,EAAAA,WAAAA,WAAAA,MAAAA,KAAAA,KACsB+uB,EAAO/uB,IAEjC9jG,KAAK8jG,MAAQA,EACb9jG,KAAK6yH,MAAQA,EACb7yH,KAAKq8H,UAAU+wD,MAAMptL,MACdA,QAEX,CAAA,IAAA,UAAA,MAAA,SAAQ6yH,EAAO/uB,GACX,OAAQA,EAAQ,GAAK9jG,KAAKuI,OAAlBu7F,KAAAA,gBAAAA,EAAAA,WAAAA,UAAAA,MAAAA,KAAAA,KACU+uB,EAAO/uB,GACrB9jG,KAAKstL,SAASz6D,EAAO/uB,KAE7B,CAAA,IAAA,iBAAA,MAAA,SAAeu4B,EAAW5qH,GAAY,IAARqyF,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAClC,OAAe,OAAVA,GAAkBA,EAAQ,GAAiB,OAAVA,GAAkB9jG,KAAK8jG,MAAQ,EAAtD,KAAA,gBAAA,EAAA,WAAA,iBAAA,MAAA,KAAA,KACiBu4B,EAAW5qH,EAAIqyF,GAExCu4B,EAAU+wD,MAAMptL,UAAAA,EAxBlB,CAAoB,ICCpBmnL,GAAQ,ICDR,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAAA,SAAA,IAAA,OAAA,gBAAA,KAAA,GAAA,EAAA,MAAA,KAAA,WAAA,OAAA,EAAA,CAAuB,IDCf,CAAmB,IEc3B,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYt/K,EAAaw0H,GAAmB,IAAA,EAARv4B,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAAA,OAAA,gBAAA,KAAA,IACxCs2B,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDw0H,UAAYA,EACjBr8H,EAAK8jG,MAAQA,EAH2B,EAU5C,OALA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,SAKgBwqF,GACQtuL,KAAK6H,YACbE,IAAI/H,KAAKq8H,UAAUvB,SAAS,EAAoBgzD,SAAU9tL,KAAK8jG,MAAO,IAAI2rF,GAAiBnB,EAActuL,KAAK6H,iBAE9H,CAAA,IAAA,QAAA,MAAA,SAAMpC,GACFzF,KAAK0vL,gBAAgB,GAAahB,WAAWjpL,MAEjD,CAAA,IAAA,SAAA,MAAA,SAAOK,GACH9F,KAAK0vL,gBAAgB,GAAaC,YAAY7pL,IAC9C9F,KAAKW,gBAET,CAAA,IAAA,YAAA,MAAA,WACIX,KAAK0vL,gBAAgB,GAAaf,kBAClC3uL,KAAKW,iBAAAA,CAAAA,CAAAA,IAAAA,WAAAA,MAAAA,SAlBO4oH,GAAAA,IACJ+kE,EAA8B/kE,EAAhC,aAAgB1hH,EAAgB0hH,EAAlB,YACpB+kE,EAAanuK,QAAQtY,GACrB7H,KAAKW,kBAET,EAXS,CAA4B,GA2B5B8uL,GACT,SAAA,EAAYnB,EAAczmL,GAAAA,gBAAAA,KAAAA,GACtB7H,KAAKsuL,aAAeA,EACpBtuL,KAAK6H,YAAcA,GCxCd,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,IAA0Fw0H,IAAAA,EAA9EuzD,EAA8EvzD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAjE72G,OAAOg3G,kBAAmBqzD,EAAuCxzD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAA1B72G,OAAOg3G,kBAAmBH,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACtFjC,EAAAA,EAAAA,KAAAA,OACKiC,UAAYA,EACjBr8H,EAAK8vL,QAAU,GACf9vL,EAAK+vL,qBAAAA,EACL/vL,EAAKgwL,YAAcJ,EAAa,EAAI,EAAIA,EACxC5vL,EAAKiwL,YAAcJ,EAAa,EAAI,EAAIA,EACpCA,IAAerqK,OAAOg3G,mBACtBx8H,EAAK+vL,qBAAAA,EACL/vL,EAAKkI,KAAOlI,EAAKkwL,wBAGjBlwL,EAAKkI,KAAOlI,EAAKmwL,eAZiE9zD,EAuF/EyzD,OAxEX,aAAA,EAAA,CAAA,CAAA,IAAA,yBAAA,MAAA,SAAuBrqL,GACnB,IAAMqqL,EAAU9vL,KAAK8vL,QACrBA,EAAQpvL,KAAK+E,GACTqqL,EAAQ90L,OAASgF,KAAKgwL,aACtBF,EAAQz8J,QAFZy8J,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,KAIWrqL,KAEf,CAAA,IAAA,iBAAA,MAAA,SAAeA,GACXzF,KAAK8vL,QAAQpvL,KAAK,IAAI0vL,GAAYpwL,KAAKqwL,UAAW5qL,IAClDzF,KAAKswL,2BADLtwL,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,KAEWyF,KAEf,CAAA,IAAA,aAAA,MAAA,SAAW0C,GACP,IAII8Q,EAJE82K,EAAsB/vL,KAAK+vL,oBAC3BD,EAAUC,EAAsB/vL,KAAK8vL,QAAU9vL,KAAKswL,2BACpDj0D,EAAYr8H,KAAKq8H,UACjB3hI,EAAMo1L,EAAQ90L,OAEpB,GAAIgF,KAAKuI,OACL,MAAM,IAAI+xH,EAYd,GAVSt6H,KAAK4H,WAAa5H,KAAK26H,SAC5B1hH,EAAe,EAAa+gH,OAG5Bh6H,KAAKy6H,UAAU/5H,KAAKyH,GACpB8Q,EAAe,IAAI,EAAoBjZ,KAAMmI,IAE7Ck0H,GACAl0H,EAAWJ,IAAII,EAAa,IAAI,GAAoBA,EAAYk0H,IAEhE0zD,EACA,IAAK,IAAIp1L,EAAI,EAAGA,EAAID,IAAQyN,EAAWI,OAAQ5N,IAC3CwN,EAAWD,KAAK4nL,EAAQn1L,SAI5B,IAAK,IAAIA,EAAI,EAAGA,EAAID,IAAQyN,EAAWI,OAAQ5N,IAC3CwN,EAAWD,KAAK4nL,EAAQn1L,GAAG8K,OASnC,OANIzF,KAAK26H,SACLxyH,EAAWhJ,MAAMa,KAAK46H,aAEjB56H,KAAK4H,WACVO,EAAWZ,WAER0R,IAEX,CAAA,IAAA,UAAA,MAAA,WACI,OAAQjZ,KAAKq8H,WAAa8qD,IAAOh7K,QAErC,CAAA,IAAA,2BAAA,MAAA,WAOI,IANA,IAAMA,EAAMnM,KAAKqwL,UACXL,EAAchwL,KAAKgwL,YACnBC,EAAcjwL,KAAKiwL,YACnBH,EAAU9vL,KAAK8vL,QACfS,EAAcT,EAAQ90L,OACxBw1L,EAAc,EACXA,EAAcD,KACZpkL,EAAM2jL,EAAQU,GAAaj3J,KAAQ02J,IAGxCO,IAQJ,OANID,EAAcP,IACdQ,EAAcxtK,KAAKvI,IAAI+1K,EAAaD,EAAcP,IAElDQ,EAAc,GACdV,EAAQlvL,OAAO,EAAG4vL,GAEfV,MAAAA,EAxFF,CAAsB,GA2F7BM,GACF,SAAA,EAAY72J,EAAM9zB,GAAAA,gBAAAA,KAAAA,GACdzF,KAAKu5B,KAAOA,EACZv5B,KAAKyF,MAAQA,GCvFrB,SAASgrL,GAAqB52L,EAAGC,GAC7B,OAAOD,IAAMC,EAQjB,SAAS42L,GAA2BC,EAAexsL,EAAM+D,GACrD,GAAa,OAAT/D,GAA0B,OAAT+D,GAAiB/D,EAAKnJ,SAAWkN,EAAKlN,OACvD,OAAA,EAKJ,IADA,IAAMA,EAASmJ,EAAKnJ,OACXL,EAAI,EAAGA,EAAIK,EAAQL,IACxB,IAAKg2L,EAAcxsL,EAAKxJ,GAAIuN,EAAKvN,IAC7B,OAAA,EAGR,OAAA,EAYJ,SAASi2L,GAAQ7wL,GAAsB0wL,IAAhBE,EAAgBF,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAAA,GAE/BzyL,EAAW,KAEX6yL,EAAa,KAKjB,SAASC,IAML,OALKJ,GAA2BC,EAAe3yL,EAAUU,aAErDmyL,EAAa,EAA4BryL,MAAM,KAAME,YAEzDV,EAAWU,UACJmyL,EAUX,OARA,EAAgCpxH,MAAQ,WAKpCzhE,EAAW,KACX6yL,EAAa,MAEV,EAuCX,IAMME,GANAC,GAAsBJ,IA7B5B,WAEI,IAAMK,EAAc9M,KACpB,IAAK8M,EACD,OAAA,EAEJ,IAAMtO,EAAkBsO,EAAYxtD,SAAS5gH,IAAI46J,GAAkB,MACnE,QAAKkF,GAGgBA,EAAgB7uF,MAIpC5wF,SAAAA,GAAAA,OAEsBA,GAAQA,EAAK88H,WAAc,IAC7BlsC,MAIhBqgE,SAAAA,GAAAA,OACYA,GAAYA,EAAS9wB,SAAqC,yBAA1B8wB,EAAS9wB,QAAQzjI,OAAAA,WAOtE,KAMMmxL,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAII/wL,KAAKkxL,WAAa,IAAI,GAAc,GAaxC,OARA,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,WASIlxL,KAAKkxL,WAAWhpL,MAAAA,GAChBlI,KAAKkxL,WAAW3pL,aAAAA,CAAAA,IAAAA,mBAAAA,IAAAA,WAThB,OAAOvH,KAAKkxL,WAAWC,mBAO3B,EAlBEJ,IAuBWnuD,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAK+2L,KAChFA,GAAiBrwD,WAAQ,GAA0B,CAAErB,MAAO0xD,GAAkBz7K,QAASy7K,GAAiBnuD,YADxGmuD,IAmBMK,GAAsB,IAAIruD,GAAe,uBAA/C,GAAA,WAAA,IACMsuD,EAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAeSx+D,OAfTw+D,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,MAAAA,MAAAA,SAKSx+D,GACP7yH,KAAKyF,MAAQotH,IAKjB,CAAA,IAAA,MAAA,MAAA,WAEI,IAAMA,EAAQ7yH,KAAKyF,MAEnB,OADAzF,KAAKyF,MAAQ,GACNotH,MAAAA,EAfTw+D,GAeSx+D,OAGfw+D,EAAa5rL,MAAQ,GAArB4rL,EAnBA,GAoCMC,GAA6B,IAAIvuD,GAAe,iCAKhDwuD,GAAqB,IAAIxuD,GAAe,0BCjL1CyuD,GAAO,KAIX,SAASC,KACL,OAAOD,GA8KX,IA8BME,GA9BA,GAAW,IAAI3uD,GAAe,iBAApC,KA8BM2uD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEW9uD,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAK03L,KAC7DA,GAAiBhxD,WAAQb,GAAmB,CAAEvqH,QAASq8K,GAA4BtyD,MAAOqyD,GAAkB5xD,WAAY,aAD3I4xD,IAkGA,SAASC,KACL,OAAO3tD,GAAS,IAATA,IAkCL4tD,GAlCK5tD,KAkCL4tD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRz3D,EAAAA,EAAAA,KAAAA,OACKy3D,KAAOA,EACZ7xL,EAAK8xL,QAHGD,EAgFZ,OAtEA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WACI,KAA4Bn0L,SAAW+zL,KAASM,cAChD/xL,KAAKgyL,SAAWP,KAASQ,eAK7B,CAAA,IAAA,qBAAA,MAAA,WACI,OAA0BR,KAASS,YAAYlyL,KAAK6xL,QAMxD,CAAA,IAAA,aAAA,MAAA,SAAWztL,GACPqtL,KAASU,qBAAqBnyL,KAAK6xL,KAAM,UAAUp+J,iBAAiB,WAAYrvB,GAAAA,KAMpF,CAAA,IAAA,eAAA,MAAA,SAAaA,GACTqtL,KAASU,qBAAqBnyL,KAAK6xL,KAAM,UAAUp+J,iBAAiB,aAAcrvB,GAAAA,KAKtF,CAAA,IAAA,YAAA,MAAA,SAoDUyuH,EAAOxnH,EAAOvM,GAChBszL,KACApyL,KAAKgyL,SAASvwE,UAAUoR,EAAOxnH,EAAOvM,GAGtCkB,KAAKtC,SAAStB,KAAO0C,IAS7B,CAAA,IAAA,eAAA,MAAA,SAAa+zH,EAAOxnH,EAAOvM,GACnBszL,KACApyL,KAAKgyL,SAAStwE,aAAamR,EAAOxnH,EAAOvM,GAGzCkB,KAAKtC,SAAStB,KAAO0C,IAM7B,CAAA,IAAA,UAAA,MAAA,WACIkB,KAAKgyL,SAASK,YAKlB,CAAA,IAAA,OAAA,MAAA,WACIryL,KAAKgyL,SAASM,SAKlB,CAAA,IAAA,WAAA,MAAA,WACI,OAAOtyL,KAAKgyL,SAASn/D,QAAAA,CAAAA,IAAAA,OAAAA,IAAAA,WAzFrB,OAAO7yH,KAAKtC,SAASC,OAKzB,CAAA,IAAA,WAAA,IAAA,WACI,OAAOqC,KAAKtC,SAAS+E,WAKzB,CAAA,IAAA,WAAA,IAAA,WACI,OAAOzC,KAAKtC,SAASgF,WAKzB,CAAA,IAAA,OAAA,IAAA,WACI,OAAO1C,KAAKtC,SAASiF,OAKzB,CAAA,IAAA,WAAA,IAAA,WACI,OAAO3C,KAAKtC,SAAS60L,UAKzB,IAAA,SAaaC,GACTxyL,KAAKtC,SAAS60L,SAAWC,IAQ7B,CAAA,IAAA,SAAA,IAAA,WArBI,OAAOxyL,KAAKtC,SAAS+0L,SAKzB,CAAA,IAAA,OAAA,IAAA,WACI,OAAOzyL,KAAKtC,SAAStB,SAMzB,EApFEw1L,CAAgC,KAsIdhvD,UAAO,SAAyC5oI,GAAK,OAAO,IAAKA,GAAK43L,IAAyB,GAAgB,MAKpHA,GAAwBlxD,WAAQb,GAAmB,CAAEvqH,QAASo9K,GAA+BrzD,MAAOuyD,GAAyB9xD,WAAY,aAL5J8xD,IAkCA,SAASQ,KACL,QAASl1L,OAAOskH,QAAQC,UAK5B,SAASixE,KACL,OAAO,IAAI,GAAwB1uD,GAAS,KA8BhD,SAAS2uD,GAAcrjL,EAAOyrB,GAC1B,GAAoB,GAAhBzrB,EAAMtU,OACN,OAAO+/B,EAEX,GAAkB,GAAdA,EAAI//B,OACJ,OAAOsU,EAGX,IAAIsjL,EAAU,EAOd,OANItjL,EAAMujL,SAAS,MACfD,IAEA73J,EAAI+3J,WAAW,MACfF,IAEW,GAAXA,EACOtjL,EAAQyrB,EAAIv3B,UAAU,GAElB,GAAXovL,EACOtjL,EAAQyrB,EAEZzrB,EAAQ,IAAMyrB,EAWzB,SAASg4J,GAAmBj0L,GAExB,IAAMgB,EAAQhB,EAAIgB,MAAM,UAElBkzL,EAAalzL,GAASA,EAAMmhB,OAASniB,EAAI9D,OAG/C,OAAO8D,EAAIxB,MAAM,EADO01L,GAAsC,MAAxBl0L,EAAIk0L,EAAa,GAAa,EAAI,IACjCl0L,EAAIxB,MAAM01L,GASrD,SAASC,GAAqB57B,GAC1B,OAAOA,GAAwB,MAAdA,EAAO,GAAa,IAAMA,EAASA,EAAAA,IA0BlD67B,GA1BkD77B,KA0BlD67B,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEWtwD,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKk5L,KAC7DA,GAAiBxyD,WAAQb,GAAmB,CAAEvqH,QAAS69K,GAAyB9zD,MAAO6zD,GAAkBpzD,WAAY,SADxIozD,IA+DA,SAASC,GAAwBC,GAG7B,IAAM11L,EAAWsmI,GAAS,IAAUtmI,SACpC,OAAO,IAAI,GAAqBsmI,GAAS,IAAwCtmI,GAAYA,EAAS8E,QAAU,IA0BpH,IA4UM6wL,GAhTAC,GA5BAC,GAAgB,IAAIxwD,GAAe,eAAzC,KA4BMuwD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,EAAYE,EAAmB71L,GAAAA,IAAAA,EAM3B,GAN2BA,gBAAAA,KAAAA,IAC3By8H,EAAAA,EAAAA,KAAAA,OACKo5D,kBAAoBA,EACb,MAAR71L,IACAA,EAAOqC,EAAKwzL,kBAAkBC,sBAEtB,MAAR91L,EACA,MAAM,IAAIkI,MAAM,+GAPOlI,OAS3BqC,EAAK0zL,UAAY/1L,EATUA,2BAAAA,GA6EJ20L,OA9D3B,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWluL,GACPpE,KAAKwzL,kBAAkBG,WAAWvvL,GAClCpE,KAAKwzL,kBAAkBI,aAAaxvL,KAKxC,CAAA,IAAA,cAAA,MAAA,WACI,OAAOpE,KAAK0zL,YAMhB,CAAA,IAAA,qBAAA,MAAA,SAAmBG,GACf,OAAOlB,GAAc3yL,KAAK0zL,UAAWG,KAMzC,CAAA,IAAA,OAAA,MAAA,WAAmB,IAAdC,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAETvB,EAAWvyL,KAAKwzL,kBAAkBjB,SAAWU,GAAqBjzL,KAAKwzL,kBAAkBf,QAEzFr2L,EAAO4D,KAAKwzL,kBAAkBp3L,KACpC,OAAOA,GAAQ03L,EAAR13L,GAAAA,OAAyBm2L,GAAzBn2L,OAAoCA,GAASm2L,IASxD,CAAA,IAAA,YAAA,MAAA,SAAU1/D,EAAOxnH,EAAOvM,EAAKi1L,GAEzB,IAAMC,EAAch0L,KAAKi0L,mBAAmBn1L,EAAMm0L,GAAqBc,IACvE/zL,KAAKwzL,kBAAkB/xE,UAAUoR,EAAOxnH,EAAO2oL,KASnD,CAAA,IAAA,eAAA,MAAA,SAAanhE,EAAOxnH,EAAOvM,EAAKi1L,GAE5B,IAAMC,EAAch0L,KAAKi0L,mBAAmBn1L,EAAMm0L,GAAqBc,IACvE/zL,KAAKwzL,kBAAkB9xE,aAAamR,EAAOxnH,EAAO2oL,KAKtD,CAAA,IAAA,UAAA,MAAA,WACIh0L,KAAKwzL,kBAAkBnB,YAK3B,CAAA,IAAA,OAAA,MAAA,WACIryL,KAAKwzL,kBAAkBlB,WAAAA,EAlFzBgB,CAA6B,KAqFd1wD,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKs5L,IAAsB,GAAgB,IAAmB,GAAgBC,GAAe,KAChLD,GAAqB5yD,WAAQ,GAA0B,CAAErB,MAAOi0D,GAAsBh+K,QAASg+K,GAAqB1wD,YADpH0wD,IAAAA,KA2NMD,GAAAA,WAKF,SAAA,EAAYa,EAAkBd,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAI1BpzL,KAAK+9H,SAAW,IAAI,GAIpB/9H,KAAKm0L,oBAAsB,GAC3Bn0L,KAAKo0L,kBAAoBF,EAEzB,IAAMG,EAAkBr0L,KAAKo0L,kBAAkBlC,cAC/ClyL,KAAKwzL,kBAAoBJ,EACzBpzL,KAAK0zL,UAAYX,GAAmBuB,GAAgBD,IACpDr0L,KAAKo0L,kBAAkBT,YAItB7nE,SAAAA,GACG9rH,EAAK+9H,SAAS7P,KAAK,CACf,IAAOluH,EAAK8nB,MAAAA,GACZ,KAAA,EACA,MAASgkG,EAAG+G,MACZ,KAAQ/G,EAAG3gH,UA8IsDopL,OAjI7E,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WAAmB,IAAdT,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACf,OAAO9zL,KAAKm7B,UAAUn7B,KAAKo0L,kBAAkBtsK,KAAKgsK,MAMtD,CAAA,IAAA,WAAA,MAAA,WACI,OAAO9zL,KAAKwzL,kBAAkBgB,aAWlC,CAAA,IAAA,uBAAA,MAAA,SAAqB1sK,GAAc,IAAR2sK,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAC/B,OAAOz0L,KAAK8nB,QAAU9nB,KAAKm7B,UAAUrT,EAAOmrK,GAAqBwB,MASrE,CAAA,IAAA,YAAA,MAAA,SAAU31L,GACN,OAAOu0L,EAASN,mBAsNxB,SAAwB2B,EAAU51L,GAC9B,OAAO41L,GAAY51L,EAAIg0L,WAAW4B,GAAY51L,EAAI0E,UAAUkxL,EAAS15L,QAAU8D,EADnF,CAtN0DkB,KAAK0zL,UAAWY,GAAgBx1L,OAYtF,CAAA,IAAA,qBAAA,MAAA,SAAmBA,GAIf,OAHIA,GAAkB,MAAXA,EAAI,KACXA,EAAM,IAAMA,GAETkB,KAAKo0L,kBAAkBH,mBAAmBn1L,KAarD,CAAA,IAAA,KAAA,MAAA,SAAGgpB,GAA0B,IAApB2sK,EAAoB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAZ,GAAI5hE,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KACzB7yH,KAAKo0L,kBAAkB3yE,UAAUoR,EAAO,GAAI/qG,EAAM2sK,GAClDz0L,KAAK20L,0BAA0B30L,KAAKi0L,mBAAmBnsK,EAAOmrK,GAAqBwB,IAAS5hE,KAWhG,CAAA,IAAA,eAAA,MAAA,SAAa/qG,GAA0B,IAApB2sK,EAAoB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAZ,GAAI5hE,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KACnC7yH,KAAKo0L,kBAAkB1yE,aAAamR,EAAO,GAAI/qG,EAAM2sK,GACrDz0L,KAAK20L,0BAA0B30L,KAAKi0L,mBAAmBnsK,EAAOmrK,GAAqBwB,IAAS5hE,KAMhG,CAAA,IAAA,UAAA,MAAA,WACI7yH,KAAKo0L,kBAAkB/B,YAM3B,CAAA,IAAA,OAAA,MAAA,WACIryL,KAAKo0L,kBAAkB9B,SAS3B,CAAA,IAAA,cAAA,MAAA,SAAYluL,GAAAA,IAAAA,EAAAA,KACRpE,KAAKm0L,oBAAoBzzL,KAAK0D,GAC9BpE,KAAKO,WAIL2M,SAAAA,GACIlN,EAAK20L,0BAA0BznL,EAAEpO,IAAKoO,EAAE2lH,YAShD,CAAA,IAAA,4BAAA,MAAA,WAAoCA,IAAV/zH,EAAU+zH,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAAIA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAChC7yH,KAAKm0L,oBAAoBx8K,SAIzBvT,SAAAA,GAAAA,OAAMA,EAAGtF,EAAK+zH,QAUlB,CAAA,IAAA,YAAA,MAAA,SAAU+hE,EAAQC,EAASN,GACvB,OAAOv0L,KAAK+9H,SAASx9H,UAAU,CAAE2H,KAAM0sL,EAAQz1L,MAAO01L,EAASttL,SAAUgtL,QAAAA,EA1K3ElB,IA6KGzwD,UAAO,SAA0B5oI,GAAK,OAAO,IAAKA,GAAKq5L,IAAU,GAAgB,IAAmB,GAAgB,MAQ7HA,GAASJ,qBAAuBA,GAUhCI,GAASV,cAAgBA,GAUzBU,GAASN,mBAAqBA,GAMXM,GAAS3yD,WAAQb,GAAmB,CAAEvqH,QAASw/K,GAAgBz1D,MAAOg0D,GAAUvzD,WAAY,SAlC/GuzD,IAwGA,SAASyB,KACL,OAAO,IAAI,GAAS9wD,GAAS,IAAwCA,GAAS,KAclF,SAASswD,GAAgBx1L,GACrB,OAAOA,EAAI+M,QAAQ,gBAAiB,IA2BxC,IAwqEMkpL,GA1gEAC,GAAM,WAAA,IAAA,EAAG,CACXC,KAAM,EACNC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,KAAM,EACNC,MAAO,GANI,OAQfN,EAAOA,EAAOC,MAAQ,OACtBD,EAAOA,EAAOE,KAAO,MACrBF,EAAOA,EAAOG,KAAO,MACrBH,EAAOA,EAAOI,KAAO,MACrBJ,EAAOA,EAAOK,MAAQ,OACtBL,EAAOA,EAAOM,OAAS,QALvBN,EARY,GAi+DNO,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,KAyCAR,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYp/K,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRykH,EAAAA,EAAAA,KAAAA,OACKzkH,OAASA,EAFNA,EAwBO,OAfnB,aAAA,EAAA,CAAA,CAAA,IAAA,oBAAA,MAAA,SAAkBlQ,EAAOkQ,GAGrB,O9Bkj8BR,SAA6BA,GAGzB,OA5CJ,SAAwBA,GAEpB,IAAM89J,EAgIV,SAAyB99J,GACrB,OAAOA,EAAOjH,cAAc7C,QAAQ,KAAM,KAD9C,CAhI6C8J,GAErC7V,EAAQ0zK,GAAcC,GAC1B,GAAI3zK,EACA,OAAOA,EAIX,IAAM01L,EAAe/hB,EAAiBjyK,MAAM,KAAK,GAEjD,GADA1B,EAAQ0zK,GAAcgiB,GAElB,OAAO11L,EAEX,GAAqB,OAAjB01L,EACA,OAAOliB,GAEX,MAAM,IAAIztK,MAAJ,uCAAA,OAAiD8P,EAAjD,OAlBV,CA2CgCA,GAChBi+J,GAAgBqB,YAHhC,C8Bnj8B2Ct/J,GAAU3V,KAAK2V,O9Bmj8B1D,C8Bnj8BkElQ,IAEtD,KAAKuvL,GAAOC,KACR,MAAO,OACX,KAAKD,GAAOE,IACR,MAAO,MACX,KAAKF,GAAOG,IACR,MAAO,MACX,KAAKH,GAAOI,IACR,MAAO,MACX,KAAKJ,GAAOK,KACR,MAAO,OACX,QACI,MAAO,aAAA,EA5BjBN,CAA6BQ,KAgCd3yD,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAK+6L,IAAsB,GAAgB,MAC9HA,GAAqBr0D,WAAQ,GAA0B,CAAErB,MAAO01D,GAAsBz/K,QAASy/K,GAAqBnyD,YADpHmyD,IA0DA,SAASU,GAAiBC,EAAW91L,GACjCA,EAAO9D,mBAAmB8D,GADOA,IAAAA,EAAAA,EAAAA,2BAEZ81L,EAAUl0L,MAAM,MAFJ5B,IAEjC,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAA2C,CAAA,IAAhC+1L,EAAgC,EAAA,MAEjCC,EAAUD,EAAO/zL,QAAQ,KAAzBg0L,EAAAA,gBACwC,GAAZA,EAAgB,CAACD,EAAQ,IAAM,CAACA,EAAOr4L,MAAM,EAAGs4L,GAAUD,EAAOr4L,MAAMs4L,EAAU,IAD7GA,GACCC,EADDD,EAAAA,GACaE,EADbF,EAAAA,GAEN,GAAIC,EAAW7/K,SAAWpW,EACtB,OAAOyb,mBAAmBy6K,IAPDl2L,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,IAUjC,OAAO,KAAA,IAoCLm2L,GA4jBAC,GA2ZAC,GA3/BK,KAoCLF,GAAAA,WAOF,SAAA,EAAYG,EAAkBC,EAAkBC,EAAOC,GAAAA,gBAAAA,KAAAA,GACnDr2L,KAAKk2L,iBAAmBA,EACxBl2L,KAAKm2L,iBAAmBA,EACxBn2L,KAAKo2L,MAAQA,EACbp2L,KAAKq2L,UAAYA,EACjBr2L,KAAKs2L,gBAAkB,KACvBt2L,KAAKu2L,gBAAkB,KACvBv2L,KAAKw2L,gBAAkB,GACvBx2L,KAAKy2L,UAAY,KAkCrB,OA5BA,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,WA6BI,GAAIz2L,KAAKs2L,gBAAiB,CAEtB,IAAMI,EAAkB12L,KAAKs2L,gBAAgBvqG,KAAwB/rF,KAAe,WAChF02L,GACA12L,KAAK22L,sBAAsBD,QAG9B,GAAI12L,KAAKu2L,gBAAiB,CAE3B,IAAMK,EAAkB52L,KAAKu2L,gBAAgBxqG,KAAwB/rF,KAAe,WAChF42L,GACA52L,KAAK62L,sBAAsBD,MASvC,CAAA,IAAA,wBAAA,MAAA,SAAsBlf,GAAAA,IAAAA,EAAAA,KAClBA,EAAQof,kBAIPviC,SAAAA,GAAAA,OAAWv0J,EAAK+2L,aAAaxiC,EAAOr4J,IAAKq4J,EAAO3hF,iBACjD8kG,EAAQsf,oBAIPziC,SAAAA,GAAAA,OAAWv0J,EAAK+2L,aAAaxiC,EAAOr4J,IAAKq4J,EAAO3hF,iBACjD8kG,EAAQuf,oBAIP1iC,SAAAA,GACOA,EAAOwT,eACP/nK,EAAK+2L,aAAaxiC,EAAOr4J,KAAAA,QASrC,CAAA,IAAA,wBAAA,MAAA,SAAsBw7K,GAAAA,IAAAA,EAAAA,KAClBA,EAAQof,kBAIPviC,SAAAA,GACG,GAA2B,iBAAhBA,EAAOrxJ,KAId,MAAM,IAAI2C,MAAJ,iEAAA,OAA2E,GAAW0uJ,EAAOrxJ,QAHnGlD,EAAK+2L,aAAaxiC,EAAOrxJ,MAAAA,MAMjCw0K,EAAQuf,oBAIP1iC,SAAAA,GAAAA,OAAWv0J,EAAK+2L,aAAaxiC,EAAOrxJ,MAAAA,QAazC,CAAA,IAAA,gBAAA,MAAA,SAAcg0L,GAAAA,IAAAA,EAAAA,KACNA,IACIzwL,MAAMqQ,QAAQogL,IAAgBA,aAAuBljC,IACrD,EAAmCr8I,SAIlC+a,SAAAA,GAAAA,OAAU1yB,EAAK+2L,aAAarkK,GAAAA,MAG7B3sB,OAAOP,KAAK0xL,GAAav/K,SAIzB+a,SAAAA,GAAAA,OAAS1yB,EAAK+2L,aAAarkK,IAASwkK,EAAYxkK,UAW5D,CAAA,IAAA,iBAAA,MAAA,SAAewkK,GAAAA,IAAAA,EAAAA,KACPA,IACIzwL,MAAMqQ,QAAQogL,IAAgBA,aAAuBljC,IACrD,EAAmCr8I,SAIlC+a,SAAAA,GAAAA,OAAU1yB,EAAK+2L,aAAarkK,GAAAA,MAG7B3sB,OAAOP,KAAK0xL,GAAav/K,SAIzB+a,SAAAA,GAAAA,OAAS1yB,EAAK+2L,aAAarkK,GAAAA,SAUvC,CAAA,IAAA,eAAA,MAAA,SAAaA,EAAOykK,GAAAA,IAAAA,EAAAA,MAChBzkK,EAAQA,EAAM1c,SAEV0c,EAAMlxB,MAAM,QAAQmW,SAIpB+a,SAAAA,GACQykK,EACAn3L,EAAKq2L,UAAU3/J,SAAS12B,EAAKo2L,MAAM7rB,cAAe73I,GAGlD1yB,EAAKq2L,UAAUhxB,YAAYrlK,EAAKo2L,MAAM7rB,cAAe73I,QAAAA,CAAAA,IAAAA,QAAAA,IAAAA,SAtK3DjtB,GACNzF,KAAKo3L,eAAep3L,KAAKw2L,iBACzBx2L,KAAKw2L,gBAAmC,iBAAV/wL,EAAqBA,EAAMjE,MAAM,OAAS,GACxExB,KAAKq3L,cAAcr3L,KAAKw2L,iBACxBx2L,KAAKq3L,cAAcr3L,KAAKy2L,aAM5B,CAAA,IAAA,UAAA,IAAA,SAAYhxL,GACRzF,KAAKo3L,eAAep3L,KAAKy2L,WACzBz2L,KAAKq3L,cAAcr3L,KAAKw2L,iBACxBx2L,KAAKs2L,gBAAkB,KACvBt2L,KAAKu2L,gBAAkB,KACvBv2L,KAAKy2L,UAA6B,iBAAVhxL,EAAqBA,EAAMjE,MAAM,OAASiE,EAC9DzF,KAAKy2L,YACD,GAAoBz2L,KAAKy2L,WACzBz2L,KAAKs2L,gBAAkBt2L,KAAKk2L,iBAAiB9kK,KAAKpxB,KAAKy2L,WAAW5vL,SAGlE7G,KAAKu2L,gBAAkBv2L,KAAKm2L,iBAAiB/kK,KAAKpxB,KAAKy2L,WAAW5vL,cAO9E,EAjDEkvL,IAiMEnzD,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAK+7L,IAAS,GAAyB,IAAyB,GAAyB,IAAyB,GAAyB,IAAoB,GAAyB,MACjPA,GAAQ3zD,UAAO,GAAyB,CAAEj3H,KAAM4qL,GAASr3J,UAAW,CAAC,CAAC,GAAI,UAAW,KAAM+nG,OAAQ,CAAE/zG,MAAO,CAAC,QAAS,SAAU4kK,QAAS,aADzIvB,IAwOMwB,GAAAA,WAOF,SAAA,EAAYC,EAAWC,EAASx2K,EAAOizG,GAAAA,gBAAAA,KAAAA,GACnCl0H,KAAKw3L,UAAYA,EACjBx3L,KAAKy3L,QAAUA,EACfz3L,KAAKihB,MAAQA,EACbjhB,KAAKk0H,MAAQA,EAwBAwjE,OAnBjB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,IAAA,WACI,OAAsB,IAAf13L,KAAKihB,QAKhB,CAAA,IAAA,OAAA,IAAA,WACI,OAAOjhB,KAAKihB,QAAUjhB,KAAKk0H,MAAQ,IAKvC,CAAA,IAAA,OAAA,IAAA,WACI,OAAOl0H,KAAKihB,MAAQ,GAAM,IAK9B,CAAA,IAAA,MAAA,IAAA,WACI,OAAQjhB,KAAK03L,SAAAA,EAnCfH,GAmCeG,KAgHf1B,GAAAA,WAMF,SAAA,EAAY2B,EAAgBC,EAAWC,GAAAA,gBAAAA,KAAAA,GACnC73L,KAAK23L,eAAiBA,EACtB33L,KAAK43L,UAAYA,EACjB53L,KAAK63L,SAAWA,EAChB73L,KAAK83L,SAAW,KAChB93L,KAAK+3L,eAAAA,EACL/3L,KAAKg4L,QAAU,KAoKR,OA5JX,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,WA0DI,GAAIh4L,KAAK+3L,cAAe,CACpB/3L,KAAK+3L,eAAAA,EAGL,IAAMtyL,EAAQzF,KAAK83L,SACnB,IAAK93L,KAAKg4L,SAAWvyL,EACjB,IACIzF,KAAKg4L,QAAUh4L,KAAK63L,SAASzmK,KAAK3rB,GAAOoB,OAAO7G,KAAKi4L,cAEzD,MAAOn/C,GACH,MAAM,IAAIjzI,MAAJ,2CAAA,OAAqDJ,EAArD,eAAA,QA8KL0F,EA9KyF1F,GA+KxF,aAAY0F,EA/KR,iEA8K1B,IAAqBA,EA1Kb,GAAInL,KAAKg4L,QAAS,CAEd,IAAMtgB,EAAU13K,KAAKg4L,QAAQjsG,KAAK/rF,KAAK83L,UACnCpgB,GACA13K,KAAKk4L,cAAcxgB,MAQ/B,CAAA,IAAA,gBAAA,MAAA,SAAcA,GAAAA,IAAAA,EAAAA,KAEJygB,EAAe,GACrBzgB,EAAQ0gB,kBAAiB,SAMxBl1L,EAAMm1L,EAAuBxrB,GAC1B,GAA0B,MAAtB3pK,EAAK6pK,cAAuB,CAK5B,IAAM/hC,EAAOhrI,EAAK23L,eAAelpC,mBAAmBzuJ,EAAK43L,UAAW,IAAIL,GAAe,KAA8Cv3L,EAAc,UAAI,GAAI,GAAqB,OAAjB6sK,OAAAA,EAAoCA,GAE7LyrB,EAAQ,IAAIC,GAAgBr1L,EAAM8nI,GACxCmtD,EAAaz3L,KAAK43L,QAEjB,GAAoB,MAAhBzrB,EACL7sK,EAAK23L,eAAe5hL,OAAiC,OAA1BsiL,OAAAA,EAA6CA,QAEvE,GAA8B,OAA1BA,EAAgC,CAErC,IAAMrtD,EAA0BhrI,EAAK23L,eAAe90K,IAAIw1K,GACxDr4L,EAAK23L,eAAerjF,KAAK02B,EAAM6hC,GAE/B,IAAMyrB,EAAQ,IAAIC,GAAgBr1L,EAAM,GACxCi1L,EAAaz3L,KAAK43L,OAG1B,IAAK,IAAI39L,EAAI,EAAGA,EAAIw9L,EAAan9L,OAAQL,IACrCqF,KAAKw4L,eAAeL,EAAax9L,GAAGqwI,KAAMmtD,EAAax9L,GAAG45J,QAE9D,IAAK,IAAI55J,EAAI,EAAGyvD,EAAOpqD,KAAK23L,eAAe38L,OAAQL,EAAIyvD,EAAMzvD,IAAK,CAE9D,IAAMq0J,EAA6BhvJ,KAAK23L,eAAe90K,IAAIloB,GAC3Dq0J,EAAQnmJ,QAAQoY,MAAQtmB,EACxBq0J,EAAQnmJ,QAAQqrH,MAAQ9pE,EACxB4kG,EAAQnmJ,QAAQ4uL,QAA6Bz3L,KAAc,SAE/D03K,EAAQ+gB,uBAIPlkC,SAAAA,GAEsCv0J,EAAK23L,eAAe90K,IAAI0xI,EAAOsY,cAC1DhkK,QAAQ2uL,UAAYjjC,EAAOrxJ,UAS3C,CAAA,IAAA,iBAAA,MAAA,SAAe8nI,EAAMupB,GACjBvpB,EAAKniI,QAAQ2uL,UAAYjjC,EAAOrxJ,OAYpC,CAAA,IAAA,UAAA,IAAA,SA3JYu0L,GACRz3L,KAAK83L,SAAWL,EAChBz3L,KAAK+3L,eAAAA,IAqBT,CAAA,IAAA,eAAA,IAAA,SAAiB3zL,GACTk0I,MAAqB,MAANl0I,GAA4B,mBAAPA,GAEhC,SAAmDI,QAAa,MAChEA,QAAQyG,KAAK,4CAAA,OAA4C/E,KAAKC,UAAU/B,GAA3D,MACT,sFAGZpE,KAAKssK,WAAaloK,GAKtB,IAAA,WACI,OAAOpE,KAAKssK,aAQhB,CAAA,IAAA,gBAAA,IAAA,SAAkB7mK,GAIVA,IACAzF,KAAK43L,UAAYnyL,MAOzB,CAAA,CAAA,IAAA,yBAAA,MAAA,SAkG8BizL,EAAKt8K,GAC/B,OAAA,MAAO,EAhLT45K,IAmLEpzD,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAKg8L,IAAS,GAAyB,IAA0B,GAAyB,IAAqB,GAAyB,MACjMA,GAAQ5zD,UAAO,GAAyB,CAAEj3H,KAAM6qL,GAASt3J,UAAW,CAAC,CAAC,GAAI,QAAS,GAAI,UAAW,KAAM+nG,OAAQ,CAAEgxD,QAAS,UAAWQ,aAAc,eAAgBU,cAAe,mBADnL3C,IA+DMuC,GAKF,SAAA,EAAYhkC,EAAQvpB,GAAAA,gBAAAA,KAAAA,GAChBhrI,KAAKu0J,OAASA,EACdv0J,KAAKgrI,KAAOA,GAAAA,KAkKdirD,GAAAA,WAKF,SAAA,EAAY0B,EAAgB5oC,GAAAA,gBAAAA,KAAAA,GACxB/uJ,KAAK23L,eAAiBA,EACtB33L,KAAKgJ,SAAW,IAAI4vL,GACpB54L,KAAK64L,iBAAmB,KACxB74L,KAAK84L,iBAAmB,KACxB94L,KAAK+4L,aAAe,KACpB/4L,KAAKg5L,aAAe,KACpBh5L,KAAK64L,iBAAmB9pC,EAsEjB,OA/DX,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WA+BQ/uJ,KAAKgJ,SAASwuL,UACTx3L,KAAK+4L,eACN/4L,KAAK23L,eAAex4I,QACpBn/C,KAAKg5L,aAAe,KAChBh5L,KAAK64L,mBACL74L,KAAK+4L,aACD/4L,KAAK23L,eAAelpC,mBAAmBzuJ,KAAK64L,iBAAkB74L,KAAKgJ,YAK1EhJ,KAAKg5L,eACNh5L,KAAK23L,eAAex4I,QACpBn/C,KAAK+4L,aAAe,KAChB/4L,KAAK84L,mBACL94L,KAAKg5L,aACDh5L,KAAK23L,eAAelpC,mBAAmBzuJ,KAAK84L,iBAAkB94L,KAAKgJ,cAevF,CAAA,IAAA,OAAA,IAAA,SA9DSsoB,GACLtxB,KAAKgJ,SAASwuL,UAAYx3L,KAAKgJ,SAASiwL,KAAO3nK,EAC/CtxB,KAAKk5L,gBAOT,CAAA,IAAA,WAAA,IAAA,SAAanqC,GACToqC,GAAe,WAAYpqC,GAC3B/uJ,KAAK64L,iBAAmB9pC,EACxB/uJ,KAAK+4L,aAAe,KACpB/4L,KAAKk5L,gBAOT,CAAA,IAAA,WAAA,IAAA,SAAanqC,GACToqC,GAAe,WAAYpqC,GAC3B/uJ,KAAK84L,iBAAmB/pC,EACxB/uJ,KAAKg5L,aAAe,KACpBh5L,KAAKk5L,iBAMT,CAAA,CAAA,IAAA,yBAAA,MAAA,SAgC8BR,EAAKt8K,GAC/B,OAAA,MAAO,EAlFT65K,IAqFDrzD,UAAO,SAAsB5oI,GAAK,OAAO,IAAKA,GAAKi8L,IAAM,GAAyB,IAA0B,GAAyB,MAC1IA,GAAK7zD,UAAO,GAAyB,CAAEj3H,KAAM8qL,GAAMv3J,UAAW,CAAC,CAAC,GAAI,OAAQ,KAAM+nG,OAAQ,CAAEwyD,KAAM,OAAQG,SAAU,WAAYC,SAAU,cAD1IpD,IAyEM2C,GACF,SAAA,IAAA,gBAAA,KAAA,GACI54L,KAAKw3L,UAAY,KACjBx3L,KAAKi5L,KAAO,MAcpB,SAASE,GAAe5hL,EAAUw3I,GAG9B,GADgCA,IAAeA,EAAYN,mBAEvD,MAAM,IAAI5oJ,MAAJ,GAAA,OAAa0R,EAAb,0CAAA,OAA8D,GAAWw3I,GAAzE,OASd,IAykBMuqC,GA5PAC,GArEAC,GAhJAC,GAqhDAC,GA/oBAC,GA9/BAC,GAAAA,WAKF,SAAA,EAAYvsC,EAAmBwsC,GAAAA,gBAAAA,KAAAA,GAC3B75L,KAAKqtJ,kBAAoBA,EACzBrtJ,KAAK65L,aAAeA,EACpB75L,KAAK85L,UAAAA,EAyBI3/G,OApBb,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WACIn6E,KAAK85L,UAAAA,EACL95L,KAAKqtJ,kBAAkBoB,mBAAmBzuJ,KAAK65L,gBAKnD,CAAA,IAAA,UAAA,MAAA,WACI75L,KAAK85L,UAAAA,EACL95L,KAAKqtJ,kBAAkBluG,UAM3B,CAAA,IAAA,eAAA,MAAA,SAAa46I,GACLA,IAAY/5L,KAAK85L,SACjB95L,KAAK6G,UAECkzL,GAAW/5L,KAAK85L,UACtB95L,KAAKm6E,cAAAA,EAjCXy/G,GAiCWz/G,KAuFXs/G,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACIz5L,KAAKg6L,cAAAA,EACLh6L,KAAKi6L,WAAa,EAClBj6L,KAAKk6L,oBAAsB,EAC3Bl6L,KAAKm6L,mBAAAA,EAgBT,OAVA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAWI,OAAOn6L,KAAKi6L,eAOhB,CAAA,IAAA,cAAA,MAAA,SAAYjvD,GACHhrI,KAAKo6L,gBACNp6L,KAAKo6L,cAAgB,IAEzBp6L,KAAKo6L,cAAc15L,KAAKsqI,KAO5B,CAAA,IAAA,aAAA,MAAA,SAAWvlI,GAEP,IAAM40L,EAAU50L,GAASzF,KAAKs6L,UAQ9B,OAPAt6L,KAAKm6L,kBAAoBn6L,KAAKm6L,mBAAqBE,EACnDr6L,KAAKk6L,sBACDl6L,KAAKk6L,sBAAwBl6L,KAAKi6L,aAClCj6L,KAAKu6L,qBAAqBv6L,KAAKm6L,mBAC/Bn6L,KAAKk6L,oBAAsB,EAC3Bl6L,KAAKm6L,mBAAAA,GAEFE,IAOX,CAAA,IAAA,sBAAA,MAAA,SAAoBG,GAChB,GAAIx6L,KAAKo6L,eAAiBI,IAAex6L,KAAKg6L,aAAc,CACxDh6L,KAAKg6L,aAAeQ,EACpB,IAAK,IAAI7/L,EAAI,EAAGA,EAAIqF,KAAKo6L,cAAcp/L,OAAQL,IAEvBqF,KAAKo6L,cAAcz/L,GAC3B8/L,aAAaD,MAAAA,CAAAA,IAAAA,WAAAA,IAAAA,SApDxB1nI,GACT9yD,KAAKs6L,UAAYxnI,EACO,IAApB9yD,KAAKi6L,YACLj6L,KAAKu6L,qBAAAA,OAOb,EArBEd,IAoEG72D,UAAO,SAA0B5oI,GAAK,OAAO,IAAKA,GAAKy/L,KAChEA,GAASr3D,UAAO,GAAyB,CAAEj3H,KAAMsuL,GAAU/6J,UAAW,CAAC,CAAC,GAAI,WAAY,KAAM+nG,OAAQ,CAAEi0D,SAAU,cADlHjB,IAAAA,KA4EMD,GAAAA,WAMF,SAAA,EAAYmB,EAAe5rC,EAAa2rC,GAAAA,gBAAAA,KAAAA,GACpC16L,KAAK06L,SAAWA,EAChBA,EAASE,WACT56L,KAAKguJ,MAAQ,IAAI4rC,GAAWe,EAAe5rC,GAOW8rC,OAD1D,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,WACI76L,KAAKguJ,MAAMysC,aAAaz6L,KAAK06L,SAASI,WAAW96L,KAAK66L,mBAAAA,EAhBxDrB,IAmBO52D,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAKw/L,IAAc,GAAyB,IAA0B,GAAyB,IAAqB,GAAyB,GAAU,KAC1NA,GAAap3D,UAAO,GAAyB,CAAEj3H,KAAMquL,GAAc96J,UAAW,CAAC,CAAC,GAAI,eAAgB,KAAM+nG,OAAQ,CAAEo0D,aAAc,kBADlIrB,IAAAA,KAkDMD,GAMF,SAAA,EAAYoB,EAAe5rC,EAAa2rC,GAAAA,gBAAAA,KAAAA,GACpCA,EAASK,YAAY,IAAInB,GAAWe,EAAe5rC,MAG3CnsB,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKu/L,IAAiB,GAAyB,IAA0B,GAAyB,IAAqB,GAAyB,GAAU,KACnOA,GAAgBn3D,UAAO,GAAyB,CAAEj3H,KAAMouL,GAAiB76J,UAAW,CAAC,CAAC,GAAI,kBAAmB,OAD7G66J,IAAAA,KAkPMD,GAAAA,WAMF,SAAA,EAAYlD,EAAOyB,EAAUxB,GAAAA,gBAAAA,KAAAA,GACzBr2L,KAAKo2L,MAAQA,EACbp2L,KAAK63L,SAAWA,EAChB73L,KAAKq2L,UAAYA,EACjBr2L,KAAKg7L,SAAW,KAChBh7L,KAAKg4L,QAAU,KAenB,OATA,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,WAUI,GAAIh4L,KAAKg4L,QAAS,CAEd,IAAMtgB,EAAU13K,KAAKg4L,QAAQjsG,KAAwB/rF,KAAc,UAC/D03K,GACA13K,KAAKk4L,cAAcxgB,MAU/B,CAAA,IAAA,YAAA,MAAA,SAAUujB,EAAax1L,GAAAA,IAAAA,EAAAA,eACEw1L,EAAYz5L,MAAM,KADpBiE,GACZ7F,EADY6F,EAAAA,GACNkgB,EADMlgB,EAAAA,GAGN,OADbA,EAAiB,MAATA,GAAiBkgB,EAAR,GAAA,OAAkBlgB,GAAlB,OAA0BkgB,GAASlgB,GAEhDzF,KAAKq2L,UAAU3hK,SAAS10B,KAAKo2L,MAAM7rB,cAAe3qK,EAAM,GAGxDI,KAAKq2L,UAAUx3F,YAAY7+F,KAAKo2L,MAAM7rB,cAAe3qK,KAQ7D,CAAA,IAAA,gBAAA,MAAA,SAAc83K,GAAAA,IAAAA,EAAAA,KACVA,EAAQuf,oBAIP1iC,SAAAA,GAAAA,OAAWv0J,EAAKk7L,UAAU3mC,EAAOr4J,IAAK,SACvCw7K,EAAQof,kBAIPviC,SAAAA,GAAAA,OAAWv0J,EAAKk7L,UAAU3mC,EAAOr4J,IAAKq4J,EAAO3hF,iBAC9C8kG,EAAQsf,oBAIPziC,SAAAA,GAAAA,OAAWv0J,EAAKk7L,UAAU3mC,EAAOr4J,IAAKq4J,EAAO3hF,mBAAAA,CAAAA,IAAAA,UAAAA,IAAAA,SAtDtCiwC,GACR7iH,KAAKg7L,SAAWn4E,GACX7iH,KAAKg4L,SAAWn1E,IACjB7iH,KAAKg4L,QAAUh4L,KAAK63L,SAASzmK,KAAKyxF,GAAQh8G,cAMlD,EA1BEyyL,IA0EE12D,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAKs/L,IAAS,GAAyB,IAAoB,GAAyB,IAAyB,GAAyB,MAC/LA,GAAQl3D,UAAO,GAAyB,CAAEj3H,KAAMmuL,GAAS56J,UAAW,CAAC,CAAC,GAAI,UAAW,KAAM+nG,OAAQ,CAAE00D,QAAS,aAD9G7B,IAiRM8B,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GA8Bez6L,OA9Bfy6L,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,qBAAAA,MAAAA,SAMiBlnL,EAAOmnL,GACtB,OAAOnnL,EAAM3T,UAAU,CACnB2H,KAAMmzL,EACNl8L,MAICsE,SAAAA,GACG,MAAMA,OAQlB,CAAA,IAAA,UAAA,MAAA,SAAQwV,GACJA,EAAatY,gBAMjB,CAAA,IAAA,YAAA,MAAA,SAAUsY,GACNA,EAAatY,kBAAAA,EA9Bfy6L,GA4DAE,GAAmB,IA3BnBC,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAwBQtiL,OAxBRsiL,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,qBAAAA,MAAAA,SAMiBrnL,EAAOmnL,GACtB,OAAOnnL,EAAMxE,KAAK2rL,GAIlB53L,SAAAA,GACI,MAAMA,OAOd,CAAA,IAAA,UAAA,MAAA,SAAQwV,MAKR,CAAA,IAAA,YAAA,MAAA,SAAUA,QAAAA,EAxBRsiL,IA6BAC,GAAsB,IAAIJ,GAFhC,KA8BMzB,GAAAA,WAIF,SAAA,EAAY8B,GAAAA,gBAAAA,KAAAA,GACRz7L,KAAKy7L,KAAOA,EACZz7L,KAAK07L,aAAe,KACpB17L,KAAK27L,qBAAuB,KAC5B37L,KAAK47L,cAAgB,KACrB57L,KAAKg6E,KAAO,KACZh6E,KAAK67L,UAAY,KAgFHC,OA3ElB,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WACQ97L,KAAK47L,eACL57L,KAAK+7L,aAOb,CAAA,IAAA,YAAA,MAAA,SAAU/1L,GACN,OAAKhG,KAAKg6E,KAONh0E,IAAQhG,KAAKg6E,MACbh6E,KAAK+7L,WACE/7L,KAAK6kB,UAAU,IAEtB,GAAgB7kB,KAAK07L,aAAc17L,KAAK27L,sBACjC37L,KAAK27L,sBAEhB37L,KAAK27L,qBAAuB37L,KAAK07L,aAC1Bn/B,GAAa1oD,KAAK7zG,KAAK07L,gBAdtB11L,GACAhG,KAAKuY,WAAWvS,GAEpBhG,KAAK27L,qBAAuB37L,KAAK07L,aAC1B17L,KAAK07L,gBAiBpB,CAAA,IAAA,aAAA,MAAA,SAAW11L,GAAAA,IAAAA,EAAAA,KACPhG,KAAKg6E,KAAOh0E,EACZhG,KAAK67L,UAAY77L,KAAKg8L,gBAAgBh2L,GACtChG,KAAK47L,cAAgB57L,KAAK67L,UAAUI,mBAAmBj2L,GAItDP,SAAAA,GAAAA,OAAUzF,EAAKk8L,mBAAmBl2L,EAAKP,QAO5C,CAAA,IAAA,kBAAA,MAAA,SAAgBO,GACZ,GAAI,GAAWA,GACX,OAAOs1L,GAEX,GAAI,GAAct1L,GACd,OAAOw1L,GAEX,MA5LG31L,MAAAA,yBAAAA,OA4LuCG,EA5LvCH,gBAAAA,OAAmD,GA4LvB8zL,GA5L5B9zL,QAkMP,CAAA,IAAA,WAAA,MAAA,WACI7F,KAAK67L,UAAU92I,QAA2B/kD,KAAmB,eAC7DA,KAAK07L,aAAe,KACpB17L,KAAK27L,qBAAuB,KAC5B37L,KAAK47L,cAAgB,KACrB57L,KAAKg6E,KAAO,OAQhB,CAAA,IAAA,qBAAA,MAAA,SAAmB9lE,EAAOzO,GAClByO,IAAUlU,KAAKg6E,OACfh6E,KAAK07L,aAAej2L,EACpBzF,KAAKy7L,KAAKK,oBAAAA,EA1FhBnC,IA8FI/2D,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAK2/L,I9BmjgClE,WAA2D91D,IAApBC,EAAoBD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAZpE,GAAYoE,QAEjDp+H,EAAQgrJ,IAAAA,GACd,GAAa,MAAThrJ,GAAmBq+H,EAAQrE,GAAYH,SAIvC,OAAO75H,EAHP,MAAM,IAAII,MAAM,sCAJxB,K8BljgCA8zL,GAAUr3D,WAAQ,GAAoB,CAAE1iI,KAAM,QAASuL,KAAMwuL,GAAWnwD,MAAAA,IADxEmwD,IAAAA,KAijBMD,GAAAA,WAIF,SAAA,EAAYyC,GAAAA,gBAAAA,KAAAA,GACRn8L,KAAKm8L,QAAUA,EACfn8L,KAAKo8L,UAAY,GA6BLA,OArBhB,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,SAAUlhM,GAAmBmhM,IAAAA,EAAAA,KAAZC,EAAYD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAAA,GACzB,IAAKnhM,KAAYA,aAAiB44J,MAAyB,iBAAV54J,EAC7C,OAAO,KAEN8E,KAAKu8L,SAENv8L,KAAKu8L,OAASv8L,KAAKm8L,QAAQ/qK,KAAKl2B,GAAO2L,UAG3C,IAAM21L,EAAgBx8L,KAAKu8L,OAAOxwG,KAAK,GAYvC,OAXIywG,IACAx8L,KAAKo8L,UAAY,GACjBI,EAAcC,aAIb9rL,SAAAA,GACG3Q,EAAKo8L,UAAU17L,KApEpB,CAAExE,IAoEwCyU,EAAEzU,IApEhCuJ,MAoEwDkL,EAAe,kBAElF3Q,KAAKo8L,UAAU1kJ,KAAK4kJ,IAEjBt8L,KAAKo8L,cAAAA,EAnCd1C,IAsCO92D,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAK0/L,IAAc,GAAyB,MAC/GA,GAAap3D,WAAQ,GAAoB,CAAE1iI,KAAM,WAAYuL,KAAMuuL,GAAclwD,MAAAA,IADjFkwD,IAiCA,SAAS2C,GAAkBK,EAAWC,GAElC,IAAM9iM,EAAI6iM,EAAUxgM,IAEdpC,EAAI6iM,EAAUzgM,IAEpB,GAAIrC,IAAMC,EACN,OAAO,EAEX,QAAA,IAAID,EACA,OAAO,EACX,QAAA,IAAIC,EACA,OAAQ,EAEZ,GAAU,OAAND,EACA,OAAO,EACX,GAAU,OAANC,EACA,OAAQ,EACZ,GAAgB,iBAALD,GAA6B,iBAALC,EAC/B,OAAOD,EAAIC,GAAK,EAAI,EAExB,GAAgB,iBAALD,GAA6B,iBAALC,EAC/B,OAAOD,EAAIC,EAEf,GAAgB,kBAALD,GAA8B,kBAALC,EAChC,OAAOD,EAAIC,GAAK,EAAI,EAIxB,IAAM8iM,EAAUvhM,OAAOxB,GAEjBgjM,EAAUxhM,OAAOvB,GACvB,OAAO8iM,GAAWC,EAAU,EAAID,EAAUC,GAAW,EAAI,EAAA,IA2cvDC,GA3cuD,KA2cvDA,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEOt6D,UAAO,GAAwB,CAAEr3H,KAAM2xL,KACpDA,GAAan8D,UAAO,GAAwB,CAAErrH,QAAS,SAA8Btb,GAAK,OAAO,IAAKA,GAAK8iM,KAAoB98D,UAAW,CAClI,CAAEqD,QAASkyD,GAAgB/+B,SAAU,OAF7CsmC,ICn/Na,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACR3iE,EAAAA,EAAAA,KAAAA,OACK2iE,OAASA,EAFNA,EAOZ,OAHA,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAGW50L,GACP,IAAM8Q,EAAAA,KAAAA,gBAAAA,EAAAA,WAAAA,aAAAA,MAAAA,KAAAA,KAAgC9Q,GAItC,OAHI8Q,IAAiBA,EAAa1Q,QAC9BJ,EAAWD,KAAKlI,KAAK+8L,QAElB9jL,IAEX,CAAA,IAAA,WAAA,MAAA,WACI,GAAIjZ,KAAK26H,SACL,MAAM36H,KAAK46H,YAEV,GAAI56H,KAAKuI,OACV,MAAM,IAAI+xH,EAGV,OAAOt6H,KAAK+8L,SAGpB,CAAA,IAAA,OAAA,MAAA,SAAKt3L,GACD20H,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,KAAWp6H,KAAK+8L,OAASt3L,KAAAA,CAAAA,IAAAA,QAAAA,IAAAA,WArBzB,OAAOzF,KAAKg9L,eAEhB,EARS,CAAwB,GCG9B,SAASC,KAAY92E,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GACxB,GAAuB,IAAnBA,EAAQnrH,OAAc,CACtB,IAAMqgK,EAAQl1C,EAAQ,GACtB,GAAIrvG,EAAQukJ,GACR,OAAO6hC,GAAiB7hC,EAAO,MAEnC,GAAI5xJ,EAAS4xJ,IAAUt1J,OAAO4wI,eAAe0kB,KAAWt1J,OAAOb,UAAW,CACtE,IAAMM,EAAOO,OAAOP,KAAK61J,GACzB,OAAO6hC,GAAiB13L,EAAKuP,KAAI7Y,SAAAA,GAAAA,OAAOm/J,EAAMn/J,MAAOsJ,IAG7D,GAA2C,mBAAhC2gH,EAAQA,EAAQnrH,OAAS,GAAmB,CACnD,IAAMuhI,EAAiBpW,EAAQpyG,MAE/B,OAAOmpL,GADP/2E,EAA8B,IAAnBA,EAAQnrH,QAAgB8b,EAAQqvG,EAAQ,IAAOA,EAAQ,GAAKA,EACtC,MAAM9hH,KAAK0Q,GAAK3U,SAAAA,GAAAA,OAASm8H,EAAAA,WAAAA,EAAAA,oBAAkBn8H,QAEhF,OAAO88L,GAAiB/2E,EAAS,MAErC,SAAS+2E,GAAiB/2E,EAAS3gH,GAC/B,OAAO,IAAI,GAAW2C,SAAAA,GAClB,IAAMzN,EAAMyrH,EAAQnrH,OACpB,GAAY,IAARN,EAOJ,IAHA,IAAMmoH,EAAS,IAAIp8G,MAAM/L,GACrByiM,EAAY,EACZC,EAAU,EARIj1L,EAAAA,SASTxN,GACL,IAAMyH,EAAS,EAAK+jH,EAAQxrH,IACxBszL,GAAAA,EACJ9lL,EAAWJ,IAAI3F,EAAO7B,UAAU,CAC5B2H,KAAMzC,SAAAA,GACGwoL,IACDA,GAAAA,EACAmP,KAEJv6E,EAAOloH,GAAK8K,GAEhBtG,MAAO2G,SAAAA,GAAAA,OAAOqC,EAAWhJ,MAAM2G,IAC/ByB,SAAU,aACN41L,IACkBziM,GAAQuzL,IAClBmP,IAAY1iM,GACZyN,EAAWD,KAAK1C,EACZA,EAAKtB,QAAO,SAACR,EAAQxH,EAAKvB,GAAd,OAAqB+I,EAAOxH,GAAO2mH,EAAOloH,GAAI+I,IAAS,IACnEm/G,GAER16G,EAAWZ,iBApBlB5M,EAAI,EAAGA,EAAID,EAAKC,IAAK,EAArBA,QANLwN,EAAWZ,cC1BhB,SAAS,GAAOmxK,EAAWx8C,GAC9B,OAAO,SAAgC95H,GACnC,OAAOA,EAAOoW,KAAK,IAAI6kL,GAAe3kB,EAAWx8C,KAGzD,IAAMmhE,GAAAA,WACF,SAAA,EAAY3kB,EAAWx8C,GAAAA,gBAAAA,KAAAA,GACnBl8H,KAAK04K,UAAYA,EACjB14K,KAAKk8H,QAAUA,EAG+DA,OADlF,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK/zH,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAiB4H,EAAYnI,KAAK04K,UAAW14K,KAAKk8H,cAAAA,EANhFmhE,GASA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYx1L,EAAa6wK,EAAWx8C,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAChC9B,EAAAA,EAAAA,KAAAA,KAAMvyH,IACD6wK,UAAYA,EACjB14K,EAAKk8H,QAAUA,EACfl8H,EAAKk0H,MAAQ,EAJmBgI,EAgBNz2H,OAV9B,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAMA,GACF,IAAI/B,EACJ,IACIA,EAAS1D,KAAK04K,UAAUj6K,KAAKuB,KAAKk8H,QAASz2H,EAAOzF,KAAKk0H,SAE3D,MAAOpuH,GAEH,YADA9F,KAAK6H,YAAY1I,MAAM2G,GAGvBpC,GACA1D,KAAK6H,YAAYK,KAAKzC,OAAAA,EAjB5B,CAAyB,GCdxB,SAAS63L,GAAYC,EAAoB1N,EAAYxzD,GACxD,IAAIpzH,EAYJ,OAVIA,EADAs0L,GAAoD,iBAAvBA,EACpBA,EAGA,CACL3N,WAAY2N,EACZ1N,WAAAA,EACAnyD,UAAAA,EACArB,UAAAA,GAGAj6H,SAAAA,GAAAA,OAAWA,EAAOoW,KAE9B,SAAA,GAAoI6jH,IAC5H7B,EAEAvhH,EAH4HojH,EAAAA,EAAvG,WAAEuzD,OAAqGvzD,IAAAA,EAAxF72G,OAAOg3G,kBAAiFH,EAAAA,EAAAA,EAAhE,WAAEwzD,OAA8DxzD,IAAAA,EAAjD72G,OAAOg3G,kBAA0CH,EAAbmhE,EAAanhE,EAAvBqB,SAAuBrB,EAAAA,EAAF,UAE1HqB,EAAW,EAEX/C,GAAAA,EACA8iE,GAAAA,EACJ,OAAO,SAA8Br7L,GACjCs7H,IACKlD,IAAWG,IACZA,GAAAA,EACAH,EAAU,IAAI,GAAco1D,EAAYC,EAAYxzD,GACpDpjH,EAAe7W,EAAO7B,UAAU,CAC5B,KAD4B,SACvBkF,GAAS+0H,EAAQtyH,KAAKzC,IAC3B,MAF4B,SAEtBK,GACF60H,GAAAA,EACAH,EAAQr7H,MAAM2G,IAElB,SAN4B,WAOxB23L,GAAAA,EACAxkL,OAAAA,EACAuhH,EAAQjzH,eAIpB,IAAM00H,EAAWzB,EAAQj6H,UAAUP,MACnCA,KAAK+H,KAAI,WACL21H,IACAzB,EAASt7H,cACLsY,IAAiBwkL,GAAcD,GAA4B,IAAb9/D,IAC9CzkH,EAAatY,cACbsY,OAAAA,EACAuhH,OAAAA,OA/BhB,CAFuDvxH,KCdvD,IAUay0L,GAVuB,WAChC,SAASC,IAIL,OAHA93L,MAAMpH,KAAKuB,MACXA,KAAKZ,QAAU,wBACfY,KAAKJ,KAAO,0BACLI,KAGX,OADA29L,EAA4Bz4L,UAAYa,OAAOc,OAAOhB,MAAMX,WACrDy4L,EARyB,GCG7B,SAASC,GAAK1pE,GACjB,OAAQ9xH,SAAAA,GAAAA,OACU,IAAV8xH,EACO,KAGA9xH,EAAOoW,KAAK,IAAI,GAAa07G,KAIhD,IAAM,GAAA,WACF,SAAA,EAAY2pE,GAER,GAFQA,gBAAAA,KAAAA,GACR79L,KAAK69L,MAAQA,EACT79L,KAAK69L,MAAQ,EACb,MAAM,IAAIH,GAI8CG,OADhE,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK11L,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAe4H,EAAYnI,KAAK69L,YAAAA,EAR9D,GAWA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYh2L,EAAag2L,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBzjE,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDg2L,MAAQA,EACb79L,EAAKk0H,MAAQ,EAHQ2pE,EAYRl9L,OAPjB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM8E,GACF,IAAMo4L,EAAQ79L,KAAK69L,MACb3pE,IAAUl0H,KAAKk0H,MACjBA,GAAS2pE,IACT79L,KAAK6H,YAAYK,KAAKzC,GAClByuH,IAAU2pE,IACV79L,KAAK6H,YAAYN,WACjBvH,KAAKW,oBAAAA,EAbf,CAAuB,GCbvBm9L,GAAAA,WACF,SAAA,EAAY55E,GAAAA,gBAAAA,KAAAA,GACRlkH,KAAKkkH,QAAUA,EAGmDA,OADtE,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK/7G,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAqB4H,EAAYnI,KAAKkkH,cAAAA,EALpE45E,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYj2L,EAAaq8G,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBkW,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDq8G,QAAUA,EACflkH,EAAK+9L,iBAAAA,EACL/9L,EAAK48H,cAAAA,EACL58H,EAAKihB,MAAQ,EALQijG,EAoDA38G,OA7CzB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM9B,GACGzF,KAAK+9L,iBACN/9L,KAAKg+L,QAAQv4L,KAGrB,CAAA,IAAA,UAAA,MAAA,SAAQA,GACJ,IAAI/B,EACEud,EAAQjhB,KAAKihB,QACnB,IACIvd,EAAS1D,KAAKkkH,QAAQz+G,EAAOwb,GAEjC,MAAOnb,GAEH,YADA9F,KAAK6H,YAAY1I,MAAM2G,GAG3B9F,KAAK+9L,iBAAAA,EACL/9L,KAAK88H,UAAUp5H,EAAQ+B,EAAOwb,KAElC,CAAA,IAAA,YAAA,MAAA,SAAUvd,EAAQ+B,EAAOwb,GACrB,IAAM66G,EAAkB,IAAI,EAAgB97H,KAAMyF,EAAOwb,GACnDpZ,EAAc7H,KAAK6H,YACzBA,EAAYE,IAAI+zH,GAChB,IAAMkB,EAAoBpB,EAAkB57H,KAAM0D,OAAAA,OAAQslH,EAAsB8S,GAC5EkB,IAAsBlB,GACtBj0H,EAAYE,IAAIi1H,KAGxB,CAAA,IAAA,YAAA,MAAA,WACIh9H,KAAK48H,cAAAA,EACA58H,KAAK+9L,iBACN/9L,KAAK6H,YAAYN,WAErBvH,KAAKW,gBAET,CAAA,IAAA,aAAA,MAAA,SAAWo6H,EAAYgB,EAAYf,EAAYgB,EAAYC,GACvDj8H,KAAK6H,YAAYK,KAAK6zH,KAE1B,CAAA,IAAA,cAAA,MAAA,SAAYj2H,GACR9F,KAAK6H,YAAY1I,MAAM2G,KAE3B,CAAA,IAAA,iBAAA,MAAA,SAAem2H,GACSj8H,KAAK6H,YACbkO,OAAOkmH,GACnBj8H,KAAK+9L,iBAAAA,EACD/9L,KAAK48H,cACL58H,KAAK6H,YAAYN,eAAAA,EArDvB,CAA6B,GCf7B02L,GAAAA,WACF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRl+L,KAAKk+L,aAAeA,EAGkDA,OAD1E,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK/1L,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAyB4H,EAAYnI,KAAKk+L,mBAAAA,EALxED,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYp2L,EAAaq2L,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrB9jE,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDq2L,aAAeA,EACpBl+L,EAAKwhB,SAAAA,EAHgB08K,EAaJ32L,OARrB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM9B,GACFzF,KAAKwhB,SAAAA,EACLxhB,KAAK6H,YAAYK,KAAKzC,KAE1B,CAAA,IAAA,YAAA,MAAA,WACQzF,KAAKwhB,SACLxhB,KAAK6H,YAAYK,KAAKlI,KAAKk+L,cAE/Bl+L,KAAK6H,YAAYN,eAAAA,EAdnB,CAAiC,GCThC,SAAS42L,GAAWr/J,GACvB,OAAO,SAAoC18B,GACvC,IAAMqW,EAAW,IAAI2lL,GAAct/J,GAC7Bu/J,EAASj8L,EAAOoW,KAAKC,GAC3B,OAAQA,EAAS4lL,OAASA,GAGlC,IAAMD,GAAAA,WACF,SAAA,EAAYt/J,GAAAA,gBAAAA,KAAAA,GACR9+B,KAAK8+B,SAAWA,EAG4Du/J,OADhF,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKl2L,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAgB4H,EAAYnI,KAAK8+B,SAAU9+B,KAAKq+L,aAAAA,EAL9ED,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYv2L,EAAai3B,EAAUu/J,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC/BjkE,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDi3B,SAAWA,EAChB9+B,EAAKq+L,OAASA,EAHiBA,EAoBdrhE,OAfrB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAMl3H,GACF,IAAK9F,KAAK4H,UAAW,CACjB,IAAIlE,EACJ,IACIA,EAAS1D,KAAK8+B,SAASh5B,EAAK9F,KAAKq+L,QAErC,MAAOC,GAEH,YAAA,KAAA,gBAAA,EAAA,WAAA,QAAA,MAAA,KAAA,KADYA,GAGhBt+L,KAAKwI,yBACL,IAAMszH,EAAkB,IAAI,EAAgB97H,UAAAA,OAAMgpH,GAClDhpH,KAAK+H,IAAI+zH,GACT,IAAMkB,EAAoBpB,EAAkB57H,KAAM0D,OAAAA,OAAQslH,EAAsB8S,GAC5EkB,IAAsBlB,GACtB97H,KAAK+H,IAAIi1H,QAAAA,EArBnB,CAAwB,GChBvB,SAASuhE,GAAUC,GACtB,OAAQp8L,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAI,GAAkBgmL,KAEzD,IAAM,GAAA,WACF,SAAA,EAAYA,GAAAA,gBAAAA,KAAAA,GACRx+L,KAAKw+L,SAAWA,EASTC,OAPX,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKt2L,EAAY/F,GACb,IAAMq8L,EAAsB,IAAI,GAAoBt2L,GAC9Cu2L,EAAuB9iE,EAAkB6iE,EAAqBz+L,KAAKw+L,UACzE,OAAIE,IAAyBD,EAAoBE,WAC7CF,EAAoB12L,IAAI22L,GACjBt8L,EAAO7B,UAAUk+L,IAErBA,MAAAA,EAXT,GAcA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAY52L,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRuyH,EAAAA,EAAAA,KAAAA,KAAMvyH,IACD82L,WAAAA,EAFG92L,EAQZ,OAJA,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWkzH,EAAYgB,EAAYf,EAAYgB,EAAYC,GACvDj8H,KAAK2+L,WAAAA,EACL3+L,KAAKuH,aAET,CAAA,IAAA,iBAAA,MAAA,gBAAA,EATE,CAA4B,GCnB3B,SAAS,MCGT,SAASq3L,GAAI7kL,EAAgB5a,EAAOoI,GACvC,OAAO,SAA6BnF,GAChC,OAAOA,EAAOoW,KAAK,IAAIqmL,GAAW9kL,EAAgB5a,EAAOoI,KAGjE,IAAMs3L,GAAAA,WACF,SAAA,EAAY9kL,EAAgB5a,EAAOoI,GAAAA,gBAAAA,KAAAA,GAC/BvH,KAAK+Z,eAAiBA,EACtB/Z,KAAKb,MAAQA,EACba,KAAKuH,SAAWA,EAG4EA,OADhG,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKY,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAc4H,EAAYnI,KAAK+Z,eAAgB/Z,KAAKb,MAAOa,KAAKuH,eAAAA,EAP9Fs3L,GAUA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYh3L,EAAae,EAAgBzJ,EAAOoI,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC5C6yH,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDi3L,SAAW,GAChB9+L,EAAK++L,UAAY,GACjB/+L,EAAKg/L,aAAe,GACpBh/L,EAAK++L,UAAY5/L,GAAS,GAC1Ba,EAAKg/L,aAAez3L,GAAY,GAC5BuB,EAAWF,IACX5I,EAAKgJ,SAALhJ,uBAAAA,GACAA,EAAK8+L,SAAWl2L,GAEXA,IACL5I,EAAKgJ,SAAWJ,EAChB5I,EAAK8+L,SAAWl2L,EAAeV,MAAQ,GACvClI,EAAK++L,UAAYn2L,EAAezJ,OAAS,GACzCa,EAAKg/L,aAAep2L,EAAerB,UAAY,IAfPA,EA8CpBA,OA5B5B,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM9B,GACF,IACIzF,KAAK8+L,SAASrgM,KAAKuB,KAAKgJ,SAAUvD,GAEtC,MAAOK,GAEH,YADA9F,KAAK6H,YAAY1I,MAAM2G,GAG3B9F,KAAK6H,YAAYK,KAAKzC,KAE1B,CAAA,IAAA,SAAA,MAAA,SAAOK,GACH,IACI9F,KAAK++L,UAAUtgM,KAAKuB,KAAKgJ,SAAUlD,GAEvC,MAAOA,GAEH,YADA9F,KAAK6H,YAAY1I,MAAM2G,GAG3B9F,KAAK6H,YAAY1I,MAAM2G,KAE3B,CAAA,IAAA,YAAA,MAAA,WACI,IACI9F,KAAKg/L,aAAavgM,KAAKuB,KAAKgJ,UAEhC,MAAOlD,GAEH,YADA9F,KAAK6H,YAAY1I,MAAM2G,GAG3B,OAAO9F,KAAK6H,YAAYN,eAAAA,EA/C1B,CAAsB,GCjBrB,SAAS03L,GAAqBC,EAASC,GAC1C,OAAQ/8L,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAI4mL,GAA6BF,EAASC,KAE7E,IC8FME,GAqHAC,GDnNAF,GAAAA,WACF,SAAA,EAAYF,EAASC,GAAAA,gBAAAA,KAAAA,GACjBn/L,KAAKk/L,QAAUA,EACfl/L,KAAKm/L,YAAcA,EAGuEA,OAD9F,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKh3L,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAA+B4H,EAAYnI,KAAKk/L,QAASl/L,KAAKm/L,kBAAAA,EAN5FC,GASA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYv3L,EAAaq3L,EAASC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC9B/kE,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDs3L,YAAcA,EACnBn/L,EAAK01G,QAAAA,EACkB,mBAAZwpF,IACPl/L,EAAKk/L,QAAUA,GALWC,EAmCJ15L,OA3B9B,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAAQjM,EAAGC,GACP,OAAOD,IAAMC,IAEjB,CAAA,IAAA,QAAA,MAAA,SAAMgM,GACF,IAAIvJ,EACJ,IAAA,IACYijM,EAAgBn/L,KAAlB,YACN9D,EAAMijM,EAAcA,EAAY15L,GAASA,EAE7C,MAAOK,GACH,OAAO9F,KAAK6H,YAAY1I,MAAM2G,GAElC,IAAIpC,GAAAA,EACJ,GAAI1D,KAAK01G,OACL,IAEIhyG,GAASw7L,EADWl/L,KAAd,SACWA,KAAK9D,IAAKA,GAE/B,MAAO4J,GACH,OAAO9F,KAAK6H,YAAY1I,MAAM2G,QAIlC9F,KAAK01G,QAAAA,EAEJhyG,IACD1D,KAAK9D,IAAMA,EACX8D,KAAK6H,YAAYK,KAAKzC,QAAAA,EApC5B,CAAuC,GCA7C,KAqFM45L,GAAAA,WAKF,SAAA,EAAYte,EAASwe,GAAAA,gBAAAA,KAAAA,GACjBv/L,KAAK+gL,QAAUA,EACf/gL,KAAKu/L,YAAcA,EACnBv/L,KAAKw/L,sBAAsBx/L,KAAK+gL,SAyDnB0e,OAlDjB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM1/L,GACF,Mdk6NmB,Wcl6NEC,KAAKu/L,YACfv/L,KAAK0/L,iBAAiB3/L,GAE1BC,KAAKogL,kBAAkBrgL,KAOlC,CAAA,IAAA,QAAA,MAAA,SAAMA,GACF,OAAOC,KAAK0/L,iBAAiB3/L,KAQjC,CAAA,IAAA,mBAAA,MAAA,SAAiBA,GACb,OAAI69K,GAAOgD,kBACA7gL,IAEJC,KAAK+gL,QAAQV,IAAItgL,KAQ5B,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACd,OAAI69K,GAAOgD,kBACA5gL,KAAK+gL,QAAQX,kBAAkBrgL,GAEnCA,MAOX,CAAA,IAAA,wBAAA,MAAA,SAAsB8kL,GAIdA,aAAkBjH,IAGtBp5K,QAAQyG,KAvFN,qRAuFWw0L,EAjEfJ,IAoEmCz8D,UAAO,SAA0D5oI,GAAK,OAAO,IAAKA,GAAKqlM,IAA0C,GAAgB,IAAgB,GAAgBhjB,MAC1NgjB,GAAyC3+D,WAAQ,GAA0B,CAAErB,MAAOggE,GAA0C/pL,QAAS+pL,GAAyCz8D,YADhLy8D,IA+BMM,GAAmB,IAAI58D,GAAe,oBAEtC68D,GAAsB,IAAI78D,GAAe,uBAEzC88D,GAAe,IAAI98D,GAAe,gBAElC+8D,GAAe,IAAI/8D,GAAe,gBAElC,GAAc,IAAIA,GAAe,eAEjCg9D,GAAW,YAVjB,KAkBMT,GACF,SAAA,IAAA,gBAAA,KAAA,GAOIt/L,KAAKggM,cAAgB,GAIrBhgM,KAAKigM,gBAAkB,CACnBC,sBAAAA,EAEAC,gBAAAA,GAEJngM,KAAKogM,cAAgB,CACjBC,6BAAAA,GAEJrgM,KAAKsgM,kBAAoB,KAItB5/D,WAAQ,GAA0B,CAAErB,MAAOigE,GAAYhqL,QADlEgqL,GAAW18D,UAAO,SAA4B5oI,GAAK,OAAO,IAAKA,GAAKslM,OAApEA,IAsHMiB,GAMF,SAAA,EAAYx4B,EAAen1F,EAAco1F,GAAAA,gBAAAA,KAAAA,GACrChoK,KAAK+nK,cAAgBA,EACrB/nK,KAAK4yE,aAAeA,EACpB5yE,KAAKgoK,YAAcA,GAwDrBw4B,GAA0B,IAAIz9D,GAAe,2BA8BnD,SAAS09D,GAA0BrwI,GAC/B,OAAIA,EAAOxpD,aAAewpD,EAAOxpD,YAAYuE,KAClCilD,EAAOxpD,YAAYuE,KAEvBilD,EAAOjlD,KA8BlB,IAAMy9I,GAAW,SAMhB5iJ,EAAKoa,EAAMyyF,GACR7sG,EAAMD,OAAOkjH,OAAO,GAAIjjH,GAExB,IAAMxE,EAAQ4e,EAAK5e,MAAM,KAEnBmlC,EAAYnlC,EAAMxG,OAAS,EAgBjC,OAfAwG,EAAM0C,QAAO,SAMZokH,EAAKpV,EAAMjyF,GANC,OAQLqnG,EAAIpV,GADJjyF,IAAU0lB,EACEksE,EAGApsG,MAAMqQ,QAAQwxG,EAAIpV,IAASoV,EAAIpV,GAAM51G,QAAUyI,OAAOkjH,OAAO,GAAIX,EAAIpV,IAE9EoV,GAAOA,EAAIpV,KAClBltG,GACGA,GAULg3L,GAAW,SAKhBh3L,EAAKoa,GALW,OAKFA,EAAK5e,MAAM,KAAK0C,QAAO,SAKrCokH,EAAKpV,GALgC,OAKvBoV,GAAOA,EAAIpV,KAAQltG,IAgJlC,SAAS06L,GAAoB/1L,GACzB,IAAKA,EAAOpM,eAAewhM,IAAW,CAElC,IAAMY,EAAkB,CACpB/gM,KAAM,KACNm1H,QAAS,GACTnC,SAAU,GACV9qG,KAAM,KAKN84K,iBAAiB/3L,SAAAA,GAAAA,OACNA,EAAQg4L,eAAeF,EAAgB/gM,OAElDgiC,SAAU,IAEd77B,OAAO+uG,eAAenqG,EAAQo1L,GAAU,CAAEt6L,MAAOk7L,IAErD,OAAOG,GAAiBn2L,GAS5B,SAASm2L,GAAiBn2L,GACtB,OAA0BA,EAAOo1L,IAiCrC,SAASgB,GAAoBp2L,GACzB,OAAOA,EAAwB,mBAiEnC,SAASq2L,GAAWC,EAAOh4L,GACvB,OAAIA,GAAUA,EAAOm3L,eAAiBn3L,EAAOm3L,cAAcC,4BApD/D,SAA6BY,GAEzB,IAAMC,EAAcD,EAAM3jM,QAC1B,OAIA0I,SAAAA,GAAAA,OAAOk7L,EAAYh9L,QAAO,SAKzBokH,EAAKpV,GALoB,OAKXoV,GAAOA,EAAIpV,KAAQltG,IAZtC,CAqDmCi7L,GA9BnC,SAAwBA,GAWpB,IATA,IAAMvyK,EAAWuyK,EAEbE,EAAM,SAAWzyK,EAAS,GAE1B/zB,EAAI,EAEFoR,EAAI2iB,EAAS1zB,OAEfomM,EAAOD,IACFxmM,EAAIoR,GACTq1L,EAAOA,EAAO,QAAUD,EAAMA,EAAM,IAAMzyK,EAAS/zB,IAIvD,OADW,IAAIsK,SAAS,QAAS,UAAYm8L,EAAO,KAfxD,CAiC8BH,GA4M9B,SAASI,GAAoBC,EAAav1G,GAEtC,IAAMg8E,EAAgBi1B,GAASjxG,EAAKw1G,gBAAiBD,EAAYx5K,MAE3D8qD,EAAeoqH,GAASjxG,EAAKy1G,YAAaF,EAAYx5K,MAC5D,OAAO,IAAIy4K,GAAiBx4B,EAAen1F,GAAe0uH,EAAYG,eAmC1E,SAASC,KAAsBC,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAC3B,OAAOC,GAAiBD,EAAc,CAAC,eAS3C,SAASE,KAAsBF,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAC3B,OAAOC,GAAiBD,EAAc,CAAC,eA6C3C,SAASC,GAAiBD,EAAcG,GAAwBC,IAAdC,EAAcD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAAA,GAEtDE,EAAyCN,EAsElCz9L,QAAO,SAKnBg+L,EAAWxvK,GALQ,OAMhBwvK,EAA6BzB,GAA0B/tK,KAAAA,EAChDwvK,IACP,IA5EEC,EAAmBL,GAkF7B,SAAkCA,GAC9B,OAAOA,EAAS59L,QAAO,SAKtBg+L,EAAW//L,GALW,OAMnB+/L,EAAU//L,IAAAA,EACH+/L,IACP,IATR,CAlFkEJ,GAC9D,OAAO,SAIGz1L,GACN,OAAOA,EAAEhI,KAQjB,SAAsBs9L,EAAcS,GAChC,OAAO,IAINhmL,SAAAA,GAEG,IAAMimL,EAAgC5B,GAA0BrkL,EAAIg0C,QAKpE,OAHkBuxI,EAAaU,MAEXD,GAAkBA,EAAgBhmL,EAAIja,YAXlE,CARmC8/L,EAAYE,GAAmBH,MA8ClE,SAASD,KACL,OAAOhtL,GAINqH,SAAAA,GAAAA,OAA2BA,EAAW,UAgD3C,SAASkmL,GAAUC,GACf,OAICngM,SAAAA,GAAAA,OACU,IAAI,GAIVuW,SAAAA,GAAAA,OACUvW,EAAO7B,UAAU,CAKpB,KALoB,SAKfkF,GACD88L,EAAsBC,OAAM,WAAA,OAGtB7pL,EAAKzQ,KAAKzC,OAMpB,MAfoB,SAedtG,GACFojM,EAAsBC,OAAM,WAAA,OAGtB7pL,EAAKxZ,MAAMA,OAKrB,SAxBoB,WAyBhBojM,EAAsBC,OAAM,WAAA,OAGtB7pL,EAAKpR,qBAlC1BnF,IA6CCqgM,GA4HAC,GAaAC,GAyMAC,GArFAC,GAjBAC,GA8GAC,GAuiCAC,GAnYAC,GAtMAC,GAzJAC,GArEAC,GArCAC,GAlmBDjhM,KA6CCqgM,GAAAA,WAIF,SAAA,EAAYa,GAAAA,gBAAAA,KAAAA,GACRtjM,KAAKsjM,mBAAqBA,EAgBWvjM,OATzC,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAMA,GACF,OAAOC,KAAKsjM,mBAAmBC,MAAMxjM,KAOzC,CAAA,IAAA,QAAA,MAAA,SAAMA,GACF,OAAOC,KAAKsjM,mBAAmBd,MAAMziM,OAAAA,EArBvC0iM,IAwBwB7/D,UAAO,SAA+C5oI,GAAK,OAAO,IAAKA,GAAKyoM,IAA+B,GAAgBjC,MACzJiC,GAA8B/hE,WAAQ,GAA0B,CAAErB,MAAOojE,GAA+BntL,QAASmtL,GAA8B7/D,YAD/I6/D,IA4D6B,KAwCvBC,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAAAA,OAAAA,EAAAA,CAxCA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,IAAA,IAAA,EAAA,OAAA,gBAAA,KAAA,IACItoE,EAAAA,EAAAA,MAAAA,KAAS17H,YACJ8kM,WAAa,GAClBxjM,EAAKyjM,kBAAAA,EAHT,EAqB4B,OAZ5B,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKh+L,GACD,GAAIzF,KAAKyjM,iBACLzjM,KAAKwjM,WAAW1gM,QAAQ,OAD5B,CAMA,IAFA9C,KAAKyjM,kBAAAA,EAALzjM,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,KACWyF,GACJzF,KAAKwjM,WAAWxoM,OAAS,GAAG,CAE/B,IAAM0oM,EAAY1jM,KAAKwjM,WAAWzvL,MAClCqmH,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,KAAWspE,GAEf1jM,KAAKyjM,kBAAAA,OAAmB,EAtB1B,CAAuB,KA0Cb7gE,UAAO,SAAiC5oI,GAAK,OAAO2pM,GAA6B3pM,GAAK0oM,KACtGA,GAAgBhiE,WAAQ,GAA0B,CAAErB,MAAOqjE,GAAiBptL,QAASotL,GAAgB9/D,YADrG8/D,IAEMiB,GAA+B,GAA6B,IAAlE,KASMhB,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAOF,SAAA,EAAYiB,EAAkBC,GAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,KAAAA,MAK1BtqE,SAAAA,GAEI,IAAMuqE,EAAoBF,EACrBv/L,KAAKi+L,GAAUuB,IACftjM,UAAU,CACX2H,KAIAkU,SAAAA,GAAAA,OAAOm9G,EAASrxH,KAAKkU,IACrBjd,MAIAA,SAAAA,GAAAA,OAASo6H,EAASp6H,MAAMA,IACxBoI,SAAU,WAAA,OAGJgyH,EAAShyH,cAEnBgyH,EAASxxH,IAAI+7L,MAAAA,OAAAA,EAhCnBnB,CAAgB,IAoCd//D,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAK2oM,IAAS,GAAgB,IAAkB,GAAgB,MACzHA,GAAQjiE,WAAQ,GAA0B,CAAErB,MAAOsjE,GAASrtL,QAASqtL,GAAQ//D,YAD7E+/D,IAqCA,KA0BMG,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GACF,SAAA,IAAA,OAAA,gBAAA,KAAA,GAAA,EAAA,KAAA,KACU,IAAA,OAAA,EAFRA,CAAoB,KAKdlgE,UAAO,SAA6B5oI,GAAK,OAAO,IAAKA,GAAK8oM,KACtEA,GAAYpiE,WAAQ,GAA0B,CAAErB,MAAOyjE,GAAaxtL,QAASwtL,GAAYlgE,YADzFkgE,IAAAA,KAYMD,GAAAA,WAKF,SAAA,EAAYkB,EAAgBC,GAAAA,gBAAAA,KAAAA,GACxBhkM,KAAK+jM,eAAiBA,EACtB/jM,KAAKgkM,gBAAkBA,EACvBhkM,KAAKikM,QAAU,GACfjkM,KAAKkkM,mBAaT,OAPA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,WAOA,IAAA,EAEUC,EAAiBnkM,KAAKokM,qBAC5BpkM,EAAAA,KAAKqkM,aAAY3jM,KAAjBV,MAAAA,EAAAA,oBAAyBmkM,MAM7B,CAAA,IAAA,oBAAA,MAAA,WAGI,OADiBnkM,KAAKgkM,iBAAmB,IACzBjvL,KAIfooG,SAAAA,GAAAA,OAA+BA,EAAOmnF,OAASnnF,EAAOmnF,OAAOv7L,KAAKo0G,GAAUA,OAAAA,CAAAA,IAAAA,cAAAA,IAAAA,WAtB7E,OAAQn9G,KAAK+jM,gBAAkB/jM,KAAK+jM,eAAeE,SAAYjkM,KAAKikM,YAMxE,EAtBEpB,IAyCQjgE,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAK6oM,IAAe,GAAgBA,GAAe,IAAK,GAAgBhD,GAAc,KAC3JgD,GAAcniE,WAAQ,GAA0B,CAAErB,MAAOwjE,GAAevtL,QAASutL,GAAcjgE,YAD/FigE,IAAAA,KA4CMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAAAA,OAAAA,EAAAA,CAAwC,IAEdhgE,UAAO,SAAiD5oI,GAAK,OAAOuqM,GAA6CvqM,GAAK4oM,KACtJA,GAAgCliE,WAAQ,GAA0B,CAAErB,MAAOujE,GAAiCttL,QAASstL,GAAgChgE,YADrJggE,IAEM2B,GAA+C,GAA6B,IAAlF,KAIMxB,GAAAA,WASF,SAAA,EAAYyB,EAAeC,EAAUC,EAAgBC,EAAgBC,EAAcC,GAAAA,gBAAAA,KAAAA,GAC/E7kM,KAAKwkM,cAAgBA,EACrBxkM,KAAKykM,SAAWA,EAChBzkM,KAAK0kM,eAAiBA,EACtB1kM,KAAK2kM,eAAiBA,EACtB3kM,KAAK4kM,aAAeA,EACpB5kM,KAAK6kM,uBAAyBA,EAmHpBvH,OA5Gd,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASwH,GAAAA,IAAAA,EAAAA,KAECphM,EAAS1D,KAAK6kM,uBAAuBtB,OAAM,WAAA,OAG3CvjM,EAAK+kM,iBAAiBD,MAgB5B,OAfAphM,EAAOnD,UAAU,CACbpB,MAIAA,SAAAA,GAAAA,OAASa,EAAK6kM,uBAAuBrC,OAAM,WAIvC,IACIxiM,EAAKwkM,cAAcz8C,YAAY5oJ,GAEnC,MAAO25I,WAGRp1I,EAAOW,KAAKi+L,GAAUtiM,KAAK6kM,2BAOtC,CAAA,IAAA,mBAAA,MAAA,SAAiBC,GAAAA,IAAAA,EAAAA,KACb,OAAIr+L,MAAMqQ,QAAQguL,GACiB,IAA3BA,EAAgB9pM,OACT6yL,GAAG7tL,KAAK4kM,aAAa5H,YACzBC,GAAS6H,EAAgB/vL,KAIhCq7C,SAAAA,GAAAA,OAAUpwD,EAAKglM,eAAe50I,OAGvBpwD,KAAKglM,eAAeF,KAQnC,CAAA,IAAA,iBAAA,MAAA,SAAe10I,GAAAA,IAAAA,EAAAA,KAEL60I,EAAYjlM,KAAK4kM,aAAa5H,WAGpC,OA9MP55L,SAJK8hM,EAIL9hM,GAAAA,OAAU,WAAA,IAAA,IAAA,EAAA,UAAA,OAIPhD,EAJO,IAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAIPA,EAJO,GAAA,UAAA,GAAA,OAMyBgD,EAAMiwB,QAANjwB,WAAAA,EACjBhD,EADiBgD,OAAAA,CACX,WAAA,OAIJ8hM,EAAQ9hM,GAAR8hM,WAAAA,EAAAA,gBAmMcA,CAAAA,GAAAA,OAAAA,oBADXllM,KAAK2kM,eAAeV,SACTiB,CAEvB,SAKCC,EAAWC,GACJD,IAAcF,GACdjlM,EAAK4kM,aAAa18L,KAAKi9L,GAG3B,IAAME,EAAgBrlM,EAAKslM,sBAAsBF,GAOjD,OANAC,EAAc9kM,WAId6b,SAAAA,GAAAA,OAAOpc,EAAKykM,SAASv8L,KAAKkU,MAC1Bpc,EAAKykM,SAASv8L,KAAK,CAAEkoD,OAAQg1I,EAAYjjM,OAAQ,eAC1CnC,EAAKulM,yBAAyBF,MAnBlBH,CAqBxBD,EAAW70I,GAAW/rD,KAAKi5L,QAOlC,CAAA,IAAA,wBAAA,MAAA,SAAsBltI,GAClB,OAAOpwD,KAAK0kM,eAAergM,KAAK,IAI/B+X,SAAAA,GAAAA,OAAQA,EAAIg0C,SAAWA,GAAyB,eAAfh0C,EAAIja,UAA4Cy7L,GAAK,GAAIN,QAO/F,CAAA,IAAA,2BAAA,MAAA,SAAyB+H,GAAAA,IAAAA,EAAAA,KACrB,OAAOA,EACFhhM,KP7rDN,SAASmhM,EAAWthF,EAASqY,GAChC,OAAIA,EACQn6H,SAAAA,GAAAA,OAAWA,EAAOiC,KAAKmhM,GAAW,SAAC3rM,EAAGc,GAAJ,OAAU,EAAKupH,EAAQrqH,EAAGc,IAAI0J,KAAK0Q,GAAI,SAACjb,EAAG4iI,GAAJ,OAAWH,EAAe1iI,EAAGC,EAAGa,EAAG+hI,YAEhHt6H,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAIslL,GAAmB55E,KAJnD,EOisDE9nG,SAAAA,GACG,OAAQA,EAAIja,QACR,IAAK,aACD,OAAO0rL,GAAG7tL,EAAK4kM,aAAa5H,YAChC,IAAK,UACD,OAAO,GAAW5gL,EAAIjd,OAC1B,QACI,OAAO,QAGdkF,KAAKi5L,UAAAA,EAlIZyF,IAqIangE,UAAO,SAAoC5oI,GAAK,OAAO,IAAKA,GAAK+oM,IAAoB,GAAgB,IAAsB,GAAgB,IAAkB,GAAgB,IAAkC,GAAgB,IAAgB,GAAgB,IAAc,GAAgB,MAChTA,GAAmBriE,WAAQ,GAA0B,CAAErB,MAAO0jE,GAAoBztL,QAASytL,GAAmBngE,YAD9GmgE,IAwDA,KA8BMM,GAKF,SAAA,EAAY/qD,EAAWmtD,GAAAA,gBAAAA,KAAAA,GACnBzlM,KAAKs4I,UAAYA,EACjBt4I,KAAKylM,WAAaA,IAIV/kE,WAAQ,GAA0B,CAAErB,MAAOgkE,GAAiB/tL,QAD5E+tL,GAAgBzgE,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKqpM,IAAiB,GAAgB,IAAc,GAAgBvD,QAA7IuD,IAAAA,KA2BMD,GAAAA,WAKF,SAAA,EAAYsC,EAAOC,GAAAA,gBAAAA,KAAAA,GACf3lM,KAAK0lM,MAAQA,EACb1lM,KAAK2lM,QAAUA,EAmBnB,OAbA,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,WAcQ3lM,KAAK0lM,MAAMD,eAGXzlM,KAAK4lM,sBACLphM,QAAQyG,KAxzDV,8PA0zDOjL,KAAK6lM,wBACVrhM,QAAQyG,KArzDV,2LAqzDew0L,CAAAA,IAAAA,wBAAAA,IAAAA,WApBjB,OAAQz/L,KAAK0lM,MAAMptD,aAAet4I,KAAK2lM,QAAQG,kBAMnD,CAAA,IAAA,yBAAA,IAAA,WACI,OAAO9lM,KAAK0lM,MAAMptD,cAAgBt4I,KAAK2lM,QAAQG,oBAKnD,EA1BE1C,IAsCUxgE,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKopM,IAAiB,GAAgB,IAAkB,GAAgB,MACjJA,GAAgB1iE,WAAQ,GAA0B,CAAErB,MAAO+jE,GAAiB9tL,QAAS8tL,GAAgBxgE,YADrGwgE,IAAAA,KA+BMD,GAAAA,WAOF,SAAA,EAAYyB,EAAcmB,EAAaJ,EAASK,GAAAA,gBAAAA,KAAAA,GAC5ChmM,KAAK4kM,aAAeA,EACpB5kM,KAAK+lM,YAAcA,EACnB/lM,KAAK2lM,QAAUA,EACfK,EAAgBC,gBAqEiDrzE,OA/DrE,aAAA,EAAA,CAAA,CAAA,IAAA,yBAAA,MAAA,WAAA,IAAA,EAAA,KAEUszE,EAAsB,CACxB1R,SAAU,WAAA,OAGJx0L,EAAK4kM,aAAa5H,YACxBmJ,SAICC,SAAAA,GAAAA,OAAapmM,EAAK4kM,aAAa18L,KAAKk+L,IACrCtY,SAIC/4D,SAAAA,GAAAA,OAAY/0H,EAAK+lM,YAAYjY,SAAS/4D,KAE3C,OAAI/0H,KAAK2lM,QAAQG,gBACN9lM,KAAKqmM,kCAAkCH,GAE3CA,IAOX,CAAA,IAAA,oCAAA,MAAA,SAAkCh4K,GAC9B,MAAO,CACHsmK,SAAU,WAAA,OAGJtmK,EAAKsmK,YACX2R,SAIA1gM,SAAAA,GAEI,IAAM6gM,EA7LrBj6L,SAJKk6L,EAILl6L,GACGtG,OAAOygM,OAAOn6L,GAEd,IAAMo6L,EAA2B,mBAANp6L,EAErBq6L,EAAa3gM,OAAOb,UAAU3G,eAcpC,OAbAwH,OAAOs2J,oBAAoBhwJ,GAAGsL,SAAQ,SAI5ByI,IACFsmL,EAAWjoM,KAAK4N,EAAG+T,IAClBqmL,IAAuB,WAATrmL,GAA8B,WAATA,GAA8B,cAATA,IAC7C,OAAZ/T,EAAE+T,IACkB,iBAAZ/T,EAAE+T,IAAyC,mBAAZ/T,EAAE+T,IACxCra,OAAOyhH,SAASn7G,EAAE+T,KACnBmmL,EAAWl6L,EAAE+T,OAGd/T,EA0KyBk6L,CAAW9gM,GAC/B,OAAOyoB,EAAKi4K,SAASG,IAEzBxY,SAIA/4D,SAAAA,GAAAA,OACW7mG,EAAK4/J,SAAS/4D,OAQjC,CAAA,IAAA,8BAAA,MAAA,SAA4B1vF,GAExB,IAAMshK,EAAkB3mM,KAAK4mM,yBAGvBC,EAAeF,EAAgBnS,WAErCmS,EAAgBR,SAASpgM,OAAOkjH,OAAO,GAAI49E,EAAcxhK,EAAQutF,eAAAA,EAhFnEuwE,IAmFkBvgE,UAAO,SAAyC5oI,GAAK,OAAO,IAAKA,GAAKmpM,IAAyB,GAAgB,IAAc,GAAgB,IAAqB,GAAgB,IAAa,GAAgB,MACvOA,GAAwBziE,WAAQ,GAA0B,CAAErB,MAAO8jE,GAAyB7tL,QAAS6tL,GAAwBvgE,YAD7HugE,IAAAA,KAsEMD,GAAAA,WAIF,SAAA,EAAY4D,GAAAA,gBAAAA,KAAAA,GACR9mM,KAAK8mM,yBAA2BA,EAoGH/xE,OA5FjC,aAAA,EAAA,CAAA,CAAA,IAAA,qBAAA,MAAA,SAAmBusE,GAEf,IAAMpzK,EAAOluB,KAAK8mM,yBAAyBF,yBAK3C,SAASpS,EAAS+M,GACd,OAAOvE,GAASuE,EAAiBD,EAAYx5K,MAOjD,SAASi/K,EAAcxF,EAAiBzuI,GAEpC,IAAM0uI,EAAc54C,GAAS24C,EAAiBD,EAAYx5K,KAAMgrC,GAE1Dtc,EAAW8qJ,EAAY9qJ,SAC7B,GAAIA,EAASwwJ,cAAe,CAExB,IAAMp4F,EAASyyF,GAAoBC,EAAa,CAC5CC,gBAAAA,EACAC,YAAAA,IAEJhrJ,EAASwwJ,cAAcp4F,GAG3B,OADA1gF,EAAKi4K,SAAS3E,GACPA,EAaX,SAASyF,EAAqB1F,EAAiB2F,GAK3C,OAAOH,EAAcxF,EADJ2F,EAFH1S,EAAS+M,KAY3B,MAAO,CAIH/M,SAAQ,WAAA,OAGGA,EADiBtmK,EAAKsmK,aAOjC2S,WAAWt0F,SAAAA,GAAAA,OAKAo0F,EAHiB/4K,EAAKsmK,WAnH7C,SAAqB3hF,GACjB,OAICu0F,SAAAA,GACG,GAAI3gM,MAAMqQ,QAAQ+7F,GACd,MAAM,IAAIhtG,MAl8DZ,qCAo8DG,GAAmB,iBAARgtG,EACZ,MAAM,IAAIhtG,MAj8DZ,yCAo8DF,IAAMugM,EAAWrgM,OAAOkjH,OAAO,GAAI,GACnC,IAAK,IAAM/sH,KAAO22G,EAGduzF,EAASlqM,GAAO,EAA2BA,GAE/C,OAAO,GAnBf,CAqHkD22G,KAOtC,SAxBG,SAwBMA,GAEL,IAAM0uF,EAAkBrzK,EAAKsmK,WAC7B,MA7BoB,mBA6BG3hF,EACjBo0F,EAAqB1F,EAAiB1uF,GACtCk0F,EAAcxF,EAAiB1uF,IAMzCi7E,SAAS/4D,SAAAA,GAAAA,OACE7mG,EAAK4/J,SAAS/4D,SAAAA,EAzG/BmuE,IA8GctgE,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAKkpM,IAAqB,GAAgB,MAC3HA,GAAoBxiE,WAAQ,GAA0B,CAAErB,MAAO6jE,GAAqB5tL,QAAS4tL,GAAoBtgE,YADjHsgE,IAAAA,GAAAA,WAAAA,IAwBMmE,EAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GA+CShjE,OA/CTgjE,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,wBAAAA,MAAAA,SAK2BznM,GACzB,OAtpEHA,SAAAA,GAAAA,MAAAA,GAAAA,OAAYA,EAAZA,4EAspEU6/L,CAA4C7/L,KAMvD,CAAA,IAAA,wBAAA,MAAA,SAA6BA,GACzB,IAAKA,EACD,MAAM,IAAIiG,MA1pEZ,0CA4pEF,IAAK7F,KAAKsnM,eAAep8L,KAAKtL,GAC1B,MAAM,IAAIiG,MAAM7F,KAAKunM,sBAAsB3nM,MAQnD,CAAA,IAAA,yBAAA,MAAA,SAA8BizH,EAAO20E,GAEjC,IAhqEH3lL,EAAS4lL,EAASC,EAkqETC,EAFO3nM,KAAK4nM,kBAAkB/0E,GAEgC,KAE9Du0E,EAAgBI,EAAaG,GACnC,GAAIP,GAAiBA,IAAkBv0E,EACnC,MAAM,IAAIhtH,OAtqEjBgc,EAsqEqE8lL,EAtqE5DF,EAsqEuE50E,EAAMjzH,KAtqEpE8nM,EAsqE0EN,EAAcxnM,KA5qE3E,eAAA,OAMciiB,EANd,WAAA,OAM+B4lL,EAN/B,uBAAA,OAM4DC,KAwqExF,OAAOC,IAMX,CAAA,IAAA,oBAAA,MAAA,SAAyB90E,GAErB,IAAMwR,EAAOy8D,GAAiBjuE,GAC9B,IAAKwR,EACD,MAAM,IAAIx+H,MA9qEZ,oDAgrEF,OAAOw+H,MAAAA,EA/CTgjE,GA+CShjE,OAGfgjE,EAAgBC,eAAiB,IAAIrxL,OAAO,mBAA5CoxL,EA1EAnE,GA0EAmE,KAcMpE,GAAAA,WAUF,SAAA,EAAYze,EAAWmhB,EAASkC,EAAgBpD,EAAUC,EAAgBoD,EAAsBC,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAC5F/nM,KAAKwkL,UAAYA,EACjBxkL,KAAK2lM,QAAUA,EACf3lM,KAAK6nM,eAAiBA,EACtB7nM,KAAKykM,SAAWA,EAChBzkM,KAAK0kM,eAAiBA,EACtB1kM,KAAK8nM,qBAAuBA,EAC5B9nM,KAAK+nM,cAAgBA,EACrB/nM,KAAKgoM,YAAAA,EACLhoM,KAAKioM,QAAU,GACfjoM,KAAKkoM,cAAgB,GACrBloM,KAAKmoM,YAAc,GACnBnoM,KAAKooM,0BAA4BxX,IAAQ,WAKrC,IAAMyX,EAAeroM,EA2BrB,OAzBgBA,EAAK6nM,eACf7nM,EAAK6nM,eAAeO,4BACpB,CAKE,eALF,SAKiBlsM,GAEX,IAAM4rB,EAAOugL,EAAaC,WAAWpsM,GACrC,OAAO4rB,EAAOk5K,GAAWl5K,EAAKtmB,MAAM,KAAM6mM,EAAa1C,SAAW,cAStE4C,mBAAmBC,SAAAA,GAAAA,OAGRziM,OAAOkjH,OAAO,GADSo/E,EAAa1C,QAAQ1F,gBACFuI,GAAgB,SA4DrF,OAnDA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAmDIC,GACAxF,EAAayF,oBAAoBD,GADjCA,IAEQE,EAAc3oM,KAAK4oM,eAAeH,GAApC,UACN,IAAKE,EAAU3tM,OACX,MAAO,GAEX,IA36CiB6tM,EAEfC,EAEAC,EAi6CFN,EAMMO,EAviDd,SAAoBP,GAEhB,IAAMQ,EAILC,SAAAA,GAEG,IAAM7kE,EAAOokE,EAAar3K,MAI1BhnB,SAAAA,GAAAA,OAAKA,IAAM8+L,KACX,IAAK7kE,EACD,MAAM,IAAIx+H,MAAJ,0BAAA,OAAoCqjM,EAApC,yDAEV,OAA6C7kE,EAAK07D,IAAiB,MAEvE,OAAO0I,EAAavkM,QAAO,SAK1BR,EAAQwlM,GAAAA,IAAAA,EACyCA,EAAWnJ,IAAjDngM,EADHspM,EACC,KAAQtnK,EADTsnK,EACO,SAEZ,OADAxlM,EAAO,IAA8Bk+B,GAAY,IAAI7sB,IAAIk0L,GAClDvlM,IACP,IA3BR,CAuiDsCilM,GAExBQ,GA76CWN,EA66CoBG,EA36CnCF,EAAS,GAETC,EAAU,GA8BhBhjM,OAAOP,KAAKqjM,GAAOlxL,SAInB1b,SAAAA,GAAAA,OAhCc,SAARmtM,EAKLxpM,GAAkB,IAAZypM,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACV5iM,MAAMqQ,QAAQuyL,KACfA,EAAY,IAEhBA,EAAU3oM,KAAKd,GACfmpM,EAAQnpM,IAAAA,EACRipM,EAAMjpM,GAAM+X,SAIXwjJ,SAAAA,GACG,GAAIkuC,EAAUznM,QAAQu5J,IAAQ,EAC1B,MAAM,IAAIt1J,MAAJ,wBAAA,OAAkCs1J,EAAlC,sBAAA,OAA0Dv7J,EAA1D,OAAA,OAAoEypM,EAAU3jM,KAAK,UAEzFqjM,EAAQ5tC,IAGZiuC,EAAMjuC,EAAKkuC,EAAU/rM,MAAM,OAE3BwrM,EAAOlnM,QAAQhC,GAAQ,GACvBkpM,EAAOpoM,KAAKd,GAOfwpM,CAAMntM,MACJ6sM,EAAOlxJ,WAw4CJqpJ,EA99Cd,SAA4Bj7L,GAAc,IAATsjM,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAEhCF,EAAQ,SAARA,EAKLr/E,EAAOw/E,GACJ,IAAK,IAAMrtM,KAAO6tH,EACd,GAAIA,EAAMxrH,eAAerC,IAAQ6tH,EAAM7tH,GAAK0F,QAAQ2nM,IAAc,EAAG,CAEjE,IAAMhgM,EAAS6/L,EAAMr/E,EAAO7tH,GAC5B,OAAkB,OAAXqN,EAAW,GAAA,OAAUA,EAAV,KAAA,OAAoBrN,GAAQA,EAGtD,OAAO,MAEX,IAAK,IAAMA,KAAO8J,EACd,GAAIA,EAAIzH,eAAerC,GAAM,CAEzB,IAAMqN,EAAS6/L,EAAMpjM,EAAK9J,GAC1BotM,EAAOptM,GAAOqN,EAAAA,GAAAA,OAAYA,EAAZA,KAAAA,OAAsBrN,GAAQA,EAGpD,OAAOotM,EAxBX,CA89CyCN,GAE3BQ,EAAwBb,EAngDpBzkM,QAAO,SAKpBR,EAAQwlM,GALY,OAQjBxlM,EADgCwlM,EAAWnJ,IACP,MAAKmJ,EAClCxlM,IACP,IA2/CM+lM,EAAqB,GAd3BhB,EAAAA,2BAemBU,GAfnBV,IAeA,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAiC,CAAA,IAAtB7oM,EAAsB,EAAA,MAEvBspM,EAAaM,EAAU5pM,GAEvBkoB,EAAOm5K,EAAMrhM,GAEbykI,EAA0B6kE,EAAWnJ,IAC3C//L,KAAK0pM,qBAAqBrlE,EAAMv8G,GAEhC,IAAM6hL,EAAW,CACb/pM,KAAAA,EACAkoB,KAAAA,EACA25K,eAAAA,EACA1sE,QAASsP,EAAKtP,QACdv+E,SAAUx2C,KAAKwkL,UAAU3hK,IAAIqmL,GAC7Bt2E,SAAUqwE,EAAa2G,cAAcvlE,EAAKzR,WAKzC5yH,KAAK6pM,8BAA8BjqM,EAAMkoB,IAC1C2hL,EAAmB/oM,KAAKipM,GAE5B3pM,KAAK8pM,OAAOppM,KAAKipM,IAtCrBlB,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,IAwCA,OAAOgB,IAOX,CAAA,IAAA,uBAAA,MAAA,SAAqBhB,GAEjB,IAEMsB,EAAe/pM,KAAK+H,IAFV0gM,GAAgB,IAUhC,MAAO,CAAE71E,SANQm3E,EAAa7lM,QAAO,SAKpCR,EAAQ49L,GAL4B,OAKZ14C,GAASllJ,EAAQ49L,EAAYx5K,KAAMw5K,EAAY1uE,YAAY,IACjEk3E,OAAQC,KAM/B,CAAA,IAAA,wBAAA,MAAA,WAAA,IAAA,EAAA,KACQ/pM,KAAKgoM,aAEThoM,KAAKykM,SACApgM,KAAK,IAIT+X,SAAAA,GAAAA,MAAuB,eAAfA,EAAIja,UAA4Cm6H,GAAS,SAAA,GAAA,IAI/DlsE,EAJ+D,EAI/DA,OAJ+D,OAIlDpwD,EAAKgqM,cAAchqM,EAAKykM,SAAU,GAA6BpgM,KAAK0Q,GAAI,WAAA,MAGlF,CAAqBq7C,OAAAA,EAAQjuD,OAAQ,iBNh7E5C,WAAuC,IAAf+7L,EAAe,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAC1C,OAAQ97L,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAIylL,GAAuBC,KADvD,CMg7EgG,CAAqB9tI,OAAAA,EAAQjuD,OAAQ,aAAgCg8L,IAIpKh/L,SAAAA,GAAAA,OAAS0uL,GAAG,CAAqBz9H,OAAAA,EAAQjuD,OAAQ,UAAyBhD,MAAAA,YACrEoB,WAIL6b,SAAAA,GAAAA,OAAOpc,EAAK0kM,eAAex8L,KAAKkU,MAChCpc,KAAKgoM,YAAAA,KAQT,CAAA,IAAA,gBAAA,MAAA,SAAciC,EAAU75I,GAEpB,IAFoBA,EAEd/qB,EAAU,GAFI+qB,EAAAA,2BAGGpwD,KAAK8pM,QAHR15I,IAGpB,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAoC,CAAA,IAAzBupG,EAAyB,EAAA,MAE1BxuJ,EAA0Bs1L,GAA0BrwI,GAEpD85I,EAAcvwC,EAAS5kC,QAAQ5pH,GACrC,GAAI++L,EAAJ,CAAA,IAAA,EAAA,EAAA,2BAC6BA,GAD7B,IACI,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAsC,CAAA,IAA3BC,EAA2B,EAAA,MAE5BC,EAAepqM,KAAK8nM,qBAAqBuC,mBAAmB1wC,GAClE,IAEI,IAAIj2J,EAASi2J,EAASnjH,SAAS2zJ,EAAW/lM,IAAIgmM,EAAch6I,GACxD1sD,aAAkB6L,UAClB7L,EAAS,EAAKA,IAEdA,aAAkB,EACdymM,EAAWz0L,QAAQ40L,oBAEnB5mM,EAASA,EAAOW,KAAKk6L,GAAU0L,EAAS5lM,KAAKq9L,GAAmB,OAIpEh+L,EAASmqL,GAAG,IAAIxpL,KAAKi5L,MAEzBj4J,EAAQ3kC,KAAKgD,GAEjB,MAAOD,GACH4hC,EAAQ3kC,KAAK,GAAW+C,MAtBpC,MAAA,GAAA,EAAA,EAAA,GAAA,QAAA,EAAA,OARgB2sD,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,IAsCpB,OAHK/qB,EAAQrqC,QACTqqC,EAAQ3kC,KAAKmtL,GAAG,KAEboP,GAAS53J,KAOpB,CAAA,IAAA,iBAAA,MAAA,SAAeojK,GAEX,IAFWA,EAELE,EAAY,GAEZ4B,EAAYvqM,KAAKwnM,aAJZiB,EAAAA,2BAKcA,GALdA,IAKX,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAuC,CAAA,IAA5BS,EAA4B,EAAA,MAE7BvB,EAAYN,GAAgBmD,uBAAuBtB,EAAYqB,IAE7CA,EAAU5C,KAE9BgB,EAAUjoM,KAAKwoM,GACfqB,EAAU5C,GAAauB,IAZpBT,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,IAeX,MAAO,CAAEE,UAAAA,KAQb,CAAA,IAAA,uBAAA,MAAA,SAAqBtkE,EAAMv8G,GACvB9nB,KAAKsoM,WAA8BjkE,EAAU,MAAKv8G,EAIlDu8G,EAAKv8G,KAAOA,IAWhB,CAAA,IAAA,gCAAA,MAAA,SAA8BloB,EAAMkoB,GAEhC,IAAM2iL,OAAAA,IAAoCzN,GAASh9L,KAAK+nM,cAAejgL,GACvE,OAAO9nB,KAAKwnM,aAAa5nM,IAAS6qM,IAAAA,CAAAA,IAAAA,SAAAA,IAAAA,WA3OlC,OAAOzqM,KAAK6nM,eAAiB7nM,KAAK6nM,eAAeiC,OAAS9pM,KAAKioM,UAKnE,CAAA,IAAA,eAAA,IAAA,WACI,OAAOjoM,KAAK6nM,eAAiB7nM,KAAK6nM,eAAeL,aAAexnM,KAAKkoM,gBAMzE,CAAA,IAAA,aAAA,IAAA,WACI,OAAOloM,KAAK6nM,eAAiB7nM,KAAK6nM,eAAeS,WAAatoM,KAAKmoM,eAOvE,CAAA,CAAA,IAAA,gBAAA,MAAA,SAAqBv1E,GAEjB,IAz1CU5sH,EAs2CV,OAZIS,MAAMqQ,QAAQ87G,GACNA,EAASt1H,QA11CF,iBADT0I,EA61CQ4sH,IA51CqB,OAAR5sH,GAAgC,mBAARA,EA61C3CD,OAAOkjH,OAAO,GAAI2J,QAAAA,IAErBA,EACG,GAGAA,IAShB,CAAA,IAAA,sBAAA,MAAA,SAA2B61E,GACvBA,EAAa9wL,QAAQ0vL,GAAgBO,uBAOzC,EA/GE3E,IA2SOrgE,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAKipM,IAAc,GAAgB,IAAkB,GAAgB,IAAa,GAAgBA,GAAc,IAAK,GAAgB,IAAkB,GAAgB,IAAkC,GAAgB,IAAsB,GAAgB7R,GAAqB,KACvV6R,GAAaviE,WAAQ,GAA0B,CAAErB,MAAO4jE,GAAc3tL,QAAS2tL,GAAargE,YAD5FqgE,IAAAA,KAwFMD,GAAAA,WAMF,SAAA,EAAY0H,EAAyBC,EAAqBC,GAAAA,gBAAAA,KAAAA,GACtD5qM,KAAK0qM,wBAA0BA,EAC/B1qM,KAAK2qM,oBAAsBA,EAC3B3qM,KAAK4qM,aAAeA,EAgF+BtJ,OAxEvD,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,SAAclxI,EAAQ/qB,GAAAA,IAAAA,EAAAA,KAClBrlC,KAAK0qM,wBACA9D,yBACA9Y,SAAS19H,GACT/rD,KAAK,IAAO,WAAA,QAGTghC,KAAWu5J,IAAI,WAAA,OAGjB5+L,EAAK6qM,WAAW,EAA6Bf,WAAWxtE,GAAS,WAAA,OAGjEt8H,EAAK4qM,aAAaE,oBAAoB,IAI5CC,SAAAA,GAAAA,QAAqBA,MAChBxqM,WAAU,WAAA,OAGTP,EAAKgrM,gBAAgB,EAA6BlB,aAO5D,CAAA,IAAA,aAAA,MAAA,SAAWC,GAAAA,IAAAA,EAAAA,EAAAA,2BACmBA,GADnBA,IACP,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAwC,CAAA,IAA7BzI,EAA6B,EAAA,MAE9B9qJ,EAAW8qJ,EAAY9qJ,SAC7B,GAAIA,EAASwwJ,cAAe,CAExB,IAMMiE,EAAkB5J,GAAoBC,EAAa,CACrDC,gBAPoB,GAQpBC,YANgBxhM,KAAK0qM,wBACpB9D,yBACApS,aAMLh+I,EAASwwJ,cAAciE,GAEvBz0J,EAAS00J,YACT10J,EAAS00J,WAAWlrM,KAAKmrM,gBAAgB7J,IAE7CA,EAAYG,eAAAA,GArBTsI,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,OA6BX,CAAA,IAAA,kBAAA,MAAA,SAAgBA,GAAAA,IAAAA,EAAAA,EAAAA,2BACcA,GADdA,IACZ,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAwC,CAAA,IAA7BzI,EAA6B,EAAA,MAE9B9qJ,EAAW8qJ,EAAY9qJ,SACzBA,EAAS40J,oBACT50J,EAAS40J,mBAAmBprM,KAAKmrM,gBAAgB7J,KAL7CyI,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,OAchB,CAAA,IAAA,kBAAA,MAAA,SAAgBzI,GACZ,OAAOthM,KAAK2qM,oBAAoBN,mBAAmB/I,OAAAA,EAzFrD0B,IA4FgBpgE,UAAO,SAAuC5oI,GAAK,OAAO,IAAKA,GAAKgpM,IAAuB,GAAgB,IAA0B,GAAgB,IAAsB,GAAgB,MACjNA,GAAsBtiE,WAAQ,GAA0B,CAAErB,MAAO2jE,GAAuB1tL,QAAS0tL,GAAsBpgE,YADvHogE,IAoCMqI,GAKD1gM,SAAAA,GAAAA,OACWA,GAAU,EAAuD,4BAAM,IA2CvF,SAAS2gM,GAAe5sK,EAAW6sK,EAAYC,GAE3C,IAAM5+I,EAAiB4+I,GAAoBA,EAAiB5+I,eAiBtD6+I,EAAa7a,IAfD,WAIYxwL,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAE1B,IAAMwyB,EAAc24K,EAAW/sM,MAAMouD,EAAgBxsD,GACrD,OAAIwyB,aAAuB3tB,SAEC2rL,GAAQpyL,MAAM,KAAM,CAACo0B,IAG1CA,KAIX7sB,OAAOQ,eAAeklM,EAAYF,GAElC,IAAMG,EA2CV,SAA+BH,EAAYC,GAEvC,IA/pE4B7gM,EA+pEtB+gM,IA/pEsB/gM,EA+pEoB4gM,GA9pEpChtM,eAxfU,uBAogBlBwH,OAAO+uG,eAAenqG,EApgBJ,qBAogB+B,CAAElF,MAV3B,CACpBm7L,iBAAkB,KAClB2K,WAAY,KACZ3+I,eAAgB,KAChB++I,aAAc,KACdpD,mBAAoB,WAAA,MAGd,OAIPxH,GAAoBp2L,IAipE3B+gM,EAAiBH,WAAaA,EAE9B,IAAIK,EAA6B,WAAA,MAG3B,IACFJ,IACAE,EAAiB9+I,eAAiB4+I,EAAiB5+I,eACnD8+I,EAAiBC,aAAeH,EAAiBG,aACjDC,EACIJ,EAAiBjD,oBAAsBqD,GAG/C,IAAMC,EAAwB9lM,OAAOkjH,OAAO,GAAIyiF,GAKhD,OAJAA,EAAiBnD,mBAAqB,WAAA,OAuC1C,SAAiCmD,EAAkBI,GAC/C,OAAO/lM,OAAOkjH,OAAO,GAAKoiF,GAAuCK,EAAiB9+I,iBAAmB,GAAMy+I,GAAuCK,EAAiBH,aAAe,GAAMG,EAAiBnD,sBAAwB,GAAKuD,GAD1O,CApCkCD,EAAuBD,MAC9CF,EArBX,CA3CmDH,EAAYC,GAmC3D,OADAE,EAAiB9K,iBA5BhB/3L,SAAAA,GAAAA,IAAAA,EAkEL,SAAgCA,EAAS6iM,GAA8B,IAAZhtK,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAE7DqtK,EAAuBL,EAAiBnD,qBAExCtI,EAAkBp3L,EAAQ0/L,mBAAmBwD,GAanD,MAAO,CACH9L,gBAAAA,EACA+L,0BAiBR,WAA8Dp/I,IAAjCluB,EAAiCkuB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAArB,GAAIqzI,EAAiBrzI,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAAAA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAEpDq/I,EAAmB,GAczB,OAXIr/I,IADiD,IAArBluB,EAAU1jC,QAAgBilM,EAAgBC,uBAIrDY,GAAiBl0I,IAE9Bq/I,EAAiBvrM,KAAKksD,GAG1BluB,GACAutK,EAAiBvrM,KAAjBurM,MAAAA,EAAAA,oBAAyBvtK,IAEtButK,EAhBX,CA9BiDvtK,EAAWuhK,EAAiByL,EAAiB9+I,gBAEvC73C,KAInD+pB,SAAAA,GAAAA,OAEoBotK,GAAuBptK,EAAvBotK,CACDrjM,OAfvB,CAjEsFA,EAAS6iM,EAAkBhtK,GAAjGstK,EADXnjM,EACS,0BAA6Bo3L,EADtCp3L,EACoC,gBACjC,OAAO,SAIiBsjM,GAGpB,IAAM9mK,EAAU2mK,EAA0Bj3L,KAI1Cq3L,SAAAA,GAAAA,OAASA,EAAMD,MAIf,IACI,OAAOV,EAAAA,WAAAA,EAAAA,oBAAcpmK,IAEzB,MAAOpmC,GACH,GAAIA,aAAc0qH,WAAas2E,EAAgBE,eAC3C,OAEJ,MAAMlhM,KAKXwsM,EAiGX,SAASS,GAAuBptK,GAE5B,IAAM66H,EAAWonC,GAAoBjiK,IAAagiK,GAAiBhiK,GACnE,OAAQ66H,GAAYA,EAASinC,kBAAqB,WAAA,OAG5C9hK,GAH4C,IAwLhDutK,GA9KAC,GA0ZAC,GA9DAC,GAlDAC,GApTgD,KAUhDH,GAAAA,WASF,SAAA,EAAY1H,EAAckC,EAA0BnB,EAAS+G,EAA4BC,EAAeC,GAAAA,gBAAAA,KAAAA,GACpG5sM,KAAK4kM,aAAeA,EACpB5kM,KAAK8mM,yBAA2BA,EAChC9mM,KAAK2lM,QAAUA,EACf3lM,KAAK0sM,2BAA6BA,EAClC1sM,KAAK2sM,cAAgBA,EACrB3sM,KAAK6sM,gBAAgBD,GAmGME,OA5F/B,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASj5K,GACL,OAAO7zB,KAAK8mM,yBAAyBF,yBAAyB9Y,SAASj6J,KAM3E,CAAA,IAAA,SAAA,MAAA,SAAOiL,GAAAA,IAAAA,EAAAA,KAEGiuK,EAAa/sM,KAAKgtM,wBAAwBluK,GAChD,OAAO9+B,KAAK4kM,aAAavgM,KAAK0Q,EAAIg4L,GAAa5O,IAI9Cr4L,SAAAA,GAAAA,IAEWq6L,EAAmBngM,EAAK2lM,QAAQ1F,gBAAlC,eACN,OAAIn6L,aAAe6jH,WAAaw2E,EACrBtS,QAAAA,GAGJ,GAAW/nL,MACjBm5L,KAAwBqD,GAAUtiM,KAAK0sM,+BAMhD,CAAA,IAAA,aAAA,MAAA,SAAW5tK,GACP,OAAO9+B,KAAKitM,OAAOnuK,GAAUz6B,KAAKu5L,GAAK,MAM3C,CAAA,IAAA,iBAAA,MAAA,SAAe9+J,GAGX,OADmB9+B,KAAKgtM,wBAAwBluK,EAA7B9+B,CACDA,KAAK4kM,aAAa5H,cAOxC,CAAA,IAAA,YAAA,MAAA,SAAU54L,GACN,OAAOpE,KAAK4kM,aAAavgM,KAAKi+L,GAAUtiM,KAAK0sM,6BAA6BnsM,UAAU6D,KAMxF,CAAA,IAAA,WAAA,MAAA,WACI,OAAOpE,KAAK8mM,yBAAyBF,yBAAyBpS,aAQlE,CAAA,IAAA,QAAA,MAAA,SAAM3hE,GACF,OAAO7yH,KAAK8mM,yBAAyBF,yBAAyBT,SAAStzE,KAO3E,CAAA,IAAA,0BAAA,MAAA,SAAwB/zF,GAKpB,OAHuBotK,GAAuBptK,EAAvBotK,CAEAlsM,KAAK2sM,cAAcvE,+BAQ9C,CAAA,IAAA,kBAAA,MAAA,SAAgBwE,GAEZ,IAAMnnM,EAAQzF,KAAK4kM,aAAan/L,MAGhC,IADsBA,GAAuC,IAA9BM,OAAOP,KAAKC,GAAOzK,OAChC,CAEd,IAEM8xM,EAFuB/mM,OAAOP,KAAKxF,KAAK2lM,QAAQ3F,eAAehlM,OAAS,EAGxE+K,OAAOkjH,OAAO,GAAIjpH,KAAK2lM,QAAQ3F,cAAe4M,GAAqBA,EACzE5sM,KAAK4kM,aAAa18L,KAAK4kM,QAAAA,EAlH7BR,IAsHA1pE,UAAO,SAAuB5oI,GAAK,OAAO,IAAKA,GAAKsyM,IAAO,GAAgB,IAAc,GAAgB,IAA0B,GAAgB,IAAa,GAAgB,IAAgC,GAAgB,IAAe,GAAgBlb,GAAqB,KAC1Rkb,GAAM5rE,WAAQ,GAA0B,CAAErB,MAAOitE,GAAOh3L,QAASg3L,GAAM1pE,YADvE0pE,IAAAA,KAwDMD,GAKF,SAAA,EAAYx8E,EAAO5mH,GAAAA,gBAAAA,KAAAA,GACfojM,EAAcx8E,MAAQA,EACtBw8E,EAAcpjM,OAASA,IAIjBy3H,WAAQ,GAA0B,CAAErB,MAAOgtE,GAAe/2L,QADxE+2L,GAAczpE,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAKqyM,IAAe,GAAgB,IAAQ,GAAgB,QAEjIA,GAAcx8E,MAAQ,KACtBw8E,GAAcpjM,OAAS,KAHvBojM,IA0BMa,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAMS,OANTA,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,OAAAA,IAAAA,WAME,MAAO,aAAA,EANTA,GAYAC,GAAAA,WAIF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRptM,KAAKotM,YAAcA,EAOZ,OAFX,aAAA,EAAA,KAAA,CAAA,CAAA,IAAA,OAAA,IAAA,WAEI,MAAO,qBAAA,EAZTD,GA6BAE,GAAwB,IAAI,GAAc,GAAhD,KA+CMZ,GASF,SAAA,EAAYn3L,EAASo1L,EAAyB4C,EAAQC,GAAsBC,IAAb1D,EAAa0D,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAAIA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAAAA,gBAAAA,KAAAA,GA3ChF,WACI,IAII,IAAM95B,EAAK,OAA8BA,GAInC+5B,IAFuB/5B,EAAGg6B,OAAWh6B,EAAGi6B,aAEMr1D,KACpD+0D,GAAsBnlM,KAAKulM,GAE/B,MAAO30D,GACHu0D,GAAsBnlM,MAAAA,GAZ1B,QAeImlM,GAAsB9lM,YAhB9B,GAgDQ,IAAM89B,EAAU/vB,EAAQs4L,qBAAqB9D,GAC7CY,EAAwBmD,4BAA4BxoK,GAEpD/vB,EAAQw4L,wBAERN,EAAsBO,cAAc,IAAIb,GAAa7nK,KAG9Cm9F,UAAO,GAAwB,CAAEr3H,KAAMshM,KACtDA,GAAe9rE,UAAO,GAAwB,CAAErrH,QAAS,SAAgCtb,GAAK,OAAO,IAAKA,GAAKyyM,IAAgB,GAAgB,IAAe,GAAgB,IAA0B,GAAgB,IAAQ,GAAgB,IAAgB,GAAgB9M,GAAkB,GAAI,GAAgB,QADtT8M,IAAAA,KA4BMD,GAAAA,WAQF,SAAA,EAAYc,EAAQ5C,EAAyBp1L,GAAsBk4L,IAAb1D,EAAa0D,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAAIA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAAAA,gBAAAA,KAAAA,GAI/D,IAAMQ,EAAkBxB,EAAkByB,cAAcnE,GAGlDzkK,EAAU/vB,EAAQs4L,qBAAqBI,GACzC3oK,EAAQykK,OAAO9uM,SACf0vM,EAAwBmD,4BAA4BxoK,GAEpDmoK,EAAsBO,cAAc,IAAIZ,GAAY9nK,EAAQutF,UAAWvtF,IAcjC,OAN9C,aAAA,EAAA,KAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,WAA8B,IAATykK,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAC1B,OAAOA,EAAO5lM,QAAO,SAKpB25L,EAAOh7E,GALa,OAKFg7E,EAAMrhM,OAAOqmH,KAAU,QAAA,EAjC5C2pF,IAoCYhqE,UAAO,GAAwB,CAAEr3H,KAAMqhM,KACzDA,GAAkB7rE,UAAO,GAAwB,CAAErrH,QAAS,SAAmCtb,GAAK,OAAO,IAAKA,GAAKwyM,IAAmB,GAAgB,IAAQ,GAAgB,IAA0B,GAAgB,IAAe,GAAgB5M,GAAqB,GAAI,GAAgB,QADlS4M,IAAAA,KA0BMD,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAiIsBx4L,OAjItBw4L,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,UAAAA,MAAAA,WAOoC,IAAvBzC,EAAuB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAd,GAAIp0L,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAClC,MAAO,CACH65I,SAAU,GACVvvB,UAAAA,CACI,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAhBJA,OAAAA,oBAiBO8pE,GAjBP9pE,oBAkBOusE,EAAW2B,mBAAmBpE,EAAQp0L,QASrD,CAAA,IAAA,aAAA,MAAA,WAA2B,IAATo0L,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACvB,MAAO,CACHv6C,SAAU,GACVvvB,UAAAA,CACI,GACA,IAFJA,OAAAA,oBAGO8pE,GAHP9pE,CAII,CACIqD,QAASu8D,GACT/pC,OAAAA,EACAvyB,SAAUwmE,QAW1B,CAAA,IAAA,qBAAA,MAAA,SAA0BA,EAAQp0L,GAC9B,MAAO,CACH,CACI2tH,QAASy8D,GACTx8D,SAAU0tD,IAEd,CACI3tD,QAAS,GACTC,SAAUgV,IAEd,CACIjV,QAASm9D,GACThqC,SAAU9gJ,EAAQ4qL,mBAAqB,IAE3C,CACIj9D,QAASs8D,GACTr8D,SAAUwmE,GAEd,CACIzmE,QAASkpE,EAAW4B,aACpB7qE,SAAU5tH,GAEd,CACI2tH,QAAS,GACT+yB,WAAYm2C,EAAW6B,kBACvB/3C,KAAM,CAACk2C,EAAW4B,eAEtB,CACI9qE,QAASi5C,GACTlmB,WAAYm2C,EAAW8B,4BACvBx4C,OAAAA,EACAQ,KAAM,CAAC,KAEX,CACIhzB,QAAS+tD,GACTh7B,WAAYm2C,EAAW+B,iBAE3B,CACIjrE,QAASiuD,GACTh7B,YAAa,IAEjB,CACIjzB,QAASkuD,GACTj7B,YAAa,OASzB,CAAA,IAAA,oBAAA,MAAA,SAAyB5gJ,GACrB,OAAO3P,OAAOkjH,OAAO,IAAI,GAAcvzG,KAO3C,CAAA,IAAA,8BAAA,MAAA,SAAmCk1L,GAC/B,OAAO,WAAA,OAGDA,EAAa/hE,eAMvB,CAAA,IAAA,kBAAA,MAAA,WACI,OAAOwoD,GAAat9K,UAAAA,EAjItBw4L,IAoIK/pE,UAAO,GAAwB,CAAEr3H,KAAMohM,KAClDA,GAAW5rE,UAAO,GAAwB,CAAErrH,QAAS,SAA4Btb,GAAK,OAAO,IAAKA,GAAKuyM,OACvGA,GAAW4B,aAAe,IAAIprE,GAAe,gBAF7CwpE,IAwBA,SAAS,GAAOx3E,EAASr/G,GACrB,OAAO,SAKN/K,EAAQ/K,GAGL,GADuB+K,EAAOpM,eAAe,aAEzC,MAAM,IAAIsH,MAz8GZ,0DA48GF,IAAMw+H,EAAOq8D,GAAoB/1L,EAAO/D,aACnCH,MAAMqQ,QAAQi+G,KACfA,EAAU,CAACA,IATVn1H,IAAAA,EAAAA,EAAAA,2BAWgBm1H,GAXhBn1H,IAWL,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAA8B,CAAA,IAEpBuL,EAFoB,EAAA,MAENA,KACfk5H,EAAKtP,QAAQ5pH,KACdk5H,EAAKtP,QAAQ5pH,GAAQ,IAEzBk5H,EAAKtP,QAAQ5pH,GAAMzK,KAAK,CACpB0D,GAAIxE,EACJ8V,QAASA,GAAW,GACpBvK,KAAAA,KApBHvL,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,MAiFb,SAAS2uM,GAAM74L,GA6BX,OAIC/K,SAAAA,IA7EL,SAAsCA,GAlU3B0iM,GAAsBlc,eAuUP5wL,WAItBktM,SAAAA,GA59GC7tM,IAAAA,EA69GO6tM,IAE2C9iM,EAAO+1H,YAG9Cl8H,QAAQyG,MAl+GnBrL,EAk+GkF+K,EAAO/K,KAl+GzFA,IAAAA,OAAaA,EAAbA,2FAm9GL,CA8EqC+K,GAE7B,IAAMu+L,EAAav+L,EAEb05H,EAAOq8D,GAAoBwI,GAE3BsF,EAAsBzoM,OAAO4wI,eAAeuyD,GAE5CuF,EArCV,SAAyBD,GAGrB,OAA0BzoM,OAAOkjH,OAAO,GADbulF,EAAoC,mBAAK,GACJ94L,GAHpE,CAqCmD84L,IA5BnD,SAAwBn3C,GAAAA,IACZhzB,EAAsDgzB,EAAxD,KAAQm3C,EAAgDn3C,EAAlD,oBAAuBo3C,EAA2Bp3C,EAA7B,uBACzBz1H,EAA6B6sK,EAA/B,SAAY77E,EAAmB67E,EAArB,SAAY7uM,EAAS6uM,EAAX,KAEpB9G,EAA4B,iBAAT/nM,EAAoBA,EAAQA,GAAQA,EAAK8uM,WAAc,KAChFrH,GAAgBsH,sBAAsBhH,GAClC6G,EAAoBjwM,eAAewhM,MAGnC17D,EAAKtP,QAAUhvH,OAAOkjH,OAAO,GAAIob,EAAKtP,SADhBy5E,EAAoBzO,KAAa,IACMhrE,UAEjEsP,EAAKziG,SAAWA,EAChByiG,EAAKzR,SAAWA,EAChByR,EAAKzkI,KAAO+nM,EAbhB,CA6BmB,CAAEtjE,KAAAA,EAAMmqE,oBAAAA,EAAqBC,uBAAAA,IAC5CvF,EAA2B,kBAAIuF,GA8DvC,SAASG,GAAOC,GAAgB5N,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,GAC5B,OAAO,SAMGt2L,EAAQzO,GAAAA,IAAAA,EAER0D,EAAO1D,EAAI2D,WAEXivM,EAAAA,KAAAA,OAAkBlvM,EAAlBkvM,cAEAhwK,EAhDd,SAA0Bl/B,EAAMivM,GAAqB,IAAR5N,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAEjD,MAA2B,iBAD3B4N,EAAeA,GAenB,SAA8BjvM,GAE1B,IAAMmvM,EAAgBnvM,EAAK5E,OAAS,EAGpC,OAvCqB,KAsCE4E,EAAKnE,WAAWszM,GACfnvM,EAAKtC,MAAM,EAAGyxM,GAAiBnvM,EAL3D,CAfsDA,IAMvCohM,GAHYC,EAAMjmM,OAANimM,CACZ4N,GADY5N,OAAAA,oBACIA,IACjB4N,EAAYrtM,MAAM,KACyB,GAAqB,QAEnEqtM,EATX,CAgD0CjvM,EAAMivM,EAAa5N,GACrDl7L,OAAOipM,iBAAiBrkM,GAAxB5E,gBAAAA,EAAAA,GACK+oM,EAAa,CACVhxE,UAAAA,EACAmxE,YAAAA,EACAC,cAAAA,IAJRnpM,gBAAAA,EAMKnG,EAAO,CACJqvM,YAAAA,EACAC,cAAAA,EAIA,IANI,WAOA,OAAOlvM,KAAK8uM,KAAgB9uM,KAAK8uM,GA1ErD,SAAgChwK,GAC5B,IAAK,GAAc+wF,MACf,MAAM,IAAIhqH,MAvlHR,iDAylHN,OAAO,GAAcgqH,MAAMo9E,OAAOnuK,GAJtC,CA0E0FA,OAblF/4B,KA8HR,SAASopM,GAASzwK,GACd,OAAO,SAON/zB,EAAQzO,EAAKkzM,GAGV,IADsBA,GAAmC,OAArBA,EAAW3pM,MAE3C,MAAM,IAAII,MApxHZ,kCAuxHF,IAAM0lM,EAAa6D,EAAW3pM,MAExBgmM,EAAaH,GAAe5sK,EAAW,EAAiC,CAC1EkuB,eAAgBjiD,EAChBghM,aAAczvM,EAAI2D,WAIlB0oM,mBAAkB,WAAA,MACP,MAIT8G,EAAgB,CAClBH,cAAAA,EAIArsL,IAAG,WAAA,OACQ4oL,IAKf,OADA,EAAiD,WAAIF,EAC9C8D,GCv3HR,IAAA,GAAA,WAAA,IAAMC,EAET,SAAA,EAAmBljB,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,MAAAA,GAFhB,OACa,EAAAjhL,KAAO,8CAAP,EADb,GAKA,GAAA,WAAA,IAAMokM,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAApkM,KAAO,iCAAP,EADb,GCGA,SAASqkM,GAAqBxpM,GACjC,IAAMwkG,EAAO,OAAH,OAAA,GAAOxkG,GAWjB,OATIwkG,EAAKhxD,SAA+C,IAApCgxD,EAAKhxD,OAAkB3C,gBAChC2zD,EAAKhxD,OAGe,iBAApBgxD,EAAKx+E,aACZw+E,EAAKilG,WAAajlG,EAAKx+E,WACvBw+E,EAAKx+E,WAAaw+E,EAAKilG,WAAWlyG,QAG/BiN,ECpBJ,IAAA,GAAA,WAAA,IAAMklG,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACI,EAAA57L,KAAO,CAAClU,KAAM,OAAQyoL,KAAM,mBAC5B,EAAAsnB,MAAQ,CAAC/vM,KAAM,QAASyoL,KAAM,kBAC9B,EAAAunB,QAAU,CAAChwM,KAAM,UAAWyoL,KAAM,kBAClC,EAAAwnB,QAAU,CAACjwM,KAAM,UAAWyoL,KAAM,iBAClC,EAAA9rI,MAAQ,CAAC38C,KAAM,QAASyoL,KAAM,iBAC9B,EAAAynB,UAAY,CAAClwM,KAAM,YAAayoL,KAAM,iBALtC,EADJ,GCAA,SAAS0nB,KAIZ,IAJ0C,IAAjB/0M,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACtC8oB,EAAS,GACTksL,EAAW,iEAENr1M,EAAI,EAAGA,EAAIK,EAAQL,IACxBmpB,GAAUksL,EAASr0M,OAAOqnB,KAAKa,MAAMb,KAAKc,SAAWksL,EAASh1M,SAGlE,OAAO8oB,EC8IX,IAuCMmsL,GAklBAC,GAhPAC,GA9LAC,GA3MAC,GAAoB,IAAIttE,GAAe,mBAQvCutE,GAA0B,CAC5BjtE,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GAdJ,KAuCMo6C,GAAAA,WAKF,SAAA,EAAY5Z,EAAWka,GAAAA,gBAAAA,KAAAA,GACnBvwM,KAAKq2L,UAAYA,EACjBr2L,KAAKuwM,YAAcA,EAKnBvwM,KAAK05B,SAIJliB,SAAAA,KAKDxX,KAAKwwM,UAAY,aAyCsDC,OA9B3E,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWhrM,GACPzF,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,UAAW9kK,KAS1E,CAAA,IAAA,mBAAA,MAAA,SAAiBrB,GACbpE,KAAK05B,SAAWt1B,IASpB,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACdpE,KAAKwwM,UAAYpsM,IAQrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,WAAYkmC,OAAAA,EA9DzER,IAiEuBrtE,UAAO,SAA8C5oI,GAAK,OAAO,IAAKA,GAAKi2M,IAA8B,GAAyB,IAAmB,GAAyB,MAC3MA,GAA6B7tE,UAAO,GAAyB,CAAEj3H,KAAM8kM,GAA8BvxK,UAAW,CAAC,CAAC,QAAS,OAAQ,WAAY,kBAAmB,IAAK,CAAC,QAAS,OAAQ,WAAY,cAAe,IAAK,CAAC,QAAS,OAAQ,WAAY,UAAW,KAAM2nG,aAAc,SAAmDkc,EAAInmI,GAAgB,EAALmmI,GAC9U,GAAkB,UAAU,SAAgEmuD,GAAU,OAAOt0L,EAAIsd,SAASg3K,EAAO/lM,OAAOgmM,WAAxI,CAAqJ,QAAQ,WAAkE,OAAOv0L,EAAIo0L,gBACzOl1L,SAAU,CAAC,GAA0B,CAACg1L,QAH/CL,IAgDMW,GAAyB,CAC3BvtE,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GAmBEg7C,GAA0B,IAAI9tE,GAAe,wBAzBnD,KAmDMqtE,GAAAA,WAMF,SAAA,EAAY/Z,EAAWka,EAAaO,GA5CxC,IAEUplM,EA0C8BolM,gBAAAA,KAAAA,GAChC9wM,KAAKq2L,UAAYA,EACjBr2L,KAAKuwM,YAAcA,EACnBvwM,KAAK8wM,iBAAmBA,EAKxB9wM,KAAK05B,SAIJliB,SAAAA,KAKDxX,KAAKwwM,UAAY,aAOjBxwM,KAAK+wM,YAAAA,EACwB,MAAzB/wM,KAAK8wM,mBACL9wM,KAAK8wM,kBApEPplM,EAAY,KAAY,KAAUslM,eAAiB,IAClD,gBAAgB9lM,KAAKQ,EAAUgD,iBAsIKjJ,OA1D3C,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWA,GAGPzF,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,QAD1B,MAAT9kK,EAAgB,GAAKA,KAUjD,CAAA,IAAA,mBAAA,MAAA,SAAiBrB,GACbpE,KAAK05B,SAAWt1B,IASpB,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACdpE,KAAKwwM,UAAYpsM,IAQrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,WAAYkmC,KAO3E,CAAA,IAAA,eAAA,MAAA,SAAahrM,KACJzF,KAAK8wM,kBAAqB9wM,KAAK8wM,mBAAqB9wM,KAAK+wM,aAC1D/wM,KAAK05B,SAASj0B,KAOtB,CAAA,IAAA,oBAAA,MAAA,WACIzF,KAAK+wM,YAAAA,IAOT,CAAA,IAAA,kBAAA,MAAA,SAAgBtrM,GACZzF,KAAK+wM,YAAAA,EACL/wM,KAAK8wM,kBAAoB9wM,KAAK05B,SAASj0B,OAAAA,EAnGzC2qM,IAsGextE,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKo2M,IAAsB,GAAyB,IAAmB,GAAyB,IAAoB,GAAyBS,GAAyB,KACzPT,GAAqBhuE,UAAO,GAAyB,CAAEj3H,KAAMilM,GAAsB1xK,UAAW,CAAC,CAAC,QAAS,kBAAmB,GAAI,EAAG,OAAQ,YAAa,CAAC,WAAY,kBAAmB,IAAK,CAAC,QAAS,cAAe,GAAI,EAAG,OAAQ,YAAa,CAAC,WAAY,cAAe,IAAK,CAAC,QAAS,UAAW,GAAI,EAAG,OAAQ,YAAa,CAAC,WAAY,UAAW,IAAK,CAAC,GAAI,mBAAoB,KAAM2nG,aAAc,SAA2Ckc,EAAInmI,GAAgB,EAALmmI,GAChc,GAAkB,SAAS,SAAuDmuD,GAAU,OAAOt0L,EAAI60L,aAAaP,EAAO/lM,OAAOlF,SAAlI,CAA6I,QAAQ,WAA0D,OAAO2W,EAAIo0L,cAA1N,CAA0O,oBAAoB,WAAsE,OAAOp0L,EAAI80L,sBAA/U,CAAuW,kBAAkB,SAAgER,GAAU,OAAOt0L,EAAI+0L,gBAAgBT,EAAO/lM,OAAOlF,WAC3e6V,SAAU,CAAC,GAA0B,CAACs1L,QAH/CR,IAAAA,KAwFMD,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAiJF,OAjJEA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAiJI1qM,GACEzF,KAAKyzE,SACLzzE,KAAKyzE,QAAQhU,MAAMh6D,KAgC3B,CAAA,IAAA,WAAA,MAAA,SAAS2rM,EAAWtpL,GAChB,QAAO9nB,KAAKyzE,SAAUzzE,KAAKyzE,QAAQknD,SAASy2E,EAAWtpL,KA6B3D,CAAA,IAAA,WAAA,MAAA,SAASspL,EAAWtpL,GAChB,OAAO9nB,KAAKyzE,QAAUzzE,KAAKyzE,QAAQ49H,SAASD,EAAWtpL,GAAQ,OAAA,CAAA,IAAA,QAAA,IAAA,WA3M/D,OAAO9nB,KAAKyzE,QAAUzzE,KAAKyzE,QAAQhuE,MAAQ,OAS/C,CAAA,IAAA,QAAA,IAAA,WACI,OAAOzF,KAAKyzE,QAAUzzE,KAAKyzE,QAAQ69H,MAAQ,OAQ/C,CAAA,IAAA,UAAA,IAAA,WACI,OAAOtxM,KAAKyzE,QAAUzzE,KAAKyzE,QAAQ89H,QAAU,OASjD,CAAA,IAAA,UAAA,IAAA,WACI,OAAOvxM,KAAKyzE,QAAUzzE,KAAKyzE,QAAQiuG,QAAU,OASjD,CAAA,IAAA,WAAA,IAAA,WACI,OAAO1hL,KAAKyzE,QAAUzzE,KAAKyzE,QAAQ+9H,SAAW,OAQlD,CAAA,IAAA,UAAA,IAAA,WACI,OAAOxxM,KAAKyzE,QAAUzzE,KAAKyzE,QAAQ0jH,QAAU,OAOjD,CAAA,IAAA,SAAA,IAAA,WACI,OAAOn3L,KAAKyzE,QAAUzzE,KAAKyzE,QAAQ3+D,OAAS,OAQhD,CAAA,IAAA,WAAA,IAAA,WACI,OAAO9U,KAAKyzE,QAAUzzE,KAAKyzE,QAAQg+H,SAAW,OAQlD,CAAA,IAAA,QAAA,IAAA,WACI,OAAOzxM,KAAKyzE,QAAUzzE,KAAKyzE,QAAQjP,MAAQ,OAQ/C,CAAA,IAAA,UAAA,IAAA,WACI,OAAOxkE,KAAKyzE,QAAUzzE,KAAKyzE,QAAQi+H,QAAU,OASjD,CAAA,IAAA,SAAA,IAAA,WACI,OAAO1xM,KAAKyzE,QAAUzzE,KAAKyzE,QAAQtxE,OAAS,OAQhD,CAAA,IAAA,YAAA,IAAA,WACI,OAAOnC,KAAKyzE,QAAUzzE,KAAKyzE,QAAQk+H,UAAY,OAQnD,CAAA,IAAA,gBAAA,IAAA,WACI,OAAO3xM,KAAKyzE,QAAUzzE,KAAKyzE,QAAQm+H,cAAgB,OASvD,CAAA,IAAA,eAAA,IAAA,WACI,OAAO5xM,KAAKyzE,QAAUzzE,KAAKyzE,QAAQo+H,aAAe,OAQtD,CAAA,IAAA,OAAA,IAAA,WACI,OAAO,SAQX,EAjJE1B,IAqNmBvtE,UAAO,SAA0C5oI,GAAK,OAAO,IAAKA,GAAKm2M,KAChGA,GAAyB/tE,UAAO,GAAyB,CAAEj3H,KAAMglM,KADjEA,IAAAA,KA2BMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAeS,OAfTA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,gBAAAA,IAAAA,WAOE,OAAO,OAOX,CAAA,IAAA,OAAA,IAAA,WACI,OAAO,SAAA,EAfTA,CAAyB,KAkBdttE,UAAO,SAAkC5oI,GAAK,OAAO83M,GAA8B93M,GAAKk2M,KACzGA,GAAiB9tE,UAAO,GAAyB,CAAEj3H,KAAM+kM,GAAkB50L,SAAU,CAAC,MADtF40L,IAEM4B,GAAgC,GAA6B,IAkBnE,SAASC,KACL,MAAM,IAAIlsM,MAAM,iBAUpB,IAwOMmsM,GAjCAC,GAvMAC,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GACF,SAAA,IAAA,IAAA,EAAA,OAAA,gBAAA,KAAA,IACI93E,EAAAA,EAAAA,MAAAA,KAAS17H,YAOJ87J,QAAU,KAKfx6J,EAAKJ,KAAO,KAKZI,EAAKmyM,cAAgB,KAOrBnyM,EAAKoyM,eAAiB,GAOtBpyM,EAAKqyM,oBAAsB,GAhC/B,EAoD8BN,OAX9B,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,IAAA,WACI,OAA0BA,OAS9B,CAAA,IAAA,iBAAA,IAAA,WACI,OAA0BA,SAAAA,EArD5BG,CAAkB,IA6GlBI,GAAAA,WAIF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRvyM,KAAKwyM,IAAMD,EA0CgC7wB,OArC/C,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,WACI,QAAO1hL,KAAKwyM,IAAI/+H,SAAUzzE,KAAKwyM,IAAI/+H,QAAQk+H,YAK/C,CAAA,IAAA,iBAAA,IAAA,WACI,QAAO3xM,KAAKwyM,IAAI/+H,SAAUzzE,KAAKwyM,IAAI/+H,QAAQi+H,UAK/C,CAAA,IAAA,kBAAA,IAAA,WACI,QAAO1xM,KAAKwyM,IAAI/+H,SAAUzzE,KAAKwyM,IAAI/+H,QAAQg+H,WAK/C,CAAA,IAAA,eAAA,IAAA,WACI,QAAOzxM,KAAKwyM,IAAI/+H,SAAUzzE,KAAKwyM,IAAI/+H,QAAQjP,QAK/C,CAAA,IAAA,eAAA,IAAA,WACI,QAAOxkE,KAAKwyM,IAAI/+H,SAAUzzE,KAAKwyM,IAAI/+H,QAAQ69H,QAK/C,CAAA,IAAA,iBAAA,IAAA,WACI,QAAOtxM,KAAKwyM,IAAI/+H,SAAUzzE,KAAKwyM,IAAI/+H,QAAQ89H,UAK/C,CAAA,IAAA,iBAAA,IAAA,WACI,QAAOvxM,KAAKwyM,IAAI/+H,SAAUzzE,KAAKwyM,IAAI/+H,QAAQiuG,YAAAA,EA/C7C4wB,GA+C6C5wB,KA2C7CuwB,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYM,GAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,KAAAA,KACFA,GAAAA,OAAAA,EALRN,CAAwBK,KAQd1vE,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKi4M,IAAiB,GAAyBC,GAAW,KACnID,GAAgB7vE,UAAO,GAAyB,CAAEj3H,KAAM8mM,GAAiBvzK,UAAW,CAAC,CAAC,GAAI,kBAAmB,IAAK,CAAC,GAAI,UAAW,IAAK,CAAC,GAAI,cAAe,KAAM4nG,SAAU,GAAID,aAAc,SAAsCkc,EAAInmI,GAAgB,EAALmmI,GAC1O,GAAmB,eAAgBnmI,EAAIq2L,iBAAvC,CAAyD,aAAcr2L,EAAIs2L,eAA3E,CAA2F,cAAet2L,EAAIu2L,gBAA9G,CAA+H,WAAYv2L,EAAIw2L,aAA/I,CAA6J,WAAYx2L,EAAIy2L,aAA7K,CAA2L,aAAcz2L,EAAI02L,eAA7M,CAA6N,aAAc12L,EAAI22L,iBAC9Oz3L,SAAU,CAAC,MAHpB22L,IAAAA,KAyBMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYO,GAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,KAAAA,KACFA,GAAAA,OAAAA,EALRP,CAA6BM,KAQd1vE,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKg4M,IAAsB,GAAyB,GAAkB,KACzJA,GAAqB5vE,UAAO,GAAyB,CAAEj3H,KAAM6mM,GAAsBtzK,UAAW,CAAC,CAAC,GAAI,gBAAiB,IAAK,CAAC,GAAI,gBAAiB,IAAK,CAAC,GAAI,eAAgB,IAAK,CAAC,GAAI,YAAa,IAAK,CAAC,OAAQ,EAAG,WAAY,IAAK,CAAC,GAAI,SAAU,KAAM4nG,SAAU,GAAID,aAAc,SAA2Ckc,EAAInmI,GAAgB,EAALmmI,GACtU,GAAmB,eAAgBnmI,EAAIq2L,iBAAvC,CAAyD,aAAcr2L,EAAIs2L,eAA3E,CAA2F,cAAet2L,EAAIu2L,gBAA9G,CAA+H,WAAYv2L,EAAIw2L,aAA/I,CAA6J,WAAYx2L,EAAIy2L,aAA7K,CAA2L,aAAcz2L,EAAI02L,eAA7M,CAA6N,aAAc12L,EAAI22L,iBAC9Oz3L,SAAU,CAAC,MAHpB02L,IA2BA,SAASgB,GAAkBvtM,GAEvB,OAAgB,MAATA,GAAkC,IAAjBA,EAAMzK,OA+BlC,IAAMi4M,GAAgB,IAAIlwE,GAAe,gBAWnCmwE,GAAsB,IAAInwE,GAAe,qBAgCzCowE,GAAe,qMAYf,GAAA,WAAA,SAAA,IAAA,gBAAA,KAAA,GA0X4CC,OA1X5C,aAAA,EAAA,KAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAuBS54L,GACP,OAICi5D,SAAAA,GACG,GAAIu/H,GAAkBv/H,EAAQhuE,QAAUutM,GAAkBx4L,GACtD,OAAO,KAGX,IAAM/U,EAAQ8f,WAAWkuD,EAAQhuE,OAGjC,OAAQuO,MAAMvO,IAAUA,EAAQ+U,EAAM,CAAE,IAAO,CAAE,IAAOA,EAAK,OAAUi5D,EAAQhuE,QAAY,QAyBnG,CAAA,IAAA,MAAA,MAAA,SAAWgV,GACP,OAICg5D,SAAAA,GACG,GAAIu/H,GAAkBv/H,EAAQhuE,QAAUutM,GAAkBv4L,GACtD,OAAO,KAGX,IAAMhV,EAAQ8f,WAAWkuD,EAAQhuE,OAGjC,OAAQuO,MAAMvO,IAAUA,EAAQgV,EAAM,CAAE,IAAO,CAAE,IAAOA,EAAK,OAAUg5D,EAAQhuE,QAAY,QAwBnG,CAAA,IAAA,WAAA,MAAA,SAAgBguE,GACZ,OAAOu/H,GAAkBv/H,EAAQhuE,OAAS,CAAE,UAAA,GAAqB,OAwBrE,CAAA,IAAA,eAAA,MAAA,SAAoBguE,GAChB,OAAA,IAAOA,EAAQhuE,MAAiB,KAAO,CAAE,UAAA,KAuC7C,CAAA,IAAA,QAAA,MAAA,SAAaguE,GACT,OAAIu/H,GAAkBv/H,EAAQhuE,QAGvB0tM,GAAajoM,KAAKuoE,EAAQhuE,OAFtB,KAEsC,CAAE,OAAA,KAiCvD,CAAA,IAAA,YAAA,MAAA,SAAiB4tM,GACb,OAIC5/H,SAAAA,GACG,GAAIu/H,GAAkBv/H,EAAQhuE,OAC1B,OAAO,KAGX,IAAMzK,EAASy4E,EAAQhuE,MAAQguE,EAAQhuE,MAAMzK,OAAS,EACtD,OAAOA,EAASq4M,EACZ,CAAE,UAAa,CAAE,eAAkBA,EAAW,aAAgBr4M,IAC9D,QA+BZ,CAAA,IAAA,YAAA,MAAA,SAAiBwtH,GACb,OAIC/0C,SAAAA,GAEG,IAAMz4E,EAASy4E,EAAQhuE,MAAQguE,EAAQhuE,MAAMzK,OAAS,EACtD,OAAOA,EAASwtH,EACZ,CAAE,UAAa,CAAE,eAAkBA,EAAW,aAAgBxtH,IAC9D,QAiCZ,CAAA,IAAA,UAAA,MAAA,SAAe2sB,GACX,OAAKA,GAMkB,iBAAZA,GACP2rL,EAAW,GACe,MAAtB3rL,EAAQhsB,OAAO,KACf23M,GAAY,KAChBA,GAAY3rL,EAC+B,MAAvCA,EAAQhsB,OAAOgsB,EAAQ3sB,OAAS,KAChCs4M,GAAY,KAChB5sK,EAAQ,IAAIzwB,OAAOq9L,KAGnBA,EAAW3rL,EAAQ9nB,WACnB6mC,EAAQ/e,GAMX8rD,SAAAA,GACG,GAAIu/H,GAAkBv/H,EAAQhuE,OAC1B,OAAO,KAGX,IAAMA,EAAQguE,EAAQhuE,MACtB,OAAOihC,EAAMx7B,KAAKzF,GAAS,KACvB,CAAE,QAAW,CAAE,gBAAmB6tM,EAAU,YAAe7tM,MA7BxD,EAAW8tM,cAEtB,IAAI7sK,EAEA4sK,IAqCR,CAAA,IAAA,gBAAA,MAAA,SAAqB7/H,GACjB,OAAO,OAMX,CAAA,IAAA,UAAA,MAAA,SAAe+/H,GACX,IAAKA,EACD,OAAO,KAEX,IAAMC,EAAuCD,EAAWt8L,OAAOw8L,IAC/D,OAAgC,GAA5BD,EAAkBz4M,OACX,KACJ,SAIGy4E,GACN,OAAO2/H,GAyDnB,SAA4B3/H,EAAS+/H,GACjC,OAAOA,EAAWz+L,KAIlB7H,SAAAA,GAAAA,OAAKA,EAAEumE,MALX,CAzDmDA,EAASggI,OAexD,CAAA,IAAA,eAAA,MAAA,SAAoBD,GAChB,IAAKA,EACD,OAAO,KAEX,IAAMC,EAAuCD,EAAWt8L,OAAOw8L,IAC/D,OAAgC,GAA5BD,EAAkBz4M,OACX,KACJ,SAIGy4E,GAGN,OAAOwpH,GAwCnB,SAAiCxpH,EAAS+/H,GACtC,OAAOA,EAAWz+L,KAIlB7H,SAAAA,GAAAA,OAAKA,EAAEumE,MALX,CAzCwDA,EAASggI,GAAmB1+L,IAAI4+L,KAC/CtvM,KAAK0Q,EAAIq+L,UAAAA,EA1X5C,GAkYN,SAASM,GAAUrnM,GACf,OAAY,MAALA,EAMX,SAASsnM,GAAahjM,GAElB,IAAM6qH,EAAM,GAAW7qH,GAAK,EAAKA,GAAKA,EACtC,IAAM,GAAc6qH,GAChB,MAAM,IAAI31H,MAAM,uDAEpB,OAAO21H,EA8BX,SAAS43E,GAAaQ,GAElB,IAAI3yE,EAAM,GAUV,OAPA2yE,EAAcj8L,SAIb7C,SAAAA,GACGmsH,EAAgB,MAAVnsH,EAAiB/O,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAI,GAA2Bn0G,GAAU,KAE7D,IAA5B/O,OAAOP,KAAKy7H,GAAKjmI,OAAe,KAAOimI,EAmBlD,SAAS4yE,GAAmBC,GACxB,OAAI,EAAiCC,SAKhC35M,SAAAA,GAAAA,OAAM,EAAiC25M,SAAS35M,IAG1C,EAOf,SAAS45M,GAAwBF,GAC7B,OAAI,EAAiCC,SAKhC35M,SAAAA,GAAAA,OAAM,EAAiC25M,SAAS35M,IAG1C,EAUf,IAgCM65M,GAsOAC,GA1FAC,GAgWAC,GA5gBAC,GAAwB,CAC1BhxE,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GANJ,KAgCMo+C,GAAAA,WAKF,SAAA,EAAY5d,EAAWka,GAAAA,gBAAAA,KAAAA,GACnBvwM,KAAKq2L,UAAYA,EACjBr2L,KAAKuwM,YAAcA,EAMnBvwM,KAAK05B,SAIJliB,SAAAA,KAKDxX,KAAKwwM,UAAY,aAkDsDC,OAvC3E,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWhrM,GAIPzF,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,QAD1B,MAAT9kK,EAAgB,GAAKA,KAUjD,CAAA,IAAA,mBAAA,MAAA,SAAiBrB,GACbpE,KAAK05B,SAIJj0B,SAAAA,GACGrB,EAAY,IAATqB,EAAc,KAAO8f,WAAW9f,OAU3C,CAAA,IAAA,oBAAA,MAAA,SAAkBrB,GACdpE,KAAKwwM,UAAYpsM,IAQrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,WAAYkmC,OAAAA,EAxEzEwD,IA2EcrxE,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAKi6M,IAAqB,GAAyB,IAAmB,GAAyB,MAChLA,GAAoB7xE,UAAO,GAAyB,CAAEj3H,KAAM8oM,GAAqBv1K,UAAW,CAAC,CAAC,QAAS,OAAQ,SAAU,kBAAmB,IAAK,CAAC,QAAS,OAAQ,SAAU,cAAe,IAAK,CAAC,QAAS,OAAQ,SAAU,UAAW,KAAM2nG,aAAc,SAA0Ckc,EAAInmI,GAAgB,EAALmmI,GAC7S,GAAkB,UAAU,SAAuDmuD,GAAU,OAAOt0L,EAAIsd,SAASg3K,EAAO/lM,OAAOlF,SAA/H,CAA0I,SAAS,SAAsDirM,GAAU,OAAOt0L,EAAIsd,SAASg3K,EAAO/lM,OAAOlF,SAArP,CAAgQ,QAAQ,WAAyD,OAAO2W,EAAIo0L,gBAC3Ul1L,SAAU,CAAC,GAA0B,CAAC+4L,QAH/CJ,IAqDMK,GAAuB,CACzBjxE,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GANJ,KAYMs+C,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACIn0M,KAAKu0M,WAAa,GAqDmB30M,OA5CzC,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAI6zE,EAAS+gI,GACTx0M,KAAKu0M,WAAW7zM,KAAK,CAAC+yE,EAAS+gI,MAQnC,CAAA,IAAA,SAAA,MAAA,SAAOA,GACH,IAAK,IAAI75M,EAAIqF,KAAKu0M,WAAWv5M,OAAS,EAAGL,GAAK,IAAKA,EAC/C,GAAIqF,KAAKu0M,WAAW55M,GAAG,KAAO65M,EAE1B,YADAx0M,KAAKu0M,WAAW3zM,OAAOjG,EAAG,KAWtC,CAAA,IAAA,SAAA,MAAA,SAAO65M,GAAAA,IAAAA,EAAAA,KACHx0M,KAAKu0M,WAAW58L,SAIfvd,SAAAA,GACO4F,EAAKy0M,aAAar6M,EAAGo6M,IAAap6M,EAAE,KAAOo6M,GAC3Cp6M,EAAE,GAAGs6M,YAAYF,EAAS/uM,YAUtC,CAAA,IAAA,eAAA,MAAA,SAAakvM,EAAaH,GACtB,QAAKG,EAAY,GAAGlhI,SAEbkhI,EAAY,GAAGn6C,UAAYg6C,EAASI,SAASp6C,SAChDm6C,EAAY,GAAG/0M,OAAS40M,EAAS50M,SAAAA,EAvDvCu0M,IA0DevxE,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKm6M,KACxFA,GAAqBzzE,WAAQ,GAA0B,CAAErB,MAAO80E,GAAsB7+L,QAAS6+L,GAAqBvxE,YADpHuxE,IAAAA,KAgCMD,GAAAA,WAOF,SAAA,EAAY7d,EAAWka,EAAasE,EAAWrwB,GAAAA,gBAAAA,KAAAA,GAC3CxkL,KAAKq2L,UAAYA,EACjBr2L,KAAKuwM,YAAcA,EACnBvwM,KAAK60M,UAAYA,EACjB70M,KAAKwkL,UAAYA,EAKjBxkL,KAAK05B,SAAW,aAQhB15B,KAAKwwM,UAAY,aA+FD,OArFpB,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WACIxwM,KAAK40M,SAAW50M,KAAKwkL,UAAU3hK,IAAIqvL,IACnClyM,KAAK80M,aACL90M,KAAK60M,UAAU9sM,IAAI/H,KAAK40M,SAAU50M,QAOtC,CAAA,IAAA,cAAA,MAAA,WACIA,KAAK60M,UAAU9+L,OAAO/V,QAS1B,CAAA,IAAA,aAAA,MAAA,SAAWyF,GACPzF,KAAK+0M,OAAStvM,IAAUzF,KAAKyF,MAC7BzF,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,UAAWvqK,KAAK+0M,UAS/E,CAAA,IAAA,mBAAA,MAAA,SAAiB3wM,GAAAA,IAAAA,EAAAA,KACbpE,KAAKg1M,IAAM5wM,EACXpE,KAAK05B,SAAW,WAIZt1B,EAAGpE,EAAKyF,OACRzF,EAAK60M,UAAU5H,OAAOjtM,MAS9B,CAAA,IAAA,cAAA,MAAA,SAAYyF,GACRzF,KAAKi1M,WAAWxvM,KASpB,CAAA,IAAA,oBAAA,MAAA,SAAkBrB,GACdpE,KAAKwwM,UAAYpsM,IAQrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,WAAYkmC,KAM3E,CAAA,IAAA,aAAA,MAAA,WACQzwM,KAAKJ,MAAQI,KAAKk1M,iBAAmBl1M,KAAKJ,OAASI,KAAKk1M,iBACxDl1M,KAAKm1M,mBAEJn1M,KAAKJ,MAAQI,KAAKk1M,kBACnBl1M,KAAKJ,KAAOI,KAAKk1M,mBAMzB,CAAA,IAAA,kBAAA,MAAA,WACI,MAAM,IAAIrvM,MAAM,iMAAA,EAvHlBquM,IA6HoBtxE,UAAO,SAA2C5oI,GAAK,OAAO,IAAKA,GAAKk6M,IAA2B,GAAyB,IAAmB,GAAyB,IAAoB,GAAyB,IAAuB,GAAyB,MAC/RA,GAA0B9xE,UAAO,GAAyB,CAAEj3H,KAAM+oM,GAA2Bx1K,UAAW,CAAC,CAAC,QAAS,OAAQ,QAAS,kBAAmB,IAAK,CAAC,QAAS,OAAQ,QAAS,cAAe,IAAK,CAAC,QAAS,OAAQ,QAAS,UAAW,KAAM2nG,aAAc,SAAgDkc,EAAInmI,GAAgB,EAALmmI,GAC5T,GAAkB,UAAU,WAAiE,OAAOnmI,EAAIsd,aAAxG,CAAuH,QAAQ,WAA+D,OAAOtd,EAAIo0L,gBACxM/pE,OAAQ,CAAE7mI,KAAM,OAAQs1M,gBAAiB,kBAAmBzvM,MAAO,SAAW6V,SAAU,CAAC,GAA0B,CAACg5L,QAH7HJ,IAyGMkB,GAAuB,CACzB/xE,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GANJ,KAgCMu+C,GAAAA,WAKF,SAAA,EAAY/d,EAAWka,GAAAA,gBAAAA,KAAAA,GACnBvwM,KAAKq2L,UAAYA,EACjBr2L,KAAKuwM,YAAcA,EAMnBvwM,KAAK05B,SAIJliB,SAAAA,KAKDxX,KAAKwwM,UAAY,aA+CsDC,OApC3E,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWhrM,GACPzF,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,QAAShlJ,WAAW9f,MASnF,CAAA,IAAA,mBAAA,MAAA,SAAiBrB,GACbpE,KAAK05B,SAIJj0B,SAAAA,GACGrB,EAAY,IAATqB,EAAc,KAAO8f,WAAW9f,OAU3C,CAAA,IAAA,oBAAA,MAAA,SAAkBrB,GACdpE,KAAKwwM,UAAYpsM,IAQrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,WAAYkmC,OAAAA,EArEzE2D,IAwEaxxE,UAAO,SAAoC5oI,GAAK,OAAO,IAAKA,GAAKo6M,IAAoB,GAAyB,IAAmB,GAAyB,MAC7KA,GAAmBhyE,UAAO,GAAyB,CAAEj3H,KAAMipM,GAAoB11K,UAAW,CAAC,CAAC,QAAS,OAAQ,QAAS,kBAAmB,IAAK,CAAC,QAAS,OAAQ,QAAS,cAAe,IAAK,CAAC,QAAS,OAAQ,QAAS,UAAW,KAAM2nG,aAAc,SAAyCkc,EAAInmI,GAAgB,EAALmmI,GACvS,GAAkB,UAAU,SAAsDmuD,GAAU,OAAOt0L,EAAIsd,SAASg3K,EAAO/lM,OAAOlF,SAA9H,CAAyI,SAAS,SAAqDirM,GAAU,OAAOt0L,EAAIsd,SAASg3K,EAAO/lM,OAAOlF,SAAnP,CAA8P,QAAQ,WAAwD,OAAO2W,EAAIo0L,gBACxUl1L,SAAU,CAAC,GAA0B,CAAC85L,QAH/ChB,IA4DMiB,GACe,qMADfA,GAWa,wRAXbA,GAsCY,6IAmBZC,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAwFM,OAxFNA,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,yBAAAA,MAAAA,WAKE,MAAM,IAAIzvM,MAAJ,+NAAA,OAKNwvM,OAKJ,CAAA,IAAA,wBAAA,MAAA,WACI,MAAM,IAAIxvM,MAAJ,qRAAA,OAKJwvM,GALI,uGAAA,OASJA,OAKN,CAAA,IAAA,uBAAA,MAAA,WACI,MAAM,IAAIxvM,MAAJ,4FAAA,OAILwvM,OAKL,CAAA,IAAA,uBAAA,MAAA,WACI,MAAM,IAAIxvM,MAAJ,4NAAA,OAKNwvM,OAKJ,CAAA,IAAA,uBAAA,MAAA,WACI,MAAM,IAAIxvM,MAAM,mmBAUpB,CAAA,IAAA,sBAAA,MAAA,WACIrB,QAAQyG,KAAK,siBAgBjB,CAAA,IAAA,iBAAA,MAAA,SAAsBsqM,GAClB/wM,QAAQyG,KAARzG,sEAAAA,OAC2D+wM,EAD3D/wM,kSAAAA,OAO6C,gBAAlB+wM,EAAkC,uBACzD,kBARJ/wM,gCAQI,EAxFN8wM,GAmGAE,GAAwB,CAC1BnyE,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GAOJ,SAAS4/C,GAAkBhkM,EAAIhM,GAC3B,OAAU,MAANgM,EAAM,GAAA,OACIhM,IACVA,GAA0B,iBAAVA,IAChBA,EAAQ,UACL,GAAA,OAAGgM,EAAH,MAAA,OAAUhM,GAAQnI,MAAM,EAAG,KAJxB,IAmRRo4M,GA7MAC,GAtEQ,KAsERA,GAAAA,WAKF,SAAA,EAAYtf,EAAWka,GAAAA,gBAAAA,KAAAA,GACnBvwM,KAAKq2L,UAAYA,EACjBr2L,KAAKuwM,YAAcA,EAInBvwM,KAAK41M,WAAa,IAAI9hD,IAItB9zJ,KAAK61M,WAAa,EAKlB71M,KAAK05B,SAIJliB,SAAAA,KAKDxX,KAAKwwM,UAAY,aAIjBxwM,KAAK81M,aAAe,GAsBxB,OAbA,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAaWrwM,GACPzF,KAAKyF,MAAQA,EAEb,IAAMgM,EAAKzR,KAAK+1M,aAAatwM,GACnB,MAANgM,GACAzR,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,iBAAkB,GAGjF,IAAMyrC,EAAcP,GAAkBhkM,EAAIhM,GAC1CzF,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,QAASyrC,KASxE,CAAA,IAAA,mBAAA,MAAA,SAAiB5xM,GAAAA,IAAAA,EAAAA,KACbpE,KAAK05B,SAIJs8K,SAAAA,GACGh2M,EAAKyF,MAAQzF,EAAKi2M,gBAAgBD,GAClC5xM,EAAGpE,EAAKyF,UAUhB,CAAA,IAAA,oBAAA,MAAA,SAAkBrB,GACdpE,KAAKwwM,UAAYpsM,IAQrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,WAAYkmC,KAM3E,CAAA,IAAA,kBAAA,MAAA,WACI,OAAQzwM,KAAK61M,cAAch2M,aAO/B,CAAA,IAAA,eAAA,MAAA,SAAa4F,GACT,IAAA,IAAA,EAAA,EAAA,EAAiBgB,MAAM8tE,KAAKv0E,KAAK41M,WAAWpwM,QAA5C,EAAA,EAAA,OAAA,IAAA,CAAK,IAAMiM,EAAAA,EAAAA,GACP,GAAIzR,KAAK81M,aAAa91M,KAAK41M,WAAW/yL,IAAIpR,GAAKhM,GAC3C,OAAOgM,EAEf,OAAO,OAOX,CAAA,IAAA,kBAAA,MAAA,SAAgBukM,GAEZ,IAAMvkM,EA5Ld,SAAoBukM,GAChB,OAAOA,EAAYx0M,MAAM,KAAK,GADlC,CA4L8Bw0M,GACtB,OAAOh2M,KAAK41M,WAAW7/C,IAAItkJ,GAAMzR,KAAK41M,WAAW/yL,IAAIpR,GAAMukM,IAAAA,CAAAA,IAAAA,cAAAA,IAAAA,SAvF/C5xM,GACZ,GAAkB,mBAAPA,EACP,MAAM,IAAIyB,MAAJ,gDAAA,OAA0DK,KAAKC,UAAU/B,KAEnFpE,KAAK81M,aAAe1xM,MASxB,EAvDEuxM,IAoIqB/yE,UAAO,SAA4C5oI,GAAK,OAAO,IAAKA,GAAK27M,IAA4B,GAAyB,IAAmB,GAAyB,MACrMA,GAA2BvzE,UAAO,GAAyB,CAAEj3H,KAAMwqM,GAA4Bj3K,UAAW,CAAC,CAAC,SAAU,kBAAmB,GAAI,EAAG,WAAY,IAAK,CAAC,SAAU,cAAe,GAAI,EAAG,WAAY,IAAK,CAAC,SAAU,UAAW,GAAI,EAAG,WAAY,KAAM2nG,aAAc,SAAiDkc,EAAInmI,GAAgB,EAALmmI,GACxU,GAAkB,UAAU,SAA8DmuD,GAAU,OAAOt0L,EAAIsd,SAASg3K,EAAO/lM,OAAOlF,SAAtI,CAAiJ,QAAQ,WAAgE,OAAO2W,EAAIo0L,gBACnO/pE,OAAQ,CAAEyvE,YAAa,eAAiB56L,SAAU,CAAC,GAA0B,CAACk6L,QAHvFG,IAAAA,KAyEMD,GAAAA,WAMF,SAAA,EAAYh6H,EAAU26G,EAAWkX,GAAAA,gBAAAA,KAAAA,GAC7BvtM,KAAK07E,SAAWA,EAChB17E,KAAKq2L,UAAYA,EACjBr2L,KAAKutM,QAAUA,EACXvtM,KAAKutM,UACLvtM,KAAKyR,GAAKzR,KAAKutM,QAAQ4I,mBAiC/B,OAxBA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,SAwBiB1wM,GACbzF,KAAKq2L,UAAU7kD,YAAYxxI,KAAK07E,SAAS6uF,cAAe,QAAS9kK,KAOrE,CAAA,IAAA,cAAA,MAAA,WACQzF,KAAKutM,UACLvtM,KAAKutM,QAAQqI,WAAb51M,OAA+BA,KAAKyR,IACpCzR,KAAKutM,QAAQ0H,WAAWj1M,KAAKutM,QAAQ9nM,UAAAA,CAAAA,IAAAA,UAAAA,IAAAA,SAnCjCA,GACY,MAAhBzF,KAAKutM,UAETvtM,KAAKutM,QAAQqI,WAAW5zL,IAAIhiB,KAAKyR,GAAIhM,GACrCzF,KAAKo2M,iBAAiBX,GAAkBz1M,KAAKyR,GAAIhM,IACjDzF,KAAKutM,QAAQ0H,WAAWj1M,KAAKutM,QAAQ9nM,UASzC,CAAA,IAAA,QAAA,IAAA,SAAUA,GACNzF,KAAKo2M,iBAAiB3wM,GAClBzF,KAAKutM,SACLvtM,KAAKutM,QAAQ0H,WAAWj1M,KAAKutM,QAAQ9nM,WAO7C,EA5CEiwM,IA2DS9yE,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAK07M,IAAgB,GAAyB,IAAoB,GAAyB,IAAmB,GAAyB,GAA4B,KAC1OA,GAAetzE,UAAO,GAAyB,CAAEj3H,KAAMuqM,GAAgBh3K,UAAW,CAAC,CAAC,WAAY+nG,OAAQ,CAAE4vE,QAAS,UAAW5wM,MAAO,WADrIiwM,IAwDMY,GAAiC,CACnCjzE,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GAOJ,SAAS0gD,GAAoB9kM,EAAIhM,GAC7B,OAAU,MAANgM,EAAM,GAAA,OACIhM,IACO,iBAAVA,IACPA,EAAAA,IAAAA,OAAYA,EAAZA,MACAA,GAA0B,iBAAVA,IAChBA,EAAQ,UACL,GAAA,OAAGgM,EAAH,MAAA,OAAUhM,GAAQnI,MAAM,EAAG,KANxB,IAqVRk5M,GAxQAC,GA7EQ,KA6ERA,GAAAA,WAKF,SAAA,EAAYpgB,EAAWka,GAAAA,gBAAAA,KAAAA,GACnBvwM,KAAKq2L,UAAYA,EACjBr2L,KAAKuwM,YAAcA,EAInBvwM,KAAK41M,WAAa,IAAI9hD,IAItB9zJ,KAAK61M,WAAa,EAKlB71M,KAAK05B,SAIJliB,SAAAA,KAKDxX,KAAKwwM,UAAY,aAIjBxwM,KAAK81M,aAAe,GAuBxB,OAdA,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAcWrwM,GAAAA,IAGHixM,EAHGjxM,EAAAA,KAIP,GAHAzF,KAAKyF,MAAQA,EAGTgB,MAAMqQ,QAAQrR,GAAQ,CAGtB,IAAMkxM,EAAMlxM,EAAMsP,KAIjB7H,SAAAA,GAAAA,OAAMlN,EAAK+1M,aAAa7oM,MACzBwpM,EAA4B,SAK3B7+I,EAAKxrD,GACFwrD,EAAI++I,aAAaD,EAAI/0M,QAAQyK,EAAExM,aAAe,SAIlD62M,EAA4B,SAK3B7+I,EAAKxrD,GACFwrD,EAAI++I,cAAAA,IAGZ52M,KAAK41M,WAAWj+L,QAAQ++L,KAU5B,CAAA,IAAA,mBAAA,MAAA,SAAiBtyM,GAAAA,IAAAA,EAAAA,KACbpE,KAAK05B,SAIJliB,SAAAA,GAEG,IAAMugD,EAAW,GACjB,GAAIvgD,EAAEjZ,eAAe,mBAGjB,IADA,IAAMmX,EAAU8B,EAAEq/L,gBACTl8M,EAAI,EAAGA,EAAI+a,EAAQ1a,OAAQL,IAAK,CAErC,IAAMk9D,EAAMniD,EAAQxS,KAAKvI,GAEnBk4G,EAAM7yG,EAAKi2M,gBAAgBp+I,EAAIpyD,OACrCsyD,EAASr3D,KAAKmyG,QAOlB,IADA,IAAMn9F,EAA6B8B,EAAU,QACpC7c,EAAI,EAAGA,EAAI+a,EAAQ1a,OAAQL,IAAK,CAErC,IAAMk9D,EAAMniD,EAAQxS,KAAKvI,GACzB,GAAIk9D,EAAIE,SAAU,CAEd,IAAM86C,EAAM7yG,EAAKi2M,gBAAgBp+I,EAAIpyD,OACrCsyD,EAASr3D,KAAKmyG,IAI1B7yG,EAAKyF,MAAQsyD,EACb3zD,EAAG2zD,MAUX,CAAA,IAAA,oBAAA,MAAA,SAAkB3zD,GACdpE,KAAKwwM,UAAYpsM,IAQrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKq2L,UAAU7kD,YAAYxxI,KAAKuwM,YAAYhmC,cAAe,WAAYkmC,KAO3E,CAAA,IAAA,kBAAA,MAAA,SAAgBhrM,GAEZ,IAAMgM,GAAMzR,KAAK61M,cAAch2M,WAE/B,OADAG,KAAK41M,WAAW5zL,IAAIvQ,EAAIhM,GACjBgM,IAOX,CAAA,IAAA,eAAA,MAAA,SAAahM,GACT,IAAA,IAAA,EAAA,EAAA,EAAiBgB,MAAM8tE,KAAKv0E,KAAK41M,WAAWpwM,QAA5C,EAAA,EAAA,OAAA,IAAA,CAAK,IAAMiM,EAAAA,EAAAA,GACP,GAAIzR,KAAK81M,aAAgC91M,KAAK41M,WAAW/yL,IAAIpR,GAAMsrL,OAAQt3L,GACvE,OAAOgM,EAEf,OAAO,OAOX,CAAA,IAAA,kBAAA,MAAA,SAAgBukM,GAEZ,IAAMvkM,EAxPd,SAAsBukM,GAClB,OAAOA,EAAYx0M,MAAM,KAAK,GADlC,CAwPgCw0M,GACxB,OAAOh2M,KAAK41M,WAAW7/C,IAAItkJ,GAAyBzR,KAAK41M,WAAW/yL,IAAIpR,GAAMsrL,OAASiZ,IAAAA,CAAAA,IAAAA,cAAAA,IAAAA,SA9I3E5xM,GACZ,GAAkB,mBAAPA,EACP,MAAM,IAAIyB,MAAJ,gDAAA,OAA0DK,KAAKC,UAAU/B,KAEnFpE,KAAK81M,aAAe1xM,MAUxB,EAxDEqyM,IA2L6B7zE,UAAO,SAAoD5oI,GAAK,OAAO,IAAKA,GAAKy8M,IAAoC,GAAyB,IAAmB,GAAyB,MAC7NA,GAAmCr0E,UAAO,GAAyB,CAAEj3H,KAAMsrM,GAAoC/3K,UAAW,CAAC,CAAC,SAAU,WAAY,GAAI,kBAAmB,IAAK,CAAC,SAAU,WAAY,GAAI,cAAe,IAAK,CAAC,SAAU,WAAY,GAAI,UAAW,KAAM2nG,aAAc,SAAyDkc,EAAInmI,GAAgB,EAALmmI,GACvV,GAAkB,UAAU,SAAsEmuD,GAAU,OAAOt0L,EAAIsd,SAASg3K,EAAO/lM,UAAvI,CAAmJ,QAAQ,WAAwE,OAAOyR,EAAIo0L,gBAC7O/pE,OAAQ,CAAEyvE,YAAa,eAAiB56L,SAAU,CAAC,GAA0B,CAACg7L,QAHvFG,IAAAA,KA6EMD,GAAAA,WAMF,SAAA,EAAY96H,EAAU26G,EAAWkX,GAAAA,gBAAAA,KAAAA,GAC7BvtM,KAAK07E,SAAWA,EAChB17E,KAAKq2L,UAAYA,EACjBr2L,KAAKutM,QAAUA,EACXvtM,KAAKutM,UACLvtM,KAAKyR,GAAKzR,KAAKutM,QAAQ4I,gBAAgBn2M,OAuC/C,OA7BA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,SA6BiByF,GACbzF,KAAKq2L,UAAU7kD,YAAYxxI,KAAK07E,SAAS6uF,cAAe,QAAS9kK,KAOrE,CAAA,IAAA,eAAA,MAAA,SAAasyD,GACT/3D,KAAKq2L,UAAU7kD,YAAYxxI,KAAK07E,SAAS6uF,cAAe,WAAYxyG,KAOxE,CAAA,IAAA,cAAA,MAAA,WACQ/3D,KAAKutM,UACLvtM,KAAKutM,QAAQqI,WAAb51M,OAA+BA,KAAKyR,IACpCzR,KAAKutM,QAAQ0H,WAAWj1M,KAAKutM,QAAQ9nM,UAAAA,CAAAA,IAAAA,UAAAA,IAAAA,SAhDjCA,GACY,MAAhBzF,KAAKutM,UAETvtM,KAAK+8L,OAASt3L,EACdzF,KAAKo2M,iBAAiBG,GAAoBv2M,KAAKyR,GAAIhM,IACnDzF,KAAKutM,QAAQ0H,WAAWj1M,KAAKutM,QAAQ9nM,UASzC,CAAA,IAAA,QAAA,IAAA,SAAUA,GACFzF,KAAKutM,SACLvtM,KAAK+8L,OAASt3L,EACdzF,KAAKo2M,iBAAiBG,GAAoBv2M,KAAKyR,GAAIhM,IACnDzF,KAAKutM,QAAQ0H,WAAWj1M,KAAKutM,QAAQ9nM,QAGrCzF,KAAKo2M,iBAAiB3wM,OAQ9B,EAlDE+wM,IAyEkB5zE,UAAO,SAAyC5oI,GAAK,OAAO,IAAKA,GAAKw8M,IAAyB,GAAyB,IAAoB,GAAyB,IAAmB,GAAyB,GAAoC,KAC7QA,GAAwBp0E,UAAO,GAAyB,CAAEj3H,KAAMqrM,GAAyB93K,UAAW,CAAC,CAAC,WAAY+nG,OAAQ,CAAE4vE,QAAS,UAAW5wM,MAAO,WADvJ+wM,IA6DA,SAASM,GAAYl3M,EAAM2J,GACvB,MAAA,GAAA,OAAA,oBAA8BA,EAAY,MAA1C,CAA6C,IAOjD,SAASwtM,GAAatjI,EAASilH,GACtBjlH,GACD,GAAYilH,EAAK,4BAChBA,EAAIyZ,eACL,GAAYzZ,EAAK,2CACrBjlH,EAAQqgI,UAAY,GAAW5O,QAAQ,CAAoBzxH,EAAkB,UAAGilH,EAAIob,YACpFrgI,EAAQujI,eAAiB,GAAWC,aAAa,CAAoBxjI,EAAuB,eAAGilH,EAAIse,iBAChFte,EAAkB,cAAEuc,WAAWxhI,EAAQhuE,OA6E9D,SAAiCguE,EAASilH,GACnBA,EAAkB,cAAEwe,kBAItCpkJ,SAAAA,GACG2gB,EAAQ0jI,cAAgBrkJ,EACxB2gB,EAAQ2jI,gBAAAA,EACR3jI,EAAQ4jI,eAAAA,EACiB,WAArB5jI,EAAQ6jI,UACRC,GAAc9jI,EAASilH,MAVnC,CA5E4BjlH,EAASilH,GA2HrC,SAAkCjlH,EAASilH,GACvCjlH,EAAQyjI,kBAAiB,SAKxBpkJ,EAAU0kJ,GAEY9e,EAAkB,cAAEuc,WAAWniJ,GAE9C0kJ,GACA9e,EAAI+e,kBAAkB3kJ,MAXlC,CA1H6B2gB,EAASilH,GA6FtC,SAA2BjlH,EAASilH,GACbA,EAAkB,cAAEgf,mBAAkB,WAIrDjkI,EAAQkkI,iBAAAA,EACiB,SAArBlkI,EAAQ6jI,UAAuB7jI,EAAQ2jI,gBACvCG,GAAc9jI,EAASilH,GACF,WAArBjlH,EAAQ6jI,UACR7jI,EAAQmkI,mBATpB,CA5FsBnkI,EAASilH,GACJA,EAAkB,cAAEmf,kBACvCpkI,EAAQqkI,0BAIPrH,SAAAA,GACyC/X,EAAkB,cAAmB,iBAAE+X,MAIrF/X,EAAI0Z,eAAez6L,SAIlBm8L,SAAAA,GACO,EAAiCiE,2BACd,EAA2D,2BAAE,WAAA,OAG1EtkI,EAAQukI,+BAEtBtf,EAAI2Z,oBAAoB16L,SAIvBm8L,SAAAA,GACO,EAAiCiE,2BACd,EAA2D,2BAAE,WAAA,OAG1EtkI,EAAQukI,+BA8E1B,SAAST,GAAc9jI,EAASilH,GACxBjlH,EAAQ4jI,eACR5jI,EAAQwkI,cACZxkI,EAAQm1E,SAASn1E,EAAQ0jI,cAAe,CAAEe,uBAAAA,IAC1Cxf,EAAI+e,kBAAkBhkI,EAAQ0jI,eAC9B1jI,EAAQ2jI,gBAAAA,EA0BZ,SAASe,GAAmB1kI,EAASilH,GAClB,MAAXjlH,GACA,GAAYilH,EAAK,4BACrBjlH,EAAQqgI,UAAY,GAAW5O,QAAQ,CAACzxH,EAAQqgI,UAAWpb,EAAIob,YAC/DrgI,EAAQujI,eAAiB,GAAWC,aAAa,CAACxjI,EAAQujI,eAAgBte,EAAIse,iBAMlF,SAASoB,GAAgB1f,GACrB,OAAO,GAAYA,EAAK,0EAO5B,SAAS,GAAYA,EAAKt5L,GAEtB,IAAIi5M,EAUJ,MARIA,EADmB3f,EAAS,KAAE19L,OAAS,EAApB09L,UAAAA,OACuBA,EAAS,KAAEhzL,KAAK,QADvCgzL,KAGKA,EAAS,KAAE,GAAXA,UAAAA,OACDA,EAAI5wK,KADH4wK,KAIX,6BAEX,IAAI7yL,MAAJ,GAAA,OAAazG,EAAb,KAAA,OAAwBi5M,IAMlC,SAASC,GAAkB9E,GACvB,OAAqB,MAAdA,EAAqB,GAAWtO,QAAQsO,EAAWz+L,IAAI8+L,KAAuB,KAMzF,SAAS0E,GAAuB/E,GAC5B,OAAqB,MAAdA,EAAqB,GAAWyD,aAAazD,EAAWz+L,IAAIi/L,KAC/D,KAOR,SAASwE,GAAkB9gC,EAAS+gC,GAChC,IAAK/gC,EAAQn5K,eAAe,SACxB,OAAA,EAEJ,IAAMqwG,EAAS8oE,EAAe,MAC9B,QAAI9oE,EAAO8pG,kBAEH,GAAgBD,EAAW7pG,EAAOh8B,cAG9C,IAAM+lI,GAAoB,CACtB,GACA,GACA,GACA,GACA,GACA,IAkBJ,SAASC,GAAoBC,EAAMl1D,GAC/Bk1D,EAAKC,uBACLn1D,EAAWhsI,SAIX+gL,SAAAA,GAEI,IAAMjlH,EAA6BilH,EAAY,QACtB,WAArBjlH,EAAQ6jI,UAAyB7jI,EAAQ2jI,iBACzC1e,EAAI+e,kBAAkBhkI,EAAQ0jI,eAC9B1jI,EAAQ2jI,gBAAAA,MAUpB,SAAS2B,GAAoBrgB,EAAKsgB,GAC9B,IAAKA,EACD,OAAO,KACNvyM,MAAMqQ,QAAQkiM,IACf,GAAYtgB,EAAK,qEAErB,IAAIugB,OAAAA,EAEAC,OAAAA,EAEAC,OAAAA,EAoBJ,OAnBAH,EAAerhM,SAIdzK,SAAAA,GAhDL,IAA2BilM,EAiDfjlM,EAAEtG,cAAgB,GAClBqyM,EAAkB/rM,GAlDHilM,EAoDQjlM,EAnDxByrM,GAAkB7kH,MAIzBj6F,SAAAA,GAAAA,OAAKs4M,EAAcvrM,cAAgB/M,MAgDvBq/M,GACA,GAAYxgB,EAAK,mEACrBwgB,EAAkBhsM,IAGdisM,GACA,GAAYzgB,EAAK,iEACrBygB,EAAiBjsM,OAGrBisM,GAEAD,GAEAD,IAEJ,GAAYvgB,EAAK,iDACV,MAQX,SAAS0gB,GAAUz0E,EAAMtvG,GAErB,IAAMpU,EAAQ0jH,EAAK/iI,QAAQyzB,GACvBpU,GAAS,GACT0jH,EAAK/jI,OAAOqgB,EAAO,GAU3B,SAASo4L,GAAgBz5M,EAAMuL,EAAMqrC,EAAU8iK,GACtChhE,MAAiC,UAAlBghE,KAEI,OAAlBA,GAA4C,SAAlBA,GAA8BnuM,EAAKouM,2BAC5C,WAAlBD,GAA+B9iK,EAASgjK,uBACzClE,GAAemE,eAAe75M,GAC9BuL,EAAKouM,yBAAAA,EACL/iK,EAASgjK,qBAAAA,IAkFjB,SAASE,GAAkBC,GAEvB,IAAM7F,EAAgC8F,GAAaD,GAAmB,EAAuCnG,WACzGmG,EACJ,OAAOlzM,MAAMqQ,QAAQg9L,GAAawE,GAAkBxE,GAAaA,GAAa,KAOlF,SAAS+F,GAAuB7C,EAAgB2C,GAE5C,IAAMG,EAAyCF,GAAaD,GAAmB,EAAuCI,gBAClH/C,EACJ,OAAOvwM,MAAMqQ,QAAQgjM,GAAsBvB,GAAuBuB,GAC9DA,GAAsB,KAiC9B,SAASF,GAAaD,GAClB,OAA0B,MAAnBA,IAA4BlzM,MAAMqQ,QAAQ6iM,IAClB,iBAApBA,EAiBf,IAonFMK,GA1UAC,GAmhBAC,GA2hBAC,GAhWAC,GAoZAC,GAqQAC,GA2ZAC,GAyGAC,GArpIA,GAAA,WAQF,SAAA,EAAY1G,EAAWkD,GAAAA,gBAAAA,KAAAA,GACnBh3M,KAAK8zM,UAAYA,EACjB9zM,KAAKg3M,eAAiBA,EAItBh3M,KAAKy6M,oBAAsB,aAW3Bz6M,KAAKyxM,UAAAA,EAOLzxM,KAAK0xM,SAAAA,EAIL1xM,KAAK06M,kBAAoB,GA4lB7B,OAtlBA,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,SAsGcC,GACV36M,KAAK8zM,UAAY4F,GAAkBiB,KAYvC,CAAA,IAAA,qBAAA,MAAA,SAAmBA,GACf36M,KAAKg3M,eAAiB6C,GAAuBc,KAUjD,CAAA,IAAA,kBAAA,MAAA,WACI36M,KAAK8zM,UAAY,OAUrB,CAAA,IAAA,uBAAA,MAAA,WACI9zM,KAAKg3M,eAAiB,OAc1B,CAAA,IAAA,gBAAA,MAAA,WAAqB,IAAP17K,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACjB,KAA4Bo2K,SAAAA,EACxB1xM,KAAKw6J,UAAYl/H,EAAKs/K,UACtB56M,KAAKw6J,QAAQo9C,cAAct8K,KAQnC,CAAA,IAAA,mBAAA,MAAA,WACIt7B,KAAK43M,cAAc,CAAEgD,UAAAA,IACrB56M,KAAK66M,eAIJpnI,SAAAA,GAAAA,OAAYA,EAAQqnI,wBAgBzB,CAAA,IAAA,kBAAA,MAAA,WAAuB,IAAPx/K,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACnB,KAA4Bo2K,SAAAA,EAC5B1xM,KAAK23M,iBAAAA,EACL33M,KAAK66M,eAIJpnI,SAAAA,GACGA,EAAQsnI,gBAAgB,CAAEH,UAAAA,OAE1B56M,KAAKw6J,UAAYl/H,EAAKs/K,UACtB56M,KAAKw6J,QAAQwgD,eAAe1/K,KAepC,CAAA,IAAA,cAAA,MAAA,WAAmB,IAAPA,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACf,KAA4Bm2K,UAAAA,EACxBzxM,KAAKw6J,UAAYl/H,EAAKs/K,UACtB56M,KAAKw6J,QAAQy9C,YAAY38K,KAkBjC,CAAA,IAAA,iBAAA,MAAA,WAAsB,IAAPA,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAClB,KAA4Bm2K,UAAAA,EAC5BzxM,KAAKq3M,eAAAA,EACLr3M,KAAK66M,eAIJpnI,SAAAA,GACGA,EAAQwnI,eAAe,CAAEL,UAAAA,OAEzB56M,KAAKw6J,UAAYl/H,EAAKs/K,UACtB56M,KAAKw6J,QAAQ0gD,gBAAgB5/K,KAoBrC,CAAA,IAAA,gBAAA,MAAA,WAAqB,IAAPA,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACjB,KAA4Bn5B,OAzapB,WAAA,IA0aJm5B,EAAK6/K,WACen7M,KAAoB,cAAEkuH,KAAKluH,KAAKmC,QAEpDnC,KAAKw6J,UAAYl/H,EAAKs/K,UACtB56M,KAAKw6J,QAAQ4gD,cAAc9/K,KAqBnC,CAAA,IAAA,UAAA,MAAA,WAAe,IAAPA,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAIL+/K,EAAoBr7M,KAAKs7M,mBAAmBhgL,EAAKs/K,UACvD,KAA4Bz4M,OA/bnB,WAgcT,KAA4B2S,OAAS,KACrC9U,KAAK66M,eAIJpnI,SAAAA,GACGA,EAAQ8nI,QAAQx1M,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAI3tF,GAAO,CAAEs/K,UAAAA,QAE7D56M,KAAKw7M,gBAAAA,IACDlgL,EAAK6/K,YACen7M,KAAmB,aAAEkuH,KAAKluH,KAAKyF,OAC/BzF,KAAoB,cAAEkuH,KAAKluH,KAAKmC,SAExDnC,KAAKy7M,iBAAiB11M,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAI3tF,GAAO,CAAE+/K,kBAAAA,KAC/Dr7M,KAAK06M,kBAAkB/iM,SAItB+jM,SAAAA,GAAAA,OAAaA,GAAAA,QAqBlB,CAAA,IAAA,SAAA,MAAA,WAAc,IAAPpgL,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAIJ+/K,EAAoBr7M,KAAKs7M,mBAAmBhgL,EAAKs/K,UACvD,KAA4Bz4M,OArgBtB,QAsgBNnC,KAAK66M,eAIJpnI,SAAAA,GACGA,EAAQs4C,OAAOhmH,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAI3tF,GAAO,CAAEs/K,UAAAA,QAE5D56M,KAAKg4M,uBAAuB,CAAE4C,UAAAA,EAAgBO,UAAW7/K,EAAK6/K,YAC9Dn7M,KAAKy7M,iBAAiB11M,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAI3tF,GAAO,CAAE+/K,kBAAAA,KAC/Dr7M,KAAK06M,kBAAkB/iM,SAItB+jM,SAAAA,GAAAA,OAAaA,GAAAA,QAOlB,CAAA,IAAA,mBAAA,MAAA,SAAiBpgL,GACTt7B,KAAKw6J,UAAYl/H,EAAKs/K,WACtB56M,KAAKw6J,QAAQw9C,uBAAuB18K,GAC/BA,EAAK+/K,mBACNr7M,KAAKw6J,QAAQ0gD,kBAEjBl7M,KAAKw6J,QAAQwgD,oBAOrB,CAAA,IAAA,YAAA,MAAA,SAAUzxM,GACNvJ,KAAKw6J,QAAUjxJ,IAiBnB,CAAA,IAAA,yBAAA,MAAA,WAA8B,IAAP+xB,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAC1Bt7B,KAAK27M,oBACL37M,KAAKw7M,eACDx7M,KAAKm3L,UACLn3L,KAAK47M,8BACL,KAA4B9mM,OAAS9U,KAAK67M,gBAC1C,KAA4B15M,OAASnC,KAAK87M,mBA/jBxC,UAgkBE97M,KAAKmC,QAhjBL,YAgjByBnC,KAAKmC,QAC9BnC,KAAK+7M,mBAAmBzgL,EAAK6/K,aAAAA,IAGjC7/K,EAAK6/K,YACen7M,KAAmB,aAAEkuH,KAAKluH,KAAKyF,OAC/BzF,KAAoB,cAAEkuH,KAAKluH,KAAKmC,SAEpDnC,KAAKw6J,UAAYl/H,EAAKs/K,UACtB56M,KAAKw6J,QAAQw9C,uBAAuB18K,KAQ5C,CAAA,IAAA,sBAAA,MAAA,WAAwC,IAApBA,EAAoB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAb,CAAE6/K,WAAAA,GACzBn7M,KAAK66M,eAIJmB,SAAAA,GAAAA,OAASA,EAAKC,oBAAoB3gL,MACnCt7B,KAAKg4M,uBAAuB,CAAE4C,UAAAA,EAAgBO,UAAW7/K,EAAK6/K,cAMlE,CAAA,IAAA,oBAAA,MAAA,WACI,KAA4Bh5M,OAASnC,KAAKk8M,uBArkBjC,WAzBH,UAomBV,CAAA,IAAA,gBAAA,MAAA,WACI,OAAOl8M,KAAK8zM,UAAY9zM,KAAK8zM,UAAU9zM,MAAQ,OAOnD,CAAA,IAAA,qBAAA,MAAA,SAAmBm7M,GAAAA,IAAAA,EAAAA,KACf,GAAIn7M,KAAKg3M,eAAgB,CACrB,KAA4B70M,OA9lBxB,UAgmBJ,IAAMq5H,EAAMm4E,GAAa3zM,KAAKg3M,eAAeh3M,OAC7CA,KAAKm8M,6BACD3gF,EAAIj7H,WAIHuU,SAAAA,GAAAA,OAAW9U,EAAKo8M,UAAUtnM,EAAQ,CAAEqmM,UAAAA,UAOjD,CAAA,IAAA,8BAAA,MAAA,WACQn7M,KAAKm8M,8BACLn8M,KAAKm8M,6BAA6Bx7M,gBA6B1C,CAAA,IAAA,YAAA,MAAA,SAAUmU,GAAe,IAAPwmB,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACrB,KAA4BxmB,OAASA,EACrC9U,KAAKq8M,uBAAAA,IAAsB/gL,EAAK6/K,aAoBpC,CAAA,IAAA,MAAA,MAAA,SAAIrzL,GACA,OAnpBR,SAAe2rD,EAAS3rD,EAAMqgG,GAC1B,GAAY,MAARrgG,EACA,OAAO,KAIX,GAHKrhB,MAAMqQ,QAAQgR,KACfA,EAAOA,EAAKtmB,MA+oBa,MA7oBzBiF,MAAMqQ,QAAQgR,IAAyB,IAAhBA,EAAK9sB,OAC5B,OAAO,KAIX,IAAIshN,EAAgB7oI,EAkBpB,OAjBA3rD,EAAKnQ,SAIJ/X,SAAAA,GAEO08M,EADAA,aAAyBC,GACTD,EAAcE,SAASj+M,eAAe,GAClD+9M,EAAcE,SAAS58M,GACvB,KAEC08M,aAAyBG,IACdH,EAAcI,GAAG,IAGjB,QAGjBJ,EA7BX,CAmpBqBt8M,KAAM8nB,KA6BvB,CAAA,IAAA,WAAA,MAAA,SAASspL,EAAWtpL,GAEhB,IAAM2rD,EAAU3rD,EAAO9nB,KAAK6iB,IAAIiF,GAAQ9nB,KACxC,OAAOyzE,GAAWA,EAAQ3+D,OAAS2+D,EAAQ3+D,OAAOs8L,GAAa,OAgCnE,CAAA,IAAA,WAAA,MAAA,SAASA,EAAWtpL,GAChB,QAAS9nB,KAAKqxM,SAASD,EAAWtpL,KAMtC,CAAA,IAAA,wBAAA,MAAA,SAasBqzL,GAClB,KAA4Bh5M,OAASnC,KAAK87M,mBACtCX,GACoBn7M,KAAoB,cAAEkuH,KAAKluH,KAAKmC,QAEpDnC,KAAKw6J,SACLx6J,KAAKw6J,QAAQ6hD,sBAAsBlB,KAO3C,CAAA,IAAA,mBAAA,MAAA,WACI,KAA4BtJ,aAAe,IAAI,GAC/C,KAA4BD,cAAgB,IAAI,KAMpD,CAAA,IAAA,mBAAA,MAAA,WACI,OAAI5xM,KAAKk8M,uBApwBA,WAswBLl8M,KAAK8U,OAxxBD,UA0xBJ9U,KAAK28M,uBAjxBD,WAAA,UAmxBJ38M,KAAK28M,uBA5xBD,WAAA,UAPF,UA4yBV,CAAA,IAAA,yBAAA,MAAA,SAAuBx6M,GACnB,OAAOnC,KAAK48M,cAIXnpI,SAAAA,GAAAA,OAAYA,EAAQtxE,SAAWA,OAMpC,CAAA,IAAA,oBAAA,MAAA,WACI,OAAOnC,KAAK48M,cAIXnpI,SAAAA,GAAAA,OAAYA,EAAQjP,WAMzB,CAAA,IAAA,sBAAA,MAAA,WACI,OAAOxkE,KAAK48M,cAIXnpI,SAAAA,GAAAA,OAAYA,EAAQi+H,aAOzB,CAAA,IAAA,kBAAA,MAAA,WAAuB,IAAPp2K,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACnB,KAA4Bm2K,UAAYzxM,KAAK68M,oBACzC78M,KAAKw6J,UAAYl/H,EAAKs/K,UACtB56M,KAAKw6J,QAAQ0gD,gBAAgB5/K,KAQrC,CAAA,IAAA,iBAAA,MAAA,WAAsB,IAAPA,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAClB,KAA4Bo2K,QAAU1xM,KAAK88M,sBACvC98M,KAAKw6J,UAAYl/H,EAAKs/K,UACtB56M,KAAKw6J,QAAQwgD,eAAe1/K,KAQpC,CAAA,IAAA,gBAAA,MAAA,SAAcyhL,GACV,MAA4B,iBAAdA,GAAwC,OAAdA,GACF,IAAlCh3M,OAAOP,KAAKu3M,GAAW/hN,QAAgB,UAAW+hN,GAAa,aAAcA,IAOrF,CAAA,IAAA,8BAAA,MAAA,SAA4B34M,GACxBpE,KAAKy6M,oBAAsBr2M,IAO/B,CAAA,IAAA,qBAAA,MAAA,SAAmBk3B,GACXs+K,GAAat+K,IAAiD,MAAxC,EAA4Bg8K,WAClDt3M,KAAKg9M,UAA+B,EAAqC,YAWjF,CAAA,IAAA,qBAAA,MAAA,SAAmBpC,GAGf,OAAQA,GADY56M,KAAKw6J,SAAWx6J,KAAKw6J,QAAQh2F,QACbxkE,KAAKw6J,QAAQqiD,sBAAAA,CAAAA,IAAAA,SAAAA,IAAAA,WAntBjD,OAAO78M,KAAKw6J,UAUhB,CAAA,IAAA,QAAA,IAAA,WACI,MA7LM,UA6LCx6J,KAAKmC,SAUhB,CAAA,IAAA,UAAA,IAAA,WACI,MAjMQ,YAiMDnC,KAAKmC,SAUhB,CAAA,IAAA,UAAA,IAAA,WACI,MAnMQ,WAmMDnC,KAAKmC,SAahB,CAAA,IAAA,WAAA,IAAA,WACI,MAxMS,aAwMFnC,KAAKmC,SAWhB,CAAA,IAAA,UAAA,IAAA,WACI,MApNS,aAoNFnC,KAAKmC,SAShB,CAAA,IAAA,QAAA,IAAA,WACI,OAAQnC,KAAKyxM,WASjB,CAAA,IAAA,YAAA,IAAA,WACI,OAAQzxM,KAAK0xM,UASjB,CAAA,IAAA,WAAA,IAAA,WACI,OAAO1xM,KAAKg9M,UAAYh9M,KAAKg9M,UAAah9M,KAAKuJ,OAASvJ,KAAKuJ,OAAO+tM,SAAW,WAYnF,CAAA,IAAA,OAAA,IAAA,WAseI,IADA,IAAI99M,EAAIwG,KACDxG,EAAEghK,SACLhhK,EAAIA,EAAEghK,QAEV,OAAOhhK,MAOX,EAhoBE,GAqgCAyjN,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAcF,SAAA,IAA+CjG,IAAAA,EAAnC+F,EAAmC/F,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAvB,KAAM2C,EAAiB3C,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAAAA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC3C58E,EAAAA,EAAAA,KAAAA,KAAMs/E,GAAkBC,GAAkBE,GAAuB7C,EAAgB2C,KAI5EuD,UAAY,GACjBl9M,EAAKm9M,gBAAgBJ,GACrB/8M,EAAKo9M,mBAAmBzD,GACxB35M,EAAKg4M,uBAAuB,CAAE4C,UAAAA,EAAgBO,WAAAA,IAC9Cn7M,EAAKq9M,mBATsCrG,EA4KkB+F,OAzIjE,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASt3M,GAAiB,IAAA,EAAA,KAAViQ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACtB,KAA4BjQ,MAAQzF,KAAKm3M,cAAgB1xM,EACrDzF,KAAKk9M,UAAUliN,SAAAA,IAAU0a,EAAQwiM,uBACjCl4M,KAAKk9M,UAAUvlM,SAId+jM,SAAAA,GAAAA,OAAaA,EAAS17M,EAAKyF,OAAAA,IAAOiQ,EAAQ4nM,0BAE/Ct9M,KAAKg4M,uBAAuBtiM,KAchC,CAAA,IAAA,aAAA,MAAA,SAAWjQ,GAAiB,IAAViQ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACxB1V,KAAK4oJ,SAASnjJ,EAAOiQ,KAqBzB,CAAA,IAAA,QAAA,MAAA,WAAkC,IAA5BqnM,EAA4B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAhB,KAAMrnM,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAC9B1V,KAAKm9M,gBAAgBJ,GACrB/8M,KAAKi7M,eAAevlM,GACpB1V,KAAK+6M,gBAAgBrlM,GACrB1V,KAAK4oJ,SAAS5oJ,KAAKyF,MAAOiQ,GAC1B1V,KAAKo3M,gBAAAA,IAMT,CAAA,IAAA,eAAA,MAAA,cAMA,CAAA,IAAA,eAAA,MAAA,SAAa9lL,GACT,OAAA,IAMJ,CAAA,IAAA,uBAAA,MAAA,WACI,OAAOtxB,KAAKwxM,WAQhB,CAAA,IAAA,mBAAA,MAAA,SAAiBptM,GACbpE,KAAKk9M,UAAUx8M,KAAK0D,KAMxB,CAAA,IAAA,kBAAA,MAAA,WACIpE,KAAKk9M,UAAY,GACjBl9M,KAAK06M,kBAAoB,GACzB16M,KAAKy6M,oBAAsB,eAW/B,CAAA,IAAA,2BAAA,MAAA,SAAyBr2M,GACrBpE,KAAK06M,kBAAkBh6M,KAAK0D,KAOhC,CAAA,IAAA,gBAAA,MAAA,SAAc+2C,MAKd,CAAA,IAAA,uBAAA,MAAA,WACI,QAAsB,WAAlBn7C,KAAKs3M,WACDt3M,KAAKq3M,eACLr3M,KAAKi4M,cACLj4M,KAAK23M,iBACL33M,KAAK43M,iBACL53M,KAAKo3M,kBACLp3M,KAAK4oJ,SAAS5oJ,KAAKm3M,cAAe,CAAEyD,UAAAA,EAAgB1C,uBAAAA,IAC7C,MAUnB,CAAA,IAAA,kBAAA,MAAA,SAAgB6E,GACR/8M,KAAKu9M,cAAcR,IACnB,KAA4Bt3M,MAAQzF,KAAKm3M,cAAgB4F,EAAUt3M,MACnEs3M,EAAUvL,SAAWxxM,KAAKu7M,QAAQ,CAAEX,UAAAA,EAAgBO,WAAAA,IAChDn7M,KAAK+rH,OAAO,CAAE6uF,UAAAA,EAAgBO,WAAAA,KAGlC,KAA4B11M,MAAQzF,KAAKm3M,cAAgB4F,MAAAA,EA1L/DE,CAAoB,IAuRpBV,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAcF,SAAA,EAAYC,EAAU7C,EAAiB3C,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACnC58E,EAAAA,EAAAA,KAAAA,KAAMs/E,GAAkBC,GAAkBE,GAAuB7C,EAAgB2C,KAC5E6C,SAAWA,EAChBx8M,EAAKq9M,mBACLr9M,EAAKo9M,mBAAmBzD,GACxB35M,EAAKw9M,iBACLx9M,EAAKg4M,uBAAuB,CAAE4C,UAAAA,EAAgBO,WAAAA,IANXnE,EAoayCp3M,OAlZhF,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,SAAgBA,EAAM6zE,GAClB,OAAIzzE,KAAKw8M,SAAS58M,GACPI,KAAKw8M,SAAS58M,IACzBI,KAAKw8M,SAAS58M,GAAQ6zE,EACtBA,EAAQgqI,UAAUz9M,MAClByzE,EAAQiqI,4BAA4B19M,KAAKy6M,qBAClChnI,KAWX,CAAA,IAAA,aAAA,MAAA,SAAW7zE,EAAM6zE,GACbzzE,KAAK29M,gBAAgB/9M,EAAM6zE,GAC3BzzE,KAAKg4M,yBACLh4M,KAAKy6M,wBAQT,CAAA,IAAA,gBAAA,MAAA,SAAc76M,GACNI,KAAKw8M,SAAS58M,IACdI,KAAKw8M,SAAS58M,GAAM89M,6BAA4B,sBAI5C19M,KAAKw8M,SAAS58M,GACtBI,KAAKg4M,yBACLh4M,KAAKy6M,wBAST,CAAA,IAAA,aAAA,MAAA,SAAW76M,EAAM6zE,GACTzzE,KAAKw8M,SAAS58M,IACdI,KAAKw8M,SAAS58M,GAAM89M,6BAA4B,sBAI5C19M,KAAKw8M,SAAS58M,GAClB6zE,GACAzzE,KAAK29M,gBAAgB/9M,EAAM6zE,GAC/BzzE,KAAKg4M,yBACLh4M,KAAKy6M,wBAYT,CAAA,IAAA,WAAA,MAAA,SAAS/mI,GACL,OAAO1zE,KAAKw8M,SAASj+M,eAAem1E,IAAgB1zE,KAAKw8M,SAAS9oI,GAAayjH,UAsCnF,CAAA,IAAA,WAAA,MAAA,SAAS1xL,GAAiB,IAAA,EAAA,KAAViQ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACtB1V,KAAK49M,uBAAuBn4M,GAC5BM,OAAOP,KAAKC,GAAOkS,SAInB/X,SAAAA,GACII,EAAK69M,uBAAuBj+M,GAC5BI,EAAKw8M,SAAS58M,GAAMgpJ,SAASnjJ,EAAM7F,GAAO,CAAEg7M,UAAAA,EAAgBO,UAAWzlM,EAAQylM,eAEnFn7M,KAAKg4M,uBAAuBtiM,KAoChC,CAAA,IAAA,aAAA,MAAA,SAAWjQ,GAAiB,IAAA,EAAA,KAAViQ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACxB3P,OAAOP,KAAKC,GAAOkS,SAInB/X,SAAAA,GACQI,EAAKw8M,SAAS58M,IACdI,EAAKw8M,SAAS58M,GAAMk+M,WAAWr4M,EAAM7F,GAAO,CAAEg7M,UAAAA,EAAgBO,UAAWzlM,EAAQylM,eAGzFn7M,KAAKg4M,uBAAuBtiM,KA4DhC,CAAA,IAAA,QAAA,MAAA,WAA4B,IAAtBjQ,EAAsB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAd,GAAIiQ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACxB1V,KAAK66M,eAAc,SAKlBpnI,EAAS7zE,GACN6zE,EAAQhU,MAAMh6D,EAAM7F,GAAO,CAAEg7M,UAAAA,EAAgBO,UAAWzlM,EAAQylM,eAEpEn7M,KAAKk7M,gBAAgBxlM,GACrB1V,KAAKg7M,eAAetlM,GACpB1V,KAAKg4M,uBAAuBtiM,KAUhC,CAAA,IAAA,cAAA,MAAA,WACI,OAAO1V,KAAK+9M,gBAAgB,IAAI,SAM/Bz1F,EAAK70C,EAAS7zE,GANiB,OAO5B0oH,EAAI1oH,GAAQ6zE,aAAmBwpI,GAAcxpI,EAAQhuE,MAAQ,EAA+Bu4M,cACrF11F,OAOf,CAAA,IAAA,uBAAA,MAAA,WAEI,IAAI21F,EAAiBj+M,KAAK+9M,iBAAAA,GAAuB,SAKhD9lJ,EAAS8xD,GALuC,QAMtCA,EAAM+uF,wBAAgC7gJ,KAIjD,OAFIgmJ,GACAj+M,KAAKg4M,uBAAuB,CAAE4C,UAAAA,IAC3BqD,IAOX,CAAA,IAAA,yBAAA,MAAA,SAAuBr+M,GACnB,IAAKmG,OAAOP,KAAKxF,KAAKw8M,UAAUxhN,OAC5B,MAAM,IAAI6K,MAAM,0KAKpB,IAAK7F,KAAKw8M,SAAS58M,GACf,MAAM,IAAIiG,MAAJ,uCAAA,OAAiDjG,EAAjD,QAQd,CAAA,IAAA,gBAAA,MAAA,SAAcu7C,GAAAA,IAAAA,EAAAA,KACVp1C,OAAOP,KAAKxF,KAAKw8M,UAAU7kM,SAI3B1b,SAAAA,GAAAA,OAAKk/C,EAAGn7C,EAAKw8M,SAASvgN,GAAIA,QAM9B,CAAA,IAAA,iBAAA,MAAA,WAAA,IAAA,EAAA,KACI+D,KAAK66M,eAIJpnI,SAAAA,GACGA,EAAQgqI,UAAUz9M,GAClByzE,EAAQiqI,4BAA4B19M,EAAKy6M,0BAOjD,CAAA,IAAA,eAAA,MAAA,WACI,KAA4Bh1M,MAAQzF,KAAKk+M,iBAO7C,CAAA,IAAA,eAAA,MAAA,SAAa5sL,GAAAA,IAAAA,EAAAA,KAEL2vG,GAAAA,EASJ,OARAjhI,KAAK66M,eAAc,SAKlBpnI,EAAS7zE,GACNqhI,EAAMA,GAAQjhI,EAAK0hB,SAAS9hB,IAAS0xB,EAAUmiD,MAE5CwtD,IAMX,CAAA,IAAA,eAAA,MAAA,WAAA,IAAA,EAAA,KACI,OAAOjhI,KAAK+9M,gBAAgB,IAAI,SAM/Bz1F,EAAK70C,EAAS7zE,GANiB,OAOxB6zE,EAAQ0jH,SAAWn3L,EAAKwxM,YACxBlpF,EAAI1oH,GAAQ6zE,EAAQhuE,OAEjB6iH,OASf,CAAA,IAAA,kBAAA,MAAA,SAAgB61F,EAAW/5M,GAEvB,IAAI68H,EAAMk9E,EASV,OARAn+M,KAAK66M,eAAc,SAKlBpnI,EAAS7zE,GACNqhI,EAAM78H,EAAG68H,EAAKxtD,EAAS7zE,MAEpBqhI,IAMX,CAAA,IAAA,uBAAA,MAAA,WACI,IAAA,IAAA,EAAA,EAAA,EAA0Bl7H,OAAOP,KAAKxF,KAAKw8M,UAA3C,EAAA,EAAA,OAAA,IAAA,CAAK,IAAM9oI,EAAAA,EAAAA,GACP,GAAI1zE,KAAKw8M,SAAS9oI,GAAayjH,QAC3B,OAAA,EAGR,OAAOpxL,OAAOP,KAAKxF,KAAKw8M,UAAUxhN,OAAS,GAAKgF,KAAKwxM,WAOzD,CAAA,IAAA,yBAAA,MAAA,SAAuB/rM,GACnBzF,KAAK66M,eAAc,SAKlBpnI,EAAS7zE,GACN,QAAA,IAAI6F,EAAM7F,GACN,MAAM,IAAIiG,MAAJ,oDAAA,OAA8DjG,EAA9D,cAA8DA,EAlb9E28M,CAAkB,IA2flBE,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAcF,SAAA,EAAYD,EAAU7C,EAAiB3C,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACnC58E,EAAAA,EAAAA,KAAAA,KAAMs/E,GAAkBC,GAAkBE,GAAuB7C,EAAgB2C,KAC5E6C,SAAWA,EAChBx8M,EAAKq9M,mBACLr9M,EAAKo9M,mBAAmBzD,GACxB35M,EAAKw9M,iBACLx9M,EAAKg4M,uBAAuB,CAAE4C,UAAAA,EAAgBO,WAAAA,IANXnE,EAwHvC,OA1GA,aAAA,EAAA,CAAA,CAAA,IAAA,KAAA,MAAA,SAAG/1L,GACC,OAAOjhB,KAAKw8M,SAASv7L,KAQzB,CAAA,IAAA,OAAA,MAAA,SAAKwyD,GACDzzE,KAAKw8M,SAAS97M,KAAK+yE,GACnBzzE,KAAKo+M,iBAAiB3qI,GACtBzzE,KAAKg4M,yBACLh4M,KAAKy6M,wBAST,CAAA,IAAA,SAAA,MAAA,SAAOx5L,EAAOwyD,GACVzzE,KAAKw8M,SAAS57M,OAAOqgB,EAAO,EAAGwyD,GAC/BzzE,KAAKo+M,iBAAiB3qI,GACtBzzE,KAAKg4M,2BAQT,CAAA,IAAA,WAAA,MAAA,SAAS/2L,GACDjhB,KAAKw8M,SAASv7L,IACdjhB,KAAKw8M,SAASv7L,GAAOy8L,6BAA4B,eAIrD19M,KAAKw8M,SAAS57M,OAAOqgB,EAAO,GAC5BjhB,KAAKg4M,2BAST,CAAA,IAAA,aAAA,MAAA,SAAW/2L,EAAOwyD,GACVzzE,KAAKw8M,SAASv7L,IACdjhB,KAAKw8M,SAASv7L,GAAOy8L,6BAA4B,eAIrD19M,KAAKw8M,SAAS57M,OAAOqgB,EAAO,GACxBwyD,IACAzzE,KAAKw8M,SAAS57M,OAAOqgB,EAAO,EAAGwyD,GAC/BzzE,KAAKo+M,iBAAiB3qI,IAE1BzzE,KAAKg4M,yBACLh4M,KAAKy6M,wBAMT,CAAA,IAAA,WAAA,MAAA,SAuCSh1M,GAAiB,IAAA,EAAA,KAAViQ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACtB1V,KAAK49M,uBAAuBn4M,GAC5BA,EAAMkS,SAAQ,SAKbm7C,EAAU7xC,GACPjhB,EAAK69M,uBAAuB58L,GAC5BjhB,EAAK08M,GAAGz7L,GAAO2nI,SAAS91F,EAAU,CAAE8nJ,UAAAA,EAAgBO,UAAWzlM,EAAQylM,eAE3En7M,KAAKg4M,uBAAuBtiM,KAqChC,CAAA,IAAA,aAAA,MAAA,SAAWjQ,GAAiB,IAAA,EAAA,KAAViQ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACxBjQ,EAAMkS,SAAQ,SAKbm7C,EAAU7xC,GACHjhB,EAAK08M,GAAGz7L,IACRjhB,EAAK08M,GAAGz7L,GAAO68L,WAAWhrJ,EAAU,CAAE8nJ,UAAAA,EAAgBO,UAAWzlM,EAAQylM,eAGjFn7M,KAAKg4M,uBAAuBtiM,KAiDhC,CAAA,IAAA,QAAA,MAAA,WAA4B,IAAtBjQ,EAAsB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAd,GAAIiQ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACxB1V,KAAK66M,eAAc,SAKlBpnI,EAASxyD,GACNwyD,EAAQhU,MAAMh6D,EAAMwb,GAAQ,CAAE25L,UAAAA,EAAgBO,UAAWzlM,EAAQylM,eAErEn7M,KAAKk7M,gBAAgBxlM,GACrB1V,KAAKg7M,eAAetlM,GACpB1V,KAAKg4M,uBAAuBtiM,KAShC,CAAA,IAAA,cAAA,MAAA,WACI,OAAO1V,KAAKw8M,SAASznM,KAIpB0+D,SAAAA,GAAAA,OACUA,aAAmBwpI,GAAcxpI,EAAQhuE,MAAQ,EAA+Bu4M,mBAkC/F,CAAA,IAAA,QAAA,MAAA,WACQh+M,KAAKw8M,SAASxhN,OAAS,IAE3BgF,KAAK66M,eAIJpnI,SAAAA,GAAAA,OAAYA,EAAQiqI,6BAA4B,kBAIjD19M,KAAKw8M,SAAS57M,OAAO,GACrBZ,KAAKg4M,4BAMT,CAAA,IAAA,uBAAA,MAAA,WAEI,IAAIiG,EAAiBj+M,KAAKw8M,SAASt4M,QAAO,SAKzC+zD,EAAS8xD,GALgC,QAM/BA,EAAM+uF,wBAAgC7gJ,KAAAA,GAIjD,OAFIgmJ,GACAj+M,KAAKg4M,uBAAuB,CAAE4C,UAAAA,IAC3BqD,IAOX,CAAA,IAAA,yBAAA,MAAA,SAAuBh9L,GACnB,IAAKjhB,KAAKw8M,SAASxhN,OACf,MAAM,IAAI6K,MAAM,0KAKpB,IAAK7F,KAAK08M,GAAGz7L,GACT,MAAM,IAAIpb,MAAJ,qCAAA,OAA+Cob,MAQ7D,CAAA,IAAA,gBAAA,MAAA,SAAck6B,GACVn7C,KAAKw8M,SAAS7kM,SAAQ,SAKrB87D,EAASxyD,GACNk6B,EAAGs4B,EAASxyD,QAOpB,CAAA,IAAA,eAAA,MAAA,WAAA,IAAA,EAAA,KACI,KAA4Bxb,MACxBzF,KAAKw8M,SAAStlM,QAIbu8D,SAAAA,GAAAA,OAAYA,EAAQ0jH,SAAWn3L,EAAKwxM,YAChCz8L,KAIJ0+D,SAAAA,GAAAA,OAAYA,EAAQhuE,WAO7B,CAAA,IAAA,eAAA,MAAA,SAAa6rB,GACT,OAAOtxB,KAAKw8M,SAAS1oH,MAIpBrgB,SAAAA,GAAAA,OAAYA,EAAQ0jH,SAAW7lK,EAAUmiD,QAM9C,CAAA,IAAA,iBAAA,MAAA,WAAA,IAAA,EAAA,KACIzzE,KAAK66M,eAIJpnI,SAAAA,GAAAA,OAAYzzE,EAAKo+M,iBAAiB3qI,QAOvC,CAAA,IAAA,yBAAA,MAAA,SAAuBhuE,GACnBzF,KAAK66M,eAAc,SAKlBpnI,EAAS94E,GACN,QAAA,IAAI8K,EAAM9K,GACN,MAAM,IAAIkL,MAAJ,kDAAA,OAA4DlL,EAA5D,WAQlB,CAAA,IAAA,uBAAA,MAAA,WAAA,IAAA,EAAA,EAAA,2BAC0BqF,KAAKw8M,UAD/B,IACI,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAA,CACI,GADJ,EAAA,MACgBrlB,QACR,OAAA,GAHZ,MAAA,GAAA,EAAA,EAAA,GAAA,QAAA,EAAA,IAKI,OAAOn3L,KAAKw8M,SAASxhN,OAAS,GAAKgF,KAAKwxM,WAO5C,CAAA,IAAA,mBAAA,MAAA,SAAiB/9H,GACbA,EAAQgqI,UAAUz9M,MAClByzE,EAAQiqI,4BAA4B19M,KAAKy6M,uBAAAA,CAAAA,IAAAA,SAAAA,IAAAA,WAxVzC,OAAOz6M,KAAKw8M,SAASxhN,WAsCzB,EAtIEyhN,CAAkB,IAsclB4B,GAAwB,CAC1Bh7E,QAAS,GACTizB,YAAaj1B,IAAW,WAAA,OAGlB,OAOJi9E,GAFA/uM,QAAQwJ,QAAQ,MAVtB,KA6EMkhM,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,EAAYzG,EAAYuG,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACpB3/E,EAAAA,EAAAA,KAAAA,OAKKmkF,WAAAA,EACLv+M,EAAKw+M,YAAc,GAKnBx+M,EAAKy+M,SAAW,IAAI,GACpBz+M,EAAK64M,KACD,IAAI0D,GAAU,GAAIjE,GAAkB9E,GAAa+E,GAAuBwB,IAdxDA,EAiExB,OA5CA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WACI/5M,KAAKo9M,uBAOT,CAAA,IAAA,aAAA,MAAA,SAoCW1kB,GAAAA,IAAAA,EAAAA,KACP4lB,GAAgB5uM,MAAK,WAKjB,IAAMq3B,EAAY/mC,EAAK0+M,eAAehmB,EAAI5wK,MAC1C,EAA2B2rD,QACJ1sC,EAAU42K,gBAAgBjlB,EAAI94L,KAAM84L,EAAIjlH,SAC/DsjI,GAAare,EAAIjlH,QAASilH,GAC1BA,EAAIjlH,QAAQukI,uBAAuB,CAAEmD,WAAAA,IACrCn7M,EAAKw+M,YAAY99M,KAAKg4L,QAU9B,CAAA,IAAA,aAAA,MAAA,SAAWA,GACP,OAA0B14L,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,QAShD,CAAA,IAAA,gBAAA,MAAA,SAAc4wK,GAAAA,IAAAA,EAAAA,KACV4lB,GAAgB5uM,MAAK,WAKjB,IAAMq3B,EAAY/mC,EAAK0+M,eAAehmB,EAAI5wK,MACtCif,GACAA,EAAU43K,cAAcjmB,EAAI94L,MAEhCw5M,GAAUp5M,EAAKw+M,YAAa9lB,QAUpC,CAAA,IAAA,eAAA,MAAA,SAAaA,GAAAA,IAAAA,EAAAA,KACT4lB,GAAgB5uM,MAAK,WAKjB,IAAMq3B,EAAY/mC,EAAK0+M,eAAehmB,EAAI5wK,MAEpCw2B,EAAQ,IAAIi+J,GAAU,IAC5BpE,GAAmB75J,EAAOo6I,GAC1B3xJ,EAAU42K,gBAAgBjlB,EAAI94L,KAAM0+C,GACpCA,EAAM05J,uBAAuB,CAAEmD,WAAAA,SAUvC,CAAA,IAAA,kBAAA,MAAA,SAAgBziB,GAAAA,IAAAA,EAAAA,KACZ4lB,GAAgB5uM,MAAK,WAKjB,IAAMq3B,EAAY/mC,EAAK0+M,eAAehmB,EAAI5wK,MACtCif,GACAA,EAAU43K,cAAcjmB,EAAI94L,WAWxC,CAAA,IAAA,eAAA,MAAA,SAAa84L,GACT,OAA0B14L,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,QAShD,CAAA,IAAA,cAAA,MAAA,SAAY4wK,EAAKjzL,GAAAA,IAAAA,EAAAA,KACb64M,GAAgB5uM,MAAK,WAKe1P,EAAK64M,KAAKh2L,IAAuB61K,EAAS,MACrE9vC,SAASnjJ,QAUtB,CAAA,IAAA,WAAA,MAAA,SAASA,GACLzF,KAAKyzE,QAAQm1E,SAASnjJ,KAU1B,CAAA,IAAA,WAAA,MAAA,SAASirM,GAIL,OAHA,KAA4B6N,WAAAA,EAC5B3F,GAAoB54M,KAAK64M,KAAM74M,KAAKw+M,aACpCx+M,KAAKy+M,SAASvwF,KAAKwiF,IAAAA,IAQvB,CAAA,IAAA,UAAA,MAAA,WACI1wM,KAAK4+M,cAST,CAAA,IAAA,YAAA,MAAA,SAAUn5M,GACNzF,KAAK64M,KAAKp5I,MAAMh6D,GAChB,KAA4B84M,WAAAA,IAMhC,CAAA,IAAA,qBAAA,MAAA,WACQv+M,KAAK0V,SAAoC,MAAzB1V,KAAK0V,QAAQ4hM,WAC7Bt3M,KAAK64M,KAAKmE,UAAYh9M,KAAK0V,QAAQ4hM,YAQ3C,CAAA,IAAA,iBAAA,MAAA,SAAexvL,GAEX,OADAA,EAAK/T,MACE+T,EAAK9sB,OAA4BgF,KAAK64M,KAAKh2L,IAAIiF,GAAU9nB,KAAK64M,OAAAA,CAAAA,IAAAA,gBAAAA,IAAAA,WA7MrE,OAAO74M,OAOX,CAAA,IAAA,UAAA,IAAA,WACI,OAAOA,KAAK64M,OAQhB,CAAA,IAAA,OAAA,IAAA,WACI,MAAO,KAOX,CAAA,IAAA,WAAA,IAAA,WACI,OAAO74M,KAAK64M,KAAK2D,aAUrB,EAtEEvC,CAAe,KAmPdr3E,UAAO,SAAwB5oI,GAAK,OAAO,IAAKA,GAAKigN,IAAQ,GAAyBhH,GAAe,IAAK,GAAyBC,GAAqB,MAC/J+G,GAAO73E,UAAO,GAAyB,CAAEj3H,KAAM8uM,GAAQv7K,UAAW,CAAC,CAAC,OAAQ,EAAG,WAAY,GAAI,EAAG,YAAa,IAAK,CAAC,WAAY,CAAC,GAAI,SAAU,KAAM2nG,aAAc,SAA6Bkc,EAAInmI,GAAgB,EAALmmI,GACxM,GAAkB,UAAU,SAA0CmuD,GAAU,OAAOt0L,EAAIyiM,SAASnO,KAApG,CAAgH,SAAS,WAA6C,OAAOt0L,EAAI0iM,cAChLr4E,OAAQ,CAAE/wH,QAAS,CAAC,gBAAiB,YAAcgxH,QAAS,CAAE+3E,SAAU,YAAc93E,SAAU,CAAC,UAAWrrH,SAAU,CAAC,GAA0B,CAAC+iM,KAAyB,MAHpLpE,IAAAA,KAuFMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAkEF,OAlEEA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,WAAAA,MAAAA,WAQEh6M,KAAK++M,mBACc/+M,KAAmB,cAAEg/M,aAAah/M,QAQzD,CAAA,IAAA,cAAA,MAAA,WACQA,KAAKi/M,eACLj/M,KAAKi/M,cAAcC,gBAAgBl/M,QAQ3C,CAAA,IAAA,mBAAA,MAAA,cAuCA,CAAA,IAAA,UAAA,IAAA,WAtCI,OAA0BA,KAAmB,cAAEm/M,aAAan/M,QAOhE,CAAA,IAAA,OAAA,IAAA,WACI,OAAO82M,GAAyB,MAAb92M,KAAKJ,KAAeI,KAAKJ,KAAOI,KAAKJ,KAAKC,WAAYG,KAAKw6J,WAOlF,CAAA,IAAA,gBAAA,IAAA,WACI,OAAOx6J,KAAKw6J,QAAUx6J,KAAKw6J,QAAQykD,cAAgB,OAOvD,CAAA,IAAA,YAAA,IAAA,WACI,OAAO3G,GAAkBt4M,KAAKo/M,eAOlC,CAAA,IAAA,iBAAA,IAAA,WACI,OAAO7G,GAAuBv4M,KAAKq/M,sBAMvC,EAlEErF,CAAmC,KAoEdp3E,UAAO,SAA4C5oI,GAAK,OAAOslN,GAAwCtlN,GAAKggN,KACvIA,GAA2B53E,UAAO,GAAyB,CAAEj3H,KAAM6uM,GAA4B1+L,SAAU,CAAC,MAD1G0+L,IAEMsF,GAA0C,GAA6B,IAiCvEC,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAuDElK,OAvDFkK,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,uBAAAA,MAAAA,WAKE,MAAM,IAAI15M,MAAJ,8LAAA,OAINwvM,GAJM,2UAeV,CAAA,IAAA,yBAAA,MAAA,WACI,MAAM,IAAIxvM,MAAJ,4MAAA,OAKNwvM,GALM,sGAAA,OASNA,OAKJ,CAAA,IAAA,uBAAA,MAAA,WACI,MAAM,IAAIxvM,MAAM,wUASpB,CAAA,IAAA,4BAAA,MAAA,WACI,MAAM,IAAIA,MAAJ,qKAAA,OAKNwvM,GALM,wHAAA,OASNA,SAAAA,EAvDFkK,GAiEAC,GAAqB,CACvBn8E,QAAS,GACTizB,YAAaj1B,IAAW,WAAA,OAGlB,OALV,KAiCM64E,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAY3wM,EAAQiqM,EAAYuG,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC5B3/E,EAAAA,EAAAA,KAAAA,OACKogC,QAAUjxJ,EACfvJ,EAAKo/M,YAAc5L,EACnBxzM,EAAKq/M,iBAAmBtF,EAJIA,EAYH0F,OAF7B,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,WACUz/M,KAAKw6J,mBAAmB0/C,GAAmBl6M,KAAKw6J,mBAAmB,IACrE+kD,GAAqBE,gCAAAA,EAlB3BvF,CAAqB,KAsBdt3E,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAKkgN,IAAc,GAAyB,GAAkB,GAAI,GAAyBjH,GAAe,IAAK,GAAyBC,GAAqB,MAChOgH,GAAa93E,UAAO,GAAyB,CAAEj3H,KAAM+uM,GAAcx7K,UAAW,CAAC,CAAC,GAAI,eAAgB,KAAM+nG,OAAQ,CAAE7mI,KAAM,CAAC,eAAgB,SAAW+mI,SAAU,CAAC,gBAAiBrrH,SAAU,CAAC,GAA0B,CAACkkM,KAAsB,MAD9OtF,IAoDMwF,GAAqB,CACvBr8E,QAAS6uE,GACT57C,YAAaj1B,IAAW,WAAA,OAGlB,OAwBJs+E,GAnBApwM,QAAQwJ,QAAQ,MAVtB,KAiHMqhM,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAOF,SAAA,EAAY7wM,EAAQiqM,EAAYuG,EAAiBf,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC7C5+E,EAAAA,EAAAA,KAAAA,OACK3mD,QAAU,IAAIwpI,GAInBj9M,EAAK4/M,aAAAA,EAML5/M,EAAKg1H,OAAS,IAAI,GAClBh1H,EAAKw6J,QAAUjxJ,EACfvJ,EAAKoyM,eAAiBoB,GAAc,GACpCxzM,EAAKqyM,oBAAsB0H,GAAmB,GAC9C/5M,EAAKmyM,cAAgB4G,GAAAA,uBAAAA,GAA0BC,GAhBFA,EAyFjD,OA/DA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAAYthC,GACR13K,KAAK6/M,kBACA7/M,KAAK4/M,aACN5/M,KAAK8/M,gBACL,eAAgBpoC,GAChB13K,KAAK+/M,gBAAgBroC,GAErB8gC,GAAkB9gC,EAAS13K,KAAKy4M,aAChCz4M,KAAKw7M,aAAax7M,KAAKggN,OACvBhgN,KAAKy4M,UAAYz4M,KAAKggN,SAS9B,CAAA,IAAA,cAAA,MAAA,WACIhgN,KAAKi/M,eAAiBj/M,KAAKi/M,cAAcN,cAAc3+M,QAQ3D,CAAA,IAAA,oBAAA,MAAA,SAoCkB8yD,GACd9yD,KAAKy4M,UAAY3lJ,EACjB9yD,KAAKg1H,OAAO9G,KAAKp7D,KAMrB,CAAA,IAAA,gBAAA,MAAA,WACI9yD,KAAKo9M,qBACLp9M,KAAKigN,gBAAkBjgN,KAAKkgN,mBAAqBlgN,KAAKi/M,cAAckB,WAAWngN,MAC/EA,KAAK4/M,aAAAA,IAMT,CAAA,IAAA,qBAAA,MAAA,WACQ5/M,KAAK0V,SAAoC,MAAzB1V,KAAK0V,QAAQ4hM,WAC7Bt3M,KAAKyzE,QAAQupI,UAAYh9M,KAAK0V,QAAQ4hM,YAO9C,CAAA,IAAA,gBAAA,MAAA,WACI,OAAQt3M,KAAKw6J,YAAcx6J,KAAK0V,UAAW1V,KAAK0V,QAAQ0qM,cAM5D,CAAA,IAAA,mBAAA,MAAA,WACIrJ,GAAa/2M,KAAKyzE,QAASzzE,MAC3BA,KAAKyzE,QAAQukI,uBAAuB,CAAEmD,WAAAA,MAM1C,CAAA,IAAA,kBAAA,MAAA,WACSn7M,KAAKigN,iBACNjgN,KAAK++M,mBAET/+M,KAAK80M,eAMT,CAAA,IAAA,mBAAA,MAAA,aACU90M,KAAKw6J,mBAAmB,KAC1Bx6J,KAAKw6J,mBAAmB,GACxB+kD,GAAqBc,yBAEdrgN,KAAKw6J,mBAAmB,IAAmBx6J,KAAKw6J,mBAAmB,IAC1E+kD,GAAqBe,yBAO7B,CAAA,IAAA,aAAA,MAAA,WACQtgN,KAAK0V,SAAW1V,KAAK0V,QAAQ9V,OAC7BI,KAAKJ,KAAOI,KAAK0V,QAAQ9V,MACxBI,KAAKigN,iBAAoBjgN,KAAKJ,MAC/B2/M,GAAqBgB,yBAQ7B,CAAA,IAAA,eAAA,MAAA,SAAa96M,GAAAA,IAAAA,EAAAA,KACTk6M,GAAkBjwM,MAAK,WAInB1P,EAAKyzE,QAAQm1E,SAASnjJ,EAAO,CAAE63M,uBAAAA,SAQvC,CAAA,IAAA,kBAAA,MAAA,SAAgB5lC,GAAAA,IAAAA,EAAAA,KAEN8oC,EAAgB9oC,EAAoB,WAAE9kG,aAEtC69H,EAA+B,KAAlB+P,GAAyBA,GAAmC,UAAlBA,EAC7Db,GAAkBjwM,MAAK,WAIf+gM,IAAezwM,EAAKyzE,QAAQ+9H,SAC5BxxM,EAAKyzE,QAAQ8nI,WAEP9K,GAAczwM,EAAKyzE,QAAQ+9H,UACjCxxM,EAAKyzE,QAAQs4C,cAAAA,CAAAA,IAAAA,OAAAA,IAAAA,WAzIrB,OAAO/rH,KAAKw6J,QAAUs8C,GAAY92M,KAAKJ,KAAMI,KAAKw6J,SAAW,CAACx6J,KAAKJ,QAOvE,CAAA,IAAA,gBAAA,IAAA,WACI,OAAOI,KAAKw6J,QAAUx6J,KAAKw6J,QAAQykD,cAAgB,OAQvD,CAAA,IAAA,YAAA,IAAA,WACI,OAAO3G,GAAkBt4M,KAAKoyM,kBAQlC,CAAA,IAAA,iBAAA,IAAA,WACI,OAAOmG,GAAuBv4M,KAAKqyM,yBASvC,EAhGE+H,CAAgBlI,KA2MdtvE,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAKogN,IAAS,GAAyB,GAAkB,GAAI,GAAyBnH,GAAe,IAAK,GAAyBC,GAAqB,IAAK,GAAyB7C,GAAmB,MAClQ+J,GAAQh4E,UAAO,GAAyB,CAAEj3H,KAAMivM,GAAS17K,UAAW,CAAC,CAAC,GAAI,UAAW,GAAI,EAAG,kBAAmB,GAAI,EAAG,cAAe,KAAM+nG,OAAQ,CAAE7mI,KAAM,OAAQ6wM,WAAY,CAAC,WAAY,cAAeuP,MAAO,CAAC,UAAW,SAAUtqM,QAAS,CAAC,iBAAkB,YAAcgxH,QAAS,CAAE1R,OAAQ,iBAAmB2R,SAAU,CAAC,WAAYrrH,SAAU,CAAC,GAA0B,CAACokM,KAAsB,GAAmC,MAD9atF,IAAAA,KAqJMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEQv3E,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAKmgN,KAC1EA,GAAc/3E,UAAO,GAAyB,CAAEj3H,KAAMgvM,GAAez7K,UAAW,CAAC,CAAC,OAAQ,EAAG,WAAY,GAAI,EAAG,mBAAoB,KAAM6nG,UAAW,CAAC,aAAc,MADpK4zE,IAmBMsG,GAAqC,IAAI19E,GAAe,iCAExD29E,GAAuB,CACzBr9E,QAAS6uE,GACT57C,YAAaj1B,IAAW,WAAA,OAGlB,OAPV,KA+BMg5E,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAOF,SAAA,EAAY7G,EAAYuG,EAAiBf,EAAgB2H,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrDvmF,EAAAA,EAAAA,KAAAA,OACKumF,sBAAwBA,EAI7B3gN,EAAKg1H,OAAS,IAAI,GAQlBh1H,EAAKw5M,qBAAAA,EACLx5M,EAAKoyM,eAAiBoB,GAAc,GACpCxzM,EAAKqyM,oBAAsB0H,GAAmB,GAC9C/5M,EAAKmyM,cAAgB4G,GAAAA,uBAAAA,GAA0BC,GAjBM2H,EA4FzD,OAnEA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAWYjpC,GACJ13K,KAAK4gN,kBAAkBlpC,KACvBq/B,GAAa/2M,KAAK64M,KAAM74M,MACpBA,KAAKyzE,QAAQ+9H,UAA+BxxM,KAAmB,cAAE63M,kBAC3B73M,KAAmB,cAAmB,kBAAA,GAEhFA,KAAK64M,KAAKb,uBAAuB,CAAEmD,WAAAA,KAEnC3C,GAAkB9gC,EAAS13K,KAAKy4M,aAChCY,GAAgB,cAAegB,EAAsBr6M,KAAMA,KAAK2gN,uBAChE3gN,KAAK64M,KAAKjwD,SAAS5oJ,KAAKggN,OACxBhgN,KAAKy4M,UAAYz4M,KAAKggN,SAS9B,CAAA,IAAA,oBAAA,MAAA,SAoCkBltJ,GACd9yD,KAAKy4M,UAAY3lJ,EACjB9yD,KAAKg1H,OAAO9G,KAAKp7D,KAOrB,CAAA,IAAA,oBAAA,MAAA,SAAkB4kH,GACd,OAAOA,EAAQn5K,eAAe,UAAA,CAAA,IAAA,aAAA,IAAA,SA7EnBkyM,GACX6E,GAAeuL,wBAUnB,CAAA,IAAA,OAAA,IAAA,WAqBI,MAAO,KAQX,CAAA,IAAA,YAAA,IAAA,WACI,OAAOvI,GAAkBt4M,KAAKoyM,kBAQlC,CAAA,IAAA,iBAAA,IAAA,WACI,OAAOmG,GAAuBv4M,KAAKqyM,uBAOvC,CAAA,IAAA,UAAA,IAAA,WACI,OAAOryM,KAAK64M,SAShB,EAnGEwB,CAA6BnI,KAgHdtvE,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKqgN,IAAsB,GAAyBpH,GAAe,IAAK,GAAyBC,GAAqB,IAAK,GAAyB7C,GAAmB,IAAK,GAAyBoQ,GAAoC,KAC5TpG,GAAqBj4E,UAAO,GAAyB,CAAEj3H,KAAMkvM,GAAsB37K,UAAW,CAAC,CAAC,GAAI,cAAe,KAAM+nG,OAAQ,CAAEgqE,WAAY,CAAC,WAAY,cAAeoI,KAAM,CAAC,cAAe,QAASmH,MAAO,CAAC,UAAW,UAAYt5E,QAAS,CAAE1R,OAAQ,iBAAmB2R,SAAU,CAAC,UAAWrrH,SAAU,CAAC,GAA0B,CAAColM,KAAwB,GAAmC,MAQtYrG,GAAqBd,yBAAAA,EATrBc,IAuHMyG,GAA0B,CAC5Bz9E,QAAS,GACTizB,YAAaj1B,IAAW,WAAA,OAGlB,OALV,KA8BMi5E,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,EAAY8E,EAAaC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBjlF,EAAAA,EAAAA,KAAAA,OACKglF,YAAcA,EACnBp/M,EAAKq/M,iBAAmBA,EAKxBr/M,EAAKu+M,WAAAA,EAKLv+M,EAAK2jJ,WAAa,GAKlB3jJ,EAAK64M,KAAO,KAKZ74M,EAAKy+M,SAAW,IAAI,GAvBCY,EAyEzB,OAzCA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAAY3nC,GACR13K,KAAK+gN,oBACDrpC,EAAQn5K,eAAe,UACvByB,KAAKghN,oBACLhhN,KAAKihN,kBACLjhN,KAAKkhN,0BAQb,CAAA,IAAA,aAAA,MAAA,SA4BWxoB,GAEP,IAAMsjB,EAAOh8M,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,MAI/B,OAHAivL,GAAaiF,EAAMtjB,GACnBsjB,EAAKhE,uBAAuB,CAAEmD,WAAAA,IAC9Bn7M,KAAK2jJ,WAAWjjJ,KAAKg4L,GACdsjB,IASX,CAAA,IAAA,aAAA,MAAA,SAAWtjB,GACP,OAA0B14L,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,QAShD,CAAA,IAAA,gBAAA,MAAA,SAAc4wK,GACV0gB,GAAUp5M,KAAK2jJ,WAAY+0C,KAQ/B,CAAA,IAAA,eAAA,MAAA,SAAaA,GAET,IAAMsjB,EAAOh8M,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,MAC/BqwL,GAAmB6D,EAAMtjB,GACzBsjB,EAAKhE,uBAAuB,CAAEmD,WAAAA,MAQlC,CAAA,IAAA,kBAAA,MAAA,SAAgBziB,MAQhB,CAAA,IAAA,eAAA,MAAA,SAAaA,GACT,OAA0B14L,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,QAQhD,CAAA,IAAA,eAAA,MAAA,SAAa4wK,GAET,IAAMsjB,EAAOh8M,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,MAC/BqwL,GAAmB6D,EAAMtjB,GACzBsjB,EAAKhE,uBAAuB,CAAEmD,WAAAA,MAQlC,CAAA,IAAA,kBAAA,MAAA,SAAgBziB,MAQhB,CAAA,IAAA,eAAA,MAAA,SAAaA,GACT,OAA0B14L,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,QAShD,CAAA,IAAA,cAAA,MAAA,SAAY4wK,EAAKjzL,GAEmBzF,KAAK64M,KAAKh2L,IAAI61K,EAAI5wK,MAC7C8gI,SAASnjJ,KAUlB,CAAA,IAAA,WAAA,MAAA,SAASirM,GAIL,OAHA,KAA4B6N,WAAAA,EAC5B3F,GAAoB54M,KAAK64M,KAAM74M,KAAK2jJ,YACpC3jJ,KAAKy+M,SAASvwF,KAAKwiF,IAAAA,IAQvB,CAAA,IAAA,UAAA,MAAA,WACI1wM,KAAK4+M,cAST,CAAA,IAAA,YAAA,MAAA,SAAUn5M,GACNzF,KAAK64M,KAAKp5I,MAAMh6D,GAChB,KAA4B84M,WAAAA,IAMhC,CAAA,IAAA,kBAAA,MAAA,WAAA,IAAA,EAAA,KACIv+M,KAAK2jJ,WAAWhsI,SAIhB+gL,SAAAA,GAEI,IAAMyoB,EAAUnhN,EAAK64M,KAAKh2L,IAAI61K,EAAI5wK,MAC9B4wK,EAAIjlH,UAAY0tI,IAtxIhC,SAAwB1tI,EAASilH,GACVA,EAAkB,cAAEwe,kBAAiB,WAAA,OAGlDkB,GAAgB1f,MACHA,EAAkB,cAAEgf,mBAAkB,WAAA,OAGnDU,GAAgB1f,MACtBA,EAAI0Z,eAAez6L,SAIlBm8L,SAAAA,GACOA,EAAUiE,2BACVjE,EAAUiE,0BAA0B,SAG5Crf,EAAI2Z,oBAAoB16L,SAIvBm8L,SAAAA,GACOA,EAAUiE,2BACVjE,EAAUiE,0BAA0B,SAGxCtkI,GACAA,EAAQ2tI,kBA5BhB,CAuxI+B1oB,EAAIjlH,QAASilH,GACxByoB,GACApK,GAAaoK,EAASzoB,GAC1B,EAA2BjlH,QAAU0tI,MAG7CnhN,KAAK64M,KAAKoD,oBAAoB,CAAEd,WAAAA,MAMpC,CAAA,IAAA,uBAAA,MAAA,WAAA,IAAA,EAAA,KACIn7M,KAAK64M,KAAK6E,6BAA4B,WAAA,OAGhC19M,EAAKihN,qBACPjhN,KAAKqhN,UACLrhN,KAAKqhN,SAAS3D,6BAA4B,eAI9C19M,KAAKqhN,SAAWrhN,KAAK64M,OAMzB,CAAA,IAAA,oBAAA,MAAA,WAEI,IAAMyI,EAAOhJ,GAAkBt4M,KAAKo/M,aACpCp/M,KAAK64M,KAAK/E,UAAY,GAAW5O,QAAQ,CAAoBllM,KAAK64M,KAAe,UAAG,IAEpF,IAAM3kM,EAAQqkM,GAAuBv4M,KAAKq/M,kBAC1Cr/M,KAAK64M,KAAK7B,eAAiB,GAAWC,aAAa,CAAoBj3M,KAAK64M,KAAoB,eAAG,MAMvG,CAAA,IAAA,oBAAA,MAAA,WACS74M,KAAK64M,MACNvD,GAAeiM,yBAAAA,CAAAA,IAAAA,gBAAAA,IAAAA,WArNnB,OAAOvhN,OAOX,CAAA,IAAA,UAAA,IAAA,WACI,OAAOA,KAAK64M,OAQhB,CAAA,IAAA,OAAA,IAAA,WACI,MAAO,OAUX,EA9EEyB,CAA2B,KA4Qd13E,UAAO,SAAoC5oI,GAAK,OAAO,IAAKA,GAAKsgN,IAAoB,GAAyBrH,GAAe,IAAK,GAAyBC,GAAqB,MACnMoH,GAAmBl4E,UAAO,GAAyB,CAAEj3H,KAAMmvM,GAAoB57K,UAAW,CAAC,CAAC,GAAI,YAAa,KAAM2nG,aAAc,SAAyCkc,EAAInmI,GAAgB,EAALmmI,GACjL,GAAkB,UAAU,SAAsDmuD,GAAU,OAAOt0L,EAAIyiM,SAASnO,KAAhH,CAA4H,SAAS,WAAyD,OAAOt0L,EAAI0iM,cACxMr4E,OAAQ,CAAEoyE,KAAM,CAAC,YAAa,SAAWnyE,QAAS,CAAE+3E,SAAU,YAAc93E,SAAU,CAAC,UAAWrrH,SAAU,CAAC,GAA0B,CAACwlM,KAA2B,GAAmC,MAH/MxG,IAyFMkH,GAAwB,CAC1Bn+E,QAAS,GACTizB,YAAaj1B,IAAW,WAAA,OAGlB,OALV,KAsDMk5E,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAYhxM,EAAQiqM,EAAYuG,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC5B3/E,EAAAA,EAAAA,KAAAA,OACKogC,QAAUjxJ,EACfvJ,EAAKo/M,YAAc5L,EACnBxzM,EAAKq/M,iBAAmBtF,EAJIA,EAYT0H,OAFvB,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,WACQC,GAAkB1hN,KAAKw6J,UACvB86C,GAAemM,2BAAAA,EAlBrBlH,CAAsB,KAsBd33E,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAKugN,IAAe,GAAyB,GAAkB,IAAK,GAAyBtH,GAAe,IAAK,GAAyBC,GAAqB,MACpOqH,GAAcn4E,UAAO,GAAyB,CAAEj3H,KAAMovM,GAAe77K,UAAW,CAAC,CAAC,GAAI,gBAAiB,KAAM+nG,OAAQ,CAAE7mI,KAAM,CAAC,gBAAiB,SAAW0b,SAAU,CAAC,GAA0B,CAACkmM,KAAyB,MADzNjH,IAoDMoH,GAAwB,CAC1Bt+E,QAAS,GACTizB,YAAaj1B,IAAW,WAAA,OAGlB,OALV,KA+BMm5E,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAYjxM,EAAQiqM,EAAYuG,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC5B3/E,EAAAA,EAAAA,KAAAA,OACKogC,QAAUjxJ,EACfvJ,EAAKo/M,YAAc5L,EACnBxzM,EAAKq/M,iBAAmBtF,EAJIA,EAyEhC,OA5DA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WACI/5M,KAAK++M,mBACc/+M,KAAmB,cAAE4hN,aAAa5hN,QAOzD,CAAA,IAAA,cAAA,MAAA,WACQA,KAAKi/M,eACLj/M,KAAKi/M,cAAc4C,gBAAgB7hN,QAQ3C,CAAA,IAAA,mBAAA,MAAA,WA0CQ0hN,GAAkB1hN,KAAKw6J,UACvB86C,GAAewM,yBAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WA1CnB,OAA0B9hN,KAAmB,cAAE+hN,aAAa/hN,QAOhE,CAAA,IAAA,gBAAA,IAAA,WACI,OAAOA,KAAKw6J,QAA6Bx6J,KAAKw6J,QAAsB,cAAI,OAQ5E,CAAA,IAAA,OAAA,IAAA,WACI,OAAOs8C,GAAyB,MAAb92M,KAAKJ,KAAeI,KAAKJ,KAAOI,KAAKJ,KAAKC,WAAYG,KAAKw6J,WAQlF,CAAA,IAAA,YAAA,IAAA,WACI,OAAO89C,GAAkBt4M,KAAKo/M,eAOlC,CAAA,IAAA,iBAAA,IAAA,WACI,OAAO7G,GAAuBv4M,KAAKq/M,sBAMvC,EA/EE7E,CAAsB,KAqFd53E,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAKwgN,IAAe,GAAyB,GAAkB,IAAK,GAAyBvH,GAAe,IAAK,GAAyBC,GAAqB,MACpOsH,GAAcp4E,UAAO,GAAyB,CAAEj3H,KAAMqvM,GAAe97K,UAAW,CAAC,CAAC,GAAI,gBAAiB,KAAM+nG,OAAQ,CAAE7mI,KAAM,CAAC,gBAAiB,SAAW0b,SAAU,CAAC,GAA0B,CAACqmM,KAAyB,MADzNnH,IAsEA,SAASkH,GAAkBn4M,GACvB,QAASA,aAAkB,IAAoBA,aAAkB,IAC3DA,aAAkB,IAS5B,IAyCMy4M,GA8tCAC,GAtBAC,GA1KAC,GAvCAC,GA1lBAC,GAtcAC,GAAqB,CACvBj/E,QAAS6uE,GACT57C,YAAaj1B,IAAW,WAAA,OAGlB,OALV,KAyCM2gF,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQF,SAAA,EAAYz4M,EAAQiqM,EAAYuG,EAAiBf,EAAgB2H,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC7DvmF,EAAAA,EAAAA,KAAAA,OACKumF,sBAAwBA,EAC7B3gN,EAAKuiN,QAAAA,EAILviN,EAAKg1H,OAAS,IAAI,GAQlBh1H,EAAKw5M,qBAAAA,EACLx5M,EAAKw6J,QAAUjxJ,EACfvJ,EAAKoyM,eAAiBoB,GAAc,GACpCxzM,EAAKqyM,oBAAsB0H,GAAmB,GAC9C/5M,EAAKmyM,cAAgB4G,GAAAA,uBAAAA,GAA0BC,GAnBc2H,EA0GjE,OA/EA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAUYjpC,GACH13K,KAAKuiN,QACNviN,KAAK8/M,gBACLtH,GAAkB9gC,EAAS13K,KAAKy4M,aAChCY,GAAgB,kBAAmB2I,EAAiBhiN,KAAMA,KAAK2gN,uBAC/D3gN,KAAKy4M,UAAYz4M,KAAKggN,MACtBhgN,KAAKi/M,cAAcuD,YAAYxiN,KAAMA,KAAKggN,UAQlD,CAAA,IAAA,cAAA,MAAA,WACQhgN,KAAKi/M,eACLj/M,KAAKi/M,cAAcN,cAAc3+M,QAUzC,CAAA,IAAA,oBAAA,MAAA,SAAkB8yD,GACd9yD,KAAKy4M,UAAY3lJ,EACjB9yD,KAAKg1H,OAAO9G,KAAKp7D,KAQrB,CAAA,IAAA,mBAAA,MAAA,aAkCU9yD,KAAKw6J,mBAAmB,KAC1Bx6J,KAAKw6J,mBAAmB,GACxB86C,GAAemN,wBAERziN,KAAKw6J,mBAAmB,IAAoBx6J,KAAKw6J,mBAAmB,IACzEx6J,KAAKw6J,mBAAmB,IAC1B86C,GAAeoN,2BAOvB,CAAA,IAAA,gBAAA,MAAA,WACI1iN,KAAK++M,mBACL,KAA4BtrI,QAAUzzE,KAAKi/M,cAAckB,WAAWngN,MAChEA,KAAKyzE,QAAQ+9H,UAA+BxxM,KAAmB,cAAE63M,kBAC3B73M,KAAmB,cAAmB,kBAAA,GAEhFA,KAAKuiN,QAAAA,IAAS,CAAA,IAAA,aAAA,IAAA,SAnGH9R,GACX6E,GAAeuL,wBASnB,CAAA,IAAA,OAAA,IAAA,WAqCI,OAAO/J,GAAyB,MAAb92M,KAAKJ,KAAeI,KAAKJ,KAAOI,KAAKJ,KAAKC,WAA+BG,KAAa,WAO7G,CAAA,IAAA,gBAAA,IAAA,WACI,OAAOA,KAAKw6J,QAAUx6J,KAAKw6J,QAAQykD,cAAgB,OAQvD,CAAA,IAAA,YAAA,IAAA,WACI,OAAO3G,GAAkBt4M,KAAKoyM,kBAQlC,CAAA,IAAA,iBAAA,IAAA,WACI,OAA0BmG,GAAuBv4M,KAAKqyM,yBAM1D,EAlHE2P,CAAwB9P,KAyIdtvE,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKgoN,IAAiB,GAAyB,GAAkB,IAAK,GAAyB/O,GAAe,IAAK,GAAyBC,GAAqB,IAAK,GAAyB7C,GAAmB,IAAK,GAAyBoQ,GAAoC,KAC7VuB,GAAgB5/E,UAAO,GAAyB,CAAEj3H,KAAM62M,GAAiBtjL,UAAW,CAAC,CAAC,GAAI,kBAAmB,KAAM+nG,OAAQ,CAAEgqE,WAAY,CAAC,WAAY,cAAe7wM,KAAM,CAAC,kBAAmB,QAASogN,MAAO,CAAC,UAAW,UAAYt5E,QAAS,CAAE1R,OAAQ,iBAAmB15G,SAAU,CAAC,GAA0B,CAACgnM,KAAsB,GAAmC,MAQ5WN,GAAgBzI,yBAAAA,EAThByI,IA4OMW,GAAqB,CACvBt/E,QAAS4vE,GACT38C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GANJ,KAwCMwsD,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAyBF,OAzBEA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,WAAAA,MAAAA,SAyBO5uI,GACL,OAAOzzE,KAAK4iN,SAAW,GAAWA,SAASnvI,GAAW,OAS1D,CAAA,IAAA,4BAAA,MAAA,SAA0BrvE,GACtBpE,KAAKk9M,UAAY94M,IAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WA7BjB,OAAOpE,KAAK6iN,WAMhB,IAAA,SAAap9M,GACTzF,KAAK6iN,UAAqB,MAATp9M,IAAAA,IAAiBA,GAAkC,UAAA,GAAA,OAAZA,GACpDzF,KAAKk9M,WACLl9M,KAAKk9M,gBASb,EAzBEmF,IAuCYz/E,UAAO,SAAmC5oI,GAAK,OAAO,IAAKA,GAAKqoN,KAClFA,GAAkBjgF,UAAO,GAAyB,CAAEj3H,KAAMk3M,GAAmB3jL,UAAW,CAAC,CAAC,GAAI,WAAY,GAAI,kBAAmB,GAAI,EAAG,OAAQ,YAAa,CAAC,GAAI,WAAY,GAAI,cAAe,GAAI,EAAG,OAAQ,YAAa,CAAC,GAAI,WAAY,GAAI,UAAW,GAAI,EAAG,OAAQ,aAAc4nG,SAAU,EAAGD,aAAc,SAAwCkc,EAAInmI,GAAgB,EAALmmI,GACpW,GAAmB,WAAYnmI,EAAIwmM,SAAW,GAAK,OAClDn8E,OAAQ,CAAEm8E,SAAU,YAActnM,SAAU,CAAC,GAA0B,CAACqnM,QAHjFN,IAAAA,KAmjBMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEqB5/E,UAAO,GAAwB,CAAEr3H,KAAMi3M,KAClEA,GAA2BzhF,UAAO,GAAwB,CAAErrH,QAAS,SAA4Ctb,GAAK,OAAO,IAAKA,GAAKooN,OADvIA,IAAAA,KAqCMD,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAuI0BW,OAvI1BX,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAuBIY,GAA0B,IAAVrtM,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAEtB8mM,EAAWx8M,KAAKgjN,gBAAgBD,GAElCvP,EAAa,KAEbuG,EAAkB,KAElBzC,OAAAA,EAcJ,OAbe,MAAX5hM,IAjDZ,SAAkCA,GAC9B,YAAA,IAAO,EAA+BqkM,sBAAAA,IAClC,EAA+BvG,iBAAAA,IAC/B,EAA+B8D,SAHvC,CAkDyC5hM,IAEzB89L,EAAmC,MAAtB99L,EAAQ89L,WAAqB99L,EAAQ89L,WAAa,KAC/DuG,EAA6C,MAA3BrkM,EAAQqkM,gBAA0BrkM,EAAQqkM,gBAAkB,KAC9EzC,EAA+B,MAApB5hM,EAAQ4hM,SAAmB5hM,EAAQ4hM,cAAAA,IAI9C9D,EAAqC,MAAxB99L,EAAmB,UAAYA,EAAmB,UAAI,KACnEqkM,EAA+C,MAA7BrkM,EAAwB,eAAYA,EAAwB,eAAI,OAGnF,IAAI6mM,GAAUC,EAAU,CAAEzC,gBAAAA,EAAiBzC,SAAAA,EAAU9D,WAAAA,MA0BhE,CAAA,IAAA,UAAA,MAAA,SAAQuJ,EAAWpD,EAAiB3C,GAChC,OAAO,IAAIiG,GAAYF,EAAWpD,EAAiB3C,KAiBvD,CAAA,IAAA,QAAA,MAAA,SAAM+L,EAAgBpJ,EAAiB3C,GAAAA,IAAAA,EAAAA,KAE7BwF,EAAWuG,EAAehuM,KAIhC3a,SAAAA,GAAAA,OAAK4F,EAAKijN,eAAe7oN,MACzB,OAAO,IAAIqiN,GAAUD,EAAU7C,EAAiB3C,KAOpD,CAAA,IAAA,kBAAA,MAAA,SAAgB+L,GAAAA,IAAAA,EAAAA,KAENvG,EAAW,GAQjB,OAPAz2M,OAAOP,KAAKu9M,GAAgBprM,SAI5B+7D,SAAAA,GACI8oI,EAAS9oI,GAAe1zE,EAAKijN,eAAeF,EAAervI,OAExD8oI,IAOX,CAAA,IAAA,iBAAA,MAAA,SAAesG,GACX,OAAIA,aAAyB7F,IAAe6F,aAAyBvG,IACjEuG,aAAyBrG,GAClBqG,EAEFr8M,MAAMqQ,QAAQgsM,GAOZ9iN,KAAKyzE,QALEqvI,EAAc,GAEVA,EAAc9nN,OAAS,EAAI8nN,EAAc,GAAK,KAEzCA,EAAc9nN,OAAS,EAAI8nN,EAAc,GAAK,MAI9D9iN,KAAKyzE,QAAQqvI,OAAAA,EAvI1BX,IA2IMv/E,UAAO,SAA6B5oI,GAAK,OAAO,IAAKA,GAAKmoN,KACtEA,GAAYzhF,WAAQ,GAA0B,CAAErB,MAAO8iF,GAAa7sM,QAAS6sM,GAAYv/E,YADzFu/E,IAAAA,KA+BMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEM1/E,UAAO,GAAwB,CAAEr3H,KAAM+2M,KACnDA,GAAYvhF,UAAO,GAAwB,CAAErrH,QAAS,SAA6Btb,GAAK,OAAO,IAAKA,GAAKkoN,KAAmBliF,UAAW,CAAC,IAAuBC,QAAS,CAAC,MADzKiiF,IAAAA,KAoBMD,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAcwEiB,OAdxEjB,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,aAAAA,MAAAA,SAUgB3mL,GACd,MAAO,CACHi0H,SAAU0yD,EACVjiF,UAAW,CACP,CAAEqD,QAASo9E,GAAoCn9E,SAAUhoG,EAAK4nL,oCAAAA,EAdxEjB,IAmBcz/E,UAAO,GAAwB,CAAEr3H,KAAM82M,KAC3DA,GAAoBthF,UAAO,GAAwB,CAAErrH,QAAS,SAAqCtb,GAAK,OAAO,IAAKA,GAAKioN,KAA2BjiF,UAAW,CAAC,GAAa,IAAuBC,QAAS,CAAC,MAD9MgiF,IAAAA,GAAAA,EAAAA,QAAAA,GAAAA,EAAAA,QAAAA,GAAAA,EAAAA,EAAAA,IC32SM,GAAiC,CACnCkB,sBAAAA,EACAC,mBAAAA,EACAC,QAAS,SAAS59M,GACd,MAAqB,kBAAVA,GACCA,EAAQ,IAAM,IAEnBA,IAIf,SAAS69M,GAAazwG,GAClB,QAAQpsG,MAAMqQ,QAAQ+7F,IAAuB,iBAARA,IAAsBA,GAASA,aAAeznG,MCNhF,IAAMm4M,GCCAC,GCQAC,GCnBN,GCgBMC,GCPAC,GCOAC,GCRAC,GCJAC,GCEAC,GCIAC,GCJAC,GCJAC,GZQN,KAAMX,GAAN,WAHP,SAAA,IAAA,gBAAA,KAAA,GAKY,KAAAY,QAAU,IAAI,GAA2B,IAF9C,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAKgBC,GACf,GAAOA,EAAP,CACA,IAAMC,EAAY,OAAH,OAAA,GAAOrkN,KAAKmkN,QAAQ1+M,OACnCM,OAAOu+M,QAAQF,GAAUzsM,SAAQ,SAAA,GAAOlS,IAAAA,EAAAA,eAAAA,EAAAA,GAALvJ,EAAKuJ,EAAAA,GAAAA,EAAAA,EAAAA,GACtB,MAAVA,GAA2B,MAAVA,IACjBA,EAAQ4I,SAAS5I,IAErB,GAAA,IAAQvJ,EAAKuJ,EAAO4+M,MAExBrkN,KAAKmkN,QAAQj8M,KAAKm8M,MAdnB,CAAA,IAAA,QAAA,MAAA,SAiBUp7M,GACTjJ,KAAKmkN,QAAQj8M,KAAK,IAAA,CAAMlI,KAAKmkN,QAAQ1+M,MAAOwD,MAlB7C,CAAA,IAAA,MAAA,MAAA,SAqBQrJ,EAA2B6F,GAClC,IAAM4+M,EAAY,OAAH,OAAA,GAAOrkN,KAAKmkN,QAAQ1+M,OACnC,GAAA,IAAQ7F,EAAM6F,EAAO4+M,GACrBrkN,KAAKmkN,QAAQj8M,KAAKm8M,KAxBnB,CAAA,IAAA,UAAA,MAAA,SA2BYp7M,GACXjJ,KAAKmkN,QAAQj8M,KAAKe,KA5BnB,CAAA,IAAA,MAAA,MAAA,SA+BQrJ,GAA+C,IAApBs+L,EAAoB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAChDz4L,EAAQ,GAAA,KAAS7F,EAAMI,KAAKmkN,QAAQ1+M,OAC1C,OAAa,MAATA,EACOy4L,EAEAz4L,IApCZ,CAAA,IAAA,UAAA,MAAA,SAwCY7F,GACX,OAAO,GAAA,IAAQA,EAAOI,KAAKmkN,QAAQ1+M,MAAM7F,GAAQI,KAAKmkN,QAAQ1+M,SAzC/D,CAAA,IAAA,OAAA,MAAA,WA6CC,OAAOzF,KAAKmkN,QAAQhzB,iBA7CrB,CAAA,IAAA,SAAA,MAAA,WAiDC,OAAOnxL,KAAKmkN,QAAQ1+M,QAjDrB,CAAA,IAAA,MAAA,MAAA,SAoDQ7F,GACP,QAAS,GAAA,KAASA,EAAgBI,KAAKmkN,QAAQ1+M,SArDhD,CAAA,IAAA,UAAA,MAAA,SA2DY7F,GAA2C,IAApBs+L,EAAoB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAChDz4L,EAAQzF,KAAK6iB,IAAIjjB,EAAMs+L,GAC7B,MAAqB,iBAAVz4L,EAA2BA,EAC/BS,KAAKsP,MAAM/P,KA9DnB,CAAA,IAAA,aAAA,MAAA,WAoEgC,IAAjB8+M,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAI/B,OAAIvkN,KAAK+1J,IAAI,cAAkD,eAAlC/1J,KAAK6iB,IAAI,sBAAyC0hM,GACpEvkN,KAAK6iB,IAAI,YAAc,IACvBplB,SAASqpB,cAAc,QACvBrpB,SAASqpB,cAAc,QAAc,KAGhC5pB,OAAOQ,SAASC,KAAK6D,MAAM,KAAK,GACjCqK,QAAQ,uBAAwB,MA/EhD,CAAA,IAAA,cAAA,MAAA,SAsFgByxJ,GAAkC,IAAjBinD,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAC7C9pG,EAAOz6G,KAAK6iB,IAAI,oBAAsB7iB,KAAKwkN,WAAWD,GACpDz0I,EAAS9vE,KAAK6iB,IAAI,sBAWxB,MARsC,eAAlC7iB,KAAK6iB,IAAI,sBAAyCitD,IAClD2qC,GAAO3qC,EAAS,KAGpB2qC,GAAO,UAEH6iD,IAAQ7iD,GAAO6iD,GAEZ7iD,IAnGR,CAAA,IAAA,OAAA,MAAA,SAyGS2pG,GACRpkN,KAAKykN,YAAYL,EAASM,QAC1B,IAAMC,EAAe,CAACC,MAAOR,EAASQ,OAKtCD,EAAaD,OAASx+M,KAAKC,UAAUi+M,EAASM,QAC9CC,EAAaE,OAAS3+M,KAAKC,UAAUi+M,EAASS,QAC9C,IAAM1oN,EDzGP,SAAuB2oN,GAAsC,IAA1BpvM,EAA0B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAEhE,OAGJ,SAASqvM,EAAmBD,EAAoBpvM,EAAyBsvM,EAAoBC,GACzF,IAAMC,EAAWD,GAAiB,IAAIE,SAElClkM,EAAQ,EAEZ,IAAK,IAAM/kB,KAAO4oN,EAAY,CAC1B,GAAIA,EAAWvmN,eAAerC,GAAM,CAChC,IAAIyiI,EAAWqmF,GAAa9oN,EACtBuJ,EAAQiQ,EAAQ2tM,QAAQyB,EAAW5oN,IAczC,GAZI8oN,GAAa1B,GAAawB,KAC1BnmF,EAAWqmF,EAAY,IAAM9oN,EAAM,KAGnC8oN,GAAav+M,MAAMqQ,QAAQguM,KAEvBnmF,EADAl4H,MAAMqQ,QAAQrR,IAAUiQ,EAAQytM,qBACrB6B,EAAY,IAAM/jM,EAAQ,IAE1B+jM,EAAY,MAI3Bv+M,MAAMqQ,QAAQrR,IAAU69M,GAAa79M,GACrCs/M,EAAmBt/M,EAAOiQ,EAASipH,EAAUumF,QAC1C,GAAIz/M,aAAiB2/M,SACxB,IAAK,IAAI1jN,EAAI,EAAGA,EAAI+D,EAAMzK,OAAQ0G,IAC9BwjN,EAASG,OAAO1mF,EAAW,IAAMj9H,EAAI,IAAK+D,EAAMvC,KAAKxB,SAElD+D,aAAiB2F,KACxB85M,EAASG,OAAO1mF,EAAUl5H,EAAOA,EAAY,OAC1B,OAAVA,GAAkBiQ,EAAQ0tM,mBAAgC,OAAV39M,SAAAA,IAAmBA,GAC5Ey/M,EAASG,OAAO1mF,EAAUl5H,GAIlCwb,IAGJ,OAAOikM,EAtCX,CAH8BJ,EADJ,OAAH,OAAA,OAAA,OAAA,GAAO,IAAmBpvM,IAD1C,CCyG4BivM,GAC3B,OAAO3kN,KAAKslN,KAAKC,KAAK,WAAYppN,KAnHnC,CAAA,IAAA,wBAAA,MAAA,WAyHI,IAAA,EAAA,KAEH,MADc,CAAC,WAAY,SAAU,WACxB+a,QAAOtX,SAAAA,GAAAA,OAAQI,EAAK6iB,IAAI,UAAYjjB,EAAO,cAAY5E,QAAU,IA3H/E,CAAA,IAAA,gBAAA,MAAA,SAiIkBsqN,GACjBtlN,KAAKslN,KAAOA,MAlIb,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM/B,KAAAA,GAAAA,WAAAA,GAAAA,CAAAA,MAAAA,GAAQ,QAARA,GAAQ,UAAA,WAFL,SAAA,IELJiC,GAAZ,SAAYA,GAAAA,OACR,EAAA,MAAA,iBACA,EAAA,aAAA,gBACA,EAAA,UAAA,gBACA,EAAA,MAAA,gBACA,EAAA,MAAA,mBALQA,EAAZ,CAMC,IAUM,KAAM/B,GAAN,WAyBH,SAAA,EAAoBx6M,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,EAxBb,KAAAwlD,SAGH,CAAC/xC,MAAO,EAAGH,OAAQ,GAKhB,KAAAkmD,OAAS,IAAI,GAAc,GAc3B,KAAAgjJ,qBAAuB,IAAI,GAAmC,GAvBlE,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WA+BC,QAAQzlN,KAAKiJ,OAAO4Z,IAAI,gBACnB7iB,KAAKiJ,OAAO4Z,IAAI,0BACf7iB,KAAK+a,QAA8C,IAApC/a,KAAK+a,OAAOwG,aAAavmB,UAjC/C,CAAA,IAAA,kBAAA,MAAA,WAwCC,IAAMsvD,EAAOtqD,KAAKg+C,UAAUvmB,wBAC5B,MAAO,CAAC/a,MAAO4tC,EAAK5tC,MAAOH,OAAQ+tC,EAAK/tC,YAzCzC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMknM,IAAkB,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAlBA,GAAkB,QAAlBA,GAAkB,YAAA,IDRxB,KAAMD,GAAN,WAIH,SAAA,EACYkC,EACAz8M,EACA08M,GAAAA,gBAAAA,KAAAA,GAFA,KAAAD,GAAAA,EACA,KAAAz8M,OAAAA,EACA,KAAA08M,YAAAA,EANL,KAAAC,cAAgB,IAAI,EACpB,KAAA/M,KYbJ,WAAA,SAAA,IAAA,gBAAA,KAAA,GAAA,OAAA,aAAA,EAAA,KAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SACU6M,GACT,OAAOA,EAAGpnK,MAAM,CACZp+B,KAAM,GACNk6B,gBAAiB,GACjB1c,OAAQ,GACR4qB,YAAa,GACbj0B,QAAS,GACTmlB,OAAQksK,EAAGpnK,MAAM,CACbrjB,MAAO,GACPke,KAAM,GACNtC,QAAS,GACTC,QAAS,KAEb89C,UAAW,GACXH,UAAW,GACXE,YAAa,GACbpjF,UAAW,GACXya,WAAY,GACZxa,WAAY,SAnBjB,EAAA,GZa4Bq0M,MAAM7lN,KAAK0lN,IAFvC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WAaI,IAAA,EAAA,KAEH1lN,KAAK8lN,WACL9lN,KAAK64M,KAAKhH,aACLtxM,WAAUsiH,SAAAA,GACP7iH,EAAK+lN,UAAUljG,QAlBxB,CAAA,IAAA,YAAA,MAAA,WA0BC,IAAM/uG,EAAO9T,KAAK6iB,MAClB,OAAO/O,GAAQA,EAAKmiD,YA3BrB,CAAA,IAAA,YAAA,MAAA,SAiCc4sD,GACb,IAAM78G,EAAMhG,KAAK6iB,MACV7c,IAIHA,EAAIpG,OAAS8vM,GAAYE,QAAQhwM,MAAQijH,EAAO3iG,OAASla,EAAIka,MACxDla,EAAcsb,eACdtb,EAAcsb,eAAcwG,SAAAA,GAAAA,OAAQA,EAAK9F,IAAI,OAAQ6gG,EAAO3iG,SAIrElgB,KAAK4lN,cAAc19M,OACnBlC,EAAIgc,IAAIwtL,GAAqB3sF,IAC7B7iH,KAAK2lN,YAAY5qM,OAAOgG,sBA/CzB,CAAA,IAAA,WAAA,MAAA,SAqDanhB,GACZ,OAAOI,KAAK6iB,MAAMA,IAAIjjB,KAtDvB,CAAA,IAAA,MAAA,MAAA,WA6DC,IAAMoG,EAAMhG,KAAK2lN,YAAY5qM,QAAU/a,KAAK2lN,YAAY5qM,OAAOs8C,kBAC/D,OAAOrxD,GAASA,EAAIpG,KAChBoG,EAAIpG,KAAKgC,QAAQ,UAAY,GAAKoE,EAAIpG,KAAKgC,QAAQ,WAAa,EAAU,KACvEoE,EAF0B,OA9DlC,CAAA,IAAA,OAAA,MAAA,SAsESy+F,EAA0CmnC,GAClD,IAAM5lI,EAAMhG,KAAK6iB,MACV7c,IACPA,EAAIgc,IAAIyiF,EAAkBz+F,EAAIy+F,GAAamnC,GAC3C5rI,KAAK2lN,YAAY5qM,OAAOgG,sBA1EzB,CAAA,IAAA,eAAA,MAAA,WAiFC,IAAM/a,EAAMhG,KAAK6iB,MAAc7c,IAC/BA,EAAIq+C,eACJrkD,KAAK2lN,YAAY5qM,OAAOgG,sBAnFzB,CAAA,IAAA,aAAA,MAAA,WA0FC,IAAM/a,EAAMhG,KAAK6iB,MAAc7c,IAC/BA,EAAIk+C,aACJlkD,KAAK2lN,YAAY5qM,OAAOgG,sBA5FzB,CAAA,IAAA,iBAAA,MAAA,WAmGC,IAAM/a,EAAMhG,KAAK6iB,MACV7c,IACPA,EAAI0kB,OAAS1kB,EAAI0kB,MACjB1qB,KAAK2lN,YAAY5qM,OAAOgG,sBAtGzB,CAAA,IAAA,YAAA,MAAA,WA4GI,IAAA,EAAA,KACG0tC,EAAWzuD,KAAK6iB,MACf4rC,IAEPzuD,KAAKgmN,WAELv3J,EAAS73C,OAAMqvM,SAAAA,GACXA,EAAUjkM,IAAI,CACVkD,KAAMupC,EAASvpC,KAAO,GACtBC,IAAKspC,EAAStpC,IAAM,GACpBhpB,KAAM,OAAF,OAAA,OAAA,OAAA,GAAMsyD,EAAStyD,MAAI,CAAEsV,GAAIs+L,GAAa,MAC1CnwM,KAAM6uD,EAAS7uD,OAGnBI,EAAK2lN,YAAY5qM,OAAOhT,IAAIk+M,GAC5BjmN,EAAKitM,OAAOgZ,GACZjmN,EAAK2lN,YAAY5qM,OAAOgG,yBA5H7B,CAAA,IAAA,QAAA,MAAA,WAoIC,IAAM/a,EAAMhG,KAAK6iB,MACjB,OAAO7c,GAAOA,EAAI7J,KAAO6J,EAAI7J,KAAKsV,GAAK,OArIxC,CAAA,IAAA,KAAA,MAAA,SA2IOqO,EAAmBtf,GACzB,IAAMwF,EAAMhG,KAAK6iB,MACb7c,GACAA,EAAIqa,GAAGP,EAAWtf,KA9IvB,CAAA,IAAA,SAAA,MAAA,WAsJC,IAAMwF,EAAMhG,KAAK6iB,MACV7c,IACPhG,KAAK2lN,YAAY5qM,OAAOhF,OAAO/P,GAC/BhG,KAAK2lN,YAAY5qM,OAAOgG,sBAzJzB,CAAA,IAAA,WAAA,MAAA,WAgKC/gB,KAAK2lN,YAAY5qM,OAAOw9C,sBACxBv4D,KAAK2lN,YAAY5qM,OAAOgG,qBAjKzB,CAAA,IAAA,SAAA,MAAA,SAuKW/a,GACVhG,KAAK2lN,YAAY5qM,OAAOm9C,gBAAgBlyD,KAxKzC,CAAA,IAAA,WAAA,MAAA,WA+KKhG,KAAK6iB,MACL7iB,KAAK64M,KAAKiF,Wa1Lf,SAA8B93M,GACjC,IAAOA,EAAK,MAAO,GACnB,IAAMwzC,EAASxzC,EAAIwzC,OAEb+4B,EAAQ,CACVryD,KAAMla,EAAIka,KACVmU,QAASruB,EAAIquB,QACb+lB,gBAAiBp0C,EAAIo0C,gBACrB1c,OAAQ13B,EAAI03B,OACZ4qB,YAAatiD,EAAIsiD,aAYrB,GATI9O,IACA+4B,EAAM/4B,OAAS,CACXve,MAAOue,EAAOve,OAAS0sJ,GAAmBnuI,OAAOve,MACjDke,KAAMK,EAAOL,MAAQwuI,GAAmBnuI,OAAOL,KAC/CtC,QAAS2C,EAAO3C,SAAW8wI,GAAmBnuI,OAAO3C,QACrDC,QAAS0C,EAAO1C,SAAW6wI,GAAmBnuI,OAAO1C,UAI5C,WAAb9wC,EAAImF,KAAmB,CACvB,IAAM2I,EAAO9N,EACbusE,EAAMqiB,UAAY9gF,EAAK8gF,UACvBriB,EAAMkiB,UAAY3gF,EAAK2gF,UACvBliB,EAAMoiB,YAAc7gF,EAAK6gF,YACzBpiB,EAAMhhE,UAAYuC,EAAKvC,UACvBghE,EAAMvmD,WAAalY,EAAKkY,WACxBumD,EAAM/gE,WAAasC,EAAKtC,WAG5B,OAAO+gE,EA/BJ,Cb0L+CvyE,KAAK6iB,OAAQ,CAACs4L,WAAAA,IAExDn7M,KAAK64M,KAAKiF,WAAW,OAAD,OAAA,OAAA,OAAA,GACb99M,KAAKiJ,OAAO4Z,IAAI,gCAA8B,CACjDmJ,WAAYhsB,KAAKiJ,OAAO4Z,IAAI,+CApLrC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM2gM,IAAmB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAnBA,GAAmB,QAAnBA,GAAmB,YAAA,IcCnB0C,GAAkC,CAC3C7jG,MAAO,KACP7yG,MAAO,IZdJ,GAAA,WAAA,IAAM22M,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACkB,EAAAh7M,KAAO,oBAAP,EADlB,GAIA,GAAA,WAAA,IAAMi7M,EAEX,SAAA,EAAmB30M,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,GAAAA,GAFd,OACkB,EAAAtG,KAAO,8CAAP,EADlB,GAKA,GAAA,WAAA,IAAMk7M,EAEX,SAAA,EAAmBnjN,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,KAAAA,GAFd,OACkB,EAAAiI,KAAO,qBAAP,EADlB,GAKA,GAAA,WAAA,IAAMm7M,EAEX,SAAA,EAAmBpjN,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,KAAAA,GAFd,OACkB,EAAAiI,KAAO,iCAAP,EADlB,GAKA,GAAA,WAAA,IAAMo7M,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACkB,EAAAp7M,KAAO,kBAAP,EADlB,GAnBA,KCgBMu4M,GAAY,GAAA,WAAA,SAAA,IAAA,gBAAA,KAAA,GAAA,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAuCbtnM,EAvCa,GAuC0BlZ,IAAAA,EAAAA,EAAD,KAEpCsjN,EAAAA,GAAAA,OAAAA,oBAD2BpqM,EAAIo4K,WAAWxL,MAAM1rL,MAAM,EAAG8e,EAAIo4K,WAAWrtI,QAAU,IAClFq/J,CAAyCtjN,IAC/CkZ,EAAI+qL,WAAW,CACXne,MAAOw9B,EACPr/J,QAASq/J,EAASxrN,OAAS,MA5Cd,CAAA,IAAA,qBAAA,MAAA,SAiDFohB,EAAsCg0C,GACrD,IAAM44H,EAAQ5sK,EAAIo4K,WAAWxL,MAAM1rL,QACnC0rL,EAAM5sK,EAAIo4K,WAAWrtI,SAAWiJ,EAAOltD,KACvCkZ,EAAI+qL,WAAW,CAACne,MAAAA,MApDC,CAAA,IAAA,oBAAA,MAAA,SAwDH5sK,EAxDG,GAwDoC3K,IAAAA,EAAAA,EAAD,GAC9CwP,EAAQ7E,EAAIo4K,WAAWxL,MAAMy9B,WAAUvjN,SAAAA,GAAAA,OAAQA,EAAKuO,KAAOA,KACjE2K,EAAI+qL,WAAW,CAAChgJ,QAASlmC,MA1DR,CAAA,IAAA,eAAA,MAAA,SA8DR7E,GACTA,EAAI+qL,WAAW,CACXne,MAAO,GACP7hI,QAAS,OAjEI,CAAA,CAAA,IAAA,UAAA,MAAA,SAAA,GAGjB,OADmBA,EAAD,QACA,GAAK,IAHN,CAAA,IAAA,UAAA,MAAA,SAAA,GAOSA,IAAP6hI,EAAO7hI,EAAR,MAAQA,EAAAA,EAAF,QACxB,OAAO6hI,EAAMhuL,OAAUmsD,EAAU,IARhB,CAAA,IAAA,QAAA,MAAA,SAYD0rE,GAChB,OAAOA,EAAMm2D,QAbI,CAAA,IAAA,eAAA,MAAA,SAiBMn2D,GACvB,OAAOA,EAAMm2D,MAAMn2D,EAAM1rE,SAAS11C,KAlBjB,CAAA,IAAA,OAAA,MAAA,SAqBTo9G,GACR,OAAOy8E,GAAe,CAAC,KAAgBz4E,SAAAA,GACnC,IAAI5xG,EAAQ4xG,EAAM1rE,QAClB,OAAQ0nE,GACJ,IAAK,WACD5tG,EAAQ4xG,EAAM1rE,QAAU,EACxB,MACJ,IAAK,OACDlmC,EAAQ4xG,EAAM1rE,QAAU,EACxB,MACJ,QACIlmC,EAAQ4xG,EAAM1rE,QAEtB,OAAO0rE,EAAMm2D,MAAM/nK,UAlCN,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAZyiM,KAAAA,GAAAA,WAAAA,GAAAA,CAAAA,MAAAA,GAAY,QAAZA,GAAY,YAuCrB,GAAA,CADC,GAAO2C,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAsDA,KAAtD,GAAA,yBAAA,IAAA,GAAA,UAAA,UAAA,MAUA,GAAA,CADC,GAAOC,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAiEA,KAAjE,GAAA,yBAAA,IAAA,GAAA,UAAA,qBAAA,MAOA,GAAA,CADC,GAAOF,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAA8DA,KAA9D,GAAA,yBAAA,IAAA,GAAA,UAAA,oBAAA,MAMA,GAAA,CADC,GAAOG,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,eAAA,MA5DA,GAAA,CADCpX,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,eAAA,MAjBSuU,GAAY,GAAA,GAAA,CARxBnV,GAAyB,CACtB3uM,KAAM,UACNgzH,SAAU,CACNo2D,MAAO,GACP7hI,QAAS,MAIJu8J,KYlBN,GAAA,WAAA,IAAMgD,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACI,EAAAz9B,OAAS,CAACrpL,KAAM,kBAAmByoL,KAAM,iBACzC,EAAAa,OAAS,CAACtpL,KAAM,kBAAmByoL,KAAM,iBACzC,EAAAc,KAAO,CAACvpL,KAAM,gBAAiByoL,KAAM,eACrC,EAAAe,UAAY,CAACxpL,KAAM,qBAAsByoL,KAAM,oBAC/C,EAAAgB,KAAO,CAACzpL,KAAM,iBAAkByoL,KAAM,iBACtC,EAAAiB,KAAO,CAAC1pL,KAAM,cAAeyoL,KAAM,mBACnC,EAAAkB,OAAS,CAAC3pL,KAAM,eAAgByoL,KAAM,kBACtC,EAAAmB,SAAW,CAAC5pL,KAAM,iBAAkByoL,KAAM,kBAC1C,EAAAoB,MAAQ,CAAC7pL,KAAM,eAAgByoL,KAAM,gBACrC,EAAAuB,MAAQ,CAAChqL,KAAM,kBAAmByoL,KAAM,gBACxC,EAAAqB,QAAU,CAAC9pL,KAAM,2BAA4ByoL,KAAM,0BACnD,EAAAsB,WAAa,CAAC/pL,KAAM,sBAAuByoL,KAAM,qBACjD,EAAAs+B,SAAW,CAAC/mN,KAAM,4BAA6ByoL,KAAM,iBACrD,EAAAu+B,cAAgB,CAAChnN,KAAM,uBAAwByoL,KAAM,iBACrD,EAAAw+B,QAAU,CAACjnN,KAAM,UAAWyoL,KAAM,QAClC,EAAAy+B,aAAe,CAAClnN,KAAM,gBAAiByoL,KAAM,WAC7C,EAAA0+B,aAAe,CAACnnN,KAAM,iBAAkByoL,KAAM,gBAhB9C,EADJ,GCEM2+B,GAAqC,CAC9C92J,YAAAA,EACAD,SAAAA,EACAgU,eAAAA,EACAC,eAAAA,EACAtP,cAAAA,EACArB,cAAAA,EACAC,cAAAA,EACA2Q,gBAAAA,EACAJ,aAAAA,EACAlU,YAAAA,EACAqQ,kBAAAA,EACA5X,YAAa,GAZV,GAAA,EAAA,QLEA,KAAM47J,GAAN,WAMH,SAAA,EAAoBrxF,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,MAAAA,EALZ,KAAAo0F,SAAW,EACX,KAAAC,SAAW,EAEX,KAAAC,YAAAA,EAJL,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAQQ1jN,GAIP,GADOA,IAAGA,EAAIzD,KAAKonN,OACZ3jN,EAAP,CAEA,IAAMmzB,EAAU52B,KAAK6yH,MAAMw0F,kBAErBC,EAActnN,KAAK6yH,MAAM93G,OAAOiiC,WAClCuqK,EAAevnN,KAAK6yH,MAAM93G,OAAOkiC,YAE/BrsB,EAAS5wB,KAAKwnN,gBAAgB/jN,GAEhCyhB,EAAOllB,KAAK6yH,MAAM93G,OAAO6/B,kBAAkB,GAAKhqB,EAAOuD,QAAUn0B,KAAKinN,SACtE9hM,EAAMnlB,KAAK6yH,MAAM93G,OAAO6/B,kBAAkB,GAAKhqB,EAAOwD,QAAUp0B,KAAKknN,SAErEhiM,EAAO,GAAK0R,EAAQla,MAAQ4qM,EAC5BpiM,EAAO,EACAA,EAAOlC,KAAKa,MAAMyjM,GAAe1wL,EAAQla,MAAQ,IACxDwI,EAAO0R,EAAQla,MAAQsG,KAAKa,MAAMyjM,IAGlCniM,EAAM,GAAKyR,EAAQra,OAASgrM,EAC5BpiM,EAAM,EACCA,EAAMnC,KAAKa,MAAM0jM,GAAgB3wL,EAAQra,OAAS,IACzD4I,EAAMyR,EAAQra,OAASyG,KAAKa,MAAM0jM,IAGtCvnN,KAAK6yH,MAAM93G,OAAO6/B,kBAAkB,GAAK11B,EACzCllB,KAAK6yH,MAAM93G,OAAO6/B,kBAAkB,GAAKz1B,EACzCnlB,KAAK6yH,MAAM93G,OAAOgG,mBAElB/gB,KAAKinN,SAAWr2L,EAAOuD,QACvBn0B,KAAKknN,SAAWt2L,EAAOwD,QACvBp0B,KAAKonN,MAAQ3jN,KA1Cd,CAAA,IAAA,QAAA,MAAA,WAiDCzD,KAAKinN,SAAW,EAChBjnN,KAAKknN,SAAW,EAChBlnN,KAAKonN,MAAQ,KACbpnN,KAAK6yH,MAAM93G,OAAO6/B,kBAAkB,GAAK,EACzC56C,KAAK6yH,MAAM93G,OAAO6/B,kBAAkB,GAAK,IArD1C,CAAA,IAAA,OAAA,MAAA,WAwDI,IAAA,EAAA,KACH56C,KAAK6yH,MAAM93G,OAAOsF,GAAG,cAAcw3C,SAAAA,GAE/B,GAAIA,EAAIltD,QAAU3K,EAAK6yH,MAAM93G,OAAOiyC,cAChC,OAAOhtD,EAAKmnN,YAAAA,EAGhB,IAAMv2L,EAAS5wB,EAAKwnN,gBAAgB3vJ,EAAIp0D,GACxCzD,EAAKmnN,YAAAA,EACLnnN,EAAKinN,SAAWr2L,EAAOuD,QACvBn0B,EAAKknN,SAAWt2L,EAAOwD,WAG3Bp0B,KAAK6yH,MAAM93G,OAAOsF,GAAG,cAAcw3C,SAAAA,GAC3B73D,EAAKmnN,YACLnnN,EAAKgiB,IAAI61C,EAAIp0D,MAIrBzD,KAAK6yH,MAAM93G,OAAOsF,GAAG,YAAY,WAC7BrgB,EAAKmnN,YAAAA,OA5EV,CAAA,IAAA,kBAAA,MAAA,SAmFqB1jN,GACpB,IAAI0wB,EAAU,EACVC,EAAU,EAYd,OAVA3wB,EAAIA,GAEEo5D,SAAWp5D,EAAEo5D,QAAQ,IACvB1oC,EAAU1wB,EAAEo5D,QAAQ,GAAG1oC,QACvBC,EAAU3wB,EAAEo5D,QAAQ,GAAGzoC,UAEvBD,EAAU1wB,EAAW,QACrB2wB,EAAU3wB,EAAW,SAGlB,CAAC0wB,QAAAA,EAASC,QAAAA,OAjGlB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM8vL,IAAgB,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAhBA,GAAgB,QAAhBA,GAAgB,YAAA,IDItB,KAAMD,GAAN,WAMH,SAAA,EACYpxF,EACA40F,EACAx+M,EACA4mH,GAAAA,gBAAAA,KAAAA,GAHA,KAAAgD,MAAAA,EACA,KAAA40F,IAAAA,EACA,KAAAx+M,OAAAA,EACA,KAAA4mH,MAAAA,EATF,KAAA63F,QAAU,IACV,KAAAC,QAAU,IACV,KAAAC,SAAW,EACX,KAAAC,YAAc,IAJrB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,WAcC,OAAO7nN,KAAK6nN,cAdb,CAAA,IAAA,iBAAA,MAAA,WAkBC,OAAO7nN,KAAK6yH,MAAM93G,OAAOkjC,YAlB1B,CAAA,IAAA,SAAA,MAAA,WAqByB2pK,IAAdh8E,EAAcg8E,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAL5nN,KAAK4nN,SACxB5nN,KAAKgiB,IAAIhiB,KAAK6nN,YAAcj8E,KAtB7B,CAAA,IAAA,YAAA,MAAA,WAyB4Bg8E,IAAdh8E,EAAcg8E,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAL5nN,KAAK4nN,SAC3B,OAAQ5nN,KAAK6nN,YAAcj8E,GAAW5rI,KAAK0nN,UA1B5C,CAAA,IAAA,aAAA,MAAA,WA6B6BE,IAAdh8E,EAAcg8E,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAL5nN,KAAK4nN,SAC5B,OAAQ5nN,KAAK6nN,YAAcj8E,GAAW5rI,KAAK2nN,UA9B5C,CAAA,IAAA,UAAA,MAAA,WAiC0BC,IAAdh8E,EAAcg8E,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAL5nN,KAAK4nN,SACzB5nN,KAAKgiB,IAAIhiB,KAAK6nN,YAAcj8E,KAlC7B,CAAA,IAAA,MAAA,MAAA,SAwCQk8E,GAA0C,IAAlBC,IAAkB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAEjD,MADAD,EAAiB9kM,KAAKglM,MAAMF,IACP9nN,KAAK2nN,SAAWG,EAAiB9nN,KAAK0nN,SAA3D,CACA,IAAMO,EAAmBH,EAAiB,IAEpCprM,EAAQ1c,KAAK6yH,MAAMpkE,SAAS/xC,MAAQurM,EACtC1rM,EAASvc,KAAK6yH,MAAMpkE,SAASlyC,OAAS0rM,EAE1CjoN,KAAK6yH,MAAM93G,OAAO6jC,QAAQqpK,GAEtBF,IACA/nN,KAAK6yH,MAAM93G,OAAOqiC,UAAU7gC,GAC5Bvc,KAAK6yH,MAAM93G,OAAOmiC,SAASxgC,IAG/B1c,KAAK6nN,YAAcC,EACnB9nN,KAAK6vH,MAAMi+D,SAAS,IAAIf,GAAQ/sL,KAAK6nN,iBAxDtC,CAAA,IAAA,cAAA,MAAA,WA+DC,GAAO7nN,KAAKiJ,OAAO4Z,IAAI,qCAAvB,CACA,IAAMpB,EAAOzhB,KAAK6yH,MAAMw0F,kBAGxB,GAAO5lM,EAAK/E,OAAW+E,EAAKlF,OAA5B,CAIA,IAAMu7E,EAAWr2E,EAAK/E,MAAQ,GAAIu+E,EAAYx5E,EAAKlF,OAAS,GAG5D,GAAIvc,KAAK6yH,MAAMpkE,SAASlyC,OAAS0+E,GAAaj7F,KAAK6yH,MAAMpkE,SAAS/xC,MAAQo7E,EAAU,CAChF,IAAMt7E,EAAQwG,KAAKxI,IAAIygF,EAAYj7F,KAAK6yH,MAAMpkE,SAASlyC,OAAQu7E,EAAW93F,KAAK6yH,MAAMpkE,SAAS/xC,OAExFwrM,EAAallM,KAAKglM,MAAc,IAARxrM,GAE9Bxc,KAAK2nN,QAAU3kM,KAAKa,MAAMqkM,EAAaloN,KAAK4nN,UAAY5nN,KAAK4nN,cAI7D5nN,KAAK2nN,QAAU,IAGf3nN,KAAK6nN,cAAgB7nN,KAAK2nN,SAC1B3nN,KAAKgiB,IAAIhiB,KAAK2nN,aAvFnB,CAAA,IAAA,OAAA,MAAA,WA4FQ3nN,KAAKiJ,OAAO4Z,IAAI,oCACvB7iB,KAAKmoN,iBACLnoN,KAAKooN,qBA9FN,CAAA,IAAA,iBAAA,MAAA,WAiGK,IAAA,EAAA,KACJpoN,KAAK6yH,MAAM93G,OAAOsF,GAAG,eAAew3C,SAAAA,GAChCA,EAAIp0D,EAAEy4D,iBACNrE,EAAIp0D,EAAE24D,kBAEFvE,EAAIp0D,EAAEutE,OAAS,EACfhxE,EAAKqoN,SAELroN,EAAKsoN,UAGTtoN,EAAKynN,IAAIzlM,MACThiB,EAAK6yH,MAAM93G,OAAOgG,wBA7GvB,CAAA,IAAA,kBAAA,MAAA,WAoHK,IAAA,EAAA,KACEwnM,EAAK,IAAIp0F,OAAOG,QAAQt0H,KAAK6yH,MAAM21F,eACnCC,EAAQ,IAAIt0F,OAAOiF,MACzBmvF,EAAGxgN,IAAI,CAAC0gN,IAERF,EAAGloM,GAAG,SAAUyrG,SAAAA,GACZ,IAAMyjE,EAAOvsK,KAAK6K,IAAIi+F,EAAoB,iBAEZ,aAA1BA,EAAoB,gBACpB9rH,EAAKqoN,OAAO94B,GAEZvvL,EAAKsoN,QAAQ/4B,GAGjBvvL,EAAKynN,IAAIzlM,MACThiB,EAAK6yH,MAAM93G,OAAOgG,0BAnIvB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMkjM,IAAiB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAjBA,GAAiB,QAAjBA,GAAiB,YAAA,IDIvB,KAAMD,GAAN,WAIH,SAAA,EACWyD,EACAhzL,EACAo+F,EACAz0E,EACCn1C,GAAAA,gBAAAA,KAAAA,GAJD,KAAAw+M,IAAAA,EACA,KAAAhzL,KAAAA,EACA,KAAAo+F,MAAAA,EACA,KAAAz0E,aAAAA,EACC,KAAAn1C,OAAAA,EARK,KAAA0nG,SAAmB,GACnB,KAAA+3G,UAAoB,GAFlC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WAaC1oN,KAAK6yH,MAAM93G,OAAOgG,qBAbnB,CAAA,IAAA,SAAA,MAAA,WAiBC,OAAO/gB,KAAK6yH,MAAM93G,SAjBnB,CAAA,IAAA,gBAAA,MAAA,SAoBkBtJ,GACjB,OAAOzR,KAAK6yH,MAAM93G,OAAOwG,aAAa6P,MAAKprB,SAAAA,GAAAA,OAChCA,EAAI7J,MAAQ6J,EAAI7J,KAAKsV,KAAOA,OAtBxC,CAAA,IAAA,SAAA,MAAA,SA0BWiL,EAAeH,GACzBvc,KAAK6yH,MAAM93G,OAAOmiC,SAASxgC,EAAQ1c,KAAKy0B,KAAKk0L,kBAC7C3oN,KAAK6yH,MAAM93G,OAAOqiC,UAAU7gC,EAASvc,KAAKy0B,KAAKk0L,kBAC/C3oN,KAAK6yH,MAAMpkE,SAAS/xC,MAAQA,EAC5B1c,KAAK6yH,MAAMpkE,SAASlyC,OAASA,IA9B9B,CAAA,IAAA,gBAAA,MAAA,SAiCkBzd,GAA0E,IAAA,EAAA,KAA7D8pN,IAA6D,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAAzCC,EAAyC,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,YAC3F,OAAO,IAAIt5M,SAAQwJ,SAAAA,GACf/Y,EAAK6yH,MAAM4yF,qBAAqBv9M,KAAK,CAACtI,KAAMipN,EAAetyL,SAAAA,IAC3Dv2B,EAAKsmB,UAAUxnB,GAAK4Q,MAAK8W,SAAAA,GACrB,GAAOoiM,EAIH5oN,EAAK+a,SAASokC,YAJE,CAChB,IAAMsD,EAAUziD,EAAK8oN,eACrB9oN,EAAK+a,SAAShF,OAAO0sC,GAIzBj8B,EAAIxE,IAAIglM,IACRxgM,EAAI5mB,KAAO8vM,GAAYI,UAAUlwM,KACjCI,EAAK6yH,MAAM93G,OAAOhT,IAAIye,GACtBxmB,EAAK+nN,OAAOvhM,EAAI9J,MAAO8J,EAAIjK,QAC3Bvc,EAAKy0B,KAAKs0L,cACV/oN,EAAK6yH,MAAM4yF,qBAAqBv9M,KAAK,CAACtI,KAAMipN,EAAetyL,SAAAA,IAC3Dxd,EAAQyN,GACR,IAAM9hB,EAAW1E,EAAKiJ,OAAO4Z,IAAI,2BAC7Bne,GAAUA,EAAS8hB,WAnDhC,CAAA,IAAA,YAAA,MAAA,SAwDcrqB,GAAAA,IAAAA,EAAAA,KACb,OAAO,IAAIoT,SAAQwJ,SAAAA,GACfgC,GAAA,OAAOkF,KAAKqG,UACRnqB,GACAqqB,SAAAA,GAAAA,OAAOzN,EAAQ,IAAIgC,GAAA,OAAOqrB,MAAM5f,MAChC,KACAxmB,EAAKiJ,OAAO4Z,IAAI,2BA9DzB,CAAA,IAAA,UAAA,MAAA,SAmEYnG,EAAeH,GAAAA,IAAAA,EAAAA,KAO1B,OANAG,EAAQA,EAAQ1c,KAAK2wG,SAAW3wG,KAAK2wG,SAAWj0F,EAChDH,EAASA,EAASvc,KAAK0oN,UAAY1oN,KAAK0oN,UAAYnsM,EAEpDvc,KAAK6yH,MAAM93G,OAAOokC,QAClBn/C,KAAK+nN,OAAOrrM,EAAOH,GAEZ,IAAIhN,SAAQwJ,SAAAA,GACf1Y,YAAW,WACPL,EAAKy0B,KAAKs0L,cACV/oN,EAAK6yH,MAAM4yF,qBAAqBv9M,KAAK,CAACtI,KAAM,QAAS22B,SAAAA,IACrDxd,EAAQ,CAAC2D,MAAAA,EAAOH,OAAAA,YA9EzB,CAAA,IAAA,YAAA,MAAA,SAsFczd,GAAmB,IAAA,EAAA,KAAdiqN,IAAc,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAChC,OAAO,IAAIx5M,SAAQwJ,SAAAA,GACfgC,GAAA,OAAOkF,KAAKqG,UAAUxnB,GAAKy9C,SAAAA,GACvB,GAAOA,EAAP,CAEA,IAAMjlC,EAAS,IAAIyD,GAAA,OAAOqrB,MAAMmW,GAChCjlC,EAAO1X,KAAO8vM,GAAYnzJ,MAAM38C,KAChC0X,EAAO+c,QAAU,EAGjB,IAAMyjE,EAAY93F,EAAK6yH,MAAMpkE,SAAS/xC,MAClCu+E,EAAYj7F,EAAK6yH,MAAMpkE,SAASlyC,OAGpC,GAAIwsM,IAAgBzxM,EAAOoF,OAASo7E,GAAYxgF,EAAOiF,QAAU0+E,GAAY,CAGzE,IAAM+tH,EAAYlxH,EAAY,GAAMA,EAEhCt7E,EAAY,EAAKwG,KAAKxI,KADVygF,EAAa,GAAMA,GACO3jF,EAAOu3D,kBAAmBm6I,EAAW1xM,EAAOy1D,kBAGtFz1D,EAAO0S,OAAS1S,EAAO0S,QAAU,EAAIxN,GACrClF,EAAO2S,OAAS3S,EAAO2S,QAAU,EAAIzN,GAIzCxc,EAAK6yH,MAAM93G,OAAOhT,IAAIuP,GACtBA,EAAOq0D,iBACPr0D,EAAOinC,YACPv+C,EAAK+gD,SACL/gD,EAAKy0B,KAAKs0L,cAEVzxM,EAAO+hB,QAAQ,UAAW,IAAK,CAC3BG,SAAU,IACVE,SAAU,WACN15B,EAAK+gD,UAETzoB,WAAY,WACRvf,EAAQzB,eA7HzB,CAAA,IAAA,eAAA,MAAA,WAwIC,OAAOtX,KAAK6yH,MAAM93G,OAAOwG,aACpB6P,MAAKprB,SAAAA,GAAAA,OAAOA,EAAIpG,OAAS8vM,GAAYI,UAAUlwM,UAzIrD,CAAA,IAAA,KAAA,MAAA,SA+IOkgB,EAAmBtf,GACzBR,KAAK+a,SAASsF,GAAGP,EAAWtf,OAhJ7B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMwjN,IAAa,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAbA,GAAa,QAAbA,GAAa,YAAA,IDJnB,KAAMD,GAAN,WAGH,SAAA,EACY7nM,EACAkiC,EACAyxE,EACAguD,GAAAA,gBAAAA,KAAAA,GAHA,KAAA3hK,OAAAA,EACA,KAAAkiC,aAAAA,EACA,KAAAyxE,MAAAA,EACA,KAAAguD,KAAAA,EANJ,KAAA18J,QAAoB,GAQxBnhB,KAAKgsH,OATN,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WAgBC,OAAOhsH,KAAKmhB,UAhBb,CAAA,IAAA,MAAA,MAAA,SAsBQvhB,GACP,OAAOI,KAAKmhB,QAAQiQ,MAAKprB,SAAAA,GAAAA,OAAOA,EAAIpG,OAASA,OAvB9C,CAAA,IAAA,UAAA,MAAA,SA6BY6R,GACX,OAAOzR,KAAKmhB,QAAQiQ,MAAKprB,SAAAA,GAAAA,OAAOA,EAAI7J,KAAKsV,KAAOA,OA9BjD,CAAA,IAAA,WAAA,MAAA,SAoCaw3M,GACZ,IAAMC,EAA8B,iBAAfD,EAA0BA,EAAaA,EAAW9sN,KAAKsV,GAC5E,OAAOzR,KAAKo+C,aAAa+qK,UAAYD,IAtCtC,CAAA,IAAA,MAAA,MAAA,SA4CQtpN,GACP,OAAOI,KAAKmhB,QAAQslM,WAAUzgN,SAAAA,GAAAA,OAAOA,EAAIpG,OAASA,MAAS,IA7C5D,CAAA,IAAA,SAAA,MAAA,SAmDW0X,GACVtX,KAAKkc,OAAO22G,MAAM93G,OAAOm9C,gBAAgB5gD,GACzCtX,KAAKkc,OAAO22G,MAAM93G,OAAOgG,qBArD1B,CAAA,IAAA,cAAA,MAAA,WA6DC/gB,KAAKmhB,QAAUnhB,KAAKkc,OAAOnB,SAASwG,aAC/BrK,QAAOlR,SAAAA,GAAAA,OACGA,EAAIpG,OAASoG,EAAIpG,KAAKwpN,SAAS,WACjCpjN,EAAIpG,KAAKwpN,SAAS,YAAcpjN,EAAIpG,KAAKwpN,SAAS,aACxDxxK,UACP53C,KAAK6vH,MAAMi+D,SAAS,IAAIhB,MAlEzB,CAAA,IAAA,OAAA,MAAA,WAwEI,IAAA,EAAA,KACH9sL,KAAKkc,OAAO22G,MAAMpwD,OAAOliE,WAAU,WAC/BP,EAAKqpN,cAELrpN,EAAKkc,OAAOnB,SAASsF,GAAG,gBAAiBxmB,SAAAA,GACrCmG,EAAK69K,KAAKwC,KAAI,WAAA,OAAMrgL,EAAKqpN,oBAG7BrpN,EAAKkc,OAAOnB,SAASsF,GAAG,kBAAkB,WACtCrgB,EAAK69K,KAAKwC,KAAI,WAAA,OAAMrgL,EAAKqpN,2BAjFlC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMtF,IAAiB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAjBA,GAAiB,QAAjBA,GAAiB,YAAA,IDFvB,KAAMD,GAAN,WA+BH,SAAA,EACY5nM,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,EA3BI,KAAAotM,QAAU,CACtB,UAAW,WAAY,aAAc,eAMzB,KAAAC,MAAQ,CACpB,MAAO,QAAS,SAAU,QAb3B,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,WAoCC,OAAOvpN,KAAKspN,QAAQ9sN,OAAOwD,KAAKupN,SApCjC,CAAA,IAAA,SAAA,MAAA,WA2CC,OAAsB,MAAfvpN,KAAKiJ,SA3Cb,CAAA,IAAA,SAAA,MAAA,WAiDI,IAAA,EAAA,KACIjJ,KAAKwpN,WAEZxpN,KAAKkc,OAAOnB,SAAShF,OAAO/V,KAAKs+C,OAGjCt+C,KAAKs+C,MAAM79B,MACXzgB,KAAKs+C,MAAQ,KACbt+C,KAAKiJ,OAAS,KACdjJ,KAAKypN,eAAe9xM,SAAQu7F,SAAAA,GACxBlzG,EAAKkzG,GAAQ,QAEjBlzG,KAAKkc,OAAO6kC,YA7Db,CAAA,IAAA,KAAA,MAAA,SAmEOshE,GACN,QAAOriH,KAAKiJ,QACLjJ,KAAKiJ,OAAOrJ,OAASyiH,EAAMziH,OArEnC,CAAA,IAAA,cAAA,MAAA,SA2EgB6F,GAAAA,IAAAA,EAAAA,KACU,UAArBzF,KAAKiJ,OAAO8gF,OAEhB/pF,KAAKypN,eAAe9xM,SAAQu7F,SAAAA,GACxBlzG,EAAKkzG,GAAMlxF,IAAI,OAAQvc,MAG3BzF,KAAKkc,OAAO6kC,YAlFb,CAAA,IAAA,UAAA,MAAA,WAyFC,OAAO/gD,KAAKiJ,QAA+B,UAArBjJ,KAAKiJ,OAAO8gF,OAzFnC,CAAA,IAAA,aAAA,MAAA,WA6FC,GAAO/pF,KAAKwpN,SACZ,OAAOxpN,KAAKiJ,OAAOwY,KAAKjH,KAAO,IA9FhC,CAAA,IAAA,aAAA,MAAA,WAkGC,GAAOxa,KAAKwpN,SACZ,OAAOxpN,KAAKiJ,OAAOwY,KAAKhH,KAAO,KAnGhC,CAAA,IAAA,iBAAA,MAAA,WAuGC,GAAOza,KAAKwpN,SACZ,OAAOxpN,KAAKiJ,OAAOwY,KAAZzhB,SAA4B,OAxGpC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM8jN,IAAkB,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAlBA,GAAkB,QAAlBA,GAAkB,YAAA,IDIxB,KAAMD,GAAN,WAIH,SAAA,EACY56M,EACAygN,EACAxtM,GAAAA,gBAAAA,KAAAA,GAFA,KAAAjT,OAAAA,EACA,KAAAygN,YAAAA,EACA,KAAAxtM,OAAAA,EAPT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,SAae6tE,GAAAA,IAAAA,EAAAA,KACd/pF,KAAK2pN,aAAahyM,SAAQu7F,SAAAA,GACtBlzG,EAAK4pN,oBAAoB12G,EAAMnpB,QAfpC,CAAA,IAAA,sBAAA,MAAA,SAsByBmpB,EAAmCnpB,GAC3D,IAAM8/H,EAAsB,IAAI9uM,GAAA,OAAO++B,aACvC+vK,EAAoB9hN,IAAImrG,EAAK1sF,KAE7B,IAAMmB,EAAU,IAAI5M,GAAA,OAAOuH,QAAQ,CAC/BlgB,OAAQ,WACJ,IAAMsa,EAAQw2F,EAAK1sF,IAAIumD,iBACnBxwD,EAAS22F,EAAK1sF,IAAIqoD,kBAOtB,OALInyD,EAAQ,GAAKH,EAAS,IACtBstM,EAAoB1sK,cAAc,CAACzgC,MAAAA,EAAOH,OAAAA,IAC1CstM,EAAoBtqK,aAGjBsqK,EAAoB9qK,cAE/BzG,OAAiB,WAATyxC,EAAoB,SAAW,cAGvC/pF,KAAK0pN,YAAYx2G,EAAKtzG,OACtBI,KAAK0pN,YAAYx2G,EAAKtzG,MAAMoiB,IAAI,OAAQ2F,KA1C7C,CAAA,IAAA,QAAA,MAAA,SAiDUliB,GAAAA,IAAAA,EAAAA,KACHskF,EAAO/pF,KAAK0pN,YAAYzgN,OAAO8gF,KAE9B/pF,KAAK2pN,eAEZlkN,GAAgBzF,KAAKkc,OAAOnB,SAASghC,mBAErC/7C,KAAK2pN,aAAahyM,SAAQu7F,SAAAA,GAEJ,QAAdA,EAAKtzG,MAAgC,WAAdszG,EAAKtzG,KACf,YAATmqF,GACA/pF,EAAK8pN,oBAAoB52G,EAAK1sF,IAAKxmB,EAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAAiB,EAARjX,EAAa,GACpFzF,EAAK+pN,qBAAqB72G,EAAK1sF,IAAK/gB,IAEpCytG,EAAK1sF,IAAIwoD,cAAcvpE,GAKR,SAAdytG,EAAKtzG,MAAiC,UAAdszG,EAAKtzG,MACrB,YAATmqF,EAUJmpB,EAAK1sF,IAAIsoD,aAAarpE,IATlBzF,EAAK8pN,oBAAoB52G,EAAK1sF,IAAK/gB,GACnCzF,EAAK+pN,qBAAqB72G,EAAK1sF,IAAKxmB,EAAKkc,OAAO22G,MAAMpkE,SAASlyC,OAAkB,EAAR9W,EAAa,UAvEnG,CAAA,IAAA,sBAAA,MAAA,SAuFyBkiB,EAAiBliB,GACzC,IAAMspE,EAAqBpnD,EAAQkjD,kBAAkBnuD,MAAQiL,EAAQolD,iBACrEplD,EAAQ3F,IAAI,SAAUvc,EAAQkiB,EAAQjL,MAAQqyD,GAC9CpnD,EAAQ42B,cA1FT,CAAA,IAAA,uBAAA,MAAA,SAgG0B52B,EAAiBliB,GAC1C,IAAMspE,EAAqBpnD,EAAQkjD,kBAAkBtuD,OAASoL,EAAQknD,kBACtElnD,EAAQ3F,IAAI,SAAUvc,EAAQkiB,EAAQpL,OAASwyD,GAC/CpnD,EAAQ42B,cAnGT,CAAA,IAAA,OAAA,MAAA,SAyGS8jE,GAAAA,IAAAA,EAAAA,KACFmhE,EAAWxjL,KAAK0pN,YAAYD,eAAe10M,KAAIm+F,SAAAA,GAAAA,OAC3C,IAAI3jG,SAAQwJ,SAAAA,GACf,IAAM9P,EAAS,OAAA,OAAA,GAAI+9M,IACfhnN,EAAKiJ,OAAO4Z,IAAI,uBAChB5Z,EAAOsd,YAAc,aAEzBxL,GAAA,OAAOqrB,MAAMm4C,QAAQv+E,EAAKgqN,WAAW3nG,EAAOnP,IAAO1sF,SAAAA,GAC/CzN,EAAQ,CAACnZ,KAAMszG,EAAM1sF,IAAAA,MACtBvd,SAIV,OAAOsG,QAAQsI,IAAI2rK,GAAU9zK,MAAKu6M,SAAAA,GAC9BjqN,EAAK2pN,aAAeM,EACpBjqN,EAAKkqN,UAAU7nG,EAAMt4B,WAxH1B,CAAA,IAAA,aAAA,MAAA,SA4HgBs4B,EAAcnP,GAC7B,OAAOlzG,KAAKwkN,WAAWniG,GAAS,IAAMnP,EAAO,SA7H9C,CAAA,IAAA,aAAA,MAAA,SAgIemP,GACd,OAAOriH,KAAKiJ,OAAOkhN,YAAY,iBAAmB9nG,EAAMziH,MAAAA,OAjIzD,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMikN,IAAoB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAApBA,GAAoB,QAApBA,GAAoB,YAAA,IDQ1B,KAAMD,GAAN,WACH,SAAA,EACY36M,EACAygN,EACAxtM,EACAqL,GAAAA,gBAAAA,KAAAA,GAHA,KAAAte,OAAAA,EACA,KAAAygN,YAAAA,EACA,KAAAxtM,OAAAA,EACA,KAAAqL,SAAAA,EALT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAWU86F,EAAc5gG,GAAAA,IAAAA,EAAAA,KAQvB,GAPAzhB,KAAKoqN,YAAY/nG,GACjBriH,KAAKqqN,YAAYhoG,GACjBriH,KAAK+nN,OAAOtmM,GACZzhB,KAAK0pN,YAAYzgN,OAASo5G,EAC1BriH,KAAKkc,OAAOnB,SAAShT,IAAI/H,KAAK0pN,YAAYprK,OAGvB,UAAf+jE,EAAMt4B,KACN,OAAO/pF,KAAKkc,OAAO6kC,SAGvB/gD,KAAKunB,SAAS9X,KAAK4yG,GAAO3yG,MAAK,WAC3B1P,EAAKunB,SAAS/K,MAAMiF,GACpBzhB,EAAKkc,OAAO6kC,cAzBjB,CAAA,IAAA,cAAA,MAAA,SAgCiBshE,GAChBriH,KAAK0pN,YAAYprK,MAAQ,IAAIvjC,GAAA,OAAOiN,MAAM,GAAIjiB,OAAOkjH,OAAO,CACxDrpH,KAAM,cACN2iD,mBAAAA,EACA7lC,MAAO1c,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAClCH,OAAQvc,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,OACnCpgB,KAAM,CAACmuN,UAAWjoG,EAAMziH,OACzBonN,OAvCJ,CAAA,IAAA,cAAA,MAAA,SA6CiB3kG,GAAAA,IAAAA,EAAAA,KAChBriH,KAAK0pN,YAAYD,eAAe9xM,SAAQu7F,SAAAA,GACpC,IAAMhzF,EAAsB,UAAfmiG,EAAMt4B,KAAmB/pF,EAAKiJ,OAAO4Z,IAAI,oCAAsC,KAC5F7iB,EAAK0pN,YAAYx2G,GAAQ,IAAIn4F,GAAA,OAAOwvC,KAAK,OAAD,OAAA,OAAA,OAAA,GAAKy8J,IAAkB,CAAE9mM,KAAAA,EAAMtgB,KAAM,cAAgBszG,KAC7FlzG,EAAK0pN,YAAYprK,MAAMv2C,IAAI/H,EAAK0pN,YAAYx2G,SAjDjD,CAAA,IAAA,SAAA,MAAA,SAwDWztG,GACV,IAAM8kN,EAAYvqN,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MACzC8tM,EAAaxqN,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,OACxC8lG,EAAQriH,KAAK0pN,YACbtmJ,EAAa39D,EAEjBzF,KAAKyqN,aAAa,UAAW,CACzB/tM,MAAO0mD,EAAY7mD,OAAQ6mD,IAG/BpjE,KAAKyqN,aAAa,WAAY,CAC1BvlM,KAAMqlM,EAAYloG,EAAMl3D,QAAQ4hB,iBAChCrwD,MAAO0mD,EAAY7mD,OAAQ6mD,IAG/BpjE,KAAKyqN,aAAa,MAAO,CACrBvlM,KAAMm9F,EAAMl3D,QAAQ4hB,iBAAmB,EACvCrwD,MAAO6tM,EAAYloG,EAAMl3D,QAAQ4hB,iBAAmBs1C,EAAM/3E,SAASyiC,iBAAmB,EACtFxwD,OAAQ6mD,IAGZpjE,KAAKyqN,aAAa,aAAc,CAC5BtlM,IAAKqlM,EAAanoG,EAAMl3D,QAAQ0jB,kBAChCnyD,MAAO0mD,EAAY7mD,OAAQ6mD,IAG/BpjE,KAAKyqN,aAAa,OAAQ,CACtBtlM,IAAKk9F,EAAMl3D,QAAQ0jB,kBAAoB,EACvCnyD,MAAO0mD,EACP7mD,OAAQiuM,EAAanoG,EAAMl3D,QAAQ0jB,kBAAoBwzC,EAAM93E,WAAWskC,kBAAoB,IAGhG7uE,KAAKyqN,aAAa,cAAe,CAC7BvlM,KAAMqlM,EAAYloG,EAAM93E,WAAWwiC,iBACnC5nD,IAAKqlM,EAAanoG,EAAM/3E,SAASyiC,iBACjCrwD,MAAO0mD,EACP7mD,OAAQ6mD,IAGZpjE,KAAKyqN,aAAa,SAAU,CACxBvlM,KAAMm9F,EAAM93E,WAAWwiC,iBAAmB,EAC1C5nD,IAAKqlM,EAAanoG,EAAMl9F,IAAI0pD,kBAC5BnyD,MAAO2lG,EAAMl9F,IAAI4nD,iBAAmB,EACpCxwD,OAAQ6mD,IAGZpjE,KAAKyqN,aAAa,QAAS,CACvBvlM,KAAMqlM,EAAYloG,EAAMn9F,KAAK6nD,iBAC7B5nD,IAAKk9F,EAAM/3E,SAASukC,kBAAoB,EACxCnyD,MAAO2lG,EAAMn9F,KAAKxI,MAClBH,OAAQiuM,EAAanoG,EAAM/3E,SAASukC,kBAAoBwzC,EAAMqoG,YAAY77I,kBAAoB,MA1GnG,CAAA,IAAA,eAAA,MAAA,SAiHkBqkC,EAAc5oD,GAE/BA,EAAKnlC,KAAQnlB,KAAK0pN,YAAYprK,MAAM/hC,OAAS,GAAM+tC,EAAKnlC,KAAO,GAC/DmlC,EAAKplC,MAASllB,KAAK0pN,YAAYprK,MAAM5hC,MAAQ,GAAM4tC,EAAKplC,MAAQ,GAChEllB,KAAK0pN,YAAYx2G,GAAMlxF,IAAIsoC,OArH5B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMs5J,IAAmB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAnBA,GAAmB,QAAnBA,GAAmB,YAAA,IDPzB,KAAMD,GAAN,WAGH,SAAA,EACY16M,EACAiT,EACDqL,EACCmiM,EACAiB,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAJA,KAAA1hN,OAAAA,EACA,KAAAiT,OAAAA,EACD,KAAAqL,SAAAA,EACC,KAAAmiM,YAAAA,EACA,KAAAiB,aAAAA,EAPJ,KAAA/tG,OAAkB,GAStB58G,KAAKiJ,OAAO2hN,OAAOrqN,WAAU,WACzBP,EAAK48G,OAAS58G,EAAKiJ,OAAO4Z,IAAI,8BAGlC7iB,KAAKkc,OAAO22G,MAAMpwD,OAAOliE,WAAU,WAC/BP,EAAKkc,OAAOnB,SAASsF,GAAG,gBAAgB,WACpCrgB,EAAK0pN,YAAYprK,OAASt+C,EAAK0pN,YAAYprK,MAAMx1B,OAAO,UAhBjE,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAwBQwhM,GACP,IAAMjoG,EAAQriH,KAAK6qN,UAAUP,GAC7B,IAAItqN,KAAK0pN,YAAY7sD,GAAGx6C,GAAxB,CAEIriH,KAAK0pN,YAAYF,UACjBxpN,KAAK0pN,YAAY3zM,SAGrB,IAAM0L,EAAOzhB,KAAK8qN,cAAczoG,EAAM5gG,KAAN4gG,SAChCriH,KAAK2qN,aAAa9E,MAAMxjG,EAAO5gG,MAjChC,CAAA,IAAA,SAAA,MAAA,SAuCWhc,GACV,IAAMgc,EAAOzhB,KAAK8qN,cAAcrlN,GAChCzF,KAAK2qN,aAAa5C,OAAOtmM,GACzBzhB,KAAKunB,SAAS/K,MAAMiF,GACpBzhB,KAAKkc,OAAO6kC,WA3Cb,CAAA,IAAA,cAAA,MAAA,SAiDgBt7C,GACfzF,KAAK0pN,YAAYqB,YAAYtlN,KAlD9B,CAAA,IAAA,SAAA,MAAA,WAsDCzF,KAAK0pN,YAAY3zM,WAtDlB,CAAA,IAAA,YAAA,MAAA,SA4Dcu0M,GACb,OAAOtqN,KAAKgrN,SAAS55L,MAAKixF,SAAAA,GAAAA,OAASA,EAAMziH,OAAS0qN,OA7DnD,CAAA,IAAA,YAAA,MAAA,WAoEC,OAAOtqN,KAAK0pN,YAAYzgN,SApEzB,CAAA,IAAA,SAAA,MAAA,WAwEC,OAAOjJ,KAAK48G,SAxEb,CAAA,IAAA,gBAAA,MAAA,SA8EmBquG,GAElB,OAASA,EAAa,IADVjoM,KAAKxI,IAAIxa,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAAO1c,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,YA/EnF,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMonM,IAAgB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAhBA,GAAgB,QAAhBA,GAAgB,UAAA,WAFb,SAAA,IOLT,GAAA,EAAA,QMiCDuH,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAqBAC,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IA0CAC,GAAAA,WAKF,SAAA,EAAYtzG,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAKR93G,KAAKqrN,gBAAkB,IAAIv3D,IAI3B9zJ,KAAKsrN,WAAa,KACbxzG,EAID93G,KAAKurN,SADmB,iBAAZzzG,EACI,WAIZ93G,EAAK83G,QAAU,IAAIg8C,IACnBh8C,EAAQt2G,MAAM,MAAMmW,SAIpBjY,SAAAA,GAEI,IAAMuhB,EAAQvhB,EAAKkC,QAAQ,KAC3B,GAAIqf,EAAQ,EAAG,CAEX,IAAMrhB,EAAOF,EAAKpC,MAAM,EAAG2jB,GAErB/kB,EAAM0D,EAAK8O,cAEXjJ,EAAQ/F,EAAKpC,MAAM2jB,EAAQ,GAAGjL,OACpChW,EAAKwrN,uBAAuB5rN,EAAM1D,GAC9B8D,EAAK83G,QAAQi+C,IAAI75J,GACE8D,EAAK83G,QAAQj1F,IAAI3mB,GAAOwE,KAAK+E,GAGhDzF,EAAK83G,QAAQ91F,IAAI9lB,EAAK,CAACuJ,SAOvB,WAIZzF,EAAK83G,QAAU,IAAIg8C,IACnB/tJ,OAAOP,KAAKsyG,GAASngG,SAIrB/X,SAAAA,GAEI,IAAIijH,EAAS/K,EAAQl4G,GAEf1D,EAAM0D,EAAK8O,cACK,iBAAXm0G,IACPA,EAAS,CAACA,IAEVA,EAAO7nH,OAAS,IAChBgF,EAAK83G,QAAQ91F,IAAI9lB,EAAK2mH,GACtB7iH,EAAKwrN,uBAAuB5rN,EAAM1D,QArD9C8D,KAAK83G,QAAU,IAAIg8C,IA4Q2E53J,OA1MtG,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAI0D,GAEA,OADAI,KAAKgsH,OACEhsH,KAAK83G,QAAQi+C,IAAIn2J,EAAK8O,iBASjC,CAAA,IAAA,MAAA,MAAA,SAAI9O,GACAI,KAAKgsH,OAEL,IAAMnJ,EAAS7iH,KAAK83G,QAAQj1F,IAAIjjB,EAAK8O,eACrC,OAAOm0G,GAAUA,EAAO7nH,OAAS,EAAI6nH,EAAO,GAAK,OAOrD,CAAA,IAAA,OAAA,MAAA,WAEI,OADA7iH,KAAKgsH,OACEvlH,MAAM8tE,KAAKv0E,KAAKqrN,gBAAgBxoG,YAS3C,CAAA,IAAA,SAAA,MAAA,SAAOjjH,GAEH,OADAI,KAAKgsH,OACEhsH,KAAK83G,QAAQj1F,IAAIjjB,EAAK8O,gBAAkB,OAWnD,CAAA,IAAA,SAAA,MAAA,SAAO9O,EAAM6F,GACT,OAAOzF,KAAK4W,MAAM,CAAEhX,KAAAA,EAAM6F,MAAAA,EAAOgmN,GAAI,QAYzC,CAAA,IAAA,MAAA,MAAA,SAAI7rN,EAAM6F,GACN,OAAOzF,KAAK4W,MAAM,CAAEhX,KAAAA,EAAM6F,MAAAA,EAAOgmN,GAAI,QAUzC,CAAA,IAAA,SAAA,MAAA,SAAO7rN,EAAM6F,GACT,OAAOzF,KAAK4W,MAAM,CAAEhX,KAAAA,EAAM6F,MAAAA,EAAOgmN,GAAI,QAQzC,CAAA,IAAA,yBAAA,MAAA,SAAuB7rN,EAAM8rN,GACpB1rN,KAAKqrN,gBAAgBt1D,IAAI21D,IAC1B1rN,KAAKqrN,gBAAgBrpM,IAAI0pM,EAAQ9rN,KAOzC,CAAA,IAAA,OAAA,MAAA,WAAA,IAAA,EAAA,KACUI,KAAKurN,WACHvrN,KAAKurN,oBAAoBH,EACzBprN,KAAK2rN,SAAS3rN,KAAKurN,UAGnBvrN,KAAKurN,WAETvrN,KAAKurN,SAAW,KACVvrN,KAAKsrN,aACPtrN,KAAKsrN,WAAW3zM,SAIhBq9G,SAAAA,GAAAA,OAAUh1H,EAAK4rN,YAAY52F,MAC3Bh1H,KAAKsrN,WAAa,SAS9B,CAAA,IAAA,WAAA,MAAA,SAASt9I,GAAAA,IAAAA,EAAAA,KACLA,EAAMg+C,OACNvlH,MAAM8tE,KAAKvG,EAAM8pC,QAAQtyG,QAAQmS,SAIjCzb,SAAAA,GACI8D,EAAK83G,QAAQ91F,IAAI9lB,EAAwB8xE,EAAM8pC,QAAQj1F,IAAI3mB,IAC3D8D,EAAKqrN,gBAAgBrpM,IAAI9lB,EAAwB8xE,EAAMq9I,gBAAgBxoM,IAAI3mB,SAQnF,CAAA,IAAA,QAAA,MAAA,SAAM84H,GAEF,IAAMp+G,EAAQ,IAAIw0M,EAIlB,OAHAx0M,EAAM20M,SACCvrN,KAAKurN,UAAYvrN,KAAKurN,oBAAoBH,EAAeprN,KAAKurN,SAAWvrN,KAChF4W,EAAM00M,YAActrN,KAAKsrN,YAAc,IAAI9uN,OAAO,CAACw4H,IAC5Cp+G,IAOX,CAAA,IAAA,cAAA,MAAA,SAAYo+G,GAER,IAAM94H,EAAM84H,EAAOp1H,KAAK8O,cACxB,OAAQsmH,EAAOy2F,IACX,IAAK,IACL,IAAK,IAED,IAAIhmN,EAA2BuvH,EAAa,MAI5C,GAHqB,iBAAVvvH,IACPA,EAAQ,CAACA,IAEQ,IAAjBA,EAAMzK,OACN,OAEJgF,KAAKwrN,uBAAuBx2F,EAAOp1H,KAAM1D,GAEzC,IAAM8tH,GAAsB,MAAdgL,EAAOy2F,GAAazrN,KAAK83G,QAAQj1F,IAAI3mB,QAAAA,IAAqB,GACxE8tH,EAAKtpH,KAALspH,MAAAA,EAAAA,oBAAavkH,IACbzF,KAAK83G,QAAQ91F,IAAI9lB,EAAK8tH,GACtB,MACJ,IAAK,IAED,IAAM6hG,EAA8B72F,EAAa,MACjD,GAAK62F,EAIA,CAED,IAAI/zF,EAAW93H,KAAK83G,QAAQj1F,IAAI3mB,GAChC,IAAK47H,EACD,OAOoB,KALxBA,EAAWA,EAAS5gH,QAIpBzR,SAAAA,GAAAA,OAAsC,IAA7BomN,EAASjqN,QAAQ6D,OACbzK,QACTgF,KAAK83G,QAAL93G,OAAoB9D,GACpB8D,KAAKqrN,gBAALrrN,OAA4B9D,IAG5B8D,KAAK83G,QAAQ91F,IAAI9lB,EAAK47H,QAnB1B93H,KAAK83G,QAAL93G,OAAoB9D,GACpB8D,KAAKqrN,gBAALrrN,OAA4B9D,MA6B5C,CAAA,IAAA,UAAA,MAAA,SAAQkI,GAAAA,IAAAA,EAAAA,KACJpE,KAAKgsH,OACLvlH,MAAM8tE,KAAKv0E,KAAKqrN,gBAAgB7lN,QAC3BmS,SAILzb,SAAAA,GAAAA,OAAOkI,EAAsBpE,EAAKqrN,gBAAgBxoM,IAAI3mB,GAA2B8D,EAAK83G,QAAQj1F,IAAI3mB,WAAAA,EA5RpGkvN,GAiXAU,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GA+B4BrmN,OA/B5BqmN,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,YAAAA,MAAAA,SAMQ5vN,GACN,OAAO6vN,GAAiB7vN,KAO5B,CAAA,IAAA,cAAA,MAAA,SAAYuJ,GACR,OAAOsmN,GAAiBtmN,KAO5B,CAAA,IAAA,YAAA,MAAA,SAAUvJ,GACN,OAAOmf,mBAAmBnf,KAO9B,CAAA,IAAA,cAAA,MAAA,SAAYuJ,GACR,OAAO4V,mBAAmB5V,OAAAA,EA/B5BqmN,GAmEN,SAASC,GAAiB7+M,GACtB,OAAOpR,mBAAmBoR,GACrBrB,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KA+C1B,IAAMmgN,GAAAA,WAIF,SAAA,IAAsB,IAAA,EAAA,KAAVt2M,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAIlB,GAJkB,gBAAA,KAAA,GAClB1V,KAAKisN,QAAU,KACfjsN,KAAKksN,UAAY,KACjBlsN,KAAKmsN,QAAUz2M,EAAQy2M,SAAW,IAAIL,GAChCp2M,EAAQ02M,WAAY,CACtB,GAAM12M,EAAQ2R,WACV,MAAM,IAAIxhB,MAAM,kDAEpB7F,KAAK+U,IAjGjB,SAAqBs3M,EAAWC,GAE5B,IAAMv3M,EAAM,IAAI++I,IAoBhB,OAnBIu4D,EAAUrxN,OAAS,GAEJqxN,EAAU7qN,MAAM,KACxBmW,SAIN6gB,SAAAA,GAES+zL,IAAAA,EAAQ/zL,EAAM52B,QAAQ,KAAtB2qN,EAAAA,gBACuB,GAAVA,EACf,CAACD,EAAME,UAAUh0L,GAAQ,IACzB,CAAC8zL,EAAME,UAAUh0L,EAAMl7B,MAAM,EAAGivN,IAASD,EAAMG,YAAYj0L,EAAMl7B,MAAMivN,EAAQ,KAH7EA,GACCrwN,EADDqwN,EAAAA,GACM15G,EADN05G,EAAAA,GAKA5nF,EAAO5vH,EAAI8N,IAAI3mB,IAAQ,GAC7ByoI,EAAKjkI,KAAKmyG,GACV99F,EAAIiN,IAAI9lB,EAAKyoI,MAGd5vH,EAtBX,CAiGmCW,EAAQ02M,WAAYpsN,KAAKmsN,cAEzCz2M,EAAQ2R,YACfrnB,KAAK+U,IAAM,IAAI++I,IACf/tJ,OAAOP,KAAKkQ,EAAQ2R,YAAY1P,SAIhCzb,SAAAA,GAEI,IAAMuJ,EAA4BiQ,EAAoB,WAAExZ,GACrC8D,EAAS,IAAEgiB,IAAI9lB,EAAKuK,MAAMqQ,QAAQrR,GAASA,EAAQ,CAACA,QAI3EzF,KAAK+U,IAAM,KAuKqB,OA9JxC,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAIyjB,GAEA,OADAx4B,KAAKgsH,OACqBhsH,KAAS,IAAE+1J,IAAIv9H,KAQ7C,CAAA,IAAA,MAAA,MAAA,SAAIA,GACAx4B,KAAKgsH,OAEL,IAAMiV,EAAyBjhI,KAAS,IAAE6iB,IAAI2V,GAC9C,OAASyoG,EAAMA,EAAI,GAAK,OAQ5B,CAAA,IAAA,SAAA,MAAA,SAAOzoG,GAEH,OADAx4B,KAAKgsH,OACqBhsH,KAAS,IAAE6iB,IAAI2V,IAAU,OAMvD,CAAA,IAAA,OAAA,MAAA,WAEI,OADAx4B,KAAKgsH,OACEvlH,MAAM8tE,KAAwBv0E,KAAS,IAAEwF,UAQpD,CAAA,IAAA,SAAA,MAAA,SAAOgzB,EAAO/yB,GACV,OAAOzF,KAAK4W,MAAM,CAAE4hB,MAAAA,EAAO/yB,MAAAA,EAAOgmN,GAAI,QAQ1C,CAAA,IAAA,MAAA,MAAA,SAAIjzL,EAAO/yB,GACP,OAAOzF,KAAK4W,MAAM,CAAE4hB,MAAAA,EAAO/yB,MAAAA,EAAOgmN,GAAI,QAS1C,CAAA,IAAA,SAAA,MAAA,SAAOjzL,EAAO/yB,GACV,OAAOzF,KAAK4W,MAAM,CAAE4hB,MAAAA,EAAO/yB,MAAAA,EAAOgmN,GAAI,QAO1C,CAAA,IAAA,WAAA,MAAA,WAAA,IAAA,EAAA,KAEI,OADAzrN,KAAKgsH,OACEhsH,KAAKwF,OACPuP,KAIL7Y,SAAAA,GAEI,IAAMwwN,EAAO1sN,EAAKmsN,QAAQQ,UAAUzwN,GAIpC,OAA6C8D,EAAS,IAAE6iB,IAAI3mB,GAAO6Y,KAInEtP,SAAAA,GAAAA,OAASinN,EAAO,IAAM1sN,EAAKmsN,QAAQS,YAAYnnN,MAC1CC,KAAK,QAITwR,QAILshB,SAAAA,GAAAA,MAAmB,KAAVA,KACJ9yB,KAAK,OAOd,CAAA,IAAA,QAAA,MAAA,SAAMsvH,GAEF,IAAMp+G,EAAQ,IAAIo1M,EAAW,CAAqBG,QAASnsN,KAAKmsN,UAGhE,OAFAv1M,EAAMs1M,UAAYlsN,KAAKksN,WAAalsN,KACpC4W,EAAMq1M,SAAWjsN,KAAKisN,SAAW,IAAIzvN,OAAO,CAACw4H,IACtCp+G,IAMX,CAAA,IAAA,OAAA,MAAA,WAAA,IAAA,EAAA,KACqB,OAAb5W,KAAK+U,MACL/U,KAAK+U,IAAM,IAAI++I,KAEI,OAAnB9zJ,KAAKksN,YACLlsN,KAAKksN,UAAUlgG,OACfhsH,KAAKksN,UAAU1mN,OAAOmS,SAItBzb,SAAAA,GAAAA,OAA0B8D,EAAS,IAAEgiB,IAAI9lB,EAA8D8D,EAAe,UAAM,IAAE6iB,IAAI3mB,OAC/G8D,KAAa,QAAE2X,SAIlCq9G,SAAAA,GACI,OAAQA,EAAOy2F,IACX,IAAK,IACL,IAAK,IAED,IAAMzhG,GAAsB,MAAdgL,EAAOy2F,GAAgCzrN,EAAS,IAAE6iB,IAAImyG,EAAOx8F,YAAAA,IAAuB,GAClGwxF,EAAKtpH,KAAwBs0H,EAAa,OACvBh1H,EAAS,IAAEgiB,IAAIgzG,EAAOx8F,MAAOwxF,GAChD,MACJ,IAAK,IACD,QAAA,IAAIgL,EAAOvvH,MAeN,CACkBzF,EAAS,IAATA,OAAkBg1H,EAAOx8F,OAC5C,MAfA,IAAIwxF,EAA0BhqH,EAAS,IAAE6iB,IAAImyG,EAAOx8F,QAAU,GAExD7U,EAAMqmG,EAAKpoH,QAAQozH,EAAOvvH,QACnB,IAATke,GACAqmG,EAAKppH,OAAO+iB,EAAK,GAEjBqmG,EAAKhvH,OAAS,EACKgF,EAAS,IAAEgiB,IAAIgzG,EAAOx8F,MAAOwxF,GAG7BhqH,EAAS,IAATA,OAAkBg1H,EAAOx8F,WAShEx4B,KAAKksN,UAAYlsN,KAAKisN,QAAU,UAAA,EAlMtCD,GA6QN,SAASa,GAAcpnN,GACnB,MAA8B,oBAAhB86E,aAA+B96E,aAAiB86E,YASlE,SAASusI,GAAOrnN,GACZ,MAAuB,oBAAT2F,MAAwB3F,aAAiB2F,KAS3D,SAAS2hN,GAAWtnN,GAChB,MAA2B,oBAAb0/M,UAA4B1/M,aAAiB0/M,SAa/D,IAAM6H,GAAAA,WAOF,SAAA,EAAYx7L,EAAQ1yB,EAAKmuN,EAAOC,GAgC5B,IAAIx3M,EAkCJ,GAlE4Bw3M,gBAAAA,KAAAA,GAC5BltN,KAAKlB,IAAMA,EAQXkB,KAAKsL,KAAO,KAOZtL,KAAKmtN,gBAAAA,EAILntN,KAAKotN,iBAAAA,EAOLptN,KAAK0J,aAAe,OACpB1J,KAAKwxB,OAASA,EAAOtL,cAxF7B,SAAuBsL,GACnB,OAAQA,GACJ,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,UACL,IAAK,QACD,OAAA,EACJ,QACI,OAAA,GATZ,CA+F0BxxB,KAAKwxB,SAAa07L,GAEhCltN,KAAKsL,UAAAA,IAAQ2hN,EAAuB,EAA6B,KACjEv3M,EAAUw3M,GAIVx3M,EAAU,EAGVA,IAEA1V,KAAKmtN,iBAAmBz3M,EAAQy3M,eAChCntN,KAAKotN,kBAAoB13M,EAAQ03M,gBAE3B13M,EAAQhM,eACV1J,KAAK0J,aAAegM,EAAQhM,cAG1BgM,EAAQoiG,UACV93G,KAAK83G,QAAUpiG,EAAQoiG,SAErBpiG,EAAQ2hJ,SACVr3J,KAAKq3J,OAAS3hJ,EAAQ2hJ,SAIzBr3J,KAAK83G,UACN93G,KAAK83G,QAAU,IAAIszG,IAGlBprN,KAAKq3J,OAIL,CAGD,IAAMA,EAASr3J,KAAKq3J,OAAOx3J,WAC3B,GAAsB,IAAlBw3J,EAAOr8J,OAEPgF,KAAKqtN,cAAgBvuN,MAEpB,CAGD,IAAMwuN,EAAOxuN,EAAI8C,QAAQ,KAUzB5B,KAAKqtN,cAAgBvuN,IADC,IAAVwuN,EAAc,IAAOA,EAAOxuN,EAAI9D,OAAS,EAAI,IAAM,IAC9Bq8J,QAxBrCr3J,KAAKq3J,OAAS,IAAI20D,GAClBhsN,KAAKqtN,cAAgBvuN,EA6JrBsuN,OA7HR,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,WAEI,OAAkB,OAAdptN,KAAKsL,KACE,KAIPuhN,GAAc7sN,KAAKsL,OAASwhN,GAAO9sN,KAAKsL,OAASyhN,GAAW/sN,KAAKsL,OAC5C,iBAAdtL,KAAKsL,KACLtL,KAAKsL,KAGZtL,KAAKsL,gBAAgB0gN,GACdhsN,KAAKsL,KAAKzL,WAGI,iBAAdG,KAAKsL,MAA0C,kBAAdtL,KAAKsL,MAC7C7E,MAAMqQ,QAAQ9W,KAAKsL,MACZpF,KAAKC,UAAUnG,KAAKsL,MAGJtL,KAAW,KAAEH,aAS5C,CAAA,IAAA,0BAAA,MAAA,WAEI,OAAkB,OAAdG,KAAKsL,MAILyhN,GAAW/sN,KAAKsL,MAHT,KAQPwhN,GAAO9sN,KAAKsL,MACLtL,KAAKsL,KAAKH,MAAQ,KAGzB0hN,GAAc7sN,KAAKsL,MACZ,KAIc,iBAAdtL,KAAKsL,KACL,aAGPtL,KAAKsL,gBAAgB0gN,GACd,kDAGc,iBAAdhsN,KAAKsL,MAA0C,iBAAdtL,KAAKsL,MAC7C7E,MAAMqQ,QAAQ9W,KAAKsL,MACZ,mBAGJ,OAMX,CAAA,IAAA,QAAA,MAAA,WAAe,IAAT0pH,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAILxjG,EAASwjG,EAAOxjG,QAAUxxB,KAAKwxB,OAE/B1yB,EAAMk2H,EAAOl2H,KAAOkB,KAAKlB,IAEzB4K,EAAesrH,EAAOtrH,cAAgB1J,KAAK0J,aAM3C4B,OAAAA,IAAQ0pH,EAAO1pH,KAAsB0pH,EAAO1pH,KAAOtL,KAAKsL,KAIxD8hN,OAAAA,IAAmBp4F,EAAOo4F,gBAAiCp4F,EAAOo4F,gBAAkBptN,KAAKotN,gBAEzFD,OAAAA,IAAkBn4F,EAAOm4F,eAAgCn4F,EAAOm4F,eAAiBntN,KAAKmtN,eAIxFr1G,EAAUkd,EAAOld,SAAW93G,KAAK83G,QAEjCu/C,EAASriC,EAAOqiC,QAAUr3J,KAAKq3J,OAyBnC,YAAA,IAvBIriC,EAAOu4F,aAEPz1G,EACI/xG,OAAOP,KAAKwvH,EAAOu4F,YACdrpN,QAAO,SAKX4zG,EAASl4G,GALE,OAKOk4G,EAAQ91F,IAAIpiB,EAAyBo1H,EAAkB,WAAEp1H,MAASk4G,IAGzFkd,EAAOw4F,YAEPn2D,EAAStxJ,OAAOP,KAAKwvH,EAAOw4F,WACvBtpN,QAAO,SAKXmzJ,EAAQ7+H,GALG,OAKO6+H,EAAOr1I,IAAIwW,EAA0Bw8F,EAAiB,UAAEx8F,MAAU6+H,IAGlF,IAAI21D,EAAYx7L,EAAQ1yB,EAAKwM,EAAM,CACtC+rJ,OAAAA,EACAv/C,QAAAA,EACAq1G,eAAAA,EACAzjN,aAAAA,EACA0jN,gBAAAA,QAAAA,EAxONJ,GAySAS,GAAa,WAAA,IAAA,EAAG,CAIlBC,KAAM,EAINC,eAAgB,EAIhBC,eAAgB,EAIhBC,iBAAkB,EAIlB3nG,SAAU,EAIV4nG,KAAM,GAxBY,OA0BtBL,EAAcA,EAAcC,MAAQ,OACpCD,EAAcA,EAAcE,gBAAkB,iBAC9CF,EAAcA,EAAcG,gBAAkB,iBAC9CH,EAAcA,EAAcI,kBAAoB,mBAChDJ,EAAcA,EAAcvnG,UAAY,WACxCunG,EAAcA,EAAcK,MAAQ,OALpCL,EA1BmB,GAwIbM,GAUF,SAAA,EAAY/hG,GAA+C,IAAzCgiG,EAAyC,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAzB,IAAKC,EAAoB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAAA,gBAAA,KAAA,GAGvDjuN,KAAK83G,QAAUkU,EAAKlU,SAAW,IAAIszG,GACnCprN,KAAKmC,YAAAA,IAAS6pH,EAAK7pH,OAAuB6pH,EAAK7pH,OAAS6rN,EACxDhuN,KAAKkuN,WAAaliG,EAAKkiG,YAAcD,EACrCjuN,KAAKlB,IAAMktH,EAAKltH,KAAO,KAEvBkB,KAAKg0G,GAAKh0G,KAAKmC,QAAU,KAAOnC,KAAKmC,OAAS,KA8ChDgsN,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,IAAmB,IAAA,EAAPniG,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAAA,OAAA,gBAAA,KAAA,IACfoO,EAAAA,EAAAA,KAAAA,KAAMpO,IACD7gH,KAAOsiN,GAAcG,eAFX,EAiBoB5kG,OAPvC,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WAAe,IAATgM,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAGX,OAAO,IAAIm5F,EAAmB,CAC1Br2G,QAASkd,EAAOld,SAAW93G,KAAK83G,QAChC31G,YAAAA,IAAQ6yH,EAAO7yH,OAAuB6yH,EAAO7yH,OAASnC,KAAKmC,OAC3D+rN,WAAYl5F,EAAOk5F,YAAcluN,KAAKkuN,WACtCpvN,IAAKk2H,EAAOl2H,KAAOkB,KAAKlB,UAAAA,QAAOkqH,EAtBrCmlG,CAA2BJ,IAwC3BK,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,IAAmB,IAAA,EAAPpiG,EAAO,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAAA,OAAA,gBAAA,KAAA,IACfoO,EAAAA,EAAAA,KAAAA,KAAMpO,IACD7gH,KAAOsiN,GAAcvnG,SAC1BlmH,EAAKsL,UAAAA,IAAO0gH,EAAK1gH,KAAqB0gH,EAAK1gH,KAAO,KAHnC,EAeoB09G,OANvC,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WAAe,IAATgM,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACX,OAAO,IAAIo5F,EAAa,CACpB9iN,UAAAA,IAAO0pH,EAAO1pH,KAAsB0pH,EAAO1pH,KAAOtL,KAAKsL,KACvDwsG,QAASkd,EAAOld,SAAW93G,KAAK83G,QAChC31G,YAAAA,IAAS6yH,EAAO7yH,OAAwB6yH,EAAO7yH,OAASnC,KAAKmC,OAC7D+rN,WAAYl5F,EAAOk5F,YAAcluN,KAAKkuN,WACtCpvN,IAAKk2H,EAAOl2H,KAAOkB,KAAKlB,UAAAA,QAAOkqH,EApBrColG,CAAqBL,IA8CrBM,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYriG,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAERoO,EAAAA,EAAAA,KAAAA,KAAMpO,EAAM,EAAG,kBACVpsH,KAAO,oBAIZI,EAAKg0G,IAAAA,EAKDh0G,EAAKZ,QADLY,EAAKmC,QAAU,KAAOnC,EAAKmC,OAAS,IAApCnC,mCAAAA,OACkDgsH,EAAKltH,KAAO,iBAD9DkB,6BAAAA,OAI4CgsH,EAAKltH,KAAO,gBAJxDkB,MAAAA,OAI4EgsH,EAAK7pH,OAJjFnC,KAAAA,OAI2FgsH,EAAKkiG,YAEpGluN,EAAKb,MAAQ6sH,EAAK7sH,OAAS,KAjBnB6sH,EAiBmB,OAAA,EArB7BqiG,CAA0BN,IAyDhC,SAASO,GAAQ54M,EAASpK,GACtB,MAAO,CACHA,KAAAA,EACAwsG,QAASpiG,EAAQoiG,QACjB33F,QAASzK,EAAQyK,QACjBk3I,OAAQ3hJ,EAAQ2hJ,OAChB81D,eAAgBz3M,EAAQy3M,eACxBzjN,aAAcgM,EAAQhM,aACtB0jN,gBAAiB13M,EAAQ03M,iBAPtB,IAuDLmB,GAoYAC,GAiYAC,GAtCAC,GAmsBAC,GA7DAC,GAxGAC,GA1EAC,GAzFAC,GC1oFOC,GDy/CF,KAuDLT,GAAAA,WAIF,SAAA,EAAY/tN,GAAAA,gBAAAA,KAAAA,GACRR,KAAKQ,QAAUA,EAmRkC8K,OAnPrD,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAAQ+vJ,EAAOv8J,GAAe,IAEtBmb,EAFsB,EAAA,KAAVvE,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAI1B,GAAI2lJ,aAAiB2xD,GAGjB/yM,EAAMohJ,MAEL,CAMD,IAAIvjD,OAAAA,EAEAA,EADApiG,EAAQoiG,mBAAmBszG,GACjB11M,EAAQoiG,QAGR,IAAIszG,GAAY11M,EAAQoiG,SAItC,IAAIu/C,OAAAA,EACE3hJ,EAAQ2hJ,SAENA,EADA3hJ,EAAQ2hJ,kBAAkB20D,GACjBt2M,EAAQ2hJ,OAGR,IAAI20D,GAAW,CAAqB3kM,WAAY3R,EAAQ2hJ,UAIzEp9I,EAAM,IAAI+yM,GAAY3xD,EAAO,OAAA,IAA2B3lJ,EAAQpK,KAAqBoK,EAAQpK,KAAO,KAAO,CACvGwsG,QAAAA,EACAu/C,OAAAA,EACA81D,eAAgBz3M,EAAQy3M,eAExBzjN,aAAcgM,EAAQhM,cAAgB,OACtC0jN,gBAAiB13M,EAAQ03M,kBAQjC,IAAM6B,EAAUphC,GAAG5zK,GAAK5V,KE3oDrBi4H,GF+oDFriH,SAAAA,GAAAA,OAAQja,EAAKQ,QAAQ8jM,OAAOrqL,UAAAA,EE/oDQ,IFmpDrC,GAAIohJ,aAAiB2xD,IAAmC,WAApBt3M,EAAQyK,QACxC,OAAO8uM,EAMX,IAAMC,EAA0BD,EAAQ5qN,KAAK,IAI5CwvB,SAAAA,GAAAA,OAAUA,aAAiBu6L,OAE5B,OAAQ14M,EAAQyK,SAAW,QACvB,IAAK,OAMD,OAAQlG,EAAIvQ,cACR,IAAK,cACD,OAAOwlN,EAAK7qN,KAAK0Q,GAIhBksH,SAAAA,GAEG,GAAiB,OAAbA,EAAI31H,QAAmB21H,EAAI31H,gBAAgBi1E,aAC3C,MAAM,IAAI16E,MAAM,mCAEpB,OAAOo7H,EAAI31H,SAEnB,IAAK,OACD,OAAO4jN,EAAK7qN,KAAK0Q,GAIhBksH,SAAAA,GAEG,GAAiB,OAAbA,EAAI31H,QAAmB21H,EAAI31H,gBAAgBF,MAC3C,MAAM,IAAIvF,MAAM,2BAEpB,OAAOo7H,EAAI31H,SAEnB,IAAK,OACD,OAAO4jN,EAAK7qN,KAAK0Q,GAIhBksH,SAAAA,GAEG,GAAiB,OAAbA,EAAI31H,MAAqC,iBAAb21H,EAAI31H,KAChC,MAAM,IAAIzF,MAAM,6BAEpB,OAAOo7H,EAAI31H,SAEnB,IAAK,OACL,QAEI,OAAO4jN,EAAK7qN,KAAK0Q,GAIhBksH,SAAAA,GAAAA,OAAQA,EAAI31H,SAEzB,IAAK,WAED,OAAO4jN,EACX,QAEI,MAAM,IAAIrpN,MAAJ,uCAAA,OAAiD6P,EAAQyK,QAAzD,SAalB,CAAA,IAAA,SAAA,MAAA,SAAOrhB,GAAe,IAAV4W,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAClB,OAAO1V,KAAKq4B,QAAQ,SAAUv5B,EAAK,KAUvC,CAAA,IAAA,MAAA,MAAA,SAAIA,GAAe,IAAV4W,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACf,OAAO1V,KAAKq4B,QAAQ,MAAOv5B,EAAK,KAYpC,CAAA,IAAA,OAAA,MAAA,SAAKA,GAAe,IAAV4W,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAChB,OAAO1V,KAAKq4B,QAAQ,OAAQv5B,EAAK,KAsBrC,CAAA,IAAA,QAAA,MAAA,SAAMA,EAAKqwN,GACP,OAAOnvN,KAAKq4B,QAAQ,QAASv5B,EAAK,CAC9Bu4J,QAAQ,IAAI20D,IAAa3G,OAAO8J,EAAe,kBAC/ChvM,QAAS,OACTzW,aAAc,WAatB,CAAA,IAAA,UAAA,MAAA,SAAQ5K,GAAe,IAAV4W,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACnB,OAAO1V,KAAKq4B,QAAQ,UAAWv5B,EAAK,KAWxC,CAAA,IAAA,QAAA,MAAA,SAAMA,EAAKwM,GAAgB,IAAVoK,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACvB,OAAO1V,KAAKq4B,QAAQ,QAASv5B,EAAKwvN,GAAQ54M,EAASpK,MAYvD,CAAA,IAAA,OAAA,MAAA,SAAKxM,EAAKwM,GAAgB,IAAVoK,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACtB,OAAO1V,KAAKq4B,QAAQ,OAAQv5B,EAAKwvN,GAAQ54M,EAASpK,MAYtD,CAAA,IAAA,MAAA,MAAA,SAAIxM,EAAKwM,GAAgB,IAAVoK,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACrB,OAAO1V,KAAKq4B,QAAQ,MAAOv5B,EAAKwvN,GAAQ54M,EAASpK,QAAAA,EAxRnDijN,IA2RK3rF,UAAO,SAA4B5oI,GAAK,OAAO,IAAKA,GAAKu0N,IAAY,GAAgBrD,MAChGqD,GAAW7tF,WAAQ,GAA0B,CAAErB,MAAOkvF,GAAYj5M,QAASi5M,GAAW3rF,YADtF2rF,IAoEMa,GAAAA,WAKF,SAAA,EAAYlnN,EAAMmnN,GAAAA,gBAAAA,KAAAA,GACdrvN,KAAKkI,KAAOA,EACZlI,KAAKqvN,YAAcA,EAOyBnnN,OADhD,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAO+R,GACH,OAAOja,KAAKqvN,YAAYC,UAAUr1M,EAAKja,KAAKkI,UAAAA,EAd9CknN,GAoCAG,GAAoB,IAAIxsF,GAAe,qBAA7C,KACMyrF,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAOqBv0M,OAPrBu0M,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,YAAAA,MAAAA,SAMQv0M,EAAK/R,GACX,OAAOA,EAAKo8L,OAAOrqL,OAAAA,EAPrBu0M,IAUU5rF,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKw0N,KAC9EA,GAAgB9tF,WAAQ,GAA0B,CAAErB,MAAOmvF,GAAiBl5M,QAASk5M,GAAgB5rF,YADrG4rF,IA8SMgB,GAAc,eAsBdC,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,KAaAf,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAKmC1sN,OADnC,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WACI,OAAO,IAAwBA,mBAAAA,EANjC0sN,IASK9rF,UAAO,SAA4B5oI,GAAK,OAAO,IAAKA,GAAK00N,KACpEA,GAAWhuF,WAAQ,GAA0B,CAAErB,MAAOqvF,GAAYp5M,QAASo5M,GAAW9rF,YADtF8rF,IAAAA,KA6BMD,GAAAA,WAIF,SAAA,EAAYiB,GAAAA,gBAAAA,KAAAA,GACR1vN,KAAK0vN,WAAaA,EA4RN/1L,OArRhB,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAO1f,GAAAA,IAAAA,EAAAA,KAGH,GAAmB,UAAfA,EAAIuX,OACJ,MAAM,IAAI3rB,MAAM,6EAGpB,OAAO,IAAI,GAIV0zH,SAAAA,GAGG,IAAMx3H,EAAM/B,EAAK0vN,WAAW7J,QAiB5B,GAhBA9jN,EAAIE,KAAKgY,EAAIuX,OAAQvX,EAAIozM,eACnBpzM,EAAImzM,kBACNrrN,EAAIqrN,iBAAAA,GAGRnzM,EAAI69F,QAAQngG,SAAQ,SAKnB/X,EAAMijH,GALa,OAKF9gH,EAAI02B,iBAAiB74B,EAAMijH,EAAOn9G,KAAK,SAEpDuU,EAAI69F,QAAQi+C,IAAI,WACjBh0J,EAAI02B,iBAAiB,SAAU,sCAG9Bxe,EAAI69F,QAAQi+C,IAAI,gBAAiB,CAElC,IAAM45D,EAAe11M,EAAI21M,0BAEJ,OAAjBD,GACA5tN,EAAI02B,iBAAiB,eAAgBk3L,GAI7C,GAAI11M,EAAIvQ,aAAc,CAElB,IAAMA,EAAeuQ,EAAIvQ,aAAagF,cAMtC3M,EAAI2H,aAAqD,SAAjBA,EAA2BA,EAAe,OAItF,IAAMmmN,EAAU51M,EAAI61M,gBAQhBC,EAAiB,KAIfC,EAAiB,WAInB,GAAuB,OAAnBD,EACA,OAAOA,EAIX,IAAM5tN,EAAwB,OAAfJ,EAAII,OAAkB,IAAMJ,EAAII,OAEzC+rN,EAAansN,EAAImsN,YAAc,KAG/Bp2G,EAAU,IAAIszG,GAAYrpN,EAAIkuN,yBAI9BnxN,EAhKtB,SAAwBiD,GACpB,MAAI,gBAAiBA,GAAOA,EAAImuN,YACrBnuN,EAAImuN,YAEX,mBAAmBhlN,KAAKnJ,EAAIkuN,yBACrBluN,EAAIiiH,kBAAkB,iBAE1B,KAPX,CAgK2CjiH,IAAQkY,EAAInb,IAGvC,OADAixN,EAAiB,IAAI5B,GAAmB,CAAEr2G,QAAAA,EAAS31G,OAAAA,EAAQ+rN,WAAAA,EAAYpvN,IAAAA,KAOrEqxN,EAAS,WAAA,IAAA,EAKgCH,IAArCl4G,EALK,EAKP,QAAW31G,EALJ,EAKE,OAAU+rN,EALZ,EAKU,WAAcpvN,EALxB,EAKsB,IAG7BwM,EAAO,KACI,MAAXnJ,IAEAmJ,OAAAA,IAAevJ,EAAI6H,SAA4B7H,EAAIM,aAAeN,EAAI6H,UAG3D,IAAXzH,IACAA,EAAWmJ,EAAO,IAAM,GAO5B,IAAI0oG,EAAK7xG,GAAU,KAAOA,EAAS,IAGnC,GAAyB,SAArB8X,EAAIvQ,cAA2C,iBAAT4B,EAAmB,CAGzD,IAAM8kN,EAAe9kN,EACrBA,EAAOA,EAAKO,QAAQ2jN,GAAa,IACjC,IAEIlkN,EAAgB,KAATA,EAAcpF,KAAKsP,MAAMlK,GAAQ,KAE5C,MAAOnM,GAIHmM,EAAO8kN,EAGHp8G,IAEAA,GAAAA,EAEA1oG,EAAO,CAAqBnM,MAAAA,EAAO2U,KAAMxI,KAIjD0oG,GAEAulB,EAASrxH,KAAK,IAAIkmN,GAAa,CAC3B9iN,KAAAA,EACAwsG,QAAAA,EACA31G,OAAAA,EACA+rN,WAAAA,EACApvN,IAAKA,QAAAA,KAITy6H,EAAShyH,YAITgyH,EAASp6H,MAAM,IAAIkvN,GAAkB,CAEjClvN,MAAOmM,EACPwsG,QAAAA,EACA31G,OAAAA,EACA+rN,WAAAA,EACApvN,IAAKA,QAAAA,MAQXomH,EAIL/lH,SAAAA,GAAAA,IACWL,EAAQkxN,IAAV,IAEA/uF,EAAM,IAAIotF,GAAkB,CAC9BlvN,MAAAA,EACAgD,OAAQJ,EAAII,QAAU,EACtB+rN,WAAYnsN,EAAImsN,YAAc,gBAC9BpvN,IAAKA,QAAAA,IAETy6H,EAASp6H,MAAM8hI,IAOfovF,GAAAA,EAIEC,EAILz8L,SAAAA,GAEQw8L,IACD92F,EAASrxH,KAAK8nN,KACdK,GAAAA,GAKJ,IAAIE,EAAgB,CAChBplN,KAAMsiN,GAAcI,iBACpBprJ,OAAQ5uC,EAAM4uC,QAGd5uC,EAAM28L,mBACND,EAAc1yB,MAAQhqK,EAAMgqK,OAKP,SAArB5jL,EAAIvQ,cAA6B3H,EAAIM,eACrCkuN,EAAcE,YAAc1uN,EAAIM,cAGpCk3H,EAASrxH,KAAKqoN,IAKZG,EAIL78L,SAAAA,GAIG,IAAI88L,EAAW,CACXxlN,KAAMsiN,GAAcE,eACpBlrJ,OAAQ5uC,EAAM4uC,QAId5uC,EAAM28L,mBACNG,EAAS9yB,MAAQhqK,EAAMgqK,OAG3BtkE,EAASrxH,KAAKyoN,IAmBlB,OAhBA5uN,EAAI0xB,iBAAiB,OAAQ08L,GAC7BpuN,EAAI0xB,iBAAiB,QAASyxF,GAE1BjrG,EAAIkzM,iBAEJprN,EAAI0xB,iBAAiB,WAAY68L,GAEjB,OAAZT,GAAoB9tN,EAAI6uN,QACxB7uN,EAAI6uN,OAAOn9L,iBAAiB,WAAYi9L,IAIhD3uN,EAAIG,KAAK,GACTq3H,EAASrxH,KAAK,CAAEiD,KAAMsiN,GAAcC,OAG7B,WAKH3rN,EAAI4xB,oBAAoB,QAASuxF,GACjCnjH,EAAI4xB,oBAAoB,OAAQw8L,GAC5Bl2M,EAAIkzM,iBACJprN,EAAI4xB,oBAAoB,WAAY28L,GACpB,OAAZT,GAAoB9tN,EAAI6uN,QACxB7uN,EAAI6uN,OAAOj9L,oBAAoB,WAAY+8L,IAInD3uN,EAAI43B,gBAAAA,EAjSd80L,IAsSS7rF,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAKy0N,IAAgB,GAAgBgB,MAC5GhB,GAAe/tF,WAAQ,GAA0B,CAAErB,MAAOovF,GAAgBn5M,QAASm5M,GAAe7rF,YADlG6rF,IAuBMoC,GAAmB,IAAI9tF,GAAe,oBAEtC+tF,GAAmB,IAAI/tF,GAAe,oBAOtCguF,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,KAeAhC,GAAAA,WAMF,SAAA,EAAY93L,EAAKktF,EAAU0xE,GAAAA,gBAAAA,KAAAA,GACvB71L,KAAKi3B,IAAMA,EACXj3B,KAAKmkH,SAAWA,EAChBnkH,KAAK61L,WAAaA,EAClB71L,KAAKgxN,iBAAmB,GACxBhxN,KAAKixN,UAAY,KAIjBjxN,KAAKkxN,WAAa,EAgBND,OAXhB,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WACI,GAAsB,WAAlBjxN,KAAKmkH,SACL,OAAO,KAGX,IAAMgtG,EAAenxN,KAAKi3B,IAAI0+J,QAAU,GAMxC,OALIw7B,IAAiBnxN,KAAKgxN,mBACtBhxN,KAAKkxN,aACLlxN,KAAKixN,UAAY,GAAkBE,EAAcnxN,KAAK61L,YACtD71L,KAAKgxN,iBAAmBG,GAErBnxN,KAAKixN,cAAAA,EA/BdlC,IAkCkBnsF,UAAO,SAAyC5oI,GAAK,OAAO,IAAKA,GAAK+0N,IAAyB,GAAgB,IAAW,GAAgB1yC,IAAc,GAAgBw0C,MAChM9B,GAAwBruF,WAAQ,GAA0B,CAAErB,MAAO0vF,GAAyBz5M,QAASy5M,GAAwBnsF,YAD7HmsF,IAAAA,KAuDMD,GAAAA,WAKF,SAAA,EAAYsC,EAAcC,GAAAA,gBAAAA,KAAAA,GACtBrxN,KAAKoxN,aAAeA,EACpBpxN,KAAKqxN,WAAaA,EAwBCp3M,OAjBvB,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,SAAUA,EAAK/R,GAEX,IAAMopN,EAAQr3M,EAAInb,IAAI4P,cAKtB,GAAmB,QAAfuL,EAAIuX,QAAmC,SAAfvX,EAAIuX,QAAqB8/L,EAAMx+B,WAAW,YAClEw+B,EAAMx+B,WAAW,YACjB,OAAO5qL,EAAKo8L,OAAOrqL,GAGvB,IAAMolH,EAAQr/H,KAAKoxN,aAAaG,WAKhC,OAHc,OAAVlyF,GAAmBplH,EAAI69F,QAAQi+C,IAAI/1J,KAAKqxN,cACxCp3M,EAAMA,EAAIrD,MAAM,CAAEkhG,QAAS79F,EAAI69F,QAAQ91F,IAAIhiB,KAAKqxN,WAAYhyF,MAEzDn3H,EAAKo8L,OAAOrqL,OAAAA,EA/BrB60M,IAkCclsF,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAK80N,IAAqB,GAAgBiC,IAAyB,GAAgBD,MACpKhC,GAAoBpuF,WAAQ,GAA0B,CAAErB,MAAOyvF,GAAqBx5M,QAASw5M,GAAoBlsF,YADjHksF,IAAAA,KAwCMD,GAAAA,WAKF,SAAA,EAAY5yI,EAASwnD,GAAAA,gBAAAA,KAAAA,GACjBzjI,KAAKi8E,QAAUA,EACfj8E,KAAKyjI,SAAWA,EAChBzjI,KAAKwxN,MAAQ,KAiBYv3M,OAX7B,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOA,GACH,GAAmB,OAAfja,KAAKwxN,MAAgB,CAErB,IAAMC,EAAezxN,KAAKyjI,SAAS5gH,IAAI0sM,GAAmB,IAC1DvvN,KAAKwxN,MAAQC,EAAaC,aAAY,SAKrCxpN,EAAMmnN,GAL+B,OAKf,IAAID,GAAuBlnN,EAAMmnN,KAAervN,KAAKi8E,SAEhF,OAAOj8E,KAAKwxN,MAAMltB,OAAOrqL,OAAAA,EAzB3B40M,IA4BkBjsF,UAAO,SAAyC5oI,GAAK,OAAO,IAAKA,GAAK60N,IAAyB,GAAgB1D,IAAc,GAAgB,MACrK0D,GAAwBnuF,WAAQ,GAA0B,CAAErB,MAAOwvF,GAAyBv5M,QAASu5M,GAAwBjsF,YAD7HisF,IAAAA,KA4EMD,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GA2B6F,OA3B7FA,aAAAA,EAAAA,KAAAA,CAAAA,CAAAA,IAAAA,UAAAA,MAAAA,WAME,MAAO,CACHr/D,SAAUq/D,EACV5uF,UAAW,CACP,CAAEqD,QAAS,GAAqBmzB,SAAU,QAatD,CAAA,IAAA,cAAA,MAAA,WAA6B,IAAV9gJ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACzB,MAAO,CACH65I,SAAUq/D,EACV5uF,UAAW,CACPtqH,EAAQmgL,WAAa,CAAExyD,QAASwtF,GAAkBvtF,SAAU5tH,EAAQmgL,YAAe,GACnFngL,EAAQ27M,WAAa,CAAEhuF,QAASytF,GAAkBxtF,SAAU5tH,EAAQ27M,YAAe,SAAA,EA3B7FzC,IAgCepsF,UAAO,GAAwB,CAAEr3H,KAAMyjN,KAC5DA,GAAqBjuF,UAAO,GAAwB,CAAErrH,QAAS,SAAsCtb,GAAK,OAAO,IAAKA,GAAK40N,KAA4B5uF,UAAW,CAC1J,GACA,CAAEqD,QAASksF,GAAmBj5D,YAAa,GAAqBT,OAAAA,GAChE,CAAExyB,QAAS0tF,GAAwBv6D,SAAU,IAC7C,CAAEnzB,QAASwtF,GAAkBvtF,SAAU,cACvC,CAAED,QAASytF,GAAkBxtF,SAAU,mBAN/CsrF,IAAAA,KA6BMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEWnsF,UAAO,GAAwB,CAAEr3H,KAAMwjN,KACxDA,GAAiBhuF,UAAO,GAAwB,CAAErrH,QAAS,SAAkCtb,GAAK,OAAO,IAAKA,GAAK20N,KAAwB3uF,UAAW,CAC9I,GACA,CAAEqD,QAAS6nF,GAAa10D,SAAU,IAClC,GACA,CAAEnzB,QAAS8nF,GAAa70D,YAAa,IACrC,GACA,CAAEjzB,QAASosF,GAAYn5D,YAAa,KACrCr2B,QAAS,CAAC,CACL,GAAqB0xF,YAAY,CAC7B97B,WAAY,aACZw7B,WAAY,qBAX5B1C,IG59FYiD,GAAZ,SAAYA,GAAAA,OACR,EAAA,QAAA,8CACA,EAAA,cAAA,iDAFQA,EAAZ,CAGC,ICHYC,GAOZ,SAAA,IAA6B,IAAjBx6D,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACtB,IAAK,IAAMz3J,KADW,gBAAA,KAAA,GACHy3J,EACfr3J,KAAKJ,GAAQy3J,EAAOz3J,IHDzB,KAAMovN,GAAN,WAYH,SAAA,EAAoB5K,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,SAAAA,EAPb,KAAA0N,mBAAqB,IAAI,GAKxB,KAAAC,aAAsC,CAAC/R,MAAO,IAAI6R,GAAgBjyN,KAAM,GAAI2B,MAAO,IAVxF,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,IAAA,MAAA,SAiBMywN,EAAkBnvG,GACvB,IAAOmvG,EAAU,MAAO,GACxB,IAAOhyN,KAAKiyN,sBACR,OAAOjyN,KAAKkyN,oBAAoBF,EAAUnvG,GAE9C,IAAMsvG,EAAcnyN,KAAK+xN,aAAaxwN,MAAMywN,EAAStjN,cAAcsH,SAAWg8M,EAC9E,OAAOhyN,KAAKkyN,oBAAoBC,EAAatvG,KAvB9C,CAAA,IAAA,sBAAA,MAAA,SA0ByBzjH,EAAiByjH,GACzC,OAAOA,GAEM98G,OAAOP,KAAKq9G,GAEpBlrG,SAAQzb,SAAAA,GACT,IAAMwqC,EAAQ,IAAIzwB,OAAO,IAAM/Z,EAAK,KACpCkD,EAAUA,EAAQyM,QAAQ66B,EAAOm8E,EAAO3mH,OAGrCkD,GATeA,IA3BvB,CAAA,IAAA,YAAA,MAAA,WA2CC,OAAOY,KAAK+xN,eA3Cb,CAAA,IAAA,kBAAA,MAAA,SAiDoBA,GACdA,GAAiBA,EAAaxwN,OAAUwwN,EAAa/R,OACtDhgN,KAAK+xN,aAAa/R,MAAMpgN,OAASmyN,EAAa/R,MAAMpgN,OAExDmyN,EAAaxwN,MAAQvB,KAAKoyN,sBAAsBL,EAAaxwN,OAC7DvB,KAAK+xN,aAAeA,EAEpB/xN,KAAK8xN,mBAAmB5jG,UAxDzB,CAAA,IAAA,wBAAA,MAAA,SA2D2B52G,GAC1B,IAAM+6M,EAAY,GAMlB,OAJAtsN,OAAOP,KAAK8R,GAAQK,SAAQzb,SAAAA,GACxBm2N,EAAUn2N,EAAIwS,eAAiB4I,EAAOpb,MAGnCm2N,IAlER,CAAA,IAAA,sBAAA,MAAA,WAyEC,OAAOryN,KAAKokN,SAASvhM,IAAI,mBAzE1B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMmsM,IAAY,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAZA,GAAY,QAAZA,GAAY,UAAA,WAFT,SAAA,IIIhB,SAASsD,GAAsB7sN,GAC3B,OAAgB,MAATA,GAAgC,UAAA,GAAA,OAAZA,GAU/B,SAAS8sN,GAAqB9sN,GAAuB,IAAhB+sN,EAAgB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EACjD,OAMJ,SAAwB/sN,GAIpB,OAAQuO,MAAMuR,WAAW9f,MAAYuO,MAAMwR,OAAO/f,IAJtD,CAN0BA,GAAS+f,OAAO/f,GAAS+sN,EAoBnD,SAASC,GAAYhtN,GACjB,OAAOgB,MAAMqQ,QAAQrR,GAASA,EAAQ,CAACA,GAW3C,SAASitN,GAAoBjtN,GACzB,OAAa,MAATA,EACO,GAEa,iBAAVA,EAAqBA,EAAX,GAAA,OAAsBA,EAAtB,MAc5B,SAASktN,GAAcC,GACnB,OAAOA,aAAwBtoD,GAAasoD,EAAaroD,cAAgBqoD,ECpEtE,SAASC,GAAUloN,EAAQmV,EAAWpK,EAAS6mH,GAKlD,OAJIzzH,EAAW4M,KACX6mH,EAAiB7mH,EACjBA,OAAAA,GAEA6mH,EACOs2F,GAAUloN,EAAQmV,EAAWpK,GAASrR,KAAK0Q,GAAI3U,SAAAA,GAAAA,OAAQ0W,EAAQ1W,GAAQm8H,EAAAA,WAAAA,EAAAA,oBAAkBn8H,IAAQm8H,EAAen8H,OAEpH,IAAI,GAAW+H,SAAAA,IAY1B,SAAS2qN,EAAkBC,EAAWjzM,EAAWtf,EAAS2H,EAAYuN,GAClE,IAAI/U,EACJ,GA+BJ,SAAuBoyN,GACnB,OAAOA,GAAmD,mBAA/BA,EAAUt/L,kBAA4E,mBAAlCs/L,EAAUp/L,oBAD7F,CA/BsBo/L,GAAY,CAC1B,IAAM3wN,EAAS2wN,EACfA,EAAUt/L,iBAAiB3T,EAAWtf,EAASkV,GAC/C/U,EAAc,WAAA,OAAMyB,EAAOuxB,oBAAoB7T,EAAWtf,EAASkV,SAElE,GAuBT,SAAmCq9M,GAC/B,OAAOA,GAAqC,mBAAjBA,EAAU1yM,IAA8C,mBAAlB0yM,EAAUtyM,IAD/E,CAvBuCsyM,GAAY,CAC3C,IAAM3wN,EAAS2wN,EACfA,EAAU1yM,GAAGP,EAAWtf,GACxBG,EAAc,WAAA,OAAMyB,EAAOqe,IAAIX,EAAWtf,SAEzC,GAeT,SAAiCuyN,GAC7B,OAAOA,GAA8C,mBAA1BA,EAAUv/L,aAAkE,mBAA7Bu/L,EAAUr/L,eADxF,CAfqCq/L,GAAY,CACzC,IAAM3wN,EAAS2wN,EACfA,EAAUv/L,YAAY1T,EAAWtf,GACjCG,EAAc,WAAA,OAAMyB,EAAOsxB,eAAe5T,EAAWtf,QAEpD,CAAA,IAAIuyN,IAAaA,EAAU/3N,OAM5B,MAAM,IAAI2uH,UAAU,wBALpB,IAAK,IAAIhvH,EAAI,EAAGD,EAAMq4N,EAAU/3N,OAAQL,EAAID,EAAKC,IAC7Cm4N,EAAkBC,EAAUp4N,GAAImlB,EAAWtf,EAAS2H,EAAYuN,GAMxEvN,EAAWJ,IAAIpH,GAzBnB,CAH0BgK,EAAQmV,GAR1B,SAAiBrc,GAET0E,EAAWD,KADXxJ,UAAU1D,OAAS,EACHyL,MAAMvB,UAAU5H,MAAMmB,KAAKC,WAG3B+E,KAGsB0E,EAAYuN,MCrB3D,IAAM,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAY2mH,EAAW2wD,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACnB5yD,EAAAA,EAAAA,KAAAA,KAAMiC,EAAW2wD,IACZ3wD,UAAYA,EACjBr8H,EAAKgtL,KAAOA,EAHOA,EAkBOhkE,OAb9B,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SAAeqT,EAAW5qH,GAAY,IAARqyF,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAClC,OAAc,OAAVA,GAAkBA,EAAQ,EAAhB,KAAA,gBAAA,EAAA,WAAA,iBAAA,MAAA,KAAA,KACkBu4B,EAAW5qH,EAAIqyF,IAE/Cu4B,EAAUtH,QAAQr0H,KAAKV,MAChBq8H,EAAUsxD,YAActxD,EAAUsxD,UAAY90J,uBAAsB,WAAA,OAAMwjG,EAAU+wD,MAAM,aAErG,CAAA,IAAA,iBAAA,MAAA,SAAe/wD,EAAW5qH,GAAY,IAARqyF,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAClC,GAAe,OAAVA,GAAkBA,EAAQ,GAAiB,OAAVA,GAAkB9jG,KAAK8jG,MAAQ,EACjE,OAAA,KAAA,gBAAA,EAAA,WAAA,iBAAA,MAAA,KAAA,KAA4Bu4B,EAAW5qH,EAAIqyF,GAEd,IAA7Bu4B,EAAUtH,QAAQ/5H,SAClBm+B,qBAAqB1nB,GACrB4qH,EAAUsxD,eAAAA,OAAY3kE,EAnBrB,CAA6B,ICC7BgqG,GAAiB,ICDjB,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAAA,SAAA,IAAA,OAAA,gBAAA,KAAA,GAAA,EAAA,MAAA,KAAA,WAmBK7zN,OAnBL,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SACHixD,GACFpwD,KAAKs3D,QAAAA,EACLt3D,KAAK2tL,eAAAA,EAFHv9H,IAIEjxD,EADI41H,EAAY/0H,KAAd,QAEFihB,GAAS,EACTizG,EAAQa,EAAQ/5H,OACpBo1D,EAASA,GAAU2kE,EAAQ1hG,QAC3B,GACI,GAAIl0B,EAAQixD,EAAOw9H,QAAQx9H,EAAOyiE,MAAOziE,EAAO0zC,OAC5C,cAEG7iF,EAAQizG,IAAU9jE,EAAS2kE,EAAQ1hG,UAE9C,GADArzB,KAAKs3D,QAAAA,EACDn4D,EAAO,CACP,OAAS8hB,EAAQizG,IAAU9jE,EAAS2kE,EAAQ1hG,UACxC+8B,EAAOzvD,cAEX,MAAMxB,OAAAA,EAnBL,CAAgC,IDCf,CAA4B,IEFtD8zN,GAAa,EACXC,GAAkB3jN,QAAQwJ,UAC1Bo6M,GAAgB,GACtB,SAASC,GAAmB9uB,GACxB,OAAIA,KAAU6uB,YACHA,GAAc7uB,IAAAA,GAKtB,IAAM+uB,GAAY,SACRl4K,GACT,IAAMmpJ,EAAS2uB,KAGf,OAFAE,GAAc7uB,IAAAA,EACd4uB,GAASxjN,MAAK,WAAA,OAAM0jN,GAAmB9uB,IAAWnpJ,OAC3CmpJ,GALF+uB,GAAY,SAON/uB,GACX8uB,GAAmB9uB,IChBd,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYjoE,EAAW2wD,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACnB5yD,EAAAA,EAAAA,KAAAA,KAAMiC,EAAW2wD,IACZ3wD,UAAYA,EACjBr8H,EAAKgtL,KAAOA,EAHOA,EAkBOhkE,OAb9B,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SAAeqT,EAAW5qH,GAAY,IAARqyF,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAClC,OAAc,OAAVA,GAAkBA,EAAQ,EAAhB,KAAA,gBAAA,EAAA,WAAA,iBAAA,MAAA,KAAA,KACkBu4B,EAAW5qH,EAAIqyF,IAE/Cu4B,EAAUtH,QAAQr0H,KAAKV,MAChBq8H,EAAUsxD,YAActxD,EAAUsxD,UAAY0lC,GAAuBh3F,EAAU+wD,MAAMrkL,KAAKszH,EAAW,WAEhH,CAAA,IAAA,iBAAA,MAAA,SAAeA,EAAW5qH,GAAY,IAARqyF,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAClC,GAAe,OAAVA,GAAkBA,EAAQ,GAAiB,OAAVA,GAAkB9jG,KAAK8jG,MAAQ,EACjE,OAAA,KAAA,gBAAA,EAAA,WAAA,iBAAA,MAAA,KAAA,KAA4Bu4B,EAAW5qH,EAAIqyF,GAEd,IAA7Bu4B,EAAUtH,QAAQ/5H,SAClBq4N,GAAyB5hN,GACzB4qH,EAAUsxD,eAAAA,OAAY3kE,EAnBrB,CAAmB,ICAnBsqG,GAAO,ICDP,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAAA,SAAA,IAAA,OAAA,gBAAA,KAAA,GAAA,EAAA,MAAA,KAAA,WAmBKn0N,OAnBL,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SACHixD,GACFpwD,KAAKs3D,QAAAA,EACLt3D,KAAK2tL,eAAAA,EAFHv9H,IAIEjxD,EADI41H,EAAY/0H,KAAd,QAEFihB,GAAS,EACTizG,EAAQa,EAAQ/5H,OACpBo1D,EAASA,GAAU2kE,EAAQ1hG,QAC3B,GACI,GAAIl0B,EAAQixD,EAAOw9H,QAAQx9H,EAAOyiE,MAAOziE,EAAO0zC,OAC5C,cAEG7iF,EAAQizG,IAAU9jE,EAAS2kE,EAAQ1hG,UAE9C,GADArzB,KAAKs3D,QAAAA,EACDn4D,EAAO,CACP,OAAS8hB,EAAQizG,IAAU9jE,EAAS2kE,EAAQ1hG,UACxC+8B,EAAOzvD,cAEX,MAAMxB,OAAAA,EAnBL,CAAsB,IDCf,CAAkB,IEKhCo0N,GAAAA,WACF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACRxzN,KAAKwzN,iBAAmBA,EAGqCA,OADjE,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKrrN,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAgB4H,EAAYnI,KAAKwzN,uBAAAA,EAL/DD,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAY1rN,EAAa2rN,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBp5F,EAAAA,EAAAA,KAAAA,KAAMvyH,IACD2rN,iBAAmBA,EACxBxzN,EAAKiuL,UAAAA,EAHgBulC,EA2ChBC,OAtCT,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAMhuN,GAGF,GAFAzF,KAAKyF,MAAQA,EACbzF,KAAKiuL,UAAAA,GACAjuL,KAAK0zN,UAAW,CACjB,IAAIl6L,EACJ,IAEIA,GAAWg6L,EADkBxzN,KAAvB,kBACsByF,GAEhC,MAAOK,GACH,OAAO9F,KAAK6H,YAAY1I,MAAM2G,GAElC,IAAMk3H,EAAoBpB,EAAkB57H,KAAMw5B,IAC7CwjG,GAAqBA,EAAkBz0H,OACxCvI,KAAKyzN,gBAGLzzN,KAAK+H,IAAI/H,KAAK0zN,UAAY12F,MAItC,CAAA,IAAA,gBAAA,MAAA,WAAA,IACYv3H,EAA+BzF,KAAjC,MAASiuL,EAAwBjuL,KAA1B,SAAY0zN,EAAc1zN,KAAhB,UACnB0zN,IACA1zN,KAAK+V,OAAO29M,GACZ1zN,KAAK0zN,UAAY,KACjBA,EAAU/yN,eAEVstL,IACAjuL,KAAKyF,MAAQ,KACbzF,KAAKiuL,UAAAA,EACLjuL,KAAK6H,YAAYK,KAAKzC,MAG9B,CAAA,IAAA,aAAA,MAAA,SAAWs1H,EAAYgB,EAAYf,EAAYgB,GAC3Ch8H,KAAKyzN,kBAET,CAAA,IAAA,iBAAA,MAAA,WACIzzN,KAAKyzN,oBAAAA,EA5CP,CAAwB,GCdvB,SAASE,GAAU9gH,GACtB,OAAQ/7F,EAAQ+7F,IAASA,EAAMttF,WAAWstF,GAAO,GAAM,ECsB3D,SAAS,GAASggB,GAAAA,IACN5xG,EAA8B4xG,EAAhC,MAAS+gG,EAAuB/gG,EAAzB,OAAU1qH,EAAe0qH,EAAjB,WAErB,GADA1qH,EAAWD,KAAK+Y,IACZ9Y,EAAWI,OAAf,CAGK,IAAgB,IAAZqrN,EACL,OAAOzrN,EAAWZ,WAEtBsrH,EAAM5xG,MAAQA,EAAQ,EACtBjhB,KAAK86H,SAASjI,EAAO+gG,IC/BlB,SAASC,GAAUr6L,GAAsB,IHD1Bg6L,EGCcn3F,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAC5C,OHFkBm3F,EGEL,WAAA,ODAV,WAA+Cn3F,IAAhCy3F,EAAgCz3F,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAtB,EAAG03F,EAAmB13F,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAAAA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAC9Cu3F,GAAU,EAUd,OATID,GAAUI,GACVH,EAASpuM,OAAOuuM,GAAqB,EAAK,EAAKvuM,OAAOuuM,GAEjDl5F,EAAYk5F,KACjB13F,EAAY03F,GAEXl5F,EAAYwB,KACbA,EAAY,IAET,IAAI,GAAWl0H,SAAAA,GAClB,IAAM6rN,EAAML,GAAUG,GAChBA,GACEA,EAAUz3F,EAAUlwH,MAC5B,OAAOkwH,EAAUvB,SAAS,GAAUk5F,EAAK,CACrC/yM,MAAO,EAAG2yM,OAAAA,EAAQzrN,WAAAA,OAhBvB,CCAsBqxB,EAAU6iG,IHD5B,SAA+Bj6H,GAClC,OAAOA,EAAOoW,KAAK,IAAI+6M,GAAcC,KIFtC,SAASh3N,KACZ,OCDOygI,EAAS,EAATA,CDCY4wD,GAAAA,WAAAA,EAAAA,YEDhB,SAASomC,KAAan8M,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GACzB,IAAMukH,EAAYvkH,EAAMA,EAAM9c,OAAS,GACvC,OAAI6/H,EAAYwB,IACZvkH,EAAM/D,MACE3R,SAAAA,GAAAA,OAAW5F,GAAOsb,EAAO1V,EAAQi6H,KAGjCj6H,SAAAA,GAAAA,OAAW5F,GAAOsb,EAAO1V,ICLzC,IAAM8xN,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAEiD/rN,OAFjD+rN,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,OAAAA,MAAAA,SACG/rN,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAmB4H,QAAAA,EAFjD+rN,GAKA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYrsN,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRuyH,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDssN,SAAAA,EAFGtsN,EAckB08B,OAV9B,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM9+B,GACF,IAAI8+B,EACAvkC,KAAKm0N,QACL5vL,EAAO,CAACvkC,KAAKmE,KAAMsB,GAGnBzF,KAAKm0N,SAAAA,EAETn0N,KAAKmE,KAAOsB,EACR8+B,GACAvkC,KAAK6H,YAAYK,KAAKq8B,OAAAA,EAf5B,CAA2B,GCJ1B,SAAS6vL,GAAUlwG,EAASqY,GAC/B,MAA8B,mBAAnBA,EACCn6H,SAAAA,GAAAA,OAAWA,EAAOiC,KAAK+vN,IAAU,SAACv6N,EAAGc,GAAJ,OAAU,EAAKupH,EAAQrqH,EAAGc,IAAI0J,KAAK0Q,GAAI,SAACjb,EAAG4iI,GAAJ,OAAWH,EAAe1iI,EAAGC,EAAGa,EAAG+hI,YAE/Gt6H,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAI67M,GAAkBnwG,KAEzD,ICCIowG,GDDED,GAAAA,WACF,SAAA,EAAYnwG,GAAAA,gBAAAA,KAAAA,GACRlkH,KAAKkkH,QAAUA,EAGkDA,OADrE,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK/7G,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAoB4H,EAAYnI,KAAKkkH,cAAAA,EALnEmwG,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYxsN,EAAaq8G,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBkW,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDq8G,QAAUA,EACflkH,EAAKihB,MAAQ,EAHQijG,EAiDC6X,OA5C1B,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAMt2H,GACF,IAAI/B,EACEud,EAAQjhB,KAAKihB,QACnB,IACIvd,EAAS1D,KAAKkkH,QAAQz+G,EAAOwb,GAEjC,MAAO9hB,GAEH,YADAa,KAAK6H,YAAY1I,MAAMA,GAG3Ba,KAAK88H,UAAUp5H,EAAQ+B,EAAOwb,KAElC,CAAA,IAAA,YAAA,MAAA,SAAUvd,EAAQ+B,EAAOwb,GACrB,IAAM+7G,EAAoBh9H,KAAKg9H,kBAC3BA,GACAA,EAAkBr8H,cAEtB,IAAMm7H,EAAkB,IAAI,EAAgB97H,KAAMyF,EAAOwb,GACnDpZ,EAAc7H,KAAK6H,YACzBA,EAAYE,IAAI+zH,GAChB97H,KAAKg9H,kBAAoBpB,EAAkB57H,KAAM0D,OAAAA,OAAQslH,EAAsB8S,GAC3E97H,KAAKg9H,oBAAsBlB,GAC3Bj0H,EAAYE,IAAI/H,KAAKg9H,qBAG7B,CAAA,IAAA,YAAA,MAAA,WAAA,IACYA,EAAsBh9H,KAAxB,kBACDg9H,IAAqBA,EAAkBz0H,QAAvCy0H,KAAAA,gBAAAA,EAAAA,WAAAA,YAAAA,MAAAA,KAAAA,MAGLh9H,KAAKW,gBAET,CAAA,IAAA,eAAA,MAAA,WACIX,KAAKg9H,kBAAoB,OAE7B,CAAA,IAAA,iBAAA,MAAA,SAAef,GACSj8H,KAAK6H,YACbkO,OAAOkmH,GACnBj8H,KAAKg9H,kBAAoB,KACrBh9H,KAAK4H,WAAL5H,KAAAA,gBAAAA,EAAAA,WAAAA,YAAAA,MAAAA,KAAAA,QAIR,CAAA,IAAA,aAAA,MAAA,SAAW+6H,EAAYgB,EAAYf,EAAYgB,EAAYC,GACvDj8H,KAAK6H,YAAYK,KAAK6zH,OAAAA,EAlDxB,CAA4B,GCDlC,IACIu4F,GAAsC,oBAATC,MAAwB,KAA4BC,gBAErF,MAAO17E,IACHw7E,IAAAA,EAAqB,IAoPrBG,GAyIAC,GA/OEC,GAxIAC,GAuXFF,KAvXEE,GAKF,SAAA,EAAYr1B,GAAAA,gBAAAA,KAAAA,GACRv/L,KAAKu/L,YAAcA,EAOnBv/L,KAAK60N,UAAY70N,KAAKu/L,Y9Dy+NF,Y8Dx+NEv/L,KAAKu/L,YAAmC,iBAAb9hM,YAA2BA,SAI5EuC,KAAK80N,KAAO90N,KAAK60N,WAAa,UAAU3pN,KAAKJ,UAAUY,WAIvD1L,KAAK+0N,QAAU/0N,KAAK60N,WAAa,kBAAkB3pN,KAAKJ,UAAUY,WAKlE1L,KAAKg1N,MAAQh1N,KAAK60N,cAAiB,OAA8B3zN,SAAUozN,KACxD,oBAAR7hG,MAAwBzyH,KAAK80N,OAAS90N,KAAK+0N,QAMtD/0N,KAAKi1N,OAASj1N,KAAK60N,WACf,eAAe3pN,KAAKJ,UAAUY,aAAe1L,KAAKg1N,QAAUh1N,KAAK80N,OAAS90N,KAAK+0N,QAInF/0N,KAAKk1N,IAAMl1N,KAAK60N,WAAa,mBAAmB3pN,KAAKJ,UAAUY,cACzD,aAAcxO,QAQpB8C,KAAKm1N,QAAUn1N,KAAK60N,WAAa,uBAAuB3pN,KAAKJ,UAAUY,WAKvE1L,KAAKo1N,QAAUp1N,KAAK60N,WAAa,WAAW3pN,KAAKJ,UAAUY,aAAe1L,KAAK+0N,QAO/E/0N,KAAKq1N,OAASr1N,KAAK60N,WAAa,UAAU3pN,KAAKJ,UAAUY,YAAc1L,KAAKi1N,SAG3EryF,UAAO,SAA0B5oI,GAAK,OAAO,IAAKA,GAAK46N,IAAU,GAAgBv4C,GAAa,KAKpFu4C,GAASl0F,WAAQb,GAAmB,CAAEvqH,QAAS,WAA8B,OAAO,IAAIs/M,GAAS5wF,GAASq4C,GAAa,KAAQh9C,MAAOu1F,GAAU90F,WAAY,SAL/K80F,IAAAA,KAyEMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAESnyF,UAAO,GAAwB,CAAEr3H,KAAMwpN,KACtDA,GAAeh0F,UAAO,GAAwB,CAAErrH,QAAS,SAAgCtb,GAAK,OAAO,IAAKA,GAAK26N,OAD/GA,IAiIA,SAASW,GAAgC5/M,GACrC,OAxBJ,WACI,GAA6B,MAAzB++M,IAAmD,oBAAXv3N,OACxC,IACIA,OAAOu2B,iBAAiB,OAAQ,KAA2B1tB,OAAO+uG,eAAe,GAAI,UAAW,CAC5FjyF,IAAK,WAAA,OAGC4xM,IAAAA,MALd,QASIA,GAAwBA,KAAAA,EAGhC,OAAOA,GAdX,GAwB6C/+M,IAAYA,EAAQ2qG,QA6HjE,SAASk1G,GAAet0N,GACpB,GAdJ,WACI,GAA4B,MAAxByzN,GAA8B,CAE9B,IAAM51G,EAA2B,oBAAbrhH,SAA2BA,SAASqhH,KAAO,KAC/D41G,MAA0B51G,IAAS,EAA4B02G,mBAAoB12G,EAAK22G,cAE5F,OAAOf,GANX,GAc8B,CAEtB,IAAMgB,EAAWz0N,EAAQ00N,YAAc10N,EAAQ00N,cAAgB,KAG/D,GAA0B,oBAAfC,YAA8BA,YAAcF,aAAoBE,WACvE,OAAOF,EAGf,OAAO,KCtZX,IAwMMG,GAnLA7gD,GCizEA8gD,GAZAC,GAr6CAC,GAniBAC,GC+BAC,GFjZAC,GAAe,IAAIpzF,GAAe,cAAe,CACnDjD,WAAY,OACZxqH,QAMJ,WACI,OAAO2uH,GAAO,OATlB,KAqBM+wC,GAAAA,WAIF,SAAA,EAAYt+D,GASR,GATQA,gBAAAA,KAAAA,GAIR12G,KAAKyF,MAAQ,MAIbzF,KAAK4uG,OAAS,IAAI,GACd8H,EAAW,CAMX,IAEM0/G,EAAU1/G,EAAU3pG,gBAAkB2pG,EAAU3pG,gBAAgB2rL,IAAM,KAEtEjzL,GAJUixG,EAAUprG,KAAOorG,EAAUprG,KAAKotL,IAAM,OAI7B09B,EACzBp2N,KAAKyF,MAAmB,QAAVA,GAA6B,QAAVA,EAAmBA,EAAQ,OAOpD8B,OADhB,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WACIvH,KAAK4uG,OAAOrnG,eAAAA,EA/BdytK,IAkCSpyC,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAKg7K,IAAgB,GAAgBmhD,GAAc,KAKvGnhD,GAAet0C,WAAQb,GAAmB,CAAEvqH,QAAS,WAAoC,OAAO,IAAI0/J,GAAehxC,GAASmyF,GAAc,KAAQ92F,MAAO21C,GAAgBl1C,WAAY,SALxMk1C,IAAAA,KAiJM6gD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEKrzF,UAAO,GAAwB,CAAEr3H,KAAM0qN,KAClDA,GAAWl1F,UAAO,GAAwB,CAAErrH,QAAS,SAA4Btb,GAAK,OAAO,IAAKA,GAAK67N,OADvGA,IEnGM,GAAA,WAMF,SAAA,IAAuE,IAAA,EAAA,KAA3DQ,EAA2D,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAAxCC,EAAwC,UAAA,OAAA,EAAA,UAAA,QAAA,EAAfC,IAAe,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAAA,gBAAA,KAAA,GACnEv2N,KAAKq2N,UAAYA,EACjBr2N,KAAKu2N,aAAeA,EAIpBv2N,KAAKw2N,WAAa,IAAIxiE,IAItBh0J,KAAKy2N,kBAAoB,GAIzBz2N,KAAK02N,gBAAkB,GAIvB12N,KAAKkvG,QAAU,IAAI,EACfonH,GAA2BA,EAAwBt7N,SAC/Cq7N,EACAC,EAAwB3+M,SAIxBlS,SAAAA,GAAAA,OAASzF,EAAK22N,cAAclxN,MAG5BzF,KAAK22N,cAAcL,EAAwB,IAG/Ct2N,KAAK02N,gBAAgB17N,OAAS,GAkBtC,OAXA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WAWU6nH,IAAAA,IAAAA,EAAAA,KAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GACN7iH,KAAK42N,uBAAuB/zG,GAC5BA,EAAOlrG,SAIPlS,SAAAA,GAAAA,OAASzF,EAAK22N,cAAclxN,MAC5BzF,KAAK62N,qBAOT,CAAA,IAAA,WAAA,MAAA,WAAYh0G,IAAAA,IAAAA,EAAAA,KAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GACR7iH,KAAK42N,uBAAuB/zG,GAC5BA,EAAOlrG,SAIPlS,SAAAA,GAAAA,OAASzF,EAAK82N,gBAAgBrxN,MAC9BzF,KAAK62N,qBAOT,CAAA,IAAA,SAAA,MAAA,SAAOpxN,GACHzF,KAAK+2N,WAAWtxN,GAASzF,KAAKgmN,SAASvgN,GAASzF,KAAKitM,OAAOxnM,KAMhE,CAAA,IAAA,QAAA,MAAA,WACIzF,KAAKg3N,aACLh3N,KAAK62N,qBAOT,CAAA,IAAA,aAAA,MAAA,SAAWpxN,GACP,OAAOzF,KAAKw2N,WAAWzgE,IAAItwJ,KAM/B,CAAA,IAAA,UAAA,MAAA,WACI,OAAgC,IAAzBzF,KAAKw2N,WAAW/0M,OAM3B,CAAA,IAAA,WAAA,MAAA,WACI,OAAQzhB,KAAKwhB,YAOjB,CAAA,IAAA,OAAA,MAAA,SAAKk3J,GACG14K,KAAKq2N,WAAar2N,KAAK+3D,UACJ/3D,KAAe,UAAE03C,KAAKghI,KAOjD,CAAA,IAAA,sBAAA,MAAA,WACI,OAAO14K,KAAKq2N,YAOhB,CAAA,IAAA,mBAAA,MAAA,WAEIr2N,KAAKi3N,UAAY,MACbj3N,KAAK02N,gBAAgB17N,QAAUgF,KAAKy2N,kBAAkBz7N,UACtDgF,KAAKkvG,QAAQhnG,KAAK,CACd9F,OAAQpC,KACR23D,MAAO33D,KAAK02N,gBACZ9+J,QAAS53D,KAAKy2N,oBAElBz2N,KAAKy2N,kBAAoB,GACzBz2N,KAAK02N,gBAAkB,MAS/B,CAAA,IAAA,gBAAA,MAAA,SAAcjxN,GACLzF,KAAK+2N,WAAWtxN,KACZzF,KAAKq2N,WACNr2N,KAAKg3N,aAETh3N,KAAKw2N,WAAWzuN,IAAItC,GAChBzF,KAAKu2N,cACLv2N,KAAK02N,gBAAgBh2N,KAAK+E,MAUtC,CAAA,IAAA,kBAAA,MAAA,SAAgBA,GACRzF,KAAK+2N,WAAWtxN,KAChBzF,KAAKw2N,WAALx2N,OAAuByF,GACnBzF,KAAKu2N,cACLv2N,KAAKy2N,kBAAkB/1N,KAAK+E,MASxC,CAAA,IAAA,aAAA,MAAA,WAAA,IAAA,EAAA,KACSzF,KAAKwhB,WACNxhB,KAAKw2N,WAAW7+M,SAIhBlS,SAAAA,GAAAA,OAASzF,EAAK82N,gBAAgBrxN,QAUtC,CAAA,IAAA,yBAAA,MAAA,SAAuBo9G,GACnB,GAAIA,EAAO7nH,OAAS,IAAMgF,KAAKq2N,UAC3B,MA4EDxwN,MAAM,6EAAA,CAAA,IAAA,WAAA,IAAA,WAzOT,OAHK7F,KAAKi3N,YACNj3N,KAAKi3N,UAAYxwN,MAAM8tE,KAAKv0E,KAAKw2N,WAAW3zG,WAEzC7iH,KAAKi3N,cAOhB,EAvDE,GAuDF,KAmPEf,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACIl2N,KAAKk3N,WAAa,GAqCA,OA7BtB,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOzlN,EAAI7R,GAAAA,IAAAA,EAAAA,EAAAA,2BACcI,KAAKk3N,YADnBt3N,IACP,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,OACIurJ,EADJ,EAAA,OACa15I,EAAI7R,GAFVA,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,OAUX,CAAA,IAAA,SAAA,MAAA,SAAOurJ,GAAAA,IAAAA,EAAAA,KAEH,OADAnrJ,KAAKk3N,WAAWx2N,KAAKyqJ,GACd,WAIHnrJ,EAAKk3N,WAAal3N,EAAKk3N,WAAWhgN,QAIjCigN,SAAAA,GAAAA,OACUhsE,IAAagsE,QAOhC,CAAA,IAAA,cAAA,MAAA,WACIn3N,KAAKk3N,WAAa,OAAA,EAvCpBhB,IA0CoBtzF,UAAO,SAA2C5oI,GAAK,OAAO,IAAKA,GAAKk8N,KAC/EA,GAA0Bx1F,WAAQb,GAAmB,CAAEvqH,QAAS,WAA+C,OAAO,IAAI4gN,IAAgC72F,MAAO62F,GAA2Bp2F,WAAY,SAD3No2F,IAAAA,KDzEMD,GAAAA,WAMF,SAAA,EAAYl1C,EAASq2C,EAErB35N,GAAAA,gBAAAA,KAAAA,GACIuC,KAAK+gL,QAAUA,EACf/gL,KAAKo3N,UAAYA,EAIjBp3N,KAAKq3N,UAAY,IAAI,EAIrBr3N,KAAKs3N,oBAAsB,KAI3Bt3N,KAAKu3N,eAAiB,EAKtBv3N,KAAKw3N,iBAAmB,IAAI1jE,IAC5B9zJ,KAAK02G,UAAYj5G,EA6Lc,OArLnC,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASg6N,GAAAA,IAAAA,EAAAA,KACAz3N,KAAKw3N,iBAAiBzhE,IAAI0hE,IAC3Bz3N,KAAKw3N,iBAAiBx1M,IAAIy1M,EAAYA,EAAWC,kBAC5Cn3N,WAAU,WAAA,OAGTP,EAAKq3N,UAAUnvN,KAAKuvN,SAQlC,CAAA,IAAA,aAAA,MAAA,SAAWA,GAEP,IAAME,EAAsB33N,KAAKw3N,iBAAiB30M,IAAI40M,GAClDE,IACAA,EAAoBh3N,cACpBX,KAAKw3N,iBAALx3N,OAA6By3N,MAerC,CAAA,IAAA,WAAA,MAAA,WA3EwB,IAAA,EAAA,KA2EfG,EA3Ee,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GA4EpB,OAAK53N,KAAKo3N,UAAUvC,UAGb,IAAI,GAIVt7F,SAAAA,GACQv5H,EAAKs3N,qBACNt3N,EAAK63N,qBAKT,IAAM5+M,EAAe2+M,EAAgB,EACjC53N,EAAKq3N,UAAUhzN,KAAKwvN,GAAU+D,IAAgBr3N,UAAUg5H,GACxDv5H,EAAKq3N,UAAU92N,UAAUg5H,GAE7B,OADAv5H,EAAKu3N,iBACE,WAIHt+M,EAAatY,cACbX,EAAKu3N,iBACAv3N,EAAKu3N,gBACNv3N,EAAK83N,4BAxBNjqC,OAgCf,CAAA,IAAA,cAAA,MAAA,WAAA,IAAA,EAAA,KACI7tL,KAAK83N,wBACL93N,KAAKw3N,iBAAiB7/M,SAAQ,SAK7BH,EAAGuvB,GAL0B,OAKZ/mC,EAAK+3N,WAAWhxL,MAClC/mC,KAAKq3N,UAAU9vN,aASnB,CAAA,IAAA,mBAAA,MAAA,SAAiBgnJ,EAAYqpE,GAEzB,IAAMvuB,EAAYrpM,KAAKg4N,4BAA4BzpE,GACnD,OAAOvuJ,KAAKi4N,SAASL,GAAevzN,KAAK,IAIzCsG,SAAAA,GAAAA,OACYA,GAAU0+L,EAAUznM,QAAQ+I,IAAW,QAQvD,CAAA,IAAA,8BAAA,MAAA,SAA4B4jJ,GAAAA,IAAAA,EAAAA,KAElB2pE,EAAsB,GAW5B,OAVAl4N,KAAKw3N,iBAAiB7/M,SAAQ,SAK7BikL,EAAe67B,GACRz3N,EAAKm4N,2BAA2BV,EAAYlpE,IAC5C2pE,EAAoBx3N,KAAK+2N,MAG1BS,IAOX,CAAA,IAAA,eAAA,MAAA,WACI,OAAOl4N,KAAK02G,WAAaj5G,WAO7B,CAAA,IAAA,aAAA,MAAA,WAGI,OADYuC,KAAKo4N,eACNviM,aAAe34B,SAS9B,CAAA,IAAA,6BAAA,MAAA,SAA2Bu6N,EAAYlpE,GAEnC,IAAIttJ,EAAUstJ,EAAWgc,cAErB8tD,EAAoBZ,EAAWa,gBAAgB/tD,cAGnD,GACI,GAAItpK,GAAWo3N,EACX,OAAA,QAECp3N,EAAU,EAA6Bs3N,eAChD,OAAA,IAOJ,CAAA,IAAA,qBAAA,MAAA,WAAA,IAAA,EAAA,KACIv4N,KAAKs3N,oBAAsBt3N,KAAK+gL,QAAQX,mBAAkB,WAAA,OAM/CyyC,GADQ7yN,EAAKw4N,aACI/6N,SAAU,UAAU8C,WAAU,WAAA,OAGhDP,EAAKq3N,UAAUnvN,eAQ7B,CAAA,IAAA,wBAAA,MAAA,WACQlI,KAAKs3N,sBACLt3N,KAAKs3N,oBAAoB32N,cACzBX,KAAKs3N,oBAAsB,UAAA,EAzNjCrB,IA6NWrzF,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKi8N,IAAkB,GAAgB,IAAgB,GAAgB,IAAkB,GAAgB,GAAU,KAO3KA,GAAiBv1F,WAAQb,GAAmB,CAAEvqH,QAAS,WAAsC,OAAO,IAAI2gN,GAAiBjyF,GAAS45C,IAAS55C,GAAS,IAAWA,GAAS,GAAU,KAAQ3E,MAAO42F,GAAkBn2F,WAAY,SAPlPm2F,IAAAA,KAsUMD,GAAAA,WAMF,SAAA,EAAYoB,EAAWvyC,EAEvBpnL,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACIuC,KAAKo3N,UAAYA,EACjBp3N,KAAK02G,UAAYj5G,EACjBonL,EAAOzE,mBAAkB,WAKrB,IAAMljL,EAAS8C,EAAKw4N,aACpBx4N,EAAKy4N,QAAUrB,EAAUvC,UACrBtgH,EAAMs+G,GAAU31N,EAAQ,UAAW21N,GAAU31N,EAAQ,sBACrD2wL,KAGJ7tL,EAAK04N,iBAAmB14N,EAAK4uG,SAASruG,WAAU,WAAA,OAG1CP,EAAK24N,4BAuHS,OAjH5B,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WACI34N,KAAK04N,iBAAiB/3N,gBAM1B,CAAA,IAAA,kBAAA,MAAA,WACSX,KAAK44N,eACN54N,KAAK24N,sBAGT,IAAMx9N,EAAS,CAAEuhB,MAAO1c,KAAK44N,cAAcl8M,MAAOH,OAAQvc,KAAK44N,cAAcr8M,QAK7E,OAHKvc,KAAKo3N,UAAUvC,YAChB70N,KAAK44N,cAAgB,MAElBz9N,IAMX,CAAA,IAAA,kBAAA,MAAA,WAWU09N,IAAAA,EAAiB74N,KAAK84N,4BAAtBD,EACoB74N,KAAK+4N,kBAAvBr8M,EADFm8M,EACA,MAASt8M,EADTs8M,EACO,OACb,MAAO,CACH1zM,IAAK0zM,EAAe1zM,IACpBD,KAAM2zM,EAAe3zM,KACrB0xC,OAAQiiK,EAAe1zM,IAAM5I,EAC7Bs6C,MAAOgiK,EAAe3zM,KAAOxI,EAC7BH,OAAAA,EACAG,MAAAA,KAOR,CAAA,IAAA,4BAAA,MAAA,WAGI,IAAK1c,KAAKo3N,UAAUvC,UAChB,MAAO,CAAE1vM,IAAK,EAAGD,KAAM,GAS3B,IAAMznB,EAAWuC,KAAKo4N,eAEhBl7N,EAAS8C,KAAKw4N,aAEdzrN,EAAqCtP,EAAyB,gBAE9Du7N,EAAejsN,EAAgB0qB,wBAOrC,MAAO,CAAEtS,KALI6zM,EAAa7zM,KAAO1nB,EAAS6N,KAAKmqB,WAAav4B,EAAO+7N,SAC/DlsN,EAAgB0oB,WAAa,EAInBvQ,MAFA8zM,EAAa9zM,MAAQznB,EAAS6N,KAAKkqB,YAAct4B,EAAOg8N,SAClEnsN,EAAgByoB,YAAc,KAQtC,CAAA,IAAA,SAAA,MAAA,WAjIwB,IAiIjB2jM,EAjIiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAkIpB,OAAOA,EAAe,EAAIn5N,KAAKy4N,QAAQp0N,KAAKwvN,GAAUsF,IAAiBn5N,KAAKy4N,UAOhF,CAAA,IAAA,eAAA,MAAA,WACI,OAAOz4N,KAAK02G,WAAaj5G,WAO7B,CAAA,IAAA,aAAA,MAAA,WAGI,OADYuC,KAAKo4N,eACNviM,aAAe34B,SAO9B,CAAA,IAAA,sBAAA,MAAA,WAEI,IAAMA,EAAS8C,KAAKw4N,aACpBx4N,KAAK44N,cAAgB54N,KAAKo3N,UAAUvC,UAChC,CAAEn4M,MAAOxf,EAAOk8N,WAAY78M,OAAQrf,EAAOm8N,aAC3C,CAAE38M,MAAO,EAAGH,OAAQ,OAAA,EAhJ1By5M,IAmJQpzF,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAKg8N,IAAe,GAAgB,IAAkB,GAAgB,IAAgB,GAAgB,GAAU,KAOlKA,GAAct1F,WAAQb,GAAmB,CAAEvqH,QAAS,WAAmC,OAAO,IAAI0gN,GAAchyF,GAAS,IAAWA,GAAS45C,IAAS55C,GAAS,GAAU,KAAQ3E,MAAO22F,GAAel2F,WAAY,SAPtOk2F,IAAAA,KAkxCMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEcvzF,UAAO,GAAwB,CAAEr3H,KAAM4qN,KAC3DA,GAAoBp1F,UAAO,GAAwB,CAAErrH,QAAS,SAAqCtb,GAAK,OAAO,IAAKA,GAAK+7N,OADzHA,IAAAA,KAUMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEUtzF,UAAO,GAAwB,CAAEr3H,KAAM2qN,KACvDA,GAAgBn1F,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAK87N,KAAuB71F,QAAS,CAAC,CACtI,GACA,GACA,IACD,GAAY,MALvB61F,IEp0EA,SAASwD,KACL,MAAMzzN,MAAM,sCAqDhB,IAg3BM0zN,GA/QAC,GAjmBAC,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GA4CF,OA5CEA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,SAMK/jM,GAQH,OAPY,MAARA,GApCZ,WACI,MAAM7vB,MAAM,wDADhB,GAuCY6vB,EAAKgkM,eACLJ,KAEJt5N,KAAK25N,cAAgBjkM,EACKA,EAAKkkM,OAAO55N,QAM1C,CAAA,IAAA,SAAA,MAAA,WAEI,IAAI01B,EAAO11B,KAAK25N,cACJ,MAARjkM,EA5CZ,WACI,MAAM7vB,MAAM,gEADhB,IAgDY7F,KAAK25N,cAAgB,KACrBjkM,EAAK43H,YAOb,CAAA,IAAA,kBAAA,MAAA,SASgB53H,GACZ11B,KAAK25N,cAAgBjkM,IAAAA,CAAAA,IAAAA,aAAAA,IAAAA,WATrB,OAA6B,MAAtB11B,KAAK25N,kBAQhB,EA5CEF,GA2DAI,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAOF,SAAA,EAAYzxE,EAAW0xE,EAAkBr2F,EAAUkyC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC/Cv7C,EAAAA,EAAAA,KAAAA,OACKguB,UAAYA,EACjBpoJ,EAAK85N,iBAAmBA,EACxB95N,EAAKyjI,SAAWA,EAChBzjI,EAAK21K,yBAA2BA,EALeA,EAKfA,OAAAA,EAZlCkkD,CAAwBJ,IA4CxBM,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAY7zF,EAAU4zF,EAAkBjxN,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACpCuxH,EAAAA,EAAAA,KAAAA,OACK20B,YAAc7oB,EACnBlmI,EAAK85N,iBAAmBA,EACxB95N,EAAK6I,QAAUA,EAJqBA,EAoBxC,OAXA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAWO6sB,GAAqB7sB,IAAfA,EAAeA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAL7I,KAAK6I,QAExB,OADA7I,KAAK6I,QAAUA,EAAf7I,KAAAA,gBAAAA,EAAAA,WAAAA,SAAAA,MAAAA,KAAAA,KACoB01B,KAKxB,CAAA,IAAA,SAAA,MAAA,WAEI,OADA11B,KAAK6I,aAAAA,EAAL7I,KAAAA,gBAAAA,EAAAA,WAAAA,SAAAA,MAAAA,KAAAA,QACastJ,CAAAA,IAAAA,SAAAA,IAAAA,WAnBb,OAAOttJ,KAAK+uJ,YAAYR,eAU5B,EA1BEwrE,CAAuBN,IA6DvB,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAIF,SAAA,EAAYx4N,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRm5H,EAAAA,EAAAA,KAAAA,OACKn5H,QAAUA,aAAmBqpK,GAAarpK,EAAQspK,cAAgBtpK,EAF/DA,EAE+DA,OAAAA,EANzE,CAAkBw4N,IAiDlBO,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAIIh6N,KAAKi6N,aAAAA,EAELj6N,KAAKk6N,gBAAkB,KA4ED,OAtE1B,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WACI,QAASl6N,KAAKm6N,kBAOlB,CAAA,IAAA,SAAA,MAAA,SAAOC,GAUH,OATKA,GAzSb,WACI,MAAMv0N,MAAM,mCADhB,GA4SY7F,KAAK05N,eACLJ,KAEAt5N,KAAKi6N,aA/RjB,WACI,MAAMp0N,MAAM,+CADhB,GAkSYu0N,aAAkBP,IAClB75N,KAAKm6N,gBAAkBC,EAChBp6N,KAAKq6N,sBAAsBD,IAE7BA,aAAkBL,IACvB/5N,KAAKm6N,gBAAkBC,EAChBp6N,KAAKs6N,qBAAqBF,IAG5Bp6N,KAAKk6N,iBAAmBE,aAAkB,IAC/Cp6N,KAAKm6N,gBAAkBC,EAChBp6N,KAAKk6N,gBAAgBE,SArSxC,WACI,MAAMv0N,MAAM,uHADhB,KA6SI,CAAA,IAAA,SAAA,MAAA,WACQ7F,KAAKm6N,kBACLn6N,KAAKm6N,gBAAgBI,gBAAgB,MACrCv6N,KAAKm6N,gBAAkB,MAE3Bn6N,KAAKw6N,qBAMT,CAAA,IAAA,UAAA,MAAA,WACQx6N,KAAK05N,eACL15N,KAAKstJ,SAETttJ,KAAKw6N,mBACLx6N,KAAKi6N,aAAAA,IAOT,CAAA,IAAA,eAAA,MAAA,SAAa71N,GACTpE,KAAKy6N,WAAar2N,IAMtB,CAAA,IAAA,mBAAA,MAAA,WACQpE,KAAKy6N,aACLz6N,KAAKy6N,aACLz6N,KAAKy6N,WAAa,UAAA,EAnFxBT,GA4IAU,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQF,SAAA,EAAYC,EAAej1C,EAA2Bt4B,EAASwtE,EAK/DlkH,GAAAA,IAAAA,EAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACI0jB,EAAAA,EAAAA,KAAAA,OACKugG,cAAgBA,EACrB36N,EAAK0lL,0BAA4BA,EACjC1lL,EAAKotJ,QAAUA,EACfptJ,EAAK46N,iBAAmBA,EAOxB56N,EAAKk6N,gBAIJE,SAAAA,GAGG,IAAKp6N,EAAK02G,UACN,MAAM7wG,MAAM,oEAGhB,IAAM5E,EAAUm5N,EAAOn5N,QACvB,IAAKA,EAAQkM,WACT,MAAMtH,MAAM,yDAKhB,IAAM+lJ,EAAa5rJ,EAAK02G,UAAU85C,cAAc,cAChDvvJ,EAAQkM,WAAWH,aAAa4+I,EAAY3qJ,GAC5CjB,EAAK26N,cAAchuN,YAAY1L,GAD/BA,MAAAA,EAAAA,uBAAAA,GAAAA,gBAAAA,EAAAA,YAAAA,eAAAA,GAAAA,KAAAA,GAEmB,WAKX2qJ,EAAWz+I,YACXy+I,EAAWz+I,WAAW0pB,aAAa51B,EAAS2qJ,OAIxD5rJ,EAAK02G,UAAYA,EA3CrBA,EAwIqF,OArFrF,aAAA,EAAA,CAAA,CAAA,IAAA,wBAAA,MAAA,SAAsB0jH,GAAAA,IAMd5qE,EANc4qE,EAAAA,KAIZlrE,GAFWkrE,EAAOzkD,0BAA4B31K,KAAK0lL,2BAEvBa,wBAAwB6zC,EAAOhyE,WA4BjE,OArBIgyE,EAAON,kBACPtqE,EAAe4qE,EAAON,iBAAiBe,gBAAgB3rE,EAAkBkrE,EAAON,iBAAiB9+N,OAAQo/N,EAAO32F,UAAY22F,EAAON,iBAAiBr2F,UACpJzjI,KAAK86N,cAAa,WAAA,OAGZtrE,EAAar1E,eAGnBq1E,EAAeN,EAAiBroJ,OAAOuzN,EAAO32F,UAAYzjI,KAAK46N,kBAC/D56N,KAAKotJ,QAAQ45B,WAAWx3B,EAAarkB,UACrCnrI,KAAK86N,cAAa,WAId96N,EAAKotJ,QAAQlD,WAAWsF,EAAarkB,UACrCqkB,EAAar1E,cAKrBn6E,KAAK26N,cAAchuN,YAAY3M,KAAK+6N,sBAAsBvrE,IACnDA,IAQX,CAAA,IAAA,uBAAA,MAAA,SAAqB4qE,GAAAA,IAAAA,EAAAA,KAEbz/B,EAAgBy/B,EAAON,iBAEvB9qE,EAAU2rC,EAAclsC,mBAAmB2rE,EAAOrrE,YAAaqrE,EAAOvxN,SAsB1E,OArBAmmJ,EAAQ43B,gBAKR53B,EAAQgsE,UAAUrjN,SAIlB+9M,SAAAA,GAAAA,OAAY11N,EAAK26N,cAAchuN,YAAY+oN,MAC3C11N,KAAK86N,cAAa,WAKd,IAAI75M,EAAQ05K,EAAc/4L,QAAQotJ,IACnB,IAAX/tI,GACA05K,EAAc5kL,OAAOkL,MAItB+tI,IAMX,CAAA,IAAA,UAAA,MAAA,WACI50B,KAAAA,gBAAAA,EAAAA,WAAAA,UAAAA,MAAAA,KAAAA,MACqC,MAAjCp6H,KAAK26N,cAAcxtN,YACnBnN,KAAK26N,cAAcxtN,WAAWC,YAAYpN,KAAK26N,iBASvD,CAAA,IAAA,wBAAA,MAAA,SAAsBnrE,GAClB,OAA8CA,EAAuB,SAAEwrE,UAAU,OAAA,EArJnFN,CAAwBV,IAAAA,KAgQxBR,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAY9zC,EAA2Br4B,EAKvC32C,GAAAA,IAAAA,EAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACI0jB,EAAAA,EAAAA,KAAAA,OACKsrD,0BAA4BA,EACjC1lL,EAAKqtJ,kBAAoBA,EAIzBrtJ,EAAKi7N,gBAAAA,EAILj7N,EAAKk7N,SAAW,IAAI,GAOpBl7N,EAAKk6N,gBAIJE,SAAAA,GAGG,IAAKp6N,EAAK02G,UACN,MAAM7wG,MAAM,oEAGhB,IAAM5E,EAAUm5N,EAAOn5N,QACvB,IAAKA,EAAQkM,WACT,MAAMtH,MAAM,yDAKhB,IAAM+lJ,EAAa5rJ,EAAK02G,UAAU85C,cAAc,cAChD4pE,EAAOG,gBAAPH,uBAAAA,IACAn5N,EAAQkM,WAAWH,aAAa4+I,EAAY3qJ,GAC5CjB,EAAKm7N,eAAexuN,YAAY1L,GAFhCm5N,MAAAA,EAAAA,uBAAAA,GAAAA,gBAAAA,EAAAA,YAAAA,eAAAA,GAAAA,KAAAA,GAGmB,WAIXxuE,EAAWz+I,YACQy+I,EAAsB,WAAE/0H,aAAa51B,EAAS2qJ,OAI7E5rJ,EAAK02G,UAAYA,EAjDrBA,EAwFA,OAjCA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAkCI12G,KAAKi7N,gBAAAA,IAKT,CAAA,IAAA,cAAA,MAAA,WACI7gG,KAAAA,gBAAAA,EAAAA,WAAAA,UAAAA,MAAAA,KAAAA,MACAp6H,KAAKm6N,gBAAkB,KACvBn6N,KAAKo7N,aAAe,OASxB,CAAA,IAAA,wBAAA,MAAA,SAAsBhB,GAClBA,EAAOG,gBAAgBv6N,MAIvB,IAAM85N,EAA8C,MAA3BM,EAAON,iBAC5BM,EAAON,iBACP95N,KAAKqtJ,kBAIH6B,GAFWkrE,EAAOzkD,0BAA4B31K,KAAK0lL,2BAEvBa,wBAAwB6zC,EAAOhyE,WAE3DizE,EAAMvB,EAAiBe,gBAAgB3rE,EAAkB4qE,EAAiB9+N,OAAQo/N,EAAO32F,UAAYq2F,EAAiBr2F,UAc5H,OAVIq2F,IAAqB95N,KAAKqtJ,mBAC1BrtJ,KAAKm7N,eAAexuN,YAAgC0uN,EAAc,SAAEL,UAAU,IAD9ElB,KAAAA,gBAAAA,EAAAA,WAAAA,eAAAA,MAAAA,KAAAA,MAGe,WAAA,OAGbuB,EAAIlhJ,aACVn6E,KAAKm6N,gBAAkBC,EACvBp6N,KAAKo7N,aAAeC,EACpBr7N,KAAKk7N,SAAShtG,KAAKmtG,GACZA,IAQX,CAAA,IAAA,uBAAA,MAAA,SAAqBjB,GAAAA,IAAAA,EAAAA,KACjBA,EAAOG,gBAAgBv6N,MAEvB,IAAMgvJ,EAAUhvJ,KAAKqtJ,kBAAkBoB,mBAAmB2rE,EAAOrrE,YAAaqrE,EAAOvxN,SAQrF,OAPAuxH,KAAAA,gBAAAA,EAAAA,WAAAA,eAAAA,MAAAA,KAAAA,MAAmB,WAAA,OAGbp6H,EAAKqtJ,kBAAkBluG,WAC7Bn/C,KAAKm6N,gBAAkBC,EACvBp6N,KAAKo7N,aAAepsE,EACpBhvJ,KAAKk7N,SAAShtG,KAAK8gC,GACZA,IAOX,CAAA,IAAA,eAAA,MAAA,WAEI,IAAMub,EAAgBvqK,KAAKqtJ,kBAAkBpsJ,QAAQspK,cAGrD,OAA2BA,EAAc50I,WAAa40I,EAAc5wB,aAChE4wB,EAAmCA,EAAyB,aAAA,CAAA,IAAA,SAAA,IAAA,WA7GhE,OAAOvqK,KAAKm6N,iBAMhB,IAAA,SAAWC,KAKHp6N,KAAK05N,eAAkBU,GAAWp6N,KAAKi7N,kBAGvCj7N,KAAK05N,eAAL15N,KAAAA,gBAAAA,EAAAA,WAAAA,SAAAA,MAAAA,KAAAA,MAGAo6N,GAAAA,KAAAA,gBAAAA,EAAAA,WAAAA,SAAAA,MAAAA,KAAAA,KACaA,GAEjBp6N,KAAKm6N,gBAAkBC,KAM3B,CAAA,IAAA,cAAA,IAAA,WACI,OAAOp6N,KAAKo7N,iBAKhB,EAnGE5B,CAAwBQ,KAmLdp3F,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKw/N,IAAiB,GAAyB,IAAkC,GAAyB,IAA0B,GAAyB,MACtOA,GAAgBp3F,UAAO,GAAyB,CAAEj3H,KAAMquN,GAAiB96L,UAAW,CAAC,CAAC,GAAI,kBAAmB,KAAM+nG,OAAQ,CAAE2zF,OAAQ,CAAC,kBAAmB,WAAa1zF,QAAS,CAAEw0F,SAAU,YAAcv0F,SAAU,CAAC,mBAAoBrrH,SAAU,CAAC,MADnPk+M,IAAAA,KA4FMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEO/2F,UAAO,GAAwB,CAAEr3H,KAAMouN,KACpDA,GAAa54F,UAAO,GAAwB,CAAErrH,QAAS,SAA8Btb,GAAK,OAAO,IAAKA,GAAKu/N,OAD3GA,IA4BM+B,GAAAA,WAKF,SAAA,EAAYC,EAAiBC,GAAAA,gBAAAA,KAAAA,GACzBx7N,KAAKu7N,gBAAkBA,EACvBv7N,KAAKw7N,cAAgBA,EAakBt3F,OAN3C,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAAI7E,EAAO6E,GAEP,IAAMz+H,EAAQzF,KAAKw7N,cAAc34M,IAAIw8G,GACrC,YAAA,IAAW55H,EACAA,EAEJzF,KAAKu7N,gBAAgB14M,IAAIw8G,EAAO6E,OAAAA,EApBzCo3F,GC7sBN,SAASG,GAAe5nM,GAAU6nM,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,GAC9B,OAAIA,EAAU1gO,OACH0gO,EAAU5nI,MAIjB6nI,SAAAA,GAAAA,OAAY9nM,EAAM8nM,MAEf9nM,EAAMw8B,QAAUx8B,EAAMi9B,UAAYj9B,EAAMm4E,SAAWn4E,EAAMo4E,QCnQpE,IAAM,GAAA,WAKF,SAAA,EAAY2vH,EAAgBn+N,GAAAA,gBAAAA,KAAAA,GACxBuC,KAAK47N,eAAiBA,EACtB57N,KAAK67N,oBAAsB,CAAE12M,IAAK,GAAID,KAAM,IAC5CllB,KAAK87N,YAAAA,EACL97N,KAAK02G,UAAYj5G,EA0EyDif,OApE9E,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,cAKA,CAAA,IAAA,SAAA,MAAA,WACI,GAAI1c,KAAK+7N,gBAAiB,CAEtB,IAAM7tM,EAA0BluB,KAAK02G,UAA0B,gBAC/D12G,KAAKg8N,wBAA0Bh8N,KAAK47N,eAAe9C,4BAEnD94N,KAAK67N,oBAAoB32M,KAAOgJ,EAAK1hB,MAAM0Y,MAAQ,GACnDllB,KAAK67N,oBAAoB12M,IAAM+I,EAAK1hB,MAAM2Y,KAAO,GAGjD+I,EAAK1hB,MAAM0Y,KAAOwtM,IAAqB1yN,KAAKg8N,wBAAwB92M,MACpEgJ,EAAK1hB,MAAM2Y,IAAMutM,IAAqB1yN,KAAKg8N,wBAAwB72M,KACnE+I,EAAKk3I,UAAUr9J,IAAI,0BACnB/H,KAAK87N,YAAAA,KAOb,CAAA,IAAA,UAAA,MAAA,WACI,GAAI97N,KAAK87N,WAAY,CAEjB,IAAM3iF,EAA0Bn5I,KAAK02G,UAA0B,gBAIzDulH,EAA+B9iF,EAAW,MAE1C+iF,EAJ0Bl8N,KAAK02G,UAAe,KAIJ,MAE1CylH,EAA6BF,EAAUG,gBAAkB,GAEzDC,EAA6BH,EAAUE,gBAAkB,GAC/Dp8N,KAAK87N,YAAAA,EACLG,EAAU/2M,KAAOllB,KAAK67N,oBAAoB32M,KAC1C+2M,EAAU92M,IAAMnlB,KAAK67N,oBAAoB12M,IACzCg0H,EAAKisB,UAAUrvJ,OAAO,0BAGtBkmN,EAAUG,eAAiBF,EAAUE,eAAiB,OACtDl/N,OAAO42B,OAAO9zB,KAAKg8N,wBAAwB92M,KAAMllB,KAAKg8N,wBAAwB72M,KAC9E82M,EAAUG,eAAiBD,EAC3BD,EAAUE,eAAiBC,KAOnC,CAAA,IAAA,gBAAA,MAAA,WAMI,GADgCr8N,KAAK02G,UAA0B,gBACtD0uD,UAAU1jJ,SAAS,2BAA6B1hB,KAAK87N,WAC1D,OAAA,EAGJ,IAAMxwN,EAAOtL,KAAK02G,UAAUprG,KAEtBm7E,EAAWzmF,KAAK47N,eAAe7C,kBACrC,OAAOztN,EAAKgxN,aAAe71I,EAASlqE,QAAUjR,EAAKixN,YAAc91I,EAAS/pE,UAAAA,EAnF5E,GA6JN,SAAS8/M,KACL,OAAO32N,MAAM,8CAuBjB,IAAM42N,GAAAA,WAOF,SAAA,EAAYC,EAAmB37C,EAAS66C,EAAgBj2B,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACpD3lM,KAAK08N,kBAAoBA,EACzB18N,KAAK+gL,QAAUA,EACf/gL,KAAK47N,eAAiBA,EACtB57N,KAAK2lM,QAAUA,EACf3lM,KAAK28N,oBAAsB,KAI3B38N,KAAK48N,QAAU,WAIX58N,EAAKu7M,UACDv7M,EAAK68N,YAAYnD,eACjB15N,EAAK+gL,QAAQV,KAAI,WAAA,OAGXrgL,EAAK68N,YAAYvvE,aA4DZ,OAnDvB,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOwvE,GACH,GAAI98N,KAAK68N,YACL,MAAML,KAEVx8N,KAAK68N,YAAcC,IAMvB,CAAA,IAAA,SAAA,MAAA,WAAA,IAAA,EAAA,KACI,IAAI98N,KAAK28N,oBAAT,CAIA,IAAMI,EAAS/8N,KAAK08N,kBAAkBzE,SAAS,GAC3Cj4N,KAAK2lM,SAAW3lM,KAAK2lM,QAAQ35J,WAAahsC,KAAK2lM,QAAQ35J,UAAY,GACnEhsC,KAAKg9N,uBAAyBh9N,KAAK47N,eAAe9C,4BAA4B3zM,IAC9EnlB,KAAK28N,oBAAsBI,EAAOx8N,WAAU,WAKxC,IAAMs4N,EAAiB74N,EAAK47N,eAAe9C,4BAA4B3zM,IACnEnC,KAAK6K,IAAIgrM,EAAiB74N,EAAKg9N,wBAAgEh9N,EAAa,QAAY,UACxHA,EAAK48N,UAGL58N,EAAK68N,YAAYI,qBAKzBj9N,KAAK28N,oBAAsBI,EAAOx8N,UAAUP,KAAK48N,YAOzD,CAAA,IAAA,UAAA,MAAA,WACQ58N,KAAK28N,sBACL38N,KAAK28N,oBAAoBh8N,cACzBX,KAAK28N,oBAAsB,QAMnC,CAAA,IAAA,SAAA,MAAA,WACI38N,KAAKu7M,UACLv7M,KAAK68N,YAAc,SAAA,EArFrBJ,GAmJAS,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAeF,OAfEA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,cAUF,CAAA,IAAA,UAAA,MAAA,cAKA,CAAA,IAAA,SAAA,MAAA,gBAAA,EAfEA,GAuCN,SAASC,GAA6Bl8N,EAASu2N,GAC3C,OAAOA,EAAiB1jI,MAIxBspI,SAAAA,GAAAA,OAEyBn8N,EAAQ21D,OAASwmK,EAAgBj4M,KAEjClkB,EAAQkkB,IAAMi4M,EAAgBxmK,QAE/B31D,EAAQ41D,MAAQumK,EAAgBl4M,MAE/BjkB,EAAQikB,KAAOk4M,EAAgBvmK,SAW5D,SAASwmK,GAA4Bp8N,EAASu2N,GAC1C,OAAOA,EAAiB1jI,MAIxBwpI,SAAAA,GAAAA,OAEyBr8N,EAAQkkB,IAAMm4M,EAAoBn4M,KAElClkB,EAAQ21D,OAAS0mK,EAAoB1mK,QAEtC31D,EAAQikB,KAAOo4M,EAAoBp4M,MAElCjkB,EAAQ41D,MAAQymK,EAAoBzmK,SA8BjE,IAwHM0mK,GAxHAC,GAAAA,WAOF,SAAA,EAAYd,EAAmBd,EAAgB76C,EAAS4kB,GAAAA,gBAAAA,KAAAA,GACpD3lM,KAAK08N,kBAAoBA,EACzB18N,KAAK47N,eAAiBA,EACtB57N,KAAK+gL,QAAUA,EACf/gL,KAAK2lM,QAAUA,EACf3lM,KAAK28N,oBAAsB,KA6DR,OAtDvB,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOG,GACH,GAAI98N,KAAK68N,YACL,MAAML,KAEVx8N,KAAK68N,YAAcC,IAMvB,CAAA,IAAA,SAAA,MAAA,WAAA,IAAA,EAAA,KACS98N,KAAK28N,sBAGN38N,KAAK28N,oBAAsB38N,KAAK08N,kBAAkBzE,SADjCj4N,KAAK2lM,QAAU3lM,KAAK2lM,QAAQ83B,eAAiB,GACOl9N,WAAU,WAM3E,GAFAP,EAAK68N,YAAYI,iBAEbj9N,EAAK2lM,SAAW3lM,EAAK2lM,QAAQ+3B,UAAW,CAElCC,IAAAA,EAAc39N,EAAK68N,YAAYe,eAAenmM,wBAA9CkmM,EACoB39N,EAAK47N,eAAe7C,kBAAtCr8M,EADFihN,EACA,MAASphN,EADTohN,EACO,OAKTR,GAA6BQ,EADb,CAAC,CAAEjhN,MAAAA,EAAOH,OAAAA,EAAQq6C,OAAQr6C,EAAQs6C,MAAOn6C,EAAOyI,IAAK,EAAGD,KAAM,OAE9EllB,EAAKu7M,UACLv7M,EAAK+gL,QAAQV,KAAI,WAAA,OAGXrgL,EAAK68N,YAAYvvE,oBAU3C,CAAA,IAAA,UAAA,MAAA,WACQttJ,KAAK28N,sBACL38N,KAAK28N,oBAAoBh8N,cACzBX,KAAK28N,oBAAsB,QAMnC,CAAA,IAAA,SAAA,MAAA,WACI38N,KAAKu7M,UACLv7M,KAAK68N,YAAc,SAAA,EAzErBW,GAyEqB,KA+CrBD,GAOF,SAAA,EAAYb,EAAmBd,EAAgB76C,EAAStjL,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACpDuC,KAAK08N,kBAAoBA,EACzB18N,KAAK47N,eAAiBA,EACtB57N,KAAK+gL,QAAUA,EAIf/gL,KAAK04B,KAAO,WAAA,OAGN,IAAIwkM,IAKVl9N,KAAK69N,MAIJ50N,SAAAA,GAAAA,OAAW,IAAIwzN,GAAoBz8N,EAAK08N,kBAAmB18N,EAAK+gL,QAAS/gL,EAAK47N,eAAgB3yN,IAI/FjJ,KAAK89N,MAAQ,WAAA,OAGP,IAAI,GAAoB99N,EAAK47N,eAAgB57N,EAAK02G,YAMxD12G,KAAK+9N,WAIJ90N,SAAAA,GAAAA,OAAW,IAAIu0N,GAAyBx9N,EAAK08N,kBAAmB18N,EAAK47N,eAAgB57N,EAAK+gL,QAAS93K,IACpGjJ,KAAK02G,UAAYj5G,IAGHmlI,UAAO,SAAuC5oI,GAAK,OAAO,IAAKA,GAAKujO,IAAuB,GAAgB,IAA0B,GAAgB,IAAuB,GAAgB,IAAgB,GAAgB,MAQ/NA,GAAsB78F,WAAQb,GAAmB,CAAEvqH,QAAS,WAA2C,OAAO,IAAIioN,GAAsBv5F,GAAS,IAAmBA,GAAS,IAAgBA,GAAS45C,IAAS55C,GAAS,MAAe3E,MAAOk+F,GAAuBz9F,WAAY,SARpSy9F,IA4EMS,GAIF,SAAA,EAAY/0N,GAuBR,GAvBQA,gBAAAA,KAAAA,GAIRjJ,KAAKi+N,eAAiB,IAAIf,GAI1Bl9N,KAAKk+N,WAAa,GAIlBl+N,KAAKm+N,aAAAA,EAILn+N,KAAKo+N,cAAgB,4BAMrBp+N,KAAKq+N,qBAAAA,EACDp1N,EAMA,IADA,IACA,EAAA,EAAA,EADsClD,OAAOP,KAAKyD,GAClD,EAAA,EAAA,OAAA,IAAA,CAAK,IAAM/M,EAAAA,EAAAA,QAAOoiO,IACVr1N,EAAO/M,KAOP8D,KAAK9D,GAA0B+M,EAAO/M,MA2GpDqiO,GAQF,SAAA,EAAY/7N,EAAQkgD,EAAS7L,EAASC,EAASonL,GAAAA,gBAAAA,KAAAA,GAC3Cl+N,KAAK62C,QAAUA,EACf72C,KAAK82C,QAAUA,EACf92C,KAAKk+N,WAAaA,EAClBl+N,KAAKspD,QAAU9mD,EAAO8mD,QACtBtpD,KAAKupD,QAAU/mD,EAAO+mD,QACtBvpD,KAAKw+N,SAAW97K,EAAQ87K,SACxBx+N,KAAKy+N,SAAW/7K,EAAQ+7K,UAgF1BC,GAKF,SAAA,EAAYC,EAAgBC,GAAAA,gBAAAA,KAAAA,GACxB5+N,KAAK2+N,eAAiBA,EACtB3+N,KAAK4+N,yBAA2BA,GA2BxC,SAASC,GAAyBtnN,EAAU9R,GACxC,GAAc,QAAVA,GAA6B,WAAVA,GAAgC,WAAVA,EACzC,MAAMI,MAAM,8BAAA,OAA8B0R,EAA9B,MAAA,OAA2C9R,EAA3C,OACR,yCAUZ,SAASq5N,GAA2BvnN,EAAU9R,GAC1C,GAAc,UAAVA,GAA+B,QAAVA,GAA6B,WAAVA,EACxC,MAAMI,MAAM,8BAAA,OAA8B0R,EAA9B,MAAA,OAA2C9R,EAA3C,OACR,wCADEI,IAeRk5N,GAiKAC,GAhLQn5N,KAeRk5N,GAAAA,WAIF,SAAA,EAAYthO,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAIRuC,KAAKi/N,kBAAoB,GAIzBj/N,KAAKk/N,iBAIJrrM,SAAAA,GAGG,IADA,IAAMsrM,EAAWn/N,EAAKi/N,kBACbtkO,EAAIwkO,EAASnkO,OAAS,EAAGL,GAAK,EAAGA,IAOtC,GAAIwkO,EAASxkO,GAAGykO,eAAe3kG,UAAUz/H,OAAS,EAAG,CACjDmkO,EAASxkO,GAAGykO,eAAel3N,KAAK2rB,GAChC,QAIZ7zB,KAAK02G,UAAYj5G,EA+CM,OA1C3B,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WACIuC,KAAK48N,YAOT,CAAA,IAAA,MAAA,MAAA,SAAIE,GAEA98N,KAAK+V,OAAO+mN,GAEP98N,KAAKq/N,cACNr/N,KAAK02G,UAAUprG,KAAKmoB,iBAAiB,UAAWzzB,KAAKk/N,kBACrDl/N,KAAKq/N,aAAAA,GAETr/N,KAAKi/N,kBAAkBv+N,KAAKo8N,KAOhC,CAAA,IAAA,SAAA,MAAA,SAAOA,GAEH,IAAM77M,EAAQjhB,KAAKi/N,kBAAkBr9N,QAAQk7N,GACzC77M,GAAS,GACTjhB,KAAKi/N,kBAAkBr+N,OAAOqgB,EAAO,GAGH,IAAlCjhB,KAAKi/N,kBAAkBjkO,QACvBgF,KAAK48N,YAQb,CAAA,IAAA,UAAA,MAAA,WACQ58N,KAAKq/N,cACLr/N,KAAK02G,UAAUprG,KAAKqoB,oBAAoB,UAAW3zB,KAAKk/N,kBACxDl/N,KAAKq/N,aAAAA,OAAc,EA/EzBN,IAmFoBn8F,UAAO,SAA2C5oI,GAAK,OAAO,IAAKA,GAAK+kO,IAA2B,GAAgB,MAK1HA,GAA0Br+F,WAAQb,GAAmB,CAAEvqH,QAAS,WAA+C,OAAO,IAAIypN,GAA0B/6F,GAAS,MAAe3E,MAAO0/F,GAA2Bj/F,WAAY,SAL7Oi/F,IAyEMO,KAAsC,oBAAXpiO,SAA4BA,SACtD,OAA8BqiO,YAAa,OAA8BC,SAzBhF,KA6BMR,GAAAA,WAKF,SAAA,EAAYvhO,EAAU25N,GAAAA,gBAAAA,KAAAA,GAClBp3N,KAAKo3N,UAAYA,EACjBp3N,KAAK02G,UAAYj5G,EAiEQspC,OA5D7B,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WAEI,IAAMA,EAAY/mC,KAAKy/N,kBACnB14L,GAAaA,EAAU55B,YACvB45B,EAAU55B,WAAWC,YAAY25B,KASzC,CAAA,IAAA,sBAAA,MAAA,WAII,OAHK/mC,KAAKy/N,mBACNz/N,KAAK0/N,mBAEF1/N,KAAKy/N,oBAQhB,CAAA,IAAA,mBAAA,MAAA,WAGI,IAAM5K,EAAY70N,KAAKo3N,UAAYp3N,KAAKo3N,UAAUvC,UAA8B,oBAAX33N,OAGrE,GAAI23N,GAAayK,GAMb,IAJA,IAAMK,EAA6B3/N,KAAK02G,UAAUkpH,iBAAiB,sFAI1DjlO,EAAI,EAAGA,EAAIglO,EAA2B3kO,OAAQL,IAChCglO,EAA2BhlO,GAAc,WAAEyS,YAAYuyN,EAA2BhlO,IAI7G,IAAMosC,EAAY/mC,KAAK02G,UAAUlsG,cAAc,OAC/Cu8B,EAAUq+H,UAAUr9J,IAbG,yBAuBnBu3N,GACAv4L,EAAUr6B,aAAa,WAAY,QAE7BmoN,GACN9tL,EAAUr6B,aAAa,WAAY,UAEvC1M,KAAK02G,UAAUprG,KAAKqB,YAAYo6B,GAChC/mC,KAAKy/N,kBAAoB14L,MAAAA,EAxE3Bi4L,IA2EWp8F,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKglO,IAAkB,GAAgB,IAAW,GAAgB,MAM1HA,GAAiBt+F,WAAQb,GAAmB,CAAEvqH,QAAS,WAAsC,OAAO,IAAI0pN,GAAiBh7F,GAAS,IAAWA,GAAS,MAAe3E,MAAO2/F,GAAkBl/F,WAAY,SAN7Nk/F,IAiEM,GAAA,WAWF,SAAA,EAAYa,EAAen6B,EAAOo6B,EAAOn6B,EAAS5kB,EAASg/C,EAAqBrpH,EAAWyC,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACvFn5G,KAAK6/N,cAAgBA,EACrB7/N,KAAK0lM,MAAQA,EACb1lM,KAAK8/N,MAAQA,EACb9/N,KAAK2lM,QAAUA,EACf3lM,KAAK+gL,QAAUA,EACf/gL,KAAK+/N,oBAAsBA,EAC3B//N,KAAK02G,UAAYA,EACjB12G,KAAKm5G,UAAYA,EACjBn5G,KAAKggO,iBAAmB,KACxBhgO,KAAKigO,eAAiB,IAAI,EAC1BjgO,KAAKkgO,aAAe,IAAI,EACxBlgO,KAAKmgO,aAAe,IAAI,EACxBngO,KAAKogO,iBAAmB,EAAapmG,MACrCh6H,KAAKqgO,sBAIJxsM,SAAAA,GAAAA,OAAU7zB,EAAKigO,eAAe/3N,KAAK2rB,IAIpC7zB,KAAKo/N,eAAiB,IAAI,EACtBz5B,EAAQs4B,iBACRj+N,KAAKsgO,gBAAkB36B,EAAQs4B,eAC/Bj+N,KAAKsgO,gBAAgB1G,OAAO55N,OAEhCA,KAAKugO,kBAAoB56B,EAAQ66B,iBAgCrC,OA1BA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SA0BOpG,GAAAA,IAAAA,EAAAA,KAECqG,EAAezgO,KAAK6/N,cAAcjG,OAAOQ,GAiD7C,OA/CKp6N,KAAK0lM,MAAM6yB,eAAiBv4N,KAAK0gO,qBAClC1gO,KAAK0gO,oBAAoB/zN,YAAY3M,KAAK0lM,OAE1C1lM,KAAKugO,mBACLvgO,KAAKugO,kBAAkB3G,OAAO55N,MAElCA,KAAK2gO,uBACL3gO,KAAK4gO,qBACL5gO,KAAK6gO,0BACD7gO,KAAKsgO,iBACLtgO,KAAKsgO,gBAAgBv0G,SAKzB/rH,KAAK+gL,QAAQzC,SACR6S,eACA9sL,KAAKu5L,GAAK,IACVr9L,WAAU,WAKPP,EAAK05N,eACL15N,EAAKi9N,oBAIbj9N,KAAK8gO,sBAAAA,GACD9gO,KAAK2lM,QAAQw4B,aACbn+N,KAAK+gO,kBAEL/gO,KAAK2lM,QAAQu4B,YACbl+N,KAAKghO,eAAehhO,KAAK8/N,MAAO9/N,KAAK2lM,QAAQu4B,YAAAA,GAGjDl+N,KAAKkgO,aAAah4N,OAElBlI,KAAK+/N,oBAAoBh4N,IAAI/H,MAGzBA,KAAK2lM,QAAQ04B,qBAAuBr+N,KAAKm5G,YACzCn5G,KAAKogO,iBAAmBpgO,KAAKm5G,UAAU54G,WAAU,WAAA,OAG3CP,EAAK+kD,cAER07K,IAMX,CAAA,IAAA,SAAA,MAAA,WACI,GAAKzgO,KAAK05N,cAAV,CAGA15N,KAAKihO,iBAILjhO,KAAK8gO,sBAAAA,GACD9gO,KAAKugO,mBAAqBvgO,KAAKugO,kBAAkBjzE,QACjDttJ,KAAKugO,kBAAkBjzE,SAEvBttJ,KAAKsgO,iBACLtgO,KAAKsgO,gBAAgB/kB,UAGzB,IAAM2lB,EAAmBlhO,KAAK6/N,cAAcvyE,SAU5C,OARAttJ,KAAKmgO,aAAaj4N,OAElBlI,KAAK+/N,oBAAoBhqN,OAAO/V,MAGhCA,KAAKmhO,2BAELnhO,KAAKogO,iBAAiBz/N,cACfugO,KAMX,CAAA,IAAA,UAAA,MAAA,WAEI,IAAME,EAAaphO,KAAK05N,cACpB15N,KAAKugO,mBACLvgO,KAAKugO,kBAAkBx7K,UAE3B/kD,KAAKqhO,yBACLrhO,KAAKihO,iBACLjhO,KAAKogO,iBAAiBz/N,cACtBX,KAAK+/N,oBAAoBhqN,OAAO/V,MAChCA,KAAK6/N,cAAc96K,UACnB/kD,KAAKkgO,aAAa34N,WAClBvH,KAAKigO,eAAe14N,WACpBvH,KAAKo/N,eAAe73N,WAChBvH,KAAK0lM,OAAS1lM,KAAK0lM,MAAMv4L,aACzBnN,KAAK0lM,MAAMv4L,WAAWC,YAAYpN,KAAK0lM,OACvC1lM,KAAK0lM,MAAQ,MAEjB1lM,KAAK0gO,oBAAsB1gO,KAAK8/N,MAAQ,KACpCsB,GACAphO,KAAKmgO,aAAaj4N,OAEtBlI,KAAKmgO,aAAa54N,aAMtB,CAAA,IAAA,cAAA,MAAA,WACI,OAAOvH,KAAK6/N,cAAcnG,gBAM9B,CAAA,IAAA,gBAAA,MAAA,WACI,OAAO15N,KAAKigO,eAAe9uC,iBAM/B,CAAA,IAAA,cAAA,MAAA,WACI,OAAOnxL,KAAKkgO,aAAa/uC,iBAM7B,CAAA,IAAA,cAAA,MAAA,WACI,OAAOnxL,KAAKmgO,aAAahvC,iBAM7B,CAAA,IAAA,gBAAA,MAAA,WACI,OAAOnxL,KAAKo/N,eAAejuC,iBAM/B,CAAA,IAAA,YAAA,MAAA,WACI,OAAOnxL,KAAK2lM,UAMhB,CAAA,IAAA,iBAAA,MAAA,WACQ3lM,KAAKugO,mBACLvgO,KAAKugO,kBAAkB/hO,UAQ/B,CAAA,IAAA,yBAAA,MAAA,SAAuB8iO,GACfA,IAAathO,KAAKugO,oBAGlBvgO,KAAKugO,mBACLvgO,KAAKugO,kBAAkBx7K,UAE3B/kD,KAAKugO,kBAAoBe,EACrBthO,KAAK05N,gBACL4H,EAAS1H,OAAO55N,MAChBA,KAAKi9N,qBAQb,CAAA,IAAA,aAAA,MAAA,SAAWsE,GACPvhO,KAAK2lM,QAAU5/L,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIjpH,KAAK2lM,SAAU47B,GAC9DvhO,KAAK4gO,uBAOT,CAAA,IAAA,eAAA,MAAA,SAAaloC,GACT14L,KAAK2lM,QAAU5/L,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIjpH,KAAK2lM,SAAU,CAAElhG,UAAWi0F,IAC3E14L,KAAK6gO,4BAOT,CAAA,IAAA,gBAAA,MAAA,SAAchyN,GACN7O,KAAK8/N,OACL9/N,KAAKghO,eAAehhO,KAAK8/N,MAAOjxN,GAAAA,KAQxC,CAAA,IAAA,mBAAA,MAAA,SAAiBA,GACT7O,KAAK8/N,OACL9/N,KAAKghO,eAAehhO,KAAK8/N,MAAOjxN,GAAAA,KAOxC,CAAA,IAAA,eAAA,MAAA,WAEI,IAAM41F,EAAYzkG,KAAK2lM,QAAQlhG,UAC/B,OAAKA,EAGuB,iBAAdA,EAAyBA,EAAYA,EAAUh/F,MAFlD,QASf,CAAA,IAAA,uBAAA,MAAA,SAAqB67N,GACbA,IAAathO,KAAKsgO,kBAGtBtgO,KAAKqhO,yBACLrhO,KAAKsgO,gBAAkBgB,EACnBthO,KAAK05N,gBACL4H,EAAS1H,OAAO55N,MAChBshO,EAASv1G,aAQjB,CAAA,IAAA,0BAAA,MAAA,WACI/rH,KAAK0lM,MAAMh5L,aAAa,MAAO1M,KAAKutH,kBAOxC,CAAA,IAAA,qBAAA,MAAA,WACI,GAAKvtH,KAAK8/N,MAAV,CAIA,IAAMtzN,EAAQxM,KAAK8/N,MAAMtzN,MACzBA,EAAMkQ,MAAQg2M,GAAoB1yN,KAAK2lM,QAAQjpL,OAC/ClQ,EAAM+P,OAASm2M,GAAoB1yN,KAAK2lM,QAAQppL,QAChD/P,EAAMmkG,SAAW+hH,GAAoB1yN,KAAK2lM,QAAQh1F,UAClDnkG,EAAMk8M,UAAYgK,GAAoB1yN,KAAK2lM,QAAQ+iB,WACnDl8M,EAAMsrF,SAAW46H,GAAoB1yN,KAAK2lM,QAAQ7tG,UAClDtrF,EAAMyuF,UAAYy3H,GAAoB1yN,KAAK2lM,QAAQ1qG,cAQvD,CAAA,IAAA,uBAAA,MAAA,SAAqBumI,GACjBxhO,KAAK8/N,MAAMtzN,MAAMsjH,cAAgB0xG,EAAgB,OAAS,SAO9D,CAAA,IAAA,kBAAA,MAAA,WAAA,IAAA,EAAA,KAGIxhO,KAAKggO,iBAAmBhgO,KAAK02G,UAAUlsG,cAAc,OACrDxK,KAAKggO,iBAAiB56D,UAAUr9J,IAAI,wBAChC/H,KAAK2lM,QAAQy4B,eACbp+N,KAAKghO,eAAehhO,KAAKggO,iBAAkBhgO,KAAK2lM,QAAQy4B,eAAAA,GAIzCp+N,KAAK0lM,MAAoB,cAAE14L,aAAahN,KAAKggO,iBAAkBhgO,KAAK0lM,OAGvF1lM,KAAKggO,iBAAiBvsM,iBAAiB,QAASzzB,KAAKqgO,uBAEhB,oBAA1BxnM,sBACP74B,KAAK+gL,QAAQX,mBAAkB,WAI3BvnJ,uBAAsB,WAId74B,EAAKggO,kBACLhgO,EAAKggO,iBAAiB56D,UAAUr9J,IAvB3B,sCA6BjB/H,KAAKggO,iBAAiB56D,UAAUr9J,IA7Bf,kCAyCzB,CAAA,IAAA,uBAAA,MAAA,WACQ/H,KAAK0lM,MAAMxsD,aACQl5I,KAAK0lM,MAAiB,WAAE/4L,YAAY3M,KAAK0lM,SAOpE,CAAA,IAAA,iBAAA,MAAA,WAAA,IAOQlkB,EAPR,EAAA,KAEQigD,EAAmBzhO,KAAKggO,iBAC5B,GAAKyB,EAAL,CAMA,IAAIC,EAAe,SAAfA,IAKID,IACAA,EAAiB9tM,oBAAoB,QAAS3zB,EAAKqgO,uBACnDoB,EAAiB9tM,oBAAoB,gBAAiB+tM,GAClDD,EAAiBt0N,YACjBs0N,EAAiBt0N,WAAWC,YAAYq0N,IAM5CzhO,EAAKggO,kBAAoByB,IACzBzhO,EAAKggO,iBAAmB,MAExBhgO,EAAK2lM,QAAQy4B,eACbp+N,EAAKghO,eAAe,EAAuChhO,EAAK2lM,QAAQy4B,eAAAA,GAE5ExuN,aAAa4xK,IAEjBigD,EAAiBr8D,UAAUrvJ,OAAO,gCAClC/V,KAAK+gL,QAAQX,mBAAkB,WAI3B,EAAsC3sJ,iBAAiB,gBAAiBiuM,MAI5ED,EAAiBj1N,MAAMsjH,cAAgB,OAIvC0xD,EAAYxhL,KAAK+gL,QAAQX,mBAAkB,WAAA,OAGrC//K,WAAWqhO,EAAc,WAUnC,CAAA,IAAA,iBAAA,MAAA,SAAezgO,EAAS0gO,EAAYC,GAEhC,IAAMx8D,EAAYnkK,EAAQmkK,UAC1BqtD,GAAYkP,GAAYhqN,SAIxBkqN,SAAAA,GAGQA,IACAD,EAAQx8D,EAAUr9J,IAAI85N,GAAYz8D,EAAUrvJ,OAAO8rN,SAS/D,CAAA,IAAA,2BAAA,MAAA,WAAA,IAAA,EAAA,KAII7hO,KAAK+gL,QAAQX,mBAAkB,WAQ3B,IAAMnnK,EAAejZ,EAAK+gL,QAAQzC,SAC7B6S,eACA9sL,KAAKk6L,GAAUhqF,EAAMv0G,EAAKkgO,aAAclgO,EAAKmgO,gBAC7C5/N,WAAU,WAMNP,EAAK8/N,OAAU9/N,EAAK0lM,OAAwC,IAA/B1lM,EAAK8/N,MAAMl+L,SAAS5mC,SAC9CgF,EAAK8/N,OAAS9/N,EAAK2lM,QAAQu4B,YAC3Bl+N,EAAKghO,eAAehhO,EAAK8/N,MAAO9/N,EAAK2lM,QAAQu4B,YAAAA,GAE7Cl+N,EAAK0lM,OAAS1lM,EAAK0lM,MAAM6yB,gBACzBv4N,EAAK0gO,oBAAsB1gO,EAAK0lM,MAAM6yB,cACtCv4N,EAAK0gO,oBAAoBtzN,YAAYpN,EAAK0lM,QAE9CzsL,EAAatY,uBAU7B,CAAA,IAAA,yBAAA,MAAA,WAEI,IAAMs9N,EAAiBj+N,KAAKsgO,gBACxBrC,IACAA,EAAe1iB,UACX0iB,EAAe3wE,QACf2wE,EAAe3wE,YAAAA,CAAAA,IAAAA,iBAAAA,IAAAA,WAxevB,OAAOttJ,KAAK8/N,QAMhB,CAAA,IAAA,kBAAA,IAAA,WACI,OAAO9/N,KAAKggO,mBAQhB,CAAA,IAAA,cAAA,IAAA,WACI,OAAOhgO,KAAK0lM,UAShB,EAtEE,GA4pBAo8B,GAAiB,gBAQjB,GAAA,WAQF,SAAA,EAAYC,EAAanG,EAAgBllH,EAAW0gH,EAAW4K,GAAAA,gBAAAA,KAAAA,GAC3DhiO,KAAK47N,eAAiBA,EACtB57N,KAAK02G,UAAYA,EACjB12G,KAAKo3N,UAAYA,EACjBp3N,KAAKgiO,kBAAoBA,EAIzBhiO,KAAKiiO,qBAAuB,CAAEvlN,MAAO,EAAGH,OAAQ,GAIhDvc,KAAKkiO,WAAAA,EAILliO,KAAKmiO,UAAAA,EAILniO,KAAKoiO,gBAAAA,EAILpiO,KAAKqiO,wBAAAA,EAILriO,KAAKsiO,iBAAAA,EAILtiO,KAAKuiO,gBAAkB,EAIvBviO,KAAKwiO,aAAe,GAIpBxiO,KAAKyiO,oBAAsB,GAI3BziO,KAAK0iO,iBAAmB,IAAI,EAI5B1iO,KAAK2iO,oBAAsB,EAAa3oG,MAIxCh6H,KAAK4iO,SAAW,EAIhB5iO,KAAK6iO,SAAW,EAIhB7iO,KAAK8iO,qBAAuB,GAI5B9iO,KAAK+iO,gBAAkB/iO,KAAK0iO,iBAAiBvxC,eAC7CnxL,KAAKgjO,UAAUjB,GAcnB,OARA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAQOjF,GAAAA,IAAAA,EAAAA,KACH,GAAI98N,KAAK68N,aAAeC,IAAe98N,KAAK68N,YACxC,MAAMh3N,MAAM,4DAEhB7F,KAAKijO,qBACLnG,EAAWryF,YAAY26B,UAAUr9J,IAzGhB,+CA0GjB/H,KAAK68N,YAAcC,EACnB98N,KAAKkjO,aAAepG,EAAWryF,YAC/BzqI,KAAK8/N,MAAQhD,EAAWc,eACxB59N,KAAKi6N,aAAAA,EACLj6N,KAAKmjO,kBAAAA,EACLnjO,KAAKojO,cAAgB,KACrBpjO,KAAK2iO,oBAAoBhiO,cACzBX,KAAK2iO,oBAAsB3iO,KAAK47N,eAAehtH,SAASruG,WAAU,WAO9DP,EAAKmjO,kBAAAA,EACLnjO,EAAKxB,aAkBb,CAAA,IAAA,QAAA,MAAA,WAEI,IAAIwB,KAAKi6N,aAAgBj6N,KAAKo3N,UAAUvC,UAMxC,IAAK70N,KAAKmjO,kBAAoBnjO,KAAKsiO,iBAAmBtiO,KAAKojO,cACvDpjO,KAAKqjO,0BADT,CAIArjO,KAAKsjO,qBACLtjO,KAAKujO,6BACLvjO,KAAKwjO,0BAILxjO,KAAKyjO,cAAgBzjO,KAAK0jO,2BAC1B1jO,KAAK2jO,YAAc3jO,KAAK4jO,iBACxB5jO,KAAK6jO,aAAe7jO,KAAK8/N,MAAMroM,wBAE/B,IAUIqsM,EAhCR,EAsBUC,EAAa/jO,KAAK2jO,YAElBhG,EAAc39N,KAAK6jO,aAEnBG,EAAehkO,KAAKyjO,cAGpBQ,EAAe,GA7BzB,EAAA,2BAmCoBjkO,KAAKyiO,qBAnCzB,IAmCI,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAA0C,CAAA,IAAjCznM,EAAiC,EAAA,MAGlCoyC,EAAcptE,KAAKkkO,gBAAgBH,EAAY/oM,GAK/CmpM,EAAenkO,KAAKokO,iBAAiBh3J,EAAauwJ,EAAa3iM,GAG/DqpM,EAAarkO,KAAKskO,eAAeH,EAAcxG,EAAaqG,EAAchpM,GAE9E,GAAIqpM,EAAWE,2BAGX,OAFAvkO,KAAKkiO,WAAAA,OACLliO,KAAKwkO,eAAexpM,EAAKoyC,GAKzBptE,KAAKykO,8BAA8BJ,EAAYF,EAAcH,GAG7DC,EAAavjO,KAAK,CACdmmB,SAAUmU,EACVx4B,OAAQ4qE,EACRuwJ,YAAAA,EACA+G,gBAAiB1kO,KAAK2kO,0BAA0Bv3J,EAAapyC,OAOhE8oM,GAAYA,EAASO,WAAWO,YAAcP,EAAWO,eAC1Dd,EAAW,CAAEO,WAAAA,EAAYF,aAAAA,EAAc/2J,YAAAA,EAAavmD,SAAUmU,EAAK2iM,YAAAA,KAtE/E,MAAA,GAAA,EAAA,EAAA,GAAA,QAAA,EAAA,IA2EI,GAAIsG,EAAajpO,OAAQ,CAErB,IAFqB,EAEjB6pO,EAAU,KAEVC,GAAa,EAJI,EAAA,2BAKHb,GALG,IAKrB,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAgC,CAAA,IAArBc,EAAqB,EAAA,MAEtBC,EAAQD,EAAIL,gBAAgBhoN,MAAQqoN,EAAIL,gBAAgBnoN,QAAUwoN,EAAIl+M,SAASzS,QAAU,GAC3F4wN,EAAQF,IACRA,EAAYE,EACZH,EAAUE,IAVG,MAAA,GAAA,EAAA,EAAA,GAAA,QAAA,EAAA,IAerB,OAFA/kO,KAAKkiO,WAAAA,OACLliO,KAAKwkO,eAAe,EAA6B39M,SAAU,EAA6BrkB,QAK5F,GAAIxC,KAAKmiO,SAIL,OAFAniO,KAAKkiO,WAAAA,OACLliO,KAAKwkO,eAAe,EAA8B39M,SAAU,EAA8BumD,aAK9FptE,KAAKwkO,eAAe,EAA8B39M,SAAU,EAA8BumD,gBAK9F,CAAA,IAAA,SAAA,MAAA,WACIptE,KAAKsjO,qBACLtjO,KAAKojO,cAAgB,KACrBpjO,KAAKilO,oBAAsB,KAC3BjlO,KAAK2iO,oBAAoBhiO,gBAM7B,CAAA,IAAA,UAAA,MAAA,WACQX,KAAKi6N,cAKLj6N,KAAKkjO,cACLgC,GAAallO,KAAKkjO,aAAa12N,MAAO,CAClC2Y,IAAK,GACLD,KAAM,GACN2xC,MAAO,GACPD,OAAQ,GACRr6C,OAAQ,GACRG,MAAO,GACPyoN,WAAY,GACZC,eAAgB,KAGpBplO,KAAK8/N,OACL9/N,KAAKujO,6BAELvjO,KAAK68N,aACL78N,KAAK68N,YAAYpyF,YAAY26B,UAAUrvJ,OAtR1B,+CAwRjB/V,KAAKstJ,SACLttJ,KAAK0iO,iBAAiBn7N,WACtBvH,KAAK68N,YAAc78N,KAAKkjO,aAAe,KACvCljO,KAAKi6N,aAAAA,KAQT,CAAA,IAAA,sBAAA,MAAA,WACI,IAAKj6N,KAAKi6N,eAAiBj6N,KAAKo3N,WAAap3N,KAAKo3N,UAAUvC,WAAY,CACpE70N,KAAK2jO,YAAc3jO,KAAK4jO,iBACxB5jO,KAAK6jO,aAAe7jO,KAAK8/N,MAAMroM,wBAC/Bz3B,KAAKyjO,cAAgBzjO,KAAK0jO,2BAE1B,IAAM2B,EAAerlO,KAAKojO,eAAiBpjO,KAAKyiO,oBAAoB,GAE9Dr1J,EAAcptE,KAAKkkO,gBAAgBlkO,KAAK2jO,YAAa0B,GAC3DrlO,KAAKwkO,eAAea,EAAcj4J,MAY1C,CAAA,IAAA,2BAAA,MAAA,SAAyBk4J,GAErB,OADA,KAA0B9C,aAAe8C,EAClC,OASX,CAAA,IAAA,gBAAA,MAAA,SAAcC,GAQV,OAPA,KAA0B9C,oBAAsB8C,GAGyC,IAArFA,EAAU3jO,QAA2B,KAAwC,iBAC7E,KAA0BwhO,cAAgB,MAE9C,KAA0BH,qBACnB,OASX,CAAA,IAAA,qBAAA,MAAA,SAAmBuC,GAEf,OADA,KAA0BjD,gBAAkBiD,EACrC,OASX,CAAA,IAAA,yBAAA,MAAA,WAA4C,IAArBC,IAAqB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAExC,OADA,KAA0BpD,uBAAyBoD,EAC5C,OASX,CAAA,IAAA,oBAAA,MAAA,WAAkC,IAAhBC,IAAgB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAE9B,OADA,KAA0BtD,eAAiBsD,EACpC,OASX,CAAA,IAAA,WAAA,MAAA,WAAmB,IAAVC,IAAU,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAEf,OADA,KAA0BxD,SAAWwD,EAC9B,OAWX,CAAA,IAAA,qBAAA,MAAA,WAA8B,IAAXC,IAAW,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAE1B,OADA,KAA0BtD,gBAAkBsD,EACrC,OAYX,CAAA,IAAA,YAAA,MAAA,SAAUpjO,GAEN,OADA,KAA0BqjO,QAAUrjO,EAC7B,OASX,CAAA,IAAA,qBAAA,MAAA,SAAmBkX,GAEf,OADA,KAA0BkpN,SAAWlpN,EAC9B,OASX,CAAA,IAAA,qBAAA,MAAA,SAAmBA,GAEf,OADA,KAA0BmpN,SAAWnpN,EAC9B,OAaX,CAAA,IAAA,wBAAA,MAAA,SAAsBolB,GAElB,OADA,KAA0BgnM,yBAA2BhnM,EAC9C,OASX,CAAA,IAAA,kBAAA,MAAA,SAAgBilM,EAAY/oM,GAExB,IAAIxhC,EACJ,GAAmB,UAAfwhC,EAAIsuB,QAGJ9vD,EAAIuqO,EAAW7+M,KAAQ6+M,EAAWrnN,MAAQ,MAEzC,CAED,IAAMw5D,EAASl2E,KAAK+lO,SAAWhC,EAAWltK,MAAQktK,EAAW7+M,KAEvDkxD,EAAOp2E,KAAK+lO,SAAWhC,EAAW7+M,KAAO6+M,EAAWltK,MAC1Dr9D,EAAmB,SAAfwhC,EAAIsuB,QAAqB4sB,EAASE,EAU1C,MAAO,CAAE58E,EAAAA,EAAGC,EANO,UAAfuhC,EAAIuuB,QACAw6K,EAAW5+M,IAAO4+M,EAAWxnN,OAAS,EAGvB,OAAfye,EAAIuuB,QAAmBw6K,EAAW5+M,IAAM4+M,EAAWntK,UAa/D,CAAA,IAAA,mBAAA,MAAA,SAAiBwW,EAAauwJ,EAAa3iM,GAIvC,IAAIgrM,EAWAC,EAQJ,OAjBID,EADgB,UAAhBhrM,EAAIwjM,UACab,EAAYjhN,MAAQ,EAEf,UAAjBse,EAAIwjM,SACOx+N,KAAK+lO,UAAYpI,EAAYjhN,MAAQ,EAGrC1c,KAAK+lO,SAAW,GAAKpI,EAAYjhN,MAKjDupN,EADgB,UAAhBjrM,EAAIyjM,UACad,EAAYphN,OAAS,EAGN,OAAhBye,EAAIyjM,SAAoB,GAAKd,EAAYphN,OAGtD,CACH/iB,EAAG4zE,EAAY5zE,EAAIwsO,EACnBvsO,EAAG2zE,EAAY3zE,EAAIwsO,KAY3B,CAAA,IAAA,iBAAA,MAAA,SAAe9hN,EAAOu+B,EAAS+jC,EAAU5/D,GAAAA,IAC/BrtB,EAAS2qB,EAAX,EAAK1qB,EAAM0qB,EAAR,EAEH0yB,EAAU72C,KAAKkmO,WAAWr/M,EAAU,KAEpCiwB,EAAU92C,KAAKkmO,WAAWr/M,EAAU,KAEpCgwB,IACAr9C,GAAKq9C,GAELC,IACAr9C,GAAKq9C,GAIT,IAIIqvL,EAAc,EAAI1sO,EAElB2sO,EAAkB3sO,EAAIipD,EAAQnmC,OAAUkqE,EAASlqE,OAGjD8pN,EAAermO,KAAKsmO,mBAAmB5jL,EAAQhmC,MAThC,EAAIljB,EAEFA,EAAIkpD,EAAQhmC,MAAS+pE,EAAS/pE,OAS/C6pN,EAAgBvmO,KAAKsmO,mBAAmB5jL,EAAQnmC,OAAQ4pN,EAAaC,GAErExB,EAAcyB,EAAeE,EACjC,MAAO,CACH3B,YAAAA,EACAL,2BAA6B7hL,EAAQhmC,MAAQgmC,EAAQnmC,SAAYqoN,EACjE4B,yBAA0BD,IAAkB7jL,EAAQnmC,OACpDkqN,2BAA4BJ,GAAgB3jL,EAAQhmC,SAW5D,CAAA,IAAA,gCAAA,MAAA,SAA8BqoN,EAAK5gN,EAAOsiE,GACtC,GAAIzmF,KAAKqiO,uBAAwB,CAE7B,IAAMqE,EAAkBjgJ,EAAS7vB,OAASzyC,EAAM1qB,EAE1CktO,EAAiBlgJ,EAAS5vB,MAAQ1yC,EAAM3qB,EAExCkvN,EAAYke,GAAc5mO,KAAK68N,YAAYgK,YAAYne,WAEvD/3G,EAAWi2H,GAAc5mO,KAAK68N,YAAYgK,YAAYl2H,UAKtDm2H,EAAgB/B,EAAI0B,4BACT,MAAZ91H,GAAoBA,GAAYg2H,EACrC,OALoB5B,EAAIyB,0BACN,MAAb9d,GAAqBA,GAAage,IAIjBI,EAE1B,OAAA,IAcJ,CAAA,IAAA,uBAAA,MAAA,SAAqBx3N,EAAOozC,EAASm2K,GAIjC,GAAI74N,KAAKilO,qBAAuBjlO,KAAKsiO,gBACjC,MAAO,CACH9oO,EAAG8V,EAAM9V,EAAIwG,KAAKilO,oBAAoBzrO,EACtCC,EAAG6V,EAAM7V,EAAIuG,KAAKilO,oBAAoBxrO,GAI9C,IAaIstO,EAEAC,EAfEvgJ,EAAWzmF,KAAKyjO,cAIhBwD,EAAgBjkN,KAAKvI,IAAInL,EAAM9V,EAAIkpD,EAAQhmC,MAAQ+pE,EAAS5vB,MAAO,GAEnEqwK,EAAiBlkN,KAAKvI,IAAInL,EAAM7V,EAAIipD,EAAQnmC,OAASkqE,EAAS7vB,OAAQ,GAEtEuwK,EAAcnkN,KAAKvI,IAAIgsE,EAASthE,IAAM0zM,EAAe1zM,IAAM7V,EAAM7V,EAAG,GAEpE2tO,EAAepkN,KAAKvI,IAAIgsE,EAASvhE,KAAO2zM,EAAe3zM,KAAO5V,EAAM9V,EAAG,GAsB7E,OAZIutO,EADArkL,EAAQhmC,OAAS+pE,EAAS/pE,MAClB0qN,IAAiBH,EAGjB33N,EAAM9V,EAAIwG,KAAKuiO,gBAAmB97I,EAASvhE,KAAO2zM,EAAe3zM,KAAQ5V,EAAM9V,EAAI,EAG3FwtO,EADAtkL,EAAQnmC,QAAUkqE,EAASlqE,OACnB4qN,IAAgBD,EAGhB53N,EAAM7V,EAAIuG,KAAKuiO,gBAAmB97I,EAASthE,IAAM0zM,EAAe1zM,IAAO7V,EAAM7V,EAAI,EAE7FuG,KAAKilO,oBAAsB,CAAEzrO,EAAGutO,EAAOttO,EAAGutO,GACnC,CACHxtO,EAAG8V,EAAM9V,EAAIutO,EACbttO,EAAG6V,EAAM7V,EAAIutO,KAUrB,CAAA,IAAA,iBAAA,MAAA,SAAengN,EAAUumD,GAYrB,GAXAptE,KAAKqnO,oBAAoBxgN,GACzB7mB,KAAKsnO,yBAAyBl6J,EAAavmD,GAC3C7mB,KAAKunO,sBAAsBn6J,EAAavmD,GACpCA,EAASq3M,YACTl+N,KAAKwnO,iBAAiB3gN,EAASq3M,YAGnCl+N,KAAKojO,cAAgBv8M,EAIjB7mB,KAAK0iO,iBAAiBjoG,UAAUz/H,OAAQ,CAExC,IAAM4jO,EAA2B5+N,KAAKynO,uBAEhCC,EAAc,IAAIhJ,GAA+B73M,EAAU+3M,GACjE5+N,KAAK0iO,iBAAiBx6N,KAAKw/N,GAE/B1nO,KAAKmjO,kBAAAA,IAQT,CAAA,IAAA,sBAAA,MAAA,SAAoBt8M,GAChB,GAAK7mB,KAAK8lO,yBAAV,CAIA,IAEI6B,EAFE9/M,EAA8B7nB,KAAkB,aAAE4/N,iBAAiB5/N,KAAK8lO,0BAI1E8B,EAAU/gN,EAAS43M,SAEnBkJ,EADsB,WAAtB9gN,EAAS23M,SACC,SAELx+N,KAAK+lO,SACsB,UAAtBl/M,EAAS23M,SAAuB,QAAU,OAGpB,UAAtB33M,EAAS23M,SAAuB,OAAS,QAEvD,IAAK,IAAI7jO,EAAI,EAAGA,EAAIktB,EAAS7sB,OAAQL,IACjCktB,EAASltB,GAAG6R,MAAMq7N,gBAAlBhgN,GAAAA,OAAuC8/M,EAAvC9/M,KAAAA,OAAkD+/M,MAa1D,CAAA,IAAA,4BAAA,MAAA,SAA0BplO,EAAQqkB,GAE9B,IAIItK,EAEA4I,EAEAyxC,EAqCAl6C,EAEAwI,EAEA2xC,EAjDE4vB,EAAWzmF,KAAKyjO,cAEhBqE,EAAQ9nO,KAAK+lO,SAOnB,GAA0B,QAAtBl/M,EAAS43M,SAETt5M,EAAM3iB,EAAO/I,EACb8iB,EAASkqE,EAASlqE,OAAS4I,EAAMnlB,KAAKuiO,qBAErC,GAA0B,WAAtB17M,EAAS43M,SAId7nK,EAAS6vB,EAASlqE,OAAS/Z,EAAO/I,EAA2B,EAAvBuG,KAAKuiO,gBAC3ChmN,EAASkqE,EAASlqE,OAASq6C,EAAS52D,KAAKuiO,oBAExC,CAMD,IAAMwF,EAAiC/kN,KAAKxI,IAAIisE,EAAS7vB,OAASp0D,EAAO/I,EAAIgtF,EAASthE,IAAK3iB,EAAO/I,GAE5FuuO,EAAiBhoO,KAAKiiO,qBAAqB1lN,OACjDA,EAA0C,EAAjCwrN,EACT5iN,EAAM3iB,EAAO/I,EAAIsuO,EACbxrN,EAASyrN,IAAmBhoO,KAAKmjO,mBAAqBnjO,KAAKoiO,iBAC3Dj9M,EAAM3iB,EAAO/I,EAAKuuO,EAAiB,GAiB3C,GAR2D,QAAtBnhN,EAAS23M,WAAuBsJ,GAC1C,UAAtBjhN,EAAS23M,UAAwBsJ,EAQlCjxK,EAAQ4vB,EAAS/pE,MAAQla,EAAOhJ,EAAIwG,KAAKuiO,gBACzC7lN,EAAQla,EAAOhJ,EAAIwG,KAAKuiO,qBAEvB,GAhBuD,UAAtB17M,EAAS23M,WAAyBsJ,GAC7C,QAAtBjhN,EAAS23M,UAAsBsJ,EAgBhC5iN,EAAO1iB,EAAOhJ,EACdkjB,EAAQ+pE,EAAS5vB,MAAQr0D,EAAOhJ,MAE/B,CAMD,IAAMuuO,EAAiC/kN,KAAKxI,IAAIisE,EAAS5vB,MAAQr0D,EAAOhJ,EAAIitF,EAASvhE,KAAM1iB,EAAOhJ,GAE5FkgG,EAAgB15F,KAAKiiO,qBAAqBvlN,MAChDA,EAAyC,EAAjCqrN,EACR7iN,EAAO1iB,EAAOhJ,EAAIuuO,EACdrrN,EAAQg9E,IAAkB15F,KAAKmjO,mBAAqBnjO,KAAKoiO,iBACzDl9M,EAAO1iB,EAAOhJ,EAAKkgG,EAAgB,GAG3C,MAAO,CAAEv0E,IAAK,EAA0BD,KAAM,EAA2B0xC,OAAQ,EAA6BC,MAAO,EAA4Bn6C,MAAAA,EAAOH,OAAAA,KAW5J,CAAA,IAAA,wBAAA,MAAA,SAAsB/Z,EAAQqkB,GAE1B,IAAM69M,EAAkB1kO,KAAK2kO,0BAA0BniO,EAAQqkB,GAG1D7mB,KAAKmjO,kBAAqBnjO,KAAKoiO,iBAChCsC,EAAgBnoN,OAASyG,KAAKxI,IAAIkqN,EAAgBnoN,OAAQvc,KAAKiiO,qBAAqB1lN,QACpFmoN,EAAgBhoN,MAAQsG,KAAKxI,IAAIkqN,EAAgBhoN,MAAO1c,KAAKiiO,qBAAqBvlN,QAGtF,IAAMiY,EAAS,GACf,GAAI30B,KAAKioO,oBACLtzM,EAAOxP,IAAMwP,EAAOzP,KAAO,IAC3ByP,EAAOiiC,OAASjiC,EAAOkiC,MAAQliC,EAAOsmE,UAAYtmE,EAAOmjE,SAAW,GACpEnjE,EAAOjY,MAAQiY,EAAOpY,OAAS,WAE9B,CAED,IAAM0+E,EAAYj7F,KAAK68N,YAAYgK,YAAY5rI,UAEzCnD,EAAW93F,KAAK68N,YAAYgK,YAAY/uI,SAC9CnjE,EAAOpY,OAASm2M,GAAoBgS,EAAgBnoN,QACpDoY,EAAOxP,IAAMutM,GAAoBgS,EAAgBv/M,KACjDwP,EAAOiiC,OAAS87J,GAAoBgS,EAAgB9tK,QACpDjiC,EAAOjY,MAAQg2M,GAAoBgS,EAAgBhoN,OACnDiY,EAAOzP,KAAOwtM,GAAoBgS,EAAgBx/M,MAClDyP,EAAOkiC,MAAQ67J,GAAoBgS,EAAgB7tK,OAG/CliC,EAAOwwM,WADe,WAAtBt+M,EAAS23M,SACW,SAGsB,QAAtB33M,EAAS23M,SAAqB,WAAa,aAG/D7pM,EAAOywM,eADe,WAAtBv+M,EAAS43M,SACe,SAGsB,WAAtB53M,EAAS43M,SAAwB,WAAa,aAEtExjI,IACAtmE,EAAOsmE,UAAYy3H,GAAoBz3H,IAEvCnD,IACAnjE,EAAOmjE,SAAW46H,GAAoB56H,IAG9C93F,KAAKiiO,qBAAuByC,EAC5BQ,GAAgCllO,KAAkB,aAAEwM,MAAOmoB,KAO/D,CAAA,IAAA,0BAAA,MAAA,WACIuwM,GAAgCllO,KAAkB,aAAEwM,MAAO,CACvD2Y,IAAK,IACLD,KAAM,IACN2xC,MAAO,IACPD,OAAQ,IACRr6C,OAAQ,GACRG,MAAO,GACPyoN,WAAY,GACZC,eAAgB,OAQxB,CAAA,IAAA,6BAAA,MAAA,WACIF,GAAallO,KAAK8/N,MAAMtzN,MAAO,CAC3B2Y,IAAK,GACLD,KAAM,GACN0xC,OAAQ,GACRC,MAAO,GACPhwC,SAAU,GACVhC,UAAW,OAUnB,CAAA,IAAA,2BAAA,MAAA,SAAyBuoD,EAAavmD,GAElC,IAAM8N,EAAS,GAETuzM,EAAmBloO,KAAKioO,oBAExBE,EAAwBnoO,KAAKqiO,uBAE7Bp5N,EAASjJ,KAAK68N,YAAYgK,YAChC,GAAIqB,EAAkB,CAElB,IAAMrP,EAAiB74N,KAAK47N,eAAe9C,4BAC3CoM,GAAavwM,EAAQ30B,KAAKooO,kBAAkBvhN,EAAUumD,EAAayrJ,IACnEqM,GAAavwM,EAAQ30B,KAAKqoO,kBAAkBxhN,EAAUumD,EAAayrJ,SAGnElkM,EAAO9N,SAAW,SAQtB,IAAIyhN,EAAkB,GAElBzxL,EAAU72C,KAAKkmO,WAAWr/M,EAAU,KAEpCiwB,EAAU92C,KAAKkmO,WAAWr/M,EAAU,KACpCgwB,IACAyxL,GAAAA,cAAAA,OAAiCzxL,EAAjCyxL,SAEAxxL,IACAwxL,GAAAA,cAAAA,OAAiCxxL,EAAjCwxL,QAEJ3zM,EAAO9P,UAAYyjN,EAAgBtyN,OAM/B/M,EAAOgyF,YACHitI,EACAvzM,EAAOsmE,UAAYy3H,GAAoBzpN,EAAOgyF,WAEzCktI,IACLxzM,EAAOsmE,UAAY,KAGvBhyF,EAAO6uF,WACHowI,EACAvzM,EAAOmjE,SAAW46H,GAAoBzpN,EAAO6uF,UAExCqwI,IACLxzM,EAAOmjE,SAAW,KAG1BotI,GAAallO,KAAK8/N,MAAMtzN,MAAOmoB,KAUnC,CAAA,IAAA,oBAAA,MAAA,SAAkB9N,EAAUumD,EAAayrJ,GAIrC,IAAIlkM,EAAS,CAAqBxP,IAAK,GAAIyxC,OAAQ,IAE/CutK,EAAenkO,KAAKokO,iBAAiBh3J,EAAaptE,KAAK6jO,aAAch9M,GACrE7mB,KAAKkiO,YACLiC,EAAenkO,KAAKuoO,qBAAqBpE,EAAcnkO,KAAK6jO,aAAchL,IAG9E,IAAI2P,EAAwBxoO,KAAKgiO,kBAAkByG,sBAAsBhxM,wBAAwBtS,IAkBjG,OAbAg/M,EAAa1qO,GAAK+uO,EAGQ,WAAtB3hN,EAAS43M,SAKT9pM,EAAOiiC,OAAPjiC,GAAAA,OAD0C30B,KAAK02G,UAA0B,gBAAEjQ,cACtC09H,EAAa1qO,EAAIuG,KAAK6jO,aAAatnN,QAAxEoY,MAGAA,EAAOxP,IAAMutM,GAAoByR,EAAa1qO,GAE3Ck7B,IAUX,CAAA,IAAA,oBAAA,MAAA,SAAkB9N,EAAUumD,EAAayrJ,GAIrC,IAAIlkM,EAAS,CAAqBzP,KAAM,GAAI2xC,MAAO,IAE/CstK,EAAenkO,KAAKokO,iBAAiBh3J,EAAaptE,KAAK6jO,aAAch9M,GA0BzE,OAzBI7mB,KAAKkiO,YACLiC,EAAenkO,KAAKuoO,qBAAqBpE,EAAcnkO,KAAK6jO,aAAchL,IAgB9C,WAR5B74N,KAAK+lO,SAC2C,QAAtBl/M,EAAS23M,SAAqB,OAAS,QAGjB,QAAtB33M,EAAS23M,SAAqB,QAAU,QAOlE7pM,EAAOkiC,MAAPliC,GAAAA,OADyC30B,KAAK02G,UAA0B,gBAAElQ,aACvC29H,EAAa3qO,EAAIwG,KAAK6jO,aAAannN,OAAtEiY,MAGAA,EAAOzP,KAAOwtM,GAAoByR,EAAa3qO,GAE5Cm7B,IAQX,CAAA,IAAA,uBAAA,MAAA,WAGI,IAAM+zM,EAAe1oO,KAAK4jO,iBAEpB+E,EAAgB3oO,KAAK8/N,MAAMroM,wBAK3BmxM,EAAwB5oO,KAAKwiO,aAAaztN,KAIhD0iN,SAAAA,GAAAA,OACWA,EAAWa,gBAAgB/tD,cAAc9yI,2BAEpD,MAAO,CACHoxM,gBAAiBxL,GAA4BqL,EAAcE,GAC3DE,oBAAqB3L,GAA6BuL,EAAcE,GAChEG,iBAAkB1L,GAA4BsL,EAAeC,GAC7DI,qBAAsB7L,GAA6BwL,EAAeC,MAU1E,CAAA,IAAA,qBAAA,MAAA,SAAmB5tO,GAAWiuO,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,GAC1B,OAAOA,EAAU/kO,QAAO,SAKvB0uE,EAAcs2J,GALS,OAMbt2J,EAAe5vD,KAAKvI,IAAIyuN,EAAiB,KAChDluO,KAOR,CAAA,IAAA,2BAAA,MAAA,WAOI,IAAM0hB,EAA2B1c,KAAK02G,UAA0B,gBAAElQ,YAE5DjqF,EAA4Bvc,KAAK02G,UAA0B,gBAAEjQ,aAE7DoyH,EAAiB74N,KAAK47N,eAAe9C,4BAC3C,MAAO,CACH3zM,IAAK0zM,EAAe1zM,IAAMnlB,KAAKuiO,gBAC/Br9M,KAAM2zM,EAAe3zM,KAAOllB,KAAKuiO,gBACjC1rK,MAAOgiK,EAAe3zM,KAAOxI,EAAQ1c,KAAKuiO,gBAC1C3rK,OAAQiiK,EAAe1zM,IAAM5I,EAASvc,KAAKuiO,gBAC3C7lN,MAAOA,EAAS,EAAI1c,KAAKuiO,gBACzBhmN,OAAQA,EAAU,EAAIvc,KAAKuiO,mBAQnC,CAAA,IAAA,SAAA,MAAA,WACI,MAA2C,QAApCviO,KAAK68N,YAAYtvG,iBAO5B,CAAA,IAAA,oBAAA,MAAA,WACI,OAAQvtH,KAAKqiO,wBAA0BriO,KAAKkiO,YAShD,CAAA,IAAA,aAAA,MAAA,SAAWr7M,EAAUsiN,GACjB,MAAa,MAATA,EAG2B,MAApBtiN,EAASgwB,QAAkB72C,KAAK4iO,SAAW/7M,EAASgwB,QAEpC,MAApBhwB,EAASiwB,QAAkB92C,KAAK6iO,SAAWh8M,EAASiwB,UAO/D,CAAA,IAAA,qBAAA,MAAA,WACI,IAAK92C,KAAKyiO,oBAAoBznO,OAC1B,MAAM6K,MAAM,yEAIhB7F,KAAKyiO,oBAAoB9qN,SAIzB4sB,SAAAA,GACIu6L,GAA2B,UAAWv6L,EAAK+kB,SAC3Cu1K,GAAyB,UAAWt6L,EAAKglB,SACzCu1K,GAA2B,WAAYv6L,EAAKi6L,UAC5CK,GAAyB,WAAYt6L,EAAKk6L,eASlD,CAAA,IAAA,mBAAA,MAAA,SAAiBkD,GAAAA,IAAAA,EAAAA,KACT3hO,KAAK8/N,OACLrN,GAAYkP,GAAYhqN,SAIxBkqN,SAAAA,GACqB,KAAbA,IAAoE,IAAjD7hO,EAAK8iO,qBAAqBlhO,QAAQigO,KACrD7hO,EAAK8iO,qBAAqBpiO,KAAKmhO,GAC/B7hO,EAAK8/N,MAAM16D,UAAUr9J,IAAI85N,SAUzC,CAAA,IAAA,qBAAA,MAAA,WAAA,IAAA,EAAA,KACQ7hO,KAAK8/N,QACL9/N,KAAK8iO,qBAAqBnrN,SAI1BkqN,SAAAA,GACI7hO,EAAK8/N,MAAM16D,UAAUrvJ,OAAO8rN,MAEhC7hO,KAAK8iO,qBAAuB,MAQpC,CAAA,IAAA,iBAAA,MAAA,WAEI,IAAMtgO,EAASxC,KAAK6lO,QACpB,GAAIrjO,aAAkB8nK,GAClB,OAAO9nK,EAAO+nK,cAAc9yI,wBAGhC,GAAIj1B,aAAkBovB,QAClB,OAAOpvB,EAAOi1B,wBAGlB,IAAM/a,EAAQla,EAAOka,OAAS,EAExBH,EAAS/Z,EAAO+Z,QAAU,EAEhC,MAAO,CACH4I,IAAK3iB,EAAO/I,EACZm9D,OAAQp0D,EAAO/I,EAAI8iB,EACnB2I,KAAM1iB,EAAOhJ,EACbq9D,MAAOr0D,EAAOhJ,EAAIkjB,EAClBH,OAAAA,EACAG,MAAAA,KAAAA,CAAAA,IAAAA,YAAAA,IAAAA,WAjmCJ,OAAO1c,KAAKyiO,wBAOhB,EAvFE,GAk+CN,SAASyC,GAAar9N,EAAazF,GAC/B,IAAK,IAAIlG,KAAOkG,EACRA,EAAO7D,eAAerC,KACtB2L,EAAY3L,GAAOkG,EAAOlG,IAGlC,OAAO2L,EAQX,SAAS++N,GAAc1rO,GACnB,GAAqB,iBAAVA,GAA+B,MAATA,EAAe,CAAA,IAAA,EAAA,eACrBA,EAAMsG,MAAMsgO,IADS,GACrCr8N,EADqC,EAAA,GAC9B2jO,EAD8B,EAAA,GAE5C,OAASA,GAAmB,OAAVA,EAAsC,KAApB7jN,WAAW9f,GAEnD,OAAOvK,GAAS,KAiBpB,IAunBMmuO,GApGAC,GAwWAC,GAhCAC,GAkqBAC,GA7/CAC,GAAAA,WAUF,SAAA,EAAYC,EAAWC,EAAY7H,EAAa8H,EAAepsO,EAAU0mH,EAAU2lH,GAAAA,gBAAAA,KAAAA,GAI/E9pO,KAAKyiO,oBAAsB,GAK3BziO,KAAKugO,kBAAoB,IAAI,GAAkCwB,EAAa8H,EAAepsO,EAAU0mH,EAAU2lH,GAC1GC,wBAAAA,GACAC,UAAAA,GACAC,mBAAmB,GACxBjqO,KAAKkqO,qBAAqBP,EAAWC,GA4BzC,OAtBA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAsBO9M,GACH98N,KAAK68N,YAAcC,EACnB98N,KAAKugO,kBAAkB3G,OAAOkD,GAC1B98N,KAAKmqO,aACLrN,EAAWsN,aAAapqO,KAAKmqO,YAC7BnqO,KAAKmqO,WAAa,QAO1B,CAAA,IAAA,UAAA,MAAA,WACInqO,KAAKugO,kBAAkBx7K,YAM3B,CAAA,IAAA,SAAA,MAAA,WACI/kD,KAAKugO,kBAAkBjzE,WAQ3B,CAAA,IAAA,QAAA,MAAA,WACIttJ,KAAKugO,kBAAkB/hO,UAQ3B,CAAA,IAAA,0BAAA,MAAA,WACIwB,KAAKugO,kBAAkB8C,wBAS3B,CAAA,IAAA,2BAAA,MAAA,SAAyBiC,GACrBtlO,KAAKugO,kBAAkB8J,yBAAyB/E,KAYpD,CAAA,IAAA,uBAAA,MAAA,SAAqBqE,EAAWC,EAAY/yL,EAASC,GAEjD,IAAMjwB,EAAW,IAAI03M,GAAuBoL,EAAWC,EAAY/yL,EAASC,GAG5E,OAFA,KAA0B2rL,oBAAoB/hO,KAAKmmB,GACnD,KAA0B05M,kBAAkB+J,cAAc,KAA0B7H,qBAC7E,OASX,CAAA,IAAA,gBAAA,MAAA,SAAc/pC,GAUV,OANI,KAA0BmkC,YAC1B,KAA0BA,YAAYuN,aAAa1xC,GAGnD,KAA0ByxC,WAAazxC,EAEpC,OASX,CAAA,IAAA,cAAA,MAAA,SAAYh/K,GAER,OADA,KAA0B6mN,kBAAkBgK,mBAAmB7wN,GACxD,OASX,CAAA,IAAA,cAAA,MAAA,SAAYA,GAER,OADA,KAA0B6mN,kBAAkBiK,mBAAmB9wN,GACxD,OAWX,CAAA,IAAA,qBAAA,MAAA,SAAmBksN,GAEf,OADA,KAA0BrF,kBAAkBkK,mBAAmB7E,GACxD,OASX,CAAA,IAAA,gBAAA,MAAA,SAAcL,GAGV,OAFA,KAA0B9C,oBAAsB8C,EAAUjoO,QAC1D,KAA0BijO,kBAAkB+J,cAAc,KAA0B7H,qBAC7E,OASX,CAAA,IAAA,YAAA,MAAA,SAAUjgO,GAEN,OADA,KAA0B+9N,kBAAkByC,UAAUxgO,GAC/C,OAAA,CAAA,IAAA,SAAA,IAAA,WAnKP,MAA2C,QAApCxC,KAAK68N,YAAYtvG,iBAM5B,CAAA,IAAA,mBAAA,IAAA,WACI,OAAOvtH,KAAKugO,kBAAkBwC,kBAMlC,CAAA,IAAA,YAAA,IAAA,WACI,OAAO/iO,KAAKyiO,wBAOhB,EAnDEiH,GAoPAgB,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACI1qO,KAAK2qO,aAAe,SACpB3qO,KAAK4qO,WAAa,GAClB5qO,KAAK6qO,cAAgB,GACrB7qO,KAAK8qO,YAAc,GACnB9qO,KAAK+qO,aAAe,GACpB/qO,KAAKgrO,YAAc,GACnBhrO,KAAKirO,gBAAkB,GACvBjrO,KAAKkrO,OAAS,GACdlrO,KAAKmrO,QAAU,GA+MI,OAzMvB,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOrO,GAEH,IAAM7zN,EAAS6zN,EAAW+J,YAC1B7mO,KAAK68N,YAAcC,EACf98N,KAAKkrO,SAAWjiO,EAAOyT,OACvBogN,EAAWsO,WAAW,CAAE1uN,MAAO1c,KAAKkrO,SAEpClrO,KAAKmrO,UAAYliO,EAAOsT,QACxBugN,EAAWsO,WAAW,CAAE7uN,OAAQvc,KAAKmrO,UAEzCrO,EAAWryF,YAAY26B,UAAUr9J,IAjCpB,8BAkCb/H,KAAKi6N,aAAAA,IAST,CAAA,IAAA,MAAA,MAAA,WAAY,IAARx0N,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAIR,OAHA,KAA0BolO,cAAgB,GAC1C,KAA0BD,WAAanlO,EACvC,KAA0BulO,YAAc,aACjC,OASX,CAAA,IAAA,OAAA,MAAA,WAAa,IAARvlO,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAIT,OAHA,KAA0BslO,aAAe,GACzC,KAA0BD,YAAcrlO,EACxC,KAA0BwlO,gBAAkB,aACrC,OASX,CAAA,IAAA,SAAA,MAAA,WAAe,IAARxlO,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAIX,OAHA,KAA0BmlO,WAAa,GACvC,KAA0BC,cAAgBplO,EAC1C,KAA0BulO,YAAc,WACjC,OASX,CAAA,IAAA,QAAA,MAAA,WAAc,IAARvlO,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAIV,OAHA,KAA0BqlO,YAAc,GACxC,KAA0BC,aAAetlO,EACzC,KAA0BwlO,gBAAkB,WACrC,OAWX,CAAA,IAAA,QAAA,MAAA,WAAc,IAARxlO,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAOV,OANI,KAA0Bo3N,YAC1B,KAA0BA,YAAYuO,WAAW,CAAE1uN,MAAOjX,IAG1D,KAA0BylO,OAASzlO,EAEhC,OAWX,CAAA,IAAA,SAAA,MAAA,WAAe,IAARA,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAOX,OANI,KAA0Bo3N,YAC1B,KAA0BA,YAAYuO,WAAW,CAAE7uN,OAAQ9W,IAG3D,KAA0B0lO,QAAU1lO,EAEjC,OAWX,CAAA,IAAA,qBAAA,MAAA,WAA4B,IAATiU,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAGxB,OAFA,KAA0BwL,KAAKxL,GAC/B,KAA0BuxN,gBAAkB,SACrC,OAWX,CAAA,IAAA,mBAAA,MAAA,WAA0B,IAATvxN,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAGtB,OAFA,KAA0ByL,IAAIzL,GAC9B,KAA0BsxN,YAAc,SACjC,OAOX,CAAA,IAAA,QAAA,MAAA,WAII,GAAKhrO,KAAK68N,aAAgB78N,KAAK68N,YAAYnD,cAA3C,CAIM/kM,IAAAA,EAAS30B,KAAK68N,YAAYe,eAAepxN,MAEzC6+N,EAAerrO,KAAK68N,YAAYpyF,YAAYj+H,MAE5CvD,EAASjJ,KAAK68N,YAAYgK,YACxBnqN,EAAuCzT,EAAzC,MAASsT,EAAgCtT,EAAlC,OAAU6uF,EAAwB7uF,EAA1B,SAAYgyF,EAAchyF,EAAhB,UAEzBqiO,IAAuC,SAAV5uN,GAA8B,UAAVA,GACjDo7E,GAAyB,SAAbA,GAAoC,UAAbA,GAEnCyzI,IAAsC,SAAXhvN,GAAgC,UAAXA,GAChD0+E,GAA2B,SAAdA,GAAsC,UAAdA,GAC3CtmE,EAAO9N,SAAW7mB,KAAK2qO,aACvBh2M,EAAOi0J,WAAa0iD,EAA4B,IAAMtrO,KAAK8qO,YAC3Dn2M,EAAO62M,UAAYD,EAA0B,IAAMvrO,KAAK4qO,WACxDj2M,EAAO82M,aAAezrO,KAAK6qO,cAC3Bl2M,EAAO+2M,YAAc1rO,KAAK+qO,aACtBO,EACAD,EAAajG,eAAiB,aAEA,WAAzBplO,KAAKirO,gBACVI,EAAajG,eAAiB,SAEkB,QAA3CplO,KAAK68N,YAAYgK,YAAYpiI,UAKL,eAAzBzkG,KAAKirO,gBACLI,EAAajG,eAAiB,WAEA,aAAzBplO,KAAKirO,kBACVI,EAAajG,eAAiB,cAIlCiG,EAAajG,eAAiBplO,KAAKirO,gBAEvCI,EAAalG,WAAaoG,EAA0B,aAAevrO,KAAKgrO,eAO5E,CAAA,IAAA,UAAA,MAAA,WACI,IAAIhrO,KAAKi6N,aAAgBj6N,KAAK68N,YAA9B,CAIA,IAAMloM,EAAS30B,KAAK68N,YAAYe,eAAepxN,MAEzCjD,EAASvJ,KAAK68N,YAAYpyF,YAE1B4gG,EAAe9hO,EAAOiD,MAC5BjD,EAAO67J,UAAUrvJ,OA5NJ,8BA6Nbs1N,EAAajG,eAAiBiG,EAAalG,WAAaxwM,EAAO62M,UAC3D72M,EAAO82M,aAAe92M,EAAOi0J,WAAaj0J,EAAO+2M,YAAc/2M,EAAO9N,SAAW,GACrF7mB,KAAK68N,YAAc,KACnB78N,KAAKi6N,aAAAA,OAAc,EAzNrByQ,GAyNqB,KAsErBpB,GAAAA,WAOF,SAAA,EAAY1N,EAAgBllH,EAAW0gH,EAAW4K,GAAAA,gBAAAA,KAAAA,GAC9ChiO,KAAK47N,eAAiBA,EACtB57N,KAAK02G,UAAYA,EACjB12G,KAAKo3N,UAAYA,EACjBp3N,KAAKgiO,kBAAoBA,EA2BsFA,OArBnH,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WACI,OAAO,IAAI0I,KAWf,CAAA,IAAA,cAAA,MAAA,SAAYn8E,EAAYo7E,EAAWC,GAC/B,OAAO,IAAIF,GAA0BC,EAAWC,EAAYr7E,EAAYvuJ,KAAK47N,eAAgB57N,KAAK02G,UAAW12G,KAAKo3N,UAAWp3N,KAAKgiO,qBAOtI,CAAA,IAAA,sBAAA,MAAA,SAAoBx/N,GAChB,OAAO,IAAI,GAAkCA,EAAQxC,KAAK47N,eAAgB57N,KAAK02G,UAAW12G,KAAKo3N,UAAWp3N,KAAKgiO,uBAAAA,EAtCjHsH,IAyCiB1mG,UAAO,SAAwC5oI,GAAK,OAAO,IAAKA,GAAKsvO,IAAwB,GAAgB,IAAuB,GAAgB,IAAW,GAAgB,IAAkB,GAAgB,MAQrNA,GAAuB5oG,WAAQb,GAAmB,CAAEvqH,QAAS,WAA4C,OAAO,IAAIg0N,GAAuBtlG,GAAS,IAAgBA,GAAS,IAAWA,GAAS,IAAWA,GAAS,MAAuB3E,MAAOiqG,GAAwBxpG,WAAY,SAR1SwpG,IAgDIqC,GAAe,EAAA,KAWbtC,GAAAA,WAaF,SAAA,EAAYuC,EAAkB5J,EAAmBt8C,EAA2BmmD,EAAkB9L,EAAqBv7C,EAAWzD,EAASrqE,EAAWo1H,EAAiB3yH,GAAAA,gBAAAA,KAAAA,GAC/Jn5G,KAAK4rO,iBAAmBA,EACxB5rO,KAAKgiO,kBAAoBA,EACzBhiO,KAAK0lL,0BAA4BA,EACjC1lL,KAAK6rO,iBAAmBA,EACxB7rO,KAAK+/N,oBAAsBA,EAC3B//N,KAAKwkL,UAAYA,EACjBxkL,KAAK+gL,QAAUA,EACf/gL,KAAK02G,UAAYA,EACjB12G,KAAK8rO,gBAAkBA,EACvB9rO,KAAKm5G,UAAYA,EAiEmFzC,OA1DxG,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOztG,GAEH,IAAMysB,EAAO11B,KAAK+rO,qBAEZC,EAAOhsO,KAAKisO,mBAAmBv2M,GAE/Bw2M,EAAelsO,KAAKmsO,oBAAoBH,GAExCI,EAAgB,IAAIpO,GAAc/0N,GAExC,OADAmjO,EAAc3nI,UAAY2nI,EAAc3nI,WAAazkG,KAAK8rO,gBAAgBrmO,MACnE,IAAI,GAAWymO,EAAcx2M,EAAMs2M,EAAMI,EAAepsO,KAAK+gL,QAAS/gL,KAAK+/N,oBAAqB//N,KAAK02G,UAAW12G,KAAKm5G,aAOhI,CAAA,IAAA,WAAA,MAAA,WACI,OAAOn5G,KAAK6rO,mBAQhB,CAAA,IAAA,qBAAA,MAAA,SAAmBn2M,GAEf,IAAMs2M,EAAOhsO,KAAK02G,UAAUlsG,cAAc,OAI1C,OAHAwhO,EAAKv6N,GAALu6N,eAAAA,OAAyBL,MACzBK,EAAK5mE,UAAUr9J,IAAI,oBACnB2tB,EAAK/oB,YAAYq/N,GACVA,IAQX,CAAA,IAAA,qBAAA,MAAA,WAEI,IAAMt2M,EAAO11B,KAAK02G,UAAUlsG,cAAc,OAE1C,OADAxK,KAAKgiO,kBAAkByG,sBAAsB97N,YAAY+oB,GAClDA,IAQX,CAAA,IAAA,sBAAA,MAAA,SAAoBs2M,GAMhB,OAHKhsO,KAAKotJ,UACNptJ,KAAKotJ,QAAUptJ,KAAKwkL,UAAU3hK,IAAI,KAE/B,IAAI63M,GAAgBsR,EAAMhsO,KAAK0lL,0BAA2B1lL,KAAKotJ,QAASptJ,KAAKwkL,UAAWxkL,KAAK02G,eAAAA,EAxFtG2yH,IA2FEzmG,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAKqvO,IAAS,GAAgB,IAAwB,GAAgB,IAAmB,GAAgB,IAAkC,GAAgB,IAAyB,GAAgB,IAA4B,GAAgB,IAAkB,GAAgB,IAAgB,GAAgB,IAAW,GAAgB,IAAwB,GAAgB,GAAiB,KAC/bA,GAAQ3oG,WAAQ,GAA0B,CAAErB,MAAOgqG,GAAS/zN,QAAS+zN,GAAQzmG,YAD7EymG,IA0FMgD,GAAsB,CACxB,CACI/iL,QAAS,QACTC,QAAS,SACTi1K,SAAU,QACVC,SAAU,OAEd,CACIn1K,QAAS,QACTC,QAAS,MACTi1K,SAAU,QACVC,SAAU,UAEd,CACIn1K,QAAS,MACTC,QAAS,MACTi1K,SAAU,MACVC,SAAU,UAEd,CACIn1K,QAAS,MACTC,QAAS,SACTi1K,SAAU,MACVC,SAAU,QAOZ6N,GAAwC,IAAIvpG,GAAe,yCA9BjE,KA+CMymG,GAIF,SAAA,EAAYj7E,GAAAA,gBAAAA,KAAAA,GACRvuJ,KAAKuuJ,WAAaA,IAGT3rB,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKwvO,IAAkB,GAAyB,MAC3HA,GAAiBpnG,UAAO,GAAyB,CAAEj3H,KAAMq+N,GAAkB9qM,UAAW,CAAC,CAAC,GAAI,qBAAsB,IAAK,CAAC,GAAI,iBAAkB,IAAK,CAAC,GAAI,mBAAoB,KAAMioG,SAAU,CAAC,sBAD7L6iG,IAAAA,KAwBMD,GAAAA,WASF,SAAA,EAAYgD,EAAUx9E,EAAa+qE,EAAkB0S,EAAuBC,GAAAA,gBAAAA,KAAAA,GACxEzsO,KAAKusO,SAAWA,EAChBvsO,KAAKysO,KAAOA,EACZzsO,KAAK0sO,cAAAA,EACL1sO,KAAK2sO,eAAAA,EACL3sO,KAAKoiO,gBAAAA,EACLpiO,KAAK4sO,qBAAAA,EACL5sO,KAAK6sO,OAAAA,EACL7sO,KAAK8sO,sBAAwB,EAAa9yG,MAI1Ch6H,KAAK+sO,eAAiB,EAItB/sO,KAAKiC,MAAAA,EAILjC,KAAKgtO,cAAgB,IAAI,GAIzBhtO,KAAKitO,eAAiB,IAAI,GAI1BjtO,KAAK45N,OAAS,IAAI,GAIlB55N,KAAKstJ,OAAS,IAAI,GAIlBttJ,KAAKktO,eAAiB,IAAI,GAC1BltO,KAAKmtO,gBAAkB,IAAIpT,GAAehrE,EAAa+qE,GACvD95N,KAAKotO,uBAAyBZ,EAC9BxsO,KAAKi+N,eAAiBj+N,KAAKotO,yBAqG/B,OA/FA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WAgGQptO,KAAK68N,aACL78N,KAAK68N,YAAY93K,UAErB/kD,KAAK8sO,sBAAsBnsO,gBAM/B,CAAA,IAAA,cAAA,MAAA,SAAY+2K,GACJ13K,KAAKqtO,YACLrtO,KAAKstO,wBAAwBttO,KAAKqtO,WAClCrtO,KAAK68N,YAAYuO,WAAW,CACxB1uN,MAAO1c,KAAK0c,MACZi0F,SAAU3wG,KAAK2wG,SACfp0F,OAAQvc,KAAKuc,OACbmsM,UAAW1oN,KAAK0oN,YAEhBhxC,EAAgB,QAAK13K,KAAKiC,MAC1BjC,KAAKqtO,UAAU7uO,SAGnBk5K,EAAc,OACd13K,KAAKiC,KAAOjC,KAAKutO,iBAAmBvtO,KAAKwtO,oBAQjD,CAAA,IAAA,iBAAA,MAAA,WAAA,IAAA,EAAA,KACSxtO,KAAKulO,WAAcvlO,KAAKulO,UAAUvqO,SACnCgF,KAAKulO,UAAY8G,IAErBrsO,KAAK68N,YAAc78N,KAAKusO,SAAS1lO,OAAO7G,KAAKytO,gBAC7CztO,KAAK68N,YAAY6Q,gBAAgBntO,WAIhCszB,SAAAA,GACG7zB,EAAKktO,eAAehlO,KAAK2rB,GDj+ItB,KCk+ICA,EAAMk4E,SAAuB0vH,GAAe5nM,KAC5CA,EAAMqoC,iBACNl8D,EAAKwtO,uBASjB,CAAA,IAAA,eAAA,MAAA,WAEI,IAAMhN,EAAmBxgO,KAAKqtO,UAC1BrtO,KAAKwgO,kBAAoBxgO,KAAK2tO,0BAE5BvB,EAAgB,IAAIpO,GAAc,CACpCv5H,UAAWzkG,KAAKysO,KAChBjM,iBAAAA,EACAvC,eAAgBj+N,KAAKi+N,eACrBE,YAAan+N,KAAKm+N,cAoBtB,OAlBIn+N,KAAK0c,OAAwB,IAAf1c,KAAK0c,SACnB0vN,EAAc1vN,MAAQ1c,KAAK0c,QAE3B1c,KAAKuc,QAA0B,IAAhBvc,KAAKuc,UACpB6vN,EAAc7vN,OAASvc,KAAKuc,SAE5Bvc,KAAK2wG,UAA8B,IAAlB3wG,KAAK2wG,YACtBy7H,EAAcz7H,SAAW3wG,KAAK2wG,WAE9B3wG,KAAK0oN,WAAgC,IAAnB1oN,KAAK0oN,aACvB0jB,EAAc1jB,UAAY1oN,KAAK0oN,WAE/B1oN,KAAKo+N,gBACLgO,EAAchO,cAAgBp+N,KAAKo+N,eAEnCp+N,KAAKk+N,aACLkO,EAAclO,WAAal+N,KAAKk+N,YAE7BkO,IAQX,CAAA,IAAA,0BAAA,MAAA,SAAwB5L,GAAAA,IAAAA,EAAAA,KAEd+E,EAAYvlO,KAAKulO,UAAUxwN,KAIjC64N,SAAAA,GAAAA,MAAmB,CACftkL,QAASskL,EAAgBtkL,QACzBC,QAASqkL,EAAgBrkL,QACzBi1K,SAAUoP,EAAgBpP,SAC1BC,SAAUmP,EAAgBnP,SAC1B5nL,QAAS+2L,EAAgB/2L,SAAW72C,EAAK62C,QACzCC,QAAS82L,EAAgB92L,SAAW92C,EAAK82C,QACzConL,WAAY0P,EAAgB1P,iBAAAA,MAEhC,OAAOsC,EACFwC,UAAUhjO,KAAKwC,OAAO+rJ,YACtB+7E,cAAc/E,GACdwE,uBAAuB/pO,KAAKylO,oBAC5BuE,SAAShqO,KAAKU,MACdmtO,kBAAkB7tO,KAAK0lO,eACvBuE,mBAAmBjqO,KAAK+sO,gBACxBtC,mBAAmBzqO,KAAK8tO,cACxBC,sBAAsB/tO,KAAKguO,2BAOpC,CAAA,IAAA,0BAAA,MAAA,WAAA,IAAA,EAAA,KAEU1M,EAAWthO,KAAKusO,SAAS1lN,WAAWonN,oBAAoBjuO,KAAKwC,OAAO+rJ,YAO1E,OANAvuJ,KAAKstO,wBAAwBhM,GAC7BA,EAASyB,gBAAgBxiO,WAIzBmG,SAAAA,GAAAA,OAAK1G,EAAKitO,eAAe/+G,KAAKxnH,MACvB46N,IAOX,CAAA,IAAA,iBAAA,MAAA,WAAA,IAAA,EAAA,KACSthO,KAAK68N,YAKN78N,KAAK68N,YAAYgK,YAAY1I,YAAcn+N,KAAKm+N,YAJhDn+N,KAAKkuO,iBAMJluO,KAAK68N,YAAYnD,gBAClB15N,KAAK68N,YAAYjD,OAAO55N,KAAKmtO,iBAC7BntO,KAAK45N,OAAO1rG,QAEZluH,KAAKm+N,YACLn+N,KAAK8sO,sBAAwB9sO,KAAK68N,YAAYmQ,gBAAgBzsO,WAI9DszB,SAAAA,GACI7zB,EAAKgtO,cAAc9+G,KAAKr6F,MAI5B7zB,KAAK8sO,sBAAsBnsO,gBAQnC,CAAA,IAAA,iBAAA,MAAA,WACQX,KAAK68N,cACL78N,KAAK68N,YAAYvvE,SACjBttJ,KAAKstJ,OAAOp/B,QAEhBluH,KAAK8sO,sBAAsBnsO,gBAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WA3Qf,OAAOX,KAAK4iO,UAK5B,IAAA,SAAY/rL,GACR72C,KAAK4iO,SAAW/rL,EACZ72C,KAAKqtO,WACLrtO,KAAKstO,wBAAwBttO,KAAKqtO,aAO1C,CAAA,IAAA,UAAA,IAAA,WAAgB,OAAOrtO,KAAK6iO,UAK5B,IAAA,SAAY/rL,GACR92C,KAAK6iO,SAAW/rL,EACZ92C,KAAKqtO,WACLrtO,KAAKstO,wBAAwBttO,KAAKqtO,aAO1C,CAAA,IAAA,cAAA,IAAA,WAAoB,OAAOrtO,KAAK0sO,cAKhC,IAAA,SAAgBjnO,GAASzF,KAAK0sO,aAAepa,GAAsB7sN,KAKnE,CAAA,IAAA,eAAA,IAAA,WAAqB,OAAOzF,KAAK2sO,eAKjC,IAAA,SAAiBlnO,GAASzF,KAAK2sO,cAAgBra,GAAsB7sN,KAKrE,CAAA,IAAA,qBAAA,IAAA,WAA2B,OAAOzF,KAAK4sO,qBAKvC,IAAA,SAAuBnnO,GACnBzF,KAAK4sO,oBAAsBta,GAAsB7sN,KAMrD,CAAA,IAAA,gBAAA,IAAA,WAAsB,OAAOzF,KAAKoiO,gBAKlC,IAAA,SAAkB38N,GAASzF,KAAKoiO,eAAiB9P,GAAsB7sN,KAKvE,CAAA,IAAA,OAAA,IAAA,WAAa,OAAOzF,KAAK6sO,OAKzB,IAAA,SAASpnO,GAASzF,KAAK6sO,MAAQva,GAAsB7sN,KAKrD,CAAA,IAAA,aAAA,IAAA,WACI,OAAOzF,KAAK68N,cAMhB,CAAA,IAAA,MAAA,IAAA,WACI,OAAO78N,KAAKysO,KAAOzsO,KAAKysO,KAAKhnO,MAAQ,UAKzC,EArJE8jO,IAoUc3mG,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAKuvO,IAAqB,GAAyB,IAAU,GAAyB,IAAqB,GAAyB,IAA0B,GAAyB+C,IAAwC,GAAyB,GAAuB,KAChW/C,GAAoBnnG,UAAO,GAAyB,CAAEj3H,KAAMo+N,GAAqB7qM,UAAW,CAAC,CAAC,GAAI,wBAAyB,IAAK,CAAC,GAAI,oBAAqB,IAAK,CAAC,GAAI,sBAAuB,KAAM+nG,OAAQ,CAAEsmG,eAAgB,CAAC,oCAAqC,kBAAmB9qO,KAAM,CAAC,0BAA2B,QAASg8N,eAAgB,CAAC,oCAAqC,kBAAmBpnL,QAAS,CAAC,6BAA8B,WAAYC,QAAS,CAAC,6BAA8B,WAAYqnL,YAAa,CAAC,iCAAkC,eAAgB2P,aAAc,CAAC,kCAAmC,gBAAiBrI,mBAAoB,CAAC,wCAAyC,sBAAuBC,cAAe,CAAC,mCAAoC,iBAAkBhlO,KAAM,CAAC,0BAA2B,QAAS6kO,UAAW,CAAC,+BAAgC,aAAc/iO,OAAQ,CAAC,4BAA6B,UAAWg+N,iBAAkB,CAAC,sCAAuC,oBAAqB9jN,MAAO,CAAC,2BAA4B,SAAUH,OAAQ,CAAC,4BAA6B,UAAWo0F,SAAU,CAAC,8BAA+B,YAAa+3G,UAAW,CAAC,+BAAgC,aAAc0V,cAAe,CAAC,mCAAoC,iBAAkBF,WAAY,CAAC,gCAAiC,cAAe8P,wBAAyB,CAAC,uCAAwC,4BAA8BtnG,QAAS,CAAEsmG,cAAe,gBAAiBC,eAAgB,iBAAkBrT,OAAQ,SAAUtsE,OAAQ,SAAU4/E,eAAgB,kBAAoBvmG,SAAU,CAAC,uBAAwBrrH,SAAU,CAAC,MADzmDiuN,IAmTM4E,GAAiD,CACnD9qG,QAASipG,GACTj2E,KAAM,CAAC,IACPD,WAbJ,SAAgE1zG,GAC5D,OAAO,WAAA,OAGDA,EAAQkpL,iBAAiB7N,gBAMnC,KAWM0L,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEQjnG,UAAO,GAAwB,CAAEr3H,KAAMs+N,KACrDA,GAAc9oG,UAAO,GAAwB,CAAErrH,QAAS,SAA+Btb,GAAK,OAAO,IAAKA,GAAKyvO,KAAqBzpG,UAAW,CACrI,GACAmuG,IACDluG,QAAS,CAAC,CAAC,GAAY,GAAc,IAAkB,MAJ9DwpG,ICr8JO,SAAS2E,GAAata,GAAqB,IAAZz3F,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAC9C,OAAQj6H,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAI61N,GAAqBva,EAASz3F,KAErE,IAAMgyG,GAAAA,WACF,SAAA,EAAYva,EAASz3F,GAAAA,gBAAAA,KAAAA,GACjBr8H,KAAK8zN,QAAUA,EACf9zN,KAAKq8H,UAAYA,EAGiEA,OADtF,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKl0H,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAuB4H,EAAYnI,KAAK8zN,QAAS9zN,KAAKq8H,gBAAAA,EANpFgyG,GASA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYxmO,EAAaisN,EAASz3F,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC9BjC,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDisN,QAAUA,EACf9zN,EAAKq8H,UAAYA,EACjBr8H,EAAKsuO,sBAAwB,KAC7BtuO,EAAKuuO,UAAY,KACjBvuO,EAAKiuL,UAAAA,EANyB5xD,EAgCG,OAxBrC,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM52H,GACFzF,KAAKwuO,gBACLxuO,KAAKuuO,UAAY9oO,EACjBzF,KAAKiuL,UAAAA,EACLjuL,KAAK+H,IAAI/H,KAAKsuO,sBAAwBtuO,KAAKq8H,UAAUvB,SAAS2zG,GAAczuO,KAAK8zN,QAAS9zN,SAE9F,CAAA,IAAA,YAAA,MAAA,WACIA,KAAK0uO,gBACL1uO,KAAK6H,YAAYN,aAErB,CAAA,IAAA,gBAAA,MAAA,WAEI,GADAvH,KAAKwuO,gBACDxuO,KAAKiuL,SAAU,CAAA,IACPsgD,EAAcvuO,KAAhB,UACNA,KAAKuuO,UAAY,KACjBvuO,KAAKiuL,UAAAA,EACLjuL,KAAK6H,YAAYK,KAAKqmO,MAG9B,CAAA,IAAA,gBAAA,MAAA,WACI,IAAMD,EAAwBtuO,KAAKsuO,sBACL,OAA1BA,IACAtuO,KAAK+V,OAAOu4N,GACZA,EAAsB3tO,cACtBX,KAAKsuO,sBAAwB,UAAA,EAjCnC,CAA+B,GAqCrC,SAASG,GAAatmO,GAClBA,EAAWumO,gBAAXvmO,ICmREwmO,GA7JAC,GAzIAC,GAlBAC,GDqCF3mO,KCrCE2mO,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAM+EpqO,OAN/EoqO,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,SAKKpqO,GACH,MAAmC,oBAArBqqO,iBAAmC,KAAO,IAAIA,iBAAiBrqO,OAAAA,EAN/EoqO,IASkBlsG,UAAO,SAAyC5oI,GAAK,OAAO,IAAKA,GAAK80O,KAC3EA,GAAwBpuG,WAAQb,GAAmB,CAAEvqH,QAAS,WAA6C,OAAO,IAAIw5N,IAA8BzvG,MAAOyvG,GAAyBhvG,WAAY,SADnNgvG,IAAAA,KASMD,GAAAA,WAIF,SAAA,EAAYG,GAAAA,gBAAAA,KAAAA,GACRhvO,KAAKgvO,yBAA2BA,EAIhChvO,KAAKivO,kBAAoB,IAAIn7E,IAiGK7yJ,OA5FtC,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WAAA,IAAA,EAAA,KACIjB,KAAKivO,kBAAkBt3N,SAAQ,SAK9BH,EAAGvW,GAL2B,OAKfjB,EAAKkvO,iBAAiBjuO,QAM1C,CAAA,IAAA,UAAA,MAAA,SAAQ2xN,GAAAA,IAAAA,EAAAA,KAEE3xN,EAAU0xN,GAAcC,GAC9B,OAAO,IAAI,GAIVr5F,SAAAA,GAEG,IAEMtgH,EAFSjZ,EAAKmvO,gBAAgBluO,GAERV,UAAUg5H,GACtC,OAAO,WAIHtgH,EAAatY,cACbX,EAAKovO,kBAAkBnuO,SAWnC,CAAA,IAAA,kBAAA,MAAA,SAAgBA,GACZ,GAAKjB,KAAKivO,kBAAkBl5E,IAAI90J,GAmBTjB,KAAKivO,kBAAkBpsN,IAAI5hB,GAAWizH,YAnBnB,CAEtC,IAAM6oG,EAAS,IAAI,EAEbxjG,EAAWv5H,KAAKgvO,yBAAyBnoO,QAI/CwoO,SAAAA,GAAAA,OAAatS,EAAO70N,KAAKmnO,MACrB91G,GACAA,EAASp5G,QAAQlf,EAAS,CACtBquO,eAAAA,EACAC,WAAAA,EACAC,SAAAA,IAGRxvO,KAAKivO,kBAAkBjtN,IAAI/gB,EAAS,CAAEs4H,SAAAA,EAAUwjG,OAAAA,EAAQ7oG,MAAO,IAKnE,OAA0Bl0H,KAAKivO,kBAAkBpsN,IAAI5hB,GAAW87N,SASpE,CAAA,IAAA,oBAAA,MAAA,SAAkB97N,GACVjB,KAAKivO,kBAAkBl5E,IAAI90J,KACRjB,KAAKivO,kBAAkBpsN,IAAI5hB,GAAWizH,QACjCl0H,KAAKivO,kBAAkBpsN,IAAI5hB,GAAWizH,OAC1Dl0H,KAAKkvO,iBAAiBjuO,MAUlC,CAAA,IAAA,mBAAA,MAAA,SAAiBA,GACb,GAAIjB,KAAKivO,kBAAkBl5E,IAAI90J,GAAU,CAAA,IAAA,EACWjB,KAAKivO,kBAAkBpsN,IAAI5hB,GAAnEs4H,EAD6B,EAC/B,SAAYwjG,EADmB,EACrB,OACZxjG,GACAA,EAASk2G,aAEb1S,EAAOx1N,WACPvH,KAAKivO,kBAALjvO,OAA8BiB,QAAAA,EA1GpC4tO,IA8GUjsG,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAK60O,IAAiB,GAAgB,MAK5FA,GAAgBnuG,WAAQb,GAAmB,CAAEvqH,QAAS,WAAqC,OAAO,IAAIu5N,GAAgB7qG,GAAS,MAA8B3E,MAAOwvG,GAAiB/uG,WAAY,SALpN+uG,IAAAA,KA2BMD,GAAAA,WAMF,SAAA,EAAYc,EAAkBn/B,EAAaxvB,GAAAA,gBAAAA,KAAAA,GACvC/gL,KAAK0vO,iBAAmBA,EACxB1vO,KAAKuwM,YAAcA,EACnBvwM,KAAK+gL,QAAUA,EAIf/gL,KAAK6zB,MAAQ,IAAI,GACjB7zB,KAAK2vO,WAAAA,EACL3vO,KAAK4vO,qBAAuB,KAgChC,OAzBA,aAAA,EAAA,CAAA,CAAA,IAAA,qBAAA,MAAA,WA0BS5vO,KAAK4vO,sBAAyB5vO,KAAKwxM,UACpCxxM,KAAKuY,eAMb,CAAA,IAAA,cAAA,MAAA,WACIvY,KAAKwJ,iBAMT,CAAA,IAAA,aAAA,MAAA,WAAA,IAAA,EAAA,KACIxJ,KAAKwJ,eAEL,IAAMuzN,EAAS/8N,KAAK0vO,iBAAiBvvN,QAAQngB,KAAKuwM,aAKlDvwM,KAAK+gL,QAAQX,mBAAkB,WAI3BpgL,EAAK4vO,sBACA5vO,EAAK6vO,SAAW9S,EAAO14N,KAAK+pO,GAAapuO,EAAK6vO,WAAa9S,GAAQx8N,UAAUP,EAAK6zB,YAO/F,CAAA,IAAA,eAAA,MAAA,WACQ7zB,KAAK4vO,sBACL5vO,KAAK4vO,qBAAqBjvO,gBAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WA9DjB,OAAOX,KAAK2vO,WAK7B,IAAA,SAAalqO,GACTzF,KAAK2vO,UAAYrd,GAAsB7sN,GACvCzF,KAAK2vO,UAAY3vO,KAAKwJ,eAAiBxJ,KAAKuY,eAMhD,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOvY,KAAK8vO,WAK7B,IAAA,SAAarqO,GACTzF,KAAK8vO,UAAYvd,GAAqB9sN,GACtCzF,KAAKuY,iBAKT,EA/CEq2N,IAwFYhsG,UAAO,SAAmC5oI,GAAK,OAAO,IAAKA,GAAK40O,IAAmB,GAAyB,IAAkB,GAAyB,IAAoB,GAAyB,MACtNA,GAAkBxsG,UAAO,GAAyB,CAAEj3H,KAAMyjO,GAAmBlwM,UAAW,CAAC,CAAC,GAAI,oBAAqB,KAAM+nG,OAAQ,CAAE+qE,SAAU,CAAC,4BAA6B,YAAaq+B,SAAU,YAAcnpG,QAAS,CAAE7yG,MAAO,qBAAuB8yG,SAAU,CAAC,uBADpQioG,IAAAA,KAqEMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEUnsG,UAAO,GAAwB,CAAEr3H,KAAMwjO,KACvDA,GAAgBhuG,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAK20O,KAAuB3uG,UAAW,CAAC,MADpJ2uG,ICxPA,SAASoB,GAAoB16M,EAAIU,GAE7B,OAAQV,EAAG6J,aAAanJ,IAAS,IAAIj2B,MAAM,SAAW,GA6C1D,IAgBMkwO,GAy2BAC,GAz3BFC,GAAS,EAKPC,GAAkB,IAAIr8E,IAKxBs8E,GAAoB,KAAxB,KAMMJ,GAAAA,WAIF,SAAA,EAAYt5H,GAAAA,gBAAAA,KAAAA,GACR12G,KAAK02G,UAAYA,EAkP0BijC,OAxO/C,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASlP,EAAarrI,GACbY,KAAKqwO,gBAAgB5lG,EAAarrI,KAGhB,iBAAZA,GAEPY,KAAKswO,cAAclxO,GACnB+wO,GAAgBnuN,IAAI5iB,EAAS,CAAEmxO,eAAgBnxO,EAASoxO,eAAgB,KAElEL,GAAgBp6E,IAAI32J,IAC1BY,KAAKywO,sBAAsBrxO,GAE1BY,KAAK0wO,6BAA6BjmG,EAAarrI,IAChDY,KAAK2wO,qBAAqBlmG,EAAarrI,MAS/C,CAAA,IAAA,oBAAA,MAAA,SAAkBqrI,EAAarrI,GAC3B,GAAKY,KAAK4wO,eAAenmG,GAAzB,CAQA,GALIzqI,KAAK0wO,6BAA6BjmG,EAAarrI,IAC/CY,KAAK6wO,wBAAwBpmG,EAAarrI,GAIvB,iBAAZA,EAAsB,CAE7B,IAAM0xO,EAAoBX,GAAgBttN,IAAIzjB,GAC1C0xO,GAA0D,IAArCA,EAAkBN,gBACvCxwO,KAAK+wO,sBAAsB3xO,GAG/BgxO,IAA6D,IAAxCA,GAAkBj7M,WAAWn6B,QAClDgF,KAAKgxO,8BAOb,CAAA,IAAA,cAAA,MAAA,WAGI,IADA,IAAMC,EAAoBjxO,KAAK02G,UAAUkpH,iBAAiB,0BACjDjlO,EAAI,EAAGA,EAAIs2O,EAAkBj2O,OAAQL,IAC1CqF,KAAKkxO,kCAAkCD,EAAkBt2O,IACzDs2O,EAAkBt2O,GAAGonC,gBAvFM,wBAyF3BquM,IACApwO,KAAKgxO,2BAETb,GAAgBhxL,UASpB,CAAA,IAAA,wBAAA,MAAA,SAAsB//C,GAElB,IAAMmxO,EAAiBvwO,KAAK02G,UAAUlsG,cAAc,OACpDxK,KAAKswO,cAAcC,GACnBA,EAAe3rM,YAAcxlC,EAC7BY,KAAKmxO,2BACL,GAAuCxkO,YAAY4jO,GACnDJ,GAAgBnuN,IAAI5iB,EAAS,CAAEmxO,eAAAA,EAAgBC,eAAgB,MAQnE,CAAA,IAAA,gBAAA,MAAA,SAAcvvO,GACLA,EAAQwQ,KACTxQ,EAAQwQ,GAARxQ,2BAAAA,OAA6CivO,SASrD,CAAA,IAAA,wBAAA,MAAA,SAAsB9wO,GAElB,IAAM0xO,EAAoBX,GAAgBttN,IAAIzjB,GAExCmxO,EAAiBO,GAAqBA,EAAkBP,eAC1DH,IAAqBG,GACrBH,GAAkBhjO,YAAYmjO,GAElCJ,GAAAA,OAAuB/wO,KAO3B,CAAA,IAAA,2BAAA,MAAA,WACI,IAAKgxO,GAAmB,CAEpB,IAAMgB,EAAuBpxO,KAAK02G,UAAUjgF,eA3J1B,qCAgKd26M,GACmBA,EAAgC,WAAEhkO,YAAYgkO,IAErEhB,GAAoBpwO,KAAK02G,UAAUlsG,cAAc,QAC/BiH,GApKA,oCAqKlB2+N,GAAkB1jO,aAAa,cAAe,QAC9C0jO,GAAkB5jO,MAAM+wB,QAAU,OAClCv9B,KAAK02G,UAAUprG,KAAKqB,YAAYyjO,OAQxC,CAAA,IAAA,2BAAA,MAAA,WACQA,IAAqBA,GAAkBjjO,aACvCijO,GAAkBjjO,WAAWC,YAAYgjO,IACzCA,GAAoB,QAS5B,CAAA,IAAA,oCAAA,MAAA,SAAkCnvO,GAG9B,IAAMowO,EAAuBtB,GAAoB9uO,EAAS,oBACrDiW,QAILzF,SAAAA,GAAAA,OAA+C,GAAzCA,EAAG7P,QA9LiB,8BA+L1BX,EAAQyL,aAAa,mBAAoB2kO,EAAqB3rO,KAAK,QAUvE,CAAA,IAAA,uBAAA,MAAA,SAAqBzE,EAAS7B,GAE1B,IA5RqBi2B,EAAIU,EAAMtkB,EAE7BklM,EA0RIm6B,EAAuCX,GAAgBttN,IAAIzjB,GA5R5Ci2B,EA+RDp0B,EA/RK80B,EA+RI,mBA/REtkB,EA+RkBq/N,EAAkBP,eAAe9+N,IA7RhFklM,EAAMo5B,GAAoB16M,EAAIU,IAC5B+9D,MAIRw9I,SAAAA,GAAAA,OAAcA,EAAWt7N,QAAUvE,EAAGuE,YAGtC2gM,EAAIj2M,KAAK+Q,EAAGuE,QACZqf,EAAG3oB,aAAaqpB,EAAM4gL,EAAIjxM,KApBT,OAySbzE,EAAQyL,aA1MuB,uBA0MsB,IACrDokO,EAAkBN,mBAUtB,CAAA,IAAA,0BAAA,MAAA,SAAwBvvO,EAAS7B,GAE7B,IAxRwBi2B,EAAIU,EAAMtkB,EAIhC8/N,EAoRIT,EAAuCX,GAAgBttN,IAAIzjB,GACjE0xO,EAAkBN,iBAzRMn7M,EA0RDp0B,EA1RK80B,EA0RI,mBA1REtkB,EA0RkBq/N,EAAkBP,eAAe9+N,IAtRnF8/N,EAFMxB,GAAoB16M,EAAIU,GAEZ7e,QAIxB27F,SAAAA,GAAAA,OAAOA,GAAOphG,EAAGuE,WACDhb,OACZq6B,EAAG3oB,aAAaqpB,EAAMw7M,EAAY7rO,KAxCrB,MA2Cb2vB,EAAG0M,gBAAgBhM,GA8QnB90B,EAAQ8gC,gBA1NuB,0BAmOnC,CAAA,IAAA,+BAAA,MAAA,SAA6B9gC,EAAS7B,GAElC,IAAMoyO,EAAezB,GAAoB9uO,EAAS,oBAE5C6vO,EAAoBX,GAAgBttN,IAAIzjB,GAExCqyO,EAAYX,GAAqBA,EAAkBP,eAAe9+N,GACxE,QAASggO,IAAiD,GAApCD,EAAa5vO,QAAQ6vO,KAS/C,CAAA,IAAA,kBAAA,MAAA,SAAgBxwO,EAAS7B,GACrB,IAAKY,KAAK4wO,eAAe3vO,GACrB,OAAA,EAEJ,GAAI7B,GAA8B,iBAAZA,EAIlB,OAAA,EAGJ,IAAMsyO,EAA4B,MAAXtyO,EAAkB,GAAK,GAAA,OAAGA,GAAU4W,OAErD27N,EAAY1wO,EAAQi+B,aAAa,cAGvC,SAAOwyM,GAAmBC,GAAaA,EAAU37N,SAAW07N,KAQhE,CAAA,IAAA,iBAAA,MAAA,SAAezwO,GACX,OAAOA,EAAQ00B,WAAa31B,KAAK02G,UAAUijC,iBAAAA,EAvP7Cq2F,IA0PQptG,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAKg2O,IAAe,GAAgB,MAKtFA,GAActvG,WAAQb,GAAmB,CAAEvqH,QAAS,WAAmC,OAAO,IAAI06N,GAAchsG,GAAS,MAAe3E,MAAO2wG,GAAelwG,WAAY,SAL7LkwG,IAgDM,GAAA,WAIF,SAAA,EAAY4B,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACR5xO,KAAK4xO,OAASA,EACd5xO,KAAK6xO,kBAAoB,EACzB7xO,KAAK8xO,YAAc,KACnB9xO,KAAK+xO,OAAAA,EACL/xO,KAAKgyO,iBAAmB,IAAI,EAC5BhyO,KAAKiyO,uBAAyB,EAAaj4G,MAC3Ch6H,KAAKkyO,WAAAA,EACLlyO,KAAKmyO,qBAAuB,GAK5BnyO,KAAKoyO,iBAIJlvO,SAAAA,GAAAA,OAASA,EAAKsuM,UAEfxxM,KAAKqyO,gBAAkB,GAKvBryO,KAAKsyO,OAAS,IAAI,EAIlBtyO,KAAK4uG,OAAS,IAAI,EAIdgjI,aAAkBp6D,IAClBo6D,EAAOl6D,QAAQn3K,WAIdimN,SAAAA,GACG,GAAIxmN,EAAK8xO,YAAa,CAElB,IAEM3hF,EAFYq2D,EAASvxL,UAEArzB,QAAQ5B,EAAK8xO,aACpC3hF,GAAY,GAAKA,IAAanwJ,EAAK6xO,mBACnC7xO,EAAK6xO,iBAAmB1hF,OA4N5C,OA9MA,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,SAAcuoB,GAEV,OADA,KAA0B05D,iBAAmB15D,EACtC,OAUX,CAAA,IAAA,WAAA,MAAA,WAAsB,IAAb65D,IAAa,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAElB,OADA,KAA0BR,MAAQQ,EAC3B,OASX,CAAA,IAAA,0BAAA,MAAA,WAAkC,IAAVp7C,IAAU,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAE9B,OADA,KAA0B+6C,UAAY/6C,EAC/B,OAUX,CAAA,IAAA,4BAAA,MAAA,SAA0B1yF,GAEtB,OADA,KAA0B+tI,YAAc/tI,EACjC,OAUX,CAAA,IAAA,0BAAA,MAAA,SAAwBj/F,GAEpB,OADA,KAA0B2sO,qBAAuB3sO,EAC1C,OASX,CAAA,IAAA,gBAAA,MAAA,WAAiC,IAAA,EAAA,KAAnBitO,EAAmB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,IAC7B,GAAI,KAA0Bb,OAAO52O,QAAU,KAA0B42O,OAAO99I,MAIhF5wF,SAAAA,GAAAA,MAAiC,mBAAlBA,EAAKwvO,YAChB,MAAM7sO,MAAM,gFAsChB,OApCA,KAA0BosO,uBAAuBtxO,cAIjD,KAA0BsxO,uBAAyB,KAA0BD,iBAAiB3tO,KAAKu6L,IAInG+zC,SAAAA,GAAAA,OAAU,EAA0BN,gBAAgB3xO,KAAKiyO,MAAWvE,GAAaqE,GAAmB,IAAO,WAAA,OAGrG,EAA0BJ,gBAAgBr3O,OAAS,KAAK+Z,GAAI,WAAA,OAG5D,EAA0Bs9N,gBAAgB3sO,KAAK,QAAOnF,WAI5DqyO,SAAAA,GAKI,IAHA,IAAM5pD,EAAQ,EAA0B6pD,iBAG/Bl4O,EAAI,EAAGA,EAAIquL,EAAMhuL,OAAS,EAAGL,IAAK,CAEvC,IAAMsmB,GAAS,EAA0B4wN,iBAAmBl3O,GAAKquL,EAAMhuL,OAEjEkI,EAAO8lL,EAAM/nK,GACnB,IAAK,EAA0BmxN,iBAAiBlvO,IACuC,IAAhEA,EAAc,WAAIgjB,cAAclQ,OAAOpU,QAAQgxO,GAAoB,CACtF,EAA0BE,cAAc7xN,GACxC,OAGR,EAA0BoxN,gBAAkB,MAEzC,OAMX,CAAA,IAAA,gBAAA,MAAA,SAAcnvO,GAEV,IAAM6pK,EAAgB/sK,KAAK6xO,iBAC3B7xO,KAAK+yO,iBAAiB7vO,GAClBlD,KAAK6xO,mBAAqB9kE,GAC1B/sK,KAAK4uG,OAAO1mG,KAAKlI,KAAK6xO,oBAQ9B,CAAA,IAAA,YAAA,MAAA,SAAUh+M,GAAAA,IAAAA,EAAAA,KAEAk4E,EAAUl4E,EAAMk4E,QAIhBinI,EAFY,CAAC,SAAU,UAAW,UAAW,YAEfC,OAIpCtX,SAAAA,GAAAA,OACY9nM,EAAM8nM,IAAa37N,EAAKmyO,qBAAqBvwO,QAAQ+5N,IAAa,KAE9E,OAAQ5vH,GACJ,KJ9mBA,EIgnBI,YADA/rG,KAAKsyO,OAAOpqO,OAEhB,KJ/kBO,GIglBH,GAAIlI,KAAKkyO,WAAac,EAAmB,CACrChzO,KAAKkzO,oBACL,MAGA,OAER,KJ3lBK,GI4lBD,GAAIlzO,KAAKkyO,WAAac,EAAmB,CACrChzO,KAAKmzO,wBACL,MAGA,OAER,KJjmBQ,GIkmBJ,GAAInzO,KAAKwyO,aAAeQ,EAAmB,CAClB,QAArBhzO,KAAKwyO,YAAwBxyO,KAAKmzO,wBAA0BnzO,KAAKkzO,oBACjE,MAGA,OAER,KJ7mBO,GI8mBH,GAAIlzO,KAAKwyO,aAAeQ,EAAmB,CAClB,QAArBhzO,KAAKwyO,YAAwBxyO,KAAKkzO,oBAAsBlzO,KAAKmzO,wBAC7D,MAGA,OAER,QAaI,aAZIH,GAAqBvX,GAAe5nM,EAAO,eAGvCA,EAAM33B,KAA4B,IAArB23B,EAAM33B,IAAIlB,OACvBgF,KAAKgyO,iBAAiB9pO,KAAK2rB,EAAM33B,IAAIk3O,sBAE/BrnI,GJ9kBpB,II8kBoCA,GJ5hBpC,II4hBsDA,GJ5mBnD,II4mBsEA,GJ1lBtE,KI2lBW/rG,KAAKgyO,iBAAiB9pO,KAAK7M,OAAOC,aAAaywG,MAO/D/rG,KAAKqyO,gBAAkB,GACvBx+M,EAAMqoC,mBAMV,CAAA,IAAA,WAAA,MAAA,WAeI,OAAOl8D,KAAKqyO,gBAAgBr3O,OAAS,IAMzC,CAAA,IAAA,qBAAA,MAAA,WACIgF,KAAKqzO,sBAAsB,EAAG,KAMlC,CAAA,IAAA,oBAAA,MAAA,WACIrzO,KAAKqzO,sBAAsBrzO,KAAK4xO,OAAO52O,OAAS,GAAI,KAMxD,CAAA,IAAA,oBAAA,MAAA,WACIgF,KAAK6xO,iBAAmB,EAAI7xO,KAAKszO,qBAAuBtzO,KAAKuzO,sBAAsB,KAMvF,CAAA,IAAA,wBAAA,MAAA,WACIvzO,KAAK6xO,iBAAmB,GAAK7xO,KAAK+xO,MAAQ/xO,KAAKwzO,oBACzCxzO,KAAKuzO,uBAAuB,KAMtC,CAAA,IAAA,mBAAA,MAAA,SAAiBrwO,GAEb,IAAMuwO,EAAYzzO,KAAK6yO,iBAEjB5xN,EAAwB,iBAAT/d,EAAoBA,EAAOuwO,EAAU7xO,QAAQsB,GAE5DwwO,EAAaD,EAAUxyN,GAE7BjhB,KAAK8xO,YAA4B,MAAd4B,EAAqB,KAAOA,EAC/C1zO,KAAK6xO,iBAAmB5wN,IAU5B,CAAA,IAAA,wBAAA,MAAA,SAAsB8xE,GAClB/yF,KAAK+xO,MAAQ/xO,KAAK2zO,qBAAqB5gJ,GAAS/yF,KAAK4zO,wBAAwB7gJ,KAUjF,CAAA,IAAA,uBAAA,MAAA,SAAqBA,GAGjB,IADA,IAAMi2F,EAAQhpL,KAAK6yO,iBACVl4O,EAAI,EAAGA,GAAKquL,EAAMhuL,OAAQL,IAAK,CAEpC,IAAMsmB,GAASjhB,KAAK6xO,iBAAoB9+I,EAAQp4F,EAAKquL,EAAMhuL,QAAUguL,EAAMhuL,OAG3E,IAAKgF,KAAKoyO,iBADGppD,EAAM/nK,IAGf,YADAjhB,KAAK8yO,cAAc7xN,MAa/B,CAAA,IAAA,0BAAA,MAAA,SAAwB8xE,GACpB/yF,KAAKqzO,sBAAsBrzO,KAAK6xO,iBAAmB9+I,EAAOA,KAW9D,CAAA,IAAA,wBAAA,MAAA,SAAsB9xE,EAAO4yN,GAEzB,IAAM7qD,EAAQhpL,KAAK6yO,iBACnB,GAAK7pD,EAAM/nK,GAAX,CAGA,KAAOjhB,KAAKoyO,iBAAiBppD,EAAM/nK,KAE/B,IAAK+nK,EADL/nK,GAAS4yN,GAEL,OAGR7zO,KAAK8yO,cAAc7xN,MAOvB,CAAA,IAAA,iBAAA,MAAA,WACI,OAAOjhB,KAAK4xO,kBAAkBp6D,GAAYx3K,KAAK4xO,OAAO38M,UAAYj1B,KAAK4xO,SAAAA,CAAAA,IAAAA,kBAAAA,IAAAA,WArIvE,OAAO5xO,KAAK6xO,mBAMhB,CAAA,IAAA,aAAA,IAAA,WACI,OAAO7xO,KAAK8xO,gBAMhB,EA5QE,GAyeAgC,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAWsBC,OAXtBD,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,gBAAAA,MAAAA,SAKY7yN,GACNjhB,KAAK0zO,YACL1zO,KAAK0zO,WAAWM,oBADhBh0O,KAAAA,gBAAAA,EAAAA,WAAAA,gBAAAA,MAAAA,KAAAA,KAGgBihB,GAChBjhB,KAAK0zO,YACL1zO,KAAK0zO,WAAWK,sBAAAA,EAXtBD,CAAmC,IAuCnCG,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GACF,SAAA,IAAA,IAAA,EAAA,OAAA,gBAAA,KAAA,IACI75G,EAAAA,EAAAA,MAAAA,KAAS17H,YACJmnO,QAAU,UAFnB,EAsBmCA,OAXnC,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SAAerjO,GAEX,OADA,KAA0BqjO,QAAUrjO,EAC7B,OAMX,CAAA,IAAA,gBAAA,MAAA,SAAcU,GACVk3H,KAAAA,gBAAAA,EAAAA,WAAAA,gBAAAA,MAAAA,KAAAA,KAAoBl3H,GAChBlD,KAAK0zO,YACL1zO,KAAK0zO,WAAW73K,MAAM77D,KAAK6lO,aAAAA,EAvBjCoO,CAAwB,IAAA,KA+CxBhE,GAAAA,WAIF,SAAA,EAAY7Y,GAAAA,gBAAAA,KAAAA,GACRp3N,KAAKo3N,UAAYA,EA0GqEn2N,OAlG1F,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWA,GAGP,OAAOA,EAAQ0gC,aAAa,cAWhC,CAAA,IAAA,YAAA,MAAA,SAAU1gC,GACN,OA2HR,SAAqBA,GAGjB,SAAUA,EAAQmP,aAAenP,EAAQizO,cACF,mBAA3BjzO,EAAQkzO,gBAAiClzO,EAAQkzO,iBAAiBn5O,QAJlF,CA3H2BiG,IAAqD,YAAzC60B,iBAAiB70B,GAASu8B,aAS7D,CAAA,IAAA,aAAA,MAAA,SAAWv8B,GAEP,IAAKjB,KAAKo3N,UAAUvC,UAChB,OAAA,EAGJ,IAmOWz1L,EAnOLg1M,EA+Fd,SAAyBl3O,GACrB,IACI,OAA0BA,EAAoB,aAElD,MAAO47I,IACH,OAAO,MALf,EAoImB15G,EAnOoCn+B,GAqOvCi2B,eAAiBkI,EAAKlI,cAAcrB,aAAe34B,QApO3D,GAAIk3O,EAAc,CAEd,IAAMC,EAAYD,GAAgBA,EAAap1M,SAAStwB,cAExD,IAAwC,IAApC4lO,GAAiBF,GACjB,OAAA,EAGJ,IAAKp0O,KAAKo3N,UAAUpC,OAASh1N,KAAKo3N,UAAUnC,SAAyB,WAAdof,EACnD,OAAA,EAGJ,IAAKr0O,KAAKo3N,UAAUpC,OAASh1N,KAAKo3N,UAAUnC,UAAYj1N,KAAKu0O,UAAUH,GACnE,OAAA,EAIR,IAAIp1M,EAAW/9B,EAAQ+9B,SAAStwB,cAE5B8lO,EAAgBF,GAAiBrzO,GACrC,GAAIA,EAAQ0gC,aAAa,mBACrB,OAA0B,IAAnB6yM,EAEX,GAAiB,WAAbx1M,EAGA,OAAA,EAEJ,GAAiB,UAAbA,EAAsB,CACtB,IAAK/9B,EAAQ0gC,aAAa,YAEtB,OAAA,EAEC,GAAI3hC,KAAKo3N,UAAUpC,MAEpB,OAAA,EAGR,GAAiB,UAAbh2L,EAAsB,CACtB,IAAK/9B,EAAQ0gC,aAAa,aAAe3hC,KAAKo3N,UAAUrC,QAEpD,OAAA,EAEC,GAAI/0N,KAAKo3N,UAAUpC,OAASh1N,KAAKo3N,UAAUjC,QAE5C,OAAA,EAGR,OAAiB,WAAbn2L,IAA0Bh/B,KAAKo3N,UAAUpC,QAASh1N,KAAKo3N,UAAUnC,WAKjEj1N,KAAKo3N,UAAUnC,QAAUj1N,KAAKo3N,UAAUlC,MA8IpD,SAAkCj0N,GAE9B,IAAI+9B,EAAW/9B,EAAQ+9B,SAAStwB,cAE5B+lO,EAAyB,UAAbz1M,GAAwB,EAA+B7zB,KACvE,MAAqB,SAAdspO,GACc,aAAdA,GACa,WAAbz1M,GACa,aAAbA,EARX,CA9IqF/9B,KAGtEA,EAAQyzO,UAAY,IAQ/B,CAAA,IAAA,cAAA,MAAA,SAAYzzO,GAGR,OAgJR,SAAgCA,GAE5B,OAlFJ,SAAuBA,GACnB,OAeJ,SAAwBA,GACpB,MAAyC,SAAlCA,EAAQ+9B,SAAStwB,cAD5B,CAf0BzN,IAA4B,UAAhBA,EAAQkK,KAD9C,CAkFsBlK,KA/FtB,SAA6BA,GAEzB,IAAI+9B,EAAW/9B,EAAQ+9B,SAAStwB,cAChC,MAAoB,UAAbswB,GACU,WAAbA,GACa,WAAbA,GACa,aAAbA,EANR,CAkG+B/9B,IA7E/B,SAA0BA,GACtB,OAeJ,SAAyBA,GACrB,MAAyC,KAAlCA,EAAQ+9B,SAAStwB,cAD5B,CAf2BzN,IAAYA,EAAQ0gC,aAAa,QAD5D,CA8EyB1gC,IACjBA,EAAQ0gC,aAAa,oBACrBgzM,GAAiB1zO,IARzB,CAhJsCA,KAAajB,KAAKywM,WAAWxvM,IAAYjB,KAAKu0O,UAAUtzO,OAAAA,EA/GxFgvO,IAkHertG,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKi2O,IAAsB,GAAgB,MAK3GA,GAAqBvvG,WAAQb,GAAmB,CAAEvqH,QAAS,WAA0C,OAAO,IAAI26N,GAAqBjsG,GAAS,MAAe3E,MAAO4wG,GAAsBnwG,WAAY,SALzNmwG,IA6FA,SAAS0E,GAAiB1zO,GACtB,IAAKA,EAAQ0gC,aAAa,kBAAA,IAAe1gC,EAAQyzO,SAC7C,OAAA,EAGJ,IAAIA,EAAWzzO,EAAQi+B,aAAa,YAEpC,MAAgB,UAAZw1M,MAGMA,GAAa1gO,MAAM3F,SAASqmO,EAAU,MAQpD,SAASJ,GAAiBrzO,GACtB,IAAK0zO,GAAiB1zO,GAClB,OAAO,KAIX,IAAMyzO,EAAWrmO,SAASpN,EAAQi+B,aAAa,aAAe,GAAI,IAClE,OAAOlrB,MAAM0gO,IAAa,EAAIA,EA0DlC,IAsYME,GAtYA,GAAA,WAQF,SAAA,EAAYl5J,EAAUm5J,EAAU9zD,EAASrqE,GAA0B,IAAA,EAAA,KAAfo+H,EAAe,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAAA,gBAAA,KAAA,GAC/D90O,KAAK07E,SAAWA,EAChB17E,KAAK60O,SAAWA,EAChB70O,KAAK+gL,QAAUA,EACf/gL,KAAK02G,UAAYA,EACjB12G,KAAK+0O,cAAAA,EAEL/0O,KAAKg1O,oBAAsB,WAAA,OAGrBh1O,EAAKi1O,4BACXj1O,KAAKk1O,kBAAoB,WAAA,OAGnBl1O,EAAKm1O,6BACXn1O,KAAKo1O,UAAAA,EACAN,GACD90O,KAAKq1O,gBAuBb,OAhBA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WAkBI,IAAMC,EAAct1O,KAAKu1O,aAEnBC,EAAYx1O,KAAKy1O,WACnBH,IACAA,EAAY3hN,oBAAoB,QAAS3zB,KAAKg1O,qBAC1CM,EAAYnoO,YACZmoO,EAAYnoO,WAAWC,YAAYkoO,IAGvCE,IACAA,EAAU7hN,oBAAoB,QAAS3zB,KAAKk1O,mBACxCM,EAAUroO,YACVqoO,EAAUroO,WAAWC,YAAYooO,IAGzCx1O,KAAKu1O,aAAev1O,KAAKy1O,WAAa,OAQ1C,CAAA,IAAA,gBAAA,MAAA,WAAA,IAAA,EAAA,KAEI,QAAIz1O,KAAK+0O,eAGT/0O,KAAK+gL,QAAQX,mBAAkB,WAItBpgL,EAAKu1O,eACNv1O,EAAKu1O,aAAev1O,EAAK01O,gBACN11O,EAAkB,aAAEyzB,iBAAiB,QAASzzB,EAAKg1O,sBAErEh1O,EAAKy1O,aACNz1O,EAAKy1O,WAAaz1O,EAAK01O,gBACJ11O,EAAgB,WAAEyzB,iBAAiB,QAASzzB,EAAKk1O,uBAGxEl1O,KAAK07E,SAASvuE,aACdnN,KAAK07E,SAASvuE,WAAWH,aAAgChN,KAAkB,aAAGA,KAAK07E,UACnF17E,KAAK07E,SAASvuE,WAAWH,aAAgChN,KAAgB,WAAGA,KAAK07E,SAASw9D,aAC1Fl5I,KAAK+0O,cAAAA,GAEF/0O,KAAK+0O,gBAQhB,CAAA,IAAA,+BAAA,MAAA,WAAA,IAAA,EAAA,KACI,OAAO,IAAIxlO,SAIXwJ,SAAAA,GACI/Y,EAAK21O,kBAAiB,WAAA,OAGhB58N,EAAQ/Y,EAAK41O,+BAS3B,CAAA,IAAA,qCAAA,MAAA,WAAA,IAAA,EAAA,KACI,OAAO,IAAIrmO,SAIXwJ,SAAAA,GACI/Y,EAAK21O,kBAAiB,WAAA,OAGhB58N,EAAQ/Y,EAAKm1O,qCAS3B,CAAA,IAAA,oCAAA,MAAA,WAAA,IAAA,EAAA,KACI,OAAO,IAAI5lO,SAIXwJ,SAAAA,GACI/Y,EAAK21O,kBAAiB,WAAA,OAGhB58N,EAAQ/Y,EAAKi1O,oCAS3B,CAAA,IAAA,qBAAA,MAAA,SAAmB9jN,GAMf,IAHA,IAAI0kN,EAA6B71O,KAAK07E,SAASkkJ,iBAAiB,qBAAA,OAAqBzuM,EAArB,OAAA,kBAAA,OAC1CA,EAD0C,OAAA,cAAA,OAE9CA,EAF8C,MAGvDx2B,EAAI,EAAGA,EAAIk7O,EAAQ76O,OAAQL,IAE5Bk7O,EAAQl7O,GAAGgnC,aAAXk0M,aAAAA,OAAqC1kN,IACrC3sB,QAAQyG,KAAK,gDAAA,OAAgDkmB,EAAhD,OAAA,sBAAA,OACaA,EADb,8BAET,sCAAuC0kN,EAAQl7O,IAE9Ck7O,EAAQl7O,GAAGgnC,aAAXk0M,oBAAAA,OAA4C1kN,KACjD3sB,QAAQyG,KAAK,uDAAA,OAAuDkmB,EAAvD,OAAA,sBAAA,OACaA,EADb,wCAET,4BAA6B0kN,EAAQl7O,IAGjD,MAAa,SAATw2B,EACO0kN,EAAQ76O,OAAS66O,EAAQ,GAAK71O,KAAK81O,yBAAyB91O,KAAK07E,UAErEm6J,EAAQ76O,OACX66O,EAAQA,EAAQ76O,OAAS,GAAKgF,KAAK+1O,wBAAwB/1O,KAAK07E,YAMxE,CAAA,IAAA,sBAAA,MAAA,WAGI,IAAMs6J,EAAuCh2O,KAAK07E,SAAS50D,cAAc,0CAEzE,OAAIkvN,GAEIA,EAAkBr0M,aAAa,sBAC/Bn9B,QAAQyG,KAAK,0IAEmB+qO,GAIhC19F,OAAgBt4I,KAAK60O,SAASoB,YAAYD,IAC1CxxO,QAAQyG,KAAK,yDAA0D+qO,GAE3EA,EAAkBn6K,SAAAA,GAGf77D,KAAKm1O,8BAMhB,CAAA,IAAA,4BAAA,MAAA,WAEI,IAAMa,EAAoBh2O,KAAKk2O,mBAAmB,SAIlD,OAHIF,GACAA,EAAkBn6K,UAEbm6K,IAMb,CAAA,IAAA,2BAAA,MAAA,WAEI,IAAMA,EAAoBh2O,KAAKk2O,mBAAmB,OAIlD,OAHIF,GACAA,EAAkBn6K,UAEbm6K,IAMb,CAAA,IAAA,cAAA,MAAA,WACI,OAAOh2O,KAAK+0O,eAQhB,CAAA,IAAA,2BAAA,MAAA,SAAyB7mN,GACrB,GAAIluB,KAAK60O,SAASoB,YAAY/nN,IAASluB,KAAK60O,SAASsB,WAAWjoN,GAC5D,OAAOA,EAMX,IADA,IAAI0T,EAAW1T,EAAK0T,UAAY1T,EAAKiH,WAC5Bx6B,EAAI,EAAGA,EAAIinC,EAAS5mC,OAAQL,IAAK,CAEtC,IAAIy7O,EAAgBx0M,EAASjnC,GAAGg7B,WAAa31B,KAAK02G,UAAUijC,aACxD35I,KAAK81O,yBAA4Cl0M,EAASjnC,IAC1D,KACJ,GAAIy7O,EACA,OAAOA,EAGf,OAAO,OAQX,CAAA,IAAA,0BAAA,MAAA,SAAwBloN,GACpB,GAAIluB,KAAK60O,SAASoB,YAAY/nN,IAASluB,KAAK60O,SAASsB,WAAWjoN,GAC5D,OAAOA,EAKX,IADA,IAAI0T,EAAW1T,EAAK0T,UAAY1T,EAAKiH,WAC5Bx6B,EAAIinC,EAAS5mC,OAAS,EAAGL,GAAK,EAAGA,IAAK,CAE3C,IAAIy7O,EAAgBx0M,EAASjnC,GAAGg7B,WAAa31B,KAAK02G,UAAUijC,aACxD35I,KAAK+1O,wBAA2Cn0M,EAASjnC,IACzD,KACJ,GAAIy7O,EACA,OAAOA,EAGf,OAAO,OAOX,CAAA,IAAA,gBAAA,MAAA,WAEI,IAAMzsF,EAAS3pJ,KAAK02G,UAAUlsG,cAAc,OAK5C,OAJAxK,KAAKq2O,sBAAsBr2O,KAAKo1O,SAAUzrF,GAC1CA,EAAOyb,UAAUr9J,IAAI,uBACrB4hJ,EAAOyb,UAAUr9J,IAAI,yBACrB4hJ,EAAOj9I,aAAa,cAAe,QAC5Bi9I,IASX,CAAA,IAAA,wBAAA,MAAA,SAAsB2sF,EAAW3sF,GAG7B2sF,EAAY3sF,EAAOj9I,aAAa,WAAY,KAAOi9I,EAAO5nH,gBAAgB,cAQ9E,CAAA,IAAA,gBAAA,MAAA,SAAco1J,GACNn3L,KAAKu1O,cAAgBv1O,KAAKy1O,aAC1Bz1O,KAAKq2O,sBAAsBl/C,EAASn3L,KAAKu1O,cACzCv1O,KAAKq2O,sBAAsBl/C,EAASn3L,KAAKy1O,eASjD,CAAA,IAAA,mBAAA,MAAA,SAAiBrxO,GACTpE,KAAK+gL,QAAQ5C,SACb/5K,IAGApE,KAAK+gL,QAAQzC,SAAS6S,eAAe9sL,KAAKu5L,GAAK,IAAIr9L,UAAU6D,KAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WAlTrD,OAAOpE,KAAKo1O,UAK5B,IAAA,SAAY3vO,GACRzF,KAAKo1O,SAAW3vO,EACZzF,KAAKu1O,cAAgBv1O,KAAKy1O,aAC1Bz1O,KAAKq2O,sBAAsB5wO,EAAOzF,KAAKu1O,cACvCv1O,KAAKq2O,sBAAsB5wO,EAAOzF,KAAKy1O,iBAO/C,EAhDE,GAgDF,KAsVEb,GAAAA,WAMF,SAAA,EAAYC,EAAU9zD,EAASrqE,GAAAA,gBAAAA,KAAAA,GAC3B12G,KAAK60O,SAAWA,EAChB70O,KAAK+gL,QAAUA,EACf/gL,KAAK02G,UAAYA,EAU0D6/H,OAD/E,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOt1O,GAAgC,IAAvBs1O,EAAuB,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACnC,OAAO,IAAI,GAAUt1O,EAASjB,KAAK60O,SAAU70O,KAAK+gL,QAAS/gL,KAAK02G,UAAW6/H,OAAAA,EAnB7E3B,IAsBWhyG,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAK46O,IAAkB,GAAgB,IAAuB,GAAgB,IAAgB,GAAgB,MAOtKA,GAAiBl0G,WAAQb,GAAmB,CAAEvqH,QAAS,WAAsC,OAAO,IAAIs/N,GAAiB5wG,GAAS,IAAuBA,GAAS45C,IAAS55C,GAAS,MAAe3E,MAAOu1G,GAAkB90G,WAAY,SAP3P80G,IAyS2C,oBAAXhjN,SAA4BA,QAuW5D,IAuCM4kN,GAvCAC,GAA+B,IAAI1zG,GAAe,uBAAwB,CAC5EjD,WAAY,OACZxqH,QAMJ,WACI,OAAO,QAuBLohO,GAAiC,IAAI3zG,GAAe,kCAhC1D,KAuCMyzG,GAAAA,WAOF,SAAA,EAAYG,EAAc51D,EAASrqE,EAAWkgI,GAAAA,gBAAAA,KAAAA,GAC1C52O,KAAK+gL,QAAUA,EACf/gL,KAAK42O,gBAAkBA,EAIvB52O,KAAK02G,UAAYA,EACjB12G,KAAK62O,aAAeF,GAAgB32O,KAAK82O,qBAuGlCC,OAhGX,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAAS33O,GAAYgB,IAAAA,IAAAA,EAIb42O,EAEAx9M,EANap5B,EAAAA,KAEX62O,EAAiBj3O,KAAK42O,gBAFXx2O,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,GA6BjB,OAtBoB,IAAhBA,EAAKpF,QAAmC,iBAAZoF,EAAK,GACjCo5B,EAAWp5B,EAAK,IAGf42O,GAJe,EAAA,eAIS52O,EAJT,IAAA,GAIHo5B,EAJG,EAAA,IAMpBx5B,KAAKm/C,QACLvvC,aAAa5P,KAAKk3O,kBACbF,IACDA,EACKC,GAAkBA,EAAeD,WAAcC,EAAeD,WAAa,UAEpE,MAAZx9M,GAAoBy9M,IACpBz9M,EAAWy9M,EAAez9M,UAG9Bx5B,KAAK62O,aAAanqO,aAAa,YAAasqO,GAMrCh3O,KAAK+gL,QAAQX,mBAAkB,WAAA,OAI3B,IAAI7wK,SAIXwJ,SAAAA,GACInJ,aAAa5P,EAAKk3O,kBAClBl3O,EAAKk3O,iBAAmB72O,YAAW,WAI/BL,EAAK62O,aAAajyM,YAAcxlC,EAChC2Z,IACwB,iBAAbygB,IACPx5B,EAAKk3O,iBAAmB72O,YAAW,WAAA,OAG7BL,EAAKm/C,UAAU3lB,MAEzB,aAUhB,CAAA,IAAA,QAAA,MAAA,WACQx5B,KAAK62O,eACL72O,KAAK62O,aAAajyM,YAAc,MAMxC,CAAA,IAAA,cAAA,MAAA,WACIh1B,aAAa5P,KAAKk3O,kBACdl3O,KAAK62O,cAAgB72O,KAAK62O,aAAa1pO,aACvCnN,KAAK62O,aAAa1pO,WAAWC,YAAYpN,KAAK62O,cAC9C72O,KAAK62O,aAAe,QAO5B,CAAA,IAAA,qBAAA,MAAA,WAQI,IANA,IAEMM,EAAmBn3O,KAAK02G,UAAU0gI,uBAFnB,8BAIfL,EAAS/2O,KAAK02G,UAAUlsG,cAAc,OAEnC7P,EAAI,EAAGA,EAAIw8O,EAAiBn8O,OAAQL,IACtBw8O,EAAiBx8O,GAAc,WAAEyS,YAAY+pO,EAAiBx8O,IAOrF,OALAo8O,EAAO3xE,UAAUr9J,IATI,8BAUrBgvO,EAAO3xE,UAAUr9J,IAAI,uBACrBgvO,EAAOrqO,aAAa,cAAe,QACnCqqO,EAAOrqO,aAAa,YAAa,UACjC1M,KAAK02G,UAAUprG,KAAKqB,YAAYoqO,GACzBA,MAAAA,EArHTP,IAwHQ5zG,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAKw8O,IAAe,GAAgBC,GAA8B,GAAI,GAAgB,IAAgB,GAAgB,IAAW,GAAgBC,GAAgC,KAQnOF,GAAc91G,WAAQb,GAAmB,CAAEvqH,QAAS,WAAmC,OAAO,IAAIkhO,GAAcxyG,GAASyyG,GAA8B,GAAIzyG,GAAS45C,IAAS55C,GAAS,IAAWA,GAAS0yG,GAAgC,KAAQr3G,MAAOm3G,GAAe12G,WAAY,SARvS02G,IA0MA,SAASa,GAAgCxjN,GACrC,OAAyB,IAAlBA,EAAMyjN,QAoDjB,IAaMC,GAbAC,GAAgC,IAAIz0G,GAAe,qCAMnD00G,GAA8BniB,GAAgC,CAChEl8J,SAAAA,EACAinD,SAAAA,IARJ,KAaMk3H,GAAAA,WAOF,SAAA,EAAYx2D,EAASq2C,EAErB35N,EAAUiY,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACN1V,KAAK+gL,QAAUA,EACf/gL,KAAKo3N,UAAYA,EAIjBp3N,KAAK6lO,QAAU,KAIf7lO,KAAK03O,gBAAAA,EAIL13O,KAAK23O,aAAe,IAAI7jF,IAIxB9zJ,KAAK43O,uBAAyB,EAO9B53O,KAAK63O,4BAA8B,IAAI/jF,IAKvC9zJ,KAAK83O,yBAA2B,WAK5B93O,EAAK+3O,iBAAmB,KACxB/3O,EAAKg4O,+BAA+B,aAMxCh4O,KAAKi4O,2BAIJpkN,SAAAA,GAGG,IAAK7zB,EAAK+3O,iBAAkB,CAIxB,IAAM31O,EAASi1O,GAAgCxjN,GAAS,WAAa,QACrE7zB,EAAKg4O,+BAA+B51O,KAO5CpC,KAAKk4O,4BAIJrkN,SAAAA,GAI+B,MAAxB7zB,EAAKm4O,iBACLvoO,aAAa5P,EAAKm4O,iBAEtBn4O,EAAK+3O,iBAAmBK,GAAUvkN,GAClC7zB,EAAKm4O,gBAAkB93O,YAAW,WAAA,OAG5BL,EAAK+3O,iBAAmB,OA3IlB,MAiJhB/3O,KAAKq4O,qBAAuB,WAMxBr4O,EAAK03O,gBAAAA,EACL13O,EAAKs4O,sBAAwBj4O,YAAW,WAAA,OAGlCL,EAAK03O,gBAAAA,MAMf13O,KAAKu4O,8BAIJ1kN,SAAAA,GAMG,IAJA,IAAMlpB,EAASytO,GAAUvkN,GAEnBrzB,EAAyB,UAAfqzB,EAAM1oB,KAAmBnL,EAAKw4O,SAAWx4O,EAAKy4O,QAErDx3O,EAAU0J,EAAQ1J,EAASA,EAAUA,EAAQs3N,cAClD/3N,EAAQ/B,KAAKuB,EAAM,EAA4BiB,IAGvDjB,KAAK02G,UAAYj5G,EACjBuC,KAAK04O,gBAAkBhjO,MAAAA,OAAAA,EAAkDA,EAAQijO,gBAAkB,EAwV7EC,OAjV1B,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAAQ33O,GAAyB,IAAhB43O,EAAgB,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAE7B,IAAK74O,KAAKo3N,UAAUvC,UAChB,OAAOhnC,GAAG,MAGd,IAAMtjB,EAAgBooD,GAAc1xN,GAK9By0N,EAA+BH,GAAehrD,IAAqBvqK,KAAKo4N,eAExE0gB,EAAa94O,KAAK23O,aAAa90N,IAAI0nJ,GAEzC,GAAIuuE,EAOA,OANID,IAIAC,EAAWD,eAAAA,GAERC,EAAWt+G,QAAQ22D,eAI9B,IAAMr2F,EAAO,CACT+9I,cAAeA,EACfr+G,QAAS,IAAI,EACbk7F,SAAAA,GAIJ,OAFA11N,KAAK23O,aAAa31N,IAAIuoJ,EAAezvE,GACrC96F,KAAK+4O,yBAAyBj+I,GACvBA,EAAK0/B,QAAQ22D,iBAMxB,CAAA,IAAA,iBAAA,MAAA,SAAelwL,GAEX,IAAMspK,EAAgBooD,GAAc1xN,GAE9B+3O,EAAch5O,KAAK23O,aAAa90N,IAAI0nJ,GACtCyuE,IACAA,EAAYx+G,QAAQjzH,WACpBvH,KAAKi5O,YAAY1uE,GACjBvqK,KAAK23O,aAAL33O,OAAyBuqK,GACzBvqK,KAAKk5O,uBAAuBF,MASpC,CAAA,IAAA,WAAA,MAAA,SAAS/3O,EAASuB,EAAQkT,GAEtB,IAAM60J,EAAgBooD,GAAc1xN,GACpCjB,KAAKg4O,+BAA+Bx1O,GAED,mBAAxB+nK,EAAc1uG,OAErB,EAAqCA,MAAMnmD,KAMnD,CAAA,IAAA,cAAA,MAAA,WAAA,IAAA,EAAA,KACI1V,KAAK23O,aAAahgO,SAAQ,SAKzBwhO,EAAOl4O,GALkB,OAKNjB,EAAKo5O,eAAen4O,QAO5C,CAAA,IAAA,eAAA,MAAA,WACI,OAAOjB,KAAK02G,WAAaj5G,WAO7B,CAAA,IAAA,aAAA,MAAA,WAGI,OADYuC,KAAKo4N,eACNviM,aAAe34B,SAS9B,CAAA,IAAA,eAAA,MAAA,SAAa+D,EAASqM,EAAW+rO,GACzBA,EACAp4O,EAAQmkK,UAAUr9J,IAAIuF,GAGtBrM,EAAQmkK,UAAUrvJ,OAAOzI,KAQjC,CAAA,IAAA,kBAAA,MAAA,SAAgBumB,GAOZ,OAAI7zB,KAAK6lO,QACE7lO,KAAK6lO,QAEZ7lO,KAAK03O,gBAAkB13O,KAAKs5O,iBACrBt5O,KAAKs5O,iBAEPt5O,KAAKu5O,kBAAkB1lN,GACrB,QAGA,YAUf,CAAA,IAAA,cAAA,MAAA,SAAY5yB,EAASuB,GACjBxC,KAAK+2L,aAAa91L,EAAS,gBAAiBuB,GAC5CxC,KAAK+2L,aAAa91L,EAAS,oBAAgC,UAAXuB,GAChDxC,KAAK+2L,aAAa91L,EAAS,uBAAmC,aAAXuB,GACnDxC,KAAK+2L,aAAa91L,EAAS,oBAAgC,UAAXuB,GAChDxC,KAAK+2L,aAAa91L,EAAS,sBAAkC,YAAXuB,KAStD,CAAA,IAAA,iCAAA,MAAA,SAA+BA,GAAAA,IAAAA,EAAAA,KAC3BxC,KAAK+gL,QAAQX,mBAAkB,WAI3BpgL,EAAK6lO,QAAUrjO,EACa,IAAxBxC,EAAK04O,iBAIL14O,EAAK44O,iBAAmBv4O,YAAW,WAAA,OAG7BL,EAAK6lO,QAAU,OAAO,SAUxC,CAAA,IAAA,oBAAA,MAAA,SAAkBhyM,GAmBd,IAAM2lN,EAAcpB,GAAUvkN,GAC9B,OAAO7zB,KAAK+3O,4BAA4Br+F,MAAQ8/F,aAAuB9/F,OAClE8/F,IAAgBx5O,KAAK+3O,kBAAoByB,EAAY93N,SAAS1hB,KAAK+3O,qBAS5E,CAAA,IAAA,WAAA,MAAA,SAASlkN,EAAO5yB,GAYZ,IAAM+3O,EAAch5O,KAAK23O,aAAa90N,IAAI5hB,GAC1C,GAAK+3O,IAAiBA,EAAYH,eAAiB53O,IAAYm3O,GAAUvkN,IAAzE,CAIA,IAAMrxB,EAASxC,KAAKy5O,gBAAgB5lN,GACpC7zB,KAAKi5O,YAAYh4O,EAASuB,GAC1BxC,KAAK05O,YAAYV,EAAYx+G,QAASh4H,GACtCxC,KAAKs5O,iBAAmB92O,KAQ5B,CAAA,IAAA,UAAA,MAAA,SAAQqxB,EAAO5yB,GAIX,IAAM+3O,EAAch5O,KAAK23O,aAAa90N,IAAI5hB,IACrC+3O,GAAgBA,EAAYH,eAAiBhlN,EAAM8lN,yBAAyBjgG,MAC7Ez4I,EAAQygB,SAASmS,EAAM8lN,iBAG3B35O,KAAKi5O,YAAYh4O,GACjBjB,KAAK05O,YAAYV,EAAYx+G,QAAS,SAQ1C,CAAA,IAAA,cAAA,MAAA,SAAYA,EAASh4H,GACjBxC,KAAK+gL,QAAQV,KAAI,WAAA,OAGX7lD,EAAQtyH,KAAK1F,QAOvB,CAAA,IAAA,2BAAA,MAAA,SAAyBw2O,GAAAA,IAAAA,EAAAA,KACrB,GAAKh5O,KAAKo3N,UAAUvC,UAApB,CAIA,IAAMa,EAAWsjB,EAAYtjB,SAEvBkkB,EAAyB55O,KAAK63O,4BAA4Bh1N,IAAI6yM,IAAa,EAC5EkkB,GACD55O,KAAK+gL,QAAQX,mBAAkB,WAI3Bs1C,EAASjiM,iBAAiB,QAASzzB,EAAKu4O,8BAA+Bd,IACvE/hB,EAASjiM,iBAAiB,OAAQzzB,EAAKu4O,8BAA+Bd,OAG9Ez3O,KAAK63O,4BAA4B71N,IAAI0zM,EAAUkkB,EAAyB,GAElC,KAAhC55O,KAAK43O,wBAGP53O,KAAK+gL,QAAQX,mBAAkB,WAK3B,IAAM3iL,EAAWuC,EAAKo4N,eAEhBl7N,EAAS8C,EAAKw4N,aACpB/6N,EAASg2B,iBAAiB,UAAWzzB,EAAK83O,yBAA0BL,IACpEh6O,EAASg2B,iBAAiB,YAAazzB,EAAKi4O,2BAA4BR,IACxEh6O,EAASg2B,iBAAiB,aAAczzB,EAAKk4O,4BAA6BT,IAC1Ev6O,EAAOu2B,iBAAiB,QAASzzB,EAAKq4O,4BASlD,CAAA,IAAA,yBAAA,MAAA,SAAuBW,GAEnB,IAAMtjB,EAAWsjB,EAAYtjB,SAC7B,GAAI11N,KAAK63O,4BAA4B9hF,IAAI2/D,GAAW,CAEhD,IAAMkkB,EAA4C55O,KAAK63O,4BAA4Bh1N,IAAI6yM,GACnFkkB,EAAyB,EACzB55O,KAAK63O,4BAA4B71N,IAAI0zM,EAAUkkB,EAAyB,IAGxElkB,EAAS/hM,oBAAoB,QAAS3zB,KAAKu4O,8BAA+Bd,IAC1E/hB,EAAS/hM,oBAAoB,OAAQ3zB,KAAKu4O,8BAA+Bd,IACzEz3O,KAAK63O,4BAAL73O,OAAwC01N,IAIhD,MAAO11N,KAAK43O,uBAAwB,CAEhC,IAAMn6O,EAAWuC,KAAKo4N,eAEhBl7N,EAAS8C,KAAKw4N,aACpB/6N,EAASk2B,oBAAoB,UAAW3zB,KAAK83O,yBAA0BL,IACvEh6O,EAASk2B,oBAAoB,YAAa3zB,KAAKi4O,2BAA4BR,IAC3Eh6O,EAASk2B,oBAAoB,aAAc3zB,KAAKk4O,4BAA6BT,IAC7Ev6O,EAAOy2B,oBAAoB,QAAS3zB,KAAKq4O,sBAEzCzoO,aAAa5P,KAAKs4O,uBAClB1oO,aAAa5P,KAAKm4O,iBAClBvoO,aAAa5P,KAAK44O,uBAAAA,EAldxBrB,IAsdO30G,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAKu9O,IAAc,GAAgB,IAAgB,GAAgB,IAAkB,GAAgB,GAAU,GAAI,GAAgBC,GAA+B,KAQlND,GAAa72G,WAAQb,GAAmB,CAAEvqH,QAAS,WAAkC,OAAO,IAAIiiO,GAAavzG,GAAS45C,IAAS55C,GAAS,IAAWA,GAAS,GAAU,GAAIA,GAASwzG,GAA+B,KAAQn4G,MAAOk4G,GAAcz3G,WAAY,SAR9Qy3G,IAuJA,SAASa,GAAUvkN,GAGf,OAA2BA,EAAMgmN,aAAehmN,EAAMgmN,eAAe,GAAKhmN,EAAMlpB,OAAAA,IAkN9EmvO,GApGAC,GChsGFC,GA4TEC,GAoNAC,GAnDAC,GDqnF8ExvO,KA8G9EovO,GAAAA,WAKF,SAAA,EAAY3iB,EAAW35N,GAAAA,gBAAAA,KAAAA,GACnBuC,KAAKo3N,UAAYA,EACjBp3N,KAAK02G,UAAYj5G,EAxBQ,OA8B7B,aAAA,EAAA,CAAA,CAAA,IAAA,sBAAA,MAAA,WACI,IAAKuC,KAAKo3N,UAAUvC,UAChB,OAAO,EAMX,IAAMulB,EAAcp6O,KAAK02G,UAAUlsG,cAAc,OACjD4vO,EAAY5tO,MAAM4tC,gBAAkB,aACpCggM,EAAY5tO,MAAMqa,SAAW,WAC7B7mB,KAAK02G,UAAUprG,KAAKqB,YAAYytO,GAMhC,IAAMC,EAAiBr6O,KAAK02G,UAAU7gF,aAAe34B,OAE/Co9O,EAAiBD,GAAkBA,EAAevkN,iBACpDukN,EAAevkN,iBAAiBskN,GAAe,KAE7CG,GAAiBD,GAAiBA,EAAclgM,iBAAmB,IAAIvuC,QAAQ,KAAM,IAE3F,OADA7L,KAAK02G,UAAUprG,KAAK8B,YAAYgtO,GACxBG,GACJ,IAAK,aAAc,OAAO,EAC1B,IAAK,mBAAoB,OAAO,EAEpC,OAAO,IAMX,CAAA,IAAA,uCAAA,MAAA,WACI,GAAIv6O,KAAKo3N,UAAUvC,WAAa70N,KAAK02G,UAAUprG,KAAM,CAEjD,IAAMkvO,EAAcx6O,KAAK02G,UAAUprG,KAAK85J,UAExCo1E,EAAYzkO,OAhEoB,4BAiEhCykO,EAAYzkO,OA3ES,oCA4ErBykO,EAAYzkO,OAvES,oCAyErB,IAAMg0E,EAAO/pF,KAAKy6O,sBACL,IAAT1wJ,GACAywJ,EAAYzyO,IAtEgB,4BAuE5ByyO,EAAYzyO,IAjFK,qCAmFH,IAATgiF,IACLywJ,EAAYzyO,IA1EgB,4BA2E5ByyO,EAAYzyO,IAhFK,0CAAA,EAiB3BgyO,IAoEmBn3G,UAAO,SAA0C5oI,GAAK,OAAO,IAAKA,GAAK+/O,IAA0B,GAAgB,IAAkB,GAAgB,MAMzJA,GAAyBr5G,WAAQb,GAAmB,CAAEvqH,QAAS,WAA8C,OAAO,IAAIykO,GAAyB/1G,GAAS,IAAWA,GAAS,MAAe3E,MAAO06G,GAA0Bj6G,WAAY,SAN7Pi6G,IAAAA,KAgCMD,GAIF,SAAA,EAAYY,GAAAA,gBAAAA,KAAAA,GACRA,EAAyBC,yCAGtBn4G,UAAO,GAAwB,CAAEr3H,KAAM2uO,KAClDA,GAAWn5G,UAAO,GAAwB,CAAErrH,QAAS,SAA4Btb,GAAK,OAAO,IAAKA,GAAK8/O,IAAY,GAAgB,MAA+B75G,QAAS,CAAC,CAAC,GAAgB,OAD7L65G,IEljHM,GAAU,IAAI7uE,GAAQ,SDuDtB,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAAA,SAAA,IAAA,OAAA,gBAAA,KAAA,GAAA,EAAA,MAAA,KAAA,WAYF,OAZE,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAYU51I,EAAIz1B,GACZ,OAAO,EAA0BA,KAMrC,CAAA,IAAA,MAAA,MAAA,SAAIT,GACIjC,OAAOsH,SACPtH,OAAOsH,QAAQgb,KAAOtiB,OAAOsH,QAAQgb,IAAIrgB,KAOjD,CAAA,IAAA,WAAA,MAAA,SAASA,GACDjC,OAAOsH,SACPtH,OAAOsH,QAAQ85C,OAASphD,OAAOsH,QAAQ85C,MAAMn/C,KAMrD,CAAA,IAAA,cAAA,MAAA,WACQjC,OAAOsH,SACPtH,OAAOsH,QAAQo2O,UAAY19O,OAAOsH,QAAQo2O,aASlD,CAAA,IAAA,cAAA,MAAA,SAAYvlN,EAAIonC,EAAK0uF,GAIjB,OAHA91H,EAAG5B,iBAAiBgpC,EAAK0uF,GAAAA,GAGlB,WAIH91H,EAAG1B,oBAAoB8oC,EAAK0uF,GAAAA,MAQpC,CAAA,IAAA,gBAAA,MAAA,SAAc91H,EAAIonC,GACdpnC,EAAGxrB,cAAc4yD,KAMrB,CAAA,IAAA,SAAA,MAAA,SAAOr9B,GAIH,OAHIA,EAAKjyB,YACLiyB,EAAKjyB,WAAWC,YAAYgyB,GAEzBA,IAMX,CAAA,IAAA,WAAA,MAAA,SAAS/J,GACL,OAAOA,EAAG5vB,QAOd,CAAA,IAAA,gBAAA,MAAA,SAAcqI,EAASmpB,GAEnB,OADAA,EAAMA,GAAOj3B,KAAK66O,sBACPrwO,cAAcsD,KAK7B,CAAA,IAAA,qBAAA,MAAA,WACI,OAAOrQ,SAASyd,eAAeC,mBAAmB,eAKtD,CAAA,IAAA,qBAAA,MAAA,WACI,OAAO1d,WAMX,CAAA,IAAA,gBAAA,MAAA,SAAc2hC,GACV,OAAOA,EAAKzJ,WAAa+jH,KAAKC,eAMlC,CAAA,IAAA,eAAA,MAAA,SAAav6G,GACT,OAAOA,aAAgB07M,mBAO3B,CAAA,IAAA,uBAAA,MAAA,SAAqB7jN,EAAKtsB,GACtB,MAAe,WAAXA,EACOzN,OAEI,aAAXyN,EACOssB,EAEI,SAAXtsB,EACOssB,EAAI3rB,KAER,OAKX,CAAA,IAAA,aAAA,MAAA,WACI,OAAOpO,OAAOskH,UAKlB,CAAA,IAAA,cAAA,MAAA,WACI,OAAOtkH,OAAOQ,WAMlB,CAAA,IAAA,cAAA,MAAA,SAAYu5B,GAER,IA2Dcn4B,EA3DRnB,EA4CLo9O,KACDA,GAAiCt9O,SAASqpB,cAAc,SAKrDi0N,GAAY77M,aAAa,QAHjB,KA9CX,OAAe,MAARvhC,EAAe,MA0DRmB,EA1D4BnB,EA2DzCq8O,KACDA,GAAiBv8O,SAAS+M,cAAc,MAE5CwvO,GAAettO,aAAa,OAAQ5N,GACU,MAAtCk7O,GAAeznD,SAAS52L,OAAO,GAAcq+O,GAAeznD,SAChE,IAAMynD,GAAeznD,YA3DzB,CAAA,IAAA,mBAAA,MAAA,WACIwoD,GAAc,OAKlB,CAAA,IAAA,eAAA,MAAA,WACI,OAAO79O,OAAO4N,UAAUY,YAK5B,CAAA,IAAA,iBAAA,MAAA,WAGI,OAAOxO,OAAOmjF,aAAenjF,OAAOmjF,YAAYl0E,IAAMjP,OAAOmjF,YAAYl0E,OACrE,IAAID,MAAO8uO,YAKnB,CAAA,IAAA,kBAAA,MAAA,WACI,OAAA,IAMJ,CAAA,IAAA,YAAA,MAAA,SAAUp7O,GACN,OAAO,GAAkBnC,SAASk4L,OAAQ/1L,MAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,WxErNlD,IAA2Bq7O,EAAAA,EwE8BA,IAAI,ExE7BtBzpD,KACDA,GAAOypD,OwEmCX,EAZE,CAYF,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GArDA,SAAA,IAAA,OAAA,gBAAA,KAAA,GAAA,EAAA,KAAA,MAOW,OADX,aAAA,EAAA,CAAA,CAAA,IAAA,oBAAA,MAAA,WACI,OAAA,MAAO,EA8CX,CA9CW,WAAA,OAAA,SAAA,IAAA,gBAAA,KAAA,IAAA,KAkOXF,GAAc,KAuCZG,GAAgB,IAAIn4G,GAAe,iBAoCnCo4G,GAA8B,CAChC,CACI93G,QAASo4C,GACTrlB,WAhCR,SAA+BglF,EAAc39O,EAAUgmI,GACnD,OAAO,WAMHA,EAAS5gH,IAAI64J,IAAuBG,YAAYnsK,MAAK,WAKjD,IAAMmqG,EAAM,KAEGpzG,MAAMvB,UAAU5H,MAAMkB,MAAMf,EAASmiO,iBAAiB,yBAC9D1oN,QAIPme,SAAAA,GAAAA,OAAMA,EAAG6J,aAAa,mBAAqBk8M,KACtCzjO,SAIL0d,SAAAA,GAAAA,OAAMwkF,EAAI9jG,OAAOsf,WASrBghI,KAAM,CAAC6kF,GAAe,GAAUtkF,IAChCf,OAAAA,IASF,GAAA,WAAA,SAAA,IAAA,gBAAA,KAAA,GAWF,OAXE,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAWUpQ,GACR,GAA+B,sBAAI,SAKlCp/B,GAAwB,IAAlBi8D,IAAkB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAEfC,EAAc98B,EAAS+8B,sBAAsBn8D,EAAMi8D,GACzD,GAAmB,MAAfC,EACA,MAAM,IAAI18K,MAAM,2CAEpB,OAAO08K,GAEX,GAAoC,2BAAI,WAAA,OAGlC98B,EAAS41F,uBACf,GAAmC,0BAAI,WAAA,OAGjC51F,EAAS61F,sBAiCV,GAA8B,uBAC/B,GAA8B,qBAAI,IAEtC,GAA8B,qBAAE56O,MA9B/BgE,SAAAA,GAEG,IAAM62O,EAAgB,GAAoC,6BAEtDrnH,EAAQqnH,EAAcvgP,OAEtBwgP,GAAAA,EAEEC,EAAY,SAIRC,GACNF,EAAUA,GAAWE,EAER,KADbxnH,GAEIxvH,EAAS82O,IAGjBD,EAAc5jO,SAAQ,SAIZ4qK,GACNA,EAAYo5D,WAAWF,WAcnC,CAAA,IAAA,wBAAA,MAAA,SAAsBh2F,EAAUp/B,EAAMi8D,GAClC,GAAY,MAARj8D,EACA,OAAO,KAGX,IAAMrsH,EAAIyrJ,EAASm2F,eAAev1H,GAClC,OAAS,MAALrsH,EACOA,EAEDsoL,EAGN,KAAUu5D,aAAax1H,GAChBrmH,KAAKwiL,sBAAsB/8B,EAAU,EAA4B/vH,MAAAA,GAErE11B,KAAKwiL,sBAAsB/8B,EAAUp/B,EAAKkyG,eAAAA,GALtC,QAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WtG60xCnB,IAA8BngE,EAAAA,EsG95xCD,IAAI,EtG+5xC7BgqB,GAAqBhqB,MsGz5xCrB,EAXE,GA2OA0jF,GAAwB,IAAI/4G,GAAe,uBA7BjD,KAoCMk3G,GAAAA,WAMF,SAAA,EAAYh2C,EAASze,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACjBxlL,KAAKwlL,MAAQA,EACbxlL,KAAK+7O,mBAAqB,IAAIjoF,IAC9BmwC,EAAQtsL,SAMRjR,SAAAA,GAAAA,OAAKA,EAAEilH,QAAU3rH,KACjBA,KAAK84G,SAAWmrF,EAAQ3mM,QAAQs6C,UA0D2B93B,OA/C/D,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,SAAiB7e,EAAS6e,EAAWtf,GAGjC,OADeR,KAAKg8O,eAAel8N,GACrB2T,iBAAiBxyB,EAAS6e,EAAWtf,KAWvD,CAAA,IAAA,yBAAA,MAAA,SAAuBmK,EAAQmV,EAAWtf,GAGtC,OADeR,KAAKg8O,eAAel8N,GACrBm8N,uBAAuBtxO,EAAQmV,EAAWtf,KAM5D,CAAA,IAAA,UAAA,MAAA,WACI,OAAOR,KAAKwlL,QAOhB,CAAA,IAAA,iBAAA,MAAA,SAAe1lK,GAEX,IAAMq9F,EAASn9G,KAAK+7O,mBAAmBl5N,IAAI/C,GAC3C,GAAIq9F,EACA,OAAOA,EAIX,IADA,IAAM8mF,EAAUjkM,KAAK84G,SACZn+G,EAAI,EAAGA,EAAIspM,EAAQjpM,OAAQL,IAAK,CAErC,IAAMwiH,EAAS8mF,EAAQtpM,GACvB,GAAIwiH,EAAOj4D,SAASplC,GAEhB,OADA9f,KAAK+7O,mBAAmB/5N,IAAIlC,EAAWq9F,GAChCA,EAGf,MAAM,IAAIt3G,MAAJ,2CAAA,OAAqDia,QAAAA,EA1E7Dm6N,IA6EOr3G,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAKigP,IAAc,GAAgB6B,IAAwB,GAAgB,MAC9I7B,GAAav5G,WAAQ,GAA0B,CAAErB,MAAO46G,GAAc3kO,QAAS2kO,GAAar3G,YAD5Fq3G,IAiCM,GAAA,WAIF,SAAA,EAAYpoD,GAAAA,gBAAAA,KAAAA,GACR7xL,KAAK6xL,KAAOA,EAcoCrxL,OANpD,aAAA,EAAA,CAAA,CAAA,IAAA,yBAAA,MAAA,SAAuBS,EAAS6e,EAAWtf,GAEvC,IAAMmK,EAAS,KAAUwnL,qBAAqBnyL,KAAK6xL,KAAM5wL,GACzD,IAAK0J,EACD,MAAM,IAAI9E,MAAJ,4BAAA,OAAsC8E,EAAtC,eAAA,OAA0DmV,IAEpE,OAAO9f,KAAKyzB,iBAAiB9oB,EAAQmV,EAAWtf,OAAAA,EAnBlD,GAmBkDA,KAgClD25O,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAIIn6O,KAAKk8O,WAAa,IAAIloF,IA8BCkoF,OAxB3B,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,SAAUvnN,GAAAA,IAAAA,EAAAA,KAEAwnN,EAAY,IAAInoF,IACtBr/H,EAAOhd,SAIPnL,SAAAA,GACSxM,EAAKk8O,WAAWnmF,IAAIvpJ,KACrBxM,EAAKk8O,WAAWn0O,IAAIyE,GACpB2vO,EAAUp0O,IAAIyE,OAGtBxM,KAAKo8O,cAAcD,KAMvB,CAAA,IAAA,gBAAA,MAAA,SAAcA,MAId,CAAA,IAAA,eAAA,MAAA,WACI,OAAO11O,MAAM8tE,KAAKv0E,KAAKk8O,gBAAAA,EAnCzB/B,IAsCWv3G,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKmgP,KAChFA,GAAiBz5G,WAAQ,GAA0B,CAAErB,MAAO86G,GAAkB7kO,QAAS6kO,GAAiBv3G,YADxGu3G,IAAAA,KAaMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYroD,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRz3D,EAAAA,EAAAA,KAAAA,OACKy3D,KAAOA,EACZ7xL,EAAKq8O,WAAa,IAAIroF,IACtBh0J,EAAKs8O,YAAc,IAAItoF,IACvBh0J,EAAKq8O,WAAWt0O,IAAI8pL,EAAK/yE,MALjB+yE,EA2DsB0qD,OA9ClC,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,SAAiB5nN,EAAQe,GAAAA,IAAAA,EAAAA,KACrBf,EAAOhd,SAINnL,SAAAA,GAEG,IAAMgwO,EAAUx8O,EAAK6xL,KAAKrnL,cAAc,SACxCgyO,EAAQ53M,YAAcp4B,EACtBxM,EAAKs8O,YAAYv0O,IAAI2tB,EAAK/oB,YAAY6vO,SAO9C,CAAA,IAAA,UAAA,MAAA,SAAQC,GACJz8O,KAAK08O,iBAAiB18O,KAAKk8O,WAAYO,GACvCz8O,KAAKq8O,WAAWt0O,IAAI00O,KAMxB,CAAA,IAAA,aAAA,MAAA,SAAWA,GACPz8O,KAAKq8O,WAALr8O,OAAuBy8O,KAM3B,CAAA,IAAA,gBAAA,MAAA,SAAcN,GAAAA,IAAAA,EAAAA,KACVn8O,KAAKq8O,WAAW1kO,SAIhB8kO,SAAAA,GAAAA,OAAYz8O,EAAK08O,iBAAiBP,EAAWM,QAKjD,CAAA,IAAA,cAAA,MAAA,WACIz8O,KAAKs8O,YAAY3kO,SAIjB4kO,SAAAA,GAAAA,OAAa,KAAUxmO,OAAOwmO,UAAAA,EA/DhCrC,CAA4B,KAkEdt3G,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAKkgP,IAAqB,GAAgB,MAC3HA,GAAoBx5G,WAAQ,GAA0B,CAAErB,MAAO66G,GAAqB5kO,QAAS4kO,GAAoBt3G,YADjHs3G,IAoCMyC,GAAiB,CACnB,IAAO,6BACP,MAAS,+BACT,MAAS,+BACT,IAAO,uCACP,MAAS,iCAGPC,GAAkB,UA6BxB,SAASC,GAAcC,EAAQnoN,EAAQhqB,GACnC,IAAK,IAAIhQ,EAAI,EAAGA,EAAIg6B,EAAO35B,OAAQL,IAAK,CAEpC,IAAI6R,EAAQmoB,EAAOh6B,GACf8L,MAAMqQ,QAAQtK,GACdqwO,GAAcC,EAAQtwO,EAAO7B,IAG7B6B,EAAQA,EAAMX,QAAQ+wO,GAAiBE,GACvCnyO,EAAOjK,KAAK8L,IAGpB,OAAO7B,EAMX,SAASoyO,GAAuBC,GAK5B,OAICnpN,SAAAA,GAKG,GAAc,iBAAVA,EACA,OAAOmpN,GAAAA,IAGkBA,EAAanpN,KAGtCA,EAAMqoC,iBACNroC,EAAMjB,aAAAA,IAAc,IAK1BqqN,GA4fAC,GA+2BAC,GAtFAC,GAtQAC,GA8hBAC,GAljD0B,KAK1BL,GAAAA,WAMF,SAAA,EAAYM,EAAcC,EAAkBC,GAAAA,gBAAAA,KAAAA,GACxCz9O,KAAKu9O,aAAeA,EACpBv9O,KAAKw9O,iBAAmBA,EACxBx9O,KAAKy9O,MAAQA,EACbz9O,KAAK09O,iBAAmB,IAAI5pF,IAC5B9zJ,KAAK29O,gBAAkB,IAAI,GAAoBJ,GA2CnD,OApCA,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SAAet8O,EAASkK,GACpB,IAAKlK,IAAYkK,EACb,OAAOnL,KAAK29O,gBAEhB,OAAQxyO,EAAK68H,eACT,KAAK,GAAkB5C,SAEnB,IAAIjiD,EAAWnjF,KAAK09O,iBAAiB76N,IAAI1X,EAAKsG,IAM9C,OALK0xE,IACDA,EAAW,IAAIy6J,GAAkC59O,KAAKu9O,aAAcv9O,KAAKw9O,iBAAkBryO,EAAMnL,KAAKy9O,OACtGz9O,KAAK09O,iBAAiB17N,IAAI7W,EAAKsG,GAAI0xE,IAEvC,EAAgC06J,YAAY58O,GACrCkiF,EAEX,KAAK,GAAkBkiD,OACvB,KAAK,GAAkBE,UACnB,OAAO,IAAI,GAAkBvlI,KAAKu9O,aAAcv9O,KAAKw9O,iBAAkBv8O,EAASkK,GACpF,QACI,IAAKnL,KAAK09O,iBAAiB3nF,IAAI5qJ,EAAKsG,IAAK,CAErC,IAAMkjB,EAASkoN,GAAc1xO,EAAKsG,GAAItG,EAAKwpB,OAAQ,IACnD30B,KAAKw9O,iBAAiBM,UAAUnpN,GAChC30B,KAAK09O,iBAAiB17N,IAAI7W,EAAKsG,GAAIzR,KAAK29O,iBAE5C,OAAO39O,KAAK29O,mBAOxB,CAAA,IAAA,QAAA,MAAA,cAIA,CAAA,IAAA,MAAA,MAAA,gBAAA,EAtDEV,IAwDcr6G,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAKijP,IAAqB,GAAgB,IAAe,GAAgB,IAAsB,GAAgBhhE,MAChMghE,GAAoBv8G,WAAQ,GAA0B,CAAErB,MAAO49G,GAAqB3nO,QAAS2nO,GAAoBr6G,YADjHq6G,IAyCM,GAAA,WAIF,SAAA,EAAYM,GAAAA,gBAAAA,KAAAA,GACRv9O,KAAKu9O,aAAeA,EACpBv9O,KAAK7D,KAAO4J,OAAOc,OAAO,MA4N4FnC,OAvN1H,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,cAMA,CAAA,IAAA,gBAAA,MAAA,SAAc9E,EAAMomB,GAChB,OAAIA,EAGOvoB,SAAS6jC,gBAAgBq7M,GAAe32N,IAAcA,EAAWpmB,GAErEnC,SAAS+M,cAAc5K,KAMlC,CAAA,IAAA,gBAAA,MAAA,SAAc6F,GACV,OAAOhI,SAAS+yJ,cAAc/qJ,KAMlC,CAAA,IAAA,aAAA,MAAA,SAAWA,GACP,OAAOhI,SAASmP,eAAenH,KAOnC,CAAA,IAAA,cAAA,MAAA,SAAY8D,EAAQw0O,GAChBx0O,EAAOoD,YAAYoxO,KAQvB,CAAA,IAAA,eAAA,MAAA,SAAax0O,EAAQw0O,EAAUC,GACvBz0O,GACAA,EAAOyD,aAAa+wO,EAAUC,KAQtC,CAAA,IAAA,cAAA,MAAA,SAAYz0O,EAAQ00O,GACZ10O,GACAA,EAAO6D,YAAY6wO,KAQ3B,CAAA,IAAA,oBAAA,MAAA,SAAkBC,EAAgBC,GAE9B,IAAI9oN,EAA+B,iBAAnB6oN,EAA8BzgP,SAASqpB,cAAco3N,GACjEA,EACJ,IAAK7oN,EACD,MAAM,IAAIxvB,MAAJ,iBAAA,OAA2Bq4O,EAA3B,iCAKV,OAHKC,IACD9oN,EAAGuP,YAAc,IAEdvP,IAMX,CAAA,IAAA,aAAA,MAAA,SAAW+J,GACP,OAAOA,EAAKjyB,aAMhB,CAAA,IAAA,cAAA,MAAA,SAAYiyB,GACR,OAAOA,EAAK85G,cAShB,CAAA,IAAA,eAAA,MAAA,SAAa7jH,EAAIz1B,EAAM6F,EAAOugB,GAC1B,GAAIA,EAAW,CACXpmB,EAAOomB,EAAY,IAAMpmB,EAIzB,IAAMw+O,EAAezB,GAAe32N,GAChCo4N,EACA/oN,EAAGmN,eAAe47M,EAAcx+O,EAAM6F,GAGtC4vB,EAAG3oB,aAAa9M,EAAM6F,QAI1B4vB,EAAG3oB,aAAa9M,EAAM6F,KAS9B,CAAA,IAAA,kBAAA,MAAA,SAAgB4vB,EAAIz1B,EAAMomB,GACtB,GAAIA,EAAW,CAIX,IAAMo4N,EAAezB,GAAe32N,GAChCo4N,EACA/oN,EAAGgpN,kBAAkBD,EAAcx+O,GAMnCy1B,EAAG0M,gBAAH1M,GAAAA,OAAsBrP,EAAtBqP,KAAAA,OAAmCz1B,SAIvCy1B,EAAG0M,gBAAgBniC,KAQ3B,CAAA,IAAA,WAAA,MAAA,SAASy1B,EAAIz1B,GACTy1B,EAAG+vI,UAAUr9J,IAAInI,KAOrB,CAAA,IAAA,cAAA,MAAA,SAAYy1B,EAAIz1B,GACZy1B,EAAG+vI,UAAUrvJ,OAAOnW,KASxB,CAAA,IAAA,WAAA,MAAA,SAASy1B,EAAI7oB,EAAO/G,EAAOq+H,GACnBA,EAAQ4mC,GAAoBE,SAC5Bv1I,EAAG7oB,MAAMglI,YAAYhlI,EAAO/G,EAAUq+H,EAAQ4mC,GAAoBC,UAAa,YAAc,IAG7Ft1I,EAAG7oB,MAAMA,GAAS/G,IAS1B,CAAA,IAAA,cAAA,MAAA,SAAY4vB,EAAI7oB,EAAOs3H,GACfA,EAAQ4mC,GAAoBE,SAC5Bv1I,EAAG7oB,MAAM84J,eAAe94J,GAKxB6oB,EAAG7oB,MAAMA,GAAS,KAS1B,CAAA,IAAA,cAAA,MAAA,SAAY6oB,EAAIz1B,EAAM6F,GAElB4vB,EAAGz1B,GAAQ6F,IAOf,CAAA,IAAA,WAAA,MAAA,SAAS25B,EAAM35B,GACX25B,EAAKqD,UAAYh9B,IAQrB,CAAA,IAAA,SAAA,MAAA,SAAOkF,EAAQkpB,EAAOnvB,GAElB,MAAsB,iBAAXiG,EACmB3K,KAAKu9O,aAAatB,uBAAuBtxO,EAAQkpB,EAAOkpN,GAAuBr4O,IAEhE1E,KAAKu9O,aAAa9pN,iBAAiB9oB,EAAQkpB,EAAOkpN,GAAuBr4O,QAAAA,EAlOxH,GAgQAk5O,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAOF,SAAA,EAAYL,EAAcC,EAAkBp1F,EAAWq1F,GAAAA,IAAAA,EAAAA,gBAAAA,KAAAA,IACnDrjH,EAAAA,EAAAA,KAAAA,KAAMmjH,IACDn1F,UAAYA,EAEjB,IAlamBk2F,EAkab3pN,EAASkoN,GAAcY,EAAQ,IAAMr1F,EAAU32I,GAAI22I,EAAUzzH,OAAQ,IAJxB8oN,OAKnDD,EAAiBM,UAAUnpN,GAC3B30B,EAAKu+O,YAhbQ,oBAMG1yO,QAAQ+wO,GA0agBa,EAAQ,IAAMr1F,EAAU32I,IAChEzR,EAAKw+O,UAracF,EAqaeb,EAAQ,IAAMr1F,EAAU32I,GAnbhD,iBAeG5F,QAAQ+wO,GAAiB0B,IA6Zab,EAyB5CpoN,OAZX,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAAYp0B,GACRm5H,KAAAA,gBAAAA,EAAAA,WAAAA,eAAAA,MAAAA,KAAAA,KAAmBn5H,EAASjB,KAAKw+O,SAAU,MAO/C,CAAA,IAAA,gBAAA,MAAA,SAAcj1O,EAAQ3J,GAElB,IAAMy1B,EAAAA,KAAAA,gBAAAA,EAAAA,WAAAA,gBAAAA,MAAAA,KAAAA,KAAyB9rB,EAAQ3J,GAEvC,OADAw6H,KAAAA,gBAAAA,EAAAA,WAAAA,eAAAA,MAAAA,KAAAA,KAAmB/kG,EAAIr1B,KAAKu+O,YAAa,IAClClpN,MAAAA,EAhCTuoN,CAA0C,IAoD1C,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAOF,SAAA,EAAYL,EAAcC,EAAkBiB,EAAQr2F,GAAAA,IAAAA,EAAAA,gBAAAA,KAAAA,IAChDhuB,EAAAA,EAAAA,KAAAA,KAAMmjH,IACDC,iBAAmBA,EACxBx9O,EAAKy+O,OAASA,EACdz+O,EAAKooJ,UAAYA,EAEbpoJ,EAAK0+O,WADLt2F,EAAUpgB,gBAAkB,GAAkBzC,UAC5B,EAA8BkwF,aAAa,CAAE1rI,KAAM,SAGnD,EAA8ByrI,mBAEpDx1N,EAAKw9O,iBAAiBmB,QAAQ3+O,EAAK0+O,YAGnC,IADA,IAAM/pN,EAASkoN,GAAcz0F,EAAU32I,GAAI22I,EAAUzzH,OAAQ,IACpDh6B,EAAI,EAAGA,EAAIg6B,EAAO35B,OAAQL,IAAK,CAEpC,IAAM6hP,EAAU/+O,SAAS+M,cAAc,SACvCgyO,EAAQ53M,YAAcjQ,EAAOh6B,GAC7BqF,EAAK0+O,WAAW/xO,YAAY6vO,GAlBgBp0F,OAAAA,EAiEoBhpH,OAvCxE,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,SAAiBA,GACb,OAAOA,IAASp/B,KAAKy+O,OAASz+O,KAAK0+O,WAAat/M,IAKpD,CAAA,IAAA,UAAA,MAAA,WACIp/B,KAAKw9O,iBAAiBoB,WAAW5+O,KAAK0+O,cAO1C,CAAA,IAAA,cAAA,MAAA,SAAYn1O,EAAQw0O,GAChB,OAAA,KAAA,gBAAA,EAAA,WAAA,cAAA,MAAA,KAAA,KAAyB/9O,KAAK6+O,iBAAiBt1O,GAASw0O,KAQ5D,CAAA,IAAA,eAAA,MAAA,SAAax0O,EAAQw0O,EAAUC,GAC3B,OAAA,KAAA,gBAAA,EAAA,WAAA,eAAA,MAAA,KAAA,KAA0Bh+O,KAAK6+O,iBAAiBt1O,GAASw0O,EAAUC,KAOvE,CAAA,IAAA,cAAA,MAAA,SAAYz0O,EAAQ00O,GAChB,OAAA,KAAA,gBAAA,EAAA,WAAA,cAAA,MAAA,KAAA,KAAyBj+O,KAAK6+O,iBAAiBt1O,GAAS00O,KAM5D,CAAA,IAAA,aAAA,MAAA,SAAW7+M,GACP,OAAOp/B,KAAK6+O,iBAAL7+O,KAAAA,gBAAAA,EAAAA,WAAAA,aAAAA,MAAAA,KAAAA,KAAuCA,KAAK6+O,iBAAiBz/M,SAAAA,EAxEtE,CAA0B,IAAA,KAuG1B89M,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYjmN,GAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,KAAAA,KACFA,GA+BuC,OAvBjD,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASnX,GACL,OAAA,IAQJ,CAAA,IAAA,mBAAA,MAAA,SAAiB7e,EAAS6e,EAAWtf,GAAAA,IAAAA,EAAAA,KAEjC,OADAS,EAAQwyB,iBAAiB3T,EAAW,GAAA,GAC7B,WAAA,OAGD9f,EAAK2zB,oBAAoB1yB,EAAS6e,EAAW,MAQvD,CAAA,IAAA,sBAAA,MAAA,SAAoBnV,EAAQmV,EAAWpb,GACnC,OAAOiG,EAAOgpB,oBAAoB7T,EAAW,OAAA,EApC/Co9N,CAAwB,KAuCdt6G,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKkjP,IAAiB,GAAgB,MAC/GA,GAAgBx8G,WAAQ,GAA0B,CAAErB,MAAO69G,GAAiB5nO,QAAS4nO,GAAgBt6G,YADrGs6G,IAiaM4B,GAAgB,CAAC,MAAO,UAAW,OAAQ,SAK3CC,GAAU,CAGZ,KAAM,YACN,KAAM,MACN,OAAQ,SACR,OAAQ,SACR,IAAO,SACP,IAAO,SACP,KAAQ,YACR,MAAS,aACT,GAAM,UACN,KAAQ,YACR,KAAQ,cACR,OAAU,aACV,IAAO,MAMLC,GAAsB,CACxB,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,IAAQ,IACR,OAAQ,WAuBNC,GAAuB,CACzB,IAlBHprN,SAAAA,GAAAA,OAAUA,EAAMw8B,QAmBb,QAfHx8B,SAAAA,GAAAA,OAAUA,EAAMm4E,SAgBb,KAZHn4E,SAAAA,GAAAA,OAAUA,EAAMo4E,SAab,MATHp4E,SAAAA,GAAAA,OAAUA,EAAMi9B,WAzGjB,KAwHMusL,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,EAAYpmN,GAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,KAAAA,KACFA,GAqISioN,OA9HnB,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASp/N,GACL,OAAoD,MAA7Cu9N,EAAgB8B,eAAer/N,KAU1C,CAAA,IAAA,mBAAA,MAAA,SAAiB7e,EAAS6e,EAAWtf,GAEjC,IAAM4+O,EAAiC/B,EAAgB8B,eAAer/N,GAEhEu/N,EAAiBhC,EAAgBiC,cAAcF,EAAqB,QAAG5+O,EAASR,KAAK2rH,QAAQ4zH,WACnG,OAAOv/O,KAAK2rH,QAAQ4zH,UAAUn/D,mBAAkB,WAAA,OAIrC,KAAUo/D,YAAYv+O,EAASm+O,EAA0B,aAAGC,SAO3E,CAAA,CAAA,IAAA,iBAAA,MAAA,SAAsBv/N,GAElB,IAAM9e,EAAQ8e,EAAUpR,cAAclN,MAAM,KAEtCi+O,EAAez+O,EAAMqyB,QAC3B,GAAsB,IAAjBryB,EAAMhG,QAAoC,YAAjBykP,GAA+C,UAAjBA,EACxD,OAAO,KAGX,IAAMvjP,EAAMmhP,EAAgBqC,cAAiC1+O,EAAM+S,OAE/D4rO,EAAU,GAcd,GAbAb,GAAcnnO,SAIdioO,SAAAA,GAEI,IAAM3+N,EAAQjgB,EAAMY,QAAQg+O,GACxB3+N,GAAS,IACTjgB,EAAMJ,OAAOqgB,EAAO,GACpB0+N,GAAWC,EAAe,QAGlCD,GAAWzjP,EACS,GAAhB8E,EAAMhG,QAA8B,IAAfkB,EAAIlB,OAEzB,OAAO,KAGX,IAAM0I,EAAS,GAGf,OAFAA,EAAqB,aAAI+7O,EACzB/7O,EAAgB,QAAIi8O,EACbj8O,IAMX,CAAA,IAAA,kBAAA,MAAA,SAAuBmwB,GAEnB,IAAI8rN,EAAU,GAEVzjP,EA4EZ,SAAqB23B,GAEjB,IAAI33B,EAAM23B,EAAM33B,IAChB,GAAW,MAAPA,EAAa,CAKb,GAAW,OAJXA,EAAM23B,EAAMgsN,eAKR,MAAO,eAEP3jP,EAAI42L,WAAW,QACf52L,EAAMb,OAAOC,aAAa+S,SAASnS,EAAIsH,UAAU,GAAI,KApPjC,IAqPhBqwB,EAAMn2B,UAAwCshP,GAAoBzgP,eAAerC,KAIjFA,EAAM,GAA2CA,KAI7D,OAAO6iP,GAAQ7iP,IAAQA,EArB3B,CA5E8B23B,GAsBtB,MApBY,OADZ33B,EAAMA,EAAIwS,eAENxS,EAAM,QAEO,MAARA,IACLA,EAAM,OAEV4iP,GAAcnnO,SAIdioO,SAAAA,GACQA,GAAgB1jP,IAAAA,EAEO+iP,GAAqBW,IACzB/rN,KACf8rN,GAAWC,EAAe,QAItCD,GAAWzjP,IAUf,CAAA,IAAA,gBAAA,MAAA,SAAqByjP,EAASn/O,EAASq9K,GACnC,OAIChqJ,SAAAA,GACOwpN,EAAgByC,gBAAgBjsN,KAAW8rN,GAC3C9hE,EAAK8C,YAAW,WAAA,OAGVngL,EAAQqzB,SAS1B,CAAA,IAAA,gBAAA,MAAA,SAAqBqrN,GAEjB,OAAQA,GACJ,IAAK,MACD,MAAO,SACX,QACI,OAAOA,OAAAA,EA3IjB7B,CAAwB,KA+Idz6G,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKqjP,IAAiB,GAAgB,MAC/GA,GAAgB38G,WAAQ,GAA0B,CAAErB,MAAOg+G,GAAiB/nO,QAAS+nO,GAAgBz6G,YADrGy6G,IAAAA,KAuHMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEOx6G,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAKojP,KACrDA,GAAa18G,WAAQb,GAAmB,CAAEvqH,QAAS,WAAkC,OAAO0uH,GAAS,KAAsB3E,MAAO+9G,GAAct9G,WAAY,SAD/Ks9G,IAAAA,KAoFMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAIF,SAAA,EAAYtrD,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACRz3D,EAAAA,EAAAA,KAAAA,OACKy3D,KAAOA,EAFJA,EA+EmCpsL,OAtE/C,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAAS2W,EAAK3W,GACV,GAAa,MAATA,EACA,OAAO,KACX,OAAQ2W,GACJ,KAAK2/H,GAAgBC,KACjB,OAAO,EACX,KAAKD,GAAgBE,KACjB,OAAI,GAAiCx2I,EAAO,QACjC,GAAiBA,GtGssJ5C,SAAuB+yI,EAAYunG,GAE/B,IAAIrnG,EAAmB,KACvB,IACIuB,GAAkBA,IAAmB,IAAI1B,GAAgBC,GAGzD,IAAIwnG,EAAaD,EAAkB1kP,OAAO0kP,GAAmB,GAC7DrnG,EAAmBuB,GAAgBpB,oBAAoBmnG,GAIvD,IAAIC,EAAe,EAEfC,EAAaF,EACjB,EAAG,CACC,GAAqB,IAAjBC,EACA,MAAM,IAAIp6O,MAAM,yDAEpBo6O,IACAD,EAAaE,EACbA,EAAa,EAAsCtnG,UACnDF,EAAmBuB,GAAgBpB,oBAAoBmnG,SAClDA,IAAeE,GAExB,IAAMrjG,EAAY,IAAIlC,GAEhBwlG,EAAWtjG,EAAUujG,iBAAoCvkG,GAAmB,IAA4CnD,GAI9H,OAHIJ,MAAeuE,EAAUjC,oBACzBp2I,QAAQyG,KAAK,mFAEVk1O,EA5BX,QAgCI,GAAIznG,EAGA,IADA,IAAMnvI,EAASsyI,GAAmBnD,IAAqBA,EAChDnvI,EAAOg4B,YACVh4B,EAAO6D,YAAY7D,EAAOg4B,aAvC1C,CsGpsJsCvhC,KAAK6xL,KAAMx2L,OAAOoK,IAC5C,KAAKs2I,GAAgBG,MACjB,OAAI,GAAiCz2I,EAAO,SACjC,GAAiBA,GAErB,GAAgB,GAC3B,KAAKs2I,GAAgBI,OACjB,GAAI,GAAiC12I,EAAO,UACxC,OAAO,GAAiBA,GAE5B,MAAM,IAAII,MAAM,yCACpB,KAAKk2I,GAAgBzxI,IAGjB,OADa,GAA2B7E,GACpC,GAAiCA,EAAO,OACjC,GAAiBA,GAErB,GAAcpK,OAAOoK,IAChC,KAAKs2I,GAAgBK,aACjB,GAAI,GAAiC32I,EAAO,eACxC,OAAO,GAAiBA,GAE5B,MAAM,IAAII,MAAM,iFACpB,QACI,MAAM,IAAIA,MAAJ,8BAAA,OAAwCuW,EAAxC,0CAOlB,CAAA,IAAA,0BAAA,MAAA,SAAwB3W,GACpB,OtGohIG,IAAIiyI,GsGphI6BjyI,KAMxC,CAAA,IAAA,2BAAA,MAAA,SAAyBA,GACrB,OtGyhIG,IAAIkyI,GsGzhI8BlyI,KAMzC,CAAA,IAAA,4BAAA,MAAA,SAA0BA,GACtB,OtG8hIG,IAAImyI,GsG9hI+BnyI,KAM1C,CAAA,IAAA,yBAAA,MAAA,SAAuBA,GACnB,OtGmiIG,IAAIoyI,GsGniI4BpyI,KAMvC,CAAA,IAAA,iCAAA,MAAA,SAA+BA,GAC3B,OtGwiIG,IAAIqyI,GsGxiIoCryI,OAAAA,EAnF7C03O,CAAyB,KAsFdv6G,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKmjP,IAAkB,GAAgB,MAK/FA,GAAiBz8G,WAAQb,GAAmB,CAAEvqH,QAAS,WAAsC,OA9F/EmuH,EA8F8GO,GAASf,IA7F7I,IAAI,GAAiBQ,EAAS5gH,IAAI,KAD7C,IAAiC4gH,GA8FsIpE,MAAO89G,GAAkBr9G,WAAY,SAL5Mq9G,IAyEMkD,GAAkBt8D,GAAsBkD,GAAc,UAxBhB,CACxC,CAAE5jD,QAASg5C,GAAa/4C,SxEukJA,WwEtkJxB,CAAED,QAAS+4C,GAAsB94C,SAtBrC,WACI,GAAkBg9G,cAClB,GAAsBt0H,QAoBqC6pC,OAAAA,GAC3D,CAAExyB,QAAS,GAAU+yB,WAVzB,WAGI,OtGuoBJ,SAAqB34J,GACjB4sI,GAAW5sI,EADf,CsGxoBiBA,UACNA,UAOqC44J,KAAM,MAuBhDkqF,GAA2B,CAfiB,GAiB9C,CAAEl9G,QAAS,GAAiBC,SAAU,QACtC,CAAED,QAAS6T,GAAckf,WA1C7B,WACI,OAAO,IAAIlf,IAyCwCmf,KAAM,IACzD,CACIhzB,QAASy4G,GACTtlF,SAAU,GACVX,OAAAA,EACAQ,KAAM,CAAC,GAAUunB,GAAQvB,KAE7B,CAAEh5C,QAASy4G,GAAuBtlF,SAAU,GAAiBX,OAAAA,EAAaQ,KAAM,CAAC,KA/nBjD,GAioBhC,CACIhzB,QAAS,GACTmzB,SAAU,GACVH,KAAM,CAAC,GAAc,GAAqB4lB,KAE9C,CAAE54C,QAASonC,GAAkBnU,YAAa,IAC1C,CAAEjzB,QAAS,GAAkBizB,YAAa,IAC1C,CAAEjzB,QAAS,GAAqBmzB,SAAU,GAAqBH,KAAM,CAAC,KACtE,CAAEhzB,QAASy9C,GAAatqB,SAAUsqB,GAAazqB,KAAM,CAACunB,KACtD,CAAEv6C,QAAS,GAAcmzB,SAAU,GAAcH,KAAM,CAACylF,GAAuBl+D,KAj9DxC,IAg6D3C,KA6DM0/D,GAAAA,WAIF,SAAA,EAAYkD,GACR,GADQA,gBAAAA,KAAAA,GACJA,EACA,MAAM,IAAI36O,MAAM,iKAiBZs1O,OANZ,aAAA,EAAA,KAAA,CAAA,CAAA,IAAA,uBAAA,MAAA,SAA4B9jF,GACxB,MAAO,CACH9H,SAAU+tF,EACVt9G,UAAW,CACP,CAAEqD,QAAS44C,GAAQ34C,SAAU+zB,EAAOomF,OACpC,CAAEp6G,QAAS63G,GAAe5kF,YAAa2lB,IACvCk/D,SAAAA,EAvBVmC,IA4BQ96G,UAAO,GAAwB,CAAEr3H,KAAMmyO,KACrDA,GAAc38G,UAAO,GAAwB,CAAErrH,QAAS,SAA+Btb,GAAK,OAAO,IAAKA,GAAKsjP,IAAe,GAAgBA,GAAe,MAASt9G,UAAWugH,GAA0BtgH,QAAS,CAAC,GAAconD,MADjOi2D,IAuS8B,oBAAXpgP,QAA0BA,OAAf,IE9wFxBujP,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IA0jBN,SAAS//N,GAAQ9gB,EAAM8gP,GACnB,MAAO,CAAEv1O,KAAM,EAAiBvL,KAAAA,EAAM8gP,YAAAA,EAAahrO,QAAS,IA4DhE,SAAS2jB,GAAQsnN,GAAkB,IAAThsN,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAC/B,MAAO,CAAExpB,KAAM,EAAiBwpB,OAAAA,EAAQgsN,QAAAA,GAwE5C,SAASC,GAASC,GAAiB,IAAVnrO,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAC/B,MAAO,CAAEvK,KAAM,EAAkB01O,MAAAA,EAAOnrO,QAAAA,GA0C5C,SAAS,GAAMu/I,GACX,MAAO,CAAE9pJ,KAAM,EAAewpB,OAAQsgI,EAAQv7I,OAAQ,MAgC1D,SAAS,GAAM9Z,EAAM+0B,EAAQjf,GACzB,MAAO,CAAEvK,KAAM,EAAevL,KAAAA,EAAM+0B,OAAAA,EAAQjf,QAAAA,GA0NhD,SAASorO,GAAWC,EAAiBF,GAAiB,IAAVnrO,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAClD,MAAO,CAAEvK,KAAM,EAAoBi2L,KAAM2/C,EAAiBv5E,UAAWq5E,EAAOnrO,QAAAA,GA4KhF,SAAS,GAAMopB,EAAU0oI,GAAqB,IAAV9xJ,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAC1C,MAAO,CAAEvK,KAAM,GAAgB2zB,SAAAA,EAAU0oI,UAAAA,EAAW9xJ,QAAAA,GAoGxD,SAAS,GAAkBylC,GACvB5rC,QAAQwJ,QAAQ,MAAMrJ,KAAKyrC,GAsI/B,IAAM6lM,GAAAA,WAKF,SAAA,IAAkC,IAAtBxnN,EAAsB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAX,EAAGsqE,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAAA,gBAAA,KAAA,GAC9B9jG,KAAKihP,WAAa,GAClBjhP,KAAKkhP,YAAc,GACnBlhP,KAAKmhP,cAAgB,GACrBnhP,KAAKohP,UAAAA,EACLphP,KAAKi0J,YAAAA,EACLj0J,KAAKqhP,WAAAA,EACLrhP,KAAKshP,aAAe,KACpBthP,KAAKuhP,UAAY/nN,EAAWsqE,EA4IX,OAtIrB,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,WACS9jG,KAAKqhP,YACNrhP,KAAKqhP,WAAAA,EACLrhP,KAAKihP,WAAWtpO,SAIhBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKihP,WAAa,MAO1B,CAAA,IAAA,UAAA,MAAA,SAAQ78O,GACJpE,KAAKkhP,YAAYxgP,KAAK0D,KAM1B,CAAA,IAAA,SAAA,MAAA,SAAOA,GACHpE,KAAKihP,WAAWvgP,KAAK0D,KAMzB,CAAA,IAAA,YAAA,MAAA,SAAUA,GACNpE,KAAKmhP,cAAczgP,KAAK0D,KAK5B,CAAA,IAAA,aAAA,MAAA,WACI,OAAOpE,KAAKohP,WAKhB,CAAA,IAAA,OAAA,MAAA,cAIA,CAAA,IAAA,OAAA,MAAA,WACSphP,KAAKwhP,eACNxhP,KAAKyhP,WACLzhP,KAAK0hP,oBAET1hP,KAAKohP,UAAAA,IAMT,CAAA,IAAA,mBAAA,MAAA,WAAA,IAAA,EAAA,KACI,IAAkB,WAAA,OAGZphP,EAAK2hP,iBAMf,CAAA,IAAA,WAAA,MAAA,WACI3hP,KAAKkhP,YAAYvpO,SAIjBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKkhP,YAAc,KAKvB,CAAA,IAAA,QAAA,MAAA,cAIA,CAAA,IAAA,UAAA,MAAA,cAIA,CAAA,IAAA,SAAA,MAAA,WACIlhP,KAAK2hP,cAKT,CAAA,IAAA,UAAA,MAAA,WACS3hP,KAAKi0J,aACNj0J,KAAKi0J,YAAAA,EACAj0J,KAAKwhP,cACNxhP,KAAKyhP,WAETzhP,KAAKy5B,SACLz5B,KAAKmhP,cAAcxpO,SAInBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKmhP,cAAgB,MAM7B,CAAA,IAAA,QAAA,MAAA,cAKA,CAAA,IAAA,cAAA,MAAA,SAAYt6N,MAIZ,CAAA,IAAA,cAAA,MAAA,WACI,OAAO,IAOX,CAAA,IAAA,kBAAA,MAAA,SAAgB+6N,GAEZ,IAAMC,EAAuB,SAAbD,EAAuB5hP,KAAKkhP,YAAclhP,KAAKihP,WAC/DY,EAAQlqO,SAIRvT,SAAAA,GAAAA,OAAMA,OACNy9O,EAAQ7mP,OAAS,MAAA,EAzJnBgmP,GA8MAc,GAAAA,WAIF,SAAA,EAAYC,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACR/hP,KAAKihP,WAAa,GAClBjhP,KAAKkhP,YAAc,GACnBlhP,KAAKqhP,WAAAA,EACLrhP,KAAKohP,UAAAA,EACLphP,KAAKi0J,YAAAA,EACLj0J,KAAKmhP,cAAgB,GACrBnhP,KAAKshP,aAAe,KACpBthP,KAAKuhP,UAAY,EACjBvhP,KAAKgiP,QAAUD,EAEf,IAAIE,EAAY,EAEZC,EAAe,EAEfC,EAAa,EAEXtkD,EAAQ79L,KAAKgiP,QAAQhnP,OACd,GAAT6iM,EACA,IAAkB,WAAA,OAGZ79L,EAAK2hP,eAGX3hP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GACIA,EAAOC,QAAO,aAIJJ,GAAapkD,GACf79L,EAAK2hP,eAGbS,EAAO36G,WAAU,aAIPy6G,GAAgBrkD,GAClB79L,EAAKsiP,gBAGbF,EAAOpoN,SAAQ,aAILmoN,GAActkD,GAChB79L,EAAKyhP,iBAKrBzhP,KAAKuhP,UAAYvhP,KAAKgiP,QAAQ99O,QAAO,SAKpCq1B,EAAM6oN,GAL8B,OAKnBp/N,KAAKvI,IAAI8e,EAAM6oN,EAAOb,aAAa,GAuNpC,OAjNrB,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,WACSvhP,KAAKqhP,YACNrhP,KAAKqhP,WAAAA,EACLrhP,KAAKihP,WAAWtpO,SAIhBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKihP,WAAa,MAM1B,CAAA,IAAA,OAAA,MAAA,WACIjhP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAAAA,OAAUA,EAAOp2H,YAMrB,CAAA,IAAA,UAAA,MAAA,SAAQ5nH,GACJpE,KAAKkhP,YAAYxgP,KAAK0D,KAM1B,CAAA,IAAA,WAAA,MAAA,WACSpE,KAAKwhP,eACNxhP,KAAKohP,UAAAA,EACLphP,KAAKkhP,YAAYvpO,SAIjBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKkhP,YAAc,MAO3B,CAAA,IAAA,SAAA,MAAA,SAAO98O,GACHpE,KAAKihP,WAAWvgP,KAAK0D,KAMzB,CAAA,IAAA,YAAA,MAAA,SAAUA,GACNpE,KAAKmhP,cAAczgP,KAAK0D,KAK5B,CAAA,IAAA,aAAA,MAAA,WACI,OAAOpE,KAAKohP,WAKhB,CAAA,IAAA,OAAA,MAAA,WACSphP,KAAKshP,cACNthP,KAAKgsH,OAEThsH,KAAKyhP,WACLzhP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAAAA,OAAUA,EAAOG,YAKrB,CAAA,IAAA,QAAA,MAAA,WACIviP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAAAA,OAAUA,EAAOI,aAKrB,CAAA,IAAA,UAAA,MAAA,WACIxiP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAAAA,OAAUA,EAAOv+I,eAKrB,CAAA,IAAA,SAAA,MAAA,WACI7jG,KAAK2hP,YACL3hP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAAAA,OAAUA,EAAO3oN,cAKrB,CAAA,IAAA,UAAA,MAAA,WACIz5B,KAAKsiP,eAMT,CAAA,IAAA,aAAA,MAAA,WACStiP,KAAKi0J,aACNj0J,KAAKi0J,YAAAA,EACLj0J,KAAK2hP,YACL3hP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAAAA,OAAUA,EAAOjoK,aACjBn6E,KAAKmhP,cAAcxpO,SAInBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKmhP,cAAgB,MAM7B,CAAA,IAAA,QAAA,MAAA,WACInhP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAAAA,OAAUA,EAAO3iL,WACjBz/D,KAAKi0J,YAAAA,EACLj0J,KAAKqhP,WAAAA,EACLrhP,KAAKohP,UAAAA,IAMT,CAAA,IAAA,cAAA,MAAA,SAAY16O,GAER,IAAM+7O,EAAiB/7O,EAAI1G,KAAKuhP,UAChCvhP,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAEI,IAAMv7N,EAAWu7N,EAAOb,UAAYv+N,KAAKxI,IAAI,EAAGioO,EAAiBL,EAAOb,WAAa,EACrFa,EAAOM,YAAY77N,QAM3B,CAAA,IAAA,cAAA,MAAA,WAEI,IAAIrM,EAAM,EAUV,OATAxa,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GAEI,IAAM17O,EAAI07O,EAAOO,cACjBnoO,EAAMwI,KAAKxI,IAAI9T,EAAG8T,MAEfA,IAKX,CAAA,IAAA,gBAAA,MAAA,WACIxa,KAAKgiP,QAAQrqO,SAIbyqO,SAAAA,GACQA,EAAOQ,eACPR,EAAOQ,qBASnB,CAAA,IAAA,kBAAA,MAAA,SAAgBhB,GAEZ,IAAMC,EAAuB,SAAbD,EAAuB5hP,KAAKkhP,YAAclhP,KAAKihP,WAC/DY,EAAQlqO,SAIRvT,SAAAA,GAAAA,OAAMA,OACNy9O,EAAQ7mP,OAAS,MAAA,EAxRnB8mP,GChnDN,SAASe,KAML,MAA0B,oBAAZ1yJ,SAAyD,qBAA9B,GAAGtwF,SAASpB,KAAK0xF,SAM9D,SAAS2yJ,GAAoBd,GACzB,OAAQA,EAAQhnP,QACZ,KAAK,EACD,OAAO,IAAIgmP,GACf,KAAK,EACD,OAAOgB,EAAQ,GACnB,QACI,OAAO,IAAI,GAAsBA,IAY7C,SAASe,GAAmBC,EAAQC,EAAYhiP,EAASiiP,GAAwC,IAA7BC,EAA6B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAjB,GAAIC,EAAa,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAEvFtuO,EAAS,GAETuuO,EAAsB,GAExBC,GAAkB,EAElBC,EAAmB,KA4CvB,GA3CAL,EAAUvrO,SAIV6rO,SAAAA,GAEI,IAAM9pO,EAA4B8pO,EAAa,OAEzCC,EAAe/pO,GAAU4pO,EAEzBI,EAAsBD,GAAgBF,GAAqB,GACjEx9O,OAAOP,KAAKg+O,GAAI7rO,SAIhByI,SAAAA,GAEI,IAAIujO,EAAiBvjO,EAEjB0jB,EAAkB0/M,EAAGpjO,GACzB,GAAa,WAATA,EAEA,OADAujO,EAAiBV,EAAWW,sBAAsBD,EAAgB7uO,GAC1DgvB,GACJ,IDy3DD,ICx3DKA,EAAkBq/M,EAAU/iO,GAC5B,MACJ,ID6FD,IC5FK0jB,EAAkBs/M,EAAWhjO,GAC7B,MACJ,QACI0jB,EACIm/M,EAAWY,oBAAoBzjO,EAAMujO,EAAgB7/M,EAAiBhvB,GAItF4uO,EAAmBC,GAAkB7/M,KAEpC2/M,GACDJ,EAAoB3iP,KAAKgjP,GAE7BH,EAAmBG,EACnBJ,EAAiB5pO,KAEjB5E,EAAO9Z,OAAQ,CAEf,IAAM8oP,EAAa,QACnB,MAAM,IAAIj+O,MAAJ,iDAAA,OAA2Di+O,GAA3D,OAAwEhvO,EAAOpP,KAAKo+O,KAE9F,OAAOT,EASX,SAASU,GAAe3B,EAAQtiO,EAAW+T,EAAOnvB,GAC9C,OAAQob,GACJ,IAAK,QACDsiO,EAAOpoN,SAAQ,WAAA,OAGTt1B,EAASmvB,GAASmwN,GAAmBnwN,EAAO,QAASuuN,OAC3D,MACJ,IAAK,OACDA,EAAOC,QAAO,WAAA,OAGR39O,EAASmvB,GAASmwN,GAAmBnwN,EAAO,OAAQuuN,OAC1D,MACJ,IAAK,UACDA,EAAO36G,WAAU,WAAA,OAGX/iI,EAASmvB,GAASmwN,GAAmBnwN,EAAO,UAAWuuN,QAUzE,SAAS4B,GAAmBvgP,EAAGm+O,EAAWQ,GAEtC,IAAMb,EAAYa,EAAOb,UAInB1tN,EAAQowN,GAAmBxgP,EAAExC,QAASwC,EAAEygP,YAAazgP,EAAE0gP,UAAW1gP,EAAE2gP,QAASxC,GAAan+O,EAAEm+O,UAAwB54H,MAAbu4H,EAAyB99O,EAAE89O,UAAYA,IAFnI,EAA8B/vC,UAIzCr1M,EAAO,EAAgC,MAI7C,OAHY,MAARA,IACA,EAAoC,MAAIA,GAErC03B,EAYX,SAASowN,GAAmBhjP,EAASijP,EAAaC,EAAWC,GAAwC5yC,IAA/BowC,EAA+BpwC,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAnB,GAAI+vC,EAAe/vC,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAH,EAAGA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EACjG,MAAO,CAAEvwM,QAAAA,EAASijP,YAAAA,EAAaC,UAAAA,EAAWC,QAAAA,EAASxC,UAAAA,EAAWL,UAAAA,EAAW/vC,WAAYA,GAQzF,SAAS6yC,GAAgBtvO,EAAK7Y,EAAKgiM,GAE/B,IAAIz4L,EAaJ,OAZIsP,aAAe++I,KACfruJ,EAAQsP,EAAI8N,IAAI3mB,KAEZ6Y,EAAIiN,IAAI9lB,EAAKuJ,EAAQy4L,IAIzBz4L,EAAQsP,EAAI7Y,MAERuJ,EAAQsP,EAAI7Y,GAAOgiM,GAGpBz4L,EAMX,SAAS6+O,GAAqBtrK,GAE1B,IAAMurK,EAAevrK,EAAQp3E,QAAQ,KAKrC,MAAO,CAHIo3E,EAAQx1E,UAAU,EAAG+gP,GAEjBvrK,EAAQl3E,OAAOyiP,EAAe,IAIjD,IAAIC,GAAY,SAKfC,EAAMC,GALS,OAKTA,GAGHC,GAAW,SAKd1jP,EAAS69B,GALK,OAKLA,GAGN8lN,GAAS,SAMZ3jP,EAAS69B,EAAU+2H,GANP,MAOF,IAMLgvF,GAAUhC,MACZgC,IAA8B,oBAAZjzN,WAElB4yN,GAAY,SAKXC,EAAMC,GALK,OAMkBD,EAAK/iO,SAASgjO,IAE5CC,GAAW,WAIP,GAAIE,IAAWjzN,QAAQ1sB,UAAUwgJ,QAC7B,OAAO,SAKNzkJ,EAAS69B,GALH,OAKgB79B,EAAQykJ,QAAQ5mH,IAIvC,IAAMvkB,EAA2BqX,QAAkB,UAE7CxtB,EAAKmW,EAAMuqO,iBAAmBvqO,EAAMwqO,oBAAsBxqO,EAAMyqO,mBAClEzqO,EAAM0qO,kBAAoB1qO,EAAM2qO,sBACpC,OAAI9gP,EACO,SAKNnD,EAAS69B,GALH,OAKgB16B,EAAG5F,MAAMyC,EAAS,CAAC69B,KAGnC6lN,GA3BR,GA+BXC,GAAS,SAMR3jP,EAAS69B,EAAU+2H,GAEhB,IAAIxwH,EAAU,GACd,GAAIwwH,EACAxwH,EAAQ3kC,KAAR2kC,MAAAA,EAAAA,oBAAgBpkC,EAAQ2+N,iBAAiB9gM,SAExC,CAED,IAAMqmN,EAAMlkP,EAAQ6lB,cAAcgY,GAC9BqmN,GACA9/M,EAAQ3kC,KAAKykP,GAGrB,OAAO9/M,IAaf,IAAI+/M,GAAe,KAEfC,IAAAA,EAKJ,SAASC,GAAsBllO,GACtBglO,KACDA,IAmBmB,oBAAZ3nP,SACAA,SAAS6N,KAEb,OAtB6B,GAChC+5O,KAAa,GAAkC74O,OAAS,qBAAsB,GAAkCA,OAGpH,IAAI9I,GAAAA,EASJ,OARI,GAAkC8I,QApB1C,SAA8B4T,GAG1B,MAA+B,SAAxBA,EAAK5c,UAAU,EAAG,GAH7B,CAoByE4c,OACjE1c,EAAS0c,KAAQ,GAAkC5T,QACpC64O,MAGX3hP,EADkB,SAAW0c,EAAKzkB,OAAO,GAAGuqB,cAAgB9F,EAAKte,OAAO,KAClD,GAAkC0K,OAGzD9I,EAYX,IAAM6hP,GAAiBZ,GAEjBa,GAAkBhB,GAElBiB,GAAcb,GAKpB,SAASc,GAAoBpuO,GAEzB,IAAMgyL,EAAS,GAUf,OATAvjM,OAAOP,KAAK8R,GAAQK,SAIpByI,SAAAA,GAEI,IAAMulO,EAAUvlO,EAAKvU,QAAQ,kBAAmB,SAChDy9L,EAAOq8C,GAAWruO,EAAO8I,MAEtBkpL,EAAAA,IAWLs8C,GAXKt8C,KAWLs8C,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAqD2C9hJ,OArD3C8hJ,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,wBAAAA,MAAAA,SAKoBxlO,GAClB,OAAOklO,GAAsBllO,KAOjC,CAAA,IAAA,iBAAA,MAAA,SAAenf,EAAS69B,GACpB,OAAOymN,GAAetkP,EAAS69B,KAOnC,CAAA,IAAA,kBAAA,MAAA,SAAgB2lN,EAAMC,GAClB,OAAOc,GAAgBf,EAAMC,KAQjC,CAAA,IAAA,QAAA,MAAA,SAAMzjP,EAAS69B,EAAU+2H,GACrB,OAAO4vF,GAAYxkP,EAAS69B,EAAU+2H,KAQ1C,CAAA,IAAA,eAAA,MAAA,SAAa50J,EAASmf,EAAM89K,GACxB,OAAOA,GAAgB,KAY3B,CAAA,IAAA,UAAA,MAAA,SAAQj9L,EAASiiP,EAAW1pN,EAAUsqE,EAAOlqE,GACzC,OADuEisN,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,IAAAA,UAAAA,GAAAA,UAAAA,OAAAA,GAAAA,UAAAA,GAChE,IAAI7E,GAAoBxnN,EAAUsqE,OAAAA,EArD3C8hJ,IAwDchjH,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAK4rP,KACtFA,GAAoBllH,WAAQ,GAA0B,CAAErB,MAAOumH,GAAqBtwO,QAASswO,GAAoBhjH,YADjHgjH,IAAAA,GAAAA,WAAAA,IASME,EAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,OAENA,EAAgBC,KAAO,IAAI,GAA3BD,EAXAF,GAgGA,SAASI,GAAmBvgP,GACxB,GAAoB,iBAATA,EACP,OAAOA,EAEX,IAAMigJ,EAAUjgJ,EAAM3F,MAAM,qBAC5B,OAAK4lJ,GAAWA,EAAQ1qJ,OAAS,EACtB,EACJirP,GAAsB1gO,WAAWmgI,EAAQ,IAAKA,EAAQ,IAOjE,SAASugG,GAAsBxgP,EAAOkgB,GAClC,OAAQA,GACJ,IAAK,IACD,OA1CO,IA0CAlgB,EACX,QACI,OAAOA,GASnB,SAASygP,GAAcvF,EAAS7rO,EAAQqxO,GACpC,OAAOxF,EAAQpiP,eAAe,YAC1B,EASR,SAA6By4K,EAAKliK,EAAQqxO,GAItC,IAAI3sN,EAEAsqE,EAAQ,EAERlqE,EAAS,GACb,GAAmB,iBAARo9I,EAAkB,CAEzB,IAAMtxB,EAAUsxB,EAAIl3K,MATV,4EAUV,GAAgB,OAAZ4lJ,EAEA,OADA5wI,EAAOpU,KAAPoU,8BAAAA,OAA0CkiK,EAA1CliK,kBACO,CAAE0kB,SAAU,EAAGsqE,MAAO,EAAGlqE,OAAQ,IAE5CJ,EAAWysN,GAAsB1gO,WAAWmgI,EAAQ,IAAKA,EAAQ,IAEjE,IAAM0gG,EAAa1gG,EAAQ,GACT,MAAd0gG,IACAtiJ,EAAQmiJ,GAAsB1gO,WAAW6gO,GAAa1gG,EAAQ,KAGlE,IAAM2gG,EAAY3gG,EAAQ,GACtB2gG,IACAzsN,EAASysN,QAIb7sN,EAAWw9I,EAEf,IAAKmvE,EAAqB,CAEtB,IAAIG,GAAAA,EAEA/mJ,EAAazqF,EAAO9Z,OACpBw+B,EAAW,IACX1kB,EAAOpU,KAAK,oEACZ4lP,GAAAA,GAEAxiJ,EAAQ,IACRhvF,EAAOpU,KAAK,iEACZ4lP,GAAAA,GAEAA,GACAxxO,EAAOlU,OAAO2+F,EAAY,EAA1BzqF,8BAAAA,OAA2DkiK,EAA3DliK,kBAGR,MAAO,CAAE0kB,SAAAA,EAAUsqE,MAAAA,EAAOlqE,OAAAA,GAhD9B,CAR4B,EAA8B9kB,EAAQqxO,GA+DlE,SAASI,GAAQvgP,GAAmB,IAAd6B,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAQhC,OAPA9B,OAAOP,KAAKQ,GAAK2R,SAIjByI,SAAAA,GACIvY,EAAYuY,GAAQpa,EAAIoa,MAErBvY,EA2BX,SAAS2+O,GAAW7xN,EAAQ8xN,GAA6B,IAAd5+O,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACrD,GAAI4+O,EAIA,IAAK,IAAIrmO,KAAQuU,EACb9sB,EAAYuY,GAAQuU,EAAOvU,QAI/BmmO,GAAQ5xN,EAAQ9sB,GAEpB,OAAOA,EAQX,SAAS6+O,GAAwBzlP,EAAS/E,EAAKuJ,GAG3C,OAAIA,EACOvJ,EAAM,IAAMuJ,EAAQ,IAGpB,GAOf,SAASkhP,GAAoB1lP,GAOzB,IADA,IAAI2lP,EAAiB,GACZjsP,EAAI,EAAGA,EAAIsG,EAAQuL,MAAMxR,OAAQL,IAAK,CAE3C,IAAMuB,EAAM+E,EAAQuL,MAAMtJ,KAAKvI,GAC/BisP,GAAkBF,GAAwBzlP,EAAS/E,EAAK+E,EAAQuL,MAAMq6O,iBAAiB3qP,IAE3F,IAAK,IAAMA,KAAO+E,EAAQuL,MAEjBvL,EAAQuL,MAAMjO,eAAerC,KAAQA,EAAI42L,WAAW,OAKzD8zD,GAAkBF,GAAwBzlP,EADN/E,EAkM3B2P,QAAQ,kBAAmB,SAAS6C,cAjMezN,EAAQuL,MAAMtQ,KAE9E+E,EAAQyL,aAAa,QAASk6O,GAQlC,SAASE,GAAU7lP,EAAS0zB,EAAQoyN,GAC5B9lP,EAAe,QACf8E,OAAOP,KAAKmvB,GAAQhd,SAIpByI,SAAAA,GAEI,IAAM6qG,EAAY,GAAoB7qG,GAClC2mO,IAAiBA,EAAaxoP,eAAe6hB,KAC7C2mO,EAAa3mO,GAAQnf,EAAQuL,MAAMy+G,IAEvChqH,EAAQuL,MAAMy+G,GAAat2F,EAAOvU,MAGlCyiO,MACA8D,GAAoB1lP,IAShC,SAAS+lP,GAAY/lP,EAAS0zB,GACtB1zB,EAAe,QACf8E,OAAOP,KAAKmvB,GAAQhd,SAIpByI,SAAAA,GAEI,IAAM6qG,EAAY,GAAoB7qG,GACtCnf,EAAQuL,MAAMy+G,GAAa,MAG3B43H,MACA8D,GAAoB1lP,IAQhC,SAASgmP,GAAwBpG,GAC7B,OAAIp6O,MAAMqQ,QAAQ+pO,GACM,GAAhBA,EAAM7lP,OACC6lP,EAAM,GACVD,GAASC,GAEb,EA0BX,IAAMqG,GAAc,IAAIjxO,OAAO,oBAAmE,KAKlG,SAASkxO,GAAmB1hP,GAExB,IAAI4xJ,EAAS,GACb,GAAqB,iBAAV5xJ,EAAoB,CAG3B,IADA,IAAI3F,EACGA,EAAQonP,GAAYzlP,KAAKgE,IAC5B4xJ,EAAO32J,KAAwBZ,EAAM,IAEzConP,GAAYvgN,UAAY,EAE5B,OAAO0wH,EAQX,SAAS+vF,GAAkB3hP,EAAO4xJ,EAAQviJ,GAEtC,IAAM25C,EAAWhpD,EAAM5F,WAEjBiyB,EAAM28B,EAAS5iD,QAAQq7O,IAAa,SAKzC1vO,EAAG6vO,GAEA,IAAIC,EAAWjwF,EAAOgwF,GAMtB,OAJKhwF,EAAO94J,eAAe8oP,KACvBvyO,EAAOpU,KAAPoU,kDAAAA,OAA8DuyO,IAC9DC,EAAW,IAERA,EAASznP,cAGpB,OAAOiyB,GAAO28B,EAAWhpD,EAAQqsB,EAMrC,SAASy1N,GAAgB/9H,GAKrB,IAHA,IAAM5zF,EAAM,GAER1yB,EAAOsmH,EAASthH,QACZhF,EAAKy4H,MACT/lG,EAAIl1B,KAAKwC,EAAKuC,OACdvC,EAAOsmH,EAASthH,OAEpB,OAAO0tB,EA6BX,IAAM,GAAmB,gBAKzB,SAAS,GAAoB16B,GACzB,OAAOA,EAAM2Q,QAAQ,IAAkB,WAAA,IAAA,IAAA,EAAA,UAAA,OAInC2B,EAJmC,IAAA,MAAA,GAAA,EAAA,EAAA,EAAA,EAAA,IAInCA,EAJmC,GAAA,UAAA,GAAA,OAI7BA,EAAE,GAAG0Y,iBAcnB,SAASshO,GAA+BhuN,EAAUsqE,GAC9C,OAAoB,IAAbtqE,GAA4B,IAAVsqE,EAQ7B,SAAS2jJ,GAAmCxmP,EAASiiP,EAAWwE,GAE5D,IAAMC,EAAqB5hP,OAAOP,KAAKkiP,GACvC,GAAIC,EAAmB3sP,QAAUkoP,EAAUloP,OAAQ,CAE/C,IAAI4sP,EAAmB1E,EAAU,GAE7B2E,EAAoB,GAWxB,GAVAF,EAAmBhwO,SAInByI,SAAAA,GACSwnO,EAAiBrpP,eAAe6hB,IACjCynO,EAAkBnnP,KAAK0f,GAE3BwnO,EAAiBxnO,GAAQsnO,EAAetnO,MAExCynO,EAAkB7sP,OAElB,IAFJ,IAAA,EAAA,WAIQ,IAAIwoP,EAAKN,EAAUvoP,GACnBktP,EAAkBlwO,SAAQ,SAIhByI,GACNojO,EAAGpjO,GAAQ0nO,GAAa7mP,EAASmf,OARhCzlB,EAAI,EAAGA,EAAIuoP,EAAUloP,OAAQL,IAAK,IAanD,OAAOuoP,EAQX,SAAS6E,GAAaC,EAAS5oN,EAAMv2B,GACjC,OAAQu2B,EAAKj0B,MACT,KAAK,EACD,OAAO68O,EAAQC,aAAa7oN,EAAMv2B,GACtC,KAAK,EACD,OAAOm/O,EAAQE,WAAW9oN,EAAMv2B,GACpC,KAAK,EACD,OAAOm/O,EAAQG,gBAAgB/oN,EAAMv2B,GACzC,KAAK,EACD,OAAOm/O,EAAQI,cAAchpN,EAAMv2B,GACvC,KAAK,EACD,OAAOm/O,EAAQK,WAAWjpN,EAAMv2B,GACpC,KAAK,EACD,OAAOm/O,EAAQM,aAAalpN,EAAMv2B,GACtC,KAAK,EACD,OAAOm/O,EAAQO,eAAenpN,EAAMv2B,GACxC,KAAK,EACD,OAAOm/O,EAAQQ,WAAWppN,EAAMv2B,GACpC,KAAK,EACD,OAAOm/O,EAAQS,eAAerpN,EAAMv2B,GACxC,KAAK,EACD,OAAOm/O,EAAQU,kBAAkBtpN,EAAMv2B,GAC3C,KAAK,GACD,OAAOm/O,EAAQW,gBAAgBvpN,EAAMv2B,GACzC,KAAK,GACD,OAAOm/O,EAAQY,WAAWxpN,EAAMv2B,GACpC,KAAK,GACD,OAAOm/O,EAAQa,aAAazpN,EAAMv2B,GACtC,QACI,MAAM,IAAIhD,MAAJ,8CAAA,OAAwDu5B,EAAKj0B,QAQ/E,SAAS28O,GAAa7mP,EAASmf,GAC3B,OAA2BljB,OAAO44B,iBAAiB70B,GAAYmf,GA2GnE,IAAM0oO,GAAsB,IAAI90F,IAAI,CAAC,OAAQ,MAEvC+0F,GAAuB,IAAI/0F,IAAI,CAAC,QAAS,MAM/C,SAASg1F,GAAqBC,EAAKC,GAE/B,IAAMC,EAAoBL,GAAoB/yF,IAAIkzF,IAAQF,GAAqBhzF,IAAIkzF,GAE7EG,EAAoBN,GAAoB/yF,IAAImzF,IAAQH,GAAqBhzF,IAAImzF,GACnF,OAAO,SAKN/E,EAAWC,GAER,IAAIiF,EA/GM,KA+GKJ,GAAoBA,GAAO9E,EAEtCmF,EAjHM,KAiHKJ,GAAoBA,GAAO9E,EAO1C,OANKiF,GAAYF,GAA0C,kBAAdhF,IACzCkF,EAAWlF,EAAY2E,GAAoB/yF,IAAIkzF,GAAOF,GAAqBhzF,IAAIkzF,KAE9EK,GAAYF,GAAwC,kBAAZhF,IACzCkF,EAAWlF,EAAU0E,GAAoB/yF,IAAImzF,GAAOH,GAAqBhzF,IAAImzF,IAE1EG,GAAYC,GAU3B,IAEMC,GAAmB,IAAItzO,OAAO,cAAyB,KA2C7D,SAASuzO,GAAkBxG,EAAQrpF,EAAU7kJ,GACzC,OAAO,IAAI,GAA2BkuO,GAAQn9B,MAAMlsD,EAAU7kJ,GAIlE,IAAM,GAAA,WAIF,SAAA,EAAY20O,GAAAA,gBAAAA,KAAAA,GACRzpP,KAAKypP,QAAUA,EA+iBF,OAxiBjB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM9vF,EAAU7kJ,GAEZ,IAAMjM,EAAU,IAAI6gP,GAA2B50O,GAE/C,OADA9U,KAAK2pP,8BAA8B9gP,GACTk/O,GAAa/nP,KAAMinP,GAAwBttF,GAAW9wJ,KAOpF,CAAA,IAAA,gCAAA,MAAA,SAA8BA,GAC1BA,EAAQ+gP,qBAzBM,GA0Bd/gP,EAAQghP,gBAAkB,GAC1BhhP,EAAQghP,gBA3BM,IA2B2B,GACzChhP,EAAQsxB,YAAc,IAO1B,CAAA,IAAA,eAAA,MAAA,SAAaw/H,EAAU9wJ,GAAAA,IAAAA,EAAAA,KAEfihP,EAAajhP,EAAQihP,WAAa,EAElCC,EAAWlhP,EAAQkhP,SAAW,EAE5BjgD,EAAS,GAETkgD,EAAc,GAoCpB,MAnC+B,KAA3BrwF,EAAS/5J,KAAKjE,OAAO,IACrBkN,EAAQiM,OAAOpU,KAAK,wFAExBi5J,EAAS+mF,YAAY/oO,SAIrB2oH,SAAAA,GAEI,GADAtgI,EAAK2pP,8BAA8B9gP,GACnB,GAAZy3H,EAAIn1H,KAAuB,CAE3B,IAAM8+O,EAAW,EAEXrqP,EAAOqqP,EAASrqP,KACtBA,EAAKC,WAAW2B,MAAM,WAAWmW,SAIjCjH,SAAAA,GACIu5O,EAASrqP,KAAO8Q,EAChBo5L,EAAOppM,KAAKV,EAAKkoP,WAAW+B,EAAUphP,OAE1CohP,EAASrqP,KAAOA,OAEf,GAAgB,GAAZ0gI,EAAIn1H,KAA4B,CAErC,IAAM21O,EAAa9gP,EAAKmoP,gBAAgB,EAA0Bt/O,GAClEihP,GAAchJ,EAAWgJ,WACzBC,GAAYjJ,EAAWiJ,SACvBC,EAAYtpP,KAAKogP,QAGjBj4O,EAAQiM,OAAOpU,KAAK,8EAGrB,CACHyK,KAAM,EACNvL,KAAM+5J,EAAS/5J,KACfkqM,OAAAA,EACAkgD,YAAAA,EACAF,WAAAA,EACAC,SAAAA,EACAr0O,QAAS,QAQjB,CAAA,IAAA,aAAA,MAAA,SAAWikJ,EAAU9wJ,GAEjB,IAAMqhP,EAAWlqP,KAAKwoP,WAAW7uF,EAAShlI,OAAQ9rB,GAE5CshP,EAAaxwF,EAASjkJ,SAAWikJ,EAASjkJ,QAAQ2hJ,QAAW,KACnE,GAAI6yF,EAASE,sBAAuB,CAEhC,IAAMC,EAAc,IAAIr2F,IAElBqD,EAAS8yF,GAAa,GA0B5B,GAzBAD,EAASv1N,OAAOhd,SAIhBlS,SAAAA,GACI,GAAI,GAASA,GAAQ,CAEjB,IAAM6kP,EAAY,EAClBvkP,OAAOP,KAAK8kP,GAAW3yO,SAIvByI,SAAAA,GACI+mO,GAAmBmD,EAAUlqO,IAAOzI,SAIpCmiH,SAAAA,GACSu9B,EAAO94J,eAAeu7H,IACvBuwH,EAAYtiP,IAAI+xH,aAMhCuwH,EAAY5oO,KAAM,CAElB,IAAM8oO,EAAiBhD,GAAgB8C,EAAYxnI,UACnDh6G,EAAQiM,OAAOpU,KAAfmI,UAAAA,OAA8B8wJ,EACzB/5J,KADLiJ,kFAAAA,OAC0F0hP,EAAe7kP,KAAK,SAGtH,MAAO,CACHyF,KAAM,EACNvL,KAAM+5J,EAAS/5J,KACf4M,MAAO09O,EACPx0O,QAASy0O,EAAY,CAAE9yF,OAAQ8yF,GAAc,QAQrD,CAAA,IAAA,kBAAA,MAAA,SAAgBxwF,EAAU9wJ,GACtBA,EAAQihP,WAAa,EACrBjhP,EAAQkhP,SAAW,EAEnB,IArUqBS,EAAiB11O,EAEpC21O,EAmUIjjF,EAAYugF,GAAa/nP,KAAMinP,GAAwBttF,EAAS6N,WAAY3+J,GAGlF,MAAO,CACHsC,KAAM,EACNu/O,UA1UiBF,EAuUgB7wF,EAASynC,KAvURtsL,EAuUcjM,EAAQiM,OArU1D21O,EAAc,GACU,iBAAnBD,EACPA,EAAgBhpP,MAAM,WAAWmW,SAIjCma,SAAAA,GAAAA,OAaR,SAAiC64N,EAAUF,EAAa31O,GACpD,GAAmB,KAAf61O,EAAS,GAAW,CAEpB,IAAMjnP,EA+Bd,SAA6BknP,EAAO91O,GAChC,OAAQ81O,GACJ,IAAK,SACD,MAAO,YACX,IAAK,SACD,MAAO,YACX,IAAK,aACD,OAAO,SAKNzG,EAAWC,GALL,OAKiB7+N,WAAW6+N,GAAW7+N,WAAW4+N,IAC7D,IAAK,aACD,OAAO,SAKNA,EAAWC,GALL,OAKiB7+N,WAAW6+N,GAAW7+N,WAAW4+N,IAC7D,QAEI,OADArvO,EAAOpU,KAAPoU,+BAAAA,OAA2C81O,EAA3C91O,uBACO,UAtBnB,CA/B2C61O,EAAU71O,GAC7C,GAAqB,mBAAVpR,EAEP,YADA+mP,EAAY/pP,KAAKgD,GAGrBinP,EAAWjnP,EAGf,IAAM5D,EAAQ6qP,EAAS7qP,MAAM,2CAC7B,GAAa,MAATA,GAAiBA,EAAM9E,OAAS,EAEhC,OADA8Z,EAAOpU,KAAPoU,uCAAAA,OAAmD61O,EAAnD71O,uBACO21O,EAGX,IAAMtG,EAAYrkP,EAAM,GAElBwzG,EAAYxzG,EAAM,GAElBskP,EAAUtkP,EAAM,GACtB2qP,EAAY/pP,KAAKsoP,GAAqB7E,EAAWC,IAG7B,KAAhB9wI,EAAU,IApDA,KAmDa6wI,GAnDb,KAmDuCC,GAEjDqG,EAAY/pP,KAAKsoP,GAAqB5E,EAASD,IA1BvD,CAbuCryN,EAAK24N,EAAa31O,MAGjD21O,EAAY/pP,KAAK,GAEd+pP,GA8TCjjF,UAAAA,EACAsiF,WAAYjhP,EAAQihP,WACpBC,SAAUlhP,EAAQkhP,SAClBr0O,QAASm1O,GAA0BlxF,EAASjkJ,YAQpD,CAAA,IAAA,gBAAA,MAAA,SAAcikJ,EAAU9wJ,GAAAA,IAAAA,EAAAA,KACpB,MAAO,CACHsC,KAAM,EACN01O,MAAOlnF,EAASknF,MAAM9rO,KAItBhb,SAAAA,GAAAA,OAAKguP,GAAa/nP,EAAMjG,EAAG8O,MAC3B6M,QAASm1O,GAA0BlxF,EAASjkJ,YAQpD,CAAA,IAAA,aAAA,MAAA,SAAWikJ,EAAU9wJ,GAAAA,IAAAA,EAAAA,KAEXsxB,EAActxB,EAAQsxB,YAExB2wN,EAAe,EAEbjK,EAAQlnF,EAASknF,MAAM9rO,KAI7Bw6K,SAAAA,GACI1mL,EAAQsxB,YAAcA,EAEtB,IAAM4wN,EAAWhD,GAAa/nP,EAAMuvL,EAAM1mL,GAE1C,OADAiiP,EAAe9nO,KAAKvI,IAAIqwO,EAAcjiP,EAAQsxB,aACvC4wN,KAGX,OADAliP,EAAQsxB,YAAc2wN,EACf,CACH3/O,KAAM,EACN01O,MAAAA,EACAnrO,QAASm1O,GAA0BlxF,EAASjkJ,YAQpD,CAAA,IAAA,eAAA,MAAA,SAAaikJ,EAAU9wJ,GAEnB,IAGIqhP,EAHEc,EAydd,SAA4BvlP,EAAOqP,GAE/B,IAAI6rO,EAAU,KACd,GAAIl7O,EAAMlH,eAAe,YACrBoiP,EAAU,OAET,GAAoB,iBAATl7O,EAGZ,OAAOwlP,GADU/E,GAAczgP,EAAOqP,GAAQ0kB,SACf,EAAG,IAGtC,IAAM2jI,EAAW,EAOjB,GALkBA,EAAS37J,MAAM,OAAOsyF,MAIxC5mF,SAAAA,GAAAA,MAAoB,KAAfA,EAAEvR,OAAO,IAA4B,KAAfuR,EAAEvR,OAAO,MACrB,CAEX,IAAMuvP,EAAyBD,GAAc,EAAG,EAAG,IAGnD,OAFAC,EAAIC,SAAAA,EACJD,EAAI/tF,SAAWA,EACR,EAGX,OAAO8tF,IADPtK,EAAUA,GAAWuF,GAAc/oF,EAAUroJ,IAChB0kB,SAAUmnN,EAAQ78I,MAAO68I,EAAQ/mN,QA3BlE,CAzd6C+/H,EAASgnF,QAAS93O,EAAQiM,QAC/DjM,EAAQuiP,sBAAwBJ,EAIhC,IAAIK,EAAgB1xF,EAAShlI,OAASglI,EAAShlI,OAAS,GAAM,IAC9D,GAA0B,GAAtB02N,EAAclgP,KACd++O,EAAWlqP,KAAKuoP,eAAe,EAAoC1/O,OAElE,CAED,IAAIwiP,EAAmC1xF,EAAgB,OAEnDn4I,GAAAA,EACJ,IAAK6pO,EAAe,CAChB7pO,GAAAA,EAEA,IAAM8pO,EAAe,GACjBN,EAAUpxN,SACV0xN,EAAqB,OAAIN,EAAUpxN,QAEvCyxN,EAAgB,GAAMC,GAE1BziP,EAAQsxB,aAAe6wN,EAAUxxN,SAAWwxN,EAAUlnJ,MAEtD,IAAMynJ,EAAYvrP,KAAKwoP,WAAW6C,EAAexiP,GACjD0iP,EAAUC,YAAchqO,EACxB0oO,EAAWqB,EAGf,OADA1iP,EAAQuiP,sBAAwB,KACzB,CACHjgP,KAAM,EACNw1O,QAASqK,EACTx+O,MAAO09O,EACPx0O,QAAS,QAQjB,CAAA,IAAA,aAAA,MAAA,SAAWikJ,EAAU9wJ,GAEjB,IAAMqiP,EAAMlrP,KAAKyrP,cAAc9xF,EAAU9wJ,GAEzC,OADA7I,KAAK0rP,kBAAkBR,EAAKriP,GACrBqiP,IAQX,CAAA,IAAA,gBAAA,MAAA,SAAcvxF,EAAU9wJ,GAEpB,IAAM8rB,EAAS,GACXluB,MAAMqQ,QAAQ6iJ,EAAShlI,QACHglI,EAAiB,OAAEhiJ,SAIvCg0O,SAAAA,GAC6B,iBAAdA,ED/wCR,KCgxCKA,EACAh3N,EAAOj0B,KAAKirP,GAGZ9iP,EAAQiM,OAAOpU,KAAfmI,mCAAAA,OAAuD8iP,EAAvD9iP,qBAIJ8rB,EAAOj0B,KAAKirP,MAKpBh3N,EAAOj0B,KAAKi5J,EAAShlI,QAGzB,IAAIy1N,GAAAA,EAEAwB,EAAkB,KA2BtB,OA1BAj3N,EAAOhd,SAIPk0O,SAAAA,GACI,GAAI,GAASA,GAAY,CAErB,IAAMC,EAAW,EAEXlyN,EAASkyN,EAAiB,OAKhC,GAJIlyN,IACAgyN,EAAkB,SACXE,EAAiB,SAEvB1B,EACD,IAAK,IAAIhqO,KAAQ0rO,EAGb,GADcA,EAAS1rO,GACbvgB,WAAW+B,QA7+Bb,OA6+BiD,EAAG,CACxDwoP,GAAAA,EACA,WAMb,CACHj/O,KAAM,EACNwpB,OAAAA,EACAiF,OAAQgyN,EACRlyO,OAAQigJ,EAASjgJ,OACjB0wO,sBAAAA,EACA10O,QAAS,QASjB,CAAA,IAAA,oBAAA,MAAA,SAAkBw1O,EAAKriP,GAAAA,IAAAA,EAAAA,KAEb83O,EAAU93O,EAAQuiP,sBAEpBW,EAAUljP,EAAQsxB,YAElBumD,EAAY73E,EAAQsxB,YACpBwmN,GAAWjgK,EAAY,IACvBA,GAAaigK,EAAQnnN,SAAWmnN,EAAQ78I,OAE5ConJ,EAAIv2N,OAAOhd,SAIX2gL,SAAAA,GACwB,iBAATA,GAEXvyL,OAAOP,KAAK8yL,GAAO3gL,SAInByI,SAAAA,GACI,GAAKpgB,EAAKypP,QAAQnE,sBAAsBllO,GAAxC,CAKA,IA5wBa3a,EAAOiQ,EAASZ,EAEnCuiJ,EAEA3R,EAwwBYmkG,EAAkBhhP,EAAQghP,gBAAmChhP,EAA6B,sBAE1FmjP,EAAiBnC,EAAgBzpO,GAEnC6rO,GAAAA,EACAD,IACItrK,GAAaqrK,GAAWrrK,GAAasrK,EAAetrK,WACpDqrK,GAAWC,EAAeD,UAC1BljP,EAAQiM,OAAOpU,KAAfmI,qBAAAA,OAAyCuX,EAAzCvX,wCAAAA,OAAoFmjP,EAAetrK,UAAnG73E,aAAAA,OAAwHmjP,EACnHD,QADLljP,6EAAAA,OACwF63E,EADxF73E,aAAAA,OAC6GkjP,EAD7GljP,QAEAojP,GAAAA,GAKJvrK,EAAYsrK,EAAetrK,WAE3BurK,IACApC,EAAgBzpO,GAAQ,CAAEsgE,UAAAA,EAAWqrK,QAAAA,IAErCljP,EAAQ6M,UAhyBCjQ,EAiyBW6yL,EAAMl4K,GAjyBV1K,EAiyBiB7M,EAAQ6M,QAjyBhBZ,EAiyByBjM,EAAQiM,OA/xBpEuiJ,EAAS3hJ,EAAQ2hJ,QAAU,IAE3B3R,EAAUyhG,GAAmB1hP,IACvBzK,QACR0qJ,EAAQ/tI,SAIR0vO,SAAAA,GACShwF,EAAO94J,eAAe8oP,IACvBvyO,EAAOpU,KAAPoU,+CAAAA,OAA2DuyO,EAA3DvyO,0CA4vBIjM,EAAQiM,OAAOpU,KAAfmI,oCAAAA,OAAwDuX,EAAxDvX,6DAmChB,CAAA,IAAA,iBAAA,MAAA,SAAe8wJ,EAAU9wJ,GAAAA,IAAAA,EAAAA,KAEfqiP,EAAM,CAAE//O,KAAM,EAAmBwpB,OAAQ,GAAIjf,QAAS,MAC5D,IAAK7M,EAAQuiP,sBAET,OADAviP,EAAQiM,OAAOpU,KAAK,4DACbwqP,EAKX,IAAIgB,EAA4B,EAE1Bj+J,EAAU,GAEZk+J,GAAAA,EAEAC,GAAAA,EAEA9I,EAAiB,EAEfJ,EAAYvpF,EAASknF,MAAM9rO,KAIjC4f,SAAAA,GAEI,IAAMnoB,EAAQxM,EAAKyrP,cAAc92N,EAAQ9rB,GAErCwjP,EAA4B,MAAhB7/O,EAAMkN,OAAiBlN,EAAMkN,OAgOzD,SAAuBib,GACnB,GAAqB,iBAAVA,EACP,OAAO,KAEX,IAAIjb,EAAS,KACb,GAAIjT,MAAMqQ,QAAQ6d,GACdA,EAAOhd,SAIPg0O,SAAAA,GACI,GAAI,GAASA,IAAeA,EAAWptP,eAAe,UAAW,CAE7D,IAAMyH,EAAM,EACZ0T,EAAS6L,WAA8Bvf,EAAc,eAC9CA,EAAY,gBAI1B,GAAI,GAAS2uB,IAAWA,EAAOp2B,eAAe,UAAW,CAE1D,IAAMyH,EAAM2uB,EACZjb,EAAS6L,WAA8Bvf,EAAc,eAC9CA,EAAY,OAEvB,OAAO0T,EAzBX,CAhOgFlN,EAAMmoB,QAEtEjb,EAAS,EASb,OARiB,MAAb2yO,IACAH,IACAxyO,EAASlN,EAAMkN,OAAS2yO,GAE5BD,EAAsBA,GAAuB1yO,EAAS,GAAKA,EAAS,EACpEyyO,EAAoBA,GAAqBzyO,EAAS4pO,EAClDA,EAAiB5pO,EACjBu0E,EAAQvtF,KAAKgZ,GACNlN,KAEP4/O,GACAvjP,EAAQiM,OAAOpU,KAAK,+DAEpByrP,GACAtjP,EAAQiM,OAAOpU,KAAK,wDAGxB,IAAM1F,EAAS2+J,EAASknF,MAAM7lP,OAE1BsxP,EAAkB,EAClBJ,EAA4B,GAAKA,EAA4BlxP,EAC7D6N,EAAQiM,OAAOpU,KAAK,yEAEc,GAA7BwrP,IACLI,EA/CwB,GA+CiBtxP,EAAS,IAGtD,IAAMuxP,EAAQvxP,EAAS,EAEjBm/B,EAActxB,EAAQsxB,YAEtBixN,EAA2CviP,EAA8B,sBAEzE2jP,EAAkBpB,EAAsB5xN,SAiB9C,OAhBA0pN,EAAUvrO,SAAQ,SAKjB6rO,EAAI7oP,GAED,IAAM+e,EAAS4yO,EAAkB,EAAK3xP,GAAK4xP,EAAQ,EAAKD,EAAkB3xP,EAAMszF,EAAQtzF,GAElF8xP,EAAwB/yO,EAAS8yO,EACvC3jP,EAAQsxB,YAAcA,EAAcixN,EAAsBtnJ,MAAQ2oJ,EAClErB,EAAsB5xN,SAAWizN,EACjCzsP,EAAK0rP,kBAAkBlI,EAAI36O,GAC3B26O,EAAG9pO,OAASA,EACZwxO,EAAIv2N,OAAOj0B,KAAK8iP,MAEb0H,IAOX,CAAA,IAAA,iBAAA,MAAA,SAAevxF,EAAU9wJ,GACrB,MAAO,CACHsC,KAAM,EACNq8J,UAAWugF,GAAa/nP,KAAMinP,GAAwBttF,EAAS6N,WAAY3+J,GAC3E6M,QAASm1O,GAA0BlxF,EAASjkJ,YAQpD,CAAA,IAAA,oBAAA,MAAA,SAAkBikJ,EAAU9wJ,GAExB,OADAA,EAAQkhP,WACD,CACH5+O,KAAM,EACNuK,QAASm1O,GAA0BlxF,EAASjkJ,YAQpD,CAAA,IAAA,kBAAA,MAAA,SAAgBikJ,EAAU9wJ,GACtB,MAAO,CACHsC,KAAM,GACNq8J,UAAWxnK,KAAKyoP,eAAe9uF,EAAS6N,UAAW3+J,GACnD6M,QAASm1O,GAA0BlxF,EAASjkJ,YAQpD,CAAA,IAAA,aAAA,MAAA,SAAWikJ,EAAU9wJ,GAEjB,IAAM6jP,EAAoC7jP,EAA6B,qBAEjE6M,EAA8BikJ,EAASjkJ,SAAW,GACxD7M,EAAQihP,aACRjhP,EAAQ8jP,aAAehzF,EANN9wJ,IAAAA,EAAAA,eA0DzB,SAA2Bi2B,GAEvB,IAAM8tN,IAAe9tN,EAASt9B,MAAM,WAAW4vB,MAI/CiuG,SAAAA,GAAAA,MA3nBe,SA2nBNA,KAYT,OAXIutH,IACA9tN,EAAWA,EAASjzB,QAAQ09O,GAAkB,KAU3C,CAPPzqN,EAAWA,EAASjzB,QAAQ,OAjvCJ,eAkvCnBA,QAAQ,SAIb/L,SAAAA,GAAAA,MAAS+sP,eAA4B/sP,EAAMgC,OAAO,MAC7C+J,QAAQ,cAnvCa,iBAovCR+gP,GAlBtB,CAnD0DjzF,EAAS76H,UAP1Cj2B,GAOVi2B,EAPUj2B,EAAAA,GAOAikP,EAPAjkP,EAAAA,GAQjBA,EAAQ+gP,qBACJ8C,EAAe1xP,OAAU0xP,EAAiB,IAAM5tN,EAAYA,EAChEulN,GAAgBx7O,EAAQghP,gBAAiBhhP,EAAQ+gP,qBAAsB,IAEvE,IAAMpiF,EAAYugF,GAAa/nP,KAAMinP,GAAwBttF,EAAS6N,WAAY3+J,GAGlF,OAFAA,EAAQ8jP,aAAe,KACvB9jP,EAAQ+gP,qBAAuB8C,EACxB,CACHvhP,KAAM,GACN2zB,SAAAA,EACAytN,MAAO72O,EAAQ62O,OAAS,EACxB5zF,WAAYjjJ,EAAQijJ,SACpBm0F,YAAAA,EACAtlF,UAAAA,EACAulF,iBAAkBpzF,EAAS76H,SAC3BppB,QAASm1O,GAA0BlxF,EAASjkJ,YAQpD,CAAA,IAAA,eAAA,MAAA,SAAaikJ,EAAU9wJ,GACdA,EAAQ8jP,cACT9jP,EAAQiM,OAAOpU,KAAK,gDAGxB,IAAMigP,EAA+B,SAArBhnF,EAASgnF,QACrB,CAAEnnN,SAAU,EAAGsqE,MAAO,EAAGlqE,OAAQ,QACjCssN,GAAcvsF,EAASgnF,QAAS93O,EAAQiM,QAAAA,GAC5C,MAAO,CACH3J,KAAM,GACNq8J,UAAWugF,GAAa/nP,KAAMinP,GAAwBttF,EAAS6N,WAAY3+J,GAC3E83O,QAAAA,EACAjrO,QAAS,UAAA,EApjBf,GA8lBAg0O,GAIF,SAAA,EAAY50O,GAAAA,gBAAAA,KAAAA,GACR9U,KAAK8U,OAASA,EACd9U,KAAK8pP,WAAa,EAClB9pP,KAAK+pP,SAAW,EAChB/pP,KAAKgtP,kBAAoB,KACzBhtP,KAAK2sP,aAAe,KACpB3sP,KAAK4pP,qBAAuB,KAC5B5pP,KAAKorP,sBAAwB,KAC7BprP,KAAKm6B,YAAc,EACnBn6B,KAAK6pP,gBAAkB,GACvB7pP,KAAK0V,QAAU,MA4DvB,SAAS,GAASjQ,GACd,OAAQgB,MAAMqQ,QAAQrR,IAA0B,iBAATA,EAwC3C,SAASolP,GAA0Bn1O,GAtHnC,IAAyB1P,EAgIrB,OATI0P,GACAA,EAAU6wO,GAAQ7wO,IACE,SAChBA,EAAgB,QA1HH1P,EA0H0C0P,EAAgB,QAzHlE6wO,GAAQvgP,GAAO,MA6HxB0P,EAAU,GAEPA,EAQX,SAASu1O,GAAczxN,EAAUsqE,EAAOlqE,GACpC,MAAO,CAAEJ,SAAAA,EAAUsqE,MAAAA,EAAOlqE,OAAAA,GA6C9B,SAASqzN,GAA0BhsP,EAASiiP,EAAWgK,EAAeC,EAAgB3zN,EAAUsqE,GAAoC,IAA7BlqE,EAA6B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAApB,KAAMwzN,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAChI,MAAO,CACHjiP,KAAM,EACNlK,QAAAA,EACAiiP,UAAAA,EACAgK,cAAAA,EACAC,eAAAA,EACA3zN,SAAAA,EACAsqE,MAAAA,EACAy9I,UAAW/nN,EAAWsqE,EACtBlqE,OAAAA,EACAwzN,YAAAA,GASR,IAAMC,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACIrtP,KAAKstP,KAAO,IAAIx5F,IAyCN30G,OAnCd,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAAQl+C,GAEJ,IAAIssP,EAAevtP,KAAKstP,KAAKzqO,IAAI5hB,GAOjC,OANIssP,EACAvtP,KAAKstP,KAALttP,OAAiBiB,GAGjBssP,EAAe,GAEZA,IAOX,CAAA,IAAA,SAAA,MAAA,SAAOtsP,EAASssP,GAAAA,IAAAA,EAERC,EAAuBxtP,KAAKstP,KAAKzqO,IAAI5hB,GACpCusP,GACDxtP,KAAKstP,KAAKtrO,IAAI/gB,EAASusP,EAAuB,KAElDA,EAAAA,GAAqB9sP,KAArB8sP,MAAAA,EAAAA,oBAA6BD,MAMjC,CAAA,IAAA,MAAA,MAAA,SAAItsP,GACA,OAAOjB,KAAKstP,KAAKv3F,IAAI90J,KAKzB,CAAA,IAAA,QAAA,MAAA,WACIjB,KAAKstP,KAAKnuM,YAAAA,EA3CZkuM,GAgEAI,GAAoB,IAAIx3O,OAFV,SAE8B,KAI5Cy3O,GAAoB,IAAIz3O,OAFV,SAE8B,KAkGlD,SAAS03O,GAAwB3K,EAAQ4K,EAAa1C,EAAK2C,EAAgBC,GAA0F,IAA1EC,EAA0E,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAzD,GAAIC,EAAqD,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAvC,GAAIt4O,EAAmC,UAAA,OAAA,EAAA,UAAA,QAAA,EAA1Bu4O,EAA0B,UAAA,OAAA,EAAA,UAAA,QAAA,EAATn5O,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACjK,OAAO,IAAIo5O,IAAkCC,eAAenL,EAAQ4K,EAAa1C,EAAK2C,EAAgBC,EAAgBC,EAAgBC,EAAat4O,EAASu4O,EAAiBn5O,GAEjL,IAAMo5O,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GA+asFxtK,OA/atFwtK,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,iBAAAA,MAAAA,SAcalL,EAAQ4K,EAAa1C,EAAK2C,EAAgBC,EAAgBC,EAAgBC,EAAat4O,EAASu4O,GAA0B,IAATn5O,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACrIm5O,EAAkBA,GAAmB,IAAIZ,GAEzC,IAAMxkP,EAAU,IAAIulP,GAAyBpL,EAAQ4K,EAAaK,EAAiBJ,EAAgBC,EAAgBh5O,EAAQ,IAC3HjM,EAAQ6M,QAAUA,EAClB7M,EAAQwlP,gBAAgBvH,UAAU,CAACiH,GAAiB,KAAMllP,EAAQiM,OAAQY,GAC1EqyO,GAAa/nP,KAAMkrP,EAAKriP,GAGxB,IAAMylP,EAAYzlP,EAAQylP,UAAUp3O,QAIpCq3O,SAAAA,GAAAA,OAAYA,EAASC,uBACrB,GAAIF,EAAUtzP,QAAU+K,OAAOP,KAAKwoP,GAAahzP,OAAQ,CAErD,IAAM2kD,EAAK2uM,EAAUA,EAAUtzP,OAAS,GACnC2kD,EAAG8uM,2BACJ9uM,EAAGmnM,UAAU,CAACkH,GAAc,KAAMnlP,EAAQiM,OAAQY,GAG1D,OAAO44O,EAAUtzP,OAASszP,EAAUv5O,KAIpCw5O,SAAAA,GAAAA,OAAYA,EAASJ,oBACjB,CAAClB,GAA0BW,EAAa,GAAI,GAAI,GAAI,EAAG,EAAG,IAAA,MAOlE,CAAA,IAAA,eAAA,MAAA,SAAa1C,EAAKriP,MAQlB,CAAA,IAAA,aAAA,MAAA,SAAWqiP,EAAKriP,MAQhB,CAAA,IAAA,kBAAA,MAAA,SAAgBqiP,EAAKriP,MAQrB,CAAA,IAAA,oBAAA,MAAA,SAAkBqiP,EAAKriP,GAEnB,IAAM6lP,EAAsB7lP,EAAQolP,gBAAgBU,QAAQ9lP,EAAQ5H,SACpE,GAAIytP,EAAqB,CAErB,IAAME,EAAe/lP,EAAQgmP,iBAAiB3D,EAAIx1O,SAE5CgrE,EAAY73E,EAAQwlP,gBAAgBl0N,YAEpC4xN,EAAU/rP,KAAK8uP,sBAAsBJ,EAAqBE,EAAiCA,EAAqB,SAClHluK,GAAaqrK,GAGbljP,EAAQkmP,yBAAyBhD,GAGzCljP,EAAQ+7J,aAAesmF,IAO3B,CAAA,IAAA,kBAAA,MAAA,SAAgBA,EAAKriP,GAEjB,IAAM+lP,EAAe/lP,EAAQgmP,iBAAiB3D,EAAIx1O,SAClDk5O,EAAaG,2BACb/uP,KAAKyoP,eAAeyC,EAAI1jF,UAAWonF,GACnC/lP,EAAQkmP,yBAAyBH,EAAaP,gBAAgBl0N,aAC9DtxB,EAAQ+7J,aAAesmF,IAS3B,CAAA,IAAA,wBAAA,MAAA,SAAsBqC,EAAc1kP,EAAS6M,GAIzC,IAAIo1O,EAFcjiP,EAAQwlP,gBAAgBl0N,YAMpCX,EAA+B,MAApB9jB,EAAQ8jB,SAAmBwsN,GAAmBtwO,EAAQ8jB,UAAY,KAE7EsqE,EAAyB,MAAjBpuF,EAAQouF,MAAgBkiJ,GAAmBtwO,EAAQouF,OAAS,KAa1E,OAZiB,IAAbtqE,GACA+zN,EAAa51O,SAIbsqI,SAAAA,GAEI,IAAM+sG,EAAqBnmP,EAAQomP,4BAA4BhtG,EAAazoH,EAAUsqE,GACtFgnJ,EACI9nO,KAAKvI,IAAIqwO,EAAckE,EAAmBx1N,SAAWw1N,EAAmBlrJ,UAG7EgnJ,IAOX,CAAA,IAAA,iBAAA,MAAA,SAAeI,EAAKriP,GAChBA,EAAQqmP,cAAchE,EAAIx1O,SAAAA,GAC1BqyO,GAAa/nP,KAAMkrP,EAAI1jF,UAAW3+J,GAClCA,EAAQ+7J,aAAesmF,IAO3B,CAAA,IAAA,gBAAA,MAAA,SAAcA,EAAKriP,GAAAA,IAAAA,EAAAA,KAETsmP,EAAkBtmP,EAAQsmP,gBAE5B/yO,EAAMvT,EAEJ6M,EAAUw1O,EAAIx1O,QACpB,GAAIA,IAAYA,EAAQ2hJ,QAAU3hJ,EAAQouF,UACtC1nF,EAAMvT,EAAQgmP,iBAAiBn5O,IAC3Bq5O,2BACiB,MAAjBr5O,EAAQouF,OAAe,CACM,GAAzB1nF,EAAIwoJ,aAAaz5J,OACjBiR,EAAIiyO,gBAAgBe,wBACpBhzO,EAAIwoJ,aAAeyqF,IAGvB,IAAMvrJ,EAAQkiJ,GAAmBtwO,EAAQouF,OACzC1nF,EAAIkzO,cAAcxrJ,GAGtBonJ,EAAIrK,MAAM7lP,SACVkwP,EAAIrK,MAAMlpO,SAIV5d,SAAAA,GAAAA,OAAKguP,GAAa/nP,EAAMjG,EAAGqiB,MAE3BA,EAAIiyO,gBAAgBkB,wBAIhBnzO,EAAI+yO,gBAAkBA,GACtB/yO,EAAI2yO,4BAGZlmP,EAAQ+7J,aAAesmF,IAO3B,CAAA,IAAA,aAAA,MAAA,SAAWA,EAAKriP,GAAAA,IAAAA,EAAAA,KAEN2mP,EAAiB,GAEnB1E,EAAejiP,EAAQwlP,gBAAgBl0N,YAErC2pE,EAAQonJ,EAAIx1O,SAAWw1O,EAAIx1O,QAAQouF,MAAQkiJ,GAAmBkF,EAAIx1O,QAAQouF,OAAS,EACzFonJ,EAAIrK,MAAMlpO,SAIV5d,SAAAA,GAEI,IAAM60P,EAAe/lP,EAAQgmP,iBAAiB3D,EAAIx1O,SAC9CouF,GACA8qJ,EAAaU,cAAcxrJ,GAE/BikJ,GAAa/nP,EAAMjG,EAAG60P,GACtB9D,EAAe9nO,KAAKvI,IAAIqwO,EAAc8D,EAAaP,gBAAgBl0N,aACnEq1N,EAAe9uP,KAAKkuP,EAAaP,oBAKrCmB,EAAe73O,SAIf42O,SAAAA,GAAAA,OAAY1lP,EAAQwlP,gBAAgBoB,6BAA6BlB,MACjE1lP,EAAQkmP,yBAAyBjE,GACjCjiP,EAAQ+7J,aAAesmF,IAQ3B,CAAA,IAAA,eAAA,MAAA,SAAaA,EAAKriP,GACd,GAAI,EAA2BsiP,QAAS,CAEpC,IAAMhuF,EAAW,EAA2BA,SAG5C,OAAO+oF,GADar9O,EAAQwuJ,OAAS+vF,GAAkBjqF,EAAUt0J,EAAQwuJ,OAAQxuJ,EAAQiM,QAAUqoJ,EACjEt0J,EAAQiM,QAG1C,MAAO,CAAE0kB,SAAU0xN,EAAI1xN,SAAUsqE,MAAOonJ,EAAIpnJ,MAAOlqE,OAAQsxN,EAAItxN,UAQvE,CAAA,IAAA,eAAA,MAAA,SAAasxN,EAAKriP,GAEd,IAAM83O,EAAU93O,EAAQuiP,sBAAwBprP,KAAK0vP,aAAaxE,EAAIvK,QAAS93O,GAEzE0lP,EAAW1lP,EAAQwlP,gBACrB1N,EAAQ78I,QACRj7F,EAAQ8mP,cAAchP,EAAQ78I,OAC9ByqJ,EAASa,yBAGb,IAAM5iP,EAAQ0+O,EAAI1+O,MACA,GAAdA,EAAMrB,KACNnL,KAAKuoP,eAAe/7O,EAAO3D,IAG3BA,EAAQ8mP,cAAchP,EAAQnnN,UAC9Bx5B,KAAKwoP,WAAW,EAA4B3/O,GAC5C0lP,EAASgB,yBAEb1mP,EAAQuiP,sBAAwB,KAChCviP,EAAQ+7J,aAAesmF,IAO3B,CAAA,IAAA,aAAA,MAAA,SAAWA,EAAKriP,GAEZ,IAAM0lP,EAAW1lP,EAAQwlP,gBAEnB1N,EAA6B93O,EAA8B,uBAG5D83O,GAAW4N,EAASqB,4BAA4B50P,QACjDuzP,EAASsB,eAGb,IAAMj2N,EAAU+mN,GAAWA,EAAQ/mN,QAAWsxN,EAAItxN,OAC9CsxN,EAAIM,YACJ+C,EAASuB,eAAel2N,GAGxB20N,EAASzH,UAAUoE,EAAIv2N,OAAQiF,EAAQ/wB,EAAQiM,OAAQjM,EAAQ6M,SAEnE7M,EAAQ+7J,aAAesmF,IAO3B,CAAA,IAAA,iBAAA,MAAA,SAAeA,EAAKriP,GAEhB,IAAMuiP,EAA2CviP,EAA8B,sBAEzE63E,EAAgC73E,EAAyB,gBAAE2wB,SAE3DA,EAAW4xN,EAAsB5xN,SAIjCu2N,EAFelnP,EAAQgmP,mBAEMR,gBACnC0B,EAAcn2N,OAASwxN,EAAsBxxN,OAC7CsxN,EAAIv2N,OAAOhd,SAIX43K,SAAAA,GAGIwgE,EAAcC,aADCzgE,EAAK71K,QAAU,GACK8f,GACnCu2N,EAAcjJ,UAAUv3D,EAAK56J,OAAQ46J,EAAK31J,OAAQ/wB,EAAQiM,OAAQjM,EAAQ6M,SAC1Eq6O,EAAcR,2BAIlB1mP,EAAQwlP,gBAAgBoB,6BAA6BM,GAGrDlnP,EAAQkmP,yBAAyBruK,EAAYlnD,GAC7C3wB,EAAQ+7J,aAAesmF,IAO3B,CAAA,IAAA,aAAA,MAAA,SAAWA,EAAKriP,GAAAA,IAAAA,EAAAA,KAIN63E,EAAY73E,EAAQwlP,gBAAgBl0N,YAEpCzkB,EAA8Bw1O,EAAIx1O,SAAW,GAE7CouF,EAAQpuF,EAAQouF,MAAQkiJ,GAAmBtwO,EAAQouF,OAAS,EAC9DA,IAC+B,IAA9Bj7F,EAAQ+7J,aAAaz5J,MACJ,GAAbu1E,GAAkB73E,EAAQwlP,gBAAgBuB,4BAA4B50P,UAC3E6N,EAAQwlP,gBAAgBe,wBACxBvmP,EAAQ+7J,aAAeyqF,IAG3B,IAAIvE,EAAepqK,EAEbuvK,EAAOpnP,EAAQ48O,YAAYyF,EAAIpsN,SAAUosN,EAAI6B,iBAAkB7B,EAAIqB,MAAOrB,EAAI4B,cAAap3O,EAAQijJ,SAAyB9vJ,EAAQiM,QAC1IjM,EAAQqnP,kBAAoBD,EAAKj1P,OAEjC,IAAIm1P,EAAsB,KAC1BF,EAAKt4O,SAAQ,SAKZ1W,EAAStG,GACNkO,EAAQilI,kBAAoBnzI,EAE5B,IAAMi0P,EAAe/lP,EAAQgmP,iBAAiB3D,EAAIx1O,QAASzU,GACvD6iG,GACA8qJ,EAAaU,cAAcxrJ,GAE3B7iG,IAAY4H,EAAQ5H,UACpBkvP,EAAsBvB,EAAaP,iBAEvCtG,GAAa/nP,EAAMkrP,EAAI1jF,UAAWonF,GAIlCA,EAAaP,gBAAgBkB,wBAG7BzE,EAAe9nO,KAAKvI,IAAIqwO,EADR8D,EAAaP,gBAAgBl0N,gBAGjDtxB,EAAQilI,kBAAoB,EAC5BjlI,EAAQqnP,kBAAoB,EAC5BrnP,EAAQkmP,yBAAyBjE,GAC7BqF,IACAtnP,EAAQwlP,gBAAgBoB,6BAA6BU,GACrDtnP,EAAQwlP,gBAAgBe,yBAE5BvmP,EAAQ+7J,aAAesmF,IAO3B,CAAA,IAAA,eAAA,MAAA,SAAaA,EAAKriP,GAEd,IAAMunP,EAAmCvnP,EAAsB,cAEzD82C,EAAK92C,EAAQwlP,gBAEb1N,EAAUuK,EAAIvK,QAEdnnN,EAAWxW,KAAK6K,IAAI8yN,EAAQnnN,UAE5B62N,EAAU72N,GAAY3wB,EAAQqnP,kBAAoB,GAEpDpsJ,EAAQtqE,EAAW3wB,EAAQilI,kBAG/B,OADyB6yG,EAAQnnN,SAAW,EAAI,UAAYmnN,EAAQ/mN,QAEhE,IAAK,UACDkqE,EAAQusJ,EAAUvsJ,EAClB,MACJ,IAAK,OACDA,EAAQssJ,EAAcE,mBAI9B,IAAM/B,EAAW1lP,EAAQwlP,gBACrBvqJ,GACAyqJ,EAASe,cAAcxrJ,GAG3B,IAAMysJ,EAAehC,EAASp0N,YAC9B4tN,GAAa/nP,KAAMkrP,EAAI1jF,UAAW3+J,GAClCA,EAAQ+7J,aAAesmF,EAKvBkF,EAAcE,mBACT3wM,EAAGxlB,YAAco2N,GAAiB5wM,EAAG+gC,UAAY0vK,EAAc/B,gBAAgB3tK,eAAAA,EA/atFwtK,GAmbAmB,GAA6B,GAC7BjB,GAAAA,WAWF,SAAA,EAAY3E,EAASxoP,EAASgtP,EAAiBuC,EAAiBC,EAAiB37O,EAAQw5O,EAAWoC,GAAAA,gBAAAA,KAAAA,GAChG1wP,KAAKypP,QAAUA,EACfzpP,KAAKiB,QAAUA,EACfjB,KAAKiuP,gBAAkBA,EACvBjuP,KAAKwwP,gBAAkBA,EACvBxwP,KAAKywP,gBAAkBA,EACvBzwP,KAAK8U,OAASA,EACd9U,KAAKsuP,UAAYA,EACjBtuP,KAAKowP,cAAgB,KACrBpwP,KAAKorP,sBAAwB,KAC7BprP,KAAK4kK,aAAeyqF,GACpBrvP,KAAKmvP,gBAAkB,EACvBnvP,KAAK0V,QAAU,GACf1V,KAAK8tI,kBAAoB,EACzB9tI,KAAKkwP,kBAAoB,EACzBlwP,KAAKswP,mBAAqB,EAC1BtwP,KAAKquP,gBAAkBqC,GAAmB,IAAI,GAAgB1wP,KAAKypP,QAASxoP,EAAS,GACrFqtP,EAAU5tP,KAAKV,KAAKquP,iBAaxB,OARA,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,SAQc34O,EAASi7O,GAAAA,IAAAA,EAAAA,KACnB,GAAKj7O,EAAL,CAGA,IAAMk7O,EAAa,EAEfC,EAAkB7wP,KAAK0V,QAEA,MAAvBk7O,EAAWp3N,WACX,EAAuCA,SAAWwsN,GAAmB4K,EAAWp3N,WAE5D,MAApBo3N,EAAW9sJ,QACX+sJ,EAAgB/sJ,MAAQkiJ,GAAmB4K,EAAW9sJ,QAG1D,IAAMgtJ,EAAYF,EAAWv5F,OAC7B,GAAIy5F,EAAW,CAEX,IAAIC,EAAoCF,EAAuB,OAC1DE,IACDA,EAAiB/wP,KAAK0V,QAAQ2hJ,OAAS,IAE3CtxJ,OAAOP,KAAKsrP,GAAWn5O,SAIvB/X,SAAAA,GACS+wP,GAAiBI,EAAexyP,eAAeqB,KAChDmxP,EAAenxP,GAAQwnP,GAAkB0J,EAAUlxP,GAAOmxP,EAAgB/wP,EAAK8U,gBAS/F,CAAA,IAAA,eAAA,MAAA,WAEI,IAAMY,EAAU,GAChB,GAAI1V,KAAK0V,QAAS,CAEd,IAAMs7O,EAAYhxP,KAAK0V,QAAQ2hJ,OAC/B,GAAI25F,EAAW,CAEX,IAAM35F,EAAS3hJ,EAAgB,OAAI,GACnC3P,OAAOP,KAAKwrP,GAAWr5O,SAIvB/X,SAAAA,GACIy3J,EAAOz3J,GAAQoxP,EAAUpxP,OAIrC,OAAO8V,IAQX,CAAA,IAAA,mBAAA,MAAA,WAA0Cu7O,IAAzBv7O,EAAyBu7O,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAf,KAAMhwP,EAASgwP,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAAAA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAEhCtmP,EAAS1J,GAAWjB,KAAKiB,QAEzB4H,EAAU,IAAIulP,EAAyBpuP,KAAKypP,QAAS9+O,EAAQ3K,KAAKiuP,gBAAiBjuP,KAAKwwP,gBAAiBxwP,KAAKywP,gBAAiBzwP,KAAK8U,OAAQ9U,KAAKsuP,UAAWtuP,KAAKquP,gBAAgB1vE,KAAKh0K,EAAQsmP,GAAW,IAS/M,OARApoP,EAAQ+7J,aAAe5kK,KAAK4kK,aAC5B/7J,EAAQuiP,sBAAwBprP,KAAKorP,sBACrCviP,EAAQ6M,QAAU1V,KAAKkxP,eACvBroP,EAAQqmP,cAAcx5O,GACtB7M,EAAQilI,kBAAoB9tI,KAAK8tI,kBACjCjlI,EAAQqnP,kBAAoBlwP,KAAKkwP,kBACjCrnP,EAAQunP,cAAgBpwP,KACxBA,KAAKmvP,kBACEtmP,IAMX,CAAA,IAAA,2BAAA,MAAA,SAAyBooP,GAIrB,OAHAjxP,KAAK4kK,aAAeyqF,GACpBrvP,KAAKquP,gBAAkBruP,KAAKquP,gBAAgB1vE,KAAK3+K,KAAKiB,QAASgwP,GAC/DjxP,KAAKsuP,UAAU5tP,KAAKV,KAAKquP,iBAClBruP,KAAKquP,kBAQhB,CAAA,IAAA,8BAAA,MAAA,SAA4BpsG,EAAazoH,EAAUsqE,GAE/C,IAAMqtJ,EAAiB,CACnB33N,SAAsB,MAAZA,EAAmBA,EAAWyoH,EAAYzoH,SACpDsqE,MAAO9jG,KAAKquP,gBAAgBl0N,aAAwB,MAAT2pE,EAAgBA,EAAQ,GAAKm+C,EAAYn+C,MACpFlqE,OAAQ,IAGNw3N,EAAU,IAAIC,GAAmBrxP,KAAKypP,QAASxnG,EAAYhhJ,QAASghJ,EAAYihG,UAAWjhG,EAAYirG,cAAejrG,EAAYkrG,eAAgBgE,EAAgBlvG,EAAYqvG,yBAEpL,OADAtxP,KAAKsuP,UAAU5tP,KAAK0wP,GACbD,IAMX,CAAA,IAAA,gBAAA,MAAA,SAAc53N,GACVv5B,KAAKquP,gBAAgB2B,YAAYhwP,KAAKquP,gBAAgB70N,SAAWD,KAMrE,CAAA,IAAA,gBAAA,MAAA,SAAcuqE,GAENA,EAAQ,GACR9jG,KAAKquP,gBAAgBiB,cAAcxrJ,KAY3C,CAAA,IAAA,cAAA,MAAA,SAAYhlE,EAAUiuN,EAAkBR,EAAOO,EAAan0F,EAAU7jJ,GAElE,IAAIuwB,EAAU,GAId,GAHIynN,GACAznN,EAAQ3kC,KAAKV,KAAKiB,SAElB69B,EAAS9jC,OAAS,EAAG,CAErB8jC,GADAA,EAAWA,EAASjzB,QAAQ4hP,GAAmB,IAAMztP,KAAKwwP,kBACtC3kP,QAAQ6hP,GAAmB,IAAM1tP,KAAKywP,iBAI1D,IAAI5oO,EAAW7nB,KAAKypP,QAAQh1D,MAAMz0L,KAAKiB,QAAS69B,EAFzB,GAATytN,GAGA,IAAVA,IACA1kO,EAAW0kO,EAAQ,EAAI1kO,EAASvqB,MAAMuqB,EAAS7sB,OAASuxP,EAAO1kO,EAAS7sB,QACpE6sB,EAASvqB,MAAM,EAAGivP,IAE1BlnN,EAAQ3kC,KAAR2kC,MAAAA,EAAAA,oBAAgBxd,IAKpB,OAHK8wI,GAA8B,GAAlBtzH,EAAQrqC,QACrB8Z,EAAOpU,KAAPoU,WAAAA,OAAwBi4O,EAAxBj4O,6CAAAA,OAAsFi4O,EAAtFj4O,wDAEGuwB,IAAAA,CAAAA,IAAAA,SAAAA,IAAAA,WAjKP,OAAOrlC,KAAK0V,QAAQ2hJ,WAOxB,EAzCE+2F,GAiPA,GAAA,WAOF,SAAA,EAAY3E,EAASxoP,EAASy/E,EAAW6wK,GAAAA,gBAAAA,KAAAA,GACrCvxP,KAAKypP,QAAUA,EACfzpP,KAAKiB,QAAUA,EACfjB,KAAK0gF,UAAYA,EACjB1gF,KAAKuxP,6BAA+BA,EACpCvxP,KAAKw5B,SAAW,EAChBx5B,KAAKwxP,kBAAoB,GACzBxxP,KAAKyxP,iBAAmB,GACxBzxP,KAAK0xP,WAAa,IAAI59F,IACtB9zJ,KAAK2xP,cAAgB,GACrB3xP,KAAK4xP,eAAiB,GACtB5xP,KAAK6xP,UAAY,GACjB7xP,KAAK8xP,0BAA4B,KAC5B9xP,KAAKuxP,+BACNvxP,KAAKuxP,6BAA+B,IAAIz9F,KAE5C9zJ,KAAK+xP,qBAAuBhsP,OAAOc,OAAO7G,KAAK6xP,UAAW,IAC1D7xP,KAAKgyP,sBAA2ChyP,KAAKuxP,6BAA6B1uO,IAAI5hB,GACjFjB,KAAKgyP,wBACNhyP,KAAKgyP,sBAAwBhyP,KAAK+xP,qBAClC/xP,KAAKuxP,6BAA6BvvO,IAAI/gB,EAASjB,KAAK+xP,uBAExD/xP,KAAKiyP,gBAiOT,OA5NA,aAAA,EAAA,CAAA,CAAA,IAAA,oBAAA,MAAA,WACI,OAAQjyP,KAAK0xP,WAAWjwO,MACpB,KAAK,EACD,OAAA,EACJ,KAAK,EACD,OAAOzhB,KAAK4vP,4BAA4B50P,OAAS,EACrD,QACI,OAAA,KAMZ,CAAA,IAAA,4BAAA,MAAA,WACI,OAAO+K,OAAOP,KAAKxF,KAAKyxP,oBAK5B,CAAA,IAAA,gBAAA,MAAA,SAOc3tJ,GAMV,IAAMouJ,EAA0C,GAAxBlyP,KAAK0xP,WAAWjwO,MAAa1b,OAAOP,KAAKxF,KAAK4xP,gBAAgB52P,OAClFgF,KAAKw5B,UAAY04N,GACjBlyP,KAAKgwP,YAAYhwP,KAAKm6B,YAAc2pE,GAChCouJ,GACAlyP,KAAKovP,yBAITpvP,KAAK0gF,WAAaojB,IAQ1B,CAAA,IAAA,OAAA,MAAA,SAAK7iG,EAASk5B,GAEV,OADAn6B,KAAKuvP,wBACE,IAAI,EAAgBvvP,KAAKypP,QAASxoP,EAASk5B,GAAen6B,KAAKm6B,YAAan6B,KAAKuxP,gCAM5F,CAAA,IAAA,gBAAA,MAAA,WACQvxP,KAAKyxP,mBACLzxP,KAAKwxP,kBAAoBxxP,KAAKyxP,kBAElCzxP,KAAKyxP,iBAAsCzxP,KAAK0xP,WAAW7uO,IAAI7iB,KAAKw5B,UAC/Dx5B,KAAKyxP,mBACNzxP,KAAKyxP,iBAAmB1rP,OAAOc,OAAO7G,KAAK6xP,UAAW,IACtD7xP,KAAK0xP,WAAW1vO,IAAIhiB,KAAKw5B,SAAUx5B,KAAKyxP,qBAMhD,CAAA,IAAA,eAAA,MAAA,WACIzxP,KAAKw5B,UA13BqB,EA23B1Bx5B,KAAKiyP,kBAMT,CAAA,IAAA,cAAA,MAAA,SAAY14N,GACRv5B,KAAKuvP,wBACLvvP,KAAKw5B,SAAWD,EAChBv5B,KAAKiyP,kBAQT,CAAA,IAAA,eAAA,MAAA,SAAa7xO,EAAM3a,GACfzF,KAAK+xP,qBAAqB3xO,GAAQ3a,EAClCzF,KAAKgyP,sBAAsB5xO,GAAQ3a,EACnCzF,KAAK2xP,cAAcvxO,GAAQ,CAAEmZ,KAAMv5B,KAAKm6B,YAAa10B,MAAAA,KAKzD,CAAA,IAAA,0BAAA,MAAA,WACI,OAAOzF,KAAK8xP,4BAA8B9xP,KAAKyxP,mBAMnD,CAAA,IAAA,iBAAA,MAAA,SAAe73N,GAAAA,IAAAA,EAAAA,KACPA,IACA55B,KAAKwxP,kBAA0B,OAAI53N,GAQvC7zB,OAAOP,KAAKxF,KAAKgyP,uBAAuBr6O,SAIxCyI,SAAAA,GACIpgB,EAAK6xP,UAAUzxO,GAAQpgB,EAAKgyP,sBAAsB5xO,IDpwF3C,ICqwFPpgB,EAAKyxP,iBAAiBrxO,GDrwFf,OCuwFXpgB,KAAK8xP,0BAA4B9xP,KAAKyxP,mBAS1C,CAAA,IAAA,YAAA,MAAA,SAAUv2P,EAAO0+B,EAAQ9kB,EAAQY,GAAAA,IAAAA,EAAAA,KACzBkkB,IACA55B,KAAKwxP,kBAA0B,OAAI53N,GAGvC,IAAMy9H,EAAU3hJ,GAAWA,EAAQ2hJ,QAAW,GAExC1iI,EAgVd,SAAuBz5B,EAAOi3P,GAE1B,IAEIC,EAFEz9N,EAAS,GAsBf,OAnBAz5B,EAAMyc,SAIN0nH,SAAAA,GACkB,MAAVA,GACA+yH,EAAgBA,GAAiBrsP,OAAOP,KAAK2sP,IAC/Bx6O,SAIdyI,SAAAA,GACIuU,EAAOvU,GDxnGJ,OC4nGPomO,GAAW,GAAA,EAAmC7xN,MAG/CA,EAxBX,CAhVqCz5B,EAAO8E,KAAKgyP,uBACzCjsP,OAAOP,KAAKmvB,GAAQhd,SAIpByI,SAAAA,GAEI,IAAMyyF,EAAMu0I,GAAkBzyN,EAAOvU,GAAOi3I,EAAQviJ,GACpD9U,EAAK4xP,eAAexxO,GAAQyyF,EACvB7yG,EAAK+xP,qBAAqBxzP,eAAe6hB,KAC1CpgB,EAAK6xP,UAAUzxO,GAAQpgB,EAAKgyP,sBAAsBzzP,eAAe6hB,GAC7DpgB,EAAKgyP,sBAAsB5xO,GDlyF5B,KCqyFPpgB,EAAKqyP,aAAajyO,EAAMyyF,QAMhC,CAAA,IAAA,wBAAA,MAAA,WAAA,IAAA,EAAA,KAEUl+E,EAAS30B,KAAK4xP,eAEdr/K,EAAQxsE,OAAOP,KAAKmvB,GACN,GAAhB49C,EAAMv3E,SAEVgF,KAAK4xP,eAAiB,GACtBr/K,EAAM56D,SAINyI,SAAAA,GAGIpgB,EAAKyxP,iBAAiBrxO,GADVuU,EAAOvU,MAGvBra,OAAOP,KAAKxF,KAAK+xP,sBAAsBp6O,SAIvCyI,SAAAA,GACSpgB,EAAKyxP,iBAAiBlzP,eAAe6hB,KACtCpgB,EAAKyxP,iBAAiBrxO,GAAQpgB,EAAK+xP,qBAAqB3xO,UAOpE,CAAA,IAAA,wBAAA,MAAA,WAAA,IAAA,EAAA,KACIra,OAAOP,KAAKxF,KAAK+xP,sBAAsBp6O,SAIvCyI,SAAAA,GAEI,IAAMyyF,EAAM7yG,EAAK+xP,qBAAqB3xO,GACtCpgB,EAAK4xP,eAAexxO,GAAQyyF,EAC5B7yG,EAAKqyP,aAAajyO,EAAMyyF,QAMhC,CAAA,IAAA,mBAAA,MAAA,WACI,OAAO7yG,KAAK0xP,WAAW7uO,IAAI7iB,KAAKw5B,YAKpC,CAAA,IAAA,+BAAA,MAAA,SAY6B+0N,GAAAA,IAAAA,EAAAA,KACzBxoP,OAAOP,KAAK+oP,EAASoD,eAAeh6O,SAIpCyI,SAAAA,GAEI,IAAMkyO,EAAWtyP,EAAK2xP,cAAcvxO,GAE9BmyO,EAAWhE,EAASoD,cAAcvxO,KACnCkyO,GAAYC,EAASh5N,KAAO+4N,EAAS/4N,OACtCv5B,EAAKqyP,aAAajyO,EAAMmyO,EAAS9sP,YAO7C,CAAA,IAAA,iBAAA,MAAA,WAAA,IAAA,EAAA,KACIzF,KAAKuvP,wBAEL,IAAMrC,EAAgB,IAAIl5F,IAEpBm5F,EAAiB,IAAIn5F,IAErBxyI,EAAmC,IAAzBxhB,KAAK0xP,WAAWjwO,MAAgC,IAAlBzhB,KAAKw5B,SAE/Cg5N,EAAiB,GACrBxyP,KAAK0xP,WAAW/5O,SAAQ,SAKvB86O,EAAUl5N,GAEP,IAAMm5N,EAAgBlM,GAAWiM,GAAAA,GACjC1sP,OAAOP,KAAKktP,GAAe/6O,SAI3ByI,SAAAA,GAEI,IAAM3a,EAAQitP,EAActyO,GD3nCzB,KC4nCC3a,EACAynP,EAAcnlP,IAAIqY,GDt5FnB,KCw5FM3a,GACL0nP,EAAeplP,IAAIqY,MAGtBoB,IACDkxO,EAAsB,OAAIn5N,EAAOv5B,EAAKw5B,UAE1Cg5N,EAAe9xP,KAAKgyP,MAGxB,IAAMC,EAAWzF,EAAczrO,KAAO8lO,GAAgB2F,EAAcrqI,UAAY,GAE1E+vI,EAAYzF,EAAe1rO,KAAO8lO,GAAgB4F,EAAetqI,UAAY,GAEnF,GAAIrhG,EAAS,CAET,IAAMqxO,EAAML,EAAe,GAErBM,EAAMvM,GAAQsM,GACpBA,EAAY,OAAI,EAChBC,EAAY,OAAI,EAChBN,EAAiB,CAACK,EAAKC,GAE3B,OAAO7F,GAA0BjtP,KAAKiB,QAASuxP,EAAgBG,EAAUC,EAAW5yP,KAAKw5B,SAAUx5B,KAAK0gF,UAAW1gF,KAAK45B,QAAAA,KAAQ,CAAA,IAAA,cAAA,IAAA,WA7QhI,OAAO55B,KAAK0gF,UAAY1gF,KAAKw5B,WAMjC,CAAA,IAAA,aAAA,IAAA,WAwLI,IAAMrR,EAAa,GACnB,IAAK,IAAI/H,KAAQpgB,KAAKyxP,iBAClBtpO,EAAWznB,KAAK0f,GAEpB,OAAO+H,MAMX,EA9PE,GAuYAkpO,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAUF,SAAA,EAAYrO,EAAQ/hP,EAASiiP,EAAWgK,EAAeC,EAAgBxM,GAAoC,IAAA,EAA3BoS,EAA2B,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAAA,OAAA,gBAAA,KAAA,IACvG34H,EAAAA,EAAAA,KAAAA,KAAM4oH,EAAQ/hP,EAAS0/O,EAAQ78I,QAC1B7iG,QAAUA,EACfjB,EAAKkjP,UAAYA,EACjBljP,EAAKktP,cAAgBA,EACrBltP,EAAKmtP,eAAiBA,EACtBntP,EAAK+yP,yBAA2BA,EAChC/yP,EAAK2gP,QAAU,CAAEnnN,SAAUmnN,EAAQnnN,SAAUsqE,MAAO68I,EAAQ78I,MAAOlqE,OAAQ+mN,EAAQ/mN,QAPoB,EAuEqB,OA3DhI,aAAA,EAAA,CAAA,CAAA,IAAA,oBAAA,MAAA,WACI,OAAO55B,KAAKkjP,UAAUloP,OAAS,IAKnC,CAAA,IAAA,iBAAA,MAAA,WAEQkoP,IAAAA,EAAYljP,KAAKkjP,UAAjBA,EAC8BljP,KAAK2gP,QAAjC78I,EADFo/I,EACA,MAAS1pN,EADT0pN,EACO,SAAYtpN,EADnBspN,EACiB,OACrB,GAAIljP,KAAK+yP,0BAA4BjvJ,EAAO,CAExC,IAAMkvJ,EAAe,GAEfzR,EAAY/nN,EAAWsqE,EAEvBmvJ,EAAcnvJ,EAAQy9I,EAGtB2R,EAAmB1M,GAAWtD,EAAU,IAAA,GAC9CgQ,EAAyB,OAAI,EAC7BF,EAAatyP,KAAKwyP,GAElB,IAAMC,EAAmB3M,GAAWtD,EAAU,IAAA,GAC9CiQ,EAAyB,OAAIC,GAAYH,GACzCD,EAAatyP,KAAKyyP,GAkBlB,IADA,IAAM5G,EAAQrJ,EAAUloP,OAAS,EACxBL,EAAI,EAAGA,GAAK4xP,EAAO5xP,IAAK,CAE7B,IAAI6oP,EAAKgD,GAAWtD,EAAUvoP,IAAAA,GAK9B6oP,EAAW,OAAI4P,IADQtvJ,EAFc0/I,EAAa,OAEPhqN,GACC+nN,GAC5CyR,EAAatyP,KAAK8iP,GAGtBhqN,EAAW+nN,EACXz9I,EAAQ,EACRlqE,EAAS,GACTspN,EAAY8P,EAEhB,OAAO/F,GAA0BjtP,KAAKiB,QAASiiP,EAAWljP,KAAKktP,cAAeltP,KAAKmtP,eAAgB3zN,EAAUsqE,EAAOlqE,GAAAA,OAAQ,EAjF9Hy3N,CAA2B,IA0GjC,SAAS+B,GAAY15O,GAAwB,IAAhB25O,EAAgB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAEnCC,EAAOtwO,KAAKE,IAAI,GAAImwO,EAAgB,GAC1C,OAAOrwO,KAAKooB,MAAM1xB,EAAS45O,GAAQA,EAkHvC,IAAMC,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAiDAC,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAiCkB7tO,OAjClB6tO,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,wBAAAA,MAAAA,SAMoBC,EAAc3+O,GAChC,OAAO,GAAoB2+O,KAS/B,CAAA,IAAA,sBAAA,MAAA,SAAoBC,EAAsBC,EAAoBluP,EAAOqP,GAEjE,IAAI6Q,EAAO,GAELiuO,EAASnuP,EAAM5F,WAAWmW,OAChC,GAAI69O,GAAqBF,IAAiC,IAAVluP,GAAyB,MAAVA,EAC3D,GAAqB,iBAAVA,EACPkgB,EAAO,SAEN,CAED,IAAMmuO,EAAoBruP,EAAM3F,MAAM,0BAClCg0P,GAAoD,GAA/BA,EAAkB,GAAG94P,QAC1C8Z,EAAOpU,KAAPoU,uCAAAA,OAAmD4+O,EAAnD5+O,KAAAA,OAA2ErP,IAIvF,OAAOmuP,EAASjuO,MAAAA,EAjClB6tO,CAAqCD,IA0CrCM,GAKN,SAAwBruP,GAEpB,IAAMuP,EAAM,GAMZ,OALAvP,EAAKmS,SAILzb,SAAAA,GAAAA,OAAO6Y,EAAI7Y,IAAAA,KACJ6Y,EARX,CARqB,iUAChBvT,MAAM,MAuEX,SAASuyP,GAA4B9yP,EAASijP,EAAaC,EAAWC,EAAS4P,EAAqBC,EAAYC,EAAU5F,EAAW6F,EAAiBjH,EAAeC,EAAgB5L,EAAWzsO,GAC5L,MAAO,CACH3J,KAAM,EACNlK,QAAAA,EACAijP,YAAAA,EACA8P,oBAAAA,EACA7P,UAAAA,EACA8P,WAAAA,EACA7P,QAAAA,EACA8P,SAAAA,EACA5F,UAAAA,EACA6F,gBAAAA,EACAjH,cAAAA,EACAC,eAAAA,EACA5L,UAAAA,EACAzsO,OAAAA,GAUR,IAAMs/O,GAAe,GACfC,GAAAA,WAMF,SAAA,EAAYC,EAAcpJ,EAAKqJ,GAAAA,gBAAAA,KAAAA,GAC3Bv0P,KAAKs0P,aAAeA,EACpBt0P,KAAKkrP,IAAMA,EACXlrP,KAAKu0P,aAAeA,EA0G+KhT,OAjGvM,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM16C,EAAc1B,EAAWlkM,EAASo2J,GACpC,OAyHR,SAAmCm9F,EAAU3tD,EAAc1B,EAAWlkM,EAASo2J,GAC3E,OAAOm9F,EAAS1gK,MAIhB1vF,SAAAA,GAAAA,OAAMA,EAAGyiM,EAAc1B,EAAWlkM,EAASo2J,MAL/C,CAzHyCr3J,KAAKkrP,IAAIR,SAAU7jD,EAAc1B,EAAWlkM,EAASo2J,KAQ1F,CAAA,IAAA,cAAA,MAAA,SAAYswC,EAAWtwC,EAAQviJ,GAE3B,IAAM2/O,EAAoBz0P,KAAKu0P,aAAa,KAEtCG,EAAc10P,KAAKu0P,aAAa5sD,GAEhCgtD,EAAeF,EAAoBA,EAAkBG,YAAYv9F,EAAQviJ,GAAU,GACzF,OAAO4/O,EAAcA,EAAYE,YAAYv9F,EAAQviJ,GAAU6/O,IAenE,CAAA,IAAA,QAAA,MAAA,SAAM3R,EAAQ/hP,EAAS4lM,EAAc1B,EAAW0oD,EAAgBC,EAAgBxxI,EAAgBu4I,EAAa5G,EAAiB6G,GAE1H,IAAMhgP,EAAS,GAETigP,EAA4B/0P,KAAKkrP,IAAIx1O,SAAW1V,KAAKkrP,IAAIx1O,QAAQ2hJ,QAAU+8F,GAI3EY,EAAqBh1P,KAAK40P,YAAY/tD,EAFbvqF,GAAkBA,EAAe+6C,QAAU+8F,GAEQt/O,GAE5EmgP,EAAsBJ,GAAeA,EAAYx9F,QAAU+8F,GAE3Dc,EAAkBl1P,KAAK40P,YAAYzvD,EAAW8vD,EAAqBngP,GAEnEq/O,EAAkB,IAAIngG,IAEtBmhG,EAAc,IAAIrhG,IAElBshG,EAAe,IAAIthG,IAEnBuhG,EAA0B,SAAdlwD,EAEZmwD,EAAmB,CAAEj+F,OAAQtxJ,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAI8rI,GAA4BE,IAEzF3G,EAAYwG,EACd,GACAnH,GAAwB3K,EAAQ/hP,EAASjB,KAAKkrP,IAAI1jF,UAAWqmF,EAAgBC,EAAgBkH,EAAoBE,EAAiBI,EAAkBrH,EAAiBn5O,GAErKysO,EAAY,EAQhB,GAPA+M,EAAU32O,SAIVgoC,SAAAA,GACI4hM,EAAYv+N,KAAKvI,IAAIklC,EAAGnmB,SAAWmmB,EAAGmkD,MAAOy9I,MAE7CzsO,EAAO9Z,OACP,OAAO+4P,GAA4B9yP,EAASjB,KAAKs0P,aAAcztD,EAAc1B,EAAWkwD,EAAWL,EAAoBE,EAAiB,GAAI,GAAIC,EAAaC,EAAc7T,EAAWzsO,GAE1Lw5O,EAAU32O,SAIVgoC,SAAAA,GAEI,IAAMwlM,EAAMxlM,EAAG1+C,QAET0xP,EAAWtO,GAAgB8Q,EAAahQ,EAAK,IACnDxlM,EAAGutM,cAAcv1O,SAIjByI,SAAAA,GAAAA,OAAQuyO,EAASvyO,IAAAA,KAEjB,IAAMwyO,EAAYvO,GAAgB+Q,EAAcjQ,EAAK,IACrDxlM,EAAGwtM,eAAex1O,SAIlByI,SAAAA,GAAAA,OAAQwyO,EAAUxyO,IAAAA,KACd+kO,IAAQlkP,GACRkzP,EAAgBpsP,IAAIo9O,MAI5B,IAAMoQ,EAAsBhO,GAAgB4M,EAAgBtxI,UAC5D,OAAOkxI,GAA4B9yP,EAASjB,KAAKs0P,aAAcztD,EAAc1B,EAAWkwD,EAAWL,EAAoBE,EAAiB5G,EAAWiH,EAAqBJ,EAAaC,EAAc7T,OAAAA,EAnHrM8S,GAmJAmB,GAAAA,WAKF,SAAA,EAAY7gO,EAAQ8gO,GAAAA,gBAAAA,KAAAA,GAChBz1P,KAAK20B,OAASA,EACd30B,KAAKy1P,cAAgBA,EA6CdzH,OAtCX,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAAY32F,EAAQviJ,GAEhB,IAAMk5O,EAAc,GAEd0H,EAAiBnP,GAAQvmP,KAAKy1P,eAkCpC,OAjCA1vP,OAAOP,KAAK6xJ,GAAQ1/I,SAIpBzb,SAAAA,GAEI,IAAMuJ,EAAQ4xJ,EAAOn7J,GACR,MAATuJ,IACAiwP,EAAex5P,GAAOuJ,MAG9BzF,KAAK20B,OAAOA,OAAOhd,SAInBlS,SAAAA,GACI,GAAqB,iBAAVA,EAAoB,CAE3B,IAAMshG,EAAW,EACjBhhG,OAAOP,KAAKuhG,GAAUpvF,SAItByI,SAAAA,GAEI,IAAIyyF,EAAM9L,EAAS3mF,GACfyyF,EAAI73G,OAAS,IACb63G,EAAMu0I,GAAkBv0I,EAAK6iJ,EAAgB5gP,IAEjDk5O,EAAY5tO,GAAQyyF,SAIzBm7I,MAAAA,EApDTwH,GAqFAG,GAAAA,WAKF,SAAA,EAAY/1P,EAAMsrP,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACdlrP,KAAKJ,KAAOA,EACZI,KAAKkrP,IAAMA,EACXlrP,KAAK41P,oBAAsB,GAC3B51P,KAAK8pM,OAAS,GACdohD,EAAIphD,OAAOnyL,SAIXuzO,SAAAA,GAGIlrP,EAAK8pM,OAAOohD,EAAItrP,MAAQ,IAAI41P,GAAqBtK,EAAI1+O,MAD9B0+O,EAAIx1O,SAAWw1O,EAAIx1O,QAAQ2hJ,QAAW,OAGjEw+F,GAAkB71P,KAAK8pM,OAAQ,OAAQ,KACvC+rD,GAAkB71P,KAAK8pM,OAAQ,QAAS,KACxCohD,EAAIlB,YAAYryO,SAIhBuzO,SAAAA,GACIlrP,EAAK41P,oBAAoBl1P,KAAK,IAAI2zP,GAA2Bz0P,EAAMsrP,EAAKlrP,EAAK8pM,YAEjF9pM,KAAK81P,mBAsEF,IAAIzB,GAtE4Cz0P,EA8DpC,CACfuL,KAAM,EACNq8J,UAJc,CAAEr8J,KAAM,EAAkB01O,MAAO,GAAInrO,QAAS,MAK5Dg1O,SAZa,CAAC,SAKbvG,EAAWC,GALE,OAKFA,IAQZ1uO,QAAS,KACTo0O,WAAY,EACZC,SAAU,GApE+C/pP,KAAK8pM,QAelE,OAVA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,SAUgBjD,EAAc1B,EAAWlkM,EAASo2J,GAO9C,OALcr3J,KAAK41P,oBAAoBxkO,MAIvCnnB,SAAAA,GAAAA,OAAKA,EAAEnK,MAAM+mM,EAAc1B,EAAWlkM,EAASo2J,OAC/B,OAQpB,CAAA,IAAA,cAAA,MAAA,SAAYwvC,EAAcxvC,EAAQviJ,GAC9B,OAAO9U,KAAK81P,mBAAmBlB,YAAY/tD,EAAcxvC,EAAQviJ,KAAAA,CAAAA,IAAAA,kBAAAA,IAAAA,WAzBjE,OAAO9U,KAAKkrP,IAAIpB,WAAa,MASjC,EA3CE6L,GA0GN,SAASE,GAAkB7vP,EAAK8rI,EAAMC,GAC9B/rI,EAAIzH,eAAeuzI,GACd9rI,EAAIzH,eAAewzI,KACpB/rI,EAAI+rI,GAAQ/rI,EAAI8rI,IAGf9rI,EAAIzH,eAAewzI,KACxB/rI,EAAI8rI,GAAQ9rI,EAAI+rI,IAUxB,IAAMgkH,GAAwB,IAAI1I,GAC5B,GAAA,WAMF,SAAA,EAAY2I,EAAUvM,EAASwM,GAAAA,gBAAAA,KAAAA,GAC3Bj2P,KAAKg2P,SAAWA,EAChBh2P,KAAKypP,QAAUA,EACfzpP,KAAKi2P,YAAcA,EACnBj2P,KAAKk2P,YAAc,GACnBl2P,KAAKm2P,aAAe,GACpBn2P,KAAKgiP,QAAU,GAiMMvwO,OA1LzB,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAASA,EAAIkoJ,GAET,IAAM7kJ,EAAS,GAETo2O,EAAM1B,GAAkBxpP,KAAKypP,QAAS9vF,EAAU7kJ,GACtD,GAAIA,EAAO9Z,OACP,MAAM,IAAI6K,MAAJ,8DAAA,OAAwEiP,EAAOpP,KAAK,QAG1F1F,KAAKk2P,YAAYzkP,GAAMy5O,IAU/B,CAAA,IAAA,eAAA,MAAA,SAAavwP,EAAGwoP,EAAWC,GAEvB,IAAMniP,EAAUtG,EAAEsG,QAEZiiP,EAAYH,GAAmB/iP,EAAcA,KAAKi2P,YAAah1P,EAAStG,EAAEuoP,UAAWC,EAAWC,GACtG,OAAOpjP,KAAKypP,QAAQpwN,QAAQp4B,EAASiiP,EAAWvoP,EAAE6+B,SAAU7+B,EAAEmpG,MAAOnpG,EAAEi/B,OAAQ,IAAA,KAQnF,CAAA,IAAA,SAAA,MAAA,SAAOnoB,EAAIxQ,GAAmB,IAMtBssP,EANsB,EAAA,KAAV73O,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAEpBZ,EAAS,GAETo2O,EAAMlrP,KAAKk2P,YAAYzkP,GAIvB2kP,EAAgB,IAAItiG,IAqB1B,GApBIo3F,GACAqC,EAAeI,GAAwB3tP,KAAKypP,QAASxoP,EAASiqP,EAj+GlD,WAEA,WA+9GyF,GAAI,GAAIx1O,EAASqgP,GAAuBjhP,IAChI6C,SAIb0+O,SAAAA,GAEI,IAAM1hO,EAAS0vN,GAAgB+R,EAAeC,EAAKp1P,QAAS,IAC5Do1P,EAAKlJ,eAAex1O,SAIpByI,SAAAA,GAAAA,OAAQuU,EAAOvU,GAAQ,YAI3BtL,EAAOpU,KAAK,uEACZ6sP,EAAe,IAEfz4O,EAAO9Z,OACP,MAAM,IAAI6K,MAAJ,+DAAA,OAAyEiP,EAAOpP,KAAK,QAE/F0wP,EAAcz+O,SAAQ,SAKrBgd,EAAQ1zB,GACL8E,OAAOP,KAAKmvB,GAAQhd,SAIpByI,SAAAA,GACIuU,EAAOvU,GAAQpgB,EAAKypP,QAAQ3B,aAAa7mP,EAASmf,ED90H/C,WCk1HX,IAUMgiO,EAASU,GAVCyK,EAAax4O,KAI7Bpa,SAAAA,GAEI,IAAMg6B,EAASyhO,EAAcvzO,IAAIloB,EAAEsG,SACnC,OAAOjB,EAAKs2P,aAAa37P,EAAG,GAAIg6B,OAUpC,OANA30B,KAAKm2P,aAAa1kP,GAAM2wO,EACxBA,EAAO36G,WAAU,WAAA,OAGXznI,EAAKm6E,QAAQ1oE,MACnBzR,KAAKgiP,QAAQthP,KAAK0hP,GACXA,IAMX,CAAA,IAAA,UAAA,MAAA,SAAQ3wO,GAEJ,IAAM2wO,EAASpiP,KAAKu2P,WAAW9kP,GAC/B2wO,EAAOjoK,iBACAn6E,KAAKm2P,aAAa1kP,GAEzB,IAAMwP,EAAQjhB,KAAKgiP,QAAQpgP,QAAQwgP,GAC/BnhO,GAAS,GACTjhB,KAAKgiP,QAAQphP,OAAOqgB,EAAO,KAQnC,CAAA,IAAA,aAAA,MAAA,SAAWxP,GAEP,IAAM2wO,EAASpiP,KAAKm2P,aAAa1kP,GACjC,IAAK2wO,EACD,MAAM,IAAIv8O,MAAJ,oDAAA,OAA8D4L,IAExE,OAAO2wO,IASX,CAAA,IAAA,SAAA,MAAA,SAAO3wO,EAAIxQ,EAAS6e,EAAWpb,GAG3B,IAAM8xP,EAAYvS,GAAmBhjP,EAAS,GAAI,GAAI,IAEtD,OADA8iP,GAAe/jP,KAAKu2P,WAAW9kP,GAAKqO,EAAW02O,EAAW9xP,GACnD,eAYX,CAAA,IAAA,UAAA,MAAA,SAAQ+M,EAAIxQ,EAAS+3E,EAAS54E,GAC1B,GAAe,YAAX44E,EAIJ,GAAe,UAAXA,EAAJ,CAOA,IAAMopK,EAASpiP,KAAKu2P,WAAW9kP,GAC/B,OAAQunE,GACJ,IAAK,OACDopK,EAAOG,OACP,MACJ,IAAK,QACDH,EAAOI,QACP,MACJ,IAAK,QACDJ,EAAO3iL,QACP,MACJ,IAAK,UACD2iL,EAAOv+I,UACP,MACJ,IAAK,SACDu+I,EAAO3oN,SACP,MACJ,IAAK,OACD2oN,EAAOp2H,OACP,MACJ,IAAK,cACDo2H,EAAOM,YAAYn9N,WAA8BnlB,EAAK,KACtD,MACJ,IAAK,UACDJ,KAAKm6E,QAAQ1oE,SA5BjBzR,KAAK6G,OAAO4K,EAAIxQ,EADoBb,EAAK,IAAM,SAL/CJ,KAAKy2P,SAAShlP,EAAuBrR,EAAK,QAkCzBqR,EA7MvB,GA+PAilP,GAAqB,GAErBC,GAAqB,CACvBC,YAAa,GACbC,eAAAA,EACAC,YAAAA,EACAC,cAAAA,EACAC,sBAAAA,GAGEC,GAA6B,CAC/BL,YAAa,GACbE,YAAAA,EACAD,eAAAA,EACAE,cAAAA,EACAC,sBAAAA,GAoDEE,GAAAA,WAKF,SAAA,EAAYh8P,GAAqB,IAAd07P,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAAA,gBAAA,KAAA,GAC7B52P,KAAK42P,YAAcA,EAEnB,IAm2EuBnxP,EAn2EjB0xP,EAAQj8P,GAASA,EAAMqD,eAAe,SAI5C,GADAyB,KAAKyF,MAo2EO,OAJWA,EAj2ET0xP,EAAQj8P,EAAa,MAAIA,GAq2EpBuK,EAAQ,KAn2EvB0xP,EAAO,CAEP,IAAMzhP,EAAU6wO,GAAQ,UACjB7wO,EAAe,MACtB1V,KAAK0V,QAAU,OAGf1V,KAAK0V,QAAU,GAEd1V,KAAK0V,QAAQ2hJ,SACdr3J,KAAK0V,QAAQ2hJ,OAAS,IAa9B,OAPA,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,SAOc3hJ,GAEV,IAAMo7O,EAAYp7O,EAAQ2hJ,OAC1B,GAAIy5F,EAAW,CAEX,IAAME,EAA+BhxP,KAAK0V,QAAe,OACzD3P,OAAOP,KAAKsrP,GAAWn5O,SAIvByI,SAAAA,GAC2B,MAAnB4wO,EAAU5wO,KACV4wO,EAAU5wO,GAAQ0wO,EAAU1wO,UAAAA,CAAAA,IAAAA,SAAAA,IAAAA,WAlBxC,OAA0BpgB,KAAK0V,QAAe,WAMlD,EAnCEwhP,GAgEAE,GAAsB,IAAIF,GAFb,QAGbG,GAAAA,WAMF,SAAA,EAAY5lP,EAAIg5H,EAAa6sH,GAAAA,gBAAAA,KAAAA,GACzBt3P,KAAKyR,GAAKA,EACVzR,KAAKyqI,YAAcA,EACnBzqI,KAAKs3P,QAAUA,EACft3P,KAAKgiP,QAAU,GACfhiP,KAAKu3P,UAAY,GACjBv3P,KAAKw3P,OAAS,GACdx3P,KAAKy3P,kBAAoB,IAAI3jG,IAC7B9zJ,KAAK03P,eAAiB,UAAYjmP,EAClCilB,GAAS+zG,EAAazqI,KAAK03P,gBAuiBpBC,OA9hBX,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAO12P,EAASrB,EAAMg4P,EAAOlzP,GAAAA,IAmyEJob,EAnyEIpb,EAAAA,KACzB,IAAK1E,KAAKu3P,UAAUh5P,eAAeqB,GAC/B,MAAM,IAAIiG,MAAJ,oDAAA,OAA8D+xP,EAA9D,qCAAA,OAAuGh4P,EAAvG,sBAEV,GAAa,MAATg4P,GAAiC,GAAhBA,EAAM58P,OACvB,MAAM,IAAI6K,MAAJ,8CAAA,OAAwDjG,EAAxD,+CAEV,GA6xEgB,UADKkgB,EA5xEI83O,IA6xEe,QAAb93O,EA5xEvB,MAAM,IAAIja,MAAJ,yCAAA,OAAmD+xP,EAAnD,iCAAA,OAAwFh4P,EAAxF,wBAGV,IAAMi4P,EAAYxT,GAAgBrkP,KAAKy3P,kBAAmBx2P,EAAS,IAE7D9E,EAAO,CAAEyD,KAAAA,EAAMg4P,MAAAA,EAAOlzP,SAAAA,GAC5BmzP,EAAUn3P,KAAKvE,GAEf,IAAM27P,EAAqBzT,GAAgBrkP,KAAKs3P,QAAQS,gBAAiB92P,EAAS,IAMlF,OALK62P,EAAmBv5P,eAAeqB,KACnC82B,GAASz1B,EAz0HQ,cA00HjBy1B,GAASz1B,EAAS+2P,cAA6Bp4P,GAC/Ck4P,EAAmBl4P,GAAQw3P,IAExB,WAOHp3P,EAAKs3P,QAAQW,YAAW,WAKpB,IAAMh3O,EAAQ42O,EAAUj2P,QAAQzF,GAC5B8kB,GAAS,GACT42O,EAAUj3P,OAAOqgB,EAAO,GAEvBjhB,EAAKu3P,UAAU33P,WACTk4P,EAAmBl4P,SAU1C,CAAA,IAAA,WAAA,MAAA,SAASA,EAAMsrP,GACX,OAAIlrP,KAAKu3P,UAAU33P,KAKfI,KAAKu3P,UAAU33P,GAAQsrP,GAAAA,KAS/B,CAAA,IAAA,cAAA,MAAA,SAAYtrP,GAER,IAAM8gB,EAAU1gB,KAAKu3P,UAAU33P,GAC/B,IAAK8gB,EACD,MAAM,IAAI7a,MAAJ,mCAAA,OAA6CjG,EAA7C,+BAEV,OAAO8gB,IASX,CAAA,IAAA,UAAA,MAAA,SAAQzf,EAASijP,EAAaz+O,GAA2B,IAAA,EAAA,KAApByyP,IAAoB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAE/Cx3O,EAAU1gB,KAAKm4P,YAAYjU,GAE3B9B,EAAS,IAAI,GAA0BpiP,KAAKyR,GAAIyyO,EAAajjP,GAE/D62P,EAAqB93P,KAAKs3P,QAAQS,gBAAgBl1O,IAAI5hB,GACrD62P,IACDphO,GAASz1B,EA94HQ,cA+4HjBy1B,GAASz1B,EAAS+2P,cAA6B9T,GAC/ClkP,KAAKs3P,QAAQS,gBAAgB/1O,IAAI/gB,EAAS62P,EAAqB,KAGnE,IAAI3T,EAAY2T,EAAmB5T,GAE7BE,EAAU,IAAI8S,GAAWzxP,EAAOzF,KAAKyR,IAkB3C,KAhBchM,GAASA,EAAMlH,eAAe,WAC9B4lP,GACVC,EAAQgU,cAAcjU,EAAUzuO,SAEpCoiP,EAAmB5T,GAAeE,EAC7BD,IACDA,EAAYiT,IAjIL,SAoIOhT,EAAQ3+O,OAOR0+O,EAAU1+O,QAAU2+O,EAAQ3+O,MAA9C,CA0BA,IAAM4yP,EAAmBhU,GAAgBrkP,KAAKs3P,QAAQgB,iBAAkBr3P,EAAS,IACjFo3P,EAAiB1gP,SAIjByqO,SAAAA,GAKQA,EAAOwU,aAAe52P,EAAKyR,IAAM2wO,EAAO8B,aAAeA,GAAe9B,EAAOmW,QAC7EnW,EAAOjoK,aAIf,IAAI2mK,EAAapgO,EAAQ83O,gBAAgBrU,EAAU1+O,MAAO2+O,EAAQ3+O,MAAOxE,EAASmjP,EAAQ/sF,QAEtFohG,GAAAA,EACJ,IAAK3X,EAAY,CACb,IAAKoX,EACD,OACJpX,EAAapgO,EAAQo1O,mBACrB2C,GAAAA,EAkCJ,OAhCAz4P,KAAKs3P,QAAQoB,qBACb14P,KAAKw3P,OAAO92P,KAAK,CAAEO,QAAAA,EAASijP,YAAAA,EAAapD,WAAAA,EAAYqD,UAAAA,EAAWC,QAAAA,EAAShC,OAAAA,EAAQqW,qBAAAA,IAC5EA,IACD/hO,GAASz1B,EA7UI,qBA8UbmhP,EAAOpoN,SAAQ,WAIXqrI,GAAYpkK,EAlVH,yBAqVjBmhP,EAAOC,QAAO,WAKV,IAAIphO,EAAQjhB,EAAKgiP,QAAQpgP,QAAQwgP,GAC7BnhO,GAAS,GACTjhB,EAAKgiP,QAAQphP,OAAOqgB,EAAO,GAG/B,IAAM+gO,EAAUhiP,EAAKs3P,QAAQgB,iBAAiBz1O,IAAI5hB,GAClD,GAAI+gP,EAAS,CAET,IAAI/gO,EAAQ+gO,EAAQpgP,QAAQwgP,GACxBnhO,GAAS,GACT+gO,EAAQphP,OAAOqgB,EAAO,OAIlCjhB,KAAKgiP,QAAQthP,KAAK0hP,GAClBiW,EAAiB33P,KAAK0hP,GACfA,EA/EH,IAw5EZ,SAAmBvoP,EAAGC,GAElB,IAAM6+P,EAAK5yP,OAAOP,KAAK3L,GAEjB++P,EAAK7yP,OAAOP,KAAK1L,GACvB,GAAI6+P,EAAG39P,QAAU49P,EAAG59P,OAChB,OAAA,EACJ,IAAK,IAAIL,EAAI,EAAGA,EAAIg+P,EAAG39P,OAAQL,IAAK,CAEhC,IAAMylB,EAAOu4O,EAAGh+P,GAChB,IAAKb,EAAEyE,eAAe6hB,IAASvmB,EAAEumB,KAAUtmB,EAAEsmB,GACzC,OAAA,EAER,OAAA,EAbJ,CAx5E2B+jO,EAAU9sF,OAAQ+sF,EAAQ/sF,QAAS,CAE9C,IAAMviJ,EAAS,GAETm/O,EAAavzO,EAAQm4O,YAAY1U,EAAU1+O,MAAO0+O,EAAU9sF,OAAQviJ,GAEpEo/O,EAAWxzO,EAAQm4O,YAAYzU,EAAQ3+O,MAAO2+O,EAAQ/sF,OAAQviJ,GAChEA,EAAO9Z,OACPgF,KAAKs3P,QAAQwB,YAAYhkP,GAGzB9U,KAAKs3P,QAAQW,YAAW,WAIpBjR,GAAY/lP,EAASgzP,GACrBnN,GAAU7lP,EAASizP,SAqEvC,CAAA,IAAA,aAAA,MAAA,SAAWt0P,GAAAA,IAAAA,EAAAA,YACAI,KAAKu3P,UAAU33P,GACtBI,KAAKs3P,QAAQS,gBAAgBpgP,SAAQ,SAKpCgyL,EAAU1oM,UACA0oM,EAAS/pM,MAEpBI,KAAKy3P,kBAAkB9/O,SAAQ,SAK9BkgP,EAAW52P,GACRjB,EAAKy3P,kBAAkBz1O,IAAI/gB,EAAS42P,EAAU3gP,QAI9C6hP,SAAAA,GAAAA,OACWA,EAAMn5P,MAAQA,WAQjC,CAAA,IAAA,oBAAA,MAAA,SAAkBqB,GACdjB,KAAKs3P,QAAQS,gBAAb/3P,OAAoCiB,GACpCjB,KAAKy3P,kBAALz3P,OAA8BiB,GAE9B,IAAM+3P,EAAiBh5P,KAAKs3P,QAAQgB,iBAAiBz1O,IAAI5hB,GACrD+3P,IACAA,EAAerhP,SAIfyqO,SAAAA,GAAAA,OAAUA,EAAOjoK,aACjBn6E,KAAKs3P,QAAQgB,iBAAbt4P,OAAqCiB,MAS7C,CAAA,IAAA,iCAAA,MAAA,SAA+B2sP,EAAa/kP,GAAAA,IAAAA,EAAAA,KAElCgf,EAAW7nB,KAAKs3P,QAAQtU,OAAOvuD,MAAMm5D,EAhjIvB,eAAA,GAojIpB/lO,EAASlQ,SAITwtO,SAAAA,GAGI,IAAIA,EAAgB,aAApB,CAGA,IAAM8T,EAAaj5P,EAAKs3P,QAAQ4B,yBAAyB/T,GACrD8T,EAAWx3O,KACXw3O,EAAWthP,SAIXwhP,SAAAA,GAAAA,OAAMA,EAAGC,sBAAsBjU,EAAKt8O,GAAAA,GAAS,MAG7C7I,EAAKq5P,kBAAkBlU,OAK/BnlP,KAAKs3P,QAAQgC,0BAAyB,WAAA,OAGhCzxO,EAASlQ,SAIfwtO,SAAAA,GAAAA,OAAOnlP,EAAKq5P,kBAAkBlU,WASlC,CAAA,IAAA,wBAAA,MAAA,SAAsBlkP,EAAS4H,EAAS0wP,EAAsBrB,GAAAA,IAAAA,EAAAA,KAEpDsB,EAAgBx5P,KAAKs3P,QAAQS,gBAAgBl1O,IAAI5hB,GACvD,GAAIu4P,EAAe,CAEf,IAAMxX,EAAU,GAgBhB,GAfAj8O,OAAOP,KAAKg0P,GAAe7hP,SAI3BusO,SAAAA,GAGI,GAAIlkP,EAAKu3P,UAAUrT,GAAc,CAE7B,IAAM9B,EAASpiP,EAAK0gB,QAAQzf,EAASijP,EAjVtC,OAiV+DgU,GAC1D9V,GACAJ,EAAQthP,KAAK0hP,OAIrBJ,EAAQhnP,OAQR,OAPAgF,KAAKs3P,QAAQmC,qBAAqBz5P,KAAKyR,GAAIxQ,GAAAA,EAAe4H,GACtD0wP,GACAzW,GAAoBd,GAASK,QAAO,WAAA,OAG9BriP,EAAKs3P,QAAQoC,iBAAiBz4P,OAAAA,EAKhD,OAAA,IAMJ,CAAA,IAAA,iCAAA,MAAA,SAA+BA,GAAAA,IAAAA,EAAAA,KAErB42P,EAAY73P,KAAKy3P,kBAAkB50O,IAAI5hB,GAC7C,GAAI42P,EAAW,CAEX,IAAM8B,EAAkB,IAAI3lG,IAC5B6jG,EAAUlgP,SAIVwzI,SAAAA,GAEI,IAAM+4F,EAAc/4F,EAASvrJ,KAC7B,IAAI+5P,EAAgB5jG,IAAImuF,GAAxB,CAEAyV,EAAgB5xP,IAAIm8O,GAEpB,IAEMpD,EAFU9gP,EAAKu3P,UAAUrT,GAEJ4R,mBAIrB3R,EAFmCnkP,EAAKs3P,QAAQS,gBAAgBl1O,IAAI5hB,GAE1CijP,IAAgBkT,GAE1ChT,EAAU,IAAI8S,GAjYjB,QAmYG9U,EAAS,IAAI,GAA0BpiP,EAAKyR,GAAIyyO,EAAajjP,GACnEjB,EAAKs3P,QAAQoB,qBACb14P,EAAKw3P,OAAO92P,KAAK,CACbO,QAAAA,EACAijP,YAAAA,EACApD,WAAAA,EACAqD,UAAAA,EACAC,QAAAA,EACAhC,OAAAA,EACAqW,sBAAAA,WAUhB,CAAA,IAAA,aAAA,MAAA,SAAWx3P,EAAS4H,GAAAA,IAAAA,EAAAA,KAEV+wP,EAAS55P,KAAKs3P,QAKpB,GAJIr2P,EAAQ44P,mBACR75P,KAAK85P,+BAA+B74P,EAAS4H,IAG7C7I,KAAKo5P,sBAAsBn4P,EAAS4H,GAAAA,GAAxC,CAKA,IAAIkxP,GAAAA,EACJ,GAAIH,EAAOI,gBAAiB,CAExB,IAAMC,EAAiBL,EAAO5X,QAAQhnP,OAAS4+P,EAAOM,wBAAwBr3O,IAAI5hB,GAAW,GAK7F,GAAIg5P,GAAkBA,EAAej/P,OACjC++P,GAAAA,OAKA,IADA,IAAIxwP,EAAStI,EACNsI,EAASA,EAAO4D,YAGnB,GADiBysP,EAAO7B,gBAAgBl1O,IAAItZ,GAC9B,CACVwwP,GAAAA,EACA,OAYhB,GAHA/5P,KAAKm6P,+BAA+Bl5P,GAGhC84P,EACAH,EAAOH,qBAAqBz5P,KAAKyR,GAAIxQ,GAAAA,EAAgB4H,OAEpD,CAED,IAAMuxP,EAAcn5P,EAAoB,aACnCm5P,GAAeA,IAAgBzD,KAGhCiD,EAAO3B,YAAW,WAAA,OAGZj4P,EAAKq5P,kBAAkBp4P,MAC7B24P,EAAOS,uBAAuBp5P,GAC9B24P,EAAOU,mBAAmBr5P,EAAS4H,QAS/C,CAAA,IAAA,aAAA,MAAA,SAAW5H,EAASsI,GAChBmtB,GAASz1B,EAASjB,KAAK03P,kBAM3B,CAAA,IAAA,yBAAA,MAAA,SAAuB6C,GAAAA,IAAAA,EAAAA,KAEbhN,EAAe,GA2CrB,OA1CAvtP,KAAKw3P,OAAO7/O,SAIZohP,SAAAA,GAEI,IAAM3W,EAAS2W,EAAM3W,OACrB,IAAIA,EAAO3yF,UAAX,CAGA,IAAMxuJ,EAAU83P,EAAM93P,QAEhB42P,EAAY73P,EAAKy3P,kBAAkB50O,IAAI5hB,GACzC42P,GACAA,EAAUlgP,SAITwzI,SAAAA,GACG,GAAIA,EAASvrJ,MAAQm5P,EAAM7U,YAAa,CAEpC,IAAMsS,EAAYvS,GAAmBhjP,EAAS83P,EAAM7U,YAAa6U,EAAM5U,UAAU1+O,MAAOszP,EAAM3U,QAAQ3+O,OACtG,EAAwC,MAAI80P,EAC5CxW,GAAegV,EAAM3W,OAAQj3F,EAASysG,MAAOpB,EAAWrrG,EAASzmJ,cAIzE09O,EAAOoY,iBACPx6P,EAAKs3P,QAAQW,YAAW,WAMpB7V,EAAOjoK,aAIXozK,EAAa7sP,KAAKq4P,OAG1B/4P,KAAKw3P,OAAS,GACPjK,EAAa71M,MAAK,SAKxB79C,EAAGC,GAIA,IAAM2gQ,EAAK5gQ,EAAEinP,WAAWoK,IAAInB,SAEtB2Q,EAAK5gQ,EAAEgnP,WAAWoK,IAAInB,SAC5B,OAAU,GAAN0Q,GAAiB,GAANC,EACJD,EAAKC,EAET16P,EAAKs3P,QAAQtU,OAAOwC,gBAAgB3rP,EAAEoH,QAASnH,EAAEmH,SAAW,GAAK,OAOhF,CAAA,IAAA,UAAA,MAAA,SAAQ4H,GACJ7I,KAAKgiP,QAAQrqO,SAIbjR,SAAAA,GAAAA,OAAKA,EAAEyzE,aACPn6E,KAAK85P,+BAA+B95P,KAAKyqI,YAAa5hI,KAM1D,CAAA,IAAA,sBAAA,MAAA,SAAoB5H,GAEhB,IAAI02P,GAAAA,EASJ,OARI33P,KAAKy3P,kBAAkB1hG,IAAI90J,KAC3B02P,GAAAA,GACJA,IACK33P,KAAKw3P,OAAOpmO,MAIb2nO,SAAAA,GAAAA,OAASA,EAAM93P,UAAYA,MAA6B02P,MACrDA,EAtjBTN,GAsmBA,GAAA,WAMF,SAAA,EAAYrB,EAAUhT,EAAQiT,GAAAA,gBAAAA,KAAAA,GAC1Bj2P,KAAKg2P,SAAWA,EAChBh2P,KAAKgjP,OAASA,EACdhjP,KAAKi2P,YAAcA,EACnBj2P,KAAKgiP,QAAU,GACfhiP,KAAK26P,gBAAkB,IAAI7mG,IAC3B9zJ,KAAKs4P,iBAAmB,IAAIxkG,IAC5B9zJ,KAAKk6P,wBAA0B,IAAIpmG,IACnC9zJ,KAAK+3P,gBAAkB,IAAIjkG,IAC3B9zJ,KAAK46P,cAAgB,IAAI5mG,IACzBh0J,KAAKg6P,gBAAkB,EACvBh6P,KAAK04P,mBAAqB,EAC1B14P,KAAK66P,iBAAmB,GACxB76P,KAAK86P,eAAiB,GACtB96P,KAAK+6P,UAAY,GACjB/6P,KAAKg7P,cAAgB,GACrBh7P,KAAKi7P,wBAA0B,IAAInnG,IACnC9zJ,KAAKk7P,uBAAyB,GAC9Bl7P,KAAKm7P,uBAAyB,GAE9Bn7P,KAAKo7P,kBAAoB,SAKxBn6P,EAAS4H,KAuCd,OA/BA,aAAA,EAAA,CAAA,CAAA,IAAA,qBAAA,MAAA,SAAmB5H,EAAS4H,GACxB7I,KAAKo7P,kBAAkBn6P,EAAS4H,KAKpC,CAAA,IAAA,kBAAA,MAAA,SAyBgB+tP,EAAansH,GAEzB,IAAM0uH,EAAK,IAAI9B,GAA6BT,EAAansH,EAAazqI,MAgBtE,OAfIyqI,EAAYt9H,WACZnN,KAAKq7P,sBAAsBlC,EAAI1uH,IAM/BzqI,KAAK26P,gBAAgB34O,IAAIyoH,EAAa0uH,GAMtCn5P,KAAKs7P,oBAAoB7wH,IAEtBzqI,KAAK66P,iBAAiBjE,GAAeuC,IAQhD,CAAA,IAAA,wBAAA,MAAA,SAAsBA,EAAI1uH,GAEtB,IAAM8hH,EAAQvsP,KAAK86P,eAAe9/P,OAAS,EAC3C,GAAIuxP,GAAS,EAAG,CAGZ,IADA,IAAIgP,GAAAA,EACK5gQ,EAAI4xP,EAAO5xP,GAAK,EAAGA,IAGxB,GAAIqF,KAAKgjP,OAAOwC,gBADMxlP,KAAK86P,eAAengQ,GACI8vI,YAAaA,GAAc,CACrEzqI,KAAK86P,eAAel6P,OAAOjG,EAAI,EAAG,EAAGw+P,GACrCoC,GAAAA,EACA,MAGHA,GACDv7P,KAAK86P,eAAel6P,OAAO,EAAG,EAAGu4P,QAIrCn5P,KAAK86P,eAAep6P,KAAKy4P,GAG7B,OADAn5P,KAAKi7P,wBAAwBj5O,IAAIyoH,EAAa0uH,GACvCA,IAOX,CAAA,IAAA,WAAA,MAAA,SAASvC,EAAansH,GAElB,IAAI0uH,EAAKn5P,KAAK66P,iBAAiBjE,GAI/B,OAHKuC,IACDA,EAAKn5P,KAAKw7P,gBAAgB5E,EAAansH,IAEpC0uH,IAQX,CAAA,IAAA,kBAAA,MAAA,SAAgBvC,EAAah3P,EAAM8gB,GAE/B,IAAIy4O,EAAKn5P,KAAK66P,iBAAiBjE,GAC3BuC,GAAMA,EAAG1C,SAAS72P,EAAM8gB,IACxB1gB,KAAKg6P,oBAQb,CAAA,IAAA,UAAA,MAAA,SAAQpD,EAAa/tP,GAAAA,IAAAA,EAAAA,KACjB,GAAK+tP,EAAL,CAGA,IAAMuC,EAAKn5P,KAAKy7P,gBAAgB7E,GAChC52P,KAAKi4P,YAAW,WAIZj4P,EAAKi7P,wBAALj7P,OAAoCm5P,EAAG1uH,oBAChCzqI,EAAK66P,iBAAiBjE,GAE7B,IAAM31O,EAAQjhB,EAAK86P,eAAel5P,QAAQu3P,GACtCl4O,GAAS,GACTjhB,EAAK86P,eAAel6P,OAAOqgB,EAAO,MAG1CjhB,KAAKs5P,0BAAyB,WAAA,OAGxBH,EAAGh/K,QAAQtxE,SAOrB,CAAA,IAAA,kBAAA,MAAA,SAAgB4I,GACZ,OAAOzR,KAAK66P,iBAAiBppP,KAMjC,CAAA,IAAA,2BAAA,MAAA,SAAyBxQ,GAOrB,IAAMg4P,EAAa,IAAIjlG,IAEjB0nG,EAAgB17P,KAAK+3P,gBAAgBl1O,IAAI5hB,GAC/C,GAAIy6P,EAGA,IADA,IAAMl2P,EAAOO,OAAOP,KAAKk2P,GAChB/gQ,EAAI,EAAGA,EAAI6K,EAAKxK,OAAQL,IAAK,CAElC,IAAMghQ,EAAOD,EAAcl2P,EAAK7K,IAAIi8P,YACpC,GAAI+E,EAAM,CAEN,IAAMxC,EAAKn5P,KAAKy7P,gBAAgBE,GAC5BxC,GACAF,EAAWlxP,IAAIoxP,IAK/B,OAAOF,IASX,CAAA,IAAA,UAAA,MAAA,SAAQrC,EAAa31P,EAASrB,EAAM6F,GAChC,GAAIm2P,GAAc36P,GAAU,CAExB,IAAMk4P,EAAKn5P,KAAKy7P,gBAAgB7E,GAChC,GAAIuC,EAEA,OADAA,EAAGz4O,QAAQzf,EAASrB,EAAM6F,IAAAA,EAIlC,OAAA,IASJ,CAAA,IAAA,aAAA,MAAA,SAAWmxP,EAAa31P,EAASsI,EAAQyD,GACrC,GAAK4uP,GAAc36P,GAAnB,CAKA,IAAM46P,EAA6B56P,EAAsB,aACzD,GAAI46P,GAAWA,EAAQhF,cAAe,CAClCgF,EAAQhF,eAAAA,EACRgF,EAAQ/E,YAAAA,EAER,IAAM71O,EAAQjhB,KAAKm7P,uBAAuBv5P,QAAQX,GAC9CggB,GAAS,GACTjhB,KAAKm7P,uBAAuBv6P,OAAOqgB,EAAO,GAMlD,GAAI21O,EAAa,CAEb,IAAMuC,EAAKn5P,KAAKy7P,gBAAgB7E,GAO5BuC,GACAA,EAAG2C,WAAW76P,EAASsI,GAI3ByD,GACAhN,KAAKs7P,oBAAoBr6P,MAOjC,CAAA,IAAA,sBAAA,MAAA,SAAoBA,GAChBjB,KAAKk7P,uBAAuBx6P,KAAKO,KAOrC,CAAA,IAAA,wBAAA,MAAA,SAAsBA,EAASwE,GACvBA,EACKzF,KAAK46P,cAAc7kG,IAAI90J,KACxBjB,KAAK46P,cAAc7yP,IAAI9G,GACvBy1B,GAASz1B,EArhCE,wBAwhCVjB,KAAK46P,cAAc7kG,IAAI90J,KAC5BjB,KAAK46P,cAAL56P,OAA0BiB,GAC1BokK,GAAYpkK,EA1hCG,0BAoiCvB,CAAA,IAAA,aAAA,MAAA,SAAW21P,EAAa31P,EAASuoJ,EAAe3gJ,GAC5C,GAAI+yP,GAAc36P,GAAU,CAExB,IAAMk4P,EAAKvC,EAAc52P,KAAKy7P,gBAAgB7E,GAAe,KAO7D,GANIuC,EACAA,EAAG4C,WAAW96P,EAAS4H,GAGvB7I,KAAKy5P,qBAAqB7C,EAAa31P,GAAAA,EAAgB4H,GAEvD2gJ,EAAe,CAEf,IAAMwyG,EAASh8P,KAAKi7P,wBAAwBp4O,IAAI5hB,GAC5C+6P,GAAUA,EAAOvqP,KAAOmlP,GACxBoF,EAAOD,WAAW96P,EAAS4H,SAKnC7I,KAAKs6P,mBAAmBr5P,EAAS4H,KAUzC,CAAA,IAAA,uBAAA,MAAA,SAAqB+tP,EAAa31P,EAAS81P,EAAcluP,GACrD7I,KAAKm7P,uBAAuBz6P,KAAKO,GACjCA,EAAoB,aAChB,CAAE21P,YAAAA,EAAaC,cAAehuP,EAASkuP,aAAAA,EAAcC,sBAAAA,KAU7D,CAAA,IAAA,SAAA,MAAA,SAAOJ,EAAa31P,EAASrB,EAAMg4P,EAAOlzP,GACtC,OAAIk3P,GAAc36P,GACPjB,KAAKy7P,gBAAgB7E,GAAa72F,OAAO9+J,EAASrB,EAAMg4P,EAAOlzP,GAEnE,eAcX,CAAA,IAAA,oBAAA,MAAA,SAAkBq0P,EAAOkD,EAAcpO,EAAgBC,EAAgBoO,GACnE,OAAOnD,EAAMjY,WAAWj7B,MAAM7lN,KAAKgjP,OAAQ+V,EAAM93P,QAAS83P,EAAM5U,UAAU1+O,MAAOszP,EAAM3U,QAAQ3+O,MAAOooP,EAAgBC,EAAgBiL,EAAM5U,UAAUzuO,QAASqjP,EAAM3U,QAAQ1uO,QAASumP,EAAcC,KAMxM,CAAA,IAAA,yBAAA,MAAA,SAAuBC,GAAAA,IAAAA,EAAAA,KAEft0O,EAAW7nB,KAAKgjP,OAAOvuD,MAAM0nE,EA1vJb,eAAA,GA2vJpBt0O,EAASlQ,SAIT1W,SAAAA,GAAAA,OAAWjB,EAAKo8P,kCAAkCn7P,MACT,GAArCjB,KAAKk6P,wBAAwBz4O,OAEjCoG,EAAW7nB,KAAKgjP,OAAOvuD,MAAM0nE,EA9vJP,iBAAA,IA+vJbxkP,SAIT1W,SAAAA,GAAAA,OAAWjB,EAAKq8P,sCAAsCp7P,QAM1D,CAAA,IAAA,oCAAA,MAAA,SAAkCA,GAE9B,IAAM+gP,EAAUhiP,KAAKs4P,iBAAiBz1O,IAAI5hB,GACtC+gP,GACAA,EAAQrqO,SAIRyqO,SAAAA,GAIQA,EAAOmW,OACPnW,EAAOoY,kBAAAA,EAGPpY,EAAOjoK,eASvB,CAAA,IAAA,wCAAA,MAAA,SAAsCl5E,GAElC,IAAM+gP,EAAUhiP,KAAKk6P,wBAAwBr3O,IAAI5hB,GAC7C+gP,GACAA,EAAQrqO,SAIRyqO,SAAAA,GAAAA,OAAUA,EAAO3oN,cAMzB,CAAA,IAAA,oBAAA,MAAA,WAAA,IAAA,EAAA,KACI,OAAO,IAAIlqB,SAIXwJ,SAAAA,GACI,GAAI/Y,EAAKgiP,QAAQhnP,OACb,OAAO8nP,GAAoB9iP,EAAKgiP,SAASK,QAAO,WAAA,OAG1CtpO,OAGNA,SAQZ,CAAA,IAAA,mBAAA,MAAA,SAAiB9X,GAAAA,IAAAA,EAAAA,KAEP46P,EAA6B56P,EAAsB,aACzD,GAAI46P,GAAWA,EAAQhF,cAAe,CAGlC,GADA51P,EAAoB,aAAI01P,GACpBkF,EAAQjF,YAAa,CACrB52P,KAAKq6P,uBAAuBp5P,GAE5B,IAAMk4P,EAAKn5P,KAAKy7P,gBAAgBI,EAAQjF,aACpCuC,GACAA,EAAGE,kBAAkBp4P,GAG7BjB,KAAKs6P,mBAAmBr5P,EAAS46P,EAAQhF,eAEzC72P,KAAKgjP,OAAOuC,eAAetkP,EAtsCb,yBAusCdjB,KAAKs8P,sBAAsBr7P,GAAAA,GAE/BjB,KAAKgjP,OAAOvuD,MAAMxzL,EAzsCA,wBAAA,GAysCkC0W,SAIpDynB,SAAAA,GACIp/B,EAAKs8P,sBAAsBl9N,GAAAA,QAOnC,CAAA,IAAA,QAAA,MAAA,WAAoB,IAAA,EAAA,KAAdm7N,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,IAAA,EAEZvY,EAAU,GAUd,GATIhiP,KAAK26P,gBAAgBl5O,OACrBzhB,KAAK26P,gBAAgBhjP,SAAQ,SAK5BwhP,EAAIl4P,GALwB,OAKZjB,EAAKq7P,sBAAsBlC,EAAIl4P,MAChDjB,KAAK26P,gBAAgBx7M,SAErBn/C,KAAKg6P,iBAAmBh6P,KAAKk7P,uBAAuBlgQ,OACpD,IAAK,IAAIL,EAAI,EAAGA,EAAIqF,KAAKk7P,uBAAuBlgQ,OAAQL,IAGpD+7B,GADY12B,KAAKk7P,uBAAuBvgQ,GAluCjC,oBAsuCf,GAAIqF,KAAK86P,eAAe9/P,SACnBgF,KAAK04P,oBAAsB14P,KAAKm7P,uBAAuBngQ,QAAS,CAEjE,IAAMuhQ,EAAa,GACnB,IACIva,EAAUhiP,KAAKw8P,iBAAiBD,EAAYhC,GADhD,QAII,IAAK,IAAI5/P,EAAI,EAAGA,EAAI4hQ,EAAWvhQ,OAAQL,IACnC4hQ,EAAW5hQ,WAKnB,IAAK,IAAIA,EAAI,EAAGA,EAAIqF,KAAKm7P,uBAAuBngQ,OAAQL,IAGpDqF,KAAK05P,iBADW15P,KAAKm7P,uBAAuBxgQ,IAapD,GATAqF,KAAK04P,mBAAqB,EAC1B14P,KAAKk7P,uBAAuBlgQ,OAAS,EACrCgF,KAAKm7P,uBAAuBngQ,OAAS,EACrCgF,KAAK+6P,UAAUpjP,SAIfvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAK+6P,UAAY,GACb/6P,KAAKg7P,cAAchgQ,OAAQ,CAK3B,IAAMyhQ,EAAWz8P,KAAKg7P,cACtBh7P,KAAKg7P,cAAgB,GACjBhZ,EAAQhnP,OACR8nP,GAAoBd,GAASK,QAAO,WAIhCoa,EAAS9kP,SAITvT,SAAAA,GAAAA,OAAMA,UAIVq4P,EAAS9kP,SAITvT,SAAAA,GAAAA,OAAMA,UAQlB,CAAA,IAAA,cAAA,MAAA,SAAY0Q,GACR,MAAM,IAAIjP,MAAJ,kFAAA,OAA4FiP,EAAOpP,KAAK,UAQlH,CAAA,IAAA,mBAAA,MAAA,SAAiB62P,EAAYhC,GAAAA,IAAAA,EAAAA,KAEnB0B,EAAe,IAAI5O,GAEnBqP,EAAiB,GAEjBC,EAAoB,IAAI7oG,IAExB8oG,EAAqB,GAErBzI,EAAkB,IAAIrgG,IAEtB+oG,EAAsB,IAAI/oG,IAE1BgpG,EAAuB,IAAIhpG,IAE3BipG,EAAsB,IAAI/oG,IAChCh0J,KAAK46P,cAAcjjP,SAInBynB,SAAAA,GACI29N,EAAoBh1P,IAAIq3B,GAGxB,IADA,IAAM49N,EAAuBh9P,EAAKgjP,OAAOvuD,MAAMr1J,EA10CnC,sBAAA,GA20CHzkC,EAAI,EAAGA,EAAIqiQ,EAAqBhiQ,OAAQL,IAC7CoiQ,EAAoBh1P,IAAIi1P,EAAqBriQ,OAIrD,IAAMq7P,EAAWh2P,KAAKg2P,SAEhBiH,EAAqBx2P,MAAM8tE,KAAKv0E,KAAK+3P,gBAAgBvyP,QAErD03P,EAAeC,GAAaF,EAAoBj9P,KAAKk7P,wBAKrDkC,EAAkB,IAAItpG,IAExBn5J,EAAI,EACRuiQ,EAAavlP,SAAQ,SAKpB0lP,EAAOnvO,GAEJ,IAAM5gB,EA5/JM,WA4/JwB3S,IACpCyiQ,EAAgBp7O,IAAIkM,EAAM5gB,GAC1B+vP,EAAM1lP,SAINynB,SAAAA,GAAAA,OAAQ1I,GAAS0I,EAAM9xB,SAQ3B,IALA,IAAMgwP,EAAgB,GAEhBC,EAAmB,IAAIvpG,IAEvBwpG,EAA8B,IAAIxpG,IAC/Br5J,EAAI,EAAGA,EAAIqF,KAAKm7P,uBAAuBngQ,OAAQL,IAAK,CAEzD,IAAMsG,EAAUjB,KAAKm7P,uBAAuBxgQ,GAEtCkhQ,EAA6B56P,EAAsB,aACrD46P,GAAWA,EAAQhF,gBACnByG,EAAc58P,KAAKO,GACnBs8P,EAAiBx1P,IAAI9G,GACjB46P,EAAQ9E,aACR/2P,KAAKgjP,OAAOvuD,MAAMxzL,EAl3ChB,qBAAA,GAk3C8C0W,SAIhDwtO,SAAAA,GAAAA,OAAOoY,EAAiBx1P,IAAIo9O,MAG5BqY,EAA4Bz1P,IAAI9G,IAK5C,IAAMw8P,EAAkB,IAAI3pG,IAEtB4pG,EAAeP,GAAaF,EAAoBx2P,MAAM8tE,KAAKgpL,IACjEG,EAAa/lP,SAAQ,SAKpB0lP,EAAOnvO,GAEJ,IAAM5gB,EAviKM,WAuiKwB3S,IACpC8iQ,EAAgBz7O,IAAIkM,EAAM5gB,GAC1B+vP,EAAM1lP,SAINynB,SAAAA,GAAAA,OAAQ1I,GAAS0I,EAAM9xB,SAE3BivP,EAAW77P,MAAK,WAIZw8P,EAAavlP,SAAQ,SAKpB0lP,EAAOnvO,GAEJ,IAAM5gB,EAA+B8vP,EAAgBv6O,IAAIqL,GACzDmvO,EAAM1lP,SAINynB,SAAAA,GAAAA,OAAQimI,GAAYjmI,EAAM9xB,SAE9BowP,EAAa/lP,SAAQ,SAKpB0lP,EAAOnvO,GAEJ,IAAM5gB,EAA+BmwP,EAAgB56O,IAAIqL,GACzDmvO,EAAM1lP,SAINynB,SAAAA,GAAAA,OAAQimI,GAAYjmI,EAAM9xB,SAE9BgwP,EAAc3lP,SAId1W,SAAAA,GACIjB,EAAK05P,iBAAiBz4P,SAO9B,IAHA,IAAM08P,EAAa,GAEbC,EAAuB,GACpBjjQ,EAAIqF,KAAK86P,eAAe9/P,OAAS,EAAGL,GAAK,EAAGA,IAEtCqF,KAAK86P,eAAengQ,GAC5BkjQ,uBAAuBtD,GAAa5iP,SAIvCohP,SAAAA,GAEI,IAAM3W,EAAS2W,EAAM3W,OAEfnhP,EAAU83P,EAAM93P,QAEtB,GADA08P,EAAWj9P,KAAK0hP,GACZpiP,EAAKk7P,uBAAuBlgQ,OAAQ,CAEpC,IAAM6gQ,EAA6B56P,EAAsB,aAEzD,GAAI46P,GAAWA,EAAQ/E,WAEnB,YADA1U,EAAOjoK,UAKf,IAAM2jL,GAAkB9H,IAAah2P,EAAKgjP,OAAOwC,gBAAgBwQ,EAAU/0P,GAErE6sP,EAAoC2P,EAAgB56O,IAAI5hB,GAExD4sP,EAAoCuP,EAAgBv6O,IAAI5hB,GAExDghJ,EAAiCjiJ,EAAK+9P,kBAAkBhF,EAAOkD,EAAcpO,EAAgBC,EAAgBgQ,GACnH,IAAI77G,EAAYntI,SAAUmtI,EAAYntI,OAAO9Z,OAQ7C,OAAI8iQ,GAcA/E,EAAMN,sBAbNrW,EAAOpoN,SAAQ,WAAA,OAGTgtN,GAAY/lP,EAASghJ,EAAYgyG,eACvC7R,EAAO36G,WAAU,WAAA,OAGXq/G,GAAU7lP,EAASghJ,EAAYiyG,kBACrCwI,EAAeh8P,KAAK0hP,KAsBxBngG,EAAYqsG,UAAU32O,SAItBgoC,SAAAA,GAAAA,OAAMA,EAAG2xM,yBAAAA,KACT2K,EAAa52C,OAAOpkN,EAASghJ,EAAYqsG,WAGzCsO,EAAmBl8P,KADL,CAAEuhJ,YAAAA,EAAamgG,OAAAA,EAAQnhP,QAAAA,IAErCghJ,EAAYkyG,gBAAgBx8O,SAI5B1W,SAAAA,GAAAA,OAAWojP,GAAgB8P,EAAiBlzP,EAAS,IAAIP,KAAK0hP,MAC9DngG,EAAYirG,cAAcv1O,SAAQ,SAKjCqmP,EAAW/8P,GAER,IAAMsxE,EAAQxsE,OAAOP,KAAKw4P,GAC1B,GAAIzrL,EAAMv3E,OAAQ,CAEd,IAAIijQ,EAA4BpB,EAAoBh6O,IAAI5hB,GACnDg9P,GACDpB,EAAoB76O,IAAI/gB,EAASg9P,EAAS,IAAIjqG,KAElDzhF,EAAM56D,SAINyI,SAAAA,GAAAA,OAAQ69O,EAAOl2P,IAAIqY,eAG3B6hI,EAAYkrG,eAAex1O,SAAQ,SAKlCqmP,EAAW/8P,GAER,IAAMsxE,EAAQxsE,OAAOP,KAAKw4P,GAEtBC,EAA4BnB,EAAqBj6O,IAAI5hB,GACpDg9P,GACDnB,EAAqB96O,IAAI/gB,EAASg9P,EAAS,IAAIjqG,KAEnDzhF,EAAM56D,SAINyI,SAAAA,GAAAA,OAAQ69O,EAAOl2P,IAAIqY,UA1FnBw9O,EAAqBl9P,KAAKuhJ,MA8FtC,GAAI27G,EAAqB5iQ,OAAQ,CAE7B,IAAM8Z,EAAS,GACf8oP,EAAqBjmP,SAIrBsqI,SAAAA,GACIntI,EAAOpU,KAAPoU,IAAAA,OAAgBmtI,EAAYiiG,YAA5BpvO,0BACmBmtI,EAAmB,OAAEtqI,SAIxCxY,SAAAA,GAAAA,OAAS2V,EAAOpU,KAAPoU,KAAAA,OAAiB3V,EAAjB2V,aAEb6oP,EAAWhmP,SAIXyqO,SAAAA,GAAAA,OAAUA,EAAOjoK,aACjBn6E,KAAK84P,YAAYhkP,GAGrB,IAAMopP,EAAwB,IAAIpqG,IAM5BqqG,EAAsB,IAAIrqG,IAChC8oG,EAAmBjlP,SAInBohP,SAAAA,GAEI,IAAM93P,EAAU83P,EAAM93P,QAClBg7P,EAAalmG,IAAI90J,KACjBk9P,EAAoBn8O,IAAI/gB,EAASA,GACjCjB,EAAKo+P,sBAAsBrF,EAAM3W,OAAOwU,YAAamC,EAAM92G,YAAai8G,OAGhFxB,EAAe/kP,SAIfyqO,SAAAA,GAEI,IAAMnhP,EAAUmhP,EAAOnhP,QAECjB,EAAKq+P,oBAAoBp9P,GAAAA,EAAgBmhP,EAAOwU,YAAaxU,EAAO8B,YAAa,MACzFvsO,SAIhB2mP,SAAAA,GACIja,GAAgB6Z,EAAuBj9P,EAAS,IAAIP,KAAK49P,GACzDA,EAAWnkL,gBAWnB,IAAMokL,EAAejB,EAAcpmP,QAInCkoB,SAAAA,GAAAA,OACWo/N,GAAuBp/N,EAAMy9N,EAAqBC,MAIvD2B,EAAgB,IAAI3qG,IAEG4qG,GAAsBD,EAAez+P,KAAKgjP,OAAQwa,EAA6BV,EDrnLjG,KCsnLUnlP,SAIrBynB,SAAAA,GACQo/N,GAAuBp/N,EAAMy9N,EAAqBC,IAClDyB,EAAa79P,KAAK0+B,MAK1B,IAAMu/N,EAAe,IAAI7qG,IACzBopG,EAAavlP,SAAQ,SAKpB0lP,EAAOnvO,GACJwwO,GAAsBC,EAAc3+P,EAAKgjP,OAAQ,IAAIhvF,IAAIqpG,GAAQR,ED/2H1D,QCi3HX0B,EAAa5mP,SAIbynB,SAAAA,GAEI,IAAMmmL,EAAOk5C,EAAc57O,IAAIuc,GAEzBw/N,EAAMD,EAAa97O,IAAIuc,GAC7Bq/N,EAAcz8O,IAAIod,EAAyBr5B,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIs8F,GAAOq5C,OAGtF,IAAMC,EAAc,GAEdC,EAAa,GAEbC,EAAuC,GAC7CnC,EAAmBjlP,SAInBohP,SAAAA,GAAAA,IACY93P,EAAiC83P,EAAnC,QAAW3W,EAAwB2W,EAA1B,OAAU92G,EAAgB82G,EAAlB,YAGvB,GAAIkD,EAAalmG,IAAI90J,GAAU,CAC3B,GAAI87P,EAAoBhnG,IAAI90J,GAQxB,OAPAmhP,EAAO36G,WAAU,WAAA,OAGXq/G,GAAU7lP,EAASghJ,EAAYiyG,aACrC9R,EAAO5wC,UAAAA,EACP4wC,EAAO4c,kBAAkB/8G,EAAYs/F,gBACrCmb,EAAeh8P,KAAK0hP,GAUxB,IAAI6c,EAAsBF,EAC1B,GAAIZ,EAAoB18O,KAAO,EAAG,CAK9B,IAHA,IAAI0jO,EAAMlkP,EAEJi+P,EAAe,GACd/Z,EAAMA,EAAIh4O,YAAY,CAEzB,IAAMgyP,EAAiBhB,EAAoBt7O,IAAIsiO,GAC/C,GAAIga,EAAgB,CAChBF,EAAsBE,EACtB,MAEJD,EAAax+P,KAAKykP,GAEtB+Z,EAAavnP,SAIbpO,SAAAA,GAAAA,OAAU40P,EAAoBn8O,IAAIzY,EAAQ01P,MAG9C,IAAMG,EAAcp/P,EAAKq/P,gBAAgBjd,EAAOwU,YAAa30G,EAAai8G,EAAuBvB,EAAmBgC,EAAcF,GAElI,GADArc,EAAOkd,cAAcF,GACjBH,IAAwBF,EACxBF,EAAYn+P,KAAK0hP,OAEhB,CAED,IAAMmd,EAAgBv/P,EAAKs4P,iBAAiBz1O,IAAIo8O,GAC5CM,GAAiBA,EAAcvkQ,SAC/BonP,EAAOd,aAAewB,GAAoByc,IAE9C7C,EAAeh8P,KAAK0hP,SAIxB4E,GAAY/lP,EAASghJ,EAAYgyG,YACjC7R,EAAO36G,WAAU,WAAA,OAGXq/G,GAAU7lP,EAASghJ,EAAYiyG,aAIrC4K,EAAWp+P,KAAK0hP,GACZ2a,EAAoBhnG,IAAI90J,IACxBy7P,EAAeh8P,KAAK0hP,MAKhC0c,EAAWnnP,SAIXyqO,SAAAA,GAII,IAAMod,EAAoB7C,EAAkB95O,IAAIu/N,EAAOnhP,SACvD,GAAIu+P,GAAqBA,EAAkBxkQ,OAAQ,CAE/C,IAAMokQ,EAActc,GAAoB0c,GACxCpd,EAAOkd,cAAcF,OAM7B1C,EAAe/kP,SAIfyqO,SAAAA,GACQA,EAAOd,aACPc,EAAOqd,iBAAiBrd,EAAOd,cAG/Bc,EAAOjoK,aAMf,IAAK,IAAIx/E,EAAI,EAAGA,EAAI2iQ,EAActiQ,OAAQL,IAAK,CAE3C,IAAMsG,EAAUq8P,EAAc3iQ,GAExBkhQ,EAA6B56P,EAAsB,aAKzD,GAJAokK,GAAYpkK,EAj8KA,aAq8KR46P,IAAWA,EAAQ9E,aAAvB,CAGA,IAAI/U,EAAU,GAId,GAAImS,EAAgB1yO,KAAM,CAEtB,IAAIi+O,EAAuBvL,EAAgBtxO,IAAI5hB,GAC3Cy+P,GAAwBA,EAAqB1kQ,QAC7CgnP,EAAQthP,KAARshP,MAAAA,EAAAA,oBAAgB0d,IAIpB,IADA,IAAIC,EAAuB3/P,KAAKgjP,OAAOvuD,MAAMxzL,EAv8K/B,iBAAA,GAw8KLS,EAAI,EAAGA,EAAIi+P,EAAqB3kQ,OAAQ0G,IAAK,CAElD,IAAIk+P,EAAiBzL,EAAgBtxO,IAAI88O,EAAqBj+P,IAC1Dk+P,GAAkBA,EAAe5kQ,QACjCgnP,EAAQthP,KAARshP,MAAAA,EAAAA,oBAAgB4d,KAK5B,IAAMC,EAAgB7d,EAAQ9qO,QAI9BxQ,SAAAA,GAAAA,OAAMA,EAAE+oJ,aACJowG,EAAc7kQ,OACd8kQ,GAA8B9/P,KAAMiB,EAAS4+P,GAG7C7/P,KAAK05P,iBAAiBz4P,IAsB9B,OAlBAq8P,EAActiQ,OAAS,EACvB6jQ,EAAYlnP,SAIZyqO,SAAAA,GACIpiP,EAAKgiP,QAAQthP,KAAK0hP,GAClBA,EAAOC,QAAO,WAIVD,EAAOjoK,UAEP,IAAMl5D,EAAQjhB,EAAKgiP,QAAQpgP,QAAQwgP,GACnCpiP,EAAKgiP,QAAQphP,OAAOqgB,EAAO,MAE/BmhO,EAAOG,UAEJsc,IAOX,CAAA,IAAA,sBAAA,MAAA,SAAoBjI,EAAa31P,GAE7B,IAAI02P,GAAAA,EAEEkE,EAA6B56P,EAAsB,aASzD,OARI46P,GAAWA,EAAQhF,gBACnBc,GAAAA,GACA33P,KAAKs4P,iBAAiBviG,IAAI90J,KAC1B02P,GAAAA,GACA33P,KAAKk6P,wBAAwBnkG,IAAI90J,KACjC02P,GAAAA,GACA33P,KAAK+3P,gBAAgBhiG,IAAI90J,KACzB02P,GAAAA,GACG33P,KAAKy7P,gBAAgB7E,GAAamJ,oBAAoB9+P,IAAY02P,IAM7E,CAAA,IAAA,aAAA,MAAA,SAAWjzP,GACP1E,KAAK+6P,UAAUr6P,KAAKgE,KAMxB,CAAA,IAAA,2BAAA,MAAA,SAAyBA,GACrB1E,KAAKg7P,cAAct6P,KAAKgE,KAW5B,CAAA,IAAA,sBAAA,MAAA,SAAoBzD,EAAS++P,EAAkBpJ,EAAa1S,EAAa+b,GAErE,IAAIje,EAAU,GACd,GAAIge,EAAkB,CAElB,IAAME,EAAwBlgQ,KAAKk6P,wBAAwBr3O,IAAI5hB,GAC3Di/P,IACAle,EAAUke,OAGb,CAED,IAAMlH,EAAiBh5P,KAAKs4P,iBAAiBz1O,IAAI5hB,GACjD,GAAI+3P,EAAgB,CAEhB,IAAMmH,GAAsBF,GAtxDzB,QAsxDyCA,EAC5CjH,EAAerhP,SAIfyqO,SAAAA,GACQA,EAAOmW,SAEN4H,GAAsB/d,EAAO8B,aAAeA,IAEjDlC,EAAQthP,KAAK0hP,OAiBzB,OAbIwU,GAAe1S,KACflC,EAAUA,EAAQ9qO,QAIlBkrO,SAAAA,GAAAA,QACQwU,GAAeA,GAAexU,EAAOwU,aAErC1S,GAAeA,GAAe9B,EAAO8B,iBAK1ClC,IASX,CAAA,IAAA,wBAAA,MAAA,SAAsB4U,EAAa30G,EAAai8G,GAAAA,IAAAA,EAAAA,EAAAA,KAItCtQ,EAAc3rG,EAAYhhJ,QAI1Bm/P,EAAoBn+G,EAAY+xG,yBAAAA,EAAkC4C,EAElEyJ,EAAoBp+G,EAAY+xG,yBAAAA,EARlB/xG,EAAYiiG,YAFYga,EAAAA,2BAWVj8G,EAAYqsG,WAXF4P,IAAAA,IAAAA,EAAAA,WAAAA,IAalCj9P,EAbkCi9P,EAAAA,MAaJj9P,QAE9B++P,EAAmB/+P,IAAY2sP,EAE/B5L,EAAUqC,GAAgB6Z,EAAuBj9P,EAAS,IAExCjB,EAAKq+P,oBAAoBp9P,EAAS++P,EAAkBI,EAAmBC,EAAmBp+G,EAAYmiG,SAC9GzsO,SAIhByqO,SAAAA,GAEI,IAAMke,EAAgC,EAA8BC,gBAChED,EAAW1d,eACX0d,EAAW1d,gBAEfR,EAAOjoK,UACP6nK,EAAQthP,KAAK0hP,OApBrB,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAyD,IAXb8b,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,IAoC5ClX,GAAY4G,EAAa3rG,EAAYgyG,cAYzC,CAAA,IAAA,kBAAA,MAAA,SAAgB2C,EAAa30G,EAAai8G,EAAuBvB,EAAmBgC,EAAcF,GAAAA,IAAAA,EAAAA,KAExFva,EAAcjiG,EAAYiiG,YAE1B0J,EAAc3rG,EAAYhhJ,QAI1Bu/P,EAAoB,GAEpBC,EAAsB,IAAIzsG,IAE1B0sG,EAAiB,IAAI1sG,IAErB2sG,EAAgB1+G,EAAYqsG,UAAUv5O,KAI5C6rP,SAAAA,GAEI,IAAM3/P,EAAU2/P,EAAoB3/P,QACpCw/P,EAAoB14P,IAAI9G,GAGxB,IAAM46P,EAAU56P,EAAoB,aACpC,GAAI46P,GAAWA,EAAQ7E,qBACnB,OAAO,IAAIhW,GAAoB4f,EAAoBpnO,SAAUonO,EAAoB98J,OAErF,IAooBiBk+I,EAEnB6e,EAtoBQb,EAAmB/+P,IAAY2sP,EAE/BkT,GAkoBW9e,GAloB4Bkc,EAAsBr7O,IAAI5hB,IAAYy1P,IAC9E3hP,KAILrO,SAAAA,GAAAA,OAAKA,EAAE65P,mBA+nBTM,EAAe,GASzB,SAASE,EAA0B/e,EAAS6e,GACxC,IAAK,IAAIlmQ,EAAI,EAAGA,EAAIqnP,EAAQhnP,OAAQL,IAAK,CAErC,IAAMynP,EAASJ,EAAQrnP,GACnBynP,aAAkB,GAClB2e,EAA0B3e,EAAOJ,QAAS6e,GAG1CA,EAAangQ,KAAK0hP,IAR9B,CAR8BJ,EAAS6e,GAC5BA,GAhoBM3pP,QAILxQ,SAAAA,GAAAA,QAMe,EACDzF,SADC,EACYA,UAAYA,KAGjCkiP,EAAYwb,EAAa97O,IAAI5hB,GAE7BmiP,EAAaqb,EAAc57O,IAAI5hB,GAE/BiiP,EAAYH,GAAmB/iP,EAAaA,EAAKi2P,YAAah1P,EAAS2/P,EAAoB1d,UAAWC,EAAWC,GAEjHhB,EAASpiP,EAAKs2P,aAAasK,EAAqB1d,EAAW4d,GAMjE,GAHIF,EAAoBxT,aAAeuP,GACnC+D,EAAe34P,IAAI9G,GAEnB++P,EAAkB,CAElB,IAAMgB,EAAgB,IAAI,GAA0BpK,EAAa1S,EAAajjP,GAC9E+/P,EAAc1B,cAAcld,GAC5Boe,EAAkB9/P,KAAKsgQ,GAE3B,OAAO5e,KAEXoe,EAAkB7oP,SAIlByqO,SAAAA,GACIiC,GAAgBrkP,EAAKk6P,wBAAyB9X,EAAOnhP,QAAS,IAAIP,KAAK0hP,GACvEA,EAAOC,QAAO,WAAA,OAoV1B,SAA4BttO,EAAK7Y,EAAKuJ,GAElC,IAAIw7P,EACJ,GAAIlsP,aAAe++I,KAEf,GADAmtG,EAAgBlsP,EAAI8N,IAAI3mB,GACL,CACf,GAAI+kQ,EAAcjmQ,OAAQ,CAEtB,IAAMimB,EAAQggP,EAAcr/P,QAAQ6D,GACpCw7P,EAAcrgQ,OAAOqgB,EAAO,GAEJ,GAAxBggP,EAAcjmQ,QACd+Z,EAAAA,OAAW7Y,SAMnB,GADA+kQ,EAAgBlsP,EAAI7Y,GACD,CACf,GAAI+kQ,EAAcjmQ,OAAQ,CAEtB,IAAMimB,EAAQggP,EAAcr/P,QAAQ6D,GACpCw7P,EAAcrgQ,OAAOqgB,EAAO,GAEJ,GAAxBggP,EAAcjmQ,eACP+Z,EAAI7Y,GAIvB,OAAO+kQ,EA7BX,CAjVqCjhQ,EAAKk6P,wBAAyB9X,EAAOnhP,QAASmhP,SAE3Eqe,EAAoB9oP,SAIpB1W,SAAAA,GAAAA,OAAWy1B,GAASz1B,EAvtLG,mBAytLvB,IAAMmhP,EAASU,GAAoB6d,GAqBnC,OApBAve,EAAO36G,WAAU,WAIbg5H,EAAoB9oP,SAIpB1W,SAAAA,GAAAA,OAAWokK,GAAYpkK,EAluLJ,mBAmuLnB6lP,GAAU8G,EAAa3rG,EAAYiyG,aAIvCwM,EAAe/oP,SAIf1W,SAAAA,GACIojP,GAAgBsY,EAAmB17P,EAAS,IAAIP,KAAK0hP,MAElDA,IASX,CAAA,IAAA,eAAA,MAAA,SAAangG,EAAaihG,EAAW4d,GACjC,OAAI5d,EAAUloP,OAAS,EACZgF,KAAKgjP,OAAO3pN,QAAQ4oH,EAAYhhJ,QAASiiP,EAAWjhG,EAAYzoH,SAAUyoH,EAAYn+C,MAAOm+C,EAAYroH,OAAQknO,GAIrH,IAAI9f,GAAoB/+F,EAAYzoH,SAAUyoH,EAAYn+C,SAAAA,CAAAA,IAAAA,gBAAAA,IAAAA,WA70CjE,IAAMk+I,EAAU,GAgBhB,OAfAhiP,KAAK86P,eAAenjP,SAIpBwhP,SAAAA,GACIA,EAAGnX,QAAQrqO,SAIXyqO,SAAAA,GACQA,EAAOmW,QACPvW,EAAQthP,KAAK0hP,SAIlBJ,MAOX,EAtEE,GAs7CA,GAAA,WAMF,SAAA,EAAY4U,EAAa1S,EAAajjP,GAAAA,gBAAAA,KAAAA,GAClCjB,KAAK42P,YAAcA,EACnB52P,KAAKkkP,YAAcA,EACnBlkP,KAAKiB,QAAUA,EACfjB,KAAKkhQ,QAAU,IAAIlgB,GACnBhhP,KAAKmhQ,qBAAAA,EACLnhQ,KAAKohQ,iBAAmB,GACxBphQ,KAAKyvJ,WAAAA,EACLzvJ,KAAKw6P,kBAAAA,EACLx6P,KAAKwxM,UAAAA,EACLxxM,KAAKu4P,QAAAA,EACLv4P,KAAKuhP,UAAY,EA6KKK,OAvK1B,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,SAAcQ,GAAAA,IAAAA,EAAAA,KACNpiP,KAAKmhQ,sBAETnhQ,KAAKkhQ,QAAU9e,EACfr8O,OAAOP,KAAKxF,KAAKohQ,kBAAkBzpP,SAInCigP,SAAAA,GACI53P,EAAKohQ,iBAAiBxJ,GAAOjgP,SAI7BjT,SAAAA,GAAAA,OAAYq/O,GAAe3B,EAAQwV,OAAAA,EAAkBlzP,SAEzD1E,KAAKohQ,iBAAmB,GACxBphQ,KAAKmhQ,qBAAAA,EACLnhQ,KAAKg/P,kBAAkB5c,EAAOb,WAC9B,KAA4BgX,QAAAA,KAKhC,CAAA,IAAA,gBAAA,MAAA,WACI,OAAOv4P,KAAKkhQ,UAMhB,CAAA,IAAA,oBAAA,MAAA,SAAkB3f,GACd,KAA4BA,UAAYA,IAM5C,CAAA,IAAA,mBAAA,MAAA,SAAiBa,GAAAA,IAAAA,EAAAA,KAEP17O,EAAuB1G,KAAa,QACtC0G,EAAE26P,iBACFjf,EAAOpoN,SAAQ,WAAA,OAGUtzB,EAAkB,gBAAE,YAEjD07O,EAAOC,QAAO,WAAA,OAGRriP,EAAKy5B,YACX2oN,EAAO36G,WAAU,WAAA,OAGXznI,EAAKm6E,eAQf,CAAA,IAAA,cAAA,MAAA,SAAYv6E,EAAM8E,GACd2/O,GAAgBrkP,KAAKohQ,iBAAkBxhQ,EAAM,IAAIc,KAAKgE,KAM1D,CAAA,IAAA,SAAA,MAAA,SAAON,GACCpE,KAAKu4P,QACLv4P,KAAKshQ,YAAY,OAAQl9P,GAE7BpE,KAAKkhQ,QAAQ7e,OAAOj+O,KAMxB,CAAA,IAAA,UAAA,MAAA,SAAQA,GACApE,KAAKu4P,QACLv4P,KAAKshQ,YAAY,QAASl9P,GAE9BpE,KAAKkhQ,QAAQlnO,QAAQ51B,KAMzB,CAAA,IAAA,YAAA,MAAA,SAAUA,GACFpE,KAAKu4P,QACLv4P,KAAKshQ,YAAY,UAAWl9P,GAEhCpE,KAAKkhQ,QAAQz5H,UAAUrjI,KAK3B,CAAA,IAAA,OAAA,MAAA,WACIpE,KAAKkhQ,QAAQl1I,SAKjB,CAAA,IAAA,aAAA,MAAA,WACI,OAAOhsH,KAAKu4P,QAAiBv4P,KAAKkhQ,QAAQ1f,eAK9C,CAAA,IAAA,OAAA,MAAA,YACKxhP,KAAKu4P,QAAUv4P,KAAKkhQ,QAAQ3e,SAKjC,CAAA,IAAA,QAAA,MAAA,YACKviP,KAAKu4P,QAAUv4P,KAAKkhQ,QAAQ1e,UAKjC,CAAA,IAAA,UAAA,MAAA,YACKxiP,KAAKu4P,QAAUv4P,KAAKkhQ,QAAQr9J,YAKjC,CAAA,IAAA,SAAA,MAAA,WACI7jG,KAAKkhQ,QAAQznO,WAKjB,CAAA,IAAA,UAAA,MAAA,WACI,KAA4Bg2H,WAAAA,EAC5BzvJ,KAAKkhQ,QAAQ/mL,YAKjB,CAAA,IAAA,QAAA,MAAA,YACKn6E,KAAKu4P,QAAUv4P,KAAKkhQ,QAAQzhM,UAMjC,CAAA,IAAA,cAAA,MAAA,SAAY/4D,GACH1G,KAAKu4P,QACNv4P,KAAKkhQ,QAAQxe,YAAYh8O,KAMjC,CAAA,IAAA,cAAA,MAAA,WACI,OAAO1G,KAAKu4P,OAAS,EAAIv4P,KAAKkhQ,QAAQve,gBAO1C,CAAA,IAAA,kBAAA,MAAA,SAAgBf,GAEZ,IAAMl7O,EAAuB1G,KAAa,QACtC0G,EAAE26P,iBACF36P,EAAE26P,gBAAgBzf,OAAAA,EA9LxB,GAwRN,SAASga,GAAcx8N,GACnB,OAAOA,GAA6B,IAArBA,EAAe,SAclC,SAASmiO,GAAatgQ,EAASwE,GAE3B,IAAMytI,EAAWjyI,EAAQuL,MAAM+wB,QAE/B,OADAt8B,EAAQuL,MAAM+wB,QAAmB,MAAT93B,EAAgBA,EAAQ,OACzCytI,EAUX,SAASwrH,GAAsB8C,EAAWxe,EAAQn7N,EAAU45O,EAAiBC,GAEzE,IAAMC,EAAY,GAClB95O,EAASlQ,SAIT1W,SAAAA,GAAAA,OAAW0gQ,EAAUjhQ,KAAK6gQ,GAAatgQ,OAEvC,IAAM2gQ,EAAiB,GACvBH,EAAgB9pP,SAAQ,SAKvB46D,EAAOtxE,GAEJ,IAAM0zB,EAAS,GACf49C,EAAM56D,SAINyI,SAAAA,GAEI,IAAM3a,EAAQkvB,EAAOvU,GAAQ4iO,EAAO8E,aAAa7mP,EAASmf,EAAMshP,GAG3Dj8P,GAAyB,GAAhBA,EAAMzK,SAChBiG,EAAoB,aAAIg2P,GACxB2K,EAAelhQ,KAAKO,OAG5BugQ,EAAUx/O,IAAI/gB,EAAS0zB,MAK3B,IAAIh6B,EAAI,EAMR,OALAktB,EAASlQ,SAIT1W,SAAAA,GAAAA,OAAWsgQ,GAAatgQ,EAAS0gQ,EAAUhnQ,SACpCinQ,EAiBX,SAASzE,GAAa0E,EAAOxE,GAEzB,IAAMyE,EAAU,IAAIhuG,IAMpB,GALA+tG,EAAMlqP,SAINuW,SAAAA,GAAAA,OAAQ4zO,EAAQ9/O,IAAIkM,EAAM,OACN,GAAhBmvO,EAAMriQ,OACN,OAAO8mQ,EAEX,IAEMC,EAAU,IAAI/tG,IAAIqpG,GAElB2E,EAAe,IAAIluG,IAqCzB,OAXAupG,EAAM1lP,SAINynB,SAAAA,GAEI,IAAMlR,EA3BV,SAAS+zO,EAAQ7iO,GACb,IAAKA,EACD,OAXU,EAad,IAAIlR,EAAO8zO,EAAan/O,IAAIuc,GAC5B,GAAIlR,EACA,OAAOA,EAEX,IAAM3kB,EAAS61B,EAAKjyB,WAWpB,OATI+gB,EADA4zO,EAAQ/rG,IAAIxsJ,GACLA,EAEFw4P,EAAQhsG,IAAIxsJ,GArBP,EAyBH04P,EAAQ14P,GAEnBy4P,EAAahgP,IAAIod,EAAMlR,GAChBA,EAnBX,CA2ByBkR,GApCP,IAqCVlR,GACmB4zO,EAAQj/O,IAAIqL,GAAQxtB,KAAK0+B,MAG7C0iO,EAwBX,SAASprO,GAASz1B,EAASqM,GACvB,GAAIrM,EAAQmkK,UACRnkK,EAAQmkK,UAAUr9J,IAAIuF,OAErB,CAED,IAAIuB,EAAU5N,EAAyB,UAClC4N,IACDA,EAAU5N,EAAyB,UAAI,IAE3C4N,EAAQvB,IAAAA,GAQhB,SAAS+3J,GAAYpkK,EAASqM,GAC1B,GAAIrM,EAAQmkK,UACRnkK,EAAQmkK,UAAUrvJ,OAAOzI,OAExB,CAED,IAAIuB,EAAU5N,EAAyB,UACnC4N,UACOA,EAAQvB,IAU3B,SAASwyP,GAA8BlG,EAAQ34P,EAAS+gP,GACpDc,GAAoBd,GAASK,QAAO,WAAA,OAG9BuX,EAAOF,iBAAiBz4P,MAuDlC,SAASu9P,GAAuBv9P,EAAS47P,EAAqBC,GAE1D,IAAMoF,EAAYpF,EAAqBj6O,IAAI5hB,GAC3C,IAAKihQ,EACD,OAAA,EAEJ,IAAIC,EAAWtF,EAAoBh6O,IAAI5hB,GAYvC,OAXIkhQ,EACAD,EAAUvqP,SAIVxb,SAAAA,GAAAA,OAAQ,EAA8B4L,IAAI5L,MAG1C0gQ,EAAoB76O,IAAI/gB,EAASihQ,GAErCpF,EAAAA,OAA4B77P,IAAAA,EAShC,IAAMmhQ,GAAAA,WAMF,SAAA,EAAYpM,EAAUvM,EAASxG,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAC3BjjP,KAAKg2P,SAAWA,EAChBh2P,KAAKypP,QAAUA,EACfzpP,KAAKqiQ,cAAgB,GAErBriQ,KAAKo7P,kBAAoB,SAKxBn6P,EAAS4H,KACV7I,KAAKsiQ,kBAAoB,IAAI,GAA0BtM,EAAUvM,EAASxG,GAC1EjjP,KAAKuiQ,gBAAkB,IAAI,GAAwBvM,EAAUvM,EAASxG,GACtEjjP,KAAKsiQ,kBAAkBlH,kBAAoB,SAK1Cn6P,EAAS4H,GALiC,OAKrB7I,EAAKo7P,kBAAkBn6P,EAAS4H,IA2H1D,OAjHA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,SAAgB25P,EAAa5L,EAAansH,EAAa7qI,EAAM+5J,GAEzD,IAAMp+E,EAAWinL,EAAc,IAAM5iQ,EAEjC8gB,EAAU1gB,KAAKqiQ,cAAc9mL,GACjC,IAAK76D,EAAS,CAEV,IAAM5L,EAAS,GAETo2O,EAAyB1B,GAAkBxpP,KAAKypP,QAAS,EAA+B30O,GAC9F,GAAIA,EAAO9Z,OACP,MAAM,IAAI6K,MAAJ,0BAAA,OAAoCjG,EAApC,2DAAA,OAAkGkV,EAAOpP,KAAK,WAExHgb,EAtoGZ,SAAsB9gB,EAAMsrP,GACxB,OAAO,IAAIyK,GAAiB/1P,EAAMsrP,GADtC,CAsoGmCtrP,EAAMsrP,GAC7BlrP,KAAKqiQ,cAAc9mL,GAAY76D,EAEnC1gB,KAAKsiQ,kBAAkBG,gBAAgB7L,EAAah3P,EAAM8gB,KAO9D,CAAA,IAAA,WAAA,MAAA,SAASk2O,EAAansH,GAClBzqI,KAAKsiQ,kBAAkB7L,SAASG,EAAansH,KAOjD,CAAA,IAAA,UAAA,MAAA,SAAQmsH,EAAa/tP,GACjB7I,KAAKsiQ,kBAAkBnoL,QAAQy8K,EAAa/tP,KAShD,CAAA,IAAA,WAAA,MAAA,SAAS+tP,EAAa31P,EAASsI,EAAQyD,GACnChN,KAAKsiQ,kBAAkBxG,WAAWlF,EAAa31P,EAASsI,EAAQyD,KASpE,CAAA,IAAA,WAAA,MAAA,SAAS4pP,EAAa31P,EAAS4H,EAAS2gJ,GACpCxpJ,KAAKsiQ,kBAAkBvG,WAAWnF,EAAa31P,EAASuoJ,IAAAA,EAAwB3gJ,KAOpF,CAAA,IAAA,oBAAA,MAAA,SAAkB5H,EAASs6M,GACvBv7M,KAAKsiQ,kBAAkBhG,sBAAsBr7P,EAASs6M,KAS1D,CAAA,IAAA,UAAA,MAAA,SAAQq7C,EAAa31P,EAASsW,EAAU9R,GACpC,GAA0B,KAAtB8R,EAAS5b,OAAO,GAAW,CAAA,IAAA,EAAA,eACN2oP,GAAqB/sO,GADf,GACpB9F,EADoB,EAAA,GAChB2+C,EADgB,EAAA,GAI3BpwD,KAAKuiQ,gBAAgBvpL,QAAQvnE,EAAIxQ,EAASmvD,EAD7B,QAIbpwD,KAAKsiQ,kBAAkB5hP,QAAQk2O,EAAa31P,EAASsW,EAAU9R,KAWvE,CAAA,IAAA,SAAA,MAAA,SAAOmxP,EAAa31P,EAAS6e,EAAW4iP,EAAYh+P,GAEhD,GAA2B,KAAvBob,EAAUnkB,OAAO,GAAW,CAAA,IAAA,EAAA,eACP2oP,GAAqBxkO,GADd,GACrBrO,EADqB,EAAA,GACjB2+C,EADiB,EAAA,GAE5B,OAAOpwD,KAAKuiQ,gBAAgBxiG,OAAOtuJ,EAAIxQ,EAASmvD,EAAQ1rD,GAE5D,OAAO1E,KAAKsiQ,kBAAkBviG,OAAO62F,EAAa31P,EAAS6e,EAAW4iP,EAAYh+P,KAMtF,CAAA,IAAA,QAAA,MAAA,WAAoB,IAAd61P,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,IAAA,EAChBv6P,KAAKsiQ,kBAAkBl1E,MAAMmtE,KAKjC,CAAA,IAAA,oBAAA,MAAA,WAQI,OAAOv6P,KAAKsiQ,kBAAkBK,sBAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WAP9B,OAA2B3iQ,KAAKsiQ,kBAA2B,QACtD9lQ,OAA0BwD,KAAKuiQ,gBAAwB,aAKhE,EAnJEH,GAuMN,SAASQ,GAA2B3hQ,EAAS0zB,GAEzC,IAAIkuO,EAAc,KAEdC,EAAY,KAUhB,OATIr8P,MAAMqQ,QAAQ6d,IAAWA,EAAO35B,QAChC6nQ,EAAcE,GAA0BpuO,EAAO,IAC3CA,EAAO35B,OAAS,IAChB8nQ,EAAYC,GAA0BpuO,EAAOA,EAAO35B,OAAS,MAG5D25B,IACLkuO,EAAcE,GAA0BpuO,IAEpCkuO,GAAeC,EAAa,IAAIE,GAAmB/hQ,EAAS4hQ,EAAaC,GAC7E,KAAA,IAAA,GAAA,WAAA,IAUFE,EAAAA,WAMF,SAAA,EAAYtnL,EAAUunL,EAAcC,GAAAA,gBAAAA,KAAAA,GAChCljQ,KAAK07E,SAAWA,EAChB17E,KAAKijQ,aAAeA,EACpBjjQ,KAAKkjQ,WAAaA,EAClBljQ,KAAK+0M,OAAS,EAEd,IAAIouD,EAAgBH,EAAmBI,uBAAuBvgP,IAAI64D,GAC7DynL,GACDH,EAAmBI,uBAAuBphP,IAAI05D,EAAUynL,EAAgB,IAE5EnjQ,KAAKqjQ,eAAiBF,EA2CJ,OAtCtB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WACQnjQ,KAAK+0M,OAAS,IACV/0M,KAAKijQ,cACLnc,GAAU9mP,KAAK07E,SAAU17E,KAAKijQ,aAAcjjQ,KAAKqjQ,gBAErDrjQ,KAAK+0M,OAAS,KAMtB,CAAA,IAAA,SAAA,MAAA,WACI/0M,KAAKsP,QACDtP,KAAK+0M,OAAS,IACd+xC,GAAU9mP,KAAK07E,SAAU17E,KAAKqjQ,gBAC1BrjQ,KAAKkjQ,aACLpc,GAAU9mP,KAAK07E,SAAU17E,KAAKkjQ,YAC9BljQ,KAAKkjQ,WAAa,MAEtBljQ,KAAK+0M,OAAS,KAMtB,CAAA,IAAA,UAAA,MAAA,WACI/0M,KAAKy5B,SACDz5B,KAAK+0M,OAAS,IACdiuD,EAAmBI,uBAAnBJ,OAAiDhjQ,KAAK07E,UAClD17E,KAAKijQ,eACLjc,GAAYhnP,KAAK07E,SAAU17E,KAAKijQ,cAChCjjQ,KAAKkjQ,WAAa,MAElBljQ,KAAKkjQ,aACLlc,GAAYhnP,KAAK07E,SAAU17E,KAAKkjQ,YAChCljQ,KAAKkjQ,WAAa,MAEtBpc,GAAU9mP,KAAK07E,SAAU17E,KAAKqjQ,gBAC9BrjQ,KAAK+0M,OAAS,OAAA,EA3DpBiuD,GA2DoB,OAI1BA,EAAmBI,uBAAyB,IAAIE,QAAhDN,EAzEQ,GAkHR,SAASD,GAA0BpuO,GAK/B,IAHA,IAAIjxB,EAAS,KAEP6uE,EAAQxsE,OAAOP,KAAKmvB,GACjBh6B,EAAI,EAAGA,EAAI43E,EAAMv3E,OAAQL,IAAK,CAEnC,IAAMylB,EAAOmyD,EAAM53E,GACf4oQ,GAAqBnjP,MACrB1c,EAASA,GAAU,IACZ0c,GAAQuU,EAAOvU,IAG9B,OAAO1c,EAMX,SAAS6/P,GAAqBnjP,GAC1B,MAAgB,YAATA,GAA+B,aAATA,EAuBjC,IAAMojP,GAAAA,WAUF,SAAA,EAAY9nL,EAAU+nL,EAAOC,EAAWC,EAAQC,EAASC,EAAWC,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAChE9jQ,KAAK07E,SAAWA,EAChB17E,KAAKyjQ,MAAQA,EACbzjQ,KAAK0jQ,UAAYA,EACjB1jQ,KAAK2jQ,OAASA,EACd3jQ,KAAK4jQ,QAAUA,EACf5jQ,KAAK6jQ,UAAYA,EACjB7jQ,KAAK8jQ,UAAYA,EACjB9jQ,KAAKqhP,WAAAA,EACLrhP,KAAKi0J,YAAAA,EACLj0J,KAAK+4G,WAAa,EAClB/4G,KAAKqtO,UAAY,EACjBrtO,KAAK+jQ,SAIJtgQ,SAAAA,GAAAA,OAAMzD,EAAKgkQ,gBAAgBvgQ,IAuEgBggQ,OAlEhD,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WAmJJ,IAAgCxiQ,EAASwE,EAE/Bw+P,EAFsBhjQ,EAlJDjB,KAAK07E,SAkJKj2E,EAAzC,GAAA,OAlJiDzF,KAAK0jQ,UAkJtD,OAAA,OAlJqE1jQ,KAAK4jQ,QAkJ1E,KAAA,OAlJqF5jQ,KAAK2jQ,OAkJ1F,gBAAA,OAlJ+G3jQ,KAAK6jQ,UAkJpH,KAAA,OAlJiI7jQ,KAAKyjQ,QAoJ5HQ,EAAOC,GAAkBjjQ,EAAS,IAAI+U,QAGnChb,SAmGb,SAAoByK,EAAO0+P,GAGvB,IADA,IACSxpQ,EAAI,EAAGA,EAAI8K,EAAMzK,OAAQL,IAEpB8K,EAAM9J,OAAOhB,GAL/B,CAlG2BspQ,GACnBx+P,EAAAA,GAAAA,OAAWw+P,EAAXx+P,MAAAA,OAAoBA,IAExB2+P,GAAkBnjQ,EAAS,GAAIwE,GA1J3B4+P,GAAwBrkQ,KAAK07E,SAAU17E,KAAK+jQ,UAAAA,GAC5C/jQ,KAAK+4G,WAAa7sG,KAAKC,QAK3B,CAAA,IAAA,QAAA,MAAA,WACIm4P,GAAmBtkQ,KAAK07E,SAAU17E,KAAKyjQ,MAAO,YAKlD,CAAA,IAAA,SAAA,MAAA,WACIa,GAAmBtkQ,KAAK07E,SAAU17E,KAAKyjQ,MAAO,aAMlD,CAAA,IAAA,cAAA,MAAA,SAAY58O,GAER,IAAM5F,EAAQsjP,GAAsBvkQ,KAAK07E,SAAU17E,KAAKyjQ,OACxDzjQ,KAAKqtO,UAAYxmN,EAAW7mB,KAAK0jQ,UACjCU,GAAkBpkQ,KAAK07E,SAAU,QAAjC0oL,IAAAA,OAA8CpkQ,KAAKqtO,UAAnD+2B,MAAkEnjP,KAKtE,CAAA,IAAA,cAAA,MAAA,WACI,OAAOjhB,KAAKqtO,YAOhB,CAAA,IAAA,kBAAA,MAAA,SAAgBx5M,GAEZ,IAAMyF,EAAYzF,EAAM2wO,wBAA0Bt4P,KAAKC,MAEjDs4P,EA1EO,IA0EOl/O,WAAWsO,EAAM4wO,YAAY5pP,QAhFjB,IAiF5BgZ,EAAM6wO,eAAiB1kQ,KAAKyjQ,OAC5BzgP,KAAKvI,IAAI6e,EAAYt5B,KAAK+4G,WAAY,IAAM/4G,KAAK2jQ,QAAUc,GAAezkQ,KAAK0jQ,WAC/E1jQ,KAAKy5B,WAMb,CAAA,IAAA,SAAA,MAAA,WACQz5B,KAAKqhP,YAETrhP,KAAKqhP,WAAAA,EACLrhP,KAAK8jQ,YACLO,GAAwBrkQ,KAAK07E,SAAU17E,KAAK+jQ,UAAAA,MAKhD,CAAA,IAAA,UAAA,MAAA,WAuGJ,IAAiC9iQ,EAASrB,EAIhCq1J,EAEAh0I,EA5GEjhB,KAAKi0J,aAETj0J,KAAKi0J,YAAAA,EACLj0J,KAAKy5B,SAmGoBx4B,EAlGDjB,KAAK07E,SAkGK97E,EAlGKI,KAAKyjQ,MAsG1CxuG,EAFOivG,GAAkBjjQ,EAAS,IAEpBO,MAAM,MAEpByf,EAAQ0jP,GAAuB1vG,EAAQr1J,KAChC,IACTq1J,EAAOr0J,OAAOqgB,EAAO,GAGrBmjP,GAAkBnjQ,EAAS,GADVg0J,EAAOvvJ,KAAK,YA5Ge+9P,EAjG9CD,GAwKN,SAASc,GAAmBrjQ,EAASrB,EAAMuC,GAGvCiiQ,GAAkBnjQ,EAAS,YAAakB,EAD1BoiQ,GAAsBtjQ,EAASrB,IA4CjD,SAAS2kQ,GAAsBtjQ,EAASwE,GAEpC,IAAMw+P,EAAOC,GAAkBjjQ,EAAS,IACxC,OAAIgjQ,EAAKriQ,QAAQ,KAAO,EAGb+iQ,GADQV,EAAKziQ,MAAM,KACYiE,GAEnCk/P,GAAuB,CAACV,GAAOx+P,GAO1C,SAASk/P,GAAuB1vG,EAAQ2vG,GACpC,IAAK,IAAIjqQ,EAAI,EAAGA,EAAIs6J,EAAOj6J,OAAQL,IAC/B,GAAIs6J,EAAOt6J,GAAGiH,QAAQgjQ,IAAgB,EAClC,OAAOjqQ,EAGf,OAAQ,EAQZ,SAAS0pQ,GAAwBpjQ,EAASmD,EAAIygQ,GAC1CA,EAAW5jQ,EAAQ0yB,oBAvPI,eAuPoCvvB,GACvDnD,EAAQwyB,iBAxPW,eAwP0BrvB,GASrD,SAASggQ,GAAkBnjQ,EAASrB,EAAM6F,EAAOwb,GAE7C,IAAMb,EArQa,YAqQWxgB,EAC9B,GAAa,MAATqhB,EAAe,CAEf,IAAMiyH,EAAWjyI,EAAQuL,MAAM4T,GAC/B,GAAI8yH,EAASl4I,OAAQ,CAEjB,IAAMi6J,EAAS/hB,EAAS1xI,MAAM,KAC9ByzJ,EAAOh0I,GAASxb,EAChBA,EAAQwvJ,EAAOvvJ,KAAK,MAG5BzE,EAAQuL,MAAM4T,GAAQ3a,EAO1B,SAASy+P,GAAkBjjQ,EAASrB,GAChC,OAAOqB,EAAQuL,MAxRI,YAwRmB5M,GAmC1C,IAAMklQ,GAAAA,WAWF,SAAA,EAAY7jQ,EAASiiP,EAAWwhB,EAAehB,EAAWC,EAAQ/pO,EAAQmrO,EAAcC,GAAAA,gBAAAA,KAAAA,GACpFhlQ,KAAKiB,QAAUA,EACfjB,KAAKkjP,UAAYA,EACjBljP,KAAK0kQ,cAAgBA,EACrB1kQ,KAAK0jQ,UAAYA,EACjB1jQ,KAAK2jQ,OAASA,EACd3jQ,KAAK+kQ,aAAeA,EACpB/kQ,KAAKglQ,eAAiBA,EACtBhlQ,KAAKihP,WAAa,GAClBjhP,KAAKkhP,YAAc,GACnBlhP,KAAKmhP,cAAgB,GACrBnhP,KAAKohP,UAAAA,EACLphP,KAAKilQ,gBAAkB,GACvBjlQ,KAAK+0M,OAAS,EACd/0M,KAAK45B,OAASA,GAjCC,SAkCf55B,KAAKuhP,UAAYmiB,EAAYC,EAC7B3jQ,KAAKklQ,eAqMkBvwO,OA/L3B,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAAQvwB,GACJpE,KAAKkhP,YAAYxgP,KAAK0D,KAM1B,CAAA,IAAA,SAAA,MAAA,SAAOA,GACHpE,KAAKihP,WAAWvgP,KAAK0D,KAMzB,CAAA,IAAA,YAAA,MAAA,SAAUA,GACNpE,KAAKmhP,cAAczgP,KAAK0D,KAK5B,CAAA,IAAA,UAAA,MAAA,WACIpE,KAAKgsH,OACDhsH,KAAK+0M,QAAU,IAEnB/0M,KAAK+0M,OAAS,EACd/0M,KAAKmlQ,QAAQhrL,UACbn6E,KAAKolQ,iBACLplQ,KAAKqlQ,gBACDrlQ,KAAKglQ,gBACLhlQ,KAAKglQ,eAAe7qL,UAExBn6E,KAAKmhP,cAAcxpO,SAInBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKmhP,cAAgB,MAMzB,CAAA,IAAA,gBAAA,MAAA,WACInhP,KAAKihP,WAAWtpO,SAIhBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKihP,WAAa,KAMtB,CAAA,IAAA,iBAAA,MAAA,WACIjhP,KAAKkhP,YAAYvpO,SAIjBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKkhP,YAAc,KAKvB,CAAA,IAAA,SAAA,MAAA,WACIlhP,KAAKgsH,OACDhsH,KAAK+0M,QAAU,IAEnB/0M,KAAK+0M,OAAS,EACd/0M,KAAKmlQ,QAAQ1rO,SACbz5B,KAAKolQ,iBACDplQ,KAAKglQ,gBACLhlQ,KAAKglQ,eAAevrO,SAExBz5B,KAAKqlQ,mBAMT,CAAA,IAAA,cAAA,MAAA,SAAY5/P,GACRzF,KAAKmlQ,QAAQziB,YAAYj9O,KAK7B,CAAA,IAAA,cAAA,MAAA,WACI,OAAOzF,KAAKmlQ,QAAQxiB,gBAKxB,CAAA,IAAA,aAAA,MAAA,WACI,OAAO3iP,KAAK+0M,QAAU,IAK1B,CAAA,IAAA,OAAA,MAAA,WACQ/0M,KAAK+0M,QAAU,IAEnB/0M,KAAK+0M,OAAS,EAGd/0M,KAAKmlQ,QAAQ3mQ,QACTwB,KAAK2jQ,QACL3jQ,KAAKmlQ,QAAQ3iB,WAMrB,CAAA,IAAA,OAAA,MAAA,WACIxiP,KAAKgsH,OACAhsH,KAAKwhP,eACNxhP,KAAKolQ,iBACLplQ,KAAK+0M,OAAS,EACV/0M,KAAKglQ,gBACLhlQ,KAAKglQ,eAAe11P,SAG5BtP,KAAKmlQ,QAAQG,WAKjB,CAAA,IAAA,QAAA,MAAA,WACItlQ,KAAKgsH,OACLhsH,KAAKmlQ,QAAQ3iB,UAKjB,CAAA,IAAA,UAAA,MAAA,WACIxiP,KAAKy/D,QACLz/D,KAAKuiP,SAKT,CAAA,IAAA,QAAA,MAAA,WACIviP,KAAKmlQ,QAAQhrL,UACbn6E,KAAKklQ,eACLllQ,KAAKmlQ,QAAQ3mQ,UAMjB,CAAA,IAAA,eAAA,MAAA,WAAA,IAAA,EAAA,KACIwB,KAAKmlQ,QAAU,IAAI3B,GAA6BxjQ,KAAKiB,QAASjB,KAAK0kQ,cAAe1kQ,KAAK0jQ,UAAW1jQ,KAAK2jQ,OAAQ3jQ,KAAK45B,OAlMlG,YAkM6H,WAAA,OAGzI55B,EAAKy5B,cAOf,CAAA,IAAA,kBAAA,MAAA,SAAgBmoN,GAEZ,IAAMC,EAAuB,SAAbD,EAAuB5hP,KAAKkhP,YAAclhP,KAAKihP,WAC/DY,EAAQlqO,SAIRvT,SAAAA,GAAAA,OAAMA,OACNy9O,EAAQ7mP,OAAS,IAKrB,CAAA,IAAA,gBAAA,MAAA,WAAA,IAAA,EAAA,KACIgF,KAAKgsH,OAEL,IAAMr3F,EAAS,GACf,GAAI30B,KAAKwhP,aAAc,CAEnB,IAAM+jB,EAAWvlQ,KAAK+0M,QAAU,EAChChvM,OAAOP,KAAKxF,KAAK+kQ,cAAcptP,SAI/ByI,SAAAA,GACgB,UAARA,IACAuU,EAAOvU,GAAQmlP,EAAWvlQ,EAAK+kQ,aAAa3kP,GAAQ0nO,GAAa9nP,EAAKiB,QAASmf,OAI3FpgB,KAAKilQ,gBAAkBtwO,MAAAA,EAhOzBmwO,GA2SA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAKF,SAAA,EAAY7jQ,EAAS0zB,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACjBylG,EAAAA,EAAAA,KAAAA,OACKn5H,QAAUA,EACfjB,EAAKwlQ,gBAAkB,GACvBxlQ,EAAKylQ,eAAAA,EACLzlQ,EAAK0lQ,QAAUhgB,GAAoB/wN,GALlBA,EA2DXwlD,OAjDV,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WAAA,IAAA,EAAA,MACQn6E,KAAKylQ,eAAkBzlQ,KAAKwlQ,kBAEhCxlQ,KAAKylQ,eAAAA,EACL1/P,OAAOP,KAAKxF,KAAK0lQ,SAAS/tP,SAI1ByI,SAAAA,GACuBpgB,EAAqB,gBAAEogB,GAAQpgB,EAAKiB,QAAQuL,MAAM4T,MANzEpgB,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,SAaJ,CAAA,IAAA,OAAA,MAAA,WAAA,IAAA,EAAA,KACSA,KAAKwlQ,kBAEVxlQ,KAAKgsH,OACLjmH,OAAOP,KAAKxF,KAAK0lQ,SACZ/tP,SAILyI,SAAAA,GAAAA,OAAQpgB,EAAKiB,QAAQuL,MAAMglI,YAAYpxH,EAAMpgB,EAAK0lQ,QAAQtlP,OAN1DpgB,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,SAYJ,CAAA,IAAA,UAAA,MAAA,WAAA,IAAA,EAAA,KACSA,KAAKwlQ,kBAEVz/P,OAAOP,KAAKxF,KAAKwlQ,iBAAiB7tP,SAIlCyI,SAAAA,GAEI,IAAM3a,EAA2BzF,EAAqB,gBAAEogB,GACpD3a,EACAzF,EAAKiB,QAAQuL,MAAMglI,YAAYpxH,EAAM3a,GAGrCzF,EAAKiB,QAAQuL,MAAM84J,eAAellJ,MAG1CpgB,KAAKwlQ,gBAAkB,KAdvBz/P,KAAAA,gBAAAA,EAAAA,WAAAA,UAAAA,MAAAA,KAAAA,WAeMo0E,EAhER,CAA0B6mK,IAgG1B2kB,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACI3lQ,KAAK4lQ,OAAS,EACd5lQ,KAAKqvK,MAAQ5xK,SAASqpB,cAAc,QACpC9mB,KAAK6lQ,gBAAAA,EAsKqB,OAhK9B,aAAA,EAAA,CAAA,CAAA,IAAA,wBAAA,MAAA,SAAsBzlP,GAClB,OAAOklO,GAAsBllO,KAOjC,CAAA,IAAA,iBAAA,MAAA,SAAenf,EAAS69B,GACpB,OAAOymN,GAAetkP,EAAS69B,KAOnC,CAAA,IAAA,kBAAA,MAAA,SAAgB2lN,EAAMC,GAClB,OAAOc,GAAgBf,EAAMC,KAQjC,CAAA,IAAA,QAAA,MAAA,SAAMzjP,EAAS69B,EAAU+2H,GACrB,OAAO4vF,GAAYxkP,EAAS69B,EAAU+2H,KAQ1C,CAAA,IAAA,eAAA,MAAA,SAAa50J,EAASmf,EAAM89K,GACxB,OAA8ChhM,OAAO44B,iBAAiB70B,GAAYmf,KAQtF,CAAA,IAAA,uBAAA,MAAA,SAAqBnf,EAASrB,EAAMsjP,GAChCA,EAAYA,EAAUnuO,KAItByuO,SAAAA,GAAAA,OAAMkC,GAAoBlC,MAE1B,IAAIsiB,EAAAA,cAAAA,OAA4BlmQ,EAA5BkmQ,QAEAC,EAAM,GACV7iB,EAAUvrO,SAIV6rO,SAAAA,GACIuiB,EArEM,IAuEN,IAAMrsP,EAAS6L,WAAWi+N,EAAW,QACrCsiB,GAAAA,GAAAA,OAAkBC,GAAlBD,OAAiC,IAATpsP,EAAxBosP,SACAC,GAzEM,IA0ENhgQ,OAAOP,KAAKg+O,GAAI7rO,SAIhByI,SAAAA,GAEI,IAAM3a,EAAQ+9O,EAAGpjO,GACjB,OAAQA,GACJ,IAAK,SACD,OACJ,IAAK,SAID,YAHI3a,IACAqgQ,GAAAA,GAAAA,OAAkBC,EAAlBD,+BAAAA,OAAmDrgQ,EAAnDqgQ,SAGR,QAEI,YADAA,GAAAA,GAAAA,OAAkBC,GAAlBD,OAAwB1lP,EAAxB0lP,MAAAA,OAAiCrgQ,EAAjCqgQ,YAIZA,GAAAA,GAAAA,OAAkBC,EAAlBD,UAEJA,GAAe,MAEf,IAAME,EAAQvoQ,SAAS+M,cAAc,SAErC,OADAw7P,EAAMptH,UAAYktH,EACXE,IAYX,CAAA,IAAA,UAAA,MAAA,SAAQ/kQ,EAASiiP,EAAW1pN,EAAUsqE,EAAOlqE,GAA8BisN,IAAtBib,EAAsBjb,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAAIA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EACnEA,GACA7lP,KAAKimQ,wBAGT,IAAMC,EAAgDpF,EAAgB5pP,QAItEkrO,SAAAA,GAAAA,OAAUA,aAAkB0iB,MAEtBpd,EAAiB,GACnBF,GAA+BhuN,EAAUsqE,IACzCoiK,EAA2BvuP,SAI3ByqO,SAAAA,GAEI,IAAIztN,EAASytN,EAAO6iB,gBACpBl/P,OAAOP,KAAKmvB,GAAQhd,SAIpByI,SAAAA,GAAAA,OAAQsnO,EAAetnO,GAAQuU,EAAOvU,SAK9C,IAAM4tO,EAuDd,SAAoC9K,GAEhC,IAAIijB,EAAgB,GAoBpB,OAnBIjjB,IAEYz8O,MAAMqQ,QAAQosO,GAAaA,EAAY,CAACA,IAChDvrO,SAIJ6rO,SAAAA,GACIz9O,OAAOP,KAAKg+O,GAAI7rO,SAIhByI,SAAAA,GACgB,UAARA,GAA4B,UAARA,IAExB+lP,EAAc/lP,GAAQojO,EAAGpjO,UAI9B+lP,EAtBX,CAzDQjjB,EAAYuE,GAAmCxmP,EAASiiP,EAAWwE,IAOnE,GAAgB,GAAZluN,EACA,OAAO,IAAI,GAAkBv4B,EAAS+sP,GAG1C,IAAM0W,EAAAA,cAAAA,OAA2C1kQ,KAAK4lQ,UAEhDI,EAAQhmQ,KAAKomQ,qBAAqBnlQ,EAASyjQ,EAAexhB,GAC7CzlP,SAASqpB,cAAc,QAAUna,YAAYq5P,GAEhE,IAAMK,EAAgBzD,GAA2B3hQ,EAASiiP,GAEpDd,EAAS,IAAI0iB,GAAmB7jQ,EAASiiP,EAAWwhB,EAAelrO,EAAUsqE,EAAOlqE,EAAQo0N,EAAaqY,GAK/G,OAJAjkB,EAAO36G,WAAU,WAkEzB,IAAuBroG,GAAAA,EA/DK4mO,GAgEnB74P,WAAWC,YAAYgyB,MA/DjBgjN,IAMX,CAAA,IAAA,wBAAA,MAAA,WACSpiP,KAAK6lQ,iBACNrhQ,QAAQyG,KAAK,oGAAqG,yFAClHjL,KAAK6lQ,gBAAAA,OAAiB,EA1K5BF,GAwOAW,GAAAA,WAOF,SAAA,EAAYrlQ,EAASiiP,EAAWxtO,EAASsvP,GAAAA,gBAAAA,KAAAA,GACrChlQ,KAAKiB,QAAUA,EACfjB,KAAKkjP,UAAYA,EACjBljP,KAAK0V,QAAUA,EACf1V,KAAKglQ,eAAiBA,EACtBhlQ,KAAKihP,WAAa,GAClBjhP,KAAKkhP,YAAc,GACnBlhP,KAAKmhP,cAAgB,GACrBnhP,KAAKumQ,cAAAA,EACLvmQ,KAAKqhP,WAAAA,EACLrhP,KAAKohP,UAAAA,EACLphP,KAAKi0J,YAAAA,EACLj0J,KAAKu5B,KAAO,EACZv5B,KAAKshP,aAAe,KACpBthP,KAAKilQ,gBAAkB,GACvBjlQ,KAAK0jQ,UAA+BhuP,EAAoB,SACxD1V,KAAK2jQ,OAA4BjuP,EAAiB,OAAK,EACvD1V,KAAKu5B,KAAOv5B,KAAK0jQ,UAAY1jQ,KAAK2jQ,OAqMtC,OA/LA,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,WACS3jQ,KAAKqhP,YACNrhP,KAAKqhP,WAAAA,EACLrhP,KAAKihP,WAAWtpO,SAIhBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKihP,WAAa,MAM1B,CAAA,IAAA,OAAA,MAAA,WACIjhP,KAAKs2P,eACLt2P,KAAKwmQ,8BAMT,CAAA,IAAA,eAAA,MAAA,WAAA,IAAA,EAAA,KACI,IAAIxmQ,KAAKumQ,aAAT,CAEAvmQ,KAAKumQ,cAAAA,EAEL,IAAMrjB,EAAYljP,KAAKkjP,UACvB,KAA4BujB,UACxBzmQ,KAAK0mQ,qBAAqB1mQ,KAAKiB,QAASiiP,EAAWljP,KAAK0V,SAC5D1V,KAAK2mQ,eAAiBzjB,EAAUloP,OAASkoP,EAAUA,EAAUloP,OAAS,GAAK,GAC3EgF,KAAKymQ,UAAUhzO,iBAAiB,UAAU,WAAA,OAGpCzzB,EAAK2hP,kBAMf,CAAA,IAAA,4BAAA,MAAA,WAEQ3hP,KAAK2jQ,OACL3jQ,KAAK4mQ,uBAGL5mQ,KAAKymQ,UAAUjkB,UAUvB,CAAA,IAAA,uBAAA,MAAA,SAAqBvhP,EAASiiP,EAAWxtO,GAGrC,OAA0BzU,EAAiB,QAAEiiP,EAAWxtO,KAM5D,CAAA,IAAA,UAAA,MAAA,SAAQtR,GACJpE,KAAKkhP,YAAYxgP,KAAK0D,KAM1B,CAAA,IAAA,SAAA,MAAA,SAAOA,GACHpE,KAAKihP,WAAWvgP,KAAK0D,KAMzB,CAAA,IAAA,YAAA,MAAA,SAAUA,GACNpE,KAAKmhP,cAAczgP,KAAK0D,KAK5B,CAAA,IAAA,OAAA,MAAA,WACIpE,KAAKs2P,eACAt2P,KAAKwhP,eACNxhP,KAAKkhP,YAAYvpO,SAIjBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKkhP,YAAc,GACnBlhP,KAAKohP,UAAAA,EACDphP,KAAKglQ,gBACLhlQ,KAAKglQ,eAAe11P,SAG5BtP,KAAKymQ,UAAUlkB,SAKnB,CAAA,IAAA,QAAA,MAAA,WACIviP,KAAKgsH,OACLhsH,KAAKymQ,UAAUjkB,UAKnB,CAAA,IAAA,SAAA,MAAA,WACIxiP,KAAKgsH,OACDhsH,KAAKglQ,gBACLhlQ,KAAKglQ,eAAevrO,SAExBz5B,KAAK2hP,YACL3hP,KAAKymQ,UAAUhtO,WAKnB,CAAA,IAAA,QAAA,MAAA,WACIz5B,KAAK4mQ,uBACL5mQ,KAAKi0J,YAAAA,EACLj0J,KAAKqhP,WAAAA,EACLrhP,KAAKohP,UAAAA,IAMT,CAAA,IAAA,uBAAA,MAAA,WACQphP,KAAKymQ,WACLzmQ,KAAKymQ,UAAUI,WAMvB,CAAA,IAAA,UAAA,MAAA,WACI7mQ,KAAKy/D,QACLz/D,KAAKuiP,SAKT,CAAA,IAAA,aAAA,MAAA,WACI,OAAOviP,KAAKohP,WAKhB,CAAA,IAAA,UAAA,MAAA,WACSphP,KAAKi0J,aACNj0J,KAAKi0J,YAAAA,EACLj0J,KAAK4mQ,uBACL5mQ,KAAK2hP,YACD3hP,KAAKglQ,gBACLhlQ,KAAKglQ,eAAe7qL,UAExBn6E,KAAKmhP,cAAcxpO,SAInBvT,SAAAA,GAAAA,OAAMA,OACNpE,KAAKmhP,cAAgB,MAO7B,CAAA,IAAA,cAAA,MAAA,SAAYz6O,GACR1G,KAAKymQ,UAAUtsO,YAAczzB,EAAI1G,KAAKu5B,OAK1C,CAAA,IAAA,cAAA,MAAA,WACI,OAAOv5B,KAAKymQ,UAAUtsO,YAAcn6B,KAAKu5B,OAK7C,CAAA,IAAA,gBAAA,MAAA,WAMA,IAAA,EAAA,KAEU5E,EAAS,GACX30B,KAAKwhP,cACLz7O,OAAOP,KAAKxF,KAAK2mQ,gBAAgBhvP,SAIjCyI,SAAAA,GACgB,UAARA,IACAuU,EAAOvU,GACHpgB,EAAKqhP,UAAYrhP,EAAK2mQ,eAAevmP,GAAQ0nO,GAAa9nP,EAAKiB,QAASmf,OAIxFpgB,KAAKilQ,gBAAkBtwO,IAO3B,CAAA,IAAA,kBAAA,MAAA,SAAgBitN,GAEZ,IAAMC,EAAuB,SAAbD,EAAuB5hP,KAAKkhP,YAAclhP,KAAKihP,WAC/DY,EAAQlqO,SAIRvT,SAAAA,GAAAA,OAAMA,OACNy9O,EAAQ7mP,OAAS,IAAA,CAAA,IAAA,YAAA,IAAA,WAnCjB,OAAOgF,KAAK2jQ,OAAS3jQ,KAAK0jQ,cAK9B,EA7NE4C,GA2UAQ,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GACI9mQ,KAAK+mQ,cAAgB,8BAA8B77P,KAAK87P,KAAsBnnQ,YAC9EG,KAAKinQ,oBAAsB,IAAItB,GA0GmCU,OApGtE,aAAA,EAAA,CAAA,CAAA,IAAA,wBAAA,MAAA,SAAsBjmP,GAClB,OAAOklO,GAAsBllO,KAOjC,CAAA,IAAA,iBAAA,MAAA,SAAenf,EAAS69B,GACpB,OAAOymN,GAAetkP,EAAS69B,KAOnC,CAAA,IAAA,kBAAA,MAAA,SAAgB2lN,EAAMC,GAClB,OAAOc,GAAgBf,EAAMC,KAQjC,CAAA,IAAA,QAAA,MAAA,SAAMzjP,EAAS69B,EAAU+2H,GACrB,OAAO4vF,GAAYxkP,EAAS69B,EAAU+2H,KAQ1C,CAAA,IAAA,eAAA,MAAA,SAAa50J,EAASmf,EAAM89K,GACxB,OAA8ChhM,OAAO44B,iBAAiB70B,GAAYmf,KAMtF,CAAA,IAAA,+BAAA,MAAA,SAA6B8mP,GACzBlnQ,KAAK+mQ,cAAgBG,IAYzB,CAAA,IAAA,UAAA,MAAA,SAAQjmQ,EAASiiP,EAAW1pN,EAAUsqE,EAAOlqE,GAA8BisN,IAAtBib,EAAsBjb,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAAIA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAGvE,IADsBA,IAA4B7lP,KAAK+mQ,cAEnD,OAAO/mQ,KAAKinQ,oBAAoB5tO,QAAQp4B,EAASiiP,EAAW1pN,EAAUsqE,EAAOlqE,EAAQknO,GAGzF,IAEMqG,EAAgB,CAAE3tO,SAAAA,EAAUsqE,MAAAA,EAAO5jF,KAFnB,GAAT4jF,EAAa,OAAS,YAK/BlqE,IACAutO,EAAsB,OAAIvtO,GAG9B,IAAM8tN,EAAiB,GAEjB0f,EAAiDtG,EAAgB5pP,QAIvEkrO,SAAAA,GAAAA,OAAUA,aAAkBkkB,MACxB9e,GAA+BhuN,EAAUsqE,IACzCsjK,EAA4BzvP,SAI5ByqO,SAAAA,GAEI,IAAIztN,EAASytN,EAAO6iB,gBACpBl/P,OAAOP,KAAKmvB,GAAQhd,SAIpByI,SAAAA,GAAAA,OAAQsnO,EAAetnO,GAAQuU,EAAOvU,SAU9C,IAAMimP,EAAgBzD,GAA2B3hQ,EAFjDiiP,EAAYuE,GAAmCxmP,EAL/CiiP,EAAYA,EAAUnuO,KAItB4f,SAAAA,GAAAA,OAAU6xN,GAAW7xN,GAAAA,MAC8C+yN,IAGnE,OAAO,IAAI4e,GAAoBrlQ,EAASiiP,EAAWikB,EAAed,OAAAA,EA7GpES,GAqIN,SAASE,KACL,MAtlR0B,oBAAX9pQ,aAAAA,IAAiCA,OAAOO,UAslRhC,QAA+ByH,UAAmB,SAAM,GAAA,ICtlR7EmiQ,GDslR6E,KCtlR7EA,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAKF,SAAA,EAAYC,EAAcrwO,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACtBmjG,EAAAA,EAAAA,KAAAA,OACKmtI,iBAAmB,EAGxBvnQ,EAAKq2L,UAA+BixE,EAAa98H,eAAevzG,EAAI3rB,KADnD,CAAqBmG,GAAI,IAAKu2H,cAAe,GAAkB1C,KAAM3wG,OAAQ,GAAIx4B,KAAM,CAAEqrK,UAAW,MAJ/FvwI,EAkBsBo/J,OAPhD,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM7uB,GAEF,IAAM/1J,EAAKzR,KAAKunQ,iBAAiB1nQ,WACjCG,KAAKunQ,mBAEL,IAAMxO,EAAQtyP,MAAMqQ,QAAQ0wJ,GAAao5E,GAASp5E,GAAaA,EAE/D,OADAggG,GAAsBxnQ,KAAKq2L,UAAW,KAAM5kL,EAAI,WAAY,CAACsnP,IACtD,IAAI,GAAwBtnP,EAAIzR,KAAKq2L,eAAAA,EAvB9CgxE,CAAgC5mB,KA0Bd79G,UAAO,SAAyC5oI,GAAK,OAAO,IAAKA,GAAKqtQ,IAAyB,GAAgB,IAA0B,GAAgB,MACjLA,GAAwB3mI,WAAQ,GAA0B,CAAErB,MAAOgoI,GAAyB/xP,QAAS+xP,GAAwBzkI,YAD7HykI,IAyBM,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAKF,SAAA,EAAYI,EAAKpxE,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACbj8D,EAAAA,EAAAA,KAAAA,OACKqtI,IAAMA,EACXznQ,EAAKq2L,UAAYA,EAHJA,EAW6DA,OAD9E,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAAOp1L,EAASyU,GACZ,OAAO,IAAIgyP,GAAwB1nQ,KAAKynQ,IAAKxmQ,EAASyU,GAAW,GAAI1V,KAAKq2L,eAAAA,EAhB5E,CAgB4EA,WAAAA,OAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAAAA,IAe5EqxE,GAAAA,WAOF,SAAA,EAAYj2P,EAAIxQ,EAASyU,EAAS2gL,GAAAA,gBAAAA,KAAAA,GAC9Br2L,KAAKyR,GAAKA,EACVzR,KAAKiB,QAAUA,EACfjB,KAAKq2L,UAAYA,EACjBr2L,KAAKshP,aAAe,KACpBthP,KAAKohP,UAAAA,EACLphP,KAAKuhP,UAAY,EACjBvhP,KAAK2nQ,SAAS,SAAUjyP,GAqGjB,OA7FX,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAAQoK,EAAWpb,GACf,OAAO1E,KAAKq2L,UAAUt2B,OAAO//J,KAAKiB,QAA3BjB,KAAAA,OAAyCA,KAAKyR,GAA9CzR,KAAAA,OAAoD8f,GAAapb,KAQ5E,CAAA,IAAA,WAAA,MAAA,SAASs0E,GAAY54E,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,UAAAA,GACjB,OAAOonQ,GAAsBxnQ,KAAKq2L,UAAWr2L,KAAKiB,QAASjB,KAAKyR,GAAIunE,EAAS54E,KAMjF,CAAA,IAAA,SAAA,MAAA,SAAOgE,GACHpE,KAAK4nQ,QAAQ,OAAQxjQ,KAMzB,CAAA,IAAA,UAAA,MAAA,SAAQA,GACJpE,KAAK4nQ,QAAQ,QAASxjQ,KAM1B,CAAA,IAAA,YAAA,MAAA,SAAUA,GACNpE,KAAK4nQ,QAAQ,UAAWxjQ,KAK5B,CAAA,IAAA,OAAA,MAAA,WACIpE,KAAK2nQ,SAAS,UAKlB,CAAA,IAAA,aAAA,MAAA,WACI,OAAO3nQ,KAAKohP,WAKhB,CAAA,IAAA,OAAA,MAAA,WACIphP,KAAK2nQ,SAAS,QACd3nQ,KAAKohP,UAAAA,IAKT,CAAA,IAAA,QAAA,MAAA,WACIphP,KAAK2nQ,SAAS,WAKlB,CAAA,IAAA,UAAA,MAAA,WACI3nQ,KAAK2nQ,SAAS,aAKlB,CAAA,IAAA,SAAA,MAAA,WACI3nQ,KAAK2nQ,SAAS,YAKlB,CAAA,IAAA,UAAA,MAAA,WACI3nQ,KAAK2nQ,SAAS,aAKlB,CAAA,IAAA,QAAA,MAAA,WACI3nQ,KAAK2nQ,SAAS,WAMlB,CAAA,IAAA,cAAA,MAAA,SAAYjhQ,GACR1G,KAAK2nQ,SAAS,cAAejhQ,KAKjC,CAAA,IAAA,cAAA,MAAA,WACI,OAAO,MAAA,EAnHTghQ,GAkJN,SAASF,GAAsBrkL,EAAUliF,EAASwQ,EAAIunE,EAAS54E,GAC3D,OAAO+iF,EAASquD,YAAYvwI,EAArBkiF,KAAAA,OAAmC1xE,EAAnC0xE,KAAAA,OAAyCnK,GAAW54E,GAApD+iF,IAgBL0kL,GAshBAC,GAyFAC,GA/nBK5kL,KAgBL0kL,GAAAA,WAMF,SAAA,EAAYxoF,EAAUu6E,EAAQp0E,GAAAA,gBAAAA,KAAAA,GAC1BxlL,KAAKq/K,SAAWA,EAChBr/K,KAAK45P,OAASA,EACd55P,KAAKwlL,MAAQA,EACbxlL,KAAKgoQ,WAAa,EAClBhoQ,KAAKioQ,aAAe,EACpBjoQ,KAAKkoQ,0BAA4B,GACjCloQ,KAAKmoQ,eAAiB,IAAIr0G,IAC1B9zJ,KAAKooQ,cAAgB,EACrBpoQ,KAAKy7H,QAAUlsH,QAAQwJ,QAAQ,GAC/B6gP,EAAOwB,kBAAoB,SAK1Bn6P,EAASo+K,GAKFA,GAAYA,EAASlyK,WAAWlM,IAChCo+K,EAASjyK,YAAYnM,EAAQkM,WAAYlM,IAsI9B0hQ,OA7HvB,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SAAel4H,EAAat/H,GAAAA,IAAAA,EAAAA,KAMlBk0K,EAAWr/K,KAAKq/K,SAAS70C,eAAeC,EAAat/H,GAC3D,KAAKs/H,GAAgBt/H,GAASA,EAAKhP,MAASgP,EAAKhP,KAAgB,WAAG,CAEhE,IAAIgnF,EAAWnjF,KAAKmoQ,eAAetlP,IAAIw8J,GAMvC,OALKl8F,IACDA,EAAW,IAAIklL,GATI,GASsChpF,EAAUr/K,KAAK45P,QAExE55P,KAAKmoQ,eAAenmP,IAAIq9J,EAAUl8F,IAE/BA,EAGX,IAAMq/K,EAAcr3P,EAAKsG,GAEnBmlP,EAAczrP,EAAKsG,GAAK,IAAMzR,KAAKgoQ,WAmBzC,OAlBAhoQ,KAAKgoQ,aACLhoQ,KAAK45P,OAAOnD,SAASG,EAAansH,GAeWt/H,EAAKhP,KAAkB,UAClDwb,SAVjB+I,SAJK+hP,EAIL/hP,GACOja,MAAMqQ,QAAQ4J,GACdA,EAAQ/I,QAAQ8qP,GAGhBziQ,EAAK45P,OAAO6I,gBAAgBD,EAAa5L,EAAansH,EAAa/pH,EAAQ9gB,KAAM8gB,MAMlF,IAAI4nP,GAAkBtoQ,KAAM42P,EAAav3E,EAAUr/K,KAAK45P,UAKnE,CAAA,IAAA,QAAA,MAAA,WACI55P,KAAKooQ,gBACDpoQ,KAAKq/K,SAASvkJ,OACd96B,KAAKq/K,SAASvkJ,UAOtB,CAAA,IAAA,qBAAA,MAAA,WAAA,IAAA,EAAA,KAEI96B,KAAKy7H,QAAQ/rH,MAAK,WAId1P,EAAKioQ,oBAUb,CAAA,IAAA,2BAAA,MAAA,SAAyB/zI,EAAO9vH,EAAIjI,GAAAA,IAAAA,EAAAA,KAC5B+3H,GAAS,GAAKA,EAAQl0H,KAAKioQ,aAC3BjoQ,KAAKwlL,MAAMnF,KAAI,WAAA,OAGTj8K,EAAGjI,OAGgC,GAAzC6D,KAAKkoQ,0BAA0BltQ,QAC/BuU,QAAQwJ,QAAQ,MAAMrJ,MAAK,WAIvB1P,EAAKwlL,MAAMnF,KAAI,WAIXrgL,EAAKkoQ,0BAA0BvwP,SAI/B2gL,SAAAA,GAAAA,IAAAA,EAAAA,eACuBA,EADvBA,IAEIl0L,EAFJk0L,EAAAA,IAAAA,EAAAA,OAIAt4L,EAAKkoQ,0BAA4B,SAI7CloQ,KAAKkoQ,0BAA0BxnQ,KAAK,CAAC0D,EAAIjI,OAK7C,CAAA,IAAA,MAAA,MAAA,WAAA,IAAA,EAAA,KACI6D,KAAKooQ,gBAGqB,GAAtBpoQ,KAAKooQ,eACLpoQ,KAAKwlL,MAAMpF,mBAAkB,WAIzBpgL,EAAKuoQ,qBACLvoQ,EAAK45P,OAAOxsE,MAAMptL,EAAKioQ,iBAG3BjoQ,KAAKq/K,SAAStkJ,KACd/6B,KAAKq/K,SAAStkJ,QAMtB,CAAA,IAAA,oBAAA,MAAA,WACI,OAAO/6B,KAAK45P,OAAO+I,wBAAAA,EAjKrBkF,IAoKmBjlI,UAAO,SAA0C5oI,GAAK,OAAO,IAAKA,GAAK6tQ,IAA0B,GAAgB,IAA0B,GAAgB,IAA0B,GAAgB,MAC9NA,GAAyBnnI,WAAQ,GAA0B,CAAErB,MAAOwoI,GAA0BvyP,QAASuyP,GAAyBjlI,YADhIilI,IA0DMQ,GAAAA,WAMF,SAAA,EAAYzR,EAAav3E,EAAUu6E,GAAAA,gBAAAA,KAAAA,GAC/B55P,KAAK42P,YAAcA,EACnB52P,KAAKq/K,SAAWA,EAChBr/K,KAAK45P,OAASA,EACd55P,KAAK0qJ,YAAc1qJ,KAAKq/K,SAAS30B,YAIhCh6I,SAAAA,GAAAA,OAAyB2uK,EAAqB,YAAE3uK,IAAM,KAW3D,OANA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WAOI1Q,KAAK45P,OAAOz/K,QAAQn6E,KAAK42P,YAAa52P,KAAKq/K,UAC3Cr/K,KAAKq/K,SAASllG,YAOlB,CAAA,IAAA,gBAAA,MAAA,SAAcv6E,EAAMomB,GAChB,OAAOhmB,KAAKq/K,SAAS70K,cAAc5K,EAAMomB,KAM7C,CAAA,IAAA,gBAAA,MAAA,SAAcvgB,GACV,OAAOzF,KAAKq/K,SAAS7uB,cAAc/qJ,KAMvC,CAAA,IAAA,aAAA,MAAA,SAAWA,GACP,OAAOzF,KAAKq/K,SAASvZ,WAAWrgK,KAOpC,CAAA,IAAA,cAAA,MAAA,SAAY8D,EAAQw0O,GAChB/9O,KAAKq/K,SAAS1yK,YAAYpD,EAAQw0O,GAClC/9O,KAAK45P,OAAO4O,SAASxoQ,KAAK42P,YAAa7Y,EAAUx0O,GAAAA,KAQrD,CAAA,IAAA,eAAA,MAAA,SAAaA,EAAQw0O,EAAUC,GAC3Bh+O,KAAKq/K,SAASryK,aAAazD,EAAQw0O,EAAUC,GAC7Ch+O,KAAK45P,OAAO4O,SAASxoQ,KAAK42P,YAAa7Y,EAAUx0O,GAAAA,KAQrD,CAAA,IAAA,cAAA,MAAA,SAAYA,EAAQ00O,EAAUz0F,GAC1BxpJ,KAAK45P,OAAO6O,SAASzoQ,KAAK42P,YAAa3Y,EAAUj+O,KAAKq/K,SAAU71B,KAOpE,CAAA,IAAA,oBAAA,MAAA,SAAkB00F,EAAgBC,GAC9B,OAAOn+O,KAAKq/K,SAAS9M,kBAAkB2rE,EAAgBC,KAM3D,CAAA,IAAA,aAAA,MAAA,SAAW/+M,GACP,OAAOp/B,KAAKq/K,SAASlyK,WAAWiyB,KAMpC,CAAA,IAAA,cAAA,MAAA,SAAYA,GACR,OAAOp/B,KAAKq/K,SAASnmC,YAAY95G,KASrC,CAAA,IAAA,eAAA,MAAA,SAAa/J,EAAIz1B,EAAM6F,EAAOugB,GAC1BhmB,KAAKq/K,SAAS3yK,aAAa2oB,EAAIz1B,EAAM6F,EAAOugB,KAQhD,CAAA,IAAA,kBAAA,MAAA,SAAgBqP,EAAIz1B,EAAMomB,GACtBhmB,KAAKq/K,SAASt9I,gBAAgB1M,EAAIz1B,EAAMomB,KAO5C,CAAA,IAAA,WAAA,MAAA,SAASqP,EAAIz1B,GACTI,KAAKq/K,SAAS3oJ,SAASrB,EAAIz1B,KAO/B,CAAA,IAAA,cAAA,MAAA,SAAYy1B,EAAIz1B,GACZI,KAAKq/K,SAASha,YAAYhwI,EAAIz1B,KASlC,CAAA,IAAA,WAAA,MAAA,SAASy1B,EAAI7oB,EAAO/G,EAAOq+H,GACvB9jI,KAAKq/K,SAAS3qJ,SAASW,EAAI7oB,EAAO/G,EAAOq+H,KAQ7C,CAAA,IAAA,cAAA,MAAA,SAAYzuG,EAAI7oB,EAAOs3H,GACnB9jI,KAAKq/K,SAASxgF,YAAYxpE,EAAI7oB,EAAOs3H,KAQzC,CAAA,IAAA,cAAA,MAAA,SAAYzuG,EAAIz1B,EAAM6F,GAtYD,KAuYb7F,EAAKjE,OAAO,IArYQ,cAqYkBiE,EACtCI,KAAK0oQ,kBAAkBrzO,IAAM5vB,GAG7BzF,KAAKq/K,SAAS7tC,YAAYn8G,EAAIz1B,EAAM6F,KAQ5C,CAAA,IAAA,WAAA,MAAA,SAAS25B,EAAM35B,GACXzF,KAAKq/K,SAASz2B,SAASxpH,EAAM35B,KAQjC,CAAA,IAAA,SAAA,MAAA,SAAOkF,EAAQmV,EAAWpb,GACtB,OAAO1E,KAAKq/K,SAAStf,OAAOp1J,EAAQmV,EAAWpb,KAQnD,CAAA,IAAA,oBAAA,MAAA,SAAkBzD,EAASwE,GACvBzF,KAAK45P,OAAO8O,kBAAkBznQ,EAASwE,KAAAA,CAAAA,IAAAA,OAAAA,IAAAA,WA7KvC,OAAOzF,KAAKq/K,SAASljL,SAKzB,EAzBEksQ,GAiNAC,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAOF,SAAA,EAAYhzP,EAASshP,EAAav3E,EAAUu6E,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACxCx/H,EAAAA,EAAAA,KAAAA,KAAMw8H,EAAav3E,EAAUu6E,IACxBtkP,QAAUA,EACftV,EAAK42P,YAAcA,EAHqBgD,EAsDOl1P,OA3CnD,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAAY2wB,EAAIz1B,EAAM6F,GAxcD,KAycb7F,EAAKjE,OAAO,GACU,KAAlBiE,EAAKjE,OAAO,IAxcI,cAwcSiE,EAEzBI,KAAK0oQ,kBAAkBrzO,EADvB5vB,OAAAA,IAAQA,KAA+BA,GAIvCzF,KAAK45P,OAAOzpK,QAAQnwF,KAAK42P,YAAavhO,EAAIz1B,EAAKkC,OAAO,GAAI2D,GAI9DzF,KAAKq/K,SAAS7tC,YAAYn8G,EAAIz1B,EAAM6F,KAS5C,CAAA,IAAA,SAAA,MAAA,SAAOkF,EAAQmV,EAAWpb,GAAAA,IAkDIw/O,EAExBykB,EApDoBjkQ,EAAAA,KACtB,GA7diB,KA6dbob,EAAUnkB,OAAO,GAAwB,CAAA,IAAA,EAEnCsF,EA+BlB,SAAkC0J,GAC9B,OAAQA,GACJ,IAAK,OACD,OAAOlN,SAAS6N,KACpB,IAAK,WACD,OAAO7N,SACX,IAAK,SACD,OAAOP,OACX,QACI,OAAOyN,GATnB,CA/BqDA,GAErC/K,EAAOkgB,EAAUhe,OAAO,GAExB81P,EAAQ,GAMZ,MAzea,KAseTh4P,EAAKjE,OAAO,KA0ClBgtQ,GAFwBzkB,EAvCuBtkP,GAyCxBgC,QAAQ,KAzCxBhC,GAveQ,EAAA,eAqhBd,CAHSskP,EAAY1gP,UAAU,EAAGmlQ,GAE3BzkB,EAAYpiP,OAAO6mQ,EAAW,IAphBvB,IAAA,GAueF/Q,EAveE,EAAA,IAyeN53P,KAAK45P,OAAO75F,OAAO//J,KAAK42P,YAAa31P,EAASrB,EAAMg4P,GAI3D/jO,SAAAA,GAGI7zB,EAAKsV,QAAQszP,yBADG,EAAoC,QAAM,EACXlkQ,EAAUmvB,MAGjE,OAAO7zB,KAAKq/K,SAAStf,OAAOp1J,EAAQmV,EAAWpb,OAAAA,EA7DjD4jQ,CAA0BD,IAAAA,KAuG1BP,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAY7wO,EAAK+rN,EAAQC,GAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,KAAAA,KACfhsN,EAAI3rB,KAAM03O,EAAQC,GAAAA,OAAAA,EAP1B6kB,CAAkC,KAUdllI,UAAO,SAA2C5oI,GAAK,OAAO,IAAKA,GAAK8tQ,IAA2B,GAAgB,IAAW,GAAgB,IAAyB,GAAgB,MACjNA,GAA0BpnI,WAAQ,GAA0B,CAAErB,MAAOyoI,GAA2BxyP,QAASwyP,GAA0BllI,YADnIklI,IAuCMe,GAAwB,IAAI9lI,GAAe,uBAgB3C+lI,GAA+B,CACjC,CAAEzlI,QAASyiH,GAAiB1vF,WAvChC,WACI,MDyyPwC,mBAA1B4wG,KCzyPoB,IAAI,GAAyB,IAAI,KAuCnE,CAAE3jI,QAASwlI,GAAuBvlI,SAAU,qBAf5C,CAAED,QAASo9G,GAAkBjqF,SAAU,IACvC,CAAEnzB,QAAS,GAA2B+yB,WApB1C,WACI,OAAO,IAAI,KAoBX,CAAE/yB,QAAS,GAAkBmzB,SAAU,IAA6B,CAChEnzB,QAASonC,GACTrU,WAdR,SAAoCjzE,EAAUy2K,EAAQ/7E,GAClD,OAAO,IAAI,GAAyB16F,EAAUy2K,EAAQ/7E,IAclDxnB,KAAM,CAAC,GAAsB,GAAkBunB,MARvD,KAwCMmqF,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEkBvlI,UAAO,GAAwB,CAAEr3H,KAAM48P,KAC/DA,GAAwBpnI,UAAO,GAAwB,CAAErrH,QAAS,SAAyCtb,GAAK,OAAO,IAAKA,GAAK+tQ,KAA+B/nI,UAAW8oI,GAA8B7oI,QAAS,CAAC,MADnN8nI,IC91BM,GAAM,CAAC,IAAK,CAAC,CAAC,cAAe,CAAC,kBAC9B,GAAM,CAAC,IAAK,4BAClB,SAASgB,GAAyCxmH,EAAInmI,GAEpD,GAFoE,EAALmmI,GAC7D,GAAiB,EAAG,sBAAuB,GACpC,EAALA,EAAQ,CACV,IAAMymH,EAAS,KACf,GAAkB,QAASA,EAAOjxM,SAAW,UAAY,YAAzD,CAAsE,WAAYixM,EAAOx3D,WAE7F,IAsGMy3D,GAtGAC,GAAM,CAAC,KA6DPC,GAAY,IAAIl+F,GAAQ,SAYxBm+F,GAAyB,IAAIrmI,GAAe,oBAAqB,CACnEjD,WAAY,OACZxqH,QATJ,WACI,OAAA,KAq6BA+zP,KAl4BEJ,GAAAA,WAMF,SAAA,EAAYvuB,EAA0B4uB,EAEtC7rQ,GAAAA,gBAAAA,KAAAA,GAIIuC,KAAKupQ,sBAAAA,EACLvpQ,KAAK02G,UAAYj5G,EAGjBi9O,EAAyBC,uCAGzB36O,KAAKwpQ,cAAgBF,EAChBtpQ,KAAKupQ,uBACNvpQ,KAAKypQ,yBACLzpQ,KAAK0pQ,uBACL1pQ,KAAK2pQ,wBACL3pQ,KAAKupQ,sBAAAA,GAqG8C,OA7F3D,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,WAEI,IAAMtyO,EAAMj3B,KAAK02G,WAAaj5G,SAC9B,MAAsB,iBAARw5B,GAAoBA,EAAMA,EAAM,OAOlD,CAAA,IAAA,aAAA,MAAA,WAEI,IAAMA,EAAMj3B,KAAKo4N,eAEXwxC,GAAO3yO,MAAAA,OAAAA,EAA0CA,EAAIpB,cAAgB34B,OAC3E,MAAsB,iBAAR0sQ,GAAoBA,EAAMA,EAAM,OAOlD,CAAA,IAAA,oBAAA,MAAA,WACI,OAAOtxH,OAAgBt4I,KAAK6pQ,eAOhC,CAAA,IAAA,aAAA,MAAA,WAEI,IAAM3sQ,EAA4B8C,KAAKw4N,aACvC,OAAOt7N,IAAWA,EAAOqiO,WAAariO,EAAOsiO,WAMjD,CAAA,IAAA,yBAAA,MAAA,WAEI,IAAM8W,EAAYt2O,KAAK8pQ,uBAAAA,IAClB9pQ,KAAKwpQ,eAA8CxpQ,KAAoB,cAAE+pQ,SAExEtsQ,EAAWuC,KAAKo4N,eAClBke,GAAa74O,IAAaA,EAASssQ,SACnCvlQ,QAAQyG,KAAK,0HAQrB,CAAA,IAAA,uBAAA,MAAA,WAII,IAAMwlM,GAAczwM,KAAK8pQ,sBAAAA,IACpB9pQ,KAAKwpQ,gBAAgDxpQ,KAAoB,cAAEgqQ,MAE1EvsQ,EAAWuC,KAAKo4N,eACtB,IAAI3nB,GAAehzM,GAAaA,EAAS6N,MACT,mBAArBwqB,iBADX,CAKA,IAAMskN,EAAc38O,EAAS+M,cAAc,OAC3C4vO,EAAYh1E,UAAUr9J,IAAI,2BAC1BtK,EAAS6N,KAAKqB,YAAYytO,GAE1B,IAAME,EAAgBxkN,iBAAiBskN,GAInCE,GAA2C,SAA1BA,EAAc/8M,SAC/B/4B,QAAQyG,KAAK,sLAIjBxN,EAAS6N,KAAK8B,YAAYgtO,MAO9B,CAAA,IAAA,wBAAA,MAAA,WAEsBp6O,KAAK8pQ,uBAAAA,IAClB9pQ,KAAKwpQ,eAA8CxpQ,KAAoB,cAAEoR,UAC7D+3P,GAAU/3L,OAAS,GAAUA,MAC1C5sE,QAAQyG,KAAK,iCAAmCk+P,GAAU/3L,KAAO,6CAC/B,GAAUA,KAAO,2EAAA,EA7HzD63L,IAkIUzmI,UAAO,GAAwB,CAAEr3H,KAAM89P,KACvDA,GAAgBtoI,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAKivQ,IAAiB,GAAgB,IAAkC,GAAgBG,GAAwB,GAAI,GAAgB,GAAU,KAAQnpI,QAAS,CAAC,CAAC,IAAa,MAD1RgpI,IAsEA,SAASgB,GAAcjgJ,GACnB,OAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAII,SAAA,IAAe5pH,IAAAA,EAAAA,gBAAAA,KAAAA,GAAAA,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAAAA,OACXg6H,EAAAA,EAAAA,KAAAA,MAAAA,EAAAA,CAAAA,MAAAA,OAASh6H,KACJuvO,WAAAA,EAFMvvO,EAJnB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,IAAA,WAWqB,OAAOJ,KAAK2vO,WAXjC,IAAA,SAgBiBlqO,GAASzF,KAAK2vO,UAAYrd,GAAsB7sN,OAhBjE,EAAA,CAAqBukH,GA4DzB,SAASkgJ,GAAWlgJ,EAAMmgJ,GACtB,OAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAII,SAAA,IAAe/pQ,IAAAA,EAAAA,gBAAAA,KAAAA,GAAAA,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAAAA,OACXg6H,EAAAA,EAAAA,KAAAA,MAAAA,EAAAA,CAAAA,MAAAA,OAASh6H,KAEJ66B,MAAQkvO,EAHF/pQ,EAJnB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,IAAA,WAYkB,OAAOJ,KAAKoqQ,QAZ9B,IAAA,SAiBc3kQ,GAEN,IAAM4kQ,EAAe5kQ,GAAS0kQ,EAC1BE,IAAiBrqQ,KAAKoqQ,SAClBpqQ,KAAKoqQ,QACLpqQ,KAAKuwM,YAAYhmC,cAAcnF,UAAUrvJ,OAAzC/V,OAAAA,OAAuDA,KAAKoqQ,SAE5DC,GACArqQ,KAAKuwM,YAAYhmC,cAAcnF,UAAUr9J,IAAzC/H,OAAAA,OAAoDqqQ,IAExDrqQ,KAAKoqQ,OAASC,OA3B1B,EAAA,CAAqBrgJ,GAwDzB,SAASsgJ,GAAmBtgJ,GACxB,OAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAII,SAAA,IAAe5pH,IAAAA,EAAAA,gBAAAA,KAAAA,GAAAA,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAAAA,OACXg6H,EAAAA,EAAAA,KAAAA,MAAAA,EAAAA,CAAAA,MAAAA,OAASh6H,KACJmqQ,gBAAAA,EAFMnqQ,EAJnB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,IAAA,WAY0B,OAAOJ,KAAKuqQ,gBAZtC,IAAA,SAiBsB9kQ,GAASzF,KAAKuqQ,eAAiBj4C,GAAsB7sN,OAjB3E,EAAA,CAAqBukH,GAoDzB,SAASwgJ,GAAcxgJ,GAAwB,IAAlBygJ,EAAkB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAC3C,OAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAII,SAAA,IAAerqQ,IAAAA,EAAAA,gBAAAA,KAAAA,GAAAA,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAAAA,OACXg6H,EAAAA,EAAAA,KAAAA,MAAAA,EAAAA,CAAAA,MAAAA,OAASh6H,KACJsqQ,UAAYD,EAFNrqQ,EAJnB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,IAAA,WAWqB,OAAOJ,KAAKwxM,UAAY,EAAIxxM,KAAK0qQ,WAXtD,IAAA,SAgBiBjlQ,GAETzF,KAAK0qQ,UAAqB,MAATjlQ,EAAgBA,EAAQglQ,MAlBjD,EAAA,CAAqBzgJ,GAohBzB,IACuC,oBAARuqG,KAE/B,MAAOz7E,KACHuwH,EAAoB,IAygBlBsB,GAq1CAC,GA1EAC,GAhCAC,GApQAC,GA8YAC,GA0HAC,GAx/DkB,KAygBlBN,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAO4EpsD,OAP5EosD,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,eAAAA,MAAAA,SAMWl3L,EAASolI,GAClB,SAAUplI,GAAWA,EAAQ89H,UAAY99H,EAAQi+H,SAAYmH,GAAQA,EAAK0F,gBAAAA,EAP5EosD,IAUY/nI,UAAO,SAAmC5oI,GAAK,OAAO,IAAKA,GAAK2wQ,KAC/DA,GAAkBjqI,WAAQb,GAAmB,CAAEvqH,QAAS,WAAuC,OAAO,IAAIq1P,IAAwBtrI,MAAOsrI,GAAmB7qI,WAAY,SAD3L6qI,IAgbMO,GAAAA,WAMF,SAAA,EAAY70E,EAAWp1L,EAASgI,GAAAA,gBAAAA,KAAAA,GAC5BjJ,KAAKq2L,UAAYA,EACjBr2L,KAAKiB,QAAUA,EACfjB,KAAKiJ,OAASA,EAIdjJ,KAAK6yH,MAAQ,EAOgB7yH,OADjC,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WACIA,KAAKq2L,UAAU80E,cAAcnrQ,UAAAA,EApB/BkrQ,GA6FAE,GAA+B,CACjCC,cAAe,IACfC,aAAc,KAYZC,GAAsBj2C,GAAgC,CAAEl8J,SAAAA,IAKxDoyM,GAAoB,CAAC,YAAa,cAKlCC,GAAkB,CAAC,UAAW,aAAc,WAAY,eAQxD,GAAA,WAOF,SAAA,EAAY9vM,EAASolH,EAAS2qF,EAAqBvnJ,GAAAA,gBAAAA,KAAAA,GAC/CnkH,KAAK27D,QAAUA,EACf37D,KAAK+gL,QAAUA,EAIf/gL,KAAK2rQ,gBAAAA,EAIL3rQ,KAAK4rQ,eAAiB,IAAI53G,IAI1Bh0J,KAAK6rQ,4BAAAA,EAED1nJ,EAAS0wG,YACT70N,KAAKy/N,kBAAoB9M,GAAc+4C,IAuR2CH,OA7Q1F,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,SAAa/xQ,EAAGC,GAAY,IAAA,EAAA,KAATwP,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAElB6iQ,EAAgB9rQ,KAAK+rQ,eACvB/rQ,KAAK+rQ,gBAAkB/rQ,KAAKy/N,kBAAkBhoM,wBAE5Cu0O,EAAkBjmQ,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAImiJ,IAA+BniQ,EAAOu+J,WAC1Fv+J,EAAOgjQ,WACPzyQ,EAAIsyQ,EAAc5mP,KAAO4mP,EAAcpvP,MAAQ,EAC/CjjB,EAAIqyQ,EAAc3mP,IAAM2mP,EAAcvvP,OAAS,GAGnD,IAAM0sC,EAAShgD,EAAOggD,QAuV9B,SAAkCzvD,EAAGC,EAAG6wD,GAEpC,IAAM4hN,EAAQlpP,KAAKvI,IAAIuI,KAAK6K,IAAIr0B,EAAI8wD,EAAKplC,MAAOlC,KAAK6K,IAAIr0B,EAAI8wD,EAAKuM,QAE5Ds1M,EAAQnpP,KAAKvI,IAAIuI,KAAK6K,IAAIp0B,EAAI6wD,EAAKnlC,KAAMnC,KAAK6K,IAAIp0B,EAAI6wD,EAAKsM,SACjE,OAAO5zC,KAAKD,KAAKmpP,EAAQA,EAAQC,EAAQA,GAL7C,CAvViE3yQ,EAAGC,EAAGqyQ,GAEzDj1N,EAAUr9C,EAAIsyQ,EAAc5mP,KAE5B4xB,EAAUr9C,EAAIqyQ,EAAc3mP,IAE5BqU,EAAWwyO,EAAgBX,cAE3Be,EAAS3uQ,SAAS+M,cAAc,OACtC4hQ,EAAOhnG,UAAUr9J,IAAI,sBACrBqkQ,EAAO5/P,MAAM0Y,KAAbknP,GAAAA,OAAuBv1N,EAAUoS,EAAjCmjN,MACAA,EAAO5/P,MAAM2Y,IAAbinP,GAAAA,OAAsBt1N,EAAUmS,EAAhCmjN,MACAA,EAAO5/P,MAAM+P,OAAb6vP,GAAAA,OAAkC,EAATnjN,EAAzBmjN,MACAA,EAAO5/P,MAAMkQ,MAAb0vP,GAAAA,OAAiC,EAATnjN,EAAxBmjN,MAGoB,MAAhBnjQ,EAAOgyB,QACPmxO,EAAO5/P,MAAM4tC,gBAAkBnxC,EAAOgyB,OAE1CmxO,EAAO5/P,MAAM6/P,mBAAbD,GAAAA,OAAqC5yO,EAArC4yO,MACApsQ,KAAKy/N,kBAAkB9yN,YAAYy/P,GA0TvClvQ,OAAO44B,iBAvTuBs2O,GAuTGvlB,iBAAiB,WAtT9CulB,EAAO5/P,MAAMqY,UAAY,WAGzB,IAAMynP,EAAY,IAAIpB,GAAUlrQ,KAAMosQ,EAAQnjQ,GAwB9C,OAvBAqjQ,EAAUz5I,MAAQ,EAElB7yH,KAAK4rQ,eAAe7jQ,IAAIukQ,GACnBrjQ,EAAOsjQ,aACRvsQ,KAAKwsQ,2BAA6BF,GAItCtsQ,KAAKysQ,wBAAuB,WAKxB,IAAMC,EAA8BJ,IAActsQ,EAAKwsQ,2BACvDF,EAAUz5I,MAAQ,EAKb5pH,EAAOsjQ,YAAgBG,GAAgC1sQ,EAAK2rQ,gBAC7DW,EAAUK,YAEdnzO,GACG8yO,IAOX,CAAA,IAAA,gBAAA,MAAA,SAAcA,GAEV,IAAMM,EAAY5sQ,KAAK4rQ,eAAL5rQ,OAA2BssQ,GAS7C,GARIA,IAActsQ,KAAKwsQ,6BACnBxsQ,KAAKwsQ,2BAA6B,MAGjCxsQ,KAAK4rQ,eAAenqP,OACrBzhB,KAAK+rQ,eAAiB,MAGrBa,EAAL,CAIA,IAAMC,EAAWP,EAAUrrQ,QAErB+qQ,EAAkBjmQ,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAImiJ,IAA+BkB,EAAUrjQ,OAAOu+J,WACxGqlG,EAASrgQ,MAAM6/P,mBAAfQ,GAAAA,OAAuCb,EAAgBV,aAAvDuB,MACAA,EAASrgQ,MAAM6nB,QAAU,IACzBi4O,EAAUz5I,MAAQ,EAElB7yH,KAAKysQ,wBAAuB,WAIxBH,EAAUz5I,MAAQ,EACCg6I,EAAoB,WAAEz/P,YAAYy/P,KACrDb,EAAgBV,iBAMxB,CAAA,IAAA,aAAA,MAAA,WACItrQ,KAAK4rQ,eAAej0P,SAIpBy0P,SAAAA,GAAAA,OAAUA,EAAOO,eAOrB,CAAA,IAAA,qBAAA,MAAA,SAAmBjB,GAEf,IAAMzqQ,EAAU0xN,GAAc+4C,GACzBzqQ,GAAWA,IAAYjB,KAAK8sQ,kBAIjC9sQ,KAAK+sQ,uBACL/sQ,KAAK8sQ,gBAAkB7rQ,EACvBjB,KAAKgtQ,gBAAgBxB,OAQzB,CAAA,IAAA,cAAA,MAAA,SAAY33O,GACW,cAAfA,EAAM1oB,KACNnL,KAAKitQ,aAAa,GAEE,eAAfp5O,EAAM1oB,KACXnL,KAAK66D,cAAc,GAGnB76D,KAAKktQ,eAKJltQ,KAAK6rQ,6BACN7rQ,KAAKgtQ,gBAAgBvB,IACrBzrQ,KAAK6rQ,4BAAAA,KASb,CAAA,IAAA,eAAA,MAAA,SAAah4O,GAIT,IAAMs5O,EAAkB91B,GAAgCxjN,GAElDi+F,EAAmB9xH,KAAKotQ,sBAC1BlhQ,KAAKC,MAAQnM,KAAKotQ,qBA5NG,IA6NpBptQ,KAAK27D,QAAQ0xM,gBAAmBF,GAAoBr7I,IACrD9xH,KAAK2rQ,gBAAAA,EACL3rQ,KAAKstQ,aAAaz5O,EAAMM,QAASN,EAAMO,QAASp0B,KAAK27D,QAAQ4xM,iBASrE,CAAA,IAAA,gBAAA,MAAA,SAAc15O,GACV,IAAK7zB,KAAK27D,QAAQ0xM,eAAgB,CAI9BrtQ,KAAKotQ,qBAAuBlhQ,KAAKC,MACjCnM,KAAK2rQ,gBAAAA,EAKL,IADA,IAAM9uM,EAAUhpC,EAAMK,eACbv5B,EAAI,EAAGA,EAAIkiE,EAAQ7hE,OAAQL,IAChCqF,KAAKstQ,aAAazwM,EAAQliE,GAAGw5B,QAAS0oC,EAAQliE,GAAGy5B,QAASp0B,KAAK27D,QAAQ4xM,iBASnF,CAAA,IAAA,eAAA,MAAA,WACSvtQ,KAAK2rQ,iBAGV3rQ,KAAK2rQ,gBAAAA,EAEL3rQ,KAAK4rQ,eAAej0P,SAIpBy0P,SAAAA,IAMSA,EAAOnjQ,OAAOsjQ,aAFgB,IAAjBH,EAAOv5I,OACrBu5I,EAAOnjQ,OAAOukQ,sBAAyC,IAAjBpB,EAAOv5I,QAE7Cu5I,EAAOO,gBAWnB,CAAA,IAAA,yBAAA,MAAA,SAAuBvoQ,GAAY,IAAR0/F,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAC/B9jG,KAAK+gL,QAAQX,mBAAkB,WAAA,OAGzB//K,WAAW+D,EAAI0/F,QAQzB,CAAA,IAAA,kBAAA,MAAA,SAAgB2pK,GAAAA,IAAAA,EAAAA,KACZztQ,KAAK+gL,QAAQX,mBAAkB,WAI3BqtF,EAAW91P,SAIVxM,SAAAA,GACsBnL,EAAqB,gBAAEyzB,iBAAiBtoB,EAAMnL,EAAMurQ,YAQnF,CAAA,IAAA,uBAAA,MAAA,WAAA,IAAA,EAAA,KACQvrQ,KAAK8sQ,kBACLtB,GAAkB7zP,SAIjBxM,SAAAA,GACsBnL,EAAqB,gBAAE2zB,oBAAoBxoB,EAAMnL,EAAMurQ,OAE1EvrQ,KAAK6rQ,4BACLJ,GAAgB9zP,SAIfxM,SAAAA,GACsBnL,EAAqB,gBAAE2zB,oBAAoBxoB,EAAMnL,EAAMurQ,YAAAA,EA/SxF,GA+aAmC,GAA4B,IAAI3qI,GAAe,6BAArD,KACMgoI,GAAAA,WAQF,SAAA,EAAYx6D,EAAa1rB,EAAQ1gE,EAAU1K,EAAek0J,GAAAA,gBAAAA,KAAAA,GACtD3tQ,KAAKuwM,YAAcA,EACnBvwM,KAAK2tQ,eAAiBA,EAMtB3tQ,KAAKipD,OAAS,EACdjpD,KAAK2vO,WAAAA,EAIL3vO,KAAKi7N,gBAAAA,EACLj7N,KAAKu3G,eAAiBkC,GAAiB,GACvCz5G,KAAK4tQ,gBAAkB,IAAI,GAAe5tQ,KAAM6kL,EAAQ0rB,EAAapsF,GA6EzE,OAtEA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WA2BInkH,KAAKi7N,gBAAAA,EACLj7N,KAAK6tQ,iCAKT,CAAA,IAAA,cAAA,MAAA,WACI7tQ,KAAK4tQ,gBAAgBb,yBAMzB,CAAA,IAAA,aAAA,MAAA,WACI/sQ,KAAK4tQ,gBAAgBE,eAOzB,CAAA,IAAA,+BAAA,MAAA,YAuBS9tQ,KAAKwxM,UAAYxxM,KAAKi7N,gBACvBj7N,KAAK4tQ,gBAAgBG,mBAAmB/tQ,KAAK0gB,WAUrD,CAAA,IAAA,SAAA,MAAA,SAAOstP,GAAkB/kQ,IAAPxP,EAAOwP,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAH,EAAGA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EACrB,MAAyB,iBAAd+kQ,EACAhuQ,KAAK4tQ,gBAAgBN,aAAaU,EAAWv0Q,EAAGsM,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIjpH,KAAKutQ,cAAetkQ,IAGpGjJ,KAAK4tQ,gBAAgBN,aAAa,EAAG,EAAGvnQ,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIjpH,KAAKutQ,cAAeS,MAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WAvF1F,OAAOhuQ,KAAK2vO,WAK7B,IAAA,SAAalqO,GACTzF,KAAK2vO,UAAYlqO,EACjBzF,KAAK6tQ,iCAOT,CAAA,IAAA,UAAA,IAAA,WAAgB,OAAO7tQ,KAAKiuQ,UAAYjuQ,KAAKuwM,YAAYhmC,eAKzD,IAAA,SAAY7pJ,GACR1gB,KAAKiuQ,SAAWvtP,EAChB1gB,KAAK6tQ,iCAKT,CAAA,IAAA,eAAA,IAAA,WAuBI,MAAO,CACH5B,SAAUjsQ,KAAKisQ,SACfhjN,OAAQjpD,KAAKipD,OACbhuB,MAAOj7B,KAAKi7B,MACZusI,UAAWzhK,OAAOkjH,OAAOljH,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIjpH,KAAKu3G,eAAeiwD,WAAqC,mBAAxBxnK,KAAK2tQ,eAAsC,CAAEtC,cAAe,EAAGC,aAAc,GAAM,IAAMtrQ,KAAKwnK,WACxLgmG,qBAAsBxtQ,KAAKu3G,eAAei2J,wBAQlD,CAAA,IAAA,iBAAA,IAAA,WACI,OAAOxtQ,KAAKwxM,YAAcxxM,KAAKu3G,eAAei6F,aAOlD,EApGEu5D,IAyHInoI,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAK+wQ,IAAW,GAAyB,IAAoB,GAAyB,IAAgB,GAAyB,IAAkB,GAAyB2C,GAA2B,GAAI,GAAyB7E,GAAuB,KACtTkC,GAAU3oI,UAAO,GAAyB,CAAEj3H,KAAM4/P,GAAWrsO,UAAW,CAAC,CAAC,GAAI,aAAc,IAAK,CAAC,GAAI,YAAa,KAAM6nG,UAAW,CAAC,EAAG,cAAeD,SAAU,EAAGD,aAAc,SAAgCkc,EAAInmI,GAAgB,EAALmmI,GACzN,GAAmB,uBAAwBnmI,EAAI8xP,YAC9CznI,OAAQ,CAAEx9E,OAAQ,CAAC,kBAAmB,UAAWuoJ,SAAU,CAAC,oBAAqB,YAAa9wL,QAAS,CAAC,mBAAoB,WAAYua,MAAO,CAAC,iBAAkB,SAAUizO,UAAW,CAAC,qBAAsB,aAAcjC,SAAU,CAAC,oBAAqB,YAAazkG,UAAW,CAAC,qBAAsB,cAAgB7gC,SAAU,CAAC,eAH/UokI,IAAAA,KA2IMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEUtoI,UAAO,GAAwB,CAAEr3H,KAAM2/P,KACvDA,GAAgBnqI,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAK8wQ,KAAuB7qI,QAAS,CAAC,CAAC,GAAiB,IAAiB,MADrL6qI,IAAAA,KA8BMD,GAIF,SAAA,EAAY8C,GAAAA,gBAAAA,KAAAA,GACR3tQ,KAAK2tQ,eAAiBA,EAItB3tQ,KAAK6yH,MAAQ,YAIb7yH,KAAKwxM,UAAAA,IAGK5uE,UAAO,SAAmC5oI,GAAK,OAAO,IAAKA,GAAK6wQ,IAAmB,GAAyBhC,GAAuB,KACrJgC,GAAkB3oI,UAAO,GAAyB,CAAE/2H,KAAM0/P,GAAmBnsO,UAAW,CAAC,CAAC,wBAAyB6nG,UAAW,CAAC,EAAG,uBAAwBD,SAAU,EAAGD,aAAc,SAAwCkc,EAAInmI,GAAgB,EAALmmI,GACpO,GAAmB,oCAAmD,kBAAdnmI,EAAIy2G,MAA5D,CAAuF,8BAA6C,YAAdz2G,EAAIy2G,MAA1H,CAA+I,+BAAgCz2G,EAAIo1L,SAAnL,CAA6L,0BAAkD,mBAAvBp1L,EAAIuxP,iBAC3NlnI,OAAQ,CAAE5T,MAAO,QAAS2+E,SAAU,YAAcxrE,MAAO,EAAGC,KAAM,EAAGC,SAAU,SAAoCqc,EAAInmI,KAAUuY,OAAQ,CAAC,whCAA2hCqzG,cAAe,EAAGJ,gBAAiB,IAHjtCijI,IAAAA,KA0DMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEkBpoI,UAAO,GAAwB,CAAEr3H,KAAMy/P,KAC/DA,GAAwBjqI,UAAO,GAAwB,CAAErrH,QAAS,SAAyCtb,GAAK,OAAO,IAAKA,GAAK4wQ,OADjIA,IAuBMuD,GAAwBlE,IAHxBmE,SAAAA,IAAAA,gBAAAA,KAAAA,MAMFC,GAA2B,EAA/B,KAIMrD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GACF,SAAA,IAAA,IAAA,EAAA,OAAA,gBAAA,KAAA,IACI5wI,EAAAA,EAAAA,MAAAA,KAAS17H,YAIJ4vQ,SAALtuQ,sBAAAA,OAAsCquQ,MAL1C,EAK0CA,OAAAA,EANxCrD,CAAoBmD,KASdvrI,UAAO,SAA6B5oI,GAAK,OAAOu0Q,GAAyBv0Q,GAAKgxQ,KAC1FA,GAAY9oI,UAAO,GAAyB,CAAE/2H,KAAM6/P,GAAatsO,UAAW,CAAC,CAAC,iBAAkB6nG,UAAW,CAAC,OAAQ,QAAS,EAAG,gBAAiBD,SAAU,EAAGD,aAAc,SAAkCkc,EAAInmI,GAAgB,EAALmmI,IACrN,GAAmB,gBAAiBnmI,EAAIo1L,SAAS3xM,WAAjD,CAA6D,kBAAmBuc,EAAIkyP,UACpF,GAAmB,wBAAyBlyP,EAAIo1L,YAC/C/qE,OAAQ,CAAE+qE,SAAU,WAAYhpB,MAAO,SAAW7hD,SAAU,CAAC,eAAgBrrH,SAAU,CAAC,IAAoC8qH,mBAAoB,GAAKJ,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,EAAG,qBAAsB,EAAG,OAAQD,SAAU,SAA8Bqc,EAAInmI,GAAgB,EAALmmI,IAC9Q,GAAuB,IACvB,GAAsB,EAAG,QAAS,GAClC,GAAc,GACd,GAAoB,GACpB,KACA,GAAoB,EAAG,IAChB,EAALA,IACF,GAAkB,KAAMnmI,EAAIkyP,UAC5B,GAAiB,GACjB,GAA0B,GAAIlyP,EAAIosK,MAAO,OACxC7zJ,OAAQ,CAAC,qkBAAskBqzG,cAAe,EAAGJ,gBAAiB,IAf3nBojI,IAmBMuD,GAA2B,GAA6B,IA+C1DC,GAAmB,EAIjBC,GAKF,SAAA,EAAYrsQ,GAAsB,IAAdssQ,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAAA,gBAAA,KAAA,GAC9B1uQ,KAAKoC,OAASA,EACdpC,KAAK0uQ,YAAcA,GAgCrBC,GAA8B,IAAI5rI,GAAe,+BAAvD,KAIMkoI,GAAAA,WAOF,SAAA,EAAYvvL,EAAUkzL,EAAoBp0G,EAASl8G,GAAAA,gBAAAA,KAAAA,GAC/Ct+C,KAAK07E,SAAWA,EAChB17E,KAAK4uQ,mBAAqBA,EAC1B5uQ,KAAKw6J,QAAUA,EACfx6J,KAAKs+C,MAAQA,EACbt+C,KAAKi3N,WAAAA,EACLj3N,KAAK6uQ,SAAAA,EACL7uQ,KAAK2vO,WAAAA,EACL3vO,KAAK8uQ,qBAAuB,GAI5B9uQ,KAAKyR,GAALzR,cAAAA,OAAwBwuQ,MAKxBxuQ,KAAK+uQ,kBAAoB,IAAI,GAI7B/uQ,KAAKgvQ,cAAgB,IAAI,EAkD7B,OA5CA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WA6CShvQ,KAAKi3N,YACNj3N,KAAKi3N,WAAAA,EACLj3N,KAAK4uQ,mBAAmB9yE,eACxB97L,KAAKivQ,+BAOb,CAAA,IAAA,WAAA,MAAA,WACQjvQ,KAAKi3N,YACLj3N,KAAKi3N,WAAAA,EACLj3N,KAAK4uQ,mBAAmB9yE,eACxB97L,KAAKivQ,+BASb,CAAA,IAAA,QAAA,MAAA,SAAMppC,EAASnwN,GAIX,IAAMzU,EAAUjB,KAAKkvQ,kBACQ,mBAAlBjuQ,EAAQ46D,OACf56D,EAAQ46D,MAAMnmD,KAStB,CAAA,IAAA,kBAAA,MAAA,WACS1V,KAAK6uQ,UACN7uQ,KAAK6uQ,SAAAA,EACL7uQ,KAAK4uQ,mBAAmB9yE,kBAShC,CAAA,IAAA,oBAAA,MAAA,WACQ97L,KAAK6uQ,UACL7uQ,KAAK6uQ,SAAAA,EACL7uQ,KAAK4uQ,mBAAmB9yE,kBAOhC,CAAA,IAAA,WAAA,MAAA,WACI,OAAO97L,KAAKmvQ,YAOhB,CAAA,IAAA,iBAAA,MAAA,SAAet7O,GV3oGL,KU4oGDA,EAAMk4E,SV9nGL,KU8nG0Bl4E,EAAMk4E,SAAuB0vH,GAAe5nM,KACxE7zB,KAAKovQ,wBAELv7O,EAAMqoC,oBAQd,CAAA,IAAA,wBAAA,MAAA,WACSl8D,KAAKwxM,WACNxxM,KAAKi3N,WAAYj3N,KAAKqvQ,WAAYrvQ,KAAKi3N,UACvCj3N,KAAK4uQ,mBAAmB9yE,eACxB97L,KAAKivQ,2BAAAA,MAUb,CAAA,IAAA,mBAAA,MAAA,WACI,OAAOjvQ,KAAK+3D,WAAa/3D,KAAKqvQ,UAAmB,OAMrD,CAAA,IAAA,eAAA,MAAA,WACI,OAAOrvQ,KAAKwxM,SAAW,KAAO,MAMlC,CAAA,IAAA,kBAAA,MAAA,WACI,OAAOxxM,KAAK07E,SAAS6uF,gBAKzB,CAAA,IAAA,qBAAA,MAAA,WAMI,GAAIvqK,KAAKi3N,UAAW,CAEhB,IAAMk4C,EAAYnvQ,KAAKmvQ,UACnBA,IAAcnvQ,KAAK8uQ,uBACnB9uQ,KAAK8uQ,qBAAuBK,EAC5BnvQ,KAAKgvQ,cAAc9mQ,WAO/B,CAAA,IAAA,cAAA,MAAA,WACIlI,KAAKgvQ,cAAcznQ,aAQvB,CAAA,IAAA,4BAAA,MAAA,WAAwC,IAAdmnQ,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACpC1uQ,KAAK+uQ,kBAAkB7gJ,KAAK,IAAIugJ,GAAyBzuQ,KAAM0uQ,MAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WA3LlD,OAAO1uQ,KAAKw6J,SAAWx6J,KAAKw6J,QAAQ60G,WAKrD,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOrvQ,KAAKi3N,YAK7B,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAQj3N,KAAKs+C,OAASt+C,KAAKs+C,MAAMkzJ,UAAaxxM,KAAK2vO,WAKpE,IAAA,SAAalqO,GAASzF,KAAK2vO,UAAYrd,GAAsB7sN,KAK7D,CAAA,IAAA,gBAAA,IAAA,WAAsB,OAAOzF,KAAKw6J,SAAWx6J,KAAKw6J,QAAQ80G,gBAQ1D,CAAA,IAAA,SAAA,IAAA,WACI,OAAOtvQ,KAAK6uQ,UAOhB,CAAA,IAAA,YAAA,IAAA,WAEI,OAAQ7uQ,KAAKkvQ,kBAAkBtqO,aAAe,IAAI5uB,WAMtD,EA9EEi1P,IAgOIroI,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAKixQ,IAAW,GAAyB,IAAoB,GAAyB,IAA2B,GAAyB0D,GAA6B,GAAI,GAAyB,GAAa,KAC9Q1D,GAAU/oI,UAAO,GAAyB,CAAE/2H,KAAM8/P,GAAWvsO,UAAW,CAAC,CAAC,eAAgB6nG,UAAW,CAAC,OAAQ,SAAU,EAAG,aAAc,uBAAwBD,SAAU,GAAID,aAAc,SAAgCkc,EAAInmI,GAAgB,EAALmmI,GACpO,GAAkB,SAAS,WAAgD,OAAOnmI,EAAIgzP,0BAAtF,CAAkH,WAAW,SAA8C1+D,GAAU,OAAOt0L,EAAImzP,eAAe7+D,MACxM,EAALnuD,IACF,GAAsB,KAAMnmI,EAAI3K,IAChC,GAAmB,WAAY2K,EAAIozP,eAAnC,CAAmD,gBAAiBpzP,EAAIqzP,mBAAxE,CAA4F,gBAAiBrzP,EAAIo1L,SAAS3xM,YAC1H,GAAmB,eAAgBuc,EAAI27C,SAAvC,CAAiD,sBAAuB37C,EAAIizP,SAA5E,CAAsF,aAAcjzP,EAAIk7C,OAAxG,CAAgH,sBAAuBl7C,EAAIo1L,YAC1I/qE,OAAQ,CAAEh1H,GAAI,KAAM+/L,SAAU,WAAY/rM,MAAO,SAAWihI,QAAS,CAAEqoI,kBAAmB,qBAAuBpoI,SAAU,CAAC,aAAcP,mBAAoB8iI,GAAKljI,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,QAAS,6BAA8B,EAAG,QAAS,WAAY,EAAG,QAAS,CAAC,EAAG,mBAAoB,CAAC,aAAc,GAAI,EAAG,oBAAqB,EAAG,mBAAoB,qBAAsB,CAAC,EAAG,6BAA8B,EAAG,QAAS,aAAcD,SAAU,SAA4Bqc,EAAInmI,GAAgB,EAALmmI,IAC7e,KACA,GAAkB,EAAGwmH,GAA0C,EAAG,EAAG,sBAAuB,GAC5F,GAAsB,EAAG,OAAQ,GACjC,GAAoB,GACpB,KACA,GAAiB,EAAG,MAAO,IACpB,EAALxmH,IACF,GAAkB,OAAQnmI,EAAIizP,UAC9B,GAAiB,GACjB,GAAkB,mBAAoBjzP,EAAI8yP,kBAA1C,CAA6D,oBAAqB9yP,EAAIo1L,UAAYp1L,EAAIkzP,iBACrG3rH,WAAY,CAAC,GAAa,GAAW,IAAoBhvH,OAAQ,CAAC,y4CAA04CqzG,cAAe,EAAGJ,gBAAiB,IAlBx/CqjI,IA6IA,SAASyE,GAA8BC,EAAaj6P,EAASk6P,GACzD,GAAIA,EAAa50Q,OAAQ,CAOrB,IALA,IAAI60Q,EAAen6P,EAAQuf,UAEvBx1B,EAASmwQ,EAAa36O,UAEtB66O,EAAe,EACVn1Q,EAAI,EAAGA,EAAIg1Q,EAAc,EAAGh1Q,IAC7Bk1Q,EAAal1Q,GAAG2jD,OAASuxN,EAAal1Q,GAAG2jD,QAAU7+C,EAAOqwQ,IAC1DA,IAGR,OAAOA,EAEX,OAAO,EAAA,IA4BLC,GC/mGAC,GA9PAC,GCpBFC,GAIEC,GFi2GK,KA4BLJ,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEUvtI,UAAO,GAAwB,CAAEr3H,KAAM4kQ,KACvDA,GAAgBpvI,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAK+1Q,KAAuB9vI,QAAS,CAAC,CAAC,GAAiB,GAAc,OADlL8vI,IAwBMK,GAA2B,IAAIrtI,GAAe,4BC76G9C,GAAM,CAAC,aAAc,IACrB,GAAM,CAAC,KAOPstI,GAAyB,CAC3B,aACA,kBACA,kBACA,oBACA,qBACA,eACA,WAmBEC,GAAsBpG,GAAWD,GAAcK,IATjD,SAAA,EAAY/5D,GAAAA,gBAAAA,KAAAA,GACRvwM,KAAKuwM,YAAcA,OAQ3B,KAIM0/D,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAY1hH,EAAYgiH,EAAe5C,GAAAA,IAAAA,EAAAA,gBAAAA,KAAAA,IACnCvzI,EAAAA,EAAAA,KAAAA,KAAMm0B,IACDgiH,cAAgBA,EACrBvwQ,EAAK2tQ,eAAiBA,EAItB3tQ,EAAKwwQ,cAAgBxwQ,EAAKywQ,mBAAmB,UAAW,gBAIxDzwQ,EAAK0wQ,aAAe1wQ,EAAKywQ,mBAAmB,mBAXT9C,IAAAA,EAAAA,EAAAA,2BAchB0C,IAdgB1C,IAcnC,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MAAA,CAAA,IAAW53O,EAAX,EAAA,MACQ/1B,EAAKywQ,mBAAmB16O,IACJ/1B,EAAKkvQ,kBAAqB9pG,UAAUr9J,IAAIguB,IAhBjC43O,MAAAA,GAAAA,EAAAA,EAAAA,GAAAA,QAAAA,EAAAA,IAAAA,OAsBnCp/G,EAAWgc,cAAcnF,UAAUr9J,IAAI,mBACvC/H,EAAKuwQ,cAAcI,QAAQ3wQ,EAAKuwM,aAAAA,GAC5BvwM,EAAKwwQ,gBACLxwQ,EAAKi7B,MAnEkB,UA0CQ0yO,EAiEcliP,OAlCrD,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WACIzrB,KAAKuwQ,cAAcn3B,eAAep5O,KAAKuwM,eAQ3C,CAAA,IAAA,QAAA,MAAA,WAA0B76L,IAApBlT,EAAoBkT,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAX,UAAWA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EACtB1V,KAAKuwQ,cAAcK,SAAS5wQ,KAAKkvQ,kBAAmB1sQ,EAAQkT,KAKhE,CAAA,IAAA,kBAAA,MAAA,WACI,OAAO1V,KAAKuwM,YAAYhmC,gBAK5B,CAAA,IAAA,oBAAA,MAAA,WACI,OAAOvqK,KAAKsvQ,eAAiBtvQ,KAAKwxM,WAOtC,CAAA,IAAA,qBAAA,MAAA,WAAsBnrL,IAAAA,IAAAA,EAAAA,KAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAClB,OAAOA,EAAWytE,MAIlBroE,SAAAA,GAAAA,OAAazrB,EAAKkvQ,kBAAkBvtO,aAAalW,UAAAA,EAvEnDwkP,CAAkBK,KA0Ed1tI,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAKi2Q,IAAW,GAAyB,IAAoB,GAAyB,IAAsB,GAAyBpH,GAAuB,KACzNoH,GAAU/tI,UAAO,GAAyB,CAAE/2H,KAAM8kQ,GAAWvxO,UAAW,CAAC,CAAC,SAAU,aAAc,IAAK,CAAC,SAAU,oBAAqB,IAAK,CAAC,SAAU,kBAAmB,IAAK,CAAC,SAAU,UAAW,IAAK,CAAC,SAAU,eAAgB,IAAK,CAAC,SAAU,qBAAsB,IAAK,CAAC,SAAU,kBAAmB,KAAMqpG,UAAW,SAAyBwa,EAAInmI,GAGpV,IAAIy0P,EAHgW,EAALtuH,GAC/V,GAAmB,IAAA,GACZ,EAALA,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIgwP,OAASyE,EAAGx1G,QACpE90B,UAAW,CAAC,EAAG,uBAAwBD,SAAU,EAAGD,aAAc,SAAgCkc,EAAInmI,GAAgB,EAALmmI,IAClH,GAAmB,WAAYnmI,EAAIo1L,UAAY,MAC/C,GAAmB,0BAAkD,mBAAvBp1L,EAAIuxP,kBACjDlnI,OAAQ,CAAE+qE,SAAU,WAAY89D,cAAe,gBAAiBr0O,MAAO,SAAW0rG,SAAU,CAAC,aAAcrrH,SAAU,CAAC,IAAoC4mB,MAAO,GAAKkkG,mBAAoB,GAAKJ,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,EAAG,sBAAuB,CAAC,YAAa,GAAI,EAAG,oBAAqB,EAAG,oBAAqB,oBAAqB,oBAAqB,CAAC,EAAG,6BAA8BD,SAAU,SAA4Bqc,EAAInmI,GAAgB,EAALmmI,IAC1b,KACA,GAAsB,EAAG,OAAQ,GACjC,GAAoB,GACpB,KACA,GAAiB,EAAG,MAAO,GAC3B,GAAiB,EAAG,MAAO,IACpB,EAALA,IACF,GAAiB,GACjB,GAAmB,0BAA2BnmI,EAAIo0P,eAAiBp0P,EAAIs0P,cACvE,GAAkB,oBAAqBt0P,EAAI00P,oBAA3C,CAAgE,oBAAqB10P,EAAIs0P,aAAzF,CAAuG,mBAAoBt0P,EAAI8yP,qBAC9HvrH,WAAY,CAAC,IAAmBhvH,OAAQ,CAAC,61MAA81MqzG,cAAe,EAAGJ,gBAAiB,IApBn7MqoI,IAAAA,KAoLMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEUxtI,UAAO,GAAwB,CAAEr3H,KAAM6kQ,KACvDA,GAAgBrvI,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAKg2Q,KAAuB/vI,QAAS,CAAC,CACtI,GACA,IACD,MAJX+vI,IEnTMh0H,GAAO,GAeA+0H,GAAAA,WACT,SAAA,EAAYx0I,GAAAA,gBAAAA,KAAAA,GACRv8H,KAAKu8H,eAAiBA,EAG+CA,OADzE,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKp0H,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAwB4H,EAAYnI,KAAKu8H,qBAAAA,EALhEw0I,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EAAYlpQ,EAAa00H,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBnC,EAAAA,EAAAA,KAAAA,KAAMvyH,IACD00H,eAAiBA,EACtBv8H,EAAKs3D,OAAS,EACdt3D,EAAK6iH,OAAS,GACd7iH,EAAKk9H,YAAc,GALEX,EAwDC74H,OAjD1B,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAMgV,GACF1Y,KAAK6iH,OAAOniH,KAAKs7I,IACjBh8I,KAAKk9H,YAAYx8H,KAAKgY,KAE1B,CAAA,IAAA,YAAA,MAAA,WACI,IAAMwkH,EAAcl9H,KAAKk9H,YACnBxiI,EAAMwiI,EAAYliI,OACxB,GAAY,IAARN,EACAsF,KAAK6H,YAAYN,eAEhB,CACDvH,KAAKs3D,OAAS58D,EACdsF,KAAKgxQ,UAAYt2Q,EACjB,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAKC,IAAK,CAC1B,IAAM+d,EAAawkH,EAAYviI,GAC/BqF,KAAK+H,IAAI6zH,EAAkB57H,KAAM0Y,EAAYA,EAAY/d,QAIrE,CAAA,IAAA,iBAAA,MAAA,SAAes2Q,GACgB,IAAtBjxQ,KAAKs3D,QAAU,IAChBt3D,KAAK6H,YAAYN,aAGzB,CAAA,IAAA,aAAA,MAAA,SAAWwzH,EAAYgB,EAAYf,EAAYgB,EAAYC,GACvD,IAAMpZ,EAAS7iH,KAAK6iH,OAEdmuJ,EAAahxQ,KAAKgxQ,UADTnuJ,EAAOmY,KAGLghB,KAASh8I,KAAKgxQ,UAAYhxQ,KAAKgxQ,UAD1C,EAENnuJ,EAAOmY,GAAce,EACH,IAAdi1I,IACIhxQ,KAAKu8H,eACLv8H,KAAKkxQ,mBAAmBruJ,GAGxB7iH,KAAK6H,YAAYK,KAAK26G,EAAOvlH,YAIzC,CAAA,IAAA,qBAAA,MAAA,SAAmBulH,GACf,IAAIn/G,EACJ,IACIA,EAAS1D,KAAKu8H,eAAe/9H,MAAMwB,KAAM6iH,GAE7C,MAAO/8G,GAEH,YADA9F,KAAK6H,YAAY1I,MAAM2G,GAG3B9F,KAAK6H,YAAYK,KAAKxE,OAAAA,EAzDjB,CAAgC,GCxBvCytQ,GAAAA,WACF,SAAA,EAAYtzE,GAAAA,gBAAAA,KAAAA,GACR79L,KAAK69L,MAAQA,EAG+CA,OADhE,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAK11L,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAe4H,EAAYnI,KAAK69L,YAAAA,EAL9DszE,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYtpQ,EAAag2L,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBzjE,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDg2L,MAAQA,EACb79L,EAAKk0H,MAAQ,EAHQ2pE,EAOKrkM,OAF9B,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAMA,KACIwG,KAAKk0H,MAAQl0H,KAAK69L,OACpB79L,KAAK6H,YAAYK,KAAK1O,OAAAA,EAR5B,CAAuB,GFmBvB43Q,GAAqC,IAAIp9G,IAK/C,KAIMm8G,GAAAA,WAIF,SAAA,EAAY/4C,GAAAA,gBAAAA,KAAAA,GACRp3N,KAAKo3N,UAAYA,EACjBp3N,KAAKqxQ,YAAcrxQ,KAAKo3N,UAAUvC,WAAa33N,OAAOo0Q,WAGlDp0Q,OAAOo0Q,WAAWvoQ,KAAK7L,QACvBq0Q,GAcoB98E,OAJ5B,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWA,GAIP,OAHIz0L,KAAKo3N,UAAUnC,QAmC3B,SAA8BxgC,GAC1B,IAAI28E,GAAmCr7G,IAAI0+B,GAG3C,IACSy7E,MACDA,GAAsBzyQ,SAAS+M,cAAc,UACzBkC,aAAa,OAAQ,YACtBjP,SAAc,KAAEkP,YAAYujQ,KAE/CA,GAAoBsB,QACAtB,GAA2B,MAC1CuB,WADevB,UAAAA,OACMz7E,EADNy7E,wBACmC,GACvDkB,GAAmCrpQ,IAAI0sL,IAG/C,MAAOhxL,GACHe,QAAQrF,MAAMsE,IAjBtB,CAlCiCgxL,GAElBz0L,KAAKqxQ,YAAY58E,OAAAA,EAxB1B07E,IA2BOvtI,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAKm2Q,IAAc,GAAgB,MAKnFA,GAAazvI,WAAQb,GAAmB,CAAEvqH,QAAS,WAAkC,OAAO,IAAI66P,GAAansI,GAAS,MAAe3E,MAAO8wI,GAAcrwI,WAAY,SALzLqwI,IAsDA,SAASoB,GAAe98E,GAGpB,MAAO,CACH/uC,QAAmB,QAAV+uC,GAA6B,KAAVA,EAC5BhnL,MAAOgnL,EACPjhK,YAAa,aAIbE,eAAgB,cAPb,IAmELg+O,GAnEK,KAmELA,GAAAA,WAKF,SAAA,EAAYC,EAAensF,GAAAA,gBAAAA,KAAAA,GACvBxlL,KAAK2xQ,cAAgBA,EACrB3xQ,KAAKwlL,MAAQA,EAIbxlL,KAAK4xQ,SAAW,IAAI99G,IAIpB9zJ,KAAK6xQ,gBAAkB,IAAI,EAkHpB12Q,OA5GX,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WACI6E,KAAK6xQ,gBAAgB3pQ,OACrBlI,KAAK6xQ,gBAAgBtqQ,aAOzB,CAAA,IAAA,YAAA,MAAA,SAAU9B,GAAAA,IAAAA,EAAAA,KAGN,OADgBqsQ,GAAar/C,GAAYhtN,IAC1BquF,MAIfi+K,SAAAA,GAAAA,OAAc/xQ,EAAKgyQ,eAAeD,GAAYE,IAAIvsH,aAQtD,CAAA,IAAA,UAAA,MAAA,SAAQjgJ,GAAAA,IAAAA,EAAAA,KAUAysQ,EChPL,WAA0Bh1I,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAC7B,IAAIX,EAAiB,KACjBF,EAAY,KAUhB,OATIxB,EAAYqC,EAAYA,EAAYliI,OAAS,MAC7CqhI,EAAYa,EAAYnpH,OAEuB,mBAAxCmpH,EAAYA,EAAYliI,OAAS,KACxCuhI,EAAiBW,EAAYnpH,OAEN,IAAvBmpH,EAAYliI,QAAgB8b,EAAQomH,EAAY,MAChDA,EAAcA,EAAY,IAEvBllD,EAAUklD,EAAab,GAAW7jH,KAAK,IAAIu4P,GAAsBx0I,IAZrE,CDwOiBu1I,GAAar/C,GAAYhtN,IAEbsP,KAI5B0/K,SAAAA,GAAAA,OAASz0L,EAAKgyQ,eAAev9E,GAAO/7K,eAKpC,OADAw5P,EAAkB11Q,GAAO01Q,EAAgB7tQ,KAAKu5L,GAAK,IAAKs0E,EAAgB7tQ,MEtPpEjC,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAI24P,GFsPmD,MAAI/iC,GAAa,MAC5E/pO,KAAK0Q,GAI3Bo9P,SAAAA,GAEG,IAAMvoQ,EAAW,CACb87I,SAAAA,EACA0sH,YAAa,IAUjB,OARAD,EAAiBx6P,SAIhBk7G,SAAAA,GACGjpH,EAAS87I,QAAU97I,EAAS87I,SAAW7yB,EAAM6yB,QAC7C97I,EAASwoQ,YAAYv/I,EAAM4hE,OAAS5hE,EAAM6yB,WAEvC97I,QASf,CAAA,IAAA,iBAAA,MAAA,SAAe6qL,GAAAA,IAAAA,EAAAA,KAEX,GAAIz0L,KAAK4xQ,SAAS77G,IAAI0+B,GAClB,OAA0Bz0L,KAAK4xQ,SAAS/uP,IAAI4xK,GAGhD,IAAMw9E,EAAMjyQ,KAAK2xQ,cAAcL,WAAW78E,GAoCpCt5L,EAAS,CAAEud,WAjCO,IAAI,GAI3B6gH,SAAAA,GAOG,IAAM/4H,EAILiD,SAAAA,GAAAA,OAAMzD,EAAKwlL,MAAMnF,KAAI,WAAA,OAGhB9mD,EAASrxH,KAAKzE,OAEpB,OADAwuQ,EAAIz+O,YAAYhzB,GACT,WAIHyxQ,EAAIv+O,eAAelzB,OAEvB6D,KAAK4vN,GAAUg+C,GAAMl9P,GAIxBs9P,SAAAA,GAAAA,MAAY,CAAG59E,MAAAA,EAAO/uC,QAAS2sH,EAAQ3sH,YAAc64C,GAAUv+L,KAAK6xQ,kBAGvBI,IAAAA,GAE9C,OADAjyQ,KAAK4xQ,SAAS5vP,IAAIyyK,EAAOt5L,GAClBA,MAAAA,EAjITu2Q,IAoIa9uI,UAAO,SAAoC5oI,GAAK,OAAO,IAAKA,GAAK03Q,IAAoB,GAAgB,IAAe,GAAgB,MAMpIA,GAAmBhxI,WAAQb,GAAmB,CAAEvqH,QAAS,WAAwC,OAAO,IAAIo8P,GAAmB1tI,GAAS,IAAeA,GAAS45C,MAAav+C,MAAOqyI,GAAoB5xI,WAAY,SANvO4xI,IAyCA,SAASI,GAAahuH,GAClB,OAAOA,EAAQ/uI,KAId0/K,SAAAA,GAAAA,OAAUA,EAAMjzL,MAAM,QAClB0C,QAAO,SAKXolC,EAAIC,GALO,OAKAD,EAAG9sC,OAAO+sC,MACjBx0B,KAIL0/K,SAAAA,GAAAA,OAASA,EAAMz+K,UAkBnB,IAAMs8P,GAMO,wGGvXb,SAASC,GAA8BhwH,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC1D,IAAMiwH,EAAM,KACZ,GAAsB,EAAG,MAAO,GAChC,GAAsB,EAAG,SAAU,GACnC,GAAkB,SAAS,WAAqI,OAAlE,GAAqBA,GAAqB,KAAsCpiN,YAC9K,GAAc,GACd,KACA,KACF,GAAS,EAALmyF,EAAQ,CACV,IAAMymH,EAAS,KACf,GAAiB,GACjB,GAAyBA,EAAO7sQ,KAAKi0D,SAEzC,SAASqiN,GAA4ClwH,EAAInmI,IAazD,IAwRMs2P,GA0ZAC,GAhTAC,GC/ZOC,GCbAC,GCJAC,GCAAC,GCCAC,GCDAC,GCESC,GCWTC,GRywBPC,GSxwBOC,GTgCPC,GAAcvwP,KAAKE,IAAI,EAAG,IAAM,EAKhC,GAAA,WAKF,SAAA,EAAYswP,EAAmB32C,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAC3B78N,KAAK68N,YAAcA,EAInB78N,KAAKyzQ,gBAAkB,IAAI,EAI3BzzQ,KAAK0zQ,aAAe,IAAI,EAIxB1zQ,KAAK2zQ,UAAY,IAAI,EAIrB3zQ,KAAK4zQ,oBAAAA,EACL5zQ,KAAKwzQ,kBAAoBA,EAEzBxzQ,KAAK6zQ,WAAWtzQ,WAAU,WAAA,OAGpBP,EAAK8zQ,aACXN,EAAkBO,QAAQxzQ,WAAU,WAAA,OAG9BP,EAAKg0Q,oBAwFW7iF,OAlF1B,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WACSnxL,KAAKyzQ,gBAAgBlrQ,QACtBvI,KAAKwzQ,kBAAkBS,OAE3BrkQ,aAAa5P,KAAKk0Q,sBAMtB,CAAA,IAAA,oBAAA,MAAA,WACSl0Q,KAAK2zQ,UAAUprQ,SAChBvI,KAAK4zQ,oBAAAA,EACL5zQ,KAAK2zQ,UAAUzrQ,OACflI,KAAK2zQ,UAAUpsQ,cASvB,CAAA,IAAA,kBAAA,MAAA,WACIvH,KAAKm0Q,sBAOT,CAAA,IAAA,gBAAA,MAAA,SAAc36O,GAAAA,IAAAA,EAAAA,KAGVx5B,KAAKk0Q,mBAAqB7zQ,YAAW,WAAA,OAG/BL,EAAK8zQ,YAAY9wP,KAAKxI,IAAIgf,EAAU+5O,OAM9C,CAAA,IAAA,QAAA,MAAA,WACSvzQ,KAAK0zQ,aAAanrQ,SACnBvI,KAAK0zQ,aAAaxrQ,OAClBlI,KAAK0zQ,aAAansQ,cAQ1B,CAAA,IAAA,iBAAA,MAAA,WACIvH,KAAK68N,YAAY93K,UACZ/kD,KAAK2zQ,UAAUprQ,QAChBvI,KAAK2zQ,UAAUpsQ,WAEnBvH,KAAKyzQ,gBAAgBvrQ,KAAK,CAAEksQ,kBAAmBp0Q,KAAK4zQ,qBACpD5zQ,KAAKyzQ,gBAAgBlsQ,WACrBvH,KAAK4zQ,oBAAAA,IAMT,CAAA,IAAA,iBAAA,MAAA,WACI,OAAO5zQ,KAAKyzQ,gBAAgBtiF,iBAMhC,CAAA,IAAA,cAAA,MAAA,WACI,OAAOnxL,KAAKwzQ,kBAAkBa,WAMlC,CAAA,IAAA,WAAA,MAAA,WACI,OAAOr0Q,KAAK2zQ,UAAUxiF,mBAAAA,EAxHxB,GAsLAmjF,GAAqB,IAAIvxI,GAAe,mBAKxCwxI,GACF,SAAA,IAAA,gBAAA,KAAA,GAIIv0Q,KAAKg3O,WAAa,YAKlBh3O,KAAKw0Q,oBAAsB,GAI3Bx0Q,KAAKw5B,SAAW,EAIhBx5B,KAAK7D,KAAO,KAIZ6D,KAAKy0Q,mBAAqB,SAI1Bz0Q,KAAK00Q,iBAAmB,UAAA,KA8D1BhC,GAAAA,WAKF,SAAA,EAAYiC,EAAax4Q,GAAAA,gBAAAA,KAAAA,GACrB6D,KAAK20Q,YAAcA,EACnB30Q,KAAK7D,KAAOA,EAcOi0D,OARvB,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WACIpwD,KAAK20Q,YAAYR,sBAMrB,CAAA,IAAA,YAAA,IAAA,WACI,QAASn0Q,KAAK7D,KAAKi0D,WAAAA,EArBrBsiN,IAwBS9vI,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAK04Q,IAAgB,GAAyB,IAAiB,GAAyB4B,MAC/J5B,GAAexwI,UAAO,GAAyB,CAAE/2H,KAAMunQ,GAAgBh0O,UAAW,CAAC,CAAC,qBAAsB6nG,UAAW,CAAC,EAAG,uBAAwBP,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,QAAS,6BAA8B,EAAG,QAAS,CAAC,EAAG,8BAA+B,CAAC,aAAc,GAAI,EAAG,UAAWD,SAAU,SAAiCqc,EAAInmI,GAAgB,EAALmmI,IACvV,GAAsB,EAAG,QACzB,GAAc,GACd,KACA,GAAkB,EAAGgwH,GAA+B,EAAG,EAAG,MAAO,IAC1D,EAALhwH,IACF,GAAiB,GACjB,GAAyBnmI,EAAIjgB,KAAKiD,SAClC,GAAiB,GACjB,GAAkB,OAAQgd,EAAIw4P,aAC7BjxH,WAAY,CAAC,GAAa,IAAmBhvH,OAAQ,CAAC,+TAAgUqzG,cAAe,EAAGJ,gBAAiB,IAXla8qI,IAqDMmC,GAAwB,CAI1BC,cAAep0P,GAAQ,QAAS,CAC5B,GAAM,eAAgB,GAAM,CACxBmE,UAAW,aACXwP,QAAS,KAEb,GAAM,UAAW,GAAM,CACnBxP,UAAW,WACXwP,QAAS,KAEbysN,GAAW,eAAgBznN,GAAQ,qCACnCynN,GAAW,yBAA0BznN,GAAQ,oCAAqC,GAAM,CACpFhF,QAAS,SAfrB,KA6BMu+O,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAOF,SAAA,EAAY7xF,EAASwvB,EAAaq+D,EAAoBmG,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAClD36I,EAAAA,EAAAA,KAAAA,OACK2mD,QAAUA,EACf/gL,EAAKuwM,YAAcA,EACnBvwM,EAAK4uQ,mBAAqBA,EAC1B5uQ,EAAK+0Q,eAAiBA,EAItB/0Q,EAAKi0J,YAAAA,EAILj0J,EAAK+zQ,QAAU,IAAI,EAInB/zQ,EAAKq0Q,SAAW,IAAI,EAIpBr0Q,EAAKg1Q,gBAAkB,OAMvBh1Q,EAAKk6N,gBAIJE,SAAAA,GAAAA,OACGp6N,EAAKi1Q,qBACLj1Q,EAAKk1Q,wBACEl1Q,EAAK6/N,cAAc3F,gBAAgBE,IAQ1Cp6N,EAAKm1Q,MAJyB,cAA9BJ,EAAe/9B,YAA+B+9B,EAAeP,oBAG1B,QAA9BO,EAAe/9B,WACP,KAGA,SANA,QAvCiC+9B,EAmLlC,OA7HpB,aAAA,EAAA,CAAA,CAAA,IAAA,wBAAA,MAAA,SAAsB36C,GAGlB,OAFAp6N,KAAKi1Q,qBACLj1Q,KAAKk1Q,wBACEl1Q,KAAK6/N,cAAcxF,sBAAsBD,KAQpD,CAAA,IAAA,uBAAA,MAAA,SAAqBA,GAGjB,OAFAp6N,KAAKi1Q,qBACLj1Q,KAAKk1Q,wBACEl1Q,KAAK6/N,cAAcvF,qBAAqBF,KAOnD,CAAA,IAAA,iBAAA,MAAA,SAAevmM,GAAAA,IACHswN,EAAuBtwN,EAAzB,UAAauwN,EAAYvwN,EAAd,QAIjB,IAHiB,SAAZuwN,GAAoC,SAAdD,GAAqC,WAAZC,IAChDpkP,KAAKo1Q,gBAEO,YAAZhxB,EAAuB,CAIvB,IAAM3kE,EAAUz/K,KAAKq0Q,SACrBr0Q,KAAK+gL,QAAQV,KAAI,WAIbZ,EAAQv3K,OACRu3K,EAAQl4K,iBAQpB,CAAA,IAAA,QAAA,MAAA,WACSvH,KAAKi0J,aACNj0J,KAAKg1Q,gBAAkB,UACvBh1Q,KAAK4uQ,mBAAmBhoF,mBAOhC,CAAA,IAAA,OAAA,MAAA,WASI,OALA5mL,KAAKg1Q,gBAAkB,SAIvBh1Q,KAAKuwM,YAAYhmC,cAAc79J,aAAa,WAAY,IACjD1M,KAAK+zQ,UAMhB,CAAA,IAAA,cAAA,MAAA,WACI/zQ,KAAKi0J,YAAAA,EACLj0J,KAAKo1Q,kBAQT,CAAA,IAAA,gBAAA,MAAA,WAAA,IAAA,EAAA,KACIp1Q,KAAK+gL,QAAQ1C,iBAAiB8S,eAAe9sL,KAAKu5L,GAAK,IAAIr9L,WAAU,WAIjEP,EAAK+zQ,QAAQ7rQ,OACblI,EAAK+zQ,QAAQxsQ,gBAQrB,CAAA,IAAA,wBAAA,MAAA,WAEI,IAAMtG,EAAUjB,KAAKuwM,YAAYhmC,cAE3B8qG,EAAer1Q,KAAK+0Q,eAAe72C,WACrCm3C,IACI5uQ,MAAMqQ,QAAQu+P,GAEdA,EAAa19P,SAIbkqN,SAAAA,GAAAA,OAAY5gO,EAAQmkK,UAAUr9J,IAAI85N,MAGlC5gO,EAAQmkK,UAAUr9J,IAAIstQ,IAGiB,WAA3Cr1Q,KAAK+0Q,eAAeN,oBACpBxzQ,EAAQmkK,UAAUr9J,IAAI,wBAEmB,QAAzC/H,KAAK+0Q,eAAeL,kBACpBzzQ,EAAQmkK,UAAUr9J,IAAI,uBAQ9B,CAAA,IAAA,qBAAA,MAAA,WACI,GAAI/H,KAAK6/N,cAAcnG,cACnB,MAAM7zN,MAAM,gFAAA,EA1LlB+sQ,CAA6B54C,KA8Ldp3F,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAK44Q,IAAsB,GAAyB,IAAgB,GAAyB,IAAoB,GAAyB,IAA2B,GAAyB2B,MACjR3B,GAAqB1wI,UAAO,GAAyB,CAAE/2H,KAAMynQ,GAAsBl0O,UAAW,CAAC,CAAC,wBAAyBqpG,UAAW,SAAoCwa,EAAInmI,GAGpK,IAAIy0P,EAHgL,EAALtuH,GAC/K,GAAyB,IAAA,GAClB,EAALA,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIyjN,cAAgBgxC,EAAGx1G,QAC3E90B,UAAW,CAAC,EAAG,2BAA4BD,SAAU,EAAGD,aAAc,SAA2Ckc,EAAInmI,GAAgB,EAALmmI,GACjI,GAAwC,eAAe,SAAsEmuD,GAAU,OAAOt0L,EAAIk5P,eAAe5kE,MAC1J,EAALnuD,IACF,GAAmB,OAAQnmI,EAAI+4P,OAC/B,GAAoC,SAAU/4P,EAAI44P,mBACjD15P,SAAU,CAAC,IAAoC0qH,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,kBAAmB,KAAMD,SAAU,SAAuCqc,EAAInmI,GAAgB,EAALmmI,GACtK,GAAkB,EAAGkwH,GAA6C,EAAG,EAAG,cAAe,IACtF9uH,WAAY,CAAC,IAAyBhvH,OAAQ,CAAC,iYAAkYqzG,cAAe,EAAG7rI,KAAM,CAAEqrK,UAAW,CAACqtG,GAAsBC,kBAbtflC,IAAAA,KAkHMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEYnwI,UAAO,GAAwB,CAAEr3H,KAAMwnQ,KACzDA,GAAkBhyI,UAAO,GAAwB,CAAErrH,QAAS,SAAmCtb,GAAK,OAAO,IAAKA,GAAK24Q,KAAyB1yI,QAAS,CAAC,CAC5I,GACA,GACA,GACA,GACA,IACD,MAPX0yI,IAsCM4C,GAAgC,IAAIxyI,GAAe,gCAAiC,CACtFjD,WAAY,OACZxqH,QAMJ,WACI,OAAO,IAAIi/P,MATf,KAcMlB,GAAAA,WASF,SAAA,EAAY9mC,EAAUipC,EAAOhxF,EAAWixF,EAAqBC,EAAiBC,GAAAA,gBAAAA,KAAAA,GAC1E31Q,KAAKusO,SAAWA,EAChBvsO,KAAKw1Q,MAAQA,EACbx1Q,KAAKwkL,UAAYA,EACjBxkL,KAAKy1Q,oBAAsBA,EAC3Bz1Q,KAAK01Q,gBAAkBA,EACvB11Q,KAAK21Q,eAAiBA,EAMtB31Q,KAAK41Q,wBAA0B,KAgCnC,OA1BA,aAAA,EAAA,CAAA,CAAA,IAAA,oBAAA,MAAA,SA0BkBxtH,EAAWn/I,GACzB,OAA0BjJ,KAAK61Q,QAAQztH,EAAWn/I,KAUtD,CAAA,IAAA,mBAAA,MAAA,SAAiBi9H,EAAUj9H,GACvB,OAAOjJ,KAAK61Q,QAAQ3vI,EAAUj9H,KASlC,CAAA,IAAA,OAAA,MAAA,SAAK7J,GAAsB6J,IAAbmnD,EAAannD,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAAIA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAEjB08L,EAAU5/L,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIjpH,KAAK21Q,gBAAiB1sQ,GAOtE,OAJA08L,EAAQxpM,KAAO,CAAEiD,QAAAA,EAASgxD,OAAAA,GACrBu1I,EAAQ6uE,sBACT7uE,EAAQ6uE,oBAAsBp1Q,GAE3BY,KAAK81Q,kBAAkB,GAAgBnwE,KAMlD,CAAA,IAAA,UAAA,MAAA,WACQ3lM,KAAK+1Q,oBACL/1Q,KAAK+1Q,mBAAmBjC,YAMhC,CAAA,IAAA,cAAA,MAAA,WAEQ9zQ,KAAK41Q,yBACL51Q,KAAK41Q,wBAAwB9B,YAUrC,CAAA,IAAA,2BAAA,MAAA,SAAyBh3C,EAAY7zN,GAEjC,IAEMw6H,EAAW,IAAI63F,GAFAryN,GAAUA,EAAO6wN,kBAAoB7wN,EAAO6wN,iBAAiBr2F,UAE9BzjI,KAAKwkL,UAAW,IAAI8+E,QAAQ,CAC5E,CAACiR,GAAmBtrQ,MAGlB+sQ,EAAkB,IAAIn8C,GAAgB,GAAsB5wN,EAAO6wN,iBAAkBr2F,GAErFwyI,EAAen5C,EAAWlD,OAAOo8C,GAEvC,OADAC,EAAaz/N,SAASu+N,eAAiB9rQ,EAChCgtQ,EAAaz/N,WAUxB,CAAA,IAAA,UAAA,MAAA,SAAQslG,EAASo6H,GAEb,IAAMjtQ,EAASlD,OAAOkjH,OAAOljH,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAI,IAAIsrJ,IAAsBv0Q,KAAK21Q,gBAAiBO,GAEvGp5C,EAAa98N,KAAKkuO,eAAejlO,GAEjC89B,EAAY/mC,KAAKm2Q,yBAAyBr5C,EAAY7zN,GAEtD0rQ,EAAc,IAAI,GAAe5tO,EAAW+1L,GAClD,GAAIhhF,aAAmBo1B,GAAa,CAEhC,IAAMkpD,EAAS,IAAIL,GAAej+E,EAAS,KAA2B,CAClE07C,UAAWvuL,EAAO9M,KAClBw4Q,YAAAA,IAEJA,EAAYn+N,SAAWzP,EAAUuzL,qBAAqBF,OAErD,CAED,IAAM32F,EAAWzjI,KAAKo2Q,gBAAgBntQ,EAAQ0rQ,GAExCv6C,EAAS,IAAIP,GAAgB/9E,OAAAA,EAAoBrY,GAEjD4yI,EAAatvO,EAAUszL,sBAAsBD,GAEnDu6C,EAAYn+N,SAAW6/N,EAAW7/N,SAkBtC,OAbAx2C,KAAKy1Q,oBAAoBt1P,QHviBZ,qDGuiBiD9b,KAAKk6L,GAAUu+B,EAAWw5C,gBAAgB/1Q,WAIxGsyH,SAAAA,GAEI,IAAMuyC,EAAY03D,EAAWc,eAAex4D,UAG5CvyC,EAAM6yB,QAAU0f,EAAUr9J,IADR,yBACyBq9J,EAAUrvJ,OADnC,4BAGtB/V,KAAKu2Q,iBAAiB5B,EAAa1rQ,GACnCjJ,KAAK+1Q,mBAAqBpB,EACnB30Q,KAAK+1Q,qBAShB,CAAA,IAAA,mBAAA,MAAA,SAAiBpB,EAAa1rQ,GAAAA,IAAAA,EAAAA,KAE1B0rQ,EAAY6B,iBAAiBj2Q,WAAU,WAK/BP,EAAK+1Q,oBAAsBpB,IAC3B30Q,EAAK+1Q,mBAAqB,MAE1B9sQ,EAAOurQ,qBACPx0Q,EAAKw1Q,MAAMr2N,WAGfn/C,KAAK+1Q,oBAGL/1Q,KAAK+1Q,mBAAmBS,iBAAiBj2Q,WAAU,WAI/Co0Q,EAAYnB,kBAAkBjwE,WAElCvjM,KAAK+1Q,mBAAmBjC,WAIxBa,EAAYnB,kBAAkBjwE,QAG9Bt6L,EAAOuwB,UAAYvwB,EAAOuwB,SAAW,GACrCm7O,EAAY8B,cAAcl2Q,WAAU,WAAA,OAG9Bo0Q,EAAY+B,cAAiCztQ,EAAgB,aAEnEA,EAAOurQ,qBACPx0Q,KAAKw1Q,MAAMmB,SAAS1tQ,EAAOurQ,oBAAqBvrQ,EAAO+tO,cAS/D,CAAA,IAAA,iBAAA,MAAA,SAAe/tO,GAEX,IAAMmjO,EAAgB,IAAIpO,GAC1BoO,EAAc3nI,UAAYx7F,EAAOw7F,UAEjC,IAAI+7H,EAAmBxgO,KAAKusO,SAAS1lN,WAAW1pB,SAG1C2qO,EAA6B,QAArB7+N,EAAOw7F,UAEfmyK,EAAwC,SAA9B3tQ,EAAOwrQ,oBACY,UAA9BxrQ,EAAOwrQ,qBAAmC3sC,GACZ,QAA9B7+N,EAAOwrQ,oBAAgC3sC,EAEtC16H,GAAWwpK,GAAwC,WAA9B3tQ,EAAOwrQ,mBAkBlC,OAjBImC,EACAp2C,EAAiBt7M,KAAK,KAEjBkoF,EACLozH,EAAiB3pK,MAAM,KAGvB2pK,EAAiBq2C,qBAGW,QAA5B5tQ,EAAOyrQ,iBACPl0C,EAAiBr7M,IAAI,KAGrBq7M,EAAiB5pK,OAAO,KAE5Bw1K,EAAc5L,iBAAmBA,EAC1BxgO,KAAKusO,SAAS1lO,OAAOulO,KAUhC,CAAA,IAAA,kBAAA,MAAA,SAAgBnjO,EAAQ0rQ,GAGpB,OAAO,IAAIr5C,GADUryN,GAAUA,EAAO6wN,kBAAoB7wN,EAAO6wN,iBAAiBr2F,UACxCzjI,KAAKwkL,UAAW,IAAI8+E,QAAQ,CAClE,CAAC,GAAgBqR,GACjB,CAACL,GAAoBrrQ,EAAO9M,WAAAA,CAAAA,IAAAA,qBAAAA,IAAAA,WAxPhC,IAAMoN,EAASvJ,KAAK01Q,gBACpB,OAAOnsQ,EAASA,EAAOwsQ,mBAAqB/1Q,KAAK41Q,yBAMrD,IAAA,SAAuBnwQ,GACfzF,KAAK01Q,gBACL11Q,KAAK01Q,gBAAgBK,mBAAqBtwQ,EAG1CzF,KAAK41Q,wBAA0BnwQ,MAYvC,EArDE4tQ,IAyRMzwI,UAAO,SAA6B5oI,GAAK,OAAO,IAAKA,GAAKq5Q,IAAa,GAAgB,IAAiB,GAAgB,IAAuB,GAAgB,IAAkB,GAAgB,IAA4B,GAAgBA,GAAa,IAAK,GAAgBkC,MAUxQlC,GAAY3yI,WAAQb,GAAmB,CAAEvqH,QAAS,WAAiC,OAAO,IAAI+9P,GAAYrvI,GAAS,IAAUA,GAAS,IAAgBA,GAASf,IAAWe,GAAS,IAAqBA,GAASqvI,GAAa,IAAKrvI,GAASuxI,MAAoCl2I,MAAOg0I,GAAavzI,WAAY,KAVnUuzI,IQliCO,KAAMD,GAAN,WACH,SAAA,EACYhvD,EACA0yD,EACAC,GAAAA,gBAAAA,KAAAA,GAFA,KAAA3yD,SAAAA,EACA,KAAA0yD,KAAAA,EACA,KAAAC,SAAAA,EAJT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAOS33Q,GAAoD,IAAtB6J,EAAsB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACrDA,EAAOuwB,UAAgC,IAApBvwB,EAAOuwB,WAC7BvwB,EAAOuwB,SAAWvwB,EAAOmnD,OAxBK,KAwBiC,KAG5DhxD,IACHA,EAAUwyN,GAAW/tF,SAGzB,IAAMmzI,EAAmC,iBAAZ53Q,EACzBY,KAAK82Q,KAAK98Q,EAAEoF,GACZY,KAAK82Q,KAAK98Q,EAAEoF,EAAQA,QAASA,EAAQ63Q,cAEzC,OAAOj3Q,KAAK+2Q,SAAS90Q,KAAKjC,KAAK82Q,KAAK98Q,EAAEg9Q,GAAgBh3Q,KAAK82Q,KAAK98Q,EAAEiP,EAAOmnD,QAAS,CAAC52B,SAAUvwB,EAAOuwB,aApBrG,CAAA,IAAA,gBAAA,MAAA,SAuBqB4uH,EAA6Bn/I,GACjD,OAAOjJ,KAAK+2Q,SAASjB,kBAAkB1tH,EAAWn/I,OAxBnD,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMmqQ,IAAK,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAALA,GAAK,QAALA,GAAK,UAAA,WAFF,SAAA,IDTT,KAAeD,GAAf,WACH,SAAA,EACc2D,EACAI,GAAAA,gBAAAA,KAAAA,GADA,KAAAJ,KAAAA,EACA,KAAAI,MAAAA,EAHX,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAMWttQ,EAA6B6wG,GAA8C,IAAhC/kG,EAAgC,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAC/EyhQ,EAAevtQ,EAASzK,OAAS,GAYvC,GAXAg4Q,EAAYh1Q,OAASyH,EAASzH,OAEvBg1Q,EAAYriQ,SACfqiQ,EAAYriQ,OAAS,IAGzB/O,OAAOP,KAAK2xQ,EAAYriQ,QAAQ6C,SAAQzb,SAAAA,GACpC,IAAMkD,EAAU+3Q,EAAYriQ,OAAO5Y,GACnCi7Q,EAAYriQ,OAAO5Y,GAAOuK,MAAMqQ,QAAQ1X,GAAWA,EAAQ,GAAKA,KAG/DsW,EAAQ0hQ,mBAA6C,MAAvBD,EAAYh1Q,QAAyC,MAAvBg1Q,EAAYh1Q,QAEtE,GAA2B,MAAvBg1Q,EAAYh1Q,QAAkBg1Q,EAAY/3Q,UAAY2G,OAAOP,KAAK2xQ,EAAYriQ,QAAQ9Z,OAC7FgF,KAAKk3Q,MAAMj1Q,KAAKk1Q,EAAY/3Q,QAAS,CAACo6B,SAAU,YAC7C,GAA2B,MAAvB29O,EAAYh1Q,OAAgB,CACnC,IAAM/C,IAAW+3Q,MAAAA,OAAAA,EAAAA,EAAa/3Q,UAAWwyN,GAAW/tF,SAASrgI,UAAU,EAAG,KAC1ExD,KAAKk3Q,MAAMj1Q,KAAK7C,EAAS,CAACo6B,SAAU,aALpCx5B,KAAKq3Q,eAAeF,GAQxB,OAAO,GAAWA,OA5BnB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAehE,IAAgB,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAhBA,GAAgB,QAAhBA,GAAgB,UAAA,WAFtB,SAAA,IDAT,KAAMD,GAAN,WAGH,SAAA,EAAsBoE,EAAkC5uH,GAAAA,gBAAAA,KAAAA,GAAlC,KAAA4uH,WAAAA,EAAkC,KAAA5uH,aAAAA,EAHrD,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAKWjuC,GAA4C,IAAA,EAAA,KAA/B48C,EAA+B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAtB,GAAI3hJ,EAAkB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAChD6hQ,EAAav3Q,KAAKw3Q,mBAAmBngH,GAC3C,OAAOr3J,KAAKs3Q,WAAWz0P,IAAO7iB,KAAKy3Q,UAAUh9J,GAAM,OAAF,OAAA,CAAG48C,OAAQkgH,GAAe7hQ,IACtErR,KAAK85L,IAAWr4L,SAAAA,GAAAA,OAAO9F,EAAK0oJ,aAAa47C,OAAOx+L,EAAK20G,EAAK/kG,SARhE,CAAA,IAAA,OAAA,MAAA,SAWY+kG,GAA8B,IAAA,EAAA,KAAjB48C,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KACzC,OAAOr3J,KAAKs3Q,WAAW/xD,KAAQvlN,KAAKy3Q,UAAUh9J,GAAM48C,GAC/ChzJ,KAAK85L,IAAWr4L,SAAAA,GAAAA,OAAO9F,EAAK0oJ,aAAa47C,OAAOx+L,EAAK20G,SAb3D,CAAA,IAAA,MAAA,MAAA,SAgBWA,GAA8B,IAAA,EAAA,KAAjB48C,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAExC,OADAA,EAASr3J,KAAK03Q,gBAAgBrgH,EAAQ,OAC/Br3J,KAAKs3Q,WAAW/xD,KAAQvlN,KAAKy3Q,UAAUh9J,GAAM48C,GAC/ChzJ,KAAK85L,IAAWr4L,SAAAA,GAAAA,OAAO9F,EAAK0oJ,aAAa47C,OAAOx+L,EAAK20G,SAnB3D,CAAA,IAAA,SAAA,MAAA,SAsBcA,GAA8B,IAAA,EAAA,KAAjB48C,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAE3C,OADAA,EAASr3J,KAAK03Q,gBAAgBrgH,EAAQ,UAC/Br3J,KAAKs3Q,WAAW/xD,KAAQvlN,KAAKy3Q,UAAUh9J,GAAM48C,GAC/ChzJ,KAAK85L,IAAWr4L,SAAAA,GAAAA,OAAO9F,EAAK0oJ,aAAa47C,OAAOx+L,EAAK20G,SAzB3D,CAAA,IAAA,mBAAA,MAAA,SA4BqBA,EAAa48C,GAAAA,IAAAA,EAAAA,KAC3Bp9I,EAAM,IAAI+yM,GAAY,OAAQhtN,KAAKy3Q,UAAUh9J,GAAM48C,EAAQ,CAC7D81D,gBAAAA,IAEJ,OAAOntN,KAAKs3Q,WAAWj/O,QAAQpe,GAAK5V,KAChC85L,IAAWr4L,SAAAA,GAAAA,OAAO9F,EAAK0oJ,aAAa47C,OAAOx+L,EAAK20G,MAChD,IAAOh3G,SAAAA,GAAAA,MAAK,CAACgqN,GAAcC,KAAMD,GAAcE,eAAgBF,GAAcvnG,UAAUkjG,SAAS3lN,EAAE0H,YAlCvG,CAAA,IAAA,YAAA,MAAA,SAyCesvG,GACd,OAAIA,EAAI74G,QAAQ,QAAU,GAAK64G,EAAIq4E,WAAWogF,EAAcpjM,QAAgB2qC,EAAxEA,GAAAA,OACMy4J,EAAcpjM,OADpB2qC,KAAAA,OAC8BA,KA3CnC,CAAA,IAAA,qBAAA,MAAA,SAiDwB48C,GACvB,IAAIkgH,EAAa,IAAIvrD,GACrB,OAAO30D,GAEPtxJ,OAAOP,KAAK6xJ,GAAQ1/I,SAAQzb,SAAAA,GACxB,IAAIuJ,EAAQ4xJ,EAAOn7J,GACN,MAATuJ,IAAeA,EAAQ,IAC3B8xQ,EAAaA,EAAWlyD,OAAOnpN,EAAKuJ,MAGjC8xQ,GAReA,IAnDvB,CAAA,IAAA,kBAAA,MAAA,SAiEqBlgH,EAAyB7lI,GAO7C,OANI6lI,aAAkB8tD,SACjB9tD,EAAoBguD,OAAO,UAAW7zL,GAEvC6lI,EAAgB,QAAI7lI,EAGjB6lI,MAxER,EAAA,IACIvnF,OAAS,SAAT,GAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GADEojM,IAAa,GAAA,IAAA,GAAA,MACf,GAAA,WAAA,GAAA,CAAA,MADEA,GAAa,QAAbA,GAAa,UAAA,WAFV,SAGL,IDAJ,KAAMD,GAAN,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAGH,SAAA,EACc3tD,EACA58D,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEVtuB,EAAAA,EAAAA,KAAAA,KAAMkrF,EAAM58D,IAHF48D,KAAAA,EACA,EAAA58D,aAAAA,EAJJ,EAAA34E,MAAQ,GAIJ24E,EALX,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,SAUoB5pJ,GAA8B,IAAA,EAAA,KAAjBu4J,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAC3Cn7J,EAAM8D,KAAK23Q,aAAa74Q,EAAKu4J,GAInC,GAAIr3J,KAAK+vE,MAAM7zE,aAAgB,EAC3B,OAAO8D,KAAK+vE,MAAM7zE,GAGf,GAAI8D,KAAK+vE,MAAM7zE,GAClB,OAAO2xL,GAAG7tL,KAAK+vE,MAAM7zE,IAIrB,IAAMm8B,EAAUr4B,KAAK6iB,IAAI/jB,EAAKu4J,GAAQhzJ,KAAK+5H,MAE3C,OADA/lG,EAAQ93B,WAAUpE,SAAAA,GAAAA,OAAQ6D,EAAK+vE,MAAM7zE,GAAOC,KAAM,eAC3C6D,KAAK+vE,MAAM7zE,GAAOm8B,IA1B9B,CAAA,IAAA,OAAA,MAAA,SA8BYv5B,EAAau4J,EAASv/C,GAEjC,OADA93G,KAAK43Q,aAAL53Q,KAAAA,gBAAAA,EAAAA,WAAAA,OAAAA,MAAAA,KAAAA,KACkBlB,EAAKu4J,KAhCxB,CAAA,IAAA,MAAA,MAAA,SAmCWv4J,GAA0Bg5G,IAAbu/C,EAAav/C,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAEhC,OAFoCA,UAAAA,OAAAA,GAAAA,UAAAA,GACpC93G,KAAK43Q,aAAL53Q,KAAAA,gBAAAA,EAAAA,WAAAA,MAAAA,MAAAA,KAAAA,KACiBlB,EAAKu4J,KArCvB,CAAA,IAAA,SAAA,MAAA,SAwCcv4J,GAA0Bg5G,IAAbu/C,EAAav/C,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAEnC,OAFuCA,UAAAA,OAAAA,GAAAA,UAAAA,GACvC93G,KAAK43Q,aAAL53Q,KAAAA,gBAAAA,EAAAA,WAAAA,SAAAA,MAAAA,KAAAA,KACoBlB,EAAKu4J,KA1C1B,CAAA,IAAA,aAAA,MAAA,WA8CCr3J,KAAK+vE,MAAQ,KA9Cd,CAAA,IAAA,eAAA,MAAA,SAiDkBjxE,EAAau4J,GAC9B,OAAOv4J,EAAMoH,KAAKC,UAAUkxJ,OAlD7B,EAAA,CAA8B,KAA9B,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM47G,IAAe,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAfA,GAAe,QAAfA,GAAe,UAAA,WAFZ,SAAA,IDCT,KAAMD,GAAN,WA6BH,SAAA,EAAoB/pQ,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,EA5Bb,KAAAwlD,SAAuB,GACvB,KAAAquB,SAAyB,GAEzB,KAAAtB,QAAU,IAAI+gI,GAAU,CAC3B9pB,OAAQ,IAAIwqB,GACZ39F,SAAU,IAAI29F,GAAY,iBAMtB,KAAA46D,WAAa,EAKb,KAAAC,QAAU,GAKX,KAAAC,YAAc,EAKd,KAAAC,SAAwC,IAAI,GAA4B,IAG3Eh4Q,KAAKy/D,QACLz/D,KAAKi4Q,gBA/BN,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WAwCKj4Q,KAAK63Q,WAFQ73Q,KAAK+3Q,YAAc,GAGhC/3Q,KAAKk4Q,QAAQl4Q,KAAK+3Q,YAAc,KAzCrC,CAAA,IAAA,WAAA,MAAA,WAiDsB/3Q,KAAK+3Q,YAAc,EAErB,GACf/3Q,KAAKk4Q,QAAQl4Q,KAAK+3Q,YAAc,KApDrC,CAAA,IAAA,UAAA,MAAA,SA2DYI,GACXn4Q,KAAK+3Q,YAAcI,EACnBn4Q,KAAKg4Q,SAAS9vQ,KAAKlI,KAAK88E,SAAS98E,KAAK+3Q,gBA7DvC,CAAA,IAAA,SAAA,MAAA,SAgEWz4J,EAA8Bm1E,GACxC,IAAM33G,EAAW,GACjB98E,KAAKyuD,SAAS92C,SAAQqsB,SAAAA,GAClB,IAAMo0O,GAAgB3jF,GAASzwJ,EAAKu5D,OAAO7uF,cAAc06M,SAAS30B,EAAM/lL,eAClDs1B,EAAKs7E,SAAS5wG,gBAAmB4wG,EAAoB5wG,eACpD0pQ,GACnBt7L,EAASp8E,KAAKsjC,MAItBhkC,KAAK88E,SAAW98E,KAAKq4Q,WAAWv7L,GAChC98E,KAAK63Q,WAAa73Q,KAAK88E,SAAS9hF,OAChCgF,KAAKk4Q,QAAQ,KA5Ed,CAAA,IAAA,WAAA,MAAA,SAkFa1oQ,GACZxP,KAAKyuD,SAAWj/C,EAChBxP,KAAKkX,OAAOlX,KAAKw7E,QAAQ34D,IAAI,YAAYpd,OACzCzF,KAAKw7E,QAAQsiI,WAAW,CACpBx+F,SAAUt/G,KAAKiJ,OAAO4Z,IAAI,mCAAoC,mBAtFnE,CAAA,IAAA,WAAA,MAAA,WA2FC,OAAO7iB,KAAK88E,SAAS9hF,OAASgF,KAAK83Q,UA3FpC,CAAA,IAAA,QAAA,MAAA,WA+FC93Q,KAAKw7E,QAAQotE,SAAS,CAClB6pC,OAAQ,KACRnzE,SAAU,gBAEdt/G,KAAKk4Q,QAAQ,KAnGd,CAAA,IAAA,aAAA,MAAA,SAyGgB1oQ,GAGf,IAFA,IAAM8oQ,EAAU,GAET9oQ,EAAMxU,OAAS,GAClBs9Q,EAAQ53Q,KAAK8O,EAAM5O,OAAO,EAAGZ,KAAK83Q,UAGtC,OAAOQ,IAhHR,CAAA,IAAA,gBAAA,MAAA,WAsHK,IAAA,EAAA,KACJt4Q,KAAKw7E,QAAQq2H,aACRxtM,KAAK+pO,GAAa,KAAMnvC,MACxB1+L,WAAUkD,SAAAA,GAAAA,OAAKzD,EAAKkX,OAAOzT,EAAE67G,SAAU77G,EAAEgvL,eAzH/C,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMugF,IAAqB,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAArBA,GAAqB,QAArBA,GAAqB,YAAA,IDA3B,KAAMD,GAAN,WAGH,SAAA,EACYztD,EACAlB,EACDm0D,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAFC,KAAAjzD,KAAAA,EACA,KAAAlB,SAAAA,EACD,KAAAm0D,UAAAA,EALH,KAAAC,YAA0B,GAO9Bx4Q,KAAKu4Q,UAAUP,SAASz3Q,WAAUiP,SAAAA,GAC9BxP,EAAKy4Q,YAAYjpQ,MATtB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WAaU,OAAA,GAAA,UAAA,OAAA,EAAA,mBAAA,MAAA,SAAA,IAAA,IAAA,EAAA,OAAA,mBAAA,MAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAGFxP,GAFH04Q,EAAW14Q,KAAKokN,SAASvhM,IAAI,yBAA0B,IAA5C7iB,EAAAA,GAERA,KAAKokN,SAASvhM,IAAI,mCAAlB7iB,EAAAA,GAAAA,CAAAA,EAAAA,KAAAA,EAAAA,MACiBxD,OADjBwD,EAAAA,GACQ04Q,EAAAA,EAAAA,KAAAA,EAAsB14Q,KAAK24Q,iBAAlBn8Q,KAAAA,EAAAA,EAAAA,GAAAA,EAAAA,KAApBk8Q,EAAAA,EAAAA,GAAoBl8Q,OAAAA,KAAAA,EAAAA,GAAAA,EAAAA,IAAAA,KAAAA,EAGxBwD,KAAKu4Q,UAAUK,SAASF,GAAxB14Q,KAAAA,EAAAA,IAAAA,MAAAA,OAAAA,EAAAA,UAAAA,EAAAA,YApBD,CAAA,IAAA,cAAA,MAAA,WA0BwC6I,IAAAA,EAAAA,KAAxBgwQ,EAAwBhwQ,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAAIA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EACvC,OAAO,IAAI0G,SAAQwJ,SAAAA,GACf,IAAO8/P,IAAWA,EAAM79Q,OAAQ,OAAO+d,IAIvC,KADA8/P,EAAQA,EAAM3hQ,QAAO5T,SAAAA,GAAAA,OAAStD,EAAKw4Q,YAAYpnP,MAAK4S,SAAAA,GAAAA,OAAQA,EAAKu5D,SAAWj6F,EAAKi6F,cACpEviG,OAAQ,OAAO+d,IAC5B/Y,EAAKw4Q,YAAcx4Q,EAAKw4Q,YAAYh8Q,OAAOq8Q,GAE3C,IAAMnkQ,EAASmkQ,EAAM3hQ,QAAO8sB,SAAAA,GAAAA,MAAsB,WAAdA,EAAK74B,QACnCmJ,EAASukQ,EAAM3hQ,QAAO8sB,SAAAA,GAAAA,MAAsB,WAAdA,EAAK74B,QAEnClC,EAAS,CACXquD,OAAQv+C,EACRlQ,QAASA,EACTgG,SAAAA,GAGA6F,EAAO1Z,SACPiO,EAAe,OAAI,CAAC0I,SAAU+C,EAAOK,KAAIivB,SAAAA,GAAAA,OAAQA,EAAKu5D,YAGtDjpF,EAAOtZ,SACPgF,EAAK84Q,gBAAgBxkQ,EAAQzL,GAC7BI,EAAe,OAAI,CAAC0I,SAAU2C,EAAOS,KAAIivB,SAAAA,GAAAA,OAAQA,EAAKu5D,YAG1D,GAAA,KAAat0F,QArDlB,CAAA,IAAA,kBAAA,MAAA,WA4D6CJ,IAAAA,EAAAA,KAAxB2G,EAAwB3G,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAJ,GAAIA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAC5C,GAAO2G,EAAMxU,OAAb,CACA,IAAIwR,EAAQ,GAEZgD,EAAMmI,SAAQqsB,SAAAA,GACV,IAAMllC,EAAMkB,EAAKokN,SAAS+F,YAAY,SAAWnmL,EAAK+0O,UAAAA,GACtDvsQ,GAAS,6BAA+Bw3B,EAAKu5D,OAAS,eAAiBz+F,EAAM,WAGjF,IAAM09O,EAAU/+O,SAAS+M,cAAc,SACvCgyO,EAAQ5jG,UAAYpsI,GACnB3D,GAAW3L,QAAQO,SAASqhH,KAAKnyG,YAAY6vO,MAvE/C,CAAA,IAAA,iBAAA,MAAA,WA8EC,IAAMtgP,EAAM8D,KAAKokN,SAASvhM,IAAI,2BAC9B,OAAO7iB,KAAKslN,KAAK0zD,aAAa,uEAAyE98Q,GAClGmI,KAAK0Q,GAAInL,SAAAA,GAAAA,OACCA,EAAgB,MAAEmL,KAAIivB,SAAAA,GAAAA,MAClB,CAACu5D,OAAQv5D,EAAKu5D,OAAQ+hB,SAAUt7E,EAAKs7E,SAAUn0G,KAAM,iBAEhEgO,gBApFT,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM45P,IAAuB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAvBA,GAAuB,QAAvBA,GAAuB,YAAA,IDI7B,KAAMD,GAAN,WAGH,SAAA,EACY52P,EACAkiC,EACAj9B,EACAlY,EACAgwQ,GAAAA,gBAAAA,KAAAA,GAJA,KAAA/8P,OAAAA,EACA,KAAAkiC,aAAAA,EACA,KAAAj9B,QAAAA,EACA,KAAAlY,OAAAA,EACA,KAAAgwQ,eAAAA,EAPK,KAAAtoK,SAAmB,IADjC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,WAWoD,IAA5C78F,EAA4C,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAArC,KAAMolQ,EAA+B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACnDplQ,EAAOA,GAAQ9T,KAAKiJ,OAAO4Z,IAAI,gCAE/B,IAAMnN,EAAU85L,GAAqB,OAAD,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,GAC7BxvM,KAAKo+C,aAAay6J,KAAKpzM,OACvBzF,KAAKiJ,OAAO4Z,IAAI,8BAChBq2P,GAAc,CACjBt5Q,KAAM8vM,GAAY57L,KAAKlU,QAGrBu5Q,EAAQ,IAAIp+P,GAAA,OAAOglF,MAAMjsF,EAAM4B,GACrC1V,KAAKkc,OAAOnB,SAAShT,IAAIoxQ,GACzBn5Q,KAAKo5Q,iBAAiBD,GAEtBn5Q,KAAKkc,OAAOnB,SAASm9C,gBAAgBihN,GACrCn5Q,KAAKkc,OAAO6kC,SAEZo4N,EAAMr0K,eACNq0K,EAAMl1K,cA7BP,CAAA,IAAA,mBAAA,MAAA,SAgCsBnwF,GAAAA,IAAAA,EAAAA,KACfoyD,EAAclmE,KAAKkc,OAAOnB,SAASiiC,WACnCmpB,EAAenmE,KAAKkc,OAAOnB,SAASkiC,YAGpC0zD,EAAW3tF,KAAKxI,IAAIxa,KAAKkc,OAAOnB,SAASiiC,WAAYh9C,KAAK2wG,UAEhE78F,EAAKg7D,aAAa9rD,KAAKvI,IAAIyrD,EAAc,EAAGyqC,IAGxC78F,EAAK+6D,kBAAoB1I,GACzBryD,EAAKk7D,cAAc7I,EAAeryD,EAAK+6D,kBAAoB,IAG/D/6D,EAAK63D,iBAGL3rE,KAAKkc,OAAOnB,SAASwG,WAAW,UAAU5J,SAAQ3R,SAAAA,GAC9C,GAAIA,IAAQ8N,GACR9N,EAAI2+C,qBAAqB7wC,GAAO,CAChC,IAAM4F,EAAU1T,EAAImf,IAAMrR,EAAKqR,IAAOnf,EAAI6oE,kBACtC3d,EAASp9C,EAAKqR,IAAMzL,EAGpBw3C,EAASlxD,EAAKkc,OAAO22G,MAAMpkE,SAASlyC,OAASvW,EAAI6oE,oBACjD3d,EAAS,GAGbp9C,EAAKkO,IAAI,MAAOkvC,GAChBp9C,EAAKyqC,kBA7Dd,CAAA,IAAA,eAAA,MAAA,WAqEI,IAAA,EAAA,KACH,OAAOv+C,KAAKmhB,QAAQ6pM,SACf9zM,QAAOlR,SAAAA,GAAAA,MAAoB,WAAbA,EAAImF,QAClB4J,KAAK/O,SAAAA,GAAAA,OACKA,EAAIypM,YACPzvM,EAAKi5Q,eAAexqN,SAASr9B,MAAKnnB,SAAAA,GAAAA,OAAKA,EAAEszF,SAAWv3F,EAAIgmB,iBAC7D9U,QAAO8sB,SAAAA,GAAAA,OACCA,GAAsB,UAAdA,EAAK74B,YA5E7B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM2nQ,IAAe,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAfA,GAAe,QAAfA,GAAe,YAAA,IDarB,KAAMD,GAAN,WACH,SAAA,EACW32P,EACCkiC,EACAj9B,EACAk4P,EACAC,EACAC,EACA1pJ,EACAo6E,EACAma,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GARD,KAAAloM,OAAAA,EACC,KAAAkiC,aAAAA,EACA,KAAAj9B,QAAAA,EACA,KAAAk4P,UAAAA,EACA,KAAAC,YAAAA,EACA,KAAAC,SAAAA,EACA,KAAA1pJ,MAAAA,EACA,KAAAo6E,SAAAA,EACA,KAAAma,SAAAA,EAERpkN,KAAKkc,OAAO22G,MAAM4yF,qBAAqBphN,KACnC,IAAOtK,SAAAA,GAAAA,OAAiB,cAAXA,EAAE6F,MAAmC,UAAX7F,EAAE6F,QAAAA,IAAqB7F,EAAEw8B,YAClEh2B,WAAWxG,SAAAA,GACTiG,EAAKw5Q,gBAfV,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WAoBC,GAAKx5Q,KAAKy5Q,UACV,OAAOz5Q,KAAKyP,KAAKzP,KAAK6vH,MAAM6pJ,eAAe,GAAax2Q,KAAK,gBArB9D,CAAA,IAAA,OAAA,MAAA,WAyBC,GAAKlD,KAAK25Q,UACV,OAAO35Q,KAAKyP,KAAKzP,KAAK6vH,MAAM6pJ,eAAe,GAAax2Q,KAAK,YA1B9D,CAAA,IAAA,UAAA,MAAA,WA8BD,OAAOlD,KAAK6vH,MAAM6pJ,eAAe,GAAaD,WA9B7C,CAAA,IAAA,UAAA,MAAA,WAkCD,OAAOz5Q,KAAK6vH,MAAM6pJ,eAAe,GAAaC,WAlC7C,CAAA,IAAA,SAAA,MAAA,WA0CC,OAAO35Q,KAAKyP,KAAKzP,KAAK6vH,MAAM6pJ,eAAe,GAAax2Q,KAAK,eA1C9D,CAAA,IAAA,iBAAA,MAAA,WAiDC,IAAM2e,EAAU7hB,KAAK6vH,MAAM6pJ,eAAe,GAAax2Q,KAAK,YAC5DlD,KAAK6vH,MAAMi+D,SAAS,IAAIw4B,GAAmBtmN,KAAK45Q,kBAAkB/3P,EAAQjiB,KAAMiiB,EAAQwmK,UAlDzF,CAAA,IAAA,MAAA,MAAA,SAqDQhxB,EAAsCn1F,GAC7CliE,KAAK6vH,MAAMi+D,SAAS,IAAIu4B,GAAermN,KAAK45Q,kBAAkBviH,EAAOz3J,KAAMy3J,EAAOgxB,KAAMnmH,OAtDzF,CAAA,IAAA,cAAA,MAAA,SAyDgBA,GACf,IAAMr/D,GAAW7C,KAAK6vH,MAAM6pJ,eAAe,GAAa1wF,OAAOhuL,OAG/D,OADAgF,KAAK+H,IADMlF,EAAU6jN,GAAaG,QAAUH,GAAaI,aAC1B,iBAAT5kJ,EAAoBh8D,KAAKsP,MAAM0sD,GAAQA,GACtDliE,KAAK65Q,WA7Db,CAAA,IAAA,wBAAA,MAAA,WAgEkD,IAAA,EAAA,KAAxBC,EAAwB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACjDA,EAAAA,GAAAA,OAAAA,oBAAkB/zQ,OAAOP,KAAKwhN,KAA9B8yD,CAAmD,cAAe,OAAQ,cAAe,OAAQ,cAAjGA,oBAAkHA,IAClH,IAAM59P,EAASlc,KAAKkc,OAAOnB,SAASqqC,OAAO00N,GAc3C,OAbA59P,EAAOiF,QAAQxJ,SAAQ3R,SAAAA,GACF,UAAbA,EAAImF,MAAoBnL,EAAKokN,SAASvhM,IAAI,uBAC1C7c,EAAIugB,YAAc,aAIL,WAAbvgB,EAAImF,OACJnF,EAAIkqD,YAAAA,EACJlqD,EAAIi+D,eAAAA,EACJj+D,EAAIk+D,eAAAA,EACJl+D,EAAIm+D,gBAAAA,MAGL,CACHjoD,OAAQA,EACR69P,OAAQ,CAAC13J,MAAOriH,KAAKq5Q,UAAUW,YAAaxqQ,MAAOxP,KAAKu5Q,SAASU,gBACjE/zM,YAAalmE,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MACxCypD,aAAcnmE,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,UApF9C,CAAA,IAAA,QAAA,MAAA,WAyFCvc,KAAK6vH,MAAMi+D,SAAS,IAAIy4B,MAzFzB,CAAA,IAAA,aAAA,MAAA,YA6FuBvmN,KAAK6vH,MAAM6pJ,eAAe,GAAa1wF,OAAOhuL,QAEhEgF,KAAK+H,IAAI2+M,GAAaG,WA/F3B,CAAA,IAAA,OAAA,MAAA,SAmGS3jN,GAAAA,IAAAA,EAAAA,KACT,OAAO,IAAIqM,SAAQwJ,SAAAA,GACf/Y,EAAK6vH,MAAMi+D,SAAS,IAAIs4B,GAAkBljN,EAAKuO,KAC/CvO,EAAK62Q,OAAS72Q,EAAK62Q,QAAU7zD,GAC7BlmN,EAAKs5Q,YAAYb,YAAYv1Q,EAAK62Q,OAAOvqQ,OAAOE,MAAK,WACjD1P,EAAKkc,OAAOnB,SAASonD,aAAaj/D,EAAKgZ,QAAUhZ,EAAK2vH,OAAO,WACzD7yH,EAAKkc,OAAOuY,KAAKzS,IAAI,GAGjB9e,EAAKgjE,aAAehjE,EAAKijE,cACzBnmE,EAAKkc,OAAO6rM,OAAO7kN,EAAKgjE,YAAahjE,EAAKijE,cAI1CjjE,EAAK62Q,OAAO13J,MACZriH,EAAKq5Q,UAAUtxQ,IAAI7E,EAAK62Q,OAAO13J,MAAMziH,MAErCI,EAAKq5Q,UAAUtjQ,SAInB/V,EAAKkc,OAAO6kC,SACZ/gD,EAAKkc,OAAOnB,SAAS8gC,aACrB77C,EAAKkc,OAAOuY,KAAKs0L,cAEjB/oN,EAAKmhB,QAAQkoM,cACbrpN,EAAK6vH,MAAMi+D,SAAS,IAAIq4B,IACxBptM,OACD/S,SAAAA,GAEKA,EAAIzH,eAAe,iBAClByH,EAAc81E,0BAlI/B,CAAA,IAAA,cAAA,MAAA,WA0IC,OAAO97E,KAAK6vH,MAAM6pJ,eAAe,GAAa1wF,SA1I/C,CAAA,IAAA,oBAAA,MAAA,SA6IuBppL,GAAwCizH,IAA1Bw1D,EAA0Bx1D,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAN,KAAMA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAG9D,OAFOA,IAAOA,EAAQ7yH,KAAKk6Q,yBAEpBn0Q,OAAOkjH,OAAO4J,EAAO,CACxBjzH,KAAMA,EACN6R,GAAIs+L,GAAa,IACjB1nB,KAAMA,EACN5zJ,KAAMz0B,KAAKkc,OAAOuY,KAAK5R,MACvBs3P,eAAgBn6Q,KAAKo+C,aAAa+qK,cArJvC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM0pD,IAAkB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAlBA,GAAkB,QAAlBA,GAAkB,YAAA,ISjBT,GAAA,WAAA,SAAA,IAAA,gBAAA,KAAA,GAuBWziN,OAvBX,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAIPh0C,GAAAA,IAAAA,EAAAA,KACPpc,KAAKiqM,SAAS5lM,KACVw9L,GAAmBtV,IACnB,IAAOn8H,SAAAA,GAAAA,OAAUA,EAAOg8H,QAAUpsL,EAAKo6Q,aACzC75Q,WAAU6vD,SAAAA,GACRpwD,EAAKq6Q,aAAaj+P,EAAKg0C,MAG3BpwD,KAAKiqM,SAAS5lM,KACVw9L,GAAmBpV,IACnB,IAAOr8H,SAAAA,GAAAA,OAAUA,EAAOg8H,QAAUpsL,EAAKo6Q,aACzC75Q,WAAU6vD,SAAAA,GACRpwD,EAAKs6Q,cAAcl+P,EAAKg0C,MAI5BpwD,KAAKiqM,SAAS5lM,KACVw9L,GAAmBvV,KACrB/rL,WAAU6vD,SAAAA,GACRpwD,EAAKu6Q,WAAWn+P,EAAKg0C,UAAAA,EAvBX,GAuBWA,KDTpBkjN,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAaT,SAAA,EACczjJ,EACArO,EACApjE,EACA6rJ,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV7vE,EAAAA,EAAAA,KAAAA,OALUvK,MAAAA,EACA,EAAArO,QAAAA,EACA,EAAApjE,aAAAA,EACA,EAAA6rJ,SAAAA,EAhBJ,EAAAmwE,SAAW1yF,GAAW8yF,gBAgBlBvwE,EAjBLqpE,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,0BAAAA,MAAAA,SAuBel3P,EAAsCg0C,GAC1Dh0C,EAAI+qL,WAAW,CAACszE,YAAarqN,EAAOg8H,UAxB/BknF,CAAAA,IAAAA,cAAAA,MAAAA,SA4BGl3P,GACRA,EAAI+qL,WAAW,CAAC3iI,OAAAA,MA7BX8uM,CAAAA,IAAAA,gBAAAA,MAAAA,SAgCKl3P,GACNA,EAAIo4K,WAAWimF,YACfr+P,EAAI+qL,WAAW,CAACszE,YAAa,QAE7Bz6Q,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACxBrsL,KAAKo+C,aAAa4nK,YAGlB5pM,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQq4J,SAGjBz9P,EAAI+qL,WAAW,CAAC3iI,OAAAA,MA5CX8uM,CAAAA,IAAAA,eAAAA,MAAAA,SA+CIl3P,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAaK,cAElC3qM,EAAI+qL,WAAW,CAAC3iI,OAAAA,EAAci2M,YAAa,OAC3Cz6Q,KAAKo+C,aAAa4nK,aArDbstD,CAAAA,IAAAA,aAAAA,MAAAA,SAwDEl3P,GACPA,EAAI+pL,SAAS,CACT3hI,OAAAA,EACAi2M,YAAa,UA3DZnH,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIIzgJ,GACT,OAAOA,EAAMruD,QALR8uM,CAAAA,IAAAA,cAAAA,MAAAA,SASUzgJ,GACf,OAAOA,EAAM4nJ,gBAVRnH,EAAAA,CAAqB,KAArBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAY,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAZA,GAAY,QAAZA,GAAY,YAuBrB,GAAA,CADC,GAAOhkE,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAsEA,KAAtE,GAAA,yBAAA,IAAA,GAAA,UAAA,0BAAA,MAKA,GAAA,CADC,GAAOC,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,cAAA,MAxBA,GAAA,CADCJ,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,cAAA,MATSmkE,GAAY,GAAA,CARxB/kE,GAAyB,CACtB3uM,KAAM8nL,GAAW8yF,gBACjB5nJ,SAAU,CACNpuD,OAAAA,EACAi2M,YAAa,SAIRnH,KEvBN,GAAA,WAAA,IAAMoH,EAET,SAAA,EAAmBxjQ,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,GAFhB,OACa,EAAA/L,KAAO,gCAAP,EADb,GAKA,GAAA,WAAA,IAAMwvQ,EAET,SAAA,EAAmBzjQ,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,GAFhB,OACa,EAAA/L,KAAO,gCAAP,EADb,GAKA,GAAA,WAAA,IAAMyvQ,EAET,SAAA,EAAmB1jQ,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,GAFhB,OACa,EAAA/L,KAAO,uCAAP,EADb,GAKA,GAAA,WAAA,IAAM0vQ,EAET,SAAA,EAAmBr/L,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,QAAAA,GAFhB,OACa,EAAArwE,KAAO,sCAAP,EADb,GCJM2vQ,GAAwB,CACjC,CAACl7Q,KAAM,aACP,CAACA,KAAM,cACP,CACIA,KAAM,UACNm7Q,KAAM,YACNhwP,OAAQ,CAAC,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,IAEzC,CAACnrB,KAAM,UACP,CAACA,KAAM,WACP,CAACA,KAAM,YACP,CAACA,KAAM,cACP,CAACA,KAAM,eACP,CAACA,KAAM,WACP,CAACA,KAAM,SACP,CACIA,KAAM,cACN8V,QAAS,CACL8yC,SAAU,CAACr9C,KAAM,SAAU0W,QAAS,GAAKrH,IAAK,EAAGC,IAAK,EAAG80K,KAAM,KAC/Dt0J,MAAO,CAACpZ,QAAS,OAAQ1W,KAAM,iBAGvC,CACIvL,KAAM,aACN8V,QAAS,CACLoyE,WAAY,CAAC38E,KAAM,SAAU0W,QAAS,GAAKrH,KAAM,EAAGC,IAAK,EAAG80K,KAAM,MAG1E,CACI3vL,KAAM,QACN8V,QAAS,CACLq+B,IAAK,CAAC5oC,KAAM,SAAU0W,QAAS,GAAKrH,IAAK,GAAKC,IAAK,IAAK80K,KAAM,SAC9Dz/I,MAAO,CAAC3kC,KAAM,SAAU0W,QAAS,GAAKrH,IAAK,GAAKC,IAAK,IAAK80K,KAAM,SAChEviJ,KAAM,CAAC7hC,KAAM,SAAU0W,QAAS,GAAKrH,IAAK,GAAKC,IAAK,IAAK80K,KAAM,UAEnE/wL,MAAO,SAAC0Y,EAAqBtX,EAAc6F,GACvCyR,EAAc,MAAI,CAACA,EAAY,IAAGA,EAAc,MAAGA,EAAa,QAGxE,CACItX,KAAM,QACN8V,QAAS,CACL40E,MAAO,CAACn/E,KAAM,SAAU0W,QAAS,GAAIpH,IAAK,OAGlD,CACI7a,KAAM,WACN8V,QAAS,CACLi1E,UAAW,CAACx/E,KAAM,SAAUqP,IAAK,EAAGC,IAAK,GAAIoH,QAAS,KAG9D,CACIjiB,KAAM,OACNm7Q,KAAM,YACNhwP,OAAQ,CAAC,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,EAAG,EAAI,IAEzE,CACInrB,KAAM,SACNm7Q,KAAM,YACNhwP,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,IAAM,GAAI,GAAI,GAAI,IAE3C,CACInrB,KAAM,aACN8V,QAAS,CACLq0E,KAAM,CAACloE,QAAS,MAAO1W,KAAM,SAAU6vQ,UAAW,CAAC,MAAO,WAAY,WAAY,OAAQ,SAAU,UAAW,WAC/GpvO,MAAO,CAACzgC,KAAM,SAAU0W,QAAS,GAAKrH,IAAK,GAAKC,IAAK,EAAG80K,KAAM,IAC9Dt0J,MAAO,CAAC9vB,KAAM,cAAe0W,QAAS,cC7E3C,SAASo5P,GAAQt+Q,GACpB,OAAOA,EACCA,EAAOhB,OAAO,GAAGuqB,cAAgBvpB,EAAOW,MAAM,GADhC,GCWnB,ICRM49Q,GCqBAC,GFbAC,GGoBAC,GC1BAC,GCGAC,GCMAC,GCPAC,GCCAC,GCYAC,GCXAC,GCcAC,GCFAC,GCEAC,GCAAC,GCfAC,GCgBAC,GCHAC,GCAAC,GC0DAC,GCzEAC,GCgBAC,GrBXN,KAAMnB,GAAN,WAGH,SAAA,EACYl/P,EACA2zG,EACAo6E,GAAAA,gBAAAA,KAAAA,GAFA,KAAA/tL,OAAAA,EACA,KAAA2zG,MAAAA,EACA,KAAAo6E,SAAAA,EALJ,KAAA6wE,YAAcA,GAOlB96Q,KAAKw8Q,kBARN,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAWUC,GACT,IAAMvlQ,EAASlX,KAAK6qN,UAAU4xD,GAC9B,GAAIz8Q,KAAK08Q,QAAQxlQ,EAAOtX,MACpB,OAAOI,KAAK+V,OAAOmB,EAAOtX,MAG9BI,KAAK6vH,MAAMi+D,SAAS,IAAI4sF,GAAYxjQ,EAAOtX,OAC3C,IAAM+8Q,EAAY38Q,KAAK6G,OAAOqQ,GAE9BlX,KAAK48Q,YAAYjlQ,SAAQ4kC,SAAAA,GACrBA,EAAMi/B,QAAQ96E,KAAKi8Q,GACnBpgO,EAAMu/B,kBAGV97E,KAAKkc,OAAO6kC,WAzBb,CAAA,IAAA,SAAA,MAAA,SA4BW07N,GAAAA,IAAAA,EAAAA,KACJvlQ,EAASlX,KAAK6qN,UAAU4xD,GAE9Bz8Q,KAAK6vH,MAAMi+D,SAAS,IAAI6sF,GAAazjQ,EAAOtX,OAC5CI,KAAK48Q,YAAYjlQ,SAAQ4kC,SAAAA,GACrB,IAAM5hD,EAAIqF,EAAK68Q,gBAAgB3lQ,EAAOtX,KAAM28C,EAAMi/B,SAClDj/B,EAAMi/B,QAAQ56E,OAAOjG,EAAG,GACxB4hD,EAAMu/B,kBAGV97E,KAAKkc,OAAO6kC,WAtCb,CAAA,IAAA,SAAA,MAAA,WA0CC,OAAO/gD,KAAK86Q,cA1Cb,CAAA,IAAA,YAAA,MAAA,SA6Ccl7Q,GACb,OAAOI,KAAK86Q,YAAY1pP,MAAKla,SAAAA,GAAAA,OAAUA,EAAOtX,OAASA,OA9CxD,CAAA,IAAA,UAAA,MAAA,SAiDYA,GACX,IAAMkwM,EAAY9vM,KAAKkc,OAAO4sM,eAC9B,GAAOhZ,EACP,OAAO9vM,KAAK68Q,gBAAgBj9Q,EAAMkwM,EAAUt0H,UAAY,IApDzD,CAAA,IAAA,aAAA,MAAA,SAuDe57E,GACd,QAASI,KAAK6qN,UAAUjrN,GAAM8V,UAxD/B,CAAA,IAAA,kBAAA,MAAA,SA2DqB9V,EAAc47E,GAAAA,IAAAA,EAAAA,KAClC,GAAOA,EAAQxgF,OAAf,CAEA,IAAMkc,EAASlX,KAAK6qN,UAAUjrN,GAE9B,OAAO47E,EAAQirI,WAAUnjN,SAAAA,GACrB,IAAM6H,EAAO7H,EAAK6H,KAAKuD,cAGvB,OAAIvD,IAASvL,EAAK8O,eAGF,cAATvD,GAAwBnL,EAAK88Q,eAAe5lQ,EAAO6T,OAAQznB,EAAa,cAvEpF,CAAA,IAAA,iBAAA,MAAA,SA2EoBy5Q,EAAmBC,GACtC,IAAOD,IAAaC,GAAWD,EAAQ/hR,SAAWgiR,EAAQhiR,OAAQ,OAAA,EAElE,IAAK,IAAIL,EAAIoiR,EAAQ/hR,OAAQL,KACzB,GAAIoiR,EAAQpiR,KAAOqiR,EAAQriR,GAAI,OAAA,EAGnC,OAAA,IAlFD,CAAA,IAAA,aAAA,MAAA,SAqFe8hR,EAAoBQ,EAAoBC,GACtD,IAAMhmQ,EAASlX,KAAK6qN,UAAU4xD,GAE9Bz8Q,KAAK48Q,YAAYjlQ,SAAQ4kC,SAAAA,GACrB,IAAM4gO,EAAe5gO,EAAMi/B,QAAQpqD,MAAK9tB,SAAAA,GAAAA,OAC7BA,EAAK6H,KAAKuD,gBAAkBwI,EAAOtX,KAAK8O,iBAGnDyuQ,EAAaF,GAAcC,EAGvBhmQ,EAAO1Y,OAAO0Y,EAAO1Y,MAAM2+Q,EAAcF,EAAYC,GAEzD3gO,EAAMu/B,kBAGV97E,KAAKkc,OAAO6kC,WArGb,CAAA,IAAA,SAAA,MAAA,SAwGW7pC,GACV,IAAMkmQ,EAAgBlmQ,EAAOkmQ,eAAiB,GAC9C,GAAIlmQ,EAAO6jQ,KAEP,OADAqC,EAAcryP,OAAS7T,EAAO6T,OACvB,IAAIhQ,GAAA,OAAOqrB,MAAMo1C,QAAQy/L,GAAQ/jQ,EAAO6jQ,QAAOqC,GAEtD,IAAK,IAAMlhR,KAAOgb,EAAOxB,QACrB0nQ,EAAclhR,GAAOgb,EAAOxB,QAAQxZ,GAAK2lB,QAE7C,OAAO,IAAI9G,GAAA,OAAOqrB,MAAMo1C,QAAQy/L,GAAQ/jQ,EAAOtX,QAAOw9Q,KAjH3D,CAAA,IAAA,YAAA,MAAA,SAqHcx9Q,EAAcsX,EAAgBmmQ,EAA0BD,GACrEriQ,GAAA,OAAOqrB,MAAMo1C,QAAQy/L,GAAQr7Q,IAASmb,GAAA,OAAOkF,KAAKkT,YAAYpY,GAAA,OAAOqrB,MAAMo1C,QAAQmI,WAAYzsE,GAC/F6D,GAAA,OAAOqrB,MAAMo1C,QAAQy/L,GAAQr7Q,IAAOynB,WAAatM,GAAA,OAAOqrB,MAAMo1C,QAAQmI,WAAuB,WAC7Fm3L,GAAYp6Q,KAAK,CAACd,KAAAA,EAAM8V,QAAS2nQ,EAAiBD,cAAAA,MAxHnD,CAAA,IAAA,YAAA,MAAA,WA4HC,OAAOp9Q,KAAKkc,OAAOnB,SAASwG,WAAWmuL,GAAYnzJ,MAAM38C,QA5H1D,CAAA,IAAA,kBAAA,MAAA,WA+HK,IAAA,EAAA,KACJI,KAAKiqM,SAAS5lM,KACVw9L,GAAmBskB,KACrB5lN,WAAU,WACR,IAAMs4Q,EAAQ74Q,EAAKgrN,SACd9zM,QAAOA,SAAAA,GAAAA,OAAUlX,EAAK08Q,QAAQxlQ,EAAOtX,SACrCmV,KAAImC,SAAAA,GAAAA,OAAUA,EAAOtX,QAC1BI,EAAK6vH,MAAMi+D,SAAS,IAAI+sF,GAAkBhC,WAtI/C,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMuC,IAAiB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAjBA,GAAiB,QAAjBA,GAAiB,YAAA,IAAvB,KEaMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAkBT,SAAA,EACctrJ,EACArO,EACAyoF,EACAqzE,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEVljJ,EAAAA,EAAAA,KAAAA,OALUvK,MAAAA,EACA,EAAArO,QAAAA,EACA,EAAAyoF,SAAAA,EACA,EAAAqzE,WAAAA,EArBJ,EAAAlD,SAAW1yF,GAAWuB,OAqBlBq0F,EAtBLnC,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,eAAAA,MAAAA,SA4BI/+P,EAAqCg0C,GAC9Ch0C,EAAI+qL,WAAW,CACX3iI,OAAAA,EACA+4M,cAAAA,GAAAA,OAAAA,oBAAmBnhQ,EAAIo4K,WAAW+oF,eAAlCA,CAAiDntN,EAAOl5C,aA/BvDikQ,CAAAA,IAAAA,eAAAA,MAAAA,SAoCI/+P,EAAqCg0C,GAC9C,IAAMmtN,EAAgBnhQ,EAAIo4K,WAAW+oF,cAAcrmQ,QAAOjN,SAAAA,GAAAA,OAAKA,IAAMmmD,EAAOl5C,UAC5EkF,EAAI+qL,WAAW,CAAC3iI,OAAAA,EAAa+4M,cAAAA,MAtCxBpC,CAAAA,IAAAA,qBAAAA,MAAAA,SA0CU/+P,EAAqCg0C,GACpDh0C,EAAI+qL,WAAW,CAACq2E,eAAgBptN,EAAOl5C,WA3ClCikQ,CAAAA,IAAAA,oBAAAA,MAAAA,SA+CS/+P,EA/CT++P,GA+C+C3/L,IAAAA,EAAAA,EAAD,QACnDp/D,EAAI+qL,WAAW,CAACo2E,cAAe/hM,MAhD1B2/L,CAAAA,IAAAA,eAAAA,MAAAA,SAmDI/+P,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAaz9B,QAElC7sK,EAAI+qL,WAAW,CAAC3iI,OAAAA,EAAcg5M,eAAgB,SAxDzCrC,CAAAA,IAAAA,gBAAAA,MAAAA,SA2DK/+P,GAAAA,IAAAA,EAAAA,KACJohQ,EAAiBphQ,EAAIo4K,WAAWgpF,eAItC,GAAIA,EAAgB,CAChB,IAAMtmQ,EAASlX,KAAKs9Q,WAAWzyD,UAAU2yD,GACzCz3Q,OAAOP,KAAK0R,EAAOxB,SAASiC,SAAQslQ,SAAAA,GAChCj9Q,EAAKs9Q,WAAWG,WAAWD,EAAgBP,EAAY/lQ,EAAOxB,QAAQunQ,GAAYp7P,YAEtFzF,EAAI+qL,WAAW,CAACq2E,eAAgB,YAIhCx9Q,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQq4J,SAEjBz9P,EAAI+qL,WAAW,CAAC3iI,OAAAA,EAAcg5M,eAAgB,SA7E7CrC,CAAAA,IAAAA,aAAAA,MAAAA,SAiFE/+P,GACPA,EAAI+pL,SAAS,CACT3hI,OAAAA,EACA+4M,cAAe,GACfC,eAAgB,UArFfrC,CAAAA,CAAAA,IAAAA,gBAAAA,MAAAA,SAIYtoJ,GACjB,OAAOA,EAAM0qJ,gBALRpC,CAAAA,IAAAA,iBAAAA,MAAAA,SASatoJ,GAClB,OAAOA,EAAM2qJ,iBAVRrC,CAAAA,IAAAA,QAAAA,MAAAA,SAcItoJ,GACT,OAAOA,EAAMruD,UAfR22M,EAAAA,CAAoB,KAApBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAW,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAXA,GAAW,QAAXA,GAAW,YA4BpB,GAAA,CADC,GAAOT,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAA0DA,KAA1D,GAAA,yBAAA,IAAA,GAAA,UAAA,eAAA,MAQA,GAAA,CADC,GAAOC,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAA0DA,KAA1D,GAAA,yBAAA,IAAA,GAAA,UAAA,eAAA,MAMA,GAAA,CADC,GAAOC,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAgEA,KAAhE,GAAA,yBAAA,IAAA,GAAA,UAAA,qBAAA,MAKA,GAAA,CADC,GAAOC,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAkEA,KAAlE,GAAA,yBAAA,IAAA,GAAA,UAAA,oBAAA,MA3CA,GAAA,CADC1rE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,gBAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,iBAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAdSgsE,GAAW,GAAA,CATvB5sE,GAAwB,CACrB3uM,KAAM,SACNgzH,SAAU,CACNpuD,OAAAA,EACA+4M,cAAe,GACfC,eAAgB,SAIXrC,KDrBN,KAAMD,GAAN,WAEH,SAAA,EAAoBh/P,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,EAFjB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAOUQ,EAAeH,GAAuC,IAK3DmhQ,EAAYC,EALwBC,EAAuB,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACzDC,EAAgB76P,KAAK2L,KAAK3uB,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,OACvDohQ,EAAgB96P,KAAK2L,KAAK3uB,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,QACrDysM,EAAgBhmM,KAAK2L,KAAKjS,GAC1BqhQ,EAAgB/6P,KAAK2L,KAAKpS,GAG1BqhQ,GACAF,EAAgBhhQ,EAAQ,IACxBihQ,EAAgBphQ,EAAS,MAEzBmhQ,EAAgBhhQ,EAAQ1c,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MACnDihQ,EAAgBphQ,EAASvc,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,QAGpDshQ,IAAiB70D,GAAY80D,IAAkBC,GAEnD/9Q,KAAK+nN,OAAO21D,EAAYC,KAxBzB,CAAA,IAAA,SAAA,MAAA,SA8BYD,EAAoBC,GAC/B39Q,KAAKkc,OAAOuY,KAAKzS,IAAI,KAAA,GAErB,IAAM+7P,EAAY/6P,KAAKooB,MAAMprC,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,OAASohQ,GAC7D30D,EAAYhmM,KAAKooB,MAAMprC,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAAQghQ,GAE9D19Q,KAAKkc,OAAOnB,SAASqiC,UAAU2gO,GAC/B/9Q,KAAKkc,OAAOnB,SAASmiC,SAAS8rK,GAC9BhpN,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAAQssM,EACnChpN,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,OAASwhQ,EAEpC/9Q,KAAKkc,OAAOnB,SAASwG,aAAa5J,SAAQL,SAAAA,GACtC,IAMM0mQ,EALS1mQ,EAAO2S,OAKM0zP,EACtBM,EALO3mQ,EAAO4N,KAKIw4P,EAClBQ,EALM5mQ,EAAO6N,IAKGw4P,EAEtBrmQ,EAAO0S,OAVQ1S,EAAO0S,OAKM0zP,EAM5BpmQ,EAAO2S,OAAS+zP,EAChB1mQ,EAAO4N,KAAO+4P,EACd3mQ,EAAO6N,IAAM+4P,EAEb5mQ,EAAOinC,eAGXv+C,KAAKkc,OAAOuY,KAAKs0L,cACjB/oN,KAAKkc,OAAO6kC,aA7Db,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMm6N,IAAiB,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAjBA,GAAiB,QAAjBA,GAAiB,YAAA,IqBJvB,GAAA,WAAA,IAAMiD,EAET,SAAA,EAAmB9mH,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,GAFhB,OACa,EAAAlsJ,KAAO,wCAAP,EADb,GnBmBDizQ,GAA0C,CAC5C55M,OAAAA,EACA65M,SAAAA,EACA3hQ,MAAO,KACPH,OAAQ,KACR+hQ,gBAAAA,GALJ,KAaajD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQT,SAAA,EACcxrJ,EACArO,EACAyoF,EACAs0E,EACArH,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV98I,EAAAA,EAAAA,KAAAA,OANUvK,MAAAA,EACA,EAAArO,QAAAA,EACA,EAAAyoF,SAAAA,EACA,EAAAs0E,WAAAA,EACA,EAAArH,MAAAA,EAZJ,EAAAkD,SAAW1yF,GAAWwB,OAYlBguF,EAbLmE,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,sBAAAA,MAAAA,SAmBWj/P,EAAqCg0C,GACrDh0C,EAAI+qL,WAAW,OAAD,OAAA,OAAA,OAAA,GAAK/2I,EAAOinG,QAAM,CAAE7yF,OAAAA,OApB7B62M,CAAAA,IAAAA,eAAAA,MAAAA,SAuBIj/P,GAAAA,IAAAA,EAC+BA,EAAIo4K,WAArC93K,EADEN,EACH,MAAQG,EADLH,EACG,OAAUkiQ,EADbliQ,EACW,eACpBpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACxBrsL,KAAKu+Q,WAAW//Q,MAAMke,EAAOH,EAAQ+hQ,GACrCt+Q,KAAKk3Q,MAAMj1Q,KAAK,kBACZma,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAax9B,QAElC9sK,EAAI+qL,WAAWi3E,MA/BV/C,CAAAA,IAAAA,gBAAAA,MAAAA,SAkCIj/P,GACVpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACxBjwK,EAAI+qL,WAAWi3E,MApCT/C,CAAAA,IAAAA,aAAAA,MAAAA,SAuCEj/P,GACPA,EAAI+pL,SAASi4E,OAxCR/C,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIIxoJ,GACT,OAAOA,EAAMruD,UALR62M,EAAAA,CAAoB,KAApBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAW,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAXA,GAAW,QAAXA,GAAW,YAmBpB,GAAA,CADC,GAAO8C,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAiEA,KAAjE,GAAA,yBAAA,IAAA,GAAA,UAAA,sBAAA,MAfA,GAAA,CADChvE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAJSksE,GAAW,GAAA,CALvB9sE,GAAwB,CACrB3uM,KAAM,SACNgzH,SAAUwrJ,MAGD/C,KAAW,GAAA,EAAA,QAAA,GAAA,EAAA,QKvBjB,KAAMK,GAAN,WAwCH,SAAA,EACYx/P,EACAypM,EACA18M,GAAAA,gBAAAA,KAAAA,GAFA,KAAAiT,OAAAA,EACA,KAAAypM,YAAAA,EACA,KAAA18M,OAAAA,EAvBJ,KAAAu1Q,WAAAA,EAQS,KAAAC,UAAY,uBAKtB,KAAAnsL,YAAc,OAKd,KAAAosL,QAAU,IAAI,EAtClB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WA+CC1+Q,KAAK2+Q,aAAa3+Q,KAAKsyF,aACvBtyF,KAAK4+Q,cACL5+Q,KAAK6+Q,WACL7+Q,KAAK8+Q,eACL9+Q,KAAKkc,OAAO6kC,SACZ/gD,KAAKw+Q,WAAAA,IApDN,CAAA,IAAA,SAAA,MAAA,WA2DQx+Q,KAAKw+Q,YAEZx+Q,KAAKsqD,KAAK7pC,MACVzgB,KAAKkc,OAAOnB,SAASw9C,sBACrBv4D,KAAKkc,OAAOnB,SAAShF,OAAO/V,KAAKsqD,KAAMtqD,KAAK++Q,KAAM/+Q,KAAK0iD,SACvD1iD,KAAKkc,OAAO6kC,SACZ/gD,KAAKw+Q,WAAAA,KAjEN,CAAA,IAAA,wBAAA,MAAA,SAuE2BlnQ,GAC1B,IAAM9d,EAAI8d,EAAO4N,KAAMzrB,EAAI6d,EAAO6N,IAC5B9X,EAAIiK,EAAOy1D,iBAAkB1iE,EAAIiN,EAAOu3D,kBACxCmwM,EAAOh/Q,KAAK2lN,YAAYl3J,SAAS/xC,MAAQrP,EACzC4xQ,EAAOj/Q,KAAK2lN,YAAYl3J,SAASlyC,OAASlS,EAE5C7Q,EAAI,IACJ8d,EAAO4N,KAAO,GAEdzrB,EAAI,IACJ6d,EAAO6N,IAAM,GAEb3rB,EAAIwlR,IACJ1nQ,EAAO4N,KAAO85P,GAEdvlR,EAAIwlR,IACJ3nQ,EAAO6N,IAAM85P,KAvFlB,CAAA,IAAA,iCAAA,MAAA,SA8FoC3nQ,GACnC,IAAMyN,EAAOzN,EAAO4N,KAChBD,EAAO3N,EAAO6N,IACd65P,EAAQj6P,EAAOzN,EAAOy1D,iBAAoB,EAC1CkyM,EAAQh6P,EAAO3N,EAAOu3D,kBAAqB,GAG3C9pD,EAAO,GAAKi6P,EAAOh/Q,KAAK2lN,YAAYl3J,SAAS/xC,OAC7CuI,EAAO,GAAKg6P,EAAOj/Q,KAAK2lN,YAAYl3J,SAASlyC,UAE7CjF,EAAO0S,OAAShqB,KAAKk/Q,YAAc,EACnC5nQ,EAAO2S,OAASjqB,KAAKm/Q,YAAc,GAGnCp6P,EAAO,IACPzN,EAAO4N,KAAO,GAGdD,EAAO,IACP3N,EAAO6N,IAAM,GAGjBnlB,KAAKk/Q,WAAa5nQ,EAAO0S,OACzBhqB,KAAKm/Q,WAAa7nQ,EAAO2S,SArH1B,CAAA,IAAA,eAAA,MAAA,WAwHK,IAAA,EAAA,KAEJjqB,KAAKsqD,KAAKjqC,GAAG,UAAU,WACnBrgB,EAAKo/Q,sBAAsBp/Q,EAAKsqD,MAChCtqD,EAAK4+Q,cACL5+Q,EAAK6+Q,WACL7+Q,EAAK0+Q,QAAQx2Q,UAGjBlI,KAAKsqD,KAAKjqC,GAAG,WAAW,WACpBrgB,EAAKq/Q,+BAA+Br/Q,EAAKsqD,MACzCtqD,EAAK4+Q,cACL5+Q,EAAK6+Q,WACL7+Q,EAAK0+Q,QAAQx2Q,YArIlB,CAAA,IAAA,kBAAA,MAAA,SA4IoBo3Q,EAAqBC,EAAkBC,GAC1D,IAAIx2D,EAAWu2D,EACXxB,EAAYyB,EAGhB,GAAIF,EAAa,CACb,IAAMt+Q,EAAQs+Q,EAAY99Q,MAAM,KAC1B8wF,EAAcjkF,SAASrN,EAAM,IAAMqN,SAASrN,EAAM,IAGpDw+Q,EAAYltL,EAAcitL,EAC1BxB,EAAYwB,EAAWjtL,EAEvB02H,EAAWw2D,EAAYltL,EAI/B,MAAO,CAAC51E,MAAOssM,EAAUzsM,OAAQwhQ,KA7JlC,CAAA,IAAA,eAAA,MAAA,SAgKkBzrL,GAAAA,IAAAA,EAAAA,KACjB,IAAOtyF,KAAKw+Q,UAAW,CACnB,IAAMiB,EAAgB,CAClBv/P,KAAM,cACNmjD,YAAarjE,KAAKy+Q,UAClBv+M,kBAAAA,EACAtgE,KAAM,YACN6zD,iBAAAA,EACAqQ,cAAe,EACfC,aAAc/jE,KAAKiJ,OAAO4Z,IAAI,wCAGlC7iB,KAAKsqD,KAAO,IAAIvvC,GAAA,OAAOwvC,KAAK,OAAD,OAAA,OAAA,OAAA,GAAKk1N,GAAkBz/Q,KAAKiJ,OAAO4Z,IAAI,4BAA6B,MAG/F7iB,KAAKsqD,KAAKjqC,GAAG,cAAc,WACvBrgB,EAAKkc,OAAOnB,SAASm9C,gBAAgBl4D,EAAKsqD,SAG9CtqD,KAAKkc,OAAOnB,SAAShT,IAAI/H,KAAKsqD,MAC9BtqD,KAAKsqD,KAAKxhC,OAAO,GACjB9oB,KAAKkc,OAAOnB,SAASm9C,gBAAgBl4D,KAAKsqD,MAG9C,IAAMjN,EAAar9C,KAAK0/Q,gBACpBptL,EACAtyF,KAAK2lN,YAAYl3J,SAAS/xC,MAC1B1c,KAAK2lN,YAAYl3J,SAASlyC,QAG9Bvc,KAAKsqD,KAAKtoC,IAAI,CACVtF,MAAO2gC,EAAW3gC,MAClBH,OAAQ8gC,EAAW9gC,OACnB4nD,iBAAkBmuB,IAGtBtyF,KAAKsqD,KAAKqhB,iBACV3rE,KAAKsqD,KAAK/L,cArMX,CAAA,IAAA,WAAA,MAAA,WAyMC,IAAOv+C,KAAKw+Q,UAAW,CACnB,IAAMmB,EAAc,CAACjiP,OAAQ19B,KAAKy+Q,UAAWn2N,YAAa,EAAG4H,YAAAA,EAAmBD,SAAAA,GAC1E1uD,EAAQ,CACV,IAAIwZ,GAAA,OAAOo6D,KAAK,GAAIwqM,GACpB,IAAI5kQ,GAAA,OAAOo6D,KAAK,GAAIwqM,GACpB,IAAI5kQ,GAAA,OAAOo6D,KAAK,GAAIwqM,GACpB,IAAI5kQ,GAAA,OAAOo6D,KAAK,GAAIwqM,IAGxB3/Q,KAAK++Q,KAAO,IAAIhkQ,GAAA,OAAOiN,MAAMzmB,EAAO,CAChC3B,KAAM,YACNswD,YAAAA,EACAD,SAAAA,IAGJjwD,KAAKkc,OAAOnB,SAAShT,IAAI/H,KAAK++Q,MAC9B/+Q,KAAK++Q,KAAKj2P,OAAO,IAIrB9oB,KAAK++Q,KAAKriQ,MAAQ1c,KAAKsqD,KAAKyiB,iBAC5B/sE,KAAK++Q,KAAKxiQ,OAASvc,KAAKsqD,KAAKukB,kBAC7B7uE,KAAK++Q,KAAK75P,KAAOllB,KAAKsqD,KAAKplC,KAC3BllB,KAAK++Q,KAAK55P,IAAMnlB,KAAKsqD,KAAKnlC,IAG1B,IAAMy6P,EAAY5/Q,KAAK++Q,KAAKriQ,MAAQ,EAC9BmjQ,EAAa7/Q,KAAK++Q,KAAKriQ,MAAQ,EAC/BojQ,EAAa9/Q,KAAK++Q,KAAKxiQ,OAAS,EAChCwjQ,EAAc//Q,KAAK++Q,KAAKxiQ,OAAS,EAKjChb,EAAQvB,KAAK++Q,KAAKx9P,aAGxBhgB,EAAM,GAAGygB,IAAI,CACT6N,KAAM+vP,EAAYC,GAClB/vP,IAAK,EACLzH,KAAMu3P,EAAYC,GAClBv3P,GAAIw3P,IAIRv+Q,EAAM,GAAGygB,IAAI,CACT6N,GAAI+vP,EAAYC,EAChB/vP,IAAK,EACLzH,GAAIu3P,EAAYC,EAChBv3P,GAAIw3P,IAIRv+Q,EAAM,GAAGygB,IAAI,CACT6N,IAAK,EACLC,KAAMgwP,EAAaC,GACnB13P,GAAIu3P,EACJt3P,KAAMw3P,EAAaC,KAIvBx+Q,EAAM,GAAGygB,IAAI,CACT6N,IAAK,EACLC,GAAIgwP,EAAaC,EACjB13P,GAAIu3P,EACJt3P,GAAIw3P,EAAaC,MA1QtB,CAAA,IAAA,cAAA,MAAA,WA+QC,IAAK//Q,KAAKw+Q,UAAW,CACjB,IAAMwB,EAAU,IAAIjlQ,GAAA,OAAOwvC,KAAK,CAACrqC,KAAM,kBAAmBgwC,YAAAA,EAAkBD,SAAAA,IACtEgwN,EAAY,IAAIllQ,GAAA,OAAOwvC,KAAK,CAACrqC,KAAM,kBAAmBgwC,YAAAA,EAAkBD,SAAAA,IACxEiwN,EAAa,IAAInlQ,GAAA,OAAOwvC,KAAK,CAACrqC,KAAM,kBAAmBgwC,YAAAA,EAAkBD,SAAAA,IACzEkwN,EAAW,IAAIplQ,GAAA,OAAOwvC,KAAK,CAACrqC,KAAM,kBAAmBgwC,YAAAA,EAAkBD,SAAAA,IAE7EjwD,KAAK0iD,QAAU,IAAI3nC,GAAA,OAAOiN,MAAM,CAACg4P,EAASC,EAAWC,EAAYC,GAAW,CACxEzjQ,MAAO1c,KAAK2lN,YAAYl3J,SAAS/xC,MACjCH,OAAQvc,KAAK2lN,YAAYl3J,SAASlyC,OAClC2zC,YAAAA,EACAD,SAAAA,EACArwD,KAAM,iBAEVI,KAAKkc,OAAOnB,SAAShT,IAAI/H,KAAK0iD,SAC9B1iD,KAAK0iD,QAAQ55B,OAAO,GAGxB,IAAMs3P,GAAoBpgR,KAAK0iD,QAAQhmC,MAAQ,EACzC2jQ,GAAmBrgR,KAAK0iD,QAAQnmC,OAAS,EACzC4tC,EAAQnqD,KAAK0iD,QAAQnhC,aAE3B4oC,EAAM,GAAGnoC,IAAI,CACTkD,KAAMk7P,EACNj7P,IAAKk7P,EACL3jQ,MAAO1c,KAAK0iD,QAAQhmC,MACpBH,OAAQvc,KAAKsqD,KAAKukB,kBAAoB,EAAI7uE,KAAKsqD,KAAKnlC,IAAMnC,KAAK6K,IAAI7tB,KAAKsqD,KAAKukB,mBAAqB7uE,KAAKsqD,KAAKnlC,MAGhHglC,EAAM,GAAGnoC,IAAI,CACTkD,MAAOllB,KAAKsqD,KAAKyiB,iBAAmB,EAAI/sE,KAAKsqD,KAAKplC,KAAOllB,KAAKsqD,KAAKplC,KAAOllB,KAAKsqD,KAAKyiB,kBAAoBqzM,EACxGj7P,IAAKnlB,KAAKsqD,KAAKnlC,IAAMk7P,EACrB3jQ,MAAO1c,KAAKsqD,KAAKyiB,iBAAmB,EAAI/sE,KAAK2lN,YAAYl3J,SAAS/xC,OAAS1c,KAAKsqD,KAAKplC,KAAOllB,KAAKsqD,KAAKyiB,kBAAoB/pD,KAAK6K,IAAI7tB,KAAKsqD,KAAKyiB,kBAAoB/sE,KAAK2lN,YAAYl3J,SAAS/xC,OAAS1c,KAAKsqD,KAAKplC,KAAOllB,KAAKsqD,KAAKyiB,kBAC/NxwD,OAAQvc,KAAKsqD,KAAKukB,oBAGtB1kB,EAAM,GAAGnoC,IAAI,CACTkD,KAAMk7P,EACNj7P,KAAMnlB,KAAKsqD,KAAKukB,kBAAoB,EAAI7uE,KAAKsqD,KAAKnlC,IAAMnlB,KAAKsqD,KAAKnlC,IAAMnlB,KAAKsqD,KAAKukB,mBAAqBwxM,EACvG3jQ,MAAO1c,KAAK2lN,YAAYl3J,SAAS/xC,MACjCH,OAAQvc,KAAKsqD,KAAKukB,kBAAoB,EAAI7uE,KAAK2lN,YAAYl3J,SAASlyC,OAAUvc,KAAKsqD,KAAQ,IAAItqD,KAAK2lN,YAAYl3J,SAASlyC,QAAUvc,KAAKsqD,KAAKnlC,IAAMnlB,KAAKsqD,KAAKukB,qBAGjK1kB,EAAM,GAAGnoC,IAAI,CACTkD,KAAMk7P,EACNj7P,IAAKnlB,KAAKsqD,KAAKnlC,IAAMk7P,EACrB3jQ,MAAO1c,KAAKsqD,KAAKyiB,iBAAmB,EAAI/sE,KAAKsqD,KAAKplC,KAAOllB,KAAKsqD,KAAKplC,KAAOlC,KAAK6K,IAAI7tB,KAAKsqD,KAAKyiB,kBAC7FxwD,OAAQvc,KAAKsqD,KAAKukB,sBA7TvB,CAAA,IAAA,oBAAA,MAAA,SAiUsBg8G,GACrB7qL,KAAKsyF,YAAcu4F,EACnB7qL,KAAK2+Q,aAAa9zF,GAClB7qL,KAAK4+Q,cACL5+Q,KAAK6+Q,WACL7+Q,KAAKkc,OAAO6kC,WAtUb,CAAA,IAAA,UAAA,MAAA,WA0UC,MAAO,CACHrkC,MAAO1c,KAAKsqD,KAAKyiB,iBACjBxwD,OAAQvc,KAAKsqD,KAAKukB,kBAClB3pD,KAAMllB,KAAKsqD,KAAKplC,KAChBC,IAAKnlB,KAAKsqD,KAAKnlC,OA9UpB,CAAA,IAAA,SAAA,MAAA,SAqVWzI,EAAeH,GACzBvc,KAAKsyF,YAAc,KAEnBtyF,KAAKsqD,KAAK5tC,MAAQA,EAAQ1c,KAAK2lN,YAAYl3J,SAAS/xC,MAAQ1c,KAAK2lN,YAAYl3J,SAAS/xC,MAAQA,EAC9F1c,KAAKsqD,KAAK/tC,OAASA,EAASvc,KAAK2lN,YAAYl3J,SAASlyC,OAASvc,KAAK2lN,YAAYl3J,SAASlyC,OAASA,EAClGvc,KAAKsqD,KAAK6Z,gBAAAA,EACVnkE,KAAKsqD,KAAKtgC,OAAS,EACnBhqB,KAAKsqD,KAAKrgC,OAAS,EACnBjqB,KAAKsqD,KAAK/L,YAEVv+C,KAAK4+Q,cACL5+Q,KAAK6+Q,WAEL7+Q,KAAKkc,OAAO6kC,aAlWb,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM26N,IAAe,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAfA,GAAe,QAAfA,GAAe,YAAA,IDDrB,KAAMD,GAAN,WAoBH,SAAA,EACYv/P,EACAypM,GAAAA,gBAAAA,KAAAA,GADA,KAAAzpM,OAAAA,EACA,KAAAypM,YAAAA,EAZJ,KAAAhmH,UAAY,CAChBjiE,OAAQ,wBACR4qB,YAAa,EACb9C,cAAe,QACfC,eAAgB,SAdjB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SA4BQ66N,GACPtgR,KAAKoqN,cACLpqN,KAAKugR,QAAQD,GACbtgR,KAAKwgR,WAELxgR,KAAKkc,OAAOnB,SAAShT,IAAI/H,KAAKygR,WAC9BzgR,KAAKkc,OAAO6kC,WAlCb,CAAA,IAAA,SAAA,MAAA,WAyCQ/gD,KAAKygR,YACZzgR,KAAKkc,OAAOnB,SAAShF,OAAO/V,KAAKygR,WACjCzgR,KAAKygR,UAAY,KACjBzgR,KAAKkc,OAAO6kC,YA5Cb,CAAA,IAAA,cAAA,MAAA,WAmDC/gD,KAAKygR,UAAY,IAAI1lQ,GAAA,OAAOiN,MAAM,KAC9BjiB,OAAOkjH,OAAO,GAAI+9F,GAAoB,CAClCtqM,MAAO1c,KAAK2lN,YAAYl3J,SAAS/xC,MACjCH,OAAQvc,KAAK2lN,YAAYl3J,SAASlyC,OAClCgmC,mBAAAA,EACAp9B,IAAK,EACLD,KAAM,OAzDf,CAAA,IAAA,UAAA,MAAA,SAiEao7P,GACZ,IAAMxsQ,EAAO,IAAIiH,GAAA,OAAO6K,KAAK06P,EAAe,CACxCpgQ,KAAM,wBACNooC,YAAa,EACb5qB,OAAQ,wBACR4rB,QAAS,SACTC,QAAS,SACT/3C,WAAY,IACZkU,SAAU,IACVsG,WAAY,gBAIhBlY,EAAKg7D,aAAa9uE,KAAK2lN,YAAYl3J,SAAS/xC,MAAQ,GACpD1c,KAAKygR,UAAU14Q,IAAI+L,KA/EpB,CAAA,IAAA,WAAA,MAAA,WAsFC,IAAMA,EAAO9T,KAAKygR,UAAUl/P,WAAW,QAAQ,GAGzCq+P,EAAY5/Q,KAAK2lN,YAAYl3J,SAAS/xC,MAAQ,EAChDojQ,EAAa9/Q,KAAK2lN,YAAYl3J,SAASlyC,OAAS,EAIhDs6B,EAAU/iC,EAAK4I,MAAQ,EAErBgkQ,EAAQ,IAAI3lQ,GAAA,OAAOo6D,KAAK,KAAMn1E,KAAK2/F,WACrCghL,EAAQ,IAAI5lQ,GAAA,OAAOo6D,KAAK,KAAMn1E,KAAK2/F,WACnCihL,EAAQ,IAAI7lQ,GAAA,OAAOo6D,KAAK,KAAMn1E,KAAK2/F,WACnCkhL,EAAQ,IAAI9lQ,GAAA,OAAOo6D,KAAK,KAAMn1E,KAAK2/F,WAEvC3/F,KAAKygR,UAAU14Q,IAAI24Q,EAAOC,EAAOC,EAAOC,GAExCH,EAAM1+P,IAAI,CACN6N,GAAIgnB,EACJ/mB,IAZY,IAaZzH,GAAIu3P,EACJt3P,IAAKw3P,IAGTa,EAAM3+P,IAAI,CACN6N,GAAIgnB,EACJ/mB,GAnBY,IAoBZzH,GAAIu3P,EACJt3P,GAAIw3P,IAGRc,EAAM5+P,IAAI,CACN6N,IAAKgnB,EACL/mB,IA1BY,IA2BZzH,IAAKu3P,EACLt3P,IAAKw3P,IAGTe,EAAM7+P,IAAI,CACN6N,IAAKgnB,EACL/mB,GAjCY,IAkCZzH,IAAKu3P,EACLt3P,GAAIw3P,QAhIT,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMrE,IAAoB,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAApBA,GAAoB,QAApBA,GAAoB,YAAA,IDO1B,KAAMD,GAAN,WACH,SAAA,EACYt/P,EACA4kQ,EACAt/J,EACAv4G,EACAq8M,EACAm7D,EACAvJ,GAAAA,gBAAAA,KAAAA,GANA,KAAAh7P,OAAAA,EACA,KAAA4kQ,SAAAA,EACA,KAAAt/J,QAAAA,EACA,KAAAv4G,OAAAA,EACA,KAAAq8M,KAAAA,EACA,KAAAm7D,UAAAA,EACA,KAAAvJ,MAAAA,EART,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAWeh7Q,GACd,OAAO8D,KAAKiJ,OAAO4Z,IAAI,6BAA+Bo4P,GAAQ/+Q,MAZ/D,CAAA,IAAA,SAAA,MAAA,SAkBW0D,EAAe0pB,EAAuBC,GACzC3pB,IAAMA,EAAOI,KAAK+gR,WAAW,SAC7Bz3P,IAAQA,EAAStpB,KAAK+gR,WAAW,WACjCx3P,IAASA,EAAUvpB,KAAK+gR,WAAW,YAE1C,IAA0C5kR,EAApCumH,EAAW9iH,EAAO,IAAM0pB,EAE9BtpB,KAAKghR,iBAGD7kR,EADW,SAAXmtB,EACOtpB,KAAKihR,eAELjhR,KAAKkhR,WAAW53P,EAAQC,GAGnCvpB,KAAKygR,UAAU1qQ,SAER5Z,IAEH6D,KAAKiJ,OAAO8sJ,IAAI,iBAChB/1J,KAAKslN,KAAKC,KAAKvlN,KAAKiJ,OAAO4Z,IAAI,iBAAkB,CAAC1mB,KAAAA,EAAMumH,SAAAA,EAAUp5F,OAAAA,IAC7D/oB,WAAU,eAAU,eAClBP,KAAKiJ,OAAO8sJ,IAAI,gBACtB/1J,KAAKiJ,OAAO4Z,IAAI,eAAhB7iB,CAA6C7D,EAAMumH,EAAUp5F,GAE9DtpB,KAAKmhR,cAAc73P,EAAQntB,GAAMuT,MAAK0xQ,SAAAA,GAClC,OAAA,GAAA,OAAA,CAAOA,EAAM1+J,SA5CtB,CAAA,IAAA,gBAAA,MAAA,SAiDmBp5F,EAAsBntB,GACxC,OAAO,IAAIoT,SAAQwJ,SAAAA,GACf,IAAIqoQ,EAEJ,GAAe,SAAX93P,EACA83P,EAAO,IAAIh2Q,KAAK,CAACjP,GAAO,CAACgP,KAAM,0BAC5B,GAAe,QAAXme,EACP83P,EAAO,IAAIh2Q,KAAK,CAACjP,GAAO,CAACgP,KAAM,sBAC5B,CACH,IAAMkO,EAAc,SAAWiQ,EAC/BntB,EAAOA,EAAK0P,QAAQ,gCAAiC,IACrDu1Q,EAAQC,GAAkBllR,EAAMkd,GAGpCN,EAAQqoQ,QA/Db,CAAA,IAAA,aAAA,MAAA,WAsEmG,IAApF93P,EAAoF,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAA7DtpB,KAAK+gR,WAAW,UAAWx3P,EAAkC,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAhBvpB,KAAK+gR,WAAW,WAClG/gR,KAAKshR,gBACL,IACI,MAAe,QAAXh4P,EACOtpB,KAAKkc,OAAOnB,SAASq8B,QAErBp3C,KAAKkc,OAAOnB,SAASqO,UAAU,CAClCE,OAAQA,EACRC,QAASA,EACT6sB,WAAYp2C,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAAQ1c,KAAKkc,OAAOnB,SAASiiC,aAG9E,MAAOv5C,GACL,IAAoD,IAAhDA,EAAErE,QAAQsP,cAAc9M,QAAQ,WAAmB,OAAO,KAC9D5B,KAAKk3Q,MAAMj1Q,KAAK,mDApFrB,CAAA,IAAA,eAAA,MAAA,WAyFC,OAAOiE,KAAKC,UAAUnG,KAAKwhH,QAAQ04J,2BAzFpC,CAAA,IAAA,gBAAA,MAAA,WA6FCl6Q,KAAKkc,OAAOnB,SAASw9C,sBACrBv4D,KAAKkc,OAAOurM,IAAIhoJ,QAChBz/D,KAAK8gR,SAAS/qQ,WA/Ff,CAAA,IAAA,iBAAA,MAAA,WAmGC,IAAM0qQ,EAAYzgR,KAAKiJ,OAAO4Z,IAAI,uBAE9B49P,GACAzgR,KAAKygR,UAAU14Q,IAAI04Q,OAtGxB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMjF,IAAiB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAjBA,GAAiB,QAAjBA,GAAiB,YAAA,IDNvB,KAAMD,GAAN,WACH,SAAA,EACYn9N,EACAliC,EACAqlQ,EACApgQ,EACAuoM,GAAAA,gBAAAA,KAAAA,GAJA,KAAAtrK,aAAAA,EACA,KAAAliC,OAAAA,EACA,KAAAqlQ,SAAAA,EACA,KAAApgQ,QAAAA,EACA,KAAAuoM,YAAAA,EANT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAUC,OAAO1pN,KAAKmhB,QAAQ6pM,SACf9zM,QAAOlR,SAAAA,GAAAA,OAAOA,EAAIpG,OAAS8vM,GAAYI,UAAUlwM,QACjD5E,OAAS,IAZf,CAAA,IAAA,QAAA,MAAA,WAgBCgF,KAAKkc,OAAO22G,MAAM4yF,qBAAqBv9M,KAAK,CAACtI,KAAM,QAAS22B,SAAAA,IAC5D,IAAMp6B,EAAO6D,KAAKuhR,SAASL,aAE3B,OADAlhR,KAAK4oN,cACE5oN,KAAKkc,OAAOslQ,cAAcrlR,GAAAA,EAAa,WAnB/C,CAAA,IAAA,cAAA,MAAA,WAuBC6D,KAAK0pN,YAAY3zM,SACjB/V,KAAKkc,OAAOnB,SAASokC,YAxBtB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMo8N,IAAgB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAhBA,GAAgB,QAAhBA,GAAgB,YAAA,IDHtB,KAAMD,GAAN,WACH,SAAA,EACYp/P,EACAulQ,EACAC,GAAAA,gBAAAA,KAAAA,GAFA,KAAAxlQ,OAAAA,EACA,KAAAulQ,UAAAA,EACA,KAAAC,SAAAA,EAJT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAOUvqP,GAAAA,IAAAA,EAAAA,KAET,OADAn3B,KAAK0hR,SAAS3rQ,SACP/V,KAAKyhR,UAAUjjR,QAAQkR,MAAK,WAC/B1P,EAAKkc,OAAO6rM,OAAO/kM,KAAKooB,MAAMjU,EAAIza,OAAQsG,KAAKooB,MAAMjU,EAAI5a,SAEzD,IAAMiK,EAAMxmB,EAAKkc,OAAO4sM,eACxBtiM,EAAIwjD,MAAQhnD,KAAKooB,MAAMjU,EAAIjS,MAC3BsB,EAAIyjD,MAAQjnD,KAAKooB,MAAMjU,EAAIhS,KAC3BqB,EAAI9J,MAAQsG,KAAKooB,MAAMjU,EAAIza,OAC3B8J,EAAIjK,OAASyG,KAAKooB,MAAMjU,EAAI5a,QAE5Bvc,EAAKkc,OAAO6kC,gBAlBjB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMu6N,IAAe,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAfA,GAAe,QAAfA,GAAe,YAAA,IOStBqG,GAAsC,CACxCn9M,OAAAA,GADJ,KASaq3M,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQT,SAAA,EACchsJ,EACArO,EACAyoF,EACA23E,EACAF,EACAjtP,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV2lG,EAAAA,EAAAA,KAAAA,OAPUvK,MAAAA,EACA,EAAArO,QAAAA,EACA,EAAAyoF,SAAAA,EACA,EAAA23E,SAAAA,EACA,EAAAF,SAAAA,EACA,EAAAjtP,KAAAA,EAbJ,EAAA2lP,SAAW1yF,GAAWyB,KAalB10J,EAdLonP,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,eAAAA,MAAAA,SAmBIz/P,GAAAA,IAAAA,EAAAA,KACTpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACxBrsL,KAAK4hR,SAASpjR,MAAMwB,KAAK0hR,SAASG,WAAWnyQ,MAAK,WAC9C1P,EAAKwhH,QAAQz5G,IAAI2+M,GAAav9B,MAC9B/sK,EAAI+qL,WAAWw6E,SAvBd9F,CAAAA,IAAAA,gBAAAA,MAAAA,SA2BIz/P,GACVpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACxBjwK,EAAI+qL,WAAWw6E,MA7BT9F,CAAAA,IAAAA,aAAAA,MAAAA,SAgCEz/P,GACPA,EAAI+pL,SAASw7E,OAjCR9F,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIIhpJ,GACT,OAAOA,EAAMruD,UALRq3M,EAAAA,CAAkB,KAAlBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAS,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAATA,GAAS,QAATA,GAAS,YAIlB,GAAA,CADC1sE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAJS0sE,GAAS,GAAA,CALrBttE,GAAsB,CACnB3uM,KAAM,OACNgzH,SAAU+uJ,MAGD9F,KDdN,KAAMD,GAAN,WACH,SAAA,EACY1/P,EACAjT,GAAAA,gBAAAA,KAAAA,GADA,KAAAiT,OAAAA,EACA,KAAAjT,OAAAA,EAHT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SAMmBrJ,GAClB,OAAOI,KAAKiJ,OAAO4Z,IAAI,4BAA4BuO,MAAKu+K,SAAAA,GAAAA,OAC7CA,EAAM/vM,OAASA,OAR3B,CAAA,IAAA,gBAAA,MAAA,SAYkB+vM,GACI,iBAAVA,IACPA,EAAQ3vM,KAAK8hR,eAAenyE,IAGhC,IAgBIoyE,EAhBEC,EAAaryE,EAEbzpI,EAAclmE,KAAKkc,OAAOnB,SAASiiC,WACrCtnC,EAAU,OAAH,OAAA,OAAA,OAAA,GAAO1V,KAAKiJ,OAAO4Z,IAAI,oCAAuCm/P,EAAWtsQ,SAChF+L,EAAOykD,EAAc,EAED,WAApB87M,EAAWpiR,KACX8V,EAAQuzC,OAASxnC,EACU,YAApBugQ,EAAWpiR,MAClB8V,EAAQqX,GAAKtL,EACb/L,EAAQsX,GAAKvL,EAAO,IAEpB/L,EAAQgH,MAAQ+E,EAChB/L,EAAQ6G,OAASkF,GAMjBsgQ,EADoB,SAApBC,EAAW72Q,KACG,IAAI4P,GAAA,OAAOinQ,EAAW72Q,MAAMuK,EAAQoS,KAAM,OAAF,OAAA,CAAG2vI,YAAauqH,EAAWpiR,MAAS8V,IAE5E,IAAIqF,GAAA,OAAOinQ,EAAW72Q,MAAMuK,GAG9C1V,KAAKiiR,sBAAsBF,KAzC5B,CAAA,IAAA,aAAA,MAAA,SA4CeG,EAAsBtiR,GACpC,IAAM0/G,EAAYt/G,KAAKiJ,OAAO4Z,IAAI,8BAC7BuO,MAAK+wP,SAAAA,GAAAA,OAAOA,EAAIviR,OAASsiR,KAC9B,GAAsB,QAAlB5iK,EAASn0G,KAAgB,CACzB,IAAMrM,EAAMkB,KAAKoiR,cAAc9iK,EAAU1/G,GACzC,OAAOI,KAAKqiR,cAAcvjR,GAE1B,OAAOkB,KAAKsiR,kBAAkBhjK,EAAU1/G,KAnD7C,CAAA,IAAA,oBAAA,MAAA,SAuDuB0/G,EAA2B1/G,GAAAA,IAAAA,EAAAA,KACjD,OAAO,IAAI2P,SAAQwJ,SAAAA,GACfgC,GAAA,OAAOkF,KAAKqG,UAAUtmB,EAAKoiR,cAAc9iK,EAAU1/G,IAAO4mB,SAAAA,GACtD,IAAMopL,EAAU,IAAI70L,GAAA,OAAOqrB,MAAM5f,GACjCxmB,EAAKiiR,sBAAsBryE,EAASF,GAAYE,SAChD72L,YA5DT,CAAA,IAAA,gBAAA,MAAA,SAiEkBja,GAA6E,IAAA,EAAA,KAAhEyjR,EAAgE,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAnC7yE,GAAYE,QAASmZ,IAAc,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAC9F,OAAO,IAAIx5M,SAAQwJ,SAAAA,GACfgC,GAAA,OAAOiqB,eAAelmC,GAAK,SAACqiB,EAASzL,GACjC,IAAMk6L,EAAU70L,GAAA,OAAOkF,KAAK2H,iBAAiBzG,EAASzL,GACtD1V,EAAKiiR,sBAAsBryE,EAAS2yE,EAAYx5D,GAChDhwM,YAtET,CAAA,IAAA,wBAAA,MAAA,SA2E2B62L,GAAgF,IAA9D2yE,EAA8D,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAjC7yE,GAAYC,MAAOoZ,IAAc,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAC1GnZ,EAAQhwM,KAAO2iR,EAAW3iR,KAC1BgwM,EAAQ5tL,IAAIhiB,KAAKiJ,OAAO4Z,IAAI,iCAC5B7iB,KAAKkc,OAAOnB,SAAShT,IAAI6nM,GACzB5vM,KAAKkc,OAAOnB,SAASm9C,gBAAgB03I,GACjCmZ,GACAnZ,EAAQ9gI,aAAa9uE,KAAKkc,OAAOnB,SAASiiC,WAAa,GAE3D4yJ,EAAQjkI,iBACRikI,EAAQrxJ,YACRv+C,KAAKkc,OAAO6kC,WArFb,CAAA,IAAA,gBAAA,MAAA,SAwFkBu+D,EAA2BkjK,GAE5C,OAAOxiR,KAAKiJ,OAAOkhN,YADA,mBAAqB7qG,EAAS1/G,KAAO,IAAM4iR,EAAc,IAAMljK,EAASn0G,MAAAA,KAzF5F,CAAA,IAAA,wBAAA,MAAA,SA6F0Bm0G,GACzB,OAAIA,EAAS8rE,aAAqBprL,KAAKiJ,OAAOkhN,YAAY7qG,EAAS8rE,cAAAA,GAC5DprL,KAAKoiR,cAAc9iK,EAAU,OA/FrC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMs8J,IAAiB,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAjBA,GAAiB,QAAjBA,GAAiB,YAAA,IaVvB,GAAA,WAAA,IAAM6G,EAET,SAAA,EAAmB9yE,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,MAAAA,GAFhB,OACa,EAAAxkM,KAAO,4BAAP,EADb,GAAA,KdqBMwwQ,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQT,SAAA,EACc9rJ,EACA6yJ,EACAlhK,EACAyoF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV7vE,EAAAA,EAAAA,KAAAA,OALUvK,MAAAA,EACA,EAAA6yJ,WAAAA,EACA,EAAAlhK,QAAAA,EACA,EAAAyoF,SAAAA,EAXJ,EAAAmwE,SAAW1yF,GAAW6B,OAWlB0gB,EAZL0xE,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,eAAAA,MAAAA,SAiBIv/P,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUzE,GAAW8yF,kBACzCp+P,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAan9B,QAElCntK,EAAI+qL,WAAW,CAAC3iI,OAAAA,MAtBXm3M,CAAAA,IAAAA,gBAAAA,MAAAA,SAyBIv/P,GACVpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQq4J,SAEjBz9P,EAAI+qL,WAAW,CAAC3iI,OAAAA,MA9BVm3M,CAAAA,IAAAA,aAAAA,MAAAA,SAiCEv/P,GACPA,EAAI+pL,SAAS,CAAC3hI,OAAAA,MAlCTm3M,CAAAA,IAAAA,WAAAA,MAAAA,SAsCDv/P,EAAqCg0C,GAC1Ch0C,EAAI+qL,WAAW,CAAC3iI,OAAAA,IAChBxkE,KAAK0iR,WAAWC,cAAcvyN,EAAOu/I,UAxC/BgsE,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAII9oJ,GACT,OAAOA,EAAMruD,UALRm3M,EAAAA,CAAoB,KAApBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAW,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAXA,GAAW,QAAXA,GAAW,YAsCrB,GAAA,CADC,GAAO8G,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAsDA,KAAtD,GAAA,yBAAA,IAAA,GAAA,UAAA,WAAA,MAlCC,GAAA,CADCtzE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAJSwsE,GAAW,GAAA,CAPvBptE,GAAwB,CACrB3uM,KAAM,SACNgzH,SAAU,CACNpuD,OAAAA,MAIKm3M,KerBN,GAAA,WAAA,IAAMpsE,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAApkM,KAAO,mCAAP,EADb,GZaDy3Q,GAAgD,CAClDp+M,OAAAA,GADJ,KASas3M,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQT,SAAA,EACcjsJ,EACArO,EACAyoF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV7vE,EAAAA,EAAAA,KAAAA,OAJUvK,MAAAA,EACA,EAAArO,QAAAA,EACA,EAAAyoF,SAAAA,EAVJ,EAAAmwE,SAAW1yF,GAAW0B,UAUlB6gB,EAXL6xE,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,SAiBG1/P,GACRA,EAAI+qL,WAAW,CAAC3iI,OAAAA,MAlBXs3M,CAAAA,IAAAA,eAAAA,MAAAA,SAqBI1/P,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAat9B,WAElChtK,EAAI+qL,WAAWy7E,MA1BV9G,CAAAA,IAAAA,gBAAAA,MAAAA,SA6BI1/P,GACVpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQq4J,SAEjBz9P,EAAI+qL,WAAWy7E,MAlCT9G,CAAAA,IAAAA,aAAAA,MAAAA,SAqCE1/P,GACPA,EAAI+pL,SAASy8E,OAtCR9G,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIIjpJ,GACT,OAAOA,EAAMruD,UALRs3M,EAAAA,CAAuB,KAAvBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAc,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAdA,GAAc,QAAdA,GAAc,YAiBvB,GAAA,CADC,GAAO,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,cAAA,MAbA,GAAA,CADC3sE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAJS2sE,GAAc,GAAA,CAL1BvtE,GAA2B,CACxB3uM,KAAM,YACNgzH,SAAUgwJ,MAGD9G,KatBN,GAAA,WAAA,IAAMvsE,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAApkM,KAAO,+BAAP,EADb,GAIA,GAAA,WAAA,IAAM03Q,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAA13Q,KAAO,qCAAP,EADb,GZUD23Q,GAAwC,CAC1Ct+M,OAAAA,EACAu+M,cAAAA,GAFJ,KAUahH,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAaT,SAAA,EACclsJ,EACArO,EACAyoF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV7vE,EAAAA,EAAAA,KAAAA,OAJUvK,MAAAA,EACA,EAAArO,QAAAA,EACA,EAAAyoF,SAAAA,EAfJ,EAAAmwE,SAAW1yF,GAAW+B,MAelBwgB,EAhBL8xE,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,SAsBG3/P,GACRA,EAAI+qL,WAAW,CAAC3iI,OAAAA,MAvBXu3M,CAAAA,IAAAA,oBAAAA,MAAAA,SA2BS3/P,GACdA,EAAI+qL,WAAW,CAAC47E,cAAAA,MA5BXhH,CAAAA,IAAAA,eAAAA,MAAAA,SA+BI3/P,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IAEpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAaj9B,OAGlCrtK,EAAI+qL,WAAW27E,MAtCV/G,CAAAA,IAAAA,gBAAAA,MAAAA,SAyCI3/P,GACLA,EAAIo4K,WAAWhwH,OAChBxkE,KAAKwhH,QAAQq4J,SAGZz9P,EAAIo4K,WAAWuuF,aACf3mQ,EAAI+qL,WAAW,CAAC47E,cAAAA,KAEhB/iR,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACxBjwK,EAAI+qL,WAAW27E,OAlDd/G,CAAAA,IAAAA,aAAAA,MAAAA,SAsDE3/P,GACPA,EAAI+pL,SAAS28E,OAvDR/G,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIIlpJ,GACT,OAAOA,EAAMruD,QALRu3M,CAAAA,IAAAA,eAAAA,MAAAA,SASWlpJ,GAChB,OAAOA,EAAMkwJ,iBAVRhH,EAAAA,CAAmB,KAAnBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAU,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAVA,GAAU,QAAVA,GAAU,YAsBnB,GAAA,CADC,GAAO,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,cAAA,MAKA,GAAA,CADC,GAAO8G,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,oBAAA,MAvBA,GAAA,CADC1zE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,eAAA,MATS4sE,GAAU,GAAA,CALtBxtE,GAAuB,CACpB3uM,KAAM,QACNgzH,SAAUkwJ,MAGD/G,KaxBN,GAAA,WAAA,IAAMxsE,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAApkM,KAAO,8BAAP,EADb,GAIA,GAAA,WAAA,IAAM63Q,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAA73Q,KAAO,oCAAP,EADb,GAIA,GAAA,WAAA,IAAM83Q,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAA93Q,KAAO,qCAAP,EADb,GZMD+3Q,GAAsC,CACxC1+M,OAAAA,EACA2+M,mBAAAA,GAFJ,KAUanH,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAaT,SAAA,EACcnsJ,EACArO,EACAyoF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV7vE,EAAAA,EAAAA,KAAAA,OAJUvK,MAAAA,EACA,EAAArO,QAAAA,EACA,EAAAyoF,SAAAA,EAfJ,EAAAmwE,SAAW1yF,GAAW2B,KAelB4gB,EAhBL+xE,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,SAsBG5/P,GACRA,EAAI+qL,WAAW,CAAC3iI,OAAAA,MAvBXw3M,CAAAA,IAAAA,oBAAAA,MAAAA,SA2BS5/P,GACdA,EAAI+qL,WAAW,CAACg8E,mBAAAA,MA5BXnH,CAAAA,IAAAA,qBAAAA,MAAAA,SAgCU5/P,GACfA,EAAI+qL,WAAW,CAACg8E,mBAAAA,MAjCXnH,CAAAA,IAAAA,eAAAA,MAAAA,SAoCI5/P,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAar9B,MAElCjtK,EAAI+qL,WAAW+7E,MAzCVlH,CAAAA,IAAAA,gBAAAA,MAAAA,SA4CI5/P,GACHA,EAAIo4K,WAAW2uF,mBAClBnjR,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IAGxBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQq4J,SAGjBz9P,EAAI+qL,WAAW+7E,MArDTlH,CAAAA,IAAAA,aAAAA,MAAAA,SAwDE5/P,GACPA,EAAI+pL,SAAS+8E,OAzDRlH,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIInpJ,GACT,OAAOA,EAAMruD,QALRw3M,CAAAA,IAAAA,oBAAAA,MAAAA,SASgBnpJ,GACrB,OAAOA,EAAMswJ,sBAVRnH,EAAAA,CAAkB,KAAlBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAS,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAATA,GAAS,QAATA,GAAS,YAsBlB,GAAA,CADC,GAAO,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,cAAA,MAKA,GAAA,CADC,GAAOgH,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,oBAAA,MAKA,GAAA,CADC,GAAOC,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,qBAAA,MA5BA,GAAA,CADC9zE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,oBAAA,MATS6sE,GAAS,GAAA,CALrBztE,GAAsB,CACnB3uM,KAAM,OACNgzH,SAAUswJ,MAGDlH,KatBN,GAAA,WAAA,IAAMoH,EAET,SAAA,EAAmB9jK,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,SAAAA,GAFhB,OACa,EAAAn0G,KAAO,0CAAP,EADb,GAKA,GAAA,WAAA,IAAMokM,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAApkM,KAAO,kCAAP,EADb,GXQDk4Q,GAAyB,CAC3B7+M,OAAAA,EACA8+M,eAAgB,MAFpB,KAUapH,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAaT,SAAA,EACcrsJ,EACArO,EACAyoF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV7vE,EAAAA,EAAAA,KAAAA,OAJUvK,MAAAA,EACA,EAAArO,QAAAA,EACA,EAAAyoF,SAAAA,EAfJ,EAAAmwE,SAAW1yF,GAAW8B,SAelBygB,EAhBLiyE,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,SAsBG9/P,GACRA,EAAI+qL,WAAW,CAAC3iI,OAAAA,MAvBX03M,CAAAA,IAAAA,sBAAAA,MAAAA,SA2BW9/P,EAAuCg0C,GACvDh0C,EAAI+qL,WAAW,CAACm8E,eAAgBlzN,EAAOkvD,aA5BlC48J,CAAAA,IAAAA,eAAAA,MAAAA,SA+BI9/P,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUzE,GAAW8yF,kBACzCp+P,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAal9B,UAElCptK,EAAI+qL,WAAWk8E,MApCVnH,CAAAA,IAAAA,gBAAAA,MAAAA,SAuCK9/P,GACHA,EAAIo4K,WAAW8uF,gBAClBtjR,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IAExBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQq4J,SAEjBz9P,EAAI+qL,WAAWk8E,MA9CVnH,CAAAA,IAAAA,aAAAA,MAAAA,SAiDE9/P,GACPA,EAAI+pL,SAASk9E,OAlDRnH,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIIrpJ,GACT,OAAOA,EAAMruD,QALR03M,CAAAA,IAAAA,iBAAAA,MAAAA,SASarpJ,GAClB,OAAOA,EAAMywJ,mBAVRpH,EAAAA,CAAsB,KAAtBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAa,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAbA,GAAa,QAAbA,GAAa,YAsBtB,GAAA,CADC,GAAO,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,cAAA,MAKA,GAAA,CADC,GAAOkH,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAmEA,KAAnE,GAAA,yBAAA,IAAA,GAAA,UAAA,sBAAA,MAvBA,GAAA,CADCj0E,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,iBAAA,MATS+sE,GAAa,GAAA,CALzB3tE,GAA0B,CACvB3uM,KAAM,WACNgzH,SAAUywJ,MAGDnH,KDhBN,KAAMD,GAAN,WAGH,SAAA,EACY79N,EACAliC,EACA22G,EACA0uJ,GAAAA,gBAAAA,KAAAA,GAHA,KAAAnjO,aAAAA,EACA,KAAAliC,OAAAA,EACA,KAAA22G,MAAAA,EACA,KAAA0uJ,SAAAA,EAPT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAUUt4N,GAAAA,IAAAA,EAAAA,KACTjpD,KAAKujR,cAAct6N,GACnBjpD,KAAK6yH,MAAM93G,OAAOhF,OAAO/V,KAAKwjR,aAE9BxjR,KAAK6yH,MAAM93G,OAAOyH,OAASpG,SAAAA,GACRpc,EAAK6yH,MAAM93G,OAAOghC,mBAIjC/7C,EAAKwjR,YAAYxhQ,IAAI,CACjBtF,MAAO1c,EAAKwjR,YAAY9mQ,MACxBH,OAAQvc,EAAKwjR,YAAYjnQ,OACzBwQ,GAAI/sB,EAAKwjR,YAAYz2P,GACrBC,GAAIhtB,EAAKwjR,YAAYx2P,GACrB0Q,OAAQ,OAGZ19B,EAAKwjR,YAAYziO,OAAO3kC,GACxBpc,EAAK6yH,MAAM93G,OAAOyH,OAAS,MAG/B,IAAMrmB,EAAO6D,KAAKuhR,SAASL,aAI3B,OAHAlhR,KAAK6yH,MAAM93G,OAAOokC,QAClBn/C,KAAKyjR,cAEEzjR,KAAKkc,OAAOslQ,cAAcrlR,KAnClC,CAAA,IAAA,mBAAA,MAAA,WAuCC,OAAO6D,KAAKwjR,YAAYz2P,KAvCzB,CAAA,IAAA,gBAAA,MAAA,SA0CkBk8B,GACjBjpD,KAAKwjR,YAAYxhQ,IAAI,CACjB+K,GAAIk8B,EAAQj8B,GAAIi8B,IAGpBjpD,KAAKkc,OAAO6kC,WA/Cb,CAAA,IAAA,cAAA,MAAA,WAmDC/gD,KAAKwjR,YAAc,IAAIzoQ,GAAA,OAAOwvC,KAAK,CAC/B7tC,MAAO1c,KAAK6yH,MAAMpkE,SAAS/xC,MAC3BH,OAAQvc,KAAK6yH,MAAMpkE,SAASlyC,OAC5BwQ,GAAI,GACJC,GAAI,GACJo3C,eAAAA,EACAlkD,KAAM,cACNtgB,KAAM,aACN89B,OAAQ,wBACR4qB,YAAa,EACb3C,gBAAiB,CAAC,EAAE,GACpBuK,YAAAA,EACAD,SAAAA,IAGJjwD,KAAK6yH,MAAM93G,OAAOhT,IAAI/H,KAAKwjR,aAC3BxjR,KAAKwjR,YAAY16P,OAAO,IACxB9oB,KAAKwjR,YAAY73M,iBACjB3rE,KAAKkc,OAAO6kC,WArEb,CAAA,IAAA,cAAA,MAAA,WAyEQ/gD,KAAKwjR,cACZxjR,KAAK6yH,MAAM93G,OAAOhF,OAAO/V,KAAKwjR,aAC9BxjR,KAAKkc,OAAO6kC,SACZ/gD,KAAKwjR,YAAc,UA5EpB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMvH,IAAgB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAhBA,GAAgB,QAAhBA,GAAgB,YAAA,IEIvByH,GAAwB,CAC1Bl/M,OAAAA,GADJ,KASa23M,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQT,SAAA,EACctsJ,EACAo6E,EACAzoF,EACAmiK,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEVvpJ,EAAAA,EAAAA,KAAAA,OALUvK,MAAAA,EACA,EAAAo6E,SAAAA,EACA,EAAAzoF,QAAAA,EACA,EAAAmiK,UAAAA,EAXJ,EAAAvJ,SAAW1yF,GAAWgC,QAWlBi6F,EAZLxH,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,eAAAA,MAAAA,SAiBI//P,GAAAA,IAAAA,EAAAA,KACTpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACxBrsL,KAAK2jR,UAAUnlR,MAAMwB,KAAK2jR,UAAUC,oBAAoBl0Q,MAAK,WACzD1P,EAAKwhH,QAAQz5G,IAAI2+M,GAAah9B,YAElCttK,EAAI+qL,WAAWu8E,MAtBVvH,CAAAA,IAAAA,gBAAAA,MAAAA,SAyBK//P,GACVpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACxBjwK,EAAI+qL,WAAWu8E,MA3BVvH,CAAAA,IAAAA,aAAAA,MAAAA,SA8BE//P,GACPA,EAAI+pL,SAASu9E,OA/BRvH,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIItpJ,GACT,OAAOA,EAAMruD,UALR23M,EAAAA,CAAqB,KAArBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAY,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAZA,GAAY,QAAZA,GAAY,YAIrB,GAAA,CADChtE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAJSgtE,GAAY,GAAA,CALxB5tE,GAAyB,CACtB3uM,KAAM,UACNgzH,SAAU8wJ,MAGDvH,KWtBN,GAAA,WAAA,IAAM5sE,EAAN,SAAA,IAAA,gBAAA,KAAA,IAAA,OACa,EAAApkM,KAAO,oCAAP,EADb,GVaD04Q,GAA4B,CAC9Br/M,OAAAA,GADJ,KASa43M,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQT,SAAA,EACcvsJ,EACAo6E,EACAzoF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV4Y,EAAAA,EAAAA,KAAAA,OAJUvK,MAAAA,EACA,EAAAo6E,SAAAA,EACA,EAAAzoF,QAAAA,EAVJ,EAAA44J,SAAW1yF,GAAWiC,WAUlBnoE,EAXL46J,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,SAiBGhgQ,GACRA,EAAI+qL,WAAW,CAAC3iI,OAAAA,MAlBX43M,CAAAA,IAAAA,eAAAA,MAAAA,SAqBIhgQ,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAa/8B,YAElCvtK,EAAI+qL,WAAW08E,MA1BVzH,CAAAA,IAAAA,gBAAAA,MAAAA,SA6BKhgQ,GACVpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQq4J,SAEjBz9P,EAAI+qL,WAAW08E,MAlCVzH,CAAAA,IAAAA,aAAAA,MAAAA,SAqCEhgQ,GACPA,EAAI+pL,SAAS09E,OAtCRzH,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIIvpJ,GACT,OAAOA,EAAMruD,UALR43M,EAAAA,CAAwB,KAAxBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAe,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAfA,GAAe,QAAfA,GAAe,YAiBxB,GAAA,CADC,GAAO,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,cAAA,MAbA,GAAA,CADCjtE,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAJSitE,GAAe,GAAA,CAL3B7tE,GAA4B,CACzB3uM,KAAM,aACNgzH,SAAUixJ,MAGDzH,KWtBN,GAAA,WAAA,IAAM0H,EAEX,SAAA,EAAmBhwQ,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,KAAAA,GAFd,OACkB,EAAA3I,KAAO,aAAP,EADlB,GRcD44Q,GAAsB,CACxBv/M,OAAAA,GADJ,KASa+3M,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQT,SAAA,EACYhD,EACA1pJ,EACArO,EACEyoF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV7vE,EAAAA,EAAAA,KAAAA,OALQm/I,SAAAA,EACA,EAAA1pJ,MAAAA,EACA,EAAArO,QAAAA,EACE,EAAAyoF,SAAAA,EAXJ,EAAAmwE,SAAW1yF,GAAW4B,KAWlB2gB,EAZLsyE,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,MAAAA,MAAAA,SAkBEngQ,EAAmCg0C,GAC1CpwD,KAAKu5Q,SAASxxQ,IAAIqoD,EAAOt8C,MACzBsI,EAAI+pL,SAAS,CAAC3hI,OAAAA,MApBT+3M,CAAAA,IAAAA,eAAAA,MAAAA,SAuBIngQ,GACTpc,KAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUzE,GAAW8yF,kBACzCp+P,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQz5G,IAAI2+M,GAAap9B,MAElCltK,EAAI+qL,WAAW48E,MA5BVxH,CAAAA,IAAAA,gBAAAA,MAAAA,SA+BKngQ,GACVpc,KAAK6vH,MAAMi+D,SAAS,IAAIzB,IACpBjwK,EAAIo4K,WAAWhwH,OACfxkE,KAAKwhH,QAAQq4J,SAEjBz9P,EAAI+qL,WAAW48E,MApCVxH,CAAAA,IAAAA,aAAAA,MAAAA,SAuCEngQ,GACPA,EAAI+pL,SAAS49E,OAxCRxH,CAAAA,CAAAA,IAAAA,QAAAA,MAAAA,SAIW1pJ,GAChB,OAAOA,EAAMruD,UALR+3M,EAAAA,CAAkB,KAAlBA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAS,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAATA,GAAS,QAATA,GAAS,YAkBlB,GAAA,CADC,GAAOuH,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAsDA,KAAtD,GAAA,yBAAA,IAAA,GAAA,UAAA,MAAA,MAdA,GAAA,CADC30E,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAJSotE,GAAS,GAAA,CALrBhuE,GAAsB,CACnB3uM,KAAM,OACNgzH,SAAUmxJ,MAGDxH,KDhBN,KAAMD,GAAN,WAIH,SAAA,EAAoB0H,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAAA,KAAAA,mBAAAA,EAHb,KAAAC,UAAY,IAAI,IAAA,GAChB,KAAAC,UAAY,IAAI,IAAA,GAGnBlkR,KAAKgkR,mBAAmB7jQ,QAAQmyP,IAAqB/xQ,WAAUmD,SAAAA,GAC3D1D,EAAKikR,UAAU/7Q,KAAKxE,EAAOgiJ,YAG/B1lJ,KAAKgkR,mBAAmB7jQ,QrCsYpB,wJqCtYgD5f,WAAUmD,SAAAA,GAC1D1D,EAAKkkR,UAAUh8Q,KAAKxE,EAAOgiJ,YAVhC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAcYjgJ,GACX,OAAOzF,KAAKgkR,mBAAmB7jQ,QAAQ1a,OAfxC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM62Q,IAAkB,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAlBA,GAAkB,QAAlBA,GAAkB,UAAA,WAFf,SAAA,IAET,KDyEMD,GAAAA,WA8DT,SAAA,EACYpzQ,EACAmpQ,EACAh0N,GAAAA,gBAAAA,KAAAA,GAFA,KAAAn1C,OAAAA,EACA,KAAAmpQ,YAAAA,EACA,KAAAh0N,aAAAA,EAjEHi+N,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,qBAAAA,MAAAA,SAoEUjgQ,GACfpc,KAAKmkR,qBAAqB/nQ,GAC1Bpc,KAAKokR,yBAAyBhoQ,KAtEzBigQ,CAAAA,IAAAA,aAAAA,MAAAA,SA0EEjgQ,GACPA,EAAI+qL,WAAW,CAAClpK,SAAAA,IAChBj+B,KAAKiJ,OAAO+Y,IAAI,oBAAA,GAChBhiB,KAAKksL,gBAAgB,YA7EhBmwF,CAAAA,IAAAA,cAAAA,MAAAA,SAiFGjgQ,EAjFHigQ,GAiFyCnwF,IAAAA,EAAAA,EAAD,gBACzCm4F,EAAcrkR,KAAKiJ,OAAO4Z,IAAI,6BAC9BqpK,IACAm4F,GAAAA,IAAcrkR,KAAKksL,gBAAgB,YAEnCm4F,IACAjoQ,EAAI+qL,WAAW,CAAClpK,SAAAA,IAChBj+B,KAAKiJ,OAAO+Y,IAAI,oBAAA,MAxFfq6P,CAAAA,IAAAA,YAAAA,MAAAA,SA6FCjgQ,EAAqCg0C,GAC3Ch0C,EAAI+qL,WAAW,CACXszE,YAAarqN,EAAOg8H,UA/FnBiwF,CAAAA,IAAAA,iBAAAA,MAAAA,SAoGMjgQ,GAEXA,EAAI+qL,WAAW,CAACszE,YAAa/yF,GAAW48F,eAtGnCjI,CAAAA,IAAAA,iBAAAA,MAAAA,SA0GMjgQ,EAAqCg0C,GAChD,IAAMyiE,EAAQ7yH,KAAKukR,oBAKfn0N,EAAOw8H,gBAAkBxwK,EAAIo4K,WAAWimF,cAAgB/yF,GAAW48F,aACnEzxJ,EAAM4nJ,YAAc/yF,GAAW8yF,iBAGnCp+P,EAAI+qL,WAAWt0E,GAGf7yH,KAAKo+C,aAAa0nK,aAvHbu2D,CAAAA,IAAAA,mBAAAA,MAAAA,SA2HQjgQ,GACb,IAAMy2G,EAAQ7yH,KAAKukR,oBAEfnoQ,EAAIo4K,WAAWimF,cAAgB/yF,GAAW8yF,iBAAoBp+P,EAAIo4K,WAAWgwF,eAAehgN,QAC5FquD,EAAM4nJ,YAAc/yF,GAAW48F,YAGnCloQ,EAAI+qL,WAAWt0E,GAGf7yH,KAAKo+C,aAAa0nK,aArIbu2D,CAAAA,IAAAA,UAAAA,MAAAA,SAyIDjgQ,EAzICigQ,GAyIqC5nP,IAAAA,EAAAA,EAAD,KACzCrY,EAAI+qL,WAAW,CAAC1yK,KAAAA,MA1IX4nP,CAAAA,IAAAA,kBAAAA,MAAAA,SA6Iez8Q,GACpB,IAAM8E,EAAW1E,KAAKiJ,OAAO4Z,IAAI,SAAWjjB,GAC5C,OAAO8E,GAAYA,MA/Id23Q,CAAAA,IAAAA,2BAAAA,MAAAA,SAkJwBjgQ,GAAAA,IAAAA,EAAAA,KAC7Bpc,KAAKoyQ,YAAYjyP,QpC4Kb,yBoC5KyC5f,WAAU,WACnD6b,EAAI+qL,WAAW,CACXs9E,YAAazkR,EAAK0kR,wBArJrBrI,CAAAA,IAAAA,uBAAAA,MAAAA,SA0JoBjgQ,GAAAA,IAAAA,EAAAA,KACzBpc,KAAKiJ,OAAO2hN,OAAOrqN,WAAU,WACzB,IAAM0I,EAASjJ,EAAKiJ,OAAO4Z,IAAI,SAC/BzG,EAAI+qL,WAAW,CACXp9G,KAAM9gF,EAAO4+K,GAAG99F,KAChB46L,YAAa17Q,EAAO4+K,GAAGM,QAAQy8F,KAC/B3mP,QAASh1B,EAAO4+K,GAAG5pJ,QACnB4mP,SAAU57Q,EAAO4+K,GAAGgB,IAAIG,MACxBy7F,YAAazkR,EAAK0kR,wBAlKrBrI,CAAAA,IAAAA,iBAAAA,MAAAA,WAwKL,IAAMyI,EAAa9kR,KAAKiJ,OAAO4Z,IAAI,wBAAyB4kK,GAAYqB,KACxE,OAAQ9oL,KAAKoyQ,YAAY6R,UAAUx+Q,OAASq/Q,IAAer9F,GAAYzrC,KAAQyrC,GAAYs9F,OAASD,IAzK/FzI,CAAAA,IAAAA,oBAAAA,MAAAA,WA6KL,IAAMr2Q,EAAMhG,KAAKo+C,aAAav7B,MAExBgwG,EAAQ,CACVmyJ,YAAa,KACbC,iBAAAA,EACAC,gBAAAA,GAUJ,OAPIl/Q,IACA6sH,EAAMmyJ,YAAch/Q,EAAI7J,KAAKsV,GAC7BohH,EAAMoyJ,gBAA+B,WAAbj/Q,EAAImF,KAC5B0nH,EAAMqyJ,eAA8B,UAAbl/Q,EAAImF,MAAoBnF,EAAY,OAC3D6sH,EAAMsyJ,iBAAgC,UAAbn/Q,EAAImF,MAG1B0nH,KA5LFwpJ,CAAAA,CAAAA,IAAAA,UAAAA,MAAAA,SAEMxpJ,GACX,OAAOA,EAAM50F,UAHRo+O,CAAAA,IAAAA,OAAAA,MAAAA,SAOGxpJ,GACR,OAAOA,EAAM9oC,OARRsyL,CAAAA,IAAAA,WAAAA,MAAAA,SAYOxpJ,GACZ,OAAOA,EAAMgyJ,WAbRxI,CAAAA,IAAAA,cAAAA,MAAAA,SAiBUxpJ,GACf,OAAOA,EAAM4xJ,cAlBRpI,CAAAA,IAAAA,gBAAAA,MAAAA,SAsBYxpJ,GACjB,OAAOA,EAAM8xJ,cAvBRtI,CAAAA,IAAAA,cAAAA,MAAAA,SA2BUxpJ,GACf,OAAOA,EAAM4nJ,cA5BR4B,CAAAA,IAAAA,QAAAA,MAAAA,SAgCIxpJ,GAET,OADiBA,EAAMA,EAAM4nJ,aACbj2M,QAlCX63M,CAAAA,IAAAA,OAAAA,MAAAA,SAsCGxpJ,GACR,OAAOA,EAAMp+F,OAvCR4nP,CAAAA,IAAAA,kBAAAA,MAAAA,SA2CcxpJ,GACnB,OAAOA,EAAMoyJ,kBA5CR5I,CAAAA,IAAAA,iBAAAA,MAAAA,SAgDaxpJ,GAClB,OAAOA,EAAMqyJ,iBAjDR7I,CAAAA,IAAAA,mBAAAA,MAAAA,SAqDexpJ,GACpB,OAAOA,EAAMsyJ,mBAtDR9I,CAAAA,IAAAA,cAAAA,MAAAA,SA0DUxpJ,GACf,OAAOA,EAAMmyJ,gBA3DR3I,EAAAA,IAAAA,UAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAW,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAXA,GAAW,QAAXA,GAAW,YA0EpB,GAAA,CADC,GAAOrwF,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,aAAA,MAOA,GAAA,CADC,GAAOC,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAoEA,KAApE,GAAA,yBAAA,IAAA,GAAA,UAAA,cAAA,MAYA,GAAA,CADC,GAAOE,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAuDA,KAAvD,GAAA,yBAAA,IAAA,GAAA,UAAA,YAAA,MAOA,GAAA,CADC,GAAOE,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,iBAAA,MAMA,GAAA,CADC,GAAOK,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAA4DA,KAA5D,GAAA,yBAAA,IAAA,GAAA,UAAA,iBAAA,MAiBA,GAAA,CADC,GAAOG,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,mBAAA,MAcA,GAAA,CADC,GAAOE,IACR,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,OAAqDA,KAArD,GAAA,yBAAA,IAAA,GAAA,UAAA,UAAA,MAvIA,GAAA,CADCoiB,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,UAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,OAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,WAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,cAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,gBAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,cAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,QAAA,MAMA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,OAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,kBAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,iBAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,mBAAA,MAKA,GAAA,CADCA,KACD,GAAA,cAAA,UAAA,GAAA,oBAAA,CAAA,SAAA,GAAA,yBAAA,IAAA,GAAA,cAAA,MA1DSktE,GAAW,GAAA,CA9BvB9tE,GAAwB,CACrB3uM,KAAM,cACNgzH,SAAU,CACN7oC,KAAMw9F,GAAWO,OACjB68F,aAAAA,EACAlK,YAAa/yF,GAAW48F,WACxBO,SAAU,GACVJ,YAAah9F,GAAYqB,IACzBm8F,iBAAAA,EACAC,gBAAAA,EACAC,kBAAAA,EACAH,YAAa,KACbvwP,KAAM,KAEVmN,SAAU,CACN,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OAIKy6O,KWzED+I,GAAZ,SAAYA,GAAAA,OACR,EAAA,MAAA,UACA,EAAA,MAAA,UACA,EAAA,MAAA,2CAHQA,EAAZ,CAIC,ICXM,SAASC,GAAsBC,GAElC,MADW,kBACD7jR,KAAK6jR,GAAc,GCC1B,IAAM,GAAA,WAUT,SAAA,EAAYC,EAAYC,GAAAA,gBAAAA,KAAAA,GAFxB,KAAA1mR,IAAmB,KAGfkB,KAAKJ,KAAO2lR,EAAK3lR,KACjBI,KAAKyhB,KAAO8jQ,EAAK9jQ,KACjBzhB,KAAKylR,KCdN,SAAqBF,GACxB,IAAMG,EAAmB,CACrB,GAAM,gBACN,SAAY,gBACZ,IAAO,YACP,IAAO,YACP,IAAO,gBACP,IAAO,aACP,IAAO,YACP,IAAO,YACP,KAAQ,YACR,IAAO,aAGLC,EAAgBJ,EAAK3lR,KAAOylR,GAAsBE,EAAK3lR,MAAQ,KAGrE,OAAI2lR,EAAKp6Q,KACEo6Q,EAAKp6Q,KAIZw6Q,GAAiBD,EAAiBC,GAC3BD,EAAiBC,GAGrB,KA1BJ,CDcyBJ,GACxBvlR,KAAK4lR,aAAeL,EAAKK,aACzB5lR,KAAK6lR,UAAYR,GAAsBE,EAAK3lR,MAC5CI,KAAAA,OAAculR,EACdvlR,KAAKwlR,aAAeA,GAAgBD,EAAKO,oBAAsB,KAc7B50I,OAX/B,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WAAA,IAAA,EAAA,KACH,OAAO,IAAI3hI,SAAQwJ,SAAAA,GACf,IAAMgtQ,EAAS,IAAIp6Q,WAEnBo6Q,EAAOtyP,iBAAiB,QAAQ,WAC5B1a,EAAQgtQ,EAAOriR,WAGI,SAAnB1D,EAAK6lR,UACLE,EAAOC,WAAWhmR,EAAAA,QAElB+lR,EAAOj6Q,cAAc9L,EAAAA,eAAKkxI,EA/B7B,GEKN,SAAS+0I,KAA6C,IAA5Bh9Q,EAA4B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACzD,OAAO,IAAIsG,SAAQwJ,SAAAA,GACf,IAAM7d,ECLP,WAAuD,IAA5B+N,EAA4B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACpDi9Q,EAAMzoR,SAASqpB,cAAc,6BAC/Bo/P,GAAKA,EAAInwQ,SAEb,IAAM7a,EAAQuC,SAAS+M,cAAc,SACrCtP,EAAMiQ,KAAO,OACbjQ,EAAMm0Q,SAAWpmQ,EAAOomQ,SACxBn0Q,EAAMkqK,UAAUr9J,IAAI,UACpB7M,EAAMsR,MAAM+wB,QAAU,OACtBriC,EAAMsR,MAAMgxB,WAAa,SACzBtiC,EAAMuW,GAAK,2BAEX,IAAM00Q,EAAS,GAuBf,OArBIl9Q,EAAOm9Q,aACPn9Q,EAAOm9Q,WAAan9Q,EAAOm9Q,WAAWrxQ,KAAItR,SAAAA,GAAAA,OAC/BA,EAAEqvL,WAAW,KAAOrvL,EAAI,IAAMA,KAEzC0iR,EAAOzlR,KAAKuI,EAAOm9Q,WAAW1gR,KAAK,OAGnCuD,EAAOuhH,OACP27J,EAAOzlR,KAAKuI,EAAOuhH,MAAM9kH,KAAK,MAG/BygR,EAAOnrR,SACNE,EAAMirR,OAASA,EAAOzgR,KAAK,MAG3BuD,EAAOo9Q,YACPnrR,EAAMorR,iBAAAA,GAGV7oR,SAAS6N,KAAKqB,YAAYzR,GAEnBA,EAnCJ,CDKiC+N,GAEhC/N,EAAMqrR,SAAY9iR,SAAAA,GACd,IACI+iR,EAAU//Q,MAAM8tE,KADH9wE,EAAEkH,OAAc,OAE5BoK,KAAIwwQ,SAAAA,GAAAA,OAAQ,IAAI,GAAaA,MAElCxsQ,EAAQytQ,GACRtrR,EAAM6a,UAGVtY,SAAS6N,KAAKqB,YAAYzR,GAC1BA,EAAMurR,WEZP,IAAeC,GAAf,KAAeA,GAAf,WAIH,SAAA,EACctiE,EACA8yD,EACAJ,GAAAA,gBAAAA,KAAAA,GAFA,KAAA1yD,SAAAA,EACA,KAAA8yD,MAAAA,EACA,KAAAJ,KAAAA,EANJ,KAAA6P,YAAkC,GADzC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAaapB,GACLvlR,KAAK2mR,YAAY3rR,QAAQgF,KAAK4mR,kBAErC,IAAMC,EAAS7mR,KAAK2mR,YAAYv1P,MAAK01P,SAAAA,GAAAA,OAC1BA,EAAWC,MAAMxB,MAO5B,OAJIsB,GAAU7mR,KAAKgnR,WACfhnR,KAAKinR,eAAeJ,EAAOK,cAGxB,CAACL,SAAUA,EAAQK,aAAcL,EAASA,EAAOK,aAAe,QAxBxE,CAAA,IAAA,oBAAA,MAAA,SA8BsB3B,GACrB,IAAM37Q,EAAW5J,KAAK+zM,SAASwxE,GAI/B,OAHI37Q,EAASi9Q,QACT7mR,KAAKinR,eAAer9Q,EAASs9Q,cAE1Bt9Q,IAnCR,CAAA,IAAA,iBAAA,MAAA,SAyCsBxK,GACrBY,KAAKk3Q,MAAMj1Q,KAAK7C,OA1CjB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAesnR,IAAe,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAfA,GAAe,QAAfA,GAAe,UAAA,WAFrB,SAAA,ICNMS,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAKM5B,OALN4B,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,SAIJ5B,GACV,OAASvlR,KAAK+mR,MAAMxB,OAAAA,EALN4B,GCFTC,GAAa,CACtB,QACA,KACA,KACA,KACA,KACA,MCJG,SAASC,GAAYC,EAAevoM,GACvC,GAAI/qE,MAAMuR,WAAWlqB,OAAOisR,OAAcC,SAASD,GAAQ,OAAO,KAGlE,IADA,IAAIE,EAAU,EACPF,GAAS,MACZA,GAAS,KACTE,IAGJ,IAAI7hQ,EAAOyhQ,GAAWI,GAUtB,OAROzoM,IACHA,EAUR,SAAsBp5D,GAClB,OAAQA,GACJ,IAAK,KACD,OAAO,EACX,IAAK,KACL,IAAK,KACL,IAAK,KACD,OAAO,EACX,QACI,OAAO,GATnB,CAViCA,IAGhB,UAATA,GAAoB2hQ,EAAQ,IAC5B3hQ,EAAO,QAGJJ,WAAW+hQ,EAAMzsQ,SAASkkE,GAAWl/E,YAAYA,WAAa,IAAM8lB,EChBxE,ICIM8hQ,GCeAC,GChBAC,GHHA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EACctwH,EACAy/G,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV18I,EAAAA,EAAAA,KAAAA,OAHUi9B,OAAAA,EACA,EAAAy/G,KAAAA,EAIV92Q,EAAKknR,aAAelnR,EAAK82Q,KAAK98Q,EAC1B,+BACA,CAACqrB,OAAQgiQ,IAAarnR,EAAKq3J,OAAOjvC,WAN5B0uJ,EAWwBr1P,OAD/B,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM8jQ,GACT,OAAOvlR,KAAKq3J,OAAOjvC,QAAUm9J,EAAK9jQ,SAAAA,EAd7B,CAA2B0lQ,IID3B,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACT,SAAA,EACc9vH,EACAy/G,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAEV18I,EAAAA,EAAAA,KAAAA,OAHUi9B,OAAAA,EACA,EAAAy/G,KAAAA,EAIV92Q,EAAKknR,aAAelnR,EAAK82Q,KAAK98Q,EAC1B,iDACA,CAACosR,WAAYpmR,EAAKq3J,OAAO+uH,WAAW1gR,KAAK,QANnCoxQ,EAY4CpoQ,OAFnD,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAM62Q,GACT,OAASvlR,KAAKq3J,OAAO+uH,WAAWtyL,MAAK+xL,SAAAA,GAAAA,OAC1BA,EAAUn3Q,gBAAkB62Q,EAAKM,UAAUn3Q,qBAAAA,EAfjD,CAAoCy4Q,IHK1C,KAAMM,GAAN,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAHP,SAAA,IAAA,IAAA,EAAA,OAAA,gBAAA,KAAA,IAAA,EAAA,EAAA,MAAA,KAAA,YAIuBG,yBAA2B,GACvC,EAAAZ,WAAAA,EALX,EAGO,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WAKChnR,KAAK2mR,YAAYjmR,KACb,IAAI,GACA,CAAC0nH,QAASpoH,KAAK6nR,kBACf7nR,KAAK82Q,OAIb,IAAMgR,EAAoB9nR,KAAK+nR,uBAE3BD,GAAqBA,EAAkB9sR,QACvCgF,KAAK2mR,YAAYjmR,KAAK,IAAI,GACtB,CAAC0lR,WAAY0B,GAAoB9nR,KAAK82Q,SAhB/C,CAAA,IAAA,iBAAA,MAAA,WAsBC,OAAO92Q,KAAKokN,SAASvhM,IACjB,iCI7BM,QADapd,EJ+BJzF,KAAK4nR,0BI9BD,KAKZniR,EAAQud,KAAKE,IAAI,KAAM,IANnC,IAAwBzd,IJOxB,CAAA,IAAA,uBAAA,MAAA,WA6BC,OAAOzF,KAAKokN,SAASvhM,IAAI,0CA7B1B,EAAA,CAAkC,KAAlC,UAAA,SAAA,GAAA,OAAA,GAAA,GAAM4kQ,KAAAA,GAAAA,WAAAA,GAAAA,CAAAA,MAAAA,GAAmB,QAAnBA,GAAmB,UAAA,WAFhB,SAAA,IAET,GAAA,GAAM,ICeN,KAAMC,GAAN,WACH,SAAA,EACYlmK,EACAtlG,EACAg7P,EACAjuQ,EACAo5G,EACAy+J,EACAhtE,EACAjkF,EACAm4J,EACA1iE,GAAAA,gBAAAA,KAAAA,GATA,KAAA9jG,QAAAA,EACA,KAAAtlG,OAAAA,EACA,KAAAg7P,MAAAA,EACA,KAAAjuQ,OAAAA,EACA,KAAAo5G,MAAAA,EACA,KAAAy+J,SAAAA,EACA,KAAAhtE,UAAAA,EACA,KAAAjkF,MAAAA,EACA,KAAAm4J,UAAAA,EACA,KAAA1iE,KAAAA,EAXT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,WAiB+D,IAAA,EAAA,KAA1C5vM,EAA0C,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAP,CAACvK,KAAM,SAE9D,OAAO86Q,GAAiB,CAACG,WADVpmR,KAAKioR,sBAAsBvyQ,EAAQvK,QACJuE,MAAKk1M,SAAAA,GAAAA,OACxC5kN,EAAKkoR,SAAStjE,EAAM,GAAIlvM,QApBpC,CAAA,IAAA,WAAA,MAAA,SAwBayyQ,GAAsE,IAAA,EAAA,KAA1CzyQ,EAA0C,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAP,CAACvK,KAAM,SAClF,OAAOnL,KAAKooR,mBAAmBD,GAAcz4Q,MAAK61Q,SAAAA,GAAAA,OAC9CvlR,EAAKqoR,0BAA0BF,EAAczyQ,GACzCA,EAAQ4yQ,kBAAuC,SAAnB/C,EAAKM,UAC1B7lR,EAAKuoR,oBAAoBhD,EAAKppR,OAErC6D,EAAKkc,OAAO22G,MAAM4yF,qBAAqBv9M,KAAK,CAACtI,KAAyB,SAAnB2lR,EAAKM,UAAuB,QAAU,eAAgBtvP,SAAAA,IAClGv2B,EAAKwoR,SAASjD,EAAKppR,KAAMopR,EAAKM,WAAWn2Q,MAAK9F,SAAAA,GAAAA,OACjD5J,EAAKkc,OAAO22G,MAAM4yF,qBAAqBv9M,KAAK,CACxCtI,KAAyB,SAAnB2lR,EAAKM,UAAuB,QAAU,eAAgBtvP,SAAAA,IAEzD3sB,SAGhB,iBAtCJ,CAAA,IAAA,mBAAA,MAAA,WA4CI,IAAA,EAAA,KACH,OAAO,IAAI2F,SAAQwJ,SAAAA,GACfktQ,GAAiB,CAACz7J,MAAO,CAAC46J,GAAiB7oO,SAAS7sC,MAAKk1M,SAAAA,GACrD5kN,EAAKooR,mBAAmBxjE,EAAM,IAAIl1M,MAAK61Q,SAAAA,GAAAA,OAAQxsQ,EAAQwsQ,EAAKppR,iBA/CrE,CAAA,IAAA,qBAAA,MAAA,SAuDuBopR,GAAAA,IAAAA,EAAAA,KAChBuB,EAAa9mR,KAAK8zM,UAAUC,SAASwxE,GAC3CM,EAAYN,EAAKM,UAEjB,OAAO,IAAIt2Q,SAAQ,SAACwJ,EAASC,GACzB,GAAI8tQ,EAAWD,OACX,OAAO7tQ,IAGXhZ,EAAKyoR,SAASlD,EAAMM,GAAWn2Q,MAAKvT,SAAAA,GAAAA,OAAQ4c,EAAQ,CAAC5c,KAAAA,EAAM0pR,UAAAA,YAhEhE,CAAA,IAAA,cAAA,MAAA,WAoEsD,IAAtCxuH,EAAsC,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAerD,OAbAr3J,KAAKkc,OAAOnB,SAASokC,QACrBn/C,KAAKqiH,MAAMtsG,SACX/V,KAAK8gR,SAAS/qQ,SACPshJ,EAAOqxH,iBACV1oR,KAAKwhH,QAAQriE,QAIjBn/C,KAAKiJ,OAAOw7M,YAAY,CACpB,cAAe,KACf,wBAAyB,OAGtB,IAAIl1M,SAAQwJ,SAAAA,GAAAA,OAAW1Y,YAAW,WAAA,OAAM0Y,YAnFhD,CAAA,IAAA,WAAA,MAAA,SAsFa5c,GAAwF,IAAzD0pR,EAAyD,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAArC,MAAO98D,EAA8B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAhB/oN,KAAKiJ,OAAO4Z,IAAI,yCAEpG,OADI1mB,aAAgBwsR,mBAAkBxsR,EAAOA,EAAKwR,KAChC,SAAdk4Q,EACO7lR,KAAK4oR,UAAUzsR,GACD,QAAd0pR,EACA7lR,KAAKgoR,UAAU3F,cAAclmR,EAAMuzM,GAAYnzJ,MAAOwsK,GAEtD/oN,KAAKkc,OAAO2sQ,UAAU1sR,EAAM4sN,KA7FxC,CAAA,IAAA,mBAAA,MAAA,SAiGqBjqN,GAAAA,IAAAA,EAAAA,KACpB,OAAOkB,KAAKslN,KAAKziM,IAAI/jB,GAAKqa,YAAYzJ,MAAMmjH,SAAAA,GAAAA,OACjC7yH,EAAK4oR,UAAU/1J,QAnG3B,CAAA,IAAA,YAAA,MAAA,SAuGc12H,GAAAA,IAAAA,EAAAA,KACb,OAAO6D,KAAK8oR,cAAcp5Q,MAAK,WAAA,OACpB1P,EAAKwhH,QAAQunK,YAAY5sR,QAzGrC,CAAA,IAAA,sBAAA,MAAA,SAgHwBA,GAAgF,IAAA,EAAA,KAAjDuZ,EAAiD,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAd,CAACozQ,aAAAA,GAE1F,OADgBpzQ,EAAQozQ,YAAc9oR,KAAK8oR,YAAY,CAACJ,iBAAAA,IAA0B,IAAIn5Q,SAAQwJ,SAAAA,GAAAA,OAAWA,QAC1FrJ,MAAK,WAAA,OACZvT,aAAgBwsR,mBAAkBxsR,EAAOA,EAAKwR,KAC3C3N,EAAKkc,OAAOslQ,cAAcrlR,EAAMuZ,EAAQozQ,kBApHpD,CAAA,IAAA,WAAA,MAAA,SA2HcvD,EAAoBM,GACjC,IAAME,EAAS,IAAIp6Q,WAEnB,OAAO,IAAI4D,SAAQwJ,SAAAA,GACfgtQ,EAAOtyP,iBAAiB,QAAQ,WAC5B1a,EAAQgtQ,EAAOriR,WAGD,SAAdmiR,EACAE,EAAOC,WAAWT,EAAAA,QAElBQ,EAAOj6Q,cAAcy5Q,EAAAA,aAtI9B,CAAA,IAAA,wBAAA,MAAA,WA2IyD,IAA9Bp6Q,EAA8B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,MAClDogL,EAAkBvrL,KAAKiJ,OAAO4Z,IAAI,sCACxC,GAAI0oK,EACA,OAAOA,EAEX,OAAQpgL,GACJ,IAAK,QACD,MAAO,CAAC,WACZ,IAAK,QACD,MAAO,CAAC,QAAS,oBACrB,IAAK,MACL,QACI,MAAO,CAAC,UAAW,QAAS,uBAvJrC,CAAA,IAAA,4BAAA,MAAA,SA2J+Bo6Q,EAAoB7vQ,GAClD,IAAMhR,EAAW1E,KAAKiJ,OAAO4Z,IAAI,oBAC7Bne,GAAUA,EAAS6gR,EAAM7vQ,OA7J9B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMgyQ,IAAiB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAjBA,GAAiB,QAAjBA,GAAiB,YAAA,IIlBjB,GAAA,WAKT,SAAA,EAAoB5qD,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,WAAAA,EAJb,KAAArrN,GAAas+L,GAAa,IACzB,KAAAtqM,MAAQ,IAAI,EA8B+B,OAzB5C,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WACH,OAAOzF,KAAK88N,YAAc98N,KAAK88N,WAAWpD,gBAGvC,CAAA,IAAA,QAAA,MAAA,WACH15N,KAAK88N,YAAc98N,KAAK88N,WAAW/3K,YAGhC,CAAA,IAAA,YAAA,MAAA,SAAUt/C,GACbzF,KAAKyF,MAAMyC,KAAKzC,KAGb,CAAA,IAAA,eAAA,MAAA,WACH,OAAOzF,KAAKyF,MAAM0rL,iBAGf,CAAA,IAAA,aAAA,MAAA,WACH,OAAOnxL,KAAK88N,WAAWc,iBAGpB,CAAA,IAAA,iBAAA,MAAA,WACH,OAAO59N,KAAK88N,WAAWG,mBAGpB,CAAA,IAAA,cAAA,MAAA,WACH,OAAOj9N,KAAK88N,WAAWw5C,cAAcjyQ,KAAKu5L,GAAK,QAAA,EAhC1C,GHEN,KAAM+pF,GAAN,WAIH,SAAA,EACYtyP,EACAyhP,EACA1yD,GAAAA,gBAAAA,KAAAA,GAFA,KAAA/uL,GAAAA,EACA,KAAAyhP,KAAAA,EACA,KAAA1yD,SAAAA,EALJ,KAAAlqF,cAAgC,GAFrC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WAUH,IAAA,EAAA,KACUJ,EAAM95H,KAAK82Q,KAAKhlD,mBAAmBvxN,WAAU,WAAA,OAAMP,EAAKsc,eAC9Dtc,KAAKk6H,cAAcx5H,KAAKo5H,IAEpB95H,KAAKokN,SAASvhM,IAAI,gBAAkB7iB,KAAKgpR,cACzChpR,KAAKsc,cAfV,CAAA,IAAA,YAAA,MAAA,WAoBC,IAAM+Y,EAAKr1B,KAAKq1B,GAAGk1I,cAGnB,GAAIl1I,EAAG6J,aAAa,eAAgB,CAChC,IAAMhjC,EAAMm5B,EAAG6J,aAAa,eAC5B7J,EAAG3oB,aAAa,cAAe1M,KAAK82Q,KAAK98Q,EAAEkC,SAGxC,GAAIm5B,EAAG6J,aAAa,SAAU,CACjC,IAAMhjC,EAAMm5B,EAAG6J,aAAa,SAC5B7J,EAAG3oB,aAAa,QAAS1M,KAAK82Q,KAAK98Q,EAAEkC,SAIrC8D,KAAKipR,qBAAqB5zP,KAlC/B,CAAA,IAAA,uBAAA,MAAA,SAsC0BA,GACzB,IAAMuM,EAAWn7B,MAAM8tE,KAAKl/C,EAAGF,YAG/ByM,EAAS8V,MAAK,SAAC79C,EAAGC,GAAJ,OAAUD,EAAE87B,WAAa+jH,KAAKuB,WAAa,EAAI,KAE7D,IAAK,IAAItgJ,EAAI,EAAGA,EAAIinC,EAAS5mC,OAAQL,IAAK,CACtC,IAAMovH,EAAQnoF,EAASjnC,GACnBiqC,EAAcmlF,EAAMnlF,YAAY5uB,OAEpC,GAAI+zG,EAAMp0F,WAAa+jH,KAAKuB,WAAar2G,EAAY5pC,OAAS,EAC1D,OAAO+uH,EAAMtnF,UAAYziC,KAAK82Q,KAAK98Q,EAAE4qC,EAAa5kC,KAAKgpR,aAEvD,GAAIhpR,KAAKipR,qBAAqBl/J,GAAQ,UAnD/C,CAAA,IAAA,cAAA,MAAA,WAyDC/pH,KAAKk6H,cACAhjH,QAAO4iH,SAAAA,GAAAA,QAASA,KAChBniH,SAAQmiH,SAAAA,GAAAA,OAAOA,EAAIn5H,iBAExBX,KAAKk6H,cAAgB,OA7DtB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMytJ,IAAkB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAlBA,GAAkB,UAAA,CAAA,CAAA,GAAA,QAAA,IAAA,CAAA,GAAA,oBAAA,IAAA,CAAA,GAAA,cAAA,KAAA,OAAA,CAAA,YAAA,iBAAA,IIF/B,SAAS9kQ,GAAI5hB,GACX,OAAO60B,iBAAiB70B,GAG1B,SAAS+gB,GAAI/gB,EAAS+E,GACpB,IAAK,IAAI9J,KAAO8J,EAAK,CACnB,IAAI6sG,EAAM7sG,EAAI9J,GACK,iBAAR22G,IACTA,GAAY,MAEd5xG,EAAQuL,MAAMtQ,GAAO22G,EAEvB,OAAO5xG,EAGT,SAAS2lB,GAAItZ,GACX,IAAIsZ,EAAMnpB,SAAS+M,cAAc,OAEjC,OADAoc,EAAItZ,UAAYA,EACTsZ,EAGT,IAAIsiQ,GACiB,oBAAZt3P,UACNA,QAAQ1sB,UAAUwgJ,SACjB9zH,QAAQ1sB,UAAUggP,uBAClBtzN,QAAQ1sB,UAAU6/O,oBAClBnzN,QAAQ1sB,UAAU8/O,mBAEtB,SAAS,GAAQ/jP,EAASwzL,GACxB,IAAKy0F,GACH,MAAM,IAAIrjR,MAAM,wCAGlB,OAAOqjR,GAAUzqR,KAAKwC,EAASwzL,GAGjC,SAAS,GAAOxzL,GACVA,EAAQ8U,OACV9U,EAAQ8U,SAEJ9U,EAAQkM,YACVlM,EAAQkM,WAAWC,YAAYnM,GAKrC,SAASkoR,GAAcloR,EAAS69B,GAC9B,OAAOr4B,MAAMvB,UAAUgS,OAAOzY,KAAKwC,EAAQ2gC,UAAU,SAAUmoF,GAAS,OAAO,GAAQA,EAAOjrF,MAIhG,IAAIkgG,GAIO,SAAUxlI,GAAK,MAAQ,aAAeA,GAJ7CwlI,GAKM,SAAUxlI,GAAK,MAAQ,YAAcA,GAL3CwlI,GAWQ,SAAUxlI,GAAK,MAAQ,cAAgBA,GAX/CwlI,GAYW,SAAUxlI,GAAK,MAAQ,iBAAmBA,GAOrD4vR,GAAwB,CAAE5vR,EAAG,KAAMC,EAAG,MAE1C,SAAS4vR,GAAkB1uR,EAAGnB,GAC5B,IAAI4rK,EAAYzqK,EAAEsG,QAAQmkK,UACtB93J,EAAY0xH,GAAoBxlI,GAEhC4rK,EAAU1jJ,SAASpU,GACrBsC,aAAaw5Q,GAAsB5vR,IAEnC4rK,EAAUr9J,IAAIuF,GAIlB,SAASg8Q,GAAqB3uR,EAAGnB,GAC/B4vR,GAAsB5vR,GAAK6G,YACzB,WAAc,OAAO1F,EAAE4uR,SAAW5uR,EAAEsG,QAAQmkK,UAAUrvJ,OAAOipH,GAAoBxlI,MACjFmB,EAAEypN,SAASolE,oBASf,IAAIC,GAAe,SAAsBxoR,GACvCjB,KAAKiB,QAAUA,EACfjB,KAAKjC,SAAW,IAGd2rR,GAAqB,CAAEloQ,QAAS,CAAE0tL,cAAAA,IAEtCu6E,GAAavkR,UAAU6D,KAAO,SAAe+W,EAAWtf,QAAAA,IAC3CR,KAAKjC,SAAS+hB,KACvB9f,KAAKjC,SAAS+hB,GAAa,IAE7B9f,KAAKjC,SAAS+hB,GAAWpf,KAAKF,GAC9BR,KAAKiB,QAAQwyB,iBAAiB3T,EAAWtf,GAAAA,IAG3CipR,GAAavkR,UAAUykR,OAAS,SAAiB7pQ,EAAWnV,GACxD,IAAIi/Q,EAAS5pR,KAEfA,KAAKjC,SAAS+hB,GAAa9f,KAAKjC,SAAS+hB,GAAW5I,QAAO,SAAU1W,GACnE,SAAImK,GAAUnK,IAAYmK,KAG1Bi/Q,EAAO3oR,QAAQ0yB,oBAAoB7T,EAAWtf,GAAAA,IAAS,OAK3DipR,GAAavkR,UAAU2kR,UAAY,WACjC,IAAK,IAAIjqR,KAAQI,KAAKjC,SACpBiC,KAAK2pR,OAAO/pR,IAIhB8pR,GAAmBloQ,QAAQqB,IAAM,WAC7B,IAAI+mQ,EAAS5pR,KAEf,OAAO+F,OAAOP,KAAKxF,KAAKjC,UAAUk1O,OAChC,SAAU/2O,GAAO,OAAuC,IAAhC0tR,EAAO7rR,SAAS7B,GAAKlB,WAIjD+K,OAAOipM,iBAAkBy6E,GAAavkR,UAAWwkR,IAEjD,IAAI,GAAe,WACjB1pR,KAAK8pR,cAAgB,IAwCvB,SAAS//Q,GAAYnK,GACnB,GAAkC,mBAAvB1C,OAAO6sR,YAChB,OAAO,IAAIA,YAAYnqR,GAEvB,IAAI68D,EAAMh/D,SAASsM,YAAY,eAE/B,OADA0yD,EAAIutN,gBAAgBpqR,GAAAA,GAAM,OAAO,GAC1B68D,EAIX,SAASwtN,GACPtvR,EACAwuO,EACAp9I,EACAm+L,EACAC,GAKA,IAAIC,EACJ,QAAA,IAJKF,IAA+BA,GAAAA,QAAoB,IACnDC,IAAiCA,GAAAA,GAGzB,QAAThhD,EACFihD,EAAS,CACP,gBACA,kBACA,YACA,IACA,KACA,YACG,CAAA,GAAa,SAATjhD,EAST,MAAM,IAAItjO,MAAM,oCARhBukR,EAAS,CACP,eACA,iBACA,aACA,IACA,OACA,UAQN,SACEzvR,EACAoxF,EACAsvI,EACA6uD,EACAC,GAEA,IAAIE,EAAgBhvD,EAAI,GACpBivD,EAAkBjvD,EAAI,GACtB5lM,EAAY4lM,EAAI,GAChB5hO,EAAI4hO,EAAI,GACRkvD,EAAKlvD,EAAI,GACTmvD,EAAOnvD,EAAI,QAAA,IACV6uD,IAA+BA,GAAAA,QAAoB,IACnDC,IAAiCA,GAAAA,GAEtC,IAAIlpR,EAAUtG,EAAEsG,QAGhBtG,EAAE8vR,MAAMhxR,GAAK,KAGTwH,EAAQw0B,GAAa,IACvB96B,EAAE8vR,MAAMhxR,GAAK,SAIXwH,EAAQw0B,GAAa96B,EAAE0vR,GAAiB1vR,EAAE2vR,GAAmB,IAC/D3vR,EAAE8vR,MAAMhxR,GAAK,OAGXsyF,IACF9qF,EAAQ4I,cAAcE,GAAa,aAAetQ,IAE9CsyF,EAAO,EACT9qF,EAAQ4I,cAAcE,GAAa,aAAewgR,IACzCx+L,EAAO,GAChB9qF,EAAQ4I,cAAcE,GAAa,aAAeygR,IAGhDN,GA7KR,SAAoCvvR,EAAGnB,GACrC6vR,GAAkB1uR,EAAGnB,GACrB8vR,GAAqB3uR,EAAGnB,GAF1B,CA8KiCmB,EAAGlB,IAI9BkB,EAAE8vR,MAAMhxR,KAAOsyF,GAAQo+L,IACzBlpR,EAAQ4I,cAAcE,GAAa,MAAQtQ,EAAI,UAAakB,EAAE8vR,MAAMhxR,KA9CxE,CAHsBkB,EAAGoxF,EAAMq+L,EAAQF,EAAmBC,GAqD1D,SAASO,GAAMlxR,GACb,OAAO6U,SAAS7U,EAAG,KAAO,EApI5B,GAAa0L,UAAUylR,aAAe,SAAuB1pR,GAC3D,IAAI2pR,EAAK5qR,KAAK8pR,cAAc5yQ,QAAO,SAAU0zQ,GAAM,OAAOA,EAAG3pR,UAAYA,KAAY,GAKrF,OAJK2pR,IACHA,EAAK,IAAInB,GAAaxoR,GACtBjB,KAAK8pR,cAAcppR,KAAKkqR,IAEnBA,GAGT,GAAa1lR,UAAU6D,KAAO,SAAe9H,EAAS6e,EAAWtf,GAC/DR,KAAK2qR,aAAa1pR,GAAS8H,KAAK+W,EAAWtf,IAG7C,GAAa0E,UAAUykR,OAAS,SAAiB1oR,EAAS6e,EAAWtf,GACnE,IAAIoqR,EAAK5qR,KAAK2qR,aAAa1pR,GAC3B2pR,EAAGjB,OAAO7pQ,EAAWtf,GAEjBoqR,EAAGppQ,SAELxhB,KAAK8pR,cAAclpR,OAAOZ,KAAK8pR,cAAcloR,QAAQgpR,GAAK,IAI9D,GAAa1lR,UAAU2kR,UAAY,WACjC7pR,KAAK8pR,cAAcnyQ,SAAQ,SAAUlU,GAAK,OAAOA,EAAEomR,eACnD7pR,KAAK8pR,cAAgB,IAGvB,GAAa5kR,UAAU2lR,KAAO,SAAe5pR,EAAS6e,EAAWtf,GAC/D,IAAIoqR,EAAK5qR,KAAK2qR,aAAa1pR,GAK3B2pR,EAAG7hR,KAAK+W,GAJU,SAAdgrQ,EAAwBruN,GAC1BmuN,EAAGjB,OAAO7pQ,EAAWgrQ,GACrBtqR,EAAQi8D,OA2HZ,IAAIsuN,GAAM,CACRC,SACsB,oBAAbvtR,UACP,qBAAsBA,SAASsP,gBAAgBP,MACjDy+Q,cACoB,oBAAX/tR,SACN,iBAAkBA,QAChB,mBAAoBA,OAAO4N,WAC1B5N,OAAO4N,UAAU8S,eAAiB,GACnC1gB,OAAOguR,eAAiBztR,oBAAoBP,OAAOguR,eACxDC,kBACuB,oBAAdrgR,WAA6BA,UAAUsgR,iBAChDC,SACuB,oBAAdvgR,WACP,UAAUI,KAAKJ,WAAaA,UAAUY,YAG1C,SAAS4/Q,GAAe3wR,GACtB,IAAIsG,EAAUtG,EAAEsG,QACZsqR,EAAmBvoQ,KAAKa,MAAM5iB,EAAQw0B,WACtC60B,EAAOrpD,EAAQw2B,wBAEnB98B,EAAE6wR,eAAiBxoQ,KAAK2L,KAAK27B,EAAK5tC,OAClC/hB,EAAE2vR,gBAAkBtnQ,KAAK2L,KAAK27B,EAAK/tC,QACnC5hB,EAAE8wR,aAAexqR,EAAQs7N,YACzB5hO,EAAE0vR,cAAgBppR,EAAQq7N,aAErBr7N,EAAQygB,SAAS/mB,EAAE+wR,kBAEtBvC,GAAcloR,EAAS+9H,GAAiB,MAAMrnH,SAAQ,SAAU0d,GAAM,OAAO,GAAOA,MAEpFp0B,EAAQ0L,YAAYhS,EAAE+wR,iBAEnBzqR,EAAQygB,SAAS/mB,EAAEgxR,kBAEtBxC,GAAcloR,EAAS+9H,GAAiB,MAAMrnH,SAAQ,SAAU0d,GAAM,OAAO,GAAOA,MAEpFp0B,EAAQ0L,YAAYhS,EAAEgxR,kBAIrBhxR,EAAEypN,SAASwnE,iBACZjxR,EAAE6wR,eAAiB7wR,EAAEypN,SAASynE,oBAAsBlxR,EAAE8wR,cAEtD9wR,EAAEmxR,kBAAAA,EACFnxR,EAAEoxR,WAAapxR,EAAE6wR,eAAiB7wR,EAAEqxR,iBACpCrxR,EAAEsxR,WAAatxR,EAAE6wR,eAAiB7wR,EAAEoxR,WACpCpxR,EAAEuxR,gBAAkBC,GAClBxxR,EACA+vR,GAAO/vR,EAAEoxR,WAAapxR,EAAE6wR,eAAkB7wR,EAAE8wR,eAE9C9wR,EAAEyxR,eAAiB1B,IACf/vR,EAAE0xR,yBAA2BprR,EAAQu0B,aACpC76B,EAAEoxR,WAAapxR,EAAEuxR,kBACjBvxR,EAAE8wR,aAAe9wR,EAAE6wR,kBAGxB7wR,EAAEmxR,kBAAAA,GAIDnxR,EAAEypN,SAASkoE,iBACZ3xR,EAAE2vR,gBAAkB3vR,EAAEypN,SAASmoE,oBAAsB5xR,EAAE0vR,eAEvD1vR,EAAE6xR,kBAAAA,EACF7xR,EAAE8xR,YAAc9xR,EAAE2vR,gBAAkB3vR,EAAE+xR,kBACtC/xR,EAAEgyR,WAAahyR,EAAE2vR,gBAAkB3vR,EAAE8xR,YACrC9xR,EAAEiyR,iBAAmBT,GACnBxxR,EACA+vR,GAAO/vR,EAAE8xR,YAAc9xR,EAAE2vR,gBAAmB3vR,EAAE0vR,gBAEhD1vR,EAAEkyR,cAAgBnC,GACfa,GAAoB5wR,EAAE8xR,YAAc9xR,EAAEiyR,mBACpCjyR,EAAE0vR,cAAgB1vR,EAAE2vR,mBAGzB3vR,EAAE6xR,kBAAAA,EAGA7xR,EAAEyxR,gBAAkBzxR,EAAEoxR,WAAapxR,EAAEuxR,kBACvCvxR,EAAEyxR,eAAiBzxR,EAAEoxR,WAAapxR,EAAEuxR,iBAElCvxR,EAAEkyR,eAAiBlyR,EAAE8xR,YAAc9xR,EAAEiyR,mBACvCjyR,EAAEkyR,cAAgBlyR,EAAE8xR,YAAc9xR,EAAEiyR,kBAiCxC,SAAmB3rR,EAAStG,GAC1B,IAAImyR,EAAc,CAAEpwQ,MAAO/hB,EAAEoxR,YACzBR,EAAmBvoQ,KAAKa,MAAM5iB,EAAQw0B,WAGxCq3P,EAAY5nQ,KADVvqB,EAAEmtO,MAEFntO,EAAE0xR,yBACFprR,EAAQu0B,WACR76B,EAAE6wR,eACF7wR,EAAE8wR,aAEexqR,EAAQu0B,WAEzB76B,EAAEoyR,wBACJD,EAAYl2N,OAASj8D,EAAEqyR,iBAAmBzB,EAE1CuB,EAAY3nQ,IAAMxqB,EAAEsyR,cAAgB1B,EAEtCvpQ,GAAIrnB,EAAE+wR,eAAgBoB,GAEtB,IAAII,EAAc,CAAE/nQ,IAAKomQ,EAAkBhvQ,OAAQ5hB,EAAE8xR,aACjD9xR,EAAEwyR,uBAEFD,EAAYr2N,MADVl8D,EAAEmtO,MAEFntO,EAAE8wR,cACD9wR,EAAE0xR,yBAA2BprR,EAAQu0B,YACtC76B,EAAEyyR,gBACFzyR,EAAE0yR,qBACF,EAEkB1yR,EAAEyyR,gBAAkBnsR,EAAQu0B,WAIhD03P,EAAYhoQ,KADVvqB,EAAEmtO,MAEFntO,EAAE0xR,yBACFprR,EAAQu0B,WACW,EAAnB76B,EAAE6wR,eACF7wR,EAAE8wR,aACF9wR,EAAE2yR,eACF3yR,EAAE0yR,qBAEe1yR,EAAE2yR,eAAiBrsR,EAAQu0B,WAGlDxT,GAAIrnB,EAAEgxR,eAAgBuB,GAEtBlrQ,GAAIrnB,EAAE4yR,WAAY,CAChBroQ,KAAMvqB,EAAEyxR,eACR1vQ,MAAO/hB,EAAEuxR,gBAAkBvxR,EAAE6yR,mBAE/BxrQ,GAAIrnB,EAAE8yR,WAAY,CAChBtoQ,IAAKxqB,EAAEkyR,cACPtwQ,OAAQ5hB,EAAEiyR,iBAAmBjyR,EAAE+yR,mBArDnC,CA9BYzsR,EAAStG,GAEfA,EAAEmxR,iBACJ7qR,EAAQmkK,UAAUr9J,IAAIi3H,GAAiB,OAEvC/9H,EAAQmkK,UAAUrvJ,OAAOipH,GAAiB,MAC1CrkI,EAAEuxR,gBAAkB,EACpBvxR,EAAEyxR,eAAiB,EACnBnrR,EAAQu0B,YAAAA,IAAa76B,EAAEmtO,MAAiBntO,EAAE8wR,aAAe,GAEvD9wR,EAAE6xR,iBACJvrR,EAAQmkK,UAAUr9J,IAAIi3H,GAAiB,OAEvC/9H,EAAQmkK,UAAUrvJ,OAAOipH,GAAiB,MAC1CrkI,EAAEiyR,iBAAmB,EACrBjyR,EAAEkyR,cAAgB,EAClB5rR,EAAQw0B,UAAY,GAIxB,SAAS02P,GAAaxxR,EAAGgzR,GAOvB,OANIhzR,EAAEypN,SAASwpE,qBACbD,EAAY3qQ,KAAKvI,IAAIkzQ,EAAWhzR,EAAEypN,SAASwpE,qBAEzCjzR,EAAEypN,SAASypE,qBACbF,EAAY3qQ,KAAKxI,IAAImzQ,EAAWhzR,EAAEypN,SAASypE,qBAEtCF,EAmHT,SAASG,GACPnzR,EACA0gO,GAEA,IAAIivD,EAAkBjvD,EAAI,GACtBgvD,EAAgBhvD,EAAI,GACpB0yD,EAAQ1yD,EAAI,GACZoxD,EAAcpxD,EAAI,GAClBoyD,EAAapyD,EAAI,GACjBuxD,EAAmBvxD,EAAI,GACvB5lM,EAAY4lM,EAAI,GAChB5hO,EAAI4hO,EAAI,GACRswD,EAAiBtwD,EAAI,GAErBp6N,EAAUtG,EAAEsG,QAEZ+sR,EAAoB,KACpBC,EAAqB,KACrBC,EAAW,KAEf,SAASlrL,EAAiBv/F,GACpBA,EAAEo5D,SAAWp5D,EAAEo5D,QAAQ,KACzBp5D,EAAEsqR,GAAStqR,EAAEo5D,QAAQ,GAAGkxN,OAE1B9sR,EAAQw0B,GACNu4P,EAAoBE,GAAYzqR,EAAEsqR,GAASE,GAC7C5E,GAAkB1uR,EAAGlB,GACrB6xR,GAAe3wR,GAEf8I,EAAE24D,kBACF34D,EAAEy4D,iBAGJ,SAAS6tC,IACPu/K,GAAqB3uR,EAAGlB,GACxBkB,EAAEgxR,GAAgBvmH,UAAUrvJ,OAnflB,gBAofVpb,EAAEk5B,MAAM81P,OAAOhvR,EAAEu8B,cAAe,YAAa8rE,GAG/C,SAASmrL,EAAU1qR,EAAG2qR,GACpBJ,EAAoB/sR,EAAQw0B,GACxB24P,GAAa3qR,EAAEo5D,UACjBp5D,EAAEsqR,GAAStqR,EAAEo5D,QAAQ,GAAGkxN,OAE1BE,EAAqBxqR,EAAEsqR,GACvBG,GACGvzR,EAAE0vR,GAAiB1vR,EAAE2vR,KACrB3vR,EAAE8xR,GAAe9xR,EAAEiyR,IACjBwB,EAKHzzR,EAAEk5B,MAAM9qB,KAAKpO,EAAEu8B,cAAe,YAAa8rE,IAJ3CroG,EAAEk5B,MAAM9qB,KAAKpO,EAAEu8B,cAAe,YAAa8rE,GAC3CroG,EAAEk5B,MAAMg3P,KAAKlwR,EAAEu8B,cAAe,UAAW6yE,GACzCtmG,EAAEy4D,kBAKJvhE,EAAEgxR,GAAgBvmH,UAAUr9J,IAxgBlB,gBA0gBVtE,EAAE24D,kBAGJzhE,EAAEk5B,MAAM9qB,KAAKpO,EAAE8yR,GAAa,aAAa,SAAUhqR,GACjD0qR,EAAU1qR,MAEZ9I,EAAEk5B,MAAM9qB,KAAKpO,EAAE8yR,GAAa,cAAc,SAAUhqR,GAClD0qR,EAAU1qR,GAAAA,MAigBd,IAeI1F,GAAW,CACb,aAzoBF,SAAmBpD,GAGjBA,EAAEk5B,MAAM9qB,KAAKpO,EAAE8yR,WAAY,aAAa,SAAUhqR,GAAK,OAAOA,EAAE24D,qBAChEzhE,EAAEk5B,MAAM9qB,KAAKpO,EAAEgxR,eAAgB,aAAa,SAAUloR,GACpD,IAAI4qR,EACF5qR,EAAEsqR,MACF7wR,OAAOoxR,YACP3zR,EAAEgxR,eAAel0P,wBAAwBtS,IAG3CxqB,EAAEsG,QAAQw0B,YAFM44P,EAAc1zR,EAAEkyR,cAAgB,GAAK,GAElBlyR,EAAE2vR,gBACrCgB,GAAe3wR,GAEf8I,EAAE24D,qBAGJzhE,EAAEk5B,MAAM9qB,KAAKpO,EAAE4yR,WAAY,aAAa,SAAU9pR,GAAK,OAAOA,EAAE24D,qBAChEzhE,EAAEk5B,MAAM9qB,KAAKpO,EAAE+wR,eAAgB,aAAa,SAAUjoR,GACpD,IAAI8qR,EACF9qR,EAAE+qR,MACFtxR,OAAOuxR,YACP9zR,EAAE+wR,eAAej0P,wBAAwBvS,KAG3CvqB,EAAEsG,QAAQu0B,aAFM+4P,EAAe5zR,EAAEyxR,eAAiB,GAAK,GAEnBzxR,EAAE6wR,eACtCF,GAAe3wR,GAEf8I,EAAE24D,sBA8mBJ,aA1mBF,SAAmBzhE,GACjBmzR,GAAuBnzR,EAAG,CACxB,iBACA,eACA,QACA,aACA,aACA,kBACA,aACA,IACA,mBACFmzR,GAAuBnzR,EAAG,CACxB,kBACA,gBACA,QACA,cACA,aACA,mBACA,YACA,IACA,oBAulBF+zR,SA/gBF,SAAkB/zR,GAChB,IAAIsG,EAAUtG,EAAEsG,QAkChBtG,EAAEk5B,MAAM9qB,KAAKpO,EAAEu8B,cAAe,WAAW,SAAUzzB,GACjD,KACGA,EAAEkrR,oBAAsBlrR,EAAEkrR,sBAC3BlrR,EAAEmrR,oBAnCoC,GAAQ3tR,EAAS,WACf,GAAQtG,EAAE4yR,WAAY,WAAa,GAAQ5yR,EAAE8yR,WAAY,WAuCnG,CAIA,IA5WgBp4P,EA4WZw5P,EAAgBpxR,SAASoxR,cACzBpxR,SAASoxR,cACTl0R,EAAEu8B,cAAc23P,cACpB,GAAIA,EAAe,CACjB,GAA8B,WAA1BA,EAAc/gR,QAChB+gR,EAAgBA,EAAcC,gBAAgBD,mBAG9C,KAAOA,EAAcnwC,YACnBmwC,EAAgBA,EAAcnwC,WAAWmwC,cAG7C,GAtXF,GAFgBx5P,EAwXCw5P,EAtXL,4BACZ,GAAQx5P,EAAI,6BACZ,GAAQA,EAAI,+BACZ,GAAQA,EAAI,4BAoXR,OAIJ,IAAIg4F,EAAS,EACTr8C,EAAS,EAEb,OAAQvtE,EAAEorH,OACR,KAAK,GAEDxB,EADE5pH,EAAEwoG,SACMtxG,EAAE8wR,aACHhoR,EAAE4sD,QACD11D,EAAE6wR,gBAEF,GAEZ,MACF,KAAK,GAEDx6M,EADEvtE,EAAEwoG,QACKtxG,EAAE0vR,cACF5mR,EAAE4sD,OACF11D,EAAE2vR,gBAEF,GAEX,MACF,KAAK,GAEDj9J,EADE5pH,EAAEwoG,QACKtxG,EAAE8wR,aACFhoR,EAAE4sD,OACF11D,EAAE6wR,eAEF,GAEX,MACF,KAAK,GAEDx6M,EADEvtE,EAAEwoG,SACMtxG,EAAE0vR,cACH5mR,EAAE4sD,QACD11D,EAAE2vR,iBAEF,GAEZ,MACF,KAAK,GAEDt5M,EADEvtE,EAAEqtD,SACKn2D,EAAE2vR,iBAED3vR,EAAE2vR,gBAEd,MACF,KAAK,GACHt5M,EAASr2E,EAAE2vR,gBACX,MACF,KAAK,GACHt5M,GAAUr2E,EAAE2vR,gBACZ,MACF,KAAK,GACHt5M,EAASr2E,EAAE0vR,cACX,MACF,KAAK,GACHr5M,GAAUr2E,EAAE0vR,cACZ,MACF,QACE,OAGA1vR,EAAEypN,SAASwnE,iBAA8B,IAAXv+J,GAG9B1yH,EAAEypN,SAASkoE,iBAA8B,IAAXt7M,IAIlC/vE,EAAQw0B,WAAau7C,EACrB/vE,EAAQu0B,YAAc63F,EACtBi+J,GAAe3wR,GAlIjB,SAA8B0yH,EAAQr8C,GACpC,IAAIv7C,EAAYzS,KAAKa,MAAM5iB,EAAQw0B,WACnC,GAAe,IAAX43F,EAAc,CAChB,IAAK1yH,EAAE6xR,iBACL,OAAA,EAEF,GACiB,IAAd/2P,GAAmBu7C,EAAS,GAC5Bv7C,GAAa96B,EAAE0vR,cAAgB1vR,EAAE2vR,iBAAmBt5M,EAAS,EAE9D,OAAQr2E,EAAEypN,SAAS2qE,iBAIvB,IAAIv5P,EAAav0B,EAAQu0B,WACzB,GAAe,IAAXw7C,EAAc,CAChB,IAAKr2E,EAAEmxR,iBACL,OAAA,EAEF,GACkB,IAAft2P,GAAoB63F,EAAS,GAC7B73F,GAAc76B,EAAE8wR,aAAe9wR,EAAE6wR,gBAAkBn+J,EAAS,EAE7D,OAAQ1yH,EAAEypN,SAAS2qE,iBAGvB,OAAA,EA1BF,CAoI2B1hK,EAAQr8C,IAC/BvtE,EAAEy4D,uBAqYN8yN,MAhYF,SAAer0R,GACb,IAAIsG,EAAUtG,EAAEsG,QAsGhB,SAASguR,EAAkBxrR,GACzB,IAAI43N,EAhFN,SAA2B53N,GACzB,IAAI4pH,EAAS5pH,EAAE4pH,OACXr8C,GAAU,EAAIvtE,EAAEutE,OAoBpB,YAAA,IAlBWq8C,QAAAA,IAAiCr8C,IAE1Cq8C,GAAW,EAAI5pH,EAAEyrR,YAAe,EAChCl+M,EAASvtE,EAAE0rR,YAAc,GAGvB1rR,EAAE2rR,WAA6B,IAAhB3rR,EAAE2rR,YAEnB/hK,GAAU,GACVr8C,GAAU,IAGRq8C,GAAWA,GAAUr8C,GAAWA,IAElCq8C,EAAS,EACTr8C,EAASvtE,EAAE4rR,YAGT5rR,EAAEqtD,SAEG,EAAEkgB,GAASq8C,GAEb,CAACA,EAAQr8C,GA1BlB,CAgF8BvtE,GACxB4pH,EAASguG,EAAI,GACbrqJ,EAASqqJ,EAAI,GAEjB,IAvDF,SAAiC1wN,EAAQ0iH,EAAQr8C,GAE/C,IAAK+5M,GAAIC,UAAY/pR,EAAQ6lB,cAAc,gBACzC,OAAA,EAGF,IAAK7lB,EAAQygB,SAAS/W,GACpB,OAAA,EAKF,IAFA,IAAIwqD,EAASxqD,EAENwqD,GAAUA,IAAWl0D,GAAS,CACnC,GAAIk0D,EAAOiwG,UAAU1jJ,SA3uBZ,sBA4uBP,OAAA,EAGF,IAAIlV,EAAQqW,GAAIsyC,GAGhB,GAAI6b,GAAUxkE,EAAM8iR,UAAUxvR,MAAM,iBAAkB,CACpD,IAAIyvR,EAAep6N,EAAOmnK,aAAennK,EAAOsxC,aAChD,GAAI8oL,EAAe,IAEdp6N,EAAO1/B,UAAY,GAAKu7C,EAAS,GACjC7b,EAAO1/B,UAAY85P,GAAgBv+M,EAAS,GAE7C,OAAA,EAKN,GAAIq8C,GAAU7gH,EAAMgjR,UAAU1vR,MAAM,iBAAkB,CACpD,IAAI2vR,EAAgBt6N,EAAOonK,YAAcpnK,EAAOqxC,YAChD,GAAIipL,EAAgB,IAEft6N,EAAO3/B,WAAa,GAAK63F,EAAS,GAClCl4D,EAAO3/B,WAAai6P,GAAiBpiK,EAAS,GAE/C,OAAA,EAKNl4D,EAASA,EAAOhoD,WAGlB,OAAA,EA/CF,CAuD8B1J,EAAEkH,OAAQ0iH,EAAQr8C,GAA9C,CAIA,IAAI0+M,GAAAA,EACC/0R,EAAEypN,SAASurE,iBAKLh1R,EAAE6xR,mBAAqB7xR,EAAEmxR,kBAG9B96M,EACF/vE,EAAQw0B,WAAau7C,EAASr2E,EAAEypN,SAASwrE,WAEzC3uR,EAAQw0B,WAAa43F,EAAS1yH,EAAEypN,SAASwrE,WAE3CF,GAAAA,GACS/0R,EAAEmxR,mBAAqBnxR,EAAE6xR,mBAG9Bn/J,EACFpsH,EAAQu0B,YAAc63F,EAAS1yH,EAAEypN,SAASwrE,WAE1C3uR,EAAQu0B,YAAcw7C,EAASr2E,EAAEypN,SAASwrE,WAE5CF,GAAAA,IAnBAzuR,EAAQw0B,WAAau7C,EAASr2E,EAAEypN,SAASwrE,WACzC3uR,EAAQu0B,YAAc63F,EAAS1yH,EAAEypN,SAASwrE,YAqB5CtE,GAAe3wR,IAEf+0R,EAAgBA,GAzIlB,SAA8BriK,EAAQr8C,GACpC,IAAIu6M,EAAmBvoQ,KAAKa,MAAM5iB,EAAQw0B,WACtCo6P,EAA8B,IAAtB5uR,EAAQw0B,UAChBq6P,EACFvE,EAAmBtqR,EAAQizO,eAAiBjzO,EAAQq7N,aAClDs6C,EAAgC,IAAvB31Q,EAAQu0B,WACjB43E,EACFnsG,EAAQu0B,WAAav0B,EAAQmP,cAAgBnP,EAAQs7N,YAWvD,QANIv5M,KAAK6K,IAAImjD,GAAUhuD,KAAK6K,IAAIw/F,GAClBwiK,GAASC,EAETlZ,GAAUxpK,KAGJzyG,EAAEypN,SAAS2qE,iBAlBjC,CAyIwD1hK,EAAQr8C,MACxCvtE,EAAEuoG,UACtBvoG,EAAE24D,kBACF34D,EAAEy4D,wBAAAA,IAIKh/D,OAAO6yR,QAChBp1R,EAAEk5B,MAAM9qB,KAAK9H,EAAS,QAASguR,QAAAA,IACf/xR,OAAO8yR,cACvBr1R,EAAEk5B,MAAM9qB,KAAK9H,EAAS,aAAcguR,IA2OtC79J,MAvOF,SAAez2H,GACb,GAAKowR,GAAIE,eAAkBF,GAAII,kBAA/B,CAIA,IAAIlqR,EAAUtG,EAAEsG,QAuCZgvR,EAAc,GACdvvM,EAAY,EACZwvM,EAAQ,GACRC,EAAa,KAmJbpF,GAAIE,eACNtwR,EAAEk5B,MAAM9qB,KAAK9H,EAAS,aAAcmvR,GACpCz1R,EAAEk5B,MAAM9qB,KAAK9H,EAAS,YAAaovR,GACnC11R,EAAEk5B,MAAM9qB,KAAK9H,EAAS,WAAYqvR,IACzBvF,GAAII,oBACTjuR,OAAO8yH,cACTr1H,EAAEk5B,MAAM9qB,KAAK9H,EAAS,cAAemvR,GACrCz1R,EAAEk5B,MAAM9qB,KAAK9H,EAAS,cAAeovR,GACrC11R,EAAEk5B,MAAM9qB,KAAK9H,EAAS,YAAaqvR,IAC1BpzR,OAAO6yH,iBAChBp1H,EAAEk5B,MAAM9qB,KAAK9H,EAAS,gBAAiBmvR,GACvCz1R,EAAEk5B,MAAM9qB,KAAK9H,EAAS,gBAAiBovR,GACvC11R,EAAEk5B,MAAM9qB,KAAK9H,EAAS,cAAeqvR,KAzKzC,SAASC,EAAeC,EAAaC,GACnCxvR,EAAQw0B,WAAag7P,EACrBxvR,EAAQu0B,YAAcg7P,EAEtBlF,GAAe3wR,GAQjB,SAAS+1R,EAASjtR,GAChB,OAAIA,EAAEytH,cACGztH,EAAEytH,cAAc,GAGhBztH,EAIX,SAASktR,EAAaltR,GACpB,QAAIA,EAAEqrH,aAAiC,QAAlBrrH,EAAEqrH,aAAuC,IAAdrrH,EAAE6zO,WAG9C7zO,EAAEytH,eAA4C,IAA3BztH,EAAEytH,cAAcl2H,WAIrCyI,EAAEqrH,aACgB,UAAlBrrH,EAAEqrH,aACFrrH,EAAEqrH,cAAgBrrH,EAAEmtR,uBAOxB,SAASR,EAAW3sR,GAClB,GAAKktR,EAAaltR,GAAlB,CAIA,IAAI2tH,EAAQs/J,EAASjtR,GAErBwsR,EAAYzB,MAAQp9J,EAAMo9J,MAC1ByB,EAAYlC,MAAQ38J,EAAM28J,MAE1BrtM,GAAY,IAAIx0E,MAAO8uO,UAEJ,OAAfm1C,GACF9iG,cAAc8iG,IAiDlB,SAASE,EAAU5sR,GACjB,GAAIktR,EAAaltR,GAAI,CACnB,IAAI2tH,EAAQs/J,EAASjtR,GAEjBotR,EAAgB,CAAErC,MAAOp9J,EAAMo9J,MAAOT,MAAO38J,EAAM28J,OAEnDyC,EAAcK,EAAcrC,MAAQyB,EAAYzB,MAChDiC,EAAcI,EAAc9C,MAAQkC,EAAYlC,MAEpD,GAtDJ,SAAiCpjR,EAAQ0iH,EAAQr8C,GAC/C,IAAK/vE,EAAQygB,SAAS/W,GACpB,OAAA,EAKF,IAFA,IAAIwqD,EAASxqD,EAENwqD,GAAUA,IAAWl0D,GAAS,CACnC,GAAIk0D,EAAOiwG,UAAU1jJ,SAv6BZ,sBAw6BP,OAAA,EAGF,IAAIlV,EAAQqW,GAAIsyC,GAGhB,GAAI6b,GAAUxkE,EAAM8iR,UAAUxvR,MAAM,iBAAkB,CACpD,IAAIyvR,EAAep6N,EAAOmnK,aAAennK,EAAOsxC,aAChD,GAAI8oL,EAAe,IAEdp6N,EAAO1/B,UAAY,GAAKu7C,EAAS,GACjC7b,EAAO1/B,UAAY85P,GAAgBv+M,EAAS,GAE7C,OAAA,EAKN,GAAIq8C,GAAU7gH,EAAMgjR,UAAU1vR,MAAM,iBAAkB,CACpD,IAAI2vR,EAAgBt6N,EAAOonK,YAAcpnK,EAAOqxC,YAChD,GAAIipL,EAAgB,IAEft6N,EAAO3/B,WAAa,GAAK63F,EAAS,GAClCl4D,EAAO3/B,WAAai6P,GAAiBpiK,EAAS,GAE/C,OAAA,EAKNl4D,EAASA,EAAOhoD,WAGlB,OAAA,EA1CF,CAsDgC1J,EAAEkH,OAAQ6lR,EAAaC,GACjD,OAGFF,EAAeC,EAAaC,GAC5BR,EAAcY,EAEd,IAAI12P,GAAc,IAAIjuB,MAAO8uO,UAEzB81C,EAAU32P,EAAcumD,EACxBowM,EAAU,IACZZ,EAAM12R,EAAIg3R,EAAcM,EACxBZ,EAAMz2R,EAAIg3R,EAAcK,EACxBpwM,EAAYvmD,GAxJlB,SAAuBkzF,EAAQr8C,GAC7B,IAAIv7C,EAAYzS,KAAKa,MAAM5iB,EAAQw0B,WAC/BD,EAAav0B,EAAQu0B,WACrBu7P,EAAa/tQ,KAAK6K,IAAIw/F,GACtB2jK,EAAahuQ,KAAK6K,IAAImjD,GAE1B,GAAIggN,EAAaD,GAGf,GACG//M,EAAS,GAAKv7C,IAAc96B,EAAE0vR,cAAgB1vR,EAAE2vR,iBAChDt5M,EAAS,GAAmB,IAAdv7C,EAGf,OAA0B,IAAnBv4B,OAAO+7N,SAAiBjoJ,EAAS,GAAK+5M,GAAIM,cAE9C,GAAI0F,EAAaC,IAInB3jK,EAAS,GAAK73F,IAAe76B,EAAE8wR,aAAe9wR,EAAE6wR,gBAChDn+J,EAAS,GAAoB,IAAf73F,GAEf,OAAA,EAIJ,OAAA,EA3BF,CA2JsBg7P,EAAaC,IAC7BhtR,EAAEy4D,kBAIR,SAASo0N,IACH31R,EAAEypN,SAAS6sE,cACb5jG,cAAc8iG,GACdA,EAAahjG,aAAY,WACnBxyL,EAAEu2R,cACJ7jG,cAAc8iG,GAIXD,EAAM12R,GAAM02R,EAAMz2R,EAKnBupB,KAAK6K,IAAIqiQ,EAAM12R,GAAK,KAAQwpB,KAAK6K,IAAIqiQ,EAAMz2R,GAAK,IAClD4zL,cAAc8iG,IAIhBI,EAAyB,GAAVL,EAAM12R,EAAkB,GAAV02R,EAAMz2R,GAEnCy2R,EAAM12R,GAAK,GACX02R,EAAMz2R,GAAK,IAZT4zL,cAAc8iG,KAaf,QA4CLgB,GAAmB,SAA0BlwR,EAASmwR,GACxD,IAAIxH,EAAS5pR,KAOb,QAAA,IANKoxR,IAA0BA,EAAe,IAEvB,iBAAZnwR,IACTA,EAAUxD,SAASqpB,cAAc7lB,KAG9BA,IAAYA,EAAQ+9B,SACvB,MAAM,IAAIn5B,MAAM,0DAQlB,IAAK,IAAI3J,KALT8D,KAAKiB,QAAUA,EAEfA,EAAQmkK,UAAUr9J,IAhkCZ,MAkkCN/H,KAAKokN,SAvCoC,CACzCrmN,SAAU,CAAC,aAAc,aAAc,WAAY,QAAS,SAC5D8vR,mBAAoB,KACpBD,mBAAoB,KACpBpE,mBAAoB,IACpBqC,oBAAqB,EACrBU,oBAAqB,EACrBX,iBAAAA,EACAU,iBAAAA,EACA2E,aAAAA,EACAtB,kBAAAA,EACAZ,kBAAAA,EACAa,WAAY,GA4BIwB,EACdpxR,KAAKokN,SAASloN,GAAOk1R,EAAal1R,GAGpC8D,KAAKwrR,eAAiB,KACtBxrR,KAAKsqR,gBAAkB,KACvBtqR,KAAKyrR,aAAe,KACpBzrR,KAAKqqR,cAAgB,KAErB,IASM3mR,EADA2tR,EARFx1N,EAAQ,WAAc,OAAO56D,EAAQmkK,UAAUr9J,IApkC1C,cAqkCLoxC,EAAO,WAAc,OAAOl4C,EAAQmkK,UAAUrvJ,OArkCzC,cAukCT/V,KAAK8nO,MAAmC,QAA3BjlN,GAAI5hB,GAASwjG,WAAAA,IACtBzkG,KAAK8nO,OACP7mO,EAAQmkK,UAAUr9J,IAhlCf,WAklCL/H,KAAKsxR,kBACCD,EAAqBpwR,EAAQu0B,WAEjCv0B,EAAQu0B,YAAc,EACtB9xB,EAASzC,EAAQu0B,WAAa,EAC9Bv0B,EAAQu0B,WAAa67P,EACd3tR,GAET1D,KAAKqsR,yBAA2BrsR,KAAKsxR,iBACjCrwR,EAAQs7N,YAAct7N,EAAQulG,YAC9B,EACJxmG,KAAK6zB,MAAQ,IAAI,GACjB7zB,KAAKk3B,cAAgBj2B,EAAQi2B,eAAiBz5B,SAE9CuC,KAAK0rR,eAAiB9kQ,GAAIo4G,GAAiB,MAC3C/9H,EAAQ0L,YAAY3M,KAAK0rR,gBACzB1rR,KAAKutR,WAAa3mQ,GAAIo4G,GAAkB,MACxCh/H,KAAK0rR,eAAe/+Q,YAAY3M,KAAKutR,YACrCvtR,KAAKutR,WAAW7gR,aAAa,WAAY,GACzC1M,KAAK6zB,MAAM9qB,KAAK/I,KAAKutR,WAAY,QAAS1xN,GAC1C77D,KAAK6zB,MAAM9qB,KAAK/I,KAAKutR,WAAY,OAAQp0O,GACzCn5C,KAAK8rR,iBAAmB,KACxB9rR,KAAKksR,gBAAkB,KACvBlsR,KAAKosR,eAAiB,KACtB,IAAImF,EAAa1uQ,GAAI7iB,KAAK0rR,gBAC1B1rR,KAAKgtR,iBAAmB3+Q,SAASkjR,EAAW36N,OAAQ,IAChD5iD,MAAMhU,KAAKgtR,mBACbhtR,KAAK+sR,yBAAAA,EACL/sR,KAAKitR,cAAgBvC,GAAM6G,EAAWpsQ,MAEtCnlB,KAAK+sR,yBAAAA,EAEP/sR,KAAKwtR,iBACH9C,GAAM6G,EAAWl6P,iBAAmBqzP,GAAM6G,EAAWC,kBAEvDxvQ,GAAIhiB,KAAK0rR,eAAgB,CAAEnuP,QAAS,UACpCv9B,KAAKgsR,iBACHtB,GAAM6G,EAAW3oG,YAAc8hG,GAAM6G,EAAW7lD,aAClD1pN,GAAIhiB,KAAK0rR,eAAgB,CAAEnuP,QAAS,KACpCv9B,KAAK+rR,WAAa,KAClB/rR,KAAKisR,WAAa,KAElBjsR,KAAK2rR,eAAiB/kQ,GAAIo4G,GAAiB,MAC3C/9H,EAAQ0L,YAAY3M,KAAK2rR,gBACzB3rR,KAAKytR,WAAa7mQ,GAAIo4G,GAAkB,MACxCh/H,KAAK2rR,eAAeh/Q,YAAY3M,KAAKytR,YACrCztR,KAAKytR,WAAW/gR,aAAa,WAAY,GACzC1M,KAAK6zB,MAAM9qB,KAAK/I,KAAKytR,WAAY,QAAS5xN,GAC1C77D,KAAK6zB,MAAM9qB,KAAK/I,KAAKytR,WAAY,OAAQt0O,GACzCn5C,KAAKwsR,iBAAmB,KACxBxsR,KAAK4sR,iBAAmB,KACxB5sR,KAAK6sR,cAAgB,KACrB,IAAI4E,EAAa5uQ,GAAI7iB,KAAK2rR,gBAC1B3rR,KAAKotR,gBAAkB/+Q,SAASojR,EAAW56N,MAAO,IAC9C7iD,MAAMhU,KAAKotR,kBACbptR,KAAKmtR,wBAAAA,EACLntR,KAAKstR,eAAiB5C,GAAM+G,EAAWvsQ,OAEvCllB,KAAKmtR,wBAAAA,EAEPntR,KAAKqtR,qBAAuBrtR,KAAK8nO,MAr6BnC,SAAoB7mO,GAClB,IAAI0zB,EAAS9R,GAAI5hB,GACjB,OACEypR,GAAM/1P,EAAOjY,OACbguQ,GAAM/1P,EAAO4C,aACbmzP,GAAM/1P,EAAO+8P,cACbhH,GAAM/1P,EAAO0C,iBACbqzP,GAAM/1P,EAAO68P,kBAPjB,CAq6BsDxxR,KAAKytR,YAAc,KACvEztR,KAAK0tR,iBACHhD,GAAM+G,EAAWn6P,gBAAkBozP,GAAM+G,EAAWE,mBACtD3vQ,GAAIhiB,KAAK2rR,eAAgB,CAAEpuP,QAAS,UACpCv9B,KAAK0sR,kBACHhC,GAAM+G,EAAWjmD,WAAak/C,GAAM+G,EAAWhmD,cACjDzpN,GAAIhiB,KAAK2rR,eAAgB,CAAEpuP,QAAS,KACpCv9B,KAAKysR,YAAc,KACnBzsR,KAAK2sR,WAAa,KAElB3sR,KAAKyqR,MAAQ,CACXjxR,EACEyH,EAAQu0B,YAAc,EAClB,QACAv0B,EAAQu0B,YAAcx1B,KAAKyrR,aAAezrR,KAAKwrR,eAC/C,MACA,KACN/xR,EACEwH,EAAQw0B,WAAa,EACjB,QACAx0B,EAAQw0B,WAAaz1B,KAAKqqR,cAAgBrqR,KAAKsqR,gBAC/C,MACA,MAGRtqR,KAAKupR,SAAAA,EAELvpR,KAAKokN,SAASrmN,SAAS4Z,SAAQ,SAAUi6Q,GAAe,OAAO7zR,GAAS6zR,GAAahI,MAErF5pR,KAAK6xR,cAAgB7uQ,KAAKa,MAAM5iB,EAAQw0B,WACxCz1B,KAAK8xR,eAAiB7wR,EAAQu0B,WAC9Bx1B,KAAK6zB,MAAM9qB,KAAK/I,KAAKiB,QAAS,UAAU,SAAUwC,GAAK,OAAOmmR,EAAOmI,SAAStuR,MAC9E6nR,GAAetrR,OAGjBmxR,GAAiBjsR,UAAU8vH,OAAS,WAC7Bh1H,KAAKupR,UAKVvpR,KAAKqsR,yBAA2BrsR,KAAKsxR,iBACjCtxR,KAAKiB,QAAQs7N,YAAcv8N,KAAKiB,QAAQulG,YACxC,EAGJxkF,GAAIhiB,KAAK0rR,eAAgB,CAAEnuP,QAAS,UACpCvb,GAAIhiB,KAAK2rR,eAAgB,CAAEpuP,QAAS,UACpCv9B,KAAKgsR,iBACHtB,GAAM7nQ,GAAI7iB,KAAK0rR,gBAAgB9iG,YAC/B8hG,GAAM7nQ,GAAI7iB,KAAK0rR,gBAAgBhgD,aACjC1rO,KAAK0sR,kBACHhC,GAAM7nQ,GAAI7iB,KAAK2rR,gBAAgBngD,WAC/Bk/C,GAAM7nQ,GAAI7iB,KAAK2rR,gBAAgBlgD,cAGjCzpN,GAAIhiB,KAAK0rR,eAAgB,CAAEnuP,QAAS,SACpCvb,GAAIhiB,KAAK2rR,eAAgB,CAAEpuP,QAAS,SAEpC+tP,GAAetrR,MAEfiqR,GAAkBjqR,KAAM,MAAO,GAAA,GAAG,GAClCiqR,GAAkBjqR,KAAM,OAAQ,GAAA,GAAG,GAEnCgiB,GAAIhiB,KAAK0rR,eAAgB,CAAEnuP,QAAS,KACpCvb,GAAIhiB,KAAK2rR,eAAgB,CAAEpuP,QAAS,OAGtC4zP,GAAiBjsR,UAAU6sR,SAAW,SAAmBtuR,GAClDzD,KAAKupR,UAIV+B,GAAetrR,MACfiqR,GAAkBjqR,KAAM,MAAOA,KAAKiB,QAAQw0B,UAAYz1B,KAAK6xR,eAC7D5H,GACEjqR,KACA,OACAA,KAAKiB,QAAQu0B,WAAax1B,KAAK8xR,gBAGjC9xR,KAAK6xR,cAAgB7uQ,KAAKa,MAAM7jB,KAAKiB,QAAQw0B,WAC7Cz1B,KAAK8xR,eAAiB9xR,KAAKiB,QAAQu0B,aAGrC27P,GAAiBjsR,UAAUi1E,QAAU,WAC9Bn6E,KAAKupR,UAIVvpR,KAAK6zB,MAAMg2P,YACX,GAAO7pR,KAAKutR,YACZ,GAAOvtR,KAAKytR,YACZ,GAAOztR,KAAK0rR,gBACZ,GAAO1rR,KAAK2rR,gBACZ3rR,KAAKgyR,kBAGLhyR,KAAKiB,QAAU,KACfjB,KAAKutR,WAAa,KAClBvtR,KAAKytR,WAAa,KAClBztR,KAAK0rR,eAAiB,KACtB1rR,KAAK2rR,eAAiB,KAEtB3rR,KAAKupR,SAAAA,IAGP4H,GAAiBjsR,UAAU8sR,gBAAkB,WAC3ChyR,KAAKiB,QAAQqM,UAAYtN,KAAKiB,QAAQqM,UACnC9L,MAAM,KACN0V,QAAO,SAAUtX,GAAQ,OAAQA,EAAKE,MAAM,oBAC5C4F,KAAK,MAGK,IChzCFusR,GDgzCE,GAAA,GEzzCFC,GAAoC,IAAInvJ,GAAwB,oCAAqC,CAC9GjD,WAAY,OACZxqH,QAAS,WAEL,IAA6C,IAAzCxK,UAAUY,UAAU9J,QAAQ,SACzBkJ,UAAUqnR,WAAWvwR,QAAQ,aAAe,EAC/C,OAAA,EAIJ,IAAMsJ,EAAOzN,SAAS+M,cAAc,OACpCU,EAAKoC,UAAY,YACjBpC,EAAKsB,MAAM4lR,SAAW,SACtBlnR,EAAKsB,MAAMkQ,MAAQ,OAGnB,IAAMlQ,EAAQ/O,SAAS+M,cAAc,SACrCgC,EAAMosI,UAAY,gDAGlB1tI,EAAKyB,YAAYH,GACjB/O,SAAS6N,KAAKqB,YAAYzB,GAG1B,IAAMxH,EAA6B,IAApBwH,EAAKqxN,YAKpB,OAFA9+N,SAAS6N,KAAK8B,YAAYlC,GAEnBxH,KDpBR,KAAMuuR,GAAN,WAkCH,SAAA,EACY58P,EACA8tD,EACAivL,EACAvtF,EACAwtG,EACAppR,EAC2CqpR,GAAAA,gBAAAA,KAAAA,GAN3C,KAAAj9P,GAAAA,EACA,KAAA8tD,SAAAA,EACA,KAAAivL,YAAAA,EACA,KAAAvtF,OAAAA,EACA,KAAAwtG,wBAAAA,EACA,KAAAppR,OAAAA,EAC2C,KAAAqpR,sBAAAA,EAxC/C,KAAAp4J,cAAgC,GAKL,KAAAm5E,UAAY,IAKtC,KAAAk/E,WAAAA,EAOD,KAAA98P,UAAY,EAKZ,KAAA,QAAAy7G,EASA,KAAAshJ,UAAY,IAAI,EAhCrB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WA8CKxyR,KAAKmjF,SAASzsD,SAAS12B,KAAKq1B,GAAGk1I,cAD/BvqK,KAAKuyR,UACyC,mBAEA,sBAG9CvyR,KAAKyyR,oBAETzyR,KAAK0yR,UAAY,IAAI,GAAiB1yR,KAAKq1B,GAAGk1I,cAAe,CACzDqjH,mBAAoB5tR,KAAKqzM,UACzBu4E,gBAAiB5rR,KAAKuyR,UACtB5C,kBAAmB3vR,KAAKuyR,UACxB3C,WAAY,IAGhB5vR,KAAAA,QAAKkxI,EAELlxI,KAAK2yR,yBA9DN,CAAA,IAAA,SAAA,MAAA,WAqEK3yR,KAAAA,QACJA,KAAK0yR,UAAU19J,WAtEhB,CAAA,IAAA,eAAA,MAAA,WA4EyB,IAARvvH,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EACxBzF,KAAKq1B,GAAGk1I,cAAc90I,UAAYhwB,EAClCzF,KAAKy1B,UAAYz1B,KAAKq1B,GAAGk1I,cAAc90I,UACvCz1B,KAAKg1H,WA/EN,CAAA,IAAA,cAAA,MAAA,WAmFCh1H,KAAKk6H,cAAcviH,SAAQmiH,SAAAA,GAAAA,OAAOA,EAAIn5H,iBACtCX,KAAKk6H,cAAgB,GAEdl6H,KAAAA,QACHA,KAAK0yR,UAAUv4M,UAInBn6E,KAAKwyR,UAAUjrR,WACfvH,KAAKu5H,UAAYv5H,KAAKu5H,SAASk2G,eA5FhC,CAAA,IAAA,kBAAA,MAAA,WAmGC,OAAIzvO,KAAKiJ,OAAO4Z,IAAI,gCAChB,OAAO3X,KAAKJ,UAAUY,eACtB1L,KAAKoyQ,YAAY6R,UAAUx+Q,OACxBzF,KAAKsyR,yBAtGb,CAAA,IAAA,sBAAA,MAAA,WA4GK,IAAA,EAAA,KACJtyR,KAAKu5H,SAAWv5H,KAAK6kL,OAAOzE,mBAAkB,WAAA,OACnCpgL,EAAKqyR,wBAAwBxrR,QAAQwoO,SAAAA,GACxCrvO,EAAKwyR,UAAUtqR,KAAKmnO,SAI5BrvO,KAAKu5H,SAASp5G,QAAQngB,KAAKq1B,GAAGk1I,cAAe,CACzCglE,WAAAA,EACAC,SAAAA,IAGJxvO,KAAK6kL,OAAOzE,mBAAkB,WAC1BpgL,EAAKwyR,UAAUjyR,WAAW8uO,SAAAA,GAAAA,OAAgCrvO,EAAKg1H,mBAzHpE,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMi9J,IAAwB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAyCrBC,MAAAA,GAAAA,UAAAA,GAAAA,CAAAA,KAzCHD,GAAwB,UAAA,CAAA,CAAA,GAAA,kBAAA,KAAA,OAAA,CAAA,UAAA,CAAA,2BAAA,aAAA,UAAA,eAAA,IAA9B,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KETP,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GAAuC,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,sBAAmC,GAAA,EAAA,cAAU,KACpF,GAAA,EAAA,SAAA,GAA0C,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAASW,sBAAA,MAAA,MAAwC,GAAA,EAAA,cAAU,KACzG,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAGI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,OAAA,IAAuE,GAAA,YAAA,WAAA,OAAA,GAAA,GAAA,KAAA,qBACnE,GAAA,EAAA,MAAA,IACI,GAAA,EAAA,QAAA,IAAyB,GAAA,EAAA,SAAK,KAC9B,GAAA,EAAA,QAAA,IACJ,KAEA,GAAA,EAAA,MAAA,IACI,GAAA,EAAA,QAAA,IAA0B,GAAA,EAAA,UAAM,KAChC,GAAA,EAAA,QAAA,IACJ,KAEA,GAAA,GAAA,MAAA,IACI,GAAA,GAAA,SAAA,IAAiC,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAASA,sBAAA,MAAA,MAAyC,GAAA,GAAA,UAAM,KACzF,GAAA,GAAA,SAAA,IAA6D,GAAA,GAAA,UAAM,KACvE,KACJ,KACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAhB+C,GAAA,GAAA,GAAA,YAAA,EAAA,gBAAA,SAAA,GAAA,EAAA,GAAA,EAAA,IAmBnD,GAAA,EAAA,MAAA,IACI,GAAA,EAAA,MACA,GAAA,EAAA,OAAA,IAAyB,GAAA,EAAA,mBAAe,KAC5C,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAGI,GAAA,EAAA,MAAA,IAA0E,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,WAAA,MAA1E,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAK,GAAA,MAAA,KAAA,aAAA,GAAA,GAAA,KClBF,IAAMC,GCXAC,GCCAC,GCMAC,GCeAC,GCdAC,GCLAC,GNQN,KAAMN,GAAN,WASH,SAAA,EACWO,EACCnqR,EACAoqR,EACAn3Q,GAAAA,gBAAAA,KAAAA,GAHD,KAAAk3Q,WAAAA,EACC,KAAAnqR,OAAAA,EACA,KAAAoqR,SAAAA,EACA,KAAAn3Q,OAAAA,EAZL,KAAAo3Q,cAAgB,IAAI/2E,GAAU,CACjC7/L,MAAO,IAAIugM,GAAY,KACvB1gM,OAAQ,IAAI0gM,GAAY,OAGrB,KAAA21E,sBAAwB,IAAI,IAAA,GAS/B5yR,KAAK+pL,aAAe/pL,KAAKiJ,OAAO4Z,IAAI,yCAfrC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,WAkBI,IAAA,EAAA,KACH7iB,KAAKozR,WAAWG,iBAAiB,CAACjL,kBAAAA,IAAyB54Q,MAAK,WAAA,OAAM1P,EAAK69N,aAnB5E,CAAA,IAAA,aAAA,MAAA,SAsBe21D,GAAAA,IAAAA,EAAAA,KACd,GAA6B,mBAAlBA,EAAOpjO,OACdojO,EAAOpjO,aACJ,CACH,IAAMqjO,EAAYzzR,KAAK0zR,aAAaF,GAChCC,EAAU5gG,SAAS,SACnB7yL,KAAKozR,WAAWO,iBAAiBF,GAAW/jR,MAAK,WAAA,OAAM1P,EAAK69N,WAE5D79N,KAAKozR,WAAW7K,oBAAoBkL,GAC/B/jR,MAAK,WAAA,OAAM1P,EAAK69N,cA/B9B,CAAA,IAAA,kBAAA,MAAA,WAoCI,IAAA,EAAA,KACGnhN,EAAQ1c,KAAKszR,cAAczwQ,IAAI,SAASpd,MAC1C8W,EAASvc,KAAKszR,cAAczwQ,IAAI,UAAUpd,MAE9CzF,KAAKiJ,OAAO+Y,IAAI,wBAAyB,CAACtF,MAAAA,EAAOH,OAAAA,IACjDvc,KAAKkc,OAAO03Q,QAAQl3Q,EAAOH,GAAQ7M,MAAK,WAAA,OAAM1P,EAAK69N,aAzCpD,CAAA,IAAA,QAAA,MAAA,WA6CC79N,KAAKqzR,SAASx1D,UA7Cf,CAAA,IAAA,eAAA,MAAA,SAgDiBthL,GAAmC,IAAfs3O,EAAe,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAC7C/0R,EAAOy9C,EAAMytI,WAAa6pG,EAAgBt3O,EAAMytI,UAAYztI,EAAMz9C,IAExE,OAA2B,IAAvBA,EAAI8C,QAAQ,MACL5B,KAAKiJ,OAAOkhN,YAAYrrN,GAAAA,GAExBA,MAtDZ,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM+zR,IAA6B,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA7BA,GAA6B,UAAA,CAAA,CAAA,4BAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,QAAA,IAAA,CAAA,QAAA,UAAA,EAAA,OAAA,YAAA,CAAA,sBAAA,IAAA,CAAA,QAAA,YAAA,EAAA,QAAA,CAAA,kBAAA,GAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,MAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,WAAA,CAAA,kBAAA,GAAA,QAAA,SAAA,QAAA,GAAA,EAAA,SAAA,CAAA,qBAAA,GAAA,QAAA,SAAA,QAAA,GAAA,EAAA,SAAA,CAAA,EAAA,wBAAA,CAAA,mBAAA,GAAA,EAAA,cAAA,EAAA,YAAA,YAAA,CAAA,EAAA,mBAAA,CAAA,MAAA,QAAA,QAAA,IAAA,CAAA,OAAA,SAAA,KAAA,QAAA,MAAA,IAAA,kBAAA,SAAA,CAAA,MAAA,SAAA,QAAA,IAAA,CAAA,OAAA,SAAA,KAAA,SAAA,MAAA,IAAA,kBAAA,UAAA,CAAA,EAAA,gBAAA,CAAA,OAAA,SAAA,aAAA,GAAA,QAAA,GAAA,EAAA,SAAA,CAAA,OAAA,SAAA,oBAAA,GAAA,QAAA,SAAA,QAAA,IAAA,CAAA,EAAA,aAAA,CAAA,QAAA,GAAA,EAAA,QAAA,CAAA,EAAA,MAAA,UAAA,SAAA,SAAA,EAAA,GAAA,GAAA,EAAA,IDhB1C,GAAA,EAAA,KAAA,GAAU,GAAA,EAAA,0CAAsC,KAEhD,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAFA,GAAA,EAAA,SAOA,GAAA,EAAA,GAAA,GAAA,EAAA,cAAA,KAAA,EAAA,IAqBA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAKA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GACJ,MCnB0C,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GDdrB,GAAA,GAAA,GAAA,QAAA,GAAA,EAAA,EAAA,EAAA,uBAAA,CAAkE,WAAA,GA0BhE,GAAA,GAAA,GAAA,OAAA,EAAA,aAAA,QAKc,GAAA,GAAA,GAAA,aAAA,GACM,GAAA,GAAA,GAAA,UAAA,EAAA,gBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,8iDAAA,cAAA,EAAA,gBAAA,IAAA,IQhC9BiB,GAAqB,IAAI/wJ,GAAoB,sBCA7CgxJ,GAAAA,WAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,GAQqC,OARrCA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,SAAAA,MAAAA,cAGF,CAAA,IAAA,SAAA,MAAA,WACHt2R,SAASsP,gBAAgBq4J,UAAUr9J,IAAI,uCAGpC,CAAA,IAAA,UAAA,MAAA,WACHtK,SAASsP,gBAAgBq4J,UAAUrvJ,OAAO,yCAAA,EARrCg+Q,GJgBP,GAAiB,CACnB51D,aAAAA,EACA61D,sBAAAA,EACA91D,WAAY,iBAMT,KAAM+0D,GAAN,WACH,SAAA,EACWvwO,EACC0vN,EACA3uI,GAAAA,gBAAAA,KAAAA,GAFD,KAAA/gF,QAAAA,EACC,KAAA0vN,YAAAA,EACA,KAAA3uI,SAAAA,EAJT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAOYwwJ,EAA0C/d,GACrD,IAAMjtQ,EAASlD,OAAOkjH,OAAO,GAAI,GAAgBitJ,GAC3Cge,EAAY,CACd1zD,iBAAkBxgO,KAAKm0R,oBAAoBlrR,GAC3Ck1N,YAAal1N,EAAOk1N,YACpBD,WAAYj1N,EAAOi1N,WACnBE,cAAen1N,EAAOm1N,cACtBH,eAAgBj+N,KAAKo0R,kBAAkBnrR,GACvCo1N,qBAAAA,GAGAp1N,EAAOyT,QAAOw3Q,EAAUx3Q,MAAQzT,EAAOyT,OACvCzT,EAAOsT,SAAQ23Q,EAAU33Q,OAAStT,EAAOsT,QAE7C,IAAMugN,EAAa98N,KAAK0iD,QAAQ77C,OAAOqtR,GACjCG,EAAkB,IAAI,GAAmBv3D,GACzC1C,EAAS65D,aAAe/iH,GAC1B,IAAI6oD,GAAek6D,EAAKhrR,EAAO6wN,iBAAkB7wN,EAAO9M,MACxD,IAAI09N,GAAgBo6D,EAAK,KAAMj0R,KAAKs0R,eAAerrR,EAAQorR,IAU/D,OATAA,EAAgB7kI,aAAestE,EAAWlD,OAAOQ,GAE7CnxN,EAAO+qR,uBACPl3D,EAAWkQ,gBAAgBzsO,WAAU,WAAA,OAAM8zR,EAAgBx2D,WAC3Df,EAAW4Q,gBACNrpO,KAAK,IAAOZ,SAAAA,GAAAA,OpFzBd,KoFyBmBA,EAAEsoG,YACnBxrG,WAAU,WAAA,OAAM8zR,EAAgBx2D,YAGlCw2D,IAnCR,CAAA,IAAA,oBAAA,MAAA,SAsCuBprR,GACtB,OAAIA,EAAOsrR,WACA,IAAIR,GACsB,UAA1B9qR,EAAOg1N,eACPj+N,KAAK0iD,QAAQkpL,iBAAiB/N,QAE9B,OA5CZ,CAAA,IAAA,iBAAA,MAAA,SAgDoB50N,EAA4BurR,GAC/C,IAAMC,EAAkB,IAAInxB,QAG5B,OAFAmxB,EAAgBzyQ,IAAI,GAAiBwyQ,GACrCC,EAAgBzyQ,IAAI8xQ,GAAoB7qR,EAAO9M,MAAQ,MAChD,IAAIm/N,GAAet7N,KAAKyjI,SAAUgxJ,KApD1C,CAAA,IAAA,sBAAA,MAAA,SAuDyBxrR,GACxB,GAAIA,EAAOu3N,iBACP,OAAOv3N,EAAOu3N,iBAGlB,IAAM35M,EAAW7mB,KAAKoyQ,YAAY6R,UAAUx+Q,OACvCwD,EAAOyrR,gBACRzrR,EAAO4d,SAEX,MAAsB,WAAlB5d,EAAOzG,QAAuBxC,KAAK20R,iBAAiB9tQ,GAC7C7mB,KAAK40R,0BAA0B/tQ,GAE/B7mB,KAAK60R,6BAA6BhuQ,EAAU5d,EAAOzG,UAnE/D,CAAA,IAAA,mBAAA,MAAA,SAuEsBqkB,GACrB,MAAoB,WAAbA,IAA0BpgB,MAAMqQ,QAAQ+P,KAxEhD,CAAA,IAAA,4BAAA,MAAA,SA2E+BA,GAC9B,GAAiB,WAAbA,EACA,OAAO7mB,KAAK0iD,QAAQ77B,WAAW1pB,SAAS05Q,qBAAqBie,mBAE7D,IAAM33R,EAAS6C,KAAK0iD,QAAQ77B,WAAW1pB,SAIvC,OAHA4I,OAAOP,KAAKqhB,GAAUlP,SAAQzb,SAAAA,GAC1BiB,EAAOjB,GAAK2qB,EAAS3qB,OAElBiB,IAnFZ,CAAA,IAAA,+BAAA,MAAA,SAuFkC0pB,EAAgCrkB,GACjE,OAAOxC,KAAK0iD,QAAQ77B,WACfonN,oBAAoBzrO,GACpB8nO,cAAczjN,GACdmjN,UAAAA,GACAC,mBAAmB,OA5FzB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMgpD,IAAY,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAZA,GAAY,QAAZA,GAAY,UAAA,WAFT,SAAA,IDbT,KAAMD,GAAN,WAGH,SAAA,EACYrtE,EACA18M,EACA8rR,EACAllK,GAAAA,gBAAAA,KAAAA,GAHA,KAAA81F,YAAAA,EACA,KAAA18M,OAAAA,EACA,KAAA8rR,aAAAA,EACA,KAAAllK,MAAAA,EAPT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WAUI,IAAA,EAAA,KACH,GAAO7vH,KAAKg1R,4BAAZ,CAEA,IAAMx0D,EAAmBxgO,KAAK+0R,aAAaryO,QAAQ77B,WAC9ConN,oBAAoB,IAAI3jE,GAAWtqK,KAAK2lN,YAAY3nK,YACpDssL,cAAc,CAAC,CAAC9L,SAAU,SAAUC,SAAU,SAAUn1K,QAAS,SAAUC,QAAS,YAEzFvpD,KAAKi1R,oBAAsBj1R,KAAK+0R,aAAa9yR,KACzC,GACA,CACIk8N,aAAAA,EACA61D,sBAAAA,EACAxzD,iBAAkBA,EAClBtC,WAAY,CAAC,iBAAkB,wBAIvCl+N,KAAKi1R,oBAAoBC,cAAc30R,WAAU,WAC7CP,EAAKi1R,oBAAsB,WA5BhC,CAAA,IAAA,aAAA,MAAA,WAiCQj1R,KAAKi1R,qBACZj1R,KAAKi1R,oBAAoBh4D,mBAlC1B,CAAA,IAAA,4BAAA,MAAA,WAyCC,OAAOj9N,KAAK6vH,MAAM6pJ,eAAe,GAAYz7O,WACxCj+B,KAAKi1R,wBA1CX,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMjC,IAA2B,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAA3BA,GAA2B,QAA3BA,GAA2B,UAAA,WAFxB,SAAA,IDJT,KAAMD,GAAN,WACH,SAAA,EAAoBljK,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,MAAAA,EADjB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,SAGcjwH,GACbI,KAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUvsL,MAJnC,CAAA,IAAA,oBAAA,MAAA,WAQCI,KAAK6vH,MAAMi+D,SAAS,IAAIzB,QARzB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM0mG,IAAqB,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAArBA,GAAqB,QAArBA,GAAqB,YAAA,IDD3B,KAAMD,GAAN,WAKH,SAAA,EAAoB52Q,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,EALjB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,SAUW/Q,EAAsBoY,EAAekhF,GAClC,UAATt5F,EACAnL,KAAKm1R,YAAY5xQ,GAEjBvjB,KAAKo1R,WAAW7xQ,EAAOkhF,KAd5B,CAAA,IAAA,OAAA,MAAA,SAqBSA,GACR,IAAMrkF,EAAqB,eAAdqkF,EAA6B,QAAU,QAEpDzkG,KAAKkc,OAAOnB,SAASuG,eAActb,SAAAA,GAC/BA,EAAIoa,IAASpa,EAAIoa,MAGrBpgB,KAAKkc,OAAO6kC,WA5Bb,CAAA,IAAA,cAAA,MAAA,SAkCiBs0O,GAChBr1R,KAAKkc,OAAOuY,KAAKzS,IAAI,GAErB,IAAMuB,GAASvjB,KAAKkc,OAAO4sM,eAAevlM,MAAQ8xQ,GAAiB,IAE7D94Q,EAASyG,KAAK6K,IAAI7tB,KAAKkc,OAAO4sM,eAAepsM,MAAOsG,KAAKQ,IAAID,EAAMP,KAAKI,GAAG,MAAOJ,KAAK6K,IAAI7tB,KAAKkc,OAAO4sM,eAAevsM,OAAQyG,KAAKM,IAAIC,EAAMP,KAAKI,GAAG,MACvJ1G,EAAQsG,KAAK6K,IAAI7tB,KAAKkc,OAAO4sM,eAAevsM,OAAQyG,KAAKQ,IAAID,EAAMP,KAAKI,GAAG,MAAOJ,KAAK6K,IAAI7tB,KAAKkc,OAAO4sM,eAAepsM,MAAOsG,KAAKM,IAAIC,EAAMP,KAAKI,GAAG,MAExJpjB,KAAKkc,OAAO6rM,OAAOrrM,EAAOH,GAC1Bvc,KAAKkc,OAAO4sM,eAAen9I,iBAE3B3rE,KAAKkc,OAAOnB,SAASuG,eAActb,SAAAA,GAC/BA,EAAI+iB,QAAQ/iB,EAAIud,MAAQ8xQ,GAAiB,KACzCrvR,EAAIu4C,eAGRv+C,KAAKkc,OAAO6kC,SACZ/gD,KAAKkc,OAAOuY,KAAKs0L,gBAnDlB,CAAA,IAAA,aAAA,MAAA,SAyDgBxlM,EAAekhF,GAAAA,IAAAA,EAAAA,KAC9B,KAAIlhF,EAAQ,KAAOA,EAAQ,GAA3B,CACA,IAAI+xQ,GAAAA,EAEJt1R,KAAKkc,OAAOnB,SAASuG,eAActb,SAAAA,GAC3By+F,GAA2B,SAAdA,EACblhF,EAAQvd,EAAIud,MAAQ,GACbkhF,GAA2B,UAAdA,IACpBlhF,EAAQvd,EAAIud,MAAQ,IAGH,WAAhBvd,EAAIsjD,SAAwC,WAAhBtjD,EAAIujD,UAAyBvjD,EAAI2lD,mBAC9D3rD,EAAKu1R,kBAAkBvvR,GACvBsvR,GAAAA,GAKJtvR,EAAIud,MAFJA,EAAQA,EAAQ,IAAM,GAAKA,EAAQ,EAAI,IAAMA,EAG7Cvd,EAAIu4C,YAEA+2O,GACAt1R,EAAKw1R,kBAAkBxvR,MAI/BhG,KAAKkc,OAAO6kC,YAnFb,CAAA,IAAA,oBAAA,MAAA,SAsFuB/6C,GACtBA,EAAsB,iBAAIA,EAAIsjD,QAC9BtjD,EAAsB,iBAAIA,EAAIujD,QAE9B,IAAM5H,EAAS37C,EAAIw7C,iBAEnBx7C,EAAIgc,IAAI,CACJsnC,QAAS,SACTC,QAAS,SACTrkC,KAAMy8B,EAAOnoD,EACb2rB,IAAKw8B,EAAOloD,MAhGjB,CAAA,IAAA,oBAAA,MAAA,SAoGuBuM,GACtB,IAAMonE,EAAcpnE,EAAI0sD,uBACpB1sD,EAAIw7C,iBACJx7C,EAAsB,iBACtBA,EAAsB,kBAG1BA,EAAIgc,IAAI,CACJsnC,QAAStjD,EAAsB,iBAC/BujD,QAASvjD,EAAsB,iBAC/Bkf,KAAMkoD,EAAY5zE,EAClB2rB,IAAKioD,EAAY3zE,QA/GtB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMq5R,IAAoB,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAApBA,GAAoB,QAApBA,GAAoB,YAAA,IQFpB2C,GAAcv5Q,SAAAA,GACvB,IAAIw5Q,EAAoB,IAAI36Q,GAAA,OAAO8vC,aAAa3uC,GAkBhD,OAhBAw5Q,EAAkB5qO,cAAgB,WAC9B,IAAIC,EAAgBttD,SAAS+M,cAAc,UAC3CugD,EAAcruC,MAAQquC,EAAcxuC,OAAS,GAC7C,IAAIH,EAAM2uC,EAAc1uC,WAAW,MAUnC,OARAD,EAAIypC,YAAc7lD,KAAKi7B,MACvB7e,EAAI0pC,UAAY,EAChB1pC,EAAIsN,YACJtN,EAAI0M,OAAO,EAAG,GACd1M,EAAI8kC,OAAO,GAAI,GACf9kC,EAAI+kC,YACJ/kC,EAAIshB,SAEGqtB,GAGJ2qO,GCnBEC,GAAcz5Q,SAAAA,GACvB,IAAI05Q,EAAoB,IAAI76Q,GAAA,OAAO8vC,aAAa3uC,GAkBhD,OAhBA05Q,EAAkB9qO,cAAgB,WAC9B,IAAIC,EAAgBttD,SAAS+M,cAAc,UAC3CugD,EAAcruC,MAAQquC,EAAcxuC,OAAS,GAC7C,IAAIH,EAAM2uC,EAAc1uC,WAAW,MAUnC,OARAD,EAAIypC,YAAc7lD,KAAKi7B,MACvB7e,EAAI0pC,UAAY,EAChB1pC,EAAIsN,YACJtN,EAAI0M,OAAO,EAAG,GACd1M,EAAI8kC,OAAO,EAAG,IACd9kC,EAAI+kC,YACJ/kC,EAAIshB,SAEGqtB,GAGJ6qO,GCnBEC,GAAe35Q,SAAAA,GACxB,IAAI45Q,EAAc,IAAI/6Q,GAAA,OAAO8vC,aAAa3uC,GAe1C,OAbA45Q,EAAYhrO,cAAgB,WACxB,IAEIC,EAAgBttD,SAAS+M,cAAc,UAC3CugD,EAAcruC,MAAQquC,EAAcxuC,OAASw5Q,GAC7C,IAAI35Q,EAAM2uC,EAAc1uC,WAAW,MAKnC,OAHAD,EAAIglC,UAAYphD,KAAKi7B,MACrB7e,EAAIwuC,SAAS,EAAG,EAPE,GAAA,IASXG,GAGJ+qO,GChBEE,GAAgB95Q,SAAAA,GACzB,IAAM+5Q,EAAe,IAAIl7Q,GAAA,OAAO8vC,aAAa3uC,GAwB7C,OAtBA+5Q,EAAanrO,cAAgB,WACzB,IACIC,EAAgBttD,SAAS+M,cAAc,UAEvC8/C,EAAO,IAAIvvC,GAAA,OAAOwvC,KAAK,CACvB7tC,MAJc,GAKdH,OALc,GAMdgH,MAAO,GACPrD,KAAMlgB,KAAKi7B,QAGTirC,EAAc5b,EAAKugB,kBAAkBnuD,MAE3CquC,EAAcruC,MAAQquC,EAAcxuC,OAAS2pD,EAZN,EAavC5b,EAAKtoC,IAAI,CAAEkD,KAAMghD,EAAc,EAAG/gD,IAAK+gD,EAAc,IAErD,IAAI9pD,EAAM2uC,EAAc1uC,WAAW,MAGnC,OAFAiuC,EAAKvJ,OAAO3kC,GAEL2uC,GAGJkrO,GPfJ,KAAM/C,GAAN,WAgBH,SAAA,EACYjqR,EACA08M,GAAAA,gBAAAA,KAAAA,GADA,KAAA18M,OAAAA,EACA,KAAA08M,YAAAA,EAjBJ,KAAAxuB,SAAAA,EAEA,KAAA++F,cAAgB,CACpBT,WAAYA,GACZE,WAAYA,GACZK,aAAcA,GACdH,YAAaA,IAGV,KAAAM,aAAe,CAClBhrR,KAAM,cACN8vB,MAAOj7B,KAAKiJ,OAAO4Z,IAAI,oCACvBnG,MAAO4qK,GAAW,IAbnB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WAyBCtnL,KAAK2lN,YAAY5qM,OAAOiyC,eAAAA,EACxBhtD,KAAKo2R,aAAap2R,KAAKm2R,aAAahrR,MACpCnL,KAAKm3L,SAAAA,EACLn3L,KAAK2lN,YAAY5qM,OAAOsF,GAAG,eAAgBrgB,KAAKq2R,kBA5BjD,CAAA,IAAA,UAAA,MAAA,WAmCCr2R,KAAK2lN,YAAY5qM,OAAOiyC,eAAAA,EACxBhtD,KAAKm3L,SAAAA,EACLn3L,KAAK2lN,YAAY5qM,OAAO0F,IAAI,eAAgBzgB,KAAKq2R,kBArClD,CAAA,IAAA,eAAA,MAAA,WA4CC,OAAOr2R,KAAKm2R,aAAahrR,OA5C1B,CAAA,IAAA,eAAA,MAAA,SAkDiBA,GAChBnL,KAAKm2R,aAAahrR,KAAOA,EACzB,IAAMmrR,EAAQv7Q,GAAA,OAAO5P,GACjB,IAAI4P,GAAA,OAAO5P,GAAMnL,KAAK2lN,YAAY5qM,QAClC/a,KAAKk2R,cAAc/qR,GAAMnL,KAAK2lN,YAAY5qM,QAC9C/a,KAAK2lN,YAAY5qM,OAAO8iC,iBAAmBy4O,EAC3Ct2R,KAAKu2R,qBAxDN,CAAA,IAAA,mBAAA,MAAA,WA8DK,IAAA,EAAA,KACJxwR,OAAOP,KAAKxF,KAAKm2R,cACZx+Q,SAAQzb,SAAAA,GACL8D,EAAK2lN,YAAY5qM,OAAO8iC,iBAAiB3hD,GAAO8D,EAAKm2R,aAAaj6R,QAjE3E,CAAA,IAAA,eAAA,MAAA,SAwEiBulB,GAChBzhB,KAAKm2R,aAAaz5Q,MAAQ+E,EAC1BzhB,KAAKu2R,qBA1EN,CAAA,IAAA,eAAA,MAAA,WAiFC,OAAOv2R,KAAKm2R,aAAaz5Q,QAjF1B,CAAA,IAAA,gBAAA,MAAA,SAuFkBue,GACjBj7B,KAAKm2R,aAAal7P,MAAQA,EAC1Bj7B,KAAKu2R,qBAzFN,CAAA,IAAA,gBAAA,MAAA,WAgGC,OAAOv2R,KAAKm2R,aAAal7P,QAhG1B,CAAA,IAAA,iBAAA,MAAA,SAsGoBx3B,GACG,SAAlBA,EAAEkH,OAAOQ,MAAqC,UAAlB1H,EAAEkH,OAAOQ,OACzC1H,EAAEkH,OAAO/K,KAAO8vM,GAAYG,QAAQjwM,UAxGrC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMszR,IAAe,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAfA,GAAe,QAAfA,GAAe,YAAA,IQXfsD,GAAsC,CAC/C,CACIrrR,KAAM,SACN0kB,IAAK,GACLC,GAAI,EACJzH,GAAI,GACJC,GAAI,EACJnG,WAAY,CACRsvC,EAAG,UACHglO,EAAG,qBAIX,CACItrR,KAAM,SACN0kB,GAAI,EACJC,IAAK,IACLzH,GAAI,EACJC,GAAI,IACJnG,WAAY,CACRsvC,EAAG,UACHglO,EAAG,YAIX,CACItrR,KAAM,SACN0kB,IAAK,GACLC,IAAK,GACLzH,GAAI,GACJC,GAAI,GACJnG,WAAY,CACRsvC,EAAG,mBACHilO,GAAK,0BACLD,EAAG,YAIX,CACItrR,KAAM,SACNi/B,GAAI,IACJC,GAAI,GACJxa,GAAI,EACJC,GAAI,EACJzH,GAAI,EACJC,GAAI,EACJnG,WAAY,CACRsvC,EAAG,UACHglO,EAAG,sBAIX,CACItrR,KAAM,SACNi/B,GAAI,IACJC,GAAI,GACJxa,GAAI,EACJC,GAAI,EACJzH,GAAI,GACJC,GAAI,GACJnG,WAAY,CACRsvC,EAAG,UACHilO,GAAK,mBACLD,EAAG,qBAIX,CACItrR,KAAM,SACNi/B,GAAI,GACJC,GAAI,GACJxa,GAAI,GACJC,GAAI,GACJzH,GAAI,GACJC,GAAI,GACJnG,WAAY,CACRsvC,EAAG,mBACHglO,EAAG,0BAIX,CACItrR,KAAM,SACN0kB,IAAK,GACLC,IAAK,GACLzH,GAAI,GACJC,GAAI,GACJnG,WAAY,CACRsvC,EAAG,UACHilO,GAAK,UACLD,EAAG,YAIX,CACItrR,KAAM,SACNi/B,GAAI,IACJC,GAAI,GACJxa,GAAI,GACJC,GAAI,EACJzH,GAAI,EACJC,GAAI,EACJnG,WAAY,CACRsvC,EAAG,UACHglO,EAAG,YAIX,CACItrR,KAAM,SACN0kB,IAAK,GACLC,GAAI,EACJzH,GAAI,GACJC,GAAI,EACJnG,WAAY,CACRsvC,EAAG,UACHglO,EAAG,YAGX,CACItrR,KAAM,SACN0kB,GAAI,EACJC,IAAK,IACLzH,GAAI,EACJC,GAAI,IACJnG,WAAY,CACRsvC,EAAG,UACHglO,EAAG,YAGX,CACItrR,KAAM,SACN0kB,IAAK,GACLC,IAAK,GACLzH,GAAI,GACJC,GAAI,GACJnG,WAAY,CACRsvC,EAAG,mBACHilO,GAAK,0BACLD,EAAG,YAGX,CACItrR,KAAM,SACN0kB,GAAI,EACJC,IAAK,IACLzH,GAAI,EACJC,GAAI,IACJnG,WAAY,CACRsvC,EAAG,UACHglO,EAAG,YAGX,CACItrR,KAAM,SACN0kB,IAAK,GACLC,GAAI,IACJzH,GAAI,GACJC,IAAK,IACLnG,WAAY,CACRsvC,EAAG,UACHglO,EAAG,sBP3JR,KAAMtD,GAAN,WACH,SAAA,EACY/0O,EACAliC,GAAAA,gBAAAA,KAAAA,GADA,KAAAkiC,aAAAA,EACA,KAAAliC,OAAAA,EAHT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAMgBpd,GAAAA,IAAAA,EAAAA,KACfic,GAAA,OAAOkF,KAAKqG,UAAUxnB,GAAK0nB,SAAAA,GACvB,IAAMmB,EAAU,IAAI5M,GAAA,OAAOuH,QAAQ,CAC/BlgB,OAAQokB,EACR8xB,OAAQ,WAEZt4C,EAAKo+C,aAAa2nK,UAAU,CAAC7lM,KAAMyH,SAZxC,CAAA,IAAA,eAAA,MAAA,SAgBiB1G,GAA+B,IAAxB9V,EAAwB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,OACzCizC,EAAgBp+C,KAAKo+C,aAAav7B,MACjCu7B,IAEPA,EAAa6sB,YAAY9/D,EAAMqrR,GAAgBv1Q,IAC/CjhB,KAAKo+C,aAAawnK,cAAc19M,OAChClI,KAAKkc,OAAO6kC,YAtBb,CAAA,IAAA,cAAA,MAAA,SAyBgB93C,GACfutR,GAAgB1zR,QAAQmG,OA1BzB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMkqR,IAAe,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAfA,GAAe,QAAfA,GAAe,YAAA,IQLrB,SAASv8J,KAAiC,IAAxBg9F,EAAwB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAf,EAAGv3F,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAO7C,QANKs3F,GAAUC,IAAWA,EAAS,KAC/BA,EAAS,GAERv3F,GAA2C,mBAAvBA,EAAUvB,WAC/BuB,EAAY,IAET,IAAI,GAAWl0H,SAAAA,GAAAA,OAClBA,EAAWJ,IAAIs0H,EAAUvB,SAAS,GAAU84F,EAAQ,CAAEzrN,WAAAA,EAAYwuR,QAAS,EAAG/iE,OAAAA,KACvEzrN,KAGf,SAAS,GAAS0qH,GAAAA,IACN1qH,EAAgC0qH,EAAlC,WAAc8jK,EAAoB9jK,EAAtB,QAAW+gG,EAAW/gG,EAAb,OAC3B1qH,EAAWD,KAAKyuR,GAChB32R,KAAK86H,SAAS,CAAE3yH,WAAAA,EAAYwuR,QAASA,EAAU,EAAG/iE,OAAAA,GAAUA,GCyBhE,SAAS,GAAa/pG,EAAMznH,GACxB,IAAK,IAAIlG,KAAOkG,EACRA,EAAO7D,eAAerC,KACtB2tH,EAAK3tH,GAA0BkG,EAAOlG,IAG9C,OAAO2tH,EASX,SAAS+sK,GAA6B31R,EAAS8qH,GAE3C,IAAMqL,EAAarL,EAAS,GAAK,OACjC,GAAa9qH,EAAQuL,MAAO,CACxBioH,YAAa1I,EAAS,GAAK,OAC3B8qK,eAAgB9qK,EAAS,GAAK,OAC9B+qK,wBAAyB/qK,EAAS,GAAK,cACvCqL,WAAYA,EACZ2/J,aAAc3/J,EACd4/J,iBAAkB5/J,EAClB6/J,cAAe7/J,IAqBvB,SAAS8/J,GAAsBzxR,GAG3B,IAAM2wC,EAAa3wC,EAAMiJ,cAAc9M,QAAQ,OAAS,EAAI,EAAI,IAChE,OAAO2jB,WAAW9f,GAAS2wC,EAuC/B,SAAS+gP,GAAsB78C,EAAe16O,GAG1C,OADc06O,EAAcuM,iBAAiBjnP,GAChC4B,MAAM,KAAKuT,KAIxBm+F,SAAAA,GAAAA,OAAQA,EAAKl9F,UAoBjB,SAASohR,GAAqBn2R,GAE1B,IAAMo2R,EAAap2R,EAAQw2B,wBAK3B,MAAO,CACHtS,IAAKkyQ,EAAWlyQ,IAChB0xC,MAAOwgO,EAAWxgO,MAClBD,OAAQygO,EAAWzgO,OACnB1xC,KAAMmyQ,EAAWnyQ,KACjBxI,MAAO26Q,EAAW36Q,MAClBH,OAAQ86Q,EAAW96Q,QAU3B,SAAS+6Q,GAAmBD,EAAY79R,EAAGC,GAAAA,IAC/B0rB,EAA6BkyQ,EAA/B,IAAOzgO,EAAwBygO,EAA1B,OAAUnyQ,EAAgBmyQ,EAAlB,KAAQxgO,EAAUwgO,EAAZ,MACzB,OAAO59R,GAAK0rB,GAAO1rB,GAAKm9D,GAAUp9D,GAAK0rB,GAAQ1rB,GAAKq9D,EASxD,SAAS0gO,GAAiBF,EAAYlyQ,EAAKD,GACvCmyQ,EAAWlyQ,KAAOA,EAClBkyQ,EAAWzgO,OAASygO,EAAWlyQ,IAAMkyQ,EAAW96Q,OAChD86Q,EAAWnyQ,MAAQA,EACnBmyQ,EAAWxgO,MAAQwgO,EAAWnyQ,KAAOmyQ,EAAW36Q,MAUpD,SAAS86Q,GAAwBltO,EAAMte,EAAWyrP,EAAUC,GAAAA,IAChDvyQ,EAA4CmlC,EAA9C,IAAOuM,EAAuCvM,EAAzC,MAASsM,EAAgCtM,EAAlC,OAAUplC,EAAwBolC,EAA1B,KAEpBqtO,EAF8CrtO,EAApB,MAELte,EAErB4rP,EAJ8CttO,EAAb,OAIXte,EAC5B,OAAO0rP,EAAWvyQ,EAAMyyQ,GAAcF,EAAW9gO,EAASghO,GACtDH,EAAWvyQ,EAAOyyQ,GAAcF,EAAW5gO,EAAQ8gO,EAsB3D,IAAME,GAAAA,WAKF,SAAA,EAAYnhL,EAAWklH,GAAAA,gBAAAA,KAAAA,GACnB57N,KAAK02G,UAAYA,EACjB12G,KAAK47N,eAAiBA,EAItB57N,KAAKulO,UAAY,IAAIzxE,IAkFcgkI,OA5EvC,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WACI93R,KAAKulO,UAAUpmL,UAOnB,CAAA,IAAA,QAAA,MAAA,SAAMt3B,GAAAA,IAAAA,EAAAA,KACF7nB,KAAKm/C,QACLn/C,KAAKulO,UAAUvjN,IAAIhiB,KAAK02G,UAAW,CAC/BmiH,eAAgB74N,KAAK47N,eAAe9C,8BAExCjxM,EAASlQ,SAIT1W,SAAAA,GACIjB,EAAKulO,UAAUvjN,IAAI/gB,EAAS,CACxB43N,eAAgB,CAAE1zM,IAAKlkB,EAAQw0B,UAAWvQ,KAAMjkB,EAAQu0B,YACxD6hQ,WAAYD,GAAqBn2R,UAS7C,CAAA,IAAA,eAAA,MAAA,SAAa4yB,GAET,IAAMlpB,EAA4BkpB,EAAa,OAEzCkkQ,EAAiB/3R,KAAKulO,UAAU1iN,IAAIlY,GAC1C,IAAKotR,EACD,OAAO,KAMX,IAII7mO,EAEAD,EANE+mO,EAAqBrtR,IAAW3K,KAAK02G,UAAY/rG,EAAOoC,gBAAkBpC,EAE1EkuN,EAAiBk/D,EAAel/D,eAKtC,GAAIluN,IAAW3K,KAAK02G,UAAW,CAE3B,IAAMuhL,EAA4Cj4R,KAAoB,eAAE84N,4BACxE5nK,EAAS+mO,EAAuB9yQ,IAChC8rC,EAAUgnO,EAAuB/yQ,UAGjCgsC,EAAS,EAA8Bz7B,UACvCw7B,EAAU,EAA8Bz7B,WAG5C,IAAM0iQ,EAAgBr/D,EAAe1zM,IAAM+rC,EAErC4mO,EAAiBj/D,EAAe3zM,KAAO+rC,EAe7C,OAZAjxD,KAAKulO,UAAU5tN,SAAQ,SAKtBkP,EAAUuY,GACHvY,EAASwwQ,YAAc1sR,IAAWy0B,GAAQ44P,EAAmBt2Q,SAAS0d,IACtEm4P,GAAiB1wQ,EAASwwQ,WAAYa,EAAeJ,MAG7Dj/D,EAAe1zM,IAAM+rC,EACrB2nK,EAAe3zM,KAAO+rC,EACf,CAAE9rC,IAAK+yQ,EAAehzQ,KAAM4yQ,OAAAA,EA7FrCD,GAmJAM,GAA8B7iE,GAAgC,CAAEl8J,SAAAA,IAKhEg/N,GAA6B9iE,GAAgC,CAAEl8J,SAAAA,IAuD/D,GAAA,WASF,SAAA,EAAYn4D,EAAS0kM,EAASjvF,EAAWqqE,EAAS66C,EAAgBy8D,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAC9Dr4R,KAAK2lM,QAAUA,EACf3lM,KAAK02G,UAAYA,EACjB12G,KAAK+gL,QAAUA,EACf/gL,KAAK47N,eAAiBA,EACtB57N,KAAKq4R,kBAAoBA,EAOzBr4R,KAAKs4R,kBAAoB,CAAE9+R,EAAG,EAAGC,EAAG,GAIpCuG,KAAKu4R,iBAAmB,CAAE/+R,EAAG,EAAGC,EAAG,GAInCuG,KAAKw4R,YAAc,IAAI,EAIvBx4R,KAAKy4R,yBAA2B,EAAaz+J,MAI7Ch6H,KAAK04R,uBAAyB,EAAa1+J,MAI3Ch6H,KAAK28N,oBAAsB,EAAa3iG,MAIxCh6H,KAAK2iO,oBAAsB,EAAa3oG,MAIxCh6H,KAAK24R,iBAAmB,KAIxB34R,KAAK44R,4BAAAA,EAIL54R,KAAK64R,SAAW,GAIhB74R,KAAK84R,iBAAmB,IAAI9kI,IAI5Bh0J,KAAKmqO,WAAa,MAKlBnqO,KAAK+4R,eAAiB,EACtB/4R,KAAK2vO,WAAAA,EAIL3vO,KAAKg5R,cAAgB,IAAI,EAIzBh5R,KAAK2wH,QAAU,IAAI,EAInB3wH,KAAKi5R,SAAW,IAAI,EAIpBj5R,KAAKk5R,MAAQ,IAAI,EAIjBl5R,KAAKm5R,QAAU,IAAI,EAInBn5R,KAAKo5R,OAAS,IAAI,EAIlBp5R,KAAKq5R,QAAU,IAAI,EAKnBr5R,KAAKs5R,MAAQt5R,KAAKw4R,YAAYrnG,eAI9BnxL,KAAKu5R,aAIJ1lQ,SAAAA,GAGG,GAFA7zB,EAAKg5R,cAAc9wR,OAEflI,EAAK64R,SAAS79R,OAAQ,CAEtB,IAAMw+R,EAAex5R,EAAK64R,SAASznQ,MAInCkzK,SAAAA,GAEI,IAAM35L,EAASkpB,EAAMlpB,OACrB,QAASA,IAAWA,IAAW25L,GAAUA,EAAO5iL,SAAS,QAEzD83Q,GAAiBx5R,EAAK84R,iBAAiB/iI,IAAIyjI,IAAkBx5R,EAAKwxM,UAClExxM,EAAKy5R,wBAAwBD,EAAc3lQ,QAGzC7zB,EAAKwxM,UACXxxM,EAAKy5R,wBAAwBz5R,EAAK05R,aAAc7lQ,IAMxD7zB,KAAK25R,aAIJ9lQ,SAAAA,GAGGA,EAAMqoC,iBAEN,IAAM09N,EAAkB55R,EAAK65R,0BAA0BhmQ,GACvD,GAAK7zB,EAAK85R,oBAAV,CAgCI95R,EAAK24R,mBAGA34R,EAAK+5R,eAAkB/5R,EAAK+5R,aAAar9Q,OAAU1c,EAAK+5R,aAAax9Q,UACtEvc,EAAK+5R,cAAgB/5R,EAAKg6R,UAAYh6R,EAAK05R,cAAcjiQ,0BAIjE,IAAMwiQ,EAA6Bj6R,EAAKk6R,+BAA+BN,GAGvE,GAFA55R,EAAKm6R,WAAAA,EACLn6R,EAAKo6R,6BAA6BH,GAC9Bj6R,EAAKq6R,eACLr6R,EAAKs6R,2BAA2BL,OAE/B,CAED,IAAMM,EAAkBv6R,EAAKu4R,iBAC7BgC,EAAgB/gS,EACZygS,EAA2BzgS,EAAIwG,EAAKw6R,sBAAsBhhS,EAAIwG,EAAKs4R,kBAAkB9+R,EACzF+gS,EAAgB9gS,EACZwgS,EAA2BxgS,EAAIuG,EAAKw6R,sBAAsB/gS,EAAIuG,EAAKs4R,kBAAkB7+R,EACzFuG,EAAKy6R,2BAA2BF,EAAgB/gS,EAAG+gS,EAAgB9gS,GAEzC,oBAAfihS,YAA8B16R,EAAK05R,wBAAwBgB,YAGlE16R,EAAK05R,aAAahtR,aAAa,YAA/B1M,aAAAA,OADsCu6R,EAAgB/gS,EACtDwG,KAAAA,OAD2Du6R,EAAgB9gS,EAC3EuG,MAMJA,EAAKw4R,YAAY/9J,UAAUz/H,QAC3BgF,EAAK+gL,QAAQV,KAAI,WAIbrgL,EAAKw4R,YAAYtwR,KAAK,CAClB9F,OAAQpC,EACR45R,gBAAiBK,EACjBpmQ,MAAAA,EACA20B,SAAUxoD,EAAK26R,iBAAiBV,GAChClnM,MAAO/yF,EAAK46R,iCA/DpB,GATkB53Q,KAAK6K,IAAI+rQ,EAAgBpgS,EAAIwG,EAAKw6R,sBAAsBhhS,GAExDwpB,KAAK6K,IAAI+rQ,EAAgBngS,EAAIuG,EAAKw6R,sBAAsB/gS,IAEzBuG,EAAK2lM,QAAQk1F,mBAKzC,CAGjB,KADuB3uR,KAAKC,OAASnM,EAAK86R,eAAiB96R,EAAK+6R,mBAAmBlnQ,IAG/E,YADA7zB,EAAKg7R,iBAAiBnnQ,GAMrB7zB,EAAKq6R,gBAAmBr6R,EAAKq6R,eAAelzE,eAC7CnnN,EAAK85R,qBAAAA,EACL95R,EAAK+gL,QAAQV,KAAI,WAAA,OAGXrgL,EAAKi7R,mBAAmBpnQ,SAwD9C7zB,KAAKk7R,WAIJrnQ,SAAAA,GACG7zB,EAAKg7R,iBAAiBnnQ,IAE1B7zB,KAAKm7R,gBAAgBl6R,GACrBjB,KAAKo7R,iBAAmB,IAAIvD,GAAsBnhL,EAAWklH,GAC7Dy8D,EAAkBgD,iBAAiBr7R,MA0BvC,OApBA,aAAA,EAAA,CAAA,CAAA,IAAA,wBAAA,MAAA,WAqBI,OAAOA,KAAKs7R,eAMhB,CAAA,IAAA,iBAAA,MAAA,WACI,OAAOt7R,KAAK05R,eAOhB,CAAA,IAAA,oBAAA,MAAA,WACI,OAAO15R,KAAKmnN,aAAennN,KAAKu7R,wBAA0Bv7R,KAAKw7R,mBASnE,CAAA,IAAA,cAAA,MAAA,SAAYC,GAYR,OAXA,KAA0B5C,SAAW4C,EAAQ1mR,KAI7CuvL,SAAAA,GAAAA,OAAUquB,GAAcruB,MACxB,KAA0Bu0F,SAASlhR,SAInC2sL,SAAAA,GAAAA,OAAUsyF,GAA6BtyF,GAAAA,MACvC,KAA0Bo3F,gCACnB,OASX,CAAA,IAAA,sBAAA,MAAA,SAAoBx1J,GAEhB,OADA,KAA0By1J,iBAAmBz1J,EACtC,OASX,CAAA,IAAA,0BAAA,MAAA,SAAwBA,GAEpB,OADA,KAA0B01J,qBAAuB11J,EAC1C,OAWX,CAAA,IAAA,kBAAA,MAAA,SAAgB0nH,GAAAA,IAAAA,EAAAA,KAEN3sP,EAAU0xN,GAAci7B,GAe9B,OAdI3sP,IAAY,KAA0By4R,eAClC,KAA0BA,cAC1B,KAA0BmC,4BAA4B,KAA0BnC,cAEpF,KAA0B34G,QAAQX,mBAAkB,WAIhDn/K,EAAQwyB,iBAAiB,YAAa,EAA0B8lQ,aAAcnB,IAC9En3R,EAAQwyB,iBAAiB,aAAc,EAA0B8lQ,aAAcpB,OAEnF,KAA0B2D,uBAAAA,EAC1B,KAA0BpC,aAAez4R,GAEtC,OASX,CAAA,IAAA,sBAAA,MAAA,SAAoB86R,GAAAA,IAAAA,EAAAA,KAWhB,OAVA,KAA0BpD,iBAAmBoD,EAAkBppE,GAAcopE,GAAmB,KAChG,KAA0Bp5D,oBAAoBhiO,cAC1Co7R,IACA,KAA0Bp5D,oBAAsB,KAA0B/G,eACrEhtH,OAAO,IACPruG,WAAU,WAAA,OAGT,EAA0By7R,qCAE7B,OAMX,CAAA,IAAA,UAAA,MAAA,WACIh8R,KAAK67R,4BAA4B77R,KAAK05R,cAGlC15R,KAAKmnN,cAGL,GAAWnnN,KAAK05R,cAEpB,GAAW15R,KAAKi8R,SAChBj8R,KAAKk8R,kBACLl8R,KAAKm8R,sBACLn8R,KAAKq4R,kBAAkB+D,eAAep8R,MACtCA,KAAKq8R,uBACLr8R,KAAKg5R,cAAczxR,WACnBvH,KAAK2wH,QAAQppH,WACbvH,KAAKi5R,SAAS1xR,WACdvH,KAAKk5R,MAAM3xR,WACXvH,KAAKm5R,QAAQ5xR,WACbvH,KAAKo5R,OAAO7xR,WACZvH,KAAKq5R,QAAQ9xR,WACbvH,KAAKw4R,YAAYjxR,WACjBvH,KAAK64R,SAAW,GAChB74R,KAAK84R,iBAAiB35O,QACtBn/C,KAAKq6R,oBAAAA,EACLr6R,KAAK2iO,oBAAoBhiO,cACzBX,KAAKo7R,iBAAiBj8O,QACtBn/C,KAAK24R,iBAAmB34R,KAAK05R,aAAe15R,KAAK47R,qBAC7C57R,KAAK27R,iBAAmB37R,KAAKi8R,QAAU,OAM/C,CAAA,IAAA,aAAA,MAAA,WACI,OAAOj8R,KAAK85R,qBAAuB95R,KAAKq4R,kBAAkBlxE,WAAWnnN,QAMzE,CAAA,IAAA,QAAA,MAAA,WACIA,KAAK05R,aAAaltR,MAAMqY,UAAY7kB,KAAK87R,mBAAqB,GAC9D97R,KAAKu4R,iBAAmB,CAAE/+R,EAAG,EAAGC,EAAG,GACnCuG,KAAKs4R,kBAAoB,CAAE9+R,EAAG,EAAGC,EAAG,KAOxC,CAAA,IAAA,gBAAA,MAAA,SAAc6qM,GACNtkM,KAAK64R,SAASj3R,QAAQ0iM,IAAW,GACjCtkM,KAAK84R,iBAAiB/wR,IAAIu8L,KAQlC,CAAA,IAAA,eAAA,MAAA,SAAaA,GACTtkM,KAAK84R,iBAAL94R,OAA6BskM,KASjC,CAAA,IAAA,gBAAA,MAAA,SAAc7/F,GAEV,OADA,KAA0B0lI,WAAa1lI,EAChC,OAOX,CAAA,IAAA,qBAAA,MAAA,SAAmB19D,GACf/mC,KAAKq6R,eAAiBtzP,IAM1B,CAAA,IAAA,sBAAA,MAAA,WAEI,IAAMlgB,EAAW7mB,KAAKmnN,aAAennN,KAAKu4R,iBAAmBv4R,KAAKs4R,kBAClE,MAAO,CAAE9+R,EAAGqtB,EAASrtB,EAAGC,EAAGotB,EAASptB,KASxC,CAAA,IAAA,sBAAA,MAAA,SAAoBgM,GAOhB,OANA,KAA0B8yR,iBAAmB,CAAE/+R,EAAG,EAAGC,EAAG,GACxD,KAA0B6+R,kBAAkB9+R,EAAIiM,EAAMjM,EACtD,KAA0B8+R,kBAAkB7+R,EAAIgM,EAAMhM,EACjD,KAA0B4gS,gBAC3B,KAA0BI,2BAA2Bh1R,EAAMjM,EAAGiM,EAAMhM,GAEjE,OAMX,CAAA,IAAA,+BAAA,MAAA,WAEI,IAAMotB,EAAW7mB,KAAKs8R,sCAClBz1Q,GAAY7mB,KAAKq6R,gBACjBr6R,KAAKs6R,2BAA2Bt6R,KAAKk6R,+BAA+BrzQ,MAQ5E,CAAA,IAAA,uBAAA,MAAA,WACI7mB,KAAKy4R,yBAAyB93R,cAC9BX,KAAK04R,uBAAuB/3R,cAC5BX,KAAK28N,oBAAoBh8N,gBAO7B,CAAA,IAAA,kBAAA,MAAA,WACQX,KAAKg6R,UACL,GAAWh6R,KAAKg6R,UAEhBh6R,KAAKu8R,aACLv8R,KAAKu8R,YAAYpiN,UAErBn6E,KAAKg6R,SAAWh6R,KAAKu8R,YAAc,OAOvC,CAAA,IAAA,sBAAA,MAAA,WACQv8R,KAAKs7R,cACL,GAAWt7R,KAAKs7R,cAEhBt7R,KAAKw8R,iBACLx8R,KAAKw8R,gBAAgBriN,UAEzBn6E,KAAKs7R,aAAet7R,KAAKw8R,gBAAkB,OAQ/C,CAAA,IAAA,mBAAA,MAAA,SAAiB3oQ,GAAAA,IAAAA,EAAAA,KAKR7zB,KAAKq4R,kBAAkBlxE,WAAWnnN,QAGvCA,KAAKq8R,uBACLr8R,KAAKq4R,kBAAkBoE,aAAaz8R,MACpCA,KAAK07R,gCACD17R,KAAK64R,WACL74R,KAAK05R,aAAaltR,MAAMsqR,wBAA0B92R,KAAK08R,0BAEtD18R,KAAK85R,sBAGV95R,KAAKi5R,SAAS/wR,KAAK,CAAE9F,OAAQpC,OACzBA,KAAKq6R,gBAELr6R,KAAKq6R,eAAesC,iBACpB38R,KAAK48R,+BAA+BltR,MAAK,WAIrC1P,EAAK68R,sBAAsBhpQ,GAC3B7zB,EAAK88R,2BACL98R,EAAKq4R,kBAAkBoE,aAAaz8R,QAOxCA,KAAKs4R,kBAAkB9+R,EAAIwG,KAAKu4R,iBAAiB/+R,EACjDwG,KAAKs4R,kBAAkB7+R,EAAIuG,KAAKu4R,iBAAiB9+R,EACjDuG,KAAK+gL,QAAQV,KAAI,WAIbrgL,EAAKk5R,MAAMhxR,KAAK,CACZ9F,OAAQpC,EACRwoD,SAAUxoD,EAAK26R,iBAAiB36R,EAAK65R,0BAA0BhmQ,SAGvE7zB,KAAK88R,2BACL98R,KAAKq4R,kBAAkBoE,aAAaz8R,WAS5C,CAAA,IAAA,qBAAA,MAAA,SAAmB6zB,GAEf7zB,KAAK2wH,QAAQzoH,KAAK,CAAE9F,OAAQpC,OACxB+8R,GAAalpQ,KACb7zB,KAAKg9R,oBAAsB9wR,KAAKC,OAEpCnM,KAAK07R,gCAEL,IAyhC0BuB,EAzhCpBC,EAAgBl9R,KAAKq6R,eAC3B,GAAI6C,EAAe,CAEf,IAAMj8R,EAAUjB,KAAK05R,aAEfnwR,EAA4BtI,EAAmB,WAE/Ck8R,EAAUn9R,KAAKg6R,SAAWh6R,KAAKo9R,wBAE/BC,EAAcr9R,KAAKs7R,aAAet7R,KAAKs9R,4BAEvC3zI,EAAS3pJ,KAAKi8R,QAAUj8R,KAAKi8R,SAAWj8R,KAAK02G,UAAU85C,cAAc,IAE3EjnJ,EAAOyD,aAAa28I,EAAQ1oJ,GAI5BA,EAAQuL,MAAM+wB,QAAU,OACxBv9B,KAAK02G,UAAUprG,KAAKqB,YAAYpD,EAAOstB,aAAawmQ,EAAap8R,KAugC3Cg8R,EAtgCGj9R,KAAK02G,UA0gC/BumL,EAAYM,mBACfN,EAAYO,yBACZP,EAAYQ,sBACZR,EAAYS,qBACZT,EAAY3xR,MA9gCiCqB,YAAYwwR,GACrDD,EAAc5tR,QACdtP,KAAK29R,kBAAoBT,EACzBl9R,KAAK49R,cAAgBV,EAAcW,aAAa79R,WAGhDA,KAAK29R,kBAAoB39R,KAAK49R,mBAAAA,EAIlC59R,KAAKo7R,iBAAiBrrN,MAAMmtN,EAAgBA,EAAcY,uBAAyB,MAUvF,CAAA,IAAA,0BAAA,MAAA,SAAwBC,EAAkBlqQ,GAAAA,IAAAA,EAAAA,KAItCA,EAAMuoC,kBAEN,IAAM+qJ,EAAannN,KAAKmnN,aAElB62E,EAAkBjB,GAAalpQ,GAE/BoqQ,GAA0BD,GAA2D,IAAxC,EAA6B1kO,OAE1Es0L,EAAc5tP,KAAK05R,aAEnB5nK,GAAoBksK,GAAmBh+R,KAAKg9R,qBAC9Ch9R,KAAKg9R,oBAhsBe,IAgsBiC9wR,KAAKC,MAW9D,GAJI0nB,EAAMlpB,QAA8BkpB,EAAc,OAAEqqQ,WAA4B,cAAfrqQ,EAAM1oB,MACvE0oB,EAAMqoC,mBAGNirJ,GAAc82E,GAA0BnsK,GAA5C,CAMI9xH,KAAK64R,SAAS79R,SACdgF,KAAK08R,yBAA2B9uC,EAAYphP,MAAMsqR,wBAClDlpC,EAAYphP,MAAMsqR,wBAA0B,eAEhD92R,KAAK85R,oBAAsB95R,KAAKm6R,WAAAA,EAGhCn6R,KAAKq8R,uBACLr8R,KAAKy4R,yBAA2Bz4R,KAAKq4R,kBAAkB8F,YAAY59R,UAAUP,KAAK25R,cAClF35R,KAAK04R,uBAAyB14R,KAAKq4R,kBAAkB+F,UAAU79R,UAAUP,KAAKk7R,YAC9El7R,KAAK28N,oBAAsB38N,KAAKq4R,kBAAkBvkQ,OAAOvzB,WAIzD89R,SAAAA,GACIr+R,EAAKs+R,gBAAgBD,MAErBr+R,KAAK24R,mBACL34R,KAAKu+R,cAAgBnH,GAAqBp3R,KAAK24R,mBAMnD,IAAM6F,EAAkBx+R,KAAK27R,iBAC7B37R,KAAKy+R,yBAA2BD,GAAmBA,EAAgBt4J,WAC9Ds4J,EAAgBE,UAAY,CAAEllS,EAAG,EAAGC,EAAG,GACxCuG,KAAK2+R,6BAA6BZ,EAAkBlqQ,GAExD,IAAM+lQ,EAAkB55R,KAAKw6R,sBAAwBx6R,KAAK65R,0BAA0BhmQ,GACpF7zB,KAAK46R,uBAAyB,CAAEphS,EAAG,EAAGC,EAAG,GACzCuG,KAAKs8R,sCAAwC,CAAE9iS,EAAGogS,EAAgBpgS,EAAGC,EAAGmgS,EAAgBngS,GACxFuG,KAAK86R,eAAiB5uR,KAAKC,MAC3BnM,KAAKq4R,kBAAkBuG,cAAc5+R,KAAM6zB,MAQ/C,CAAA,IAAA,wBAAA,MAAA,SAAsBA,GAAAA,IAAAA,EAAAA,KAKlB7zB,KAAK05R,aAAaltR,MAAM+wB,QAAU,GACfv9B,KAAKi8R,QAAmB,WAAEplQ,aAAa72B,KAAK05R,aAAc15R,KAAKi8R,SAClFj8R,KAAKk8R,kBACLl8R,KAAKm8R,sBACLn8R,KAAKu+R,cAAgBv+R,KAAK+5R,kBAAAA,EAE1B/5R,KAAK+gL,QAAQV,KAAI,WAKb,IAAMt5I,EAA+B/mC,EAAoB,eAEnD6sK,EAAe9lI,EAAU82P,aAAa79R,GAEtC45R,EAAkB55R,EAAK65R,0BAA0BhmQ,GAEjD20B,EAAWxoD,EAAK26R,iBAAiB36R,EAAK65R,0BAA0BhmQ,IAEhEgrQ,EAAyB93P,EAAU+3P,iBAAiBlF,EAAgBpgS,EAAGogS,EAAgBngS,GAC7FuG,EAAKk5R,MAAMhxR,KAAK,CAAE9F,OAAQpC,EAAMwoD,SAAAA,IAChCxoD,EAAKq5R,QAAQnxR,KAAK,CACdhF,KAAMlD,EACN6sK,aAAAA,EACAE,cAAe/sK,EAAK49R,cACpB72P,UAAWA,EACXg4P,kBAAmB/+R,EAAK29R,kBACxBkB,uBAAAA,EACAr2O,SAAAA,IAEJzhB,EAAUi4P,KAAKh/R,EAAM6sK,EAAc7sK,EAAK29R,kBAAmBkB,EAAwBr2O,EAAUxoD,EAAK49R,eAClG59R,EAAKq6R,eAAiBr6R,EAAK29R,uBAUnC,CAAA,IAAA,6BAAA,MAAA,SAAA,GAAgClkS,IAAAA,EAAAA,KAAHD,EAAGC,EAAL,EAAKA,EAAAA,EAAF,EAGtBwlS,EAAej/R,KAAK29R,kBAAkBuB,iCAAiCl/R,KAAMxG,EAAGC,IAK/EwlS,GAAgBj/R,KAAKq6R,iBAAmBr6R,KAAK29R,mBAC9C39R,KAAK29R,kBAAkBmB,iBAAiBtlS,EAAGC,KAC3CwlS,EAAej/R,KAAK29R,mBAEpBsB,GAAgBA,IAAiBj/R,KAAKq6R,gBACtCr6R,KAAK+gL,QAAQV,KAAI,WAKbrgL,EAAKo5R,OAAOlxR,KAAK,CAAEhF,KAAMlD,EAAM+mC,UAA8B/mC,EAAoB,iBAC9DA,EAAoB,eAAEi0Q,KAAKj0Q,GAE9CA,EAAKq6R,eAAiB,EACtBr6R,EAAKq6R,eAAe92F,MAAMvjM,EAAMxG,EAAGC,EAAGwlS,IAAiBj/R,EAAK29R,mBAGxDsB,EAAaE,gBAAkBn/R,EAAK49R,mBAAAA,GACxC59R,EAAKm5R,QAAQjxR,KAAK,CACdhF,KAAMlD,EACN+mC,UAAW,EACX8lI,aAAc,EAAkCgxH,aAAa79R,QAItDA,KAAoB,eAAEo/R,2BAA2B5lS,EAAGC,GACpDuG,KAAoB,eAAEq/R,UAAUr/R,KAAMxG,EAAGC,EAAGuG,KAAK46R,wBACpE56R,KAAKg6R,SAASxtR,MAAMqY,UAChBy6Q,GAAa9lS,EAAIwG,KAAKy+R,yBAAyBjlS,EAAGC,EAAIuG,KAAKy+R,yBAAyBhlS,KAQ5F,CAAA,IAAA,wBAAA,MAAA,WAEI,IAMI0jS,EANEoC,EAAgBv/R,KAAK27R,iBAErB6D,EAAex/R,KAAKw/R,aAEpBhB,EAAkBe,EAAgBA,EAAcr5J,SAAW,KAGjE,GAAIs4J,GAAmBe,EAAe,CAIlC,IAAME,EAAWF,EAAcb,UAAY1+R,KAAK05R,aAAajiQ,wBAA0B,KAEjFu3H,EAAUuwI,EAAc5kG,cAAclsC,mBAAmB+vI,EAAiBe,EAAc12R,SAC9FmmJ,EAAQ43B,gBACRu2G,EAAUxnE,GAAY3mE,EAAShvJ,KAAK02G,WACpC12G,KAAKu8R,YAAcvtI,EACfuwI,EAAcb,UACdgB,GAAiBvC,EAAS,GAG1BA,EAAQ3wR,MAAMqY,UACVy6Q,GAAat/R,KAAKw6R,sBAAsBhhS,EAAGwG,KAAKw6R,sBAAsB/gS,OAG7E,CAED,IAAMwH,EAAUjB,KAAK05R,aAErBgG,GADAvC,EAAUwC,GAAc1+R,GACEA,EAAQw2B,yBA4BtC,OA1BA,GAAa0lQ,EAAQ3wR,MAAO,CAGxBsjH,cAAe,OAEf01G,OAAQ,IACR3+M,SAAU,QACV1B,IAAK,IACLD,KAAM,IACN06Q,OAAAA,GAAAA,OAAW5/R,KAAK2lM,QAAQi6F,QAAU,OAEtChJ,GAA6BuG,GAAAA,GAC7BA,EAAQ/3H,UAAUr9J,IAAI,oBACtBo1R,EAAQzwR,aAAa,MAAO1M,KAAKmqO,YAC7Bq1D,IACI/4R,MAAMqQ,QAAQ0oR,GACdA,EAAa7nR,SAIbrK,SAAAA,GAAAA,OAAa6vR,EAAQ/3H,UAAUr9J,IAAIuF,MAGnC6vR,EAAQ/3H,UAAUr9J,IAAIy3R,IAGvBrC,IAOX,CAAA,IAAA,+BAAA,MAAA,WAAA,IAAA,EAAA,KAEI,IAAKn9R,KAAKm6R,UACN,OAAO5qR,QAAQwJ,UAGnB,IAAM8mR,EAAkB7/R,KAAKs7R,aAAa7jQ,wBAE1Cz3B,KAAKg6R,SAAS50H,UAAUr9J,IAAI,sBAE5B/H,KAAKg6R,SAASxtR,MAAMqY,UAAYy6Q,GAAaO,EAAgB36Q,KAAM26Q,EAAgB16Q,KAMnF,IAAMqU,EA9sCd,SAA4Cv4B,GAExC,IAAMq5O,EAAgBxkN,iBAAiB70B,GAEjC6+R,EAAyB3I,GAAsB78C,EAAe,uBAE9D/iO,EAAWuoR,EAAuB1uQ,MAIxChR,SAAAA,GAAAA,MAAiB,cAATA,GAAiC,QAATA,KAEhC,IAAK7I,EACD,OAAO,EAKX,IAAMwoR,EAAgBD,EAAuBl+R,QAAQ2V,GAE/CyoR,EAAe7I,GAAsB78C,EAAe,uBAEpD2lD,EAAY9I,GAAsB78C,EAAe,oBACvD,OAAO48C,GAAsB8I,EAAaD,IACtC7I,GAAsB+I,EAAUF,IAxBxC,CA8sC4D//R,KAAKg6R,UACzD,OAAiB,IAAbxgQ,EACOjqB,QAAQwJ,UAEZ/Y,KAAK+gL,QAAQX,mBAAkB,WAAA,OAI3B,IAAI7wK,SAIXwJ,SAAAA,GAEI,IAAMvY,EAILqzB,SAJKrzB,EAILqzB,KACQA,GAAUA,EAAMlpB,SAAW3K,EAAKg6R,UAAmC,cAAvBnmQ,EAAM4/N,gBACnDzzP,EAAKg6R,SAASrmQ,oBAAoB,gBAAiBnzB,GACnDuY,IACAnJ,aAAasB,KAOfA,EAAU7Q,WAAW,EAAyC,IAAXm5B,GACzDx5B,EAAKg6R,SAASvmQ,iBAAiB,gBAAiBjzB,WAS5D,CAAA,IAAA,4BAAA,MAAA,WAEI,IAII68R,EAJE6C,EAAoBlgS,KAAK47R,qBAEzBuE,EAAsBD,EAAoBA,EAAkBh6J,SAAW,KAY7E,OATIi6J,GACAngS,KAAKw8R,gBAAkB,EAAuC7hG,cAAclsC,mBAAmB0xI,EAAqB,EAAuCt3R,SAC3J7I,KAAKw8R,gBAAgB51G,gBACrBy2G,EAAc1nE,GAAY31N,KAAKw8R,gBAAiBx8R,KAAK02G,YAGrD2mL,EAAcsC,GAAc3/R,KAAK05R,cAErC2D,EAAYj4H,UAAUr9J,IAAI,wBACnBs1R,IASX,CAAA,IAAA,+BAAA,MAAA,SAA6BU,EAAkBlqQ,GAE3C,IAAMusQ,EAAcpgS,KAAK05R,aAAajiQ,wBAEhC4oQ,EAAgBtC,IAAqB/9R,KAAK05R,aAAe,KAAOqE,EAEhEuC,EAAgBD,EAAgBA,EAAc5oQ,wBAA0B2oQ,EAExEj8Q,EAAQ44Q,GAAalpQ,GAASA,EAAMq9F,cAAc,GAAKr9F,EAEvDglM,EAAiB74N,KAAKugS,6BAK5B,MAAO,CACH/mS,EAAG8mS,EAAcp7Q,KAAOk7Q,EAAYl7Q,MAJ9Bf,EAAMqqQ,MAAQ8R,EAAcp7Q,KAAO2zM,EAAe3zM,MAKxDzrB,EAAG6mS,EAAcn7Q,IAAMi7Q,EAAYj7Q,KAH7BhB,EAAM4pQ,MAAQuS,EAAcn7Q,IAAM0zM,EAAe1zM,QAY/D,CAAA,IAAA,4BAAA,MAAA,SAA0B0O,GAGtB,IAAM1P,EAAQ44Q,GAAalpQ,GAAUA,EAAMgpC,QAAQ,IAAMhpC,EAAMK,eAAe,GAAML,EAE9EglM,EAAiB74N,KAAKugS,6BAC5B,MAAO,CACH/mS,EAAG2qB,EAAMqqQ,MAAQ31D,EAAe3zM,KAChCzrB,EAAG0qB,EAAM4pQ,MAAQl1D,EAAe1zM,OASxC,CAAA,IAAA,iCAAA,MAAA,SAA+BhB,GAE3B,IAAMq8Q,EAAmBxgS,KAAKygS,kBAAoBzgS,KAAKygS,kBAAkBt8Q,EAAOnkB,MAAQmkB,EAElFu8Q,EAAoB1gS,KAAKq6R,eAAiBr6R,KAAKq6R,eAAesG,SAAW,KAO/E,GANsB,MAAlB3gS,KAAK2gS,UAA0C,MAAtBD,EACzBF,EAAiB/mS,EAAIuG,KAAKw6R,sBAAsB/gS,EAEzB,MAAlBuG,KAAK2gS,UAA0C,MAAtBD,IAC9BF,EAAiBhnS,EAAIwG,KAAKw6R,sBAAsBhhS,GAEhDwG,KAAKu+R,cAAe,CAAA,IAAA,EACev+R,KAAKy+R,yBAA7BmC,EADS,EACZpnS,EAAeqnS,EADH,EACApnS,EAEdqnS,EAAe9gS,KAAKu+R,cAEpB/a,EAAiCxjR,KAAkB,aAEnDilB,EAAO67Q,EAAa37Q,IAAM07Q,EAE1B5hB,EAAO6hB,EAAalqO,QAAU4sN,EAAYjnQ,OAASskR,GAKzDL,EAAiBhnS,EAAIunS,GAAMP,EAAiBhnS,EAH/BsnS,EAAa57Q,KAAO07Q,EAEpBE,EAAajqO,OAAS2sN,EAAY9mQ,MAAQkkR,IAEvDJ,EAAiB/mS,EAAIsnS,GAAMP,EAAiB/mS,EAAGwrB,EAAMg6P,GAEzD,OAAOuhB,IAQX,CAAA,IAAA,+BAAA,MAAA,SAA6BQ,GAAAA,IACjBxnS,EAASwnS,EAAX,EAAKvnS,EAAMunS,EAAR,EAEHjuM,EAAQ/yF,KAAK46R,uBAEbqG,EAA0BjhS,KAAKs8R,sCAG/BvoO,EAAU/wC,KAAK6K,IAAIr0B,EAAIynS,EAAwBznS,GAE/Cw6D,EAAUhxC,KAAK6K,IAAIp0B,EAAIwnS,EAAwBxnS,GAarD,OARIs6D,EAAU/zD,KAAK2lM,QAAQu7F,kCACvBnuM,EAAMv5F,EAAIA,EAAIynS,EAAwBznS,EAAI,GAAK,EAC/CynS,EAAwBznS,EAAIA,GAE5Bw6D,EAAUh0D,KAAK2lM,QAAQu7F,kCACvBnuM,EAAMt5F,EAAIA,EAAIwnS,EAAwBxnS,EAAI,GAAK,EAC/CwnS,EAAwBxnS,EAAIA,GAEzBs5F,IAOX,CAAA,IAAA,gCAAA,MAAA,WACI,GAAK/yF,KAAK05R,cAAiB15R,KAAK64R,SAAhC,CAIA,IAAMsI,EAAenhS,KAAK64R,SAAS79R,OAAS,IAAMgF,KAAKmnN,aACnDg6E,IAAiBnhS,KAAK44R,6BACtB54R,KAAK44R,2BAA6BuI,EAClCvK,GAA6B52R,KAAK05R,aAAcyH,OASxD,CAAA,IAAA,8BAAA,MAAA,SAA4BlgS,GACxBA,EAAQ0yB,oBAAoB,YAAa3zB,KAAKu5R,aAAcnB,IAC5Dn3R,EAAQ0yB,oBAAoB,aAAc3zB,KAAKu5R,aAAcpB,MASjE,CAAA,IAAA,6BAAA,MAAA,SAA2B3+R,EAAGC,GAE1B,IAAMorB,EAAYy6Q,GAAa9lS,EAAGC,GAGJ,MAA1BuG,KAAK87R,oBACL97R,KAAK87R,kBAAoB97R,KAAK05R,aAAaltR,MAAMqY,WAAa,IAKlE7kB,KAAK05R,aAAaltR,MAAMqY,UAAY7kB,KAAK87R,kBACrCj3Q,EAAY,IAAM7kB,KAAK87R,kBAAoBj3Q,IAQnD,CAAA,IAAA,mBAAA,MAAA,SAAiB+oN,GAEb,IAAMwzD,EAAiBphS,KAAKw6R,sBAC5B,OAAI4G,EACO,CAAE5nS,EAAGo0O,EAAgBp0O,EAAI4nS,EAAe5nS,EAAGC,EAAGm0O,EAAgBn0O,EAAI2nS,EAAe3nS,GAErF,CAAED,EAAG,EAAGC,EAAG,KAOtB,CAAA,IAAA,2BAAA,MAAA,WACIuG,KAAKu+R,cAAgBv+R,KAAK+5R,kBAAAA,EAC1B/5R,KAAKo7R,iBAAiBj8O,UAQ1B,CAAA,IAAA,iCAAA,MAAA,WAAA,IAAA,EACmBn/C,KAAKs4R,kBAAd9+R,EADV,EACQ,EAAKC,EADb,EACW,EACP,KAAW,IAAND,GAAiB,IAANC,GAAYuG,KAAKmnN,eAAiBnnN,KAAK24R,iBAAvD,CAIA,IAAMmI,EAAe9gS,KAAK24R,iBAAiBlhQ,wBAErC2oQ,EAAcpgS,KAAK05R,aAAajiQ,wBAGtC,KAA4B,IAAvBqpQ,EAAapkR,OAAuC,IAAxBokR,EAAavkR,QACnB,IAAtB6jR,EAAY1jR,OAAsC,IAAvB0jR,EAAY7jR,QAD5C,CAKA,IAAM8kR,EAAeP,EAAa57Q,KAAOk7Q,EAAYl7Q,KAE/Co8Q,EAAgBlB,EAAYvpO,MAAQiqO,EAAajqO,MAEjDsvK,EAAc26D,EAAa37Q,IAAMi7Q,EAAYj7Q,IAE7CihN,EAAiBg6D,EAAYxpO,OAASkqO,EAAalqO,OAGrDkqO,EAAapkR,MAAQ0jR,EAAY1jR,OAC7B2kR,EAAe,IACf7nS,GAAK6nS,GAELC,EAAgB,IAChB9nS,GAAK8nS,IAIT9nS,EAAI,EAIJsnS,EAAavkR,OAAS6jR,EAAY7jR,QAC9B4pN,EAAc,IACd1sO,GAAK0sO,GAELC,EAAiB,IACjB3sO,GAAK2sO,IAIT3sO,EAAI,EAEJD,IAAMwG,KAAKs4R,kBAAkB9+R,GAAKC,IAAMuG,KAAKs4R,kBAAkB7+R,GAC/DuG,KAAKuhS,oBAAoB,CAAE9nS,EAAAA,EAAGD,EAAAA,QAStC,CAAA,IAAA,qBAAA,MAAA,SAAmBq6B,GAEf,IAAMpuB,EAAQzF,KAAK+4R,eACnB,MAAqB,iBAAVtzR,EACAA,EAEFs3R,GAAalpQ,GACXpuB,EAAM2rH,MAEV3rH,EAAQA,EAAM6rH,MAAQ,IAQjC,CAAA,IAAA,kBAAA,MAAA,SAAgBz9F,GAEZ,IAAM2tQ,EAAmBxhS,KAAKo7R,iBAAiBqG,aAAa5tQ,GAGxD7zB,KAAKu+R,eAAiBiD,GACtBjK,GAAiBv3R,KAAKu+R,cAAeiD,EAAiBr8Q,IAAKq8Q,EAAiBt8Q,QAQpF,CAAA,IAAA,6BAAA,MAAA,WAEI,IAAM6yQ,EAAiB/3R,KAAKo7R,iBAAiB71D,UAAU1iN,IAAI7iB,KAAK02G,WAChE,OAAOqhL,EAAiBA,EAAel/D,eACnC74N,KAAK47N,eAAe9C,8BAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WAp9BxB,OAAO94N,KAAK2vO,cAAgB3vO,KAAKq6R,iBAAkBr6R,KAAKq6R,eAAe7oF,WAM3E,IAAA,SAAa/rM,GAET,IAAMqtD,EAAWw/J,GAAsB7sN,GACnCqtD,IAAa9yD,KAAK2vO,YAClB3vO,KAAK2vO,UAAY78K,EACjB9yD,KAAK07R,qCAQb,EAxQE,GA2iDN,SAAS4D,GAAa9lS,EAAGC,GAGrB,MAAA,eAAA,OAAsBupB,KAAKooB,MAAM5xC,GAAjC,QAAA,OAA0CwpB,KAAKooB,MAAM3xC,GAArD,UAOJ,SAASkmS,GAAcvgQ,GAEnB,IAAMxoB,EAA2BwoB,EAAK0C,WAAAA,GAEhC4/P,EAAoB9qR,EAAMgpN,iBAAiB,QAE3C+hE,EAAqBviQ,EAAKwgM,iBAAiB,UAEjDhpN,EAAMmrB,gBAAgB,MACtB,IAAK,IAAIpnC,EAAI,EAAGA,EAAI+mS,EAAkB1mS,OAAQL,IAC1C+mS,EAAkB/mS,GAAGonC,gBAAgB,MAIzC,GAAI4/P,EAAmB3mS,OAGnB,IADA,IAAM4mS,EAAgBhrR,EAAMgpN,iBAAiB,UACpCjlO,EAAI,EAAGA,EAAIgnS,EAAmB3mS,OAAQL,IAAK,CAEhD,IAAMknS,EAA4BD,EAAcjnS,GAAG0hB,WAAW,MAC1DwlR,GACAA,EAA0BplR,UAAUklR,EAAmBhnS,GAAI,EAAG,GAI1E,OAAOic,EASX,SAASmqR,GAAMt7R,EAAO+U,EAAKC,GACvB,OAAOuI,KAAKvI,IAAID,EAAKwI,KAAKxI,IAAIC,EAAKhV,IAOvC,SAAS,GAAW25B,GACZA,GAAQA,EAAKjyB,YACbiyB,EAAKjyB,WAAWC,YAAYgyB,GAQpC,SAAS29P,GAAalpQ,GAIlB,MAAyB,MAAlBA,EAAM1oB,KAAK,GAwBtB,SAASwqN,GAAY3mE,EAASt4C,GAE1B,IAAMskH,EAAYhsE,EAAQgsE,UAC1B,GAAyB,IAArBA,EAAUhgO,QAAgBggO,EAAU,GAAGrlM,WAAa+gF,EAAUijC,aAC9D,OAA0BqhF,EAAU,GAGxC,IAAMpkM,EAAU8/E,EAAUlsG,cAAc,OAMxC,OALAwwN,EAAUrjN,SAIVynB,SAAAA,GAAAA,OAAQxI,EAAQjqB,YAAYyyB,MACrBxI,EAQX,SAAS8oQ,GAAiB/0R,EAAQm3R,GAC9Bn3R,EAAO6B,MAAMkQ,MAAb/R,GAAAA,OAAwBm3R,EAAWplR,MAAnC/R,MACAA,EAAO6B,MAAM+P,OAAb5R,GAAAA,OAAyBm3R,EAAWvlR,OAApC5R,MACAA,EAAO6B,MAAMqY,UAAYy6Q,GAAawC,EAAW58Q,KAAM48Q,EAAW38Q,KAuBtE,SAAS48Q,GAAgBjqR,EAAOkqR,EAAW/yH,GAEvC,IAAM16F,EAAO0tN,GAAQD,EAAWlqR,EAAM9c,OAAS,GAEzC2xE,EAAKs1N,GAAQhzH,EAASn3J,EAAM9c,OAAS,GAC3C,GAAIu5E,IAAS5H,EAAb,CAOA,IAHA,IAAMhiE,EAASmN,EAAMy8D,GAEfwe,EAAQpmB,EAAK4H,GAAQ,EAAI,EACtB55E,EAAI45E,EAAM55E,IAAMgyE,EAAIhyE,GAAKo4F,EAC9Bj7E,EAAMnd,GAAKmd,EAAMnd,EAAIo4F,GAEzBj7E,EAAM60D,GAAMhiE,GA4ChB,SAASs3R,GAAQx8R,EAAOgV,GACpB,OAAOuI,KAAKvI,IAAI,EAAGuI,KAAKxI,IAAIC,EAAKhV,IAoErC,IAAM,GAAA,WAQF,SAAA,EAAYxE,EAASo3R,EAAmB3hL,EAAWqqE,EAAS66C,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACxD57N,KAAKq4R,kBAAoBA,EACzBr4R,KAAK+gL,QAAUA,EACf/gL,KAAK47N,eAAiBA,EAItB57N,KAAKwxM,UAAAA,EAILxxM,KAAKm/R,iBAAAA,EAKLn/R,KAAKkiS,oBAAAA,EAKLliS,KAAKmiS,eAAiB,WAAA,OAAA,GAOtBniS,KAAKg5R,cAAgB,IAAI,EAIzBh5R,KAAKm5R,QAAU,IAAI,EAKnBn5R,KAAKo5R,OAAS,IAAI,EAIlBp5R,KAAKq5R,QAAU,IAAI,EAInBr5R,KAAK8oM,OAAS,IAAI,EAIlB9oM,KAAKoiS,aAAAA,EAILpiS,KAAKqiS,eAAiB,GAKtBriS,KAAKsiS,cAAgB,CAAEC,KAAM,KAA2BxvM,MAAO,GAI/D/yF,KAAKwiS,UAAY,GAIjBxiS,KAAKyiS,aAAe,WAIpBziS,KAAK0iS,gBAAkB,IAAI1uI,IAI3Bh0J,KAAKmqO,WAAa,MAIlBnqO,KAAK2iS,4BAA8B,EAAa3oK,MAIhDh6H,KAAK4iS,yBAA2B,EAIhC5iS,KAAK6iS,2BAA6B,EAIlC7iS,KAAK8iS,kBAAoB,IAAI,EAI7B9iS,KAAK+iS,kBAAoB,KAIzB/iS,KAAKgjS,qBAAuB,WAIxBhjS,EAAK28R,iBACL/lK,GAAS,EAAGo8F,IACP3uN,KAAKk6L,GAAUv+L,EAAK8iS,oBACpBviS,WAAU,WAKX,IAAM6+B,EAAOp/B,EAAKijS,YACoB,IAAlCjjS,EAAK4iS,yBACLM,GAAwB9jQ,GAnKnB,GAqKkC,IAAlCp/B,EAAK4iS,0BACVM,GAAwB9jQ,EAtKnB,GAwK+B,IAApCp/B,EAAK6iS,2BACLM,GAA0B/jQ,GAzKrB,GA2KoC,IAApCp/B,EAAK6iS,4BACVM,GAA0B/jQ,EA5KrB,OAgLjBp/B,KAAKiB,QAAU0xN,GAAc1xN,GAC7BjB,KAAK02G,UAAYA,EACjB12G,KAAKojS,sBAAsB,CAACpjS,KAAKiB,UACjCo3R,EAAkBgL,sBAAsBrjS,MACxCA,KAAKo7R,iBAAmB,IAAIvD,GAAsBnhL,EAAWklH,GAoxBjDmnE,OA9wBhB,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,WACI/iS,KAAK28R,iBACL38R,KAAK8iS,kBAAkBv7R,WACvBvH,KAAK2iS,4BAA4BhiS,cACjCX,KAAKg5R,cAAczxR,WACnBvH,KAAKm5R,QAAQ5xR,WACbvH,KAAKo5R,OAAO7xR,WACZvH,KAAKq5R,QAAQ9xR,WACbvH,KAAK8oM,OAAOvhM,WACZvH,KAAK0iS,gBAAgBvjP,QACrBn/C,KAAKijS,YAAc,KACnBjjS,KAAKo7R,iBAAiBj8O,QACtBn/C,KAAKq4R,kBAAkBiL,oBAAoBtjS,QAM/C,CAAA,IAAA,aAAA,MAAA,WACI,OAAOA,KAAKoiS,cAMhB,CAAA,IAAA,QAAA,MAAA,WAAA,IAAA,EAAA,KAEUztQ,EAASg+L,GAAc3yN,KAAKiB,SAASuL,MAC3CxM,KAAKg5R,cAAc9wR,OACnBlI,KAAKoiS,aAAAA,EAILpiS,KAAKujS,mBAAqB5uQ,EAAO6uQ,kBAAoB,EAA8BC,gBAAkB,GACrG,EAA8BA,eAAiB9uQ,EAAO6uQ,iBAAmB,OACzExjS,KAAK0jS,cACL1jS,KAAKwiS,UAAU7qR,SAIfgsR,SAAAA,GAAAA,OAAWA,EAAQC,gBAAgB5jS,MACnCA,KAAK2iS,4BAA4BhiS,cACjCX,KAAK6jS,0BAWT,CAAA,IAAA,QAAA,MAAA,SAAM3gS,EAAMu0R,EAAUC,EAAUz2Q,GAK5B,IAAIkvI,EAJJnwJ,KAAKsP,QAKQ,MAAT2R,GAEkB,KADlBkvI,EAAWnwJ,KAAKm/R,gBAAkBn/R,KAAK8jS,YAAYliS,QAAQsB,IAAS,KAIhEitJ,EAAWnwJ,KAAK+jS,iCAAiC7gS,EAAMu0R,EAAUC,IAIrEvnI,EAAWlvI,EAGf,IAAM+iR,EAAmBhkS,KAAKikS,kBAExBp3H,EAAem3H,EAAiBpiS,QAAQsB,GAExCm6R,EAAcn6R,EAAKq4R,wBAErB2I,EAAuBF,EAAiB7zI,GAc5C,GAVI+zI,IAAyBhhS,IACzBghS,EAAuBF,EAAiB7zI,EAAW,IAInD0c,GAAgB,GAChBm3H,EAAiBpjS,OAAOisK,EAAc,GAItCq3H,IAAyBlkS,KAAKq4R,kBAAkBlxE,WAAW+8E,GAAuB,CAElF,IAAMjjS,EAAUijS,EAAqB1I,iBAClBv6R,EAAsB,cAAE+L,aAAaqwR,EAAap8R,GACrE+iS,EAAiBpjS,OAAOuvJ,EAAU,EAAGjtJ,OAEpC,CAED,IAAMjC,EAAU0xN,GAAc3yN,KAAKiB,SAC/BjB,KAAKmkS,yBAAyB1M,EAAUC,IACxCz2R,EAAQ+L,aAAaqwR,EAAa2G,EAAiB,GAAGxI,kBACtDwI,EAAiBlhS,QAAQI,KAGzBjC,EAAQ0L,YAAY0wR,GACpB2G,EAAiBtjS,KAAKwC,IAI9Bm6R,EAAY7wR,MAAMqY,UAAY,GAG9B7kB,KAAKokS,sBACLpkS,KAAKqkS,wBACLrkS,KAAKm5R,QAAQjxR,KAAK,CAAEhF,KAAAA,EAAM6jC,UAAW/mC,KAAM6sK,aAAc7sK,KAAK69R,aAAa36R,OAO/E,CAAA,IAAA,OAAA,MAAA,SAAKA,GACDlD,KAAK4nD,SACL5nD,KAAKo5R,OAAOlxR,KAAK,CAAEhF,KAAAA,EAAM6jC,UAAW/mC,SAexC,CAAA,IAAA,OAAA,MAAA,SAAKkD,EAAM2pK,EAAckyH,EAAmBF,EAAwBr2O,EAAUukH,GAC1E/sK,KAAK4nD,SAEgB,MAAjBmlH,IACAA,EAAgBgyH,EAAkBlB,aAAa36R,IAEnDlD,KAAKq5R,QAAQnxR,KAAK,CAAEhF,KAAAA,EAChB2pK,aAAAA,EACAE,cAAAA,EACAhmI,UAAW/mC,KACX++R,kBAAAA,EACAF,uBAAAA,EACAr2O,SAAAA,MAUR,CAAA,IAAA,YAAA,MAAA,SAAUwgI,GAAAA,IAAAA,EAAAA,KAEAs7G,EAAgB,KAA0BR,YA2BhD,OA1BA,KAA0BA,YAAc96G,EACxCA,EAAMrxK,SAINzU,SAAAA,GAAAA,OAAQA,EAAKqhS,mBAAmB,MAC5B,KAA0Bp9E,eAELm9E,EAAcptR,QAInChU,SAAAA,GAAAA,OAAQA,EAAKikN,gBAGI8rB,OAIjB/vO,SAAAA,GAAAA,OAAiC,IAAzB8lL,EAAMpnL,QAAQsB,MAClB,KAA0B0kD,SAG1B,KAA0B87O,eAG3B,OASX,CAAA,IAAA,gBAAA,MAAA,SAAcj/L,GAEV,OADA,KAA0B0lI,WAAa1lI,EAChC,OAUX,CAAA,IAAA,cAAA,MAAA,SAAYs9H,GAER,OADA,KAA0BygE,UAAYzgE,EAAYzkO,QAC3C,OASX,CAAA,IAAA,kBAAA,MAAA,SAAgBknS,GAEZ,OADA,KAA0B/B,aAAe+B,EAClC,OASX,CAAA,IAAA,wBAAA,MAAA,SAAsB38Q,GAElB,IAAM5mB,EAAU0xN,GAAc,KAA0B1xN,SAKxD,OAFA,KAA0BwjS,qBACS,IAA/B58Q,EAASjmB,QAAQX,GADKwjS,CACcxjS,GADdwjS,OAAAA,oBAC0B58Q,IAAYA,EAASvqB,QAClE,OAMX,CAAA,IAAA,uBAAA,MAAA,WACI,OAAO0C,KAAKykS,sBAOhB,CAAA,IAAA,eAAA,MAAA,SAAavhS,GACT,OAAKlD,KAAKoiS,YASH37E,GAF6B,eAAtBzmN,KAAKyiS,cAAqD,QAApBziS,KAAKmqO,WACrDnqO,KAAKqiS,eAAe/kS,QAAQs6C,UAAY53C,KAAKqiS,gBAKjDqC,SAAAA,GAAAA,OAAeA,EAAYnC,OAASr/R,KAZzBlD,KAAK8jS,YAAYliS,QAAQsB,KAmBxC,CAAA,IAAA,cAAA,MAAA,WACI,OAAOlD,KAAK0iS,gBAAgBjhR,KAAO,IAUvC,CAAA,IAAA,YAAA,MAAA,SAAUve,EAAMu0R,EAAUC,EAAUiN,GAEhC,IAAI3kS,KAAKm/R,iBACJ3H,GAAwBx3R,KAAK4kS,YAveT,IAuegDnN,EAAUC,GADnF,CAKA,IAAMmN,EAAW7kS,KAAKqiS,eAEhBlyI,EAAWnwJ,KAAK+jS,iCAAiC7gS,EAAMu0R,EAAUC,EAAUiN,GACjF,MAAkB,IAAdx0I,GAAmB00I,EAAS7pS,OAAS,GAAzC,CAIA,IAAM8pS,EAAqC,eAAtB9kS,KAAKyiS,aAEpB51H,EAAe45C,GAAUo+E,GAI/BH,SAAAA,GAAAA,OAAeA,EAAYnC,OAASr/R,KAE9B6hS,EAAuBF,EAAS10I,GAEhCy9E,EAAkBi3D,EAASh4H,GAAcwqH,WAEzC2N,EAAcD,EAAqB1N,WAEnCtkM,EAAQ85E,EAAe1c,EAAW,GAAK,EAC7CnwJ,KAAKsiS,cAAcC,KAAOwC,EAAqBxC,KAC/CviS,KAAKsiS,cAAcvvM,MAAQ+xM,EAAeH,EAAanrS,EAAImrS,EAAalrS,EAGxE,IAAMwrS,EAAajlS,KAAKklS,iBAAiBt3D,EAAiBo3D,EAAajyM,GAGjEoyM,EAAgBnlS,KAAKolS,oBAAoBv4H,EAAcg4H,EAAU9xM,GAIjEsyM,EAAWR,EAASvnS,QAE1BykS,GAAgB8C,EAAUh4H,EAAc1c,GACxCnwJ,KAAK8oM,OAAO5gM,KAAK,CACb6kK,cAAeF,EACfA,aAAc1c,EACdppH,UAAW/mC,KACXkD,KAAAA,IAEJ2hS,EAASltR,SAAQ,SAKhBgsR,EAAS1iR,GAEN,GAAIokR,EAASpkR,KAAW0iR,EAAxB,CAIA,IAAM2B,EAAgB3B,EAAQpB,OAASr/R,EAEjCwW,EAAS4rR,EAAgBL,EAAaE,EAEtCI,EAAkBD,EAAgBpiS,EAAKq4R,wBACzCoI,EAAQpB,KAAK/G,iBAEjBmI,EAAQjqR,QAAUA,EAKdorR,GAGAS,EAAgB/4R,MAAMqY,UAAtB0gR,eAAAA,OAAiDviR,KAAKooB,MAAMu4P,EAAQjqR,QAApE6rR,aACAhO,GAAiBoM,EAAQtM,WAAY,EAAG39Q,KAGxC6rR,EAAgB/4R,MAAMqY,UAAtB0gR,kBAAAA,OAAoDviR,KAAKooB,MAAMu4P,EAAQjqR,QAAvE6rR,UACAhO,GAAiBoM,EAAQtM,WAAY39Q,EAAQ,YAWzD,CAAA,IAAA,6BAAA,MAAA,SAA2B+9Q,EAAUC,GAAAA,IAAAA,EAAAA,KACjC,IAAI13R,KAAKkiS,mBAAT,CAIA,IAAIsD,EAEAC,EAA0B,EAE1BC,EAA4B,EAqBhC,GAnBA1lS,KAAKo7R,iBAAiB71D,UAAU5tN,SAAQ,SAKvCkP,EAAU5lB,GAAAA,IAAAA,EAGHA,IAAYjB,EAAK02G,WAAc7vF,EAASwwQ,aAAcmO,GAGtDhO,GAAwB3wQ,EAASwwQ,WArlBhB,IAqlBsDI,EAAUC,KAAAA,EAAAA,eA8qBjG,SAAoCz2R,EAASo2R,EAAYI,EAAUC,GAE/D,IAAMiO,EAAmBC,GAA2BvO,EAAYK,GAE1DmO,EAAqBC,GAA6BzO,EAAYI,GAEhEgO,EAA0B,EAE1BC,EAA4B,EAKhC,GAAIC,EAAkB,CAElB,IAAMlwQ,EAAYx0B,EAAQw0B,UACD,IAArBkwQ,EACIlwQ,EAAY,IACZgwQ,EAA0B,GAGzBxkS,EAAQq7N,aAAe7mM,EAAYx0B,EAAQwlG,eAChDg/L,EAA0B,GAGlC,GAAII,EAAoB,CAEpB,IAAMrwQ,EAAav0B,EAAQu0B,WACA,IAAvBqwQ,EACIrwQ,EAAa,IACbkwQ,EAA4B,GAG3BzkS,EAAQs7N,YAAc/mM,EAAav0B,EAAQulG,cAChDk/L,EAA4B,GAGpC,MAAO,CAACD,EAAyBC,GArCrC,CA7qBkG,EAA8B7+Q,EAASwwQ,WAAYI,EAAUC,GAD9DA,GAChF+N,EADgF/N,EAAAA,GACvDgO,EADuDhO,EAAAA,IAE7E+N,GAA2BC,KAC3BF,EAAa,QAKpBC,IAA4BC,EAA2B,CAAA,IAAA,EAC9B1lS,KAAK47N,eAAe7C,kBAAtCr8M,EADgD,EAClD,MAASH,EADyC,EAC3C,OAEP86Q,EAAa,CAAE36Q,MAAAA,EAAOH,OAAAA,EAAQ4I,IAAK,EAAG0xC,MAAOn6C,EAAOk6C,OAAQr6C,EAAQ2I,KAAM,GAChFugR,EAA0BG,GAA2BvO,EAAYK,GACjEgO,EAA4BI,GAA6BzO,EAAYI,GACrE+N,EAAatoS,QAEbsoS,GAAeC,IAA4BzlS,KAAK4iS,0BAChD8C,IAA8B1lS,KAAK6iS,4BACnC2C,IAAexlS,KAAKijS,cACpBjjS,KAAK4iS,yBAA2B6C,EAChCzlS,KAAK6iS,2BAA6B6C,EAClC1lS,KAAKijS,YAAcuC,GACdC,GAA2BC,IAA8BF,EAC1DxlS,KAAK+gL,QAAQX,kBAAkBpgL,KAAKgjS,sBAGpChjS,KAAK28R,qBAQjB,CAAA,IAAA,iBAAA,MAAA,WACI38R,KAAK8iS,kBAAkB56R,SAO3B,CAAA,IAAA,wBAAA,MAAA,WAEI,IAAMjH,EAAU0xN,GAAc3yN,KAAKiB,SACnCjB,KAAKo7R,iBAAiBrrN,MAAM/vE,KAAKykS,qBAGjCzkS,KAAK4kS,YAAoD5kS,KAAKo7R,iBAAiB71D,UAAU1iN,IAAI5hB,GAAsB,aAOvH,CAAA,IAAA,sBAAA,MAAA,WAEI,IAAM6jS,EAAqC,eAAtB9kS,KAAKyiS,aAC1BziS,KAAKqiS,eAAiBriS,KAAKikS,kBAAkBlvR,KAI7CwtR,SAAAA,GAEI,IAAMwD,EAAmBxD,EAAKyD,oBAC9B,MAAO,CAAEzD,KAAAA,EAAM7oR,OAAQ,EAAG29Q,WAAYD,GAAqB2O,OAC3DruP,MAAK,SAKR79C,EAAGC,GALK,OAMEgrS,EAAejrS,EAAEw9R,WAAWnyQ,KAAOprB,EAAEu9R,WAAWnyQ,KACnDrrB,EAAEw9R,WAAWlyQ,IAAMrrB,EAAEu9R,WAAWlyQ,SAQ5C,CAAA,IAAA,SAAA,MAAA,WAAA,IAAA,EAAA,KACInlB,KAAKoiS,aAAAA,EAEL,IAAMztQ,EAASg+L,GAAc3yN,KAAKiB,SAASuL,MAC3C,EAA8Bi3R,eAAiB9uQ,EAAO6uQ,iBAAmBxjS,KAAKujS,mBAE9EvjS,KAAKikS,kBAAkBtsR,SAIvBzU,SAAAA,GAEI,IAAM0qP,EAAc1qP,EAAKs4R,iBACrB5tC,IACAA,EAAYphP,MAAMqY,UAAY,OAGtC7kB,KAAKwiS,UAAU7qR,SAIfgsR,SAAAA,GAAAA,OAAWA,EAAQsC,eAAejmS,MAClCA,KAAKikS,kBAAoB,GACzBjkS,KAAKqiS,eAAiB,GACtBriS,KAAKsiS,cAAcC,KAAO,KAC1BviS,KAAKsiS,cAAcvvM,MAAQ,EAC3B/yF,KAAK28R,iBACL38R,KAAK2iS,4BAA4BhiS,cACjCX,KAAKo7R,iBAAiBj8O,UAU1B,CAAA,IAAA,sBAAA,MAAA,SAAoB0tH,EAAcg4H,EAAU9xM,GAExC,IAAM+xM,EAAqC,eAAtB9kS,KAAKyiS,aAEpB70D,EAAkBi3D,EAASh4H,GAAcwqH,WAEzC6O,EAAmBrB,EAASh4H,GAAwB,EAAT95E,GAE7CoyM,EAAgBv3D,EAAgBk3D,EAAe,QAAU,UAAY/xM,EACzE,GAAImzM,EAAkB,CAElB,IAAM52R,EAAQw1R,EAAe,OAAS,MAEhC/pQ,EAAM+pQ,EAAe,QAAU,UAKtB,IAAX/xM,EACAoyM,GAAiBe,EAAiB7O,WAAW/nR,GAASs+N,EAAgB7yM,GAGtEoqQ,GAAiBv3D,EAAgBt+N,GAAS42R,EAAiB7O,WAAWt8P,GAG9E,OAAOoqQ,IAUX,CAAA,IAAA,mBAAA,MAAA,SAAiBv3D,EAAiBo3D,EAAajyM,GAE3C,IAAM+xM,EAAqC,eAAtB9kS,KAAKyiS,aAEtBwC,EAAaH,EAAeE,EAAY9/Q,KAAO0oN,EAAgB1oN,KAC/D8/Q,EAAY7/Q,IAAMyoN,EAAgBzoN,IAMtC,OAJe,IAAX4tE,IACAkyM,GAAcH,EAAeE,EAAYtoR,MAAQkxN,EAAgBlxN,MAC7DsoR,EAAYzoR,OAASqxN,EAAgBrxN,QAEtC0oR,IASX,CAAA,IAAA,2BAAA,MAAA,SAAyBxN,EAAUC,GAC/B,IAAK13R,KAAKikS,kBAAkBjpS,OACxB,OAAA,EAGJ,IAAMmrS,EAAgBnmS,KAAKqiS,eAErByC,EAAqC,eAAtB9kS,KAAKyiS,aAK1B,GADiB0D,EAAc,GAAG5D,OAASviS,KAAKikS,kBAAkB,GACpD,CAEV,IAAMmC,EAAeD,EAAcA,EAAcnrS,OAAS,GAAGq8R,WAC7D,OAAOyN,EAAerN,GAAY2O,EAAavvO,MAAQ6gO,GAAY0O,EAAaxvO,OAIhF,IAAMyvO,EAAgBF,EAAc,GAAG9O,WACvC,OAAOyN,EAAerN,GAAY4O,EAAcnhR,KAAOwyQ,GAAY2O,EAAclhR,MAYzF,CAAA,IAAA,mCAAA,MAAA,SAAiCjiB,EAAMu0R,EAAUC,EAAU3kM,GAAAA,IAAAA,EAAAA,KAEjD+xM,EAAqC,eAAtB9kS,KAAKyiS,aAC1B,OAAOh8E,GAAUzmN,KAAKqiS,gBAAgB,SAAA,EAMf7qR,EAAGM,GAAAA,IAAvByqR,EAAuBzqR,EAAvByqR,KAAMlL,EAAiBv/Q,EAAjBu/Q,WACL,GAAIkL,IAASr/R,EAGT,OAAO4U,EAAM9c,OAAS,EAE1B,GAAI+3F,EAAO,CAEP,IAAM0R,EAAYqgM,EAAe/xM,EAAMv5F,EAAIu5F,EAAMt5F,EAGjD,GAAI8oS,IAASviS,EAAKsiS,cAAcC,MAAQ99L,IAAczkG,EAAKsiS,cAAcvvM,MACrE,OAAA,EAGR,OAAO+xM,EAGHrN,GAAYz0Q,KAAKa,MAAMwzQ,EAAWnyQ,OAASuyQ,EAAWz0Q,KAAKa,MAAMwzQ,EAAWxgO,OAC5E6gO,GAAY10Q,KAAKa,MAAMwzQ,EAAWlyQ,MAAQuyQ,EAAW10Q,KAAKa,MAAMwzQ,EAAWzgO,aAQvF,CAAA,IAAA,cAAA,MAAA,WACI52D,KAAKikS,kBAAoBjkS,KAAK8jS,YAAYxmS,QAC1C0C,KAAKokS,sBACLpkS,KAAKqkS,0BAQT,CAAA,IAAA,mBAAA,MAAA,SAAiB7qS,EAAGC,GAChB,OAAO69R,GAAmBt3R,KAAK4kS,YAAaprS,EAAGC,KAUnD,CAAA,IAAA,mCAAA,MAAA,SAAiCyJ,EAAM1J,EAAGC,GACtC,OAAOuG,KAAKwiS,UAAUpxQ,MAItBuyQ,SAAAA,GAAAA,OAAWA,EAAQ2C,YAAYpjS,EAAM1J,EAAGC,QAS5C,CAAA,IAAA,cAAA,MAAA,SAAYyJ,EAAM1J,EAAGC,GACjB,IAAK69R,GAAmBt3R,KAAK4kS,YAAaprS,EAAGC,KAAOuG,KAAKmiS,eAAej/R,EAAMlD,MAC1E,OAAA,EAGJ,IAAMumS,EAAsCvmS,KAAKu1N,iBAAiBgxE,iBAAiB/sS,EAAGC,GAGtF,IAAK8sS,EACD,OAAA,EAGJ,IAAMh8H,EAAgBooD,GAAc3yN,KAAKiB,SAOzC,OAAOslS,IAAqBh8H,GAAiBA,EAAc7oJ,SAAS6kR,KAOxE,CAAA,IAAA,kBAAA,MAAA,SAAgB5C,GAEZ,IAAM6C,EAAiBxmS,KAAK0iS,gBACvB8D,EAAezwI,IAAI4tI,KACpB6C,EAAez+R,IAAI47R,GACnB3jS,KAAKqkS,wBACLrkS,KAAK6jS,2BAQb,CAAA,IAAA,iBAAA,MAAA,SAAeF,GACX3jS,KAAK0iS,gBAAL1iS,OAA4B2jS,GAC5B3jS,KAAK2iS,4BAA4BhiS,gBAQrC,CAAA,IAAA,wBAAA,MAAA,WAAA,IAAA,EAAA,KACIX,KAAK2iS,4BAA8B3iS,KAAKq4R,kBAAkBvkQ,OAAOvzB,WAIjEszB,SAAAA,GACI,GAAI7zB,EAAKmnN,aAAc,CAEnB,IAAMq6E,EAAmBxhS,EAAKo7R,iBAAiBqG,aAAa5tQ,GACxD2tQ,IAKAxhS,EAAKqiS,eAAe1qR,SAAQ,SAAA,GAKxB4/Q,GADDF,EAAAA,WAC8BmK,EAAiBr8Q,IAAKq8Q,EAAiBt8Q,SAIxEllB,EAAKqiS,eAAe1qR,SAAQ,SAAA,GAIzB4qR,IAAAA,EAAAA,EAAAA,KACKviS,EAAKq4R,kBAAkBlxE,WAAWo7E,IAGlCA,EAAKkE,wCAKZzmS,EAAK0mS,eACV1mS,EAAKqkS,6BAYjB,CAAA,IAAA,iBAAA,MAAA,WACI,IAAKrkS,KAAK+iS,kBAAmB,CAEzB,IAAMrkD,EAAgCnpB,GAAe5C,GAAc3yN,KAAKiB,UACxEjB,KAAK+iS,kBAAoBrkD,GAAc1+O,KAAK02G,UAEhD,OAAO12G,KAAK+iS,sBAAAA,EA75Bd,GAynCN,SAASt8E,GAAU3uM,EAAO4gK,GACtB,IAAK,IAAI/9K,EAAI,EAAGA,EAAImd,EAAM9c,OAAQL,IAC9B,GAAI+9K,EAAU5gK,EAAMnd,GAAIA,EAAGmd,GACvB,OAAOnd,EAGf,OAAQ,EAQZ,SAASuoS,GAAwB9jQ,EAAMwsG,GAC/BxsG,IAASliC,OACT,EAA4BgxR,SAAS,EAAGtiJ,GAIxC,EAA4Bn2G,WAAam2G,EASjD,SAASu3J,GAA0B/jQ,EAAMwsG,GACjCxsG,IAASliC,OACT,EAA4BgxR,SAAStiJ,EAAQ,GAI7C,EAA4Bp2G,YAAco2G,EASlD,SAASg6J,GAA2BvO,EAAYK,GAAAA,IACpCvyQ,EAAwBkyQ,EAA1B,IAAOzgO,EAAmBygO,EAArB,OAELO,EAztCyB,IAutCCP,EAAb,OAGnB,OAAIK,GAAYvyQ,EAAMyyQ,GAAcF,GAAYvyQ,EAAMyyQ,EAC3C,EAEFF,GAAY9gO,EAASghO,GAAcF,GAAY9gO,EAASghO,EACtD,EAEJ,EAQX,SAASkO,GAA6BzO,EAAYI,GAAAA,IACtCvyQ,EAAuBmyQ,EAAzB,KAAQxgO,EAAiBwgO,EAAnB,MAENM,EA3uCyB,IAyuCAN,EAAZ,MAGnB,OAAII,GAAYvyQ,EAAOyyQ,GAAcF,GAAYvyQ,EAAOyyQ,EAC7C,EAEFF,GAAY5gO,EAAQ8gO,GAAcF,GAAY5gO,EAAQ8gO,EACpD,EAEJ,EA4DX,IAaMgP,GAgUAC,GAubAC,GA7CAC,GA9FAC,GAqQAC,GA93BAC,GAA8B3xE,GAAgC,CAChEl8J,SAAAA,EACAinD,SAAAA,IAFJ,KAaMsmL,GAAAA,WAKF,SAAA,EAAY5lH,EAASrqE,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACjB12G,KAAK+gL,QAAUA,EAIf/gL,KAAKknS,eAAiB,IAAIlzI,IAI1Bh0J,KAAKmnS,eAAiB,IAAInzI,IAI1Bh0J,KAAKonS,qBAAuB,IAAIpzI,IAIhCh0J,KAAKqnS,iBAAmB,IAAIvzI,IAK5B9zJ,KAAKm+R,YAAc,IAAI,EAKvBn+R,KAAKo+R,UAAY,IAAI,EAIrBp+R,KAAK8zB,OAAS,IAAI,EAKlB9zB,KAAKsnS,6BAIJzzQ,SAAAA,GACO7zB,EAAKonS,qBAAqB3lR,MAC1BoS,EAAMqoC,kBAGdl8D,KAAK02G,UAAYA,EAgLKv3D,OAzK1B,aAAA,EAAA,CAAA,CAAA,IAAA,wBAAA,MAAA,SAAsB6/O,GACbh/R,KAAKknS,eAAenxI,IAAIipI,IACzBh/R,KAAKknS,eAAen/R,IAAIi3R,KAQhC,CAAA,IAAA,mBAAA,MAAA,SAAiBuD,GAAAA,IAAAA,EAAAA,KACbviS,KAAKmnS,eAAep/R,IAAIw6R,GAIS,IAA7BviS,KAAKmnS,eAAe1lR,MACpBzhB,KAAK+gL,QAAQX,mBAAkB,WAM3BpgL,EAAK02G,UAAUjjF,iBAAiB,YAAazzB,EAAKsnS,6BAA8BL,SAS5F,CAAA,IAAA,sBAAA,MAAA,SAAoBjI,GAChBh/R,KAAKknS,eAALlnS,OAA2Bg/R,KAO/B,CAAA,IAAA,iBAAA,MAAA,SAAeuD,GACXviS,KAAKmnS,eAALnnS,OAA2BuiS,GAC3BviS,KAAKy8R,aAAa8F,GACe,IAA7BviS,KAAKmnS,eAAe1lR,MACpBzhB,KAAK02G,UAAU/iF,oBAAoB,YAAa3zB,KAAKsnS,6BAA8BL,MAS3F,CAAA,IAAA,gBAAA,MAAA,SAAc1E,EAAM1uQ,GAAAA,IAAAA,EAAAA,KAEhB,IAAI7zB,KAAKonS,qBAAqBrxI,IAAIwsI,KAGlCviS,KAAKonS,qBAAqBr/R,IAAIw6R,GACS,IAAnCviS,KAAKonS,qBAAqB3lR,MAAY,CAEtC,IAAMs7Q,EAAelpQ,EAAM1oB,KAAK2nL,WAAW,SAIrCy0G,EAAUxK,EAAe,WAAa,UAI5C/8R,KAAKqnS,iBACArlR,IAPa+6Q,EAAe,YAAc,YAO3B,CAChBv8R,QAICiD,SAAAA,GAAAA,OAAMzD,EAAKm+R,YAAYj2R,KAAK,IAC7BwN,QAASuxR,KAERjlR,IAAIulR,EAAS,CACd/mS,QAICiD,SAAAA,GAAAA,OAAMzD,EAAKo+R,UAAUl2R,KAAK,IAC3BwN,SAAAA,IAECsM,IAAI,SAAU,CACfxhB,QAICiD,SAAAA,GAAAA,OAAMzD,EAAK8zB,OAAO5rB,KAAKzE,IAGxBiS,SAAAA,IAMCsM,IAAI,cAAe,CACpBxhB,QAASR,KAAKsnS,6BACd5xR,QAASuxR,KAEbjnS,KAAK+gL,QAAQX,mBAAkB,WAI3BpgL,EAAKqnS,iBAAiB1vR,SAAQ,SAK7B1O,EAAQrJ,GACLI,EAAK02G,UAAUjjF,iBAAiB7zB,EAAMqJ,EAAOzI,QAASyI,EAAOyM,kBAU7E,CAAA,IAAA,eAAA,MAAA,SAAa6sR,GACTviS,KAAKonS,qBAALpnS,OAAiCuiS,GACM,IAAnCviS,KAAKonS,qBAAqB3lR,MAC1BzhB,KAAKwnS,0BAQb,CAAA,IAAA,aAAA,MAAA,SAAWjF,GACP,OAAOviS,KAAKonS,qBAAqBrxI,IAAIwsI,KAKzC,CAAA,IAAA,cAAA,MAAA,WAAA,IAAA,EAAA,KACIviS,KAAKmnS,eAAexvR,SAIpB6+B,SAAAA,GAAAA,OAAYx2C,EAAKo8R,eAAe5lP,MAChCx2C,KAAKknS,eAAevvR,SAIpB6+B,SAAAA,GAAAA,OAAYx2C,EAAKsjS,oBAAoB9sP,MACrCx2C,KAAKwnS,wBACLxnS,KAAKm+R,YAAY52R,WACjBvH,KAAKo+R,UAAU72R,aAOnB,CAAA,IAAA,wBAAA,MAAA,WAAA,IAAA,EAAA,KACIvH,KAAKqnS,iBAAiB1vR,SAAQ,SAK7B1O,EAAQrJ,GACLI,EAAK02G,UAAU/iF,oBAAoB/zB,EAAMqJ,EAAOzI,QAASyI,EAAOyM,YAEpE1V,KAAKqnS,iBAAiBloP,YAAAA,EAlOxBwnP,IAqOW/jK,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAK2sS,IAAkB,GAAgB,IAAgB,GAAgB,MAM/HA,GAAiBjmK,WAAQb,GAAmB,CAAEvqH,QAAS,WAAsC,OAAO,IAAIqxR,GAAiB3iK,GAAS45C,IAAS55C,GAAS,MAAe3E,MAAOsnK,GAAkB7mK,WAAY,SAN3N6mK,IAoFM,GAAiB,CACnB9L,mBAAoB,EACpBqG,gCAAiC,GAFrC,KAOM0F,GAAAA,WAOF,SAAA,EAAYlwL,EAAWqqE,EAAS66C,EAAgBy8D,GAAAA,gBAAAA,KAAAA,GAC5Cr4R,KAAK02G,UAAYA,EACjB12G,KAAK+gL,QAAUA,EACf/gL,KAAK47N,eAAiBA,EACtB57N,KAAKq4R,kBAAoBA,EAmBkEz8D,OAV/F,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAW36N,GAAkB,IAATgI,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACzB,OAAO,IAAI,GAAQhI,EAASgI,EAAQjJ,KAAK02G,UAAW12G,KAAK+gL,QAAS/gL,KAAK47N,eAAgB57N,KAAKq4R,qBAQhG,CAAA,IAAA,iBAAA,MAAA,SAAep3R,GACX,OAAO,IAAI,GAAYA,EAASjB,KAAKq4R,kBAAmBr4R,KAAK02G,UAAW12G,KAAK+gL,QAAS/gL,KAAK47N,oBAAAA,EA9B7FgrE,IAiCGhkK,UAAO,SAA0B5oI,GAAK,OAAO,IAAKA,GAAK4sS,IAAU,GAAgB,IAAW,GAAgB,IAAgB,GAAgB,IAAuB,GAAgB,MAQzKA,GAASlmK,WAAQb,GAAmB,CAAEvqH,QAAS,WAA8B,OAAO,IAAIsxR,GAAS5iK,GAAS,IAAWA,GAAS45C,IAAS55C,GAAS,IAAgBA,GAAS,MAAuB3E,MAAOunK,GAAU9mK,WAAY,SARhP8mK,IAiQMa,GAAkB,IAAI1kK,GAAe,mBAA3C,KAUMgkK,GAAAA,WAKF,SAAA,EAAY9lS,EAASymS,GAAAA,gBAAAA,KAAAA,GACjB1nS,KAAKiB,QAAUA,EAIfjB,KAAKgvQ,cAAgB,IAAI,EACzBhvQ,KAAK2vO,WAAAA,EACL3vO,KAAK2nS,YAAcD,EACnB9Q,GAA6B31R,EAAQspK,eAAAA,GAkBzC,OAZA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WAaIvqK,KAAKgvQ,cAAcznQ,aAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WAbN,OAAOvH,KAAK2vO,WAK7B,IAAA,SAAalqO,GACTzF,KAAK2vO,UAAYrd,GAAsB7sN,GACvCzF,KAAKgvQ,cAAc9mQ,KAAKlI,UAK5B,EA/BE+mS,IAmCQnkK,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAK+sS,IAAe,GAAyB,IAAoB,GAAyBU,GAAiB,KAChLV,GAAc3kK,UAAO,GAAyB,CAAEj3H,KAAM47R,GAAeroQ,UAAW,CAAC,CAAC,GAAI,gBAAiB,KAAM6nG,UAAW,CAAC,EAAG,mBAAoBE,OAAQ,CAAE+qE,SAAU,CAAC,wBAAyB,eAD9Lu1F,IAAAA,KA2DMD,GAIF,SAAA,EAAY/3I,GAAAA,gBAAAA,KAAAA,GACR/uJ,KAAK+uJ,YAAcA,IAGRnsB,UAAO,SAAoC5oI,GAAK,OAAO,IAAKA,GAAK8sS,IAAoB,GAAyB,MACjIA,GAAmB1kK,UAAO,GAAyB,CAAEj3H,KAAM27R,GAAoBpoQ,UAAW,CAAC,CAAC,cAAe,qBAAsB,KAAM+nG,OAAQ,CAAEtqI,KAAM,UADvJ2qS,IAAAA,KAqCMD,GAAAA,WAIF,SAAA,EAAY93I,GAAAA,gBAAAA,KAAAA,GACR/uJ,KAAK+uJ,YAAcA,EACnB/uJ,KAAK4nS,YAAAA,EAWsDniS,OAL/D,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,IAAA,WAAkB,OAAOzF,KAAK4nS,YAK9B,IAAA,SAAcniS,GAASzF,KAAK4nS,WAAat1E,GAAsB7sN,OAAAA,EAjB7DohS,IAmBSjkK,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAK6sS,IAAgB,GAAyB,MACrHA,GAAezkK,UAAO,GAAyB,CAAEj3H,KAAM07R,GAAgBnoQ,UAAW,CAAC,CAAC,cAAe,iBAAkB,KAAM+nG,OAAQ,CAAEi4J,UAAW,YAAaviS,KAAM,UADnK0qS,IA+CMgB,GAAkB,IAAI9kK,GAAe,mBAmDrC+kK,GAAgB,IAAI/kK,GAAe,iBAnDzC,KAwDMikK,GAAAA,WAYF,SAAA,EAAY/lS,EAASi8R,EAAexmL,EAAWqqE,EAAS1zB,EAAmBpkJ,EAAQwjO,EAAMs7D,EAAUn5B,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAC/F5uQ,KAAKiB,QAAUA,EACfjB,KAAKk9R,cAAgBA,EACrBl9R,KAAK02G,UAAYA,EACjB12G,KAAK+gL,QAAUA,EACf/gL,KAAKqtJ,kBAAoBA,EACzBrtJ,KAAKysO,KAAOA,EACZzsO,KAAK4uQ,mBAAqBA,EAC1B5uQ,KAAKi0J,WAAa,IAAI,EAItBj0J,KAAK2wH,QAAU,IAAI,GAInB3wH,KAAKi5R,SAAW,IAAI,GAIpBj5R,KAAKk5R,MAAQ,IAAI,GAIjBl5R,KAAKm5R,QAAU,IAAI,GAInBn5R,KAAKo5R,OAAS,IAAI,GAIlBp5R,KAAKq5R,QAAU,IAAI,GAKnBr5R,KAAKs5R,MAAQ,IAAI,GAIhB//J,SAAAA,GAEG,IAAMtgH,EAAejZ,EAAKgoS,SAAS1O,MAAMj1R,KAAK0Q,GAI9CkzR,SAAAA,GAAAA,MAAc,CACV7lS,OAAQpC,EACR45R,gBAAiBqO,EAAWrO,gBAC5B/lQ,MAAOo0Q,EAAWp0Q,MAClBk/D,MAAOk1M,EAAWl1M,MAClBvqC,SAAUy/O,EAAWz/O,cACnBjoD,UAAUg5H,GAChB,OAAO,WAIHtgH,EAAatY,kBAGrBX,KAAKgoS,SAAWD,EAASG,WAAWjnS,EAAS,CACzC45R,mBAAoB5xR,GAAuC,MAA7BA,EAAO4xR,mBACjC5xR,EAAO4xR,mBAAqB,EAChCqG,gCAAiCj4R,GAAoD,MAA1CA,EAAOi4R,gCAC9Cj4R,EAAOi4R,gCAAkC,EAC7CtB,OAAQ32R,MAAAA,OAAAA,EAAgDA,EAAO22R,SAEnE5/R,KAAKgoS,SAAS7rS,KAAO6D,KACjBiJ,GACAjJ,KAAKmoS,gBAAgBl/R,GASrBi0R,IACAl9R,KAAKgoS,SAASzD,mBAAmBrH,EAAckL,cAC/ClL,EAAcmL,QAAQroS,OAE1BA,KAAKsoS,YAAYtoS,KAAKgoS,UACtBhoS,KAAKuoS,cAAcvoS,KAAKgoS,UAsB5B,OAhBA,aAAA,EAAA,CAAA,CAAA,IAAA,wBAAA,MAAA,WAiBI,OAAOhoS,KAAKgoS,SAASzM,0BAMzB,CAAA,IAAA,iBAAA,MAAA,WACI,OAAOv7R,KAAKgoS,SAASxM,mBAMzB,CAAA,IAAA,QAAA,MAAA,WACIx7R,KAAKgoS,SAASvoO,UAMlB,CAAA,IAAA,sBAAA,MAAA,WACI,OAAOz/D,KAAKgoS,SAASQ,wBAKzB,CAAA,IAAA,kBAAA,MAAA,WAAA,IAAA,EAAA,KAKIxoS,KAAK+gL,QAAQzC,SAAS6S,eACjB9sL,KAAKu5L,GAAK,GAAIW,GAAUv+L,KAAKi0J,aAC7B1zJ,WAAU,WAIXP,EAAKyoS,qBAELzoS,EAAK64R,SAASnhH,QAAQrzK,KAAK4vN,GAAUj0N,EAAK64R,UAE1Cj6F,IAIC68F,SAAAA,GAEG,IAAMiN,EAAsBjN,EACvBvkR,QAILotL,SAAAA,GAAAA,OAAUA,EAAOqjG,cAAgB3nS,KAC5B+U,KAILuvL,SAAAA,GAAAA,OAAUA,EAAOrjM,WACjBjB,EAAKgoS,SAASW,YAAYD,MAG9Bt0E,IAICqnE,SAAAA,GAAAA,OAC6BlnL,EAAAA,WAAAA,EAAAA,oBAASknL,EAAQ1mR,KAI3C7R,SAAAA,GAAAA,OACWA,EAAK8rQ,cAAc3qQ,KAAK4vN,GAAU/wN,YAE5Cq7L,GAAUv+L,EAAKi0J,aAAa1zJ,WAIjCqoS,SAAAA,GAGI,IAAMC,EAAU7oS,EAAKgoS,SAEf1jG,EAASskG,EAAe3nS,QAAQspK,cACtCq+H,EAAep3F,SAAWq3F,EAAQC,cAAcxkG,GAAUukG,EAAQE,aAAazkG,MAE/EtkM,EAAKgpS,kBACLhpS,EAAKgoS,SAASzG,oBAAoBvhS,EAAKgpS,uBAQnD,CAAA,IAAA,cAAA,MAAA,SAAYtxH,GAER,IAAMuxH,EAAqBvxH,EAA6B,oBAElDu1D,EAAiBv1D,EAA0B,iBAG7CuxH,IAAuBA,EAAmBjhI,aAC1ChoK,KAAKyoS,qBAGLx7D,IAAmBA,EAAejlE,aAAehoK,KAAKgpS,kBACtDhpS,KAAKgoS,SAASzG,oBAAoBvhS,KAAKgpS,oBAM/C,CAAA,IAAA,cAAA,MAAA,WACQhpS,KAAKk9R,eACLl9R,KAAKk9R,cAAcgM,WAAWlpS,MAElCA,KAAKi0J,WAAW/rJ,OAChBlI,KAAKi0J,WAAW1sJ,WAChBvH,KAAKgoS,SAASjjP,YAOlB,CAAA,IAAA,qBAAA,MAAA,WAEI,IAAM9jD,EAAUjB,KAAKiB,QAAQspK,cAEvBqjF,EAAc5tP,KAAKmpS,oBACrBC,GAA2BnoS,EAASjB,KAAKmpS,qBAAuBloS,EACpE,GAAI2sP,GAAeA,EAAYj4N,WAAa31B,KAAK02G,UAAUijC,aACvD,MAAM9zI,MAAM,gDAAA,0BAAA,OACkB+nP,EAAY5uN,SAD9B,OAGhBh/B,KAAKgoS,SAAS7M,gBAAgBvtC,GAAe3sP,KAOjD,CAAA,IAAA,sBAAA,MAAA,WAEI,IAAMooS,EAAWrpS,KAAK+7R,gBACtB,IAAKsN,EACD,OAAO,KAEX,GAAwB,iBAAbA,EACP,OAAOD,GAA2BppS,KAAKiB,QAAQspK,cAAe8+H,GAGlE,IAAMpoS,EAAU0xN,GAAc02E,GAC9B,GAAI/wJ,OAAgBr3I,EAAQygB,SAAS1hB,KAAKiB,QAAQspK,eAC9C,MAAM1kK,MAAM,4EAEhB,OAAO5E,IAQX,CAAA,IAAA,cAAA,MAAA,SAAYo6N,GAAAA,IAAAA,EAAAA,KACRA,EAAI29D,cAAcz4R,WAAU,WAIxB,IAAK86N,EAAIlU,aAAc,CAEnB,IAAMzuB,EAAM14L,EAAKysO,KAEXssD,EAAiB/4R,EAAK+4R,eAEtBsE,EAAcr9R,EAAK47R,qBAAuB,CAC5C11J,SAAUlmI,EAAK47R,qBAAqB7sI,YACpClmJ,QAAS7I,EAAK47R,qBAAqBz/R,KACnCw+L,cAAe36L,EAAKqtJ,mBACpB,KAEE8vI,EAAUn9R,EAAK27R,iBAAmB,CACpCz1J,SAAUlmI,EAAK27R,iBAAiB5sI,YAChClmJ,QAAS7I,EAAK27R,iBAAiBx/R,KAC/BuiS,UAAW1+R,EAAK27R,iBAAiB+C,UACjC/jG,cAAe36L,EAAKqtJ,mBACpB,KACJguE,EAAI7pB,SAAWxxM,EAAKwxM,SACpB6pB,EAAIslE,SAAW3gS,EAAK2gS,SACpBtlE,EAAI09D,eAA4C,iBAAnBA,GAA+BA,EACxDA,EAAiBxmE,GAAqBwmE,GAC1C19D,EAAIolE,kBAAoBzgS,EAAKygS,kBAC7BplE,EAAImkE,aAAex/R,EAAKw/R,aACxBnkE,EACKiuE,oBAAoBtpS,EAAKupS,uBACzBC,wBAAwBnM,GACxBoM,oBAAoBtM,GACrBzkG,GACA2iC,EAAIquE,cAAchxG,EAAIjzL,aAWtC,CAAA,IAAA,gBAAA,MAAA,SAAc41N,GAAAA,IAAAA,EAAAA,KACVA,EAAI1qG,QAAQpwH,WAAU,WAIlBP,EAAK2wH,QAAQzC,KAAK,CAAE9rH,OAAQpC,IAG5BA,EAAK4uQ,mBAAmB9yE,kBAE5Bu/B,EAAI49D,SAAS14R,WAAU,WAInBP,EAAKi5R,SAAS/qK,KAAK,CAAE9rH,OAAQpC,OAEjCq7N,EAAI69D,MAAM34R,WAIVszB,SAAAA,GACI7zB,EAAKk5R,MAAMhrK,KAAK,CAAE9rH,OAAQpC,EAAMwoD,SAAU30B,EAAM20B,WAGhDxoD,EAAK4uQ,mBAAmB9yE,kBAE5Bu/B,EAAI89D,QAAQ54R,WAIZszB,SAAAA,GACI7zB,EAAKm5R,QAAQjrK,KAAK,CACdnnF,UAAWlT,EAAMkT,UAAU5qC,KAC3B+G,KAAMlD,EACN6sK,aAAch5I,EAAMg5I,kBAG5BwuD,EAAI+9D,OAAO74R,WAIXszB,SAAAA,GACI7zB,EAAKo5R,OAAOlrK,KAAK,CACbnnF,UAAWlT,EAAMkT,UAAU5qC,KAC3B+G,KAAMlD,OAGdq7N,EAAIg+D,QAAQ94R,WAIZszB,SAAAA,GACI7zB,EAAKq5R,QAAQnrK,KAAK,CACd6+C,cAAel5I,EAAMk5I,cACrBF,aAAch5I,EAAMg5I,aACpBkyH,kBAAmBlrQ,EAAMkrQ,kBAAkB5iS,KAC3C4qC,UAAWlT,EAAMkT,UAAU5qC,KAC3B0iS,uBAAwBhrQ,EAAMgrQ,uBAC9B37R,KAAMlD,EACNwoD,SAAU30B,EAAM20B,gBAU5B,CAAA,IAAA,kBAAA,MAAA,SAAgBv/C,GAAAA,IACJ03R,EAAsH13R,EAAxH,SAAY8vR,EAA4G9vR,EAA9G,eAAkBw3R,EAA4Fx3R,EAA9F,kBAAqBu2R,EAAyEv2R,EAA3E,aAAgB8yR,EAA2D9yR,EAA7D,gBAAmB0gS,EAA0C1gS,EAA5C,iBAAoBkgS,EAAwBlgS,EAA1B,oBACpGjJ,KAAKwxM,SAA+B,MAApBm4F,GAAmCA,EACnD3pS,KAAK+4R,eAAiBA,GAAkB,EACpC4H,IACA3gS,KAAK2gS,SAAWA,GAEhBF,IACAzgS,KAAKygS,kBAAoBA,GAEzBjB,IACAx/R,KAAKw/R,aAAeA,GAEpBzD,IACA/7R,KAAK+7R,gBAAkBA,GAEvBoN,IACAnpS,KAAKmpS,oBAAsBA,KAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WAvT/B,OAAOnpS,KAAK2vO,WAAc3vO,KAAKk9R,eAAiBl9R,KAAKk9R,cAAc1rF,UAMvE,IAAA,SAAa/rM,GACTzF,KAAK2vO,UAAYrd,GAAsB7sN,GACvCzF,KAAKgoS,SAASx2F,SAAWxxM,KAAK2vO,cAOlC,EAtHEq3D,IAkaEpkK,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAKgtS,IAAS,GAAyB,IAAoB,GAAyBc,GAAe,IAAK,GAAyB,IAAW,GAAyB,IAAgB,GAAyB,IAA0B,GAAyBD,GAAiB,GAAI,GAAyB,GAAuB,GAAI,GAAyB,IAAW,GAAyB,MAChcb,GAAQ5kK,UAAO,GAAyB,CAAEj3H,KAAM67R,GAAStoQ,UAAW,CAAC,CAAC,GAAI,UAAW,KAAM8nG,eAAgB,SAAgC+b,EAAInmI,EAAK6mI,GAK5I,IAAI4tH,EAL6J,EAALtuH,IAC5J,GAAsBU,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,IACzB,EAALV,IAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIu/Q,iBAAmB9qB,EAAGx1G,OAC/E,GAAsBw1G,EAAK,QAA0Bz0P,EAAIw/Q,qBAAuB/qB,EAAGx1G,OACnF,GAAsBw1G,EAAK,QAA0Bz0P,EAAIy8Q,SAAWhoB,KACnEtqI,UAAW,CAAC,EAAG,YAAaD,SAAU,EAAGD,aAAc,SAA8Bkc,EAAInmI,GAAgB,EAALmmI,GACrG,GAAmB,oBAAqBnmI,EAAIo1L,SAA5C,CAAsD,oBAAqBp1L,EAAI4rR,SAAS7gF,eACvF1gF,OAAQ,CAAE+qE,SAAU,CAAC,kBAAmB,YAAaunF,eAAgB,CAAC,oBAAqB,kBAAmB4H,SAAU,CAAC,kBAAmB,YAAaF,kBAAmB,CAAC,2BAA4B,qBAAsBjB,aAAc,CAAC,sBAAuB,gBAAiBzD,gBAAiB,CAAC,kBAAmB,mBAAoBoN,oBAAqB,CAAC,qBAAsB,uBAAwBhtS,KAAM,CAAC,cAAe,QAAS6sS,iBAAkB,CAAC,0BAA2B,qBAAuBtiK,QAAS,CAAE/V,QAAS,iBAAkBsoK,SAAU,kBAAmBC,MAAO,eAAgBC,QAAS,iBAAkBC,OAAQ,gBAAiBC,QAAS,iBAAkBC,MAAO,gBAAkB3yJ,SAAU,CAAC,WAAYrrH,SAAU,CAAC,GAA0B,CAAC,CAAE+nH,QAASokK,GAAiBnxI,YAAa0wI,MAAa,MAZrzBA,IAsSA,SAASoC,GAA2BnoS,EAAS69B,GAGzC,IADA,IAAI8qQ,EAAoC3oS,EAAsB,cACvD2oS,GAAgB,CAEnB,GAAIA,EAAelkJ,QAAUkkJ,EAAelkJ,QAAQ5mH,GAChD,EAAsCkmN,kBAAkBlmN,GACxD,OAAO8qQ,EAEXA,EAAiBA,EAAerxE,cAEpC,OAAO,KAAA,IA8tBLsxE,GAhoBAC,GA/EAC,GAfK,KAeLA,GAAAA,WACF,SAAA,IAAA,gBAAA,KAAA,GAII/pS,KAAK4xO,OAAS,IAAI59E,IAClBh0J,KAAK2vO,WAAAA,EAiBT,OAXA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WAYI3vO,KAAK4xO,OAAOzyL,UAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WAZC,OAAOn/C,KAAK2vO,WAK7B,IAAA,SAAalqO,GACTzF,KAAK2vO,UAAYrd,GAAsB7sN,OAK3C,EAvBEskS,IA2BWnnK,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAK+vS,KAChFA,GAAiB3nK,UAAO,GAAyB,CAAEj3H,KAAM4+R,GAAkBrrQ,UAAW,CAAC,CAAC,GAAI,mBAAoB,KAAM+nG,OAAQ,CAAE+qE,SAAU,CAAC,2BAA4B,aAAe7qE,SAAU,CAAC,sBADjMojK,IAuCI,GAAmB,EAAA,KAajBD,GAAAA,WAUF,SAAA,EAAY7oS,EAAS8mS,EAAUn5B,EAAoBniC,EAAMu9D,EAAQttE,EAAmBzzN,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAChFjJ,KAAKiB,QAAUA,EACfjB,KAAK4uQ,mBAAqBA,EAC1B5uQ,KAAKysO,KAAOA,EACZzsO,KAAKgqS,OAASA,EACdhqS,KAAK08N,kBAAoBA,EAIzB18N,KAAKi0J,WAAa,IAAI,EAMtBj0J,KAAK+hO,YAAc,GAKnB/hO,KAAKyR,GAALzR,iBAAAA,OAA2B,MAK3BA,KAAKmiS,eAAiB,WAAA,OAAA,GAOtBniS,KAAKq5R,QAAU,IAAI,GAInBr5R,KAAKm5R,QAAU,IAAI,GAKnBn5R,KAAKo5R,OAAS,IAAI,GAIlBp5R,KAAK8oM,OAAS,IAAI,GAQlB9oM,KAAKiqS,eAAiB,IAAIj2I,IAC1Bh0J,KAAKooS,aAAeL,EAASmC,eAAejpS,GAC5CjB,KAAKooS,aAAajsS,KAAO6D,KACrBiJ,GACAjJ,KAAKmoS,gBAAgBl/R,GAEzBjJ,KAAKooS,aAAajG,eAAiB,SAKlCI,EAAMvD,GAL4B,OAMxBh/R,EAAKmiS,eAAeI,EAAKpmS,KAAM6iS,EAAK7iS,OAE/C6D,KAAKmqS,4BAA4BnqS,KAAKooS,cACtCpoS,KAAKuoS,cAAcvoS,KAAKooS,cACxB0B,EAAYM,WAAW1pS,KAAKV,MACxBgqS,GACAA,EAAOp4D,OAAO7pO,IAAI/H,MA0B1B,OAnBA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAmBQkD,GACJlD,KAAKiqS,eAAeliS,IAAI7E,GACpBlD,KAAKooS,aAAajhF,cAClBnnN,KAAKqqS,sBAQb,CAAA,IAAA,aAAA,MAAA,SAAWnnS,GACPlD,KAAKiqS,eAALjqS,OAA2BkD,GACvBlD,KAAKooS,aAAajhF,cAClBnnN,KAAKqqS,sBAOb,CAAA,IAAA,iBAAA,MAAA,WACI,OAAO5jS,MAAM8tE,KAAKv0E,KAAKiqS,gBAAgBvyP,MAAK,SAK3C79C,EAAGC,GALwC,OAOfD,EAAEmuS,SAAShC,oBAAoBxqJ,wBAAwB1hJ,EAAEkuS,SAAShC,qBAIjEtsJ,KAAK4wJ,6BAA+B,EAAI,OAM1E,CAAA,IAAA,cAAA,MAAA,WAEI,IAAMrpR,EAAQ6oR,EAAYM,WAAWxoS,QAAQ5B,MACzCihB,GAAS,GACT6oR,EAAYM,WAAWxpS,OAAOqgB,EAAO,GAErCjhB,KAAKgqS,QACLhqS,KAAKgqS,OAAOp4D,OAAZ5xO,OAA0BA,MAE9BA,KAAKiqS,eAAe9qP,QACpBn/C,KAAKooS,aAAarjP,UAClB/kD,KAAKi0J,WAAW/rJ,OAChBlI,KAAKi0J,WAAW1sJ,aAQpB,CAAA,IAAA,QAAA,MAAA,WACIvH,KAAKooS,aAAa94R,UActB,CAAA,IAAA,OAAA,MAAA,SAAKpM,EAAM2pK,EAAckyH,EAAmBF,GACxC7+R,KAAKooS,aAAapJ,KAAK97R,EAAK8kS,SAAUn7H,EAAckyH,EAAkBqJ,aAAcvJ,EAAwB,CAAErlS,EAAG,EAAGC,EAAG,MAW3H,CAAA,IAAA,QAAA,MAAA,SAAMyJ,EAAMu0R,EAAUC,GAClB13R,KAAKooS,aAAa7kG,MAAMrgM,EAAK8kS,SAAUvQ,EAAUC,KASrD,CAAA,IAAA,OAAA,MAAA,SAAKx0R,GACDlD,KAAKooS,aAAan0B,KAAK/wQ,EAAK8kS,YAShC,CAAA,IAAA,eAAA,MAAA,SAAa9kS,GACT,OAAOlD,KAAKooS,aAAavK,aAAa36R,EAAK8kS,YAQ/C,CAAA,IAAA,8BAAA,MAAA,SAA4B3sE,GAAAA,IAAAA,EAAAA,KACpBr7N,KAAKysO,MACLzsO,KAAKysO,KAAK79H,OACLvqG,KAAK4vN,GAAUj0N,KAAKysO,KAAKhnO,OAAQ84L,GAAUv+L,KAAKi0J,aAChD1zJ,WAILkF,SAAAA,GAAAA,OAAS41N,EAAIquE,cAAcjkS,MAE/B41N,EAAI29D,cAAcz4R,WAAU,WAKxB,IAAMskS,EAAWpyE,GAAYzyN,EAAK+hO,aAAahtN,KAI/CiqR,SAAAA,GAAAA,MAC2B,iBAATA,EACS8K,EAAYM,WAAWh5Q,MAI1CuzG,SAAAA,GAAAA,OAAQA,EAAKlzH,KAAOutR,KAAWA,KAgBvC,GAdIh/R,EAAKgqS,QACLhqS,EAAKgqS,OAAOp4D,OAAOj6N,SAInBqnR,SAAAA,IACoC,IAA5B6F,EAASjjS,QAAQo9R,IACjB6F,EAASnkS,KAAKs+R,OAOrBh/R,EAAKuqS,4BAA8BvqS,EAAK08N,kBAAmB,CAE5D,IAAM8tE,EAAoBxqS,EAAK08N,kBAC1B1E,4BAA4Bh4N,EAAKiB,SACjC8T,KAIL0iN,SAAAA,GAAAA,OAAcA,EAAWa,gBAAgB/tD,iBACzCvqK,EAAKooS,aAAahF,sBAAsBoH,GAGxCxqS,EAAKuqS,4BAAAA,EAETlvE,EAAI7pB,SAAWxxM,EAAKwxM,SACpB6pB,EAAIslE,SAAW3gS,EAAK2gS,SACpBtlE,EAAI8jE,gBAAkB7sE,GAAsBtyN,EAAKm/R,iBACjD9jE,EAAI6mE,mBAAqB5vE,GAAsBtyN,EAAKkiS,oBACpD7mE,EACK0G,YAAY8iE,EAAS3tR,QAI1B8nR,SAAAA,GAAAA,OAAQA,GAAQA,IAASh/R,KAAO+U,KAIhC4vH,SAAAA,GAAAA,OAAQA,EAAKyjK,iBACRqC,gBAAgBzqS,EAAKwkS,kBASlC,CAAA,IAAA,gBAAA,MAAA,SAAcnpE,GAAAA,IAAAA,EAAAA,KACVA,EAAI29D,cAAcz4R,WAAU,WAIxBP,EAAKqqS,oBACLrqS,EAAK4uQ,mBAAmB9yE,kBAE5Bu/B,EAAI89D,QAAQ54R,WAIZszB,SAAAA,GACI7zB,EAAKm5R,QAAQjrK,KAAK,CACdnnF,UAAW/mC,EACXkD,KAAM2wB,EAAM3wB,KAAK/G,KACjB0wK,aAAch5I,EAAMg5I,kBAG5BwuD,EAAI+9D,OAAO74R,WAIXszB,SAAAA,GACI7zB,EAAKo5R,OAAOlrK,KAAK,CACbnnF,UAAW/mC,EACXkD,KAAM2wB,EAAM3wB,KAAK/G,OAErB6D,EAAK4uQ,mBAAmB9yE,kBAE5Bu/B,EAAIvyB,OAAOvoM,WAIXszB,SAAAA,GACI7zB,EAAK8oM,OAAO56E,KAAK,CACb6+C,cAAel5I,EAAMk5I,cACrBF,aAAch5I,EAAMg5I,aACpB9lI,UAAW/mC,EACXkD,KAAM2wB,EAAM3wB,KAAK/G,UAGzBk/N,EAAIg+D,QAAQ94R,WAIZszB,SAAAA,GACI7zB,EAAKq5R,QAAQnrK,KAAK,CACd6+C,cAAel5I,EAAMk5I,cACrBF,aAAch5I,EAAMg5I,aACpBkyH,kBAAmBlrQ,EAAMkrQ,kBAAkB5iS,KAC3C4qC,UAAWlT,EAAMkT,UAAU5qC,KAC3B+G,KAAM2wB,EAAM3wB,KAAK/G,KACjB0iS,uBAAwBhrQ,EAAMgrQ,uBAC9Br2O,SAAU30B,EAAM20B,WAIpBxoD,EAAK4uQ,mBAAmB9yE,oBAShC,CAAA,IAAA,kBAAA,MAAA,SAAgB7yL,GAAAA,IACJ03R,EAAyF13R,EAA3F,SAAY0gS,EAA+E1gS,EAAjF,iBAAoBk2R,EAA6Dl2R,EAA/D,gBAAmByhS,EAA4CzhS,EAA9C,uBAA0B0hS,EAAoB1hS,EAAtB,gBAC3EjJ,KAAKwxM,SAA+B,MAApBm4F,GAAmCA,EACnD3pS,KAAKm/R,gBAAqC,MAAnBA,GAAkCA,EACzDn/R,KAAKkiS,mBAA+C,MAA1BwI,GAAyCA,EACnE1qS,KAAKwkS,YAAcmG,GAAmB,WAClChK,IACA3gS,KAAK2gS,SAAWA,KAQxB,CAAA,IAAA,oBAAA,MAAA,WACI3gS,KAAKooS,aAAawC,UAAU5qS,KAAK6qS,iBAAiB91R,KAIlD7R,SAAAA,GAAAA,OAAQA,EAAK8kS,eAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WA1Sb,OAAOhoS,KAAK2vO,aAAgB3vO,KAAKgqS,QAAUhqS,KAAKgqS,OAAOx4F,UAM3D,IAAA,SAAa/rM,GAKTzF,KAAKooS,aAAa52F,SAAWxxM,KAAK2vO,UAAYrd,GAAsB7sN,OAOxE,EA3GEqkS,IAsYMlnK,UAAO,SAA6B5oI,GAAK,OAAO,IAAKA,GAAK8vS,IAAa,GAAyB,IAAoB,GAAyB,IAAW,GAAyB,IAA2B,GAAyB,GAAuB,GAAI,GAAyB,GAAkB,IAAK,GAAyB,IAA0B,GAAyBjC,GAAiB,KACzZiC,GAAY1nK,UAAO,GAAyB,CAAEj3H,KAAM2+R,GAAaprQ,UAAW,CAAC,CAAC,GAAI,cAAe,IAAK,CAAC,kBAAmB6nG,UAAW,CAAC,EAAG,iBAAkBD,SAAU,EAAGD,aAAc,SAAkCkc,EAAInmI,GAAgB,EAALmmI,IAC/N,GAAsB,KAAMnmI,EAAI3K,IAChC,GAAmB,yBAA0B2K,EAAIo1L,SAAjD,CAA2D,yBAA0Bp1L,EAAIgsR,aAAajhF,aAAtG,CAAoH,0BAA2B/qM,EAAIgsR,aAAa1B,iBAC/JjgK,OAAQ,CAAEs7F,YAAa,CAAC,yBAA0B,eAAgBtwN,GAAI,KAAM0wR,eAAgB,CAAC,4BAA6B,kBAAmB3wF,SAAU,CAAC,sBAAuB,YAAa2tF,gBAAiB,CAAC,6BAA8B,mBAAoB+C,mBAAoB,CAAC,gCAAiC,sBAAuBsC,YAAa,CAAC,yBAA0B,eAAgB7D,SAAU,CAAC,sBAAuB,YAAaxkS,KAAM,CAAC,kBAAmB,SAAWuqI,QAAS,CAAE2yJ,QAAS,qBAAsBF,QAAS,qBAAsBC,OAAQ,oBAAqBtwF,OAAQ,qBAAuBniE,SAAU,CAAC,eAAgBrrH,SAAU,CAAC,GAA0B,CAE3pB,CAAE+nH,QAAS,GAAkBC,cAAAA,GAC7B,CAAED,QAASykK,GAAexxI,YAAawzI,SAKnDA,GAAYM,WAAa,GAZzBN,IAAAA,KA0PMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAESrnK,UAAO,GAAwB,CAAEr3H,KAAM0+R,KACtDA,GAAelpK,UAAO,GAAwB,CAAErrH,QAAS,SAAgCtb,GAAK,OAAO,IAAKA,GAAK6vS,KAAsB7pK,UAAW,CACxI,IACDC,QAAS,CAAC,MAHjB4pK,IC1xLO,SAASiB,GAAMC,GAClB,OAAO,IAAI,GAAW5iS,SAAAA,GAClB,IAAIjN,EACJ,IACIA,EAAQ6vS,IAEZ,MAAOjlS,GAEH,YADAqC,EAAWhJ,MAAM2G,GAIrB,OADe5K,EAAQ,EAAKA,GAAS,MACvBqF,UAAU4H,MCoBhC,SAAS6iS,GAA0CzoJ,EAAInmI,IA4BvD,IAAM6uR,GACF,SAAA,IAAA,gBAAA,KAAA,GAIIjrS,KAAKkrS,KAAO,SAIZlrS,KAAKk+N,WAAa,GAIlBl+N,KAAKm+N,aAAAA,EAILn+N,KAAKo+N,cAAgB,GAIrBp+N,KAAKmrS,cAAAA,EAILnrS,KAAK0c,MAAQ,GAIb1c,KAAKuc,OAAS,GAIdvc,KAAK83F,SAAW,OAIhB93F,KAAK7D,KAAO,KAIZ6D,KAAKorS,gBAAkB,KAIvBprS,KAAKqrS,eAAiB,KAItBrrS,KAAK2xO,UAAY,KAIjB3xO,KAAKsrS,WAAAA,EAKLtrS,KAAKurS,cAAAA,EAMLvrS,KAAKwrS,mBAAAA,GA+IPC,GAAsB,CAIxBC,gBAAiBhrR,GAAQ,kBAAmB,CAIxC,GAAM,aAAc,GAAM,CAAE2T,QAAS,EAAGxP,UAAW,gBACnD,GAAM,QAAS,GAAM,CAAEA,UAAW,UAClCi8N,GAAW,aAAcznN,GAAQ,mCAAoC,GAAM,CAAExU,UAAW,OAAQwP,QAAS,MACzGysN,GAAW,uBAAwBznN,GAAQ,sCAAuC,GAAM,CAAEhF,QAAS,SAe3G,SAASs3Q,KACL,MAAM9lS,MAAM,yEAANA,IAOJ+lS,GA62CAC,GAnqBAC,GAjtBIjmS,KAOJ+lS,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQF,SAAA,EAAYr7F,EAAaw7F,EAAmBn9B,EAAoBl4J,EAAWivF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACvEvrE,EAAAA,EAAAA,KAAAA,OACKm2E,YAAcA,EACnBvwM,EAAK+rS,kBAAoBA,EACzB/rS,EAAK4uQ,mBAAqBA,EAC1B5uQ,EAAK2lM,QAAUA,EAIf3lM,EAAKgsS,qCAAuC,KAI5ChsS,EAAK+0M,OAAS,QAId/0M,EAAKisS,uBAAyB,IAAI,GAOlCjsS,EAAKk6N,gBAIJE,SAAAA,GAAAA,OACOp6N,EAAK6/N,cAAcnG,eACnBiyE,KAEJ3rS,EAAKksS,kBACElsS,EAAK6/N,cAAc3F,gBAAgBE,IAE9Cp6N,EAAKmsS,gBAAkBxmG,EAAQ0lG,gBAAkB,KACjDrrS,EAAK02G,UAAYA,EApCsDivF,EA+L/C7J,OAnJ5B,aAAA,EAAA,CAAA,CAAA,IAAA,wBAAA,MAAA,SAAsBs+B,GAKlB,OAJIp6N,KAAK6/N,cAAcnG,eACnBiyE,KAEJ3rS,KAAKksS,kBACElsS,KAAK6/N,cAAcxF,sBAAsBD,KAQpD,CAAA,IAAA,uBAAA,MAAA,SAAqBA,GAKjB,OAJIp6N,KAAK6/N,cAAcnG,eACnBiyE,KAEJ3rS,KAAKksS,kBACElsS,KAAK6/N,cAAcvF,qBAAqBF,KAMnD,CAAA,IAAA,kBAAA,MAAA,WACSp6N,KAAKosS,kBAEkBpsS,KAAKqsS,WAAWz2D,uBAEpC51O,KAAKuwM,YAAYhmC,cAAc1uG,UAS3C,CAAA,IAAA,aAAA,MAAA,WAIQ77D,KAAK2lM,QAAQ2lG,UACbtrS,KAAKqsS,WAAWC,+BAEVtsS,KAAKosS,kBAMXpsS,KAAKuwM,YAAYhmC,cAAc1uG,UAQvC,CAAA,IAAA,gBAAA,MAAA,WAEI,IAAM0wO,EAAUvsS,KAAKgsS,qCAErB,GAAIhsS,KAAK2lM,QAAQ4lG,cAAgBgB,GAAoC,mBAAlBA,EAAQ1wO,MAAsB,CAE7E,IAAMgzN,EAAgB7uR,KAAK02G,UAAUm4K,cAE/B5tR,EAAUjB,KAAKuwM,YAAYhmC,cAK5BskH,GAAiBA,IAAkB7uR,KAAK02G,UAAUprG,MAAQujR,IAAkB5tR,IAC7EA,EAAQygB,SAASmtQ,IACjB0d,EAAQ1wO,QAGZ77D,KAAKqsS,YACLrsS,KAAKqsS,WAAWlyN,YASxB,CAAA,IAAA,kBAAA,MAAA,WAAA,IAAA,EAAA,KACSn6E,KAAKqsS,aACNrsS,KAAKqsS,WAAarsS,KAAK+rS,kBAAkBllS,OAAO7G,KAAKuwM,YAAYhmC,gBAEjEvqK,KAAK02G,YACL12G,KAAKgsS,qCAA0DhsS,KAAK02G,UAAwB,cAExF12G,KAAKuwM,YAAYhmC,cAAc1uG,OAI/BtsD,QAAQwJ,UAAUrJ,MAAK,WAAA,OAGjB1P,EAAKuwM,YAAYhmC,cAAc1uG,cASjD,CAAA,IAAA,iBAAA,MAAA,WAEI,IAAM56D,EAAUjB,KAAKuwM,YAAYhmC,cAE3BskH,EAAgB7uR,KAAK02G,UAAUm4K,cACrC,OAAO5tR,IAAY4tR,GAAiB5tR,EAAQygB,SAASmtQ,KAOzD,CAAA,IAAA,mBAAA,MAAA,SAAiBh7P,GACS,UAAlBA,EAAMuwN,QACNpkP,KAAKwsS,aAEkB,SAAlB34Q,EAAMuwN,SACXpkP,KAAKysS,gBAETzsS,KAAKisS,uBAAuB/9K,KAAKr6F,KAOrC,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACd7zB,KAAKisS,uBAAuB/9K,KAAKr6F,KAMrC,CAAA,IAAA,sBAAA,MAAA,WACI7zB,KAAK+0M,OAAS,OAGd/0M,KAAK4uQ,mBAAmB9yE,mBAAAA,EAvM1B8vG,CAA2B5xE,KA0Mdp3F,UAAO,SAAoC5oI,GAAK,OAAO,IAAKA,GAAK4xS,IAAoB,GAAyB,IAAoB,GAAyB,IAA0B,GAAyB,IAA2B,GAAyB,GAAU,GAAI,GAAyBX,MAC5TW,GAAmB1pK,UAAO,GAAyB,CAAE/2H,KAAMygS,GAAoBltQ,UAAW,CAAC,CAAC,yBAA0BqpG,UAAW,SAAkCwa,EAAInmI,GAG/J,IAAIy0P,EAH2K,EAALtuH,GAC1K,GAAyB,IAAA,GAClB,EAALA,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIyjN,cAAgBgxC,EAAGx1G,QAC3E90B,UAAW,CAAC,WAAY,KAAM,aAAc,OAAQ,EAAG,wBAAyBD,SAAU,EAAGD,aAAc,SAAyCkc,EAAInmI,GAAgB,EAALmmI,GACpK,GAAwC,0BAA0B,SAA+EmuD,GAAU,OAAOt0L,EAAIswR,kBAAkBh8F,KAAxL,CAAoM,yBAAyB,SAA8EA,GAAU,OAAOt0L,EAAIuwR,iBAAiBj8F,MAC1U,EAALnuD,IACF,GAAmB,KAAMnmI,EAAIqrP,IAA7B,CAAkC,OAAQrrP,EAAIupL,QAAQulG,KAAtD,CAA4D,kBAAmB9uR,EAAIupL,QAAQgsC,UAAY,KAAOv1N,EAAI+vR,gBAAlH,CAAmI,aAAc/vR,EAAIupL,QAAQgsC,UAA7J,CAAwK,mBAAoBv1N,EAAIupL,QAAQylG,iBAAmB,MAC3N,GAAoC,mBAAoBhvR,EAAI24L,UAC3Dz5L,SAAU,CAAC,IAAoC0qH,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,kBAAmB,KAAMD,SAAU,SAAqCqc,EAAInmI,GAAgB,EAALmmI,GACpK,GAAkB,EAAGyoJ,GAA2C,EAAG,EAAG,cAAe,IACpFrnJ,WAAY,CAAC,IAAyBhvH,OAAQ,CAAC,s7BAAu7BqzG,cAAe,EAAG7rI,KAAM,CAAEqrK,UAAW,CAACikI,GAAoBC,oBAbziCE,IA4II3oN,GAAW,EAST,GAAA,WAMF,SAAA,EAAY45I,EAAa+vE,GAAuC3pN,IAAAA,EAAAA,KAAnBxxE,EAAmBwxE,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAAA,cAAAA,OAAAA,MAAAA,gBAAAA,KAAAA,GAC5DjjF,KAAK68N,YAAcA,EACnB78N,KAAK4sS,mBAAqBA,EAC1B5sS,KAAKyR,GAAKA,EAIVzR,KAAKmrS,aAAenrS,KAAK4sS,mBAAmBjnG,QAAQwlG,aAIpDnrS,KAAK0zQ,aAAe,IAAI,EAIxB1zQ,KAAK6sS,aAAe,IAAI,EAIxB7sS,KAAK8sS,cAAgB,IAAI,EAIzB9sS,KAAK+0M,OAAS,EAEd63F,EAAmBnlC,IAAMh2P,EAEzBm7R,EAAmBX,uBAAuB5nS,KAAK,IAI/CwvB,SAAAA,GAAAA,MAA6B,SAApBA,EAAM+tN,WAA0C,UAAlB/tN,EAAMuwN,WAAuBxmD,GAAK,IACpEr9L,WAAU,WAIXP,EAAK0zQ,aAAaxrQ,OAClBlI,EAAK0zQ,aAAansQ,cAGtBqlS,EAAmBX,uBAAuB5nS,KAAK,IAI/CwvB,SAAAA,GAAAA,MAA6B,SAApBA,EAAM+tN,WAA0C,SAAlB/tN,EAAMuwN,WAAsBxmD,GAAK,IAAIr9L,WAAU,WAIlFqP,aAAa5P,EAAK+sS,uBAClB/sS,EAAKgtS,wBAETnwE,EAAYy5C,cAAc/1Q,WAAU,WAIhCP,EAAK8sS,cAAc5kS,KAAKlI,EAAKitS,SAC7BjtS,EAAK8sS,cAAcvlS,WACnBvH,EAAK6sS,aAAa3kS,KAAKlI,EAAKitS,SAC5BjtS,EAAK6sS,aAAatlS,WAClBvH,EAAKktS,kBAAoB,KACzBltS,EAAK68N,YAAY93K,aAErB83K,EAAY6Q,gBACPrpO,KAAK,IAIVwvB,SAAAA,GAAAA,OjGtrBO,KiGurBIA,EAAMk4E,UAAuB/rG,EAAKmrS,eAAiB1vE,GAAe5nM,OAExEtzB,WAILszB,SAAAA,GACIA,EAAMqoC,iBACNl8D,EAAK69N,WAEThB,EAAYmQ,gBAAgBzsO,WAAU,WAI9BP,EAAKmrS,aACLnrS,EAAK4sS,mBAAmBO,kBAGxBntS,EAAK69N,WA4J2D,OAnJ5E,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAAMuvE,GAAAA,IAAAA,EAAAA,KACFptS,KAAKitS,QAAUG,EAEfptS,KAAK4sS,mBAAmBX,uBAAuB5nS,KAAK,IAIpDwvB,SAAAA,GAAAA,MAA6B,UAApBA,EAAM+tN,aAAyBhkD,GAAK,IACxCr9L,WAILszB,SAAAA,GACI7zB,EAAK8sS,cAAc5kS,KAAKklS,GACxBptS,EAAK8sS,cAAcvlS,WACnBvH,EAAK68N,YAAYoE,iBAMjBjhO,EAAK+sS,sBAAwB1sS,YAAW,WAAA,OAGlCL,EAAKgtS,uBAAuBn5Q,EAAM0tN,UAAY,QAExDvhP,KAAK4sS,mBAAmBS,sBACxBrtS,KAAK+0M,OAAS,IAMlB,CAAA,IAAA,cAAA,MAAA,WACI,OAAO/0M,KAAK0zQ,aAAaviF,iBAM7B,CAAA,IAAA,cAAA,MAAA,WACI,OAAOnxL,KAAK6sS,aAAa17G,iBAM7B,CAAA,IAAA,eAAA,MAAA,WACI,OAAOnxL,KAAK8sS,cAAc37G,iBAM9B,CAAA,IAAA,gBAAA,MAAA,WACI,OAAOnxL,KAAK68N,YAAYmQ,kBAM5B,CAAA,IAAA,gBAAA,MAAA,WACI,OAAOhtO,KAAK68N,YAAY6Q,kBAS5B,CAAA,IAAA,iBAAA,MAAA,SAAe7mN,GAEX,IAAIy6M,EAAW,KAA0BgsE,uBAczC,OAbIzmR,IAAaA,EAAS3B,MAAQ2B,EAASgwC,OACvChwC,EAAS3B,KAAOo8M,EAASp8M,KAAK2B,EAAS3B,MAAQo8M,EAASzqK,MAAMhwC,EAASgwC,OAGvEyqK,EAASu1C,qBAEThwP,IAAaA,EAAS1B,KAAO0B,EAAS+vC,QACtC/vC,EAAS1B,IAAMm8M,EAASn8M,IAAI0B,EAAS1B,KAAOm8M,EAAS1qK,OAAO/vC,EAAS+vC,QAGrE0qK,EAASwzD,mBAEb,KAA0Bj4D,YAAYI,iBAC/B,OAUX,CAAA,IAAA,aAAA,MAAA,WAAgC,IAArBvgN,EAAqB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAb,GAAIH,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAG5B,OAFA,KAA0B+wR,uBAAuB5wR,MAAMA,GAAOH,OAAOA,GACrE,KAA0BsgN,YAAYI,iBAC/B,OASX,CAAA,IAAA,gBAAA,MAAA,SAAcpuN,GAEV,OADA,KAA0BguN,YAAY0wE,cAAc1+R,GAC7C,OASX,CAAA,IAAA,mBAAA,MAAA,SAAiBA,GAEb,OADA,KAA0BguN,YAAY2wE,iBAAiB3+R,GAChD,OAMX,CAAA,IAAA,WAAA,MAAA,WACI,OAAO7O,KAAK+0M,SAQhB,CAAA,IAAA,qBAAA,MAAA,WACI/0M,KAAK+0M,OAAS,EACd/0M,KAAK68N,YAAY93K,YAOrB,CAAA,IAAA,uBAAA,MAAA,WACI,OAA0B/kD,KAAK68N,YAAYgK,YAA6B,qBAAA,EAxP1E,GA8TA4mE,GAAkB,IAAI1qK,GAAe,iBAKrC2qK,GAA6B,IAAI3qK,GAAe,8BAKhD4qK,GAA6B,IAAI5qK,GAAe,8BA2BhD6qK,GAAsC,CACxCvqK,QAASsqK,GACTt3I,KAAM,CAAC,IACPD,WAbJ,SAAqD1zG,GACjD,OAAO,WAAA,OAGDA,EAAQkpL,iBAAiB9N,WA/BnC,KA6CMguE,GAAAA,WAUF,SAAA,EAAYv/D,EAAU/nD,EAKtBrrE,EAAWy9H,EAAiB3Y,EAAgB4vE,EAAe7rE,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACvDhiO,KAAKusO,SAAWA,EAChBvsO,KAAKwkL,UAAYA,EACjBxkL,KAAK42O,gBAAkBA,EACvB52O,KAAK6tS,cAAgBA,EACrB7tS,KAAKgiO,kBAAoBA,EACzBhiO,KAAK8tS,wBAA0B,GAC/B9tS,KAAK+tS,2BAA6B,IAAI,EACtC/tS,KAAKguS,wBAA0B,IAAI,EACnChuS,KAAKiuS,oBAAsB,IAAIn6I,IAM/B9zJ,KAAKkuS,eAAoCpD,IAAM,WAAA,OAGzC9qS,EAAKmuS,YAAYnzS,OACnBgF,EAAKouS,gBACLpuS,EAAKouS,gBAAgB/pS,KAAK4vN,QAAAA,OAC9Bj0N,KAAKsgO,gBAAkBrC,EAgC3B,OA1BA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SA0BKowE,EAAwBplS,GAAAA,IAAAA,EAAAA,KAEzB,IADAA,EAmVR,SAA8BA,EAAQguO,GAClC,OAAOlxO,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIguH,GAAiBhuO,GAD5D,CAnVsCA,EAAQjJ,KAAK42O,iBAAmB,IAAIq0D,KACvDx5R,IAAMzR,KAAKsuS,cAAcrlS,EAAOwI,IACvC,MAAM5L,MAAAA,mBAAAA,OAAyBoD,EAAOwI,GAAhC5L,oDAGV,IAAMi3N,EAAa98N,KAAKkuO,eAAejlO,GAEjCyiS,EAAkB1rS,KAAKuuS,uBAAuBzxE,EAAY7zN,GAE1DurR,EAAYx0R,KAAKwuS,qBAAqBH,EAAwB3C,EAAiB5uE,EAAY7zN,GAWjG,OATKjJ,KAAKmuS,YAAYnzS,QAClBgF,KAAKyuS,+CAETzuS,KAAKmuS,YAAYztS,KAAK8zR,GACtBA,EAAUU,cAAc30R,WAAU,WAAA,OAG5BP,EAAK0uS,kBAAkBla,MAC7Bx0R,KAAKy2Q,YAAYvuQ,KAAKssR,GACfA,IAMX,CAAA,IAAA,WAAA,MAAA,WACIx0R,KAAK2uS,cAAc3uS,KAAKmuS,eAO5B,CAAA,IAAA,gBAAA,MAAA,SAAc18R,GACV,OAAOzR,KAAKmuS,YAAY/8Q,MAIxBw9Q,SAAAA,GAAAA,OAAUA,EAAOn9R,KAAOA,OAK5B,CAAA,IAAA,cAAA,MAAA,WAGIzR,KAAK2uS,cAAc3uS,KAAK8tS,yBACxB9tS,KAAK+tS,2BAA2BxmS,WAChCvH,KAAKguS,wBAAwBzmS,aAQjC,CAAA,IAAA,iBAAA,MAAA,SAAe0B,GAEX,IAAMmjO,EAAgBpsO,KAAK6uS,kBAAkB5lS,GAC7C,OAAOjJ,KAAKusO,SAAS1lO,OAAOulO,KAQhC,CAAA,IAAA,oBAAA,MAAA,SAAkB0iE,GAEd,IAAMj8K,EAAQ,IAAImrG,GAAc,CAC5BwC,iBAAkBxgO,KAAKusO,SAAS1lN,WAAW1pB,SAC3C8gO,eAAgB6wE,EAAa7wE,gBAAkBj+N,KAAKsgO,kBACpDpC,WAAY4wE,EAAa5wE,WACzBC,YAAa2wE,EAAa3wE,YAC1B15H,UAAWqqM,EAAarqM,UACxBkM,SAAUm+L,EAAan+L,SACvB+3G,UAAWomF,EAAapmF,UACxB5wH,SAAUg3M,EAAah3M,SACvBmD,UAAW6zM,EAAa7zM,UACxBojI,oBAAqBywE,EAAatD,oBAKtC,OAHIsD,EAAa1wE,gBACbvrG,EAAMurG,cAAgB0wE,EAAa1wE,eAEhCvrG,IASX,CAAA,IAAA,yBAAA,MAAA,SAAuBnwE,EAASz5C,GAE5B,IAEMw6H,EAAWmzB,GAAS/vJ,OAAO,CAC7B0C,OAHiBN,GAAUA,EAAO6wN,kBAAoB7wN,EAAO6wN,iBAAiBr2F,UAGtDzjI,KAAKwkL,UAC7BxkD,UAAW,CAAC,CAAEqD,QAAS4nK,GAAiB3nK,SAAUr6H,MAGhD+sQ,EAAkB,IAAIn8C,GAAgB,GAAoB5wN,EAAO6wN,iBAAkBr2F,EAAUx6H,EAAO0sK,0BAG1G,OADqBjzH,EAAQk3K,OAAOo8C,GAChBx/N,WAaxB,CAAA,IAAA,uBAAA,MAAA,SAAqB63P,EAAwB3C,EAAiB5uE,EAAY7zN,GAItE,IAAMurR,EAAY,IAAI,GAAa13D,EAAY4uE,EAAiBziS,EAAOwI,IACvE,GAAI48R,aAAkCn9H,GAClCw6H,EAAgBpxE,qBAAqB,IAAIP,GAAes0E,EAAwB,KAA2B,CAAqB72G,UAAWvuL,EAAO9M,KAAMq4R,UAAAA,SAEvJ,CAED,IAAM/wJ,EAAWzjI,KAAKo2Q,gBAAgBntQ,EAAQurR,EAAWkX,GAEnDr1B,EAAaq1B,EAAgBrxE,sBAAsB,IAAIR,GAAgBw0E,EAAwBplS,EAAO6wN,iBAAkBr2F,IAC9H+wJ,EAAU0Y,kBAAoB72B,EAAW7/N,SAK7C,OAHAg+O,EACKppD,WAAWniO,EAAOyT,MAAOzT,EAAOsT,QAChC0gN,eAAeh0N,EAAO4d,UACpB2tQ,IAYX,CAAA,IAAA,kBAAA,MAAA,SAAgBvrR,EAAQurR,EAAWkX,GAE/B,IAAMqD,EAAe9lS,GAAUA,EAAO6wN,kBAAoB7wN,EAAO6wN,iBAAiBr2F,SAM5EzD,EAAY,CACd,CAAEqD,QAAS,GAAoBC,SAAUooK,GACzC,CAAEroK,QAASoqK,GAAiBnqK,SAAUr6H,EAAO9M,MAC7C,CAAEknI,QAAS,GAAcC,SAAUkxJ,IASvC,OAPIvrR,EAAOw7F,WACLsqM,GAAiBA,EAAalsR,IAAI,GAAgB,OACpDm9G,EAAUt/H,KAAK,CACX2iI,QAAS,GACTC,SAAU,CAAE79H,MAAOwD,EAAOw7F,UAAWmK,OAAQi/E,QAG9Cj3B,GAAS/vJ,OAAO,CAAE0C,OAAQwlS,GAAgB/uS,KAAKwkL,UAAWxkD,UAAAA,MAQrE,CAAA,IAAA,oBAAA,MAAA,SAAkBw0J,GAEd,IAAMvzQ,EAAQjhB,KAAKmuS,YAAYvsS,QAAQ4yR,GACnCvzQ,GAAS,IACTjhB,KAAKmuS,YAAYvtS,OAAOqgB,EAAO,GAG1BjhB,KAAKmuS,YAAYnzS,SAClBgF,KAAKiuS,oBAAoBt2R,SAAQ,SAKhCowJ,EAAe9mK,GACR8mK,EACA9mK,EAAQyL,aAAa,cAAeq7J,GAGpC9mK,EAAQ8gC,gBAAgB,kBAGhC/hC,KAAKiuS,oBAAoB9uP,QACzBn/C,KAAKouS,gBAAgBlmS,WASjC,CAAA,IAAA,+CAAA,MAAA,WAEI,IAAM4hO,EAAmB9pO,KAAKgiO,kBAAkByG,sBAEhD,GAAIqB,EAAiBvR,cAGjB,IADA,IAAMssE,EAAW/6D,EAAiBvR,cAAc32L,SACvCjnC,EAAIkqS,EAAS7pS,OAAS,EAAGL,GAAK,EAAGA,IAAK,CAE3C,IAAIgpS,EAAUkB,EAASlqS,GACnBgpS,IAAY75D,GACS,WAArB65D,EAAQ3kQ,UACa,UAArB2kQ,EAAQ3kQ,UACP2kQ,EAAQhiQ,aAAa,eACtB3hC,KAAKiuS,oBAAoBjsR,IAAI2hR,EAASA,EAAQzkQ,aAAa,gBAC3DykQ,EAAQj3R,aAAa,cAAe,YAWpD,CAAA,IAAA,gBAAA,MAAA,SAAcsiS,GAGV,IADA,IAAIr0S,EAAIq0S,EAAQh0S,OACTL,KAKHq0S,EAAQr0S,GAAGkjO,UAAAA,CAAAA,IAAAA,cAAAA,IAAAA,WA5Qf,OAAO79N,KAAK6tS,cAAgB7tS,KAAK6tS,cAAcM,YAAcnuS,KAAK8tS,0BAMtE,CAAA,IAAA,cAAA,IAAA,WACI,OAAO9tS,KAAK6tS,cAAgB7tS,KAAK6tS,cAAcp3B,YAAcz2Q,KAAKguS,0BAKtE,CAAA,IAAA,kBAAA,IAAA,WAEI,IAAMzkS,EAASvJ,KAAK6tS,cACpB,OAAOtkS,EAASA,EAAO6kS,gBAAkBpuS,KAAK+tS,+BAUlD,EApEEjC,IA2TIlpK,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAK8xS,IAAW,GAAgB,IAAiB,GAAgB,IAAkB,GAAgB,GAAiB,GAAI,GAAgB4B,GAA4B,GAAI,GAAgBC,IAA6B,GAAgB7B,GAAW,IAAK,GAAgB,MAClUA,GAAUprK,WAAQ,GAA0B,CAAErB,MAAOysK,GAAWx2R,QAASw2R,GAAUlpK,YADnFkpK,IAAAA,KAwWMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEUrpK,UAAO,GAAwB,CAAEr3H,KAAM0gS,KACvDA,GAAgBlrK,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAK6xS,KAAuB7rK,UAAW,CAC3I,GACA4tK,IACD3tK,QAAS,CAAC,CACL,GACA,GACA,IACD,MARX4rK,ICzpDMoD,GAAAA,WACF,SAAA,EAAYvqS,GAAAA,gBAAAA,KAAAA,GACR1E,KAAK0E,SAAWA,EAG+CA,OADnE,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKyD,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAkB4H,EAAYnI,KAAK0E,eAAAA,EALjEuqS,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAYpnS,EAAanD,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrB01H,EAAAA,EAAAA,KAAAA,KAAMvyH,IACDE,IAAI,IAAI,EAAarD,IAFLA,EAEKA,OAAAA,EAH5B,CAA0B,GCY1B,GAAM,CAAC,KACb,SAASwqS,GAA4BC,GACjC,OAAOtpS,MAAAA,sCAAAA,OAA4CspS,EAA5CtpS,MAmBX,SAASupS,GAAmCtwS,GACxC,OAAO+G,MAAM,yEAAA,mDAAA,OACyC/G,EADzC,OASjB,SAASuwS,GAAuCC,GAC5C,OAAOzpS,MAAM,2EAAA,mDAAA,OACyCypS,EADzC,OAmBjB,IAgCMC,GAhCAC,GAKF,SAAA,EAAYrzS,EAAMuZ,GAAAA,gBAAAA,KAAAA,GACd1V,KAAK0V,QAAUA,EAGT,EAA4BspB,SAC9Bh/B,KAAKyvS,WAAa,EAGlBzvS,KAAKlB,IAAM,GAAA,KAmBjBywS,GAAAA,WAOF,SAAA,EAAYG,EAAaC,EAAYlyS,EAAU+mM,GAAAA,gBAAAA,KAAAA,GAC3CxkM,KAAK0vS,YAAcA,EACnB1vS,KAAK2vS,WAAaA,EAClB3vS,KAAKwkM,cAAgBA,EAIrBxkM,KAAK4vS,gBAAkB,IAAI97I,IAK3B9zJ,KAAK6vS,gBAAkB,IAAI/7I,IAI3B9zJ,KAAK8vS,kBAAoB,IAAIh8I,IAI7B9zJ,KAAK+vS,sBAAwB,IAAIj8I,IAIjC9zJ,KAAKgwS,uBAAyB,IAAIl8I,IAMlC9zJ,KAAKiwS,qBAAuB,iBAC5BjwS,KAAK02G,UAAYj5G,EAwjBV,OA7iBX,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAW0xS,EAAUrwS,EAAK4W,GACtB,OAAO,KAA0Bw6R,sBAAsB,GAAIf,EAAUrwS,EAAK4W,KAW9E,CAAA,IAAA,oBAAA,MAAA,SAAkBy5R,EAAUG,EAAS55R,GACjC,OAAO,KAA0By6R,6BAA6B,GAAIhB,EAAUG,EAAS55R,KAYzF,CAAA,IAAA,wBAAA,MAAA,SAAsBsQ,EAAWmpR,EAAUrwS,EAAK4W,GAC5C,OAAO,KAA0B06R,kBAAkBpqR,EAAWmpR,EAAU,IAAIK,GAAc1wS,EAAK4W,MAYnG,CAAA,IAAA,+BAAA,MAAA,SAA6BsQ,EAAWmpR,EAAUG,EAAS55R,GAEvD,IAAM26R,EAAmB,KAA0BV,WAAWr5L,SAASylC,GAAgBE,KAAMqzJ,GAC7F,IAAKe,EACD,MAAMhB,GAAuCC,GAGjD,IAAMG,EAAa,KAA0Ba,+BAA+BD,EAAkB36R,GAC9F,OAAO,KAA0B06R,kBAAkBpqR,EAAWmpR,EAAU,IAAIK,GAAcC,EAAY/5R,MAU1G,CAAA,IAAA,gBAAA,MAAA,SAAc5W,EAAK4W,GACf,OAAO,KAA0B66R,yBAAyB,GAAIzxS,EAAK4W,KAUvE,CAAA,IAAA,uBAAA,MAAA,SAAqB45R,EAAS55R,GAC1B,OAAO,KAA0B86R,gCAAgC,GAAIlB,EAAS55R,KAWlF,CAAA,IAAA,2BAAA,MAAA,SAAyBsQ,EAAWlnB,EAAK4W,GACrC,OAAO,KAA0B+6R,qBAAqBzqR,EAAW,IAAIwpR,GAAc1wS,EAAK4W,MAW5F,CAAA,IAAA,kCAAA,MAAA,SAAgCsQ,EAAWspR,EAAS55R,GAEhD,IAAM26R,EAAmB,KAA0BV,WAAWr5L,SAASylC,GAAgBE,KAAMqzJ,GAC7F,IAAKe,EACD,MAAMhB,GAAuCC,GAGjD,IAAMG,EAAa,KAA0BiB,sBAAsBL,GACnE,OAAO,KAA0BI,qBAAqBzqR,EAAW,IAAIwpR,GAAcC,EAAY/5R,MAanG,CAAA,IAAA,yBAAA,MAAA,SAAuBk1O,GAAmBA,IAAZt9O,EAAYs9O,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAAA,EAEtC,OADA,KAA0BolD,uBAAuBhuR,IAAI4oO,EAAOt9O,GACrD,OAQX,CAAA,IAAA,wBAAA,MAAA,SAAsBs9O,GAClB,OAAO5qP,KAAKgwS,uBAAuBntR,IAAI+nO,IAAUA,IAWrD,CAAA,IAAA,yBAAA,MAAA,SAAuBt9O,GAEnB,OADA,KAA0B2iS,qBAAuB3iS,EAC1C,OAOX,CAAA,IAAA,yBAAA,MAAA,WACI,OAAOtN,KAAKiwS,uBAWhB,CAAA,IAAA,oBAAA,MAAA,SAAkBU,GAAAA,IAAAA,EAAAA,KAER7xS,EAAMkB,KAAK2vS,WAAWr5L,SAASylC,GAAgBK,aAAcu0J,GACnE,IAAK7xS,EACD,MAAMswS,GAAmCuB,GAG7C,IAAMC,EAAa5wS,KAAK8vS,kBAAkBjtR,IAAI/jB,GAC9C,OAAI8xS,EACO/iH,GAAGgjH,GAASD,IAEhB5wS,KAAK8wS,uBAAuB,IAAItB,GAAcmB,IAAUtsS,KAAKu6L,IAIpEmyG,SAAAA,GAAAA,OAAO/wS,EAAK8vS,kBAAkB9tR,IAAI,EAA0B+uR,MAAQh8R,GAIpEg8R,SAAAA,GAAAA,OAAOF,GAASE,SAWpB,CAAA,IAAA,kBAAA,MAAA,SAAgBnxS,GAAkB,IAAZomB,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAGxB9pB,EAAM80S,GAAQhrR,EAAWpmB,GAEzBqJ,EAASjJ,KAAK4vS,gBAAgB/sR,IAAI3mB,GACxC,GAAI+M,EACA,OAAOjJ,KAAKixS,kBAAkBhoS,GAIlC,IAAMioS,EAAiBlxS,KAAK6vS,gBAAgBhtR,IAAImD,GAChD,OAAIkrR,EACOlxS,KAAKmxS,0BAA0BvxS,EAAMsxS,GAEzC,GAAWhC,GAA4BhzS,MAKlD,CAAA,IAAA,cAAA,MAAA,WACI8D,KAAK4vS,gBAAgBzwP,QACrBn/C,KAAK6vS,gBAAgB1wP,QACrBn/C,KAAK8vS,kBAAkB3wP,UAQ3B,CAAA,IAAA,oBAAA,MAAA,SAAkBl2C,GACd,OAAIA,EAAOwmS,WAEA5hH,GAAGgjH,GAAS5nS,EAAOwmS,aAInBzvS,KAAK8wS,uBAAuB7nS,GAAQ5E,KAAKu6L,IAIhDmyG,SAAAA,GAAAA,OAAO9nS,EAAOwmS,WAAasB,KAAOh8R,GAIlCg8R,SAAAA,GAAAA,OAAOF,GAASE,SAexB,CAAA,IAAA,4BAAA,MAAA,SAA0BnxS,EAAMsxS,GAAAA,IAAAA,EAAAA,KAItBE,EAAYpxS,KAAKqxS,+BAA+BzxS,EAAMsxS,GAC5D,OAAIE,EAIOvjH,GAAGujH,GAuCPn0G,GAlCsBi0G,EACxBh6R,QAILo6R,SAAAA,GAAAA,OAAkBA,EAAc7B,cAC3B16R,KAILu8R,SAAAA,GAAAA,OACWtxS,EAAKuxS,0BAA0BD,GAAejtS,KAAK85L,IAIzDr4L,SAAAA,GAEG,IAIMohR,EAAAA,yBAAAA,OAJMlnR,EAAK2vS,WAAWr5L,SAASylC,GAAgBK,aAAck1J,EAAcxyS,KAI3EooR,aAAAA,OAAuDphR,EAAI1G,SAQjE,OANIY,EAAKwkM,cACLxkM,EAAKwkM,cAAcz8C,YAAY,IAAIliJ,MAAMqhR,IAGzC1iR,QAAQrF,MAAM+nR,GAEXr5F,GAAG,cAKoBxpL,KAAK0Q,GAAI,WAK3C,IAAMy8R,EAAYxxS,EAAKqxS,+BAA+BzxS,EAAMsxS,GAC5D,IAAKM,EACD,MAAMtC,GAA4BtvS,GAEtC,OAAO4xS,QAYf,CAAA,IAAA,iCAAA,MAAA,SAA+BrC,EAAU+B,GAErC,IAAK,IAAIv2S,EAAIu2S,EAAel2S,OAAS,EAAGL,GAAK,EAAGA,IAAK,CAEjD,IAAMsO,EAASioS,EAAev2S,GAC9B,GAAIsO,EAAOwmS,WAAY,CAEnB,IAAM+B,EAAYxxS,KAAKyxS,uBAAuBxoS,EAAOwmS,WAAYN,EAAUlmS,EAAOyM,SAClF,GAAI87R,EACA,OAAOA,GAInB,OAAO,OASX,CAAA,IAAA,yBAAA,MAAA,SAAuBvoS,GAAAA,IAAAA,EAAAA,KACnB,OAAOjJ,KAAK0xS,UAAUzoS,EAAOnK,KACxBuF,KAAK0Q,GAIV48R,SAAAA,GAAAA,OAAW3xS,EAAKswS,+BAA+BqB,EAAS1oS,EAAOyM,eASnE,CAAA,IAAA,4BAAA,MAAA,SAA0BzM,GAAAA,IAAAA,EAAAA,KAEtB,OAAIA,EAAOwmS,WACA5hH,GAAG5kL,EAAOwmS,YAEdzvS,KAAK0xS,UAAUzoS,EAAOnK,KAAKuF,KAAK0Q,GAIvC48R,SAAAA,GAAAA,OAGS1oS,EAAOwmS,aACRxmS,EAAOwmS,WAAazvS,EAAK0wS,sBAAsBiB,IAE5C1oS,EAAOwmS,iBAUtB,CAAA,IAAA,iCAAA,MAAA,SAA+BptS,EAAcqT,GAEzC,IAAMq7R,EAAM/wS,KAAK0wS,sBAAsBruS,GAEvC,OADArC,KAAK4xS,kBAAkBb,EAAKr7R,GACrBq7R,IAYX,CAAA,IAAA,yBAAA,MAAA,SAAuBc,EAAS1C,EAAUz5R,GAItC,IAAMo8R,EAAaD,EAAQ/qR,cAAR+qR,QAAAA,OAA8B1C,EAA9B0C,OACnB,IAAKC,EACD,OAAO,KAKX,IAAMC,EAAiCD,EAAWhwQ,WAAAA,GAIlD,GAHAiwQ,EAAYhwQ,gBAAgB,MAGe,QAAvCgwQ,EAAY/yQ,SAAStwB,cACrB,OAAO1O,KAAK4xS,kBAAkB,EAAkCl8R,GAKpE,GAA2C,WAAvCq8R,EAAY/yQ,SAAStwB,cACrB,OAAO1O,KAAK4xS,kBAAkB5xS,KAAKgyS,cAAcD,GAAcr8R,GAQnE,IAAMq7R,EAAM/wS,KAAK0wS,sBAAsB,eAGvC,OADAK,EAAIpkS,YAAYolS,GACT/xS,KAAK4xS,kBAAkBb,EAAKr7R,KAQvC,CAAA,IAAA,wBAAA,MAAA,SAAsBoc,GAElB,IAAMlL,EAAM5mB,KAAK02G,UAAUlsG,cAAc,OACzCoc,EAAIgyH,UAAY9mH,EAEhB,IAAMi/Q,EAAyBnqR,EAAIE,cAAc,OACjD,IAAKiqR,EACD,MAAMlrS,MAAM,uBAEhB,OAAOkrS,IAQX,CAAA,IAAA,gBAAA,MAAA,SAAc9vS,GAMV,IAJA,IAAM8vS,EAAM/wS,KAAK0wS,sBAAsB,eAEjCrqR,EAAaplB,EAAQolB,WAElB1rB,EAAI,EAAGA,EAAI0rB,EAAWrrB,OAAQL,IAAK,CAAA,IAAA,EAChB0rB,EAAW1rB,GAA3BiF,EADgC,EAClC,KAAQ6F,EAD0B,EAC5B,MACC,OAAT7F,GACAmxS,EAAIrkS,aAAa9M,EAAM6F,GAG/B,IAAK,IAAI9K,EAAI,EAAGA,EAAIsG,EAAQk0B,WAAWn6B,OAAQL,IACvCsG,EAAQk0B,WAAWx6B,GAAGg7B,WAAa31B,KAAK02G,UAAUijC,cAClDo3J,EAAIpkS,YAAY1L,EAAQk0B,WAAWx6B,GAAGmnC,WAAAA,IAG9C,OAAOivQ,IASX,CAAA,IAAA,oBAAA,MAAA,SAAkBA,EAAKr7R,GASnB,OARAq7R,EAAIrkS,aAAa,MAAO,IACxBqkS,EAAIrkS,aAAa,SAAU,QAC3BqkS,EAAIrkS,aAAa,QAAS,QAC1BqkS,EAAIrkS,aAAa,sBAAuB,iBACxCqkS,EAAIrkS,aAAa,YAAa,SAC1BgJ,GAAWA,EAAQ2tC,SACnB0tP,EAAIrkS,aAAa,UAAWgJ,EAAQ2tC,SAEjC0tP,IASX,CAAA,IAAA,YAAA,MAAA,SAAUJ,GAAAA,IAAAA,EAAAA,KACN,IAAK3wS,KAAK0vS,YACN,MA1mBD7pS,MAAM,8JA4mBT,GAAe,MAAX8qS,EACA,MAAM9qS,MAAAA,+BAAAA,OAAqC8qS,EAArC9qS,OAGV,IAAM/G,EAAMkB,KAAK2vS,WAAWr5L,SAASylC,GAAgBK,aAAcu0J,GACnE,IAAK7xS,EACD,MAAMswS,GAAmCuB,GAM7C,IAAMsB,EAAkBjyS,KAAK+vS,sBAAsBltR,IAAI/jB,GACvD,GAAImzS,EACA,OAAOA,EAKX,IDjqBiBvtS,ECiqBXuV,EAAMja,KAAK0vS,YAAY7sR,IAAI/jB,EAAK,CAAE4K,aAAc,SAAUrF,MDjqB/CK,ECiqB6D,WAAA,OAGxE1E,EAAK+vS,sBAAL/vS,OAAkClB,IDnqBpCsD,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAIy2R,GAAgBvqS,MCmqBC05H,MAEhD,OADAp+H,KAAK+vS,sBAAsB/tR,IAAIljB,EAAKmb,GAC7BA,IAYX,CAAA,IAAA,oBAAA,MAAA,SAAkB+L,EAAWmpR,EAAUlmS,GAEnC,OADA,KAA0B2mS,gBAAgB5tR,IAAIgvR,GAAQhrR,EAAWmpR,GAAWlmS,GACrE,OAWX,CAAA,IAAA,uBAAA,MAAA,SAAqB+c,EAAW/c,GAE5B,IAAMipS,EAAkB,KAA0BrC,gBAAgBhtR,IAAImD,GAOtE,OANIksR,EACAA,EAAgBxxS,KAAKuI,GAGrB,KAA0B4mS,gBAAgB7tR,IAAIgE,EAAW,CAAC/c,IAEvD,SAAA,EA9lBTsmS,IAimBU3sK,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKu1S,IAAiB,GAAgB,GAAmB,GAAI,GAAgB,IAAsB,GAAgB,GAAU,GAAI,GAAgB,GAAqB,KAQ5NA,GAAgB7uK,WAAQb,GAAmB,CAAEvqH,QAAS,WAAqC,OAAO,IAAIi6R,GAAgBvrK,GAAS,GAAY,GAAIA,GAAS,IAAeA,GAAS,GAAU,GAAIA,GAASkT,GAAc,KAAQ7X,MAAOkwK,GAAiBzvK,WAAY,SARpRyvK,IAoHA,SAASsB,GAASE,GACd,OAA0BA,EAAIjvQ,WAAAA,GAQlC,SAASkvQ,GAAQhrR,EAAWpmB,GACxB,OAAOomB,EAAY,IAAMpmB,EAY7B,IAwkBMuyS,GAxdAC,GAnGAC,GAAoBnoC,IATtB,SAAA,EAAY35D,GAAAA,gBAAAA,KAAAA,GACRvwM,KAAKuwM,YAAcA,KAerB+hG,GAAoB,IAAIvvK,GAAe,oBAAqB,CAC9DjD,WAAY,OACZxqH,QAgBJ,WAEI,IAAMohG,EAAYutB,GAAO,IAEnB9qB,EAAYzC,EAAYA,EAAUh5G,SAAW,KACnD,MAAO,CAGH60S,YAAa,WAAA,OAGPp5L,EAAaA,EAAUo5E,SAAWp5E,EAAUs5E,OAAU,QAO9D+/G,GAAoB,CACtB,YACA,gBACA,MACA,SACA,OACA,SACA,SACA,eACA,aACA,aACA,OACA,UAWEC,GAA2BD,GAAkBz9R,KALnDghB,SAAAA,GAAAA,MAAAA,IAAAA,OAAYA,EAAZA,QAK6DrwB,KAAK,MAK5DgtS,GAAiB,4BAvEvB,KAmGMN,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAQF,SAAA,EAAY7jJ,EAAYokJ,EAAeC,EAAYz5L,EAAWqrF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC1DpqE,EAAAA,EAAAA,KAAAA,KAAMm0B,IACDokJ,cAAgBA,EACrB3yS,EAAKm5G,UAAYA,EACjBn5G,EAAKwkM,cAAgBA,EACrBxkM,EAAK6yS,SAAAA,EAIL7yS,EAAK8yS,kBAAoB,EAAa94K,MAGjC44K,GACDrkJ,EAAWgc,cAAc79J,aAAa,cAAe,QAbC83L,EAuE9D,OAlDA,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SAkDe2qG,GACX,IAAKA,EACD,MAAO,CAAC,GAAI,IAGhB,IAAMnuS,EAAQmuS,EAAS3tS,MAAM,KAC7B,OAAQR,EAAMhG,QACV,KAAK,EAAG,MAAO,CAAC,GAAIgG,EAAM,IAC1B,KAAK,EAAG,OAAO,EACf,QAAS,MAAM6E,MAAAA,uBAAAA,OAA6BspS,EAA7BtpS,SAOvB,CAAA,IAAA,cAAA,MAAA,SAAY6xK,GAAAA,IAAAA,EAAAA,KAGFq7H,EAAiBr7H,EAAiB,QACxC,GAAIq7H,EAEA,GADA/yS,KAAK8yS,kBAAkBnyS,cACnBX,KAAKgzS,QAAS,CAAA,IAAA,EAAA,eACgBhzS,KAAKizS,eAAejzS,KAAKgzS,SADzC,GACPhtR,EADO,EAAA,GACImpR,EADJ,EAAA,GAEdnvS,KAAK8yS,kBAAoB9yS,KAAK2yS,cAAcO,gBAAgB/D,EAAUnpR,GACjE3hB,KAAKu5L,GAAK,IACVr9L,WAILwwS,SAAAA,GAAAA,OAAO/wS,EAAKmzS,eAAepC,MAI1BjrS,SAAAA,GAEG,IAAMohR,EAAAA,yBAAAA,OAAwClhQ,EAAxCkhQ,KAAAA,OAAqDioB,EAArDjoB,MAAAA,OAAkEphR,EAAI1G,SAExEY,EAAKwkM,cACLxkM,EAAKwkM,cAAcz8C,YAAY,IAAIliJ,MAAMqhR,IAGzC1iR,QAAQrF,MAAM+nR,WAIjB6rB,EAAehrI,eACpB/nK,KAAKozS,mBAGTpzS,KAAKqzS,kBACLrzS,KAAKszS,2BAMb,CAAA,IAAA,WAAA,MAAA,WAGQtzS,KAAKqzS,kBACLrzS,KAAKszS,2BAMb,CAAA,IAAA,qBAAA,MAAA,WAEI,IAAMC,EAAiBvzS,KAAKwzS,gCAC5B,GAAID,GAAkBvzS,KAAKm5G,WAAao6L,EAAe9xR,KAAM,CAEzD,IAAM+wK,EAAUxyL,KAAKm5G,UAAUo5L,cAO3B//G,IAAYxyL,KAAKyzS,gBACjBzzS,KAAKyzS,cAAgBjhH,EACrBxyL,KAAK0zS,yBAAyBlhH,OAO1C,CAAA,IAAA,cAAA,MAAA,WACIxyL,KAAK8yS,kBAAkBnyS,cACnBX,KAAKwzS,iCACLxzS,KAAKwzS,gCAAgCr0P,UAO7C,CAAA,IAAA,iBAAA,MAAA,WACI,OAAQn/C,KAAKgzS,UAOjB,CAAA,IAAA,iBAAA,MAAA,SAAejC,GACX/wS,KAAKozS,mBAML,IADA,IAAMO,EAA+B5C,EAAInxE,iBAAiB,SACjDjlO,EAAI,EAAGA,EAAIg5S,EAAU34S,OAAQL,IAClCg5S,EAAUh5S,GAAGiqC,aAAe,IAIhC,GAAI5kC,KAAKm5G,UAAW,CAEhB,IAAMrxF,EAAO9nB,KAAKm5G,UAAUo5L,cAC5BvyS,KAAKyzS,cAAgB3rR,EACrB9nB,KAAK4zS,qCAAqC7C,GAC1C/wS,KAAK0zS,yBAAyB5rR,GAElC9nB,KAAKuwM,YAAYhmC,cAAc59J,YAAYokS,KAM/C,CAAA,IAAA,mBAAA,MAAA,WAEI,IAAM8C,EAAgB7zS,KAAKuwM,YAAYhmC,cAEnCupI,EAAaD,EAAc1+Q,WAAWn6B,OAM1C,IALIgF,KAAKwzS,iCACLxzS,KAAKwzS,gCAAgCr0P,QAIlC20P,KAAc,CAEjB,IAAM/pL,EAAQ8pL,EAAc1+Q,WAAW2+Q,GAGhB,IAAnB/pL,EAAMp0F,UAAmD,QAAjCo0F,EAAM/qF,SAAStwB,eACvCmlS,EAAczmS,YAAY28G,MAQtC,CAAA,IAAA,yBAAA,MAAA,WACI,GAAK/pH,KAAKqzS,iBAAV,CAIA,IAAMhtL,EAAOrmH,KAAKuwM,YAAYhmC,cAExBwpI,EAAe/zS,KAAKg0S,QACtBh0S,KAAK2yS,cAAcsB,sBAAsBj0S,KAAKg0S,SAC9Ch0S,KAAK2yS,cAAcuB,yBACnBH,GAAgB/zS,KAAKm0S,wBACjBn0S,KAAKm0S,uBACL9tL,EAAK++C,UAAUrvJ,OAAO/V,KAAKm0S,uBAE3BJ,GACA1tL,EAAK++C,UAAUr9J,IAAIgsS,GAEvB/zS,KAAKm0S,sBAAwBJ,GAE7B/zS,KAAKo0S,UAAYp0S,KAAKq0S,yBAClBr0S,KAAKq0S,wBACLhuL,EAAK++C,UAAUrvJ,OAAO/V,KAAKq0S,wBAE3Br0S,KAAKo0S,UACL/tL,EAAK++C,UAAUr9J,IAAI/H,KAAKo0S,UAE5Bp0S,KAAKq0S,uBAAyBr0S,KAAKo0S,aAW3C,CAAA,IAAA,oBAAA,MAAA,SAAkB3uS,GACd,MAAwB,iBAAVA,EAAqBA,EAAMuQ,OAAOxU,MAAM,KAAK,GAAKiE,IAUpE,CAAA,IAAA,2BAAA,MAAA,SAAyBqiB,GAErB,IAAMD,EAAW7nB,KAAKwzS,gCAClB3rR,GACAA,EAASlQ,SAAQ,SAKhBuqB,EAAOjhC,GACJihC,EAAMvqB,SAINoe,SAAAA,GACI90B,EAAQyL,aAAaqpB,EAAKn2B,KAA1BqB,QAAAA,OAAwC6mB,EAAxC7mB,KAAAA,OAAgD80B,EAAKtwB,MAArDxE,eAYhB,CAAA,IAAA,uCAAA,MAAA,SAAqCA,GAMjC,IAJA,IAAMqzS,EAAsBrzS,EAAQ2+N,iBAAiB6yE,IAE/C5qR,EAAW7nB,KAAKwzS,gCAClBxzS,KAAKwzS,iCAAmC,IAAI1/I,IALf7yJ,EAAAA,SAMxBtG,GACL63S,GAAkB76R,SAIlBoe,SAAAA,GAEI,IAAMw+Q,EAAuBD,EAAoB35S,GAE3C8K,EAAQ8uS,EAAqBr1Q,aAAanJ,GAE1Cj2B,EAAQ2F,EAAQA,EAAM3F,MAAM4yS,IAAkB,KACpD,GAAI5yS,EAAO,CAEP,IAAIumB,EAAawB,EAAShF,IAAI0xR,GACzBluR,IACDA,EAAa,GACbwB,EAAS7F,IAAIuyR,EAAsBluR,IAEvC,EAAgC3lB,KAAK,CAAEd,KAAMm2B,EAAMtwB,MAAO3F,EAAM,UAnBnEnF,EAAI,EAAGA,EAAI25S,EAAoBt5S,OAAQL,IAAhD,EAASA,KAmBmE,CAAA,IAAA,SAAA,IAAA,WAhT5E,OAAOqF,KAAK6yS,SAMhB,IAAA,SAAW2B,GACPx0S,KAAK6yS,QAAUvgF,GAAsBkiF,KAMzC,CAAA,IAAA,UAAA,IAAA,WAAgB,OAAOx0S,KAAKy0S,UAK5B,IAAA,SAAYhvS,GACRzF,KAAKy0S,SAAWz0S,KAAK00S,kBAAkBjvS,KAM3C,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOzF,KAAK20S,WAK7B,IAAA,SAAalvS,GACTzF,KAAK20S,UAAY30S,KAAK00S,kBAAkBjvS,OAkB5C,EA/EE2sS,CAAgBC,KAoVdzvK,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAKo4S,IAAS,GAAyB,IAAoB,GAAyB,IAAkB,GAAyB,eAAgB,GAAyBE,GAAmB,GAAI,GAAyB,GAAqB,KACtSF,GAAQlwK,UAAO,GAAyB,CAAE/2H,KAAMinS,GAAS1zQ,UAAW,CAAC,CAAC,aAAc6nG,UAAW,CAAC,OAAQ,MAAO,EAAG,WAAY,eAAgBD,SAAU,EAAGD,aAAc,SAA8Bkc,EAAInmI,GAAgB,EAALmmI,GAC9M,GAAmB,kBAAmBnmI,EAAIo4R,OAA1C,CAAkD,oBAAmC,YAAdp4R,EAAI6e,OAAqC,WAAd7e,EAAI6e,OAAoC,SAAd7e,EAAI6e,QAC/HwrG,OAAQ,CAAExrG,MAAO,QAASu5Q,OAAQ,SAAUR,QAAS,UAAWI,SAAU,WAAYpB,QAAS,WAAarsK,SAAU,CAAC,WAAYrrH,SAAU,CAAC,GAAmC,IAA8B8qH,mBAAoB,GAAKJ,MAAO,EAAGC,KAAM,EAAGC,SAAU,SAA0Bqc,EAAInmI,GAAgB,EAALmmI,IAC/S,KACA,GAAoB,KACnB5tH,OAAQ,CAAC,ypBAA0pBqzG,cAAe,EAAGJ,gBAAiB,IAN/sBwqK,IAAAA,KAoIMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEQ3vK,UAAO,GAAwB,CAAEr3H,KAAMgnS,KACrDA,GAAcxxK,UAAO,GAAwB,CAAErrH,QAAS,SAA+Btb,GAAK,OAAO,IAAKA,GAAKm4S,KAAqBlyK,QAAS,CAAC,CAAC,IAAkB,MAD/JkyK,IAAAA,SAAAA,GAAAA,EAAAA,GAAAA,EAAAA,GCz4CY,GAAA,EAAA,MAAA,IAAA,SAAA,GAAA,EAAA,GAAA,EAAA,IACA,GAAA,EAAA,MAAA,IACI,GAAA,EAAA,MAAA,IACJ,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KApBR,GAAA,EAAA,MAAA,GASI,GAAA,EAAA,MAAA,GACK,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,aAAA,MAVT,GAAA,EAAA,SAeQ,GAAA,EAAA,WAAA,GACA,GAAA,EAAA,MAAA,GAAwB,GAAA,GAAgC,KACxD,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,IAGJ,KACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAlBQ,GAAA,cAAA,EAAA,KAAA,GAAA,CAA8B,kBAAA,EAAA,oBAAA,IAO7B,GAAA,GAAA,GAAA,WAAA,EAAA,oBAAA,GAAA,CAA8C,SAAA,GAAA,EAAA,EAAA,EAAA,gBAAA,EAAA,KAAA,IAE9C,GAAA,UAAA,EAAA,KAAA,IAES,GAAA,GAAA,GAAA,UAAA,EAAA,QAAA,IACc,GAAA,GAAA,GAAA,EAAA,qBAAA,KCM7B,IAAMyC,GAAN,KAAMA,GAAN,WAGH,SAAA,EACWzzR,EACAkyQ,EACC72E,EACAmJ,EACA91F,GAAAA,gBAAAA,KAAAA,GAJD,KAAA1uG,QAAAA,EACA,KAAAkyQ,SAAAA,EACC,KAAA72E,SAAAA,EACA,KAAAmJ,YAAAA,EACA,KAAA91F,MAAAA,EART,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,UAAA,MAAA,SAWYv4G,GACX,OAAOo4L,GAAYp4L,EAAO1X,MAAMyoL,OAZjC,CAAA,IAAA,eAAA,MAAA,SAeiB/wK,GAChBtX,KAAKmhB,QAAQ8rL,OAAO31L,GACbtX,KAAK6vH,MAAM6pJ,eAAe,GAAYl1M,QACzCxkE,KAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUzE,GAAW8yF,oBAlBlD,CAAA,IAAA,uBAAA,MAAA,SAsByBljQ,GACxB,IAAM1X,EAAO0X,EAAoB,aAAKA,EAAO1X,KAC7C,OAAOA,EAAOA,EAAKiM,QAAQ,WAAY,OAAS,KAxBjD,CAAA,IAAA,iBAAA,MAAA,SA2BmBpI,GAClBs+R,GAAgB/hS,KAAKmhB,QAAQ6pM,SAAUvnN,EAAEspK,cAAetpK,EAAEopK,cAI1D,IAAM5rJ,EAAQjhB,KAAKmhB,QAAQ6pM,SACtB1tN,QAAQs6C,UAAU6uK,WAAUzgN,SAAAA,GAAAA,OAAOA,EAAI7J,KAAKsV,KAAOhO,EAAEP,KAAK/G,QAE/D6D,KAAKmhB,QAAQqV,QAAQ/yB,EAAEP,KAAK/G,MAAM2sB,OAAO7H,GACzCjhB,KAAK2lN,YAAY5qM,OAAOgG,qBApCzB,CAAA,IAAA,sBAAA,MAAA,SAuCwBzJ,GACvB,OAAQA,EAAO44C,YAAc54C,EAAO1X,OAAS8vM,GAAYG,QAAQjwM,SAxClE,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMg1S,IAAqB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAArBA,GAAqB,UAAA,CAAA,CAAA,kBAAA,SAAA,EAAA,aAAA,SAAA,EAAA,GAAA,EAAA,IAAA,GAAA,mBAAA,SAAA,GAAA,kBAAA,KAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,UAAA,CAAA,QAAA,GAAA,EAAA,QAAA,CAAA,kBAAA,GAAA,EAAA,eAAA,EAAA,SAAA,CAAA,UAAA,SAAA,CAAA,kBAAA,GAAA,cAAA,GAAA,EAAA,aAAA,EAAA,sBAAA,CAAA,QAAA,iCAAA,UAAA,GAAA,kBAAA,cAAA,kBAAA,IAAA,EAAA,cAAA,kBAAA,EAAA,QAAA,WAAA,CAAA,UAAA,GAAA,kBAAA,cAAA,kBAAA,IAAA,EAAA,uBAAA,YAAA,EAAA,cAAA,mBAAA,CAAA,EAAA,sBAAA,EAAA,SAAA,CAAA,EAAA,YAAA,EAAA,WAAA,CAAA,QAAA,eAAA,EAAA,kBAAA,CAAA,QAAA,mBAAA,EAAA,sBAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,sBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ID7BlC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAwB,GAAA,EAAA,WAAO,KAC/B,GAAA,EAAA,SAAA,GAA6C,GAAA,SAAA,WAAA,OAAS,EAAAvhB,SAAA,WAClD,GAAA,EAAA,WAAA,GACJ,KACJ,KACA,GAAA,EAAA,MAAA,GAAoD,GAAA,sBAAA,SAAA,GAAA,OAAsB,EAAAwhB,eAAA,MACtE,GAAA,EAAA,GAAA,EAAA,GAAA,MAAA,GAuBJ,MAAA,EAAA,IArBY,GAAA,GAAA,GAAA,UAAA,EAAA,QAAA,YAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,6lBAAA,cAAA,EAAA,KAAA,CAAA,UCgBI,CACRpJ,GAAoBC,kBACvB,gBAAA,IAGgC,GAAA,CAAhC98F,GAAO,GAAYo2E,aAAa,GAAA,cAAc,IAAd,GAAA,UAAA,oBAAA,GAAA,IAD9B,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KCtBH,GAAA,EAAA,MAAA,GAAsE,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,GAAA,GAAA,iBAAA,MAClE,GAAA,EAAA,WAAA,GACA,GAAA,EAAA,MAAA,GAAwB,GAAA,GAAa,KACzC,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAAA,KAHuG,GAAA,SAAA,EAAA,KAAA,GACzF,GAAA,GAAA,GAAA,UAAA,EAAA,MACc,GAAA,GAAA,GAAA,EAAA,OAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAHhC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GADJ,GAAA,EAAA,SAKA,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAJqC,GAAA,GAAA,GAAA,UAAA,GAAA,EAAA,EAAA,EAAA,UCgB9B,IAAM8vB,GCgEPC,GA45BAC,GAteAC,GAmjBAC,GC79BAC,GF5EC,KAAML,GAAN,WAIH,SAAA,EACWtzL,EACA6xK,GAAAA,gBAAAA,KAAAA,GADA,KAAA7xK,QAAAA,EACA,KAAA6xK,SAAAA,EANR,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,SASqBnwR,GACpB,OAAOlD,KAAKwhH,QAAQ/xG,KAAKvM,OAV1B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM4xS,IAAqB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAArBA,GAAqB,UAAA,CAAA,CAAA,kBAAA,SAAA,EAAA,aAAA,SAAA,EAAA,GAAA,EAAA,IAAA,GAAA,mBAAA,SAAA,GAAA,kBAAA,KAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,UAAA,CAAA,QAAA,GAAA,EAAA,QAAA,CAAA,kBAAA,GAAA,EAAA,eAAA,EAAA,SAAA,CAAA,UAAA,SAAA,CAAA,QAAA,aAAA,kBAAA,GAAA,EAAA,QAAA,CAAA,kBAAA,GAAA,EAAA,cAAA,CAAA,QAAA,sBAAA,EAAA,SAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,sBAAA,EAAA,SAAA,CAAA,EAAA,YAAA,EAAA,YAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDvBlC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAwB,GAAA,EAAA,WAAO,KAC/B,GAAA,EAAA,SAAA,GAA6C,GAAA,SAAA,WAAA,OAAS,EAAAzhB,SAAA,WAClD,GAAA,EAAA,WAAA,GACJ,KACJ,KACA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GANA,GAAA,EAAA,UAAA,EAAA,IAMwB,GAAA,GAAA,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,kBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,qDAAA,cAAA,EAAA,KAAA,CAAA,UCaR,CACRoY,GAAoBC,kBACvB,gBAAA,IAG2B,GAAA,CAA3B98F,GAAO,GAAa5lB,OAAO,GAAA,cAAQ,IAAR,GAAA,UAAA,cAAA,GACO,GAAA,CAAlC4lB,GAAO,GAAawmG,cAAc,GAAA,cAAe,IAAf,GAAA,UAAA,qBAAA,GAAA,ICJjC,GAAM,CAAC,SACP,GAAM,WAAc,MAAO,CAAE/pC,cAAe,MAC5C,GAAM,CAAC,KAOPgqC,GAA4B,IAAItyK,GAAe,4BAA6B,CAC9EjD,WAAY,OACZxqH,QAKJ,WACI,MAAO,CACH2lB,MAAO,aAKX,GAAe,EAObq6Q,GAAyC,CAC3CjyK,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GAKE0/I,GAKF,SAAA,EAAYnzS,EAAQqD,GAAAA,gBAAAA,KAAAA,GAChBzF,KAAKoC,OAASA,EACdpC,KAAKyF,MAAQA,GAAAA,KAkBfsvS,GAAAA,WAIF,SAAA,EAAYS,GAAAA,gBAAAA,KAAAA,GACRx1S,KAAKw1S,gBAAkBA,EAIvBx1S,KAAK+8L,OAAS,KAId/8L,KAAKyjQ,MAALzjQ,mBAAAA,OAAgC,MAIhCA,KAAKi3N,UAAY,KAIjBj3N,KAAKi7N,gBAAAA,EAILj7N,KAAKy1S,eAAiB,QAItBz1S,KAAK2vO,WAAAA,EAIL3vO,KAAK6iN,WAAAA,EAIL7iN,KAAK01S,8BAAgC,aAQrC11S,KAAKwwM,UAAY,aASjBxwM,KAAK4uG,OAAS,IAAI,GAwGtB,OAlGA,aAAA,EAAA,CAAA,CAAA,IAAA,4BAAA,MAAA,WAgDQ5uG,KAAKi3N,YAAcj3N,KAAKi3N,UAAUtmB,UAClC3wM,KAAKi3N,UAAUtmB,SAAAA,KAQvB,CAAA,IAAA,qBAAA,MAAA,WA6CI3wM,KAAKi7N,gBAAAA,IAOT,CAAA,IAAA,SAAA,MAAA,WACQj7N,KAAKwwM,WACLxwM,KAAKwwM,cAOb,CAAA,IAAA,0BAAA,MAAA,WAAA,IAAA,EAAA,KACQxwM,KAAK21S,SACL31S,KAAK21S,QAAQh+R,SAIbi+R,SAAAA,GACIA,EAAMh2S,KAAOI,EAAKJ,KAClBg2S,EAAMC,qBASlB,CAAA,IAAA,gCAAA,MAAA,WAAA,IAAA,EAAA,KAIQ71S,KAAK21S,UADoC,OAAnB31S,KAAKi3N,WAAsBj3N,KAAKi3N,UAAUxxN,QAAUzF,KAAK+8L,UAE/E/8L,KAAKi3N,UAAY,KACjBj3N,KAAK21S,QAAQh+R,SAIbi+R,SAAAA,GACIA,EAAMjlG,QAAU3wM,EAAKyF,QAAUmwS,EAAMnwS,MACjCmwS,EAAMjlG,UACN3wM,EAAKi3N,UAAY2+E,SASjC,CAAA,IAAA,mBAAA,MAAA,WACQ51S,KAAKi7N,gBACLj7N,KAAK4uG,OAAOsf,KAAK,IAAIqnL,GAAkCv1S,KAAe,UAAGA,KAAK+8L,WAMtF,CAAA,IAAA,sBAAA,MAAA,WACQ/8L,KAAK21S,SACL31S,KAAK21S,QAAQh+R,SAIbi+R,SAAAA,GAAAA,OAASA,EAAMC,qBAQvB,CAAA,IAAA,aAAA,MAAA,SAAWpwS,GACPzF,KAAKyF,MAAQA,EACbzF,KAAKw1S,gBAAgB15G,iBAQzB,CAAA,IAAA,mBAAA,MAAA,SAAiB13L,GACbpE,KAAK01S,8BAAgCtxS,IAQzC,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACdpE,KAAKwwM,UAAYpsM,IAOrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKwxM,SAAWf,EAChBzwM,KAAKw1S,gBAAgB15G,iBAAAA,CAAAA,IAAAA,OAAAA,IAAAA,WAhNZ,OAAO97L,KAAKyjQ,OAKzB,IAAA,SAASh+P,GACLzF,KAAKyjQ,MAAQh+P,EACbzF,KAAK81S,4BAMT,CAAA,IAAA,gBAAA,IAAA,WACI,OAAO91S,KAAKy1S,gBAMhB,IAAA,SAAkBvoS,GACdlN,KAAKy1S,eAAuB,WAANvoS,EAAiB,SAAW,QAClDlN,KAAK+1S,wBAST,CAAA,IAAA,QAAA,IAAA,WAAc,OAAO/1S,KAAK+8L,QAK1B,IAAA,SAAUjqI,GACF9yD,KAAK+8L,SAAWjqI,IAEhB9yD,KAAK+8L,OAASjqI,EACd9yD,KAAKg2S,gCACLh2S,KAAKi2S,+BAMb,CAAA,IAAA,WAAA,IAAA,WAUiB,OAAOj2S,KAAKi3N,WAK7B,IAAA,SAAal/J,GACT/3D,KAAKi3N,UAAYl/J,EACjB/3D,KAAKyF,MAAQsyD,EAAWA,EAAStyD,MAAQ,KACzCzF,KAAKi2S,8BAMT,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOj2S,KAAK2vO,WAK7B,IAAA,SAAalqO,GACTzF,KAAK2vO,UAAYrd,GAAsB7sN,GACvCzF,KAAK+1S,wBAMT,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAO/1S,KAAK6iN,WAK7B,IAAA,SAAap9M,GACTzF,KAAK6iN,UAAYyP,GAAsB7sN,GACvCzF,KAAK+1S,0BAOT,EA9JEhB,IA+QQnyK,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAK+6S,IAAe,GAAyB,MAClHA,GAAc3yK,UAAO,GAAyB,CAAEj3H,KAAM4pS,GAAer2Q,UAAW,CAAC,CAAC,oBAAqB8nG,eAAgB,SAAsC+b,EAAInmI,EAAK6mI,GAG9J,IAAI4tH,EAH+K,EAALtuH,GAC9K,GAAsBU,EAAU,IAAA,GACzB,EAALV,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIu5R,QAAU9kC,IAClEtqI,UAAW,CAAC,OAAQ,aAAc,EAAG,mBAAoBE,OAAQ,CAAE7mI,KAAM,OAAQs2S,cAAe,gBAAiBzwS,MAAO,QAASsyD,SAAU,WAAYy5I,SAAU,WAAYoR,SAAU,WAAY3nL,MAAO,SAAWyrG,QAAS,CAAE93B,OAAQ,UAAY+3B,SAAU,CAAC,iBAAkBrrH,SAAU,CAAC,GAA0B,CAACg6R,QANhUP,IAgKMoB,GAA2B7rC,GAAmBE,IAbhD,SAAA,EAAYj6D,GAAAA,gBAAAA,KAAAA,GACRvwM,KAAKuwM,YAAcA,MAY3B,KAOM0kG,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAUF,SAAA,EAAYmB,EAAY7nJ,EAAYinJ,EAAiBjlC,EAAe8lC,EAAkB1oC,EAAgB2oC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAClGl8K,EAAAA,EAAAA,KAAAA,KAAMm0B,IACDinJ,gBAAkBA,EACvBx1S,EAAKuwQ,cAAgBA,EACrBvwQ,EAAKq2S,iBAAmBA,EACxBr2S,EAAK2tQ,eAAiBA,EACtB3tQ,EAAKs2S,kBAAoBA,EACzBt2S,EAAKkrH,UAALlrH,aAAAA,SAAgC,IAIhCA,EAAKyR,GAAKzR,EAAKkrH,UAMflrH,EAAK4uG,OAAS,IAAI,GAIlB5uG,EAAKu2S,UAAAA,EAILv2S,EAAK+8L,OAAS,KAId/8L,EAAKw2S,+BAAiC,aAMtCx2S,EAAKo2S,WAAaA,EAClBp2S,EAAKw2S,+BACDH,EAAiBt2I,QAAO,SAKvBtuJ,EAAI7R,GACG6R,IAAOzR,EAAKyR,IAAM7R,IAASI,EAAKJ,OAChCI,EAAK2wM,SAAAA,MA5CiF2lG,EAsKtG,OAlHA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SAkHM5gS,GACF1V,KAAKuwQ,cAAcK,SAAS5wQ,KAAKy2S,cAAe,WAAY/gS,KAQhE,CAAA,IAAA,gBAAA,MAAA,WAGI1V,KAAKw1S,gBAAgB15G,iBAKzB,CAAA,IAAA,WAAA,MAAA,WACQ97L,KAAKo2S,aAELp2S,KAAK2wM,QAAU3wM,KAAKo2S,WAAW3wS,QAAUzF,KAAK+8L,OAE9C/8L,KAAKJ,KAAOI,KAAKo2S,WAAWx2S,QAMpC,CAAA,IAAA,kBAAA,MAAA,WAAA,IAAA,EAAA,KACII,KAAKuwQ,cACAI,QAAQ3wQ,KAAKuwM,aAAAA,GACbhwM,WAILm2S,SAAAA,IACSA,GAAe12S,EAAKo2S,YACrBp2S,EAAKo2S,WAAWO,cAO5B,CAAA,IAAA,cAAA,MAAA,WACI32S,KAAKuwQ,cAAcn3B,eAAep5O,KAAKuwM,aACvCvwM,KAAKw2S,mCAOT,CAAA,IAAA,mBAAA,MAAA,WACIx2S,KAAK4uG,OAAOsf,KAAK,IAAIqnL,GAAev1S,KAAMA,KAAK+8L,WAKnD,CAAA,IAAA,oBAAA,MAAA,WACI,OAAO/8L,KAAKsvQ,eAAiBtvQ,KAAKwxM,WAMtC,CAAA,IAAA,gBAAA,MAAA,SAAc39K,GAQVA,EAAMuoC,oBAQV,CAAA,IAAA,iBAAA,MAAA,SAAevoC,GAIXA,EAAMuoC,kBAEN,IAAMw6O,EAAoB52S,KAAKo2S,YAAcp2S,KAAKyF,QAAUzF,KAAKo2S,WAAW3wS,MAC5EzF,KAAK2wM,SAAAA,EACL3wM,KAAK62N,mBACD72N,KAAKo2S,aACLp2S,KAAKo2S,WAAWV,8BAA8B11S,KAAKyF,OAC/CmxS,GACA52S,KAAKo2S,WAAWv/E,sBAU5B,CAAA,IAAA,eAAA,MAAA,SAAapxN,GACLzF,KAAK2vO,YAAclqO,IACnBzF,KAAK2vO,UAAYlqO,EACjBzF,KAAKw1S,gBAAgB15G,kBAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WA7Nb,OAAO97L,KAAKu2S,UAK5B,IAAA,SAAY9wS,GAER,IAAMoxS,EAAkBvkF,GAAsB7sN,GAC1CzF,KAAKu2S,WAAaM,IAClB72S,KAAKu2S,SAAWM,EACZA,GAAmB72S,KAAKo2S,YAAcp2S,KAAKo2S,WAAW3wS,QAAUzF,KAAKyF,MACrEzF,KAAKo2S,WAAWr+O,SAAW/3D,MAErB62S,GAAmB72S,KAAKo2S,YAAcp2S,KAAKo2S,WAAW3wS,QAAUzF,KAAKyF,QAG3EzF,KAAKo2S,WAAWr+O,SAAW,MAE3B8+O,GAEA72S,KAAKq2S,iBAAiBS,OAAO92S,KAAKyR,GAAIzR,KAAKJ,MAE/CI,KAAKw1S,gBAAgB15G,kBAO7B,CAAA,IAAA,QAAA,IAAA,WAAc,OAAO97L,KAAK+8L,QAK1B,IAAA,SAAUt3L,GACFzF,KAAK+8L,SAAWt3L,IAChBzF,KAAK+8L,OAASt3L,EACU,OAApBzF,KAAKo2S,aACAp2S,KAAK2wM,UAEN3wM,KAAK2wM,QAAU3wM,KAAKo2S,WAAW3wS,QAAUA,GAEzCzF,KAAK2wM,UACL3wM,KAAKo2S,WAAWr+O,SAAW/3D,UAS3C,CAAA,IAAA,gBAAA,IAAA,WACI,OAAOA,KAAKy1S,gBAAmBz1S,KAAKo2S,YAAcp2S,KAAKo2S,WAAWF,eAAkB,SAMxF,IAAA,SAAkBzwS,GACdzF,KAAKy1S,eAAiBhwS,IAM1B,CAAA,IAAA,WAAA,IAAA,WACI,OAAOzF,KAAK2vO,WAAkC,OAApB3vO,KAAKo2S,YAAuBp2S,KAAKo2S,WAAW5kG,UAM1E,IAAA,SAAa/rM,GACTzF,KAAK+2S,aAAazkF,GAAsB7sN,MAM5C,CAAA,IAAA,WAAA,IAAA,WACI,OAAOzF,KAAK6iN,WAAc7iN,KAAKo2S,YAAcp2S,KAAKo2S,WAAWxzF,UAMjE,IAAA,SAAan9M,GACTzF,KAAK6iN,UAAYyP,GAAsB7sN,KAM3C,CAAA,IAAA,QAAA,IAAA,WACI,OAAOzF,KAAKoqQ,QACPpqQ,KAAKo2S,YAAcp2S,KAAKo2S,WAAWn7Q,OACpCj7B,KAAKs2S,mBAAqBt2S,KAAKs2S,kBAAkBr7Q,OAAS,UAMlE,IAAA,SAAU63B,GAAY9yD,KAAKoqQ,OAASt3M,IAKpC,CAAA,IAAA,UAAA,IAAA,WAAgB,MAAA,GAAA,OAAU9yD,KAAKyR,IAAMzR,KAAKkrH,UAA1B,cAMhB,EAhLE+pL,CAA4BkB,KA+RdvzK,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAKi7S,IAAqB,GAAyB,GAAe,GAAI,GAAyB,IAAoB,GAAyB,IAA2B,GAAyB,IAAsB,GAAyB,IAAmC,GAAyBpsC,GAAuB,GAAI,GAAyBwsC,GAA2B,KAC3cJ,GAAoB7yK,UAAO,GAAyB,CAAEj3H,KAAM8pS,GAAqBltK,UAAW,SAAmCwa,EAAInmI,GAG3H,IAAIy0P,EAHuI,EAALtuH,GACtI,GAAmB,IAAA,GACZ,EAALA,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIq6R,cAAgB5lC,EAAGx1G,QAC3E50B,OAAQ,CAAEh1H,GAAI,KAAMk/L,QAAS,UAAWlrM,MAAO,QAASywS,cAAe,gBAAiB1kG,SAAU,WAAYoR,SAAU,WAAY3nL,MAAO,QAASr7B,KAAM,OAAQ+xO,UAAW,CAAC,aAAc,aAAcqlE,eAAgB,CAAC,kBAAmB,kBAAmBC,gBAAiB,CAAC,mBAAoB,oBAAsBvwK,QAAS,CAAE93B,OAAQ,UAAYtzF,SAAU,CAAC,MANhX25R,IAAAA,KAuMMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAAAA,OAAAA,EAAAA,CAAuB,KAEdpyK,UAAO,SAAgC5oI,GAAK,OAAOk9S,GAA4Bl9S,GAAKg7S,KACnGA,GAAe9yK,UAAO,GAAyB,CAAE/2H,KAAM6pS,GAAgBt2Q,UAAW,CAAC,CAAC,qBAAsB6nG,UAAW,CAAC,EAAG,oBAAqBD,SAAU,GAAID,aAAc,SAAqCkc,EAAInmI,GAAgB,EAALmmI,GACtN,GAAkB,SAAS,WAAqD,OAAOnmI,EAAIq6R,cAAclsI,cAAc1uG,WAChH,EAAL0mF,IACF,GAAmB,YAAY,EAA/B,CAAsC,KAAMnmI,EAAI3K,GAAhD,CAAoD,aAAc,KAAlE,CAAwE,kBAAmB,KAA3F,CAAiG,mBAAoB,MACrH,GAAmB,oBAAqB2K,EAAIu0L,QAA5C,CAAqD,qBAAsBv0L,EAAIo1L,SAA/E,CAAyF,0BAAkD,mBAAvBp1L,EAAIuxP,eAAxH,CAA6J,cAA6B,YAAdvxP,EAAI6e,MAAhL,CAAqM,aAA4B,WAAd7e,EAAI6e,MAAvN,CAA2O,WAA0B,SAAd7e,EAAI6e,SAC1PwrG,OAAQ,CAAE6oI,cAAe,gBAAiB56B,SAAU,YAAc/tG,SAAU,CAAC,kBAAmBrrH,SAAU,CAAC,IAAoC8qH,mBAAoB,GAAKJ,MAAO,GAAIC,KAAM,GAAIE,OAAQ,CAAC,CAAC,EAAG,mBAAoB,CAAC,QAAS,IAAK,CAAC,EAAG,uBAAwB,CAAC,EAAG,0BAA2B,CAAC,EAAG,0BAA2B,CAAC,OAAQ,QAAS,EAAG,kBAAmB,sBAAuB,EAAG,KAAM,UAAW,WAAY,WAAY,WAAY,SAAU,SAAU,CAAC,QAAS,IAAK,CAAC,aAAc,GAAI,EAAG,mBAAoB,sBAAuB,EAAG,mBAAoB,oBAAqB,oBAAqB,kBAAmB,sBAAuB,CAAC,EAAG,qBAAsB,+BAAgC,CAAC,EAAG,2BAA4B,CAAC,EAAG,UAAW,SAAUD,SAAU,SAAiCqc,EAAInmI,GAoBlzB,GApBk0B,EAALmmI,IAC3zB,KACA,GAAsB,EAAG,QAAS,EAAG,GACrC,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,MAAO,GAC3B,GAAiB,EAAG,MAAO,GAC3B,GAAsB,EAAG,QAAS,EAAG,GACrC,GAAkB,UAAU,SAAyDmuD,GAAU,OAAOt0L,EAAI+6R,eAAezmG,KAAzH,CAAqI,SAAS,SAAwDA,GAAU,OAAOt0L,EAAIg7R,cAAc1mG,MACzO,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,MAAO,GAC3B,KACA,KACA,GAAsB,EAAG,MAAO,GAChC,GAAsB,GAAI,OAAQ,IAClC,GAAc,GAAI,QAClB,KACA,GAAoB,IACpB,KACA,MACO,EAALnuD,EAAQ,CACV,IAAM80J,EAAM,GAAmB,GAC/B,GAAmB,MAAOj7R,EAAIk7R,SAC9B,GAAiB,GACjB,GAAkB,KAAMl7R,EAAIk7R,QAA5B,CAAqC,UAAWl7R,EAAIu0L,QAApD,CAA6D,WAAYv0L,EAAIo1L,SAA7E,CAAuF,WAAYp1L,EAAIs4N,SAAvG,CAAiH,WAAYt4N,EAAIwmM,UACjI,GAAmB,OAAQxmM,EAAIxc,KAA/B,CAAqC,QAASwc,EAAI3W,MAAlD,CAAyD,aAAc2W,EAAIu1N,UAA3E,CAAsF,kBAAmBv1N,EAAI46R,eAA7G,CAA6H,mBAAoB56R,EAAI66R,iBACrJ,GAAiB,GACjB,GAAkB,mBAAoBI,EAAtC,CAA2C,oBAAqBj7R,EAAI00P,oBAApE,CAAyF,qBAAA,EAAzF,CAAoH,kBAAmB,GAAvI,CAA2I,qBAAsB,GAAuB,GAAI,KAC5L,GAAiB,GACjB,GAAmB,yBAA+C,UAArB10P,EAAI85R,iBAChDvyJ,WAAY,CAAC,IAAmBhvH,OAAQ,CAAC,u7EAAw7EqzG,cAAe,EAAGJ,gBAAiB,IApC7gFotK,IAqCMkC,GAA8B,GAA6B,IAAjE,KAsCMhC,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAES1yK,UAAO,GAAwB,CAAEr3H,KAAM+pS,KACtDA,GAAev0K,UAAO,GAAwB,CAAErrH,QAAS,SAAgCtb,GAAK,OAAO,IAAKA,GAAKk7S,KAAsBj1K,QAAS,CAAC,CAAC,GAAiB,IAAkB,MADnLi1K,IC3iCM,GAAM,CAAC,iBACPqC,GAAqBjiF,GAAgC,CAAEl8J,SAAAA,IA4BvDo+O,GAA4B,CAC9Bn0K,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GAKE4hJ,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IA+BAC,GAAsBltC,GAAcN,GAAWD,IATjD,SAAA,EAAY15D,GAAAA,gBAAAA,KAAAA,GACRvwM,KAAKuwM,YAAcA,KAQwD,WAAnF,KAKM4kG,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAWF,SAAA,EAAY5mJ,EAAYgiH,EAAe3B,EAAoBniC,EAAMiI,EAAUi5B,EAAgB5sF,EAE3FtjL,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACI28H,EAAAA,EAAAA,KAAAA,KAAMm0B,IACDgiH,cAAgBA,EACrBvwQ,EAAK4uQ,mBAAqBA,EAC1B5uQ,EAAKysO,KAAOA,EACZzsO,EAAK2tQ,eAAiBA,EACtB3tQ,EAAK+gL,QAAUA,EACf/gL,EAAK23S,SAAAA,EACL33S,EAAK43S,KAAO,IACZ53S,EAAK63S,KAAO,EACZ73S,EAAK83S,MAAQ,EACb93S,EAAK+3S,aAAAA,EACL/3S,EAAKg4S,cAAgB,EACrBh4S,EAAK+8L,OAAS,KACd/8L,EAAKkyO,WAAAA,EAILlyO,EAAK4uG,OAAS,IAAI,GAIlB5uG,EAAK9E,MAAQ,IAAI,GAMjB8E,EAAKi4S,YAAc,IAAI,GAIvBj4S,EAAKwwM,UAAY,aAIjBxwM,EAAKk4S,SAAW,EAKhBl4S,EAAKm4S,YAAAA,EAKLn4S,EAAKo4S,WAAAA,EAILp4S,EAAKq4S,qBAAuB,EAI5Br4S,EAAKs4S,kBAAoB,KACzBt4S,EAAK01S,8BAAgC,aAOrC11S,EAAKu4S,uBAAyB,EAAav+K,MAI3Ch6H,EAAKu5R,aAIJ1lQ,SAAAA,GAGO7zB,EAAKwxM,UAAYxxM,EAAKm4S,aAAgB,GAAatkR,IAA2B,IAAjBA,EAAMylC,QAGvEt5D,EAAKw4S,gBAAe,WAKhB,IAAMtlK,EAAWlzI,EAAKyF,MAEhBm0R,EAAkB6e,GAAyB5kR,GACjD7zB,EAAKm4S,YAAAA,EACLn4S,EAAK04S,kBAAoB7kR,EACzBA,EAAMqoC,iBACNl8D,EAAK24S,oBACL34S,EAAK44S,gBACL54S,EAAK64S,kBAAkBhlR,GACvB7zB,EAAK24S,oBACL34S,EAAK84S,yBAAyBlf,GAC9B55R,EAAK+4S,mBAAqB/4S,EAAKyF,MAC/BzF,EAAKg5S,wBAA0Bpf,EAE3B1mJ,GAAYlzI,EAAKyF,QACjBzF,EAAKi5S,kBACLj5S,EAAK62N,wBAQjB72N,EAAK25R,aAIJ9lQ,SAAAA,GACG,GAAI7zB,EAAKm4S,WAAY,CAEjBtkR,EAAMqoC,iBAEN,IAAMg3E,EAAWlzI,EAAKyF,MACtBzF,EAAK04S,kBAAoB7kR,EACzB7zB,EAAK84S,yBAAyBL,GAAyB5kR,IAEnDq/G,GAAYlzI,EAAKyF,OACjBzF,EAAKi5S,oBAOjBj5S,EAAKk7R,WAIJrnQ,SAAAA,GACG,GAAI7zB,EAAKm4S,WAAY,CAEjB,IAAMe,EAAyBl5S,EAAKg5S,wBAE9BG,EAAyBV,GAAyB5kR,GACxDA,EAAMqoC,iBACNl8D,EAAKo5S,sBACLp5S,EAAK+4S,mBAAqB/4S,EAAKg5S,wBAA0Bh5S,EAAK04S,kBAAoB,KAClF14S,EAAKm4S,YAAAA,EACDn4S,EAAK+4S,oBAAsB/4S,EAAKyF,OAAUzF,EAAKwxM,WAC/C0nG,GAA2BA,EAAuB1/S,IAAM2/S,EAAuB3/S,GAC/E0/S,EAAuBz/S,IAAM0/S,EAAuB1/S,GACpDuG,EAAK62N,qBAOjB72N,EAAKq5S,YAAc,WAMXr5S,EAAK04S,mBACL14S,EAAKk7R,WAAWl7R,EAAK04S,oBAG7B14S,EAAK02G,UAAYj5G,EACjBuC,EAAK00O,SAAWrmO,SAASqmO,IAAa,EACtC10O,EAAKs5S,iBAAgB,WAKjB,IAAMr4S,EAAUstJ,EAAWgc,cAC3BtpK,EAAQwyB,iBAAiB,YAAazzB,EAAKu5R,aAAcge,IACzDt2S,EAAQwyB,iBAAiB,aAAczzB,EAAKu5R,aAAcge,OAzKlE95S,EA2eA,OA3TA,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,SA2JMiY,GACF1V,KAAK24S,kBAAkBjjS,KAM3B,CAAA,IAAA,OAAA,MAAA,WACI1V,KAAKu5S,qBAMT,CAAA,IAAA,2BAAA,MAAA,WAmJI,MAAgC,OAAxBv5S,KAAKw5S,iBAA6Bx5S,KAAKy5S,SAAgCz5S,KAAK05S,aAAxB15S,KAAK05S,cAOrE,CAAA,IAAA,gBAAA,MAAA,WACI,OAAQ15S,KAAKysO,MAA2B,OAAnBzsO,KAAKysO,KAAKhnO,MAAkB,MAAQ,QAK7D,CAAA,IAAA,WAAA,MAAA,WAAA,IAAA,EAAA,KACIzF,KAAKuwQ,cACAI,QAAQ3wQ,KAAKuwM,aAAAA,GACbhwM,WAIJiC,SAAAA,GACGxC,EAAKo4S,YAAc51S,GAAqB,aAAXA,EAC7BxC,EAAK4uQ,mBAAmBhoF,mBAExB5mL,KAAKysO,OACLzsO,KAAKu4S,uBAAyBv4S,KAAKysO,KAAK79H,OAAOruG,WAAU,WAIrDP,EAAK4uQ,mBAAmB9yE,qBAOpC,CAAA,IAAA,cAAA,MAAA,WAEI,IAAM76L,EAAUjB,KAAKuwM,YAAYhmC,cACjCtpK,EAAQ0yB,oBAAoB,YAAa3zB,KAAKu5R,aAAcge,IAC5Dt2S,EAAQ0yB,oBAAoB,aAAc3zB,KAAKu5R,aAAcge,IAC7Dv3S,KAAK04S,kBAAoB,KACzB14S,KAAKo5S,sBACLp5S,KAAKuwQ,cAAcn3B,eAAep5O,KAAKuwM,aACvCvwM,KAAKu4S,uBAAuB53S,gBAKhC,CAAA,IAAA,gBAAA,MAAA,WACQX,KAAKwxM,WAKTxxM,KAAKs4S,kBAAoBt4S,KAAK25S,uBAC9B35S,KAAK45S,gCAKT,CAAA,IAAA,WAAA,MAAA,WAGI55S,KAAKs4S,kBAAoBt4S,KAAK25S,uBAC9B35S,KAAK45S,+BAKT,CAAA,IAAA,UAAA,MAAA,WACI55S,KAAKwwM,cAMT,CAAA,IAAA,aAAA,MAAA,SAAW38K,GACP,IAAI7zB,KAAKwxM,WAAYiqB,GAAe5nM,GAApC,CAIA,IAAMq/G,EAAWlzI,KAAKyF,MACtB,OAAQouB,EAAMk4E,SACV,KzG3oBI,GyG4oBA/rG,KAAK65S,WAAW,IAChB,MACJ,KzG5oBM,GyG6oBF75S,KAAK65S,YAAY,IACjB,MACJ,KzG7oBA,GyG8oBI75S,KAAKyF,MAAQzF,KAAKya,IAClB,MACJ,KzG9oBC,GyG+oBGza,KAAKyF,MAAQzF,KAAKwa,IAClB,MACJ,KzG/oBO,GyGupBHxa,KAAK65S,WAAmC,OAAxB75S,KAAKw5S,gBAA2B,GAAK,GACrD,MACJ,KzGvpBK,GyGwpBDx5S,KAAK65S,WAAW,GAChB,MACJ,KzGxpBQ,GyG0pBJ75S,KAAK65S,WAAmC,OAAxB75S,KAAKw5S,iBAA4B,EAAI,GACrD,MACJ,KzG1pBO,GyG2pBHx5S,KAAK65S,YAAY,GACjB,MACJ,QAGI,OAEJ3mK,GAAYlzI,KAAKyF,QACjBzF,KAAKi5S,kBACLj5S,KAAK62N,oBAET72N,KAAKm4S,YAAAA,EACLtkR,EAAMqoC,oBAKV,CAAA,IAAA,WAAA,MAAA,WACIl8D,KAAKm4S,YAAAA,IAOT,CAAA,IAAA,aAAA,MAAA,WACI,IAAIr/J,EACJ,OAAkC,QAAzBA,EAAK94I,KAAK02G,iBAAAA,IAAuBoiC,OAAAA,EAAyBA,EAAGjjH,cAAgB34B,SAU1F,CAAA,IAAA,oBAAA,MAAA,SAAkB48S,GAId,IAAMr8S,EAAWuC,KAAK02G,UACtB,QAAA,IAAWj5G,GAA4BA,EAAU,CAE7C,IAAM0yH,EAAU,GAAa2pL,GAIvBC,EAAe5pL,EAAU,WAAa,UAC5C1yH,EAASg2B,iBAHa08F,EAAU,YAAc,YAGLnwH,KAAK25R,aAAc4d,IAC5D95S,EAASg2B,iBAAiBsmR,EAAc/5S,KAAKk7R,WAAYqc,IACrDpnL,GACA1yH,EAASg2B,iBAAiB,cAAezzB,KAAKk7R,WAAYqc,IAIlE,IAAMr6S,EAAS8C,KAAKw4N,kBAAAA,IACTt7N,GAA0BA,GACjCA,EAAOu2B,iBAAiB,OAAQzzB,KAAKq5S,eAQ7C,CAAA,IAAA,sBAAA,MAAA,WAEI,IAAM57S,EAAWuC,KAAK02G,eAAAA,IACXj5G,GAA4BA,IACnCA,EAASk2B,oBAAoB,YAAa3zB,KAAK25R,aAAc4d,IAC7D95S,EAASk2B,oBAAoB,UAAW3zB,KAAKk7R,WAAYqc,IACzD95S,EAASk2B,oBAAoB,YAAa3zB,KAAK25R,aAAc4d,IAC7D95S,EAASk2B,oBAAoB,WAAY3zB,KAAKk7R,WAAYqc,IAC1D95S,EAASk2B,oBAAoB,cAAe3zB,KAAKk7R,WAAYqc,KAGjE,IAAMr6S,EAAS8C,KAAKw4N,kBAAAA,IACTt7N,GAA0BA,GACjCA,EAAOy2B,oBAAoB,OAAQ3zB,KAAKq5S,eAShD,CAAA,IAAA,aAAA,MAAA,SAAWW,GACPh6S,KAAKyF,MAAQzF,KAAKi6S,QAAQj6S,KAAKyF,OAAS,GAAKzF,KAAKuvL,KAAOyqH,EAAUh6S,KAAKwa,IAAKxa,KAAKya,OAQtF,CAAA,IAAA,2BAAA,MAAA,SAAyBugB,GACrB,GAAKh7B,KAAKs4S,kBAAV,CAIA,IAOI3lN,EAAU3yF,KAAKi6S,SAHAj6S,KAAKy5S,SAAWz+Q,EAAIvhC,EAAIuhC,EAAIxhC,IAJlCwG,KAAKy5S,SAAWz5S,KAAKs4S,kBAAkBnzR,IAAMnlB,KAAKs4S,kBAAkBpzR,QAEtEllB,KAAKy5S,SAAWz5S,KAAKs4S,kBAAkB/7R,OAASvc,KAAKs4S,kBAAkB57R,QAalF,GAPI1c,KAAKk6S,6BACLvnN,EAAU,EAAIA,GAMF,IAAZA,EACA3yF,KAAKyF,MAAQzF,KAAKwa,SAEjB,GAAgB,IAAZm4E,EACL3yF,KAAKyF,MAAQzF,KAAKya,QAEjB,CAED,IAAM0/R,EAAan6S,KAAKo6S,gBAAgBznN,GAIlC0nN,EAAer3R,KAAKooB,OAAO+uQ,EAAan6S,KAAKwa,KAAOxa,KAAKuvL,MAAQvvL,KAAKuvL,KAAOvvL,KAAKwa,IAExFxa,KAAKyF,MAAQzF,KAAKi6S,OAAOI,EAAcr6S,KAAKwa,IAAKxa,KAAKya,SAQ9D,CAAA,IAAA,mBAAA,MAAA,WACIza,KAAK01S,8BAA8B11S,KAAKyF,OACxCzF,KAAKi4S,YAAY/pL,KAAKluH,KAAKyF,OAC3BzF,KAAK4uG,OAAOsf,KAAKluH,KAAKs6S,wBAO1B,CAAA,IAAA,kBAAA,MAAA,WACIt6S,KAAK9E,MAAMgzH,KAAKluH,KAAKs6S,wBAOzB,CAAA,IAAA,6BAAA,MAAA,WACI,GAAKt6S,KAAKu6S,cAAiBv6S,KAAKs4S,kBAGhC,GAAyB,QAArBt4S,KAAKu6S,aAAwB,CAE7B,IAAIC,EAAYx6S,KAAKy5S,SAAWz5S,KAAKs4S,kBAAkB/7R,OAASvc,KAAKs4S,kBAAkB57R,MAInF+9R,EAAez3R,KAAK2L,KAv1BH,IAq1BD6rR,EAAYx6S,KAAKuvL,MAAQvvL,KAAKya,IAAMza,KAAKwa,OAK7Dxa,KAAKq4S,qBADeoC,EAAez6S,KAAKuvL,KACIirH,OAG5Cx6S,KAAKq4S,qBAAuBr4S,KAAKu6S,aAAev6S,KAAKuvL,MAAQvvL,KAAKya,IAAMza,KAAKwa,OASrF,CAAA,IAAA,qBAAA,MAAA,WAAgC/U,IAAbA,EAAaA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAALzF,KAAKyF,MAExBouB,EAAQ,IAAI4jR,GAGhB,OAFA5jR,EAAMzxB,OAASpC,KACf6zB,EAAMpuB,MAAQA,EACPouB,IAQX,CAAA,IAAA,uBAAA,MAAA,SAAqBpuB,GACjB,QAASA,GAAS,GAAKzF,KAAKwa,MAAQxa,KAAKya,IAAMza,KAAKwa,OAQxD,CAAA,IAAA,kBAAA,MAAA,SAAgBywM,GACZ,OAAOjrN,KAAKwa,IAAMywM,GAAcjrN,KAAKya,IAAMza,KAAKwa,OAUpD,CAAA,IAAA,SAAA,MAAA,SAAO/U,GAAsB,IAAf+U,EAAe,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAT,EAAGC,EAAM,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EACzB,OAAOuI,KAAKvI,IAAID,EAAKwI,KAAKxI,IAAI/U,EAAOgV,MASzC,CAAA,IAAA,uBAAA,MAAA,WACI,OAAOza,KAAK06S,eAAiB16S,KAAK06S,eAAenwI,cAAc9yI,wBAA0B,OAS7F,CAAA,IAAA,oBAAA,MAAA,SAAkB/hB,GACd1V,KAAKuwM,YAAYhmC,cAAc1uG,MAAMnmD,KAOzC,CAAA,IAAA,mBAAA,MAAA,WACI1V,KAAKuwM,YAAYhmC,cAAcpxH,SAQnC,CAAA,IAAA,iBAAA,MAAA,SAAe/0C,GAEXpE,KAAK+gL,QAAU/gL,KAAK+gL,QAAQV,IAAIj8K,GAAMA,MAQ1C,CAAA,IAAA,kBAAA,MAAA,SAAgBA,GAEZpE,KAAK+gL,QAAU/gL,KAAK+gL,QAAQX,kBAAkBh8K,GAAMA,MAOxD,CAAA,IAAA,aAAA,MAAA,SAAWqB,GACPzF,KAAKyF,MAAQA,IAQjB,CAAA,IAAA,mBAAA,MAAA,SAAiBrB,GACbpE,KAAK01S,8BAAgCtxS,IAQzC,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACdpE,KAAKwwM,UAAYpsM,IAQrB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKwxM,SAAWf,IAAAA,CAAAA,IAAAA,SAAAA,IAAAA,WAztBL,OAAOzwM,KAAK23S,SAK3B,IAAA,SAAWlyS,GACPzF,KAAK23S,QAAUrlF,GAAsB7sN,KAMzC,CAAA,IAAA,MAAA,IAAA,WAAY,OAAOzF,KAAK43S,MAKxB,IAAA,SAAQ1qS,GACJlN,KAAK43S,KAAOrlF,GAAqBrlN,EAAGlN,KAAK43S,MACzC53S,KAAKk4S,SAAWl4S,KAAK26S,qBAAqB36S,KAAK+8L,QAE/C/8L,KAAK4uQ,mBAAmB9yE,iBAM5B,CAAA,IAAA,MAAA,IAAA,WAAY,OAAO97L,KAAK63S,MAKxB,IAAA,SAAQ3qS,GACJlN,KAAK63S,KAAOtlF,GAAqBrlN,EAAGlN,KAAK63S,MAErB,OAAhB73S,KAAK+8L,SACL/8L,KAAKyF,MAAQzF,KAAK63S,MAEtB73S,KAAKk4S,SAAWl4S,KAAK26S,qBAAqB36S,KAAK+8L,QAE/C/8L,KAAK4uQ,mBAAmB9yE,iBAM5B,CAAA,IAAA,OAAA,IAAA,WAAa,OAAO97L,KAAK83S,OAKzB,IAAA,SAAS5qS,GACLlN,KAAK83S,MAAQvlF,GAAqBrlN,EAAGlN,KAAK83S,OACtC93S,KAAK83S,MAAQ,GAAM,IACnB93S,KAAK46S,gBAAqC56S,KAAK83S,MAAMj4S,WAAW2B,MAAM,KAAKuS,MAAQ/Y,QAGvFgF,KAAK4uQ,mBAAmB9yE,iBAM5B,CAAA,IAAA,aAAA,IAAA,WAAmB,OAAO97L,KAAK+3S,aAK/B,IAAA,SAAetyS,GAASzF,KAAK+3S,YAAczlF,GAAsB7sN,KAMjE,CAAA,IAAA,eAAA,IAAA,WAAqB,OAAOzF,KAAKg4S,eAKjC,IAAA,SAAiBvyS,GAETzF,KAAKg4S,cADK,SAAVvyS,EACqB,OAEC,iBAAVA,GAAuC,iBAAVA,EACpB8sN,GAAqB9sN,EAA0BzF,KAAmB,eAGlE,IAO7B,CAAA,IAAA,QAAA,IAAA,WAKI,OAHoB,OAAhBA,KAAK+8L,SACL/8L,KAAKyF,MAAQzF,KAAK63S,MAEf73S,KAAK+8L,QAMhB,IAAA,SAAU7vL,GACN,GAAIA,IAAMlN,KAAK+8L,OAAQ,CAEnB,IAAIt3L,EAAQ8sN,GAAqBrlN,GAG7BlN,KAAK46S,kBACLn1S,EAAQ8f,WAAW9f,EAAMoV,QAAQ7a,KAAK46S,mBAE1C56S,KAAK+8L,OAASt3L,EACdzF,KAAKk4S,SAAWl4S,KAAK26S,qBAAqB36S,KAAK+8L,QAE/C/8L,KAAK4uQ,mBAAmB9yE,kBAOhC,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAO97L,KAAKkyO,WAK7B,IAAA,SAAazsO,GACTzF,KAAKkyO,UAAY5f,GAAsB7sN,KAM3C,CAAA,IAAA,eAAA,IAAA,WACI,OAAIzF,KAAK66S,YAGE76S,KAAK66S,YAA+B76S,KAAW,OAKtDA,KAAK46S,iBAAmB56S,KAAKyF,OAASzF,KAAKyF,MAAQ,GAAM,EAClDzF,KAAKyF,MAAMoV,QAAQ7a,KAAK46S,iBAE5B56S,KAAKyF,OAAS,IAOzB,CAAA,IAAA,UAAA,IAAA,WAcgB,OAAOzF,KAAKi6S,OAAOj6S,KAAKk4S,YAMxC,CAAA,IAAA,cAAA,IAAA,WAGI,OAAOl4S,KAAKy5S,UAAYz5S,KAAKmqF,OAASnqF,KAAKmqF,SAM/C,CAAA,IAAA,cAAA,IAAA,WACI,OAAwB,IAAjBnqF,KAAK2yF,UAOhB,CAAA,IAAA,YAAA,IAAA,WACI,OAAI3yF,KAAKwxM,SA9bU,EAicfxxM,KAAK86S,cAAgB96S,KAAK+6S,WACnB/6S,KAAKo4S,UAxbW,GALG,EA+bvB,IAMX,CAAA,IAAA,yBAAA,IAAA,WAEI,IAEM57R,EAAQxc,KAAKy5S,SAALz5S,MAAAA,OAAsB,EAAIA,KAAK2yF,QAA/B3yF,OAAAA,GAAAA,OAAiD,EAAIA,KAAK2yF,QAA1D3yF,UAGd,MAAO,CAEH6kB,UAAAA,YAAAA,OAPS7kB,KAAKy5S,SAAW,IAAM,IAO/B50R,KAAAA,OAHS7kB,KAAKk6S,2BAA6B,IAAM,IAGjDr1R,OAAsC7kB,KAAKg7S,UAA3Cn2R,gBAAAA,OAAmErI,EAAnEqI,QAOR,CAAA,IAAA,mBAAA,IAAA,WAEI,IAAM8tE,EAAU3yF,KAAK2yF,QAIfn2E,EAAQxc,KAAKy5S,SAALz5S,MAAAA,OAAsB2yF,EAAtB3yF,OAAAA,GAAAA,OAAwC2yF,EAAxC3yF,UAGd,MAAO,CAEH6kB,UAAAA,YAAAA,OAPS7kB,KAAKy5S,SAAW,IAAM,IAO/B50R,KAAAA,OAHS7kB,KAAKk6S,2BAA6B,GAAK,KAGhDr1R,OAAsC7kB,KAAKg7S,UAA3Cn2R,gBAAAA,OAAmErI,EAAnEqI,KAKA0Y,QAAqB,IAAZo1D,EAAgB,OAAS,MAO1C,CAAA,IAAA,wBAAA,IAAA,WASI,MAAO,CACH,UAAA,YAAA,OARO3yF,KAAKy5S,SAAW,IAAM,IAQ7B,KAAA,OAJQz5S,KAAKy5S,UAAoC,OAAxBz5S,KAAKw5S,gBAAgC,IAAL,IAIzD,OAFSx5S,KAAKq4S,qBAAuB,EAAI,IAEzC,SAOR,CAAA,IAAA,eAAA,IAAA,WAEI,IAoBQrvN,EApBJiyN,EAAuC,IAA5Bj7S,KAAKq4S,qBAahB1jR,EAAS,CACT,eAZiB30B,KAAKy5S,SAALz5S,OAAAA,OAAuBi7S,EAAvBj7S,KAAAA,GAAAA,OAAwCi7S,EAAxCj7S,SAcjB,UAAA,0BAAA,OAZOA,KAAKy5S,SAAW,IAAM,IAY7B,KAAA,OAPQz5S,KAAKy5S,UAAoC,OAAxBz5S,KAAKw5S,gBAAiC,GAAN,KAOzD,OAAsDyB,EAAW,EAAjE,MAAA,OALUj7S,KAAKy5S,UAAoC,OAAxBz5S,KAAKw5S,gBAA+C,GAApB,oBAkB/D,OAXIx5S,KAAK86S,aAAe96S,KAAKg7S,YAIrBhyN,EADAhpF,KAAKy5S,SACEz5S,KAAK05S,YAAc,SAAW,MAG9B15S,KAAK05S,YAAc,QAAU,OAExC/kR,EAAAA,UAAAA,OAAiBq0D,IAAjBr0D,GAAAA,OAA8B30B,KAAKg7S,UAAnCrmR,OAEGA,IAKX,CAAA,IAAA,wBAAA,IAAA,WASI,MAAO,CACH,UAAA,YAAA,OARO30B,KAAKy5S,SAAW,IAAM,IAQ7B,MAAA,OAF4D,MAFpB,OAAxBz5S,KAAKw5S,iBAA6Bx5S,KAAKy5S,SAAgCz5S,KAAK05S,aAAxB15S,KAAK05S,aAEhD15S,KAAK2yF,QAAU,EAAI3yF,KAAK2yF,SAEjD,WAQR,EAxfEwiN,CAAkBuC,KAy5Bd90K,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAKm7S,IAAW,GAAyB,IAAoB,GAAyB,IAAsB,GAAyB,IAA2B,GAAyB,GAAuB,GAAI,GAAyB,YAAa,GAAyBtsC,GAAuB,GAAI,GAAyB,IAAgB,GAAyB,GAAU,KACvbssC,GAAUjzK,UAAO,GAAyB,CAAE/2H,KAAMgqS,GAAWz2Q,UAAW,CAAC,CAAC,eAAgBqpG,UAAW,SAAyBwa,EAAInmI,GAG1H,IAAIy0P,EAHsI,EAALtuH,GACrI,GAAmB,IAAA,GACZ,EAALA,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIs+R,eAAiB7pC,EAAGx1G,QAC5E90B,UAAW,CAAC,OAAQ,SAAU,EAAG,aAAc,uBAAwBD,SAAU,GAAID,aAAc,SAAgCkc,EAAInmI,GAAgB,EAALmmI,GACnJ,GAAkB,SAAS,WAAgD,OAAOnmI,EAAIo8N,aAAtF,CAAqG,QAAQ,WAA+C,OAAOp8N,EAAIq8N,YAAvK,CAAqL,WAAW,SAA8C/nC,GAAU,OAAOt0L,EAAI8+R,WAAWxqG,KAA9Q,CAA0R,SAAS,WAAgD,OAAOt0L,EAAI++R,aAA9V,CAA6W,cAAc,WAAqD,OAAO/+R,EAAIw8R,kBAA3b,CAA+c,eAAe,SAAkDloG,GAAU,OAAOA,EAAOx0I,oBACjiB,EAALqmF,IACF,GAAsB,WAAYnmI,EAAIs4N,UACtC,GAAmB,gBAAiBt4N,EAAIo1L,SAAxC,CAAkD,gBAAiBp1L,EAAI3B,IAAvE,CAA4E,gBAAiB2B,EAAI5B,IAAjG,CAAsG,gBAAiB4B,EAAI3W,MAA3H,CAAkI,mBAAoB2W,EAAIq9R,SAAW,WAAa,cAClL,GAAmB,sBAAuBr9R,EAAIo1L,SAA9C,CAAwD,uBAAwBp1L,EAAIm+R,aAApF,CAAkG,yBAA0Bn+R,EAAIq9R,SAAhI,CAA0I,2BAA4Br9R,EAAIs9R,YAA1K,CAAuL,iCAAkCt9R,EAAI89R,2BAA7N,CAAyP,qBAAsB99R,EAAI+7R,WAAnR,CAA+R,iCAAkC/7R,EAAI2+R,WAArU,CAAiV,sBAAuB3+R,EAAIq9R,SAA5W,CAAsX,uBAAwBr9R,EAAI0+R,YAAlZ,CAA+Z,4BAA6B1+R,EAAIo1L,UAAYp1L,EAAI0+R,aAAe1+R,EAAI4+R,WAAa5+R,EAAIs9R,YAApf,CAAigB,0BAAkD,mBAAvBt9R,EAAIuxP,kBAC/hBlnI,OAAQ,CAAE+qE,SAAU,WAAYv2K,MAAO,QAASy5M,SAAU,WAAYvqJ,OAAQ,SAAU1vE,IAAK,MAAOD,IAAK,MAAO/U,MAAO,QAAS8pL,KAAM,OAAQwrH,WAAY,aAAcR,aAAc,eAAgBd,SAAU,WAAYoB,YAAa,eAAiBn0K,QAAS,CAAE93B,OAAQ,SAAU1zG,MAAO,QAAS+8S,YAAa,eAAiBtxK,SAAU,CAAC,aAAcrrH,SAAU,CAAC,GAA0B,CAACk8R,KAA6B,IAAoCxxK,MAAO,GAAIC,KAAM,EAAGE,OAAQ,CAAC,CAAC,EAAG,sBAAuB,CAAC,gBAAiB,IAAK,CAAC,EAAG,4BAA6B,CAAC,EAAG,8BAA+B,EAAG,WAAY,CAAC,EAAG,wBAAyB,EAAG,WAAY,CAAC,EAAG,6BAA8B,EAAG,WAAY,CAAC,EAAG,mBAAoB,EAAG,WAAY,CAAC,EAAG,6BAA8B,EAAG,WAAY,CAAC,EAAG,yBAA0B,CAAC,EAAG,oBAAqB,CAAC,EAAG,0BAA2B,CAAC,EAAG,gCAAiCD,SAAU,SAA4Bqc,EAAInmI,GAAgB,EAALmmI,IAC78B,GAAsB,EAAG,MAAO,EAAG,GACnC,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,MAAO,GAC3B,GAAiB,EAAG,MAAO,GAC3B,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,MAAO,GAC3B,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,MAAO,GAC3B,GAAiB,EAAG,MAAO,GAC3B,GAAsB,GAAI,MAAO,IACjC,GAAsB,GAAI,OAAQ,IAClC,GAAc,IACd,KACA,KACA,KACA,MACO,EAALA,IACF,GAAiB,GACjB,GAAkB,UAAWnmI,EAAIg/R,wBACjC,GAAiB,GACjB,GAAkB,UAAWh/R,EAAIi/R,kBACjC,GAAiB,GACjB,GAAkB,UAAWj/R,EAAIk/R,uBACjC,GAAiB,GACjB,GAAkB,UAAWl/R,EAAIm/R,cACjC,GAAiB,GACjB,GAAkB,UAAWn/R,EAAIo/R,uBACjC,GAAiB,GACjB,GAAyBp/R,EAAIq/R,gBAC5B93J,WAAY,CAAC,IAAiBhvH,OAAQ,CAAC,4tPAA+tPqzG,cAAe,EAAGJ,gBAAiB,IA5ClzPutK,IAsXA,SAAS,GAAathR,GAIlB,MAAyB,MAAlBA,EAAM1oB,KAAK,GAOtB,SAASstS,GAAyB5kR,GAG9B,IAAM1P,EAAQ,GAAa0P,GAAUA,EAAMgpC,QAAQ,IAAMhpC,EAAMK,eAAe,GAAML,EACpF,MAAO,CAAEr6B,EAAG2qB,EAAMgQ,QAAS16B,EAAG0qB,EAAMiQ,SAA7B,ICn3CEsnR,GCPAC,GCCAC,GCMAC,GCPAC,GLk4CPC,GMp2COC,GCTAC,GCVAC,GCbAC,GCEAC,GCAAC,GCSAC,GZi3CF,KAQLP,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEUv5K,UAAO,GAAwB,CAAEr3H,KAAM4wS,KACvDA,GAAgBp7K,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAK+hT,KAAuB97K,QAAS,CAAC,CAAC,GAAc,IAAkB,MADnL87K,IKp4CO,KAAMD,GAAN,WACH,SAAA,EAAoBhlC,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,KAAAA,EADjB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,YAAA,MAAA,SAGOrxQ,GACN,OAAOzF,KAAK82Q,KAAK98Q,EAAEyL,OAJpB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMq2S,IAAS,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,KAAA,QAAA,KAATA,GAAS,MAAA,IAAA,IDOf,KAAMD,GAAN,WAQH,SAAA,EACY5yS,EACAszS,EACA/nB,GAAAA,gBAAAA,KAAAA,GAFA,KAAAvrR,OAAAA,EACA,KAAAszS,WAAAA,EACA,KAAA/nB,UAAAA,EAVL,KAAAgoB,SAAW,IAAI,GAAuE,GAAvDx8S,KAAKiJ,OAAO4Z,IAAI,sCAC/C,KAAA45R,WAAa,IAAIlgG,GAAU,CAC9B38M,KAAM,IAAIq9M,GAAYj9M,KAAKiJ,OAAO4Z,IAAI,mCACtCyG,OAAQ,IAAI2zL,GAAYj9M,KAAKiJ,OAAO4Z,IAAI,qCACxC0G,QAAS,IAAI0zL,GAAYj9M,KAAKiJ,OAAO4Z,IAAI,wCAL1C,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAcH,IAAA,EAAA,KACI7iB,KAAKy8S,WAAW55R,IAAI,UAAUgvL,aAAatxM,WAAUkF,SAAAA,GACnC,SAAVA,EACAzF,EAAKy8S,WAAW55R,IAAI,WAAW04L,UAE/Bv7M,EAAKy8S,WAAW55R,IAAI,WAAWkpG,YAIvC/rH,KAAKy8S,WAAW55R,IAAI,WAAWgvL,aAAatxM,WAAUkF,SAAAA,GAClDzF,EAAKw8S,SAASt0S,KAAa,GAARzC,QAxBxB,CAAA,IAAA,SAAA,MAAA,WA6BC,IAAMotG,EAAM7yG,KAAKy8S,WAAWh3S,MAC5BzF,KAAKu8S,WAALv8S,OAAuB6yG,EAAIjzG,KAAMizG,EAAIvpF,OAAQupF,EAAItpF,SACjDvpB,KAAKw0R,UAAU32D,YA/BhB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMg+E,IAAoB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAApBA,GAAoB,UAAA,CAAA,CAAA,iBAAA,MAAA,GAAA,KAAA,EAAA,OAAA,CAAA,CAAA,mBAAA,GAAA,EAAA,YAAA,YAAA,CAAA,EAAA,kBAAA,wBAAA,CAAA,MAAA,OAAA,QAAA,IAAA,CAAA,OAAA,OAAA,KAAA,OAAA,kBAAA,OAAA,WAAA,IAAA,CAAA,kBAAA,SAAA,WAAA,IAAA,CAAA,QAAA,QAAA,CAAA,QAAA,OAAA,CAAA,QAAA,QAAA,CAAA,EAAA,mBAAA,CAAA,MAAA,UAAA,EAAA,gBAAA,CAAA,kBAAA,UAAA,KAAA,UAAA,MAAA,MAAA,MAAA,IAAA,OAAA,MAAA,WAAA,IAAA,CAAA,oBAAA,GAAA,QAAA,SAAA,QAAA,GAAA,EAAA,gBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ISdjC,GAAA,EAAA,OAAA,GAAM,GAAA,YAAA,WAAA,OAAY,EAAA,YACd,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,QAAA,GAAwB,GAAA,EAAA,aAAS,KACjC,GAAA,EAAA,QAAA,GACJ,KAEA,GAAA,EAAA,kBAAA,GACI,GAAA,EAAA,mBAAA,GAA+B,GAAA,EAAA,QAAI,KACnC,GAAA,EAAA,mBAAA,GAA8B,GAAA,EAAA,OAAG,KACjC,GAAA,GAAA,mBAAA,GAA+B,GAAA,GAAA,QAAI,KACvC,KAEA,GAAA,GAAA,MAAA,GACI,GAAA,GAAA,QAAA,GAA0C,GAAA,IAblD,GAAA,GAAA,SAAA,GAAA,GAAA,SAagG,KACxF,GAAA,GAAA,aAAA,IACJ,KAEA,GAAA,GAAA,SAAA,IAAmE,GAAA,GAAA,QAAI,KAC3E,MTJiC,EAAA,ISdL,GAAA,YAAA,EAAA,YAasB,GAAA,IAAA,GAAA,GAAA,GAAA,GAAA,EAAA,WAAA,KAAA,GAAA,GAAA,EAAA,EAAA,UAAA,OAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,GAAA,IAAA,OAAA,CAAA,gjBAAA,cAAA,EAAA,gBAAA,IAAA,IVL3C,KAAMD,GAAN,WAEL,SAAA,IAAA,gBAAA,KAAA,GAFK,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,gBAAA,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,KAAAA,GAA0B,UAAA,CAAA,CAAA,wBAAA,MAAA,EAAA,KAAA,EAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IWRvC,GAAA,EAAA,KAAG,GAAA,EAAA,8BAA0B,OAAA,OAAA,CAAA,IAAA,cAAA,IAAA,IZOtB,KAAMD,GAAN,WACH,SAAA,EAAoB/M,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,OAAAA,EADjB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAGYxmJ,GAAiF,IAApDjsJ,EAAoD,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAArC,GAAI8M,EAAiC,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAc5F,OAbO9M,IAAMA,EAAO,IAEE,iBAAX8M,IACPA,EAAS,CAACi1N,WAAYj1N,IAEnBxC,MAAMqQ,QAAQ7N,EAAOi1N,cACxBj1N,EAAOi1N,WAAa,CAACj1N,EAAOi1N,kBAAAA,IAErBj1N,EAAOsiS,eACdtiS,EAAOsiS,cAAAA,GAEXtiS,EAAOi1N,WAAWx9N,KAAK,YAEhBV,KAAK4uS,OAAO3sS,KAAKmmJ,EAAW,OAAF,OAAA,OAAA,OAAA,GAAMn/I,GAAM,CAAE9M,KAAAA,OAjBhD,CAAA,IAAA,OAAA,MAAA,SAoBYisJ,GAA4C,IAAfjsJ,EAAe,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACvD,OAAO6D,KAAKiC,KAAKmmJ,EAAWjsJ,KArB7B,CAAA,IAAA,gBAAA,MAAA,WAyBC,OAAO6D,KAAK4uS,OAAOT,YAAYnzS,OAAS,IAzBzC,CAAA,IAAA,WAAA,MAAA,WA6BCgF,KAAK4uS,OAAO8N,eA7Bb,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMf,IAAK,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAALA,GAAK,QAALA,GAAK,UAAA,WAFF,SAAA,IDST,KAAMD,GAAN,WAKH,SAAA,EACY3mB,EACAliK,EACA8pL,EACAvqC,EACAw8B,GAAAA,gBAAAA,KAAAA,GAJA,KAAA7Z,aAAAA,EACA,KAAAliK,MAAAA,EACA,KAAA8pL,sBAAAA,EACA,KAAAvqC,YAAAA,EACA,KAAAw8B,OAAAA,EAVT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,uBAAA,MAAA,WAcC5uS,KAAK28S,sBAAsB16S,SAd5B,CAAA,IAAA,kBAAA,MAAA,WAkBCjC,KAAK4uS,OAAO3sS,KAAK,GAAsB,KAAM,CAACi8N,WAAY,oCAlB3D,CAAA,IAAA,gBAAA,MAAA,WAsBCl+N,KAAKwsL,WAAW,WAEZxsL,KAAK48S,YAAY,WACjB58S,KAAK68S,gBAAgBh/E,QAErB79N,KAAK88S,qBA3BV,CAAA,IAAA,gBAAA,MAAA,WAgCC98S,KAAKwsL,WAAW,WAEZxsL,KAAK48S,YAAY,WACjB58S,KAAK+8S,gBAAgBl/E,QAErB79N,KAAKg9S,qBArCV,CAAA,IAAA,mBAAA,MAAA,WA0CCh9S,KAAK68S,gBAAkB78S,KAAK+0R,aAAa9yR,KACrC,GACAjC,KAAKi9S,oBA5CV,CAAA,IAAA,mBAAA,MAAA,WAiDCj9S,KAAK+8S,gBAAkB/8S,KAAK+0R,aAAa9yR,KACrC,GACAjC,KAAKi9S,oBAnDV,CAAA,IAAA,aAAA,MAAA,SAuDer9S,GACd,OAAQA,GACJ,IAAK,UACDI,KAAK68S,iBAAmB78S,KAAK68S,gBAAgBh/E,QAC7C,MACJ,IAAK,UACD79N,KAAK+8S,iBAAmB/8S,KAAK+8S,gBAAgBl/E,WA7DtD,CAAA,IAAA,cAAA,MAAA,SAkEgBj+N,GACf,IAAMy7N,EAAgB,YAATz7N,EAAqBI,KAAK68S,gBAAkB78S,KAAK+8S,gBAC9D,OAAO1hF,GAAOA,EAAI6hF,WApEnB,CAAA,IAAA,iBAAA,MAAA,WAwEC,MAAO,CACH/+E,aAAAA,EACAqC,iBAAkBxgO,KAAKm0R,sBACvBj2D,WAAY,CAAC,2BAA4Bl+N,KAAKoyQ,YAAY6R,UAAUx+Q,MAAQ,YAAc,SA3E/F,CAAA,IAAA,sBAAA,MAAA,WAgFC,OAAIzF,KAAKoyQ,YAAY6R,UAAUx+Q,MACpBzF,KAAK+0R,aAAaryO,QAAQ77B,WAC5BonN,oBAAoB,IAAI3jE,GAAWtqK,KAAK6yH,MAAM70E,YAC9CssL,cAAc,CAAC,CAAC9L,SAAU,SAAUC,SAAU,SAAUn1K,QAAS,SAAUC,QAAS,YAGtFvpD,KAAK+0R,aAAaryO,QAAQ77B,WAC5BonN,oBAAoB,IAAI3jE,GAAWtqK,KAAK6yH,MAAM70E,YAC9CssL,cAAc,CAAC,CACZ9L,SAAU,MACVC,SAAU,SACVn1K,QAAS,MACTC,QAAS,SACTzS,SAAU,GACVD,SAAU,QA9FnB,CAAA,IAAA,qBAAA,MAAA,WAmGQ72C,KAAKm9S,sBAGRn9S,KAAKm9S,qBAAqBt/E,QAC1B79N,KAAKm9S,qBAAuB,MAH5Bn9S,KAAKm9S,qBAAuBn9S,KAAK+0R,aAAa9yR,KAAK,GAA4B,QApGpF,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMy5S,IAAqB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAArBA,GAAqB,QAArBA,GAAqB,YAAA,IAA3B,GAAA,EAAA,QAAA,GAAA,EAAA,EAAA,IQTA,KAAMS,GAAN,WAEH,SAAA,IAAA,gBAAA,KAAA,GAFG,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAKQv8S,GACP,IACM8D,EADiB1D,KAAKo9S,gBAAgBx9S,GACL6B,KAAKhE,SAASk4L,QACrD,OAAOjyL,GAAUA,EAAO,KARzB,CAAA,IAAA,MAAA,MAAA,SAWQ9D,EAAc6F,GAAuC,IAAjB43S,EAAiB,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACtDC,EAAS,IAAIpxS,KACnBoxS,EAAOC,QAAQD,EAAOE,UAAYH,GAClC5/S,SAASk4L,OAATl4L,GAAAA,OAAqBmC,EAArBnC,KAAAA,OAA6BgI,EAA7BhI,cAAAA,OAA+C6/S,EAAOG,cAAtDhgT,eAdD,CAAA,IAAA,kBAAA,MAAA,SAiBqBmC,GACpB,IAAM89S,EAAsB99S,EAAKiM,QAAS,yCAA0C,QACpF,OAAO,IAAIoK,OAAQ,OAASynS,EAAc,SAAWA,EAAc,iBAAkB,SAnBtF,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMvB,KAAAA,GAAAA,WAAAA,GAAAA,CAAAA,MAAAA,GAAa,QAAbA,GAAa,UAAA,WAFV,SAAA,IDeT,KAAMD,GAAN,WAKH,SAAA,EAAoBvmH,EAA+ByuB,GAAAA,gBAAAA,KAAAA,GAA/B,KAAAzuB,OAAAA,EAA+B,KAAAyuB,SAAAA,EAJ5C,KAAAu5F,eAAiB,IAAI,GAA0B,MAKlD39S,KAAK49S,OAASngT,SAASsP,gBANxB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SASmB8wS,GAClB79S,KAAK89S,iBAAmBD,GAAU,GAClC79S,KAAKitM,OAAOjtM,KAAK+9S,uBAXlB,CAAA,IAAA,SAAA,MAAA,SAcWn+S,GAAAA,IAAAA,EAAAA,KACJoqQ,EAAQhqQ,KAAK89S,iBAAiBl+S,GAC7BoqQ,IACPhqQ,KAAK29S,eAAez1S,KAAK8hQ,GACzBhqQ,KAAKg+S,kBAAkBp+S,GACnBoqQ,EAAMi0C,SACNj+S,KAAK49S,OAAOx4I,UAAUrvJ,OAAO,iBAC7B/V,KAAK49S,OAAOx4I,UAAUr9J,IAAI,kBAE1B/H,KAAK49S,OAAOx4I,UAAUrvJ,OAAO,gBAC7B/V,KAAK49S,OAAOx4I,UAAUr9J,IAAI,kBAE9BhC,OAAOu+M,QAAQ0lD,EAAMk0C,QAAQvmS,SAAQ,SAAA,GAAOlS,IAAAA,EAAAA,eAAAA,EAAAA,GAALvJ,EAAKuJ,EAAAA,GAAAA,EAAAA,EAAAA,GACxCzF,EAAK49S,OAAOpxS,MAAMglI,YAAYt1I,EAAKuJ,SA3BxC,CAAA,IAAA,SAAA,MAAA,WAiCKzF,KAAKitM,OADLjtM,KAAK29S,eAAel4S,MAAMw4S,QACd,QAEA,UAnCjB,CAAA,IAAA,aAAA,MAAA,WAwCC,OAAOj+S,KAAK29S,eAAel4S,OAASzF,KAAK29S,eAAel4S,MAAMw4S,UAxC/D,CAAA,IAAA,YAAA,MAAA,SA2Cc5oR,GACbr1B,KAAK49S,OAASvoR,IA5Cf,CAAA,IAAA,oBAAA,MAAA,WAgDC,IAAM8oR,EAAcn+S,KAAKokN,SAASvhM,IAAI,sBAAuB,SAC7D,OAAI7iB,KAAKokN,SAASvhM,IAAI,uBACX7iB,KAAK21L,OAAO9yK,IAAI7iB,KAAKo+S,eAErBD,IApDZ,CAAA,IAAA,oBAAA,MAAA,SAwDuBv+S,GACtBI,KAAK21L,OAAO3zK,IAAIhiB,KAAKo+S,aAAcx+S,EAAM,MAzD1C,CAAA,IAAA,aAAA,MAAA,WA6DC,OO7ED,SAAuBkU,GAA0C,IAA5B8B,EAA4B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAd,IAAKO,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACpE,IAAOrC,EAAM,OAAOA,EACpB,IAAIuqS,EAAY,IAAA,CAAQvqS,EAAM,CAC1BoC,OAAAA,EACAN,YAAAA,EACAO,OAAQA,EACRJ,OAAQ,qBAOZ,OAHOsoS,IACHA,EAAYvqS,EAAKjI,QAAQ,OAAQ,KAAK6C,eAEnC2vS,EAbJ,CP6EsBr+S,KAAKokN,SAASvhM,IAAI,uBAAyB,aA7DjE,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMq5R,IAAY,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAZA,GAAY,QAAZA,GAAY,UAAA,WAFT,SAAA,IDYT,KAAMD,GAAN,WACH,SAAA,EACY3+B,EACAiB,EACAqD,EACA08B,EACAC,EACAhlC,EACAmJ,EACArJ,EACAmlC,EACAjC,EACAnpB,EACAl3Q,EACAukQ,EACAj/J,EACApjE,EACAqgQ,EACAjiG,EACAklE,EACAD,EACAi9B,EACAlvS,EACAmvS,EACAlqR,EACAyiP,EACA2mC,GAAAA,gBAAAA,KAAAA,GAxBA,KAAAvgC,WAAAA,EACA,KAAAiB,WAAAA,EACA,KAAAqD,SAAAA,EACA,KAAA08B,cAAAA,EACA,KAAAC,SAAAA,EACA,KAAAhlC,SAAAA,EACA,KAAAmJ,WAAAA,EACA,KAAArJ,UAAAA,EACA,KAAAmlC,WAAAA,EACA,KAAAjC,WAAAA,EACA,KAAAnpB,WAAAA,EACA,KAAAl3Q,OAAAA,EACA,KAAAukQ,UAAAA,EACA,KAAAj/J,QAAAA,EACA,KAAApjE,aAAAA,EACA,KAAAqgQ,WAAAA,EACA,KAAAjiG,SAAAA,EACA,KAAAklE,SAAAA,EACA,KAAAD,UAAAA,EACA,KAAAi9B,SAAAA,EACA,KAAAlvS,MAAAA,EACA,KAAAmvS,eAAAA,EACA,KAAAlqR,KAAAA,EACA,KAAAyiP,MAAAA,EACA,KAAA2mC,OAAAA,EA1BT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SA6BQj+S,GACP,MAAa,WAATA,EACOI,KAAKkc,OAELlc,KAAKJ,IAASI,KAAKJ,EAAO,YAjCtC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMq8S,IAAY,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAZA,GAAY,QAAZA,GAAY,YAAA,IDSlB,KAAMD,GAAN,WACH,SAAA,EACc5oB,EACAl3Q,EACAslG,EACAqO,EACA+uL,EACA1nC,EACA2nC,EACAz6F,EACAkzD,EACAjtF,EACAwzH,GAAAA,gBAAAA,KAAAA,GAVA,KAAAzqB,WAAAA,EACA,KAAAl3Q,OAAAA,EACA,KAAAslG,QAAAA,EACA,KAAAqO,MAAAA,EACA,KAAA+uL,qBAAAA,EACA,KAAA1nC,MAAAA,EACA,KAAA2nC,eAAAA,EACA,KAAAz6F,SAAAA,EACA,KAAAkzD,WAAAA,EACA,KAAAjtF,MAAAA,EACA,KAAAwzH,OAAAA,EAZX,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,sBAAA,MAAA,SAkBwB1hT,GAAsD,IAAA,EAAA,KAAvB2iT,IAAuB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAC7E9+S,KAAKwoR,SAASrsR,EAAM,MAAO2iT,GAAapvS,MAAK,WAAA,OAAM1P,EAAKiC,YAnBzD,CAAA,IAAA,gBAAA,MAAA,SAyBkB9F,GACjB6D,KAAKwoR,SAASrsR,EAAM,OAAA,KA1BrB,CAAA,IAAA,WAAA,MAAA,SA6BaA,GAAiF,IAAlD0pR,EAAkD,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAA9B,MAAOi5B,EAAuB,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAC7F,OAAOA,EACH9+S,KAAKozR,WAAW7K,oBAAoBpsR,GACpC6D,KAAKozR,WAAW5K,SAASrsR,EAAM0pR,KAhCpC,CAAA,IAAA,YAAA,MAAA,SAmCcnpQ,EAAeH,GAC5B,OAAOvc,KAAKkc,OAAO03Q,QAAQl3Q,EAAOH,KApCnC,CAAA,IAAA,YAAA,MAAA,SA0CcwiS,GAAAA,IAAAA,EAAAA,KASb,OARA/+S,KAAKkc,OAAO22G,MAAM4yF,qBAAqBv9M,KAAK,CAACtI,KAAM,QAAS22B,SAAAA,KAElC,iBAAfwoR,IAA4BA,EAAWlsH,SAAS,UAAYksH,EAAWjsH,WAAW,SAC/E9yL,KAAKozR,WAAWO,iBAAiBorB,GAEjC/+S,KAAKozR,WAAWxK,UAAUm2B,IAGzBrvS,MAAK,WAChB1P,EAAKkc,OAAO22G,MAAM4yF,qBAAqBv9M,KAAK,CAACtI,KAAM,QAAS22B,SAAAA,SApDjE,CAAA,IAAA,mBAAA,MAAA,SAwDqBz3B,GACpBkB,KAAKozR,WAAWO,iBAAiB70R,KAzDlC,CAAA,IAAA,WAAA,MAAA,SA+Dag7Q,GACZ,OAAO5zQ,KAAKC,UAAUnG,KAAKwhH,QAAQ04J,sBAAsBJ,MAhE1D,CAAA,IAAA,OAAA,MAAA,SAuES7wQ,GAAAA,IAAAA,EAAAA,KACJA,GACAjJ,KAAKg/S,UAAU/1S,GAGnBjJ,KAAK6vH,MAAMi+D,SAAS,IAAI9B,IAAc3nL,KAAK,GAAM,EAAG2uN,KAA0BzyN,WAAU,WACpFP,EAAKkc,OAAOuY,KAAKs0L,cACjB/oN,EAAKwhH,QAAQg4J,aACTx5Q,EAAKkc,OAAO22G,MAAMrxG,WAAaxhB,EAAKokN,SAASvhM,IAAI,kCACjD7iB,EAAK4+S,qBAAqB38S,YAhFnC,CAAA,IAAA,QAAA,MAAA,WAyFC,OAAOjC,KAAK6vH,MAAMi+D,SAAS,IAAI7B,MAzFhC,CAAA,IAAA,eAAA,MAAA,SAgGiBG,GAChBA,EAAQA,GAASpsL,KAAK6vH,MAAM6pJ,eAAe,GAAYe,cAAgB/yF,GAAW8yF,gBAClFx6Q,KAAK6vH,MAAMi+D,SAAS,IAAIvB,GAAaH,MAlGtC,CAAA,IAAA,gBAAA,MAAA,SAyGkBA,GACjBA,EAAQA,GAASpsL,KAAK6vH,MAAM6pJ,eAAe,GAAYe,cAAgB/yF,GAAW8yF,gBAClFx6Q,KAAK6vH,MAAMi+D,SAAS,IAAIrB,GAAcL,MA3GvC,CAAA,IAAA,YAAA,MAAA,SAkHcxsL,GACbI,KAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUvsL,MAnHnC,CAAA,IAAA,KAAA,MAAA,SA0HOi0B,EAAenvB,GACrB,OAAO1E,KAAKkc,OAAOnB,SAASsF,GAAGwT,EAAOnvB,KA3HvC,CAAA,IAAA,UAAA,MAAA,WAmIC,OAAO1E,KAAK6vH,MAAM6pJ,eAAe,GAAYl1M,SAnI9C,CAAA,IAAA,UAAA,MAAA,SAyIY5kE,GACX,OAAOI,KAAKqqL,MAAMxnK,IAAIjjB,KA1IvB,CAAA,IAAA,MAAA,MAAA,SAgJQA,GACP,OAAOI,KAAKi/S,QAAQr/S,KAjJrB,CAAA,IAAA,sBAAA,MAAA,WAwJC,OAAOI,KAAK6vH,MAAM6pJ,eAAe,GAAY+K,eAxJ9C,CAAA,IAAA,SAAA,MAAA,SA8JWrlR,EAAiB6J,GAC3B,OAAOjJ,KAAKk3Q,MAAMj1Q,KAAK7C,EAAS6J,KA/JjC,CAAA,IAAA,cAAA,MAAA,SAsKgB/M,EAAyBuJ,GAAAA,IAAAA,EAAAA,KACxC,OAAO,IAAI8J,SAAQwJ,SAAAA,GAEf/Y,EAAKozR,WAAWtK,cAGZ5sR,GAAK8D,EAAKg/S,UAAU9iT,EAAKuJ,GAE7BzF,EAAK6vH,MAAMi+D,SAAS,CAChB,IAAIxB,KAIRtsL,EAAKk/S,qBAAqBxvS,MAAK,WAC3B1P,EAAK6+S,eAAeM,oBAChBjjT,GACA8D,EAAKwhH,QAAQg4J,aAEjBzgQ,YAxLT,CAAA,IAAA,qBAAA,MAAA,SAgMuB7c,EAAyBuJ,GAAAA,IAAAA,EAAAA,KAC/C,OAAOzF,KAAK8oR,YAAY5sR,EAAKuJ,GAAOiK,MAAK,WAAA,OAAM1P,EAAKiC,YAjMrD,CAAA,IAAA,YAAA,MAAA,SAwMc/F,EAAyBuJ,GAEtC,GAAmB,iBAARvJ,QAAAA,IAA2BuJ,EAAuB,CACzD,IAAM25S,EAAcljT,EAAI0F,QAAQ,WAAa,EAAI1F,EAAM,SAAWA,EAClE8D,KAAKokN,SAASpiM,IAAIo9R,EAAa35S,QAG5B,GAAmB,iBAARvJ,EAAkB,CAChC,IAAM+M,EAAS,CAACo2S,MAAOnjT,GAEnB+M,EAAOo2S,MAAqB,eAC5Br/S,KAAKokN,SAASpiM,IAAI,wBAAyB/Y,EAAOo2S,MAAqB,eAE3Er/S,KAAKokN,SAAS7vG,MAAMtrG,MArNzB,CAAA,IAAA,mBAAA,MAAA,SA4NqB/M,GACpB,OAAO,GAAA,KAASA,EAAK,MA7NtB,CAAA,IAAA,OAAA,MAAA,WAoOC,OAAO8D,KAAKs3Q,aApOb,CAAA,IAAA,qBAAA,MAAA,WA0OI,IAC2C77I,EAD3C,EAAA,KACCl/E,EAAQv8C,KAAKokN,SAASvhM,IAAI,eAC1B05B,aAAiBosO,mBAAkBpsO,EAAQA,EAAM5uC,KACrD,IAAM8T,EAAOzhB,KAAKokN,SAASvhM,IAAI,yBAC3BgwG,EAAQ7yH,KAAKokN,SAASvhM,IAAI,eAY9B,OAXI05B,EAEIk/E,EADAl/E,EAAMs2I,SAAS,UAAYt2I,EAAMu2I,WAAW,YAClC9yL,KAAK4oR,UAAUrsO,GAEfv8C,KAAKkc,OAAOslQ,cAAcjlO,GAEjCs2E,EACP4I,EAAUz7H,KAAK4oR,UAAU/1J,GAClBpxG,IACPg6G,EAAUz7H,KAAKkc,OAAO03Q,QAAQnyQ,EAAK/E,MAAO+E,EAAKlF,UAE3Ck/G,GAAWlsH,QAAQwJ,WAAWrJ,MAAK,WACvC1P,EAAKkc,OAAO22G,MAAMpwD,OAAOv6D,MAAAA,GACrBlI,EAAKkc,OAAO22G,MAAMrxG,WAAaxhB,EAAKokN,SAASvhM,IAAI,kCACjD7iB,EAAK4+S,qBAAqB38S,aA7PnC,CAAA,CAAA,IAAA,cAAA,MAAA,SAqQuBi0Q,GACtB,IAAMopC,EAAS,IAAA,CAAM,GAAgBppC,GAAc,IACnD,OAAO8lC,EAAmBuD,0BAA0BD,EAAQppC,KAvQ7D,CAAA,IAAA,4BAAA,MAAA,SA8QqCjtQ,EAAgBitQ,GACpD,IAAK,IAAMh6Q,KAAO+M,EACd,GAAI/M,EAAI42L,WAAW,mBAAqB7pL,EAAO/M,GAAM,CAEjD,IAAMsjT,GUvTK7iT,EVuTsBT,EAAI2P,QAAQ,iBAAkB,KAAO,SUrT1ElP,EAAOhB,OAAO,GAAG+S,cAAgB/R,EAAOW,MAAM,GADhC,GVuTV2L,EAAOu2S,GAAgBtpC,EAAaA,EAAWspC,GAAgB,OACjC,iBAAhBv2S,EAAO/M,IACrB8/S,EAAmBuD,0BAA0Bt2S,EAAO/M,GAAMg6Q,GAAcA,EAAWh6Q,IU1T5F,IAAoBS,EV8TnB,OAAOsM,MAzRR,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM+yS,IAAkB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAlBA,GAAkB,QAAlBA,GAAkB,UAAA,WAFf,SAAA,IWxBVyD,GAAAA,WACF,SAAA,EAAYC,GAAAA,gBAAAA,KAAAA,GACR1/S,KAAK0/S,sBAAwBA,EAGoCA,OADrE,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKv3S,EAAY/F,GACb,OAAOA,EAAO7B,UAAU,IAAI,GAAoB4H,EAAYnI,KAAK0/S,4BAAAA,EALnED,GAQA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACF,SAAA,EAAY53S,EAAa63S,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACrBtlL,EAAAA,EAAAA,KAAAA,KAAMvyH,IACD63S,sBAAwBA,EAC7B1/S,EAAKm9L,WAAAA,EACLn9L,EAAK2/S,2BAA6B,GAClC3/S,EAAKihB,MAAQ,EALQy+R,EAyDAn4S,OAlDzB,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAAWwzH,EAAYgB,EAAYf,EAAYgB,EAAYC,GACvDj8H,KAAK6H,YAAYK,KAAK6yH,GACtB/6H,KAAK4/S,mBAAmB3jL,GACxBj8H,KAAK6/S,gBAET,CAAA,IAAA,cAAA,MAAA,SAAY1gT,EAAO88H,GACfj8H,KAAKqI,OAAOlJ,KAEhB,CAAA,IAAA,iBAAA,MAAA,SAAe88H,GACX,IAAMx2H,EAAQzF,KAAK4/S,mBAAmB3jL,GAClCx2H,GACAzF,KAAK6H,YAAYK,KAAKzC,GAE1BzF,KAAK6/S,gBAET,CAAA,IAAA,QAAA,MAAA,SAAMp6S,GACF,IAAMwb,EAAQjhB,KAAKihB,QACnB,IACI,IAAM6+R,EAAgB9/S,KAAK0/S,sBAAsBj6S,EAAOwb,GACpD6+R,GACA9/S,KAAK+/S,SAASD,EAAer6S,GAGrC,MAAOK,GACH9F,KAAK6H,YAAY1I,MAAM2G,MAG/B,CAAA,IAAA,YAAA,MAAA,WACI9F,KAAKm9L,WAAAA,EACLn9L,KAAK6/S,cACL7/S,KAAKW,gBAET,CAAA,IAAA,qBAAA,MAAA,SAAmBsY,GACfA,EAAatY,cACb,IAAMq/S,EAAkBhgT,KAAK2/S,2BAA2B/9S,QAAQqX,GAIhE,OAHyB,IAArB+mS,GACAhgT,KAAK2/S,2BAA2B/+S,OAAOo/S,EAAiB,GAErD/mS,EAAa8hH,aAExB,CAAA,IAAA,WAAA,MAAA,SAAS+kL,EAAer6S,GACpB,IAAMi5L,EAAuB9iE,EAAkB57H,KAAM8/S,EAAer6S,GAChEi5L,IAAyBA,EAAqBn2L,SAC1BvI,KAAK6H,YACbE,IAAI22L,GAChB1+L,KAAK2/S,2BAA2Bj/S,KAAKg+L,MAG7C,CAAA,IAAA,cAAA,MAAA,WACQ1+L,KAAKm9L,WAAwD,IAA3Cn9L,KAAK2/S,2BAA2B3kT,QAClDgF,KAAK6H,YAAYN,eAAAA,EA1DvB,CAA4B,GCnBtB04S,GAAZ,SAAYA,GAAAA,OACR,EAAA,EAAA,MAAA,IAAA,QACA,EAAA,EAAA,MAAA,IAAA,QACA,EAAA,EAAA,OAAA,IAAA,SACA,EAAA,EAAA,OAAA,IAAA,SACA,EAAA,EAAA,SAAA,IAAA,WACA,EAAA,EAAA,YAAA,IAAA,cACA,EAAA,EAAA,WAAA,IAAA,aACA,EAAA,EAAA,WAAA,IAAA,aACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IACA,EAAA,EAAA,EAAA,IAAA,IApBQA,EAAZ,CAqBC,INLM,KAAM3D,GAAN,WAHP,SAAA,IAAA,gBAAA,KAAA,GAIY,KAAAl4I,SAAW,GADhB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,MAAA,MAAA,SAGQ87I,EAAiBx7S,GACxB1E,KAAKokK,SAAS1jK,KAAK,CAACw/S,QAASlgT,KAAKmgT,mBAAmBD,GAAUE,cAAeF,EAASx7S,SAAAA,MAJxF,CAAA,IAAA,wBAAA,MAAA,SAO0Bw7S,EAAiBx7S,GAC1C1E,KAAKokK,SAAS1jK,KAAK,CAACw/S,QAASlgT,KAAKmgT,mBAAmBD,GAAUE,cAAeF,EAASx7S,SAAAA,EAAUw3D,gBAAAA,MARlG,CAAA,IAAA,WAAA,MAAA,SAWa7mC,GAAAA,IAAAA,EAAAA,KACZ,OAAOw9L,GAAUx9L,EAAI,WAAW90B,WAAWkD,SAAAA,GACvCzD,EAAKqgT,gBAAgB58S,QAb1B,CAAA,IAAA,kBAAA,MAAA,SAiBqBA,GAAAA,IAAAA,EAAAA,KACpBzD,KAAKokK,SAASzsJ,SAAQ2oS,SAAAA,GACXtgT,EAAKugT,eAAeD,EAAQJ,QAASz8S,KACxC68S,EAAQpkP,gBAAkBz4D,EAAEy4D,gBAAgBz4D,EAAEy4D,iBAClDokP,EAAQ57S,SAASjB,SArBtB,CAAA,IAAA,iBAAA,MAAA,SAyBoBy8S,EAAwBz8S,GAC3C,OAAOw8S,GAASC,EAAQhkT,IAAIgqB,iBAAmBziB,EAAEsoG,SAAWtoG,EAAEuoG,UAAYk0M,EAAQlkG,MAAQv4M,EAAEqtD,WAAaovP,EAAQ7sR,QA1BlH,CAAA,IAAA,qBAAA,MAAA,SAgCwB6sR,GACvB,IAAMl/S,EAAQk/S,EAAQlqS,OAAOxU,MAAM,KAC7Bs8B,EAAS,CAACk+K,MAAAA,EAAa3oL,OAAAA,EAAcn3B,IAAK,IAchD,OAZA8E,EAAM2W,SAAQu7F,SAAAA,GAGG,UAFbA,EAAOA,EAAKl9F,OAAOtH,eAGfovB,EAAOk+K,MAAAA,EACS,UAAT9oG,EACPp1E,EAAOzK,OAAAA,EAEPyK,EAAO5hC,IAAMg3G,KAIdp1E,MAhDR,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMw+Q,KAAAA,GAAAA,WAAAA,GAAAA,CAAAA,MAAAA,GAAQ,QAARA,GAAQ,UAAA,WAFL,SAAA,IDPT,KAAMD,GAAN,WACH,SAAA,EACYxpL,EACA2tL,EACApiQ,GAAAA,gBAAAA,KAAAA,GAFA,KAAAy0E,MAAAA,EACA,KAAA2tL,SAAAA,EACA,KAAApiQ,aAAAA,EAJT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,WAOH,IAAA,EAAA,KACIp+C,KAAK6yH,MAAMpwD,OACRp+D,KAAKu5L,GAAK,IACVr9L,WAAU,WACTP,EAAKwgT,SAASC,SAAShjT,UAEvBuC,EAAKwgT,SAASz4S,IAAI,YAAYtE,SAAAA,GAC1BzD,EAAK0gT,oBAAoBj9S,GACzBzD,EAAKo+C,aAAak2D,KAAK,OAAQ,MAGnCt0G,EAAKwgT,SAASz4S,IAAI,eAAetE,SAAAA,GAC7BzD,EAAK0gT,oBAAoBj9S,GACzBzD,EAAKo+C,aAAak2D,KAAK,OAAQ,MAGnCt0G,EAAKwgT,SAASz4S,IAAI,cAActE,SAAAA,GAC5BzD,EAAK0gT,oBAAoBj9S,GACzBzD,EAAKo+C,aAAak2D,KAAK,MAAO,MAGlCt0G,EAAKwgT,SAASz4S,IAAI,cAActE,SAAAA,GAC5BzD,EAAK0gT,oBAAoBj9S,GACzBzD,EAAKo+C,aAAak2D,KAAK,QAAS,MAGpCt0G,EAAKwgT,SAASz4S,IAAI,UAAUtE,SAAAA,GACxBzD,EAAK0gT,oBAAoBj9S,GACrBzD,EAAKo+C,aAAa6X,aACtBj2D,EAAKo+C,aAALp+C,iBApCT,CAAA,IAAA,sBAAA,MAAA,SAyCyByD,GACjBA,EAAEy4D,gBAC4C,iBAAjDz+D,SAASoxR,cAAc/gR,QAAQY,eAC/BjL,EAAEy4D,qBA5CP,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMmgP,IAAqB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAArBA,GAAqB,QAArBA,GAAqB,YAAA,IDA3B,KAAMD,GAAN,WAIH,SAAA,EACYuE,EACAtrR,EACApsB,GAAAA,gBAAAA,KAAAA,GAFA,KAAA03S,aAAAA,EACA,KAAAtrR,GAAAA,EACA,KAAApsB,OAAAA,EAPT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WAWCjJ,KAAKq1B,GAAGk1I,cAAc/9J,MAAM6tC,gBAAkBr6C,KAAK4gT,aAXpD,CAAA,IAAA,WAAA,MAAA,WAeC,MAAO,OAAS5gT,KAAKiJ,OAAOkhN,YAAYnqN,KAAKlB,KAAAA,GAAa,QAf3D,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMs9S,IAAwB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAxBA,GAAwB,UAAA,CAAA,CAAA,GAAA,kBAAA,KAAA,OAAA,CAAA,IAAA,CAAA,kBAAA,UAAA,ISWrC,SAAeyE,GAAiB9nD,GAAqC,IAARn0C,EAAQ,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GAAA,OAAA,GAAA,UAAA,OAAA,EAAA,mBAAA,MAAA,SAAA,IAAA,IAAA,EAAA,EAAA,EAAA,EAAA,OAAA,mBAAA,MAAA,SAAA,GAAA,OAAA,OAAA,EAAA,KAAA,EAAA,MAAA,KAAA,EAC3DN,OAD2D,EAAA,KAAA,EAgBhD5rB,EAfiBqgE,EAgB3B,IAAIxpP,SAAQwJ,SAAAA,GACA2/K,EAAIooH,eACZC,aAAYz8F,SAAAA,GAAAA,OAAWvrM,EAAQurM,SAlBpCA,KAAAA,EAAAA,EAAAA,EAAAA,KAAAA,EAAAA,GAAAA,mBAAAA,KAEYA,GAAAA,KAAAA,EAAAA,IAAAA,EAAAA,GAAAA,EAAAA,MAAAA,KAAAA,CAAAA,EAAAA,KAAAA,GAAAA,MACKA,GADZpoN,EAAAA,EAAAA,GAAAA,QACD8kT,EAAa18F,EAAQpoN,IAEZ+kT,YAAAA,CAAAA,EAAAA,KAAAA,GAAAA,MAAAA,OAAAA,EAAAA,KAAAA,GACLJ,GAAiBG,EAAoCp8F,GADhDq8F,KAAAA,GAAAA,EAAAA,KAAAA,GAAAA,MAAAA,KAAAA,GAGLvgT,OAHKugT,EAAAA,GAGXr8F,EAAAA,EAAAA,KAAAA,GAAiBs8F,GAAmBF,GAA9BtgT,KAAAA,GAAAA,EAAAA,GAAAA,EAAAA,KAAAA,EAAAA,GAAAA,KAAAA,KAAAA,EAAAA,GAAAA,EAAAA,IAAAA,KAAAA,GAAAA,EAAAA,KAAAA,EAAAA,MAAAA,KAAAA,GAAAA,OAAAA,EAAAA,OAAAA,SAIPkkN,GAAAA,KAAAA,GAAAA,IAAAA,MAAAA,OAAAA,EAAAA,UAAAA,OAUX,SAASs8F,GAAmBnoD,GACxB,OAAO,IAAIxpP,SAAQwJ,SAAAA,GACfggP,EAAMwsB,MAAMA,SAAAA,GACRxsQ,EAAQ,IAAI,GAAawsQ,EAAcxsB,EAAMooD,iBCnClD,IAAMC,GAAN,KAAMA,GAAN,WAOH,SAAA,EAAsB/rR,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,GAAAA,EANb,KAAAgsR,sBAAAA,EACA,KAAAC,iBAAAA,EAEc,KAAAC,aAAkC,GAC/C,KAAAC,aAA6C,IAAI,GALxD,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WASH,IAAA,EAAA,KACUnsR,EAAKr1B,KAAKq1B,GAAGk1I,cACnBl1I,EAAG5B,iBAAiB,aAAchwB,SAAAA,GAAAA,OAAMzD,EAAKyhT,gBAAgBh+S,MAC7D4xB,EAAG5B,iBAAiB,YAAahwB,SAAAA,GAAAA,OAAMzD,EAAK0hT,eAAej+S,MAC3D4xB,EAAG5B,iBAAiB,aAAchwB,SAAAA,GAAAA,OAAMzD,EAAK2hT,gBAAgBl+S,MAC7D4xB,EAAG5B,iBAAiB,QAAShwB,SAAAA,GAAAA,OAAMzD,EAAK4hT,WAAWn+S,MAE5CzD,KAAKqhT,uBACQrhT,KAAK6hT,YAAc7hT,KAAK6hT,YAAYt3I,cAAgBl1I,GAC5D5B,iBAAiB,SAAS,WAAA,OAAMzzB,EAAK8hT,mBAlBlD,CAAA,IAAA,cAAA,MAAA,WAuBC9hT,KAAK+hT,8BAvBN,CAAA,IAAA,cAAA,MAAA,WA0BO,IAAA,EAAA,KACF/hT,KAAKshT,iBACTr7B,GAAiBjmR,KAAKuhT,cAAc7xS,MAAKk1M,SAAAA,GACrC5kN,EAAKgiT,gBAAgBp9F,QA7B1B,CAAA,IAAA,kBAAA,MAAA,SAiCoBnhN,GACfzD,KAAKiiT,iBAAiBx+S,IAC1BzD,KAAKq1B,GAAGk1I,cAAcnF,UAAUr9J,IAAI,wBAnCrC,CAAA,IAAA,iBAAA,MAAA,SAsCmBtE,GAGlB,OAFIA,EAAEy4D,gBAAgBz4D,EAAEy4D,iBACxBz4D,EAAEy+S,aAAaC,WAAaniT,KAAKiiT,iBAAiBx+S,GAAK,OAAS,QAAA,IAxCjE,CAAA,IAAA,kBAAA,MAAA,SA4CoBA,GACnB,IAAM2+S,EAAQ3kT,SAAS8oS,iBAAiB9iS,EAAE0wB,QAAS1wB,EAAE2wB,SACjDp0B,KAAKq1B,GAAGk1I,cAAc7oJ,SAAS0gS,IACnCpiT,KAAK+hT,8BA/CN,CAAA,IAAA,aAAA,MAAA,SAkDqBt+S,GAAAA,OAAAA,GAAAA,UAAAA,OAAAA,EAAAA,mBAAAA,MAAAA,SAAAA,IAAAA,IAAAA,EAAAA,OAAAA,mBAAAA,MAAAA,SAAAA,GAAAA,OAAAA,OAAAA,EAAAA,KAAAA,EAAAA,MAAAA,KAAAA,EAAAA,GACpBA,EAAE24D,kBACF34D,EAAEy4D,iBACFl8D,KAAK+hT,6BACD/hT,KAAKiiT,iBAAiBx+S,IAAOA,EAAEy+S,aAAal5H,MAAAA,CAAAA,EAAAA,KAAAA,EAAAA,MAAAA,OAAAA,EAAAA,OAAAA,UAAAA,KAAAA,EAQtChuL,GANJguL,EAAQviL,MAAM8tE,KAAK9wE,EAAEy+S,aAAal5H,OACnC9xK,QAAQhU,SAAAA,GAAAA,MAAyC,SAAdA,EAAK8qL,QACxCj5K,KAAK7R,SAAAA,GAAAA,OACKA,EAAKm/S,sBAHN57S,EAAAA,GAMVuiL,EAAMhuL,QAAAA,EAAAA,GAAAA,CAAAA,EAAAA,KAAAA,GAAAA,MACDgnT,OADChnT,EAAAA,GACNgF,KAAAA,EAAAA,KAAAA,EDtEL,SAAmCskN,GAAAA,OAAAA,GAAAA,UAAAA,OAAAA,EAAAA,mBAAAA,MAAAA,SAAAA,IAAAA,IAAAA,EAAAA,EAAAA,EAAAA,OAAAA,mBAAAA,MAAAA,SAAAA,GAAAA,OAAAA,OAAAA,EAAAA,KAAAA,EAAAA,MAAAA,KAAAA,EAClCM,EAAQ,GAAA,EAAA,GAAA,mBAAA,KAEMN,GAAAA,KAAAA,EAAAA,IAAAA,EAAAA,GAAAA,EAAAA,MAAAA,KAAAA,CAAAA,EAAAA,KAAAA,GAAAA,MACAA,GADPpoN,EAAAA,EAAAA,GAAAA,QACD68P,EAAQz0C,EAAQpoN,IAET+kT,YAAAA,CAAAA,EAAAA,KAAAA,GAAAA,MAGKzkT,OAHLykT,EAAAA,GAGDr8F,EAAAA,EAAAA,KAAAA,EAAmBi8F,GAAiB9nD,GAA9Bv8P,KAAAA,EAAAA,EAAAA,GAAAA,EAAAA,KAAdooN,EAAAA,EAAAA,GAAcpoN,OAAAA,KAAAA,EAAAA,GAAAA,EAAAA,IAAAA,EAAAA,KAAAA,GAAAA,MAAAA,KAAAA,GAFRkE,OAEQlE,EAAAA,GAFdooN,EAAAA,EAAAA,KAAAA,GAAiBs8F,GAAmBnoD,GAA9Br4P,KAAAA,GAAAA,EAAAA,GAAAA,EAAAA,KAAAA,EAAAA,GAAAA,KAAAA,KAAAA,EAAAA,GAAAA,EAAAA,IAAAA,KAAAA,GAAAA,EAAAA,KAAAA,EAAAA,MAAAA,KAAAA,GAAAA,OAAAA,EAAAA,OAAAA,SAMPkkN,GAAAA,KAAAA,GAAAA,IAAAA,MAAAA,OAAAA,EAAAA,UAAAA,OAbJ,CCsEoD57B,GAA1Cg5H,KAAAA,EAAAA,EAAAA,GAAAA,EAAAA,KAAAA,EAAAA,GAAAA,gBAAAA,KAAAA,EAAAA,GAAAA,EAAAA,IAAAA,KAAAA,GAAAA,IAAAA,MAAAA,OAAAA,EAAAA,UAAAA,EAAAA,YA/DV,CAAA,IAAA,kBAAA,MAAA,SAmEuBp9F,GACtB5kN,KAAKwhT,aAAatzL,KAAK02F,KApExB,CAAA,IAAA,4BAAA,MAAA,WAwEC5kN,KAAKq1B,GAAGk1I,cAAcnF,UAAUrvJ,OAAO,wBAxExC,CAAA,IAAA,mBAAA,MAAA,SA2EwBtS,GACvB,IAAM6+S,EAAW7+S,EAAEy+S,aAAa13L,MAAMp5F,MAAKjmB,SAAAA,GAAAA,MAA+B,UAAvBA,EAAKuD,iBACxD,OAAO1O,KAAKshT,kBAAqBgB,MA7ElC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMlB,IAAuB,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAvBA,GAAuB,UAAA,CAAA,CAAA,GAAA,eAAA,KAAA,OAAA,CAAA,qBAAA,uBAAA,gBAAA,kBAAA,YAAA,cAAA,aAAA,CAAA,eAAA,iBAAA,QAAA,CAAA,aAAA,kBAAA,ICT7B,SAASmB,GAAUzuS,GACtB,OAAOA,EAAKjI,QAAQ,WAAY,OAAzBiI,SAAAA,GAAAA,EAAAA,GAAAA,GAAAA,EAAAA,ICAP,GAAA,EAAA,OAAA,GAAiD,GAAA,GAAmC,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAA,KAAA,EAAA,KAAnC,GAAA,GAAA,GAAA,EAAA,mBAAA,KAAA,SAAA,GAAA,EAAA,GAAA,EAAA,IACjD,GAAA,EAAA,OAAA,GAAiD,GAAA,EAAA,UAAM,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAF3D,GAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,OAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,OAAA,GACJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,KAFU,GAAA,GAAA,GAAA,OAAA,eAAA,GACA,GAAA,GAAA,GAAA,OAAA,eAAA,ICWH,IAAM0uS,GAAN,KAAMA,GAAN,WAAA,SAAA,IAAA,gBAAA,KAAA,GAAA,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,qBAAA,MAAA,SAGuB5iT,GACtB,OAAO2iT,GAAU3iT,OAJlB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM4iT,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,KAAAA,GAA+B,UAAA,CAAA,CAAA,8BAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,CAAA,QAAA,GAAA,EAAA,QAAA,CAAA,QAAA,KAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDb5C,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAAA,GAAA,EAAA,UCa4C,EAAA,GDb9B,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,gBAAA,WAAA,CAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,iHAAA,gBAAA,ICcuB,GAAA,CAAhC5zG,GAAO,GAAY6rE,aAAa,GAAA,cAAc,IAAd,GAAA,UAAA,oBAAA,GAAA,ICoB/B,GAAM,CAAC,gBAAiB,IACxB,GAAM,CAAC,KACb,SAASgoC,GAAgClgK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC5D,IAAMiwH,EAAM,KACZ,GAAsB,EAAG,MAAO,GAChC,GAAkB,WAAW,SAAgE9hE,GAA4E,OAAlE,GAAqB8hE,GAAqB,KAAsCjD,eAAe7+D,KAAtM,CAAkN,SAAS,WAAoI,OAAlE,GAAqB8hE,GAAqB,KAAsCjqQ,OAAO2lH,KAAK,WAAzX,CAAsY,wBAAwB,SAAsFwiF,GAA4E,OAAlE,GAAqB8hE,GAAqB,KAAsCk6B,kBAAkBh8F,KAAhmB,CAA4mB,uBAAuB,SAAqFA,GAA4E,OAAlE,GAAqB8hE,GAAqB,KAAsCm6B,iBAAiBj8F,MACn0B,GAAsB,EAAG,MAAO,GAChC,GAAoB,GACpB,KACA,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAMymH,EAAS,KACf,GAAkB,KAAMA,EAAO05C,QAA/B,CAAwC,UAAW15C,EAAO7wO,WAA1D,CAAsE,iBAAkB6wO,EAAO25C,sBAC/F,GAAmB,aAAc35C,EAAOr3B,WAAa,KAArD,CAA2D,kBAAmBq3B,EAAOguC,gBAAkB,KAAvG,CAA6G,mBAAoBhuC,EAAOiuC,iBAAmB,OAE/J,IA2DM2L,GAmRAC,GA2+BAC,GA1qBAC,GAgsBAC,GCn3COC,GCAAC,GFkuEPC,GAhBAC,GAjwBAC,GA76CAC,GAAoB,CAStBC,cAAe7iS,GAAQ,gBAAiB,CACpC,GAAM,OAAQ,GAAM,CAChB2T,QAAS,EACTxP,UAAW,gBAEfi8N,GAAW,gB1HspBnB,SAAeD,GAAiB,IAAVnrO,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAC5B,MAAO,CAAEvK,KAAM,EAAe01O,MAAAA,EAAOnrO,QAAAA,G0HvpBL,CAAM,CAC9B,GAAM,2CAA4C2jB,GAAQ,eAAgB,GAAM,CAC5EhF,QAAS,MAEbgF,GAAQ,mCAAoC,GAAM,CAAExU,UAAW,iBAEnEi8N,GAAW,YAAaznN,GAAQ,oBAAqB,GAAM,CAAEhF,QAAS,QAM1EmvR,YAAa9iS,GAAQ,cAAe,CAGhC,GAAM,UAAW,GAAM,CAAE2T,QAAS,KAClCysN,GAAW,YAAa,CACpB,GAAM,CAAEzsN,QAAS,IACjBgF,GAAQ,qDAhCpB,KA2DMupR,GAAAA,WAUF,SAAA,EAAYhrH,EAAWlS,EAA2Bt4B,EAASo3B,EAAWn3B,EAAmB32C,EAAWk4J,GAAAA,gBAAAA,KAAAA,GAChG5uQ,KAAK43L,UAAYA,EACjB53L,KAAK0lL,0BAA4BA,EACjC1lL,KAAKotJ,QAAUA,EACfptJ,KAAKwkL,UAAYA,EACjBxkL,KAAKqtJ,kBAAoBA,EACzBrtJ,KAAK02G,UAAYA,EACjB12G,KAAK4uQ,mBAAqBA,EAI1B5uQ,KAAKyjT,UAAY,IAAI,EAiDJ1+P,OAzCrB,aAAA,EAAA,CAAA,CAAA,IAAA,SAAA,MAAA,WAAiB,IAAVl8C,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,GACR7I,KAAK0jT,UACN1jT,KAAK0jT,QAAU,IAAI3pF,GAAe/5N,KAAK43L,UAAW53L,KAAKqtJ,oBAE3DrtJ,KAAKstJ,SACAttJ,KAAK2jT,UACN3jT,KAAK2jT,QAAU,IAAIjpF,GAAgB16N,KAAK02G,UAAUlsG,cAAc,OAAQxK,KAAK0lL,0BAA2B1lL,KAAKotJ,QAASptJ,KAAKwkL,YAG/H,IAAMvjL,EAAUjB,KAAK43L,UAAUrpC,WAAWgc,cAIvBtpK,EAAmB,WAAE+L,aAAahN,KAAK2jT,QAAQhpF,cAAe15N,GAO7EjB,KAAK4uQ,oBACL5uQ,KAAK4uQ,mBAAmB9yE,eAE5B97L,KAAK0jT,QAAQ9pF,OAAO55N,KAAK2jT,QAAS96S,GAClC7I,KAAKyjT,UAAUv7S,SAOnB,CAAA,IAAA,SAAA,MAAA,WACQlI,KAAK0jT,QAAQtiF,YACbphO,KAAK0jT,QAAQp2J,WAMrB,CAAA,IAAA,cAAA,MAAA,WACQttJ,KAAK2jT,SACL3jT,KAAK2jT,QAAQ5+P,cAAAA,EAtEnB69P,IA0EShgL,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAK4oT,IAAgB,GAAyB,IAAqB,GAAyB,IAAkC,GAAyB,IAAwB,GAAyB,IAAkB,GAAyB,IAA0B,GAAyB,IAAW,GAAyB,MACjZA,GAAexgL,UAAO,GAAyB,CAAEj3H,KAAMy3S,GAAgBlkR,UAAW,CAAC,CAAC,cAAe,iBAAkB,OADrHkkR,IAiIMgB,GAAiB,IAAI7gL,GAAe,kBAoEpC8gL,GAAwBv5C,GAAmBL,IAH3C65C,SAAAA,IAAAA,gBAAAA,KAAAA,OAGN,KAIMjB,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAOF,SAAA,EAAYtyG,EAAa9yM,EAAU8yQ,EAAewzC,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAE9C3pL,EAAAA,EAAAA,KAAAA,OACKm2E,YAAcA,EACnBvwM,EAAKuwQ,cAAgBA,EACrBvwQ,EAAK+jT,YAAcA,EAInB/jT,EAAKkrS,KAAO,WAIZlrS,EAAKgkT,SAAW,IAAI,EAIpBhkT,EAAKikT,SAAW,IAAI,EAIpBjkT,EAAKkkT,cAAAA,EAILlkT,EAAKmkT,kBAAAA,EACD5zC,GAIAA,EAAcI,QAAQ3wQ,EAAKuwM,aAAAA,GAE3BwzG,GAAeA,EAAY1b,SAC3B0b,EAAY1b,QAAZ0b,uBAAAA,IAEJ/jT,EAAK02G,UAAYj5G,EAnC6BsmT,EAkIhC/tS,OAvFlB,aAAA,EAAA,CAAA,CAAA,IAAA,QAAA,MAAA,WAA0BN,IAApBlT,EAAoBkT,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAX,UAAWA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAClB1V,KAAKuwQ,cACLvwQ,KAAKuwQ,cAAcK,SAAS5wQ,KAAKkvQ,kBAAmB1sQ,EAAQkT,GAG5D1V,KAAKkvQ,kBAAkBrzM,MAAMnmD,GAEjC1V,KAAKikT,SAAS/7S,KAAKlI,QAKvB,CAAA,IAAA,cAAA,MAAA,WACQA,KAAKuwQ,eACLvwQ,KAAKuwQ,cAAcn3B,eAAep5O,KAAKuwM,aAEvCvwM,KAAK+jT,aAAe/jT,KAAK+jT,YAAY7a,YACrClpS,KAAK+jT,YAAY7a,WAAWlpS,MAEhCA,KAAKgkT,SAASz8S,WACdvH,KAAKikT,SAAS18S,aAMlB,CAAA,IAAA,eAAA,MAAA,WACI,OAAOvH,KAAKwxM,SAAW,KAAO,MAMlC,CAAA,IAAA,kBAAA,MAAA,WACI,OAAOxxM,KAAKuwM,YAAYhmC,gBAY5B,CAAA,IAAA,iBAAA,MAAA,SAAe12I,GACP7zB,KAAKwxM,WACL39K,EAAMqoC,iBACNroC,EAAMuoC,qBAYd,CAAA,IAAA,oBAAA,MAAA,WACIp8D,KAAKgkT,SAAS97S,KAAKlI,QAMvB,CAAA,IAAA,WAAA,MAAA,WAEI,IAAMiB,EAAUjB,KAAKuwM,YAAYhmC,cAE3B65I,EAAepkT,KAAK02G,UAAY12G,KAAK02G,UAAUukC,UAAY,EAE7D9/I,EAAS,GACb,GAAI8F,EAAQk0B,WAMR,IAJA,IAAMn6B,EAASiG,EAAQk0B,WAAWn6B,OAIzBL,EAAI,EAAGA,EAAIK,EAAQL,IACpBsG,EAAQk0B,WAAWx6B,GAAGg7B,WAAayuR,IACnCjpT,GAAU8F,EAAQk0B,WAAWx6B,GAAGiqC,aAI5C,OAAOzpC,EAAO6a,WAAAA,EAzIhB6sS,CAAoBgB,KA4IdjhL,UAAO,SAA6B5oI,GAAK,OAAO,IAAKA,GAAK6oT,IAAa,GAAyB,IAAoB,GAAyB,IAAW,GAAyB,IAAsB,GAAyBe,GAAgB,KAC5Pf,GAAY3gL,UAAO,GAAyB,CAAE/2H,KAAM03S,GAAankR,UAAW,CAAC,CAAC,GAAI,gBAAiB,KAAM6nG,UAAW,CAAC,EAAG,uBAAwBD,SAAU,GAAID,aAAc,SAAkCkc,EAAInmI,GAAgB,EAALmmI,GACrN,GAAkB,SAAS,SAA8CmuD,GAAU,OAAOt0L,EAAIioS,eAAe3zG,KAA7G,CAAyH,cAAc,WAAuD,OAAOt0L,EAAIkoS,uBAClM,EAAL/hK,IACF,GAAmB,OAAQnmI,EAAI8uR,KAA/B,CAAqC,WAAY9uR,EAAIozP,eAArD,CAAqE,gBAAiBpzP,EAAIo1L,SAAS3xM,WAAnG,CAA+G,WAAYuc,EAAIo1L,UAAY,MAC3I,GAAmB,iBAAA,EAAnB,CAA0C,4BAA6Bp1L,EAAI8nS,aAA3E,CAAyF,gCAAiC9nS,EAAI+nS,oBAC7H19K,OAAQ,CAAE+qE,SAAU,WAAY89D,cAAe,gBAAiB47B,KAAM,QAAUvkK,SAAU,CAAC,eAAgBrrH,SAAU,CAAC,IAAoC4mB,MAAO,GAAKkkG,mBAAoB,GAAKJ,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,YAAa,GAAI,EAAG,kBAAmB,EAAG,oBAAqB,qBAAsBD,SAAU,SAA8Bqc,EAAInmI,GAAgB,EAALmmI,IACzW,KACA,GAAoB,GACpB,GAAiB,EAAG,MAAO,IACpB,EAALA,IACF,GAAiB,GACjB,GAAkB,oBAAqBnmI,EAAIkzP,eAAiBlzP,EAAIo1L,SAAhE,CAA0E,mBAAoBp1L,EAAI8yP,qBACjGvrH,WAAY,CAAC,IAAmB3b,cAAe,EAAGJ,gBAAiB,IAb5Ei7K,IAyJM0B,GAA2B,IAAIxhL,GAAe,2BAA4B,CAC5EjD,WAAY,OACZxqH,QAMJ,WACI,MAAO,CACHkvS,gBAAAA,EACAC,UAAW,QACXC,UAAW,QACXtmF,cAAe,uCAUnBumF,GAAe,EAAnB,KAKM5B,GAAAA,WAMF,SAAA,EAAYxyG,EAAaxvB,EAAS61D,GAAAA,gBAAAA,KAAAA,GAC9B52O,KAAKuwM,YAAcA,EACnBvwM,KAAK+gL,QAAUA,EACf/gL,KAAK42O,gBAAkBA,EACvB52O,KAAK4kT,WAAa5kT,KAAK42O,gBAAgB6tE,UACvCzkT,KAAK6kT,WAAa7kT,KAAK42O,gBAAgB8tE,UAIvC1kT,KAAK8kT,uBAAyB,IAAIttI,GAIlCx3K,KAAK+kT,iBAAmB,EAAa/qL,MAIrCh6H,KAAKm4B,WAAa,GAIlBn4B,KAAK2iT,qBAAuB,OAI5B3iT,KAAKglT,eAAiB,IAAI,EAI1BhlT,KAAKo+N,cAAgBp+N,KAAK42O,gBAAgBxY,cAC1Cp+N,KAAKilT,gBAAkBjlT,KAAK42O,gBAAgB4tE,eAC5CxkT,KAAK0sO,aAAe1sO,KAAK42O,gBAAgBzY,YAIzCn+N,KAAKuI,OAAS,IAAI,GAMlBvI,KAAK69N,MAAQ79N,KAAKuI,OAClBvI,KAAK0iT,QAAL1iT,kBAAAA,OAAiC2kT,MA0GrC,OApGA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAqGI3kT,KAAKklT,uBAKT,CAAA,IAAA,qBAAA,MAAA,WAAA,IAAA,EAAA,KACIllT,KAAKmlT,2BACLnlT,KAAKolT,YAAc,IAAInxE,GAAgBj0O,KAAK8kT,wBAAwBO,WAAWC,gBAC/EtlT,KAAK+kT,iBAAmB/kT,KAAKolT,YAAY9yE,OAAO/xO,WAAU,WAAA,OAGpDP,EAAKuI,OAAO2lH,KAAK,UAIvBluH,KAAK8kT,uBAAuBptI,QAAQrzK,KAAK4vN,GAAUj0N,KAAK8kT,wBAAyB1wF,IAIjFprC,SAAAA,GAAAA,OAASz0E,EAAAA,WAAAA,EAAAA,oBAASy0E,EAAMj0K,KAIvB7R,SAAAA,GAAAA,OAASA,EAAK+gT,kBAAe1jT,WAI9BglT,SAAAA,GAAAA,OAAevlT,EAAKolT,YAAYryE,iBAAiBwyE,QAKrD,CAAA,IAAA,cAAA,MAAA,WACIvlT,KAAK8kT,uBAAuB3qO,UAC5Bn6E,KAAK+kT,iBAAiBpkT,cACtBX,KAAKuI,OAAOhB,aAMhB,CAAA,IAAA,WAAA,MAAA,WAII,OADuCvH,KAAK8kT,uBAA+B,QACrCzgT,KAAK4vN,GAAUj0N,KAAK8kT,wBAAyB1wF,IAInFprC,SAAAA,GAAAA,OAASz0E,EAAAA,WAAAA,EAAAA,oBAASy0E,EAAMj0K,KAIvB7R,SAAAA,GAAAA,OAASA,EAAK8gT,oBAYnB,CAAA,IAAA,UAAA,MAAA,SAAQwB,MASR,CAAA,IAAA,aAAA,MAAA,SAAWA,MAMX,CAAA,IAAA,iBAAA,MAAA,SAAe3xR,GAEX,IAAMk4E,EAAUl4E,EAAMk4E,QAEhB4f,EAAU3rH,KAAKolT,YACrB,OAAQr5M,GACJ,KjIh5BG,GiIi5BM0vH,GAAe5nM,KAChBA,EAAMqoC,iBACNl8D,KAAKuI,OAAO2lH,KAAK,YAErB,MACJ,KjI14BO,GiI24BCluH,KAAKylT,YAAiC,QAAnBzlT,KAAKykG,WACxBzkG,KAAKuI,OAAO2lH,KAAK,WAErB,MACJ,KjI34BQ,GiI44BAluH,KAAKylT,YAAiC,QAAnBzlT,KAAKykG,WACxBzkG,KAAKuI,OAAO2lH,KAAK,WAErB,MACJ,KjIt5BC,GiIu5BD,KjIz5BA,GiI05BSutG,GAAe5nM,KjIx5BvB,KiIy5BOk4E,EAAmB4f,EAAQ2nH,qBAAuB3nH,EAAQ6nH,oBAC1D3/M,EAAMqoC,kBAEV,MACJ,QjIz5BK,KiI05BG6vC,GjIt5BD,KiIs5ByBA,GACxB4f,EAAQ+5L,eAAe,YAE3B/5L,EAAQg6L,UAAU9xR,MAQ9B,CAAA,IAAA,iBAAA,MAAA,WAAwB,IAAA,EAAA,KAATrxB,EAAS,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,UAEhBxC,KAAK4lT,YACL5lT,KAAK+gL,QAAQzC,SAAS6S,eACjB9sL,KAAKu5L,GAAK,IACVr9L,WAAU,WAAA,OAGTP,EAAK6lT,gBAAgBrjT,MAG3BxC,KAAK6lT,gBAAgBrjT,KAU7B,CAAA,IAAA,kBAAA,MAAA,SAAgBA,GAEZ,IAAMmpH,EAAU3rH,KAAKolT,YAKrB,GAJAz5L,EAAQ+5L,eAAeljT,GAAQ8wO,sBAI1B3nH,EAAQ+nH,YAAc1zO,KAAK8kT,uBAAuB9pT,OAOnD,IALA,IAAIiG,EAAUjB,KAAK8kT,uBAAuBzpJ,MAAM6zG,kBAAkB32C,cAK3Dt3N,GAAS,CACZ,GAAqC,SAAjCA,EAAQi+B,aAAa,QAAoB,CACzCj+B,EAAQ46D,QACR,MAGA56D,EAAUA,EAAQs3N,iBAUlC,CAAA,IAAA,kBAAA,MAAA,WACIv4N,KAAKolT,YAAYtyE,eAAe,KAOpC,CAAA,IAAA,eAAA,MAAA,SAAa7vO,GAIT,IAEM6iT,EAAAA,kBAAAA,OAFY9iS,KAAKxI,IA1VC,EA0V6BvX,EAAO,KAItD8iT,EAAkBhgT,OAAOP,KAAKxF,KAAKm4B,YAAY/G,MAIrDh3B,SAAAA,GAAAA,OAAKA,EAAE04L,WAAW,sBACbizH,GAAmBA,IAAoB/lT,KAAKgmT,qBACzChmT,KAAKgmT,qBACLhmT,KAAKm4B,WAAWn4B,KAAKgmT,qBAAAA,GAEzBhmT,KAAKm4B,WAAW2tR,IAAAA,EAChB9lT,KAAKgmT,mBAAqBF,KAWlC,CAAA,IAAA,qBAAA,MAAA,WAAsDpB,IAAnCuB,EAAmCvB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAA5B1kT,KAAKykT,UAAWyB,EAAYxB,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAL1kT,KAAK0kT,UAE5C71S,EAAU7O,KAAKm4B,WACrBtpB,EAAQ,mBAA8B,WAATo3S,EAC7Bp3S,EAAQ,kBAA6B,UAATo3S,EAC5Bp3S,EAAQ,kBAA6B,UAATq3S,EAC5Br3S,EAAQ,kBAA6B,UAATq3S,IAMhC,CAAA,IAAA,kBAAA,MAAA,WAEIlmT,KAAK2iT,qBAAuB,UAMhC,CAAA,IAAA,kBAAA,MAAA,WAEI3iT,KAAK2iT,qBAAuB,SAOhC,CAAA,IAAA,mBAAA,MAAA,SAAiB9uR,GACb7zB,KAAKglT,eAAe98S,KAAK2rB,GACzB7zB,KAAKmmT,cAAAA,IAMT,CAAA,IAAA,oBAAA,MAAA,SAAkBtyR,GACd7zB,KAAKmmT,cAAAA,EAOiB,UAAlBtyR,EAAMuwN,SAA4D,IAArCpkP,KAAKolT,YAAYgB,kBAC9CvyR,EAAM5yB,QAAQw0B,UAAY,KAWlC,CAAA,IAAA,2BAAA,MAAA,WAAA,IAAA,EAAA,KACIz1B,KAAKqmT,UAAU3uI,QACVrzK,KAAK4vN,GAAUj0N,KAAKqmT,YACpB9lT,WAIJyoL,SAAAA,GACGhpL,EAAK8kT,uBAAuBrlP,MAAMupH,EAAM9xK,QAIxChU,SAAAA,GAAAA,OAAQA,EAAK6gT,cAAgB/jT,MAC7BA,EAAK8kT,uBAAuBlqI,uBAAAA,CAAAA,IAAAA,YAAAA,IAAAA,WA5XlB,OAAO56K,KAAK4kT,YAK9B,IAAA,SAAcn/S,GACI,WAAVA,GAAgC,UAAVA,GA9dlC,WACI,MAAMI,MAAM,kIADhB,GAieQ7F,KAAK4kT,WAAan/S,EAClBzF,KAAKklT,uBAMT,CAAA,IAAA,YAAA,IAAA,WAAkB,OAAOllT,KAAK6kT,YAK9B,IAAA,SAAcp/S,GACI,UAAVA,GAA+B,UAAVA,GApejC,WACI,MAAMI,MAAM,gIADhB,GAueQ7F,KAAK6kT,WAAap/S,EAClBzF,KAAKklT,uBAMT,CAAA,IAAA,iBAAA,IAAA,WAAuB,OAAOllT,KAAKilT,iBAKnC,IAAA,SAAmBx/S,GACfzF,KAAKilT,gBAAkB3yF,GAAsB7sN,KAMjD,CAAA,IAAA,cAAA,IAAA,WAAoB,OAAOzF,KAAK0sO,cAKhC,IAAA,SAAgBjnO,GACZzF,KAAK0sO,aAAepa,GAAsB7sN,KAS9C,CAAA,IAAA,aAAA,IAAA,SAAeoJ,GAAAA,IAAAA,EAAAA,KAELy3S,EAAqBtmT,KAAKumT,oBAC5BD,GAAsBA,EAAmBtrT,QACzCsrT,EAAmB9kT,MAAM,KAAKmW,SAI7BrK,SAAAA,GACGtN,EAAKm4B,WAAW7qB,IAAAA,KAGxBtN,KAAKumT,oBAAsB13S,EACvBA,GAAWA,EAAQ7T,SACnB6T,EAAQrN,MAAM,KAAKmW,SAIlBrK,SAAAA,GACGtN,EAAKm4B,WAAW7qB,IAAAA,KAEpBtN,KAAKuwM,YAAYhmC,cAAcj9J,UAAY,MAWnD,CAAA,IAAA,YAAA,IAAA,WAAkB,OAAOtN,KAAKk+N,YAK9B,IAAA,SAAcrvN,GAAW7O,KAAKk+N,WAAarvN,MAI3C,EA1JEk0S,IAsbOngL,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAK+oT,IAAc,GAAyB,IAAoB,GAAyB,IAAgB,GAAyBwB,MACrMxB,GAAa3gL,UAAO,GAAyB,CAAEj3H,KAAM43S,GAAcv8K,eAAgB,SAAqC+b,EAAInmI,EAAK6mI,GAKzH,IAAI4tH,EAL0I,EAALtuH,IACzI,GAAsBU,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,IACzB,EAALV,IAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIwpS,YAAc/0C,EAAGx1G,OAC1E,GAAsBw1G,EAAK,QAA0Bz0P,EAAIiqS,UAAYx1C,GACrE,GAAsBA,EAAK,QAA0Bz0P,EAAI4sK,MAAQ6nF,KAChE9oI,UAAW,SAA4Bwa,EAAInmI,GAG5C,IAAIy0P,EAHwD,EAALtuH,GACvD,GAAmB2uB,IAAAA,GACZ,EAAL3uB,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAI2yI,YAAc8hH,EAAGx1G,QACzE50B,OAAQ,CAAE23F,cAAe,gBAAiBqmF,UAAW,YAAaC,UAAW,YAAaF,eAAgB,iBAAkBrmF,YAAa,cAAeD,WAAY,CAAC,QAAS,cAAe94D,UAAW,YAAausE,UAAW,CAAC,aAAc,aAAcqlE,eAAgB,CAAC,kBAAmB,kBAAmBC,gBAAiB,CAAC,mBAAoB,oBAAsBvwK,QAAS,CAAEn+H,OAAQ,SAAUs1N,MAAO,WAf7ZklF,IA3bA,KA+qBMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAAAA,SAAAA,IAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,MAAAA,KAAAA,WAAAA,OAAAA,EAAAA,CAAgB,KAEdlgL,UAAO,SAAyB5oI,GAAK,OAAOwsT,GAAqBxsT,GAAK8oT,KAC9EA,GAAQ1gL,UAAO,GAAyB,CAAEj3H,KAAM23S,GAASxnS,SAAU,CAAC,MADpEwnS,IAEM0D,GAAuB,GAA6B,IAA1D,KAkBMxD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAYz0J,EAAYs2B,EAAQoyD,GAAAA,OAAAA,gBAAAA,KAAAA,GAAAA,EAAAA,KAAAA,KACtB1oF,EAAYs2B,EAAQoyD,GAAAA,OAAAA,EAP5B+rE,CAAiB,KAUdpgL,UAAO,SAA0B5oI,GAAK,OAAO,IAAKA,GAAKgpT,IAAU,GAAyB,IAAoB,GAAyB,IAAgB,GAAyBuB,MACzLvB,GAAS9gL,UAAO,GAAyB,CAAE/2H,KAAM63S,GAAUtkR,UAAW,CAAC,CAAC,aAAcioG,SAAU,CAAC,WAAYrrH,SAAU,CAAC,GAA0B,CACtI,CAAE+nH,QAASugL,GAAgBttJ,YAAa,IACxC,CAAEjzB,QAAS,GAASizB,YAAa0sJ,MACjC,IAAoC58K,mBAAoB,GAAKJ,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,WAAY,KAAM,OAAQ,OAAQ,EAAG,iBAAkB,EAAG,KAAM,UAAW,UAAW,SAAU,CAAC,EAAG,qBAAsBD,SAAU,SAA2Bqc,EAAInmI,GAAgB,EAALmmI,IAC5Q,KACA,GAAkB,EAAGkgK,GAAiC,EAAG,EAAG,iBAC3D9+J,WAAY,CAAC,IAAiBhvH,OAAQ,CAAC,k2DAAq2DqzG,cAAe,EAAG7rI,KAAM,CAAEqrK,UAAW,CAC96D87I,GAAkBC,cAClBD,GAAkBE,cACjB57K,gBAAiB,IAV9Bo7K,IAiDMyD,GAA2B,IAAI1jL,GAAe,4BAgB9C2jL,GAA4C,CAC9CrjL,QAASojL,GACTpwJ,KAAM,CAAC,IACPD,WAbJ,SAA0C1zG,GACtC,OAAO,WAAA,OAGDA,EAAQkpL,iBAAiB7N,gBAoB7B,GAA8BzI,GAAgC,CAAEl8J,SAAAA,IA9BtE,KAmCMiqP,GAAAA,WAWF,SAAA,EAAY92E,EAAU7wJ,EAAU2xE,EAAmB4wE,EAAgB8lF,EAAa4C,EAAmBl6E,EAAM8jC,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACrGvwQ,KAAKusO,SAAWA,EAChBvsO,KAAK07E,SAAWA,EAChB17E,KAAKqtJ,kBAAoBA,EACzBrtJ,KAAK+jT,YAAcA,EACnB/jT,KAAK2mT,kBAAoBA,EACzB3mT,KAAKysO,KAAOA,EACZzsO,KAAKuwQ,cAAgBA,EACrBvwQ,KAAK68N,YAAc,KACnB78N,KAAK4mT,WAAAA,EACL5mT,KAAK6mT,4BAA8B,EAAa7sL,MAChDh6H,KAAK8mT,mBAAqB,EAAa9sL,MACvCh6H,KAAK+mT,uBAAyB,EAAa/sL,MAK3Ch6H,KAAKgnT,kBAAoB,WAAA,OAGnBhnT,EAAKinT,UAAY,SAGvBjnT,KAAKinT,UAAY,KAMjBjnT,KAAKurS,cAAAA,EAILvrS,KAAKknT,WAAa,IAAI,GAOtBlnT,KAAKmnT,WAAannT,KAAKknT,WAIvBlnT,KAAKonT,WAAa,IAAI,GAOtBpnT,KAAKqnT,YAAcrnT,KAAKonT,WACxB1rO,EAAS6uF,cAAc92I,iBAAiB,aAAczzB,KAAKgnT,kBAAmB,IAC1EL,IACAA,EAAkBxC,iBAAmBnkT,KAAKsnT,mBAE9CtnT,KAAKsgO,gBAAkBrC,EAkF3B,OA3EA,aAAA,EAAA,CAAA,CAAA,IAAA,qBAAA,MAAA,WAyCIj+N,KAAKunT,aACLvnT,KAAKwnT,iBAKT,CAAA,IAAA,cAAA,MAAA,WACQxnT,KAAK68N,cACL78N,KAAK68N,YAAY93K,UACjB/kD,KAAK68N,YAAc,MAEvB78N,KAAK07E,SAAS6uF,cAAc52I,oBAAoB,aAAc3zB,KAAKgnT,kBAAmB,IACtFhnT,KAAK+mT,uBAAuBpmT,cAC5BX,KAAK6mT,4BAA4BlmT,cACjCX,KAAK8mT,mBAAmBnmT,gBAM5B,CAAA,IAAA,kBAAA,MAAA,WAeI,SAAUX,KAAK2mT,oBAAqB3mT,KAAK+jT,eAM7C,CAAA,IAAA,aAAA,MAAA,WACI,OAAO/jT,KAAK4mT,UAAY5mT,KAAKynT,YAAcznT,KAAK0nT,aAMpD,CAAA,IAAA,WAAA,MAAA,WAAA,IAAA,EAAA,KACI,IAAI1nT,KAAK4mT,UAAT,CAGA5mT,KAAKunT,aAEL,IAAMzqF,EAAa98N,KAAKkuO,iBAElB9B,EAAgBtP,EAAW+J,YACjC7mO,KAAK2nT,aAAgCv7E,EAA+B,kBACpEA,EAAcjO,YAAuC,MAAzBn+N,KAAK4nT,KAAKzpF,aAAuBn+N,KAAKsnT,kBAC9DtnT,KAAK4nT,KAAKzpF,YACdrB,EAAWlD,OAAO55N,KAAK6nT,cACnB7nT,KAAK4nT,KAAKhC,aACV5lT,KAAK4nT,KAAKhC,YAAYhsF,OAAO55N,KAAK8nT,UAEtC9nT,KAAK6mT,4BAA8B7mT,KAAK+nT,sBAAsBxnT,WAAU,WAAA,OAGlEP,EAAKynT,eACXznT,KAAKgoT,YACDhoT,KAAK4nT,gBAAgB,IACrB5nT,KAAK4nT,KAAKK,qBAOlB,CAAA,IAAA,YAAA,MAAA,WACIjoT,KAAK4nT,KAAK/pF,MAAM3vG,SAQpB,CAAA,IAAA,QAAA,MAAA,WAA0Bx4G,IAApBlT,EAAoBkT,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAX,UAAWA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EAClB1V,KAAKuwQ,cACLvwQ,KAAKuwQ,cAAcK,SAAS5wQ,KAAK07E,SAAUl5E,EAAQkT,GAGnD1V,KAAK07E,SAAS6uF,cAAc1uG,MAAMnmD,KAQ1C,CAAA,IAAA,eAAA,MAAA,WAAA,IAAA,EAAA,KACI,GAAK1V,KAAK68N,aAAgB78N,KAAKkoT,SAA/B,CAIA,IAAMN,EAAO5nT,KAAK4nT,KAClB5nT,KAAK6mT,4BAA4BlmT,cACjCX,KAAK68N,YAAYvvE,SACjBttJ,KAAKysS,gBACDmb,aAAgB,IAChBA,EAAKO,kBACDP,EAAKhC,YAELgC,EAAK5C,eACA3gT,KAAK,IAIVwvB,SAAAA,GAAAA,MAA2B,SAAlBA,EAAMuwN,WAAsBxmD,GAAK,GAE1CW,GAAUqpH,EAAKhC,YAAYnC,YACtBljT,UAAU,CACX2H,KAAM,WAAA,OAGmB0/S,EAAiB,YAAEt6J,UAE5C/lJ,SAAU,WAAA,OAGJvH,EAAKooT,gBAAAA,MAIfpoT,KAAKooT,gBAAAA,KAITpoT,KAAKooT,gBAAAA,GACDR,EAAKhC,aACLgC,EAAKhC,YAAYt4J,aAU7B,CAAA,IAAA,YAAA,MAAA,WACIttJ,KAAK4nT,KAAKnC,WAAazlT,KAAKsnT,kBAAoBtnT,KAAK+jT,iBAAAA,EACrD/jT,KAAK4nT,KAAKnjN,UAAYzkG,KAAK04L,IAC3B14L,KAAKqoT,oBACLroT,KAAKooT,gBAAAA,GACLpoT,KAAK4nT,KAAKU,eAAetoT,KAAKinT,WAAa,aAO/C,CAAA,IAAA,oBAAA,MAAA,WACI,GAAIjnT,KAAK4nT,KAAKW,aAAc,CAKxB,IAHA,IAAItlT,EAAQ,EAERwiT,EAAazlT,KAAK4nT,KAAKnC,WACpBA,GACHxiT,IACAwiT,EAAaA,EAAWA,WAE5BzlT,KAAK4nT,KAAKW,aAAatlT,MAQ/B,CAAA,IAAA,gBAAA,MAAA,WAIQjD,KAAKurS,eACAvrS,KAAKinT,UAKAjnT,KAAKsnT,mBACXtnT,KAAK67D,MAAM77D,KAAKinT,WAHhBjnT,KAAK67D,SAMb77D,KAAKinT,UAAY,OAQrB,CAAA,IAAA,iBAAA,MAAA,SAAe/J,GACXl9S,KAAK4mT,UAAY1J,EACjBl9S,KAAK4mT,UAAY5mT,KAAKknT,WAAWh5L,OAASluH,KAAKonT,WAAWl5L,OACtDluH,KAAKsnT,oBACLtnT,KAAK2mT,kBAAkBzC,aAAehH,KAS9C,CAAA,IAAA,aAAA,MAAA,WACSl9S,KAAK4nT,MAvhDlB,WACI,MAAM/hT,MAAM,0KADhB,KAiiDI,CAAA,IAAA,iBAAA,MAAA,WACI,IAAK7F,KAAK68N,YAAa,CAEnB,IAAM5zN,EAASjJ,KAAK6uS,oBACpB7uS,KAAKwoT,sBAAyCv/S,EAAwB,kBACtEjJ,KAAK68N,YAAc78N,KAAKusO,SAAS1lO,OAAOoC,GAIxCjJ,KAAK68N,YAAY6Q,gBAAgBntO,YAErC,OAAOP,KAAK68N,cAOhB,CAAA,IAAA,oBAAA,MAAA,WACI,OAAO,IAAImB,GAAc,CACrBwC,iBAAkBxgO,KAAKusO,SAAS1lN,WAC3BonN,oBAAoBjuO,KAAK07E,UACzB+uJ,qBACAsD,sBAAsB,wCAC3B3P,cAAep+N,KAAK4nT,KAAKxpF,eAAiB,mCAC1CH,eAAgBj+N,KAAKsgO,kBACrB77H,UAAWzkG,KAAKysO,SAWxB,CAAA,IAAA,wBAAA,MAAA,SAAsB5lN,GAAAA,IAAAA,EAAAA,KACd7mB,KAAK4nT,KAAK1C,oBACVr+R,EAASk8M,gBAAgBxiO,WAIzBquG,SAAAA,GAKuB5uG,EAAK4nT,KAAwB,mBAHA,UAAnCh5M,EAAO+vH,eAAeH,SAAuB,QAAU,SAEpB,QAAnC5vH,EAAO+vH,eAAeF,SAAqB,QAAU,cAY9E,CAAA,IAAA,eAAA,MAAA,SAAa+B,GAAAA,IAAAA,EAAAA,eACgD,WAAxBxgO,KAAK4nT,KAAKnD,UAAyB,CAAC,MAAO,SAAW,CAAC,QAAS,OADxFjkF,GACJl3K,EADIk3K,EAAAA,GACKioF,EADLjoF,EAAAA,GAAAA,EAAAA,eAEkD,UAAxBxgO,KAAK4nT,KAAKlD,UAAwB,CAAC,SAAU,OAAS,CAAC,MAAO,UAFxFlkF,GAEJ/B,EAFI+B,EAAAA,GAEMkoF,EAFNloF,EAAAA,GAGJj3K,EAA6Bk1K,EAApBkqF,EAA8BD,EACvClqF,EAA+Bl1K,EAArBs/P,EAA8BH,EAEzC3xQ,EAAU,EACV92C,KAAKsnT,mBAGLsB,EAAmBt/P,EAAkC,WAAxBtpD,KAAK4nT,KAAKnD,UAAyB,QAAU,MAC1EgE,EAAkBjqF,EAAuB,QAAZl1K,EAAoB,QAAU,MAC3DxS,EAAuB,WAAb2nL,EAraS,GAAA,GAuabz+N,KAAK4nT,KAAKpD,iBAChBj7P,EAAuB,QAAbk1K,EAAqB,SAAW,MAC1CkqF,EAAuC,QAArBD,EAA6B,SAAW,OAE9DloF,EAAiB8J,cAAc,CAC3B,CAAEhhL,QAAAA,EAASC,QAAAA,EAASi1K,SAAAA,EAAUC,SAAAA,EAAU3nL,QAAAA,GACxC,CAAEwS,QAASm/P,EAAiBl/P,QAAAA,EAASi1K,SAAUoqF,EAAkBnqF,SAAAA,EAAU3nL,QAAAA,GAC3E,CACIwS,QAAAA,EACAC,QAASo/P,EACTnqF,SAAAA,EACAC,SAAUiqF,EACV5xQ,SAAUA,GAEd,CACIwS,QAASm/P,EACTl/P,QAASo/P,EACTnqF,SAAUoqF,EACVnqF,SAAUiqF,EACV5xQ,SAAUA,OAStB,CAAA,IAAA,sBAAA,MAAA,WAAA,IAAA,EAAA,KAEU+xQ,EAA8B7oT,KAAiB,YAAEgtO,gBAEjDspC,EAAiCt2Q,KAAiB,YAAEs2Q,cAY1D,OAAO/hK,EAAMs0M,EAVO7oT,KAAK+jT,YAAc/jT,KAAK+jT,YAAYx7S,OAASslL,KAEnD7tL,KAAK+jT,YAAc/jT,KAAK+jT,YAAYC,WAAW3/S,KAAK,IAIlEizD,SAAAA,GAAAA,OAAUA,IAAWt3D,EAAK2mT,qBAAqB,IAAO,WAAA,OAGhD3mT,EAAK4mT,cAAe/4H,KACiByoF,KAO/C,CAAA,IAAA,mBAAA,MAAA,SAAiBziP,GACRwjN,GAAgCxjN,KAGjC7zB,KAAKinT,UAA6B,IAAjBpzR,EAAMylC,OAAe,QAAU,KAI5Ct5D,KAAKsnT,mBACLzzR,EAAMqoC,oBASlB,CAAA,IAAA,iBAAA,MAAA,SAAeroC,GAEX,IAAMk4E,EAAUl4E,EAAMk4E,QAClB/rG,KAAKsnT,oBjIl5DG,KiIk5DoBv7M,GAAwC,QAAb/rG,KAAK04L,KjIt5DrD,KiIu5DN3sF,GAAuC,QAAb/rG,KAAK04L,MAChC14L,KAAK0nT,aAQb,CAAA,IAAA,eAAA,MAAA,SAAa7zR,GACL7zB,KAAKsnT,mBAELzzR,EAAMuoC,kBACNp8D,KAAK0nT,YAGL1nT,KAAK8oT,eAQb,CAAA,IAAA,eAAA,MAAA,WAAA,IAAA,EAAA,KAES9oT,KAAKsnT,oBAGVtnT,KAAK8mT,mBAAqB9mT,KAAK+jT,YAAYC,WAItC3/S,KAAK,IAIVizD,SAAAA,GAAAA,OAAUA,IAAWt3D,EAAK2mT,oBAAsBrvP,EAAOk6I,YAAY,GAAM,EAAG8hB,KACvE/yN,WAAU,WAIXP,EAAKinT,UAAY,QAIbjnT,EAAK4nT,gBAAgB,IAAW5nT,EAAK4nT,KAAKzB,aAG1CnmT,EAAK4nT,KAAK5C,eACL3gT,KAAKu5L,GAAK,GAAI,GAAM,EAAG01B,IAAgB/0B,GAAUv+L,EAAK+jT,YAAYC,aAClEzjT,WAAU,WAAA,OAGTP,EAAK0nT,cAGX1nT,EAAK0nT,iBASjB,CAAA,IAAA,aAAA,MAAA,WAOI,OAHK1nT,KAAK0jT,SAAW1jT,KAAK0jT,QAAQ30J,cAAgB/uJ,KAAK4nT,KAAK74J,cACxD/uJ,KAAK0jT,QAAU,IAAI3pF,GAAe/5N,KAAK4nT,KAAK74J,YAAa/uJ,KAAKqtJ,oBAE3DrtJ,KAAK0jT,UAAAA,CAAAA,IAAAA,+BAAAA,IAAAA,WAreqB,OAAO1jT,KAAK4nT,MAKjD,IAAA,SAAiC16S,GAC7BlN,KAAK4nT,KAAO16S,IAMhB,CAAA,IAAA,OAAA,IAAA,WAAa,OAAOlN,KAAK+oT,OAKzB,IAAA,SAASnB,GAAAA,IAAAA,EAAAA,KACDA,IAAS5nT,KAAK+oT,QAGlB/oT,KAAK+oT,MAAQnB,EACb5nT,KAAK+mT,uBAAuBpmT,cACxBinT,IACA5nT,KAAK+mT,uBAAyBa,EAAK/pF,MAAM1sC,eAAe5wL,WAIxDs7G,SAAAA,GACI77G,EAAKgpT,eAEW,UAAXntM,GAAiC,QAAXA,IAAqB77G,EAAK+jT,aACjD/jT,EAAK+jT,YAAYx7S,OAAO2lH,KAAKrS,UAQ7C,CAAA,IAAA,WAAA,IAAA,WAsBI,OAAO77G,KAAK4mT,YAMhB,CAAA,IAAA,MAAA,IAAA,WACI,OAAO5mT,KAAKysO,MAA4B,QAApBzsO,KAAKysO,KAAKhnO,MAAkB,MAAQ,UAM5D,EArJE49S,IAkjBSzgL,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAKqpT,IAAgB,GAAyB,IAAiB,GAAyB,IAAoB,GAAyB,IAA0B,GAAyBoD,IAA2B,GAAyB,GAAS,GAAI,GAAyB,GAAa,IAAK,GAAyB,GAAuB,GAAI,GAAyB,MACxbpD,GAAejhL,UAAO,GAAyB,CAAEj3H,KAAMk4S,GAAgB3kR,UAAW,CAAC,CAAC,GAAI,uBAAwB,IAAK,CAAC,GAAI,oBAAqB,KAAM6nG,UAAW,CAAC,gBAAiB,OAAQ,EAAG,oBAAqBD,SAAU,EAAGD,aAAc,SAAqCkc,EAAInmI,GAAgB,EAALmmI,GACzR,GAAkB,aAAa,SAAqDmuD,GAAU,OAAOt0L,EAAI6sS,iBAAiBv4G,KAA1H,CAAsI,WAAW,SAAmDA,GAAU,OAAOt0L,EAAImzP,eAAe7+D,KAAxO,CAAoP,SAAS,SAAiDA,GAAU,OAAOt0L,EAAI8sS,aAAax4G,MACzU,EAALnuD,GACF,GAAmB,gBAAiBnmI,EAAI8rS,UAAY,KAApD,CAA0D,gBAAiB9rS,EAAI8rS,SAAW9rS,EAAIwrS,KAAKlF,QAAU,OAC5Gj8K,OAAQ,CAAE8kK,aAAc,CAAC,6BAA8B,gBAAiB4d,6BAA8B,CAAC,uBAAwB,gCAAiCvB,KAAM,CAAC,oBAAqB,QAASE,SAAU,CAAC,qBAAsB,aAAephL,QAAS,CAAEwgL,WAAY,aAAcC,WAAY,aAAcC,WAAY,aAAcC,YAAa,eAAiB1gL,SAAU,CAAC,oBALhY08K,IAAAA,KA+MMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEmB5gL,UAAO,GAAwB,CAAEr3H,KAAMi4S,KAChEA,GAAyBziL,UAAO,GAAwB,CAAErrH,QAAS,SAA0Ctb,GAAK,OAAO,IAAKA,GAAKopT,KAAgCpjL,UAAW,CAAC0mL,IAA4CzmL,QAAS,CAAC,MADrOmjL,IAAAA,KAcMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEQ3gL,UAAO,GAAwB,CAAEr3H,KAAMg4S,KACrDA,GAAcxiL,UAAO,GAAwB,CAAErrH,QAAS,SAA+Btb,GAAK,OAAO,IAAKA,GAAKmpT,KAAqBnjL,UAAW,CAAC0mL,IAA4CzmL,QAAS,CAAC,CACxL,GACA,GACA,GACA,GACA,IACD,GAAqB,GAAiB,MAPjDkjL,IEpuEO,KAAMD,GAGT,SAAA,EACWzuR,EACAxrB,GAAAA,gBAAAA,KAAAA,GADA,KAAAwrB,KAAAA,EACA,KAAAxrB,OAAAA,IALR,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMi6S,IAA0B,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA1BA,GAA0B,UAAA,CAAA,CAAA,wBAAA,MAAA,GAAA,KAAA,EAAA,OAAA,CAAA,CAAA,kBAAA,GAAA,EAAA,WAAA,SAAA,CAAA,UAAA,UAAA,CAAA,EAAA,WAAA,CAAA,QAAA,IAAA,CAAA,EAAA,SAAA,CAAA,UAAA,QAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ICbvC,GAAA,EAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAS,EAAAzuR,KAAA,aAE7B,GAAA,EAAA,WAAA,GACJ,KACA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAW,GAAA,EAAA,QAAI,KACf,GAAA,EAAA,MAAA,GAAmB,GAAA,GANvB,GAAA,EAAA,SAMyC,KACzC,KACA,GAAA,EAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAS,EAAAA,KAAA,YAC7B,GAAA,EAAA,WAAA,GACJ,MDGuC,EAAA,ICZ/B,GAAA,YAAA,EAAA,OAAA,IAAA,yCAAA,EAAA,KAAA,cAKe,GAAA,GAAA,GAAA,GAAA,GAAA,EAAA,EAAA,EAAA,OAAA,KAEyB,GAAA,GAAA,GAAA,YAAA,EAAA,KAAA,eAAA,WAAA,CAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,8MAAA,gBAAA,IDMlB,GAAA,CAAzBm6K,GAAO,GAAYn6K,MAAM,GAAA,cAAO,IAAP,GAAA,UAAA,aAAA,GAAA,IDDvB,KAAMwuR,GAIT,SAAA,EACWzhM,EACAv4G,GAAAA,gBAAAA,KAAAA,GADA,KAAAu4G,QAAAA,EACA,KAAAv4G,OAAAA,IANR,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMg6S,IAA0B,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA1BA,GAA0B,UAAA,CAAA,CAAA,wBAAA,MAAA,EAAA,KAAA,GAAA,OAAA,CAAA,CAAA,kBAAA,GAAA,EAAA,WAAA,SAAA,CAAA,UAAA,QAAA,CAAA,UAAA,SAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IGbvC,GAAA,EAAA,SAAA,GAAyD,GAAA,SAAA,WAAA,OAAS,EAAAzhM,QAAA,UAAlE,GAAA,EAAA,SACG,GAAA,EAAA,WAAA,GACH,KACA,GAAA,EAAA,SAAA,GAAyD,GAAA,SAAA,WAAA,OAAS,EAAAA,QAAA,UAHlE,GAAA,EAAA,SAIG,GAAA,EAAA,WAAA,GACH,MHQuC,EAAA,IGb2C,GAAA,YAAA,EAAA,OAAA,IAAA,wCAA1D,GAAA,YAAA,GAAA,EAAA,EAAA,EAAA,WAG0D,GAAA,GAAA,GAAA,YAAA,EAAA,OAAA,IAAA,wCAA1D,GAAA,YAAA,GAAA,EAAA,EAAA,EAAA,aAAA,WAAA,CAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,IAAA,gBAAA,IHWU,GAAA,CAA7BotF,GAAO,GAAa6qE,SAAS,GAAA,cAAU,IAAV,GAAA,UAAA,gBAAA,GACA,GAAA,CAA7B7qE,GAAO,GAAa+qE,SAAS,GAAA,cAAU,IAAV,GAAA,UAAA,gBAAA,GAAA,IAF3B,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IINS,GAAA,EAAA,OAAA,GAA2D,GAAA,GAAa,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GAAb,GAAA,GAAA,GAAA,EAAA,KAAA,OAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAJ/D,GAAA,EAAA,SAAA,GACQ,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,GAAA,GAAA,OAAA,EAAA,wBAAA,EAAA,KAAA,WAEJ,GAAA,EAAA,WAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,OAAA,GACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GALmB,GAAA,kBAAA,YAAA,EAAA,aAAA,EAAA,KAAA,OAAA,EAAA,KAAA,MAGL,GAAA,GAAA,GAAA,UAAA,EAAA,KAAA,MACS,GAAA,GAAA,GAAA,OAAA,YAAA,EAAA,cAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAMf,GAAA,EAAA,OAAA,GAA2D,GAAA,GAAa,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GAAb,GAAA,GAAA,GAAA,EAAA,KAAA,OAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAG3D,GAAA,EAAA,SAAA,IACQ,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,GAAA,GAAA,wBAAA,EAAA,WACM,GAAA,GAAsB,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAtB,GAAA,GAAA,GAAA,EAAA,QAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IARlB,GAAA,EAAA,SAAA,IAEI,GAAA,EAAA,WAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,OAAA,GACJ,KACA,GAAA,EAAA,WAAA,GAAA,IACI,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,IAGJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GAAA,EAAA,GAAA,GARQ,GAAA,kBAAA,YAAA,EAAA,aAAA,EAAA,KAAA,OAAA,EAAA,KAAA,MADW,GAAA,oBAAA,GAEL,GAAA,GAAA,GAAA,UAAA,EAAA,KAAA,MACS,GAAA,GAAA,GAAA,OAAA,YAAA,EAAA,aAEO,GAAA,GAAA,GAAA,kBAAA,GACJ,GAAA,GAAA,GAAA,UAAA,EAAA,KAAA,gBAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAdlC,GAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,GAMA,GAAA,EAAA,GAAA,EAAA,EAAA,cAAA,KAAA,EAAA,IAYJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GAAA,EAAA,GAAA,GAhBY,GAAA,GAAA,GAAA,QAAA,EAAA,KAAA,cAAA,CAAgD,WAAA,IAAA,SAAA,GAAA,EAAA,GAAA,EAAA,IAiB5D,GAAA,GACI,GAAA,EAAA,uBACJ,MAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACA,GAAA,EAAA,uBAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACA,GAAA,EAAA,6BAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACA,GAAA,EAAA,MAAA,IAAA,EAAA,GAA2B,GAAA,MAAA,GAAA,GAAA,KAAA,IAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IA3BnC,GAAA,GACI,GAAA,EAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAoBA,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAGA,GAAA,EAAA,GAAA,EAAA,EAAA,sBAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,4BAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GACJ,KACJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KA5BkB,GAAA,GAAA,GAAA,WAAA,EAAA,KAAA,MACI,GAAA,GAAA,GAAA,eAAA,UAoBA,GAAA,GAAA,GAAA,eAAA,cAGO,GAAA,GAAA,GAAA,eAAA,cACM,GAAA,GAAA,GAAA,eAAA,mBACwB,GAAA,GAAA,GAAA,eAAA,UCApD,IAAMyvC,GAAN,KAAMA,GAAN,WAOH,SAAA,EACW5nM,EACAv4G,EACAwrB,EACA40R,EACAj3C,EACCghB,EACAmpB,EACArgS,EACA2zG,EACAx6F,GAAAA,gBAAAA,KAAAA,GATD,KAAAmsF,QAAAA,EACA,KAAAv4G,OAAAA,EACA,KAAAwrB,KAAAA,EACA,KAAA40R,OAAAA,EACA,KAAAj3C,YAAAA,EACC,KAAAghB,WAAAA,EACA,KAAAmpB,WAAAA,EACA,KAAArgS,OAAAA,EACA,KAAA2zG,MAAAA,EACA,KAAAx6F,GAAAA,EAjBT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,WAqBCr1B,KAAKspT,iBAAmBtpT,KAAKm9D,eAC7Bn9D,KAAKupT,iBAAmB9iT,MAAMqQ,QAAQ9W,KAAKkD,KAAKktD,QAC5CpwD,KAAKspT,mBACDtpT,KAAKkD,KAAK0lL,aACV5oL,KAAKq1B,GAAGk1I,cAAc/9J,MAAMo8K,WAAa5oL,KAAKkD,KAAK0lL,YAEnD5oL,KAAKkD,KAAKwoO,cACV1rO,KAAKq1B,GAAGk1I,cAAc/9J,MAAMk/N,YAAc1rO,KAAKkD,KAAKwoO,gBA5B7D,CAAA,IAAA,0BAAA,MAAA,SAiC4Bt7K,GACL,mBAAXA,EACPA,IACyB,iBAAXA,GACdpwD,KAAKowD,OArCV,CAAA,IAAA,cAAA,MAAA,WA0CKpwD,KAAKiJ,OAAO4Z,IAAI,4BAChB7iB,KAAKqpT,OAAOG,kBAEZxpT,KAAKu8S,WAALv8S,WA7CL,CAAA,IAAA,sBAAA,MAAA,WAiDI,IAAA,EAAA,KACHA,KAAKozR,WAAWG,iBAAiB,CAACpoR,KAAM,QAASm9Q,kBAAAA,IAAyB54Q,MAAK,WAC3E1P,EAAKwhH,QAAQz5G,IAAI2+M,GAAaC,eAnDnC,CAAA,IAAA,mBAAA,MAAA,WAuDI,IAAA,EAAA,KACH3mN,KAAKozR,WAAWG,mBAAmB7jR,MAAK1J,SAAAA,GAC7BA,IACPhG,EAAKkc,OAAOnB,SAASm9C,gBAAgBlyD,GACrChG,EAAKwhH,QAAQz5G,IAAI2+M,GAAaE,qBA3DnC,CAAA,IAAA,gBAAA,MAAA,WAgEC,OAAO5mN,KAAKozR,WAAWG,iBAAiB,CAACpoR,KAAM,YAhEhD,CAAA,IAAA,cAAA,MAAA,WAoECnL,KAAK6vH,MAAMi+D,SAAS,IAAI7B,MApEzB,CAAA,IAAA,gBAAA,MAAA,WAwECjsL,KAAKqpT,OAAOI,kBAxEb,CAAA,IAAA,gBAAA,MAAA,WA4ECzpT,KAAKqpT,OAAOK,kBA5Eb,CAAA,IAAA,eAAA,MAAA,WA+EK,IAAA,EACJ,GAAyB,YAArB1pT,KAAK2pT,cAA+B3pT,KAAKkD,KAAKolL,oBAAsBtoL,KAAKkD,KAAKwlL,gBAC9E,OAAA,EAEJ,GAAI1oL,KAAKkD,KAAKwlL,iBAAwC,YAArB1oL,KAAK2pT,YAClC,OAAA,EAEJ,KAAc,QAAV,EAAC3pT,KAAKkD,YAAAA,IAAI,OAAA,EAAA,EAAEouB,WACZ,OAAA,EAEJ,IAAMp1B,EAAM6J,OAAOP,KAAKxF,KAAKkD,KAAKouB,WAAW,GACzC7rB,EAAQzF,KAAKkD,KAAKouB,UAAUp1B,GAChC,OAAO8D,KAAKiJ,OAAO4Z,IAAZ7iB,SAAAA,OAAyB9D,MAAWuJ,MA3F5C,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM2jT,IAAoB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAApBA,GAAoB,UAAA,CAAA,CAAA,iBAAA,OAAA,CAAA,KAAA,OAAA,YAAA,cAAA,WAAA,cAAA,SAAA,CAAA,IAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,YAAA,CAAA,EAAA,gBAAA,CAAA,QAAA,gBAAA,MAAA,GAAA,EAAA,MAAA,EAAA,gBAAA,CAAA,aAAA,GAAA,EAAA,kBAAA,QAAA,EAAA,OAAA,YAAA,CAAA,iBAAA,IAAA,CAAA,aAAA,GAAA,EAAA,SAAA,CAAA,EAAA,WAAA,CAAA,QAAA,OAAA,QAAA,GAAA,EAAA,QAAA,CAAA,QAAA,GAAA,EAAA,QAAA,CAAA,aAAA,GAAA,EAAA,qBAAA,CAAA,EAAA,kBAAA,CAAA,WAAA,WAAA,CAAA,gBAAA,GAAA,QAAA,GAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,gBAAA,GAAA,QAAA,GAAA,EAAA,SAAA,CAAA,MAAA,GAAA,EAAA,gBAAA,EAAA,QAAA,SAAA,SAAA,EAAA,GAAA,EAAA,GD3BjC,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GC2BiC,EAAA,GD3BnB,GAAA,OAAA,EAAA,mBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,uPAAA,gBAAA,IAAA,IC2BP,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KCxBI,GAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,GAAA,GAAA,mBACpB,GAAA,EAAA,WAAA,GACJ,KACJ,KACA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,6BACJ,KACA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,GAAA,GAAA,kBACpB,GAAA,EAAA,WAAA,GACJ,KACJ,KACJ,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAIQ,GAAA,GACI,GAAA,EAAA,eAAA,IACJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,GAAA,GAAA,KAAA,EAAA,GAAA,GAAA,KADkB,GAAA,GAAA,GAAA,OAAA,EAAA,CAAiB,cAAA,EAAjB,CAAiB,aAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAInC,GAAA,GACI,GAAA,EAAA,eAAA,IACJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,GAAA,GAAA,KAAA,EAAA,GAAA,GAAA,KADkB,GAAA,GAAA,GAAA,OAAA,EAAA,CAAmB,cAAA,EAAnB,CAAmB,aAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAIrC,GAAA,GACI,GAAA,EAAA,eAAA,IACJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,GAAA,GAAA,KAAA,EAAA,GAAA,GAAA,KADkB,GAAA,GAAA,GAAA,OAAA,EAAA,CAAkB,cAAA,EAAlB,CAAkB,aAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAZxC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAGJ,KACA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAGJ,KACA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAGJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GAbkB,GAAA,GAAA,GAAA,UAAA,EAAA,MAAA,MAKA,GAAA,GAAA,GAAA,UAAA,EAAA,MAAA,QAKA,GAAA,GAAA,GAAA,UAAA,EAAA,MAAA,QAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IA7B1B,GAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAgBA,GAAA,EAAA,GAAA,EAAA,EAAA,cAAA,KAAA,EAAA,IAiBJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GAAA,EAAA,KAAA,KAAA,EAAA,KAAA,KAjCkB,GAAA,GAAA,GAAA,OAAA,YAAA,GAAA,eAAA,EAAA,CAAsF,WAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAF5G,GAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GADJ,GAAA,EAAA,SAoCA,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GAnCkB,GAAA,GAAA,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,eAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAFrB,GAAA,GACG,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GADH,GAAA,EAAA,SAsCA,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KArCiB,GAAA,GAAA,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,gBC0BV,IAAMQ,GlI01BM/oE,GkI11BZ,KAAM+oE,GAAN,WAWH,SAAA,EACW3gT,EACAmpQ,EACCl2P,EACAyiS,EACA9uL,EACA0iF,GAAAA,gBAAAA,KAAAA,GALD,KAAAtpM,OAAAA,EACA,KAAAmpQ,YAAAA,EACC,KAAAl2P,OAAAA,EACA,KAAAyiS,eAAAA,EACA,KAAA9uL,MAAAA,EACA,KAAA0iF,GAAAA,EAdL,KAAAs3G,aAAe,IAAI,GAAqC,WAExD,KAAA7gI,MAAQ,CACX9jK,KAAqB,GACrBy8B,OAAuB,GACvBkV,MAAsB,IARvB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAoBH,IAAA,EAAA,KACI72D,KAAKiJ,OAAO2hN,OAAOrqN,WAAU,WACzBwF,OAAOP,KAAKxF,EAAKgpL,OAAOrxK,SAAQzb,SAAAA,GAC5B,IAAM4tT,EAAc9pT,EAAKiJ,OAAO4Z,IAAZ7iB,oBAAAA,OAAoC9D,EAApC8D,UAChBA,EAAKgpL,MAAM9sL,KAAS4tT,IACpB9pT,EAAKgpL,MAAM9sL,GAAO4tT,EAClB9pT,EAAKuyM,GAAGzW,sBAKpB97L,KAAKoyQ,YAAYjyP,QAAQ,sBACpB5f,WAAUmD,SAAAA,GAAAA,OAAU1D,EAAK6pT,aAAa3hT,KAAKxE,EAAOgiJ,QAAU,UAAY,gBAhC9E,CAAA,IAAA,eAAA,MAAA,WAoCC,IAAM0mC,EAAQpsL,KAAK6vH,MAAM6pJ,eAAe,GAAYe,aACpDz6Q,KAAK6vH,MAAMi+D,SAAS,IAAIvB,GAAaH,MArCtC,CAAA,IAAA,gBAAA,MAAA,WAyCC,IAAMA,EAAQpsL,KAAK6vH,MAAM6pJ,eAAe,GAAYe,aACpDz6Q,KAAK6vH,MAAMi+D,SAAS,IAAIrB,GAAcL,QA1CvC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMw9H,IAAgB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAhBA,GAAgB,UAAA,CAAA,CAAA,YAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,OAAA,YAAA,CAAA,iBAAA,IAAA,CAAA,EAAA,QAAA,CAAA,kBAAA,GAAA,EAAA,SAAA,CAAA,UAAA,SAAA,CAAA,EAAA,UAAA,CAAA,EAAA,SAAA,CAAA,UAAA,SAAA,CAAA,EAAA,QAAA,WAAA,CAAA,EAAA,OAAA,cAAA,eAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ID3B7B,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAAA,GAAA,EAAA,UC2B6B,EAAA,GD3Bf,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,gBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,wjBAAA,gBAAA,IC4BuB,GAAA,CAAhCh7G,GAAO,GAAY6rE,aAAa,GAAA,cAAc,IAAd,GAAA,UAAA,oBAAA,GACP,GAAA,CAAzB7rE,GAAO,GAAY7kH,MAAM,GAAA,cAAa,IAAb,GAAA,UAAA,mBAAA,GAAA,ICKxBggO,GAAuB,CAIzBC,aAActpS,GAAQ,QAAS,CAC3B,GAAM,wBAAyB,GAAM,CAAE2T,QAAS,EAAGxP,UAAW,cAC9D,GAAM,UAAW,GAAM,CAAEA,UAAW,cACpCi8N,GAAW,eAAgBznN,GAAQ,oCnI40BxBwnN,GmI50BsE,CAC7E,GAAM,CAAExsN,QAAS,EAAGxP,UAAW,WAAYnL,OAAQ,IACnD,GAAM,CAAE2a,QAAS,GAAKxP,UAAW,cAAenL,OAAQ,KACxD,GAAM,CAAE2a,QAAS,EAAGxP,UAAW,WAAYnL,OAAQ,KnI00BpD,CAAEvO,KAAM,EAAmB01O,MAAAA,OmIx0B9BC,GAAW,cAAeznN,GAAQ,mCAAoC,GAAM,CAAEhF,QAAS,SAuBzF41R,GAAyB30F,GAAgC,CAAEl8J,SAAAA,IAajE,SAAS8wP,GAAkCrjS,GACvC,OAAOhhB,MAAAA,qBAAAA,OAA2BghB,EAA3BhhB,kBAMX,IAskCMskT,GA1OAC,GA7xBAC,GA/DAC,GAA8B,IAAIvnL,GAAe,+BAgBjDwnL,GAA+C,CACjDlnL,QAASinL,GACTj0J,KAAM,CAAC,IACPD,WAbJ,SAA6C1zG,GACzC,OAAO,WAAA,OAGDA,EAAQkpL,iBAAiB7N,WAAW,CAAEN,eAxCrB,QAwErB+sF,GAA8B,IAAIznL,GAAe,8BAA+B,CAClFjD,WAAY,OACZxqH,QAMJ,WACI,MAAO,CACHm1S,UAAW,EACXC,UAAW,EACXC,kBAAmB,SAtD3B,KA+DMN,GAAAA,WAeF,SAAA,EAAY99E,EAAUh8B,EAAamsB,EAAmBrvE,EAAmB0zB,EAASq2C,EAAWwzF,EAAgBr6C,EAAetyC,EAAgBwO,EAAMmK,EAMlJi0E,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACI7qT,KAAKusO,SAAWA,EAChBvsO,KAAKuwM,YAAcA,EACnBvwM,KAAK08N,kBAAoBA,EACzB18N,KAAKqtJ,kBAAoBA,EACzBrtJ,KAAK+gL,QAAUA,EACf/gL,KAAKo3N,UAAYA,EACjBp3N,KAAK4qT,eAAiBA,EACtB5qT,KAAKuwQ,cAAgBA,EACrBvwQ,KAAKysO,KAAOA,EACZzsO,KAAK42O,gBAAkBA,EACvB52O,KAAKqtO,UAAY,QACjBrtO,KAAK2vO,WAAAA,EAIL3vO,KAAKyqT,UAAYzqT,KAAK42O,gBAAgB6zE,UAItCzqT,KAAK0qT,UAAY1qT,KAAK42O,gBAAgB8zE,UAetC1qT,KAAK8qT,cAAgB,OACrB9qT,KAAK+qT,SAAW,GAIhB/qT,KAAKgrT,kBAAoB,IAAIl3J,IAI7B9zJ,KAAKi0J,WAAa,IAAI,EAKtBj0J,KAAKuvQ,eAIJ17O,SAAAA,GACO7zB,EAAKirT,qB1IlMN,K0IkM6Bp3R,EAAMk4E,UAAuB0vH,GAAe5nM,KACxEA,EAAMqoC,iBACNroC,EAAMuoC,kBACNp8D,EAAK+gL,QAAQV,KAAI,WAAA,OAGXrgL,EAAK4kR,KAAK,QAGxB5kR,KAAKsgO,gBAAkBrC,EACnB2Y,IACIA,EAAgB/vN,WAChB7mB,KAAK6mB,SAAW+vN,EAAgB/vN,UAEhC+vN,EAAgBk0E,gBAChB9qT,KAAK8qT,cAAgBl0E,EAAgBk0E,gBAG7Cv6C,EAAcI,QAAQpgE,GACjBlsM,KAAKk6L,GAAUv+L,KAAKi0J,aACpB1zJ,WAILiC,SAAAA,GAESA,EAMe,aAAXA,GACLu+K,EAAQV,KAAI,WAAA,OAGNrgL,EAAK8pL,UATX/I,EAAQV,KAAI,WAAA,OAGNrgL,EAAK4kR,KAAK,SASxB7jG,EAAQX,mBAAkB,WAItBmwB,EAAYhmC,cAAc92I,iBAAiB,UAAWzzB,EAAKuvQ,mBA8FnE,OAvFA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAyFIvvQ,KAAKkrT,wBAMT,CAAA,IAAA,cAAA,MAAA,WAEI,IAAM3gJ,EAAgBvqK,KAAKuwM,YAAYhmC,cACvC36J,aAAa5P,KAAKmrT,oBACdnrT,KAAK68N,cACL78N,KAAK68N,YAAY93K,UACjB/kD,KAAKorT,iBAAmB,MAG5B7gJ,EAAc52I,oBAAoB,UAAW3zB,KAAKuvQ,gBAClDvvQ,KAAKgrT,kBAAkBrzS,SAAQ,SAK9BwzI,EAAUt3H,GACP02I,EAAc52I,oBAAoBE,EAAOs3H,EAAU8+J,OAEvDjqT,KAAKgrT,kBAAkB7rQ,QACvBn/C,KAAKi0J,WAAW/rJ,OAChBlI,KAAKi0J,WAAW1sJ,WAChBvH,KAAK4qT,eAAeS,kBAAkB9gJ,EAAevqK,KAAKZ,SAC1DY,KAAKuwQ,cAAcn3B,eAAe7uE,KAOtC,CAAA,IAAA,OAAA,MAAA,WAAkBkgJ,IAAAA,EAAAA,KAAb3mN,EAAa2mN,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAALzqT,KAAKyqT,UACd,IAAIzqT,KAAKwxM,UAAaxxM,KAAKZ,WAAYY,KAAKirT,qBACpBjrT,KAAsB,iBAAEsrT,gBAAsCtrT,KAAsB,iBAAEurT,gBAD9G,CAKA,IAAMzuF,EAAa98N,KAAKkuO,iBACxBluO,KAAK48N,UACL58N,KAAK0jT,QAAU1jT,KAAK0jT,SAAW,IAAI7pF,GAAgB,GAAkB75N,KAAKqtJ,mBAC1ErtJ,KAAKorT,iBAAmBtuF,EAAWlD,OAAO55N,KAAK0jT,SAASltQ,SACxDx2C,KAAKorT,iBAAiBI,cACjBnnT,KAAKk6L,GAAUv+L,KAAKi0J,aACpB1zJ,WAAU,WAAA,OAGTP,EAAK48N,aACX58N,KAAKyrT,iBAAiBzrT,KAAK0rT,eAC3B1rT,KAAK2rT,wBACc3rT,KAAsB,iBAAE8pL,KAAKhmF,MAOpD,CAAA,IAAA,OAAA,MAAA,WAAkB4mN,IAAb5mN,EAAa4mN,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAL1qT,KAAK0qT,UACV1qT,KAAKorT,kBACLprT,KAAKorT,iBAAiBxmC,KAAK9gL,KAOnC,CAAA,IAAA,SAAA,MAAA,WACI9jG,KAAKirT,oBAAsBjrT,KAAK4kR,OAAS5kR,KAAK8pL,SAMlD,CAAA,IAAA,oBAAA,MAAA,WACI,QAAS9pL,KAAKorT,kBAAoBprT,KAAKorT,iBAAiB72E,cAO5D,CAAA,IAAA,iBAAA,MAAA,WAAA,IAAA,EAAA,KACI,GAAIv0O,KAAK68N,YACL,OAAO78N,KAAK68N,YAGhB,IAAM+uF,EAAsB5rT,KAAK08N,kBAAkB1E,4BAA4Bh4N,KAAKuwM,aAG9E+wB,EAAWthO,KAAKusO,SAAS1lN,WAC1BonN,oBAAoBjuO,KAAKuwM,aACzBw9B,sBAAsB,gBACtBhE,wBAAAA,GACAE,mBAAmB,GACnBI,yBAAyBuhF,GA8B9B,OA7BAtqF,EAASyB,gBAAgB1+N,KAAKk6L,GAAUv+L,KAAKi0J,aAAa1zJ,WAI1DquG,SAAAA,GACQ5uG,EAAKorT,kBACDx8M,EAAOgwH,yBAAyBmK,kBAAoB/oO,EAAKorT,iBAAiB72E,aAG1Ev0O,EAAK+gL,QAAQV,KAAI,WAAA,OAGXrgL,EAAK4kR,KAAK,SAI5B5kR,KAAK68N,YAAc78N,KAAKusO,SAAS1lO,OAAO,CACpC49F,UAAWzkG,KAAKysO,KAChBjM,iBAAkBc,EAClBpD,WAnagB,oBAoahBD,eAAgBj+N,KAAKsgO,oBAEzBtgO,KAAK6rT,kBACL7rT,KAAK68N,YAAYy5C,cACZjyQ,KAAKk6L,GAAUv+L,KAAKi0J,aACpB1zJ,WAAU,WAAA,OAGTP,EAAK48N,aACJ58N,KAAK68N,cAOhB,CAAA,IAAA,UAAA,MAAA,WACQ78N,KAAK68N,aAAe78N,KAAK68N,YAAYnD,eACrC15N,KAAK68N,YAAYvvE,SAErBttJ,KAAKorT,iBAAmB,OAO5B,CAAA,IAAA,kBAAA,MAAA,WAEI,IAAMvkS,EAAiD7mB,KAAiB,YAAE6mO,YAA6B,iBAEjGrkO,EAASxC,KAAK8rT,aAEdppQ,EAAU1iD,KAAK+rT,sBACrBllS,EAASyjN,cAAc,CACnBvkO,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIzmH,EAAOwjF,MAAOtjC,EAAQsjC,MACtDjgF,OAAOkjH,OAAOljH,OAAOkjH,OAAO,GAAIzmH,EAAOshO,UAAWphL,EAAQohL,cAQlE,CAAA,IAAA,aAAA,MAAA,WAEI,IAIIkoF,EAJEC,GAASjsT,KAAKysO,MAA2B,OAAnBzsO,KAAKysO,KAAKhnO,MAEhCohB,EAAW7mB,KAAK6mB,SAGtB,GAAgB,SAAZA,GAAmC,SAAZA,EACvBmlS,EAAiB,CAAE1iQ,QAAS,SAAUC,QAAqB,SAAZ1iC,EAAsB,MAAQ,eAE5E,GAAgB,UAAZA,GACQ,QAAZA,GAAsBolS,GACV,SAAZplS,IAAwBolS,EACzBD,EAAiB,CAAE1iQ,QAAS,QAASC,QAAS,cAE7C,CAAA,KAAgB,SAAZ1iC,GACQ,SAAZA,GAAuBolS,GACX,QAAZplS,IAAuBolS,GAIxB,MAAM/B,GAAkCrjS,GAHxCmlS,EAAiB,CAAE1iQ,QAAS,MAAOC,QAAS,UAlBpD,IAAA,EAuBqBvpD,KAAKksT,gBAAgBF,EAAe1iQ,QAAS0iQ,EAAeziQ,SAC7E,MAAO,CACHy8B,KAAMgmO,EACNloF,SAAU,CAAEx6K,QA1BpB,EAuBU,EAGsBC,QA1BhC,EAuBa,MAUb,CAAA,IAAA,sBAAA,MAAA,WAEI,IAII4iQ,EAJEF,GAASjsT,KAAKysO,MAA2B,OAAnBzsO,KAAKysO,KAAKhnO,MAEhCohB,EAAW7mB,KAAK6mB,SAGtB,GAAgB,SAAZA,EACAslS,EAAkB,CAAE3tF,SAAU,SAAUC,SAAU,eAEjD,GAAgB,SAAZ53M,EACLslS,EAAkB,CAAE3tF,SAAU,SAAUC,SAAU,YAEjD,GAAgB,UAAZ53M,GACQ,QAAZA,GAAsBolS,GACV,SAAZplS,IAAwBolS,EACzBE,EAAkB,CAAE3tF,SAAU,MAAOC,SAAU,cAE9C,CAAA,KAAgB,SAAZ53M,GACQ,SAAZA,GAAuBolS,GACX,QAAZplS,IAAuBolS,GAIxB,MAAM/B,GAAkCrjS,GAHxCslS,EAAkB,CAAE3tF,SAAU,QAASC,SAAU,UArBzD,IAAA,EA0BqBz+N,KAAKksT,gBAAgBC,EAAgB3tF,SAAU2tF,EAAgB1tF,UAChF,MAAO,CACHz4I,KAAMmmO,EACNroF,SAAU,CAAEtF,SA7BpB,EA0BU,EAGuBC,SA7BjC,EA0Ba,MAWb,CAAA,IAAA,wBAAA,MAAA,WAAA,IAAA,EAAA,KAGQz+N,KAAKorT,mBACLprT,KAAKorT,iBAAiBhsT,QAAUY,KAAKZ,QACrCY,KAAKorT,iBAAiBvV,gBACtB71S,KAAK+gL,QAAQ1C,iBAAiB8S,eAAe9sL,KAAKu5L,GAAK,GAAIW,GAAUv+L,KAAKi0J,aAAa1zJ,WAAU,WAIzFP,EAAKorT,kBACcprT,EAAiB,YAAEi9N,uBAWtD,CAAA,IAAA,mBAAA,MAAA,SAAiBmvF,GACTpsT,KAAKorT,mBACLprT,KAAKorT,iBAAiBgB,aAAeA,EACrCpsT,KAAKorT,iBAAiBvV,mBAU9B,CAAA,IAAA,kBAAA,MAAA,SAAgBr8S,EAAGC,GAiBf,MAhBsB,UAAlBuG,KAAK6mB,UAA0C,UAAlB7mB,KAAK6mB,SACxB,QAANptB,EACAA,EAAI,SAEO,WAANA,IACLA,EAAI,OAIE,QAAND,EACAA,EAAI,QAEO,UAANA,IACLA,EAAI,OAGL,CAAEA,EAAAA,EAAGC,EAAAA,KAOhB,CAAA,IAAA,sBAAA,MAAA,WAAA,IAAA,EAAA,KAGI,GAAKuG,KAAKo3N,UAAUlC,KAAQl1N,KAAKo3N,UAAUhC,SAWtC,GAA2B,QAAvBp1N,KAAK8qT,cAAyB,CACnC9qT,KAAKqsT,oCAEL,IAAMC,EAAmB,WAIrB18S,aAAa5P,EAAKmrT,oBAClBnrT,EAAK4kR,KAAK5kR,EAAK42O,gBAAgB+zE,oBAEnC3qT,KAAKgrT,kBACAhpS,IAAI,WAAYsqS,GAChBtqS,IAAI,cAAesqS,GACnBtqS,IAAI,cAAc,WAMnBpS,aAAa5P,EAAKmrT,oBAClBnrT,EAAKmrT,mBAAqB9qT,YAAW,WAAA,OAG/BL,EAAK8pL,SA3mBH,cA0kBZ9pL,KAAKgrT,kBACAhpS,IAAI,cAAc,WAAA,OAGjBhiB,EAAK8pL,UACN9nK,IAAI,cAAc,WAAA,OAGjBhiB,EAAK4kR,UA4Bf5kR,KAAKgrT,kBAAkBrzS,SAAQ,SAK9BwzI,EAAUt3H,GACP7zB,EAAKuwM,YAAYhmC,cAAc92I,iBAAiBI,EAAOs3H,EAAU8+J,SAQzE,CAAA,IAAA,oCAAA,MAAA,WAEI,IAAMhpT,EAAUjB,KAAKuwM,YAAYhmC,cAE3B/9J,EAAQvL,EAAQuL,MAEhB+/S,EAAWvsT,KAAK8qT,cACL,QAAbyB,KAGiB,OAAbA,GAA2C,UAArBtrT,EAAQ+9B,UAA6C,aAArB/9B,EAAQ+9B,YAC9DxyB,EAAM4qH,WAAa5qH,EAAMuqR,aAAevqR,EAAMwqR,iBAC1C,EAA6BC,cAAgB,QAIpC,OAAbs1B,GAAsBtrT,EAAQi9R,YAC9B,EAA6BrH,eAAiB,QAElDrqR,EAAMioH,YAAc,OACpBjoH,EAAMsqR,wBAA0B,iBAAA,CAAA,IAAA,WAAA,IAAA,WAtcvB,OAAO92R,KAAKqtO,WAK7B,IAAA,SAAa5nO,GACLA,IAAUzF,KAAKqtO,YACfrtO,KAAKqtO,UAAY5nO,EACbzF,KAAK68N,cACL78N,KAAK6rT,kBACD7rT,KAAKorT,kBACcprT,KAAsB,iBAAE8pL,KAAK,GAEpD9pL,KAAK68N,YAAYI,qBAQ7B,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOj9N,KAAK2vO,WAK7B,IAAA,SAAalqO,GACTzF,KAAK2vO,UAAYrd,GAAsB7sN,GAEnCzF,KAAK2vO,WACL3vO,KAAK4kR,KAAK,KAOlB,CAAA,IAAA,UAAA,IAAA,WAAgB,OAAO5kR,KAAK+qT,UAK5B,IAAA,SAAYtlT,GAAAA,IAAAA,EAAAA,KACRzF,KAAK4qT,eAAeS,kBAAkBrrT,KAAKuwM,YAAYhmC,cAAevqK,KAAK+qT,UAE3E/qT,KAAK+qT,SAAoB,MAATtlT,EAAgB,GAAA,OAAGA,GAAQuQ,OAAS,IAC/ChW,KAAK+qT,UAAY/qT,KAAKirT,oBACvBjrT,KAAK4kR,KAAK,IAGV5kR,KAAK2rT,wBACL3rT,KAAK+gL,QAAQX,mBAAkB,WAQ3B7wK,QAAQwJ,UAAUrJ,MAAK,WAInB1P,EAAK4qT,eAAe4B,SAASxsT,EAAKuwM,YAAYhmC,cAAevqK,EAAKZ,kBASlF,CAAA,IAAA,eAAA,IAAA,WAAqB,OAAOY,KAAK0rT,eAKjC,IAAA,SAAiBjmT,GACbzF,KAAK0rT,cAAgBjmT,EACjBzF,KAAKorT,kBACLprT,KAAKyrT,iBAAiBzrT,KAAK0rT,mBAOnC,EApNErB,IAukBKznL,UAAO,SAA4B5oI,GAAK,OAAO,IAAKA,GAAKqwT,IAAY,GAAyB,IAAiB,GAAyB,IAAoB,GAAyB,IAA0B,GAAyB,IAA0B,GAAyB,IAAgB,GAAyB,IAAkB,GAAyB,IAAuB,GAAyB,IAAsB,GAAyBC,IAA8B,GAAyB,GAAuB,GAAI,GAAyBE,GAA6B,GAAI,GAAyBlgJ,MAC9nB+/I,GAAWjoL,UAAO,GAAyB,CAAEj3H,KAAMk/S,GAAY3rR,UAAW,CAAC,CAAC,GAAI,aAAc,KAAM+nG,OAAQ,CAAEgkL,UAAW,CAAC,sBAAuB,aAAcC,UAAW,CAAC,sBAAuB,aAAcI,cAAe,CAAC,0BAA2B,iBAAkBjkS,SAAU,CAAC,qBAAsB,YAAa2qL,SAAU,CAAC,qBAAsB,YAAapyM,QAAS,CAAC,aAAc,WAAYgtT,aAAc,CAAC,kBAAmB,iBAAmBzlL,SAAU,CAAC,gBAD7c0jL,IAAAA,KAsNMD,GAAAA,WAKF,SAAA,EAAYx7C,EAAoB6G,GAAAA,gBAAAA,KAAAA,GAC5Bz1Q,KAAK4uQ,mBAAqBA,EAC1B5uQ,KAAKy1Q,oBAAsBA,EAI3Bz1Q,KAAKysT,YAAc,UAInBzsT,KAAK0sT,qBAAAA,EAIL1sT,KAAK2sT,QAAU,IAAI,EAInB3sT,KAAK4sT,WAAa5sT,KAAKy1Q,oBAAoBt1P,QAAQmyP,IA0G3Bx2E,OAnG5B,aAAA,EAAA,CAAA,CAAA,IAAA,OAAA,MAAA,SAAKh4F,GAAAA,IAAAA,EAAAA,KAEG9jG,KAAKurT,iBACL37S,aAAa5P,KAAKurT,gBAClBvrT,KAAKurT,eAAiB,MAG1BvrT,KAAK0sT,qBAAAA,EACL1sT,KAAKsrT,eAAiBjrT,YAAW,WAI7BL,EAAKysT,YAAc,UACnBzsT,EAAKsrT,eAAiB,KAGtBtrT,EAAK61S,kBACL/xM,KAOR,CAAA,IAAA,OAAA,MAAA,SAAKA,GAAAA,IAAAA,EAAAA,KAEG9jG,KAAKsrT,iBACL17S,aAAa5P,KAAKsrT,gBAClBtrT,KAAKsrT,eAAiB,MAE1BtrT,KAAKurT,eAAiBlrT,YAAW,WAI7BL,EAAKysT,YAAc,SACnBzsT,EAAKurT,eAAiB,KAGtBvrT,EAAK61S,kBACL/xM,KAMR,CAAA,IAAA,cAAA,MAAA,WACI,OAAO9jG,KAAK2sT,QAAQx7H,iBAMxB,CAAA,IAAA,YAAA,MAAA,WACI,MAA4B,YAArBnxL,KAAKysT,cAKhB,CAAA,IAAA,cAAA,MAAA,WACIzsT,KAAK2sT,QAAQplT,aAKjB,CAAA,IAAA,kBAAA,MAAA,WACIvH,KAAK0sT,qBAAAA,IAMT,CAAA,IAAA,iBAAA,MAAA,SAAe74R,GAEX,IAAMuwN,EAA6BvwN,EAAc,QACjC,WAAZuwN,GAAyBpkP,KAAKu0O,aAC9Bv0O,KAAK2sT,QAAQzkT,OAED,YAAZk8O,GAAqC,WAAZA,IACzBpkP,KAAK0sT,qBAAAA,KASb,CAAA,IAAA,yBAAA,MAAA,WACQ1sT,KAAK0sT,qBACL1sT,KAAK4kR,KAAK,KASlB,CAAA,IAAA,gBAAA,MAAA,WACI5kR,KAAK4uQ,mBAAmB9yE,mBAAAA,EAjI1BsuH,IAoIWxnL,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKowT,IAAkB,GAAyB,IAA2B,GAAyB,MAC/KA,GAAiBloL,UAAO,GAAyB,CAAE/2H,KAAMi/S,GAAkB1rR,UAAW,CAAC,CAAC,0BAA2B6nG,UAAW,CAAC,cAAe,QAASD,SAAU,EAAGD,aAAc,SAAuCkc,EAAInmI,GAAgB,EAALmmI,GAChO,GAAkB,SAAS,WAAuD,OAAOnmI,EAAIywS,4BAAAA,EAAoC,IAC1H,EAALtqK,GACF,GAAmB,OAA4B,YAApBnmI,EAAIqwS,YAA4B,EAAI,OAC9DzmL,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,EAAG,cAAe,EAAG,YAAaD,SAAU,SAAmCqc,EAAInmI,GAOjH,IAAI0wS,EAP6H,EAALvqK,IAC5H,GAAsB,EAAG,MAAO,GAChC,GAAkB,gBAAgB,WAA4E,OAAOnmI,EAAI2wS,oBAAzH,CAA+I,eAAe,SAAuEr8G,GAAU,OAAOt0L,EAAI4oS,eAAet0G,MACzQ,GAAc,EAAG,SACjB,GAAc,GACd,MACO,EAALnuD,IAGF,GAAmB,sBADuD,OAAvDuqK,EAAU,GAAmB,EAAG,EAAG1wS,EAAIwwS,aAAuB,KAAOE,EAAQpnK,SAEhG,GAAkB,UAAWtpI,EAAIgwS,aAAjC,CAA+C,SAAUhwS,EAAIqwS,aAC7D,GAAiB,GACjB,GAAyBrwS,EAAIhd,WAC5BukJ,WAAY,CAAC,IAAiBC,MAAO,CAAC,IAAmBjvH,OAAQ,CAAC,uUAAwUqzG,cAAe,EAAG7rI,KAAM,CAAEqrK,UAAW,CAACuiJ,GAAqBC,eAAiBpiL,gBAAiB,IAlBhfwiL,IAAAA,KAsGMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEW3nL,UAAO,GAAwB,CAAEr3H,KAAMg/S,KACxDA,GAAiBxpL,UAAO,GAAwB,CAAErrH,QAAS,SAAkCtb,GAAK,OAAO,IAAKA,GAAKmwT,KAAwBnqL,UAAW,CAACuqL,IAA+CtqL,QAAS,CAAC,CACpM,GACA,GACA,GACA,IACD,GAAiB,MAN5BkqL,IAAAA,SAAAA,GAAAA,EAAAA,GAAAA,GAAAA,EAAAA,EAAAA,CAAAA,IAAAA,EAAAA,KChqCI,GAAA,GACI,GAAA,EAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAS/rQ,aAAA,eADrC,GAAA,EAAA,SAEQ,GAAA,EAAA,WAAA,GACJ,KAEA,GAAA,EAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAASA,aAAA,oBALrC,GAAA,EAAA,SAMQ,GAAA,EAAA,WAAA,GACJ,KAEA,GAAA,EAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,8BAT5B,GAAA,EAAA,SAUQ,GAAA,EAAA,WAAA,GACJ,KAEA,GAAA,GAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,kBAb5B,GAAA,GAAA,SAcQ,GAAA,GAAA,WAAA,GACJ,KAGA,GAAA,GAAA,SAAA,GAAwB,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,0BAlB5B,GAAA,GAAA,SAAA,GAAA,GAAA,SAmBQ,GAAA,GAAA,WAAA,GACJ,KACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KApB+D,GAAA,GAAA,GAAA,aAAA,GAAA,EAAA,EAAA,cAIK,GAAA,GAAA,GAAA,aAAA,GAAA,EAAA,EAAA,SAIH,GAAA,GAAA,GAAA,aAAA,GAAA,EAAA,GAAA,mBAIZ,GAAA,GAAA,GAAA,aAAA,GAAA,GAAA,GAAA,WAKQ,GAAA,GAAA,GAAA,WAAA,GAAA,GAAA,GAAA,EAAA,QAAA,CAA2B,aAAA,GAAA,GAAA,GAAA,eAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAM5F,GAAA,EAAA,MAAA,IACI,GAAA,EAAA,SAAA,IAAyD,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAASojE,QAAA,UADtE,GAAA,EAAA,SAEQ,GAAA,EAAA,WAAA,IACJ,KACA,GAAA,EAAA,SAAA,IAAyD,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAASA,QAAA,UAJtE,GAAA,EAAA,SAKQ,GAAA,EAAA,WAAA,IACJ,KACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAN4B,GAAA,GAAA,GAAA,YAAA,GAAA,EAAA,EAAA,EAAA,WAGA,GAAA,GAAA,GAAA,YAAA,GAAA,EAAA,EAAA,EAAA,YCTrB,IAAMwrM,GAAN,KAAMA,GAAN,WAOH,SAAA,EACWxrM,EACApjE,EACAo+J,EACA41D,EACCjxP,EACA0uG,GAAAA,gBAAAA,KAAAA,GALD,KAAArO,QAAAA,EACA,KAAApjE,aAAAA,EACA,KAAAo+J,SAAAA,EACA,KAAA41D,YAAAA,EACC,KAAAjxP,QAAAA,EACA,KAAA0uG,MAAAA,EAR+B,KAAAo9L,YAAAA,EALxC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,WAiBC,IAAMjnT,EAAMhG,KAAKo+C,aAAav7B,MACvB7c,IACPhG,KAAKo+C,aAALp+C,SACAA,KAAKwhH,QAAQz5G,IAAI,CAACnI,KAAAA,YAAAA,OAAkBoG,EAAIpG,MAAQyoL,KAAM,qBApBvD,CAAA,IAAA,mBAAA,MAAA,WA2BC,OAAQroL,KAAKo+C,aAAav7B,MAAMjjB,MAC5B,KAAK8vM,GAAYC,MAAM/vM,KACnBI,KAAKw8M,SAAS0wG,UAAUxlI,GAAW6B,QACnC,MACJ,KAAKmmB,GAAYE,QAAQhwM,KACrBI,KAAKw8M,SAAS0wG,UAAUxlI,GAAW8B,UACnC,MACJ,KAAKkmB,GAAY57L,KAAKlU,KAClBI,KAAKw8M,SAAS0wG,UAAUxlI,GAAW4B,SAnC5C,CAAA,IAAA,uBAAA,MAAA,WAyCCtpL,KAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUzE,GAAW8yF,oBAzC9C,CAAA,IAAA,2BAAA,MAAA,WA6CCx6Q,KAAKo+C,aAAaiG,eAClBrkD,KAAKmhB,QAAQkoM,kBA9Cd,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM2jG,IAA+B,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA/BA,GAA+B,UAAA,CAAA,CAAA,6BAAA,SAAA,EAAA,aAAA,SAAA,EAAA,GAAA,EAAA,GAAA,GAAA,cAAA,EAAA,aAAA,OAAA,CAAA,WAAA,cAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,QAAA,CAAA,QAAA,QAAA,EAAA,QAAA,CAAA,kBAAA,GAAA,EAAA,aAAA,SAAA,CAAA,UAAA,eAAA,CAAA,UAAA,QAAA,CAAA,UAAA,iBAAA,CAAA,UAAA,iBAAA,CAAA,kBAAA,GAAA,EAAA,WAAA,aAAA,SAAA,CAAA,UAAA,mBAAA,CAAA,EAAA,SAAA,CAAA,kBAAA,GAAA,EAAA,WAAA,SAAA,CAAA,UAAA,QAAA,CAAA,UAAA,SAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDpB5C,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,GAAA,GAAA,eAAA,GADJ,GAAA,EAAA,SAuBA,KAEA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,IAAA,EAAA,IAxBkB,GAAA,GAAA,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,eAwBC,GAAA,GAAA,GAAA,OAAA,EAAA,cAAA,WAAA,CAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,GAAA,IAAA,OAAA,CAAA,s8BAAA,cAAA,ICJe,GAAA,CAA7Bp+G,GAAO,GAAa6qE,SAAS,GAAA,cAAU,IAAV,GAAA,UAAA,gBAAA,GACA,GAAA,CAA7B7qE,GAAO,GAAa+qE,SAAS,GAAA,cAAU,IAAV,GAAA,UAAA,gBAAA,GACG,GAAA,CAAhC/qE,GAAO,GAAYo2E,aAAa,GAAA,cAAc,IAAd,GAAA,UAAA,oBAAA,GACN,GAAA,CAA1Bp2E,GAAO,GAAYpqI,OAAO,GAAA,cAAQ,IAAR,GAAA,UAAA,cAAA,GAAA,IAJxB,GAAA,EAAA,QAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,GCnBH,GAAA,EAAA,MAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAK,GAAA,MAAA,EAAA,IAAA,GAAA,CAAW,MAAA,EAAA,IAAX,CAAW,UAAA,EAAA,YAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,GAChB,GAAA,EAAA,MAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAK,GAAA,MAAA,EAAA,IAAA,GAAA,CAAW,MAAA,EAAA,IAAX,CAAW,UAAA,EAAA,YAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,GAChB,GAAA,EAAA,WAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAU,GAAA,UAAA,EAAA,IAAA,CAAe,UAAA,EAAA,YCQtB,IAAM2oP,GAAN,KAAMA,GAAN,WAOH,SAAA,EAAmB/oG,EAA4B/uL,GAAAA,gBAAAA,KAAAA,GAA5B,KAAA+uL,SAAAA,EAA4B,KAAA/uL,GAAAA,EALtC,KAAA+3R,IAAM,GACN,KAAA9/S,UAAY,GAEd,KAAA+/S,MAAQ,IAAI,GAA8C,MAL9D,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WASH,IAAA,EAAA,KACIrtT,KAAKqtT,MAAM9sT,WAAU4K,SAAAA,GACjBnL,EAAKq1B,GAAGk1I,cAAcnF,UAAUrvJ,OAAO,SACvC/V,EAAKq1B,GAAGk1I,cAAcnF,UAAUrvJ,OAAO,QAEnC/V,EAAKq1B,GAAGk1I,cAAcnF,UAAUr9J,IADvB,aAAToD,GAAgC,aAATA,EACa,QAEA,aAhB7C,CAAA,IAAA,cAAA,MAAA,WCXA,IAAuBrM,EDiCfkB,KAAK2N,OCjCU7O,EDkCJkB,KAAK2N,OC9BvB,YAAYzC,KAAKpM,IAMd,sBAAsBoM,KAAKpM,GDyB1BkB,KAAKqtT,MAAMnlT,KAAK,YACTlI,KAAK2N,IAAI/L,QAAQ,MAAQ,EAChC5B,KAAKqtT,MAAMnlT,KAAK,YAEhBlI,KAAKqtT,MAAMnlT,KAAK,aA5BrB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMilT,IAAoB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAApBA,GAAoB,UAAA,CAAA,CAAA,kBAAA,OAAA,CAAA,IAAA,MAAA,IAAA,MAAA,UAAA,aAAA,SAAA,CAAA,IAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,MAAA,MAAA,UAAA,EAAA,gBAAA,CAAA,EAAA,UAAA,UAAA,EAAA,gBAAA,CAAA,EAAA,MAAA,MAAA,WAAA,CAAA,EAAA,UAAA,YAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDXjC,GAAA,EAAA,GAAA,GAAA,EAAA,SACI,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,WAAA,GACJ,MCOiC,EAAA,IDXnB,GAAA,WAAA,GAAA,EAAA,EAAA,EAAA,QACyC,GAAA,GAAA,GAAA,eAAA,YACA,GAAA,GAAA,GAAA,eAAA,YACzB,GAAA,GAAA,GAAA,eAAA,UAAA,WAAA,CAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,gZAAA,gBAAA,IAAA,ICQvB,SAAA,GAAA,EAAA,GAAA,EAAA,GETC,GAAA,EAAA,MAAA,GAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAEA,GAAA,EAAA,SAAA,GAEQ,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,KAAA,UAAA,OAAA,KAAA,qBAAA,MAEJ,GAAA,EAAA,gBAAA,GACA,GAAA,EAAA,OAAA,GAAyB,GAAA,GAAkC,KAC/D,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAA,UAHQ,GAAA,WAAA,KAAA,kBAAA,IAC6C,GAAA,GAAA,GAAA,MAAA,EAAA,MACxB,GAAA,GAAA,GAAA,EAAA,cAAA,EAAA,OAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IARjC,GAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAEA,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,GAOJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAT2B,GAAA,GAAA,GAAA,OAAA,cAAA,EAAA,MAEf,GAAA,GAAA,GAAA,OAAA,cAAA,EAAA,OCmBT,IAAMG,GAAN,KAAMA,GAAN,WAGH,SAAA,EACW9wG,EACAtgM,EACCqlQ,EACDt4Q,EACAw4Q,EACCjgK,EACA01J,EACArnJ,EACAo6E,EACAsjH,GAAAA,gBAAAA,KAAAA,GATD,KAAA/wG,SAAAA,EACA,KAAAtgM,OAAAA,EACC,KAAAqlQ,SAAAA,EACD,KAAAt4Q,OAAAA,EACA,KAAAw4Q,UAAAA,EACC,KAAAjgK,QAAAA,EACA,KAAA01J,MAAAA,EACA,KAAArnJ,MAAAA,EACA,KAAAo6E,SAAAA,EACA,KAAAsjH,eAAAA,EAbT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAgBH,IAAA,EAAA,KACIvtT,KAAKiqM,SACA5lM,KAAKw9L,GAAmB/U,KACxBvsL,WAAU,WACPP,EAAKutT,eAAezxH,oBApB7B,CAAA,IAAA,uBAAA,MAAA,SAwByB54L,GACxB,MAAoB,UAAhBA,EAAKktD,OACEpwD,KAAKu0G,QACkB,iBAAhBrxG,EAAKktD,OACZpwD,KAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUjpL,EAAKktD,cAChB,mBAAhBltD,EAAKktD,QACnBltD,EAAKktD,YA9BV,CAAA,IAAA,oBAAA,MAAA,SAqCsBltD,GACrB,IAAMsqT,IAAiBxtT,KAAKkc,OAAO4sM,eAEnC,OAAI5lN,EAAKtD,OAAS8nL,GAAWkC,OACjB5pL,KAAKyhR,UAAUgsC,WAChBvqT,EAAKtD,OAAS8nL,GAAW0B,YACxBokI,IA3Cb,CAAA,IAAA,QAAA,MAAA,WAiDK,IAAA,EAAA,KACJxtT,KAAKyhR,UAAUjjR,QAAQkR,MAAK,WACxB1P,EAAKwhH,QAAQz5G,IAAI2+M,GAAa98B,OAC9B5pL,EAAKk3Q,MAAMj1Q,KAAK,0BApDrB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMqrT,IAAsB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAtBA,GAAsB,UAAA,CAAA,CAAA,mBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,kBAAA,GAAA,EAAA,mBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,WAAA,CAAA,QAAA,YAAA,EAAA,QAAA,CAAA,QAAA,0BAAA,EAAA,WAAA,QAAA,EAAA,QAAA,CAAA,EAAA,aAAA,CAAA,EAAA,WAAA,iBAAA,EAAA,WAAA,SAAA,CAAA,EAAA,eAAA,eAAA,EAAA,OAAA,CAAA,QAAA,GAAA,EAAA,SAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDvBnC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GADJ,GAAA,EAAA,SAYA,MCWmC,EAAA,IDvBW,GAAA,aAAA,GAC5B,GAAA,GAAA,GAAA,UAAA,GAAA,EAAA,EAAA,EAAA,cAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,i6BAAA,cAAA,EAAA,gBAAA,ICuBgB,GAAA,CAA7B1+G,GAAO,GAAYi2E,UAAU,GAAA,cAAW,GAAA,aAAX,GAAA,UAAA,iBAAA,GAAA,ICjB5B,GAAM,CAAC,eACP,GAAM,CAAC,aACP,GAAM,CAAC,eACb,SAAS6oC,GAAoCnrK,EAAInmI,GAE/C,GAF+D,EAALmmI,GACxD,GAAiB,EAAG,OACb,EAALA,EAAQ,CACV,IAAMorK,EAAS,KACf,GAA8B,eAAgBA,EAAOC,cAAe,IACpE,GAAmB,MAAOD,EAAOE,SAAU,OAE/C,SAASC,GAAoCvrK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAChE,IAAMwrK,EAAO,KACb,GAAsB,EAAG,MAAO,IAChC,GAAkB,YAAY,SAAqEr9G,GAA8E,OAApE,GAAqBq9G,GAAuB,KAAuCC,cAAct9G,KAA9M,CAA0N,aAAa,WAA8I,OAApE,GAAqBq9G,GAAuB,KAAuCE,YAAY,0BAAhZ,CAA4a,WAAW,WAA4I,OAApE,GAAqBF,GAAuB,KAAuCG,UAAU,2BAC5lB,GAAiB,EAAG,MAAO,IAC3B,KACF,GAAS,EAAL3rK,EAAQ,CACV,IAAM4rK,EAAS,KACf,GAAmB,mBAAoBA,EAAOC,gBAC9C,GAAkB,MAAO,EAAzB,CAA4B,MAAO,GACnC,GAAiB,GACjB,GAAmB,MAAwB,MAAjBD,EAAOE,OAAiB,KAAOF,EAAOE,OAAOnhT,EAAG,KAA1E,CAAgF,OAAyB,MAAjBihT,EAAOE,OAAiB,KAAOF,EAAOE,OAAOt0T,EAAG,OAE5I,SAASu0T,GAAuC/rK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACnE,IAAMgsK,EAAO,KACb,GAAsB,EAAG,SAAU,IACnC,GAAkB,SAAS,SAAwE79G,GAAU,GAAqB69G,GAAO,IAAMC,EAAU,KAAwB,OAAOA,EAAQC,iBAAiB/9G,EAAQ89G,EAAQE,kBACjO,GAAc,GACd,KACF,GAAS,EAALnsK,EAAQ,CACV,IAAMosK,EAAS,KACf,GAAkBA,EAAOC,uBACzB,GAAkB,WAAYD,EAAOE,gBAAkBF,EAAOE,eAAe7zT,QAAU2zT,EAAOG,yBAC9F,GAAiB,GACjB,GAA0B,IAAKH,EAAOI,qBAAsB,MAEhE,SAASC,GAAqCzsK,EAAInmI,GAAgB,EAALmmI,GACzD,GAAiB,EAAG,MAAO,IAE/B,SAAS0sK,GAA6C1sK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACzE,IAAM2sK,EAAO,KACb,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAAmFx+G,GAA+E,OAArE,GAAqBw+G,GAAuB,GAAqB,GAAmBC,cAAcz+G,KAAhO,CAA4O,YAAY,SAAgFA,GAA+E,OAArE,GAAqBw+G,GAAuB,GAAqB,GAAmBE,aAAa1+G,MACnb,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAM8sK,EAAU,GAAqB,GACrC,GAAkB,KAAM,EAAxB,CAA2B,QAA6B,MAApBA,EAAQC,SAAmB,KAAOD,EAAQC,SAASz1T,IAE3F,SAAS01T,GAA4ChtK,EAAInmI,GAAgB,EAALmmI,IAChE,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,MAEJ,SAASitK,GAAqCjtK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACjE,IAAMktK,EAAO,KACb,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2E/+G,GAA8E,OAApE,GAAqB++G,GAAuB,KAAuCN,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqB++G,GAAuB,KAAuCC,YAAYh/G,MACha,KACA,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2EA,GAA8E,OAApE,GAAqB++G,GAAuB,KAAuCN,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqB++G,GAAuB,KAAuCE,eAAej/G,MACna,KACA,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2EA,GAA8E,OAApE,GAAqB++G,GAAuB,KAAuCN,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqB++G,GAAuB,KAAuCG,cAAcl/G,MACla,KACA,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2EA,GAA8E,OAApE,GAAqB++G,GAAuB,KAAuCN,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqB++G,GAAuB,KAAuCI,aAAan/G,MACja,KACA,GAAkB,EAAGu+G,GAA8C,EAAG,EAAG,QAAS,IAClF,KACA,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,KACA,GAAsB,GAAI,OAC1B,GAAc,GAAI,KAClB,KACA,GAAsB,GAAI,OAC1B,GAAc,GAAI,KAClB,KACA,GAAsB,GAAI,OAC1B,GAAc,GAAI,KAClB,KACA,GAAkB,GAAIM,GAA6C,EAAG,EAAG,MAAO,IAChF,KACA,KACF,GAAS,EAALhtK,EAAQ,CACV,IAAMutK,EAAS,KACf,GAAmB,UAA6B,IAAlBA,EAAOxmS,OAAe,OAAS,SAC7D,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA4B,MAAnBwmS,EAAOR,SAAmB,KAAOQ,EAAOR,SAASl1T,GACvF,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA4B,MAAnB01T,EAAOR,SAAmB,KAAOQ,EAAOR,SAAS9hT,GACvF,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA4B,MAAnBsiT,EAAOR,SAAmB,KAAOQ,EAAOR,SAAS71T,GACvF,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA4B,MAAnBq2T,EAAOR,SAAmB,KAAOQ,EAAOR,SAASrzT,GACvF,GAAiB,GACjB,GAAkB,OAAkC,aAA1B6zT,EAAOC,gBACjC,GAAiB,IACjB,GAAkB,OAAkC,aAA1BD,EAAOC,iBAErC,SAASC,GAA6CztK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACzE,IAAM0tK,EAAO,KACb,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAAmFv/G,GAA+E,OAArE,GAAqBu/G,GAAuB,GAAqB,GAAmBd,cAAcz+G,KAAhO,CAA4O,YAAY,SAAgFA,GAA+E,OAArE,GAAqBu/G,GAAuB,GAAqB,GAAmBb,aAAa1+G,MACnb,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAM2tK,EAAU,GAAqB,GACrC,GAAkB,KAAM,EAAxB,CAA2B,QAA6B,MAApBA,EAAQC,SAAmB,KAAOD,EAAQC,SAASt2T,IAE3F,SAASu2T,GAA4C7tK,EAAInmI,GAAgB,EAALmmI,IAChE,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,MAEJ,SAAS8tK,GAAqC9tK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACjE,IAAM+tK,EAAO,KACb,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2E5/G,GAA8E,OAApE,GAAqB4/G,GAAuB,KAAuCnB,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqB4/G,GAAuB,KAAuCC,WAAW7/G,MAC/Z,KACA,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2EA,GAA8E,OAApE,GAAqB4/G,GAAuB,KAAuCnB,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqB4/G,GAAuB,KAAuCE,kBAAkB9/G,MACta,KACA,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2EA,GAA8E,OAApE,GAAqB4/G,GAAuB,KAAuCnB,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqB4/G,GAAuB,KAAuCG,iBAAiB//G,MACra,KACA,GAAkB,EAAGs/G,GAA8C,EAAG,EAAG,QAAS,IAClF,KACA,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,KACA,GAAsB,EAAG,OACzB,GAAc,GAAI,KAClB,KACA,GAAsB,GAAI,OAC1B,GAAc,GAAI,KAClB,KACA,GAAkB,GAAII,GAA6C,EAAG,EAAG,MAAO,IAChF,KACA,KACF,GAAS,EAAL7tK,EAAQ,CACV,IAAMmuK,EAAS,KACf,GAAmB,UAA6B,IAAlBA,EAAOpnS,OAAe,OAAS,SAC7D,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA4B,MAAnBonS,EAAOP,SAAmB,KAAOO,EAAOP,SAAS9lT,GACvF,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA4B,MAAnBqmT,EAAOP,SAAmB,KAAOO,EAAOP,SAASp2T,GACvF,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA4B,MAAnB22T,EAAOP,SAAmB,KAAOO,EAAOP,SAASpkT,GACvF,GAAiB,GACjB,GAAkB,OAAkC,aAA1B2kT,EAAOX,gBACjC,GAAiB,GACjB,GAAkB,OAAkC,aAA1BW,EAAOX,iBAErC,SAASY,GAA6CpuK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACzE,IAAMquK,EAAO,KACb,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAAmFlgH,GAA+E,OAArE,GAAqBkgH,GAAuB,GAAqB,GAAmBzB,cAAcz+G,KAAhO,CAA4O,YAAY,SAAgFA,GAA+E,OAArE,GAAqBkgH,GAAuB,GAAqB,GAAmBxB,aAAa1+G,MACnb,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAMsuK,EAAU,GAAqB,GACrC,GAAkB,KAAM,EAAxB,CAA2B,QAA6B,MAApBA,EAAQC,SAAmB,KAAOD,EAAQC,SAASj3T,IAE3F,SAASk3T,GAA4CxuK,EAAInmI,GAAgB,EAALmmI,IAChE,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,MAEJ,SAASyuK,GAAqCzuK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACjE,IAAM0uK,EAAO,KACb,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2EvgH,GAA8E,OAApE,GAAqBugH,GAAuB,KAAuC9B,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqBugH,GAAuB,KAAuCC,WAAWxgH,MAC/Z,KACA,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2EA,GAA8E,OAApE,GAAqBugH,GAAuB,KAAuC9B,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqBugH,GAAuB,KAAuCE,aAAazgH,MACja,KACA,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2EA,GAA8E,OAApE,GAAqBugH,GAAuB,KAAuC9B,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqBugH,GAAuB,KAAuCG,YAAY1gH,MACha,KACA,GAAkB,EAAGigH,GAA8C,EAAG,EAAG,QAAS,IAClF,KACA,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,KACA,GAAsB,EAAG,OACzB,GAAc,GAAI,KAClB,KACA,GAAsB,GAAI,OAC1B,GAAc,GAAI,KAClB,KACA,GAAkB,GAAII,GAA6C,EAAG,EAAG,MAAO,IAChF,KACA,KACF,GAAS,EAALxuK,EAAQ,CACV,IAAM8uK,EAAU,KAChB,GAAmB,UAA8B,IAAnBA,EAAQ/nS,OAAe,OAAS,SAC9D,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA6B,MAApB+nS,EAAQP,SAAmB,KAAOO,EAAQP,SAASngT,GACzF,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA6B,MAApB0gT,EAAQP,SAAmB,KAAOO,EAAQP,SAAS1mT,GACzF,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA6B,MAApBinT,EAAQP,SAAmB,KAAOO,EAAQP,SAASh3T,GACzF,GAAiB,GACjB,GAAkB,OAAmC,aAA3Bu3T,EAAQtB,gBAClC,GAAiB,GACjB,GAAkB,OAAmC,aAA3BsB,EAAQtB,iBAEtC,SAASuB,GAA6C/uK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACzE,IAAMgvK,EAAO,KACb,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAAmF7gH,GAA+E,OAArE,GAAqB6gH,GAAuB,GAAqB,GAAmBpC,cAAcz+G,KAAhO,CAA4O,YAAY,SAAgFA,GAA+E,OAArE,GAAqB6gH,GAAuB,GAAqB,GAAmBnC,aAAa1+G,MACnb,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAMivK,EAAU,GAAqB,GACrC,GAAkB,KAAM,EAAxB,CAA2B,QAASA,EAAQC,WAEhD,SAASC,GAA2CnvK,EAAInmI,GAAgB,EAALmmI,IAC/D,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,MAEJ,SAASovK,GAAqCpvK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACjE,IAAMqvK,EAAO,KACb,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,QAAS,IAClC,GAAkB,QAAQ,WAA4I,OAApE,GAAqBA,GAAuB,KAAuCC,WAAW,QAAhM,CAA0M,eAAe,SAA2EnhH,GAA8E,OAApE,GAAqBkhH,GAAuB,KAAuCzC,cAAcz+G,KAA/Y,CAA2Z,YAAY,SAAwEA,GAA8E,OAApE,GAAqBkhH,GAAuB,KAAuCC,WAAWnhH,MACvlB,KACA,GAAkB,EAAG4gH,GAA8C,EAAG,EAAG,QAAS,IAClF,KACA,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,OACzB,GAAc,EAAG,OACjB,KACA,GAAkB,EAAGI,GAA4C,EAAG,EAAG,MAAO,IAC9E,KACA,KACF,GAAS,EAALnvK,EAAQ,CACV,IAAMuvK,EAAU,KAChB,GAAmB,UAA8B,IAAnBA,EAAQxoS,OAAe,OAAS,SAC9D,GAAmB,YAAwC,WAA3BwoS,EAAQ/B,gBACxC,GAAiB,GACjB,GAAkB,QAAS+B,EAAQC,SACnC,GAAiB,GACjB,GAAkB,OAAmC,WAA3BD,EAAQ/B,gBAClC,GAAiB,GACjB,GAAkB,OAAmC,WAA3B+B,EAAQ/B,iBAEtC,SAASiC,GAA6CzvK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACzE,IAAM0vK,EAAO,KACb,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAAmFvhH,GAA+E,OAArE,GAAqBuhH,GAAuB,GAAqB,GAAmB9C,cAAcz+G,KAAhO,CAA4O,YAAY,SAAgFA,GAA+E,OAArE,GAAqBuhH,GAAuB,GAAqB,GAAmB7C,aAAa1+G,MACnb,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAM2vK,EAAU,GAAqB,GACrC,GAAkB,KAAM,EAAxB,CAA2B,QAA6B,MAApBA,EAAQ/B,SAAmB,KAAO+B,EAAQ/B,SAASt2T,IAE3F,SAASs4T,GAAqC5vK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACjE,IAAM6vK,EAAO,KACb,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,QAAS,IAClC,GAAkB,eAAe,SAA2E1hH,GAA8E,OAApE,GAAqB0hH,GAAuB,KAAuCjD,cAAcz+G,KAAvN,CAAmO,YAAY,SAAwEA,GAA8E,OAApE,GAAqB0hH,GAAuB,KAAuCC,aAAa3hH,MACja,KACA,GAAkB,EAAGshH,GAA8C,EAAG,EAAG,QAAS,IAClF,KACA,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,KACA,GAAsB,EAAG,OACzB,GAAc,EAAG,KACjB,KACA,KACA,KACF,GAAS,EAALzvK,EAAQ,CACV,IAAM+vK,EAAU,KAChB,GAAiB,GACjB,GAAkB,KAAM,IAAxB,CAA6B,QAA6B,MAApBA,EAAQnC,SAAmB,KAAOmC,EAAQnC,SAASpkT,GACzF,GAAiB,GACjB,GAAkB,OAAmC,aAA3BumT,EAAQvC,iBAEtC,SAASwC,GAAqChwK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACjE,IAAMiwK,EAAO,KACb,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,OAAQ,IACjC,GAAkB,SAAS,WAA4I,OAApE,GAAqBA,GAAuB,KAAuCC,gBAAe,MACrM,KACA,GAAsB,EAAG,OAAQ,IACjC,GAAkB,SAAS,WAA4I,OAApE,GAAqBD,GAAuB,KAAuCC,eAAe,MACrM,KACA,MAEJ,SAASC,GAAwDnwK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACpF,IAAMowK,EAAO,KACb,GAAsB,EAAG,OAAQ,IACjC,GAAkB,SAAS,SAAuFjiH,GAAU,GAAqBiiH,GAAO,IAAMC,EAAY,KAAuBp7H,UAAoD,OAAzB,GAAqB,GAAmBq7H,oBAAoBniH,EAAQkiH,MAChS,KACO,EAALrwK,GAEF,GADgB,GAAqB,GACXuwK,0BAE9B,SAASC,GAAiDxwK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC7E,IAAMywK,EAAO,KACb,GAAsB,EAAG,MAAO,IAChC,GAAkB,SAAS,WAAmF,GAAqBA,GAAO,IAAMJ,EAAYx2S,EAAIo7K,UAAoD,OAAzB,GAAqB,GAAmBy7H,mBAAmBL,MACtP,GAAkB,EAAGF,GAAyD,EAAG,EAAG,OAAQ,IAC5F,KACF,GAAS,EAALnwK,EAAQ,CACV,IAAMqwK,EAAYx2S,EAAIo7K,UAChB07H,EAAU,GAAqB,GACrC,GAAmB,mBAAoBN,GACvC,GAAiB,GACjB,GAAkB,OAAQM,EAAQC,mBAEtC,SAASC,GAA2C7wK,EAAInmI,GAItD,GAJsE,EAALmmI,IAC/D,GAAsB,EAAG,OACzB,GAAkB,EAAGwwK,GAAkD,EAAG,EAAG,MAAO,IACpF,MACO,EAALxwK,EAAQ,CACV,IAAM8wK,EAAU,GAAqB,GACrC,GAAkBA,EAAQC,qBAC1B,GAAiB,GACjB,GAAkB,UAAWD,EAAQxE,iBAEzC,SAAS0E,GAA2ChxK,EAAInmI,GAItD,GAJsE,EAALmmI,IAC/D,GAAsB,EAAG,OACzB,GAAc,GACd,MACO,EAALA,EAAQ,CACV,IAAMixK,EAAU,GAAqB,GACrC,GAAkBA,EAAQC,2BAC1B,GAAiB,GACjB,GAAyBD,EAAQE,uBAErC,SAASC,GAAqCpxK,EAAInmI,GAShD,GATgE,EAALmmI,IACzD,GAAsB,EAAG,MAAO,IAChC,GAAiB,EAAG,MACpB,GAAsB,EAAG,MAAO,IAChC,GAAc,GACd,KACA,GAAkB,EAAG6wK,GAA4C,EAAG,EAAG,MAAO,IAC9E,GAAkB,EAAGG,GAA4C,EAAG,EAAG,MAAO,IAC9E,MACO,EAALhxK,EAAQ,CACV,IAAMqxK,EAAU,KAChB,GAAiB,GACjB,GAAyBA,EAAQC,eACjC,GAAiB,GACjB,GAAkB,OAAkC,MAA1BD,EAAQ/E,eAAyB,KAAO+E,EAAQ/E,eAAe7zT,QACzF,GAAiB,GACjB,GAAkB,SAAoC,MAA1B44T,EAAQ/E,gBAAgC+E,EAAQ/E,eAAe7zT,SAAW44T,EAAQT,mBAElH,SAASW,GAA8CvxK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC1E,IAAMwxK,EAAO,KACb,GAAsB,EAAG,SAAU,IACnC,GAAkB,SAAS,SAA+ErjH,GAA+E,OAArE,GAAqBqjH,GAAuB,GAAqB,GAAmBC,cAActjH,MACtN,GAAc,GACd,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAM0xK,EAAU,GAAqB,GACrC,GAAkBA,EAAQC,qBAC1B,GAAiB,GACjB,GAAyBD,EAAQE,qBAErC,SAASC,GAA8C7xK,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC1E,IAAM8xK,EAAO,KACb,GAAsB,EAAG,SAAU,IACnC,GAAkB,SAAS,SAA+E3jH,GAA+E,OAArE,GAAqB2jH,GAAuB,GAAqB,GAAmBlF,cAAcz+G,MACtN,GAAc,GACd,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAM+xK,EAAU,GAAqB,GACrC,GAAkBA,EAAQC,iBAC1B,GAAiB,GACjB,GAAyBD,EAAQE,iBAErC,SAASC,GAAqClyK,EAAInmI,GAKhD,GALgE,EAALmmI,IACzD,GAAsB,EAAG,MAAO,IAChC,GAAkB,EAAGuxK,GAA+C,EAAG,EAAG,SAAU,IACpF,GAAkB,EAAGM,GAA+C,EAAG,EAAG,SAAU,IACpF,MACO,EAAL7xK,EAAQ,CACV,IAAMmyK,EAAU,KAChB,GAAiB,GACjB,GAAkB,OAAQA,EAAQC,gBAClC,GAAiB,GACjB,GAAkB,OAAQD,EAAQE,aAEtC,IAqFIC,GA/BAC,GA4gDAC,GArXAC,GAjzBAC,GA1NAC,GCzkBSC,GDuYTC,GACJ,SAAWA,GAAAA,OACPA,EAAaA,EAAkB,IAAI,GAAK,MACxCA,EAAaA,EAAmB,KAAI,GAAK,OACzCA,EAAaA,EAAmB,KAAI,GAAK,OACzCA,EAAaA,EAAmB,KAAI,GAAK,OAJlCA,EAAX,CAKG,IACGC,GACF,SAAA,EAAY1kT,EAAGvG,EAAGtQ,EAAGD,GAAAA,gBAAAA,KAAAA,GACjBmG,KAAK2Q,EAAIA,EACT3Q,KAAKoK,EAAIA,EACTpK,KAAKlG,EAAIA,EACTkG,KAAKnG,EAAIA,GAGXy7T,GACF,SAAA,EAAYjrT,EAAGtQ,EAAGmT,EAAGrT,GAAAA,gBAAAA,KAAAA,GACjBmG,KAAKqK,EAAIA,EACTrK,KAAKjG,EAAIA,EACTiG,KAAKkN,EAAIA,EACTlN,KAAKnG,EAAIA,GAGX07T,GACF,SAAA,EAAYlrT,EAAGtQ,EAAGgS,EAAGlS,GAAAA,gBAAAA,KAAAA,GACjBmG,KAAKqK,EAAIA,EACTrK,KAAKjG,EAAIA,EACTiG,KAAK+L,EAAIA,EACT/L,KAAKnG,EAAIA,GAGX27T,GACF,SAAA,EAAYp7T,EAAGoT,EAAG/T,EAAGwC,GAAO,IAAJpC,EAAI,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,EAAA,gBAAA,KAAA,GACxBmG,KAAK5F,EAAIA,EACT4F,KAAKwN,EAAIA,EACTxN,KAAKvG,EAAIA,EACTuG,KAAK/D,EAAIA,EACT+D,KAAKnG,EAAIA,GAAAA,KAiBbi7T,GAAAA,WACA,SAAA,IAAA,gBAAA,KAAA,GACI90T,KAAK8yD,SAAW,IAAI,GAFxBgiQ,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,SAIYjhS,GACR,IAAMpuB,EAAQouB,EAAMlpB,OAAOlF,MAC3B,QAAA,IAAIzF,KAAKy1T,GACLz1T,KAAK8yD,SAASo7D,KAAKzoH,OAElB,CACD,IAAMiwT,EAAUnwS,WAAW9f,GAC3BzF,KAAK8yD,SAASo7D,KAAK,CAAEhhH,EAAGwoT,EAASD,GAAIz1T,KAAKy1T,UAXlDX,EAAAA,IAeUlyL,UAAO,SAA+B5oI,GAAK,OAAO,IAAKA,GAAK86T,KAC1EA,GAAc1yL,UAAO,GAAyB,CAAEj3H,KAAM2pT,GAAep2R,UAAW,CAAC,CAAC,GAAI,OAAQ,KAAM2nG,aAAc,SAAoCkc,EAAInmI,GAAgB,EAALmmI,GAC7J,GAAkB,SAAS,SAAgDmuD,GAAU,OAAOt0L,EAAIu5S,YAAYjlH,OAC3GjqE,OAAQ,CAAEgvL,GAAI,KAAM3hT,KAAM,QAAU4yH,QAAS,CAAE5zE,SAAU,cAHlEgiQ,IAAAA,KAgBID,GAAAA,WACA,SAAA,EAAYe,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GACR51T,KAAK41T,MAAQA,EACb51T,KAAK61T,QAAU,IAAI,GACnB71T,KAAK81T,UAAY,IAAI,GACrB91T,KAAK8yD,SAAW,IAAI,GACpB9yD,KAAK+1T,aAAgBliS,SAAAA,GAAAA,OAAU7zB,EAAKs0G,KAAKzgF,IACzC7zB,KAAKg2T,aAAe,WAAA,OAAMh2T,EAAK03H,QAPnCm9L,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,YAAAA,MAAAA,SASUhhS,GACN7zB,KAAKsP,MAAMukB,KAVfghS,CAAAA,IAAAA,aAAAA,MAAAA,SAYWhhS,GACP7zB,KAAKsP,MAAMukB,KAbfghS,CAAAA,IAAAA,OAAAA,MAAAA,SAeKhhS,GACDA,EAAMqoC,iBACNl8D,KAAKk1D,UAAUrhC,KAjBnBghS,CAAAA,IAAAA,QAAAA,MAAAA,SAmBMhhS,GACF7zB,KAAKk1D,UAAUrhC,GACfA,EAAMuoC,kBACN3+D,SAASg2B,iBAAiB,UAAWzzB,KAAKg2T,cAC1Cv4T,SAASg2B,iBAAiB,WAAYzzB,KAAKg2T,cAC3Cv4T,SAASg2B,iBAAiB,YAAazzB,KAAK+1T,cAC5Ct4T,SAASg2B,iBAAiB,YAAazzB,KAAK+1T,cAC5C/1T,KAAK81T,UAAU5nM,SA1BnB2mM,CAAAA,IAAAA,OAAAA,MAAAA,WA6BIp3T,SAASk2B,oBAAoB,UAAW3zB,KAAKg2T,cAC7Cv4T,SAASk2B,oBAAoB,WAAY3zB,KAAKg2T,cAC9Cv4T,SAASk2B,oBAAoB,YAAa3zB,KAAK+1T,cAC/Ct4T,SAASk2B,oBAAoB,YAAa3zB,KAAK+1T,cAC/C/1T,KAAK61T,QAAQ3nM,SAjCjB2mM,CAAAA,IAAAA,OAAAA,MAAAA,SAmCKhhS,GACD,IAAMhN,EAAW7mB,KAAK41T,MAAMrrJ,cAAc9yI,wBAE1C,YAAA,IADe5D,EAAM26P,MAAuB36P,EAAM26P,MAAQ36P,EAAMgpC,QAAQ,GAAG2xN,OAC5D3nQ,EAAS3B,KAAOhoB,OAAOuxR,cAtC1ComC,CAAAA,IAAAA,OAAAA,MAAAA,SAwCKhhS,GACD,IAAMhN,EAAW7mB,KAAK41T,MAAMrrJ,cAAc9yI,wBAE1C,YAAA,IADe5D,EAAMk6P,MAAuBl6P,EAAMk6P,MAAQl6P,EAAMgpC,QAAQ,GAAGkxN,OAC5DlnQ,EAAS1B,IAAMjoB,OAAOoxR,cA3CzCumC,CAAAA,IAAAA,YAAAA,MAAAA,SA6CUhhS,GACN,IAAMnX,EAAQ1c,KAAK41T,MAAMrrJ,cAAcn6J,YACjCmM,EAASvc,KAAK41T,MAAMrrJ,cAAc2pE,aAClC16O,EAAIwpB,KAAKvI,IAAI,EAAGuI,KAAKxI,IAAIxa,KAAKi2T,KAAKpiS,GAAQnX,IAC3CjjB,EAAIupB,KAAKvI,IAAI,EAAGuI,KAAKxI,IAAIxa,KAAKk2T,KAAKriS,GAAQtX,SAAAA,IAC7Cvc,KAAKm2T,UAAAA,IAAqBn2T,KAAKo2T,IAC/Bp2T,KAAK8yD,SAASo7D,KAAK,CAAEn0H,EAAGP,EAAIkjB,EAAOxP,EAAI,EAAIzT,EAAI8iB,EAAS45S,IAAKn2T,KAAKm2T,IAAKC,IAAKp2T,KAAKo2T,WAAAA,IAE5Ep2T,KAAKm2T,UAAAA,IAAqBn2T,KAAKo2T,IACpCp2T,KAAK8yD,SAASo7D,KAAK,CAAEhhH,EAAGzT,EAAI8iB,EAAQ65S,IAAKp2T,KAAKo2T,WAAAA,IAEzCp2T,KAAKm2T,UAAAA,IAAqBn2T,KAAKo2T,KACpCp2T,KAAK8yD,SAASo7D,KAAK,CAAEhhH,EAAG1T,EAAIkjB,EAAOy5S,IAAKn2T,KAAKm2T,UAzDrDtB,EAAAA,IA6DYjyL,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAK66T,IAAiB,GAAyB,MACxHA,GAAgBzyL,UAAO,GAAyB,CAAEj3H,KAAM0pT,GAAiBn2R,UAAW,CAAC,CAAC,GAAI,SAAU,KAAM2nG,aAAc,SAAsCkc,EAAInmI,GAAgB,EAALmmI,GACrK,GAAkB,aAAa,SAAsDmuD,GAAU,OAAOt0L,EAAIi6S,UAAU3lH,KAApH,CAAgI,cAAc,SAAuDA,GAAU,OAAOt0L,EAAIg0Q,WAAW1/E,OACpOjqE,OAAQ,CAAE0vL,IAAK,MAAOC,IAAK,MAAO/H,OAAQ,UAAY3nL,QAAS,CAAEmvL,QAAS,UAAWC,UAAW,YAAahjQ,SAAU,cAHhI+hQ,IA+BMyB,GACF,SAAA,EAAYjsT,EAAGtQ,EAAGmT,EAAGrT,GAAAA,gBAAAA,KAAAA,GACjBmG,KAAKqK,EAAIA,EACTrK,KAAKjG,EAAIA,EACTiG,KAAKkN,EAAIA,EACTlN,KAAKnG,EAAIA,GAGX08T,GACF,SAAA,EAAYlsT,EAAGtQ,EAAGmT,EAAGrT,GAAAA,gBAAAA,KAAAA,GACjBmG,KAAKqK,EAAIA,EACTrK,KAAKjG,EAAIA,EACTiG,KAAKkN,EAAIA,EACTlN,KAAKnG,EAAIA,GAAAA,KAIbq7T,GAAAA,WACA,SAAA,IAAA,gBAAA,KAAA,GACIl1T,KAAKs3D,OAAS,KAFlB49P,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,YAAAA,MAAAA,SAIU59P,GACFt3D,KAAKs3D,QAAUt3D,KAAKs3D,SAAWA,GAA0C,WAAhCt3D,KAAKs3D,OAAOk/P,iBACrDx2T,KAAKs3D,OAAOm/P,cAEhBz2T,KAAKs3D,OAASA,IARlB49P,CAAAA,IAAAA,YAAAA,MAAAA,SAUUwB,GACN,IAAMrsT,EAAIqsT,EAAKrsT,EAAGtQ,EAAI28T,EAAK38T,EAAGmT,EAAIwpT,EAAKxpT,EAAGrT,EAAI68T,EAAK78T,EACnD,GAAU,IAANqT,EACA,OAAO,IAAIqoT,GAAKlrT,EAAG,EAAG,EAAGxQ,GAExB,GAAU,IAANE,GAAiB,IAANmT,EAChB,OAAO,IAAIqoT,GAAKlrT,EAAG,EAAG,EAAGxQ,GAGzB,IAAMkS,EAAImB,GAAK,EAAInT,GAAK,EACxB,OAAO,IAAIw7T,GAAKlrT,EAAG6C,EAAInT,GAAK,EAAIipB,KAAK6K,IAAI,EAAI9hB,EAAI,IAAKA,EAAGlS,KApBjEq7T,CAAAA,IAAAA,YAAAA,MAAAA,SAuBUyB,GACN,IAAMtsT,EAAI2Y,KAAKxI,IAAIm8S,EAAKtsT,EAAG,GAAItQ,EAAIipB,KAAKxI,IAAIm8S,EAAK58T,EAAG,GAC9CgS,EAAIiX,KAAKxI,IAAIm8S,EAAK5qT,EAAG,GAAIlS,EAAImpB,KAAKxI,IAAIm8S,EAAK98T,EAAG,GACpD,GAAU,IAANkS,EACA,OAAO,IAAIupT,GAAKjrT,EAAG,EAAG,EAAGxQ,GAGzB,IAAMqT,EAAInB,EAAIhS,GAAK,EAAIipB,KAAK6K,IAAI,EAAI9hB,EAAI,IAAM,EAC9C,OAAO,IAAIupT,GAAKjrT,EAAG,GAAK6C,EAAInB,GAAKmB,EAAGA,EAAGrT,KA/B/Cq7T,CAAAA,IAAAA,aAAAA,MAAAA,SAkCWwB,GACP,IAAI/lT,EAAGvG,EAAGtQ,EACJuQ,EAAIqsT,EAAKrsT,EAAGtQ,EAAI28T,EAAK38T,EAAGmT,EAAIwpT,EAAKxpT,EAAGrT,EAAI68T,EAAK78T,EAC7Cc,EAAIqoB,KAAKa,MAAU,EAAJxZ,GACfJ,EAAQ,EAAJI,EAAQ1P,EACZ+L,EAAIwG,GAAK,EAAInT,GACbH,EAAIsT,GAAK,EAAIjD,EAAIlQ,GACjBC,EAAIkT,GAAK,GAAK,EAAIjD,GAAKlQ,GAC7B,OAAQY,EAAI,GACR,KAAK,EACDgW,EAAIzD,EAAG9C,EAAIpQ,EAAGF,EAAI4M,EAClB,MACJ,KAAK,EACDiK,EAAI/W,EAAGwQ,EAAI8C,EAAGpT,EAAI4M,EAClB,MACJ,KAAK,EACDiK,EAAIjK,EAAG0D,EAAI8C,EAAGpT,EAAIE,EAClB,MACJ,KAAK,EACD2W,EAAIjK,EAAG0D,EAAIxQ,EAAGE,EAAIoT,EAClB,MACJ,KAAK,EACDyD,EAAI3W,EAAGoQ,EAAI1D,EAAG5M,EAAIoT,EAClB,MACJ,KAAK,EACDyD,EAAIzD,EAAG9C,EAAI1D,EAAG5M,EAAIF,EAClB,MACJ,QACI+W,EAAI,EAAGvG,EAAI,EAAGtQ,EAAI,EAE1B,OAAO,IAAIu7T,GAAK1kT,EAAGvG,EAAGtQ,EAAGD,KAhE7Bq7T,CAAAA,IAAAA,YAAAA,MAAAA,SAkEU0B,GAIN,OAAO,IAAIvB,IAHA,EAAIuB,EAAKx8T,IAAM,EAAIw8T,EAAK36T,IACxB,EAAI26T,EAAKppT,IAAM,EAAIopT,EAAK36T,IACxB,EAAI26T,EAAKn9T,IAAM,EAAIm9T,EAAK36T,GACV26T,EAAK/8T,KAtElCq7T,CAAAA,IAAAA,aAAAA,MAAAA,SAwEW2B,GACP,IAAM56T,EAAI,EAAI+mB,KAAKvI,IAAIo8S,EAAKlmT,EAAGkmT,EAAKzsT,EAAGysT,EAAK/8T,GAC5C,OAAU,IAANmC,EACO,IAAIu5T,GAAK,EAAG,EAAG,EAAG,EAAGqB,EAAKh9T,GAM1B,IAAI27T,IAHA,EAAIqB,EAAKlmT,EAAI1U,IAAM,EAAIA,IACvB,EAAI46T,EAAKzsT,EAAInO,IAAM,EAAIA,IACvB,EAAI46T,EAAK/8T,EAAImC,IAAM,EAAIA,GACTA,EAAG46T,EAAKh9T,KAjFzCq7T,CAAAA,IAAAA,aAAAA,MAAAA,SAoFW2B,GACP,IAAIxsT,EAAGtQ,EACD4W,EAAIqS,KAAKxI,IAAIq8S,EAAKlmT,EAAG,GAAIvG,EAAI4Y,KAAKxI,IAAIq8S,EAAKzsT,EAAG,GAC9CtQ,EAAIkpB,KAAKxI,IAAIq8S,EAAK/8T,EAAG,GAAID,EAAImpB,KAAKxI,IAAIq8S,EAAKh9T,EAAG,GAC9C4gB,EAAMuI,KAAKvI,IAAI9J,EAAGvG,EAAGtQ,GAAI0gB,EAAMwI,KAAKxI,IAAI7J,EAAGvG,EAAGtQ,GAC9CoT,EAAIuN,EAAKpgB,EAAIogB,EAAMD,EAEzB,GADAzgB,EAAa,IAAR0gB,EAAa,EAAIpgB,EAAIogB,EACtBA,IAAQD,EACRnQ,EAAI,MAEH,CACD,OAAQoQ,GACJ,KAAK9J,EACDtG,GAAKD,EAAItQ,GAAKO,GAAK+P,EAAItQ,EAAI,EAAI,GAC/B,MACJ,KAAKsQ,EACDC,GAAKvQ,EAAI6W,GAAKtW,EAAI,EAClB,MACJ,KAAKP,EACDuQ,GAAKsG,EAAIvG,GAAK/P,EAAI,EAClB,MACJ,QACIgQ,EAAI,EAEZA,GAAK,EAET,OAAO,IAAIirT,GAAKjrT,EAAGtQ,EAAGmT,EAAGrT,KA9G7Bq7T,CAAAA,IAAAA,YAAAA,MAAAA,SAgHU2B,EAAMC,GAEZ,IAAIC,EAAM,KAAQ,GAAK,GAAOF,EAAKlmT,GAAK,GAAOkmT,EAAKzsT,GAAK,EAAKysT,EAAK/8T,GAAG+F,SAAS,IAAIiC,OAAO,GAK1F,OAJIg1T,IACAC,IAAQ,IAAW/zS,KAAKooB,MAAe,IAATyrR,EAAKh9T,IAAUgG,SAAS,IAAIiC,OAAO,IAG9Di1T,IAvHX7B,CAAAA,IAAAA,gBAAAA,MAAAA,SAyHc0B,GACV,OAAO,IAAIpB,GAAKoB,EAAKx8T,EAAI,IAAKw8T,EAAKppT,EAAI,IAAKopT,EAAKn9T,EAAI,IAAKm9T,EAAK36T,EAAI,IAAK26T,EAAK/8T,KA1HjFq7T,CAAAA,IAAAA,kBAAAA,MAAAA,SA4HgB0B,GACZ,OAAO,IAAIpB,GAAKxyS,KAAKa,MAAe,IAAT+yS,EAAKx8T,GAAU4oB,KAAKa,MAAe,IAAT+yS,EAAKppT,GAAUwV,KAAKa,MAAe,IAAT+yS,EAAKn9T,GAAUupB,KAAKa,MAAe,IAAT+yS,EAAK36T,GAAU26T,EAAK/8T,KA7HjIq7T,CAAAA,IAAAA,kBAAAA,MAAAA,SA+HgB2B,GACZ,OAAO,IAAIxB,GAAKryS,KAAKooB,MAAe,IAATyrR,EAAKlmT,GAAUqS,KAAKooB,MAAe,IAATyrR,EAAKzsT,GAAU4Y,KAAKooB,MAAe,IAATyrR,EAAK/8T,GAAU+8T,EAAKh9T,KAhIvGq7T,CAAAA,IAAAA,eAAAA,MAAAA,WAkI2C,IAA9B8B,EAA8B,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAhB,GAAIF,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACnCJ,EAAO,KACXM,GAAeA,GAAe,IAAItoT,cAClC,IAAMuoT,EAAgB,CAClB,CACIl+O,GAAI,4FACJvjE,MAAO,SAAU0hT,GACb,OAAO,IAAI7B,GAAKhnT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAI,IAAM,IAAKljT,MAAMuR,WAAW2xS,EAAW,KAAO,EAAI3xS,WAAW2xS,EAAW,OAE3L,CACCn+O,GAAI,0FACJvjE,MAAO,SAAU0hT,GACb,OAAO,IAAI3B,GAAKlnT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAI,IAAM,IAAKljT,MAAMuR,WAAW2xS,EAAW,KAAO,EAAI3xS,WAAW2xS,EAAW,QA0BlM,IAAK,IAAMh7T,KArBP+6T,EAAcv2T,KADdo2T,EACmB,CACf/9O,GAAI,sEACJvjE,MAAO,SAAU0hT,GACb,OAAO,IAAI7B,GAAKhnT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,IAAM,KAAM,IAAM,OAKpJ,CACfn+O,GAAI,qDACJvjE,MAAO,SAAU0hT,GACb,OAAO,IAAI7B,GAAKhnT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAI,IAAM,IAAK,MAIrID,EAAcv2T,KAAK,CACfq4E,GAAI,4CACJvjE,MAAO,SAAU0hT,GACb,OAAO,IAAI7B,GAAKhnT,SAAS6oT,EAAW,GAAKA,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAKA,EAAW,GAAI,IAAM,IAAK7oT,SAAS6oT,EAAW,GAAKA,EAAW,GAAI,IAAM,IAAK,MAG/JD,EACd,GAAIA,EAAc14T,eAAerC,GAAM,CACnC,IAAMupC,EAASwxR,EAAc/6T,GACvB4D,EAAQ2lC,EAAOszC,GAAGt3E,KAAKu1T,GAAc/7R,EAAQn7B,GAAS2lC,EAAOjwB,MAAM1V,GACzE,GAAIm7B,EAOA,OANIA,aAAiBo6R,GACjBqB,EAAO12T,KAAKm3T,WAAWl8R,GAElBA,aAAiBs6R,KACtBmB,EAAO12T,KAAKo3T,UAAUn8R,IAEnBy7R,EAInB,OAAOA,IAvLXxB,CAAAA,IAAAA,eAAAA,MAAAA,SAyLawB,EAAMW,EAAcC,GAI7B,OAHqB,SAAjBD,IACAA,EAAeX,EAAK78T,EAAI,EAAI,OAAS,OAEjCw9T,GACJ,IAAK,OACD,IAAMV,EAAO32T,KAAKu3T,UAAUb,GACtBvG,EAAW,IAAIoF,GAAKvyS,KAAKooB,MAAiB,IAAVurR,EAAM,GAAU3zS,KAAKooB,MAAe,IAATurR,EAAK58T,GAAUipB,KAAKooB,MAAe,IAATurR,EAAK5qT,GAAUiX,KAAKooB,MAAe,IAATurR,EAAK98T,GAAW,KACrI,OAAI68T,EAAK78T,EAAI,GAAsB,WAAjBy9T,EACP,QAAUnH,EAAS9lT,EAAI,IAAM8lT,EAASp2T,EAAI,KAAOo2T,EAASpkT,EAAI,KACjEokT,EAASt2T,EAAI,IAGV,OAASs2T,EAAS9lT,EAAI,IAAM8lT,EAASp2T,EAAI,KAAOo2T,EAASpkT,EAAI,KAE5E,IAAK,OACD,IAAM8qT,EAAO72T,KAAKw3T,gBAAgBx3T,KAAKy3T,WAAWf,IAClD,OAAIA,EAAK78T,EAAI,GAAsB,WAAjBy9T,EACP,QAAUT,EAAKlmT,EAAI,IAAMkmT,EAAKzsT,EAAI,IAAMysT,EAAK/8T,EAAI,IACpDkpB,KAAKooB,MAAe,IAATyrR,EAAKh9T,GAAW,IAAM,IAG9B,OAASg9T,EAAKlmT,EAAI,IAAMkmT,EAAKzsT,EAAI,IAAMysT,EAAK/8T,EAAI,IAE/D,QACI,IAAMg9T,EAA8B,WAAjBQ,GAA8C,WAAjBA,EAChD,OAAOt3T,KAAK03T,UAAU13T,KAAKw3T,gBAAgBx3T,KAAKy3T,WAAWf,IAAQI,QAnN/E5B,EAAAA,IAuNetyL,UAAO,SAAoC5oI,GAAK,OAAO,IAAKA,GAAKk7T,KACpFA,GAAmBx0L,WAAQ,GAA0B,CAAErB,MAAO61L,GAAoB5/S,QAAS4/S,GAAmBtyL,YAD9GsyL,IAAAA,KAGID,GAAAA,WACA,SAAA,EAAYW,EAAO+B,EAAOjjK,GAAAA,gBAAAA,KAAAA,GACtB10J,KAAK41T,MAAQA,EACb51T,KAAK23T,MAAQA,EACb33T,KAAK00J,QAAUA,EACf10J,KAAK43T,QAAAA,EACL53T,KAAK63T,gBAAkB,GACvB73T,KAAK83T,kBAAoB,GACzB93T,KAAK+3T,kBAAoB,CACrB3C,GAAa4C,IACb5C,GAAa93S,KACb83S,GAAa6C,KACb7C,GAAa8C,MAEjBl4T,KAAKm4T,sBAAAA,EAdTlD,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,YAAAA,MAAAA,SAgBUphS,GACF7zB,KAAK8pL,MAAiC,UAAzB9pL,KAAKw2T,iBAClBx2T,KAAKg0T,cAAcngS,KAlB3BohS,CAAAA,IAAAA,cAAAA,MAAAA,SAqBYphS,GACJ7zB,KAAK8pL,MAAiC,UAAzB9pL,KAAKw2T,iBAClBx2T,KAAKmvT,cAAct7R,KAvB3BohS,CAAAA,IAAAA,WAAAA,MAAAA,WA0BA,IAAA,EAAA,KACIj1T,KAAKquT,OAAS,IAAIiI,GAAe,EAAG,EAAG,EAAG,GAG1Ct2T,KAAKo4T,aAAe,IAAI7B,GAFPv2T,KAAKq4T,UAAU9tJ,cAAcn6J,aAAe,IAEXpQ,KAAKs4T,QAAS,IAD7Ct4T,KAAKu4T,YAAYhuJ,cAAcn6J,aAAe,KAG7DpQ,KAAKspB,OADLtpB,KAAKw4T,cACSpD,GAAa8C,KAEE,SAAxBl4T,KAAKy4T,eACIrD,GAAa93S,KAEE,SAAxBtd,KAAKy4T,eACIrD,GAAa6C,KAGb7C,GAAa4C,IAE/Bh4T,KAAK04T,kBAAqB7kS,SAAAA,GAAY7zB,EAAKknD,YAAYrzB,IACvD7zB,KAAK24T,eAAiB,WAAQ34T,EAAK44T,YACnC54T,KAAK64T,WAAW74T,KAAK84T,cAAAA,KA7CzB7D,CAAAA,IAAAA,cAAAA,MAAAA,WAgDIj1T,KAAKy2T,gBAhDTxB,CAAAA,IAAAA,kBAAAA,MAAAA,WAmDyB,MAAjBj1T,KAAKs4T,SAA4C,WAAzBt4T,KAAKw2T,kBAG7Bx2T,KAAKo4T,aAAe,IAAI7B,GAFPv2T,KAAKq4T,UAAU9tJ,cAAcn6J,aAAe,IAEXpQ,KAAKs4T,QAAS,IAD7Ct4T,KAAKu4T,YAAYhuJ,cAAcn6J,aAAe,KAEjEpQ,KAAK+4T,mBAAAA,GACL/4T,KAAK23T,MAAM/wI,mBAxDnBquI,CAAAA,IAAAA,aAAAA,MAAAA,SA2DWh6R,GAAc,IAAPizF,IAAO,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GACrBluH,KAAK00J,QAAQskK,UAAUh5T,MAClBA,KAAK0c,QACN1c,KAAKs4T,QAAUt4T,KAAKi5T,oBAAoB1uJ,cAAcn6J,aAErDpQ,KAAKuc,SACNvc,KAAKuc,OAAS,KAElBvc,KAAKk5T,gBAAgBj+R,GACrBj7B,KAAKizT,mBAAmBh4R,EAAOizF,GAC/BluH,KAAKm5T,oBArETlE,CAAAA,IAAAA,cAAAA,MAAAA,WAwEIj1T,KAAKo5T,qBAxETnE,CAAAA,IAAAA,cAAAA,MAAAA,SA0EYz+Q,EAAU+3G,EAAYtzH,EAAOq9R,EAASe,EAAU7C,EAAiB8C,EAAiBC,EAAaf,EAAezI,EAAgB0I,EAAgBe,EAAgBC,EAAmBC,EAAoBC,EAAqBC,EAAwBC,EAAYC,EAAkBC,EAA2BlG,EAAehF,EAAgByE,EAAqBxE,EAAyB4E,EAAsBD,EAA2BmB,EAAYL,EAAiBC,EAAgBG,EAAgBT,EAAqBC,EAAoBhB,EAAkBvE,EAAuBG,EAAsB+D,GACtlB9yT,KAAKk5T,gBAAgBj+R,GACrBj7B,KAAKg6T,aAAaT,GAClBv5T,KAAK43T,OAAyB,KAhctC,WACI,IAAI3mT,EAAK,GACgB,oBAAdnG,YACPmG,EAAKnG,UAAUY,UAAUgD,eAE7B,IAAMurT,EAAOhpT,EAAGrP,QAAQ,SACxB,OAAIq4T,EAAO,GAEA5rT,SAAS4C,EAAGzN,UAAUy2T,EAAO,EAAGhpT,EAAGrP,QAAQ,IAAKq4T,IAAQ,IARvE,GAicQj6T,KAAKk6T,kBAAoB1jR,EACzBx2C,KAAKi5T,oBAAsB1qK,EAC3BvuJ,KAAKw5T,eAAiBA,EACtBx5T,KAAKw4T,cAAgBA,EACrBx4T,KAAK+vT,eAAiBA,EACtB/vT,KAAKy4T,eAAiBA,EACtBz4T,KAAKw2T,gBAAkBA,EACvBx2T,KAAKy5T,kBAAoBA,EACzBz5T,KAAK05T,mBAAqBA,EAC1B15T,KAAK25T,oBAAsBA,EAC3B35T,KAAKm4T,qBAAuByB,EAC5B55T,KAAK0c,MAAQ1c,KAAKs4T,QAAUjqT,SAASiqT,EAAS,IAC9Ct4T,KAAKuc,OAASvc,KAAKq5T,SAAWhrT,SAASgrT,EAAU,IACjDr5T,KAAK65T,WAAaA,EAClB75T,KAAK85T,iBAAmBzrT,SAASyrT,EAAkB,IACnD95T,KAAK40T,WAAaA,EAClB50T,KAAKw0T,eAAiBA,EACtBx0T,KAAKu0T,gBAAkBA,EACvBv0T,KAAK20T,eAAiBA,EACtB30T,KAAKm0T,mBAAqBA,EAC1Bn0T,KAAKk0T,oBAAsBA,EAC3Bl0T,KAAKm6T,cAAgBb,GAAmB,OACxCt5T,KAAKo6T,gBAAgBvG,EAAehF,GACpC7uT,KAAKszT,oBAAsBA,EAC3BtzT,KAAK8uT,wBAA0BA,EAC/B9uT,KAAK0zT,qBAAuBA,EAC5B1zT,KAAKyzT,0BAA4BA,EACjCzzT,KAAKmzT,iBAAmBA,EACxBnzT,KAAK+uT,qBAAuBA,EAC5B/uT,KAAK4uT,sBAAwBA,EAC7B5uT,KAAK8yT,yBAA2BA,EAC3BiH,IACD/5T,KAAK83T,kBAAoB,GAEL,WAApBtB,IACAx2T,KAAK63T,gBAAkB,EACvB73T,KAAK83T,kBAAoB,GAEN,QAAnBW,GACmB,WAAnB1I,GAAkD,WAAnBA,IAC/B/vT,KAAK+vT,eAAiB,cAtH9BkF,CAAAA,IAAAA,eAAAA,MAAAA,SAyHalrO,GACT,OAAQA,EAAKlqF,WAAWqmB,eACpB,IAAK,IACL,IAAK,IACL,IAAK,QACDlmB,KAAKu5T,YAAc,EACnB,MACJ,IAAK,IACL,IAAK,IACL,IAAK,YACDv5T,KAAKu5T,YAAc,EACnB,MACJ,IAAK,IACL,IAAK,IACL,IAAK,UACDv5T,KAAKu5T,YAAc,EACnB,MACJ,QACIv5T,KAAKu5T,YAAc,KA3I/BtE,CAAAA,IAAAA,kBAAAA,MAAAA,SA8IgBh6R,GACZj7B,KAAK84T,aAAe79R,IA/IxBg6R,CAAAA,IAAAA,kBAAAA,MAAAA,SAiJgBpB,EAAehF,GAC3B7uT,KAAK6zT,cAAgBA,EACrB7zT,KAAK6uT,eAAiBA,IAnJ1BoG,CAAAA,IAAAA,qBAAAA,MAAAA,SAqJmBxvT,GAA6B,IACxCixT,EADkBxoM,IAAsB,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAAT8G,IAAS,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,IAEhB,WAAxBh1H,KAAK+vT,gBAAuD,WAAxB/vT,KAAK+vT,mBACzC2G,EAAO12T,KAAK00J,QAAQ2lK,aAAa50T,GAAAA,KACnBzF,KAAK02T,QAKnBA,EAAO12T,KAAK00J,QAAQ2lK,aAAa50T,GAAAA,IAEhCixT,GAAS12T,KAAK02T,OACfA,EAAO12T,KAAK00J,QAAQ2lK,aAAar6T,KAAKm6T,eAAAA,IAEtCzD,IACA12T,KAAK02T,KAAOA,EACZ12T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,EACG,QAAxBrK,KAAKy4T,gBAAoD,aAAxBz4T,KAAK+vT,iBACtC/vT,KAAK02T,KAAK78T,EAAI,GAElBmG,KAAK+4T,kBAAkB7qM,EAAM8G,MAzKrCigM,CAAAA,IAAAA,WAAAA,MAAAA,WA6K0B,UAAlBj1T,KAAK6mB,SACL7mB,KAAKu6T,oBAEyB,WAAzBv6T,KAAKw2T,iBACVx2T,KAAKo5T,qBAjLbnE,CAAAA,IAAAA,YAAAA,MAAAA,SAoLU5G,GACNruT,KAAKk6T,kBAAkBM,cAAc,CAAEnM,OAAQA,EAAQpzR,MAAOj7B,KAAKy6T,gBArLvExF,CAAAA,IAAAA,cAAAA,MAAAA,SAuLY5G,GACRruT,KAAKk6T,kBAAkBQ,gBAAgB,CAAErM,OAAQA,EAAQpzR,MAAOj7B,KAAKy6T,gBAxLzExF,CAAAA,IAAAA,cAAAA,MAAAA,SA0LYphS,IACJ7zB,KAAK8pL,MACJ9pL,KAAK43T,QAAmC,UAAzB53T,KAAKw2T,iBACrB3iS,EAAMlpB,SAAW3K,KAAKi5T,oBAAoB1uJ,eACzCvqK,KAAK26T,aAAa36T,KAAK41T,MAAMrrJ,cAAe12I,EAAMlpB,SAClD3K,KAAK26T,aAAa36T,KAAKi5T,oBAAoB1uJ,cAAe12I,EAAMlpB,SACS,IAA1E3K,KAAKy5T,kBAAkBviT,QAAQhU,SAAAA,GAAAA,OAASA,IAAS2wB,EAAMlpB,UAAQ3P,SAC3DgF,KAAK05T,mBACL15T,KAAKk6T,kBAAkBU,cAAc56T,KAAKy6T,cAG1Cz6T,KAAK02T,KAAO,KACZ12T,KAAKizT,mBAAmBjzT,KAAK84T,cAAAA,GACzB94T,KAAKw4T,eACLx4T,KAAKk6T,kBAAkBW,YAAY76T,KAAK86T,WAE5C96T,KAAKk6T,kBAAkBa,aAAa/6T,KAAK84T,cACzC94T,KAAKk6T,kBAAkBc,iBAEvBh7T,KAAK25T,qBACL35T,KAAKo5T,sBA9MjBnE,CAAAA,IAAAA,gBAAAA,MAAAA,SAkNcphS,GACVA,EAAMuoC,kBACFp8D,KAAKy6T,aACLz6T,KAAKk6T,kBAAkBU,cAAc56T,KAAKy6T,aAEjB,UAAzBz6T,KAAKw2T,iBACLx2T,KAAKo5T,qBAxNbnE,CAAAA,IAAAA,gBAAAA,MAAAA,SA2NcphS,GACV7zB,KAAK02T,KAAO,KACZ7iS,EAAMuoC,kBACNp8D,KAAKk6T,kBAAkBc,gBACvBh7T,KAAKizT,mBAAmBjzT,KAAK84T,cAAAA,GACA,UAAzB94T,KAAKw2T,kBACDx2T,KAAKw4T,eACLx4T,KAAKk6T,kBAAkBW,YAAY76T,KAAK86T,WAE5C96T,KAAKk6T,kBAAkBa,aAAa/6T,KAAK84T,cAAAA,GACzC94T,KAAKo5T,sBArObnE,CAAAA,IAAAA,iBAAAA,MAAAA,SAwOermN,GACX,IAAMqsN,EAAmBj7T,KAAK+3T,kBAAkB/8T,QAC3CgF,KAAKw4T,cAAgB,EAAI,GACxB0C,IAAgBl7T,KAAK+3T,kBAAkBn2T,QAAQ5B,KAAKspB,QAAUslF,GAChEqsN,EAAoBA,GAAoBA,EAC5Cj7T,KAAKspB,OAAStpB,KAAK+3T,kBAAkBmD,KA7OzCjG,CAAAA,IAAAA,gBAAAA,MAAAA,SA+OcxvT,GACVzF,KAAK02T,KAAK38T,EAAI0L,EAAM1L,EAAI0L,EAAM0wT,IAC9Bn2T,KAAK02T,KAAKxpT,EAAIzH,EAAMyH,EAAIzH,EAAM2wT,IAC9Bp2T,KAAK+4T,oBACL/4T,KAAKk6T,kBAAkBiB,cAAc,CACjC9M,OAAQ,YACR5oT,MAAOzF,KAAK02T,KAAKxpT,EACjB+tB,MAAOj7B,KAAKy6T,cAEhBz6T,KAAKk6T,kBAAkBiB,cAAc,CACjC9M,OAAQ,aACR5oT,MAAOzF,KAAK02T,KAAK38T,EACjBkhC,MAAOj7B,KAAKy6T,gBA3PpBxF,CAAAA,IAAAA,cAAAA,MAAAA,SA8PYxvT,GACRzF,KAAK02T,KAAKrsT,EAAI5E,EAAMyH,EAAIzH,EAAM0wT,IAC9Bn2T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,EACzBrK,KAAK+4T,oBACL/4T,KAAKk6T,kBAAkBiB,cAAc,CACjC9M,OAAQ,MACR5oT,MAAOzF,KAAK02T,KAAKrsT,EACjB4wB,MAAOj7B,KAAKy6T,gBArQpBxF,CAAAA,IAAAA,gBAAAA,MAAAA,SAwQcxvT,GACVzF,KAAK02T,KAAKxpT,EAAIzH,EAAMyH,EAAIzH,EAAM0wT,IAC9Bn2T,KAAK+4T,oBACL/4T,KAAKk6T,kBAAkBiB,cAAc,CACjC9M,OAAQ,QACR5oT,MAAOzF,KAAK02T,KAAKxpT,EACjB+tB,MAAOj7B,KAAKy6T,gBA9QpBxF,CAAAA,IAAAA,gBAAAA,MAAAA,SAiRcxvT,GACVzF,KAAK02T,KAAK78T,EAAI4L,EAAMyH,EAAIzH,EAAM0wT,IAC9Bn2T,KAAK+4T,oBACL/4T,KAAKk6T,kBAAkBiB,cAAc,CACjC9M,OAAQ,QACR5oT,MAAOzF,KAAK02T,KAAK78T,EACjBohC,MAAOj7B,KAAKy6T,gBAvRpBxF,CAAAA,IAAAA,aAAAA,MAAAA,SA0RWxvT,GACP,GAAc,OAAVA,EACAzF,KAAK+4T,wBAEJ,CACGtzT,GAAsB,MAAbA,EAAM,KACfA,EAAQ,IAAMA,GAElB,IAAI21T,EAAW,iCACa,WAAxBp7T,KAAK+vT,iBACLqL,EAAW,8CAEf,IAAM9pH,EAAQ8pH,EAASlwT,KAAKzF,GACxB6rM,IACI7rM,EAAMzK,OAAS,IACfyK,EAAQ,IAAMA,EAAMjC,UAAU,GACzBhC,MAAM,IACNuT,KAAI3a,SAAAA,GAAAA,OAAKA,EAAIA,KACbsL,KAAK,KAEc,WAAxB1F,KAAK+vT,iBACLtqT,GAASud,KAAKooB,MAAoB,IAAdprC,KAAK02T,KAAK78T,GAASgG,SAAS,KAEpDG,KAAKizT,mBAAmBxtT,GAAAA,GAAO,IAEnCzF,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,MACPo2M,MAAOA,EACP7rM,MAAOA,EACPw1B,MAAOj7B,KAAKy6T,iBAvTxBxF,CAAAA,IAAAA,aAAAA,MAAAA,SA2TWxvT,GACP,IAAMoxT,EAAO72T,KAAK00J,QAAQ+iK,WAAWz3T,KAAK02T,MACpCplH,GAASt9L,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,GAC9DnkH,IACAulH,EAAKlmT,EAAIlL,EAAMyH,EAAIzH,EAAMgwT,GACzBz1T,KAAK02T,KAAO12T,KAAK00J,QAAQyiK,WAAWN,GACpC72T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,EACzBrK,KAAK+4T,qBAET/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,MACPo2M,MAAOA,EACP7rM,MAAOoxT,EAAKlmT,EACZsqB,MAAOj7B,KAAKy6T,gBAxUpBxF,CAAAA,IAAAA,cAAAA,MAAAA,SA2UYxvT,GACR,IAAMoxT,EAAO72T,KAAK00J,QAAQ+iK,WAAWz3T,KAAK02T,MACpCplH,GAASt9L,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,GAC9DnkH,IACAulH,EAAK/8T,EAAI2L,EAAMyH,EAAIzH,EAAMgwT,GACzBz1T,KAAK02T,KAAO12T,KAAK00J,QAAQyiK,WAAWN,GACpC72T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,EACzBrK,KAAK+4T,qBAET/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,OACPo2M,MAAOA,EACP7rM,MAAOoxT,EAAK/8T,EACZmhC,MAAOj7B,KAAKy6T,gBAxVpBxF,CAAAA,IAAAA,eAAAA,MAAAA,SA2VaxvT,GACT,IAAMoxT,EAAO72T,KAAK00J,QAAQ+iK,WAAWz3T,KAAK02T,MACpCplH,GAASt9L,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,GAC9DnkH,IACAulH,EAAKzsT,EAAI3E,EAAMyH,EAAIzH,EAAMgwT,GACzBz1T,KAAK02T,KAAO12T,KAAK00J,QAAQyiK,WAAWN,GACpC72T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,EACzBrK,KAAK+4T,qBAET/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,QACPo2M,MAAOA,EACP7rM,MAAOoxT,EAAKzsT,EACZ6wB,MAAOj7B,KAAKy6T,gBAxWpBxF,CAAAA,IAAAA,aAAAA,MAAAA,SA2WWxvT,GACP,IAAM6rM,GAASt9L,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,GAC9DnkH,IACAtxM,KAAK02T,KAAKrsT,EAAI5E,EAAMyH,EAAIzH,EAAMgwT,GAC9Bz1T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,EACzBrK,KAAK+4T,qBAET/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,MACPo2M,MAAOA,EACP7rM,MAAOzF,KAAK02T,KAAKrsT,EACjB4wB,MAAOj7B,KAAKy6T,gBAtXpBxF,CAAAA,IAAAA,eAAAA,MAAAA,SAyXaxvT,GACT,IAAM6rM,GAASt9L,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,GAC9DnkH,IACAtxM,KAAK02T,KAAKxpT,EAAIzH,EAAMyH,EAAIzH,EAAMgwT,GAC9Bz1T,KAAK+4T,qBAET/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,QACPo2M,MAAOA,EACP7rM,MAAOzF,KAAK02T,KAAKxpT,EACjB+tB,MAAOj7B,KAAKy6T,gBAnYpBxF,CAAAA,IAAAA,eAAAA,MAAAA,SAsYaxvT,GACT,IAAM6rM,GAASt9L,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,GAC9DnkH,IACAtxM,KAAK02T,KAAK78T,EAAI4L,EAAMyH,EAAIzH,EAAMgwT,GAC9Bz1T,KAAK+4T,qBAET/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,QACPo2M,MAAOA,EACP7rM,MAAOzF,KAAK02T,KAAK78T,EACjBohC,MAAOj7B,KAAKy6T,gBAhZpBxF,CAAAA,IAAAA,mBAAAA,MAAAA,SAmZiBxvT,GACb,IAAMkxT,EAAO32T,KAAK00J,QAAQ6iK,UAAUv3T,KAAK02T,MACnCplH,GAASt9L,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,GAC9DnkH,IACAqlH,EAAK5qT,EAAItG,EAAMyH,EAAIzH,EAAMgwT,GACzBz1T,KAAK02T,KAAO12T,KAAK00J,QAAQ0iK,UAAUT,GACnC32T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,EACzBrK,KAAK+4T,qBAET/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,YACPo2M,MAAOA,EACP7rM,MAAOkxT,EAAK5qT,EACZkvB,MAAOj7B,KAAKy6T,gBAhapBxF,CAAAA,IAAAA,oBAAAA,MAAAA,SAmakBxvT,GACd,IAAMkxT,EAAO32T,KAAK00J,QAAQ6iK,UAAUv3T,KAAK02T,MACnCplH,GAASt9L,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,GAC9DnkH,IACAqlH,EAAK58T,EAAI0L,EAAMyH,EAAIzH,EAAMgwT,GACzBz1T,KAAK02T,KAAO12T,KAAK00J,QAAQ0iK,UAAUT,GACnC32T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,EACzBrK,KAAK+4T,qBAET/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,aACPo2M,MAAOA,EACP7rM,MAAOkxT,EAAK58T,EACZkhC,MAAOj7B,KAAKy6T,gBAhbpBxF,CAAAA,IAAAA,cAAAA,MAAAA,SAmbYxvT,IACOuO,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,KAE9Dz1T,KAAK42T,KAAKx8T,EAAIqL,EAAMyH,EACpBlN,KAAK+4T,mBAAAA,GAAkB,GAAO,IAElC/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,OACPo2M,OAAAA,EACA7rM,MAAOzF,KAAK42T,KAAKx8T,EACjB6gC,MAAOj7B,KAAKy6T,gBA7bpBxF,CAAAA,IAAAA,iBAAAA,MAAAA,SAgcexvT,IACIuO,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,KAE9Dz1T,KAAK42T,KAAKppT,EAAI/H,EAAMyH,EACpBlN,KAAK+4T,mBAAAA,GAAkB,GAAO,IAElC/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,UACPo2M,OAAAA,EACA7rM,MAAOzF,KAAK42T,KAAKppT,EACjBytB,MAAOj7B,KAAKy6T,gBA1cpBxF,CAAAA,IAAAA,gBAAAA,MAAAA,SA6ccxvT,IACKuO,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,KAE9Dz1T,KAAK42T,KAAKn9T,EAAIgM,EAAMyH,EACpBlN,KAAK+4T,mBAAAA,GAAkB,GAAO,IAElC/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,SACPo2M,OAAAA,EACA7rM,MAAOzF,KAAK42T,KAAKn9T,EACjBwhC,MAAOj7B,KAAKy6T,gBAvdpBxF,CAAAA,IAAAA,eAAAA,MAAAA,SA0daxvT,IACMuO,MAAMvO,EAAMyH,IAAMzH,EAAMyH,GAAK,GAAKzH,EAAMyH,GAAKzH,EAAMgwT,KAE9Dz1T,KAAK42T,KAAK36T,EAAIwJ,EAAMyH,EACpBlN,KAAK+4T,mBAAAA,GAAkB,GAAO,IAElC/4T,KAAKk6T,kBAAkBmB,aAAa,CAChCngU,MAAO,QACPo2M,OAAAA,EACA7rM,MAAOzF,KAAK42T,KAAK36T,EACjBg/B,MAAOj7B,KAAKy6T,gBApepBxF,CAAAA,IAAAA,mBAAAA,MAAAA,SAueiBphS,EAAOpuB,GACpBouB,EAAMuoC,kBACDp8D,KAAK6uT,eAAe33S,QAAQ+jB,SAAAA,GAAAA,OAAWA,IAAUx1B,KAAQzK,SAC1DgF,KAAK6uT,eAAiB7uT,KAAK6uT,eAAeryT,OAAOiJ,GACjDzF,KAAKk6T,kBAAkBoB,oBAAoBt7T,KAAK6uT,mBA3exDoG,CAAAA,IAAAA,sBAAAA,MAAAA,SA8eoBphS,EAAOpuB,GACvBouB,EAAMuoC,kBACNp8D,KAAK6uT,eAAiB7uT,KAAK6uT,eAAe33S,QAAQ+jB,SAAAA,GAAAA,OAAWA,IAAUx1B,KACvEzF,KAAKk6T,kBAAkBoB,oBAAoBt7T,KAAK6uT,kBAjfpDoG,CAAAA,IAAAA,kBAAAA,MAAAA,WAofA,IAAA,EAAA,KACSj1T,KAAK8pL,OACN9pL,KAAK8pL,MAAAA,EACL9pL,KAAKu7T,QAAAA,EACLl7T,YAAW,WACPL,EAAKu7T,QAAAA,EACLv7T,EAAKu6T,oBACLv6T,EAAK23T,MAAM/wI,kBACZ,GACH5mL,KAAKk6T,kBAAkBsB,cAAAA,GAClBx7T,KAAK43T,SACNn6T,SAASg2B,iBAAiB,YAAazzB,KAAK04T,mBAC5Cj7T,SAASg2B,iBAAiB,aAAczzB,KAAK04T,oBAEjDx7T,OAAOu2B,iBAAiB,SAAUzzB,KAAK24T,mBAlgB/C1D,CAAAA,IAAAA,mBAAAA,MAAAA,WAsgBQj1T,KAAK8pL,OACL9pL,KAAK8pL,MAAAA,EACL9pL,KAAKk6T,kBAAkBsB,cAAAA,GAClBx7T,KAAK43T,SACNn6T,SAASk2B,oBAAoB,YAAa3zB,KAAK04T,mBAC/Cj7T,SAASk2B,oBAAoB,aAAc3zB,KAAK04T,oBAEpDx7T,OAAOy2B,oBAAoB,SAAU3zB,KAAK24T,gBACrC34T,KAAK23T,MAAiB,WACvB33T,KAAK23T,MAAM/wI,mBA/gBvBquI,CAAAA,IAAAA,oBAAAA,MAAAA,WAmhB0D,IAAxC/mM,IAAwC,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAA3B8G,IAA2B,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GAAZymM,EAAY,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GACtD,GAAIz7T,KAAKo4T,aAAc,CAInB,IAAIsD,EAAK/E,EAAME,EAHU,IAArB72T,KAAKu5T,cACLv5T,KAAK02T,KAAK38T,EAAI,GAGlB,IAAM4hU,EAAa37T,KAAKy6T,YAuCxB,GAtCA9D,EAAO32T,KAAK00J,QAAQ6iK,UAAUv3T,KAAK02T,MAC9B12T,KAAKw4T,eAIDiD,GAKD5E,EAAO72T,KAAK00J,QAAQknK,UAAU57T,KAAK00J,QAAQmnK,cAAc77T,KAAK42T,OAC9D52T,KAAK02T,KAAO12T,KAAK00J,QAAQyiK,WAAWN,KALpCA,EAAO72T,KAAK00J,QAAQ+iK,WAAWz3T,KAAK02T,MACpC12T,KAAK42T,KAAO52T,KAAK00J,QAAQonK,gBAAgB97T,KAAK00J,QAAQqnK,WAAWlF,KAMrEA,EAAO72T,KAAK00J,QAAQ8iK,gBAAgBX,GACpC72T,KAAKs6T,QAAUt6T,KAAK02T,KAAKrsT,GAZzBwsT,EAAO72T,KAAK00J,QAAQ8iK,gBAAgBx3T,KAAK00J,QAAQ+iK,WAAWz3T,KAAK02T,OAcrEgF,EAAM17T,KAAK00J,QAAQ8iK,gBAAgBx3T,KAAK00J,QAAQ+iK,WAAW,IAAInC,GAAKt1T,KAAKs6T,SAAWt6T,KAAK02T,KAAKrsT,EAAG,EAAG,EAAG,KACnG2qH,IACAh1H,KAAKmwT,SAAW,IAAIoF,GAAKvyS,KAAKooB,MAAiB,IAAVurR,EAAM,GAAU3zS,KAAKooB,MAAe,IAATurR,EAAK58T,GAAUipB,KAAKooB,MAAe,IAATurR,EAAK5qT,GAAUiX,KAAKooB,MAAe,IAATurR,EAAK98T,GAAW,KACpImG,KAAK8wT,SAAW,IAAIuE,GAAKwB,EAAKlmT,EAAGkmT,EAAKzsT,EAAGysT,EAAK/8T,EAAGkpB,KAAKooB,MAAe,IAATyrR,EAAKh9T,GAAW,KACxEmG,KAAKw4T,gBACLx4T,KAAKsvT,SAAW,IAAIkG,GAAKx1T,KAAK42T,KAAKx8T,EAAG4F,KAAK42T,KAAKppT,EAAGxN,KAAK42T,KAAKn9T,EAAGuG,KAAK42T,KAAK36T,EAAG+mB,KAAKooB,MAAoB,IAAdprC,KAAK42T,KAAK/8T,GAAW,MAGjHmG,KAAK+xT,QAAU/xT,KAAK00J,QAAQgjK,UAAUb,EADI,WAAxB72T,KAAK+vT,gBAEvB/vT,KAAKyxT,SAAWzxT,KAAK8wT,SAASj3T,GAEN,SAAxBmG,KAAKy4T,gBACDz4T,KAAKspB,SAAW8rS,GAAa93S,MAAQtd,KAAKspB,SAAW8rS,GAAa8C,MAC9Dl4T,KAAK02T,KAAK78T,EAAI,IACdmG,KAAKspB,OAAStpB,KAAK02T,KAAK78T,EAAI,EAAIu7T,GAAa93S,KAAO83S,GAAa4C,KAI7Eh4T,KAAKouT,eAAiB,OAASsN,EAAI/qT,EAAI,IAAM+qT,EAAItxT,EAAI,IAAMsxT,EAAI5hU,EAAI,IACnEkG,KAAKg8T,iBAAmB,OAASnF,EAAKlmT,EAAI,IAAMkmT,EAAKzsT,EAAI,IAAMysT,EAAK/8T,EAAI,IACxEkG,KAAKy6T,YAAcz6T,KAAK00J,QAAQ2iK,aAAar3T,KAAK02T,KAAM12T,KAAKy4T,eAAgBz4T,KAAK+vT,gBAClF/vT,KAAK0uT,cAAgB1uT,KAAK00J,QAAQ2iK,aAAar3T,KAAK02T,KAAM,OAAQ,MAC9D12T,KAAKspB,SAAW8rS,GAAa8C,KAC7Bl4T,KAAK86T,UAAY,QAGjB,GAA4B,WAAxB96T,KAAK+vT,gBAAuD,YAAxB/vT,KAAK+vT,gBACjB,WAAxB/vT,KAAK+vT,eAA6B,CAClC,IAAMnkR,EAAQ5oB,KAAKooB,MAAoB,IAAdprC,KAAK42T,KAAK/8T,GAAW,IAC9CmG,KAAK86T,UAAL96T,SAAAA,OAA0BA,KAAK42T,KAAKx8T,EAApC4F,KAAAA,OAAyCA,KAAK42T,KAAKppT,EAAnDxN,KAAAA,OAAwDA,KAAK42T,KAAKn9T,EAAlEuG,KAAAA,OAAuEA,KAAK42T,KAAK36T,EAAjF+D,KAAAA,OAAsF4rC,EAAtF5rC,UAGAA,KAAK86T,UAAL96T,QAAAA,OAAyBA,KAAK42T,KAAKx8T,EAAnC4F,KAAAA,OAAwCA,KAAK42T,KAAKppT,EAAlDxN,KAAAA,OAAuDA,KAAK42T,KAAKn9T,EAAjEuG,KAAAA,OAAsEA,KAAK42T,KAAK36T,EAAhF+D,KAGRA,KAAKquT,OAAS,IAAIiI,IAAgBt2T,KAAKs6T,SAAWt6T,KAAK02T,KAAKrsT,GAAKrK,KAAKo4T,aAAa/tT,EAAI,EAAGrK,KAAK02T,KAAK38T,EAAIiG,KAAKo4T,aAAar+T,EAAI,GAAI,EAAIiG,KAAK02T,KAAKxpT,GAAKlN,KAAKo4T,aAAalrT,EAAI,EAAGlN,KAAK02T,KAAK78T,EAAImG,KAAKo4T,aAAav+T,EAAI,GAC9Mq0H,GAAQytM,IAAe37T,KAAKy6T,cACxBz6T,KAAKw4T,eACLx4T,KAAKk6T,kBAAkBW,YAAY76T,KAAK86T,WAE5C96T,KAAKk6T,kBAAkBa,aAAa/6T,KAAKy6T,iBAllBrDxF,CAAAA,IAAAA,oBAAAA,MAAAA,WAwlBI,GAA6B,WAAzBj1T,KAAKw2T,gBACLx2T,KAAK6mB,SAAW,eAEf,CAKD,IAJA,IAAyCra,EAArCqa,EAAW,SAAUhC,EAAY,GACjC1X,EAAa,KAAM8uT,EAAgB,KACnC78R,EAAOp/B,KAAKi5T,oBAAoB1uJ,cAAcp9J,WAC5C+uT,EAAel8T,KAAKm8T,cAAc5xJ,cAAc2pE,aACtC,OAAT90M,GAAkC,SAAjBA,EAAKtxB,SAAoB,CAU7C,GANiB,YAFjB+Y,GADAra,EAAQtP,OAAO44B,iBAAiBsJ,IACfynN,iBAAiB,cAEU,OAAf15O,IACzBA,EAAaiyB,IAFjBva,EAAYrY,EAAMq6O,iBAAiB,eAIJ,SAAdhiO,GAA0C,OAAlBo3S,IACrCA,EAAgB78R,GAEH,UAAbvY,EAAsB,CACtB1Z,EAAa8uT,EACb,MAEJ78R,EAAOA,EAAKjyB,WAEhB,IAAMivT,EAAep8T,KAAKq8T,gBAAgBr8T,KAAKi5T,oBAAoB1uJ,cAA6B,UAAb1jJ,GACnF,GAAI7mB,KAAKm4T,sBAAsC,UAAbtxS,KAC5B1Z,GAAcA,aAAsBmvT,oBACtCt8T,KAAKmlB,IAAMi3S,EAAaj3S,IACxBnlB,KAAKklB,KAAOk3S,EAAal3S,SAExB,CACkB,OAAf/X,IACAA,EAAaiyB,GAEjB,IAAMm9R,EAAYv8T,KAAKq8T,gBAAgBlvT,EAA0B,UAAb0Z,GACpD7mB,KAAKmlB,IAAMi3S,EAAaj3S,IAAMo3S,EAAUp3S,IACxCnlB,KAAKklB,KAAOk3S,EAAal3S,KAAOq3S,EAAUr3S,KAE7B,UAAb2B,IACA7mB,KAAK6mB,SAAW,SAEpB,IAAI21S,EAAcx8T,KAAK65T,WACvB,GAAwB,SAApB75T,KAAK65T,WAAuB,CAC5B,IAAI4C,EAAe,QACfC,EAAe,SACbC,EAAW35S,KAAKvI,IAAIhd,SAASsP,gBAAgBy5F,YAAatpG,OAAOk8N,YAAc,GAC/EwjG,EAAY55S,KAAKvI,IAAIhd,SAASsP,gBAAgB05F,aAAcvpG,OAAOm8N,aAAe,GACpFr5N,KAAKklB,KAAOllB,KAAKs4T,QAAUqE,IAC3BF,EAAe,QAEfz8T,KAAKmlB,IAAM+2S,EAAeU,IAC1BF,EAAe,OAEnBF,EAAcC,EAAe,IAAMC,EAEvC18T,KAAK4tT,cAAgB4O,EACD,QAAhBA,GACAx8T,KAAK6tT,SAAWqO,EAAe,EAC/Bl8T,KAAKmlB,KAAO+2S,EAAel8T,KAAK63T,gBAChC73T,KAAKklB,MAAQllB,KAAK85T,iBAAmB,IAAMsC,EAAa1/S,MAAQ1c,KAAK83T,mBAEhD,WAAhB0E,GACLx8T,KAAKmlB,KAAOi3S,EAAa7/S,OAASvc,KAAK63T,gBACvC73T,KAAKklB,MAAQllB,KAAK85T,iBAAmB,IAAMsC,EAAa1/S,MAAQ1c,KAAK83T,mBAEhD,aAAhB0E,GAA8C,aAAhBA,GACnCx8T,KAAKmlB,KAAO+2S,EAAeE,EAAa7/S,OAAS6/S,EAAa7/S,OAASvc,KAAK85T,iBAAmB,IAC/F95T,KAAKklB,MAAQllB,KAAKs4T,QAAUt4T,KAAK63T,gBAAkB,EAAI73T,KAAK83T,mBAEvC,cAAhB0E,GAA+C,cAAhBA,GACpCx8T,KAAKmlB,KAAO+2S,EAAeE,EAAa7/S,OAAS6/S,EAAa7/S,OAASvc,KAAK85T,iBAAmB,IAC/F95T,KAAKklB,MAAQk3S,EAAa1/S,MAAQ1c,KAAK63T,gBAAkB,EAAI73T,KAAK83T,mBAE7C,SAAhB0E,GAA0C,gBAAhBA,GAAiD,gBAAhBA,GAChEx8T,KAAKmlB,KAAOi3S,EAAa7/S,OAASvc,KAAK85T,iBAAmB,IAAM95T,KAAK83T,kBACrE93T,KAAKklB,MAAQllB,KAAKs4T,QAAUt4T,KAAK63T,gBAAkB,IAGnD73T,KAAKmlB,KAAOi3S,EAAa7/S,OAASvc,KAAK85T,iBAAmB,IAAM95T,KAAK83T,kBACrE93T,KAAKklB,MAAQk3S,EAAa1/S,MAAQ1c,KAAK63T,gBAAkB,MAvqBrE5C,CAAAA,IAAAA,eAAAA,MAAAA,SA4qBa1rT,EAAQwgH,GAEjB,IADA,IAAI3qF,EAAO2qF,EAAM58G,WACD,OAATiyB,GAAe,CAClB,GAAIA,IAAS71B,EACT,OAAA,EAEJ61B,EAAOA,EAAKjyB,WAEhB,OAAA,IAprBJ8nT,CAAAA,IAAAA,kBAAAA,MAAAA,SAsrBgBh0T,EAASyY,GACrB,MAAO,CACHyL,IAAKlkB,EAAQw2B,wBAAwBtS,KAAOzL,EAASxc,OAAOoxR,YAAc,GAC1EppQ,KAAMjkB,EAAQw2B,wBAAwBvS,MAAQxL,EAASxc,OAAOuxR,YAAc,GAC5E/xQ,MAAOzb,EAAQmP,YACfmM,OAAQtb,EAAQizO,kBA3rBxB+gF,EAAAA,IA+rBiBryL,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKi7T,IAAsB,GAAyB,IAAoB,GAAyB,IAA2B,GAAyB,MACxOA,GAAqB/yL,UAAO,GAAyB,CAAE/2H,KAAM8pT,GAAsBv2R,UAAW,CAAC,CAAC,iBAAkBqpG,UAAW,SAAoCwa,EAAInmI,GAK7J,IAAIy0P,EALyK,EAALtuH,IACxK,GAAyB,IAAA,GACzB,GAAyB,IAAA,GACzB,GAAyB,IAAA,IAClB,EAALA,IAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAI+/S,cAAgBtrD,EAAGx1G,OAC5E,GAAsBw1G,EAAK,QAA0Bz0P,EAAIi8S,UAAYxnD,EAAGx1G,OACxE,GAAsBw1G,EAAK,QAA0Bz0P,EAAIm8S,YAAc1nD,EAAGx1G,SACzEh1B,aAAc,SAA2Ckc,EAAInmI,GAAgB,EAALmmI,GACzE,GAAkB,aAAa,SAA2DmuD,GAAU,OAAOt0L,EAAIygT,UAAUnsH,MAAAA,EAAmB,GAA5I,CAAsK,eAAe,SAA6DA,GAAU,OAAOt0L,EAAI0gT,YAAYpsH,MAAAA,EAAmB,KACrS1qE,MAAO,GAAIC,KAAM,GAAIE,OAAQ,CAAC,CAAC,EAAG,eAAgB,EAAG,SAAU,CAAC,cAAe,IAAK,CAAC,EAAG,QAAS,MAAO,EAAG,QAAS,CAAC,QAAS,uBAAwB,EAAG,SAAU,MAAO,MAAO,mBAAoB,WAAY,YAAa,UAAW,EAAG,QAAS,CAAC,EAAG,YAAa,OAAQ,CAAC,EAAG,QAAS,CAAC,EAAG,6BAA8B,CAAC,EAAG,kBAAmB,CAAC,OAAQ,SAAU,EAAG,QAAS,WAAY,QAAS,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,QAAS,gBAAiB,EAAG,QAAS,CAAC,EAAG,MAAO,EAAG,SAAU,MAAO,WAAY,YAAa,WAAY,CAAC,YAAa,IAAK,CAAC,EAAG,UAAW,CAAC,EAAG,QAAS,EAAG,SAAU,MAAO,WAAY,YAAa,WAAY,CAAC,cAAe,IAAK,CAAC,EAAG,QAAS,EAAG,SAAU,MAAO,WAAY,YAAa,WAAY,CAAC,cAAe,IAAK,CAAC,QAAS,YAAa,EAAG,UAAW,EAAG,QAAS,CAAC,QAAS,YAAa,EAAG,UAAW,EAAG,QAAS,CAAC,QAAS,YAAa,EAAG,UAAW,EAAG,QAAS,CAAC,QAAS,WAAY,EAAG,YAAa,UAAW,EAAG,QAAS,CAAC,QAAS,aAAc,EAAG,QAAS,CAAC,QAAS,cAAe,EAAG,QAAS,CAAC,QAAS,cAAe,EAAG,QAAS,CAAC,QAAS,cAAe,EAAG,QAAS,CAAC,EAAG,uBAAwB,EAAG,SAAU,MAAO,MAAO,WAAY,YAAa,WAAY,CAAC,OAAQ,SAAU,EAAG,WAAY,SAAU,CAAC,EAAG,SAAU,QAAS,CAAC,EAAG,aAAc,CAAC,EAAG,OAAQ,CAAC,OAAQ,SAAU,UAAW,SAAU,MAAO,IAAK,MAAO,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,YAAa,CAAC,OAAQ,SAAU,UAAW,4BAA6B,MAAO,IAAK,MAAO,IAAK,OAAQ,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,WAAY,EAAG,QAAS,CAAC,EAAG,QAAS,CAAC,OAAQ,SAAU,UAAW,4BAA6B,MAAO,IAAK,MAAO,IAAK,OAAQ,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,YAAa,CAAC,EAAG,aAAc,CAAC,OAAQ,SAAU,UAAW,SAAU,MAAO,IAAK,MAAO,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,YAAa,CAAC,EAAG,aAAc,CAAC,OAAQ,SAAU,UAAW,SAAU,MAAO,IAAK,MAAO,MAAO,EAAG,OAAQ,KAAM,QAAS,cAAe,YAAa,CAAC,EAAG,YAAa,CAAC,EAAG,OAAQ,QAAS,OAAQ,cAAe,YAAa,CAAC,EAAG,cAAe,CAAC,EAAG,eAAgB,CAAC,EAAG,oBAAqB,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,EAAG,gBAAiB,CAAC,EAAG,QAAS,EAAG,QAAS,CAAC,QAAS,eAAgB,EAAG,kBAAmB,QAAS,EAAG,QAAS,WAAY,CAAC,EAAG,eAAgB,EAAG,SAAU,CAAC,EAAG,QAAS,QAAS,EAAG,QAAS,CAAC,EAAG,SAAU,CAAC,EAAG,eAAgB,CAAC,OAAQ,SAAU,EAAG,QAAS,QAAS,EAAG,QAAS,CAAC,OAAQ,SAAU,EAAG,UAAWD,SAAU,SAAuCqc,EAAInmI,GAAgB,EAALmmI,IAC9/E,GAAsB,EAAG,MAAO,EAAG,GACnC,GAAkB,SAAS,SAA4DmuD,GAAU,OAAOA,EAAOt0I,qBAC/G,GAAkB,EAAGsxP,GAAqC,EAAG,EAAG,MAAO,GACvE,GAAkB,EAAGI,GAAqC,EAAG,EAAG,MAAO,GACvE,GAAsB,EAAG,MAAO,GAChC,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,MAAO,GAC3B,GAAiB,EAAG,MAAO,GAC3B,GAAkB,EAAGQ,GAAwC,EAAG,EAAG,SAAU,GAC7E,KACA,GAAsB,EAAG,MAAO,GAChC,GAAkB,GAAIU,GAAsC,EAAG,EAAG,MAAO,IACzE,GAAsB,GAAI,MAAO,GAAI,IACrC,GAAkB,YAAY,SAAgEt+G,GAAU,OAAOt0L,EAAI2gT,YAAYrsH,KAA/H,CAA2I,aAAa,WAAqE,OAAOt0L,EAAI6xS,YAAY,SAApP,CAA+P,WAAW,WAAmE,OAAO7xS,EAAI8xS,UAAU,UAClW,GAAiB,GAAI,MAAO,IAC5B,KACA,GAAsB,GAAI,MAAO,GAAI,IACrC,GAAkB,YAAY,SAAgEx9G,GAAU,OAAOt0L,EAAI4gT,cAActsH,KAAjI,CAA6I,aAAa,WAAqE,OAAOt0L,EAAI6xS,YAAY,WAAtP,CAAmQ,WAAW,WAAmE,OAAO7xS,EAAI8xS,UAAU,YACtW,GAAiB,GAAI,MAAO,IAC5B,KACA,GAAsB,GAAI,MAAO,GAAI,IACrC,GAAkB,YAAY,SAAgEx9G,GAAU,OAAOt0L,EAAI6gT,cAAcvsH,KAAjI,CAA6I,aAAa,WAAqE,OAAOt0L,EAAI6xS,YAAY,WAAtP,CAAmQ,WAAW,WAAmE,OAAO7xS,EAAI8xS,UAAU,YACtW,GAAiB,GAAI,MAAO,IAC5B,KACA,KACA,KACA,GAAkB,GAAIsB,GAAsC,GAAI,GAAI,MAAO,IAC3E,GAAkB,GAAIa,GAAsC,GAAI,GAAI,MAAO,IAC3E,GAAkB,GAAIW,GAAsC,GAAI,GAAI,MAAO,IAC3E,GAAkB,GAAIW,GAAsC,EAAG,EAAG,MAAO,IACzE,GAAkB,GAAIQ,GAAsC,EAAG,EAAG,MAAO,IACzE,GAAkB,GAAII,GAAsC,EAAG,EAAG,MAAO,IACzE,GAAkB,GAAIoB,GAAsC,EAAG,EAAG,MAAO,IACzE,GAAkB,GAAIc,GAAsC,EAAG,EAAG,MAAO,IACzE,MACO,EAALlyK,IACF,GAAmB,UAAYnmI,EAAI0tK,KAAgB,QAAT,OAA1C,CAA4D,aAAc1tK,EAAIm/S,OAAS,SAAW,UAAlG,CAA6G,MAAOn/S,EAAI+I,IAAK,KAA7H,CAAmI,OAAQ/I,EAAI8I,KAAM,KAArJ,CAA2J,WAAY9I,EAAIyK,SAA3K,CAAqL,SAAUzK,EAAIi9S,SAAU,KAA7M,CAAmN,QAASj9S,EAAIk8S,QAAS,MACzO,GAAmB,OAAQl8S,EAAI0tK,MAC/B,GAAiB,GACjB,GAAkB,OAA+B,SAAvB1tK,EAAIo6S,iBAC9B,GAAiB,GACjB,GAAkB,OAAmC,KAA1Bp6S,EAAIm9S,aAAe,IAC9C,GAAiB,GACjB,GAAmB,mBAAoBn9S,EAAIsyS,eAC3C,GAAiB,GACjB,GAAkB,OAAQtyS,EAAI+2S,kBAC9B,GAAiB,GACjB,GAAkB,OAA+B,aAAvB/2S,EAAI2zS,gBAC9B,GAAiB,GACjB,GAAmB,UAAsC,KAA1B3zS,EAAIm9S,aAAe,GAAW,QAAU,QACvE,GAAkB,MAAO,GACzB,GAAiB,GACjB,GAAmB,OAAsB,MAAdn9S,EAAIiyS,OAAiB,KAAOjyS,EAAIiyS,OAAOhkT,EAAG,MACrE,GAAiB,GACjB,GAAmB,UAAsC,KAA1B+R,EAAIm9S,aAAe,GAAW,QAAU,QACvE,GAAkB,MAAO,GACzB,GAAiB,GACjB,GAAmB,QAAuB,MAAdn9S,EAAIiyS,OAAiB,KAAOjyS,EAAIiyS,OAAOnhT,EAAG,MACtE,GAAiB,GACjB,GAAmB,UAAkC,aAAvBkP,EAAI2zS,eAAgC,OAAS,QAA3E,CAAoF,mBAAoB3zS,EAAI4/S,kBAC5G,GAAkB,MAAO,GACzB,GAAiB,GACjB,GAAmB,OAAsB,MAAd5/S,EAAIiyS,OAAiB,KAAOjyS,EAAIiyS,OAAOx0T,EAAG,MACrE,GAAiB,GACjB,GAAkB,QAASuiB,EAAIo9S,gBAA6C,KAA1Bp9S,EAAIm9S,aAAe,IACrE,GAAiB,GACjB,GAAkB,QAASn9S,EAAIo9S,gBAA6C,KAA1Bp9S,EAAIm9S,aAAe,IACrE,GAAiB,GACjB,GAAkB,QAASn9S,EAAIo9S,gBAA6C,KAA1Bp9S,EAAIm9S,aAAe,IACrE,GAAiB,GACjB,GAAkB,QAASn9S,EAAIo9S,gBAA6C,KAA1Bp9S,EAAIm9S,aAAe,IACrE,GAAiB,GACjB,GAAkB,QAASn9S,EAAIo9S,gBAA6C,KAA1Bp9S,EAAIm9S,aAAe,IACrE,GAAiB,GACjB,GAAkB,QAASn9S,EAAIo9S,gBAA6C,KAA1Bp9S,EAAIm9S,aAAe,IACrE,GAAiB,GACjB,GAAkB,QAA+B,MAAtBn9S,EAAIyyS,eAAyB,KAAOzyS,EAAIyyS,eAAe7zT,SAAWohB,EAAI+2S,kBACjG,GAAiB,GACjB,GAAkB,OAAQ/2S,EAAIw4S,YAAcx4S,EAAIu4S,kBAC/ChxK,WAAY,CAAC,GAAa,GAAiB,GAAe,IAAiBhvH,OAAQ,CAAC,4zxBAA6zxBqzG,cAAe,IA5Fz6xBitL,IAAAA,KAkHID,GAAAA,WACA,SAAA,EAAYvxL,EAAUy5L,EAAKzvK,EAAQD,EAAOooK,EAAOuH,GAAAA,gBAAAA,KAAAA,GAC7Cn9T,KAAKyjI,SAAWA,EAChBzjI,KAAKk9T,IAAMA,EACXl9T,KAAKytJ,OAASA,EACdztJ,KAAKwtJ,MAAQA,EACbxtJ,KAAK41T,MAAQA,EACb51T,KAAKm9T,SAAWA,EAChBn9T,KAAKo9T,eAAAA,EACLp9T,KAAKq9T,eAAAA,EACLr9T,KAAKs9T,sBAAAA,EACLt9T,KAAKs4T,QAAU,QACft4T,KAAKq5T,SAAW,OAChBr5T,KAAKu9T,UAAAA,EACLv9T,KAAKw9T,YAAAA,EACLx9T,KAAKy5T,kBAAoB,GACzBz5T,KAAKs5T,gBAAkB,GACvBt5T,KAAKu5T,YAAc,QACnBv5T,KAAKw4T,eAAAA,EACLx4T,KAAKy4T,eAAiB,OACtBz4T,KAAK+vT,eAAiB,UACtB/vT,KAAKw5T,gBAAAA,EACLx5T,KAAKw2T,gBAAkB,QACvBx2T,KAAK05T,oBAAAA,EACL15T,KAAK25T,qBAAAA,EACL35T,KAAK45T,wBAAAA,EACL55T,KAAK65T,WAAa,OAClB75T,KAAK85T,iBAAmB,KACxB95T,KAAK+5T,2BAAAA,EACL/5T,KAAK40T,YAAAA,EACL50T,KAAKw0T,eAAiB,KACtBx0T,KAAKu0T,gBAAkB,qBACvBv0T,KAAK20T,gBAAAA,EACL30T,KAAKm0T,mBAAqB,SAC1Bn0T,KAAKk0T,oBAAsB,yBAC3Bl0T,KAAK6zT,cAAgB,gBACrB7zT,KAAKszT,oBAAsB,yBAC3BtzT,KAAK8uT,wBAA0B,EAC/B9uT,KAAK0zT,qBAAuB,kBAC5B1zT,KAAKyzT,0BAA4B,uBACjCzzT,KAAKmzT,kBAAAA,EACLnzT,KAAK+uT,qBAAuB,YAC5B/uT,KAAK4uT,sBAAwB,4BAC7B5uT,KAAK8yT,yBAA2B,+BAChC9yT,KAAKy9T,cAAgB,IAAI,IAAA,GACzBz9T,KAAK09T,eAAiB,IAAI,IAAA,GAC1B19T,KAAK29T,eAAiB,IAAI,IAAA,GAC1B39T,KAAK49T,gBAAkB,IAAI,IAAA,GAC3B59T,KAAK69T,kBAAoB,IAAI,IAAA,GAC7B79T,KAAK89T,gBAAkB,IAAI,IAAA,GAC3B99T,KAAK+9T,iBAAmB,IAAI,IAAA,GAC5B/9T,KAAKg+T,kBAAoB,IAAI,IAAA,GAC7Bh+T,KAAKi+T,kBAAoB,IAAI,IAAA,GAC7Bj+T,KAAKk+T,kBAAoB,IAAI,IAAA,GAC7Bl+T,KAAKm+T,kBAAoB,IAAI,IAAA,GAC7Bn+T,KAAKo+T,qBAAuB,IAAI,IAAA,GAvDpCpJ,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,cAAAA,MAAAA,WA0DIh1T,KAAKq+T,eA1DTrJ,CAAAA,IAAAA,cAAAA,MAAAA,WA6DIh1T,KAAKq+T,eA7DTrJ,CAAAA,IAAAA,cAAAA,MAAAA,SA+DYnhS,GACR7zB,KAAK21T,YAAY9hS,KAhErBmhS,CAAAA,IAAAA,cAAAA,MAAAA,WAmEuB,MAAfh1T,KAAKs+T,SACDt+T,KAAKs9T,sBACLt9T,KAAKytJ,OAAOvD,WAAWlqJ,KAAKs+T,OAAOnzL,UAEvCnrI,KAAKs+T,OAAOnkP,UACZn6E,KAAKs+T,OAAS,KACdt+T,KAAK4uS,OAAS,QAzEtBomB,CAAAA,IAAAA,cAAAA,MAAAA,SA4EYt9I,GACJA,EAAQ6lJ,WAAav9T,KAAKw9T,aACtB9lJ,EAAQ6lJ,SAAS3qP,aACjB5yE,KAAK64T,aAECnhJ,EAAQ6lJ,SAAS3qP,cACvB5yE,KAAKy2T,eAGT/+I,EAAQ6mJ,cACJv+T,KAAK4uS,SAAW5uS,KAAKq9T,gBACQ,WAAzBr9T,KAAKw2T,iBACLx2T,KAAK4uS,OAAOsqB,gBAAgBxhJ,EAAQ6mJ,YAAY3rP,cAEpD5yE,KAAK4uS,OAAOqkB,mBAAmBv7I,EAAQ6mJ,YAAY3rP,cAAAA,GAC/C5yE,KAAK45T,wBAAmD,WAAzB55T,KAAKw2T,iBACpCx2T,KAAKs+T,OAAOjrJ,kBAAkBuT,iBAGtC5mL,KAAKq9T,eAAAA,IAEL3lJ,EAAQm8I,eAAiBn8I,EAAQm3I,iBAC7B7uT,KAAK4uS,QACL5uS,KAAK4uS,OAAOwrB,gBAAgBp6T,KAAK6zT,cAAe7zT,KAAK6uT,kBAnGjEmG,CAAAA,IAAAA,aAAAA,MAAAA,WAwGI,GAAKh1T,KAAKo9T,cAmCDp9T,KAAK4uS,QACV5uS,KAAK4uS,OAAOiqB,WAAW74T,KAAKu+T,iBApCP,CACrB,IAAI/wK,EAAQxtJ,KAAKwtJ,MAGjB,GAFAxtJ,KAAKo9T,eAAAA,EACLp9T,KAAKs9T,sBAAAA,EACDt9T,KAAK45T,wBAAmD,WAAzB55T,KAAKw2T,gBAA8B,CAClE,IACMgI,EAAcx+T,KAAKyjI,SAAS5gH,IADL7iB,KAAKytJ,OAAOw4B,eAAe,GACIrvB,GAASC,MACjE2nK,IAAgB5nK,GAASC,MACzBrJ,EAAQgxK,EAAYhxK,OAASgxK,EAAY1kG,kBAAoB95N,KAAKwtJ,SACpDxtJ,KAAKwtJ,OACfhpJ,QAAQyG,KAAK,iLAMjBjL,KAAKs9T,sBAAAA,EAGb,IAAMmB,EAAcz+T,KAAKk9T,IAAI32I,wBAAwB,IACrD,GAAIvmL,KAAKs9T,qBACLt9T,KAAKs+T,OAASG,EAAY53T,OAAO7G,KAAKyjI,UACtCzjI,KAAKytJ,OAAOu5B,WAAWhnL,KAAKs+T,OAAOnzL,UACnC1tI,SAAS6N,KAAKqB,YAAY3M,KAAKs+T,OAAOnzL,SAAS6vF,UAAU,QAExD,CACD,IAAMv3F,EAAWs2B,GAAmBM,sBAAsB,GAAI7M,EAAM8B,gBACpEtvJ,KAAKs+T,OAAS9wK,EAAMqtE,gBAAgB4jG,EAAa,EAAGh7L,EAAU,IAElEzjI,KAAKs+T,OAAO9nR,SAASkoR,YAAY1+T,KAAMA,KAAK41T,MAAO51T,KAAKu+T,YAAav+T,KAAKs4T,QAASt4T,KAAKq5T,SAAUr5T,KAAKw2T,gBAAiBx2T,KAAKs5T,gBAAiBt5T,KAAKu5T,YAAav5T,KAAKw4T,cAAex4T,KAAK+vT,eAAgB/vT,KAAKy4T,eAAgBz4T,KAAKw5T,eAAgBx5T,KAAKy5T,kBAAmBz5T,KAAK05T,mBAAoB15T,KAAK25T,oBAAqB35T,KAAK45T,uBAAwB55T,KAAK65T,WAAY75T,KAAK85T,iBAAkB95T,KAAK+5T,0BAA2B/5T,KAAK6zT,cAAe7zT,KAAK6uT,eAAgB7uT,KAAKszT,oBAAqBtzT,KAAK8uT,wBAAyB9uT,KAAK0zT,qBAAsB1zT,KAAKyzT,0BAA2BzzT,KAAK40T,WAAY50T,KAAKu0T,gBAAiBv0T,KAAKw0T,eAAgBx0T,KAAK20T,eAAgB30T,KAAKk0T,oBAAqBl0T,KAAKm0T,mBAAoBn0T,KAAKmzT,iBAAkBnzT,KAAK4uT,sBAAuB5uT,KAAK+uT,qBAAsB/uT,KAAK8yT,0BACtxB9yT,KAAK4uS,OAAS5uS,KAAKs+T,OAAO9nR,SACtBx2C,KAAKwtJ,QAAUA,GACfxtJ,KAAKs+T,OAAOjrJ,kBAAkBuT,mBAxI1CouI,CAAAA,IAAAA,cAAAA,MAAAA,WAgJQh1T,KAAK4uS,QAAmC,UAAzB5uS,KAAKw2T,iBACpBx2T,KAAK4uS,OAAO6nB,gBAjJpBzB,CAAAA,IAAAA,cAAAA,MAAAA,SAoJYvvT,GACRzF,KAAKm+T,kBAAkBjwM,KAAKzoH,KArJhCuvT,CAAAA,IAAAA,eAAAA,MAAAA,SAuJaniM,GACT7yH,KAAK09T,eAAexvM,KAAK2E,GACrBA,EACA7yH,KAAK89T,gBAAgB5vM,KAAKluH,KAAKu+T,aAG/Bv+T,KAAK+9T,iBAAiB7vM,KAAKluH,KAAKu+T,eA7JxCvJ,CAAAA,IAAAA,eAAAA,MAAAA,SAgKavvT,GAAgB,IAATk5T,IAAS,UAAA,OAAA,QAAA,IAAA,UAAA,KAAA,UAAA,GACzB3+T,KAAKq9T,cAAgBsB,EACrB3+T,KAAKk+T,kBAAkBhwM,KAAKzoH,KAlKhCuvT,CAAAA,IAAAA,gBAAAA,MAAAA,SAoKcvvT,GACVzF,KAAKi+T,kBAAkB/vM,KAAKzoH,KArKhCuvT,CAAAA,IAAAA,gBAAAA,MAAAA,WAwKIh1T,KAAKg+T,kBAAkB9vM,SAxK3B8mM,CAAAA,IAAAA,aAAAA,MAAAA,WA2KI,IAAM/zT,EAAUjB,KAAK41T,MAAMrrJ,cACrBq0J,EAAU5+T,KAAKy5T,kBAAkBviT,QAAQhU,SAAAA,GAAAA,OAASA,IAASjC,KAC5DjB,KAAKw9T,YAAeoB,EAAQ5jU,SACL,oBAAbyC,UAA4BwD,IAAYxD,SAASoxR,cACxD7uR,KAAK64T,aAEC74T,KAAK4uS,QAAW5uS,KAAK4uS,OAAO9kH,KAIlC9pL,KAAKy2T,cAHLz2T,KAAK64T,gBAlLjB7D,CAAAA,IAAAA,cAAAA,MAAAA,SAyLYnhS,GACJ7zB,KAAK4uS,OACL5uS,KAAK4uS,OAAOqkB,mBAAmBp/R,EAAMlpB,OAAOlF,OAAAA,IAG5CzF,KAAKu+T,YAAc1qS,EAAMlpB,OAAOlF,MAChCzF,KAAKk+T,kBAAkBhwM,KAAKluH,KAAKu+T,gBA/LzCvJ,CAAAA,IAAAA,eAAAA,MAAAA,SAkManhS,GACT7zB,KAAKy9T,cAAcvvM,KAAKr6F,KAnM5BmhS,CAAAA,IAAAA,gBAAAA,MAAAA,SAqMcnhS,GACV7zB,KAAK29T,eAAezvM,KAAKr6F,KAtM7BmhS,CAAAA,IAAAA,gBAAAA,MAAAA,SAwMcnhS,GACV7zB,KAAK49T,gBAAgB1vM,KAAKr6F,KAzM9BmhS,CAAAA,IAAAA,kBAAAA,MAAAA,SA2MgBnhS,GACZ7zB,KAAK69T,kBAAkB3vM,KAAKr6F,KA5MhCmhS,CAAAA,IAAAA,sBAAAA,MAAAA,SA8MoBvvT,GAChBzF,KAAKo+T,qBAAqBlwM,KAAKzoH,OA/MnCuvT,EAAAA,IAkNiBpyL,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKg7T,IAAsB,GAAyB,IAAkB,GAAyB,IAAkC,GAAyB,IAAwB,GAAyB,IAA0B,GAAyB,IAAoB,GAAyB,MAC9XA,GAAqB5yL,UAAO,GAAyB,CAAEj3H,KAAM6pT,GAAsBt2R,UAAW,CAAC,CAAC,GAAI,cAAe,KAAM2nG,aAAc,SAA2Ckc,EAAInmI,GAAgB,EAALmmI,GACzL,GAAkB,SAAS,WAA2D,OAAOnmI,EAAI0lS,gBAAjG,CAAmH,SAAS,WAA2D,OAAO1lS,EAAIyiT,gBAAlM,CAAoN,SAAS,SAAuDnuH,GAAU,OAAOt0L,EAAI0iT,YAAYpuH,OACpTjqE,OAAQ,CAAE6xL,QAAS,UAAWe,SAAU,WAAYkE,SAAU,WAAYC,WAAY,aAAc/D,kBAAmB,oBAAqBH,gBAAiB,kBAAmBC,YAAa,cAAef,cAAe,gBAAiBC,eAAgB,iBAAkB1I,eAAgB,iBAAkByJ,eAAgB,iBAAkBhD,gBAAiB,kBAAmBkD,mBAAoB,qBAAsBC,oBAAqB,sBAAuBC,uBAAwB,yBAA0BC,WAAY,aAAcC,iBAAkB,mBAAoBC,0BAA2B,4BAA6BnF,WAAY,aAAcJ,eAAgB,iBAAkBD,gBAAiB,kBAAmBI,eAAgB,iBAAkBR,mBAAoB,qBAAsBD,oBAAqB,sBAAuBL,cAAe,gBAAiBP,oBAAqB,sBAAuBxE,wBAAyB,0BAA2B4E,qBAAsB,uBAAwBD,0BAA2B,4BAA6BN,iBAAkB,mBAAoBpE,qBAAsB,uBAAwBH,sBAAuB,wBAAyBkE,yBAA0B,2BAA4ByL,YAAa,cAAe1P,eAAgB,kBAAoBnoL,QAAS,CAAE+2L,cAAe,gBAAiBC,eAAgB,iBAAkBC,eAAgB,iBAAkBC,gBAAiB,kBAAmBC,kBAAmB,oBAAqBC,gBAAiB,kBAAmBC,iBAAkB,mBAAoBC,kBAAmB,oBAAqBC,kBAAmB,oBAAqBC,kBAAmB,oBAAqBC,kBAAmB,oBAAqBC,qBAAsB,wBAA0Bz3L,SAAU,CAAC,kBAAmBrrH,SAAU,CAAC,MAHrzD05S,IAAAA,KAmKID,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEcvyL,UAAO,GAAwB,CAAEr3H,KAAM4pT,KACzDA,GAAkBp0L,UAAO,GAAwB,CAAErrH,QAAS,SAAmCtb,GAAK,OAAO,IAAKA,GAAK+6T,KAAyB/0L,UAAW,CAAC,IAAqBC,QAAS,CAAC,CAAC,OAD1L80L,IAAAA,GAAAA,CAAAA,WC38DO,KAAMI,GAAN,WAIH,SAAA,EACmDh5T,EACvCk4R,GAAAA,gBAAAA,KAAAA,GADuC,KAAAl4R,KAAAA,EACvC,KAAAk4R,gBAAAA,EANT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WASH,IAAA,EAAA,KACIr0R,KAAKi7B,MAAQj7B,KAAK++T,kBAGlB1+T,YAAW,WACPL,EAAK0gB,QAAQ6pJ,cAAck8G,aAdhC,CAAA,IAAA,oBAAA,MAAA,SAkBsBhhR,GACrBzF,KAAKi7B,MAAQx1B,EAEbzF,KAAKq0R,gBAAgB2qC,UAAUv5T,KArBhC,CAAA,IAAA,kBAAA,MAAA,WAyBC,IAAIw1B,EAASj7B,KAAK7D,MAAQ6D,KAAK7D,KAAK8+B,OAAU,KAE9C,OADIA,GAAqC,kBAA5BA,EAAMpvB,QAAQ,KAAM,MAAyBovB,OAAAA,GACnDA,MA3BR,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMk6R,IAAyB,GAKtBrhC,GAAkB,GAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KALrBqhC,GAAyB,UAAA,CAAA,CAAA,iBAAA,UAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAA,GAAA,IAAA,GAAA,EAAA,GAAA,GAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,SAAA,CAAA,GAJvB,CACP,MACH,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,UAAA,EAAA,cAAA,iBAAA,iBAAA,kBAAA,WAAA,qBAAA,CAAA,UAAA,KAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ICXL,GAAA,EAAA,MAAA,EAAA,GAIK,GAAA,qBAAA,SAAA,GAAA,OAAqB,EAAA8J,kBAAA,MAGzB,MDII,EAAA,GCVA,GAAA,cAAA,EAAA,MAAA,CAAqB,iBAAA,SAArB,CAAqB,iBAAA,OAArB,CAAqB,kBAAA,SAArB,CAAqB,YAAA,IAAA,WAAA,CAAA,IAAA,OAAA,CAAA,0GAAA,gBAAA,IAAA,ICCbC,GAAuC,CAChD,CAAC51Q,QAAS,SAAUC,QAAS,SAAUi1K,SAAU,SAAUC,SAAU,MAAO3nL,QAAS,EAAGD,QAAS,GACjG,CAACyS,QAAS,SAAUC,QAAS,MAAOi1K,SAAU,SAAUC,SAAU,WAF/D,GAAA,CAAA,qBAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KCEH,GAAA,EAAA,SAAA,GAEQ,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,YAAA,MAFR,GAAA,EAAA,SAMC,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAFO,GAAA,aAAA,EAAA,IACA,GAAA,WAAA,GAAA,EAAA,EAAA,EAAA,kBAAA,IAAA,ICYC0gG,GDZD,GAAA,CAAA,KCYL,KAAMA,GAAN,WAQH,SAAA,EACYpqC,EACA9rR,GAAAA,gBAAAA,KAAAA,GADA,KAAA8rR,aAAAA,EACA,KAAA9rR,OAAAA,EAR2B,KAAAm2T,SAAAA,EAEhC,KAAAC,eAAiB,IAAI,GAAgB,QAQxCr/T,KAAKk+S,OAASl+S,KAAKiJ,OAAO4Z,IAAI,+BAZ/B,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAegBoY,GACfj7B,KAAKq/T,eAAen3T,KAAK+yB,GACzBj7B,KAAKs/T,gBAAgBrkS,KAjBtB,CAAA,IAAA,kBAAA,MAAA,WAoBI,IAAA,EAAA,KAEHj7B,KAAK+0R,aAAa9yR,KAAK,GADR,CAAC4kB,SAAUq4S,GAAiB/gG,aAAAA,EAAmB37N,OAAQxC,KAAKu/T,oBAEtEC,eAAej/T,WAAU06B,SAAAA,GAAAA,OAASj7B,EAAK+qN,YAAY9vL,QAvBzD,CAAA,IAAA,aAAA,MAAA,SA0Bex1B,GACdzF,KAAKq/T,eAAen3T,KAAKzC,KA3B1B,CAAA,IAAA,mBAAA,MAAA,SA8BqBrB,GACpBpE,KAAKs/T,gBAAkBl7T,IA/BxB,CAAA,IAAA,oBAAA,MAAA,gBAAA,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM+6T,IAAoB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAApBA,GAAoB,UAAA,CAAA,CAAA,iBAAA,UAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAA,GAAA,IAAA,EACW70J,IADX,EAAA,GAAA,GAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,UAAA,CAAA,EAAA,gBAAA,SAAA,EAAA,aAAA,SAAA,EAAA,GAAA,EAAA,GAAA,GAAA,UAAA,EAAA,UAAA,OAAA,CAAA,QAAA,WAAA,SAAA,CAAA,GANlB,CAAC,CACRjnC,QAASgtE,GACT/5C,YAAa6oK,GACbtpK,OAAAA,MACF,mBAAA,GAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,UAAA,CAAA,kBAAA,GAAA,EAAA,sBAAA,EAAA,SAAA,CAAA,oBAAA,IAAA,CAAA,UAAA,sBAAA,CAAA,QAAA,yBAAA,EAAA,aAAA,WAAA,QAAA,EAAA,QAAA,WAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,EAAA,WAAA,QAAA,UAAA,EAAA,UAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IAAA,KDnBN,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,EAAA,GAAoD,GAAA,SAAA,WAAA,OAAS,EAAAsjK,qBACzD,GAAA,EAAA,WAAA,GACJ,KACA,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,GAOJ,KACA,GAAA,EAAA,MAAA,GAAgC,GAAA,GAAyB,MCOnD,EAAA,IDZM,GAAA,GAAA,GAAA,UAAA,EAAA,UAAA,WAAA,CAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,kjCAAA,cAAA,EAAA,gBAAA,IAAA,ICcL,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KCnBC,GAAA,GACI,GAAA,EAAA,eAAA,GAA+C,GAAA,iBAAA,SAAA,GAAA,OAAA,GAAA,GAAA,GAAA,GAAA,iBAAkC,QAASzoH,MAAS,KACvG,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GADkB,GAAA,GAAA,GAAA,cAAA,EAAA,mBAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAKV,GAAA,EAAA,SAAA,GAA2E,GAAA,GAAS,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAA5E,GAAA,QAAA,GAAmE,GAAA,GAAA,GAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAHnF,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,QAAA,GAAgC,GAAA,GAAc,KAC9C,GAAA,EAAA,SAAA,GAA0B,GAAA,UAAA,SAAA,GAAA,GAAA,GAAA,IAAA,EAAA,KAAA,UAAA,OAAA,GAAA,GAAA,iBAAA,EAAA,IAAA,EAAA,OAAA,UACtB,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,GACJ,KACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAA,UAJW,GAAA,GAAA,GAAA,MAAA,EAAA,KAAyB,GAAA,GAAA,GAAA,EAAA,KACxB,GAAA,GAAA,GAAA,KAAA,EAAA,KACoB,GAAA,GAAA,GAAA,UAAA,EAAA,MAAA,YAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAGhC,GAAA,EAAA,MAAA,IACI,GAAA,EAAA,MAAA,IAAgC,GAAA,GAAc,KAC9C,GAAA,EAAA,aAAA,IAKQ,GAAA,SAAA,SAAA,GAAA,GAAA,GAAA,IAAA,EAAA,KAAA,UAAA,OAAA,GAAA,GAAA,iBAAA,EAAA,IAAA,EAAA,UACP,KACL,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAA,UARoC,GAAA,GAAA,GAAA,EAAA,KAExB,GAAA,GAAA,GAAA,QAAA,EAAA,MAAA,QAAA,CAA8B,MAAA,EAAA,MAAA,KAAA,EAA9B,CAA8B,MAAA,EAAA,MAAA,KAAA,IAA9B,CAA8B,OAAA,EAAA,MAAA,MAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAb9C,GAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAGA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAMA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAUJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAnBkB,GAAA,GAAA,GAAA,OAAA,gBAAA,EAAA,MAAA,MAGe,GAAA,GAAA,GAAA,OAAA,WAAA,EAAA,MAAA,MAMC,GAAA,GAAA,GAAA,OAAA,WAAA,EAAA,MAAA,OAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAXtC,GAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GADJ,GAAA,EAAA,YAsBA,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,KAAA,EAAA,KArBkB,GAAA,GAAA,GAAA,UAAA,GAAA,EAAA,EAAA,EAAA,iBAAA,MCaX,IAAM+uH,GAAN,KAAMA,GAAN,WAIH,SAAA,EACYniD,EACAztJ,GAAAA,gBAAAA,KAAAA,GADA,KAAAytJ,WAAAA,EACA,KAAAztJ,MAAAA,EAJL,KAAA6vM,iBAAmB,IAAIziH,GAF3B,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,SASqBggE,EAAoBx3Q,GACxC,IAAMg3Q,EAAaz8Q,KAAK6vH,MAAM6pJ,eAAe,GAAY8D,gBACzDx9Q,KAAKs9Q,WAAWG,WAAWhB,EAAYQ,EAAYx3Q,KAXpD,CAAA,IAAA,mBAAA,MAAA,SAcqB7F,GACpB,OAAOI,KAAKs9Q,WAAWzyD,UAAUjrN,GAAM8V,YAfxC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM+pT,IAAuB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAvBA,GAAuB,UAAA,CAAA,CAAA,oBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,QAAA,WAAA,CAAA,QAAA,kBAAA,EAAA,QAAA,CAAA,QAAA,mBAAA,EAAA,QAAA,CAAA,EAAA,cAAA,iBAAA,CAAA,EAAA,mBAAA,CAAA,QAAA,GAAA,EAAA,OAAA,CAAA,EAAA,KAAA,UAAA,CAAA,QAAA,GAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,QAAA,GAAA,EAAA,SAAA,CAAA,EAAA,oBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,MAAA,MAAA,OAAA,UAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDdpC,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAAA,GAAA,EAAA,UCcoC,EAAA,GDdtB,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,mBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,GAAA,IAAA,OAAA,CAAA,yGAAA,cAAA,EAAA,gBAAA,ICe0B,GAAA,CAAnC7wH,GAAO,GAAY4uE,gBAAgB,GAAA,cAAiB,IAAjB,GAAA,UAAA,uBAAA,GAAA,IADjC,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KCNS,GAAA,EAAA,SAAA,IAAwB,GAAA,SAAA,SAAA,GAAA,GAAA,GAAA,IAAA,EAAA,GAAA,GAAA,UAAA,OAAA,GAAA,GAAA,mBAAA,GAAqC9sE,EAAOt0I,qBAChE,GAAA,EAAA,WAAA,IACJ,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KANJ,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,IAAwB,GAAA,SAAA,SAAA,GAAA,GAAA,GAAA,IAAA,EAAA,KAAA,UAAA,OAAA,GAAA,GAAA,aAAA,GAA+Bs0I,EAAOt0I,qBAC1D,GAAA,EAAA,WAAA,IACJ,KACA,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,IAGJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAA,UAAA,EAAA,GAAA,GAH4F,GAAA,GAAA,GAAA,OAAA,EAAA,WAAA,WAAA,KAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAPpG,GAAA,EAAA,MAAA,GAAiE,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,GAAA,GAAA,YAAA,MAC7D,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAQJ,KACA,GAAA,EAAA,MAAA,GAAgC,GAAA,GAAgC,KACpE,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAAA,KAAA,EAAA,KAXa,GAAA,GAAA,GAAA,MAAA,EAAA,eAAA,GAAA,IACuB,GAAA,GAAA,GAAA,OAAA,EAAA,QAAA,IAAA,GASA,GAAA,GAAA,GAAA,EAAA,qBAAA,KAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAbxC,GAAA,EAAA,MAAA,GAAA,GAAA,EAAA,SACI,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAcJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAf4F,GAAA,SAAA,GAAA,EAAA,EAAA,EAAA,kBACzD,GAAA,GAAA,GAAA,UAAA,EAAA,aAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAgBnC,GAAA,EAAA,kBAAA,IAAA,EAAA,GAA8F,GAAA,UAAA,EAAA,MCEvF,IAAMujQ,GCLAC,GCiBAC,GCs2BPC,GAZAC,GAnvBAC,GHnHC,KAAML,GAAN,WAQH,SAAA,EACYv7G,EACDk5D,EACGztJ,EACH5mH,GAAAA,gBAAAA,KAAAA,GAHC,KAAAm7M,SAAAA,EACD,KAAAk5D,WAAAA,EACG,KAAAztJ,MAAAA,EACH,KAAA5mH,OAAAA,EANJ,KAAAg3T,WAAuB,GAQ1BjgU,KAAKigU,WAAajgU,KAAKiJ,OAAO4Z,IAAI,4BAdnC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAiBgB3L,GACflX,KAAKs9Q,WAAW9+Q,MAAM0Y,KAlBvB,CAAA,IAAA,eAAA,MAAA,SAqBiBA,GAChBlX,KAAKs9Q,WAAWvnQ,OAAOmB,KAtBxB,CAAA,IAAA,iBAAA,MAAA,SAyBmBA,GAClB,OAAOlX,KAAKokN,SAAS+F,YAAY,yBAA2BjzM,EAAOrL,QAAQ,IAAK,KAAO,QAAA,KA1BxF,CAAA,IAAA,qBAAA,MAAA,SA6BuBqL,GACtBlX,KAAK6vH,MAAMi+D,SAAS,IAAI8sF,GAAmB1jQ,MA9B5C,CAAA,IAAA,uBAAA,MAAA,SAiCyBtX,GACxB,MAAa,eAATA,EAA8B,gBAC3B2iT,GAAU3iT,OAnClB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM+/T,IAAqB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAArBA,GAAqB,UAAA,CAAA,CAAA,kBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,QAAA,iCAAA,EAAA,SAAA,EAAA,QAAA,CAAA,QAAA,qBAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,qBAAA,eAAA,CAAA,QAAA,oBAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,oBAAA,EAAA,SAAA,CAAA,EAAA,mBAAA,CAAA,MAAA,iBAAA,EAAA,OAAA,CAAA,QAAA,iBAAA,EAAA,QAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,EAAA,kBAAA,CAAA,kBAAA,GAAA,EAAA,SAAA,CAAA,UAAA,UAAA,CAAA,kBAAA,GAAA,EAAA,QAAA,EAAA,QAAA,CAAA,UAAA,YAAA,CAAA,EAAA,qBAAA,EAAA,YAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDnBlC,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAAA,GAAA,EAAA,SAiBA,GAAA,EAAA,GAAA,EAAA,EAAA,kBAAA,GAjBA,GAAA,EAAA,UCmBkC,EAAA,IDnBU,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,iBAiB3B,GAAA,GAAA,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,oBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,qVAAA,cAAA,EAAA,gBAAA,ICGoB,GAAA,CAAhC/wH,GAAO,GAAY6rE,aAAa,GAAA,cAAY,IAAZ,GAAA,UAAA,kBAAA,GACE,GAAA,CAAlC7rE,GAAO,GAAY2uE,eAAe,GAAA,cAAgB,IAAhB,GAAA,UAAA,sBAAA,GACC,GAAA,CAAnC3uE,GAAO,GAAY4uE,gBAAgB,GAAA,cAAiB,IAAjB,GAAA,UAAA,uBAAA,GACT,GAAA,CAA1B5uE,GAAO,GAAYpqI,OAAO,GAAA,cAAQ,IAAR,GAAA,UAAA,cAAA,GAAA,IGDzB,GAAM,CAAC,SACP,GAAM,WAAc,MAAO,CAAE6mM,cAAe,MAC5C,GAAM,CAAC,KAYP60D,GAA+B,IAAIn9L,GAAe,+BAAgC,CACpFjD,WAAY,OACZxqH,QAMJ,WACI,MAAO,CACH2lB,MAAO,SACPklS,YAAa,0BASfC,GAA4B,IAAIr9L,GAAe,6BASjD,GAAe,EAObs9L,GAAsC,CACxCh9L,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GAgBEyqK,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IA+BAC,GAAwB/1D,GAAcN,GAAWI,GAAmBL,IATtE,SAAA,EAAY15D,GAAAA,gBAAAA,KAAAA,GACRvwM,KAAKuwM,YAAcA,QAQ3B,KASMyvH,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAWF,SAAA,EAAYzxK,EAAYqgH,EAAoB2B,EAAexvF,EAAS2zD,EAAU8rF,EAAc7yD,EAAgBroO,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IACxG80F,EAAAA,EAAAA,KAAAA,KAAMm0B,IACDqgH,mBAAqBA,EAC1B5uQ,EAAKuwQ,cAAgBA,EACrBvwQ,EAAK+gL,QAAUA,EACf/gL,EAAKwgU,aAAeA,EACpBxgU,EAAK2tQ,eAAiBA,EACtB3tQ,EAAKslC,SAAWA,EAKhBtlC,EAAK2xO,UAAY,GAIjB3xO,EAAKg3S,eAAiB,KACtBh3S,EAAKkrH,UAALlrH,gBAAAA,SAAmC,IAInCA,EAAKyR,GAAKzR,EAAKkrH,UAIflrH,EAAKk2S,cAAgB,QAIrBl2S,EAAKJ,KAAO,KAIZI,EAAK4uG,OAAS,IAAI,GAIlB5uG,EAAKygU,oBAAsB,IAAI,GAK/BzgU,EAAK0gU,WAAa,aAIlB1gU,EAAK2gU,uBAAyB,GAC9B3gU,EAAK4gU,mBAAqB,EAC1B5gU,EAAK01S,8BAAgC,aAIrC11S,EAAKu2S,UAAAA,EACLv2S,EAAK2vO,WAAAA,EACL3vO,EAAK6gU,gBAAAA,EACL7gU,EAAKslC,SAAWtlC,EAAKslC,UAAY,GAC7BtlC,EAAKslC,SAASrK,QACdj7B,EAAKi7B,MAAQj7B,EAAKslC,SAASrK,OAE/Bj7B,EAAK00O,SAAWrmO,SAASqmO,IAAa,EACtC10O,EAAKuwQ,cAAcI,QAAQpiH,GAAAA,GAAkBhuJ,WAI7Cm2S,SAAAA,GACSA,GAMDnnS,QAAQwJ,UAAUrJ,MAAK,WAInB1P,EAAK0gU,aACL9xD,EAAmB9yE,qBAK/B97L,EAAKwgU,aAAexgU,EAAKwgU,cAAgBxgU,EAAKslC,SAAS66R,YAjFiD76R,EAkL5G,OA3FA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WAeItlC,KAAK8gU,mBAAmB9gU,KAAK6gU,kBAMjC,CAAA,IAAA,qBAAA,MAAA,cAIA,CAAA,IAAA,cAAA,MAAA,WACI7gU,KAAKuwQ,cAAcn3B,eAAep5O,KAAKuwM,eAM3C,CAAA,IAAA,oBAAA,MAAA,WA4DI,OAAOvwM,KAAKsvQ,eAAiBtvQ,KAAKwxM,WAMtC,CAAA,IAAA,qBAAA,MAAA,WAMIxxM,KAAK4uQ,mBAAmBhoF,kBAO5B,CAAA,IAAA,aAAA,MAAA,SAAWnhL,GACPzF,KAAK2wM,UAAYlrM,IAOrB,CAAA,IAAA,mBAAA,MAAA,SAAiBrB,GACbpE,KAAK01S,8BAAgCtxS,IAOzC,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACdpE,KAAK0gU,WAAat8T,IAOtB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKwxM,SAAWf,IAKpB,CAAA,IAAA,kBAAA,MAAA,WACI,OAAIzwM,KAAK2wM,QACE,OAEJ3wM,KAAK+gU,cAAgB,QAAU,UAO1C,CAAA,IAAA,wBAAA,MAAA,SAAsB36H,GAElB,IAAI46H,EAAWhhU,KAAK4gU,mBAEhB3/T,EAAUjB,KAAKuwM,YAAYhmC,cAC/B,GAAIy2J,IAAa56H,IAGbpmM,KAAK2gU,uBAAuB3lU,OAAS,GACrCiG,EAAQmkK,UAAUrvJ,OAAO/V,KAAK2gU,wBAElC3gU,KAAK2gU,uBAAyB3gU,KAAKihU,0CAA0CD,EAAU56H,GACvFpmM,KAAK4gU,mBAAqBx6H,EACtBpmM,KAAK2gU,uBAAuB3lU,OAAS,GAAG,CACxCiG,EAAQmkK,UAAUr9J,IAAI/H,KAAK2gU,wBAG3B,IAAMO,EAAiBlhU,KAAK2gU,uBAC5B3gU,KAAK+gL,QAAQX,mBAAkB,WAI3B//K,YAAW,WAIPY,EAAQmkK,UAAUrvJ,OAAOmrT,KACzB,WAQhB,CAAA,IAAA,mBAAA,MAAA,WAEI,IAAMrtS,EAAQ,IAAIysS,GAClBzsS,EAAMzxB,OAASpC,KACf6zB,EAAM88K,QAAU3wM,KAAK2wM,QACrB3wM,KAAK01S,8BAA8B11S,KAAK2wM,SACxC3wM,KAAK4uG,OAAOsf,KAAKr6F,KAMrB,CAAA,IAAA,SAAA,MAAA,WACI7zB,KAAK2wM,SAAW3wM,KAAK2wM,UAUzB,CAAA,IAAA,gBAAA,MAAA,SAAc98K,GAAAA,IAAAA,EAAAA,KAQVA,EAAMuoC,kBAEDp8D,KAAKwxM,UAAkC,SAAtBxxM,KAAKwgU,aAkBjBxgU,KAAKwxM,UAAkC,SAAtBxxM,KAAKwgU,eAG5BxgU,KAAKy2S,cAAclsI,cAAcomC,QAAU3wM,KAAK2wM,QAChD3wM,KAAKy2S,cAAclsI,cAAcw2J,cAAgB/gU,KAAK+gU,gBApBlD/gU,KAAK+gU,eAAuC,UAAtB/gU,KAAKwgU,cAC3BjxT,QAAQwJ,UAAUrJ,MAAK,WAInB1P,EAAK6gU,gBAAAA,EACL7gU,EAAKygU,oBAAoBvyM,KAAKluH,EAAK6gU,mBAG3C7gU,KAAK8iB,SACL9iB,KAAKmhU,sBAAsBnhU,KAAKu2S,SAAW,EAAkB,GAI7Dv2S,KAAK62N,sBAeb,CAAA,IAAA,QAAA,MAAA,WAA2BnhN,IAArBlT,EAAqBkT,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAZ,WAAYA,EAAAA,UAAAA,OAAAA,EAAAA,UAAAA,QAAAA,EACvB1V,KAAKuwQ,cAAcK,SAAS5wQ,KAAKy2S,cAAej0S,EAAQkT,KAM5D,CAAA,IAAA,sBAAA,MAAA,SAAoBme,GAIhBA,EAAMuoC,oBAQV,CAAA,IAAA,4CAAA,MAAA,SAA0C4kQ,EAAU56H,GAEhD,GAA4B,mBAAxBpmM,KAAK2tQ,eACL,MAAO,GAGX,IAAIyzD,EAAa,GACjB,OAAQJ,GACJ,KAAK,EAGD,GAAiB,IAAb56H,EACAg7H,EAAa,wBAEZ,CAAA,GAAgB,GAAZh7H,EAIL,MAAO,GAHPg7H,EAAa,0BAKjB,MACJ,KAAK,EACDA,EAA0B,IAAbh7H,EACT,oBAAsB,0BAC1B,MACJ,KAAK,EACDg7H,EAA0B,IAAbh7H,EACT,oBAAsB,wBAC1B,MACJ,KAAK,EACDg7H,EAA0B,IAAbh7H,EACT,wBAA0B,0BAGtC,MAAA,qBAAA,OAA4Bg7H,KAahC,CAAA,IAAA,qBAAA,MAAA,SAAmB37T,GAEf,IAAM47T,EAAiBrhU,KAAKy2S,cACxB4qB,IACAA,EAAe92J,cAAcw2J,cAAgBt7T,KAAAA,CAAAA,IAAAA,UAAAA,IAAAA,WAjUrC,MAAA,GAAA,OAAUzF,KAAKyR,IAAMzR,KAAKkrH,UAA1B,YAKhB,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOlrH,KAAK6iN,WAK7B,IAAA,SAAap9M,GAASzF,KAAK6iN,UAAYyP,GAAsB7sN,KAI7D,CAAA,IAAA,UAAA,IAAA,WAkBgB,OAAOzF,KAAKu2S,UAK5B,IAAA,SAAY9wS,GACJA,GAASzF,KAAK2wM,UACd3wM,KAAKu2S,SAAW9wS,EAChBzF,KAAK4uQ,mBAAmB9yE,kBAQhC,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAO97L,KAAK2vO,WAK7B,IAAA,SAAalqO,GAET,IAAMqtD,EAAWw/J,GAAsB7sN,GACnCqtD,IAAa9yD,KAAKwxM,WAClBxxM,KAAK2vO,UAAY78K,EACjB9yD,KAAK4uQ,mBAAmB9yE,kBAUhC,CAAA,IAAA,gBAAA,IAAA,WAAsB,OAAO97L,KAAK6gU,gBAKlC,IAAA,SAAkBp7T,GAEd,IAAMypG,EAAUzpG,GAASzF,KAAK6gU,eAC9B7gU,KAAK6gU,eAAiBvuG,GAAsB7sN,GACxCypG,IAEIlvG,KAAKmhU,sBADLnhU,KAAK6gU,eACsB,EAGA7gU,KAAK2wM,QAAU,EAAkB,GAEhE3wM,KAAKygU,oBAAoBvyM,KAAKluH,KAAK6gU,iBAEvC7gU,KAAK8gU,mBAAmB9gU,KAAK6gU,oBAKjC,EA7LEb,CAAoBO,KAuad39L,UAAO,SAA6B5oI,GAAK,OAAO,IAAKA,GAAKgmU,IAAa,GAAyB,IAAoB,GAAyB,IAA2B,GAAyB,IAAsB,GAAyB,IAAgB,GAAyB,YAAa,GAAyBI,GAA2B,GAAI,GAAyBv3D,GAAuB,GAAI,GAAyBq3D,GAA8B,KACrdF,GAAY99L,UAAO,GAAyB,CAAE/2H,KAAM60T,GAAathS,UAAW,CAAC,CAAC,iBAAkBqpG,UAAW,SAA2Bwa,EAAInmI,GAIlI,IAAIy0P,EAJ8I,EAALtuH,IAC7I,GAAmB,IAAA,GACnB,GAAmB,IAAA,IACZ,EAALA,IAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIq6R,cAAgB5lC,EAAGx1G,OAC5E,GAAsBw1G,EAAK,QAA0Bz0P,EAAIgwP,OAASyE,EAAGx1G,SACpE90B,UAAW,CAAC,EAAG,gBAAiBD,SAAU,GAAID,aAAc,SAAkCkc,EAAInmI,GAAgB,EAALmmI,IAC9G,GAAsB,KAAMnmI,EAAI3K,IAChC,GAAmB,WAAY,MAC/B,GAAmB,6BAA8B2K,EAAI2kT,cAArD,CAAoE,uBAAwB3kT,EAAIu0L,QAAhG,CAAyG,wBAAyBv0L,EAAIo1L,SAAtI,CAAgJ,4BAAkD,UAArBp1L,EAAI85R,cAAjL,CAA4M,0BAAkD,mBAAvB95R,EAAIuxP,kBAC1OlnI,OAAQ,CAAE6oI,cAAe,gBAAiBr0O,MAAO,QAASy5M,SAAU,WAAY/C,UAAW,CAAC,aAAc,aAAcqlE,eAAgB,CAAC,kBAAmB,kBAAmBvlS,GAAI,KAAMykS,cAAe,gBAAiBt2S,KAAM,OAAQgjN,SAAU,WAAYjS,QAAS,UAAWa,SAAU,WAAYuvH,cAAe,gBAAiBt7T,MAAO,SAAWihI,QAAS,CAAE93B,OAAQ,SAAU6xN,oBAAqB,uBAAyB95L,SAAU,CAAC,eAAgBrrH,SAAU,CAAC,GAA0B,CAAC+kT,KAAuC,IAAoCj6L,mBAAoB,GAAKJ,MAAO,GAAIC,KAAM,GAAIE,OAAQ,CAAC,CAAC,EAAG,uBAAwB,CAAC,QAAS,IAAK,CAAC,EAAG,gCAAiC,CAAC,OAAQ,WAAY,EAAG,qBAAsB,sBAAuB,EAAG,KAAM,WAAY,UAAW,WAAY,WAAY,SAAU,SAAU,CAAC,QAAS,IAAK,CAAC,YAAa,GAAI,EAAG,sBAAuB,sBAAuB,EAAG,mBAAoB,oBAAqB,kBAAmB,oBAAqB,sBAAuB,CAAC,EAAG,qBAAsB,kCAAmC,CAAC,EAAG,sBAAuB,CAAC,EAAG,2BAA4B,CAAC,UAAW,MAAO,YAAa,QAAS,UAAW,YAAa,EAAG,MAAO,QAAS,WAAY,EAAG,0BAA2B,CAAC,OAAQ,OAAQ,SAAU,QAAS,IAAK,4BAA6B,EAAG,+BAAgC,CAAC,EAAG,0BAA2B,CAAC,EAAG,qBAAsB,EAAG,qBAAsB,CAAC,gBAAiB,IAAK,CAAC,EAAG,UAAW,SAAUD,SAAU,SAA8Bqc,EAAInmI,GA4BrhD,GA5BqiD,EAALmmI,IAC9hD,KACA,GAAsB,EAAG,QAAS,EAAG,GACrC,GAAsB,EAAG,MAAO,GAChC,GAAsB,EAAG,QAAS,EAAG,GACrC,GAAkB,UAAU,SAAsDmuD,GAAU,OAAOt0L,EAAIklT,oBAAoB5wH,KAA3H,CAAuI,SAAS,SAAqDA,GAAU,OAAOt0L,EAAIg7R,cAAc1mG,MACxO,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,MAAO,GAC3B,KACA,GAAiB,EAAG,MAAO,GAC3B,GAAsB,EAAG,MAAO,GAChC,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,GAAI,OAAQ,IAC7B,KACA,KACA,GAAiB,GAAI,MAAO,IAC5B,KACA,KACA,GAAsB,GAAI,OAAQ,GAAI,IACtC,GAAkB,qBAAqB,WAAqE,OAAOt0L,EAAImlT,wBACvH,GAAsB,GAAI,OAAQ,IAClC,GAAc,GAAI,QAClB,KACA,GAAoB,IACpB,KACA,MACO,EAALh/K,EAAQ,CACV,IAAM80J,EAAM,GAAmB,GACzB7kC,EAAM,GAAmB,IAC/B,GAAmB,MAAOp2P,EAAIk7R,SAC9B,GAAiB,GACjB,GAAmB,+CAAgD9kC,EAAI5tO,cAAgB4tO,EAAI5tO,YAAY5uB,QACvG,GAAiB,GACjB,GAAkB,KAAMoG,EAAIk7R,QAA5B,CAAqC,WAAYl7R,EAAIwmM,SAArD,CAA+D,UAAWxmM,EAAIu0L,QAA9E,CAAuF,WAAYv0L,EAAIo1L,SAAvG,CAAiH,WAAYp1L,EAAIs4N,UACjI,GAAmB,QAASt4N,EAAI3W,MAAhC,CAAuC,OAAQ2W,EAAIxc,KAAnD,CAAyD,aAAcwc,EAAIu1N,WAAa,KAAxF,CAA8F,kBAAmBv1N,EAAI46R,eAArH,CAAqI,eAAgB56R,EAAIolT,mBACzJ,GAAiB,GACjB,GAAkB,mBAAoBnqB,EAAtC,CAA2C,oBAAqBj7R,EAAI00P,oBAApE,CAAyF,kBAAmB,GAA5G,CAAgH,qBAAA,EAAhH,CAA2I,qBAAsB,GAAuB,GAAI,OAC3LntH,WAAY,CAAC,GAAkB,IAA2BhvH,OAAQ,CAAC,szNAAuzNqzG,cAAe,EAAGJ,gBAAiB,IAnDt6No4L,IAAAA,KA4UMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAE8Bv9L,UAAO,GAAwB,CAAEr3H,KAAM40T,KAC3EA,GAAoCp/L,UAAO,GAAwB,CAAErrH,QAAS,SAAqDtb,GAAK,OAAO,IAAKA,GAAK+lU,OADzJA,IAAAA,KAUMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEYt9L,UAAO,GAAwB,CAAEr3H,KAAM20T,KACzDA,GAAkBn/L,UAAO,GAAwB,CAAErrH,QAAS,SAAmCtb,GAAK,OAAO,IAAKA,GAAK8lU,KAAyB7/L,QAAS,CAAC,CAC5I,GAAiB,GAAiB,GAClC,IACD,GAAiB,MAJ5B6/L,IDx2BO,KAAMD,GAAN,WAQH,SAAA,EACY3jT,EACEslG,EACF+8J,EACD/hE,EACC06D,EACArnJ,EACA5mH,GAAAA,gBAAAA,KAAAA,GANA,KAAAiT,OAAAA,EACE,KAAAslG,QAAAA,EACF,KAAA+8J,WAAAA,EACD,KAAA/hE,SAAAA,EACC,KAAA06D,MAAAA,EACA,KAAArnJ,MAAAA,EACA,KAAA5mH,OAAAA,EAdL,KAAAw4T,WAAa,IAAIllH,GAAU,CAC9B7/L,MAAO,IAAIugM,GACX1gM,OAAQ,IAAI0gM,GACZqhE,eAAgB,IAAIrhE,IAAAA,GACpBykH,oBAAqB,IAAIzkH,IAAAA,KAL1B,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAmBC,IAAMtsG,EAAW3wG,KAAKiJ,OAAO4Z,IAAI,8BAA+B,IAChE,OAAI7iB,KAAKyhU,WAAWh8T,MAAM64Q,eACft7P,KAAK2L,KAAgB,IAAXgiF,EAAiB3wG,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,OAE1Di0F,IAvBR,CAAA,IAAA,WAAA,MAAA,WA2BC,IAAM7Y,EAAW93F,KAAKiJ,OAAO4Z,IAAI,8BAA+B,MAChE,OAAI7iB,KAAKyhU,WAAWh8T,MAAM64Q,eACft7P,KAAK2L,KAAgB,IAAXmpE,EAAiB93F,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,OAE1Do7E,IA/BR,CAAA,IAAA,YAAA,MAAA,WAmCC,IAAM4wH,EAAY1oN,KAAKiJ,OAAO4Z,IAAI,+BAAgC,IAClE,OAAI7iB,KAAKyhU,WAAWh8T,MAAM64Q,eACft7P,KAAK2L,KAAiB,IAAZ+5L,EAAkB1oN,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,QAE3DmsM,IAvCR,CAAA,IAAA,YAAA,MAAA,WA2CC,IAAMztH,EAAYj7F,KAAKiJ,OAAO4Z,IAAI,+BAAgC,MAClE,OAAI7iB,KAAKyhU,WAAWh8T,MAAM64Q,eACft7P,KAAK2L,KAAiB,IAAZssE,EAAkBj7F,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,QAE3D0+E,IA/CR,CAAA,IAAA,WAAA,MAAA,WAmDCj7F,KAAKyhU,WAAW3jH,WAAW,CACvBphM,MAAO1c,KAAKyhU,WAAWh8T,MAAM64Q,eAAiB,IAAMt+Q,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAC/EH,OAAQvc,KAAKyhU,WAAWh8T,MAAM64Q,eAAiB,IAAMt+Q,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,SAGpFvc,KAAK2hU,qBACL3hU,KAAK4hU,sBACL5hU,KAAK6hU,0BACL7hU,KAAK8hU,sBA3DN,CAAA,IAAA,eAAA,MAAA,WA+DK9hU,KAAK6vH,MAAM6pJ,eAAe,GAAYl1M,QACtCxkE,KAAK6vH,MAAMi+D,SAAS,IAAIvB,GAAa7E,GAAWwB,WAhErD,CAAA,IAAA,oBAAA,MAAA,WAoEK,IAAA,EAAA,KACJlpL,KAAKyhU,WAAW5vH,aACXxtM,KACG+pO,GAAa,KACb,IAAO,WAAA,OAAMpuO,EAAK6vH,MAAM6pJ,eAAe,GAAYe,eAAiB/yF,GAAWwB,WAElF3oL,WAAU,WAEP,IAAMkF,EAAQzF,EAAK+hU,wBAAwB/hU,EAAKyhU,WAAWzjH,eAC3Dh+M,EAAK6vH,MAAMi+D,SAAS,IAAIqwF,GAAoB14Q,SA7ErD,CAAA,IAAA,0BAAA,MAAA,SAiF6BA,GAyB5B,OAxBIA,EAAMiX,MAAQ1c,KAAK2wG,aACnBlrG,EAAMiX,MAAQ1c,KAAK2wG,WACflrG,EAAMi8T,sBACNj8T,EAAM8W,OAASvc,KAAKgiU,eAAev8T,EAAMiX,SAG7CjX,EAAMiX,MAAQ1c,KAAK83F,aACnBryF,EAAMiX,MAAQ1c,KAAK83F,WACfryF,EAAMi8T,sBACNj8T,EAAM8W,OAASvc,KAAKgiU,eAAev8T,EAAMiX,SAG7CjX,EAAM8W,OAASvc,KAAK0oN,cACpBjjN,EAAM8W,OAASvc,KAAK0oN,YAChBjjN,EAAMi8T,sBACNj8T,EAAMiX,MAAQ1c,KAAKiiU,cAAcx8T,EAAM8W,UAG3C9W,EAAM8W,OAASvc,KAAKi7F,cACpBx1F,EAAM8W,OAASvc,KAAKi7F,YAChBx1F,EAAMi8T,sBACNj8T,EAAMiX,MAAQ1c,KAAKiiU,cAAcx8T,EAAM8W,UAGxC9W,IA1GR,CAAA,IAAA,0BAAA,MAAA,WA6GK,IAAA,EAAA,KACJzF,KAAKyhU,WAAW5+S,IAAI,kBAAkBgvL,aAAatxM,WAAU+9Q,SAAAA,GAErDt+Q,EAAKyhU,WAAW3jH,WADhBwgE,EAC2B,CACvB5hQ,MAAO,IACPH,OAAQ,KAGe,CACvBG,MAAO1c,EAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAClCH,OAAQvc,EAAKkc,OAAO22G,MAAMpkE,SAASlyC,cAvHhD,CAAA,IAAA,qBAAA,MAAA,WA6HK,IAAA,EAAA,KAEJvc,KAAKyhU,WAAW5+S,IAAI,SAASgvL,aACxBxtM,KAAK,IAAO,WAAA,OAAMrE,EAAKyhU,WAAWh8T,MAAMi8T,wBACxCnhU,WAAUkF,SAAAA,GACPzF,EAAKyhU,WAAW5+S,IAAI,UAAU+lI,SAAS5oJ,EAAKgiU,eAAev8T,GAAQ,CAAC01M,WAAAA,SAlI7E,CAAA,IAAA,sBAAA,MAAA,WAsIK,IAAA,EAAA,KAEJn7M,KAAKyhU,WAAW5+S,IAAI,UAAUgvL,aACzBxtM,KAAK,IAAO,WAAA,OAAMrE,EAAKyhU,WAAWh8T,MAAMi8T,wBACxCnhU,WAAUkF,SAAAA,GACPzF,EAAKyhU,WAAW5+S,IAAI,SAAS+lI,SAAS5oJ,EAAKiiU,cAAcx8T,GAAQ,CAAC01M,WAAAA,SA3I3E,CAAA,IAAA,gBAAA,MAAA,SAkJmB4iE,GAClB,OAAI/9Q,KAAKyhU,WAAWh8T,MAAM64Q,eACfP,EAGA/6P,KAAKa,MAAM7jB,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,OAD9B1c,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,OAASwhQ,MAtJxD,CAAA,IAAA,iBAAA,MAAA,SA8JoB/0D,GACnB,OAAIhpN,KAAKyhU,WAAWh8T,MAAM64Q,eACft1D,EAGAhmM,KAAKa,MAAM7jB,KAAKkc,OAAO22G,MAAMpkE,SAASlyC,QAD9Bvc,KAAKkc,OAAO22G,MAAMpkE,SAAS/xC,MAAQssM,QAlKvD,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM62G,IAAqB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAArBA,GAAqB,UAAA,CAAA,CAAA,kBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,GAAA,KAAA,EAAA,OAAA,CAAA,CAAA,mBAAA,GAAA,EAAA,qBAAA,EAAA,YAAA,YAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,mBAAA,CAAA,MAAA,QAAA,QAAA,IAAA,CAAA,OAAA,SAAA,KAAA,QAAA,OAAA,QAAA,kBAAA,QAAA,WAAA,GAAA,EAAA,aAAA,EAAA,MAAA,OAAA,CAAA,MAAA,SAAA,QAAA,IAAA,CAAA,OAAA,SAAA,KAAA,SAAA,OAAA,SAAA,kBAAA,SAAA,WAAA,GAAA,EAAA,aAAA,EAAA,MAAA,OAAA,CAAA,OAAA,SAAA,EAAA,UAAA,CAAA,EAAA,sBAAA,CAAA,kBAAA,sBAAA,QAAA,GAAA,EAAA,yBAAA,CAAA,kBAAA,iBAAA,QAAA,GAAA,EAAA,yBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IE/BlC,GAAA,EAAA,OAAA,GAAiC,GAAA,YAAA,WAAA,OAAY,EAAAxlD,kBACzC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,QAAA,GAAyB,GAAA,EAAA,SAAK,KAC9B,GAAA,EAAA,QAAA,GACJ,KAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,QAAA,GAA0B,GAAA,EAAA,UAAM,KAChC,GAAA,EAAA,QAAA,GACJ,KACJ,KAGA,GAAA,GAAA,SAAA,GAEA,GAAA,GAAA,MAAA,GACI,GAAA,GAAA,eAAA,GAAwF,GAAA,GAAA,yBAAqB,KAC7G,GAAA,GAAA,eAAA,IAAmF,GAAA,GAAA,mBAAe,KACtG,KACJ,MFWkC,EAAA,IE/B2B,GAAA,YAAA,EAAA,YAIuC,GAAA,GAAA,GAAA,MAAA,EAAA,WAAA,CAAkB,MAAA,EAAA,YAKf,GAAA,GAAA,GAAA,MAAA,EAAA,YAAA,CAAmB,MAAA,EAAA,eAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,izBAAA,cAAA,EAAA,gBAAA,IAAA,IHKnH,KAAMulD,GAAN,WACH,SAAA,EACY/vM,EACAyuL,GAAAA,gBAAAA,KAAAA,GADA,KAAAzuL,MAAAA,EACA,KAAAyuL,cAAAA,EAHT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,WAOCt+S,KAAKs+S,cAAcv1R,OAAO,SAAU,IACpC/oB,KAAKi4M,gBARN,CAAA,IAAA,cAAA,MAAA,WAYCj4M,KAAKs+S,cAAcv1R,OAAO,QAAS,IACnC/oB,KAAKi4M,gBAbN,CAAA,IAAA,OAAA,MAAA,SAgBSx0M,GACRzD,KAAKs+S,cAAcv1R,OAAO,OAAQtlB,EAAEgC,SAjBrC,CAAA,IAAA,iBAAA,MAAA,WAqBCzF,KAAKs+S,cAAc4jB,KAAK,cACxBliU,KAAKi4M,gBAtBN,CAAA,IAAA,eAAA,MAAA,WA0BCj4M,KAAKs+S,cAAc4jB,KAAK,YACxBliU,KAAKi4M,gBA3BN,CAAA,IAAA,cAAA,MAAA,WA+BCj4M,KAAK6vH,MAAMi+D,SAAS,IAAI,QA/BzB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM8xI,IAAwB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAxBA,GAAwB,UAAA,CAAA,CAAA,qBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,GAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,gBAAA,oBAAA,QAAA,EAAA,SAAA,CAAA,UAAA,eAAA,CAAA,UAAA,gBAAA,CAAA,UAAA,wBAAA,CAAA,UAAA,0BAAA,CAAA,EAAA,MAAA,MAAA,QAAA,WAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IIdrC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GAAsD,GAAA,SAAA,WAAA,OAAS,EAAAuC,gBAC3D,GAAA,EAAA,WAAA,GACJ,KAEA,GAAA,EAAA,SAAA,GAAsD,GAAA,SAAA,WAAA,OAAS,EAAAC,iBAC3D,GAAA,EAAA,WAAA,GACJ,KACJ,KAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GAAsD,GAAA,SAAA,WAAA,OAAS,EAAAC,kBAC3D,GAAA,EAAA,WAAA,GACJ,KAEA,GAAA,EAAA,SAAA,GAAsD,GAAA,SAAA,WAAA,OAAS,EAAAC,oBAC3D,GAAA,GAAA,WAAA,GACJ,KACJ,KAEA,GAAA,GAAA,aAAA,GAAkC,GAAA,SAAA,SAAA,GAAA,OAAS,EAAA5wQ,KAAA,KAAT,CAAsB,UAAA,WAAA,OAAW,EAAAumJ,iBAAe,KACtF,MJRqC,EAAA,IIOrB,GAAA,IAAA,GAAA,MAAA,EAAA,CAAS,MAAA,OAAA,WAAA,CAAA,GAAA,IAAA,OAAA,CAAA,onBAAA,cAAA,EAAA,gBAAA,IAAA,IJPlB,GAAA,CAAA,gBAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KKZC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,QAAA,GAAyB,GAAA,EAAA,SAAK,KAC9B,GAAA,EAAA,QAAA,GAAgC,GAAA,iBAAA,SAAA,GAAA,OAAA,GAAA,GAAA,KAAA,cAAA,IAAA,CAA2B,iBAAA,WAAA,OAAA,GAAA,GAAA,KAAA,oBAA3D,KACJ,KAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,QAAA,GAA0B,GAAA,EAAA,UAAM,KAChC,GAAA,EAAA,QAAA,IAAiC,GAAA,iBAAA,SAAA,GAAA,OAAA,GAAA,GAAA,KAAA,eAAA,IAAA,CAA4B,iBAAA,WAAA,OAAA,GAAA,GAAA,KAAA,oBAA7D,KACJ,KACJ,KACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAR4C,GAAA,GAAA,GAAA,UAAA,EAAA,cAAA,CAA2B,MAAA,EAAA,YAAA,SAAA,OAK1B,GAAA,GAAA,GAAA,UAAA,EAAA,eAAA,CAA4B,MAAA,EAAA,YAAA,SAAA,SAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAIzE,GAAA,EAAA,MAAA,IAAkH,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,iBAAA,EAAA,UAC9G,GAAA,EAAA,MAAA,GAAA,IACA,GAAA,EAAA,MAAA,IAAwB,GAAA,GAAe,KAC3C,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAHyD,GAAA,WAAA,KAAA,SAAA,cAAA,EAAA,OAClB,GAAA,GAAA,GAAA,aAAA,EAAA,OACX,GAAA,GAAA,GAAA,EAAA,OCO7B,IAAMsqH,GAAN,KAAMA,GAAN,WAQH,SAAA,EACW7gD,EACAz4Q,EACA08M,EACCpT,GAAAA,IAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,GAHD,KAAAmvE,SAAAA,EACA,KAAAz4Q,OAAAA,EACA,KAAA08M,YAAAA,EACC,KAAApT,GAAAA,EAERvyM,KAAKiZ,aAAejZ,KAAKiJ,OAAO2hN,OAAOrqN,WAAU,WAC7CP,EAAK4qL,QAAU5qL,EAAKiJ,OAAO4Z,IAAI,4BAC/B7iB,EAAK0hR,SAASpvL,YAActyF,EAAKiJ,OAAO4Z,IAAI,oCAhBjD,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WAoBH,IAAA,EAAA,KACI7iB,KAAKwiU,cAAc7qT,SAAQ0d,SAAAA,GACvB,IAAMotS,EAAWziU,EAAK0hR,SAAShC,gBAAgBrqP,EAAGk1I,cAAcm4J,QAAQ73I,MAAO,GAAI,IACnFx1J,EAAGk1I,cAAc/9J,MAAMkQ,MAAQ+lT,EAAS/lT,MAAQ,KAChD2Y,EAAGk1I,cAAc/9J,MAAM+P,OAASkmT,EAASlmT,OAAS,UAxBvD,CAAA,IAAA,WAAA,MAAA,WA4BH,IAAA,EAAA,KACIvc,KAAK0hR,SAAS94P,OACd5oB,KAAK2iU,iBACL3iU,KAAK0hR,SAAShD,QAAQn+Q,WAAU,WAAA,OAAMP,EAAK2iU,sBA/B5C,CAAA,IAAA,cAAA,MAAA,WAmCC3iU,KAAK0hR,SAAS3rQ,SACd/V,KAAKiZ,aAAatY,gBApCnB,CAAA,IAAA,mBAAA,MAAA,SAuCqB2xF,GACpBtyF,KAAK0hR,SAASkhD,kBAAkBtwO,GAChCtyF,KAAK2iU,mBAzCN,CAAA,IAAA,iBAAA,MAAA,WA6CC,IAAMlhT,EAAOzhB,KAAK0hR,SAASG,UAC3B7hR,KAAK6iU,eAAiB7/S,KAAKa,MAAMpC,EAAKlF,QACtCvc,KAAK8iU,cAAgB9/S,KAAKa,MAAMpC,EAAK/E,OACrC1c,KAAKuyM,GAAGzW,iBAhDT,CAAA,IAAA,iBAAA,MAAA,WAoDC97L,KAAK0hR,SAAS35D,OAAO/nN,KAAK8iU,eAAiB9iU,KAAK2lN,YAAYl3J,SAAS/xC,MAAO1c,KAAK6iU,oBApDlF,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMN,IAAmB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAnBA,GAAmB,UAAA,CAAA,CAAA,gBAAA,UAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAA,GAAA,IAAA,GAAA,EAAA,GAAA,GAAA,EAAA,QAAA,EAAA,cAAA,IAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,iBAAA,CAAA,QAAA,yBAAA,EAAA,QAAA,CAAA,QAAA,eAAA,EAAA,WAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,0BAAA,CAAA,EAAA,UAAA,CAAA,EAAA,mBAAA,CAAA,MAAA,QAAA,QAAA,IAAA,CAAA,OAAA,SAAA,KAAA,QAAA,MAAA,IAAA,EAAA,UAAA,MAAA,iBAAA,CAAA,MAAA,SAAA,QAAA,IAAA,CAAA,OAAA,SAAA,KAAA,SAAA,MAAA,IAAA,EAAA,UAAA,MAAA,iBAAA,CAAA,EAAA,eAAA,EAAA,SAAA,CAAA,EAAA,WAAA,CAAA,eAAA,IAAA,CAAA,QAAA,GAAA,EAAA,SAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDxBhC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,GAAA,EAAA,MAAA,GAaA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAIJ,KACJ,MAAA,EAAA,IAlB4C,GAAA,GAAA,GAAA,QAAA,EAAA,OAAA,IAAA,wCAaV,GAAA,GAAA,GAAA,UAAA,EAAA,WAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,+sCAAA,cAAA,EAAA,gBAAA,IAAA,ICS3B,GAAA,SAAA,EAAA,GAAA,MAAA,CAAA,MAAA,EAAA,OAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KCZK,GAAA,EAAA,SAAA,IAEQ,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAShkB,SAAA,aAAA,MAIhB,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UADO,GAAA,WAAA,KAAA,SAAA,iBAAA,GADA,GAAA,WAAA,EpQ6nnCiBloI,EoQ7nnCjB,GpQ6nnCyBtZ,EoQ7nnCzB,EAAA,KpQ6nnC+BC,EoQ7nnC/B,EAAA,KpQ21nCpB,SAA+BnyB,EAAOksC,EAAaX,EAAYC,EAAQtZ,EAAMC,EAAM9gC,GAE/E,IAAMmR,EAAe0pC,EA/NsCX,EAgO3D,OAAOtZ,GAAgBjyB,EAAOwC,EAAc0vB,EAAMC,GAC9CL,GAAc9xB,EAAOwC,EAAe,EAAgDgpC,EAAOtZ,EAAMC,IACjGsZ,GAA2BzrC,EAAOwC,EAAe,GALzD,CA7NiCjB,KAAYa,KoQ9nnCzB,EpQ8nnCuDopC,EAAQtZ,EAAMC,KADzF,IAAqCqZ,EAAQtZ,EAAMC,EAAM9gC,SAAAA,GAAAA,EAAAA,GAAAA,GAAAA,EAAAA,EAAAA,CAAAA,IAAAA,EAAAA,KoQpnnCrD,GAAA,EAAA,SAAA,IAAoF,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,aAAA,MAChF,GAAA,EAAA,MAAA,IACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAFiH,GAAA,WAAA,EAAA,SAAA,gBAAA,GACvE,GAAA,GAAA,GAAA,MAAA,GAAA,EAAA,kBAAjC,GAAA,MAAA,EAAA,mBAAA,GAAA,KCLN,IAAM6mM,GAAN,KAAMA,GAAN,WAMH,SAAA,EACWxkB,EACCn6F,EACAloM,EACAjT,EACA4mH,EACAm6I,EACA7oP,GAAAA,gBAAAA,KAAAA,GAND,KAAAo9R,SAAAA,EACC,KAAAn6F,SAAAA,EACA,KAAAloM,OAAAA,EACA,KAAAjT,OAAAA,EACA,KAAA4mH,MAAAA,EACA,KAAAm6I,MAAAA,EACA,KAAA7oP,QAAAA,EAXL,KAAA6hT,YAAyC,IAAI,GAAgB,IAC7D,KAAAC,YAAyC,IAAI,GAAgB,IAC5D,KAAAC,gBAA4B,GAWhCljU,KAAKgjU,YAAY96T,KAAKlI,KAAKiJ,OAAO4Z,IAAI,gCACtC7iB,KAAKijU,YAAY/6T,KAAKlI,KAAKiJ,OAAO4Z,IAAI,gCAhBvC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAoBC7iB,KAAKu+S,SAASxyL,SACd/rH,KAAKkc,OAAOnB,SAASsF,GAAG,eAAgBrgB,KAAKmjU,iBAAiBp6T,KAAK/I,OACnEA,KAAKkjU,gBAAkBljU,KAAKojU,iBAAiBruT,KAAI/O,SAAAA,GAAAA,OAAOA,EAAI7J,KAAKsV,QAtBlE,CAAA,IAAA,cAAA,MAAA,WA0BCzR,KAAKu+S,SAAShjG,UACdv7M,KAAKkc,OAAOnB,SAAS0F,IAAI,eAAgBzgB,KAAKmjU,iBAAiBp6T,KAAK/I,SA3BrE,CAAA,IAAA,qBAAA,MAAA,SA8BuBmL,GACtB,IAAMvL,EAAOuL,EAAKU,QAAQ,QAAS,IAAI6C,cAEvC,OAAO1O,KAAKokN,SAAS+F,YAAdnqN,kBAAAA,OADGA,KAAKgqQ,MAAM2zC,eAAel4S,MAAMw4S,QAAU,QAAU,QACvDj+S,KAAAA,OAAmDJ,EAAnDI,SAAmDJ,KAjC3D,CAAA,IAAA,eAAA,MAAA,SAoCiBuL,GAChBnL,KAAKu+S,SAASnoB,aAAajrR,GAC3BnL,KAAK6vH,MAAMi+D,SAAS,IAAIm1F,MAtCzB,CAAA,IAAA,mBAAA,MAAA,WAyCK,IAAA,EAAA,KACEogD,EAAcrjU,KAAKojU,iBACpBhyS,MAAKprB,SAAAA,GAAAA,OAAsD,IAA/ChG,EAAKkjU,gBAAgBthU,QAAQoE,EAAI7J,KAAKsV,OAEnD4xT,IACArjU,KAAK6vH,MAAMi+D,SAAS,IAAI,IACxBu1I,EAAYrhT,IAAI,CAACsmC,YAAa+6Q,EAAY/6Q,cAC1CtoD,KAAKmhB,QAAQkoM,cACbrpN,KAAKkc,OAAO6kC,YAjDjB,CAAA,IAAA,oBAAA,MAAA,WAsDC/gD,KAAK6vH,MAAMi+D,SAAS,IAAIk1F,MAtDzB,CAAA,IAAA,iBAAA,MAAA,WA0DC,OAAOhjR,KAAKkc,OAAOnB,SAASwG,aACvBrK,QAAOlR,SAAAA,GAAAA,OAAOA,EAAIpG,OAAS8vM,GAAYG,QAAQjwM,YA3DrD,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMmjU,IAAmB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAnBA,GAAmB,UAAA,CAAA,CAAA,gBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,GAAA,KAAA,GAAA,OAAA,CAAA,CAAA,EAAA,qBAAA,gBAAA,CAAA,QAAA,GAAA,EAAA,UAAA,iBAAA,CAAA,EAAA,6BAAA,CAAA,kBAAA,GAAA,EAAA,sBAAA,EAAA,SAAA,CAAA,UAAA,iBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,EAAA,cAAA,kBAAA,CAAA,EAAA,QAAA,YAAA,CAAA,QAAA,wBAAA,EAAA,UAAA,WAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,qBAAA,uBAAA,CAAA,QAAA,6BAAA,EAAA,WAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,WAAA,OAAA,UAAA,EAAA,UAAA,SAAA,CAAA,EAAA,WAAA,oBAAA,EAAA,SAAA,CAAA,EAAA,MAAA,QAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDrBhC,GAAA,EAAA,MAAA,GAAA,GAAA,EAAA,SACI,GAAA,EAAA,eAAA,GAAc,GAAA,iBAAA,SAAA,GAAA,OAAA,EAAA,SAAA,aAAA,MAAA,IAAA,CAAyC,iBAAA,SAAA,GAAA,OAAkB,EAAAxkB,SAAA,cAAA,MAAsC,GAAA,EAAA,eAAW,KAE1H,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GAA6F,GAAA,SAAA,WAAA,OAAS,EAAA+kB,uBAClG,GAAA,EAAA,WAAA,GACJ,KACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,cAAU,KAC9C,KAEA,GAAA,EAAA,MAAA,GACI,GAAA,GAAA,MAAA,GACI,GAAA,GAAA,GAAA,EAAA,EAAA,SAAA,GAZZ,GAAA,GAAA,SAmBQ,KACA,GAAA,GAAA,MAAA,GAAgC,GAAA,GAAA,cAAU,KAC9C,KACJ,KAEA,GAAA,GAAA,MAAA,GAxBA,GAAA,GAAA,SAyBI,GAAA,GAAA,GAAA,EAAA,EAAA,SAAA,IAzBJ,GAAA,GAAA,SA4BA,MCPgC,EAAA,IDrBa,GAAA,SAAA,GAAA,EAAA,EAAA,EAAA,qBAC3B,GAAA,GAAA,GAAA,UAAA,EAAA,SAAA,aAAA,OAG0C,GAAA,GAAA,GAAA,QAAA,EAAA,SAAA,iBAWxC,GAAA,GAAA,GAAA,UAAA,GAAA,GAAA,GAAA,EAAA,cASgC,GAAA,GAAA,GAAA,UAAA,GAAA,GAAA,GAAA,EAAA,qBACL,GAAA,GAAA,GAAA,UAAA,GAAA,GAAA,GAAA,EAAA,gBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,g4BAAA,cAAA,EAAA,gBAAA,ICHN,GAAA,CAApC10H,GAAO,GAAUu0E,mBAAmB,GAAA,cAAoB,IAApB,GAAA,UAAA,0BAAA,GAAA,ICtB7BogD,GAAZ,SAAYA,GAAAA,OACR,EAAA,QAAA,UACA,EAAA,YAAA,eACA,EAAA,UAAA,aACA,EAAA,cAAA,aACA,EAAA,MAAA,QALQA,EAAZ,CAMC,ICkBK,GAAM,CAAC,aACP,GAAM,CAAC,uBACP,GAAM,CAAC,kBACPC,GAAM,CAAC,SACb,SAASC,GAAqClhL,EAAInmI,GAAgB,EAALmmI,IACzD,GAA+B,GAC/B,GAAsB,EAAG,MAAO,IAChC,GAAiB,EAAG,MAAO,IAC3B,GAAiB,EAAG,MAAO,IAC3B,GAAiB,EAAG,MAAO,IAC3B,KACA,GAAsB,EAAG,MAAO,IAChC,GAAiB,EAAG,MAAO,IAC3B,GAAiB,EAAG,MAAO,IAC3B,GAAiB,EAAG,MAAO,IAC3B,KACA,MAEJ,SAASmhL,GAA4BnhL,EAAInmI,GAAgB,EAALmmI,IAChD,GAAsB,EAAG,MAAO,IAChC,GAAoB,EAAG,GACvB,MAEJ,SAASohL,GAA6CphL,EAAInmI,GAOxD,GAPwE,EAALmmI,IACjE,GAA+B,GAC/B,GAAoB,EAAG,GACvB,GAAsB,EAAG,QACzB,GAAc,GACd,KACA,MACO,EAALA,EAAQ,CACV,IAAM8uK,EAAU,GAAqB,GACrC,GAAiB,GACjB,GAAyBA,EAAQz8G,SAASyoF,cAE9C,SAASumC,GAAgCrhL,EAAInmI,GAAgB,EAALmmI,GACpD,GAAoB,EAAG,EAAG,CAAC,gBAAiB,SAEhD,SAASshL,GAAqCthL,EAAInmI,GAAgB,EAALmmI,IACzD,GAAsB,EAAG,OAAQ,IACjC,GAAc,EAAG,MACjB,MAEJ,SAASuhL,GAA8BvhL,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC1D,IAAMwhL,EAAO,KACb,GAAsB,EAAG,QAAS,GAAI,IACtC,GAAkB,qBAAqB,WAAkJ,OAApE,GAAqBA,GAAuB,KAAuCC,sBACxM,GAAkB,EAAGL,GAA8C,EAAG,EAAG,eAAgB,IACzF,GAAkB,EAAGC,GAAiC,EAAG,OAAA,EAAc,IACvE,GAAkB,EAAGC,GAAsC,EAAG,EAAG,OAAQ,IACzE,KACF,GAAS,EAALthL,EAAQ,CACV,IAAM0hL,EAAS,KACf,GAAmB,YAAaA,EAAOrvH,SAAS9sM,QAAUm8T,EAAOC,mBAAjE,CAAqF,uBAAwBD,EAAOrvH,SAAS9sM,QAAUm8T,EAAOC,mBAA9I,CAAkK,aAA8B,UAAhBD,EAAOhpS,MAAvL,CAA0M,WAA4B,QAAhBgpS,EAAOhpS,OAC7N,GAAkB,4BAAkD,WAArBgpS,EAAOE,WAAtD,CAA+E,KAAMF,EAAO31D,SAA5F,CAAsG,WAAY21D,EAAOG,aACzH,GAAmB,MAAOH,EAAOrvH,SAASnjM,GAA1C,CAA8C,YAAawyT,EAAOrvH,SAASnjM,IAC3E,GAAiB,GACjB,GAAkB,gBAAA,GAClB,GAAiB,GACjB,GAAkB,gBAAA,GAClB,GAAiB,GACjB,GAAkB,QAASwyT,EAAOI,oBAAsBJ,EAAOrvH,SAASgO,WAAaqhH,EAAOrvH,SAASpD,WAEzG,SAAS8yH,GAA6B/hL,EAAInmI,GAAgB,EAALmmI,IACjD,GAAsB,EAAG,MAAO,IAChC,GAAoB,EAAG,GACvB,MAEJ,SAASgiL,GAA6BhiL,EAAInmI,GAIxC,GAJwD,EAALmmI,IACjD,GAAsB,EAAG,MAAO,GAAI,IACpC,GAAiB,EAAG,OAAQ,IAC5B,MACO,EAALA,EAAQ,CACV,IAAMiiL,EAAS,KACf,GAAiB,GACjB,GAAmB,aAA8B,UAAhBA,EAAOvpS,MAAxC,CAA2D,WAA4B,QAAhBupS,EAAOvpS,QAElF,SAASwpS,GAA6BliL,EAAInmI,GAAgB,EAALmmI,IACjD,GAAsB,EAAG,OACzB,GAAoB,EAAG,GACvB,MACO,EAALA,GAEF,GAAkB,sBADH,KACiCmiL,0BAEpD,SAASC,GAAmCpiL,EAAInmI,GAI9C,GAJ8D,EAALmmI,IACvD,GAAsB,EAAG,MAAO,IAChC,GAAc,GACd,MACO,EAALA,EAAQ,CACV,IAAMqiL,EAAU,GAAqB,GACrC,GAAkB,KAAMA,EAAQC,cAChC,GAAiB,GACjB,GAAyBD,EAAQE,YAErC,SAASC,GAA6BxiL,EAAInmI,GAOxC,GAPwD,EAALmmI,IACjD,GAAsB,EAAG,MAAO,IAChC,GAAkB,EAAGoiL,GAAoC,EAAG,EAAG,MAAO,IACtE,GAAoB,EAAG,GACvB,GAAiB,EAAG,MAAO,IAC3B,GAAoB,EAAG,GACvB,MACO,EAALpiL,EAAQ,CACV,IAAMutK,EAAS,KACf,GAAkB,sBAAuBA,EAAO4U,0BAChD,GAAiB,GACjB,GAAkB,OAAQ5U,EAAOgV,YAErC,IAMME,GAgEAC,GAtEAC,GAAM,CAAC,IAAK,CAAC,CAAC,GAAI,YAAa,KAAM,CAAC,CAAC,oBAAqB,CAAC,CAAC,cAAe,CAAC,CAAC,GAAI,YAAa,KAAM,CAAC,CAAC,cAAe,CAAC,CAAC,WAAY,EAAG,QAAS,QAAS,CAAC,CAAC,WAAY,QAAS,SACjLC,GAAM,CAAC,IAAK,cAAe,kBAAmB,YAAa,cAAe,YAAa,8BAA+B,yBACxH,GAAe,EAAnB,KAIMH,GACF,SAAA,IAAA,gBAAA,KAAA,GACIhlU,KAAKyR,GAALzR,aAAAA,OAAuB,QAGtB4iI,UAAO,SAA0B5oI,GAAK,OAAO,IAAKA,GAAKgrU,KAChEA,GAAS5iM,UAAO,GAAyB,CAAEj3H,KAAM65T,GAAUtmS,UAAW,CAAC,CAAC,cAAe6nG,UAAW,CAAC,OAAQ,QAAS,EAAG,aAAcD,SAAU,EAAGD,aAAc,SAA+Bkc,EAAInmI,GAAgB,EAALmmI,GACtM,GAAmB,KAAMnmI,EAAI3K,KAC5Bg1H,OAAQ,CAAEh1H,GAAI,QAHvBuzT,IAmCMI,GAAyB,CAI3BC,mBAAoB3kT,GAAQ,qBAAsB,CAE9C,GAAM,QAAS,GAAM,CAAE2T,QAAS,EAAGxP,UAAW,oBAC9Ci8N,GAAW,gBAAiB,CACxB,GAAM,CAAEzsN,QAAS,EAAGxP,UAAW,sBAC/BwU,GAAQ,+CATpB,KAwBM4rS,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEcriM,UAAO,SAAqC5oI,GAAK,OAAO,IAAKA,GAAKirU,KACtFA,GAAoB7iM,UAAO,GAAyB,CAAEj3H,KAAM85T,KAD5DA,IAmHA,SAASK,GAAmC55S,GACxC,OAAO7lB,MAAAA,4CAAAA,OAAiD6lB,EAAjD7lB,SAgBX,IA2HM0/T,GAnBAC,GAnBAC,GAtBAC,GA3DAC,GAukCAC,GAl4BAC,GAzMFC,GAAiB,EAArB,KAIMH,GACF,SAAA,IAAA,gBAAA,KAAA,GAII3lU,KAAK0rB,MAAQ,QAIb1rB,KAAKyR,GAALzR,YAAAA,OAAsB8lU,QAGtBljM,UAAO,SAAyB5oI,GAAK,OAAO,IAAKA,GAAK2rU,KAC9DA,GAAQvjM,UAAO,GAAyB,CAAEj3H,KAAMw6T,GAASjnS,UAAW,CAAC,CAAC,aAAc6nG,UAAW,CAAC,EAAG,YAAaD,SAAU,EAAGD,aAAc,SAA8Bkc,EAAInmI,GAAgB,EAALmmI,IAChL,GAAmB,KAAMnmI,EAAI3K,GAA7B,CAAiC,QAAS,MAC1C,GAAmB,YAA0B,OAAb2K,EAAIsP,SACnC+6G,OAAQ,CAAE/6G,MAAO,QAASja,GAAI,QAJvCk0T,IAhBA,KA+DMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEG9iM,UAAO,SAA0B5oI,GAAK,OAAO,IAAKA,GAAK0rU,KAChEA,GAAStjM,UAAO,GAAyB,CAAEj3H,KAAMu6T,GAAUhnS,UAAW,CAAC,CAAC,gBADxEgnS,IAjEA,KAqFMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAES7iM,UAAO,SAAgC5oI,GAAK,OAAO,IAAKA,GAAKyrU,KAC5EA,GAAerjM,UAAO,GAAyB,CAAEj3H,KAAMs6T,GAAgB/mS,UAAW,CAAC,CAAC,sBADpF+mS,IAvFA,KAwGMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEI5iM,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAKwrU,KAClEA,GAAUpjM,UAAO,GAAyB,CAAEj3H,KAAMq6T,GAAW9mS,UAAW,CAAC,CAAC,GAAI,YAAa,OAD3F8mS,IA1GA,KA2HMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEI3iM,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAKurU,KAClEA,GAAUnjM,UAAO,GAAyB,CAAEj3H,KAAMo6T,GAAW7mS,UAAW,CAAC,CAAC,GAAI,YAAa,OAD3F6mS,IAeIQ,GAAiB,EA0BfC,GAAyB97D,IAb3B,SAAA,EAAY35D,GAAAA,gBAAAA,KAAAA,GACRvwM,KAAKuwM,YAAcA,IAYiC,WAwBtD01H,GAAiC,IAAIljM,GAAe,kCAOpDmjM,GAAiB,IAAInjM,GAAe,gBA/B1C,KAmCM8iM,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAWF,SAAA,EAAYt1H,EAAaq+D,EAAoBu3D,EAAc15F,EAAM25F,EAAWhvG,EAAWr2C,EAAS4sF,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC5FvzI,EAAAA,EAAAA,KAAAA,KAAMm2E,IACDA,YAAcA,EACnBvwM,EAAK4uQ,mBAAqBA,EAC1B5uQ,EAAKysO,KAAOA,EACZzsO,EAAKomU,UAAYA,EACjBpmU,EAAKo3N,UAAYA,EACjBp3N,EAAK+gL,QAAUA,EAKf/gL,EAAKqmU,yCAAAA,EAILrmU,EAAKsmU,sCAAAA,EACLtmU,EAAKi0J,WAAa,IAAI,EAItBj0J,EAAKumU,oBAAAA,EAILvmU,EAAK0kU,yBAA2B,GAChC1kU,EAAKwmU,WAAa,GAElBxmU,EAAK6kU,aAAL7kU,YAAAA,OAAgC+lU,MAEhC/lU,EAAKsuQ,SAALtuQ,wBAAAA,OAAwC+lU,MACxC/lU,EAAKymU,cAAgBN,GAA8B,GACnDnmU,EAAK0mU,WAAa1mU,EAAK2mU,6BACvB3mU,EAAK4mU,mBAAwC,mBAAnBj5D,EAE1B3tQ,EAAKmkU,WAAciC,GAAaA,EAAUjC,WAAciC,EAAUjC,WAAa,SAC/EnkU,EAAK6mU,uBAAuBT,GAA6C,MAAhCA,EAAU/B,qBAC/C+B,EAAU/B,mBArC8E12D,EA6IhG,OAlGA,aAAA,EAAA,CAAA,CAAA,IAAA,4BAAA,MAAA,WAmGI,OAAO3tQ,KAAK8mU,yBAA2B9mU,KAAKuwM,cAKhD,CAAA,IAAA,qBAAA,MAAA,WAAA,IAAA,EAAA,KACIvwM,KAAK+mU,wBAEL,IAAMtzP,EAAUzzE,KAAK40M,SACjBnhI,EAAQuzP,aACRhnU,KAAKuwM,YAAYhmC,cAAcnF,UAAUr9J,IAAzC/H,uBAAAA,OAAoEyzE,EAAQuzP,cAGhFvzP,EAAQwzP,aAAa5iU,KAAK4vN,GAAU,OAA4B1zN,WAAU,WAItEP,EAAKknU,wBACLlnU,EAAKmnU,sBACLnnU,EAAK4uQ,mBAAmB9yE,kBAGxBroH,EAAQ2zP,WAAa3zP,EAAQ2zP,UAAUv1H,cACvCp+H,EAAQ2zP,UAAUv1H,aACbxtM,KAAKk6L,GAAUv+L,KAAKi0J,aACpB1zJ,WAAU,WAAA,OAGTP,EAAK4uQ,mBAAmB9yE,kBAKlC97L,KAAK+gL,QAAQX,mBAAkB,WAI3BpgL,EAAK+gL,QAAQzC,SAAS6S,eAAe9sL,KAAKk6L,GAAUv+L,EAAKi0J,aAAa1zJ,WAAU,WAIxEP,EAAKsmU,sCACLtmU,EAAKgkU,yBAKjBzvN,EAAMv0G,KAAKqnU,gBAAgB3vJ,QAAS13K,KAAKsnU,gBAAgB5vJ,SAASn3K,WAAU,WAIxEP,EAAKsmU,sCAAAA,EACLtmU,EAAK4uQ,mBAAmB9yE,kBAG5B97L,KAAKunU,cAAc7vJ,QAAQrzK,KAAK4vN,GAAU,OAAO1zN,WAAU,WAIvDP,EAAKwnU,gBACLxnU,EAAK4uQ,mBAAmB9yE,kBAG5B97L,KAAKynU,eAAe/vJ,QAAQrzK,KAAK4vN,GAAU,OAAO1zN,WAAU,WAIxDP,EAAKmnU,sBACLnnU,EAAK4uQ,mBAAmB9yE,kBAExB97L,KAAKysO,MACLzsO,KAAKysO,KAAK79H,OAAOvqG,KAAKk6L,GAAUv+L,KAAKi0J,aAAa1zJ,WAAU,WAInB,mBAA1Bs4B,sBACP74B,EAAK+gL,QAAQX,mBAAkB,WAI3BvnJ,uBAAsB,WAAA,OAGhB74B,EAAKgkU,yBAIfhkU,EAAKgkU,wBAQrB,CAAA,IAAA,wBAAA,MAAA,WACIhkU,KAAK+mU,wBACD/mU,KAAKqmU,yCACLrmU,KAAKgkU,qBAMb,CAAA,IAAA,kBAAA,MAAA,WAEIhkU,KAAK0kU,yBAA2B,QAChC1kU,KAAK4uQ,mBAAmBhoF,kBAK5B,CAAA,IAAA,cAAA,MAAA,WACI5mL,KAAKi0J,WAAW/rJ,OAChBlI,KAAKi0J,WAAW1sJ,aAOpB,CAAA,IAAA,iBAAA,MAAA,SAAe6Y,GAEX,IAAMgnT,EAAYpnU,KAAK40M,SAAW50M,KAAK40M,SAASwyH,UAAY,KAC5D,OAAOA,GAAaA,EAAUhnT,KAKlC,CAAA,IAAA,kBAAA,MAAA,WACI,SAAUpgB,KAAK40M,UAAY50M,KAAK40M,SAASyoF,aAAer9R,KAAK0nU,qBAKjE,CAAA,IAAA,YAAA,MAAA,WACI,QAAS1nU,KAAK2nU,cAKlB,CAAA,IAAA,oBAAA,MAAA,WACI,OAAO3nU,KAAK4nU,iBAAmB5nU,KAAK40M,SAASizH,kBAAoB7nU,KAAKkkU,sBAK1E,CAAA,IAAA,0BAAA,MAAA,WAEI,MAA2B,WAApBlkU,KAAKmkU,aAA4BnkU,KAAKokU,aACzCpkU,KAAKokU,cAAgBpkU,KAAK8nU,sBAKlC,CAAA,IAAA,oBAAA,MAAA,WAEI,OAAO9nU,KAAKokU,aAAmC,WAApBpkU,KAAKmkU,YAA2BnkU,KAAK+nU,oBAMpE,CAAA,IAAA,wBAAA,MAAA,WACI,OAAQ/nU,KAAKynU,gBAAkBznU,KAAKynU,eAAezsU,OAAS,GACxDgF,KAAK40M,SAASozH,WAAc,QAAU,SAM9C,CAAA,IAAA,uBAAA,MAAA,WAAA,IAAA,EAAA,KACQhoU,KAAKioU,qBAAuBjoU,KAAK4nU,iBAG7B5nU,KAAK4mU,oBAAsB5mU,KAAKkoU,SAChCloU,KAAKumU,oBAAAA,EACL1zG,GAAU7yN,KAAKkoU,OAAO39J,cAAe,iBAAiBlmK,KAAKu5L,GAAK,IAAIr9L,WAAU,WAI1EP,EAAKumU,oBAAAA,MAGbvmU,KAAK0mU,WAAa,SAClB1mU,KAAK4uQ,mBAAmB9yE,kBAShC,CAAA,IAAA,wBAAA,MAAA,WACI,GAAI97L,KAAK40M,SAASyoF,aAAer9R,KAAK0nU,kBAClC,MA9jBD7hU,MAAM,kEAskBb,CAAA,IAAA,gBAAA,MAAA,WACI7F,KAAKmoU,iBACLnoU,KAAKmnU,wBAQT,CAAA,IAAA,iBAAA,MAAA,WAAA,IAGYiB,EAEAC,EALZ,EAAA,KACQroU,KAAKunU,eAKLvnU,KAAKunU,cAAc5vT,SAIlB2wT,SAAAA,GACG,GAAmB,UAAfA,EAAK58S,MAAmB,CACxB,GAAI08S,GAAapoU,EAAK8kU,UAClB,MAAMQ,GAAmC,SAE7C8C,EAAYE,OAEX,GAAmB,QAAfA,EAAK58S,MAAiB,CAC3B,GAAI28S,EACA,MAAM/C,GAAmC,OAE7C+C,EAAUC,QAU1B,CAAA,IAAA,6BAAA,MAAA,WACI,OAAQtoU,KAAKomU,WAAapmU,KAAKomU,UAAUM,YAAe1mU,KAAKymU,cAALzmU,OAA4B,SAQxF,CAAA,IAAA,sBAAA,MAAA,WACI,GAAIA,KAAK40M,SAAU,CAEf,IAAI+B,EAAM,GACV,GAAqC,SAAjC32M,KAAKuoU,wBAAoC,CAEzC,IAAMH,EAAYpoU,KAAKunU,cACnBvnU,KAAKunU,cAAcn2S,MAInBk3S,SAAAA,GAAAA,MAAuB,UAAfA,EAAK58S,SAAsB,KAEjC28S,EAAUroU,KAAKunU,cACjBvnU,KAAKunU,cAAcn2S,MAInBk3S,SAAAA,GAAAA,MAAuB,QAAfA,EAAK58S,SAAoB,KACjC08S,EACAzxH,EAAIj2M,KAAK0nU,EAAU32T,IAEdzR,KAAKwmU,YACV7vH,EAAIj2M,KAAKV,KAAK6kU,cAEdwD,GACA1xH,EAAIj2M,KAAK2nU,EAAQ52T,SAGhBzR,KAAKynU,iBACV9wH,EAAM32M,KAAKynU,eAAe1yT,KAI1B5V,SAAAA,GAAAA,OAASA,EAAMsS,OAEnBzR,KAAK40M,SAAS4zH,kBAAkB7xH,MAQxC,CAAA,IAAA,wBAAA,MAAA,WACI,IAAK32M,KAAK40M,SACN,MAvpBD/uM,MAAM,wDA+pBb,CAAA,IAAA,mBAAA,MAAA,WAEI,IAAM4iU,EAAUzoU,KAAKkoU,OAASloU,KAAKkoU,OAAO39J,cAAgB,KAC1D,GAAwB,YAApBvqK,KAAKmkU,YAA6BsE,GAAYA,EAAQ7mS,SAAS5mC,QAC9DytU,EAAQ7jS,YAAY5uB,QAGpBhW,KAAKo3N,UAAUvC,UAMpB,GAAK70N,KAAK0oU,mBAAV,CAKA,IAAIC,EAAa,EAEbC,EAAW,EAET7hS,EAAY/mC,KAAK8mU,wBAAwBv8J,cAEzCs+J,EAAW9hS,EAAU64L,iBAAiB,iCAEtCkpG,EAAS/hS,EAAU64L,iBAAiB,+BAC1C,GAAI5/N,KAAKkoU,QAAUloU,KAAKkoU,OAAO39J,cAAc3oI,SAAS5mC,OAAQ,CAE1D,IAAM8wQ,EAAgB/kO,EAAUtP,wBAOhC,GAA4B,IAAxBq0O,EAAcpvP,OAAwC,IAAzBovP,EAAcvvP,OAG3C,OAFAvc,KAAKsmU,sCAAAA,OACLtmU,KAAKqmU,yCAAAA,GAIT,IAf0D,EAepD0C,EAAiB/oU,KAAKgpU,aAAal9D,GAEnCm9D,EAAajpU,KAAKgpU,aAAaP,EAAQ7mS,SAAS,GAAGnK,yBAErDyxS,EAAa,EAnByC,EAAA,2BAoBtCT,EAAQ7mS,UApB8B,IAoB1D,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,MACIsnS,GADJ,EAAA,MACwB94T,YArBkC,MAAA,GAAA,EAAA,EAAA,GAAA,QAAA,EAAA,IAuB1Du4T,EAAa3lT,KAAK6K,IAAIo7S,EAAaF,GAxjBrB,EAyjBdH,EAAWM,EAAa,EA3jBT,IA2jBaA,EAAkCC,GAAwB,EAE1F,IAAK,IAAIxuU,EAAI,EAAGA,EAAIkuU,EAAS7tU,OAAQL,IACjCkuU,EAASluU,GAAG6R,MAAMkQ,MAAlBmsT,GAAAA,OAA6BF,EAA7BE,MAEJ,IAAK,IAAIluU,EAAI,EAAGA,EAAImuU,EAAO9tU,OAAQL,IAC/BmuU,EAAOnuU,GAAG6R,MAAMkQ,MAAhBosT,GAAAA,OAA2BF,EAA3BE,MAEJ9oU,KAAKsmU,qCACDtmU,KAAKqmU,yCAAAA,OA9CLrmU,KAAKqmU,yCAAAA,IAsDb,CAAA,IAAA,eAAA,MAAA,SAAa/7Q,GACT,OAAQtqD,KAAKysO,MAA4B,QAApBzsO,KAAKysO,KAAKhnO,MAAmB6kD,EAAKuM,MAAQvM,EAAKplC,OAOxE,CAAA,IAAA,mBAAA,MAAA,WAEI,IAAMjkB,EAAUjB,KAAKuwM,YAAYhmC,cACjC,GAAItpK,EAAQ00N,YAAa,CAErB,IAAMD,EAAWz0N,EAAQ00N,cAGzB,OAAOD,GAAYA,IAAaz0N,EAIpC,OAA0BxD,SAAyB,gBAAEikB,SAASzgB,KAAAA,CAAAA,IAAAA,aAAAA,IAAAA,WA/e/C,OAAOjB,KAAKopU,aAK/B,IAAA,SAAe3jU,GAEX,IAAMytI,EAAWlzI,KAAKopU,YACtBppU,KAAKopU,YAAc3jU,GAAUzF,KAAKomU,WAAapmU,KAAKomU,UAAUjC,YAAe,SACpD,YAArBnkU,KAAKopU,aAA6Bl2L,IAAaztI,IAC/CzF,KAAKsmU,sCAAAA,KAOb,CAAA,IAAA,qBAAA,IAAA,WAA2B,OAAOtmU,KAAK6mU,qBAKvC,IAAA,SAAuBphU,GACnBzF,KAAK6mU,oBAAsBv0G,GAAsB7sN,KAMrD,CAAA,IAAA,qBAAA,IAAA,WACI,MAA2B,WAApBzF,KAAK0mU,aAA4B1mU,KAAKumU,qBAMjD,CAAA,IAAA,iBAAA,IAAA,WAAuB,MAA2B,UAApBvmU,KAAK0mU,aAKnC,CAAA,IAAA,YAAA,IAAA,WAAkB,OAAO1mU,KAAKwmU,YAK9B,IAAA,SAAc/gU,GACVzF,KAAKwmU,WAAa/gU,EAClBzF,KAAKwnU,kBAWT,CAAA,IAAA,aAAA,IAAA,WACI,MAA2B,WAApBxnU,KAAKmkU,YAAgD,UAArBnkU,KAAKqpU,YAA0B,OAASrpU,KAAKqpU,aAMxF,IAAA,SAAe5jU,GACPA,IAAUzF,KAAKqpU,cACfrpU,KAAKqpU,YAAc5jU,GAASzF,KAAK2mU,6BACjC3mU,KAAK4uQ,mBAAmB9yE,kBAMhC,CAAA,IAAA,WAAA,IAAA,WAGI,OAAO97L,KAAKspU,2BAA6BtpU,KAAKupU,mBAAqBvpU,KAAKwpU,gBAM5E,IAAA,SAAa/jU,GACTzF,KAAKspU,0BAA4B7jU,IAKrC,CAAA,IAAA,cAAA,IAAA,WACI,OAAOzF,KAAKypU,sBAAwBzpU,KAAK0pU,sBAO7C,EAxJE7D,CAAqBG,KAwiBdpjM,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAK6rU,IAAc,GAAyB,IAAoB,GAAyB,IAA2B,GAAyBz1D,GAA0B,GAAI,GAAyB,GAAuB,GAAI,GAAyB61D,GAAgC,GAAI,GAAyB,IAAkB,GAAyB,IAAgB,GAAyBp9D,GAAuB,KACneg9D,GAAa3jM,UAAO,GAAyB,CAAE/2H,KAAM06T,GAAcnnS,UAAW,CAAC,CAAC,mBAAoB8nG,eAAgB,SAAqC+b,EAAInmI,EAAK6mI,GAW1J,IAAI4tH,EAX2K,EAALtuH,IAC1K,GAAsBU,EAAU,IAAA,GAChC,GAA4BA,EAAU,IAAA,GACtC,GAAsBA,EAAU,IAAA,GAChC,GAA4BA,EAAU,IAAA,GACtC,GAAsBA,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,IACzB,EAALV,IAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAImtT,kBAAoB14D,EAAGx1G,OAChF,GAAsBw1G,EAAK,QAA0Bz0P,EAAIotT,eAAiB34D,EAAGx1G,OAC7E,GAAsBw1G,EAAK,QAA0Bz0P,EAAIqtT,qBAAuB54D,EAAGx1G,OACnF,GAAsBw1G,EAAK,QAA0Bz0P,EAAIstT,kBAAoB74D,EAAGx1G,OAChF,GAAsBw1G,EAAK,QAA0Bz0P,EAAIsrT,kBAAoB72D,EAAGx1G,OAChF,GAAsBw1G,EAAK,QAA0Bz0P,EAAIqrT,eAAiB52D,GAC1E,GAAsBA,EAAK,QAA0Bz0P,EAAImrT,cAAgB12D,GACzE,GAAsBA,EAAK,QAA0Bz0P,EAAIirT,gBAAkBx2D,GAC3E,GAAsBA,EAAK,QAA0Bz0P,EAAIkrT,gBAAkBz2D,KAC1E9oI,UAAW,SAA4Bwa,EAAInmI,GAM5C,IAAIy0P,EANwD,EAALtuH,IACvD,GAAmB,IAAA,GACnB,GAAyB,IAAA,GACzB,GAAmB,IAAA,GACnB,GAAmBihL,IAAAA,IACZ,EAALjhL,IAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIutT,aAAe94D,EAAGx1G,OAC3E,GAAsBw1G,EAAK,QAA0Bz0P,EAAI0qT,wBAA0Bj2D,EAAGx1G,OACtF,GAAsBw1G,EAAK,QAA0Bz0P,EAAIwtT,mBAAqB/4D,EAAGx1G,OACjF,GAAsBw1G,EAAK,QAA0Bz0P,EAAI8rT,OAASr3D,EAAGx1G,SACpE90B,UAAW,CAAC,EAAG,kBAAmBD,SAAU,GAAID,aAAc,SAAmCkc,EAAInmI,GAAgB,EAALmmI,GACjH,GAAmB,qCAAwD,YAAlBnmI,EAAI+nT,WAA7D,CAAuF,iCAAoD,QAAlB/nT,EAAI+nT,WAA7H,CAAmJ,oCAAuD,WAAlB/nT,EAAI+nT,WAA5L,CAAqN,mCAAsD,UAAlB/nT,EAAI+nT,WAA7P,CAAqR,yBAA0B/nT,EAAIw4L,SAASozH,WAA5T,CAAwU,2BAA4B5rT,EAAIwrT,eAAxW,CAAwX,8BAA+BxrT,EAAI0rT,oBAA3Z,CAAgb,2BAA4B1rT,EAAI6rT,oBAAhd,CAAqe,kCAAmC7rT,EAAIytT,0BAA5gB,CAAuiB,0BAA2BztT,EAAIw4L,SAASpD,SAA/kB,CAAylB,4BAA6Bp1L,EAAIw4L,SAASk1H,WAAnoB,CAA+oB,cAAe1tT,EAAIw4L,SAASm1H,QAA3qB,CAAorB,aAA2B,UAAb3tT,EAAI6e,MAAtsB,CAAytB,WAAyB,QAAb7e,EAAI6e,MAAzuB,CAA0vB,eAAgB7e,EAAI4tT,eAAe,aAA7xB,CAA2yB,aAAc5tT,EAAI4tT,eAAe,WAA50B,CAAw1B,cAAe5tT,EAAI4tT,eAAe,YAA13B,CAAu4B,WAAY5tT,EAAI4tT,eAAe,SAAt6B,CAAg7B,WAAY5tT,EAAI4tT,eAAe,SAA/8B,CAAy9B,aAAc5tT,EAAI4tT,eAAe,WAA1/B,CAAsgC,aAAc5tT,EAAI4tT,eAAe,WAAviC,CAAmjC,2BAA4B5tT,EAAIwqT,qBACllCngM,OAAQ,CAAExrG,MAAO,QAASyrS,WAAY,aAAcvC,WAAY,aAAcE,mBAAoB,qBAAsBS,UAAW,aAAen+L,SAAU,CAAC,gBAAiBrrH,SAAU,CAAC,GAA0B,CAChN,CAAE+nH,QAAS6iM,GAAgB5vK,YAAauvK,MACxC,IAAoCz/L,mBAAoB++L,GAAKn/L,MAAO,GAAIC,KAAM,EAAGE,OAAQ,CAAC,CAAC,EAAG,0BAA2B,CAAC,EAAG,sBAAuB,EAAG,SAAU,CAAC,sBAAuB,IAAK,CAAC,EAAG,QAAS,CAAC,QAAS,wBAAyB,EAAG,QAAS,CAAC,EAAG,wBAAyB,CAAC,iBAAkB,IAAK,CAAC,EAAG,gCAAiC,CAAC,QAAS,uBAAwB,EAAG,4BAA6B,KAAM,YAAa,uBAAwB,aAAc,WAAY,WAAY,oBAAqB,EAAG,QAAS,CAAC,QAAS,wBAAyB,EAAG,QAAS,CAAC,QAAS,2BAA4B,EAAG,QAAS,CAAC,EAAG,mCAAoC,EAAG,YAAa,CAAC,EAAG,gBAAiB,CAAC,QAAS,8BAA+B,EAAG,gBAAiB,CAAC,EAAG,0BAA2B,CAAC,EAAG,gCAAiC,CAAC,EAAG,8BAA+B,CAAC,EAAG,8BAA+B,CAAC,EAAG,yBAA0B,gCAAiC,CAAC,EAAG,yBAA0B,CAAC,EAAG,uBAAwB,EAAG,4BAA6B,KAAM,WAAY,qBAAsB,CAAC,QAAS,IAAK,CAAC,QAAS,0DAA2D,cAAe,OAAQ,EAAG,QAAS,CAAC,cAAe,OAAQ,EAAG,2BAA4B,kCAAmC,CAAC,EAAG,yBAA0B,CAAC,EAAG,4BAA6B,CAAC,YAAa,IAAK,CAAC,EAAG,yBAA0B,CAAC,EAAG,+BAAgC,CAAC,QAAS,WAAY,EAAG,KAAM,EAAG,QAAS,CAAC,EAAG,8BAA+B,CAAC,EAAG,WAAY,EAAG,OAAQD,SAAU,SAA+Bqc,EAAInmI,GAAgB,EAALmmI,IACxkD,GAAuB2iL,IACvB,GAAsB,EAAG,MAAO,GAChC,GAAsB,EAAG,MAAO,EAAG,GACnC,GAAkB,SAAS,SAAoDx0H,GAAU,OAAOt0L,EAAIw4L,SAASq1H,kBAAoB7tT,EAAIw4L,SAASq1H,iBAAiBv5H,MAC/J,GAAkB,EAAG+yH,GAAsC,EAAG,EAAG,eAAgB,GACjF,GAAkB,EAAGC,GAA6B,EAAG,EAAG,MAAO,GAC/D,GAAsB,EAAG,MAAO,EAAG,GACnC,GAAoB,GACpB,GAAsB,EAAG,OAAQ,GACjC,GAAkB,EAAGI,GAA+B,EAAG,GAAI,QAAS,GACpE,KACA,KACA,GAAkB,GAAIQ,GAA8B,EAAG,EAAG,MAAO,GACjE,KACA,GAAkB,GAAIC,GAA8B,EAAG,EAAG,MAAO,IACjE,GAAsB,GAAI,MAAO,IACjC,GAAkB,GAAIE,GAA8B,EAAG,EAAG,MAAO,IACjE,GAAkB,GAAIM,GAA8B,EAAG,EAAG,MAAO,IACjE,KACA,MACO,EAALxiL,IACF,GAAiB,GACjB,GAAkB,OAA0B,WAAlBnmI,EAAI+nT,YAC9B,GAAiB,GACjB,GAAkB,OAAQ/nT,EAAIirT,gBAAgBrsU,QAC9C,GAAiB,GACjB,GAAkB,OAAQohB,EAAI6rT,qBAC9B,GAAiB,GACjB,GAAkB,OAAQ7rT,EAAIkrT,gBAAgBtsU,QAC9C,GAAiB,GACjB,GAAkB,OAA0B,WAAlBohB,EAAI+nT,YAC9B,GAAiB,GACjB,GAAkB,WAAY/nT,EAAImsT,yBAClC,GAAiB,GACjB,GAAkB,eAAgB,SAClC,GAAiB,GACjB,GAAkB,eAAgB,UACjC5kL,WAAY,CAAC,GAAa,GAAiB,GAAqB,IAA2BhvH,OAAQ,CAAC,6nGAA8nG,s/BAAy/B,+iJAAojJ,q4CAAs4C,glGAAilG,yoCAA0oCqzG,cAAe,EAAG7rI,KAAM,CAAEqrK,UAAW,CAAC49J,GAAuBC,qBAAuBz9L,gBAAiB,IA3E99ci+L,IAAAA,KA0VMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEapjM,UAAO,GAAwB,CAAEr3H,KAAMy6T,KAC1DA,GAAmBjlM,UAAO,GAAwB,CAAErrH,QAAS,SAAoCtb,GAAK,OAAO,IAAKA,GAAK4rU,KAA0B3lM,QAAS,CAAC,CAC/I,GACA,GACA,IACD,MALX2lM,ICt3CM,GAAM,CAAC,WACP,GAAM,CAAC,SACb,SAASsE,GAA0B3nL,EAAInmI,GAIrC,GAJqD,EAALmmI,IAC9C,GAAsB,EAAG,OAAQ,GACjC,GAAc,GACd,MACO,EAALA,EAAQ,CACV,IAAM4rK,EAAS,KACf,GAAiB,GACjB,GAAyBA,EAAO9wB,aAAe,SAEnD,SAAS8sC,GAAiC5nL,EAAInmI,GAI5C,GAJ4D,EAALmmI,IACrD,GAAsB,EAAG,QACzB,GAAc,GACd,MACO,EAALA,EAAQ,CACV,IAAM6nL,EAAS,GAAqB,GACpC,GAAiB,GACjB,GAAyBA,EAAOC,cAAgB,SAEpD,SAASC,GAA4B/nL,EAAInmI,GAAgB,EAALmmI,GAChD,GAAoB,EAAG,EAAG,CAAC,gBAAiB,SAEhD,SAASgoL,GAA0BhoL,EAAInmI,GAAgB,EAALmmI,IAC9C,GAAsB,EAAG,OAAQ,GACjC,GAAkB,EAAG4nL,GAAkC,EAAG,EAAG,OAAQ,IACrE,GAAkB,EAAGG,GAA6B,EAAG,OAAA,EAAc,IACnE,MACO,EAAL/nL,IAEF,GAAkB,aADH,KACwBioL,eACvC,GAAiB,GACjB,GAAkB,gBAAA,IAEtB,SAASC,GAAiCloL,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC7D,IAAMmoL,EAAM,KACZ,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,MAAO,GAAI,IACpC,GAAkB,wBAAwB,SAAuFh6H,GAA4E,OAAlE,GAAqBg6H,GAAqB,KAAsCC,0BAA0BziU,KAAKwoM,EAAO0zC,WAAjQ,CAA8Q,WAAW,SAAiE1zC,GAA6E,OAAnE,GAAqBg6H,GAAsB,KAAuCn7D,eAAe7+D,MACrc,GAAoB,EAAG,GACvB,KACA,KACF,GAAS,EAALnuD,EAAQ,CACV,IAAM0hL,EAAS,KACf,GAAkB,2BAAA,GAClB,GAAiB,GACjB,GAA8B,oBAAqBA,EAAO2G,iBAAkB,IAC5E,GAAmB,mBAAoB3G,EAAO4G,iBAA9C,CAAgE,YAAa5G,EAAO6G,iBAAkB,MACtG,GAAkB,UAAW7G,EAAO/lG,WAApC,CAAgD,kBAAmB+lG,EAAO50D,SAAW,mBAAqB,WAC1G,GAAmB,KAAM40D,EAAOxyT,GAAK,WAEzC,IA6lEMs5T,GAr2DAC,GAVAC,GA9OA,GAAM,CAAC,CAAC,CAAC,uBAAwB,KACjC,GAAM,CAAC,qBAAsB,KAC7BC,GAAsB,CAMxBC,mBAAoBzqT,GAAQ,qBAAsB,CAC9CogO,GAAW,YAAa,GAAM,kBAAmB,ChKogCzD,WAAgC,IAAVprO,EAAU,UAAA,OAAA,QAAA,IAAA,UAAA,GAAA,UAAA,GAAA,KAC5B,MAAO,CAAEvK,KAAM,EAAsBuK,QAAAA,GgKrgCiB01T,IAAiB,CAAEzyK,UAAAA,OAWzE0yK,eAAgB3qT,GAAQ,iBAAkB,CACtC,GAAM,OAAQ,GAAM,CAChBmE,UAAW,cACX8rF,SAAU,OACVt8E,QAAS,KAEb,GAAM,UAAW,GAAM,CACnBA,QAAS,EACTs8E,SAAU,oBAEV9rF,UAAW,eAEf,GAAM,mBAAoB,GAAM,CAC5BwP,QAAS,EACTs8E,SAAU,oBAEV9rF,UAAW,eAEfi8N,GAAW,YAAaznN,GAAQ,qCAChCynN,GAAW,YAAaznN,GAAQ,oBAAqB,GAAM,CAAEhF,QAAS,SAmD1E,GAAe,EA2Cbi3S,GAA6B,IAAIvoM,GAAe,8BAiChDwoM,GAAoB,IAAIxoM,GAAe,qBAKvCyoM,GAAsC,CACxCnoM,QAASioM,GACTj1K,KAAM,CAAC,IACPD,WAnCJ,SAAqD1zG,GACjD,OAAO,WAAA,OAGDA,EAAQkpL,iBAAiB7N,gBAoC7B0tG,GAKF,SAAA,EAAYrpU,EAAQqD,GAAAA,gBAAAA,KAAAA,GAChBzF,KAAKoC,OAASA,EACdpC,KAAKyF,MAAQA,GAgDfimU,GAAsBphE,GAAmBE,GAAcP,G7J6PzD,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAII,SAAA,IAAe7pQ,IAAAA,EAAAA,gBAAAA,KAAAA,GAAAA,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAAAA,OACXg6H,EAAAA,EAAAA,KAAAA,MAAAA,EAAAA,CAAAA,MAAAA,OAASh6H,KAIJ4nU,YAAAA,EAKLhoU,EAAKinU,aAAe,IAAI,EAVb7mU,EAJnB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,WAqBQ,IAAM4gU,EAAWhhU,KAAKgoU,WAQhB5hI,GAJUpmM,KAAK2rU,mBAAqB3rU,KAAK4rU,2BAItBC,aAFT7rU,KAAKonU,UAA+BpnU,KAAKonU,UAAkB,QAAI,KAJhEpnU,KAAK8rU,kBAAoB9rU,KAAK+rU,aAOzC3lI,IAAa46H,IACbhhU,KAAKgoU,WAAa5hI,EAClBpmM,KAAKinU,aAAa/+T,YAhC9B,EAAA,E6JlRA,SAAA,EAAYqoM,EAAaq7H,EAA2BG,EAAaD,EAAkB1E,GAAAA,gBAAAA,KAAAA,GAC/EpnU,KAAKuwM,YAAcA,EACnBvwM,KAAK4rU,0BAA4BA,EACjC5rU,KAAK+rU,YAAcA,EACnB/rU,KAAK8rU,iBAAmBA,EACxB9rU,KAAKonU,UAAYA,QAgBzB,KAIM6D,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEWroM,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKixU,KAChFA,GAAiB7oM,UAAO,GAAyB,CAAEj3H,KAAM8/T,GAAkBvsS,UAAW,CAAC,CAAC,yBADxFusS,IAAAA,KAQMD,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAiBF,SAAA,EAAYpvG,EAAgBgzC,EAAoB7tF,EAAS6qJ,EAA2Br9K,EAAYk+E,EAAMs/F,EAAaD,EAAkBE,EAAkB5E,EAAW1yF,EAAUlI,EAAuBy/F,EAAgBr5M,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAC/MwH,EAAAA,EAAAA,KAAAA,KAAMm0B,EAAYq9K,EAA2BG,EAAaD,EAAkB1E,IACvExrG,eAAiBA,EACtB57N,EAAK4uQ,mBAAqBA,EAC1B5uQ,EAAK+gL,QAAUA,EACf/gL,EAAKysO,KAAOA,EACZzsO,EAAKgsU,iBAAmBA,EACxBhsU,EAAKonU,UAAYA,EACjBpnU,EAAKisU,eAAiBA,EAItBjsU,EAAKksU,YAAAA,EAILlsU,EAAK6iN,WAAAA,EAIL7iN,EAAKmsU,WAAa,EAIlBnsU,EAAKq2N,WAAAA,EAILr2N,EAAK81M,aAAe,SAKnBs2H,EAAIC,GALe,OAKRD,IAAOC,GAInBrsU,EAAKssU,KAALtsU,cAAAA,OAA0B,MAI1BA,EAAKusU,SAAW,IAAI,EAIpBvsU,EAAK8qU,iBAAmB,EAIxB9qU,EAAKk9M,UAAY,aAOjBl9M,EAAK0gU,WAAa,aAOlB1gU,EAAKwsU,WAAa,GAIlBxsU,EAAK6qU,iBAAmB,MAIxB7qU,EAAK2qU,0BAA4B,IAAI,EAMrC3qU,EAAK6iO,SAAW,EAOhB7iO,EAAKysU,WAAa,CACd,CACInjR,QAAS,QACTC,QAAS,MACTi1K,SAAU,QACVC,SAAU,OAEd,CACIn1K,QAAS,QACTC,QAAS,SACTi1K,SAAU,QACVC,SAAU,WAMlBz+N,EAAK0sU,yBAAAA,EACL1sU,EAAKikT,UAAAA,EAILjkT,EAAKgnU,YAAc,aAInBhnU,EAAK2xO,UAAY,GAIjB3xO,EAAK2sU,uBAA4C7hC,IAAM,WAKnD,IAAMp1R,EAAU1V,EAAK0V,QACrB,OAAIA,EACOA,EAAQgiK,QAAQrzK,KAAK4vN,GAAUv+M,GAAU0+M,IAAU,WAAA,OAGpD7/G,EAAAA,WAAAA,EAAAA,oBAAS7+F,EAAQX,KAIvBiiC,SAAAA,GAAAA,OAAUA,EAAO+3N,2BAEd/uQ,EAAK+gL,QAAQzC,SACf6S,eACA9sL,KAAKu5L,GAAK,GAAIw2B,IAAU,WAAA,OAGvBp0N,EAAK2sU,8BAKf3sU,EAAK4sU,aAAe,IAAI,GAIxB5sU,EAAK6sU,cAAgB7sU,EAAK4sU,aAAavoU,KAAK,IAI5CgI,SAAAA,GAAAA,OAAKA,KAAK0I,GAAI,gBAOd/U,EAAK8sU,cAAgB9sU,EAAK4sU,aAAavoU,KAAK,IAI5CgI,SAAAA,GAAAA,OAAMA,KAAK0I,GAAI,gBAOf/U,EAAK+sU,gBAAkB,IAAI,GAM3B/sU,EAAKi4S,YAAc,IAAI,GACnBj4S,EAAKonU,YAGLpnU,EAAKonU,UAAUj1H,cAAfnyM,uBAAAA,IAEJA,EAAKotO,uBAAyBZ,EAC9BxsO,EAAKsgO,gBAAkBtgO,EAAKotO,yBAC5BptO,EAAK00O,SAAWrmO,SAASqmO,IAAa,EAEtC10O,EAAKyR,GAAKzR,EAAKyR,GACXmhH,IACuC,MAAnCA,EAASo6M,yBACThtU,EAAKgtU,uBAAyBp6M,EAASo6M,wBAED,MAAtCp6M,EAASq6M,4BACTjtU,EAAKitU,0BAA4Br6M,EAASq6M,4BA5L6Jr6M,EAw0C/K9qH,OApoCpC,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAwHA,IAAA,EAAA,KACI9H,KAAKktU,gBAAkB,IAAI,GAAeltU,KAAKqvQ,UAC/CrvQ,KAAKinU,aAAa/+T,OAIlBlI,KAAK2qU,0BACAtmU,KAAK46L,KAAwBV,GAAUv+L,KAAKusU,WAC5ChsU,WAAU,WAIPP,EAAKmtU,WACLntU,EAAKmsU,WAAa,EAClBnsU,EAAK4sU,aAAa1+M,MAAAA,KAGlBluH,EAAK4sU,aAAa1+M,MAAAA,GAClBluH,EAAKotU,WAAWv2R,QAAU,EAC1B72C,EAAK4uQ,mBAAmB9yE,mBAGhC97L,KAAK47N,eAAehtH,SACfvqG,KAAKk6L,GAAUv+L,KAAKusU,WACpBhsU,WAAU,WAIPP,EAAKksU,aACLlsU,EAAKqtU,aAAertU,EAAK0gB,QAAQ6pJ,cAAc9yI,wBAC/Cz3B,EAAK4uQ,mBAAmB9yE,qBAOpC,CAAA,IAAA,qBAAA,MAAA,WAAA,IAAA,EAAA,KACI97L,KAAKstU,kBACLttU,KAAKktU,gBAAgBh+N,QAAQ7qG,KAAKk6L,GAAUv+L,KAAKusU,WAAWhsU,WAI5DszB,SAAAA,GACIA,EAAM8jC,MAAMhgD,SAIZq/B,SAAAA,GAAAA,OAAUA,EAAOi2J,YACjBp5K,EAAM+jC,QAAQjgD,SAIdq/B,SAAAA,GAAAA,OAAUA,EAAOgvK,iBAErBhmN,KAAK0V,QAAQgiK,QAAQrzK,KAAK4vN,GAAU,MAAO11B,GAAUv+L,KAAKusU,WAAWhsU,WAAU,WAI3EP,EAAKutU,gBACLvtU,EAAKwtU,4BAMb,CAAA,IAAA,YAAA,MAAA,WACQxtU,KAAKonU,WACLpnU,KAAKytU,qBAOb,CAAA,IAAA,cAAA,MAAA,SAAY/1J,GAGJA,EAAkB,UAClB13K,KAAKinU,aAAa/+T,OAElBwvK,EAAmC,2BAAK13K,KAAKolT,aAC7CplT,KAAKolT,YAAYE,cAActlT,KAAK0tU,8BAM5C,CAAA,IAAA,cAAA,MAAA,WACI1tU,KAAKusU,SAASrkU,OACdlI,KAAKusU,SAAShlU,WACdvH,KAAKinU,aAAa1/T,aAMtB,CAAA,IAAA,SAAA,MAAA,WACIvH,KAAKmtU,UAAYntU,KAAK69N,QAAU79N,KAAKiC,SAMzC,CAAA,IAAA,OAAA,MAAA,WAAA,IAAA,EAAA,MACQjC,KAAKwxM,UAAaxxM,KAAK0V,SAAY1V,KAAK0V,QAAQ1a,SAAUgF,KAAKksU,aAGnElsU,KAAKqtU,aAAertU,KAAK0gB,QAAQ6pJ,cAAc9yI,wBAG/Cz3B,KAAK8qU,iBAAmBz8T,SAASynB,iBAAiB91B,KAAK0gB,QAAQ6pJ,eAAe7kJ,UAAY,KAC1F1lB,KAAKksU,YAAAA,EACLlsU,KAAKolT,YAAYuoB,0BAA0B,MAC3C3tU,KAAK4tU,4BACL5tU,KAAK6tU,0BACL7tU,KAAK4uQ,mBAAmB9yE,eAExB97L,KAAK+gL,QAAQzC,SAAS6S,eAAe9sL,KAAKu5L,GAAK,IAAIr9L,WAAU,WAIrDP,EAAK8qU,kBAAoB9qU,EAAKotU,WAAWtwG,YACzC98N,EAAKotU,WAAWtwG,WAAWc,iBAC3B59N,EAAKotU,WAAWtwG,WAAWc,eAAepxN,MAAMkZ,SAAhD1lB,GAAAA,OAA8DA,EAAK8qU,iBAAnE9qU,aAQZ,CAAA,IAAA,QAAA,MAAA,WACQA,KAAKksU,aACLlsU,KAAKksU,YAAAA,EACLlsU,KAAKolT,YAAYuoB,0BAA0B3tU,KAAK+lO,SAAW,MAAQ,OACnE/lO,KAAK4uQ,mBAAmB9yE,eACxB97L,KAAK0gU,gBAUb,CAAA,IAAA,aAAA,MAAA,SAAWj7T,GACHzF,KAAK0V,SACL1V,KAAK8tU,qBAAqBroU,KAWlC,CAAA,IAAA,mBAAA,MAAA,SAAiBrB,GACbpE,KAAKk9M,UAAY94M,IAUrB,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACdpE,KAAK0gU,WAAat8T,IAStB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKwxM,SAAWf,EAChBzwM,KAAK4uQ,mBAAmB9yE,eACxB97L,KAAKinU,aAAa/+T,SAMtB,CAAA,IAAA,SAAA,MAAA,WAsCI,QAAOlI,KAAKysO,MAA2B,QAApBzsO,KAAKysO,KAAKhnO,QAOjC,CAAA,IAAA,iBAAA,MAAA,SAAeouB,GACN7zB,KAAKwxM,WACNxxM,KAAKmtU,UAAYntU,KAAK+tU,mBAAmBl6S,GAAS7zB,KAAKguU,qBAAqBn6S,MASpF,CAAA,IAAA,uBAAA,MAAA,SAAqBA,GAEjB,IAAMk4E,EAAUl4E,EAAMk4E,QAEhBkiO,EvKt2BK,KuKs2BQliO,GvK12BV,KuK02BoCA,GvK52BlC,KuK62BPA,GvKz2BQ,KuKy2BkBA,EAExBmiO,EvKv4BA,KuKu4BYniO,GvKz3BZ,KuKy3BiCA,EAEjC4f,EAAU3rH,KAAKolT,YAErB,IAAKz5L,EAAQwiN,YAAeD,IAAczyG,GAAe5nM,KACnD7zB,KAAKqvQ,UAAYx7O,EAAMw8B,SAAW49Q,EACpCp6S,EAAMqoC,iBACNl8D,KAAKiC,YAEJ,IAAKjC,KAAKqvQ,SAAU,CAErB,IAAM++D,EAA2BpuU,KAAK+3D,SvK53BrC,KuK63BGg0C,GvK/3BJ,KuK+3BwBA,GvK73BvB,KuK83BGA,EAAmB4f,EAAQ2nH,qBAAuB3nH,EAAQ6nH,oBAC1D3/M,EAAMqoC,kBAGNyvD,EAAQg6L,UAAU9xR,GAGtB,IAAMw6S,EAAiBruU,KAAK+3D,SAExBs2Q,GAAkBD,IAA6BC,GAG/CruU,KAAKisU,eAAet1D,SAAS,EAAsCxH,UAAW,QAU1F,CAAA,IAAA,qBAAA,MAAA,SAAmBt7O,GAEf,IAAM83F,EAAU3rH,KAAKolT,YAEfr5M,EAAUl4E,EAAMk4E,QAEhBkiO,EvKl5BK,KuKk5BQliO,GvKt5BV,KuKs5BoCA,EAEvCoiO,EAAWxiN,EAAQwiN,WACzB,GvK75BK,KuK65BDpiO,GvK/5BA,KuK+5BoBA,EACpBl4E,EAAMqoC,iBvK95BL,KuK+5BD6vC,EAAmB4f,EAAQ2nH,qBAAuB3nH,EAAQ6nH,yBAEzD,GAAIy6F,GAAcp6S,EAAMw8B,OAEzBx8B,EAAMqoC,iBACNl8D,KAAK69N,aAIJ,GAAKswG,GvK97BJ,KuK87BiBpiO,GvKh7BjB,KuKg7BsCA,IAAsB4f,EAAQ+nH,YACrEjY,GAAe5nM,GAIf,IAAKs6S,GAAYnuU,KAAKq2N,WvK73BzB,KuK63BsCtqH,GAAiBl4E,EAAMm4E,QAAS,CACpEn4E,EAAMqoC,iBAEN,IAAMoyQ,EAAuBtuU,KAAK0V,QAAQo+E,MAI1Cj8B,SAAAA,GAAAA,OAAQA,EAAI25I,WAAa35I,EAAIE,YAC7B/3D,KAAK0V,QAAQiC,SAIbq/B,SAAAA,GACSA,EAAOw6J,WACR88H,EAAuBt3R,EAAOi2J,SAAWj2J,EAAOgvK,mBAIvD,CAED,IAAMuoH,EAAyB5iN,EAAQy6L,gBACvCz6L,EAAQg6L,UAAU9xR,GACd7zB,KAAKq2N,WAAa43G,GAAcp6S,EAAMi9B,UAAY66D,EAAQ+nH,YAC1D/nH,EAAQy6L,kBAAoBmoB,GAC5B5iN,EAAQ+nH,WAAW07B,6BA3BvBv7O,EAAMqoC,iBACNyvD,EAAQ+nH,WAAW07B,0BAiC3B,CAAA,IAAA,WAAA,MAAA,WACSpvQ,KAAKwxM,WACNxxM,KAAKikT,UAAAA,EACLjkT,KAAKinU,aAAa/+T,UAQ1B,CAAA,IAAA,UAAA,MAAA,WACIlI,KAAKikT,UAAAA,EACAjkT,KAAKwxM,UAAaxxM,KAAKmtU,YACxBntU,KAAK0gU,aACL1gU,KAAK4uQ,mBAAmB9yE,eACxB97L,KAAKinU,aAAa/+T,UAO1B,CAAA,IAAA,cAAA,MAAA,WAAA,IAAA,EAAA,KACIlI,KAAKotU,WAAWngG,eAAe5oO,KAAKu5L,GAAK,IAAIr9L,WAAU,WAInDP,EAAK4uQ,mBAAmBhoF,gBACxB5mL,EAAKwuU,2BACLxuU,EAAKosL,MAAM7hB,cAAc90I,UAAYz1B,EAAKmsU,gBAOlD,CAAA,IAAA,iBAAA,MAAA,WACI,OAAOnsU,KAAKgsU,iBAALhsU,OAAAA,OAA+BA,KAAKgsU,iBAAiB/wS,OAAU,KAM1E,CAAA,IAAA,uBAAA,MAAA,WAOA,IAAA,EAAA,KAGI1rB,QAAQwJ,UAAUrJ,MAAK,WAInB1P,EAAK8tU,qBAAqB9tU,EAAKonU,UAAYpnU,EAAKonU,UAAU3hU,MAAQzF,EAAK+8L,QACvE/8L,EAAKinU,aAAa/+T,YAU1B,CAAA,IAAA,uBAAA,MAAA,SAAqBzC,GAAAA,IAAAA,EAAAA,KACjB,GAAIzF,KAAKqvQ,UAAY5pQ,EAAO,CACxB,IAAKgB,MAAMqQ,QAAQrR,GACf,MA75BLI,MAAM,sDA+5BL7F,KAAKktU,gBAAgB/tR,QACrB15C,EAAMkS,SAILi7D,SAAAA,GAAAA,OAAiB5yE,EAAKyuU,aAAa77P,MACpC5yE,KAAK0uU,kBAEJ,CACD1uU,KAAKktU,gBAAgB/tR,QAErB,IAAMwvR,EAAsB3uU,KAAKyuU,aAAahpU,GAG1CkpU,EACA3uU,KAAKolT,YAAYtyE,cAAc67F,GAEzB3uU,KAAKmtU,WAGXntU,KAAKolT,YAAYtyE,eAAe,GAGxC9yO,KAAK4uQ,mBAAmB9yE,iBAQ5B,CAAA,IAAA,eAAA,MAAA,SAAar2L,GAAAA,IAAAA,EAAAA,KAEHkpU,EAAsB3uU,KAAK0V,QAAQ0b,MAIxC4lB,SAAAA,GACG,IAEI,OAAuB,MAAhBA,EAAOvxC,OAAiBzF,EAAK81M,aAAa9+J,EAAOvxC,MAAOA,GAEnE,MAAOtG,GAKH,OAJIm5I,MAEA9zI,QAAQyG,KAAK9L,IAAAA,MAQzB,OAHIwvU,GACA3uU,KAAKktU,gBAAgBjgI,OAAO0hI,GAEzBA,IAOX,CAAA,IAAA,kBAAA,MAAA,WAAA,IAAA,EAAA,KACI3uU,KAAKolT,YAAc,IAAItxE,GAA2B9zO,KAAK0V,SAClD4vS,cAActlT,KAAK0tU,4BACnBkB,0BACAjB,0BAA0B3tU,KAAK+lO,SAAW,MAAQ,OAClD8oG,wBAAwB,CAAC,aAC9B7uU,KAAKolT,YAAY9yE,OAAOjuO,KAAKk6L,GAAUv+L,KAAKusU,WAAWhsU,WAAU,WAIzDP,EAAKmtU,aAGAntU,EAAKqvQ,UAAYrvQ,EAAKolT,YAAY1xE,YACnC1zO,EAAKolT,YAAY1xE,WAAW07B,wBAIhCpvQ,EAAK67D,QACL77D,EAAK69N,YAGb79N,KAAKolT,YAAYx2M,OAAOvqG,KAAKk6L,GAAUv+L,KAAKusU,WAAWhsU,WAAU,WAIzDP,EAAKksU,YAAclsU,EAAKosL,MACxBpsL,EAAK8uU,8BAEC9uU,EAAKksU,YAAelsU,EAAKqvQ,WAAYrvQ,EAAKolT,YAAY1xE,YAC5D1zO,EAAKolT,YAAY1xE,WAAW07B,6BASxC,CAAA,IAAA,gBAAA,MAAA,WAAA,IAAA,EAAA,KAEU2/D,EAAqBx6N,EAAMv0G,KAAK0V,QAAQgiK,QAAS13K,KAAKusU,UAC5DvsU,KAAK2sU,uBAAuBtoU,KAAKk6L,GAAUwwI,IAAqBxuU,WAIhEszB,SAAAA,GACI7zB,EAAKgvU,UAAUn7S,EAAMzxB,OAAQyxB,EAAM66O,aAC/B76O,EAAM66O,cAAgB1uQ,EAAKqvQ,UAAYrvQ,EAAKksU,aAC5ClsU,EAAK69N,QACL79N,EAAK67D,YAKb04C,EAAAA,WAAAA,EAAAA,oBAASv0G,KAAK0V,QAAQX,KAItBiiC,SAAAA,GAAAA,OAAUA,EAAOg4N,mBACZ3qQ,KAAKk6L,GAAUwwI,IACfxuU,WAAU,WAIXP,EAAK4uQ,mBAAmB9yE,eACxB97L,EAAKinU,aAAa/+T,UAEtBlI,KAAKivU,kBAST,CAAA,IAAA,YAAA,MAAA,SAAUj4R,EAAQ03N,GAEd,IAAMwgE,EAAclvU,KAAKktU,gBAAgBn2G,WAAW//K,GAChC,MAAhBA,EAAOvxC,OAAkBzF,KAAKq2N,WAM1B64G,IAAgBl4R,EAAO+gB,WACvB/gB,EAAO+gB,SAAW/3D,KAAKktU,gBAAgBjgI,OAAOj2J,GAC1Ch3C,KAAKktU,gBAAgBlnH,SAAShvK,IAElC03N,GACA1uQ,KAAKolT,YAAYtyE,cAAc97L,GAE/Bh3C,KAAKqvQ,WACLrvQ,KAAK0uU,cACDhgE,GAKA1uQ,KAAK67D,WAnBb7kB,EAAOgvK,WACPhmN,KAAKktU,gBAAgB/tR,QACrBn/C,KAAKmvU,kBAAkBn4R,EAAOvxC,QAqB9BypU,IAAgBlvU,KAAKktU,gBAAgBn2G,WAAW//K,IAChDh3C,KAAKmvU,oBAETnvU,KAAKinU,aAAa/+T,SAOtB,CAAA,IAAA,cAAA,MAAA,WAAA,IAAA,EAAA,KACI,GAAIlI,KAAKqvQ,SAAU,CAEf,IAAM35P,EAAU1V,KAAK0V,QAAQuf,UAC7Bj1B,KAAKktU,gBAAgBx1R,MAAK,SAKzB79C,EAAGC,GALsB,OAMfkG,EAAKovU,eAAiBpvU,EAAKovU,eAAev1U,EAAGC,EAAG4b,GACnDA,EAAQ9T,QAAQ/H,GAAK6b,EAAQ9T,QAAQ9H,MAE7CkG,KAAKinU,aAAa/+T,UAS1B,CAAA,IAAA,oBAAA,MAAA,SAAkBsqN,GAEd,IAAI68G,EAEAA,EADArvU,KAAKqvQ,SAC6BrvQ,KAAe,SAAE+U,KAInDiiC,SAAAA,GAAAA,OAAUA,EAAOvxC,SAGHzF,KAAK+3D,SAA+B/3D,KAAe,SAAEyF,MAAQ+sN,EAE/ExyN,KAAK+8L,OAASsyI,EACdrvU,KAAKi4S,YAAY/pL,KAAKmhN,GACtBrvU,KAAKk9M,UAAUmyH,GACfrvU,KAAK+sU,gBAAgB7+M,KAAK,IAAIu9M,GAAgBzrU,KAAMqvU,IACpDrvU,KAAK4uQ,mBAAmB9yE,iBAO5B,CAAA,IAAA,gBAAA,MAAA,WACI97L,KAAKwsU,WAAaxsU,KAAK0V,QAAQX,KAI/BiiC,SAAAA,GAAAA,OAAUA,EAAOvlC,MAAK/L,KAAK,OAQ/B,CAAA,IAAA,0BAAA,MAAA,WACQ1F,KAAKolT,cACDplT,KAAK8H,MACL9H,KAAKolT,YAAY9xE,qBAGjBtzO,KAAKolT,YAAYtyE,cAAc9yO,KAAKktU,gBAAgBn1Q,SAAS,OASzE,CAAA,IAAA,8BAAA,MAAA,WAEI,I7JylE0B43M,EAAa2/D,EAAcC,EAEnDC,E6J3lEIC,EAAoBzvU,KAAKolT,YAAYgB,iBAAmB,EAExDspB,EAAahgE,GAA8B+/D,EAAmBzvU,KAAK0V,QAAS1V,KAAK4vQ,cACvF5vQ,KAAKosL,MAAM7hB,cAAc90I,W7JslECk6O,E6JtlEoC8/D,EAAoBC,E7JslE3CJ,E6JtlEuDtvU,KAAK2vU,iB7JslE9CJ,E6JtlEgEvvU,KAAKosL,MAAM7hB,cAAc90I,W7JwlE5I+5S,EAAe7/D,EAAc2/D,GAChBC,EACRC,EAEPA,EAAeF,EAAeC,E6JjuGN,I7JkuGjBvsT,KAAKvI,IAAI,EAAG+0T,E6JluGK,I7JkuGwBF,GAE7CC,K6JxlEP,CAAA,IAAA,QAAA,MAAA,SAAM75T,GACF1V,KAAKuwM,YAAYhmC,cAAc1uG,MAAMnmD,KAQzC,CAAA,IAAA,kBAAA,MAAA,SAAgBshC,GACZ,OAAOh3C,KAAK0V,QAAQxR,QAAO,SAM1BR,EAAQme,EAASZ,GANS,YAMTA,IACVvd,EACOA,EAEJszC,IAAWn1B,EAAUZ,OAAAA,SAAQ+nG,KAQ5C,CAAA,IAAA,4BAAA,MAAA,WAEI,IAAM4mN,EAAa5vU,KAAK2vU,iBAElB3mJ,EAAQhpL,KAAK6vU,gBAEbC,EAAc9sT,KAAKxI,IAAIwuK,EAAQ4mJ,EA9qCb,KAmrClBG,EAHwB/mJ,EAAQ4mJ,EAGIE,EAGtCE,EAAuBhwU,KAAK8H,MAAQ,EAAuB9H,KAAKiwU,gBAAgBjwU,KAAKktU,gBAAgBn1Q,SAAS,IAClHi4Q,GAAwBtgE,GAA8BsgE,EAAsBhwU,KAAK0V,QAAS1V,KAAK4vQ,cAI/F,IAAMsgE,EAAeJ,EAAc,EACnC9vU,KAAKmsU,WAAansU,KAAKmwU,wBAAwBH,EAAsBE,EAAcH,GACnF/vU,KAAK6iO,SAAW7iO,KAAKowU,yBAAyBJ,EAAsBE,EAAcH,GAClF/vU,KAAKqwU,4BAA4BN,KAarC,CAAA,IAAA,0BAAA,MAAA,SAAwBxhM,EAAe2hM,EAAcH,GAEjD,IAAMH,EAAa5vU,KAAK2vU,iBAWxB,OAAO3sT,KAAKxI,IAAIwI,KAAKvI,IAAI,EATSm1T,EAAarhM,EAQW2hM,EANjCN,EAAa,GAOcG,KAMxD,CAAA,IAAA,gBAAA,MAAA,WAGI,OAAO/vU,KAAKg3S,eAAiB,KAAOh3S,KAAK2xO,WAAa3xO,KAAKq9R,cAM/D,CAAA,IAAA,qBAAA,MAAA,WACI,OAAIr9R,KAAKg3S,eACEh3S,KAAKg3S,eAIXh3S,KAAKgsU,kBAAqBhsU,KAAKgsU,iBAAiB/D,sBACjDjoU,KAAKswU,iBAGFtwU,KAAKgsU,iBAAiB19D,UAFlB,OAQf,CAAA,IAAA,2BAAA,MAAA,WACI,OAAItuQ,KAAKmtU,WAAantU,KAAKolT,aAAeplT,KAAKolT,YAAY1xE,WAChD1zO,KAAKolT,YAAY1xE,WAAWjiO,GAEhC,OAWX,CAAA,IAAA,2BAAA,MAAA,WAEI,IASIolC,EATE8mL,EAAc39N,KAAKotU,WAAWtwG,WAAWc,eAAenmM,wBAExD84S,EAAevwU,KAAK47N,eAAe7C,kBAEnC+O,EAAQ9nO,KAAK+lO,SAEbyqG,EAAexwU,KAAKqvQ,SAAWohE,GACjCC,GAIJ,GAAI1wU,KAAKqvQ,SACLx4N,EAzvC4B65R,OA2vC3B,CAED,IAAI34Q,EAAW/3D,KAAKktU,gBAAgBn1Q,SAAS,IAAM/3D,KAAK0V,QAAQ2lJ,MAChExkH,EAAUkhB,GAAYA,EAASzZ,MA/wCLoyR,GALP,GAuxClB5oG,IACDjxL,IAAY,GAIhB,IAAMwqP,EAAe,GAAK1jE,EAAYz4M,KAAO2xB,GAAWixL,EAAQ0oG,EAAe,IAEzElvC,EAAgB3jE,EAAY9mK,MAAQhgB,EAAU05R,EAAa7zT,OAC1DorN,EAAQ,EAAI0oG,GAEfnvC,EAAe,EACfxqP,GAAWwqP,EAtwCe,EAwwCrBC,EAAgB,IACrBzqP,GAAWyqP,EAzwCe,GA8wC9BthS,KAAKotU,WAAWv2R,QAAU7zB,KAAKooB,MAAMyL,GACrC72C,KAAKotU,WAAWtwG,WAAWG,mBAY/B,CAAA,IAAA,2BAAA,MAAA,SAAyB1uF,EAAe2hM,EAAcH,GAElD,IAMIY,EANEf,EAAa5vU,KAAK2vU,iBAElBiB,GAA0BhB,EAAa5vU,KAAKqtU,aAAa9wT,QAAU,EAEnEs0T,EAAsB7tT,KAAKa,MAl0CT,IAk0CyC+rT,GAIjE,OAAI5vU,KAAK0sU,wBACE,GAGPiE,EADoB,IAApB3wU,KAAKmsU,WACsB59L,EAAgBqhM,EAEtC5vU,KAAKmsU,aAAe4D,GAIIxhM,GAFDvuI,KAAK6vU,gBAAkBgB,IAWDjB,GAL1BA,GAAc5vU,KAAK6vU,gBAAkBD,EAp1CzC,KAo1CiFA,GAW1EM,EAAeN,EAAa,EAKpD5sT,KAAKooB,OAAkC,EAA5BulS,EAAgCC,MAWtD,CAAA,IAAA,8BAAA,MAAA,SAA4Bb,GAExB,IAAMH,EAAa5vU,KAAK2vU,iBAElBY,EAAevwU,KAAK47N,eAAe7C,kBAEnC+3G,EAAoB9wU,KAAKqtU,aAAaloT,IAp1Cd,EAs1CxB4rT,EAAuBR,EAAah0T,OAASvc,KAAKqtU,aAAaz2Q,OAt1CvC,EAw1CxBo6Q,EAAiBhuT,KAAK6K,IAAI7tB,KAAK6iO,UAI/BouG,EAFmBjuT,KAAKxI,IAAIxa,KAAK6vU,gBAAkBD,EA33CjC,KA63CqBoB,EAAiBhxU,KAAKqtU,aAAa9wT,OAC5E00T,EAAoBF,EACpB/wU,KAAKkxU,eAAeD,EAAmBF,GAElCC,EAAiBF,EACtB9wU,KAAKmxU,iBAAiBH,EAAgBF,EAAmBf,GAGzD/vU,KAAK6qU,iBAAmB7qU,KAAKoxU,4BAUrC,CAAA,IAAA,iBAAA,MAAA,SAAeH,EAAmBF,GAG9B,IAAMM,EAAwBruT,KAAKooB,MAAM6lS,EAAoBF,GAG7D/wU,KAAKmsU,YAAckF,EACnBrxU,KAAK6iO,UAAYwuG,EACjBrxU,KAAK6qU,iBAAmB7qU,KAAKoxU,0BAIzBpxU,KAAKmsU,YAAc,IACnBnsU,KAAKmsU,WAAa,EAClBnsU,KAAK6iO,SAAW,EAChB7iO,KAAK6qU,iBAAmB,oBAWhC,CAAA,IAAA,mBAAA,MAAA,SAAiBmG,EAAgBF,EAAmBf,GAGhD,IAAMuB,EAAwBtuT,KAAKooB,MAAM4lS,EAAiBF,GAS1D,GANA9wU,KAAKmsU,YAAcmF,EACnBtxU,KAAK6iO,UAAYyuG,EACjBtxU,KAAK6qU,iBAAmB7qU,KAAKoxU,0BAIzBpxU,KAAKmsU,YAAc4D,EAInB,OAHA/vU,KAAKmsU,WAAa4D,EAClB/vU,KAAK6iO,SAAW,OAChB7iO,KAAK6qU,iBAAmB,iBAShC,CAAA,IAAA,0BAAA,MAAA,WAEI,IAAM+E,EAAa5vU,KAAK2vU,iBAElBiB,GAA0BhB,EAAa5vU,KAAKqtU,aAAa9wT,QAAU,EAGzE,MAAA,OAAA,OADgByG,KAAK6K,IAAI7tB,KAAK6iO,UAAY+tG,EAAyBhB,EAAa,EAChF,YAOJ,CAAA,IAAA,gBAAA,MAAA,WACI,OAAO5vU,KAAK0V,QAAQ1a,OAASgF,KAAK4vQ,aAAa50Q,SAOnD,CAAA,IAAA,iBAAA,MAAA,WACI,OAz8CsB,EAy8CfgF,KAAK8qU,mBAQhB,CAAA,IAAA,oBAAA,MAAA,SAAkBn0H,GACd32M,KAAKuxU,iBAAmB56H,EAAIjxM,KAAK,OAOrC,CAAA,IAAA,mBAAA,MAAA,WACI1F,KAAK67D,QACL77D,KAAKiC,SAOT,CAAA,IAAA,UAAA,IAAA,WAloCI,OAAOjC,KAAKikT,UAAYjkT,KAAKksU,aAMjC,CAAA,IAAA,cAAA,IAAA,WAAoB,OAAOlsU,KAAKs7R,cAKhC,IAAA,SAAgB71R,GACZzF,KAAKs7R,aAAe71R,EACpBzF,KAAKinU,aAAa/+T,SAMtB,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOlI,KAAK6iN,WAK7B,IAAA,SAAap9M,GACTzF,KAAK6iN,UAAYyP,GAAsB7sN,GACvCzF,KAAKinU,aAAa/+T,SAMtB,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOlI,KAAKq2N,WAK7B,IAAA,SAAa5wN,GACT,GAAIzF,KAAKktU,gBACL,MAvbDrnU,MAAM,iEAybT7F,KAAKq2N,UAAY/D,GAAsB7sN,KAM3C,CAAA,IAAA,yBAAA,IAAA,WAA+B,OAAOzF,KAAK0sU,yBAK3C,IAAA,SAA2BjnU,GACvBzF,KAAK0sU,wBAA0Bp6G,GAAsB7sN,KAQzD,CAAA,IAAA,cAAA,IAAA,WAAoB,OAAOzF,KAAK81M,cAKhC,IAAA,SAAgB1xM,GACZ,GAAkB,mBAAPA,EACP,MAjcDyB,MAAM,qCAmcT7F,KAAK81M,aAAe1xM,EAChBpE,KAAKktU,iBAELltU,KAAKwtU,yBAOb,CAAA,IAAA,QAAA,IAAA,WAAc,OAAOxtU,KAAK+8L,QAK1B,IAAA,SAAUjqI,GACFA,IAAa9yD,KAAK+8L,SAClB/8L,KAAKi1M,WAAWniJ,GAChB9yD,KAAK+8L,OAASjqI,KAOtB,CAAA,IAAA,4BAAA,IAAA,WAAkC,OAAO9yD,KAAK0tU,4BAK9C,IAAA,SAA8BjoU,GAC1BzF,KAAK0tU,2BAA6Bn7G,GAAqB9sN,KAM3D,CAAA,IAAA,KAAA,IAAA,WAAW,OAAOzF,KAAKynQ,KAKvB,IAAA,SAAOhiQ,GACHzF,KAAKynQ,IAAMhiQ,GAASzF,KAAKssU,KACzBtsU,KAAKinU,aAAa/+T,SAKtB,CAAA,IAAA,YAAA,IAAA,WA+LI,OAAOlI,KAAKksU,aAMhB,CAAA,IAAA,WAAA,IAAA,WACI,OAAOlsU,KAAKqvQ,SAAWrvQ,KAAKktU,gBAAgBn1Q,SAAW/3D,KAAKktU,gBAAgBn1Q,SAAS,KAMzF,CAAA,IAAA,eAAA,IAAA,WACI,GAAI/3D,KAAK8H,MACL,MAAO,GAEX,GAAI9H,KAAKq2N,UAAW,CAEhB,IAAMxf,EAAkB72M,KAAKktU,gBAAgBn1Q,SAAShjD,KAItDiiC,SAAAA,GAAAA,OAAUA,EAAOm4N,aAKjB,OAJInvQ,KAAK+lO,UACLlvB,EAAgBj/J,UAGbi/J,EAAgBnxM,KAAK,MAEhC,OAAO1F,KAAKktU,gBAAgBn1Q,SAAS,GAAGo3M,YAM5C,CAAA,IAAA,QAAA,IAAA,WAkKI,OAAQnvQ,KAAKktU,iBAAmBltU,KAAKktU,gBAAgB1rT,YAMzD,CAAA,IAAA,mBAAA,IAAA,WAioBI,OAAOxhB,KAAKksU,aAAelsU,KAAK8H,UAAAA,EAz1ClCkjU,CAAkBU,KA41Cd9oM,UAAO,SAA2B5oI,GAAK,OAAO,IAAKA,GAAKgxU,IAAW,GAAyB,IAAuB,GAAyB,IAA2B,GAAyB,IAAgB,GAAyB,IAA2B,GAAyB,IAAoB,GAAyB,GAAuB,GAAI,GAAyB,GAAe,GAAI,GAAyB,GAA2B,GAAI,GAAyB9E,GAAgB,GAAI,GAAyB,GAAkB,IAAK,GAAyB,YAAa,GAAyBoF,IAA6B,GAAyB,IAAuB,GAAyBC,GAAmB,KACxuBP,GAAU9oM,UAAO,GAAyB,CAAE/2H,KAAM6/T,GAAWtsS,UAAW,CAAC,CAAC,eAAgB8nG,eAAgB,SAAkC+b,EAAInmI,EAAK6mI,GAK7I,IAAI4tH,EAL8J,EAALtuH,IAC7J,GAAsBU,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,GAChC,GAAsBA,EAAU,IAAA,IACzB,EAALV,IAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIouT,cAAgB35D,EAAGx1G,OAC5E,GAAsBw1G,EAAK,QAA0Bz0P,EAAI1G,QAAUm7P,GACnE,GAAsBA,EAAK,QAA0Bz0P,EAAIwzP,aAAeiB,KACvE9oI,UAAW,SAAyBwa,EAAInmI,GAKzC,IAAIy0P,EALqD,EAALtuH,IACpD,GAAmB,IAAA,GACnB,GAAmB,IAAA,GACnB,GAAmB,IAAA,IACZ,EAALA,IAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAIsE,QAAUmwP,EAAGx1G,OACtE,GAAsBw1G,EAAK,QAA0Bz0P,EAAIgwK,MAAQykF,EAAGx1G,OACpE,GAAsBw1G,EAAK,QAA0Bz0P,EAAIgxT,WAAav8D,EAAGx1G,SACxE90B,UAAW,CAAC,OAAQ,UAAW,EAAG,cAAeD,SAAU,GAAID,aAAc,SAAgCkc,EAAInmI,GAAgB,EAALmmI,GAC7H,GAAkB,WAAW,SAA8CmuD,GAAU,OAAOt0L,EAAImzP,eAAe7+D,KAA/G,CAA2H,SAAS,WAAgD,OAAOt0L,EAAIo8N,aAA/L,CAA8M,QAAQ,WAA+C,OAAOp8N,EAAIq8N,aACzQ,EAALl2F,IACF,GAAmB,KAAMnmI,EAAI3K,GAA7B,CAAiC,WAAY2K,EAAIs4N,SAAjD,CAA2D,aAAct4N,EAAIk0T,gBAA7E,CAA8F,kBAAmBl0T,EAAIo1T,qBAArH,CAA2I,gBAAiBp1T,EAAIwmM,SAAS/iN,WAAzK,CAAqL,gBAAiBuc,EAAIo1L,SAAS3xM,WAAnN,CAA+N,eAAgBuc,EAAI4rT,WAAnP,CAA+P,YAAa5rT,EAAI+wT,UAAY/wT,EAAIowT,WAAa,KAA7S,CAAmT,uBAAwBpwT,EAAIizP,SAA/U,CAAyV,mBAAoBjzP,EAAIm1T,kBAAoB,KAArY,CAA2Y,wBAAyBn1T,EAAIq1T,4BACxa,GAAmB,sBAAuBr1T,EAAIo1L,SAA9C,CAAwD,qBAAsBp1L,EAAI4rT,WAAlF,CAA8F,sBAAuB5rT,EAAIwmM,SAAzH,CAAmI,mBAAoBxmM,EAAItU,SAC1J2+H,OAAQ,CAAE+qE,SAAU,WAAY89D,cAAe,gBAAiB56B,SAAU,WAAY/C,UAAW,CAAC,aAAc,aAAclgO,GAAI,KAAMu7T,uBAAwB,yBAA0BC,0BAA2B,4BAA6B5vC,YAAa,cAAez6E,SAAU,WAAYysD,SAAU,WAAYn5D,YAAa,cAAezwM,MAAO,QAASy4N,WAAY,aAAc84E,eAAgB,CAAC,kBAAmB,kBAAmB20B,kBAAmB,oBAAqByD,eAAgB,kBAAoB1oM,QAAS,CAAEkmM,aAAc,eAAgBC,cAAe,SAAUC,cAAe,SAAUC,gBAAiB,kBAAmB90B,YAAa,eAAiBtxK,SAAU,CAAC,aAAcrrH,SAAU,CAAC,GAA0B,CAC3tB,CAAE+nH,QAAS,GAAqBizB,YAAa00K,IAC7C,CAAE3nM,QAASsrI,GAA6Br4G,YAAa00K,MACrD,GAAmC,IAA8B5kM,mBAAoB,GAAKJ,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,qBAAsB,GAAI,cAAe,OAAQ,EAAG,qBAAsB,EAAG,SAAU,CAAC,SAAU,mBAAoB,UAAW,IAAK,CAAC,EAAG,mBAAoB,EAAG,YAAa,CAAC,QAAS,yBAA0B,EAAG,gBAAiB,CAAC,QAAS,wBAAyB,EAAG,WAAY,EAAG,gBAAiB,CAAC,EAAG,4BAA6B,CAAC,EAAG,oBAAqB,CAAC,wBAAyB,GAAI,kCAAmC,GAAI,iCAAkC,GAAI,mCAAoC,mCAAoC,EAAG,oCAAqC,4BAA6B,0BAA2B,+BAAgC,8BAA+B,6BAA8B,gBAAiB,SAAU,UAAW,CAAC,EAAG,0BAA2B,CAAC,EAAG,wBAAyB,EAAG,YAAa,CAAC,EAAG,mBAAoB,CAAC,EAAG,gBAAiB,CAAC,EAAG,yBAA0B,CAAC,EAAG,UAAW,WAAY,CAAC,QAAS,KAAMD,SAAU,SAA4Bqc,EAAInmI,GAcrmC,GAdqnC,EAALmmI,IAC9mC,GAAuB,IACvB,GAAsB,EAAG,MAAO,EAAG,GACnC,GAAkB,SAAS,WAAqD,OAAOnmI,EAAI0G,YAC3F,GAAsB,EAAG,MAAO,GAChC,GAAkB,EAAGonT,GAA2B,EAAG,EAAG,OAAQ,GAC9D,GAAkB,EAAGK,GAA2B,EAAG,EAAG,OAAQ,GAC9D,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,MAAO,GAC3B,KACA,KACA,GAAkB,EAAGE,GAAkC,EAAG,GAAI,cAAe,GAC7E,GAAkB,iBAAiB,WAAqE,OAAOruT,EAAIyhN,UAAnH,CAA+H,UAAU,WAA8D,OAAOzhN,EAAIs1T,gBAAlN,CAAoO,UAAU,WAA8D,OAAOt1T,EAAIyhN,YAChT,EAALt7E,EAAQ,CACV,IAAM80J,EAAM,GAAmB,GAC/B,GAAiB,GACjB,GAAkB,WAAYj7R,EAAItU,OAClC,GAAiB,GACjB,GAAkB,gBAAA,GAClB,GAAiB,GACjB,GAAkB,gBAAA,GAClB,GAAiB,GACjB,GAAkB,oCAAqCsU,EAAIkkN,gBAA3D,CAA4E,4BAA6B+2E,EAAzG,CAA8G,0BAA2Bj7R,EAAI+wT,UAA7I,CAAwJ,+BAAgC/wT,EAAIqwT,WAA5L,CAAwM,8BAAmD,MAApBrwT,EAAIixT,aAAuB,KAAOjxT,EAAIixT,aAAa3wT,MAA1R,CAAiS,6BAA8BN,EAAIymN,YAClUl/E,WAAY,CAAC,GAAyB,GAAiB,GAAqB,GAA4B,GAAwB,IAAiBhvH,OAAQ,CAAC,moEAAooEqzG,cAAe,EAAG7rI,KAAM,CAAEqrK,UAAW,CACh0E0jK,GAAoBC,mBACpBD,GAAoBG,iBACnBzjM,gBAAiB,IAtD9BojM,IAAAA,KAygBMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEUvoM,UAAO,GAAwB,CAAEr3H,KAAM4/T,KACvDA,GAAgBpqM,UAAO,GAAwB,CAAErrH,QAAS,SAAiCtb,GAAK,OAAO,IAAKA,GAAK+wU,KAAuB/qM,UAAW,CAACwrM,IAAsCvrM,QAAS,CAAC,CACxL,GACA,GACA,GACA,IACD,GACH,GACA,GACA,MATR8qM,IC/pEA,SAAS4G,GAA0DpvL,EAAInmI,GAIrE,GAJqF,EAALmmI,IAC9E,GAAsB,EAAG,aAAc,IACvC,GAAc,GACd,MACO,EAALA,EAAQ,CACV,IAAMqvL,EAAoBx1T,EAAIo7K,UAC9B,GAAkB,QAASo6I,GAC3B,GAAiB,GACjB,GAA0B,IAAKA,EAAmB,MAEtD,SAASC,GAA6CtvL,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CACzE,IAAMuvL,EAAM,KACZ,GAAsB,EAAG,iBAAkB,IAC3C,GAAsB,EAAG,aAAc,IACvC,GAAkB,mBAAmB,SAA4FphI,GAA6E,OAAnE,GAAqBohI,GAAqB,GAAqB,GAAkBC,gBAAgBrhI,EAAOjrM,UACnP,GAAkB,EAAGksU,GAA2D,EAAG,EAAG,aAAc,IACpG,KACA,KACF,GAAS,EAALpvL,EAAQ,CACV,IAAMosK,EAAS,GAAqB,GACpC,GAAkB,QAASA,EAAO1zR,OAClC,GAAiB,GACjB,GAAkB,QAAS0zR,EAAOqjB,SAAlC,CAA4C,WAAYrjB,EAAOn9G,SAA/D,CAAyE,aAAcm9G,EAAOsjB,MAAMC,mBACpG,GAAiB,GACjB,GAAkB,UAAWvjB,EAAOwjB,4BAExC,SAASC,GAAkC7vL,EAAInmI,GAI7C,GAJ6D,EAALmmI,IACtD,GAAsB,EAAG,MAAO,IAChC,GAAc,GACd,MACO,EAALA,EAAQ,CACV,IAAM0hL,EAAS,GAAqB,GACpC,GAAiB,GACjB,GAAyBA,EAAO+N,WAEpC,SAASK,GAA4B9vL,EAAInmI,GAQvC,GARuD,EAALmmI,IAChD,GAAsB,EAAG,MAAO,IAChC,GAAsB,EAAG,MAAO,IAChC,GAAc,GACd,KACA,GAAkB,EAAGsvL,GAA8C,EAAG,EAAG,iBAAkB,IAC3F,GAAkB,EAAGO,GAAmC,EAAG,EAAG,MAAO,IACrE,MACO,EAAL7vL,EAAQ,CACV,IAAMymH,EAAS,KACf,GAAiB,GACjB,GAA0B,IAAKA,EAAOipE,MAAMC,kBAAmB,KAC/D,GAAiB,GACjB,GAAkB,OAAQlpE,EAAOmpE,0BAA0Bn3U,OAAS,GACpE,GAAiB,GACjB,GAAkB,OAAQguQ,EAAOmpE,0BAA0Bn3U,QAAU,IAEzE,SAASs3U,GAA+B/vL,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC3D,IAAMgwL,EAAO,KACb,GAAsB,EAAG,SAAU,IACnC,GAAkB,SAAS,WAAuI,OAAnE,GAAqBA,GAAsB,KAAsCC,eAChL,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,OAAQ,IAC5B,KACA,KACF,GAAS,EAALjwL,EAAQ,CACV,IAAMorK,EAAS,KACf,GAAkB,aAAcA,EAAOskB,MAAMQ,eAA7C,CAA6D,qBAAsB9kB,EAAO+kB,2BAA1F,CAAsH,qBAAsB,QAA5I,CAAqJ,WAAY/kB,EAAO+kB,4BACxK,GAAmB,aAAc/kB,EAAOskB,MAAMQ,iBAElD,SAASE,GAAgCpwL,EAAInmI,GAAO,GAAS,EAALmmI,EAAQ,CAC5D,IAAMqwL,EAAO,KACb,KACA,KACA,GAAsB,EAAG,SAAU,IACnC,GAAkB,SAAS,WAAyI,OAApE,GAAqBA,GAAuB,KAAuCC,cACnL,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,OAAQ,IAC5B,KACA,KACF,GAAS,EAALtwL,EAAQ,CACV,IAAM4rK,EAAS,KACf,GAAkB,aAAcA,EAAO8jB,MAAMa,cAA7C,CAA4D,qBAAsB3kB,EAAO4kB,uBAAzF,CAAiH,qBAAsB,QAAvI,CAAgJ,WAAY5kB,EAAO4kB,wBACnK,GAAmB,aAAc5kB,EAAO8jB,MAAMa,gBAAAA,IAE5CE,GA8pBAC,GAvdAC,GAzM4CJ,KAE5CE,GACF,SAAA,IAAA,gBAAA,KAAA,GAKIhzU,KAAK03K,QAAU,IAAI,EAInB13K,KAAKkyU,kBAAoB,kBAIzBlyU,KAAKmzU,cAAgB,YAIrBnzU,KAAKozU,kBAAoB,gBAIzBpzU,KAAKyyU,eAAiB,aAItBzyU,KAAK8yU,cAAgB,YAIrB9yU,KAAKqzU,cAAgB,SAMpBl7D,EAAM65D,EAAUh3U,GACb,GAAc,GAAVA,GAA2B,GAAZg3U,EACf,MAAA,QAAA,OAAeh3U,GAInB,IAAMukG,EAAa44K,EAAO65D,EAM1B,MAAA,GAAA,OAAUzyO,EAAa,EAAvB,YAAA,OAHiBA,GALjBvkG,EAASgoB,KAAKvI,IAAIzf,EAAQ,IAMtBgoB,KAAKxI,IAAI+kF,EAAayyO,EAAUh3U,GAChCukG,EAAayyO,EACjB,QAAA,OAA6Ch3U,MAIxC4nI,UAAO,SAAkC5oI,GAAK,OAAO,IAAKA,GAAKg5U,KAC7DA,GAAiBtyM,WAAQb,GAAmB,CAAEvqH,QAAS,WAAsC,OAAO,IAAI09T,IAAuB3zM,MAAO2zM,GAAkBlzM,WAAY,SADvLkzM,IAwDMM,GAA8B,CAEhCjwM,QAAS,GACTgzB,KAAM,CAAC,CAAC,IAAI/2B,GAAY,IAAIE,GAAY,KACxC42B,WAXJ,SAA6Cm9K,GACzC,OAAOA,GAAc,IAAI,KAmFvBC,GAAgC,IAAIzwM,GAAe,iCAQnD0wM,GAAoBxpE,G9J4V1B,SAA0BjgJ,GACtB,OAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAII,SAAA,IAAe5pH,IAAAA,EAAAA,gBAAAA,KAAAA,GAAAA,IAAAA,IAAAA,EAAAA,UAAAA,OAAAA,EAAAA,IAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,UAAAA,GAAAA,OACXg6H,EAAAA,EAAAA,KAAAA,MAAAA,EAAAA,CAAAA,MAAAA,OAASh6H,KAIJ66N,gBAAAA,EAMLj7N,EAAK0zU,oBAAsB,GAK3B1zU,EAAK47K,YAAc,IAAI,GAIvBzzK,SAAAA,GAGQnI,EAAKi7N,eACLj7N,EAAK2zU,kBAAkBxrU,GAGJnI,EAAyB,oBAAEU,KAAKyH,MA3BhD/H,EAJnB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,WA0CQ,GAAIJ,KAAKi7N,eACL,MAAMp1N,MAAM,yFAGhB7F,KAAKi7N,gBAAAA,EACcj7N,KAAyB,oBAAE2X,QAAQ3X,KAAK2zU,mBAC3D3zU,KAAK0zU,oBAAsB,OAhDnC,CAAA,IAAA,oBAAA,MAAA,SAuDsBvrU,GACdA,EAAWD,OACXC,EAAWZ,eAzDnB,EAAA,CAAqByiH,G8J7Ve4pN,EAHlCC,SAAAA,IAAAA,gBAAAA,KAAAA,OAGN,KAMMX,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GAMF,SAAA,EAAYjB,EAAOrjE,EAAoBh8I,GAAAA,IAAAA,EAiBnC,GAjBmCA,gBAAAA,KAAAA,IACnCwH,EAAAA,EAAAA,KAAAA,OACK63M,MAAQA,EACbjyU,EAAK4uQ,mBAAqBA,EAC1B5uQ,EAAK8zU,WAAa,EAClB9zU,EAAK+zU,QAAU,EACf/zU,EAAKg0U,iBAAmB,GACxBh0U,EAAKi0U,eAAAA,EACLj0U,EAAKk0U,uBAAAA,EAILl0U,EAAKm4Q,KAAO,IAAI,GAChBn4Q,EAAKm0U,aAAelC,EAAMv6J,QAAQn3K,WAAU,WAAA,OAGtCP,EAAK4uQ,mBAAmB9yE,kBAC1BlpE,EAAU,CAAA,IACFo/M,EAAkEp/M,EAApE,SAAYwhN,EAAwDxhN,EAA1D,gBAAmByhN,EAAuCzhN,EAAzC,aAAgB0hN,EAAyB1hN,EAA3B,qBAC/B,MAAZo/M,IACAhyU,EAAKu0U,UAAYvC,GAEE,MAAnBoC,IACAp0U,EAAKg0U,iBAAmBI,GAER,MAAhBC,IACAr0U,EAAKi0U,cAAgBI,GAEG,MAAxBC,IACAt0U,EAAKk0U,sBAAwBI,GA7BF1hN,OAAAA,2BAAAA,GAoHvC,OA/EA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAgFI5yH,KAAKumQ,cAAAA,EACLvmQ,KAAKw0U,kCACLx0U,KAAKy0U,qBAKT,CAAA,IAAA,cAAA,MAAA,WACIz0U,KAAKm0U,aAAaxzU,gBAMtB,CAAA,IAAA,WAAA,MAAA,WACI,GAAKX,KAAK00U,cAAV,CAIA,IAAMC,EAAoB30U,KAAK40U,UAC/B50U,KAAK40U,YACL50U,KAAK60U,eAAeF,MAMxB,CAAA,IAAA,eAAA,MAAA,WACI,GAAK30U,KAAK80U,kBAAV,CAIA,IAAMH,EAAoB30U,KAAK40U,UAC/B50U,KAAK40U,YACL50U,KAAK60U,eAAeF,MAMxB,CAAA,IAAA,YAAA,MAAA,WAEI,GAAK30U,KAAK80U,kBAAV,CAIA,IAAMH,EAAoB30U,KAAK40U,UAC/B50U,KAAK40U,UAAY,EACjB50U,KAAK60U,eAAeF,MAMxB,CAAA,IAAA,WAAA,MAAA,WAEI,GAAK30U,KAAK00U,cAAV,CAIA,IAAMC,EAAoB30U,KAAK40U,UAC/B50U,KAAK40U,UAAY50U,KAAK+0U,mBAAqB,EAC3C/0U,KAAK60U,eAAeF,MAMxB,CAAA,IAAA,kBAAA,MAAA,WACI,OAAO30U,KAAK40U,WAAa,GAAsB,GAAjB50U,KAAKgyU,WAMvC,CAAA,IAAA,cAAA,MAAA,WAEI,IAAMgD,EAAeh1U,KAAK+0U,mBAAqB,EAC/C,OAAO/0U,KAAK40U,UAAYI,GAAiC,GAAjBh1U,KAAKgyU,WAMjD,CAAA,IAAA,mBAAA,MAAA,WACI,OAAKhyU,KAAKgyU,SAGHhvT,KAAK2L,KAAK3uB,KAAKhF,OAASgF,KAAKgyU,UAFzB,IAcf,CAAA,IAAA,kBAAA,MAAA,SAAgBA,GAIZ,IAEM2C,EAAoB30U,KAAK40U,UAC/B50U,KAAK40U,UAAY5xT,KAAKa,MAHH7jB,KAAK40U,UAAY50U,KAAKgyU,SAGAA,IAAa,EACtDhyU,KAAKgyU,SAAWA,EAChBhyU,KAAK60U,eAAeF,KAMxB,CAAA,IAAA,uBAAA,MAAA,WACI,OAAO30U,KAAKwxM,WAAaxxM,KAAK00U,gBAMlC,CAAA,IAAA,2BAAA,MAAA,WACI,OAAO10U,KAAKwxM,WAAaxxM,KAAK80U,oBAQlC,CAAA,IAAA,kCAAA,MAAA,WACS90U,KAAKumQ,eAILvmQ,KAAKgyU,WACNhyU,KAAKu0U,UAA2C,GAA/Bv0U,KAAKo0U,gBAAgBp5U,OAClCgF,KAAKo0U,gBAAgB,GAhVX,IAmVlBp0U,KAAKmyU,0BAA4BnyU,KAAKo0U,gBAAgB92U,SACS,IAA3D0C,KAAKmyU,0BAA0BvwU,QAAQ5B,KAAKgyU,WAC5ChyU,KAAKmyU,0BAA0BzxU,KAAKV,KAAKgyU,UAG7ChyU,KAAKmyU,0BAA0Bz6R,MAAK,SAKnC79C,EAAGC,GALgC,OAK1BD,EAAIC,KACdkG,KAAK4uQ,mBAAmB9yE,kBAQ5B,CAAA,IAAA,iBAAA,MAAA,SAAe64I,GACX30U,KAAKm4Q,KAAKjqJ,KAAK,CACXymN,kBAAAA,EACAC,UAAW50U,KAAK40U,UAChB5C,SAAUhyU,KAAKgyU,SACfh3U,OAAQgF,KAAKhF,WAAAA,CAAAA,IAAAA,YAAAA,IAAAA,WArPH,OAAOgF,KAAK8zU,YAK9B,IAAA,SAAcruU,GACVzF,KAAK8zU,WAAa9wT,KAAKvI,IAAI83M,GAAqB9sN,GAAQ,GACxDzF,KAAK4uQ,mBAAmB9yE,iBAM5B,CAAA,IAAA,SAAA,IAAA,WAAe,OAAO97L,KAAK+zU,SAK3B,IAAA,SAAWtuU,GACPzF,KAAK+zU,QAAUxhH,GAAqB9sN,GACpCzF,KAAK4uQ,mBAAmB9yE,iBAM5B,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAO97L,KAAKu0U,WAK7B,IAAA,SAAa9uU,GACTzF,KAAKu0U,UAAYvxT,KAAKvI,IAAI83M,GAAqB9sN,GAAQ,GACvDzF,KAAKw0U,oCAMT,CAAA,IAAA,kBAAA,IAAA,WAAwB,OAAOx0U,KAAKg0U,kBAKpC,IAAA,SAAoBvuU,GAChBzF,KAAKg0U,kBAAoBvuU,GAAS,IAAIsP,KAItCrO,SAAAA,GAAAA,OAAK6rN,GAAqB7rN,MAC1B1G,KAAKw0U,oCAMT,CAAA,IAAA,eAAA,IAAA,WAAqB,OAAOx0U,KAAKi0U,eAKjC,IAAA,SAAiBxuU,GACbzF,KAAKi0U,cAAgB3hH,GAAsB7sN,KAM/C,CAAA,IAAA,uBAAA,IAAA,WAA6B,OAAOzF,KAAKk0U,uBAKzC,IAAA,SAAyBzuU,GACrBzF,KAAKk0U,sBAAwB5hH,GAAsB7sN,OAKvD,EA1HEytU,CAAqBO,KAoSd7wM,UAAO,SAA8B5oI,GAAK,OAAO,IAAKA,GAAKk5U,IAAc,GAAyB,IAAmB,GAAyB,IAA2B,GAAyBM,GAA+B,KAC9ON,GAAahxM,UAAO,GAAyB,CAAE/2H,KAAM+nU,GAAcx0S,UAAW,CAAC,CAAC,kBAAmB6nG,UAAW,CAAC,EAAG,iBAAkBE,OAAQ,CAAE+qE,SAAU,WAAYojI,UAAW,YAAa55U,OAAQ,SAAUg3U,SAAU,WAAYoC,gBAAiB,kBAAmBC,aAAc,eAAgBC,qBAAsB,uBAAwBr5S,MAAO,SAAWyrG,QAAS,CAAEyxI,KAAM,QAAUxxI,SAAU,CAAC,gBAAiBrrH,SAAU,CAAC,IAAoC0qH,MAAO,GAAIC,KAAM,GAAIE,OAAQ,CAAC,CAAC,EAAG,iCAAkC,CAAC,EAAG,2BAA4B,CAAC,QAAS,0BAA2B,EAAG,QAAS,CAAC,EAAG,+BAAgC,CAAC,EAAG,6BAA8B,CAAC,kBAAmB,GAAI,OAAQ,SAAU,QAAS,iCAAkC,EAAG,aAAc,qBAAsB,qBAAsB,WAAY,QAAS,EAAG,QAAS,CAAC,kBAAmB,GAAI,OAAQ,SAAU,EAAG,oCAAqC,EAAG,aAAc,qBAAsB,qBAAsB,WAAY,SAAU,CAAC,UAAW,YAAa,YAAa,QAAS,EAAG,sBAAuB,CAAC,IAAK,iDAAkD,CAAC,kBAAmB,GAAI,OAAQ,SAAU,EAAG,gCAAiC,EAAG,aAAc,qBAAsB,qBAAsB,WAAY,SAAU,CAAC,IAAK,kDAAmD,CAAC,kBAAmB,GAAI,OAAQ,SAAU,QAAS,gCAAiC,EAAG,aAAc,qBAAsB,qBAAsB,WAAY,QAAS,EAAG,QAAS,CAAC,EAAG,2BAA4B,CAAC,EAAG,iCAAkC,CAAC,QAAS,iCAAkC,EAAG,QAAS,EAAG,QAAS,CAAC,QAAS,gCAAiC,EAAG,QAAS,CAAC,EAAG,iCAAkC,EAAG,SAAU,CAAC,EAAG,QAAS,WAAY,aAAc,mBAAoB,CAAC,EAAG,QAAS,EAAG,QAAS,WAAY,CAAC,EAAG,SAAU,CAAC,EAAG,iCAAkC,CAAC,kBAAmB,GAAI,OAAQ,SAAU,EAAG,iCAAkC,EAAG,aAAc,qBAAsB,qBAAsB,WAAY,SAAU,CAAC,IAAK,8DAA+D,CAAC,kBAAmB,GAAI,OAAQ,SAAU,EAAG,gCAAiC,EAAG,aAAc,qBAAsB,qBAAsB,WAAY,SAAU,CAAC,IAAK,+DAAgED,SAAU,SAA+Bqc,EAAInmI,GAAgB,EAALmmI,IACl5E,GAAsB,EAAG,MAAO,GAChC,GAAsB,EAAG,MAAO,GAChC,GAAkB,EAAG8vL,GAA6B,EAAG,EAAG,MAAO,GAC/D,GAAsB,EAAG,MAAO,GAChC,GAAsB,EAAG,MAAO,GAChC,GAAc,GACd,KACA,GAAkB,EAAGC,GAAgC,EAAG,EAAG,SAAU,GACrE,GAAsB,EAAG,SAAU,GACnC,GAAkB,SAAS,WAA2D,OAAOl2T,EAAI64T,kBACjG,KACA,GAAsB,EAAG,MAAO,GAChC,GAAiB,EAAG,OAAQ,GAC5B,KACA,KACA,KACA,GAAsB,GAAI,SAAU,GACpC,GAAkB,SAAS,WAA4D,OAAO74T,EAAI84T,cAClG,KACA,GAAsB,GAAI,MAAO,GACjC,GAAiB,GAAI,OAAQ,IAC7B,KACA,KACA,GAAkB,GAAIvC,GAAiC,EAAG,EAAG,SAAU,IACvE,KACA,KACA,MACO,EAALpwL,IACF,GAAiB,GACjB,GAAkB,QAASnmI,EAAIi4T,cAC/B,GAAiB,GACjB,GAA0B,IAAKj4T,EAAI61T,MAAMoB,cAAcj3T,EAAIw4T,UAAWx4T,EAAI41T,SAAU51T,EAAIphB,QAAS,KACjG,GAAiB,GACjB,GAAkB,OAAQohB,EAAIk4T,sBAC9B,GAAiB,GACjB,GAAkB,aAAcl4T,EAAI61T,MAAMmB,kBAA1C,CAA6D,qBAAsBh3T,EAAIs2T,2BAAvF,CAAmH,qBAAsB,QAAzI,CAAkJ,WAAYt2T,EAAIs2T,4BAClK,GAAmB,aAAct2T,EAAI61T,MAAMmB,mBAC3C,GAAiB,GACjB,GAAkB,aAAch3T,EAAI61T,MAAMkB,cAA1C,CAAyD,qBAAsB/2T,EAAI22T,uBAAnF,CAA2G,qBAAsB,QAAjI,CAA0I,WAAY32T,EAAI22T,wBAC1J,GAAmB,aAAc32T,EAAI61T,MAAMkB,eAC3C,GAAiB,GACjB,GAAkB,OAAQ/2T,EAAIk4T,wBAC7B3wL,WAAY,CAAC,GAAa,GAAkB,GAAmB,GAAqB,GAAkB,GAAgB,IAAmBhvH,OAAQ,CAAC,u0BAAw0BqzG,cAAe,EAAGJ,gBAAiB,IA5CtgCsrM,IAAAA,KAmLMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEazwM,UAAO,GAAwB,CAAEr3H,KAAM8nU,KAC1DA,GAAmBtyM,UAAO,GAAwB,CAAErrH,QAAS,SAAoCtb,GAAK,OAAO,IAAKA,GAAKi5U,KAA0BjzM,UAAW,CAACszM,IAA8BrzM,QAAS,CAAC,CACzL,GACA,GACA,GACA,OALZgzM,IAAAA,SAAAA,GAAAA,EAAAA,GAAAA,GAAAA,EAAAA,IC9vBY,GAAA,EAAA,SAAA,IAAgF,GAAA,GAAc,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAtF,GAAA,QAAA,EAAA,KAAwE,GAAA,GAAA,GAAA,EAAA,QAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAMxF,GAAA,EAAA,SAAA,IAAqH,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,UAAA,MAA0B,GAAA,GAAe,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAA1E,GAAA,cAAA,EAAA,QAA2D,GAAA,GAAA,GAAA,EAAA,SCN5I,ICEMkC,GCIAC,GFNAC,GAAN,KAAMA,GAAN,WAIH,SAAA,EACWhhD,EACA7kR,GAAAA,gBAAAA,KAAAA,GADA,KAAA6kR,gBAAAA,EACA,KAAA7kR,MAAAA,EAJJ,KAAA8lU,eAAiB/R,GAFrB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WASH,IAAA,EAAA,KACIvjU,KAAKwP,MAAMw8G,OAAOt8G,MAAK,WACnB1P,EAAKwP,MAAM+oQ,UAAU/8L,QAAQq2H,aAAatxM,WAAU,WAChDP,EAAKu4Q,UAAUi6D,oBAZxB,CAAA,IAAA,cAAA,MAAA,WAkBCxyU,KAAKwP,MAAM+oQ,UAAU94M,UAlBtB,CAAA,IAAA,YAAA,MAAA,SAqBcz7B,GACbhkC,KAAKq0R,gBAAgB2qC,UAAUh7R,GAC/BhkC,KAAKq0R,gBAAgBx2D,UAvBtB,CAAA,IAAA,aAAA,MAAA,SA0Bep6N,GACdzD,KAAKwP,MAAM+oQ,UAAUL,QAAQz0Q,EAAEmxU,eA3BhC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMS,IAAyB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAzBA,GAAyB,UAAA,CAAA,CAAA,uBAAA,UAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAA,GACvB,IAAA,GADuB,EAAA,GAAA,GAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,MAAA,GAAA,KAAA,GAAA,OAAA,CAAA,CAAA,EAAA,UAAA,CAAA,QAAA,GAAA,EAAA,QAAA,CAAA,EAAA,eAAA,WAAA,EAAA,SAAA,CAAA,UAAA,SAAA,CAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,kBAAA,UAAA,CAAA,OAAA,SAAA,cAAA,YAAA,kBAAA,SAAA,oBAAA,IAAA,CAAA,EAAA,kBAAA,YAAA,CAAA,kBAAA,YAAA,CAAA,QAAA,GAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,SAAA,CAAA,QAAA,gBAAA,EAAA,aAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,SAAA,WAAA,eAAA,QAAA,CAAA,QAAA,GAAA,EAAA,SAAA,CAAA,EAAA,WAAA,OAAA,EAAA,UAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDdtC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAwB,GAAA,EAAA,eAAW,KACnC,GAAA,EAAA,SAAA,GAAsC,GAAA,SAAA,WAAA,OAAS,EAAAhhD,gBAAA,WAC3C,GAAA,EAAA,WAAA,GACJ,KACJ,KAEA,GAAA,EAAA,OAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,QAAA,GACJ,KAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GACI,GAAA,GAAA,GAAA,EAAA,EAAA,SAAA,GAdZ,GAAA,GAAA,YAeQ,KACJ,KACJ,KAEA,GAAA,GAAA,MAAA,IACI,GAAA,GAAA,GAAA,EAAA,EAAA,SAAA,IApBJ,GAAA,GAAA,SAqBA,KAEA,GAAA,GAAA,gBAAA,IAGe,GAAA,QAAA,SAAA,GAAA,OAAQ,EAAAkhD,WAAA,MACvB,MAAA,EAAA,IApB0B,GAAA,GAAA,GAAA,YAAA,EAAA,MAAA,UAAA,SAOa,GAAA,GAAA,GAAA,UAAA,GAAA,GAAA,EAAA,EAAA,iBAML,GAAA,GAAA,GAAA,UAAA,GAAA,GAAA,EAAA,EAAA,MAAA,UAAA,WAGnB,GAAA,GAAA,GAAA,SAAA,EAAA,MAAA,UAAA,WAAA,CAAqC,WAAA,GAArC,CAAqC,gBAAA,KAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,GAAA,IAAA,OAAA,CAAA,uhCAAA,cAAA,EAAA,gBAAA,IAAA,IGH7C,KAAMH,GAAN,WAQH,SAAA,EAAoBrgD,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,aAAAA,EAPb,KAAAygD,cAAgB,IAAI,GAAiC,MADzD,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,uBAAA,MAAA,WAUI,IAAA,EAAA,KACHx1U,KAAK+0R,aAAa9yR,KACd,GACA,CACI4kB,SAAU,SACVrkB,OAAQ,WAEXg9T,eAAej/T,WAAWyrB,SAAAA,GACvBhsB,EAAKw1U,cAActtU,KAAK8jB,GACxBhsB,EAAKs/T,gBAAgBtzS,QAnB9B,CAAA,IAAA,aAAA,MAAA,SAuBevmB,GACdzF,KAAKw1U,cAActtU,KAAKzC,KAxBzB,CAAA,IAAA,mBAAA,MAAA,SA2BqBrB,GACpBpE,KAAKs/T,gBAAkBl7T,IA5BxB,CAAA,IAAA,oBAAA,MAAA,cAAA,CAAA,IAAA,cAAA,IAAA,WAKC,OAAOpE,KAAKw1U,cAAcnxU,KAAK0Q,GAAI9K,SAAAA,GAAAA,OAAOA,GAAkB,iBAANA,EAAsBA,EAAEszF,OAANtzF,UALzE,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMmrU,IAAyB,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAzBA,GAAyB,UAAA,CAAA,CAAA,uBAAA,SAAA,CAAA,GANvB,CAAC,CACR/xM,QAASgtE,GACT/5C,YAAa8+K,GACbv/K,OAAAA,MACF,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,qBAAA,WAAA,EAAA,SAAA,CAAA,EAAA,QAAA,CAAA,UAAA,wBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IClBN,GAAA,EAAA,SAAA,GAEQ,GAAA,SAAA,WAAA,OAAS,EAAA4/K,0BAFjB,GAAA,EAAA,SAKE,GAAA,EAAA,OAAA,GAAmB,GAAA,GALrB,GAAA,EAAA,SAK4C,KAC1C,GAAA,EAAA,WAAA,GACF,MDWM,EAAA,ICfE,GAAA,cAAA,GAAA,EAAA,EAAA,EAAA,cAEa,GAAA,GAAA,GAAA,GAAA,EAAA,EAAA,EAAA,gBAAA,WAAA,CAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,+mBAAA,cAAA,EAAA,gBAAA,IAAA,IFWd,KAAMN,GAAN,WACH,SAAA,EACYtlN,EACDzxE,EACCk7N,EACAl1D,GAAAA,gBAAAA,KAAAA,GAHA,KAAAv0F,MAAAA,EACD,KAAAzxE,aAAAA,EACC,KAAAk7N,YAAAA,EACA,KAAAl1D,SAAAA,EALT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WASC,IAAIsxH,EAAc11U,KAAKokN,SAASvhM,IAAI,wCAC9B8yT,EAAe31U,KAAKokN,SAASvhM,IAAI,yBAA0B,IACxD3L,QAAOjN,SAAAA,GAAAA,MAAgB,WAAXA,EAAEkB,QACd4J,KAAI9K,SAAAA,GAAAA,OAAKA,EAAEszF,OAAO7uF,iBAC3B,GAAIgnU,EAAa,CACb,GAA2B,iBAAhBA,EAA0B,CACjC,IAAME,EAAWD,EAAYvsH,SAASssH,EAAYhnU,eAClDgnU,EAAc,CAACn4O,OAAQm4O,EAAavqU,KAAMyqU,EAAW,SAAW,UAEpE51U,KAAKs5Q,YAAYb,YAAY,CAACi9D,OAlBnC,CAAA,IAAA,UAAA,MAAA,WAuBC11U,KAAK6vH,MAAMi+D,SAAS,IAAIg2F,QAvBzB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMqxD,IAAmB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAnBA,GAAmB,UAAA,CAAA,CAAA,gBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,GAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,kBAAA,OAAA,QAAA,IAAA,CAAA,EAAA,2BAAA,CAAA,EAAA,sBAAA,kBAAA,EAAA,SAAA,CAAA,UAAA,OAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,EAAA,yBAAA,CAAA,kBAAA,eAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IGhBhC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,eAAA,GAA2C,GAAA,EAAA,gBAAY,KAEvD,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAiD,GAAA,SAAA,WAAA,OAAS,EAAA50D,aACtD,GAAA,EAAA,WAAA,GACJ,KACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,YAAQ,KAC5C,KAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,qBAAA,GACA,GAAA,GAAA,MAAA,GAAgC,GAAA,GAAA,QAAI,KACxC,KACJ,MHEgC,EAAA,GGhBA,GAAA,YAAA,EAAA,aAAA,OAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,g0BAAA,cAAA,EAAA,gBAAA,IAAA,IJczB,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IKZC,KAAA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,QACJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAA,UADU,GAAA,GAAA,GAAA,IAAA,EAAA,QAAA,KAAA,CAA6B,eAAA,EAAA,QAAA,aAAA,KAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAEvC,GAAA,EAAA,WAAA,GAAA,EAAA,GAAU,GAAA,UAAA,KAAA,UAAA,KAAA,WAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAJd,GAAA,EAAA,SAAA,GAA+D,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,SAAA,EAAA,SAC3D,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAGA,GAAA,EAAA,GAAA,EAAA,EAAA,WAAA,GACA,GAAA,EAAA,OAAA,GAAsC,GAAA,GAAc,KACxD,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UALS,GAAA,GAAA,GAAA,OAAA,SAAA,EAAA,MAGsC,GAAA,GAAA,GAAA,OAAA,SAAA,EAAA,MACL,GAAA,GAAA,GAAA,EAAA,OCUvC,IAAMs1D,GAAN,KAAMA,GAAN,WAIH,SAAA,EACY5sU,EACA4mH,GAAAA,gBAAAA,KAAAA,GADA,KAAA5mH,OAAAA,EACA,KAAA4mH,MAAAA,EAER7vH,KAAKkrL,OAASlrL,KAAKiJ,OAAO4Z,IAAI,4BAR/B,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,SAWa8sL,GACZ3vM,KAAK6vH,MAAMi+D,SAAS,IAAI20F,GAAS9yE,QAZlC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMkmI,IAAqB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAArBA,GAAqB,UAAA,CAAA,CAAA,kBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,QAAA,oBAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,oBAAA,EAAA,SAAA,CAAA,QAAA,6BAAA,UAAA,iBAAA,EAAA,QAAA,CAAA,EAAA,UAAA,EAAA,QAAA,CAAA,QAAA,GAAA,EAAA,OAAA,gBAAA,CAAA,QAAA,6BAAA,UAAA,kBAAA,CAAA,EAAA,YAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDhBlC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,GAOJ,MCQkC,EAAA,IDfI,GAAA,GAAA,GAAA,UAAA,EAAA,UAAA,WAAA,CAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,w1BAAA,cAAA,EAAA,gBAAA,ICgBP,GAAA,CAA1BjnI,GAAO,GAAYpqI,OAAO,GAAA,cAAQ,IAAR,GAAA,UAAA,cAAA,GAAA,IADxB,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,ICNC,GAAA,EAAA,OAAA,GAA6D,GAAA,GAAQ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAA,UAAR,GAAA,GAAA,GAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KATjE,GAAA,EAAA,SAAA,EAAA,GAKQ,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,EAAA,GAAA,GAAA,EAAA,KAAA,KAAA,OAAA,KAAA,WAAA,EAAA,KAAA,GAAgD,EAAA,UAGpD,GAAA,EAAA,MAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,OAAA,GACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAAA,KAAA,EAAA,KARQ,GAAA,YAAA,EAAA,KAAA,CAAuC,UAAA,EAAA,QAMtC,GAAA,GAAA,GAAA,MAAA,EAAA,WAAA,cAAA,EAAA,GAAA,IACsB,GAAA,GAAA,GAAA,OAAA,EAAA,OAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAVnC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,GAWJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,KAAA,EAAA,KAPY,GAAA,GAAA,GAAA,UAAA,EAAA,oBAAA,KAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAWJ,GAAA,EAAA,MAAA,IAA4E,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,GAAA,GAAA,qBAAA,MACxE,GAAA,EAAA,MAAA,IACA,GAAA,EAAA,MAAA,GAAgC,GAAA,GAAiB,KACrD,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,GAAA,GAFS,GAAA,GAAA,GAAA,MAAA,EAAA,WAAA,sBAAA,GAAA,IAC2B,GAAA,GAAA,GAAA,EAAA,OAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAHxC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAIJ,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAJ4C,GAAA,GAAA,GAAA,UAAA,EAAA,aCCzC,ICLMsxQ,GDKAC,GAAN,KAAMA,GAAN,WAIH,SAAA,EACWrzD,EACCz5Q,EACA4mH,GAAAA,gBAAAA,KAAAA,GAFD,KAAA6yJ,WAAAA,EACC,KAAAz5Q,OAAAA,EACA,KAAA4mH,MAAAA,EAER7vH,KAAKg2U,WAAah2U,KAAKiJ,OAAO4Z,IAAI,8BATnC,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,aAAA,MAAA,SAYeq/P,EAAsBM,GAAAA,IAAAA,EAAAA,KACpCxiR,KAAK0iR,WAAWuzD,WAAW/zD,EAAcM,GAAa9yQ,MAAK,WACvD1P,EAAK6vH,MAAMi+D,SAAS,IAAI,SAd7B,CAAA,IAAA,uBAAA,MAAA,SAkByBxuE,GACxBt/G,KAAK6vH,MAAMi+D,SAAS,IAAIs1F,GAAoB9jK,MAnB7C,CAAA,IAAA,sBAAA,MAAA,SAyBwBA,GACvB,OAAIA,EAASqlB,KAAarlB,EAASqlB,KAC5Bl+H,MAAM8tE,KAAK9tE,MAAM64G,EAAS0pE,OAAOxjL,YA3BzC,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMuwU,IAAuB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAvBA,GAAuB,UAAA,CAAA,CAAA,oBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,QAAA,qBAAA,EAAA,OAAA,YAAA,CAAA,eAAA,IAAA,CAAA,EAAA,sBAAA,CAAA,QAAA,4BAAA,EAAA,WAAA,UAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,UAAA,oBAAA,EAAA,SAAA,CAAA,SAAA,IAAA,CAAA,MAAA,wBAAA,EAAA,OAAA,CAAA,QAAA,eAAA,QAAA,GAAA,EAAA,QAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,QAAA,6BAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,WAAA,oBAAA,EAAA,SAAA,CAAA,MAAA,iCAAA,EAAA,QAAA,SAAA,SAAA,EAAA,GAAA,GAAA,EAAA,IDjBpC,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAAA,GAAA,EAAA,SAcA,GAAA,EAAA,GAAA,EAAA,EAAA,cAAA,KAAA,EAAA,KCGoC,EAAA,EAAA,CAAA,IAAA,EAAA,GAAA,GDjBJ,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,iBAAA,CAAmE,WAAA,KAAA,WAAA,CAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,gFAAA,cAAA,EAAA,gBAAA,ICkBzD,GAAA,CAArCnnI,GAAO,GAAc00E,gBAAgB,GAAA,cAAiB,IAAjB,GAAA,UAAA,uBAAA,GAAA,ICNnC,KAAMwyD,GAAN,WAGH,SAAA,EACW13R,EACAulO,GAAAA,gBAAAA,KAAAA,GADA,KAAAvlO,aAAAA,EACA,KAAAulO,UAAAA,EAJJ,KAAA16N,OAAS,GADb,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WASCjpD,KAAK2jR,UAAUuyD,gBAThB,CAAA,IAAA,cAAA,MAAA,WAaCl2U,KAAK2jR,UAAUF,kBAbhB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMqyD,IAAoB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAApBA,GAAoB,UAAA,CAAA,CAAA,iBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,EAAA,oBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,MAAA,IAAA,MAAA,MAAA,EAAA,UAAA,QAAA,kBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ICZjC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,UAAM,KACtC,GAAA,EAAA,aAAA,GAA8B,GAAA,SAAA,SAAA,GAAA,OAAS,EAAAnyD,UAAA,cAAA,EAAA,SAAT,CAA+C,iBAAA,SAAA,GAAA,OAAA,EAAA,OAAA,KAAsB,KACvG,KACJ,MDOiC,EAAA,ICTqD,GAAA,GAAA,GAAA,UAAA,EAAA,UAAA,WAAA,CAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,IAAA,cAAA,EAAA,gBAAA,IAAA,IFc/E,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KGbK,GAAA,EAAA,MAAA,IACI,GAAA,EAAA,SAAA,IAAwB,GAAA,SAAA,SAAA,GAAA,OAAA,GAAA,GAAA,GAAA,GAAA,cAAwBjzE,EAAOt0I,qBACnD,GAAA,EAAA,WAAA,IACJ,KACA,GAAA,EAAA,SAAA,IAAwB,GAAA,SAAA,SAAA,GAAA,GAAA,GAAA,IAAA,EAAA,KAAA,UAAA,OAAA,KAAA,gBAAA,GAAiCs0I,EAAOt0I,qBAC5D,GAAA,EAAA,WAAA,IACJ,KACJ,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAVR,GAAA,EAAA,MAAA,GAAwE,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,YAAA,MACpE,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GACA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,IAQJ,KACA,GAAA,EAAA,OAAA,IAAiC,GAAA,GAAoC,KACzE,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAXa,GAAA,GAAA,GAAA,MAAA,EAAA,iBAAA,GAAA,IACuB,GAAA,GAAA,GAAA,OAAA,EAAA,cAAA,IASC,GAAA,GAAA,GAAA,EAAA,cAAA,EAAA,OAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAKrC,GAAA,EAAA,eAAA,ICCG,ICLM+5Q,GDKAC,GEiEPC,GCzEOC,GDk8BPC,GAtXAC,GE7kBOC,GCAAC,GCEAC,GNON,KAAMP,GAAN,WAQH,SAAA,EACW/8D,EACA3vD,EACC75F,GAAAA,gBAAAA,KAAAA,GAFD,KAAAwpJ,UAAAA,EACA,KAAA3vD,YAAAA,EACC,KAAA75F,MAAAA,EARL,KAAA+mN,kBAAoB,IAAIr6H,GAAU,CACrC96L,KAAM,IAAIw7L,GACVhiL,MAAO,IAAIgiL,KALZ,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAcH,IAAA,EAAA,KACIj9M,KAAK42U,kBAAkB/zT,IAAI,SAASgvL,aAAatxM,WAAUkF,SAAAA,GACvDzF,EAAKq5Q,UAAUtuD,YAAYtlN,MAG/BzF,KAAK42U,kBAAkB/kI,aAClBxtM,KAAK+pO,GAAa,MAClB7tO,WAAU,WACPP,EAAKi4M,mBAtBd,CAAA,IAAA,mBAAA,MAAA,SA0BqB51F,GACpB,OAAOriH,KAAKq5Q,UAAU9xP,SAASi9L,WAAWniG,GAAS,mBA3BpD,CAAA,IAAA,cAAA,MAAA,SA8BgBA,GACfriH,KAAKi4M,cACLj4M,KAAKq5Q,UAAUtxQ,IAAIs6G,EAAMziH,QAhC1B,CAAA,IAAA,aAAA,MAAA,SAmCe6F,GACdzF,KAAKq5Q,UAAUtxD,OAAOtiN,KApCvB,CAAA,IAAA,gBAAA,MAAA,SAuCkB48G,GACjB,OAAOriH,KAAK0pN,YAAY7sD,GAAGx6C,KAxC5B,CAAA,IAAA,cAAA,MAAA,WA4CCriH,KAAK0pN,YAAY3zM,WA5ClB,CAAA,IAAA,kBAAA,MAAA,SA+CoBssG,GACnBriH,KAAK42U,kBAAkB94H,WAAW,CAACr8L,KAAM4gG,EAAM5gG,KAAN4gG,SAAqB,CAAC84F,WAAAA,IAC/Dn7M,KAAK6vH,MAAMi+D,SAAS,IAAI+0F,MAjDzB,CAAA,IAAA,cAAA,MAAA,WAqDC7iR,KAAK6vH,MAAMi+D,SAAS,IAAI,QArDzB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMsoJ,IAAoB,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAApBA,GAAoB,UAAA,CAAA,CAAA,iBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,GAAA,KAAA,GAAA,OAAA,CAAA,CAAA,EAAA,qBAAA,gBAAA,CAAA,QAAA,oBAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,qBAAA,iBAAA,EAAA,aAAA,CAAA,kBAAA,QAAA,EAAA,QAAA,CAAA,EAAA,oBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,kBAAA,OAAA,EAAA,MAAA,MAAA,SAAA,CAAA,EAAA,oBAAA,EAAA,SAAA,CAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,CAAA,QAAA,iBAAA,EAAA,QAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,EAAA,kBAAA,CAAA,kBAAA,GAAA,EAAA,SAAA,CAAA,UAAA,UAAA,CAAA,UAAA,YAAA,CAAA,kBAAA,UAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDnBjC,GAAA,EAAA,UAAA,GAAA,GAAA,EAAA,SACI,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GAcJ,KAEA,GAAA,EAAA,UAAA,GAjBA,GAAA,EAAA,SAkBI,GAAA,EAAA,GAAA,EAAA,EAAA,eAAA,GAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,QAAI,KACpC,GAAA,EAAA,aAAA,GAAqG,GAAA,SAAA,SAAA,GAAA,OAAS,EAAAS,WAAA,EAAA,UAA0B,KAC5I,KACJ,MCLiC,EAAA,IDnBgB,GAAA,SAAA,GAAA,EAAA,EAAA,EAAA,gBACd,GAAA,GAAA,GAAA,UAAA,EAAA,UAAA,UAgBgB,GAAA,GAAA,GAAA,UAAA,GAAA,EAAA,GAAA,EAAA,gBAA0C,GAAA,YAAA,EAAA,mBACnD,GAAA,GAAA,GAAA,OAAA,EAAA,YAAA,WAItB,GAAA,GAAA,GAAA,MAAA,EAAA,YAAA,aAAA,CAAgC,MAAA,EAAA,YAAA,gBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,8WAAA,cAAA,EAAA,gBAAA,ICFf,GAAA,CAAhCjoI,GAAO,GAAWm0E,cAAc,GAAA,cAAe,IAAf,GAAA,UAAA,qBAAA,GAAA,ICN9B,KAAMozD,GAAN,WAGH,SAAA,EACYtmN,EACA3zG,GAAAA,gBAAAA,KAAAA,GADA,KAAA2zG,MAAAA,EACA,KAAA3zG,OAAAA,EAJL,KAAA46T,aAAe,IAAI75H,GADvB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAQH,IAAA,EAAA,KACIj9M,KAAK82U,aAAajlI,aAAatxM,WAAU06B,SAAAA,GAC9BA,IACPj7B,EAAKkc,OAAOnB,SAAS4gC,mBAAmB1gB,GACxCj7B,EAAKkc,OAAO6kC,SACZ/gD,EAAK6vH,MAAMi+D,SAAS,IAAI,YAb7B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMqoJ,IAA+B,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA/BA,GAA+B,UAAA,CAAA,CAAA,6BAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IMd5C,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,eAAA,GAAiD,GAAA,EAAA,qBAAiB,KACtE,MNY4C,EAAA,IMb1B,GAAA,GAAA,GAAA,cAAA,EAAA,gBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,IAAA,cAAA,EAAA,gBAAA,IAAA,ILoBZ,GAAM,CAAC,UACP,GAAM,CAAC,KAWPY,GAAoC,IAAIh0M,GAAe,qCAOvDi0M,GAAyC,CAC3C3zM,QAASgtE,GACT/5C,YAAaj1B,IAAW,WAAA,OAGlB,MACNw0B,OAAAA,GAMEohL,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,IAGF,GAAmB,EAIjBC,GAKF,SAAA,EAAY90U,EAAQqD,GAAAA,gBAAAA,KAAAA,GAChBzF,KAAKoC,OAASA,EACdpC,KAAKyF,MAAQA,GAAAA,KAkBf4wU,GAAAA,WAKF,SAAA,EAAY7gC,EAAiBv+D,GAAAA,gBAAAA,KAAAA,GACzBj3O,KAAKw1S,gBAAkBA,EACvBx1S,KAAKkyO,WAAAA,EACLlyO,KAAKq2N,WAAAA,EACLr2N,KAAK2vO,WAAAA,EAKL3vO,KAAK01S,8BAAgC,aAOrC11S,KAAK0gU,WAAa,aAIlB1gU,KAAKyjQ,MAALzjQ,2BAAAA,OAAwC,MAMxCA,KAAKi4S,YAAc,IAAI,GAIvBj4S,KAAK4uG,OAAS,IAAI,GAClB5uG,KAAKmkU,WACDltF,GAAkBA,EAAektF,WAAaltF,EAAektF,WAAa,WAuGlF,OAjGA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAkGInkU,KAAKktU,gBAAkB,IAAI,GAAeltU,KAAKqvQ,cAAAA,GAAUrmJ,KAK7D,CAAA,IAAA,qBAAA,MAAA,WAAA,IAAA,GACIhpH,EAAAA,KAAKktU,iBAAgBjgI,OAArBjtM,MAAAA,EAAAA,oBAA+BA,KAAKm3U,eAAejgU,QAInD4L,SAAAA,GAAAA,OAAUA,EAAO6tL,eAOrB,CAAA,IAAA,aAAA,MAAA,SAAWlrM,GACPzF,KAAKyF,MAAQA,EACbzF,KAAKw1S,gBAAgB15G,iBAOzB,CAAA,IAAA,mBAAA,MAAA,SAAiB13L,GACbpE,KAAK01S,8BAAgCtxS,IAOzC,CAAA,IAAA,oBAAA,MAAA,SAAkBA,GACdpE,KAAK0gU,WAAat8T,IAOtB,CAAA,IAAA,mBAAA,MAAA,SAAiBqsM,GACbzwM,KAAKwxM,SAAWf,IAMpB,CAAA,IAAA,mBAAA,MAAA,WAEI,IAAM14I,EAAW/3D,KAAK+3D,SAEhB31D,EAASqE,MAAMqQ,QAAQihD,GAAYA,EAASA,EAAS/8D,OAAS,GAAK+8D,EAEnElkC,EAAQ,IAAIqjT,GAAsB,EAA6Bl3U,KAAKyF,OAC1EzF,KAAK01S,8BAA8B7hR,EAAMpuB,OACzCzF,KAAK4uG,OAAOsf,KAAKr6F,KAUrB,CAAA,IAAA,oBAAA,MAAA,SAAkB/Q,EAAQmqL,GAA2C,IAAA,EAAA,KAAnCyhE,EAAmC,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAAd0oE,EAAc,UAAA,OAAA,QAAA,IAAA,UAAA,IAAA,UAAA,GAG5Dp3U,KAAKqvQ,WAAYrvQ,KAAK+3D,UAAaj1C,EAAO6tL,UACvB3wM,KAAe,SAAE2wM,SAAAA,GAErC3wM,KAAKktU,gBACDjgI,EACAjtM,KAAKktU,gBAAgBjgI,OAAOnqL,GAG5B9iB,KAAKktU,gBAAgBlnH,SAASljM,GAIlCs0T,GAAAA,EAKAA,EACA7nU,QAAQwJ,UAAUrJ,MAAK,WAAA,OAGjB1P,EAAKq3U,kBAAkB3oE,MAG7B1uQ,KAAKq3U,kBAAkB3oE,KAQ/B,CAAA,IAAA,cAAA,MAAA,SAAY5rP,GACR,OAAO9iB,KAAKktU,iBAAmBltU,KAAKktU,gBAAgBn2G,WAAWj0M,KAOnE,CAAA,IAAA,gBAAA,MAAA,SAAcA,GACV,YAAA,IAAW9iB,KAAKs3U,YAGZt3U,KAAKqvQ,UAAY5oQ,MAAMqQ,QAAQ9W,KAAKs3U,WAC7Bt3U,KAAKs3U,UAAUxjP,MAItBruF,SAAAA,GAAAA,OAAyB,MAAhBqd,EAAOrd,OAAiBA,IAAUqd,EAAOrd,SAE/Cqd,EAAOrd,QAAUzF,KAAKs3U,aAQjC,CAAA,IAAA,uBAAA,MAAA,SAAqB7xU,GAAAA,IAAAA,EAAAA,KAEjB,GADAzF,KAAKs3U,UAAY7xU,EACZzF,KAAKm3U,eAGV,GAAIn3U,KAAKqvQ,UAAY5pQ,EAAO,CACxB,IAAKgB,MAAMqQ,QAAQrR,GACf,MAAMI,MAAM,sDAEhB7F,KAAKu3U,kBACL9xU,EAAMkS,SAILi7D,SAAAA,GAAAA,OAAiB5yE,EAAKyuU,aAAa77P,WAGpC5yE,KAAKu3U,kBACLv3U,KAAKyuU,aAAahpU,KAQ1B,CAAA,IAAA,kBAAA,MAAA,WACIzF,KAAKktU,gBAAgB/tR,QACrBn/C,KAAKm3U,eAAex/T,SAIpBmL,SAAAA,GAAAA,OAAUA,EAAO6tL,SAAAA,OAQrB,CAAA,IAAA,eAAA,MAAA,SAAalrM,GAET,IAAMkpU,EAAsB3uU,KAAKm3U,eAAe/lT,MAIhDtO,SAAAA,GAAAA,OAC2B,MAAhBA,EAAOrd,OAAiBqd,EAAOrd,QAAUA,KAEhDkpU,IACAA,EAAoBh+H,SAAAA,EACpB3wM,KAAKktU,gBAAgBjgI,OAAO0hI,MASpC,CAAA,IAAA,oBAAA,MAAA,SAAkBjgE,GAEVA,GACA1uQ,KAAK62N,mBAIT72N,KAAKi4S,YAAY/pL,KAAKluH,KAAKyF,SAAAA,CAAAA,IAAAA,OAAAA,IAAAA,WAtSlB,OAAOzF,KAAKyjQ,OAKzB,IAAA,SAASh+P,GAAAA,IAAAA,EAAAA,KACLzF,KAAKyjQ,MAAQh+P,EACTzF,KAAKm3U,gBACLn3U,KAAKm3U,eAAex/T,SAIpBmL,SAAAA,GACIA,EAAOljB,KAAOI,EAAKyjQ,MACnB3gP,EAAO+yR,qBAQnB,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAO71S,KAAKkyO,WAK7B,IAAA,SAAazsO,GACTzF,KAAKkyO,UAAY5f,GAAsB7sN,KAM3C,CAAA,IAAA,QAAA,IAAA,WAEI,IAAMsyD,EAAW/3D,KAAKktU,gBAAkBltU,KAAKktU,gBAAgBn1Q,SAAW,GACxE,OAAI/3D,KAAKqvQ,SACEt3M,EAAShjD,KAIhB+N,SAAAA,GAAAA,OAAUA,EAAOrd,SAEdsyD,EAAS,GAAKA,EAAS,GAAGtyD,WAAAA,GAMrC,IAAA,SAAUqtD,GACN9yD,KAAK8tU,qBAAqBh7Q,GAC1B9yD,KAAKi4S,YAAY/pL,KAAKluH,KAAKyF,SAM/B,CAAA,IAAA,WAAA,IAAA,WAEI,IAAMsyD,EAAW/3D,KAAKktU,gBAAkBltU,KAAKktU,gBAAgBn1Q,SAAW,GACxE,OAAO/3D,KAAKqvQ,SAAWt3M,EAAYA,EAAS,IAAM,OAMtD,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAO/3D,KAAKq2N,WAK7B,IAAA,SAAa5wN,GACTzF,KAAKq2N,UAAY/D,GAAsB7sN,KAM3C,CAAA,IAAA,WAAA,IAAA,WAAiB,OAAOzF,KAAK2vO,WAK7B,IAAA,SAAalqO,GACTzF,KAAK2vO,UAAYrd,GAAsB7sN,GACnCzF,KAAKm3U,gBACLn3U,KAAKm3U,eAAex/T,SAIpBmL,SAAAA,GAAAA,OAAUA,EAAO+yR,uBAMzB,EA5IEwgC,IAoVezzM,UAAO,SAAsC5oI,GAAK,OAAO,IAAKA,GAAKq8U,IAAsB,GAAyB,IAA2B,GAAyBU,GAAmC,KAC9NV,GAAqBj0M,UAAO,GAAyB,CAAEj3H,KAAMkrU,GAAsB33S,UAAW,CAAC,CAAC,4BAA6B8nG,eAAgB,SAA6C+b,EAAInmI,EAAK6mI,GAG3L,IAAI4tH,EAH4M,EAALtuH,GAC3M,GAAsBU,EAAU,IAAA,GACzB,EAALV,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAI+6T,eAAiBtmE,IACzEtqI,UAAW,CAAC,OAAQ,QAAS,EAAG,2BAA4BD,SAAU,EAAGD,aAAc,SAA2Ckc,EAAInmI,GAAgB,EAALmmI,IAClJ,GAAmB,gBAAiBnmI,EAAIo1L,UACxC,GAAmB,6BAA8Bp1L,EAAIq9R,SAArD,CAA+D,8CAAkE,aAAnBr9R,EAAI+nT,cACjH19L,OAAQ,CAAE09L,WAAY,aAAcvkU,KAAM,OAAQ65S,SAAU,WAAYh0S,MAAO,QAAS4pQ,SAAU,WAAY79D,SAAU,YAAc9qE,QAAS,CAAEuxK,YAAa,cAAerpM,OAAQ,UAAY+3B,SAAU,CAAC,wBAAyBrrH,SAAU,CAAC,GAA0B,CACvQ07T,GACA,CAAE3zM,QAAS4zM,GAA8B3gL,YAAa+/K,SAXlEA,IA2KMmB,GAA4BltE,IAH5BmtE,SAAAA,IAAAA,gBAAAA,KAAAA,MAGN,KAIMjB,GAAAA,SAAAA,GAAAA,UAAAA,EAAAA,GAAAA,IAAAA,EAAAA,aAAAA,GASF,SAAA,EAAYkB,EAAa9oE,EAAoBr+D,EAAaggE,EAE1D9F,EAAiBxzB,GAAAA,IAAAA,EAAAA,gBAAAA,KAAAA,IACb78G,EAAAA,EAAAA,KAAAA,OACKw0I,mBAAqBA,EAC1B5uQ,EAAKuwM,YAAcA,EACnBvwM,EAAKuwQ,cAAgBA,EACrBvwQ,EAAK23U,mBAAAA,EACL33U,EAAKu2S,UAAAA,EAILv2S,EAAKg3S,eAAiB,KACtBh3S,EAAK2vO,WAAAA,EAIL3vO,EAAK4uG,OAAS,IAAI,GAElB,IAAMgpO,EAAiBpyT,OAAOilP,GAjBjBxzB,OAkBbj3O,EAAK00O,SAAYkjG,GAAqC,IAAnBA,EAAwBA,EAAiB,KAC5E53U,EAAK63U,kBAAoBH,EACzB13U,EAAKmkU,WACDltF,GAAkBA,EAAektF,WAAaltF,EAAektF,WAAa,WArBjEltF,EA+EjB,OApDA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAsDI,IAAM34L,EAAQt+C,KAAK63U,kBACnB73U,KAAK23U,kBAAoBr5R,IAAUA,EAAM+wN,SACzCrvQ,KAAK83U,MAAQ93U,KAAK23U,kBAAoB,QAAU,WAChD33U,KAAKyR,GAAKzR,KAAKyR,IAALzR,qBAAAA,OAAgC,MACtCA,KAAK23U,oBACL33U,KAAKJ,KAAO0+C,EAAM1+C,MAElB0+C,IACIA,EAAMy5R,cAAc/3U,MACpBA,KAAK2wM,SAAAA,EAEAryJ,EAAM05R,YAAYh4U,QAAUA,KAAKu2S,UAKtCj4P,EAAM25R,kBAAkBj4U,KAAMA,KAAKu2S,WAG3Cv2S,KAAKuwQ,cAAcI,QAAQ3wQ,KAAKuwM,aAAAA,KAKpC,CAAA,IAAA,cAAA,MAAA,WAEI,IAAMjyJ,EAAQt+C,KAAK63U,kBACnB73U,KAAKuwQ,cAAcn3B,eAAep5O,KAAKuwM,aAGnCjyJ,GAASA,EAAM05R,YAAYh4U,OAC3Bs+C,EAAM25R,kBAAkBj4U,MAAAA,GAAM,GAAO,KAQ7C,CAAA,IAAA,QAAA,MAAA,SAAM0V,GACF1V,KAAKk4U,eAAe3tK,cAAc1uG,MAAMnmD,KAM5C,CAAA,IAAA,iBAAA,MAAA,WAEI,IAAMyiU,IAAan4U,KAAK23U,oBAA4B33U,KAAKu2S,SACrD4hC,IAAen4U,KAAKu2S,WACpBv2S,KAAKu2S,SAAW4hC,EACZn4U,KAAK63U,oBACL73U,KAAK63U,kBAAkBI,kBAAkBj4U,KAAMA,KAAKu2S,UAAAA,GACpDv2S,KAAK63U,kBAAkBnX,eAI/B1gU,KAAK4uG,OAAOsf,KAAK,IAAIgpN,GAAsBl3U,KAAMA,KAAKyF,UAQ1D,CAAA,IAAA,gBAAA,MAAA,WAGIzF,KAAK4uQ,mBAAmB9yE,iBAAAA,CAAAA,IAAAA,WAAAA,IAAAA,WA1HX,MAAA,GAAA,OAAU97L,KAAKyR,GAAf,aAKjB,CAAA,IAAA,aAAA,IAAA,WACI,OAAOzR,KAAK63U,kBAAoB73U,KAAK63U,kBAAkB1T,WAAankU,KAAKopU,aAM7E,IAAA,SAAe3jU,GACXzF,KAAKopU,YAAc3jU,IAMvB,CAAA,IAAA,UAAA,IAAA,WACI,OAAOzF,KAAK63U,kBAAoB73U,KAAK63U,kBAAkBG,YAAYh4U,MAAQA,KAAKu2S,UAMpF,IAAA,SAAY9wS,GAER,IAAMqtD,EAAWw/J,GAAsB7sN,GACnCqtD,IAAa9yD,KAAKu2S,WAClBv2S,KAAKu2S,SAAWzjP,EACZ9yD,KAAK63U,mBACL73U,KAAK63U,kBAAkBI,kBAAkBj4U,KAAMA,KAAKu2S,UAExDv2S,KAAK4uQ,mBAAmB9yE,kBAOhC,CAAA,IAAA,WAAA,IAAA,WACI,OAAO97L,KAAK2vO,WAAc3vO,KAAK63U,mBAAqB73U,KAAK63U,kBAAkBrmI,UAM/E,IAAA,SAAa/rM,GAASzF,KAAK2vO,UAAYrd,GAAsB7sN,OAI7D,EA1FE+wU,CAAwBgB,KAmKd50M,UAAO,SAAiC5oI,GAAK,OAAO,IAAKA,GAAKw8U,IAAiB,GAAyB,GAAsB,GAAI,GAAyB,IAA2B,GAAyB,IAAoB,GAAyB,IAAsB,GAAyB,YAAa,GAAyBO,GAAmC,KACpYP,GAAgBt0M,UAAO,GAAyB,CAAE/2H,KAAMqrU,GAAiB93S,UAAW,CAAC,CAAC,sBAAuBqpG,UAAW,SAA+Bwa,EAAInmI,GAGnJ,IAAIy0P,EAH+J,EAALtuH,GAC9J,GAAmB,IAAA,GACZ,EAALA,GAEF,GAAsBsuH,EAAK,QAA0Bz0P,EAAI87T,eAAiBrnE,EAAGx1G,QAC5E90B,UAAW,CAAC,EAAG,qBAAsBD,SAAU,GAAID,aAAc,SAAsCkc,EAAInmI,GAAgB,EAALmmI,GACvH,GAAkB,SAAS,WAAsD,OAAOnmI,EAAIy/C,WACrF,EAAL0mF,IACF,GAAmB,YAAY,EAA/B,CAAsC,KAAMnmI,EAAI3K,GAAhD,CAAoD,OAAQ,MAC5D,GAAmB,gCAAiC2K,EAAIy7T,kBAAxD,CAA2E,4BAA6Bz7T,EAAIu0L,QAA5G,CAAqH,6BAA8Bv0L,EAAIo1L,SAAvJ,CAAiK,wCAA4D,aAAnBp1L,EAAI+nT,cAC7M19L,OAAQ,CAAE6oI,cAAe,gBAAiB0nC,eAAgB,CAAC,kBAAmB,kBAAmBtiE,SAAU,WAAYyvF,WAAY,aAAcxzH,QAAS,UAAWa,SAAU,WAAY//L,GAAI,KAAM7R,KAAM,OAAQ+xO,UAAW,CAAC,aAAc,aAAclsO,MAAO,SAAWihI,QAAS,CAAE93B,OAAQ,UAAY+3B,SAAU,CAAC,mBAAoBrrH,SAAU,CAAC,IAAoC8qH,mBAAoB,GAAKJ,MAAO,EAAGC,KAAM,EAAGE,OAAQ,CAAC,CAAC,OAAQ,SAAU,EAAG,2BAA4B,sBAAuB,EAAG,KAAM,WAAY,SAAU,CAAC,SAAU,IAAK,CAAC,EAAG,mCAAoC,CAAC,EAAG,mCAAoC,CAAC,YAAa,GAAI,EAAG,2BAA4B,EAAG,mBAAoB,sBAAuBD,SAAU,SAAkCqc,EAAInmI,GAUzwB,GAVyxB,EAALmmI,IAClxB,KACA,GAAsB,EAAG,SAAU,EAAG,GACtC,GAAkB,SAAS,WAA8D,OAAOnmI,EAAIg8T,oBACpG,GAAsB,EAAG,MAAO,GAChC,GAAoB,GACpB,KACA,KACA,GAAiB,EAAG,MAAO,GAC3B,GAAiB,EAAG,MAAO,IACpB,EAAL71L,EAAQ,CACV,IAAM80J,EAAM,GAAmB,GAC/B,GAAkB,KAAMj7R,EAAIi8T,SAA5B,CAAsC,WAAYj8T,EAAIo1L,UAAY,MAClE,GAAmB,WAAYp1L,EAAIo1L,UAAW,EAAQp1L,EAAIs4N,SAA1D,CAAoE,eAAgBt4N,EAAIu0L,QAAxF,CAAiG,OAAQv0L,EAAIxc,MAAQ,KAArH,CAA2H,aAAcwc,EAAIu1N,UAA7I,CAAwJ,kBAAmBv1N,EAAI46R,gBAC/K,GAAiB,GACjB,GAAkB,mBAAoBK,EAAtC,CAA2C,oBAAqBj7R,EAAIkzP,eAAiBlzP,EAAIo1L,YACxF7tD,WAAY,CAAC,IAAmBhvH,OAAQ,CAAC,+wFAAgxFqzG,cAAe,EAAGJ,gBAAiB,IA3Br2F4uM,IAAAA,KAmNMD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEgB/zM,UAAO,GAAwB,CAAEr3H,KAAMorU,KAC7DA,GAAsB51M,UAAO,GAAwB,CAAErrH,QAAS,SAAuCtb,GAAK,OAAO,IAAKA,GAAKu8U,KAA6Bt2M,QAAS,CAAC,CAAC,GAAiB,IAAkB,MADxMs2M,ICp8BO,KAAMD,GAAN,WACH,SAAA,EACWl4R,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,aAAAA,EAFR,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,eAAA,MAAA,SAKiB36C,GAChBzD,KAAKo+C,aAAay6J,KAAKiF,WAAW,CAC9BrpH,UAAWhxF,EAAEgC,MAAM7D,QAAQ,cAAgB,EAC3C+yF,YAAalxF,EAAEgC,MAAM7D,QAAQ,gBAAkB,EAC/C2P,UAAW9N,EAAEgC,MAAM7D,QAAQ,WAAa,EAAI,SAAW,eAT5D,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM00U,IAA2B,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA3BA,GAA2B,UAAA,CAAA,CAAA,yBAAA,MAAA,GAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,aAAA,CAAA,kBAAA,YAAA,aAAA,aAAA,EAAA,oBAAA,CAAA,QAAA,QAAA,CAAA,UAAA,qBAAA,CAAA,QAAA,UAAA,CAAA,UAAA,uBAAA,CAAA,QAAA,SAAA,CAAA,UAAA,sBAAA,CAAA,aAAA,aAAA,EAAA,WAAA,UAAA,CAAA,QAAA,YAAA,EAAA,WAAA,CAAA,UAAA,qBAAA,CAAA,QAAA,cAAA,EAAA,WAAA,CAAA,UAAA,wBAAA,CAAA,QAAA,SAAA,EAAA,WAAA,CAAA,UAAA,iBAAA,CAAA,kBAAA,eAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IKXxC,GAAA,EAAA,GACI,GAAA,EAAA,0BAAA,GACI,GAAA,EAAA,oBAAA,GAAgC,GAAA,EAAA,WAAA,GAAiD,KACjF,GAAA,EAAA,oBAAA,GAAkC,GAAA,EAAA,WAAA,GAAmD,KACrF,GAAA,EAAA,oBAAA,GAAiC,GAAA,EAAA,WAAA,GAAkD,KACvF,KAEA,GAAA,EAAA,0BAAA,GAAmE,GAAA,UAAA,SAAA,GAAA,OAAU,EAAAgC,aAAA,MACzE,GAAA,EAAA,oBAAA,GAA0F,GAAA,GAAA,WAAA,IAAiD,KAC3I,GAAA,GAAA,oBAAA,IAA8F,GAAA,GAAA,WAAA,IAAoD,KAClJ,GAAA,GAAA,oBAAA,IAAoG,GAAA,GAAA,WAAA,IAA6C,KACrJ,KAEA,GAAA,GAAA,qBAAA,IACJ,MLHwC,EAAA,IKX1B,GAAA,YAAA,EAAA,aAAA,MAOuC,GAAA,GAAA,GAAA,YAAA,GAC1B,GAAA,GAAA,GAAA,UAAA,EAAA,aAAA,KAAA,IAAA,aAAA,OACA,GAAA,GAAA,GAAA,UAAA,EAAA,aAAA,KAAA,IAAA,eAAA,OACA,GAAA,GAAA,GAAA,UAAA,WAAA,EAAA,aAAA,KAAA,IAAA,aAAA,SAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,6HAAA,cAAA,EAAA,gBAAA,IAAA,ILCpB,GAAA,CAAA,KCDA,KAAM7B,GAET,SAAA,EAAmBr4R,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,aAAAA,IAFhB,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMq4R,IAA4B,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA5BA,GAA4B,UAAA,CAAA,CAAA,0BAAA,OAAA,CAAA,YAAA,eAAA,mBAAA,GAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,gBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IAAA,KKVzC,GAAA,EAAA,eAAA,GACI,GAAA,GACJ,MLQyC,EAAA,GKV3B,GAAA,cAAA,EAAA,aAAA,KAAA,IAAA,EAAA,eAAA,WAAA,CAAA,GAAA,GAAA,IAAA,OAAA,CAAA,yFAAA,cAAA,EAAA,gBAAA,IAAA,ILUP,GAAA,CAAA,qBEEA,KAAME,GAAN,WAGH,SAAA,EACY5hD,EACD32O,GAAAA,gBAAAA,KAAAA,GADC,KAAA22O,aAAAA,EACD,KAAA32O,aAAAA,EALR,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WAQI,IAAA,EAAA,KACHp+C,KAAK+0R,aAAa9yR,KAAK,GAA2B,CAAC4kB,SAAUq4S,GAAiB18T,OAAQxC,KAAKu/T,oBACtFC,eAAej/T,WAAU06B,SAAAA,GACtBj7B,EAAKo+C,aAAay6J,KAAKh2L,IAAI,gBAAgBi7L,WAAW7iL,UAX/D,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM07S,IAAoB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAApBA,GAAoB,UAAA,CAAA,CAAA,2BAAA,UAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAA,GAAA,IAAA,EACWrsK,IADX,EAAA,GAAA,GAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,MAAA,GAAA,KAAA,EAAA,OAAA,CAAA,CAAA,kBAAA,GAAA,EAAA,sBAAA,sBAAA,EAAA,SAAA,CAAA,oBAAA,IAAA,CAAA,UAAA,sBAAA,CAAA,EAAA,aAAA,CAAA,EAAA,oBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,MAAA,IAAA,MAAA,KAAA,kBAAA,QAAA,CAAA,MAAA,IAAA,MAAA,KAAA,kBAAA,WAAA,CAAA,MAAA,IAAA,MAAA,KAAA,kBAAA,YAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IIZjC,GAAA,EAAA,SAAA,EAAA,GAAwE,GAAA,SAAA,WAAA,OAAS,EAAA6uJ,qBAC7E,GAAA,EAAA,WAAA,GACJ,KACA,GAAA,EAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,QAAI,KACpC,GAAA,EAAA,aAAA,GACJ,KACA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAgC,GAAA,GAAA,YAAQ,KACxC,GAAA,GAAA,aAAA,GACJ,KACA,GAAA,GAAA,MAAA,GACI,GAAA,GAAA,MAAA,GAAgC,GAAA,GAAA,YAAQ,KACxC,GAAA,GAAA,aAAA,GACJ,KACJ,MAAA,EAAA,IAbc,GAAA,GAAA,GAAA,YAAA,EAAA,aAAA,KAAA,IAAA,aAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,kLAAA,cAAA,IAAA,ILOP,KAAMud,GACT,SAAA,EAAmBt4R,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,aAAAA,IADhB,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMs4R,IAA8B,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA9BA,GAA8B,UAAA,CAAA,CAAA,4BAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,aAAA,CAAA,kBAAA,UAAA,CAAA,EAAA,oBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,MAAA,IAAA,MAAA,KAAA,OAAA,IAAA,kBAAA,gBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IMV3C,GAAA,EAAA,GACI,GAAA,EAAA,eAAA,GAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,iBAAa,KAC7C,GAAA,EAAA,aAAA,GACJ,KACJ,MNG2C,EAAA,GMV7B,GAAA,YAAA,EAAA,aAAA,OAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,+JAAA,cAAA,EAAA,gBAAA,IAAA,ILYP,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KMPP,GAAA,EAAA,MAAA,GAEK,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,UAAA,OAAA,KAAA,gBAAA,MACD,GAAA,EAAA,MAAA,GACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAAA,EAAA,KAD0B,GAAA,GAAA,GAAA,mBAAA,EAAA,kBAAA,GAAA,KCMnB,IAAM6B,GAAN,KAAMA,GAAN,WAGH,SAAA,EACWn6R,EACCgmK,EACAvnE,EACA6hK,EACAtrB,GAAAA,gBAAAA,KAAAA,GAJD,KAAAh1O,aAAAA,EACC,KAAAgmK,SAAAA,EACA,KAAAvnE,UAAAA,EACA,KAAA6hK,SAAAA,EACA,KAAAtrB,WAAAA,EAPL,KAAAolD,gBAAkB/xU,MAAM8tE,KAAK9tE,MAAM,IAAIjB,QAD3C,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,oBAAA,MAAA,SAWsByb,GACrB,OAAOjhB,KAAK68I,UAAU47L,yBAClB,OAASz4U,KAAK04U,cAAcz3T,GAAS,OAb1C,CAAA,IAAA,gBAAA,MAAA,SAiBmBA,GAClB,OAAOjhB,KAAKokN,SAAS+F,YAAY,mBAAqBlpM,EAAQ,QAAA,KAlB/D,CAAA,IAAA,kBAAA,MAAA,SAqBoBA,GACnBjhB,KAAK0+S,SAASi6B,YAAY34U,KAAK04U,cAAcz3T,MAtB9C,CAAA,IAAA,mBAAA,MAAA,WAyBI,IAAA,EAAA,KACHjhB,KAAKozR,WAAWwlD,mBAAmBlpU,MAAKvT,SAAAA,GACpC6D,EAAK0+S,SAASi6B,YAAYx8U,UA3B/B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMo8U,IAA8B,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA9BA,GAA8B,UAAA,CAAA,CAAA,4BAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,SAAA,CAAA,UAAA,oBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,QAAA,4BAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,UAAA,oBAAA,EAAA,SAAA,CAAA,EAAA,aAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDd3C,GAAA,EAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAS,EAAAhlD,sBACpC,GAAA,EAAA,WAAA,GACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,UAAM,KAC1C,KAEA,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,ICS2C,EAAA,IDRtC,GAAA,GAAA,GAAA,UAAA,EAAA,mBAAA,WAAA,CAAA,GAAA,GAAA,IAAA,OAAA,CAAA,+GAAA,cAAA,EAAA,gBAAA,IAAA,ICQE,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KCdP,GAAA,EAAA,MAAA,GAEK,GAAA,SAAA,WAAA,GAAA,GAAA,IAAA,EAAA,EAAA,MAAA,OAAA,KAAA,iBAAA,MACD,GAAA,EAAA,MAAA,GACJ,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,MAAA,EAAA,KAD0B,GAAA,GAAA,GAAA,mBAAA,EAAA,mBAAA,EAAA,GAAA,KCWnB,ICJMslD,GDIAC,GAAN,KAAMA,GAAN,WAGH,SAAA,EACW16R,EACCgmK,EACAvnE,EACA6hK,GAAAA,gBAAAA,KAAAA,GAHD,KAAAtgQ,aAAAA,EACC,KAAAgmK,SAAAA,EACA,KAAAvnE,UAAAA,EACA,KAAA6hK,SAAAA,EANL,KAAAq6B,iBAAmBviD,GADvB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,qBAAA,MAAA,SAUuBv1Q,GACtB,OAAOjhB,KAAK68I,UAAU47L,yBAClB,OAASz4U,KAAKg5U,eAAe/3T,GAAS,OAZ3C,CAAA,IAAA,iBAAA,MAAA,SAgBoBA,GACnB,OAAOjhB,KAAKokN,SAAS+F,YAAY,oBAAsBlpM,EAAQ,QAAA,KAjBhE,CAAA,IAAA,mBAAA,MAAA,SAoBqBA,GACpBjhB,KAAK0+S,SAASu6B,aAAah4T,OArB5B,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM63T,IAA+B,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA/BA,GAA+B,UAAA,CAAA,CAAA,6BAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,QAAA,sCAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,WAAA,oBAAA,WAAA,EAAA,SAAA,CAAA,EAAA,aAAA,SAAA,SAAA,EAAA,GAAA,EAAA,GDd5C,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GCc4C,EAAA,GDbvC,GAAA,UAAA,EAAA,mBAAA,WAAA,CAAA,IAAA,OAAA,CAAA,IAAA,cAAA,EAAA,gBAAA,IAAA,IESE,KAAMD,GACT,SAAA,EAAmBz6R,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,aAAAA,IADhB,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMy6R,IAAqB,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAArBA,GAAqB,UAAA,CAAA,CAAA,4BAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,MAAA,MAAA,MAAA,IAAA,OAAA,MAAA,EAAA,gBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ICVlC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,WAAO,KACvC,GAAA,EAAA,aAAA,GACJ,MDOkC,EAAA,ICRW,GAAA,GAAA,GAAA,cAAA,EAAA,aAAA,KAAA,IAAA,cAAA,WAAA,CAAA,GAAA,GAAA,GAAA,IAAA,OAAA,CAAA,IAAA,cAAA,EAAA,gBAAA,IAAA,IFYtC,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KGbH,GAAA,EAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,UAAmB,gBAC9C,GAAA,EAAA,WAAA,IACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,cAAU,KAC9C,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAYA,GAAA,GACI,GAAA,EAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,UAAmB,cAC9C,GAAA,EAAA,WAAA,IACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,WAAO,KAC3C,KAEA,GAAA,EAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,UAAmB,iBAC9C,GAAA,EAAA,WAAA,IACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,cAAU,KAC9C,KACJ,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAOA,GAAA,EAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,UAAmB,eAC9C,GAAA,EAAA,WAAA,IACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,YAAQ,KAC5C,MAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAOA,GAAA,EAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAA,kBAC3B,GAAA,EAAA,WAAA,IACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,WAAO,KAC3C,MAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAIA,GAAA,EAAA,uBAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,IACA,GAAA,EAAA,wBAAA,IAAmG,GAAA,EAAA,SAAK,MAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACxG,GAAA,EAAA,yBAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACA,GAAA,EAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,IACA,GAAA,EAAA,wBAAA,IAAmH,GAAA,EAAA,oBAAgB,MAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACnI,GAAA,EAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACA,GAAA,EAAA,2BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACA,GAAA,EAAA,0BAAA,GCpCG,IAAMK,GAAN,KAAMA,GAAN,WAOH,SAAA,EACW96R,EACGojE,EACAqO,EACAujK,EACAl3Q,GAAAA,gBAAAA,KAAAA,GAJH,KAAAkiC,aAAAA,EACG,KAAAojE,QAAAA,EACA,KAAAqO,MAAAA,EACA,KAAAujK,WAAAA,EACA,KAAAl3Q,OAAAA,EAZX,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAeH,IAAA,EAAA,KACIlc,KAAKiZ,aAAejZ,KAAKo+C,aAAawnK,cACjCvhN,KAAKu5L,GAAK,IACVr9L,WAAU,WACPP,EAAK6vH,MAAMi+D,SAAS,IAAIyhB,SAnBjC,CAAA,IAAA,cAAA,MAAA,WAwBCvvM,KAAKiZ,aAAatY,gBAxBnB,CAAA,IAAA,YAAA,MAAA,SA2Bcf,GACbI,KAAK6vH,MAAMi+D,SAAS,IAAIwhB,GAAwB1vM,MA5BjD,CAAA,IAAA,eAAA,MAAA,WA+BI,IAAA,EAAA,KACHI,KAAKozR,WAAWwlD,mBAAmBlpU,MAAKvT,SAAAA,GACnC6D,EAAKo+C,aAAav7B,MAAgBk6D,OAAO5gF,GAAM,WAC5C6D,EAAKkc,OAAO6kC,mBAlCrB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMm4R,IAA6B,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAA7BA,GAA6B,UAAA,CAAA,CAAA,2BAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,GAAA,KAAA,GAAA,OAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,QAAA,oBAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,oBAAA,EAAA,SAAA,CAAA,UAAA,gBAAA,CAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,UAAA,iBAAA,CAAA,EAAA,QAAA,CAAA,UAAA,kBAAA,CAAA,UAAA,kBAAA,CAAA,EAAA,YAAA,CAAA,QAAA,qBAAA,EAAA,gBAAA,CAAA,QAAA,qBAAA,cAAA,OAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,QAAA,qBAAA,cAAA,kBAAA,QAAA,GAAA,EAAA,gBAAA,CAAA,UAAA,uBAAA,CAAA,UAAA,kBAAA,CAAA,UAAA,qBAAA,CAAA,UAAA,mBAAA,CAAA,UAAA,iBAAA,CAAA,cAAA,OAAA,QAAA,GAAA,EAAA,sBAAA,CAAA,cAAA,kBAAA,QAAA,GAAA,EAAA,uBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDrB1C,GAAA,EAAA,MAAA,GAAA,GAAA,EAAA,SACI,GAAA,EAAA,GAAA,EAAA,EAAA,MAAA,GADJ,GAAA,EAAA,SAMI,GAAA,EAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAS,EAAAhsB,UAAU,YAC9C,GAAA,EAAA,WAAA,GACA,GAAA,EAAA,MAAA,GAAgC,GAAA,EAAA,SAAK,KACzC,KAEA,GAAA,EAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAS,EAAAA,UAAU,aAC9C,GAAA,EAAA,WAAA,GACA,GAAA,GAAA,MAAA,GAAgC,GAAA,GAAA,UAAM,KAC1C,KAEA,GAAA,GAAA,GAAA,EAAA,EAAA,eAAA,GAhBJ,GAAA,GAAA,SA4BI,GAAA,GAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAS,EAAAA,UAAU,cAC9C,GAAA,GAAA,WAAA,GACA,GAAA,GAAA,MAAA,GAAgC,GAAA,GAAA,WAAO,KAC3C,KAEA,GAAA,GAAA,GAAA,EAAA,EAAA,MAAA,GAjCJ,GAAA,GAAA,SAsCI,GAAA,GAAA,MAAA,GAA+B,GAAA,SAAA,WAAA,OAAS,EAAAA,UAAU,cAC9C,GAAA,GAAA,WAAA,GACA,GAAA,GAAA,MAAA,GAAgC,GAAA,GAAA,WAAO,KAC3C,KAEA,GAAA,GAAA,GAAA,EAAA,EAAA,MAAA,GA3CJ,GAAA,GAAA,SA+CA,KAEA,GAAA,GAAA,GAjDA,GAAA,GAAA,SAkDI,GAAA,GAAA,GAAA,EAAA,EAAA,uBAAA,IACA,GAAA,GAAA,GAAA,EAAA,EAAA,wBAAA,IACA,GAAA,GAAA,GAAA,EAAA,EAAA,yBAAA,IACA,GAAA,GAAA,GAAA,EAAA,EAAA,0BAAA,IACA,GAAA,GAAA,GAAA,EAAA,EAAA,wBAAA,IACA,GAAA,GAAA,GAAA,EAAA,EAAA,0BAAA,IACA,GAAA,GAAA,GAAA,EAAA,EAAA,2BAAA,IACA,GAAA,GAAA,GAAA,EAAA,EAAA,0BAAA,IACJ,MCrC0C,EAAA,IDrBV,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,eACoC,GAAA,GAAA,GAAA,OAAA,GAAA,EAAA,GAAA,EAAA,mBAelD,GAAA,IAAA,GAAA,QAAA,GAAA,GAAA,GAAA,EAAA,kBAiBiD,GAAA,GAAA,GAAA,QAAA,GAAA,GAAA,GAAA,EAAA,kBAUP,GAAA,GAAA,GAAA,OAAA,GAAA,GAAA,GAAA,EAAA,oBAM9C,GAAA,GAAA,GAAA,WAAA,GAAA,GAAA,GAAA,EAAA,eACuC,GAAA,GAAA,GAAA,eAAA,aACC,GAAA,GAAA,GAAA,eAAA,SACC,GAAA,GAAA,GAAA,eAAA,UACC,GAAA,GAAA,GAAA,eAAA,WACF,GAAA,GAAA,GAAA,eAAA,cACE,GAAA,GAAA,GAAA,eAAA,WACC,GAAA,GAAA,GAAA,eAAA,YACD,GAAA,GAAA,GAAA,eAAA,aAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,6FAAA,cAAA,EAAA,gBAAA,ICnClB,GAAA,CAAjCt+G,GAAO,GAAa6rE,aAAa,GAAA,cAAc,IAAd,GAAA,UAAA,oBAAA,GACG,GAAA,CAApC7rE,GAAO,GAAYq2E,iBAAiB,GAAA,cAAkB,IAAlB,GAAA,UAAA,wBAAA,GACD,GAAA,CAAnCr2E,GAAO,GAAYs2E,gBAAgB,GAAA,cAAiB,IAAjB,GAAA,UAAA,uBAAA,GACE,GAAA,CAArCt2E,GAAO,GAAYu2E,kBAAkB,GAAA,cAAmB,IAAnB,GAAA,UAAA,yBAAA,GAAA,IAJnC,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KCpBH,GAAA,EAAA,SAAA,GAA6D,GAAA,SAAA,SAAA,GAAA,OAAA,GAAA,GAAA,EAAA,UAAS,OAAA,MAClE,GAAA,EAAA,gBAAA,GACA,GAAA,EAAA,OAAA,GAAsC,GAAA,GAAa,KACvD,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,UAFmB,GAAA,GAAA,GAAA,MAAA,EAAA,WACuB,GAAA,GAAA,GAAA,EAAA,OCYvC,IAAMg0D,GAAN,KAAMA,GAIT,SAAA,EACYlwU,EACA4mH,GAAAA,gBAAAA,KAAAA,GADA,KAAA5mH,OAAAA,EACA,KAAA4mH,MAAAA,EAJL,KAAAm5D,MAA+D,GAQlEhpL,KAAKgpL,MAAQhpL,KAAKiJ,OAAO4Z,IAAI,4BAA6B,IAAe,WAV1E,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMs2T,IAAqB,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAArBA,GAAqB,UAAA,CAAA,CAAA,kBAAA,UAAA,CAAA,EAAA,mBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,sBAAA,CAAA,QAAA,oBAAA,EAAA,QAAA,EAAA,QAAA,WAAA,CAAA,EAAA,oBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,CAAA,QAAA,GAAA,EAAA,OAAA,iBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IDflC,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,SAAA,GAIJ,MCUkC,EAAA,IDdI,GAAA,GAAA,GAAA,UAAA,EAAA,SAAA,WAAA,CAAA,GAAA,GAAA,IAAA,OAAA,CAAA,IAAA,cAAA,EAAA,gBAAA,ICeD,GAAA,CAAhCvqI,GAAO,GAAY6rE,aAAa,GAAA,cAAY,IAAZ,GAAA,UAAA,kBAAA,GAAA,IAD9B,SAAA,GAAA,EAAA,GAAA,EAAA,GCdH,GAAA,EAAA,kBAAA,EAAA,GAAqD,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,IAI7C,GAAA,EAAA,OAAA,IAA+C,GAAA,EAAA,UAAM,MAAA,SAAA,GAAA,EAAA,GAAA,EAAA,IACjC,GAAA,EAAA,OAAA,IAAY,GAAA,EAAA,SAAK,MAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAIrC,GAAA,EAAA,iBAAA,EAAA,GAAwC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACxC,GAAA,EAAA,iBAAA,EAAA,GAAwC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACxC,GAAA,EAAA,oBAAA,EAAA,GAA8C,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAC9C,GAAA,EAAA,eAAA,EAAA,GAAoC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACpC,GAAA,EAAA,eAAA,EAAA,GAAoC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACpC,GAAA,EAAA,eAAA,EAAA,GAAoC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACpC,GAAA,EAAA,iBAAA,EAAA,GAAwC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACxC,GAAA,EAAA,mBAAA,EAAA,GAA4C,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAC5C,GAAA,EAAA,gBAAA,EAAA,GAAwC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACxC,GAAA,EAAA,gBAAA,EAAA,GAAsC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACtC,GAAA,EAAA,4BAAA,EAAA,GAAuD,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACvD,GAAA,EAAA,0BAAA,EAAA,GAAyD,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GACzD,GAAA,EAAA,iBAAA,EAAA,GAAgC,GAAA,0BAAA,GAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAtB5C,GAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,GAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GAAgD,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAAS2+D,YAAA,mBACrD,GAAA,EAAA,GAAA,EAAA,EAAA,OAAA,GALZ,GAAA,EAAA,SAMY,GAAA,EAAA,GAAA,EAAA,EAAA,cAAA,KAAA,EAAA,IACJ,KAEA,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,GAAA,EAAA,EAAA,gBAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,gBAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,mBAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,cAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,cAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,cAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,gBAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,kBAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,eAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,eAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,2BAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,yBAAA,GACA,GAAA,GAAA,GAAA,EAAA,EAAA,gBAAA,GACJ,KAEA,GAAA,GAAA,SAAA,GAA8D,GAAA,SAAA,WAAA,OAAA,GAAA,GAAA,KAASA,YAAA,kBAzB/E,GAAA,GAAA,SAyBgJ,GAAA,GAAA,SAAK,KACjJ,KAEA,GAAA,GAAA,2BAAA,GA5BJ,GAAA,GAAA,SAAA,GAAA,GAAA,SA4ByG,KACzG,KAAA,GAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,KAAA,EAAA,GAAA,GAAA,EAAA,KA5BoB,GAAA,GAAA,GAAA,OAAA,eAAA,GAE2C,GAAA,GAAA,GAAA,SAAA,eAAA,GAAzB,GAAA,WAAA,GAEd,GAAA,GAAA,GAAA,OAAA,GAAA,EAAA,GAAA,EAAA,QAAA,CAAkC,WAAA,GAIN,GAAA,GAAA,GAAA,aAAA,GACzB,GAAA,GAAA,GAAA,eAAA,UACA,GAAA,GAAA,GAAA,eAAA,UACG,GAAA,GAAA,GAAA,eAAA,aACL,GAAA,GAAA,GAAA,eAAA,QACA,GAAA,GAAA,GAAA,eAAA,QACA,GAAA,GAAA,GAAA,eAAA,QACE,GAAA,GAAA,GAAA,eAAA,UACE,GAAA,GAAA,GAAA,eAAA,YACH,GAAA,GAAA,GAAA,eAAA,WACA,GAAA,GAAA,GAAA,eAAA,SACY,GAAA,GAAA,GAAA,eAAA,cACF,GAAA,GAAA,GAAA,eAAA,kBAIuE,GAAA,GAAA,GAAA,YAAA,GAAA,GAAA,GAAA,EAAA,SAG7E,GAAA,GAAA,GAAA,UAAA,GAAA,GAAA,GAAA,EAAA,eAAuC,GAAA,aAAA,GAAA,GAAA,GAAA,EAAA,gBCE9D,IAAMC,GAAN,KAAMA,GAMT,SAAA,EACW78H,EACAp+J,EACAg0N,EACAgnE,GAAAA,gBAAAA,KAAAA,GAHA,KAAA58H,SAAAA,EACA,KAAAp+J,aAAAA,EACA,KAAAg0N,YAAAA,EACA,KAAAgnE,YAAAA,EAEPp5U,KAAKs5U,aAAet5U,KAAKoyQ,YAAYjyP,QAAQ,sBACxC9b,KAAK0Q,GAAIrR,SAAAA,GAAAA,OAAUA,EAAOgiJ,cAbhC,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM2zL,IAAuB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAvBA,GAAuB,UAAA,CAAA,CAAA,oBAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,CAAA,EAAA,uBAAA,EAAA,YAAA,CAAA,oBAAA,GAAA,QAAA,GAAA,EAAA,gBAAA,EAAA,SAAA,CAAA,QAAA,GAAA,EAAA,OAAA,YAAA,CAAA,QAAA,IAAA,CAAA,kBAAA,GAAA,EAAA,iBAAA,EAAA,aAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,mBAAA,CAAA,oBAAA,GAAA,QAAA,SAAA,QAAA,GAAA,EAAA,eAAA,EAAA,WAAA,SAAA,CAAA,EAAA,cAAA,CAAA,QAAA,KAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ID9BpC,GAAA,EAAA,GAAA,GAAA,GAAA,eAAA,GAAA,GAAA,EAAA,UC8BoC,EAAA,GD9BtB,GAAA,OAAA,GAAA,EAAA,EAAA,EAAA,gBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,ioFAAA,cAAA,EAAA,KAAA,CAAA,UCkBE,CACR34T,GAAQ,oBAAqB,CACzBogO,GAAW,SAAU,CACjB,GAAM,CAAEzsN,QAAS,IACjBgF,GAAQ,gCAAiC,GAAM,CAAEhF,QAAS,OAE9DysN,GAAW,SAAU,CACjBznN,GAAQ,8BAA+B,GAAM,CAAEhF,QAAS,WAGnE,gBAAA,IAGgC,GAAA,CAAhCu6K,GAAO,GAAY6rE,aAAa,GAAA,cAAc,IAAd,GAAA,UAAA,oBAAA,GACA,GAAA,CAAhC7rE,GAAO,GAAYo2E,aAAa,GAAA,cAAc,IAAd,GAAA,UAAA,oBAAA,GACN,GAAA,CAA1Bp2E,GAAO,GAAYpqI,OAAO,GAAA,cAAQ,IAAR,GAAA,UAAA,cAAA,GAAA,IAHxB,GAAA,CAAA,iBAAA,GAAA,CAAA,qBAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GC9BP,GAAA,EAAA,WAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAEA,GAAA,EAAA,kBAAA,IAAA,SAAA,GAAA,EAAA,GAAA,GAAA,EAAA,IAOQ,GAAA,EAAA,MAAA,IAA6F,GAAA,GAAwB,MAAA,EAAA,EAAA,CAAA,IAAA,EAAA,KAAlF,GAAA,8BAAA,GAA0D,GAAA,GAAA,GAAA,GAAA,EAAA,UAAA,QAAA,QAAA,SAAA,GAAA,EAAA,GAAA,EAAA,GAIrG,GAAA,EAAA,kBAAA,ICkEO,IAAM+0Q,GCjEAC,GCNAC,GC0BAC,GH6CN,KAAMH,GAAN,WAaH,SAAA,EACWr9T,EACCslG,EACDg7F,EACA41D,EACCusC,EACAg7B,EACAtkT,EACA+oB,EACDn1C,EACC4mH,EACAinJ,EACAsc,EACA3+P,EACAgzL,EACA2xH,EACA7mI,GAAAA,gBAAAA,KAAAA,GAfD,KAAAr2L,OAAAA,EACC,KAAAslG,QAAAA,EACD,KAAAg7F,SAAAA,EACA,KAAA41D,YAAAA,EACC,KAAAusC,eAAAA,EACA,KAAAg7B,eAAAA,EACA,KAAAtkT,GAAAA,EACA,KAAA+oB,aAAAA,EACD,KAAAn1C,OAAAA,EACC,KAAA4mH,MAAAA,EACA,KAAAinJ,KAAAA,EACA,KAAAsc,WAAAA,EACA,KAAA3+P,KAAAA,EACA,KAAAgzL,IAAAA,EACA,KAAA2xH,YAAAA,EACA,KAAA7mI,GAAAA,EAnBL,KAAAqnI,eAAiB,CAACpvN,MAAO,CAAC46J,GAAiB7oO,QAC3C,KAAAqsO,UAAY,CAACixD,eAAAA,EAAsBC,gBAAAA,EAAuB16U,QAAS,MAXvE,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,kBAAA,MAAA,WAgCH,IAAA,EAAA,KACIY,KAAKkc,OAAO22G,MAAM70E,UAAYh+C,KAAK+5U,cAAcxvK,cACjDvqK,KAAKkc,OAAO22G,MAAM21F,cAAgBxoN,KAAKg6U,kBAAkBzvK,cAGzDvqK,KAAKiJ,OAAO2hN,OACPvmN,KACG0Q,GAAI9L,SAAAA,GAAAA,OAAUA,EAAOo2S,MAAMn1H,UAAU5yH,UACrC2nI,MACF1+L,WAAU,WACRP,EAAKi6U,qBAGbj6U,KAAKk6U,qBAELl6U,KAAKm6U,aAAazqU,MAAK,WACnB1P,EAAKo+C,aAAa4tE,OAClBhsH,EAAK25U,eAAe3tN,OACpBhsH,EAAKo6U,4BACLp6U,EAAKq6U,kCACLr6U,EAAKs6U,4BACLt6U,EAAKu6U,wBACLv6U,EAAKw6U,oCACLx6U,EAAKy6U,2BACLz6U,EAAKioL,uBACLjoL,EAAKg6U,kBAAkBzvK,cAAcnF,UAAUrvJ,OAAO,mBAzD3D,CAAA,IAAA,aAAA,MAAA,WA8DC,IAAMsT,EAAW5rB,SAASqpB,cAAc,iBACxC9mB,KAAKkc,OAAO22G,MAAM93G,OAAS,IAAIA,GAAA,OAAOa,OAAOyN,GAE7CrpB,KAAKkc,OAAO22G,MAAM93G,OAAO+wC,WAAAA,EACzB9rD,KAAKkc,OAAO22G,MAAM93G,OAAO+F,mBAAAA,EAEzB,IAAMnC,EAAc3e,KAAKiJ,OAAO4Z,IAAI,qBAChClE,IAAa5D,GAAA,OAAoB,YAAI4D,GAEzC,IAAMyrK,EAAiBolB,GACnBxvM,KAAKiJ,OAAO4Z,IAAI,gCAGpB,IAAK,IAAM3mB,KAAOkuL,EACdrvK,GAAA,OAAOhV,OAAOb,UAAUhJ,GAAOkuL,EAAeluL,GAalD,OATA8D,KAAKkc,OAAO22G,MAAM93G,OAAOsF,GAAG,gBAAgB5c,SAAAA,GACpCA,EAAEkH,OAAOxO,MAAQsH,EAAEkH,OAAOxO,KAAKsV,KAC5BhO,EAAEkH,OAAOxO,OAAMsH,EAAEkH,OAAOxO,KAAO,IACtCsH,EAAEkH,OAAOxO,KAAKsV,GAAKs+L,GAAa,QAGpC/vM,KAAKynN,IAAIz7F,OACThsH,KAAKy0B,KAAKu3F,OAEHhsH,KAAKo5U,YAAYl6B,uBAzFzB,CAAA,IAAA,4BAAA,MAAA,WA4FK,IAAA,EAAA,KACJl/S,KAAKkc,OAAOnB,SAASsF,GAAG,iBAAiB,WAAA,OAAMrgB,EAAKw8M,SAAS2iG,yBA7F9D,CAAA,IAAA,kCAAA,MAAA,WAgGK,IAAA,EAAA,KACJn/S,KAAKkc,OAAOnB,SAASsF,GAAG,kBAAkB,WACjCrgB,EAAKo+C,aAAa+qK,UAAWnpN,EAAK6vH,MAAM6pJ,eAAe,GAAYl1M,QACxExkE,EAAK6vH,MAAMi+D,SAAS,IAAI3B,GAAUzE,GAAW8yF,uBAnGlD,CAAA,IAAA,oCAAA,MAAA,WA2GK,IAAA,EAAA,KACJx6Q,KAAKkc,OAAOnB,SAASsF,GAAG,mBAAmBwT,SAAAA,GAClCA,EAAMpwB,IAAKzD,EAAK6vH,MAAM6pJ,eAAe,GAAYl1M,QACtDxkE,EAAKwhH,QAAQk5N,sBA9GlB,CAAA,IAAA,wBAAA,MAAA,WAkHK,IAAA,EAAA,KACJ16U,KAAKkc,OAAOnB,SAASsF,GAAG,qBAAqB5c,SAAAA,GAAAA,OAAKzD,EAAK26U,kBAAkBl3U,MACzEzD,KAAKkc,OAAOnB,SAASsF,GAAG,qBAAqB5c,SAAAA,GAAAA,OAAKzD,EAAK26U,kBAAkBl3U,MAEzEzD,KAAKkc,OAAOnB,SAASsF,GAAG,qBAAqBu6T,SAAAA,GACzC56U,EAAK6vH,MAAMi+D,SAAS,IAAIjB,GAAkC,MAAjB+tJ,EAAYn3U,SAvH1D,CAAA,IAAA,oBAAA,MAAA,SA2HsBm3U,GACrB56U,KAAK6vH,MAAMi+D,SAAS,IAAIpB,GACpBkuJ,EAAYjwU,OAAO/K,KAAuB,MAAjBg7U,EAAYn3U,MA7H1C,CAAA,IAAA,4BAAA,MAAA,WAiIK,IAAA,EAAA,KACJovN,GAAU31N,OAAQ,UACbmH,KAAK+pO,GAAa,KAAMnvC,MACxB1+L,WAAU,WACPP,EAAKkc,OAAOuY,KAAKs0L,mBArI1B,CAAA,IAAA,kBAAA,MAAA,WA0IC,IAAMzxJ,EAASt3D,KAAKiJ,OAAO4Z,IAAI,yBAA0B,WACzD,GAAe,YAAXy0C,EAAJ,CAEOt3D,KAAKiJ,OAAO4Z,IAAI,gBACnB7iB,KAAKiJ,OAAO+Y,IAAI,eAAA,GAGpB,IAAMzgB,EAAQvB,KAAKiJ,OAAO4Z,IAAZ7iB,0BAAAA,OAA0Cs3D,IACxDt3D,KAAK82Q,KAAKmjE,gBAAgB,CACtBr6U,KAAM03D,EACN0oJ,MAAO,IAAI6R,GAAa,CAACjyN,KAAM03D,IAC/B/1D,MAAOA,OArJZ,CAAA,IAAA,2BAAA,MAAA,WAyJK,IAAA,EAAA,KACJvB,KAAKkc,OAAO22G,MAAM70E,UAAUvqB,iBAAiB,SAAShwB,SAAAA,GAEO,WAApDA,EAAEkH,OAAuBq0B,SAAStwB,eACnC1O,EAAKo+C,aAAa4nK,gBA7J3B,CAAA,IAAA,uBAAA,MAAA,WAkKK,IAAA,EAAA,KACAhmN,KAAKiJ,OAAO4Z,IAAI,kCAChB7iB,KAAKoyQ,YAAY6R,UAAU5/Q,KAAK,IAAOX,SAAAA,GAAAA,QAAYA,KAASk6L,GAAK,IAC5Dr9L,WAAU,WACP,IAAImoN,EAAY1oN,EAAKq1B,GAAGk1I,cAAc2pE,aAClCl0O,EAAKiJ,OAAO4Z,IAAI,mBAAqB0kK,GAAWszJ,UAChDnyH,GAAa,IAEjB1oN,EAAKq1B,GAAGk1I,cAAc/9J,MAAMk8M,UAAYA,EAAY,UA1KjE,CAAA,IAAA,gBAAA,MAAA,SA+KkB9D,GAAAA,IAAAA,EAAAA,KACX0jE,EAAmBtoR,KAAKiJ,OAAO4Z,IAAI,mDACzC7iB,KAAKozR,WAAWlL,SAAStjE,EAAM,GAAI,CAAC0jE,iBAAAA,IAAmB54Q,MAAK6sC,SAAAA,GACxDA,GAASv8C,EAAKo+C,aAAa6uJ,OAAO1wJ,QAlLvC,CAAA,IAAA,qBAAA,MAAA,WAsLK,IrFjQcmjQ,EqFiQd,EAAA,KAEJ1/S,KAAKkc,OAAO22G,MAAM4yF,qBAAqBphN,KACnC4vN,GAAU,IACVl/M,GAAKtP,SAAAA,GAAAA,OACDA,EAAMq1U,KAAO5uU,KAAKC,MACX1G,MtNzQXrD,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAI07M,OiIEbwrF,EqF0QJ,SAAA,GAAA,IAAA,EAAA,eAAA,EAAA,GAAE33I,EAAF,EAAA,GAAiBn1F,EAAjB,EAAA,GAAA,OAGoGgkD,IAA7E,iBAAtBhkD,EAAahzE,OAA6BgzE,EAAar8C,SAAiC,UAAtBq8C,EAAahzE,OAD1E,KADDgzE,EAAakoQ,KAAO/yK,EAAc+yK,OAEwF,IrFxQzI14U,SAAAA,GAAAA,OAAWA,EAAOoW,KAAK,IAAIinS,GAAkBC,OqF0Q/Cn/S,WAAUsiH,SAAAA,GACR,IAAM9oH,EAAI8oH,EAAO,GACjB7iH,EAAK4oR,UAAY,CAEbixD,cAA0B,iBAAX9/U,EAAE6F,OAA4B7F,EAAEw8B,QAE/CujT,eAA2B,UAAX//U,EAAE6F,MAAoB7F,EAAEw8B,QACxCn3B,QAASomN,GAA+BzrN,EAAE6F,OAE9CI,EAAKuyM,GAAGzW,oBA7Mb,CAAA,IAAA,YAAA,IAAA,WAOC,OAAO97L,KAAK6vH,MAAM6pJ,eAAe,GAAY+K,eAAiBh9F,GAAYzrC,SAP3E,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAMu9L,IAAoB,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAApBA,GAAoB,UAAA,CAAA,CAAA,iBAAA,UAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,IAAA,GAAA,IAAA,GAAA,GAAA,IAAA,IAAA,EAAA,IAAA,GAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,GAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,SAAA,SAAA,EAAA,aAAA,SAAA,EAAA,GAAA,EAAA,GAAA,GAAA,aAAA,EAAA,YAAA,MAAA,GAAA,KAAA,GAAA,OAAA,CAAA,CAAA,EAAA,QAAA,CAAA,QAAA,eAAA,EAAA,QAAA,CAAA,kBAAA,yBAAA,EAAA,iBAAA,EAAA,eAAA,uBAAA,gBAAA,CAAA,gBAAA,IAAA,CAAA,EAAA,uBAAA,CAAA,oBAAA,IAAA,CAAA,kBAAA,uBAAA,EAAA,cAAA,CAAA,KAAA,gBAAA,CAAA,QAAA,wBAAA,EAAA,QAAA,CAAA,QAAA,kBAAA,EAAA,QAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,yBAAA,CAAA,EAAA,oBAAA,SAAA,SAAA,EAAA,GAAA,EAAA,ID/EjC,GAAA,EAAA,GAAA,EAAA,EAAA,UAAA,GAAA,GAAA,EAAA,SAEA,GAAA,EAAA,GAAA,EAAA,EAAA,kBAAA,GAFA,GAAA,EAAA,SAIA,GAAA,EAAA,MAAA,EAAA,GAAkJ,GAAA,gBAAA,SAAA,GAAA,OAAgB,EAAAwB,cAAA,MAC9J,GAAA,EAAA,MAAA,EAAA,GACI,GAAA,EAAA,MAAA,GACI,GAAA,EAAA,SAAA,GACJ,KACA,GAAA,GAAA,GAAA,EAAA,EAAA,MAAA,GACJ,KACJ,KAEA,GAAA,GAAA,GAAA,EAAA,EAAA,kBAAA,GAbA,GAAA,GAAA,UAAA,EAAA,IAAS,GAAA,QAAA,GAAA,EAAA,EAAA,EAAA,iBAEQ,GAAA,GAAA,GAAA,OAAA,QAAA,GAAA,EAAA,EAAA,EAAA,eAEmE,GAAA,GAAA,GAAA,eAAA,EAAA,eAAA,CAA+B,wBAAA,GAE5C,GAAA,GAAA,GAAA,gBAAA,EAAA,UAAA,eAGH,GAAA,GAAA,GAAA,OAAA,EAAA,UAAA,gBAInD,GAAA,GAAA,GAAA,OAAA,WAAA,GAAA,GAAA,GAAA,EAAA,iBAAA,WAAA,CAAA,GAAA,GAAA,GAAA,GAAA,IAAA,MAAA,CAAA,IAAA,OAAA,CAAA,0+BAAA,cAAA,EAAA,KAAA,CAAA,UCiDD,CACRr6T,GAAQ,wBAAyB,CAC7BogO,GAAW,SAAU,CACjB,GAAM,CAACj8N,UAAW,oBAClBwU,GAAQ,gCAAiC,GAAM,CAAEhF,QAAS,EAAGxP,UAAW,sBAE5Ei8N,GAAW,SAAU,CACjBznN,GAAQ,gCAAiC,GAAM,CAAEhF,QAAS,EAAGxP,UAAW,0BAGhFnE,GAAQ,eAAgB,CACpB,GAAM,OAAQ,GAAM,CAAC2T,QAAS,EAAG2mT,UAAW,OAC5C,GAAM,QAAS,GAAM,CAAC3mT,QAAS,EAAG2mT,UAAW,UAC7Cl6F,GAAW,YAAaznN,GAAQ,sBAEvC,gBAAA,IAGgC,GAAA,CAAhCu1K,GAAO,GAAY61E,aAAa,GAAA,cAAc,IAAd,GAAA,UAAA,oBAAA,GACE,GAAA,CAAlC71E,GAAO,GAAYqsI,eAAe,GAAA,cAAgB,IAAhB,GAAA,UAAA,sBAAA,GAAA,IAFhC,GAAA,CAAA,WAAA,GAAA,CAAA,KG7CA,KAAMvB,GAAN,WA4BH,SAAA,EACY7pN,EACA5mH,EACAosB,GAAAA,gBAAAA,KAAAA,GAFA,KAAAw6F,MAAAA,EACA,KAAA5mH,OAAAA,EACA,KAAAosB,GAAAA,EA/BT,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,WAAA,MAAA,WAmCCr1B,KAAKk7U,mBAAmBl7U,KAAK0iD,WAnC9B,CAAA,IAAA,qBAAA,MAAA,SAsCwBA,GAAAA,IAAAA,EAAAA,KACvBA,EAAQ6nH,cAAc92I,iBAAiB,SAAS,WAC5CzzB,EAAK6vH,MAAMi+D,SAAS,IAAI7B,SAxC7B,CAAA,IAAA,mBAAA,MAAA,WA8CCjsL,KAAKq1B,GAAGk1I,cAAc/9J,MAAM+wB,QAAU,UA9CvC,CAAA,IAAA,iBAAA,MAAA,WAmDCv9B,KAAKq1B,GAAGk1I,cAAc/9J,MAAM+wB,QAAUv9B,KAAKm7U,cAAgB,QAAU,SAnDtE,CAAA,IAAA,gBAAA,IAAA,WAKC,OAAOn7U,KAAK6vH,MAAM6pJ,eAAe,GAAYz7O,WAL9C,CAAA,IAAA,cAAA,IAAA,WASC,OAAOj+B,KAAK6vH,MAAM6pJ,eAAe,GAAY3vL,QAAUw9F,GAAWszJ,UATnE,CAAA,IAAA,aAAA,IAAA,WAaC,OAAO76U,KAAK6vH,MAAM6pJ,eAAe,GAAY3vL,QAAUw9F,GAAWO,SAbnE,CAAA,IAAA,QAAA,IAAA,WAiBC,OAAO9nL,KAAKiJ,OAAO4Z,IAAI,oBAjBxB,CAAA,IAAA,SAAA,IAAA,WAqBC,OAAO7iB,KAAKiJ,OAAO4Z,IAAI,qBArBxB,CAAA,IAAA,UAAA,IAAA,WAyBC,OAAO7iB,KAAKiJ,OAAO4Z,IAAI,wBAzBxB,EAAA,IAAA,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM62T,IAAY,GAAA,IAAA,GAAA,IAAA,GAAA,MAAA,GAAA,UAAA,GAAA,CAAA,KAAZA,GAAY,UAAA,CAAA,CAAA,iBAAA,UAAA,SAAA,EAAA,GAAA,IAAA,EAAA,EAAA,GAAA,GAAA,IAAA,GAAA,EAAA,GAAA,GAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,SAAA,GAAA,aAAA,SAAA,EAAA,GAAA,EAAA,GAAA,GAAA,wBAAA,WAAA,OAAZ,EAAA,qBAAY,CAAM,uBAAA,WAAA,OAAlB,EAAA,oBAAA,EAAA,IAAA,GAAA,iBAAA,EAAA,eAAA,GAAA,QAAA,EAAA,MAAA,CAAA,SAAA,EAAA,QAAA,GAAA,eAAA,EAAA,YAAA,CAAA,cAAA,EAAA,WAAA,CAAA,aAAA,EAAA,WAAA,mBAAA,GAAA,MAAA,EAAA,KAAA,EAAA,OAAA,CAAA,CAAA,EAAA,WAAA,CAAA,UAAA,IAAA,CAAA,EAAA,WAAA,SAAA,SAAA,EAAA,GAAA,EAAA,IAAA,KClCb,GAAA,EAAA,gBAEA,GAAA,EAAA,MAAA,EAAA,GAEA,GAAA,EAAA,MAAA,GACI,GAAA,GACJ,OAAA,WAAA,CAAA,IAAA,OAAA,CAAA,yFAAA,cAAA,EAAA,KAAA,CAAA,UDgBgB,CACRh5T,GAAQ,gBAAiB,CACrB,GAAM,OAAQ,GAAM,CAChB2T,QAAS,OAEb,GAAM,QAAS,GAAM,CACjBA,QAAS,OAEbysN,GAAW,iBAAkBznN,GAAQ,sCAE5C,gBAAA,IAAA,IDxBE,KAAMogT,GAAN,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GACH,SAAA,EAAsB3iE,EAA8BI,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAChD98I,EAAAA,EAAAA,KAAAA,KAAM08I,EAAMI,IADMJ,KAAAA,EAA8B,EAAAI,MAAAA,EAAAA,EADjD,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,iBAAA,MAAA,SASsBttQ,QATtB,EAAA,CAAqC,KAArC,UAAA,SAAA,GAAA,OAAA,IAAA,GAAM6vU,IAAsB,GAAA,IAAA,GAAA,MAAA,GAAA,WAAA,GAAA,CAAA,MAAtBA,GAAsB,QAAtBA,GAAsB,UAAA,WAFnB,SAAA,IDQT,KAAMD,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,OAAAA,IIqCN,SAAS4B,GAASh3H,EAAUi3H,GAC/B,OAAO,WAAA,OAeHj3H,EAASK,YAAY,OAAD,OAAA,OAAA,OAAA,GAdD,CACf62H,SAAUD,EAAaE,QACvBnqU,Q7SxCiB,Q6SyCjBoqU,QAAS,CACLC,cAAeJ,EAAaI,eAEhCC,MAAO,CACH/9N,YAAsC,cAE1CkgM,OAAQ,CACJ89B,aAAcN,EAAaxzJ,GAAGE,gBAIH,CAAEs3H,MAAOg8B,KAErC,IAAI9rU,SAAQwJ,SAAAA,GAAAA,OAAWA,QAqE/B,ICtIM6iU,GCuIAC,GClHAC,GCPAC,GC0pBPC,GAZAC,GCxpBOC,GCGAC,GC2BAC,GRoGAC,GS7GAC,GC4WPC,GV/PC,KAAMF,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,KAAiB,UAzCf,CACP,CACIh5M,QAASo4C,GACTrlB,WAAYglL,GACZ/kL,KAAM,CAAC,GAAUuxB,IACjB/xB,OAAAA,GAEJ,GACA,CACIxyB,QAAS,GACTmzB,SAAU,IAEd,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACH,QAAA,CA9DQ,CACL,GACA,GACA,GAAWgmL,QAAQ,CACf,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACD,CAAC12I,iBAAAA,KAGJ,MAyCH,IQlGE,KAAMs2I,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,KAAiB,UARf,CACP,GACA,IACH,QAAA,CApBQ,CACL,GACA,GACA,GACA,GAGA,GACA,GACA,OAWH,IDtBE,KAAMD,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,OAAAA,IDHN,KAAMD,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,KAAU,QAAA,CAJV,CACL,OAGe,INkIhB,KKshBDD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEiCz5M,UAAO,GAAwB,CAAEr3H,KAAM8wU,KAC9EA,GAAuCt7M,UAAO,GAAwB,CAAErrH,QAAS,SAAwDtb,GAAK,OAAO,IAAKA,GAAKiiV,OAD/JA,ILxhBO,KKkiBDD,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEex5M,UAAO,GAAwB,CAAEr3H,KAAM6wU,KAC5DA,GAAqBr7M,UAAO,GAAwB,CAAErrH,QAAS,SAAsCtb,GAAK,OAAO,IAAKA,GAAKgiV,KAA4B/7M,QAAS,CAAC,CACrJ,GACA,GACA,GACA,IACD,GAAwC,MANnD+7M,ID5pBO,KAAMD,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,KAAiB,QAAA,CARjB,CACL,GACA,OAMsB,IDOvB,KAAMD,GAAN,SAAA,IAAA,gBAAA,KAAA,KACI16L,WAAa,CAChBgrC,MAAO,IADJ,GAAA,UAAA,GAAA,CAAA,KADE0vJ,KACF,GAAA,UAAA,GAAA,CAAA,QAAA,SAAA,GAAA,OAAA,IAAA,GADEA,KAAmB,QAAA,CAhBnB,CACL,GACA,GACA,GACA,GAGA,OAUG,IDiHJ,KAAMD,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,KAAqB,UAJnB,CACP,IACH,QAAA,CApFQ,CACL,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAGA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OA+DH,IDrIE,KAAMD,GAAN,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAAA,SAAA,IAAA,OAAA,gBAAA,KAAA,GAAA,EAAA,MAAA,KAAA,WAAA,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,mBAAA,MAAA,WAEC,IAAM70S,EAAYtpC,SAAS+M,cAAc,OACzCu8B,EAAUq+H,UAAUr9J,IAAI,2BAA4B,yBACpDtK,SAASqpB,cAAc,gBAAgBna,YAAYo6B,GACnD/mC,KAAKy/N,kBAAoB14L,MAL1B,EAAA,CAAqC,KAArC,UAAA,SAAA,GAAA,OAAA,GAAA,GAAM60S,KAAAA,GAAAA,WAAAA,GAAAA,CAAAA,MAAAA,GAAsB,QAAtBA,GAAsB,YAAA,IDsI5B,GAAA,GCtIM,IUFAa,GAAuB,CAChC,uBAAwB,UACxB,uBAAwB,UACxB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,uBAAwB,yBACxB,uBAAwB,2BACxB,kBAAmB,qBACnB,8BAA+B,qBAC/B,uBAAwB,QACxB,YAAa,sBACb,iBAAkB,sBAClB,sBAAuB,sBACvB,aAAc,sBACd,4BAA6B,sBAC7B,uBAAwB,sBACxB,uBAAwB,sBACxB,aAAc,mBACd,uBAAwB,qBACxB,YAAa,UACb,YAAa,UACb,gBAAiB,QACjB,qBAAsB,OACtB,uBAAwB,qBACxB,uBAAwB,uBAGfC,GAAsB,CAC/B,uBAAwB,UACxB,uBAAwB,UACxB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,uBAAwB,yBACxB,uBAAwB,2BACxB,uBAAwB,OACxB,YAAa,OACb,iBAAkB,2BAClB,sBAAuB,2BACvB,aAAc,2BACd,kBAAmB,UACnB,8BAA+B,UAC/B,uBAAwB,4BACxB,uBAAwB,4BACxB,4BAA6B,2BAC7B,uBAAwB,OACxB,YAAa,UACb,aAAc,4BACd,uBAAwB,UACxB,uBAAwB,4BACxB,qBAAsB,UACtB,gBAAiB,UACjB,YAAa,WAGJC,GAA4C,CACrDnqU,MAAO,CACH5S,KAAM,QACNs+S,OAAQu+B,IAEZG,KAAM,CACFh9U,KAAM,OACNq+S,SAAAA,EACAC,OAAQw+B,IAEZ1vS,KAAM,CACFptC,KAAM,OACNs+S,OAAQ,OAAF,OAAA,OAAA,OAAA,GACCu+B,IAAoB,CACvB,uBAAwB,UACxB,uBAAwB,UACxB,sBAAuB,UACvB,sBAAuB,aAG/BzpS,OAAQ,CACJpzC,KAAM,SACNs+S,OAAQ,OAAF,OAAA,OAAA,OAAA,GACCu+B,IAAoB,CACvB,uBAAwB,UACxB,uBAAwB,UACxB,sBAAuB,UACvB,sBAAuB,cA3BsB,KD+UnDF,GAAAA,SAAAA,IAAAA,gBAAAA,KAAAA,KAEe/5M,UAAO,GAAwB,CAAEr3H,KAAMoxU,KAC5DA,GAAqB57M,UAAO,GAAwB,CAAErrH,QAAS,SAAsCtb,GAAK,OAAO,IAAKA,GAAKuiV,KAA4Bt8M,QAAS,CAAC,CAAC,GAAc,IAAkB,MADlMs8M,ID9WO,KAAMD,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,KAAa,QAAA,CAnBb,CACL,GAGA,GACA,GACA,OAakB,IGtB1B,SAASO,KAYL,OAXAA,GAAW92U,OAAOkjH,QAAU,SAASt+G,GACjC,IAAK,IAAIhQ,EAAI,EAAGA,EAAI+D,UAAU1D,OAAQL,IAAK,CACvC,IAAIyH,EAAS1D,UAAU/D,GACvB,IAAK,IAAIuB,KAAOkG,EACR2D,OAAOb,UAAU3G,eAAeE,KAAK2D,EAAQlG,KAC7CyO,EAAOzO,GAAOkG,EAAOlG,IAIjC,OAAOyO,IAEKnM,MAAMwB,KAAMtB,WAGhC,SAASo+U,GAAmBlnT,GACxB,OAGJ,SAA4BA,GACxB,GAAInvB,MAAMqQ,QAAQ8e,GAAM,OAAOmnT,GAAkBnnT,GADrD,CAH8BA,IAO9B,SAA0BonT,GACtB,GAAsB,oBAAXtmU,QAA0BA,OAAO8yG,YAAYzjH,OAAOi3U,GAAO,OAAOv2U,MAAM8tE,KAAKyoQ,GAD5F,CAPuDpnT,IAWvD,SAAqCvpB,EAAG4wU,GACpC,GAAK5wU,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO0wU,GAAkB1wU,OAAAA,GACpD,IAAIqE,EAAI3K,OAAOb,UAAUrF,SAASpB,KAAK4N,GAAG/O,MAAM,GAAI,GAEpD,MADU,WAANoT,GAAkBrE,EAAEzF,cAAa8J,EAAIrE,EAAEzF,YAAYhH,MAC7C,QAAN8Q,GAAqB,QAANA,EAAoBjK,MAAM8tE,KAAKloE,GACxC,cAANqE,GAAqB,2CAA2CxF,KAAKwF,GAAWqsU,GAAkB1wU,OAAAA,QAjB3C6wU,GAW/D,CAX2FtnT,IA0B3F,WACI,MAAM,IAAI+zF,UAAU,wIADxB,GANA,SAASozN,GAAkBnnT,EAAKl7B,IACjB,MAAPA,GAAeA,EAAMk7B,EAAI56B,UAAQN,EAAMk7B,EAAI56B,QAC/C,IAAK,IAAIL,EAAI,EAAGwiV,EAAO,IAAI12U,MAAM/L,GAAMC,EAAID,EAAKC,IAAKwiV,EAAKxiV,GAAKi7B,EAAIj7B,GACnE,OAAOwiV,EAaP,SAASC,GAAQ1rU,GACjB,IAAIgE,EAAUhX,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC9E0lN,EAAW,CACXi5H,SAAU3nU,EAAQ2nU,UAAY,KAC9BC,aAAc5nU,EAAQ4nU,cAAgBr4U,SAASC,UAC/C+/G,UAAWvvG,EAAQuvG,WAAahgH,SAASC,UACzCggH,QAASxvG,EAAQwvG,SAAWjgH,SAASC,UACrCozB,WAAY5iB,EAAQ4iB,YAAcrzB,SAASC,WAE3Cq4U,EAAW92U,MAAMqQ,QAAQpF,GAAQA,EAAO,CAAEA,GAC1C8rU,EAAW/2U,MAAMjI,MAAM,KAAMiI,MAAM82U,EAASviV,SAAS+Z,KAAI,SAAUvb,GACnE,OAAO,QAEX,SAASikV,IACL,IAAIhxU,EAAU/N,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC9Eg/U,EAAsC,MAA7BjxU,EAAQuJ,OAAOra,OAAO,GACnC,OAAQ+hV,EAEZ,SAASx4N,EAAQnjH,EAAK47U,GAClBv5H,EAASl/F,QAAQnjH,EAAKw7U,EAASI,GAAWA,GAE9C,SAAS14N,EAAU5iH,EAAcs7U,GAC7B,IAAIC,EAAYx5H,EAASn/F,UAAU5iH,EAAck7U,EAASI,GAAWA,GAErEH,EAASG,GADTt7U,GAAAA,IAAeu7U,EAAsB,GAAKA,GAAav7U,GAEvB,IAA5Bm7U,EAAS57U,QAAQ,OACjBwiN,EAAS9rL,WAAWklT,GAG5B,IAAI/3S,EAAShoC,SAAS+M,cAAc,KACpC+yU,EAAS5lU,SAAQ,SAAU7Y,EAAKnE,GAK5B,GAJA8qC,EAAO/4B,aAAa,OAAQ5N,GAC5B2mC,EAAO9nC,KAAOtC,OAAOoqC,EAAO9nC,MACbkmH,QAAQpmH,SAASoa,MAAQ3a,OAAOsc,OAChBisB,EAAO/P,KAAKl0B,MAAM,KAAK,KAAO9D,SAASg4B,KAAKl0B,MAAM,KAAK,GAGlF,GADqBikC,EAAOhjC,WAAa/E,SAAS+E,SAC9B,CAChB,IAAIo7U,EAAM,IAAIn4N,eACdm4N,EAAI57U,KAAK,MAAOnD,GAChB++U,EAAI3sU,QAAU,EACd2sU,EAAIC,WAAa74U,SAASC,UAC1B24U,EAAIE,UAAY94U,SAASC,UACzB24U,EAAIl0U,OAAS,WACL8zU,EAAWI,EAAIx7U,cACf4iH,EAAU44N,EAAIx7U,aAAc1H,GAE5BuqH,EAAQ24N,EAAKljV,IAGrBkjV,EAAIp9U,QAAU,SAASqF,GACnBo/G,EAAQ24N,EAAKljV,IAEjB0F,YAAW,WACPw9U,EAAI37U,SACJ,QAEJsC,QAAQyG,KAAK,gFAAgFzO,OAAOsC,EAAK,MACzGomH,EAAQ,KAAMvqH,OAEf,CACH,IAAIoH,EAAM,IAAIC,eACdD,EAAIE,KAAK,MAAOnD,GACZslN,EAASi5H,UAAYt7U,EAAIi8U,kBACzBj8U,EAAIi8U,iBAAiB55H,EAASi5H,UAElCj5H,EAASk5H,aAAav7U,EAAKjD,EAAKnE,GAChCoH,EAAI6L,mBAAqB,WACE,IAAnB7L,EAAI8L,aACe,MAAf9L,EAAII,QAAkBs7U,EAAW17U,EAAIM,cACrC4iH,EAAUljH,EAAIM,aAAc1H,GAE5BuqH,EAAQnjH,EAAKpH,KAIzBoH,EAAIG,WAkEZ,SAAS+7U,GAAWvoU,GACpB,IAAIgxB,EACa,oBADbA,EAEY,2EAEZ09K,EAAW,CACXwpC,YAAal4O,EAAQk4O,aAAenwP,SACpCygV,QAASxoU,EAAQwoU,SAAW,+BAC5BC,QAASzoU,EAAQyoU,SAAW,KAC5BjnU,OAAQxB,EAAQwB,QAAU,KAC1BknU,cAAAA,IAAc1oU,EAAQ0oU,aACtBC,SAAU3oU,EAAQ2oU,WAAAA,EAClBf,aAAc5nU,EAAQ4nU,cAAgBr4U,SAASC,UAC/C+/G,UAAWvvG,EAAQuvG,WAAahgH,SAASC,UACzCggH,QAASxvG,EAAQwvG,SAAWjgH,SAASC,UACrCozB,WAAY5iB,EAAQ4iB,YAAcrzB,SAASC,WAE3Co5U,EAAc73U,MAAMjI,MAAM,KAAM4lN,EAASwpC,YAAYhuB,iBAAiBxb,EAAS85H,UAAUhnU,QAAO,SAAUkoB,GAC1G,SAyIiB+lN,EAzIO/lN,GA0IVsmH,SAAWy/F,EAAIL,iBAAmBK,EAAID,uBAAyBC,EAAIJ,oBAAsBI,EAAIH,mBAAqBG,EAAIF,kBACzHxmP,KAAK0mP,EA3Ic/gC,EAAS+5H,SAyI/C,IAAyBh5F,KAvIjBo5F,EAAW93U,MAAMjI,MAAM,KAAMiI,MAAM63U,EAAYtjV,SAAS+Z,KAAI,SAAUvb,GACtE,OAAO,QAEX,SAASglV,IAEL,IAD6C,IAA5BD,EAAS38U,QAAQ,MAClB,CACZ,IAAI6K,EAAU8xU,EAAS74U,KAAK,IAC5B0+M,EAAS9rL,WAAW7rB,EAAS8xU,EAAUD,IAG/C,SAASG,EAAchyU,EAASiyU,EAAUt/S,EAAMu/S,GAC5C,IAAIf,EAAYx5H,EAASn/F,UAAUx4G,EAAS2yB,EAAMu/S,IAmCtD,SAASC,EAAenyU,EAAS2yB,EAAMm8S,EAASsD,GAC5C,IAAIC,EAAcpgV,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAClFqgV,EAAergV,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GACnFsgV,EAAaC,EAAgBxyU,EAAS8uU,EAASwD,GAC/CC,EAAWE,MAAMlkV,OACjBoiV,GAAQ4B,EAAWG,aAAc,CAC7B7B,aAAc,SAAsBv7U,EAAKjD,EAAK6+U,GAC1Cv5H,EAASk5H,aAAav7U,EAAKq9B,EAAMtgC,IAErCmmH,UAAW,SAAmBx4G,EAAS3N,EAAK6+U,GACxC,IAAIC,EAAYx5H,EAASn/F,UAAUx4G,EAAS2yB,EAAMtgC,GAE9CsgV,EAAqBH,EADzBxyU,GAAAA,IAAUmxU,EAAsB,GAAKA,GAAanxU,EACA3N,EAAKigV,GAIvD,OAHAK,EAAmBF,MAAMvnU,SAAQ,SAAUgsB,EAAMhpC,GAC7C8R,EAAUA,EAAQZ,QAAQ83B,EAAMy7S,EAAmBC,cAAc1kV,OAE9D8R,GAEXy4G,QAAS,SAAiBnjH,EAAKjD,EAAK6+U,GAChCmB,EAAYp+U,KAAK,CACbqB,IAAKA,EACLjD,IAAKA,IAETigV,EAAar+U,KAAKs+U,EAAWE,MAAMvB,IACnCiB,EAAenyU,EAAS2yB,EAAMm8S,EAASsD,EAAYC,EAAaC,IAEpEzmT,WAAY,SAAoBgnT,GAC5BA,EAAc3nU,SAAQ,SAAU4nU,EAAY5kV,GACxC8R,EAAUA,EAAQZ,QAAQmzU,EAAWE,MAAMvkV,GAAI4kV,MAEnDX,EAAenyU,EAAS2yB,EAAMm8S,EAASsD,EAAYC,EAAaC,MAIxEF,EAAWpyU,EAASqyU,GAlC5B,CAlCIryU,OAAAA,IAAUmxU,IAAAA,IAA2B/5N,QAAQ+5N,GAAuB,GAAKA,GAAanxU,EAC9D2yB,EAAMu/S,GAAW,SAAUa,EAAiBC,GACrC,OAAvBlB,EAASG,KACTe,EAAU9nU,SAAQ,SAAUxb,GACxB,OAAOioN,EAASl/F,QAAQ/oH,EAAK4F,IAAKq9B,EAAMjjC,EAAK2C,QAG7Cy/U,EAASG,IADRt6H,EAASltM,QAAUktM,EAASltM,OAAOhM,KAAKs0U,GACpBA,EAEA,GAEzBhB,QAIZ,SAASS,EAAgBxyU,EAAS8uU,GAC9B,IAAImE,EAAchhV,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAClFsgV,EAAa,GAejB,OAdAA,EAAWE,OAASzyU,EAAQZ,QAAQ66B,EAAmB,IAAI5mC,MAAM4mC,IAAqB,IAAIxvB,QAAO,SAAUysB,GACvG,OAAsC,IAA/B+7S,EAAY99U,QAAQ+hC,MAE/Bq7S,EAAWttU,KAAOstU,EAAWE,MAAMnqU,KAAI,SAAU4uB,GAC7C,OAAOA,EAAK93B,QAAQ66B,EAAkB,SAE1Cs4S,EAAWG,aAAeH,EAAWttU,KAAKqD,KAAI,SAAUjW,GACpD,OAAO6gV,GAAW7gV,EAAKy8U,MAE3ByD,EAAWK,cAAgBL,EAAWE,MAAMnqU,KAAI,SAAU4uB,EAAMhpC,GAC5D,IAAIilV,EAASZ,EAAWttU,KAAK/W,GACzBklV,EAASF,GAAWX,EAAWG,aAAaxkV,GAAI4gV,GACpD,OAAO53S,EAAK93B,QAAQ+zU,EAAQC,MAEzBb,EAuCPV,EAAYtjV,OACZsjV,EAAY3mU,SAAQ,SAAUynB,EAAMzkC,GAChC,IAAImlV,EAAW1gT,EAAKF,aAAa,QAC7B6gT,EAAU3gT,EAAKF,aAAa,OAC5B8gT,EAA2B,SAAlB5gT,EAAKJ,UAAuB8gT,GAAYC,IAA4D,IAAjDA,EAAQrxU,cAAc9M,QAAQ,cAC1Fq+U,GAAAA,IAAS77H,EAASg6H,cAAiCh/S,EAAKoyK,SACxD0uI,EAA4B,UAAlB9gT,EAAKJ,SACnB,GAAIghT,IAAWC,EACX7C,GAAQ0C,EAAU,CACdzC,SAAU,WACVC,aAAc,SAAsBv7U,EAAKjD,EAAK6+U,GAC1Cv5H,EAASk5H,aAAav7U,EAAKq9B,EAAMtgC,IAErCmmH,UAAW,SAAmBx4G,EAAS3N,EAAK6+U,GACxC,IAAIgB,EAAYgB,GAAWG,GAC3BrB,EAAchyU,EAAS9R,EAAGykC,EAAMu/S,IAEpCz5N,QAAS,SAAiBnjH,EAAKjD,EAAK6+U,GAChCY,EAAS5jV,GAAK,GACdypN,EAASl/F,QAAQnjH,EAAKq9B,EAAMtgC,GAC5B0/U,YAGL,GAAI0B,IAAYD,EAAQ,CAC3B,IAAIxzU,EAAU2yB,EAAKwF,YACfw/K,EAASi6H,WACT5xU,EAAUhG,MAAMjI,MAAM,KAAM4gC,EAAKoyO,MAAM9xO,UAAU3qB,KAAI,SAAU4uB,GAC3D,OAAOA,EAAKl3B,WACZ/G,KAAK,KAEb+4U,EAAchyU,EAAS9R,EAAGykC,EAAM1hC,SAASC,WAEzC4gV,EAAS5jV,GAAK,GACd6jV,OAIRp6H,EAAS9rL,WAAW,GAAI,IAIhC,SAASqnT,GAAW7gV,EAAKkrH,GACrB,IAAI3vH,EAAIoD,SAASyd,eAAeC,mBAAmB,IAC/CrhB,EAAIO,EAAEmQ,cAAc,QACpB3Q,EAAIQ,EAAEmQ,cAAc,KAKxB,OAJAnQ,EAAEykH,KAAKnyG,YAAY7S,GACnBO,EAAEiR,KAAKqB,YAAY9S,GACnBC,EAAE6D,KAAOqsH,GAAQvsH,SAAS0iV,UAAY1iV,SAASqpB,cAAc,SAAW,IAAInpB,MAAQD,SAASC,KAC7F9D,EAAE8D,KAAOmB,EACFjF,EAAE8D,KAQb,IAAIyiV,GAAgBC,GAEpB,SAASA,GAASxmV,EAAGC,EAAGg4B,GAChBj4B,aAAaoc,SAAQpc,EAAIymV,GAAWzmV,EAAGi4B,IACvCh4B,aAAamc,SAAQnc,EAAIwmV,GAAWxmV,EAAGg4B,IAC3C,IAAInhB,EAAI,GAAM9W,EAAGC,EAAGg4B,GACpB,OAAOnhB,GAAK,CACRrB,MAAOqB,EAAE,GACToqB,IAAKpqB,EAAE,GACPiuP,IAAK9sO,EAAIx0B,MAAM,EAAGqT,EAAE,IACpBrF,KAAMwmB,EAAIx0B,MAAMqT,EAAE,GAAK9W,EAAEmB,OAAQ2V,EAAE,IACnC40M,KAAMzzL,EAAIx0B,MAAMqT,EAAE,GAAK7W,EAAEkB,SAIjC,SAASslV,GAAWC,EAAKzuT,GACrB,IAAItkB,EAAIskB,EAAIhyB,MAAMygV,GAClB,OAAO/yU,EAAIA,EAAE,GAAK,KAKtB,SAAS,GAAM3T,EAAGC,EAAGg4B,GACjB,IAAI0uT,EAAMC,EAAKv7T,EAAM2xC,EAAOnzD,EACxBg9U,EAAK5uT,EAAIlwB,QAAQ/H,GACjB8mV,EAAK7uT,EAAIlwB,QAAQ9H,EAAG4mV,EAAK,GACzB/lV,EAAI+lV,EACR,GAAIA,GAAM,GAAKC,EAAK,EAAG,CAGnB,IAFAH,EAAO,GACPt7T,EAAO4M,EAAI92B,OACJL,GAAK,IAAM+I,GACV/I,GAAK+lV,GACLF,EAAK9/U,KAAK/F,GACV+lV,EAAK5uT,EAAIlwB,QAAQ/H,EAAGc,EAAI,IACF,GAAf6lV,EAAKxlV,OACZ0I,EAAS,CAAE88U,EAAKzsU,MAAO4sU,KAEvBF,EAAMD,EAAKzsU,OACDmR,IACNA,EAAOu7T,EACP5pR,EAAQ8pR,GAEZA,EAAK7uT,EAAIlwB,QAAQ9H,EAAGa,EAAI,IAE5BA,EAAI+lV,EAAKC,GAAMD,GAAM,EAAIA,EAAKC,EAE9BH,EAAKxlV,SACL0I,EAAS,CAAEwhB,EAAM2xC,IAGzB,OAAOnzD,EAGX,SAASk9U,GAASC,GACd,IAAInrU,EAAUhX,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC9Ek0H,EAAW,CACXkuN,gBAAAA,EACAC,gBAAAA,GAEA38H,EAAWy4H,GAAS,GAAIjqN,EAAUl9G,GAClCZ,EAAS,GACb,SAAS3V,EAAMN,GACX,MAAM,IAAIgH,MAAM,oBAAoBrJ,OAAOqC,IAE/C,SAASiB,EAAMi5E,GACX,IAAIvrE,EAAIurE,EAAGt3E,KAAKo/U,GAChB,GAAIrzU,EAEA,OADAqzU,EAAMA,EAAIvjV,MAAMkQ,EAAE,GAAGxS,QACdwS,EAGf,SAASvL,IACL,OAAOnC,EAAM,SAEjB,SAAS+9N,IACL,OAAO/9N,EAAM,MAEjB,SAASkhV,IACLlhV,EAAM,QAEV,SAAS89J,IAEL,GADAojL,IACe,MAAXH,EAAI,IAAyB,MAAXA,EAAI,GAA1B,CAIA,IADA,IAAIlmV,EAAI,EACDkmV,EAAIlmV,KAAkB,MAAXkmV,EAAIlmV,IAA6B,MAAfkmV,EAAIlmV,EAAI,KACxCA,IAEJ,IAAKkmV,EAAIlmV,GACL,OAAOwE,EAAM,6BAEjB,IAAI2yB,EAAM+uT,EAAIvjV,MAAM,EAAG3C,GAEvB,OADAkmV,EAAMA,EAAIvjV,MAAM3C,EAAI,GACb,CACHwQ,KAAM,UACNyyJ,QAAS9rI,IAGjB,SAASmvT,IAGL,IAFA,IACI7mV,EADA8mV,EAAQ,GAEL9mV,EAAIwjK,KACPsjL,EAAMxgV,KAAKtG,GAEf,OAAOgqN,EAAS28H,eAAiB,GAAKG,EAE1C,SAASpiT,IAEL,IADAkiT,IACkB,MAAXH,EAAI,IACP1hV,EAAM,yBAEV,IAAIqO,EAAI1N,EAAM,8CACd,GAAI0N,EACA,OAAOA,EAAE,GAAGwI,OAAOnK,QAAQ,+CAAgD,IAAIA,QAAQ,oCAAoC,SAAU2B,GACjI,OAAOA,EAAE3B,QAAQ,KAAM,aACvBrK,MAAM,sBAAsBuT,KAAI,SAAUhb,GAC1C,OAAOA,EAAE8R,QAAQ,UAAW,QAIxC,SAASoxK,IACL,GAAe,MAAX4jK,EAAI,GACJ,OAAOM,IAEXrhV,EAAM,cACN,IAAIshV,EAAiB,kCACjBhhU,EAAOtgB,EAAM,0CACjB,GAAKsgB,EAAL,CAIA,GADAA,EAAOA,EAAK,GAAGpK,QACVlW,EAAM,SACP,OAAOX,EAAM,wBAEjB,IAAI0zG,EAAM/yG,EAAM,wGACZs0G,EAAM,CACNjpG,KAAM,cACNoM,SAAU6I,EAAKvU,QAAQu1U,EAAgB,IACvC37U,MAAOotG,EAAMA,EAAI,GAAGhnG,QAAQu1U,EAAgB,IAAIprU,OAAS,IAG7D,OADAlW,EAAM,WACCs0G,GAEX,SAAS00B,IACL,IAAK7mI,IACD,OAAO9C,EAAM,eAIjB,IAFA,IAAI9E,EACA2rI,EAAQi7M,IACL5mV,EAAI4iL,KACPj3C,EAAMtlI,KAAKrG,GACX2rI,EAAQA,EAAMxpI,OAAOykV,KAEzB,OAAKpjH,IAGE73F,EAFI7mI,EAAM,eAIrB,SAASszP,IACLuuF,IAGA,IAFA,IACIxzU,EADA6zU,EAAO,GAEJ7zU,EAAI1N,EAAM,wCACbuhV,EAAK3gV,KAAK8M,EAAE,IACZ1N,EAAM,SAEV,GAAIuhV,EAAKrmV,OACL,MAAO,CACHmQ,KAAM,WACN03G,OAAQw+N,EACRv4M,aAAcA,KAI1B,SAASw4M,IACL,IAAI9zU,EAAI1N,EAAM,2BACd,GAAK0N,EAAL,CAGA,IAAIqD,EAASrD,EAAE,GAEf,KADAA,EAAI1N,EAAM,iBAEN,OAAOX,EAAM,2BAEjB,IAIIkjH,EAJAziH,EAAO4N,EAAE,GACb,IAAKvL,IACD,OAAO9C,EAAM,0BAIjB,IADA,IAAIy9G,EAASqkO,IACN5+N,EAAQowI,KACX71I,EAAOl8G,KAAK2hH,GACZzF,EAASA,EAAOpgH,OAAOykV,KAE3B,OAAKpjH,IAGE,CACH1yN,KAAM,YACNvL,KAAMA,EACNiR,OAAQA,EACRqyO,UAAWtmI,GANJz9G,EAAM,2BASrB,SAASoiV,IAEL,GADQzhV,EAAM,YAGV,MAAO,CACHqL,KAAM,OACNuzB,UAHMI,KAAc,GAIpBgqG,aAAcA,KAI1B,SAAS04M,IACL,IAAIh0U,EAAI1N,EAAM,gFACd,GAAI0N,EAEA,MAAO,CACHrC,KAAM,kBACNvL,KAHO,GAAGpD,OAAOgR,EAAE,GAAI,KAAKhR,OAAOgR,EAAE,KAAOA,EAAE,GAAK,IAAIhR,OAAOgR,EAAE,IAAM,IAItEs7H,aAAcA,KAI1B,SAAS24M,IAEL,GADQ3hV,EAAM,kBAEV,MAAO,CACHqL,KAAM,YACN29H,aAAcA,KAI1B,SAAS44M,IACL,IAAIl0U,EAAI1N,EAAM,uBACd,GAAI0N,EACA,MAAO,CACHrC,KAAM,WACN+5C,SAAU13C,EAAE,GAAGwI,OACfkpU,MAAOA,KAInB,SAASyC,IAEL,GADQ7hV,EAAM,aAEV,MAAO,CACHqL,KAAM,OACN+zU,MAAOA,KAInB,SAAS0C,IACL,IAAIp0U,EAAI1N,EAAM,mBACd,GAAI0N,EACA,MAAO,CACHrC,KAAM,QACNsC,OAAQD,EAAE,IAAM,IAAIwI,OACpBkpU,MAAOA,KAInB,SAAS2C,IACL,IAAIr0U,EAAI1N,EAAM,2CACd,GAAI0N,EACA,MAAO,CACHrC,KAAM,eACNvL,KAAM4N,EAAE,GAAGwI,OACXvI,MAAOD,EAAE,GAAGwI,QAIxB,SAAS8rU,IACL,IAAIt0U,EAAI1N,EAAM,gCACd,GAAI0N,EACA,MAAO,CACHrC,KAAM,WACN1N,SAAU+P,EAAE,GAAGwI,OACfnF,OAAQrD,EAAE,GAAKA,EAAE,GAAGwI,OAAS,KAC7BkpU,MAAOA,KAInB,SAAS6C,IACL,IAAIv0U,EAAI1N,EAAM,2CACd,GAAI0N,EACA,MAAO,CACHrC,KAAMqC,EAAE,GACR5N,KAAM4N,EAAE,GAAGwI,QAIvB,SAASmrU,IAEL,GADAH,IACe,MAAXH,EAAI,GAAY,CAChB,IAAIzsO,EAAM2tO,KAAUN,KAAiBG,KAAcN,KAAkBI,KAAiBI,KAAiBD,KAAiBF,KAAaJ,KAAaC,IAClJ,OAAIptO,IAAQgwG,EAAS08H,gBAEb1sO,EAAI00B,aACS10B,EAAI00B,aAAah1C,MAAK,SAAUprB,GACzC,MAAO,QAAQx9D,KAAKw9D,EAAKjjE,WAGnB2uG,EAAI8uI,WAAa9uI,EAAI8qO,OAAS,IACvBprP,MAAK,SAAU9tF,GAC5B,OAAQA,EAAI8iI,cAAgB,IAAIh1C,MAAK,SAAUprB,GAC3C,MAAO,QAAQx9D,KAAKw9D,EAAKjjE,cAIjB2uG,EAAM,GAEvBA,GAGf,SAASzwE,IACL,IAAKygL,EAAS08H,eAAgB,CAC1B,IAAIkB,EAAkB5B,GAAc,IAAK,IAAKS,GAC9C,GAAImB,EAAiB,CACjB,IAAIC,EAAa,2BAA2B/2U,KAAK82U,EAAgBpjF,MAAQ,YAAY1zP,KAAK82U,EAAgB12U,MACtG42U,EAAa,QAAQh3U,KAAK82U,EAAgB12U,MAC9C,IAAK22U,IAAeC,EAEhB,OADArB,EAAMA,EAAIvjV,MAAM0kV,EAAgBjnT,IAAM,GAC/B,IAInB,IAAIonT,EAAMrjT,KAAc,GACpBknG,EAAQo+E,EAAS08H,eAAiBh4M,IAAiBA,IAAe5xH,QAAO,SAAUwxD,GACnF,IAAIu5Q,EAAaE,EAAIruP,MAAK,SAAU/5F,GAChC,MAAO,2BAA2BmR,KAAKnR,OACpC,QAAQmR,KAAKw9D,EAAKnxD,UACrB2qU,EAAa,QAAQh3U,KAAKw9D,EAAKjjE,OACnC,OAAOw8U,GAAcC,KAKzB,OAHKC,EAAInnV,QACLmE,EAAM,oBAEH,CACHgM,KAAM,OACNuzB,UAAWyjT,EACXr5M,aAAc9C,GAGtB,SAASk5M,EAAMkD,GACX,IAAKA,IAASngV,IACV,OAAO9C,EAAM,eAIjB,IAFA,IAAIigC,EACA8/S,EAAQ+B,IACLJ,EAAI7lV,SAAWonV,GAAmB,MAAXvB,EAAI,MAAgBzhT,EAAO+hT,KAAax9S,MAC9DvE,EAAKj0B,MACL+zU,EAAMx+U,KAAK0+B,GAEf8/S,EAAQA,EAAM1iV,OAAOykV,KAEzB,OAAKmB,GAASvkH,IAGPqhH,EAFI//U,EAAM,eAIrB,MAAO,CACHgM,KAAM,aACNk3U,WAAY,CACRnD,MAAOA,GAAAA,GACPpqU,OAAQA,IAKpB,SAASwtU,GAAUC,GACf,IAAI7sU,EAAUhX,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC9Ek0H,EAAW,CACX4vN,WAAAA,EACA3yN,MAAO,GACP4yN,UAAW,cAEXr+H,EAAWy4H,GAAS,GAAIjqN,EAAUl9G,GAClCgtU,EAAqB,IAAIzsU,OAAO,IAAIzZ,OAAO4nN,EAASo+H,UAAY,OAAS,OAAQ,MAkBrF,MAjBuB,iBAAZD,IACPA,EAAU3B,GAAS2B,EAASn+H,IAEhCm+H,EAAQF,WAAWnD,MAAMvnU,SAAQ,SAAUgsB,GACrB,SAAdA,EAAKx4B,MAAoBw4B,EAAKjF,UAAUo1D,MAAK,SAAU/5F,GACvD,OAAO2oV,EAAmBx3U,KAAKnR,OAInC4pC,EAAKmlG,aAAanxH,SAAQ,SAAU+wD,EAAM/tE,GACtC,IAAIylB,EAAOsoD,EAAKnxD,SACZ9R,EAAQijE,EAAKjjE,MACb2a,GAA+B,IAAvBA,EAAKxe,QAAQ,QACrBwiN,EAASv0F,MAAMzvG,GAAQ3a,SAI5B2+M,EAASv0F,MAGpB,SAAS8yN,GAAaC,GAClB,IAAIC,EAAQnkV,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC5Ey8C,EAAKz8C,UAAU1D,OAAS,EAAI0D,UAAU,QAAA,EACtCokV,EAAgB,CAChBC,QAAS,SAAiB3jT,GACtB,MAAO,YAAcA,EAAKx/B,KAAO,KAErCg+J,QAAS,SAAiBx+H,GACtB,OAAqD,IAA9CA,EAAKw+H,QAAQh8J,QAAQ,qBAA6B,KAAOw9B,EAAKw+H,QAAU,KAAO,IAE1F,eAAgB,SAAqBx+H,GACjC,MAAO,iBAAmBA,EAAKx/B,KAAO,IAAMw/B,EAAK3xB,MAAQ,KAE7DwvK,YAAa,SAAqB79I,GAC9B,OAAOA,EAAK7nB,SAAW,IAAM6nB,EAAK35B,MAAQ,KAE9ChI,SAAU,SAAkB2hC,GACxB,MAAO,KAAOA,EAAKvuB,QAAU,IAAM,YAAcuuB,EAAK3hC,SAAW,IAAM2rM,EAAMhqK,EAAK8/S,OAAS,KAE/F,YAAa,SAAkB9/S,GAC3B,MAAO,cAAqBgqK,EAAMhqK,EAAK0pG,cAAgB,KAE3DpzG,KAAM,SAAc0J,GAChB,MAAO,SAAgBgqK,EAAMhqK,EAAK8/S,OAAS,KAE/C5zJ,OAAQ,SAAiBlsJ,GACrB,MAAO,WAAaA,EAAKx/B,KAAO,KAEpC6yP,SAAU,SAAkBrzN,GACxB,OAAOA,EAAKyjF,OAAOn9G,KAAK,KAAO,IAAM0jM,EAAMhqK,EAAK0pG,cAAgB,KAEpEo6G,UAAW,SAAmB9jN,GAC1B,MAAO,KAAOA,EAAKvuB,QAAU,IAAM,aAAeuuB,EAAKx/B,KAAO,IAAMwpM,EAAMhqK,EAAK8jN,WAAa,KAEhGz1O,MAAO,SAAe2xB,GAClB,MAAO,UAAYA,EAAK3xB,MAAQ,IAAM27L,EAAMhqK,EAAK8/S,OAAS,KAE9Dl5T,UAAW,SAAmBoZ,GAC1B,MAAO,cAAgBA,EAAKx/B,KAAO,KAEvCu4Q,KAAM,SAAc/4O,GAChB,MAAO,UAAYA,EAAKV,UAAU1jC,OAASokC,EAAKV,UAAUh5B,KAAK,MAAQ,IAAM,IAAM0jM,EAAMhqK,EAAK0pG,cAAgB,KAElH,kBAAmB,SAAuB1pG,GACtC,MAAO,IAAMA,EAAKx/B,KAAO,IAAMwpM,EAAMhqK,EAAK0pG,cAAgB,KAE9DnlG,KAAM,SAAcvE,GAChB,IAAI4mG,EAAQ5mG,EAAK0pG,aACjB,GAAI9C,EAAMhrI,OACN,OAAOokC,EAAKV,UAAUh5B,KAAK,KAAO,IAAM0jM,EAAMpjE,GAAS,KAG/D9gF,SAAU,SAAkB9lB,GACxB,MAAO,aAAeA,EAAK8lB,SAAW,IAAMkkJ,EAAMhqK,EAAK8/S,OAAS,MAGxE,SAAS91I,EAAMi0D,GAEX,IADA,IAAIxiH,EAAM,GACDlgJ,EAAI,EAAGA,EAAI0iQ,EAAMriQ,OAAQL,IAAK,CACnC,IAAI+V,EAAI2sP,EAAM1iQ,GACVwgD,GACAA,EAAGzqC,GAEP,IAAIsyU,EAAMF,EAAcpyU,EAAEvF,MAAMuF,GAC5BsyU,IACAnoM,GAAOmoM,EACHA,EAAIhoV,QAAU0V,EAAEguB,YAChBm8G,GAAOgoM,IAInB,OAAOhoM,EAEX,OAAOuuD,EAAMw5I,EAAKP,WAAWnD,OAGjC,SAAS+D,GAAQ7jT,EAAMh7B,GACnBg7B,EAAK8/S,MAAMvnU,SAAQ,SAAUgsB,GACrBA,EAAKu7S,MACL+D,GAAQt/S,EAAMv/B,GAGdu/B,EAAKu/M,UACLv/M,EAAKu/M,UAAUvrO,SAAQ,SAAU86O,GACP,aAAlBA,EAAStnP,MACT/G,EAAGquP,EAAS3pH,aAAcnlG,MAKjCA,EAAKmlG,cAGV1kI,EAAGu/B,EAAKmlG,aAAc1pG,MAQ9B,SAAS8jT,GAAaX,GAClB,IAAI7sU,EAAUhX,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC9Ek0H,EAAW,CACXkuN,gBAAAA,EACAqC,cAAAA,EACAC,UAAW,GACXX,UAAW,cAEXr+H,EAAWy4H,GAAS,GAAIjqN,EAAUl9G,GAoCtC,MAnCuB,iBAAZ6sU,IACPA,EAAU3B,GAAS2B,EAASn+H,IAEhC6+H,GAAQV,EAAQF,YAAY,SAAUv5M,EAAc1pG,GAChD,IAAK,IAAIzkC,EAAI,EAAGA,EAAImuI,EAAa9tI,OAAQL,IAAK,CAC1C,IAAI+tE,EAAOogE,EAAanuI,GACpBwQ,EAAOu9D,EAAKv9D,KACZiV,EAAOsoD,EAAKnxD,SACZ9R,EAAQijE,EAAKjjE,MACjB,GAAa,gBAAT0F,EAGJ,GAAKi5M,EAAS++H,eAAgB/iU,GAA8C,IAAtCA,EAAKxe,QAzB7B,OA8Bd,IAAkD,IAA9C6D,EAAM7D,QAAQyhV,QAAmC,CACjD,IAAIC,EAAgBC,GAAa99U,EAAO2+M,GACpCk/H,IAAkB56Q,EAAKjjE,QACvB69U,EAAgBE,GAAcF,GACzBl/H,EAAS++H,cAGVr6M,EAAaloI,OAAOjG,EAAG,EAAG,CACtBwQ,KAAMA,EACNoM,SAAU6I,EACV3a,MAAO69U,IAEX3oV,KAPA+tE,EAAKjjE,MAAQ69U,SATrBx6M,EAAaloI,OAAOjG,EAAG,GACvBA,QAqBLgoV,GAAaJ,GAGxB,SAASiB,GAAc/9U,GAMnB,OAJCA,EAAM3F,MADS,qBACW,IAAI6X,SAAQ,SAAU7X,GAC7C,IAAI2jV,EAAS,OAAOjnV,OAAOsD,EAAM0B,MAAM,QAAQkE,KAAK,KACpDD,EAAQA,EAAMoG,QAAQ/L,EAAO2jV,MAE1Bh+U,EAGX,SAAS89U,GAAa99U,GAClB,IAAI2+M,EAAW1lN,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC/EglV,EAAsBhlV,UAAU1D,OAAS,EAAI0D,UAAU,QAAA,EAC3D,IAA+B,IAA3B+G,EAAM7D,QAAQ,QACd,OAAO6D,EAEX,IAAIk+U,EAAYvD,GAAc,IAAK,IAAK36U,GACxC,SAASm+U,EAAYn+U,GACjB,IAAI7F,EAAO6F,EAAMjE,MAAM,KAAK,GAAGqK,QAAQ,YAAa,IAChDi4N,GAAYr+N,EAAM3F,MAAM,wBAA0B,IAAI,GACtDA,EAAQiG,OAAOb,UAAU3G,eAAeE,KAAK2lN,EAASg/H,UAAWxjV,GAAQvE,OAAO+oN,EAASg/H,UAAUxjV,SAAAA,EACnGgW,EAAc9V,IAAUgkO,EAAWzoO,OAAOyoO,QAAAA,GAC1C+/G,EAAqBH,GAAuBj+U,EAIhD,OAHK3F,GACDskN,EAASq+H,UAAU,aAAajmV,OAAOoD,EAAM,mBAE7CgW,GAA+B,cAAhBA,GAA+BA,EAAY5a,OAAS,EAC5DuoV,GAAa3tU,EAAawuM,EAAUy/H,GAEpC,OAAOrnV,OAAOqnV,EAAoB,KAGjD,GAAKF,EAKE,CAAA,GAAgC,QAA5BA,EAAU/kF,IAAIthQ,OAAO,GAAc,CAC1C,IAAIwmV,EAAkD,IAAjCH,EAAUr4U,KAAK0K,OAAOhb,OAC3C,OAAI8oV,GACA1/H,EAASq+H,UAAU,8CACZh9U,GAEAk+U,EAAU/kF,IAAIthQ,MAAM,GAAI,GAAKsmV,EAAYD,EAAUr4U,MAAQi4U,GAAaI,EAAUp+H,KAAMnB,GAGnG,OAAOu/H,EAAU/kF,IAAM,IAAIpiQ,OAAO+mV,GAAaI,EAAUr4U,KAAM84M,GAAW,KAAOm/H,GAAaI,EAAUp+H,KAAMnB,GAV9G,OAH+B,IAA3B3+M,EAAM7D,QAAQ,SACdwiN,EAASq+H,UAAU,qCAAqCjmV,OAAOiJ,EAAO,MAEnEA,EArjBf46U,GAAS0D,MAAQ,GAmkBjB,IAAI,GAA8B,oBAAX7mV,OAEnB,GAAkB,IAAaA,OAAOu1H,KAAOv1H,OAAOu1H,IAAIvtE,UAAYhoD,OAAOu1H,IAAIvtE,SAAS,YAExF8+R,GAAW,CACX1lS,MAAO,EACP2lS,IAAK,GAGL,GAAW,CACXr2F,YAAa,GAAYnwP,SAAW,KACpCymV,WAAAA,EACAhG,QAAS,6BACTC,QAAS,GACTiF,UAAW,GACXe,YAAAA,EACArD,gBAAAA,EACAqC,cAAAA,EACAiB,QAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,MAAO,KACPjH,aAAc,aACdp4N,QAAS,aACTu9N,UAAW,aACXx9N,UAAW,aACX3sF,WAAY,aACZksT,UAAW,cAGX99S,GAAQ,CACR+9S,YAAa,oBACbC,aAAc,uBACdC,gBAAiB,gCACjBC,QAAS,0DACTC,gBAAiB,qDACjBC,YAAa,+CACbC,WAAY,kBACZC,QAAS,+FAGTC,GAAgB,CAChBprO,IAAK,GACLoqO,IAAK,GACLnpO,KAAM,IAGNoqO,IAAAA,EAEAC,GAAkB,KAElBC,GAAsB,EAEtBC,GAAgB,KAEhBC,IAAAA,EA8FA,SAASN,KACT,IAAItvU,EAAUhX,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC9E6mV,EAAY,cACZnhI,EAAWy4H,GAAS,GAAI,GAAUnnU,GACtC,SAASqyI,EAAY3oJ,EAASomV,EAAYzjV,EAAKjD,IACtCslN,EAASggI,QAAUlnV,OAAOsH,SAC3BA,QAAQrF,MAAM,GAAG3C,OAAO+oV,GAAW/oV,OAAO4C,EAAS,MAAOomV,GAE9DphI,EAASl/F,QAAQ9lH,EAASomV,EAAYzjV,EAAKjD,GAE/C,SAAS2mV,EAAcrmV,IACdglN,EAASggI,QAAUlnV,OAAOsH,SAC3BA,QAAQyG,KAAK,GAAGzO,OAAO+oV,GAAW/oV,OAAO4C,IAE7CglN,EAASq+H,UAAUrjV,GAEvB,SAASsmV,EAAcC,GACnBvhI,EAASogI,UAAU3gO,QAAQ8hO,GAAa,GAAiBC,KAAiBxhI,EAASyhI,aAEvF,GAAK,GAAL,CAGA,GAAIzhI,EAASmgI,MAIT,OAHAngI,EAASmgI,MAAQ,GAASA,MAC1BuB,GAAoB1hI,QACpB4gI,GAAQ5gI,GAMZ,IAAA,IAJWA,EAASmgI,OAAmBY,KACnCA,GAAgB11G,aAChB01G,GAAkB,OAEjB/gI,EAASyhI,YAAa,CACvB,GAAIX,KAAqB9gI,EAASwpC,YAE9B,YADAm4F,GAAiBrwU,GAQrB,GALA0uM,EAASyhI,YAAcD,KACvBxhI,EAAS+5H,QAAU,CAAEgH,GAAkB,wCAA0C,uBAAwB/gI,EAAS+5H,SAAUjnU,QAAO,SAAU4nB,GACzI,OAAOA,KACPp5B,KAAK,KACT0+M,EAASg/H,UAAY4C,GAAY5hI,EAASg/H,YACrC+B,GAAiB,CAClB,IAAIc,EAAWx/U,MAAMjI,MAAM,KAAM4lN,EAASwpC,YAAYhuB,iBAAiB,yBAQvE,GAPAqmH,EAAStuU,SAAQ,SAAUuuU,GACvB,IAAIC,EAAYD,EAAQhnT,aAAa,sBACvBinT,GAAY/hI,EAASwpC,YAAY9mO,cAAc,4CAA4CtqB,OAAO2pV,EAAW,QAEvHD,EAAQ/4U,WAAWC,YAAY84U,MAGnCd,GAAqB,CACrB,IAAIgB,EAAWhiI,EAASwpC,YAAYhuB,iBAAiB,4CACjDwmH,EAASprV,OAASoqV,KAClBA,GAAsBgB,EAASprV,OAC/BiqV,GAAcprO,IAAM,MAKpC,GAA4B,YAAxBp8G,SAASoQ,WACT,GAAI,IAAmBu2M,EAAS+/H,WAAY,CACxC,IAAIkC,GAAAA,EACJ,GAAIjiI,EAASigI,UAAW,CACpB,IAAIiC,EAAYliI,EAASwpC,YAAYl4N,OAAS0uL,EAASwpC,cAAgBnwP,SAAWA,SAASsP,gBAAkBq3M,EAASwpC,aACtH7nP,OAAOP,KAAK4+M,EAASg/H,WAAWzrU,SAAQ,SAAUzb,GAC9C,IAAIqqV,EAAWniI,EAASg/H,UAAUlnV,GAClCmqV,EAAeA,GAAgBE,IAAazwT,iBAAiBwwT,GAAWz/F,iBAAiB3qP,GACzFoqV,EAAU95U,MAAMglI,YAAYt1I,EAAKqqV,MAGzCb,EAAcW,QACNf,KAAqBlhI,EAAS8/H,WAAa9/H,EAASwpC,YAAYlP,YAAct6B,EAASwpC,YAAYl4N,MAC3GuoT,GAAW,CACPrwF,YAAa,GAASA,YACtBswF,QAAS,GAASA,QAClBC,QAAS/5H,EAAS+5H,QAClBC,cAAAA,EACAn5N,UAAW,SAAmBx4G,EAAS2yB,EAAMtgC,GAGzC,OADA2N,IADAA,EAAUA,EAAQZ,QAAQ66B,GAAM+9S,YAAa,IAAI54U,QAAQ66B,GAAMi+S,gBAAiB,KAC7D7kV,MAAM4mC,GAAMm+S,kBAAoB,IAAIn/U,KAAK,OAAA,GAGhE4yB,WAAY,SAAoB7rB,EAAS8xU,EAAU//S,GAC/C8jT,GAAU71U,EAAS,CACfojH,MAAOo1N,GAAcprO,IACrB4oO,UAAWgD,IAEfH,IAAAA,EACAN,GAAQ5gI,OAIhB8gI,GAAmB9gI,EAASwpC,YAC5BqwF,GAAW,CACPrwF,YAAaxpC,EAASwpC,YACtBswF,QAAS95H,EAAS85H,QAClBC,QAAS/5H,EAAS+5H,QAClBC,cAAAA,EACAd,aAAcl5H,EAASk5H,aACvBp4N,QAAS,SAAiBnjH,EAAKq9B,EAAMtgC,GACjC,IAAI0nV,EAAczkV,EAAImuN,aAAeu2H,GAAa3nV,EAAKpB,SAASC,MAC5DuwN,EAAansN,EAAImsN,WAAa,IAAI1xN,OAAOuF,EAAImsN,WAAY,KAAO,qBAAsC,IAAfnsN,EAAII,OAAe,2BAA6B,IAE3I4lJ,EADe,kBAAkBvrJ,OAAOgqV,EAAa,KAAKhqV,OAAOuF,EAAII,OAAQ,KAAK3F,OAAO0xN,GACnE9uL,EAAMr9B,EAAKykV,IAErCvhO,UAAW,SAAmBx4G,EAAS2yB,EAAMtgC,GACzC,IAAI8+U,EAAYx5H,EAASn/F,UAAUx4G,EAAS2yB,EAAMtgC,GAKlD,OAJA2N,OAAAA,IAAUmxU,IAAAA,IAA2B/5N,QAAQ+5N,GAAuB,GAAKA,GAAanxU,EAClF23M,EAASkgI,aACT73U,EAAUi6U,GAAmBj6U,EAAS3N,IAEnC2N,GAEX6rB,WAAY,SAAoB7rB,EAAS8xU,GACrC,IAAI//S,EAAY9/B,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAChFioV,EAAc9J,GAAS,GAAIoI,GAAcprO,IAAKorO,GAAcnqO,MAmChE,GAjCAmqO,GAAchB,IAAM,GACpBzlT,EAAU7mB,SAAQ,SAAUynB,EAAMzkC,GAC9B,IAAIisV,EAAUrI,EAAS5jV,GACvB,GAAI+rC,GAAMs+S,QAAQ95U,KAAK07U,GACnB,IACI,IAAIC,EAAUjG,GAASgG,EAAS,CAC5B9F,eAAgB18H,EAAS08H,eACzBC,gBAAAA,IAEJuB,GAAUuE,EAAS,CACfrE,UAAW3+N,QAAQugG,EAASwpC,YAAYl4N,MACxCm6F,MAAOo1N,GAAcprO,IACrB4oO,UAAWgD,IAEfrmT,EAAK0nT,UAAY,CACblE,KAAMiE,GAEZ,MAAO/gV,GACLiiJ,EAAYjiJ,EAAI1G,QAASggC,OAIrCy9S,GAASoI,GAAchB,IAAKgB,GAAcprO,KACtCuqG,EAASigI,WACTxH,GAASoI,GAAcnqO,KAAMspG,EAASg/H,WACtCvG,GAASoI,GAAchB,IAAKgB,GAAcnqO,QAE1C+hO,GAASoI,GAAchB,IAAKgB,GAAcnqO,KAAMspG,EAASg/H,WACzDvG,GAAS8J,EAAaviI,EAASg/H,YAEpBY,GAASC,IAAM,GAAKpgO,QAAQ99G,OAAOP,KAAKy/U,GAAchB,KAAKjpV,OAAS+K,OAAOP,KAAKmhV,GAAa3rV,QAAU6oH,QAAQ99G,OAAOP,KAAKmhV,GAAa3rV,QAAU+K,OAAOP,KAAKy/U,GAAchB,KAAKnwP,MAAK,SAAU53F,GAC3M,OAAO+oV,GAAchB,IAAI/nV,KAASyqV,EAAYzqV,QAG9C6qV,GAAc3iI,EAASwpC,aACvBo3F,GAAQ5gI,OACL,CACH,IAAI4iI,EAAc,GACdC,EAAe,GACfC,GAAAA,EAkEJ,GAjEI9iI,EAASigI,WACTL,GAASC,MAEbzlT,EAAU7mB,SAAQ,SAAUynB,EAAMzkC,GAC9B,IAAIslV,GAAU7gT,EAAK0nT,UACnB,GAAI1nT,EAAK0nT,UACL,IACI5D,GAAa9jT,EAAK0nT,UAAUlE,KAAM/F,GAAS,GAAIz4H,EAAU,CACrDg/H,UAAW6B,GAAchB,IACzBxB,UAAWgD,KAEf,IAAI0B,EAASxE,GAAavjT,EAAK0nT,UAAUlE,MACzC,GAAIx+H,EAASigI,UAAW,CACpB,IACI+C,EAAgB1gT,GAAMq+S,WAAW75U,KADvBqzU,EAAS5jV,IAKvB,GAHKykC,EAAKF,aAAa,iBACnBE,EAAK1yB,aAAa,eAAgB,OAElCy6U,EAAOnsV,QAAUosV,EAAe,CAChC,IAAIjB,EAAY/mT,EAAKF,aAAa,yBAA2B8kT,GAAS1lS,MAClE+oS,EAAiBF,EAAOt7U,QAAQ,MAAO,IACvCq6U,EAAU9hI,EAASwpC,YAAY9mO,cAAc,4CAA4CtqB,OAAO2pV,EAAW,QAAU1oV,SAAS+M,cAAc,SAChJ08U,EAAuBA,GAAwBxgT,GAAMg+S,aAAax5U,KAAKi8U,GACnE/iI,EAAS08H,iBACT1hT,EAAKoyO,MAAMhgE,UAAAA,GAEV00I,EAAQvkT,aAAa,iBACtBukT,EAAQx5U,aAAa,eAAgB,OAErC26U,IAAmBjoT,EAAKwF,YAAY/4B,QAAQ,MAAO,KACnDo0U,GAAAA,EACIiG,GAAWA,EAAQ/4U,aACnBiyB,EAAK2C,gBAAgB,sBACrBmkT,EAAQ/4U,WAAWC,YAAY84U,KAE5BmB,IAAmBnB,EAAQthT,YAAY/4B,QAAQ,MAAO,MAC7D,CAAEuzB,EAAM8mT,GAAUvuU,SAAQ,SAAUjH,GAChCA,EAAEhE,aAAa,mBAAoBs3U,GAASC,KAC5CvzU,EAAEhE,aAAa,qBAAsBy5U,MAEzCD,EAAQthT,YAAcuiT,EACtBH,EAAYtmV,KAAKymV,GACjBF,EAAavmV,KAAKwlV,GACbA,EAAQ/4U,YACTiyB,EAAKjyB,WAAWH,aAAak5U,EAAS9mT,EAAK85G,oBAKnD95G,EAAKwF,YAAY/4B,QAAQ,MAAO,MAAQs7U,GACxCH,EAAYtmV,KAAKymV,GAG3B,MAAOrhV,GACLiiJ,EAAYjiJ,EAAI1G,QAASggC,GAG7B6gT,GACA7gT,EAAK1yB,aAAa,eAAgB,QAEjC0yB,EAAKuC,aAAa,qBACnBvC,EAAK1yB,aAAa,mBAAoBs3U,GAASC,QAGvDmB,GAAsBhhI,EAASwpC,YAAYhuB,iBAAiB,4CAA4C5kO,OACpGopN,EAAS8/H,UAET,IADA,IACgB/+F,EADZ8K,EAAO,CAAE7rC,EAASwpC,aAAcpxP,OAAOsgV,GAAmB14H,EAASwpC,YAAYhuB,iBAAiB,OAC3FjlO,EAAI,EAAQwqP,EAAM8K,EAAKt1P,KAAMA,EAClC,GAAIwqP,EAAIzG,YAAcyG,EAAIzG,WAAW53N,cAAc,SAAU,CACzD,IAAIwgU,EAAiBzK,GAAS,GAAIz4H,EAAU,CACxCwpC,YAAazI,EAAIzG,aAErBsmG,GAAQsC,GAIhBljI,EAASigI,WAAa6C,GACtBK,GAAanjI,EAASwpC,aAE1Bs3F,IAAAA,EACA9gI,EAAS9rL,WAAW0uT,EAAYthV,KAAK,IAAKuhV,EAAc/gV,KAAKsP,MAAMtP,KAAKC,UAAU8+U,GAAchB,MAAO2B,KAAiBxhI,EAASyhI,aACjIH,EAAcuB,EAAajsV,kBAM3CyC,SAASg2B,iBAAiB,oBAAoB,SAAUu4F,EAAKvvD,GACzDuoR,GAAQtvU,GACRjY,SAASk2B,oBAAoB,mBAAoBq4F,OAqB7D,SAAS85N,GAAoB1hI,GACzB,SAAS3T,EAAWrxK,GAGhB,OAFqBA,EAAKuC,aAAa,cAChBvC,EAAKoyO,OAAS,IAAIhgE,SAG7C,SAASwuI,EAAO5gT,GAEZ,MADoC,SAAjBA,EAAKtxB,UAAkF,KAA3DsxB,EAAKF,aAAa,QAAU,IAAIt9B,QAAQ,gBAC/D6uM,EAAWrxK,GAkClCliC,OAAO6xO,mBAGRo2G,KACAA,GAAgB11G,aAChB01G,GAAkB,OAEtBA,GAAkB,IAAIp2G,kBAAiB,SAAUM,GACtBA,EAAUv7I,MAAK,SAAU0zP,GAC5C,IAtCoBC,EAsChBpxN,GAAAA,EAMJ,MALsB,eAAlBmxN,EAASr8U,KACTkrH,EAAU2pN,EAAOwH,EAAS78U,QACD,cAAlB68U,EAASr8U,OAzCAs8U,EA0CaD,EAASE,WAAtCrxN,EAzCD5vH,MAAMjI,MAAM,KAAMipV,GAAe3zP,MAAK,SAAU10D,GACnD,IACIuoT,EAD0B,IAAlBvoT,EAAKzJ,UACMyJ,EAAKuC,aAAa,gBACrCimT,EAPZ,SAAiBxoT,GACb,MAAwB,UAAjBA,EAAKtxB,UAAwB2iM,EAAWrxK,GADnD,CAOsCA,IAASsH,GAAMs+S,QAAQ95U,KAAKk0B,EAAKwF,aAE/D,OADe+iT,IAAY3H,EAAO5gT,IAASwoT,OAKxCnhV,MAAMjI,MAAM,KAgCgEgpV,EAASK,cAhCpD/zP,MAAK,SAAU10D,GACnD,IAAI0oT,EAA0B,IAAlB1oT,EAAKzJ,SACboyT,EAAYD,GAA+C,QAAtC1oT,EAAKF,aAAa,gBACvC8oT,EAAYF,GAA+C,QAAtC1oT,EAAKF,aAAa,gBACvCm3F,EAAU2xN,EACd,GAAIA,GAAaD,EAAW,CACxB,IAAI5B,EAAY/mT,EAAKF,aAAa,sBAC9B+oT,EAAa7jI,EAASwpC,YAAY9mO,cAAc,wBAAwBtqB,OAAO2pV,EAAW,OAC1F6B,IACAjB,GAAc3iI,EAASwpC,aACvBq3F,GAAcprO,IAAM,IAEpBouO,GACAA,EAAW96U,WAAWC,YAAY66U,GAG1C,OAAO5xN,MAkBAA,MAGP2uN,GAAQ5gI,OAGAjkM,QAAQ1iB,SAASsP,gBAAiB,CAC9CsZ,YAAAA,EACA6hU,gBAAiB,CAAE,WAAY,QAC/B34G,WAAAA,EACAC,SAAAA,KAIR,SAASu2G,GAAiB3hI,GACtB,IAAItgH,EAAQplG,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,IAChFkR,aAAay1U,IACbA,GAAgBhlV,YAAW,WACvB+jN,EAASyhI,YAAc,KACvBb,GAAQ5gI,KACRtgH,GAGR,SAASyjP,GAAa35F,GAClB,IAAIu6F,EAAoB,CAAE,iBAAkB,sBAAuB,0BAA2BjxU,QAAO,SAAUkJ,GAC3G,OAAO0V,iBAAiBr4B,SAAS6N,MAAM8U,MACvC,GACJ,GAAI+nU,EAAmB,CAInB,IAHA,IAAIC,EAAWx6F,EAAY9gP,qBAAqB,KAC5Cu7U,EAAgB,GAEX1tV,EAAI,EAAGD,EAAM0tV,EAASptV,OAAQL,EAAID,EAAKC,IAAK,CACjD,IAAIykC,EAAOgpT,EAASztV,GAEE,SADFm7B,iBAAiBsJ,GAAM+oT,KAEvC/oT,EAAK5yB,MAAM27U,IALF,gCAMTE,EAAc3nV,KAAK0+B,IAGtB3hC,SACL,IAAK,IAAI6G,EAAK,EAAGgkV,EAAOD,EAAcrtV,OAAQsJ,EAAKgkV,EAAMhkV,IAAM,CAC3D,IAAIikV,EAAYF,EAAc/jV,GAAIkI,MAClC+7U,EAAUJ,GAAqBI,EAAUJ,GAAmBt8U,QAZ/C,gCAYmE,MAK5F,SAAS66U,GAAmBj6U,EAAS8uU,GAOjC,OANc9uU,EAAQZ,QAAQ66B,GAAM+9S,YAAa,IAAI3kV,MAAM4mC,GAAMk+S,UAAY,IACrEjtU,SAAQ,SAAU6wU,GACtB,IAAI5I,EAAS4I,EAAO38U,QAAQ66B,GAAMk+S,QAAS,MACvC/E,EAAS4G,GAAa7G,EAAQrE,GAClC9uU,EAAUA,EAAQZ,QAAQ28U,EAAQA,EAAO38U,QAAQ+zU,EAAQC,OAEtDpzU,EAGX,SAASu5U,KACL,IAAIyC,EAAS/pV,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAK,GAC7EgqV,EAAmB,QACvB,OAAO3iV,OAAOP,KAAKijV,GAAQvkV,QAAO,SAAU8B,EAAKP,GAG7C,OADAO,EADU0iV,EAAiBx9U,KAAKzF,GAASA,EAAQ,KAAKjJ,OAAOiJ,EAAMoG,QAAQ,MAAO,MACvE48U,EAAOhjV,GACXO,IACP,IAGR,SAASygV,GAAa3nV,GAClB,IAAIkrH,EAAOtrH,UAAU1D,OAAS,QAAA,IAAK0D,UAAU,GAAmBA,UAAU,GAAKhB,SAASC,KACpFtD,EAAIoD,SAASyd,eAAeC,mBAAmB,IAC/CrhB,EAAIO,EAAEmQ,cAAc,QACpB3Q,EAAIQ,EAAEmQ,cAAc,KAKxB,OAJAnQ,EAAEykH,KAAKnyG,YAAY7S,GACnBO,EAAEiR,KAAKqB,YAAY9S,GACnBC,EAAE6D,KAAOqsH,EACTnwH,EAAE8D,KAAOmB,EACFjF,EAAE8D,KAGb,SAASioV,KACL,OAAO,KAAc1oV,OAAOmjF,aAAe,IAAIl0E,IAAMjP,OAAOmjF,YAAYl0E,OAAQ,IAAKD,MAAM8uO,UAG/F,SAAS+rG,GAAcn5F,GACFnnP,MAAMjI,MAAM,KAAMovP,EAAYhuB,iBAAiB,+CACrDjoN,SAAQ,SAAUynB,GACzB,OAAOA,EAAK1yB,aAAa,eAAgB,OA/JjDs4U,GAAQvlR,MAAQ,WAWZ,IAAK,IAAIr/C,KAVT4jU,GAASC,IAAM,EACfD,GAAS1lS,MAAQ,EACjB4mS,IAAAA,EACIC,KACAA,GAAgB11G,aAChB01G,GAAkB,MAEtBC,GAAsB,EACtBC,GAAgB,KAChBC,IAAAA,EACiBL,GACbA,GAAc7kU,GAAQ,IAuJf,IAAA,GAAA,GC98CR,SAASuoU,GAAW1/U,EAAkB2/U,EAAwB/rM,EAAyBghK,GAC1F,OAAO,WAEH,IAAM/+S,EAAMmK,EAAOkhN,YAAY,oBAAA,GAC/By+H,EAAMC,cACFhsM,EAAUisM,+BAA+BhqV,IAG7C,IAAMiqV,EAAe9/U,EAAO4Z,IAAI,mBAC5BmmU,EAAe,OAAH,OAAA,GAAOrM,IACnBoM,GAAgBA,EAAa/tV,QAC7B+tV,EAAapxU,SAAQqyP,SAAAA,GACjB,IAAMi/E,EAAgBj/E,EAAMi0C,QAAUy+B,GAAsBD,GACxDyM,EAAc,OAAH,OAAA,OAAA,OAAA,GAAOl/E,GAAK,CAAEk0C,OAAQ,OAAF,OAAA,OAAA,OAAA,GAAM+qC,GAAkBj/E,EAAMk0C,UACjE8qC,EAAaE,EAAYtpV,MAAQspV,KAIzC,IAAMtrC,EAASngT,SAASsP,gBAAgB+Z,cAAc,gBAYtD,OAVA+2R,EAAOsrC,UAAUvrC,GACjBC,EAAOurC,eAAeJ,GAEoB,oBAAX9rV,QAC3BA,OAAY,KACZA,OAAY,IAAEgoD,UACdhoD,OAAY,IAAEgoD,SAAS,aAEvB,GAAQ,CAACk+R,UAAWvlC,EAAOF,eAAel4S,MAAMy4S,SAE7C,IAAI3uS,SAAQwJ,SAAAA,GAAAA,OAAWA,QAgD/B,IAAMswU,GAAN,KAAMA,GAAN,SAAA,IAAA,gBAAA,KAAA,KAAA,UAAA,GAAA,CAAA,KAAMA,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,KAAmB,UAbjB,CACP,CACIhmN,QAASo4C,GACTrlB,WAAYuyL,GACZtyL,KAAM,CAAC,GAAU,GAAiB,GAAc,IAChDR,OAAAA,GAEJ,GACA,GACA,GACA,CAACxyB,QAAS,GAAkBmzB,SAAU,KACzC,QAAA,CAzCQ,CACL,GACA,GACA,GACA,GACA,GAGA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OAyBH,IAEE,GAAA,EAAA,QCnHM8yL,GAAgB,CACzB,yCACA,4CACA,kBACA,uBACA,uDAGA,4BACA,kCAGA,sFAGA,qFACA,+EAGA,qFAGA,oFACA,oGACA,0CACA,yCACA,8BAGA,0BACA,sDAGA,6DACA,uCACA,iEACA,+GAGA,4DCjCG,SAASC,GAA8BnlI,GAC1C,OAAO,IAAI,GAAsBA,GAG9B,ICmBMolI,GDnBA,GAAA,SAAA,GAAA,UAAA,EAAA,GAAA,IAAA,EAAA,aAAA,GAOT,SAAA,EAAsBplI,GAAAA,IAAAA,EAAAA,OAAAA,gBAAAA,KAAAA,IAClBhqF,EAAAA,EAAAA,KAAAA,OADkBgqF,SAAAA,EAFZ,EAAAqlI,WAAAA,EAEYrlI,EAkCM,OA9BrB,aAAA,EAAA,CAAA,CAAA,IAAA,cAAA,MAAA,SAAYt+M,EAAU4P,GAClB5P,IAIPs0H,KAAAA,gBAAAA,EAAAA,WAAAA,cAAAA,MAAAA,KAAAA,KAAkBt0H,GAGX9F,KAAK0pV,iBAIZ,GAAA,iBAAuB5jV,EAAIsxI,eAAiBtxI,EAAK4P,MAM3C,CAAA,IAAA,gBAAA,MAAA,WACN,QAAI1V,KAAKypV,aAGFzpV,KAAKokN,SAASruD,IAAI,2BAGzB,GAAA,OAAa/1J,KAAKokN,SAASvhM,IAAI,yBAA0B,CACrD20F,QAASx3G,KAAKokN,SAASvhM,IAAI,WAC3B60F,aAAc4xO,KACfrvO,UAEIj6G,KAAKypV,WAAAA,OAAY,EAzCnB,CAA8BvyM,ICmBpC,KAAMsyM,GAAN,WACH,SAAA,EAAoB/lN,GAAAA,gBAAAA,KAAAA,GAAA,KAAAA,SAAAA,EADjB,OAAA,aAAA,EAAA,CAAA,CAAA,IAAA,gBAAA,MAAA,SAGWniB,GACV,IAAMxiF,EAAW9+B,KAAKyjI,SAAS5gH,IAAI+kK,IAAe9oJ,SAClDwiF,EAAIunB,UAAU,GAAc/pG,OAL7B,EAAA,IAAA,UAAA,GAAA,CAAA,KAAM0qT,KAAAA,GAAAA,UAAAA,GAAAA,CAAAA,QAAAA,SAAAA,GAAAA,OAAAA,IAAAA,GAAAA,IAAS,GAAA,MAAA,UARP,CACP,CACInmN,QAAS6T,GACTkf,WAAYmzL,GACZlzL,KAAM,CAAC,MAEd,QAAA,CAXQ,CACL,GACA,GACA,OAQH,KAEE,WrU08MH,GAAIhe,GACA,MAAM,IAAIxyI,MAAM,iDAEpBuyI,IAAAA,GqU78MG,GCbPl7I,OAAc,MAAdA,WCHI,SAAA,EAAY+L,GAER,GAFQA,gBAAAA,KAAAA,GAHL,KAAAmI,Q/TKkB,Q+THlB,KAAAu4U,eAAkC,mBAAVC,MAE3B5pV,KAAK6pV,UAAU5gV,GACXjJ,KAAK2pV,eACL,OAAO,IAAIC,MAAM5pV,KAAM,CACnB,IADmB,SACf2K,EAAQm/U,GACR,IAAMrmN,EAAW94H,EAAOo/U,UAAUtmN,SAC5B56H,GAAW8B,EAAOpM,eAAeurV,IAAwB,kBAAZA,GAA+BrmN,EAC9EA,EAAS5gH,IAAI,IACblY,EACEgsC,EAAY9tC,EAAQihV,GAC1B,MAAyB,mBAAdnzS,EACAA,EAEA,WACH,OAAO8sF,EAAS5gH,IAAI+6J,IAAQyC,IAAI1pI,EAAW9tC,EAASnK,eDXhFxB,OAAAA,aAAAA,EAAAA,CAAAA,CAAAA,IAAAA,YAAAA,MAAAA,SCmBsB+L,GACd,IAAMq2S,EAAS,GAAmB0qC,YAAY/gV,GAC9Co3O,GAAuB,CAAC,CAACh9G,QAASukD,GAAetkD,SAAUg8K,KAAS,gBAC/C,IAChB5vS,KAAK1P,KAAKiqV,eAAelhV,KAAK/I,OAFnCqgP,OAGWv6O,SAAAA,GAAAA,OAAOtB,QAAQgb,IAAI1Z,QDxBtC5I,CAAAA,IAAAA,iBAAAA,MAAAA,SC2B2B6sV,GACd/pV,KAAK2pV,eAGN3pV,KAAK+pV,UAAYA,EAFjB7sV,OAAc,MAAI6sV,EAAUtmN,SAAS5gH,IAAI,IAI7CknU,EAAUtmN,SAAS5gH,IAAI,IAAegwG,MAAMpwD,OACvCp+D,KAAKu5L,GAAK,IACVr9L,WAAU,WACP,IACM4vN,EADW45H,EAAUtmN,SAAS5gH,IAAI,IAChBA,IAAI,gBACxBstM,GAAQA,SDtC5BjzN,CAAAA,IAAAA,gBAAAA,MAAAA,WC2CQ8C,KAAK+pV,UAAU5vQ,UACfn6E,KAAK+pV,UAAY,SD5CzB7sV,EAAAA,IC4CyB,KAAA,SAAA,EAAA,EAAA,GAAA,aC1DzBR,EAAQgc,WAAqD,mBAAXhC,QAAyBA,OAAOgC,YAAc,iBAA3E,CAAA,CAAA,EAAA","sourceRoot":"webpack:///","sourcesContent":["/*\n * JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\n\n/*\n* Add integers, wrapping at 2^32. This uses 16-bit operations internally\n* to work around bugs in some JS interpreters.\n*/\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xffff);\n}\n\n/*\n* Bitwise rotate a 32-bit number to the left.\n*/\nfunction bitRotateLeft(num, cnt) {\n return (num << cnt) | (num >>> (32 - cnt));\n}\n\n/*\n* These functions implement the four basic operations the algorithm uses.\n*/\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\n/*\n* Calculate the MD5 of an array of little-endian words, and a bit length.\n*/\nfunction binlMD5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << (len % 32);\n x[(((len + 64) >>> 9) << 4) + 14] = len;\n\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n return [a, b, c, d];\n}\n\n/*\n* Convert an array of little-endian words to a string\n*/\nfunction binl2rstr(input) {\n var i;\n var output = '';\n var length32 = input.length * 32;\n for (i = 0; i < length32; i += 8) {\n output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff);\n }\n return output;\n}\n\n/*\n* Convert a raw string to an array of little-endian words\n* Characters >255 have their high-byte silently ignored.\n*/\nfunction rstr2binl(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n var length8 = input.length * 8;\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32);\n }\n return output;\n}\n\n/*\n* Calculate the MD5 of a raw string\n*/\nfunction rstrMD5(s) {\n return binl2rstr(binlMD5(rstr2binl(s), s.length * 8));\n}\n\n/*\n* Calculate the HMAC-MD5, of a key and some data (raw strings)\n*/\nfunction rstrHMACMD5(key, data) {\n var i;\n var bkey = rstr2binl(key);\n var ipad = [];\n var opad = [];\n var hash;\n ipad[15] = opad[15] = undefined;\n if (bkey.length > 16) {\n bkey = binlMD5(bkey, key.length * 8);\n }\n for (i = 0; i < 16; i += 1) {\n ipad[i] = bkey[i] ^ 0x36363636;\n opad[i] = bkey[i] ^ 0x5c5c5c5c;\n }\n hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);\n return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));\n}\n\n/*\n* Convert a raw string to a hex string\n*/\nfunction rstr2hex(input) {\n var hexTab = '0123456789abcdef';\n var output = '';\n var x;\n var i;\n for (i = 0; i < input.length; i += 1) {\n x = input.charCodeAt(i);\n output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f);\n }\n return output;\n}\n\n/*\n* Encode a string as utf-8\n*/\nfunction str2rstrUTF8(input) {\n return unescape(encodeURIComponent(input));\n}\n\n/*\n* Take string arguments and return either raw or hex encoded strings\n*/\nfunction rawMD5(s) {\n return rstrMD5(str2rstrUTF8(s));\n}\nfunction hexMD5(s) {\n return rstr2hex(rawMD5(s));\n}\nfunction rawHMACMD5(k, d) {\n return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d));\n}\nfunction hexHMACMD5(k, d) {\n return rstr2hex(rawHMACMD5(k, d));\n}\n\nfunction md5(string, key, raw) {\n if (!key) {\n if (!raw) {\n return hexMD5(string);\n }\n return rawMD5(string);\n }\n if (!raw) {\n return hexHMACMD5(key, string);\n }\n return rawHMACMD5(key, string);\n}\n\nmodule.exports = md5;\n","var utils = require('../../src/utils');\n\n/*\n TraceKit - Cross brower stack traces\n\n This was originally forked from github.com/occ/TraceKit, but has since been\n largely re-written and is now maintained as part of raven-js. Tests for\n this are in test/vendor.\n\n MIT license\n*/\n\nvar TraceKit = {\n collectWindowErrors: true,\n debug: false\n};\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : typeof self !== 'undefined'\n ? self\n : {};\n\n// global reference to slice\nvar _slice = [].slice;\nvar UNKNOWN_FUNCTION = '?';\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;\n\nfunction getLocationHref() {\n if (typeof document === 'undefined' || document.location == null) return '';\n return document.location.href;\n}\n\nfunction getLocationOrigin() {\n if (typeof document === 'undefined' || document.location == null) return '';\n\n // Oh dear IE10...\n if (!document.location.origin) {\n return (\n document.location.protocol +\n '//' +\n document.location.hostname +\n (document.location.port ? ':' + document.location.port : '')\n );\n }\n\n return document.location.origin;\n}\n\n/**\n * TraceKit.report: cross-browser processing of unhandled exceptions\n *\n * Syntax:\n * TraceKit.report.subscribe(function(stackInfo) { ... })\n * TraceKit.report.unsubscribe(function(stackInfo) { ... })\n * TraceKit.report(exception)\n * try { ...code... } catch(ex) { TraceKit.report(ex); }\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Requires TraceKit.computeStackTrace.\n *\n * Tries to catch all unhandled exceptions and report them to the\n * subscribed handlers. Please note that TraceKit.report will rethrow the\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\n * If the exception does not reach the top of the browser, you will only\n * get a stack trace from the point where TraceKit.report was called.\n *\n * Handlers receive a stackInfo object as described in the\n * TraceKit.computeStackTrace docs.\n */\nTraceKit.report = (function reportModuleWrapper() {\n var handlers = [],\n lastArgs = null,\n lastException = null,\n lastExceptionStack = null;\n\n /**\n * Add a crash handler.\n * @param {Function} handler\n */\n function subscribe(handler) {\n installGlobalHandler();\n handlers.push(handler);\n }\n\n /**\n * Remove a crash handler.\n * @param {Function} handler\n */\n function unsubscribe(handler) {\n for (var i = handlers.length - 1; i >= 0; --i) {\n if (handlers[i] === handler) {\n handlers.splice(i, 1);\n }\n }\n }\n\n /**\n * Remove all crash handlers.\n */\n function unsubscribeAll() {\n uninstallGlobalHandler();\n handlers = [];\n }\n\n /**\n * Dispatch stack information to all handlers.\n * @param {Object.} stack\n */\n function notifyHandlers(stack, isWindowError) {\n var exception = null;\n if (isWindowError && !TraceKit.collectWindowErrors) {\n return;\n }\n for (var i in handlers) {\n if (handlers.hasOwnProperty(i)) {\n try {\n handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));\n } catch (inner) {\n exception = inner;\n }\n }\n }\n\n if (exception) {\n throw exception;\n }\n }\n\n var _oldOnerrorHandler, _onErrorHandlerInstalled;\n\n /**\n * Ensures all global unhandled exceptions are recorded.\n * Supported by Gecko and IE.\n * @param {string} msg Error message.\n * @param {string} url URL of script that generated the exception.\n * @param {(number|string)} lineNo The line number at which the error\n * occurred.\n * @param {?(number|string)} colNo The column number at which the error\n * occurred.\n * @param {?Error} ex The actual Error object.\n */\n function traceKitWindowOnError(msg, url, lineNo, colNo, ex) {\n var stack = null;\n // If 'ex' is ErrorEvent, get real Error from inside\n var exception = utils.isErrorEvent(ex) ? ex.error : ex;\n // If 'msg' is ErrorEvent, get real message from inside\n var message = utils.isErrorEvent(msg) ? msg.message : msg;\n\n if (lastExceptionStack) {\n TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(\n lastExceptionStack,\n url,\n lineNo,\n message\n );\n processLastException();\n } else if (exception && utils.isError(exception)) {\n // non-string `exception` arg; attempt to extract stack trace\n\n // New chrome and blink send along a real error object\n // Let's just report that like a normal error.\n // See: https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror\n stack = TraceKit.computeStackTrace(exception);\n notifyHandlers(stack, true);\n } else {\n var location = {\n url: url,\n line: lineNo,\n column: colNo\n };\n\n var name = undefined;\n var groups;\n\n if ({}.toString.call(message) === '[object String]') {\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n }\n\n location.func = UNKNOWN_FUNCTION;\n\n stack = {\n name: name,\n message: message,\n url: getLocationHref(),\n stack: [location]\n };\n notifyHandlers(stack, true);\n }\n\n if (_oldOnerrorHandler) {\n return _oldOnerrorHandler.apply(this, arguments);\n }\n\n return false;\n }\n\n function installGlobalHandler() {\n if (_onErrorHandlerInstalled) {\n return;\n }\n _oldOnerrorHandler = _window.onerror;\n _window.onerror = traceKitWindowOnError;\n _onErrorHandlerInstalled = true;\n }\n\n function uninstallGlobalHandler() {\n if (!_onErrorHandlerInstalled) {\n return;\n }\n _window.onerror = _oldOnerrorHandler;\n _onErrorHandlerInstalled = false;\n _oldOnerrorHandler = undefined;\n }\n\n function processLastException() {\n var _lastExceptionStack = lastExceptionStack,\n _lastArgs = lastArgs;\n lastArgs = null;\n lastExceptionStack = null;\n lastException = null;\n notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));\n }\n\n /**\n * Reports an unhandled Error to TraceKit.\n * @param {Error} ex\n * @param {?boolean} rethrow If false, do not re-throw the exception.\n * Only used for window.onerror to not cause an infinite loop of\n * rethrowing.\n */\n function report(ex, rethrow) {\n var args = _slice.call(arguments, 1);\n if (lastExceptionStack) {\n if (lastException === ex) {\n return; // already caught by an inner catch block, ignore\n } else {\n processLastException();\n }\n }\n\n var stack = TraceKit.computeStackTrace(ex);\n lastExceptionStack = stack;\n lastException = ex;\n lastArgs = args;\n\n // If the stack trace is incomplete, wait for 2 seconds for\n // slow slow IE to see if onerror occurs or not before reporting\n // this exception; otherwise, we will end up with an incomplete\n // stack trace\n setTimeout(\n function() {\n if (lastException === ex) {\n processLastException();\n }\n },\n stack.incomplete ? 2000 : 0\n );\n\n if (rethrow !== false) {\n throw ex; // re-throw to propagate to the top level (and cause window.onerror)\n }\n }\n\n report.subscribe = subscribe;\n report.unsubscribe = unsubscribe;\n report.uninstall = unsubscribeAll;\n return report;\n})();\n\n/**\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\n *\n * Syntax:\n * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\n * Returns:\n * s.name - exception name\n * s.message - exception message\n * s.stack[i].url - JavaScript or HTML file URL\n * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work)\n * s.stack[i].args - arguments passed to the function, if known\n * s.stack[i].line - line number, if known\n * s.stack[i].column - column number, if known\n *\n * Supports:\n * - Firefox: full stack trace with line numbers and unreliable column\n * number on top frame\n * - Opera 10: full stack trace with line and column numbers\n * - Opera 9-: full stack trace with line numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the topmost stacktrace element\n * only\n * - IE: no line numbers whatsoever\n *\n * Tries to guess names of anonymous functions by looking for assignments\n * in the source code. In IE and Safari, we have to guess source file names\n * by searching for function bodies inside all page scripts. This will not\n * work for scripts that are loaded cross-domain.\n * Here be dragons: some function names may be guessed incorrectly, and\n * duplicate functions may be mismatched.\n *\n * TraceKit.computeStackTrace should only be used for tracing purposes.\n * Logging of unhandled exceptions should be done with TraceKit.report,\n * which builds on top of TraceKit.computeStackTrace and provides better\n * IE support by utilizing the window.onerror event to retrieve information\n * about the top of the stack.\n *\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\n * so computeStackTrace instead walks its *own* chain of callers.\n * This means that:\n * * in Safari, some methods may be missing from the stack trace;\n * * in IE, the topmost function in the stack trace will always be the\n * caller of computeStackTrace.\n *\n * This is okay for tracing (because you are likely to be calling\n * computeStackTrace from the function you want to be the topmost element\n * of the stack trace anyway), but not okay for logging unhandled\n * exceptions (because your catch block will likely be far away from the\n * inner function that actually caused the exception).\n *\n */\nTraceKit.computeStackTrace = (function computeStackTraceWrapper() {\n // Contents of Exception in various browsers.\n //\n // SAFARI:\n // ex.message = Can't find variable: qq\n // ex.line = 59\n // ex.sourceId = 580238192\n // ex.sourceURL = http://...\n // ex.expressionBeginOffset = 96\n // ex.expressionCaretOffset = 98\n // ex.expressionEndOffset = 98\n // ex.name = ReferenceError\n //\n // FIREFOX:\n // ex.message = qq is not defined\n // ex.fileName = http://...\n // ex.lineNumber = 59\n // ex.columnNumber = 69\n // ex.stack = ...stack trace... (see the example below)\n // ex.name = ReferenceError\n //\n // CHROME:\n // ex.message = qq is not defined\n // ex.name = ReferenceError\n // ex.type = not_defined\n // ex.arguments = ['aa']\n // ex.stack = ...stack trace...\n //\n // INTERNET EXPLORER:\n // ex.message = ...\n // ex.name = ReferenceError\n //\n // OPERA:\n // ex.message = ...message... (see the example below)\n // ex.name = ReferenceError\n // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)\n // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\n\n /**\n * Computes stack trace information from the stack property.\n * Chrome and Gecko use this property.\n * @param {Error} ex\n * @return {?Object.} Stack trace information.\n */\n function computeStackTraceFromStackProp(ex) {\n if (typeof ex.stack === 'undefined' || !ex.stack) return;\n\n var chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|native|eval|webpack||[a-z]:|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n var winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx(?:-web)|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n // NOTE: blob urls are now supposed to always have an origin, therefore it's format\n // which is `blob:http://url/path/with-some-uuid`, is matched by `blob.*?:\\/` as well\n var gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js))(?::(\\d+))?(?::(\\d+))?\\s*$/i;\n // Used to additionally parse URL/line/column from eval frames\n var geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n var chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n var lines = ex.stack.split('\\n');\n var stack = [];\n var submatch;\n var parts;\n var element;\n var reference = /^(.*) is undefined$/.exec(ex.message);\n\n for (var i = 0, j = lines.length; i < j; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n element = {\n url: !isNative ? parts[2] : null,\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n } else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n } else if ((parts = gecko.exec(lines[i]))) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n } else if (i === 0 && !parts[5] && typeof ex.columnNumber !== 'undefined') {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n if (element.url && element.url.substr(0, 5) === 'blob:') {\n // Special case for handling JavaScript loaded into a blob.\n // We use a synchronous AJAX request here as a blob is already in\n // memory - it's not making a network request. This will generate a warning\n // in the browser console, but there has already been an error so that's not\n // that much of an issue.\n var xhr = new XMLHttpRequest();\n xhr.open('GET', element.url, false);\n xhr.send(null);\n\n // If we failed to download the source, skip this patch\n if (xhr.status === 200) {\n var source = xhr.responseText || '';\n\n // We trim the source down to the last 300 characters as sourceMappingURL is always at the end of the file.\n // Why 300? To be in line with: https://github.com/getsentry/sentry/blob/4af29e8f2350e20c28a6933354e4f42437b4ba42/src/sentry/lang/javascript/processor.py#L164-L175\n source = source.slice(-300);\n\n // Now we dig out the source map URL\n var sourceMaps = source.match(/\\/\\/# sourceMappingURL=(.*)$/);\n\n // If we don't find a source map comment or we find more than one, continue on to the next element.\n if (sourceMaps) {\n var sourceMapAddress = sourceMaps[1];\n\n // Now we check to see if it's a relative URL.\n // If it is, convert it to an absolute one.\n if (sourceMapAddress.charAt(0) === '~') {\n sourceMapAddress = getLocationOrigin() + sourceMapAddress.slice(1);\n }\n\n // Now we strip the '.map' off of the end of the URL and update the\n // element so that Sentry can match the map to the blob.\n element.url = sourceMapAddress.slice(0, -4);\n }\n }\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n name: ex.name,\n message: ex.message,\n url: getLocationHref(),\n stack: stack\n };\n }\n\n /**\n * Adds information about the first frame to incomplete stack traces.\n * Safari and IE require this to get complete data on the first frame.\n * @param {Object.} stackInfo Stack trace information from\n * one of the compute* methods.\n * @param {string} url The URL of the script that caused an error.\n * @param {(number|string)} lineNo The line number of the script that\n * caused an error.\n * @param {string=} message The error generated by the browser, which\n * hopefully contains the name of the object that caused the error.\n * @return {boolean} Whether or not the stack information was\n * augmented.\n */\n function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) {\n var initial = {\n url: url,\n line: lineNo\n };\n\n if (initial.url && initial.line) {\n stackInfo.incomplete = false;\n\n if (!initial.func) {\n initial.func = UNKNOWN_FUNCTION;\n }\n\n if (stackInfo.stack.length > 0) {\n if (stackInfo.stack[0].url === initial.url) {\n if (stackInfo.stack[0].line === initial.line) {\n return false; // already in stack trace\n } else if (\n !stackInfo.stack[0].line &&\n stackInfo.stack[0].func === initial.func\n ) {\n stackInfo.stack[0].line = initial.line;\n return false;\n }\n }\n }\n\n stackInfo.stack.unshift(initial);\n stackInfo.partial = true;\n return true;\n } else {\n stackInfo.incomplete = true;\n }\n\n return false;\n }\n\n /**\n * Computes stack trace information by walking the arguments.caller\n * chain at the time the exception occurred. This will cause earlier\n * frames to be missed but is the only way to get any stack trace in\n * Safari and IE. The top frame is restored by\n * {@link augmentStackTraceWithInitialElement}.\n * @param {Error} ex\n * @return {?Object.} Stack trace information.\n */\n function computeStackTraceByWalkingCallerChain(ex, depth) {\n var functionName = /function\\s+([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?\\s*\\(/i,\n stack = [],\n funcs = {},\n recursion = false,\n parts,\n item,\n source;\n\n for (\n var curr = computeStackTraceByWalkingCallerChain.caller;\n curr && !recursion;\n curr = curr.caller\n ) {\n if (curr === computeStackTrace || curr === TraceKit.report) {\n // console.log('skipping internal function');\n continue;\n }\n\n item = {\n url: null,\n func: UNKNOWN_FUNCTION,\n line: null,\n column: null\n };\n\n if (curr.name) {\n item.func = curr.name;\n } else if ((parts = functionName.exec(curr.toString()))) {\n item.func = parts[1];\n }\n\n if (typeof item.func === 'undefined') {\n try {\n item.func = parts.input.substring(0, parts.input.indexOf('{'));\n } catch (e) {}\n }\n\n if (funcs['' + curr]) {\n recursion = true;\n } else {\n funcs['' + curr] = true;\n }\n\n stack.push(item);\n }\n\n if (depth) {\n // console.log('depth is ' + depth);\n // console.log('stack is ' + stack.length);\n stack.splice(0, depth);\n }\n\n var result = {\n name: ex.name,\n message: ex.message,\n url: getLocationHref(),\n stack: stack\n };\n augmentStackTraceWithInitialElement(\n result,\n ex.sourceURL || ex.fileName,\n ex.line || ex.lineNumber,\n ex.message || ex.description\n );\n return result;\n }\n\n /**\n * Computes a stack trace for an exception.\n * @param {Error} ex\n * @param {(string|number)=} depth\n */\n function computeStackTrace(ex, depth) {\n var stack = null;\n depth = depth == null ? 0 : +depth;\n\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (TraceKit.debug) {\n throw e;\n }\n }\n\n try {\n stack = computeStackTraceByWalkingCallerChain(ex, depth + 1);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (TraceKit.debug) {\n throw e;\n }\n }\n return {\n name: ex.name,\n message: ex.message,\n url: getLocationHref()\n };\n }\n\n computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement;\n computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp;\n\n return computeStackTrace;\n})();\n\nmodule.exports = TraceKit;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar identity_1 = require(\"./identity\");\nfunction pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexports.pipe = pipe;\nfunction pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity_1.identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\nexports.pipeFromArray = pipeFromArray;\n//# sourceMappingURL=pipe.js.map","var utils = require('./utils');\n\nvar wrapMethod = function(console, level, callback) {\n var originalConsoleLevel = console[level];\n var originalConsole = console;\n\n if (!(level in console)) {\n return;\n }\n\n var sentryLevel = level === 'warn' ? 'warning' : level;\n\n console[level] = function() {\n var args = [].slice.call(arguments);\n\n var msg = utils.safeJoin(args, ' ');\n var data = {level: sentryLevel, logger: 'console', extra: {arguments: args}};\n\n if (level === 'assert') {\n if (args[0] === false) {\n // Default browsers message\n msg =\n 'Assertion failed: ' + (utils.safeJoin(args.slice(1), ' ') || 'console.assert');\n data.extra.arguments = args.slice(1);\n callback && callback(msg, data);\n }\n } else {\n callback && callback(msg, data);\n }\n\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n // IE9 doesn't allow calling apply on console functions directly\n // See: https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193\n Function.prototype.apply.call(originalConsoleLevel, originalConsole, args);\n }\n };\n};\n\nmodule.exports = {\n wrapMethod: wrapMethod\n};\n","/*\n json-stringify-safe\n Like JSON.stringify, but doesn't throw on circular references.\n\n Originally forked from https://github.com/isaacs/json-stringify-safe\n version 5.0.1 on 3/8/2017 and modified to handle Errors serialization\n and IE8 compatibility. Tests for this are in test/vendor.\n\n ISC license: https://github.com/isaacs/json-stringify-safe/blob/master/LICENSE\n*/\n\nexports = module.exports = stringify;\nexports.getSerialize = serializer;\n\nfunction indexOf(haystack, needle) {\n for (var i = 0; i < haystack.length; ++i) {\n if (haystack[i] === needle) return i;\n }\n return -1;\n}\n\nfunction stringify(obj, replacer, spaces, cycleReplacer) {\n return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces);\n}\n\n// https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106\nfunction stringifyError(value) {\n var err = {\n // These properties are implemented as magical getters and don't show up in for in\n stack: value.stack,\n message: value.message,\n name: value.name\n };\n\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) {\n err[i] = value[i];\n }\n }\n\n return err;\n}\n\nfunction serializer(replacer, cycleReplacer) {\n var stack = [];\n var keys = [];\n\n if (cycleReplacer == null) {\n cycleReplacer = function(key, value) {\n if (stack[0] === value) {\n return '[Circular ~]';\n }\n return '[Circular ~.' + keys.slice(0, indexOf(stack, value)).join('.') + ']';\n };\n }\n\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = indexOf(stack, this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n\n if (~indexOf(stack, value)) {\n value = cycleReplacer.call(this, key, value);\n }\n } else {\n stack.push(value);\n }\n\n return replacer == null\n ? value instanceof Error ? stringifyError(value) : value\n : replacer.call(this, key, value);\n };\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n }\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isFunction_1 = require(\"./util/isFunction\");\nvar Observer_1 = require(\"./Observer\");\nvar Subscription_1 = require(\"./Subscription\");\nvar rxSubscriber_1 = require(\"../internal/symbol/rxSubscriber\");\nvar config_1 = require(\"./config\");\nvar hostReportError_1 = require(\"./util/hostReportError\");\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n switch (arguments.length) {\n case 0:\n _this.destination = Observer_1.empty;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = Observer_1.empty;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriber_1.rxSubscriber] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _parentOrParents = this._parentOrParents;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n };\n return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction_1.isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== Observer_1.empty) {\n context = Object.create(observerOrNext);\n if (isFunction_1.isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config_1.config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError_1.hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config_1.config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError_1.hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexports.SafeSubscriber = SafeSubscriber;\n//# sourceMappingURL=Subscriber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isObject(x) {\n return x !== null && typeof x === 'object';\n}\nexports.isObject = isObject;\n//# sourceMappingURL=isObject.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar config_1 = require(\"./config\");\nvar hostReportError_1 = require(\"./util/hostReportError\");\nexports.empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError_1.hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(b,c,d){var e=new XMLHttpRequest;e.open(\"GET\",b),e.responseType=\"blob\",e.onload=function(){a(e.response,c,d)},e.onerror=function(){console.error(\"could not download file\")},e.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(a,b,d,e){if(e=e||open(\"\",\"_blank\"),e&&(e.document.title=e.document.body.innerText=\"downloading...\"),\"string\"==typeof a)return c(a,b,d);var g=\"application/octet-stream\"===a.type,h=/constructor/i.test(f.HTMLElement)||f.safari,i=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((i||g&&h)&&\"object\"==typeof FileReader){var j=new FileReader;j.onloadend=function(){var a=j.result;a=i?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),e?e.location.href=a:location=a,e=null},j.readAsDataURL(a)}else{var k=f.URL||f.webkitURL,l=k.createObjectURL(a);e?e.location=l:location.href=l,e=null,setTimeout(function(){k.revokeObjectURL(l)},4E4)}});f.saveAs=a.saveAs=a,\"undefined\"!=typeof module&&(module.exports=a)});\n\n//# sourceMappingURL=FileSaver.min.js.map","/* Web Font Loader v1.6.28 - (c) Adobe Systems, Google. License: Apache 2.0 */(function(){function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2=b.f?e():a.fonts.load(fa(b.a),b.h).then(function(a){1<=a.length?d():setTimeout(f,25)},function(){e()})}f()}),e=null,f=new Promise(function(a,d){e=setTimeout(d,b.f)});Promise.race([f,d]).then(function(){e&&(clearTimeout(e),e=null);b.g(b.a)},function(){b.j(b.a)})};function Q(a,b,c,d,e,f,g){this.v=a;this.B=b;this.c=c;this.a=d;this.s=g||\"BESbswy\";this.f={};this.w=e||3E3;this.u=f||null;this.m=this.j=this.h=this.g=null;this.g=new M(this.c,this.s);this.h=new M(this.c,this.s);this.j=new M(this.c,this.s);this.m=new M(this.c,this.s);a=new G(this.a.c+\",serif\",J(this.a));a=O(a);this.g.a.style.cssText=a;a=new G(this.a.c+\",sans-serif\",J(this.a));a=O(a);this.h.a.style.cssText=a;a=new G(\"serif\",J(this.a));a=O(a);this.j.a.style.cssText=a;a=new G(\"sans-serif\",J(this.a));a=\nO(a);this.m.a.style.cssText=a;N(this.g);N(this.h);N(this.j);N(this.m)}var R={D:\"serif\",C:\"sans-serif\"},S=null;function T(){if(null===S){var a=/AppleWebKit\\/([0-9]+)(?:\\.([0-9]+))/.exec(window.navigator.userAgent);S=!!a&&(536>parseInt(a[1],10)||536===parseInt(a[1],10)&&11>=parseInt(a[2],10))}return S}Q.prototype.start=function(){this.f.serif=this.j.a.offsetWidth;this.f[\"sans-serif\"]=this.m.a.offsetWidth;this.A=q();U(this)};\nfunction la(a,b,c){for(var d in R)if(R.hasOwnProperty(d)&&b===a.f[R[d]]&&c===a.f[R[d]])return!0;return!1}function U(a){var b=a.g.a.offsetWidth,c=a.h.a.offsetWidth,d;(d=b===a.f.serif&&c===a.f[\"sans-serif\"])||(d=T()&&la(a,b,c));d?q()-a.A>=a.w?T()&&la(a,b,c)&&(null===a.u||a.u.hasOwnProperty(a.a.c))?V(a,a.v):V(a,a.B):ma(a):V(a,a.v)}function ma(a){setTimeout(p(function(){U(this)},a),50)}function V(a,b){setTimeout(p(function(){v(this.g.a);v(this.h.a);v(this.j.a);v(this.m.a);b(this.a)},a),0)};function W(a,b,c){this.c=a;this.a=b;this.f=0;this.m=this.j=!1;this.s=c}var X=null;W.prototype.g=function(a){var b=this.a;b.g&&w(b.f,[b.a.c(\"wf\",a.c,J(a).toString(),\"active\")],[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\"),b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\")]);K(b,\"fontactive\",a);this.m=!0;na(this)};\nW.prototype.h=function(a){var b=this.a;if(b.g){var c=y(b.f,b.a.c(\"wf\",a.c,J(a).toString(),\"active\")),d=[],e=[b.a.c(\"wf\",a.c,J(a).toString(),\"loading\")];c||d.push(b.a.c(\"wf\",a.c,J(a).toString(),\"inactive\"));w(b.f,d,e)}K(b,\"fontinactive\",a);na(this)};function na(a){0==--a.f&&a.j&&(a.m?(a=a.a,a.g&&w(a.f,[a.a.c(\"wf\",\"active\")],[a.a.c(\"wf\",\"loading\"),a.a.c(\"wf\",\"inactive\")]),K(a,\"active\")):L(a.a))};function oa(a){this.j=a;this.a=new ja;this.h=0;this.f=this.g=!0}oa.prototype.load=function(a){this.c=new ca(this.j,a.context||this.j);this.g=!1!==a.events;this.f=!1!==a.classes;pa(this,new ha(this.c,a),a)};\nfunction qa(a,b,c,d,e){var f=0==--a.h;(a.f||a.g)&&setTimeout(function(){var a=e||null,m=d||null||{};if(0===c.length&&f)L(b.a);else{b.f+=c.length;f&&(b.j=f);var h,l=[];for(h=0;h\":\"greater\",\"|\":\"or\",\"¢\":\"cent\",\"£\":\"pound\",\"¤\":\"currency\",\"¥\":\"yen\",\"©\":\"(c)\",\"ª\":\"a\",\"®\":\"(r)\",\"º\":\"o\",\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"Æ\":\"AE\",\"Ç\":\"C\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"Ð\":\"D\",\"Ñ\":\"N\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"Ý\":\"Y\",\"Þ\":\"TH\",\"ß\":\"ss\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"æ\":\"ae\",\"ç\":\"c\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"ð\":\"d\",\"ñ\":\"n\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"ý\":\"y\",\"þ\":\"th\",\"ÿ\":\"y\",\"Ā\":\"A\",\"ā\":\"a\",\"Ă\":\"A\",\"ă\":\"a\",\"Ą\":\"A\",\"ą\":\"a\",\"Ć\":\"C\",\"ć\":\"c\",\"Č\":\"C\",\"č\":\"c\",\"Ď\":\"D\",\"ď\":\"d\",\"Đ\":\"DJ\",\"đ\":\"dj\",\"Ē\":\"E\",\"ē\":\"e\",\"Ė\":\"E\",\"ė\":\"e\",\"Ę\":\"e\",\"ę\":\"e\",\"Ě\":\"E\",\"ě\":\"e\",\"Ğ\":\"G\",\"ğ\":\"g\",\"Ģ\":\"G\",\"ģ\":\"g\",\"Ĩ\":\"I\",\"ĩ\":\"i\",\"Ī\":\"i\",\"ī\":\"i\",\"Į\":\"I\",\"į\":\"i\",\"İ\":\"I\",\"ı\":\"i\",\"Ķ\":\"k\",\"ķ\":\"k\",\"Ļ\":\"L\",\"ļ\":\"l\",\"Ľ\":\"L\",\"ľ\":\"l\",\"Ł\":\"L\",\"ł\":\"l\",\"Ń\":\"N\",\"ń\":\"n\",\"Ņ\":\"N\",\"ņ\":\"n\",\"Ň\":\"N\",\"ň\":\"n\",\"Ő\":\"O\",\"ő\":\"o\",\"Œ\":\"OE\",\"œ\":\"oe\",\"Ŕ\":\"R\",\"ŕ\":\"r\",\"Ř\":\"R\",\"ř\":\"r\",\"Ś\":\"S\",\"ś\":\"s\",\"Ş\":\"S\",\"ş\":\"s\",\"Š\":\"S\",\"š\":\"s\",\"Ţ\":\"T\",\"ţ\":\"t\",\"Ť\":\"T\",\"ť\":\"t\",\"Ũ\":\"U\",\"ũ\":\"u\",\"Ū\":\"u\",\"ū\":\"u\",\"Ů\":\"U\",\"ů\":\"u\",\"Ű\":\"U\",\"ű\":\"u\",\"Ų\":\"U\",\"ų\":\"u\",\"Ŵ\":\"W\",\"ŵ\":\"w\",\"Ŷ\":\"Y\",\"ŷ\":\"y\",\"Ÿ\":\"Y\",\"Ź\":\"Z\",\"ź\":\"z\",\"Ż\":\"Z\",\"ż\":\"z\",\"Ž\":\"Z\",\"ž\":\"z\",\"ƒ\":\"f\",\"Ơ\":\"O\",\"ơ\":\"o\",\"Ư\":\"U\",\"ư\":\"u\",\"Lj\":\"LJ\",\"lj\":\"lj\",\"Nj\":\"NJ\",\"nj\":\"nj\",\"Ș\":\"S\",\"ș\":\"s\",\"Ț\":\"T\",\"ț\":\"t\",\"˚\":\"o\",\"Ά\":\"A\",\"Έ\":\"E\",\"Ή\":\"H\",\"Ί\":\"I\",\"Ό\":\"O\",\"Ύ\":\"Y\",\"Ώ\":\"W\",\"ΐ\":\"i\",\"Α\":\"A\",\"Β\":\"B\",\"Γ\":\"G\",\"Δ\":\"D\",\"Ε\":\"E\",\"Ζ\":\"Z\",\"Η\":\"H\",\"Θ\":\"8\",\"Ι\":\"I\",\"Κ\":\"K\",\"Λ\":\"L\",\"Μ\":\"M\",\"Ν\":\"N\",\"Ξ\":\"3\",\"Ο\":\"O\",\"Π\":\"P\",\"Ρ\":\"R\",\"Σ\":\"S\",\"Τ\":\"T\",\"Υ\":\"Y\",\"Φ\":\"F\",\"Χ\":\"X\",\"Ψ\":\"PS\",\"Ω\":\"W\",\"Ϊ\":\"I\",\"Ϋ\":\"Y\",\"ά\":\"a\",\"έ\":\"e\",\"ή\":\"h\",\"ί\":\"i\",\"ΰ\":\"y\",\"α\":\"a\",\"β\":\"b\",\"γ\":\"g\",\"δ\":\"d\",\"ε\":\"e\",\"ζ\":\"z\",\"η\":\"h\",\"θ\":\"8\",\"ι\":\"i\",\"κ\":\"k\",\"λ\":\"l\",\"μ\":\"m\",\"ν\":\"n\",\"ξ\":\"3\",\"ο\":\"o\",\"π\":\"p\",\"ρ\":\"r\",\"ς\":\"s\",\"σ\":\"s\",\"τ\":\"t\",\"υ\":\"y\",\"φ\":\"f\",\"χ\":\"x\",\"ψ\":\"ps\",\"ω\":\"w\",\"ϊ\":\"i\",\"ϋ\":\"y\",\"ό\":\"o\",\"ύ\":\"y\",\"ώ\":\"w\",\"Ё\":\"Yo\",\"Ђ\":\"DJ\",\"Є\":\"Ye\",\"І\":\"I\",\"Ї\":\"Yi\",\"Ј\":\"J\",\"Љ\":\"LJ\",\"Њ\":\"NJ\",\"Ћ\":\"C\",\"Џ\":\"DZ\",\"А\":\"A\",\"Б\":\"B\",\"В\":\"V\",\"Г\":\"G\",\"Д\":\"D\",\"Е\":\"E\",\"Ж\":\"Zh\",\"З\":\"Z\",\"И\":\"I\",\"Й\":\"J\",\"К\":\"K\",\"Л\":\"L\",\"М\":\"M\",\"Н\":\"N\",\"О\":\"O\",\"П\":\"P\",\"Р\":\"R\",\"С\":\"S\",\"Т\":\"T\",\"У\":\"U\",\"Ф\":\"F\",\"Х\":\"H\",\"Ц\":\"C\",\"Ч\":\"Ch\",\"Ш\":\"Sh\",\"Щ\":\"Sh\",\"Ъ\":\"U\",\"Ы\":\"Y\",\"Ь\":\"\",\"Э\":\"E\",\"Ю\":\"Yu\",\"Я\":\"Ya\",\"а\":\"a\",\"б\":\"b\",\"в\":\"v\",\"г\":\"g\",\"д\":\"d\",\"е\":\"e\",\"ж\":\"zh\",\"з\":\"z\",\"и\":\"i\",\"й\":\"j\",\"к\":\"k\",\"л\":\"l\",\"м\":\"m\",\"н\":\"n\",\"о\":\"o\",\"п\":\"p\",\"р\":\"r\",\"с\":\"s\",\"т\":\"t\",\"у\":\"u\",\"ф\":\"f\",\"х\":\"h\",\"ц\":\"c\",\"ч\":\"ch\",\"ш\":\"sh\",\"щ\":\"sh\",\"ъ\":\"u\",\"ы\":\"y\",\"ь\":\"\",\"э\":\"e\",\"ю\":\"yu\",\"я\":\"ya\",\"ё\":\"yo\",\"ђ\":\"dj\",\"є\":\"ye\",\"і\":\"i\",\"ї\":\"yi\",\"ј\":\"j\",\"љ\":\"lj\",\"њ\":\"nj\",\"ћ\":\"c\",\"ѝ\":\"u\",\"џ\":\"dz\",\"Ґ\":\"G\",\"ґ\":\"g\",\"Ғ\":\"GH\",\"ғ\":\"gh\",\"Қ\":\"KH\",\"қ\":\"kh\",\"Ң\":\"NG\",\"ң\":\"ng\",\"Ү\":\"UE\",\"ү\":\"ue\",\"Ұ\":\"U\",\"ұ\":\"u\",\"Һ\":\"H\",\"һ\":\"h\",\"Ә\":\"AE\",\"ә\":\"ae\",\"Ө\":\"OE\",\"ө\":\"oe\",\"฿\":\"baht\",\"ა\":\"a\",\"ბ\":\"b\",\"გ\":\"g\",\"დ\":\"d\",\"ე\":\"e\",\"ვ\":\"v\",\"ზ\":\"z\",\"თ\":\"t\",\"ი\":\"i\",\"კ\":\"k\",\"ლ\":\"l\",\"მ\":\"m\",\"ნ\":\"n\",\"ო\":\"o\",\"პ\":\"p\",\"ჟ\":\"zh\",\"რ\":\"r\",\"ს\":\"s\",\"ტ\":\"t\",\"უ\":\"u\",\"ფ\":\"f\",\"ქ\":\"k\",\"ღ\":\"gh\",\"ყ\":\"q\",\"შ\":\"sh\",\"ჩ\":\"ch\",\"ც\":\"ts\",\"ძ\":\"dz\",\"წ\":\"ts\",\"ჭ\":\"ch\",\"ხ\":\"kh\",\"ჯ\":\"j\",\"ჰ\":\"h\",\"Ẁ\":\"W\",\"ẁ\":\"w\",\"Ẃ\":\"W\",\"ẃ\":\"w\",\"Ẅ\":\"W\",\"ẅ\":\"w\",\"ẞ\":\"SS\",\"Ạ\":\"A\",\"ạ\":\"a\",\"Ả\":\"A\",\"ả\":\"a\",\"Ấ\":\"A\",\"ấ\":\"a\",\"Ầ\":\"A\",\"ầ\":\"a\",\"Ẩ\":\"A\",\"ẩ\":\"a\",\"Ẫ\":\"A\",\"ẫ\":\"a\",\"Ậ\":\"A\",\"ậ\":\"a\",\"Ắ\":\"A\",\"ắ\":\"a\",\"Ằ\":\"A\",\"ằ\":\"a\",\"Ẳ\":\"A\",\"ẳ\":\"a\",\"Ẵ\":\"A\",\"ẵ\":\"a\",\"Ặ\":\"A\",\"ặ\":\"a\",\"Ẹ\":\"E\",\"ẹ\":\"e\",\"Ẻ\":\"E\",\"ẻ\":\"e\",\"Ẽ\":\"E\",\"ẽ\":\"e\",\"Ế\":\"E\",\"ế\":\"e\",\"Ề\":\"E\",\"ề\":\"e\",\"Ể\":\"E\",\"ể\":\"e\",\"Ễ\":\"E\",\"ễ\":\"e\",\"Ệ\":\"E\",\"ệ\":\"e\",\"Ỉ\":\"I\",\"ỉ\":\"i\",\"Ị\":\"I\",\"ị\":\"i\",\"Ọ\":\"O\",\"ọ\":\"o\",\"Ỏ\":\"O\",\"ỏ\":\"o\",\"Ố\":\"O\",\"ố\":\"o\",\"Ồ\":\"O\",\"ồ\":\"o\",\"Ổ\":\"O\",\"ổ\":\"o\",\"Ỗ\":\"O\",\"ỗ\":\"o\",\"Ộ\":\"O\",\"ộ\":\"o\",\"Ớ\":\"O\",\"ớ\":\"o\",\"Ờ\":\"O\",\"ờ\":\"o\",\"Ở\":\"O\",\"ở\":\"o\",\"Ỡ\":\"O\",\"ỡ\":\"o\",\"Ợ\":\"O\",\"ợ\":\"o\",\"Ụ\":\"U\",\"ụ\":\"u\",\"Ủ\":\"U\",\"ủ\":\"u\",\"Ứ\":\"U\",\"ứ\":\"u\",\"Ừ\":\"U\",\"ừ\":\"u\",\"Ử\":\"U\",\"ử\":\"u\",\"Ữ\":\"U\",\"ữ\":\"u\",\"Ự\":\"U\",\"ự\":\"u\",\"Ỳ\":\"Y\",\"ỳ\":\"y\",\"Ỵ\":\"Y\",\"ỵ\":\"y\",\"Ỷ\":\"Y\",\"ỷ\":\"y\",\"Ỹ\":\"Y\",\"ỹ\":\"y\",\"‘\":\"\\'\",\"’\":\"\\'\",\"“\":\"\\\\\\\"\",\"”\":\"\\\\\\\"\",\"†\":\"+\",\"•\":\"*\",\"…\":\"...\",\"₠\":\"ecu\",\"₢\":\"cruzeiro\",\"₣\":\"french franc\",\"₤\":\"lira\",\"₥\":\"mill\",\"₦\":\"naira\",\"₧\":\"peseta\",\"₨\":\"rupee\",\"₩\":\"won\",\"₪\":\"new shequel\",\"₫\":\"dong\",\"€\":\"euro\",\"₭\":\"kip\",\"₮\":\"tugrik\",\"₯\":\"drachma\",\"₰\":\"penny\",\"₱\":\"peso\",\"₲\":\"guarani\",\"₳\":\"austral\",\"₴\":\"hryvnia\",\"₵\":\"cedi\",\"₸\":\"kazakhstani tenge\",\"₹\":\"indian rupee\",\"₽\":\"russian ruble\",\"₿\":\"bitcoin\",\"℠\":\"sm\",\"™\":\"tm\",\"∂\":\"d\",\"∆\":\"delta\",\"∑\":\"sum\",\"∞\":\"infinity\",\"♥\":\"love\",\"元\":\"yuan\",\"円\":\"yen\",\"﷼\":\"rial\"}')\n var locales = JSON.parse('{\"vi\":{\"Đ\":\"D\",\"đ\":\"d\"}}')\n\n function replace (string, options) {\n if (typeof string !== 'string') {\n throw new Error('slugify: string argument expected')\n }\n\n options = (typeof options === 'string')\n ? {replacement: options}\n : options || {}\n\n var locale = locales[options.locale] || {}\n\n var replacement = options.replacement || '-'\n\n var slug = string.split('')\n // replace characters based on charMap\n .reduce(function (result, ch) {\n return result + (locale[ch] || charMap[ch] || ch)\n }, '')\n // remove not allowed characters\n .replace(options.remove || /[^\\w\\s$*_+~.()'\"!\\-:@]+/g, '')\n // trim leading/trailing spaces\n .trim()\n // convert spaces to replacement character\n // also remove duplicates of the replacement character\n .replace(new RegExp('[\\\\s' + replacement + ']+', 'g'), replacement)\n\n if (options.lower) {\n slug = slug.toLowerCase()\n }\n\n if (options.strict) {\n // remove anything besides letters, numbers, and the replacement char\n slug = slug\n .replace(new RegExp('[^a-zA-Z0-9' + replacement + ']', 'g'), '')\n }\n\n return slug\n }\n\n replace.extend = function (customMap) {\n for (var key in customMap) {\n charMap[key] = customMap[key]\n }\n }\n\n return replace\n}))\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar canReportError_1 = require(\"./util/canReportError\");\nvar toSubscriber_1 = require(\"./util/toSubscriber\");\nvar observable_1 = require(\"./symbol/observable\");\nvar pipe_1 = require(\"./util/pipe\");\nvar config_1 = require(\"./config\");\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config_1.config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config_1.config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError_1.canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[observable_1.observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipe_1.pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexports.Observable = Observable;\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config_1.config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","(function(root, globalName, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD:\r\n define([], factory);\r\n } else if (typeof module === 'object' && module.exports) {\r\n // Node:\r\n module.exports = factory();\r\n // Use module export as simulated ES6 default export:\r\n module.exports.default = module.exports;\r\n } else {\r\n // Browser:\r\n window[globalName] = factory();\r\n }\r\n}(this, 'b64toBlob', function() {\r\n 'use strict';\r\n\r\n return function b64toBlob(b64Data, contentType, sliceSize) {\r\n contentType = contentType || '';\r\n sliceSize = sliceSize || 512;\r\n\r\n var byteCharacters = atob(b64Data);\r\n var byteArrays = [];\r\n\r\n for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n var slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n var byteNumbers = new Array(slice.length);\r\n for (var i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n \r\n var byteArray = new Uint8Array(byteNumbers);\r\n \r\n byteArrays.push(byteArray);\r\n }\r\n \r\n var blob = new Blob(byteArrays, {type: contentType});\r\n return blob;\r\n };\r\n}));\r\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscriber_1 = require(\"../Subscriber\");\nvar rxSubscriber_1 = require(\"../symbol/rxSubscriber\");\nvar Observer_1 = require(\"../Observer\");\nfunction toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriber_1.rxSubscriber]) {\n return nextOrObserver[rxSubscriber_1.rxSubscriber]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber_1.Subscriber(Observer_1.empty);\n }\n return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n//# sourceMappingURL=toSubscriber.js.map","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"crnd\";","/* build: `node build.js modules=ALL exclude=gestures,accessors requirejs minifier=uglifyjs` */\n/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */\n\nvar fabric = fabric || { version: '3.6.3' };\nif (typeof exports !== 'undefined') {\n exports.fabric = fabric;\n}\n/* _AMD_START_ */\nelse if (typeof define === 'function' && define.amd) {\n define([], function() { return fabric; });\n}\n/* _AMD_END_ */\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n if (document instanceof (typeof HTMLDocument !== 'undefined' ? HTMLDocument : Document)) {\n fabric.document = document;\n }\n else {\n fabric.document = document.implementation.createHTMLDocument('');\n }\n fabric.window = window;\n}\nelse {\n // assume we're running under node.js when document/window are not present\n var jsdom = require('jsdom');\n var virtualWindow = new jsdom.JSDOM(\n decodeURIComponent('%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E'),\n {\n features: {\n FetchExternalResources: ['img']\n },\n resources: 'usable'\n }).window;\n fabric.document = virtualWindow.document;\n fabric.jsdomImplForWrapper = require('jsdom/lib/jsdom/living/generated/utils').implForWrapper;\n fabric.nodeCanvas = require('jsdom/lib/jsdom/utils').Canvas;\n fabric.window = virtualWindow;\n DOMParser = fabric.window.DOMParser;\n}\n\n/**\n * True when in environment that supports touch events\n * @type boolean\n */\nfabric.isTouchSupported = 'ontouchstart' in fabric.window || 'ontouchstart' in fabric.document ||\n (fabric.window && fabric.window.navigator && fabric.window.navigator.maxTouchPoints > 0);\n\n/**\n * True when in environment that's probably Node.js\n * @type boolean\n */\nfabric.isLikelyNode = typeof Buffer !== 'undefined' &&\n typeof window === 'undefined';\n\n/* _FROM_SVG_START_ */\n/**\n * Attributes parsed from all SVG elements\n * @type array\n */\nfabric.SHARED_ATTRIBUTES = [\n 'display',\n 'transform',\n 'fill', 'fill-opacity', 'fill-rule',\n 'opacity',\n 'stroke', 'stroke-dasharray', 'stroke-linecap', 'stroke-dashoffset',\n 'stroke-linejoin', 'stroke-miterlimit',\n 'stroke-opacity', 'stroke-width',\n 'id', 'paint-order', 'vector-effect',\n 'instantiated_by_use', 'clip-path'\n];\n/* _FROM_SVG_END_ */\n\n/**\n * Pixel per Inch as a default value set to 96. Can be changed for more realistic conversion.\n */\nfabric.DPI = 96;\nfabric.reNum = '(?:[-+]?(?:\\\\d+|\\\\d*\\\\.\\\\d+)(?:[eE][-+]?\\\\d+)?)';\nfabric.rePathCommand = /([-+]?((\\d+\\.\\d+)|((\\d+)|(\\.\\d+)))(?:[eE][-+]?\\d+)?)/ig;\nfabric.reNonWord = /[ \\n\\.,;!\\?\\-]/;\nfabric.fontPaths = { };\nfabric.iMatrix = [1, 0, 0, 1, 0, 0];\nfabric.svgNS = 'http://www.w3.org/2000/svg';\n\n/**\n * Pixel limit for cache canvases. 1Mpx , 4Mpx should be fine.\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.perfLimitSizeTotal = 2097152;\n\n/**\n * Pixel limit for cache canvases width or height. IE fixes the maximum at 5000\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.maxCacheSideLimit = 4096;\n\n/**\n * Lowest pixel limit for cache canvases, set at 256PX\n * @since 1.7.14\n * @type Number\n * @default\n */\nfabric.minCacheSideLimit = 256;\n\n/**\n * Cache Object for widths of chars in text rendering.\n */\nfabric.charWidthsCache = { };\n\n/**\n * if webgl is enabled and available, textureSize will determine the size\n * of the canvas backend\n * @since 2.0.0\n * @type Number\n * @default\n */\nfabric.textureSize = 2048;\n\n/**\n * When 'true', style information is not retained when copy/pasting text, making\n * pasted text use destination style.\n * Defaults to 'false'.\n * @type Boolean\n * @default\n */\nfabric.disableStyleCopyPaste = false;\n\n/**\n * Enable webgl for filtering picture is available\n * A filtering backend will be initialized, this will both take memory and\n * time since a default 2048x2048 canvas will be created for the gl context\n * @since 2.0.0\n * @type Boolean\n * @default\n */\nfabric.enableGLFiltering = true;\n\n/**\n * Device Pixel Ratio\n * @see https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/SettingUptheCanvas/SettingUptheCanvas.html\n */\nfabric.devicePixelRatio = fabric.window.devicePixelRatio ||\n fabric.window.webkitDevicePixelRatio ||\n fabric.window.mozDevicePixelRatio ||\n 1;\n/**\n * Browser-specific constant to adjust CanvasRenderingContext2D.shadowBlur value,\n * which is unitless and not rendered equally across browsers.\n *\n * Values that work quite well (as of October 2017) are:\n * - Chrome: 1.5\n * - Edge: 1.75\n * - Firefox: 0.9\n * - Safari: 0.95\n *\n * @since 2.0.0\n * @type Number\n * @default 1\n */\nfabric.browserShadowBlurConstant = 1;\n\n/**\n * This object contains the result of arc to beizer conversion for faster retrieving if the same arc needs to be converted again.\n * It was an internal variable, is accessible since version 2.3.4\n */\nfabric.arcToSegmentsCache = { };\n\n/**\n * This object keeps the results of the boundsOfCurve calculation mapped by the joined arguments necessary to calculate it.\n * It does speed up calculation, if you parse and add always the same paths, but in case of heavy usage of freedrawing\n * you do not get any speed benefit and you get a big object in memory.\n * The object was a private variable before, while now is appended to the lib so that you have access to it and you\n * can eventually clear it.\n * It was an internal variable, is accessible since version 2.3.4\n */\nfabric.boundsOfCurveCache = { };\n\n/**\n * If disabled boundsOfCurveCache is not used. For apps that make heavy usage of pencil drawing probably disabling it is better\n * @default true\n */\nfabric.cachesBoundsOfCurve = true;\n\n/**\n * Skip performance testing of setupGLContext and force the use of putImageData that seems to be the one that works best on\n * Chrome + old hardware. if your users are experiencing empty images after filtering you may try to force this to true\n * this has to be set before instantiating the filtering backend ( before filtering the first image )\n * @type Boolean\n * @default false\n */\nfabric.forceGLPutImageData = false;\n\nfabric.initFilterBackend = function() {\n if (fabric.enableGLFiltering && fabric.isWebglSupported && fabric.isWebglSupported(fabric.textureSize)) {\n console.log('max texture size: ' + fabric.maxTextureSize);\n return (new fabric.WebglFilterBackend({ tileSize: fabric.textureSize }));\n }\n else if (fabric.Canvas2dFilterBackend) {\n return (new fabric.Canvas2dFilterBackend());\n }\n};\n\n\nif (typeof document !== 'undefined' && typeof window !== 'undefined') {\n // ensure globality even if entire library were function wrapped (as in Meteor.js packaging system)\n window.fabric = fabric;\n}\n\n\n(function() {\n\n /**\n * @private\n * @param {String} eventName\n * @param {Function} handler\n */\n function _removeEventListener(eventName, handler) {\n if (!this.__eventListeners[eventName]) {\n return;\n }\n var eventListener = this.__eventListeners[eventName];\n if (handler) {\n eventListener[eventListener.indexOf(handler)] = false;\n }\n else {\n fabric.util.array.fill(eventListener, false);\n }\n }\n\n /**\n * Observes specified event\n * @deprecated `observe` deprecated since 0.8.34 (use `on` instead)\n * @memberOf fabric.Observable\n * @alias on\n * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler})\n * @param {Function} handler Function that receives a notification when an event of the specified type occurs\n * @return {Self} thisArg\n * @chainable\n */\n function observe(eventName, handler) {\n if (!this.__eventListeners) {\n this.__eventListeners = { };\n }\n // one object with key/value pairs was passed\n if (arguments.length === 1) {\n for (var prop in eventName) {\n this.on(prop, eventName[prop]);\n }\n }\n else {\n if (!this.__eventListeners[eventName]) {\n this.__eventListeners[eventName] = [];\n }\n this.__eventListeners[eventName].push(handler);\n }\n return this;\n }\n\n /**\n * Stops event observing for a particular event handler. Calling this method\n * without arguments removes all handlers for all events\n * @deprecated `stopObserving` deprecated since 0.8.34 (use `off` instead)\n * @memberOf fabric.Observable\n * @alias off\n * @param {String|Object} eventName Event name (eg. 'after:render') or object with key/value pairs (eg. {'after:render': handler, 'selection:cleared': handler})\n * @param {Function} handler Function to be deleted from EventListeners\n * @return {Self} thisArg\n * @chainable\n */\n function stopObserving(eventName, handler) {\n if (!this.__eventListeners) {\n return this;\n }\n\n // remove all key/value pairs (event name -> event handler)\n if (arguments.length === 0) {\n for (eventName in this.__eventListeners) {\n _removeEventListener.call(this, eventName);\n }\n }\n // one object with key/value pairs was passed\n else if (arguments.length === 1 && typeof arguments[0] === 'object') {\n for (var prop in eventName) {\n _removeEventListener.call(this, prop, eventName[prop]);\n }\n }\n else {\n _removeEventListener.call(this, eventName, handler);\n }\n return this;\n }\n\n /**\n * Fires event with an optional options object\n * @deprecated `fire` deprecated since 1.0.7 (use `trigger` instead)\n * @memberOf fabric.Observable\n * @alias trigger\n * @param {String} eventName Event name to fire\n * @param {Object} [options] Options object\n * @return {Self} thisArg\n * @chainable\n */\n function fire(eventName, options) {\n if (!this.__eventListeners) {\n return this;\n }\n\n var listenersForEvent = this.__eventListeners[eventName];\n if (!listenersForEvent) {\n return this;\n }\n\n for (var i = 0, len = listenersForEvent.length; i < len; i++) {\n listenersForEvent[i] && listenersForEvent[i].call(this, options || { });\n }\n this.__eventListeners[eventName] = listenersForEvent.filter(function(value) {\n return value !== false;\n });\n return this;\n }\n\n /**\n * @namespace fabric.Observable\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#events}\n * @see {@link http://fabricjs.com/events|Events demo}\n */\n fabric.Observable = {\n observe: observe,\n stopObserving: stopObserving,\n fire: fire,\n\n on: observe,\n off: stopObserving,\n trigger: fire\n };\n})();\n\n\n/**\n * @namespace fabric.Collection\n */\nfabric.Collection = {\n\n _objects: [],\n\n /**\n * Adds objects to collection, Canvas or Group, then renders canvas\n * (if `renderOnAddRemove` is not `false`).\n * in case of Group no changes to bounding box are made.\n * Objects should be instances of (or inherit from) fabric.Object\n * Use of this function is highly discouraged for groups.\n * you can add a bunch of objects with the add method but then you NEED\n * to run a addWithUpdate call for the Group class or position/bbox will be wrong.\n * @param {...fabric.Object} object Zero or more fabric instances\n * @return {Self} thisArg\n * @chainable\n */\n add: function () {\n this._objects.push.apply(this._objects, arguments);\n if (this._onObjectAdded) {\n for (var i = 0, length = arguments.length; i < length; i++) {\n this._onObjectAdded(arguments[i]);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Inserts an object into collection at specified index, then renders canvas (if `renderOnAddRemove` is not `false`)\n * An object should be an instance of (or inherit from) fabric.Object\n * Use of this function is highly discouraged for groups.\n * you can add a bunch of objects with the insertAt method but then you NEED\n * to run a addWithUpdate call for the Group class or position/bbox will be wrong.\n * @param {Object} object Object to insert\n * @param {Number} index Index to insert object at\n * @param {Boolean} nonSplicing When `true`, no splicing (shifting) of objects occurs\n * @return {Self} thisArg\n * @chainable\n */\n insertAt: function (object, index, nonSplicing) {\n var objects = this._objects;\n if (nonSplicing) {\n objects[index] = object;\n }\n else {\n objects.splice(index, 0, object);\n }\n this._onObjectAdded && this._onObjectAdded(object);\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Removes objects from a collection, then renders canvas (if `renderOnAddRemove` is not `false`)\n * @param {...fabric.Object} object Zero or more fabric instances\n * @return {Self} thisArg\n * @chainable\n */\n remove: function() {\n var objects = this._objects,\n index, somethingRemoved = false;\n\n for (var i = 0, length = arguments.length; i < length; i++) {\n index = objects.indexOf(arguments[i]);\n\n // only call onObjectRemoved if an object was actually removed\n if (index !== -1) {\n somethingRemoved = true;\n objects.splice(index, 1);\n this._onObjectRemoved && this._onObjectRemoved(arguments[i]);\n }\n }\n\n this.renderOnAddRemove && somethingRemoved && this.requestRenderAll();\n return this;\n },\n\n /**\n * Executes given function for each object in this group\n * @param {Function} callback\n * Callback invoked with current object as first argument,\n * index - as second and an array of all objects - as third.\n * Callback is invoked in a context of Global Object (e.g. `window`)\n * when no `context` argument is given\n *\n * @param {Object} context Context (aka thisObject)\n * @return {Self} thisArg\n * @chainable\n */\n forEachObject: function(callback, context) {\n var objects = this.getObjects();\n for (var i = 0, len = objects.length; i < len; i++) {\n callback.call(context, objects[i], i, objects);\n }\n return this;\n },\n\n /**\n * Returns an array of children objects of this instance\n * Type parameter introduced in 1.3.10\n * since 2.3.5 this method return always a COPY of the array;\n * @param {String} [type] When specified, only objects of this type are returned\n * @return {Array}\n */\n getObjects: function(type) {\n if (typeof type === 'undefined') {\n return this._objects.concat();\n }\n return this._objects.filter(function(o) {\n return o.type === type;\n });\n },\n\n /**\n * Returns object at specified index\n * @param {Number} index\n * @return {Self} thisArg\n */\n item: function (index) {\n return this._objects[index];\n },\n\n /**\n * Returns true if collection contains no objects\n * @return {Boolean} true if collection is empty\n */\n isEmpty: function () {\n return this._objects.length === 0;\n },\n\n /**\n * Returns a size of a collection (i.e: length of an array containing its objects)\n * @return {Number} Collection size\n */\n size: function() {\n return this._objects.length;\n },\n\n /**\n * Returns true if collection contains an object\n * @param {Object} object Object to check against\n * @return {Boolean} `true` if collection contains an object\n */\n contains: function(object) {\n return this._objects.indexOf(object) > -1;\n },\n\n /**\n * Returns number representation of a collection complexity\n * @return {Number} complexity\n */\n complexity: function () {\n return this._objects.reduce(function (memo, current) {\n memo += current.complexity ? current.complexity() : 0;\n return memo;\n }, 0);\n }\n};\n\n\n/**\n * @namespace fabric.CommonMethods\n */\nfabric.CommonMethods = {\n\n /**\n * Sets object's properties from options\n * @param {Object} [options] Options object\n */\n _setOptions: function(options) {\n for (var prop in options) {\n this.set(prop, options[prop]);\n }\n },\n\n /**\n * @private\n * @param {Object} [filler] Options object\n * @param {String} [property] property to set the Gradient to\n */\n _initGradient: function(filler, property) {\n if (filler && filler.colorStops && !(filler instanceof fabric.Gradient)) {\n this.set(property, new fabric.Gradient(filler));\n }\n },\n\n /**\n * @private\n * @param {Object} [filler] Options object\n * @param {String} [property] property to set the Pattern to\n * @param {Function} [callback] callback to invoke after pattern load\n */\n _initPattern: function(filler, property, callback) {\n if (filler && filler.source && !(filler instanceof fabric.Pattern)) {\n this.set(property, new fabric.Pattern(filler, callback));\n }\n else {\n callback && callback();\n }\n },\n\n /**\n * @private\n * @param {Object} [options] Options object\n */\n _initClipping: function(options) {\n if (!options.clipTo || typeof options.clipTo !== 'string') {\n return;\n }\n\n var functionBody = fabric.util.getFunctionBody(options.clipTo);\n if (typeof functionBody !== 'undefined') {\n this.clipTo = new Function('ctx', functionBody);\n }\n },\n\n /**\n * @private\n */\n _setObject: function(obj) {\n for (var prop in obj) {\n this._set(prop, obj[prop]);\n }\n },\n\n /**\n * Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) `set` does not update position of object's borders/controls. If you need to update those, call `setCoords()`.\n * @param {String|Object} key Property name or object (if object, iterate over the object properties)\n * @param {Object|Function} value Property value (if function, the value is passed into it and its return value is used as a new one)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n set: function(key, value) {\n if (typeof key === 'object') {\n this._setObject(key);\n }\n else {\n if (typeof value === 'function' && key !== 'clipTo') {\n this._set(key, value(this.get(key)));\n }\n else {\n this._set(key, value);\n }\n }\n return this;\n },\n\n _set: function(key, value) {\n this[key] = value;\n },\n\n /**\n * Toggles specified property from `true` to `false` or from `false` to `true`\n * @param {String} property Property to toggle\n * @return {fabric.Object} thisArg\n * @chainable\n */\n toggle: function(property) {\n var value = this.get(property);\n if (typeof value === 'boolean') {\n this.set(property, !value);\n }\n return this;\n },\n\n /**\n * Basic getter\n * @param {String} property Property name\n * @return {*} value of a property\n */\n get: function(property) {\n return this[property];\n }\n};\n\n\n(function(global) {\n\n var sqrt = Math.sqrt,\n atan2 = Math.atan2,\n pow = Math.pow,\n PiBy180 = Math.PI / 180,\n PiBy2 = Math.PI / 2;\n\n /**\n * @namespace fabric.util\n */\n fabric.util = {\n\n /**\n * Calculate the cos of an angle, avoiding returning floats for known results\n * @static\n * @memberOf fabric.util\n * @param {Number} angle the angle in radians or in degree\n * @return {Number}\n */\n cos: function(angle) {\n if (angle === 0) { return 1; }\n if (angle < 0) {\n // cos(a) = cos(-a)\n angle = -angle;\n }\n var angleSlice = angle / PiBy2;\n switch (angleSlice) {\n case 1: case 3: return 0;\n case 2: return -1;\n }\n return Math.cos(angle);\n },\n\n /**\n * Calculate the sin of an angle, avoiding returning floats for known results\n * @static\n * @memberOf fabric.util\n * @param {Number} angle the angle in radians or in degree\n * @return {Number}\n */\n sin: function(angle) {\n if (angle === 0) { return 0; }\n var angleSlice = angle / PiBy2, sign = 1;\n if (angle < 0) {\n // sin(-a) = -sin(a)\n sign = -1;\n }\n switch (angleSlice) {\n case 1: return sign;\n case 2: return 0;\n case 3: return -sign;\n }\n return Math.sin(angle);\n },\n\n /**\n * Removes value from an array.\n * Presence of value (and its position in an array) is determined via `Array.prototype.indexOf`\n * @static\n * @memberOf fabric.util\n * @param {Array} array\n * @param {*} value\n * @return {Array} original array\n */\n removeFromArray: function(array, value) {\n var idx = array.indexOf(value);\n if (idx !== -1) {\n array.splice(idx, 1);\n }\n return array;\n },\n\n /**\n * Returns random number between 2 specified ones.\n * @static\n * @memberOf fabric.util\n * @param {Number} min lower limit\n * @param {Number} max upper limit\n * @return {Number} random value (between min and max)\n */\n getRandomInt: function(min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n },\n\n /**\n * Transforms degrees to radians.\n * @static\n * @memberOf fabric.util\n * @param {Number} degrees value in degrees\n * @return {Number} value in radians\n */\n degreesToRadians: function(degrees) {\n return degrees * PiBy180;\n },\n\n /**\n * Transforms radians to degrees.\n * @static\n * @memberOf fabric.util\n * @param {Number} radians value in radians\n * @return {Number} value in degrees\n */\n radiansToDegrees: function(radians) {\n return radians / PiBy180;\n },\n\n /**\n * Rotates `point` around `origin` with `radians`\n * @static\n * @memberOf fabric.util\n * @param {fabric.Point} point The point to rotate\n * @param {fabric.Point} origin The origin of the rotation\n * @param {Number} radians The radians of the angle for the rotation\n * @return {fabric.Point} The new rotated point\n */\n rotatePoint: function(point, origin, radians) {\n point.subtractEquals(origin);\n var v = fabric.util.rotateVector(point, radians);\n return new fabric.Point(v.x, v.y).addEquals(origin);\n },\n\n /**\n * Rotates `vector` with `radians`\n * @static\n * @memberOf fabric.util\n * @param {Object} vector The vector to rotate (x and y)\n * @param {Number} radians The radians of the angle for the rotation\n * @return {Object} The new rotated point\n */\n rotateVector: function(vector, radians) {\n var sin = fabric.util.sin(radians),\n cos = fabric.util.cos(radians),\n rx = vector.x * cos - vector.y * sin,\n ry = vector.x * sin + vector.y * cos;\n return {\n x: rx,\n y: ry\n };\n },\n\n /**\n * Apply transform t to point p\n * @static\n * @memberOf fabric.util\n * @param {fabric.Point} p The point to transform\n * @param {Array} t The transform\n * @param {Boolean} [ignoreOffset] Indicates that the offset should not be applied\n * @return {fabric.Point} The transformed point\n */\n transformPoint: function(p, t, ignoreOffset) {\n if (ignoreOffset) {\n return new fabric.Point(\n t[0] * p.x + t[2] * p.y,\n t[1] * p.x + t[3] * p.y\n );\n }\n return new fabric.Point(\n t[0] * p.x + t[2] * p.y + t[4],\n t[1] * p.x + t[3] * p.y + t[5]\n );\n },\n\n /**\n * Returns coordinates of points's bounding rectangle (left, top, width, height)\n * @param {Array} points 4 points array\n * @param {Array} [transform] an array of 6 numbers representing a 2x3 transform matrix\n * @return {Object} Object with left, top, width, height properties\n */\n makeBoundingBoxFromPoints: function(points, transform) {\n if (transform) {\n for (var i = 0; i < points.length; i++) {\n points[i] = fabric.util.transformPoint(points[i], transform);\n }\n }\n var xPoints = [points[0].x, points[1].x, points[2].x, points[3].x],\n minX = fabric.util.array.min(xPoints),\n maxX = fabric.util.array.max(xPoints),\n width = maxX - minX,\n yPoints = [points[0].y, points[1].y, points[2].y, points[3].y],\n minY = fabric.util.array.min(yPoints),\n maxY = fabric.util.array.max(yPoints),\n height = maxY - minY;\n\n return {\n left: minX,\n top: minY,\n width: width,\n height: height\n };\n },\n\n /**\n * Invert transformation t\n * @static\n * @memberOf fabric.util\n * @param {Array} t The transform\n * @return {Array} The inverted transform\n */\n invertTransform: function(t) {\n var a = 1 / (t[0] * t[3] - t[1] * t[2]),\n r = [a * t[3], -a * t[1], -a * t[2], a * t[0]],\n o = fabric.util.transformPoint({ x: t[4], y: t[5] }, r, true);\n r[4] = -o.x;\n r[5] = -o.y;\n return r;\n },\n\n /**\n * A wrapper around Number#toFixed, which contrary to native method returns number, not string.\n * @static\n * @memberOf fabric.util\n * @param {Number|String} number number to operate on\n * @param {Number} fractionDigits number of fraction digits to \"leave\"\n * @return {Number}\n */\n toFixed: function(number, fractionDigits) {\n return parseFloat(Number(number).toFixed(fractionDigits));\n },\n\n /**\n * Converts from attribute value to pixel value if applicable.\n * Returns converted pixels or original value not converted.\n * @param {Number|String} value number to operate on\n * @param {Number} fontSize\n * @return {Number|String}\n */\n parseUnit: function(value, fontSize) {\n var unit = /\\D{0,2}$/.exec(value),\n number = parseFloat(value);\n if (!fontSize) {\n fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;\n }\n switch (unit[0]) {\n case 'mm':\n return number * fabric.DPI / 25.4;\n\n case 'cm':\n return number * fabric.DPI / 2.54;\n\n case 'in':\n return number * fabric.DPI;\n\n case 'pt':\n return number * fabric.DPI / 72; // or * 4 / 3\n\n case 'pc':\n return number * fabric.DPI / 72 * 12; // or * 16\n\n case 'em':\n return number * fontSize;\n\n default:\n return number;\n }\n },\n\n /**\n * Function which always returns `false`.\n * @static\n * @memberOf fabric.util\n * @return {Boolean}\n */\n falseFunction: function() {\n return false;\n },\n\n /**\n * Returns klass \"Class\" object of given namespace\n * @memberOf fabric.util\n * @param {String} type Type of object (eg. 'circle')\n * @param {String} namespace Namespace to get klass \"Class\" object from\n * @return {Object} klass \"Class\"\n */\n getKlass: function(type, namespace) {\n // capitalize first letter only\n type = fabric.util.string.camelize(type.charAt(0).toUpperCase() + type.slice(1));\n return fabric.util.resolveNamespace(namespace)[type];\n },\n\n /**\n * Returns array of attributes for given svg that fabric parses\n * @memberOf fabric.util\n * @param {String} type Type of svg element (eg. 'circle')\n * @return {Array} string names of supported attributes\n */\n getSvgAttributes: function(type) {\n var attributes = [\n 'instantiated_by_use',\n 'style',\n 'id',\n 'class'\n ];\n switch (type) {\n case 'linearGradient':\n attributes = attributes.concat(['x1', 'y1', 'x2', 'y2', 'gradientUnits', 'gradientTransform']);\n break;\n case 'radialGradient':\n attributes = attributes.concat(['gradientUnits', 'gradientTransform', 'cx', 'cy', 'r', 'fx', 'fy', 'fr']);\n break;\n case 'stop':\n attributes = attributes.concat(['offset', 'stop-color', 'stop-opacity']);\n break;\n }\n return attributes;\n },\n\n /**\n * Returns object of given namespace\n * @memberOf fabric.util\n * @param {String} namespace Namespace string e.g. 'fabric.Image.filter' or 'fabric'\n * @return {Object} Object for given namespace (default fabric)\n */\n resolveNamespace: function(namespace) {\n if (!namespace) {\n return fabric;\n }\n\n var parts = namespace.split('.'),\n len = parts.length, i,\n obj = global || fabric.window;\n\n for (i = 0; i < len; ++i) {\n obj = obj[parts[i]];\n }\n\n return obj;\n },\n\n /**\n * Loads image element from given url and passes it to a callback\n * @memberOf fabric.util\n * @param {String} url URL representing an image\n * @param {Function} callback Callback; invoked with loaded image\n * @param {*} [context] Context to invoke callback in\n * @param {Object} [crossOrigin] crossOrigin value to set image element to\n */\n loadImage: function(url, callback, context, crossOrigin) {\n if (!url) {\n callback && callback.call(context, url);\n return;\n }\n\n var img = fabric.util.createImage();\n\n /** @ignore */\n var onLoadCallback = function () {\n callback && callback.call(context, img);\n img = img.onload = img.onerror = null;\n };\n\n img.onload = onLoadCallback;\n /** @ignore */\n img.onerror = function() {\n fabric.log('Error loading ' + img.src);\n callback && callback.call(context, null, true);\n img = img.onload = img.onerror = null;\n };\n\n // data-urls appear to be buggy with crossOrigin\n // https://github.com/kangax/fabric.js/commit/d0abb90f1cd5c5ef9d2a94d3fb21a22330da3e0a#commitcomment-4513767\n // see https://code.google.com/p/chromium/issues/detail?id=315152\n // https://bugzilla.mozilla.org/show_bug.cgi?id=935069\n if (url.indexOf('data') !== 0 && crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n // IE10 / IE11-Fix: SVG contents from data: URI\n // will only be available if the IMG is present\n // in the DOM (and visible)\n if (url.substring(0,14) === 'data:image/svg') {\n img.onload = null;\n fabric.util.loadImageInDom(img, onLoadCallback);\n }\n\n img.src = url;\n },\n\n /**\n * Attaches SVG image with data: URL to the dom\n * @memberOf fabric.util\n * @param {Object} img Image object with data:image/svg src\n * @param {Function} callback Callback; invoked with loaded image\n * @return {Object} DOM element (div containing the SVG image)\n */\n loadImageInDom: function(img, onLoadCallback) {\n var div = fabric.document.createElement('div');\n div.style.width = div.style.height = '1px';\n div.style.left = div.style.top = '-100%';\n div.style.position = 'absolute';\n div.appendChild(img);\n fabric.document.querySelector('body').appendChild(div);\n /**\n * Wrap in function to:\n * 1. Call existing callback\n * 2. Cleanup DOM\n */\n img.onload = function () {\n onLoadCallback();\n div.parentNode.removeChild(div);\n div = null;\n };\n },\n\n /**\n * Creates corresponding fabric instances from their object representations\n * @static\n * @memberOf fabric.util\n * @param {Array} objects Objects to enliven\n * @param {Function} callback Callback to invoke when all objects are created\n * @param {String} namespace Namespace to get klass \"Class\" object from\n * @param {Function} reviver Method for further parsing of object elements,\n * called after each fabric object created.\n */\n enlivenObjects: function(objects, callback, namespace, reviver) {\n objects = objects || [];\n\n var enlivenedObjects = [],\n numLoadedObjects = 0,\n numTotalObjects = objects.length;\n\n function onLoaded() {\n if (++numLoadedObjects === numTotalObjects) {\n callback && callback(enlivenedObjects.filter(function(obj) {\n // filter out undefined objects (objects that gave error)\n return obj;\n }));\n }\n }\n\n if (!numTotalObjects) {\n callback && callback(enlivenedObjects);\n return;\n }\n\n objects.forEach(function (o, index) {\n // if sparse array\n if (!o || !o.type) {\n onLoaded();\n return;\n }\n var klass = fabric.util.getKlass(o.type, namespace);\n klass.fromObject(o, function (obj, error) {\n error || (enlivenedObjects[index] = obj);\n reviver && reviver(o, obj, error);\n onLoaded();\n });\n });\n },\n\n /**\n * Create and wait for loading of patterns\n * @static\n * @memberOf fabric.util\n * @param {Array} patterns Objects to enliven\n * @param {Function} callback Callback to invoke when all objects are created\n * called after each fabric object created.\n */\n enlivenPatterns: function(patterns, callback) {\n patterns = patterns || [];\n\n function onLoaded() {\n if (++numLoadedPatterns === numPatterns) {\n callback && callback(enlivenedPatterns);\n }\n }\n\n var enlivenedPatterns = [],\n numLoadedPatterns = 0,\n numPatterns = patterns.length;\n\n if (!numPatterns) {\n callback && callback(enlivenedPatterns);\n return;\n }\n\n patterns.forEach(function (p, index) {\n if (p && p.source) {\n new fabric.Pattern(p, function(pattern) {\n enlivenedPatterns[index] = pattern;\n onLoaded();\n });\n }\n else {\n enlivenedPatterns[index] = p;\n onLoaded();\n }\n });\n },\n\n /**\n * Groups SVG elements (usually those retrieved from SVG document)\n * @static\n * @memberOf fabric.util\n * @param {Array} elements SVG elements to group\n * @param {Object} [options] Options object\n * @param {String} path Value to set sourcePath to\n * @return {fabric.Object|fabric.Group}\n */\n groupSVGElements: function(elements, options, path) {\n var object;\n if (elements && elements.length === 1) {\n return elements[0];\n }\n if (options) {\n if (options.width && options.height) {\n options.centerPoint = {\n x: options.width / 2,\n y: options.height / 2\n };\n }\n else {\n delete options.width;\n delete options.height;\n }\n }\n object = new fabric.Group(elements, options);\n if (typeof path !== 'undefined') {\n object.sourcePath = path;\n }\n return object;\n },\n\n /**\n * Populates an object with properties of another object\n * @static\n * @memberOf fabric.util\n * @param {Object} source Source object\n * @param {Object} destination Destination object\n * @return {Array} properties Properties names to include\n */\n populateWithProperties: function(source, destination, properties) {\n if (properties && Object.prototype.toString.call(properties) === '[object Array]') {\n for (var i = 0, len = properties.length; i < len; i++) {\n if (properties[i] in source) {\n destination[properties[i]] = source[properties[i]];\n }\n }\n }\n },\n\n /**\n * Draws a dashed line between two points\n *\n * This method is used to draw dashed line around selection area.\n * See dotted stroke in canvas\n *\n * @param {CanvasRenderingContext2D} ctx context\n * @param {Number} x start x coordinate\n * @param {Number} y start y coordinate\n * @param {Number} x2 end x coordinate\n * @param {Number} y2 end y coordinate\n * @param {Array} da dash array pattern\n */\n drawDashedLine: function(ctx, x, y, x2, y2, da) {\n var dx = x2 - x,\n dy = y2 - y,\n len = sqrt(dx * dx + dy * dy),\n rot = atan2(dy, dx),\n dc = da.length,\n di = 0,\n draw = true;\n\n ctx.save();\n ctx.translate(x, y);\n ctx.moveTo(0, 0);\n ctx.rotate(rot);\n\n x = 0;\n while (len > x) {\n x += da[di++ % dc];\n if (x > len) {\n x = len;\n }\n ctx[draw ? 'lineTo' : 'moveTo'](x, 0);\n draw = !draw;\n }\n\n ctx.restore();\n },\n\n /**\n * Creates canvas element\n * @static\n * @memberOf fabric.util\n * @return {CanvasElement} initialized canvas element\n */\n createCanvasElement: function() {\n return fabric.document.createElement('canvas');\n },\n\n /**\n * Creates a canvas element that is a copy of another and is also painted\n * @param {CanvasElement} canvas to copy size and content of\n * @static\n * @memberOf fabric.util\n * @return {CanvasElement} initialized canvas element\n */\n copyCanvasElement: function(canvas) {\n var newCanvas = fabric.util.createCanvasElement();\n newCanvas.width = canvas.width;\n newCanvas.height = canvas.height;\n newCanvas.getContext('2d').drawImage(canvas, 0, 0);\n return newCanvas;\n },\n\n /**\n * since 2.6.0 moved from canvas instance to utility.\n * @param {CanvasElement} canvasEl to copy size and content of\n * @param {String} format 'jpeg' or 'png', in some browsers 'webp' is ok too\n * @param {Number} quality <= 1 and > 0\n * @static\n * @memberOf fabric.util\n * @return {String} data url\n */\n toDataURL: function(canvasEl, format, quality) {\n return canvasEl.toDataURL('image/' + format, quality);\n },\n\n /**\n * Creates image element (works on client and node)\n * @static\n * @memberOf fabric.util\n * @return {HTMLImageElement} HTML image element\n */\n createImage: function() {\n return fabric.document.createElement('img');\n },\n\n /**\n * @static\n * @memberOf fabric.util\n * @deprecated since 2.0.0\n * @param {fabric.Object} receiver Object implementing `clipTo` method\n * @param {CanvasRenderingContext2D} ctx Context to clip\n */\n clipContext: function(receiver, ctx) {\n ctx.save();\n ctx.beginPath();\n receiver.clipTo(ctx);\n ctx.clip();\n },\n\n /**\n * Multiply matrix A by matrix B to nest transformations\n * @static\n * @memberOf fabric.util\n * @param {Array} a First transformMatrix\n * @param {Array} b Second transformMatrix\n * @param {Boolean} is2x2 flag to multiply matrices as 2x2 matrices\n * @return {Array} The product of the two transform matrices\n */\n multiplyTransformMatrices: function(a, b, is2x2) {\n // Matrix multiply a * b\n return [\n a[0] * b[0] + a[2] * b[1],\n a[1] * b[0] + a[3] * b[1],\n a[0] * b[2] + a[2] * b[3],\n a[1] * b[2] + a[3] * b[3],\n is2x2 ? 0 : a[0] * b[4] + a[2] * b[5] + a[4],\n is2x2 ? 0 : a[1] * b[4] + a[3] * b[5] + a[5]\n ];\n },\n\n /**\n * Decomposes standard 2x3 matrix into transform components\n * @static\n * @memberOf fabric.util\n * @param {Array} a transformMatrix\n * @return {Object} Components of transform\n */\n qrDecompose: function(a) {\n var angle = atan2(a[1], a[0]),\n denom = pow(a[0], 2) + pow(a[1], 2),\n scaleX = sqrt(denom),\n scaleY = (a[0] * a[3] - a[2] * a [1]) / scaleX,\n skewX = atan2(a[0] * a[2] + a[1] * a [3], denom);\n return {\n angle: angle / PiBy180,\n scaleX: scaleX,\n scaleY: scaleY,\n skewX: skewX / PiBy180,\n skewY: 0,\n translateX: a[4],\n translateY: a[5]\n };\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.angle] angle in degrees\n * @return {Number[]} transform matrix\n */\n calcRotateMatrix: function(options) {\n if (!options.angle) {\n return fabric.iMatrix.concat();\n }\n var theta = fabric.util.degreesToRadians(options.angle),\n cos = fabric.util.cos(theta),\n sin = fabric.util.sin(theta);\n return [cos, sin, -sin, cos, 0, 0];\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet.\n * is called DimensionsTransformMatrix because those properties are the one that influence\n * the size of the resulting box of the object.\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.scaleX]\n * @param {Number} [options.scaleY]\n * @param {Boolean} [options.flipX]\n * @param {Boolean} [options.flipY]\n * @param {Number} [options.skewX]\n * @param {Number} [options.skewX]\n * @return {Number[]} transform matrix\n */\n calcDimensionsMatrix: function(options) {\n var scaleX = typeof options.scaleX === 'undefined' ? 1 : options.scaleX,\n scaleY = typeof options.scaleY === 'undefined' ? 1 : options.scaleY,\n scaleMatrix = [\n options.flipX ? -scaleX : scaleX,\n 0,\n 0,\n options.flipY ? -scaleY : scaleY,\n 0,\n 0],\n multiply = fabric.util.multiplyTransformMatrices,\n degreesToRadians = fabric.util.degreesToRadians;\n if (options.skewX) {\n scaleMatrix = multiply(\n scaleMatrix,\n [1, 0, Math.tan(degreesToRadians(options.skewX)), 1],\n true);\n }\n if (options.skewY) {\n scaleMatrix = multiply(\n scaleMatrix,\n [1, Math.tan(degreesToRadians(options.skewY)), 0, 1],\n true);\n }\n return scaleMatrix;\n },\n\n /**\n * Returns a transform matrix starting from an object of the same kind of\n * the one returned from qrDecompose, useful also if you want to calculate some\n * transformations from an object that is not enlived yet\n * @static\n * @memberOf fabric.util\n * @param {Object} options\n * @param {Number} [options.angle]\n * @param {Number} [options.scaleX]\n * @param {Number} [options.scaleY]\n * @param {Boolean} [options.flipX]\n * @param {Boolean} [options.flipY]\n * @param {Number} [options.skewX]\n * @param {Number} [options.skewX]\n * @param {Number} [options.translateX]\n * @param {Number} [options.translateY]\n * @return {Number[]} transform matrix\n */\n composeMatrix: function(options) {\n var matrix = [1, 0, 0, 1, options.translateX || 0, options.translateY || 0],\n multiply = fabric.util.multiplyTransformMatrices;\n if (options.angle) {\n matrix = multiply(matrix, fabric.util.calcRotateMatrix(options));\n }\n if (options.scaleX || options.scaleY || options.skewX || options.skewY || options.flipX || options.flipY) {\n matrix = multiply(matrix, fabric.util.calcDimensionsMatrix(options));\n }\n return matrix;\n },\n\n /**\n * Returns a transform matrix that has the same effect of scaleX, scaleY and skewX.\n * Is deprecated for composeMatrix. Please do not use it.\n * @static\n * @deprecated since 3.4.0\n * @memberOf fabric.util\n * @param {Number} scaleX\n * @param {Number} scaleY\n * @param {Number} skewX\n * @return {Number[]} transform matrix\n */\n customTransformMatrix: function(scaleX, scaleY, skewX) {\n return fabric.util.composeMatrix({ scaleX: scaleX, scaleY: scaleY, skewX: skewX });\n },\n\n /**\n * reset an object transform state to neutral. Top and left are not accounted for\n * @static\n * @memberOf fabric.util\n * @param {fabric.Object} target object to transform\n */\n resetObjectTransform: function (target) {\n target.scaleX = 1;\n target.scaleY = 1;\n target.skewX = 0;\n target.skewY = 0;\n target.flipX = false;\n target.flipY = false;\n target.rotate(0);\n },\n\n /**\n * Extract Object transform values\n * @static\n * @memberOf fabric.util\n * @param {fabric.Object} target object to read from\n * @return {Object} Components of transform\n */\n saveObjectTransform: function (target) {\n return {\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n skewX: target.skewX,\n skewY: target.skewY,\n angle: target.angle,\n left: target.left,\n flipX: target.flipX,\n flipY: target.flipY,\n top: target.top\n };\n },\n\n /**\n * Returns string representation of function body\n * @param {Function} fn Function to get body of\n * @return {String} Function body\n */\n getFunctionBody: function(fn) {\n return (String(fn).match(/function[^{]*\\{([\\s\\S]*)\\}/) || {})[1];\n },\n\n /**\n * Returns true if context has transparent pixel\n * at specified location (taking tolerance into account)\n * @param {CanvasRenderingContext2D} ctx context\n * @param {Number} x x coordinate\n * @param {Number} y y coordinate\n * @param {Number} tolerance Tolerance\n */\n isTransparent: function(ctx, x, y, tolerance) {\n\n // If tolerance is > 0 adjust start coords to take into account.\n // If moves off Canvas fix to 0\n if (tolerance > 0) {\n if (x > tolerance) {\n x -= tolerance;\n }\n else {\n x = 0;\n }\n if (y > tolerance) {\n y -= tolerance;\n }\n else {\n y = 0;\n }\n }\n\n var _isTransparent = true, i, temp,\n imageData = ctx.getImageData(x, y, (tolerance * 2) || 1, (tolerance * 2) || 1),\n l = imageData.data.length;\n\n // Split image data - for tolerance > 1, pixelDataSize = 4;\n for (i = 3; i < l; i += 4) {\n temp = imageData.data[i];\n _isTransparent = temp <= 0;\n if (_isTransparent === false) {\n break; // Stop if colour found\n }\n }\n\n imageData = null;\n\n return _isTransparent;\n },\n\n /**\n * Parse preserveAspectRatio attribute from element\n * @param {string} attribute to be parsed\n * @return {Object} an object containing align and meetOrSlice attribute\n */\n parsePreserveAspectRatioAttribute: function(attribute) {\n var meetOrSlice = 'meet', alignX = 'Mid', alignY = 'Mid',\n aspectRatioAttrs = attribute.split(' '), align;\n\n if (aspectRatioAttrs && aspectRatioAttrs.length) {\n meetOrSlice = aspectRatioAttrs.pop();\n if (meetOrSlice !== 'meet' && meetOrSlice !== 'slice') {\n align = meetOrSlice;\n meetOrSlice = 'meet';\n }\n else if (aspectRatioAttrs.length) {\n align = aspectRatioAttrs.pop();\n }\n }\n //divide align in alignX and alignY\n alignX = align !== 'none' ? align.slice(1, 4) : 'none';\n alignY = align !== 'none' ? align.slice(5, 8) : 'none';\n return {\n meetOrSlice: meetOrSlice,\n alignX: alignX,\n alignY: alignY\n };\n },\n\n /**\n * Clear char widths cache for the given font family or all the cache if no\n * fontFamily is specified.\n * Use it if you know you are loading fonts in a lazy way and you are not waiting\n * for custom fonts to load properly when adding text objects to the canvas.\n * If a text object is added when its own font is not loaded yet, you will get wrong\n * measurement and so wrong bounding boxes.\n * After the font cache is cleared, either change the textObject text content or call\n * initDimensions() to trigger a recalculation\n * @memberOf fabric.util\n * @param {String} [fontFamily] font family to clear\n */\n clearFabricFontCache: function(fontFamily) {\n fontFamily = (fontFamily || '').toLowerCase();\n if (!fontFamily) {\n fabric.charWidthsCache = { };\n }\n else if (fabric.charWidthsCache[fontFamily]) {\n delete fabric.charWidthsCache[fontFamily];\n }\n },\n\n /**\n * Given current aspect ratio, determines the max width and height that can\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Number} ar aspect ratio\n * @param {Number} maximumArea Maximum area you want to achieve\n * @return {Object.x} Limited dimensions by X\n * @return {Object.y} Limited dimensions by Y\n */\n limitDimsByArea: function(ar, maximumArea) {\n var roughWidth = Math.sqrt(maximumArea * ar),\n perfLimitSizeY = Math.floor(maximumArea / roughWidth);\n return { x: Math.floor(roughWidth), y: perfLimitSizeY };\n },\n\n capValue: function(min, value, max) {\n return Math.max(min, Math.min(value, max));\n },\n\n /**\n * Finds the scale for the object source to fit inside the object destination,\n * keeping aspect ratio intact.\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Object | fabric.Object} source\n * @param {Number} source.height natural unscaled height of the object\n * @param {Number} source.width natural unscaled width of the object\n * @param {Object | fabric.Object} destination\n * @param {Number} destination.height natural unscaled height of the object\n * @param {Number} destination.width natural unscaled width of the object\n * @return {Number} scale factor to apply to source to fit into destination\n */\n findScaleToFit: function(source, destination) {\n return Math.min(destination.width / source.width, destination.height / source.height);\n },\n\n /**\n * Finds the scale for the object source to cover entirely the object destination,\n * keeping aspect ratio intact.\n * respect the total allowed area for the cache.\n * @memberOf fabric.util\n * @param {Object | fabric.Object} source\n * @param {Number} source.height natural unscaled height of the object\n * @param {Number} source.width natural unscaled width of the object\n * @param {Object | fabric.Object} destination\n * @param {Number} destination.height natural unscaled height of the object\n * @param {Number} destination.width natural unscaled width of the object\n * @return {Number} scale factor to apply to source to cover destination\n */\n findScaleToCover: function(source, destination) {\n return Math.max(destination.width / source.width, destination.height / source.height);\n },\n\n /**\n * given an array of 6 number returns something like `\"matrix(...numbers)\"`\n * @memberOf fabric.util\n * @param {Array} trasnform an array with 6 numbers\n * @return {String} transform matrix for svg\n * @return {Object.y} Limited dimensions by Y\n */\n matrixToSVG: function(transform) {\n return 'matrix(' + transform.map(function(value) {\n return fabric.util.toFixed(value, fabric.Object.NUM_FRACTION_DIGITS);\n }).join(' ') + ')';\n }\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n\n var _join = Array.prototype.join;\n\n /* Adapted from http://dxr.mozilla.org/mozilla-central/source/content/svg/content/src/nsSVGPathDataParser.cpp\n * by Andrea Bogazzi code is under MPL. if you don't have a copy of the license you can take it here\n * http://mozilla.org/MPL/2.0/\n */\n function arcToSegments(toX, toY, rx, ry, large, sweep, rotateX) {\n var argsString = _join.call(arguments);\n if (fabric.arcToSegmentsCache[argsString]) {\n return fabric.arcToSegmentsCache[argsString];\n }\n\n var PI = Math.PI, th = rotateX * PI / 180,\n sinTh = fabric.util.sin(th),\n cosTh = fabric.util.cos(th),\n fromX = 0, fromY = 0;\n\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n\n var px = -cosTh * toX * 0.5 - sinTh * toY * 0.5,\n py = -cosTh * toY * 0.5 + sinTh * toX * 0.5,\n rx2 = rx * rx, ry2 = ry * ry, py2 = py * py, px2 = px * px,\n pl = rx2 * ry2 - rx2 * py2 - ry2 * px2,\n root = 0;\n\n if (pl < 0) {\n var s = Math.sqrt(1 - pl / (rx2 * ry2));\n rx *= s;\n ry *= s;\n }\n else {\n root = (large === sweep ? -1.0 : 1.0) *\n Math.sqrt( pl / (rx2 * py2 + ry2 * px2));\n }\n\n var cx = root * rx * py / ry,\n cy = -root * ry * px / rx,\n cx1 = cosTh * cx - sinTh * cy + toX * 0.5,\n cy1 = sinTh * cx + cosTh * cy + toY * 0.5,\n mTheta = calcVectorAngle(1, 0, (px - cx) / rx, (py - cy) / ry),\n dtheta = calcVectorAngle((px - cx) / rx, (py - cy) / ry, (-px - cx) / rx, (-py - cy) / ry);\n\n if (sweep === 0 && dtheta > 0) {\n dtheta -= 2 * PI;\n }\n else if (sweep === 1 && dtheta < 0) {\n dtheta += 2 * PI;\n }\n\n // Convert into cubic bezier segments <= 90deg\n var segments = Math.ceil(Math.abs(dtheta / PI * 2)),\n result = [], mDelta = dtheta / segments,\n mT = 8 / 3 * Math.sin(mDelta / 4) * Math.sin(mDelta / 4) / Math.sin(mDelta / 2),\n th3 = mTheta + mDelta;\n\n for (var i = 0; i < segments; i++) {\n result[i] = segmentToBezier(mTheta, th3, cosTh, sinTh, rx, ry, cx1, cy1, mT, fromX, fromY);\n fromX = result[i][4];\n fromY = result[i][5];\n mTheta = th3;\n th3 += mDelta;\n }\n fabric.arcToSegmentsCache[argsString] = result;\n return result;\n }\n\n function segmentToBezier(th2, th3, cosTh, sinTh, rx, ry, cx1, cy1, mT, fromX, fromY) {\n var costh2 = fabric.util.cos(th2),\n sinth2 = fabric.util.sin(th2),\n costh3 = fabric.util.cos(th3),\n sinth3 = fabric.util.sin(th3),\n toX = cosTh * rx * costh3 - sinTh * ry * sinth3 + cx1,\n toY = sinTh * rx * costh3 + cosTh * ry * sinth3 + cy1,\n cp1X = fromX + mT * ( -cosTh * rx * sinth2 - sinTh * ry * costh2),\n cp1Y = fromY + mT * ( -sinTh * rx * sinth2 + cosTh * ry * costh2),\n cp2X = toX + mT * ( cosTh * rx * sinth3 + sinTh * ry * costh3),\n cp2Y = toY + mT * ( sinTh * rx * sinth3 - cosTh * ry * costh3);\n\n return [\n cp1X, cp1Y,\n cp2X, cp2Y,\n toX, toY\n ];\n }\n\n /*\n * Private\n */\n function calcVectorAngle(ux, uy, vx, vy) {\n var ta = Math.atan2(uy, ux),\n tb = Math.atan2(vy, vx);\n if (tb >= ta) {\n return tb - ta;\n }\n else {\n return 2 * Math.PI - (ta - tb);\n }\n }\n\n /**\n * Draws arc\n * @param {CanvasRenderingContext2D} ctx\n * @param {Number} fx\n * @param {Number} fy\n * @param {Array} coords\n */\n fabric.util.drawArc = function(ctx, fx, fy, coords) {\n var rx = coords[0],\n ry = coords[1],\n rot = coords[2],\n large = coords[3],\n sweep = coords[4],\n tx = coords[5],\n ty = coords[6],\n segs = [[], [], [], []],\n segsNorm = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot);\n\n for (var i = 0, len = segsNorm.length; i < len; i++) {\n segs[i][0] = segsNorm[i][0] + fx;\n segs[i][1] = segsNorm[i][1] + fy;\n segs[i][2] = segsNorm[i][2] + fx;\n segs[i][3] = segsNorm[i][3] + fy;\n segs[i][4] = segsNorm[i][4] + fx;\n segs[i][5] = segsNorm[i][5] + fy;\n ctx.bezierCurveTo.apply(ctx, segs[i]);\n }\n };\n\n /**\n * Calculate bounding box of a elliptic-arc\n * @param {Number} fx start point of arc\n * @param {Number} fy\n * @param {Number} rx horizontal radius\n * @param {Number} ry vertical radius\n * @param {Number} rot angle of horizontal axe\n * @param {Number} large 1 or 0, whatever the arc is the big or the small on the 2 points\n * @param {Number} sweep 1 or 0, 1 clockwise or counterclockwise direction\n * @param {Number} tx end point of arc\n * @param {Number} ty\n */\n fabric.util.getBoundsOfArc = function(fx, fy, rx, ry, rot, large, sweep, tx, ty) {\n\n var fromX = 0, fromY = 0, bound, bounds = [],\n segs = arcToSegments(tx - fx, ty - fy, rx, ry, large, sweep, rot);\n\n for (var i = 0, len = segs.length; i < len; i++) {\n bound = getBoundsOfCurve(fromX, fromY, segs[i][0], segs[i][1], segs[i][2], segs[i][3], segs[i][4], segs[i][5]);\n bounds.push({ x: bound[0].x + fx, y: bound[0].y + fy });\n bounds.push({ x: bound[1].x + fx, y: bound[1].y + fy });\n fromX = segs[i][4];\n fromY = segs[i][5];\n }\n return bounds;\n };\n\n /**\n * Calculate bounding box of a beziercurve\n * @param {Number} x0 starting point\n * @param {Number} y0\n * @param {Number} x1 first control point\n * @param {Number} y1\n * @param {Number} x2 secondo control point\n * @param {Number} y2\n * @param {Number} x3 end of beizer\n * @param {Number} y3\n */\n // taken from http://jsbin.com/ivomiq/56/edit no credits available for that.\n function getBoundsOfCurve(x0, y0, x1, y1, x2, y2, x3, y3) {\n var argsString;\n if (fabric.cachesBoundsOfCurve) {\n argsString = _join.call(arguments);\n if (fabric.boundsOfCurveCache[argsString]) {\n return fabric.boundsOfCurveCache[argsString];\n }\n }\n\n var sqrt = Math.sqrt,\n min = Math.min, max = Math.max,\n abs = Math.abs, tvalues = [],\n bounds = [[], []],\n a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n\n for (var i = 0; i < 2; ++i) {\n if (i > 0) {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (abs(a) < 1e-12) {\n if (abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n if (b2ac < 0) {\n continue;\n }\n sqrtb2ac = sqrt(b2ac);\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var x, y, j = tvalues.length, jlen = j, mt;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n x = (mt * mt * mt * x0) + (3 * mt * mt * t * x1) + (3 * mt * t * t * x2) + (t * t * t * x3);\n bounds[0][j] = x;\n\n y = (mt * mt * mt * y0) + (3 * mt * mt * t * y1) + (3 * mt * t * t * y2) + (t * t * t * y3);\n bounds[1][j] = y;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n var result = [\n {\n x: min.apply(null, bounds[0]),\n y: min.apply(null, bounds[1])\n },\n {\n x: max.apply(null, bounds[0]),\n y: max.apply(null, bounds[1])\n }\n ];\n if (fabric.cachesBoundsOfCurve) {\n fabric.boundsOfCurveCache[argsString] = result;\n }\n return result;\n }\n\n fabric.util.getBoundsOfCurve = getBoundsOfCurve;\n\n})();\n\n\n(function() {\n\n var slice = Array.prototype.slice;\n\n /**\n * Invokes method on all items in a given array\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} method Name of a method to invoke\n * @return {Array}\n */\n function invoke(array, method) {\n var args = slice.call(arguments, 2), result = [];\n for (var i = 0, len = array.length; i < len; i++) {\n result[i] = args.length ? array[i][method].apply(array[i], args) : array[i][method].call(array[i]);\n }\n return result;\n }\n\n /**\n * Finds maximum value in array (not necessarily \"first\" one)\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} byProperty\n * @return {*}\n */\n function max(array, byProperty) {\n return find(array, byProperty, function(value1, value2) {\n return value1 >= value2;\n });\n }\n\n /**\n * Finds minimum value in array (not necessarily \"first\" one)\n * @memberOf fabric.util.array\n * @param {Array} array Array to iterate over\n * @param {String} byProperty\n * @return {*}\n */\n function min(array, byProperty) {\n return find(array, byProperty, function(value1, value2) {\n return value1 < value2;\n });\n }\n\n /**\n * @private\n */\n function fill(array, value) {\n var k = array.length;\n while (k--) {\n array[k] = value;\n }\n return array;\n }\n\n /**\n * @private\n */\n function find(array, byProperty, condition) {\n if (!array || array.length === 0) {\n return;\n }\n\n var i = array.length - 1,\n result = byProperty ? array[i][byProperty] : array[i];\n if (byProperty) {\n while (i--) {\n if (condition(array[i][byProperty], result)) {\n result = array[i][byProperty];\n }\n }\n }\n else {\n while (i--) {\n if (condition(array[i], result)) {\n result = array[i];\n }\n }\n }\n return result;\n }\n\n /**\n * @namespace fabric.util.array\n */\n fabric.util.array = {\n fill: fill,\n invoke: invoke,\n min: min,\n max: max\n };\n\n})();\n\n\n(function() {\n /**\n * Copies all enumerable properties of one js object to another\n * this does not and cannot compete with generic utils.\n * Does not clone or extend fabric.Object subclasses.\n * This is mostly for internal use and has extra handling for fabricJS objects\n * it skips the canvas property in deep cloning.\n * @memberOf fabric.util.object\n * @param {Object} destination Where to copy to\n * @param {Object} source Where to copy from\n * @return {Object}\n */\n\n function extend(destination, source, deep) {\n // JScript DontEnum bug is not taken care of\n // the deep clone is for internal use, is not meant to avoid\n // javascript traps or cloning html element or self referenced objects.\n if (deep) {\n if (!fabric.isLikelyNode && source instanceof Element) {\n // avoid cloning deep images, canvases,\n destination = source;\n }\n else if (source instanceof Array) {\n destination = [];\n for (var i = 0, len = source.length; i < len; i++) {\n destination[i] = extend({ }, source[i], deep);\n }\n }\n else if (source && typeof source === 'object') {\n for (var property in source) {\n if (property === 'canvas') {\n destination[property] = extend({ }, source[property]);\n }\n else if (source.hasOwnProperty(property)) {\n destination[property] = extend({ }, source[property], deep);\n }\n }\n }\n else {\n // this sounds odd for an extend but is ok for recursive use\n destination = source;\n }\n }\n else {\n for (var property in source) {\n destination[property] = source[property];\n }\n }\n return destination;\n }\n\n /**\n * Creates an empty object and copies all enumerable properties of another object to it\n * @memberOf fabric.util.object\n * TODO: this function return an empty object if you try to clone null\n * @param {Object} object Object to clone\n * @return {Object}\n */\n function clone(object, deep) {\n return extend({ }, object, deep);\n }\n\n /** @namespace fabric.util.object */\n fabric.util.object = {\n extend: extend,\n clone: clone\n };\n fabric.util.object.extend(fabric.util, fabric.Observable);\n})();\n\n\n(function() {\n\n /**\n * Camelizes a string\n * @memberOf fabric.util.string\n * @param {String} string String to camelize\n * @return {String} Camelized version of a string\n */\n function camelize(string) {\n return string.replace(/-+(.)?/g, function(match, character) {\n return character ? character.toUpperCase() : '';\n });\n }\n\n /**\n * Capitalizes a string\n * @memberOf fabric.util.string\n * @param {String} string String to capitalize\n * @param {Boolean} [firstLetterOnly] If true only first letter is capitalized\n * and other letters stay untouched, if false first letter is capitalized\n * and other letters are converted to lowercase.\n * @return {String} Capitalized version of a string\n */\n function capitalize(string, firstLetterOnly) {\n return string.charAt(0).toUpperCase() +\n (firstLetterOnly ? string.slice(1) : string.slice(1).toLowerCase());\n }\n\n /**\n * Escapes XML in a string\n * @memberOf fabric.util.string\n * @param {String} string String to escape\n * @return {String} Escaped version of a string\n */\n function escapeXml(string) {\n return string.replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n /**\n * Divide a string in the user perceived single units\n * @memberOf fabric.util.string\n * @param {String} textstring String to escape\n * @return {Array} array containing the graphemes\n */\n function graphemeSplit(textstring) {\n var i = 0, chr, graphemes = [];\n for (i = 0, chr; i < textstring.length; i++) {\n if ((chr = getWholeChar(textstring, i)) === false) {\n continue;\n }\n graphemes.push(chr);\n }\n return graphemes;\n }\n\n // taken from mdn in the charAt doc page.\n function getWholeChar(str, i) {\n var code = str.charCodeAt(i);\n\n if (isNaN(code)) {\n return ''; // Position not found\n }\n if (code < 0xD800 || code > 0xDFFF) {\n return str.charAt(i);\n }\n\n // High surrogate (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xD800 <= code && code <= 0xDBFF) {\n if (str.length <= (i + 1)) {\n throw 'High surrogate without following low surrogate';\n }\n var next = str.charCodeAt(i + 1);\n if (0xDC00 > next || next > 0xDFFF) {\n throw 'High surrogate without following low surrogate';\n }\n return str.charAt(i) + str.charAt(i + 1);\n }\n // Low surrogate (0xDC00 <= code && code <= 0xDFFF)\n if (i === 0) {\n throw 'Low surrogate without preceding high surrogate';\n }\n var prev = str.charCodeAt(i - 1);\n\n // (could change last hex to 0xDB7F to treat high private\n // surrogates as single characters)\n if (0xD800 > prev || prev > 0xDBFF) {\n throw 'Low surrogate without preceding high surrogate';\n }\n // We can pass over low surrogates now as the second component\n // in a pair which we have already processed\n return false;\n }\n\n\n /**\n * String utilities\n * @namespace fabric.util.string\n */\n fabric.util.string = {\n camelize: camelize,\n capitalize: capitalize,\n escapeXml: escapeXml,\n graphemeSplit: graphemeSplit\n };\n})();\n\n\n(function() {\n\n var slice = Array.prototype.slice, emptyFunction = function() { },\n\n IS_DONTENUM_BUGGY = (function() {\n for (var p in { toString: 1 }) {\n if (p === 'toString') {\n return false;\n }\n }\n return true;\n })(),\n\n /** @ignore */\n addMethods = function(klass, source, parent) {\n for (var property in source) {\n\n if (property in klass.prototype &&\n typeof klass.prototype[property] === 'function' &&\n (source[property] + '').indexOf('callSuper') > -1) {\n\n klass.prototype[property] = (function(property) {\n return function() {\n\n var superclass = this.constructor.superclass;\n this.constructor.superclass = parent;\n var returnValue = source[property].apply(this, arguments);\n this.constructor.superclass = superclass;\n\n if (property !== 'initialize') {\n return returnValue;\n }\n };\n })(property);\n }\n else {\n klass.prototype[property] = source[property];\n }\n\n if (IS_DONTENUM_BUGGY) {\n if (source.toString !== Object.prototype.toString) {\n klass.prototype.toString = source.toString;\n }\n if (source.valueOf !== Object.prototype.valueOf) {\n klass.prototype.valueOf = source.valueOf;\n }\n }\n }\n };\n\n function Subclass() { }\n\n function callSuper(methodName) {\n var parentMethod = null,\n _this = this;\n\n // climb prototype chain to find method not equal to callee's method\n while (_this.constructor.superclass) {\n var superClassMethod = _this.constructor.superclass.prototype[methodName];\n if (_this[methodName] !== superClassMethod) {\n parentMethod = superClassMethod;\n break;\n }\n // eslint-disable-next-line\n _this = _this.constructor.superclass.prototype;\n }\n\n if (!parentMethod) {\n return console.log('tried to callSuper ' + methodName + ', method not found in prototype chain', this);\n }\n\n return (arguments.length > 1)\n ? parentMethod.apply(this, slice.call(arguments, 1))\n : parentMethod.call(this);\n }\n\n /**\n * Helper for creation of \"classes\".\n * @memberOf fabric.util\n * @param {Function} [parent] optional \"Class\" to inherit from\n * @param {Object} [properties] Properties shared by all instances of this class\n * (be careful modifying objects defined here as this would affect all instances)\n */\n function createClass() {\n var parent = null,\n properties = slice.call(arguments, 0);\n\n if (typeof properties[0] === 'function') {\n parent = properties.shift();\n }\n function klass() {\n this.initialize.apply(this, arguments);\n }\n\n klass.superclass = parent;\n klass.subclasses = [];\n\n if (parent) {\n Subclass.prototype = parent.prototype;\n klass.prototype = new Subclass();\n parent.subclasses.push(klass);\n }\n for (var i = 0, length = properties.length; i < length; i++) {\n addMethods(klass, properties[i], parent);\n }\n if (!klass.prototype.initialize) {\n klass.prototype.initialize = emptyFunction;\n }\n klass.prototype.constructor = klass;\n klass.prototype.callSuper = callSuper;\n return klass;\n }\n\n fabric.util.createClass = createClass;\n})();\n\n\n(function () {\n // since ie10 or ie9 can use addEventListener but they do not support options, i need to check\n var couldUseAttachEvent = !!fabric.document.createElement('div').attachEvent;\n /**\n * Adds an event listener to an element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {String} eventName\n * @param {Function} handler\n */\n fabric.util.addListener = function(element, eventName, handler, options) {\n element && element.addEventListener(eventName, handler, couldUseAttachEvent ? false : options);\n };\n\n /**\n * Removes an event listener from an element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {String} eventName\n * @param {Function} handler\n */\n fabric.util.removeListener = function(element, eventName, handler, options) {\n element && element.removeEventListener(eventName, handler, couldUseAttachEvent ? false : options);\n };\n\n function getTouchInfo(event) {\n var touchProp = event.changedTouches;\n if (touchProp && touchProp[0]) {\n return touchProp[0];\n }\n return event;\n }\n\n fabric.util.getPointer = function(event) {\n var element = event.target,\n scroll = fabric.util.getScrollLeftTop(element),\n _evt = getTouchInfo(event);\n return {\n x: _evt.clientX + scroll.left,\n y: _evt.clientY + scroll.top\n };\n };\n})();\n\n\n(function () {\n\n /**\n * Cross-browser wrapper for setting element's style\n * @memberOf fabric.util\n * @param {HTMLElement} element\n * @param {Object} styles\n * @return {HTMLElement} Element that was passed as a first argument\n */\n function setStyle(element, styles) {\n var elementStyle = element.style;\n if (!elementStyle) {\n return element;\n }\n if (typeof styles === 'string') {\n element.style.cssText += ';' + styles;\n return styles.indexOf('opacity') > -1\n ? setOpacity(element, styles.match(/opacity:\\s*(\\d?\\.?\\d*)/)[1])\n : element;\n }\n for (var property in styles) {\n if (property === 'opacity') {\n setOpacity(element, styles[property]);\n }\n else {\n var normalizedProperty = (property === 'float' || property === 'cssFloat')\n ? (typeof elementStyle.styleFloat === 'undefined' ? 'cssFloat' : 'styleFloat')\n : property;\n elementStyle[normalizedProperty] = styles[property];\n }\n }\n return element;\n }\n\n var parseEl = fabric.document.createElement('div'),\n supportsOpacity = typeof parseEl.style.opacity === 'string',\n supportsFilters = typeof parseEl.style.filter === 'string',\n reOpacity = /alpha\\s*\\(\\s*opacity\\s*=\\s*([^\\)]+)\\)/,\n\n /** @ignore */\n setOpacity = function (element) { return element; };\n\n if (supportsOpacity) {\n /** @ignore */\n setOpacity = function(element, value) {\n element.style.opacity = value;\n return element;\n };\n }\n else if (supportsFilters) {\n /** @ignore */\n setOpacity = function(element, value) {\n var es = element.style;\n if (element.currentStyle && !element.currentStyle.hasLayout) {\n es.zoom = 1;\n }\n if (reOpacity.test(es.filter)) {\n value = value >= 0.9999 ? '' : ('alpha(opacity=' + (value * 100) + ')');\n es.filter = es.filter.replace(reOpacity, value);\n }\n else {\n es.filter += ' alpha(opacity=' + (value * 100) + ')';\n }\n return element;\n };\n }\n\n fabric.util.setStyle = setStyle;\n\n})();\n\n\n(function() {\n\n var _slice = Array.prototype.slice;\n\n /**\n * Takes id and returns an element with that id (if one exists in a document)\n * @memberOf fabric.util\n * @param {String|HTMLElement} id\n * @return {HTMLElement|null}\n */\n function getById(id) {\n return typeof id === 'string' ? fabric.document.getElementById(id) : id;\n }\n\n var sliceCanConvertNodelists,\n /**\n * Converts an array-like object (e.g. arguments or NodeList) to an array\n * @memberOf fabric.util\n * @param {Object} arrayLike\n * @return {Array}\n */\n toArray = function(arrayLike) {\n return _slice.call(arrayLike, 0);\n };\n\n try {\n sliceCanConvertNodelists = toArray(fabric.document.childNodes) instanceof Array;\n }\n catch (err) { }\n\n if (!sliceCanConvertNodelists) {\n toArray = function(arrayLike) {\n var arr = new Array(arrayLike.length), i = arrayLike.length;\n while (i--) {\n arr[i] = arrayLike[i];\n }\n return arr;\n };\n }\n\n /**\n * Creates specified element with specified attributes\n * @memberOf fabric.util\n * @param {String} tagName Type of an element to create\n * @param {Object} [attributes] Attributes to set on an element\n * @return {HTMLElement} Newly created element\n */\n function makeElement(tagName, attributes) {\n var el = fabric.document.createElement(tagName);\n for (var prop in attributes) {\n if (prop === 'class') {\n el.className = attributes[prop];\n }\n else if (prop === 'for') {\n el.htmlFor = attributes[prop];\n }\n else {\n el.setAttribute(prop, attributes[prop]);\n }\n }\n return el;\n }\n\n /**\n * Adds class to an element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to add class to\n * @param {String} className Class to add to an element\n */\n function addClass(element, className) {\n if (element && (' ' + element.className + ' ').indexOf(' ' + className + ' ') === -1) {\n element.className += (element.className ? ' ' : '') + className;\n }\n }\n\n /**\n * Wraps element with another element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to wrap\n * @param {HTMLElement|String} wrapper Element to wrap with\n * @param {Object} [attributes] Attributes to set on a wrapper\n * @return {HTMLElement} wrapper\n */\n function wrapElement(element, wrapper, attributes) {\n if (typeof wrapper === 'string') {\n wrapper = makeElement(wrapper, attributes);\n }\n if (element.parentNode) {\n element.parentNode.replaceChild(wrapper, element);\n }\n wrapper.appendChild(element);\n return wrapper;\n }\n\n /**\n * Returns element scroll offsets\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to operate on\n * @return {Object} Object with left/top values\n */\n function getScrollLeftTop(element) {\n\n var left = 0,\n top = 0,\n docElement = fabric.document.documentElement,\n body = fabric.document.body || {\n scrollLeft: 0, scrollTop: 0\n };\n\n // While loop checks (and then sets element to) .parentNode OR .host\n // to account for ShadowDOM. We still want to traverse up out of ShadowDOM,\n // but the .parentNode of a root ShadowDOM node will always be null, instead\n // it should be accessed through .host. See http://stackoverflow.com/a/24765528/4383938\n while (element && (element.parentNode || element.host)) {\n\n // Set element to element parent, or 'host' in case of ShadowDOM\n element = element.parentNode || element.host;\n\n if (element === fabric.document) {\n left = body.scrollLeft || docElement.scrollLeft || 0;\n top = body.scrollTop || docElement.scrollTop || 0;\n }\n else {\n left += element.scrollLeft || 0;\n top += element.scrollTop || 0;\n }\n\n if (element.nodeType === 1 && element.style.position === 'fixed') {\n break;\n }\n }\n\n return { left: left, top: top };\n }\n\n /**\n * Returns offset for a given element\n * @function\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to get offset for\n * @return {Object} Object with \"left\" and \"top\" properties\n */\n function getElementOffset(element) {\n var docElem,\n doc = element && element.ownerDocument,\n box = { left: 0, top: 0 },\n offset = { left: 0, top: 0 },\n scrollLeftTop,\n offsetAttributes = {\n borderLeftWidth: 'left',\n borderTopWidth: 'top',\n paddingLeft: 'left',\n paddingTop: 'top'\n };\n\n if (!doc) {\n return offset;\n }\n\n for (var attr in offsetAttributes) {\n offset[offsetAttributes[attr]] += parseInt(getElementStyle(element, attr), 10) || 0;\n }\n\n docElem = doc.documentElement;\n if ( typeof element.getBoundingClientRect !== 'undefined' ) {\n box = element.getBoundingClientRect();\n }\n\n scrollLeftTop = getScrollLeftTop(element);\n\n return {\n left: box.left + scrollLeftTop.left - (docElem.clientLeft || 0) + offset.left,\n top: box.top + scrollLeftTop.top - (docElem.clientTop || 0) + offset.top\n };\n }\n\n /**\n * Returns style attribute value of a given element\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to get style attribute for\n * @param {String} attr Style attribute to get for element\n * @return {String} Style attribute value of the given element.\n */\n var getElementStyle;\n if (fabric.document.defaultView && fabric.document.defaultView.getComputedStyle) {\n getElementStyle = function(element, attr) {\n var style = fabric.document.defaultView.getComputedStyle(element, null);\n return style ? style[attr] : undefined;\n };\n }\n else {\n getElementStyle = function(element, attr) {\n var value = element.style[attr];\n if (!value && element.currentStyle) {\n value = element.currentStyle[attr];\n }\n return value;\n };\n }\n\n (function () {\n var style = fabric.document.documentElement.style,\n selectProp = 'userSelect' in style\n ? 'userSelect'\n : 'MozUserSelect' in style\n ? 'MozUserSelect'\n : 'WebkitUserSelect' in style\n ? 'WebkitUserSelect'\n : 'KhtmlUserSelect' in style\n ? 'KhtmlUserSelect'\n : '';\n\n /**\n * Makes element unselectable\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to make unselectable\n * @return {HTMLElement} Element that was passed in\n */\n function makeElementUnselectable(element) {\n if (typeof element.onselectstart !== 'undefined') {\n element.onselectstart = fabric.util.falseFunction;\n }\n if (selectProp) {\n element.style[selectProp] = 'none';\n }\n else if (typeof element.unselectable === 'string') {\n element.unselectable = 'on';\n }\n return element;\n }\n\n /**\n * Makes element selectable\n * @memberOf fabric.util\n * @param {HTMLElement} element Element to make selectable\n * @return {HTMLElement} Element that was passed in\n */\n function makeElementSelectable(element) {\n if (typeof element.onselectstart !== 'undefined') {\n element.onselectstart = null;\n }\n if (selectProp) {\n element.style[selectProp] = '';\n }\n else if (typeof element.unselectable === 'string') {\n element.unselectable = '';\n }\n return element;\n }\n\n fabric.util.makeElementUnselectable = makeElementUnselectable;\n fabric.util.makeElementSelectable = makeElementSelectable;\n })();\n\n (function() {\n\n /**\n * Inserts a script element with a given url into a document; invokes callback, when that script is finished loading\n * @memberOf fabric.util\n * @param {String} url URL of a script to load\n * @param {Function} callback Callback to execute when script is finished loading\n */\n function getScript(url, callback) {\n var headEl = fabric.document.getElementsByTagName('head')[0],\n scriptEl = fabric.document.createElement('script'),\n loading = true;\n\n /** @ignore */\n scriptEl.onload = /** @ignore */ scriptEl.onreadystatechange = function(e) {\n if (loading) {\n if (typeof this.readyState === 'string' &&\n this.readyState !== 'loaded' &&\n this.readyState !== 'complete') {\n return;\n }\n loading = false;\n callback(e || fabric.window.event);\n scriptEl = scriptEl.onload = scriptEl.onreadystatechange = null;\n }\n };\n scriptEl.src = url;\n headEl.appendChild(scriptEl);\n // causes issue in Opera\n // headEl.removeChild(scriptEl);\n }\n\n fabric.util.getScript = getScript;\n })();\n\n function getNodeCanvas(element) {\n var impl = fabric.jsdomImplForWrapper(element);\n return impl._canvas || impl._image;\n };\n\n function cleanUpJsdomNode(element) {\n if (!fabric.isLikelyNode) {\n return;\n }\n var impl = fabric.jsdomImplForWrapper(element);\n if (impl) {\n impl._image = null;\n impl._canvas = null;\n // unsure if necessary\n impl._currentSrc = null;\n impl._attributes = null;\n impl._classList = null;\n }\n }\n\n fabric.util.getById = getById;\n fabric.util.toArray = toArray;\n fabric.util.makeElement = makeElement;\n fabric.util.addClass = addClass;\n fabric.util.wrapElement = wrapElement;\n fabric.util.getScrollLeftTop = getScrollLeftTop;\n fabric.util.getElementOffset = getElementOffset;\n fabric.util.getElementStyle = getElementStyle;\n fabric.util.getNodeCanvas = getNodeCanvas;\n fabric.util.cleanUpJsdomNode = cleanUpJsdomNode;\n\n})();\n\n\n(function() {\n\n function addParamToUrl(url, param) {\n return url + (/\\?/.test(url) ? '&' : '?') + param;\n }\n\n function emptyFn() { }\n\n /**\n * Cross-browser abstraction for sending XMLHttpRequest\n * @memberOf fabric.util\n * @param {String} url URL to send XMLHttpRequest to\n * @param {Object} [options] Options object\n * @param {String} [options.method=\"GET\"]\n * @param {String} [options.parameters] parameters to append to url in GET or in body\n * @param {String} [options.body] body to send with POST or PUT request\n * @param {Function} options.onComplete Callback to invoke when request is completed\n * @return {XMLHttpRequest} request\n */\n function request(url, options) {\n options || (options = { });\n\n var method = options.method ? options.method.toUpperCase() : 'GET',\n onComplete = options.onComplete || function() { },\n xhr = new fabric.window.XMLHttpRequest(),\n body = options.body || options.parameters;\n\n /** @ignore */\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4) {\n onComplete(xhr);\n xhr.onreadystatechange = emptyFn;\n }\n };\n\n if (method === 'GET') {\n body = null;\n if (typeof options.parameters === 'string') {\n url = addParamToUrl(url, options.parameters);\n }\n }\n\n xhr.open(method, url, true);\n\n if (method === 'POST' || method === 'PUT') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');\n }\n\n xhr.send(body);\n return xhr;\n }\n\n fabric.util.request = request;\n})();\n\n\n/**\n * Wrapper around `console.log` (when available)\n * @param {*} [values] Values to log\n */\nfabric.log = console.log;\n\n/**\n * Wrapper around `console.warn` (when available)\n * @param {*} [values] Values to log as a warning\n */\nfabric.warn = console.warn;\n\n\n(function() {\n\n function noop() {\n return false;\n }\n\n function defaultEasing(t, b, c, d) {\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n }\n\n /**\n * Changes value from one to another within certain period of time, invoking callbacks as value is being changed.\n * @memberOf fabric.util\n * @param {Object} [options] Animation options\n * @param {Function} [options.onChange] Callback; invoked on every value change\n * @param {Function} [options.onComplete] Callback; invoked when value change is completed\n * @param {Number} [options.startValue=0] Starting value\n * @param {Number} [options.endValue=100] Ending value\n * @param {Number} [options.byValue=100] Value to modify the property by\n * @param {Function} [options.easing] Easing function\n * @param {Number} [options.duration=500] Duration of change (in ms)\n * @param {Function} [options.abort] Additional function with logic. If returns true, onComplete is called.\n */\n function animate(options) {\n\n requestAnimFrame(function(timestamp) {\n options || (options = { });\n\n var start = timestamp || +new Date(),\n duration = options.duration || 500,\n finish = start + duration, time,\n onChange = options.onChange || noop,\n abort = options.abort || noop,\n onComplete = options.onComplete || noop,\n easing = options.easing || defaultEasing,\n startValue = 'startValue' in options ? options.startValue : 0,\n endValue = 'endValue' in options ? options.endValue : 100,\n byValue = options.byValue || endValue - startValue;\n\n options.onStart && options.onStart();\n\n (function tick(ticktime) {\n // TODO: move abort call after calculation\n // and pass (current,valuePerc, timePerc) as arguments\n time = ticktime || +new Date();\n var currentTime = time > finish ? duration : (time - start),\n timePerc = currentTime / duration,\n current = easing(currentTime, startValue, byValue, duration),\n valuePerc = Math.abs((current - startValue) / byValue);\n if (abort()) {\n onComplete(endValue, 1, 1);\n return;\n }\n if (time > finish) {\n onChange(endValue, 1, 1);\n onComplete(endValue, 1, 1);\n return;\n }\n else {\n onChange(current, valuePerc, timePerc);\n requestAnimFrame(tick);\n }\n })(start);\n });\n }\n\n var _requestAnimFrame = fabric.window.requestAnimationFrame ||\n fabric.window.webkitRequestAnimationFrame ||\n fabric.window.mozRequestAnimationFrame ||\n fabric.window.oRequestAnimationFrame ||\n fabric.window.msRequestAnimationFrame ||\n function(callback) {\n return fabric.window.setTimeout(callback, 1000 / 60);\n };\n\n var _cancelAnimFrame = fabric.window.cancelAnimationFrame || fabric.window.clearTimeout;\n\n /**\n * requestAnimationFrame polyfill based on http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n * In order to get a precise start time, `requestAnimFrame` should be called as an entry into the method\n * @memberOf fabric.util\n * @param {Function} callback Callback to invoke\n * @param {DOMElement} element optional Element to associate with animation\n */\n function requestAnimFrame() {\n return _requestAnimFrame.apply(fabric.window, arguments);\n }\n\n function cancelAnimFrame() {\n return _cancelAnimFrame.apply(fabric.window, arguments);\n }\n\n fabric.util.animate = animate;\n fabric.util.requestAnimFrame = requestAnimFrame;\n fabric.util.cancelAnimFrame = cancelAnimFrame;\n})();\n\n\n(function() {\n // Calculate an in-between color. Returns a \"rgba()\" string.\n // Credit: Edwin Martin \n // http://www.bitstorm.org/jquery/color-animation/jquery.animate-colors.js\n function calculateColor(begin, end, pos) {\n var color = 'rgba('\n + parseInt((begin[0] + pos * (end[0] - begin[0])), 10) + ','\n + parseInt((begin[1] + pos * (end[1] - begin[1])), 10) + ','\n + parseInt((begin[2] + pos * (end[2] - begin[2])), 10);\n\n color += ',' + (begin && end ? parseFloat(begin[3] + pos * (end[3] - begin[3])) : 1);\n color += ')';\n return color;\n }\n\n /**\n * Changes the color from one to another within certain period of time, invoking callbacks as value is being changed.\n * @memberOf fabric.util\n * @param {String} fromColor The starting color in hex or rgb(a) format.\n * @param {String} toColor The starting color in hex or rgb(a) format.\n * @param {Number} [duration] Duration of change (in ms).\n * @param {Object} [options] Animation options\n * @param {Function} [options.onChange] Callback; invoked on every value change\n * @param {Function} [options.onComplete] Callback; invoked when value change is completed\n * @param {Function} [options.colorEasing] Easing function. Note that this function only take two arguments (currentTime, duration). Thus the regular animation easing functions cannot be used.\n * @param {Function} [options.abort] Additional function with logic. If returns true, onComplete is called.\n */\n function animateColor(fromColor, toColor, duration, options) {\n var startColor = new fabric.Color(fromColor).getSource(),\n endColor = new fabric.Color(toColor).getSource();\n\n options = options || {};\n\n fabric.util.animate(fabric.util.object.extend(options, {\n duration: duration || 500,\n startValue: startColor,\n endValue: endColor,\n byValue: endColor,\n easing: function (currentTime, startValue, byValue, duration) {\n var posValue = options.colorEasing\n ? options.colorEasing(currentTime, duration)\n : 1 - Math.cos(currentTime / duration * (Math.PI / 2));\n return calculateColor(startValue, byValue, posValue);\n }\n }));\n }\n\n fabric.util.animateColor = animateColor;\n\n})();\n\n\n(function() {\n\n function normalize(a, c, p, s) {\n if (a < Math.abs(c)) {\n a = c;\n s = p / 4;\n }\n else {\n //handle the 0/0 case:\n if (c === 0 && a === 0) {\n s = p / (2 * Math.PI) * Math.asin(1);\n }\n else {\n s = p / (2 * Math.PI) * Math.asin(c / a);\n }\n }\n return { a: a, c: c, p: p, s: s };\n }\n\n function elastic(opts, t, d) {\n return opts.a *\n Math.pow(2, 10 * (t -= 1)) *\n Math.sin( (t * d - opts.s) * (2 * Math.PI) / opts.p );\n }\n\n /**\n * Cubic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n }\n\n /**\n * Cubic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutCubic(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t + b;\n }\n return c / 2 * ((t -= 2) * t * t + 2) + b;\n }\n\n /**\n * Quartic easing in\n * @memberOf fabric.util.ease\n */\n function easeInQuart(t, b, c, d) {\n return c * (t /= d) * t * t * t + b;\n }\n\n /**\n * Quartic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutQuart(t, b, c, d) {\n return -c * ((t = t / d - 1) * t * t * t - 1) + b;\n }\n\n /**\n * Quartic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutQuart(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t * t + b;\n }\n return -c / 2 * ((t -= 2) * t * t * t - 2) + b;\n }\n\n /**\n * Quintic easing in\n * @memberOf fabric.util.ease\n */\n function easeInQuint(t, b, c, d) {\n return c * (t /= d) * t * t * t * t + b;\n }\n\n /**\n * Quintic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutQuint(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t * t * t + 1) + b;\n }\n\n /**\n * Quintic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutQuint(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return c / 2 * t * t * t * t * t + b;\n }\n return c / 2 * ((t -= 2) * t * t * t * t + 2) + b;\n }\n\n /**\n * Sinusoidal easing in\n * @memberOf fabric.util.ease\n */\n function easeInSine(t, b, c, d) {\n return -c * Math.cos(t / d * (Math.PI / 2)) + c + b;\n }\n\n /**\n * Sinusoidal easing out\n * @memberOf fabric.util.ease\n */\n function easeOutSine(t, b, c, d) {\n return c * Math.sin(t / d * (Math.PI / 2)) + b;\n }\n\n /**\n * Sinusoidal easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutSine(t, b, c, d) {\n return -c / 2 * (Math.cos(Math.PI * t / d) - 1) + b;\n }\n\n /**\n * Exponential easing in\n * @memberOf fabric.util.ease\n */\n function easeInExpo(t, b, c, d) {\n return (t === 0) ? b : c * Math.pow(2, 10 * (t / d - 1)) + b;\n }\n\n /**\n * Exponential easing out\n * @memberOf fabric.util.ease\n */\n function easeOutExpo(t, b, c, d) {\n return (t === d) ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n }\n\n /**\n * Exponential easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutExpo(t, b, c, d) {\n if (t === 0) {\n return b;\n }\n if (t === d) {\n return b + c;\n }\n t /= d / 2;\n if (t < 1) {\n return c / 2 * Math.pow(2, 10 * (t - 1)) + b;\n }\n return c / 2 * (-Math.pow(2, -10 * --t) + 2) + b;\n }\n\n /**\n * Circular easing in\n * @memberOf fabric.util.ease\n */\n function easeInCirc(t, b, c, d) {\n return -c * (Math.sqrt(1 - (t /= d) * t) - 1) + b;\n }\n\n /**\n * Circular easing out\n * @memberOf fabric.util.ease\n */\n function easeOutCirc(t, b, c, d) {\n return c * Math.sqrt(1 - (t = t / d - 1) * t) + b;\n }\n\n /**\n * Circular easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutCirc(t, b, c, d) {\n t /= d / 2;\n if (t < 1) {\n return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b;\n }\n return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b;\n }\n\n /**\n * Elastic easing in\n * @memberOf fabric.util.ease\n */\n function easeInElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d;\n if (t === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n var opts = normalize(a, c, p, s);\n return -elastic(opts, t, d) + b;\n }\n\n /**\n * Elastic easing out\n * @memberOf fabric.util.ease\n */\n function easeOutElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d;\n if (t === 1) {\n return b + c;\n }\n if (!p) {\n p = d * 0.3;\n }\n var opts = normalize(a, c, p, s);\n return opts.a * Math.pow(2, -10 * t) * Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p ) + opts.c + b;\n }\n\n /**\n * Elastic easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutElastic(t, b, c, d) {\n var s = 1.70158, p = 0, a = c;\n if (t === 0) {\n return b;\n }\n t /= d / 2;\n if (t === 2) {\n return b + c;\n }\n if (!p) {\n p = d * (0.3 * 1.5);\n }\n var opts = normalize(a, c, p, s);\n if (t < 1) {\n return -0.5 * elastic(opts, t, d) + b;\n }\n return opts.a * Math.pow(2, -10 * (t -= 1)) *\n Math.sin((t * d - opts.s) * (2 * Math.PI) / opts.p ) * 0.5 + opts.c + b;\n }\n\n /**\n * Backwards easing in\n * @memberOf fabric.util.ease\n */\n function easeInBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return c * (t /= d) * t * ((s + 1) * t - s) + b;\n }\n\n /**\n * Backwards easing out\n * @memberOf fabric.util.ease\n */\n function easeOutBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n }\n\n /**\n * Backwards easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutBack(t, b, c, d, s) {\n if (s === undefined) {\n s = 1.70158;\n }\n t /= d / 2;\n if (t < 1) {\n return c / 2 * (t * t * (((s *= (1.525)) + 1) * t - s)) + b;\n }\n return c / 2 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2) + b;\n }\n\n /**\n * Bouncing easing in\n * @memberOf fabric.util.ease\n */\n function easeInBounce(t, b, c, d) {\n return c - easeOutBounce (d - t, 0, c, d) + b;\n }\n\n /**\n * Bouncing easing out\n * @memberOf fabric.util.ease\n */\n function easeOutBounce(t, b, c, d) {\n if ((t /= d) < (1 / 2.75)) {\n return c * (7.5625 * t * t) + b;\n }\n else if (t < (2 / 2.75)) {\n return c * (7.5625 * (t -= (1.5 / 2.75)) * t + 0.75) + b;\n }\n else if (t < (2.5 / 2.75)) {\n return c * (7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375) + b;\n }\n else {\n return c * (7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375) + b;\n }\n }\n\n /**\n * Bouncing easing in and out\n * @memberOf fabric.util.ease\n */\n function easeInOutBounce(t, b, c, d) {\n if (t < d / 2) {\n return easeInBounce (t * 2, 0, c, d) * 0.5 + b;\n }\n return easeOutBounce(t * 2 - d, 0, c, d) * 0.5 + c * 0.5 + b;\n }\n\n /**\n * Easing functions\n * See Easing Equations by Robert Penner\n * @namespace fabric.util.ease\n */\n fabric.util.ease = {\n\n /**\n * Quadratic easing in\n * @memberOf fabric.util.ease\n */\n easeInQuad: function(t, b, c, d) {\n return c * (t /= d) * t + b;\n },\n\n /**\n * Quadratic easing out\n * @memberOf fabric.util.ease\n */\n easeOutQuad: function(t, b, c, d) {\n return -c * (t /= d) * (t - 2) + b;\n },\n\n /**\n * Quadratic easing in and out\n * @memberOf fabric.util.ease\n */\n easeInOutQuad: function(t, b, c, d) {\n t /= (d / 2);\n if (t < 1) {\n return c / 2 * t * t + b;\n }\n return -c / 2 * ((--t) * (t - 2) - 1) + b;\n },\n\n /**\n * Cubic easing in\n * @memberOf fabric.util.ease\n */\n easeInCubic: function(t, b, c, d) {\n return c * (t /= d) * t * t + b;\n },\n\n easeOutCubic: easeOutCubic,\n easeInOutCubic: easeInOutCubic,\n easeInQuart: easeInQuart,\n easeOutQuart: easeOutQuart,\n easeInOutQuart: easeInOutQuart,\n easeInQuint: easeInQuint,\n easeOutQuint: easeOutQuint,\n easeInOutQuint: easeInOutQuint,\n easeInSine: easeInSine,\n easeOutSine: easeOutSine,\n easeInOutSine: easeInOutSine,\n easeInExpo: easeInExpo,\n easeOutExpo: easeOutExpo,\n easeInOutExpo: easeInOutExpo,\n easeInCirc: easeInCirc,\n easeOutCirc: easeOutCirc,\n easeInOutCirc: easeInOutCirc,\n easeInElastic: easeInElastic,\n easeOutElastic: easeOutElastic,\n easeInOutElastic: easeInOutElastic,\n easeInBack: easeInBack,\n easeOutBack: easeOutBack,\n easeInOutBack: easeInOutBack,\n easeInBounce: easeInBounce,\n easeOutBounce: easeOutBounce,\n easeInOutBounce: easeInOutBounce\n };\n\n})();\n\n\n(function(global) {\n\n 'use strict';\n\n /**\n * @name fabric\n * @namespace\n */\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n toFixed = fabric.util.toFixed,\n parseUnit = fabric.util.parseUnit,\n multiplyTransformMatrices = fabric.util.multiplyTransformMatrices,\n\n svgValidTagNames = ['path', 'circle', 'polygon', 'polyline', 'ellipse', 'rect', 'line',\n 'image', 'text'],\n svgViewBoxElements = ['symbol', 'image', 'marker', 'pattern', 'view', 'svg'],\n svgInvalidAncestors = ['pattern', 'defs', 'symbol', 'metadata', 'clipPath', 'mask', 'desc'],\n svgValidParents = ['symbol', 'g', 'a', 'svg', 'clipPath', 'defs'],\n\n attributesMap = {\n cx: 'left',\n x: 'left',\n r: 'radius',\n cy: 'top',\n y: 'top',\n display: 'visible',\n visibility: 'visible',\n transform: 'transformMatrix',\n 'fill-opacity': 'fillOpacity',\n 'fill-rule': 'fillRule',\n 'font-family': 'fontFamily',\n 'font-size': 'fontSize',\n 'font-style': 'fontStyle',\n 'font-weight': 'fontWeight',\n 'letter-spacing': 'charSpacing',\n 'paint-order': 'paintFirst',\n 'stroke-dasharray': 'strokeDashArray',\n 'stroke-dashoffset': 'strokeDashOffset',\n 'stroke-linecap': 'strokeLineCap',\n 'stroke-linejoin': 'strokeLineJoin',\n 'stroke-miterlimit': 'strokeMiterLimit',\n 'stroke-opacity': 'strokeOpacity',\n 'stroke-width': 'strokeWidth',\n 'text-decoration': 'textDecoration',\n 'text-anchor': 'textAnchor',\n opacity: 'opacity',\n 'clip-path': 'clipPath',\n 'clip-rule': 'clipRule',\n 'vector-effect': 'strokeUniform'\n },\n\n colorAttributes = {\n stroke: 'strokeOpacity',\n fill: 'fillOpacity'\n },\n\n fSize = 'font-size', cPath = 'clip-path';\n\n fabric.svgValidTagNamesRegEx = getSvgRegex(svgValidTagNames);\n fabric.svgViewBoxElementsRegEx = getSvgRegex(svgViewBoxElements);\n fabric.svgInvalidAncestorsRegEx = getSvgRegex(svgInvalidAncestors);\n fabric.svgValidParentsRegEx = getSvgRegex(svgValidParents);\n\n fabric.cssRules = { };\n fabric.gradientDefs = { };\n fabric.clipPaths = { };\n\n function normalizeAttr(attr) {\n // transform attribute names\n if (attr in attributesMap) {\n return attributesMap[attr];\n }\n return attr;\n }\n\n function normalizeValue(attr, value, parentAttributes, fontSize) {\n var isArray = Object.prototype.toString.call(value) === '[object Array]',\n parsed;\n\n if ((attr === 'fill' || attr === 'stroke') && value === 'none') {\n value = '';\n }\n else if (attr === 'vector-effect') {\n value = value === 'non-scaling-stroke';\n }\n else if (attr === 'strokeDashArray') {\n if (value === 'none') {\n value = null;\n }\n else {\n value = value.replace(/,/g, ' ').split(/\\s+/).map(parseFloat);\n }\n }\n else if (attr === 'transformMatrix') {\n if (parentAttributes && parentAttributes.transformMatrix) {\n value = multiplyTransformMatrices(\n parentAttributes.transformMatrix, fabric.parseTransformAttribute(value));\n }\n else {\n value = fabric.parseTransformAttribute(value);\n }\n }\n else if (attr === 'visible') {\n value = value !== 'none' && value !== 'hidden';\n // display=none on parent element always takes precedence over child element\n if (parentAttributes && parentAttributes.visible === false) {\n value = false;\n }\n }\n else if (attr === 'opacity') {\n value = parseFloat(value);\n if (parentAttributes && typeof parentAttributes.opacity !== 'undefined') {\n value *= parentAttributes.opacity;\n }\n }\n else if (attr === 'textAnchor' /* text-anchor */) {\n value = value === 'start' ? 'left' : value === 'end' ? 'right' : 'center';\n }\n else if (attr === 'charSpacing') {\n // parseUnit returns px and we convert it to em\n parsed = parseUnit(value, fontSize) / fontSize * 1000;\n }\n else if (attr === 'paintFirst') {\n var fillIndex = value.indexOf('fill');\n var strokeIndex = value.indexOf('stroke');\n var value = 'fill';\n if (fillIndex > -1 && strokeIndex > -1 && strokeIndex < fillIndex) {\n value = 'stroke';\n }\n else if (fillIndex === -1 && strokeIndex > -1) {\n value = 'stroke';\n }\n }\n else if (attr === 'href' || attr === 'xlink:href') {\n return value;\n }\n else {\n parsed = isArray ? value.map(parseUnit) : parseUnit(value, fontSize);\n }\n\n return (!isArray && isNaN(parsed) ? value : parsed);\n }\n\n /**\n * @private\n */\n function getSvgRegex(arr) {\n return new RegExp('^(' + arr.join('|') + ')\\\\b', 'i');\n }\n\n /**\n * @private\n * @param {Object} attributes Array of attributes to parse\n */\n function _setStrokeFillOpacity(attributes) {\n for (var attr in colorAttributes) {\n\n if (typeof attributes[colorAttributes[attr]] === 'undefined' || attributes[attr] === '') {\n continue;\n }\n\n if (typeof attributes[attr] === 'undefined') {\n if (!fabric.Object.prototype[attr]) {\n continue;\n }\n attributes[attr] = fabric.Object.prototype[attr];\n }\n\n if (attributes[attr].indexOf('url(') === 0) {\n continue;\n }\n\n var color = new fabric.Color(attributes[attr]);\n attributes[attr] = color.setAlpha(toFixed(color.getAlpha() * attributes[colorAttributes[attr]], 2)).toRgba();\n }\n return attributes;\n }\n\n /**\n * @private\n */\n function _getMultipleNodes(doc, nodeNames) {\n var nodeName, nodeArray = [], nodeList, i, len;\n for (i = 0, len = nodeNames.length; i < len; i++) {\n nodeName = nodeNames[i];\n nodeList = doc.getElementsByTagName(nodeName);\n nodeArray = nodeArray.concat(Array.prototype.slice.call(nodeList));\n }\n return nodeArray;\n }\n\n /**\n * Parses \"transform\" attribute, returning an array of values\n * @static\n * @function\n * @memberOf fabric\n * @param {String} attributeValue String containing attribute value\n * @return {Array} Array of 6 elements representing transformation matrix\n */\n fabric.parseTransformAttribute = (function() {\n function rotateMatrix(matrix, args) {\n var cos = fabric.util.cos(args[0]), sin = fabric.util.sin(args[0]),\n x = 0, y = 0;\n if (args.length === 3) {\n x = args[1];\n y = args[2];\n }\n\n matrix[0] = cos;\n matrix[1] = sin;\n matrix[2] = -sin;\n matrix[3] = cos;\n matrix[4] = x - (cos * x - sin * y);\n matrix[5] = y - (sin * x + cos * y);\n }\n\n function scaleMatrix(matrix, args) {\n var multiplierX = args[0],\n multiplierY = (args.length === 2) ? args[1] : args[0];\n\n matrix[0] = multiplierX;\n matrix[3] = multiplierY;\n }\n\n function skewMatrix(matrix, args, pos) {\n matrix[pos] = Math.tan(fabric.util.degreesToRadians(args[0]));\n }\n\n function translateMatrix(matrix, args) {\n matrix[4] = args[0];\n if (args.length === 2) {\n matrix[5] = args[1];\n }\n }\n\n // identity matrix\n var iMatrix = fabric.iMatrix,\n\n // == begin transform regexp\n number = fabric.reNum,\n\n commaWsp = '(?:\\\\s+,?\\\\s*|,\\\\s*)',\n\n skewX = '(?:(skewX)\\\\s*\\\\(\\\\s*(' + number + ')\\\\s*\\\\))',\n\n skewY = '(?:(skewY)\\\\s*\\\\(\\\\s*(' + number + ')\\\\s*\\\\))',\n\n rotate = '(?:(rotate)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + ')' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n scale = '(?:(scale)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n translate = '(?:(translate)\\\\s*\\\\(\\\\s*(' + number + ')(?:' +\n commaWsp + '(' + number + '))?\\\\s*\\\\))',\n\n matrix = '(?:(matrix)\\\\s*\\\\(\\\\s*' +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' + commaWsp +\n '(' + number + ')' +\n '\\\\s*\\\\))',\n\n transform = '(?:' +\n matrix + '|' +\n translate + '|' +\n scale + '|' +\n rotate + '|' +\n skewX + '|' +\n skewY +\n ')',\n\n transforms = '(?:' + transform + '(?:' + commaWsp + '*' + transform + ')*' + ')',\n\n transformList = '^\\\\s*(?:' + transforms + '?)\\\\s*$',\n\n // http://www.w3.org/TR/SVG/coords.html#TransformAttribute\n reTransformList = new RegExp(transformList),\n // == end transform regexp\n\n reTransform = new RegExp(transform, 'g');\n\n return function(attributeValue) {\n\n // start with identity matrix\n var matrix = iMatrix.concat(),\n matrices = [];\n\n // return if no argument was given or\n // an argument does not match transform attribute regexp\n if (!attributeValue || (attributeValue && !reTransformList.test(attributeValue))) {\n return matrix;\n }\n\n attributeValue.replace(reTransform, function(match) {\n\n var m = new RegExp(transform).exec(match).filter(function (match) {\n // match !== '' && match != null\n return (!!match);\n }),\n operation = m[1],\n args = m.slice(2).map(parseFloat);\n\n switch (operation) {\n case 'translate':\n translateMatrix(matrix, args);\n break;\n case 'rotate':\n args[0] = fabric.util.degreesToRadians(args[0]);\n rotateMatrix(matrix, args);\n break;\n case 'scale':\n scaleMatrix(matrix, args);\n break;\n case 'skewX':\n skewMatrix(matrix, args, 2);\n break;\n case 'skewY':\n skewMatrix(matrix, args, 1);\n break;\n case 'matrix':\n matrix = args;\n break;\n }\n\n // snapshot current matrix into matrices array\n matrices.push(matrix.concat());\n // reset\n matrix = iMatrix.concat();\n });\n\n var combinedMatrix = matrices[0];\n while (matrices.length > 1) {\n matrices.shift();\n combinedMatrix = fabric.util.multiplyTransformMatrices(combinedMatrix, matrices[0]);\n }\n return combinedMatrix;\n };\n })();\n\n /**\n * @private\n */\n function parseStyleString(style, oStyle) {\n var attr, value;\n style.replace(/;\\s*$/, '').split(';').forEach(function (chunk) {\n var pair = chunk.split(':');\n\n attr = pair[0].trim().toLowerCase();\n value = pair[1].trim();\n\n oStyle[attr] = value;\n });\n }\n\n /**\n * @private\n */\n function parseStyleObject(style, oStyle) {\n var attr, value;\n for (var prop in style) {\n if (typeof style[prop] === 'undefined') {\n continue;\n }\n\n attr = prop.toLowerCase();\n value = style[prop];\n\n oStyle[attr] = value;\n }\n }\n\n /**\n * @private\n */\n function getGlobalStylesForElement(element, svgUid) {\n var styles = { };\n for (var rule in fabric.cssRules[svgUid]) {\n if (elementMatchesRule(element, rule.split(' '))) {\n for (var property in fabric.cssRules[svgUid][rule]) {\n styles[property] = fabric.cssRules[svgUid][rule][property];\n }\n }\n }\n return styles;\n }\n\n /**\n * @private\n */\n function elementMatchesRule(element, selectors) {\n var firstMatching, parentMatching = true;\n //start from rightmost selector.\n firstMatching = selectorMatches(element, selectors.pop());\n if (firstMatching && selectors.length) {\n parentMatching = doesSomeParentMatch(element, selectors);\n }\n return firstMatching && parentMatching && (selectors.length === 0);\n }\n\n function doesSomeParentMatch(element, selectors) {\n var selector, parentMatching = true;\n while (element.parentNode && element.parentNode.nodeType === 1 && selectors.length) {\n if (parentMatching) {\n selector = selectors.pop();\n }\n element = element.parentNode;\n parentMatching = selectorMatches(element, selector);\n }\n return selectors.length === 0;\n }\n\n /**\n * @private\n */\n function selectorMatches(element, selector) {\n var nodeName = element.nodeName,\n classNames = element.getAttribute('class'),\n id = element.getAttribute('id'), matcher, i;\n // i check if a selector matches slicing away part from it.\n // if i get empty string i should match\n matcher = new RegExp('^' + nodeName, 'i');\n selector = selector.replace(matcher, '');\n if (id && selector.length) {\n matcher = new RegExp('#' + id + '(?![a-zA-Z\\\\-]+)', 'i');\n selector = selector.replace(matcher, '');\n }\n if (classNames && selector.length) {\n classNames = classNames.split(' ');\n for (i = classNames.length; i--;) {\n matcher = new RegExp('\\\\.' + classNames[i] + '(?![a-zA-Z\\\\-]+)', 'i');\n selector = selector.replace(matcher, '');\n }\n }\n return selector.length === 0;\n }\n\n /**\n * @private\n * to support IE8 missing getElementById on SVGdocument and on node xmlDOM\n */\n function elementById(doc, id) {\n var el;\n doc.getElementById && (el = doc.getElementById(id));\n if (el) {\n return el;\n }\n var node, i, len, nodelist = doc.getElementsByTagName('*');\n for (i = 0, len = nodelist.length; i < len; i++) {\n node = nodelist[i];\n if (id === node.getAttribute('id')) {\n return node;\n }\n }\n }\n\n /**\n * @private\n */\n function parseUseDirectives(doc) {\n var nodelist = _getMultipleNodes(doc, ['use', 'svg:use']), i = 0;\n while (nodelist.length && i < nodelist.length) {\n var el = nodelist[i],\n xlink = (el.getAttribute('xlink:href') || el.getAttribute('href')).substr(1),\n x = el.getAttribute('x') || 0,\n y = el.getAttribute('y') || 0,\n el2 = elementById(doc, xlink).cloneNode(true),\n currentTrans = (el2.getAttribute('transform') || '') + ' translate(' + x + ', ' + y + ')',\n parentNode, oldLength = nodelist.length, attr, j, attrs, len, namespace = fabric.svgNS;\n\n applyViewboxTransform(el2);\n if (/^svg$/i.test(el2.nodeName)) {\n var el3 = el2.ownerDocument.createElementNS(namespace, 'g');\n for (j = 0, attrs = el2.attributes, len = attrs.length; j < len; j++) {\n attr = attrs.item(j);\n el3.setAttributeNS(namespace, attr.nodeName, attr.nodeValue);\n }\n // el2.firstChild != null\n while (el2.firstChild) {\n el3.appendChild(el2.firstChild);\n }\n el2 = el3;\n }\n\n for (j = 0, attrs = el.attributes, len = attrs.length; j < len; j++) {\n attr = attrs.item(j);\n if (attr.nodeName === 'x' || attr.nodeName === 'y' ||\n attr.nodeName === 'xlink:href' || attr.nodeName === 'href') {\n continue;\n }\n\n if (attr.nodeName === 'transform') {\n currentTrans = attr.nodeValue + ' ' + currentTrans;\n }\n else {\n el2.setAttribute(attr.nodeName, attr.nodeValue);\n }\n }\n\n el2.setAttribute('transform', currentTrans);\n el2.setAttribute('instantiated_by_use', '1');\n el2.removeAttribute('id');\n parentNode = el.parentNode;\n parentNode.replaceChild(el2, el);\n // some browsers do not shorten nodelist after replaceChild (IE8)\n if (nodelist.length === oldLength) {\n i++;\n }\n }\n }\n\n // http://www.w3.org/TR/SVG/coords.html#ViewBoxAttribute\n // matches, e.g.: +14.56e-12, etc.\n var reViewBoxAttrValue = new RegExp(\n '^' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*,?' +\n '\\\\s*(' + fabric.reNum + '+)\\\\s*' +\n '$'\n );\n\n /**\n * Add a element that envelop all child elements and makes the viewbox transformMatrix descend on all elements\n */\n function applyViewboxTransform(element) {\n\n var viewBoxAttr = element.getAttribute('viewBox'),\n scaleX = 1,\n scaleY = 1,\n minX = 0,\n minY = 0,\n viewBoxWidth, viewBoxHeight, matrix, el,\n widthAttr = element.getAttribute('width'),\n heightAttr = element.getAttribute('height'),\n x = element.getAttribute('x') || 0,\n y = element.getAttribute('y') || 0,\n preserveAspectRatio = element.getAttribute('preserveAspectRatio') || '',\n missingViewBox = (!viewBoxAttr || !fabric.svgViewBoxElementsRegEx.test(element.nodeName)\n || !(viewBoxAttr = viewBoxAttr.match(reViewBoxAttrValue))),\n missingDimAttr = (!widthAttr || !heightAttr || widthAttr === '100%' || heightAttr === '100%'),\n toBeParsed = missingViewBox && missingDimAttr,\n parsedDim = { }, translateMatrix = '', widthDiff = 0, heightDiff = 0;\n\n parsedDim.width = 0;\n parsedDim.height = 0;\n parsedDim.toBeParsed = toBeParsed;\n\n if (toBeParsed) {\n return parsedDim;\n }\n\n if (missingViewBox) {\n parsedDim.width = parseUnit(widthAttr);\n parsedDim.height = parseUnit(heightAttr);\n return parsedDim;\n }\n minX = -parseFloat(viewBoxAttr[1]);\n minY = -parseFloat(viewBoxAttr[2]);\n viewBoxWidth = parseFloat(viewBoxAttr[3]);\n viewBoxHeight = parseFloat(viewBoxAttr[4]);\n parsedDim.minX = minX;\n parsedDim.minY = minY;\n parsedDim.viewBoxWidth = viewBoxWidth;\n parsedDim.viewBoxHeight = viewBoxHeight;\n if (!missingDimAttr) {\n parsedDim.width = parseUnit(widthAttr);\n parsedDim.height = parseUnit(heightAttr);\n scaleX = parsedDim.width / viewBoxWidth;\n scaleY = parsedDim.height / viewBoxHeight;\n }\n else {\n parsedDim.width = viewBoxWidth;\n parsedDim.height = viewBoxHeight;\n }\n\n // default is to preserve aspect ratio\n preserveAspectRatio = fabric.util.parsePreserveAspectRatioAttribute(preserveAspectRatio);\n if (preserveAspectRatio.alignX !== 'none') {\n //translate all container for the effect of Mid, Min, Max\n if (preserveAspectRatio.meetOrSlice === 'meet') {\n scaleY = scaleX = (scaleX > scaleY ? scaleY : scaleX);\n // calculate additional translation to move the viewbox\n }\n if (preserveAspectRatio.meetOrSlice === 'slice') {\n scaleY = scaleX = (scaleX > scaleY ? scaleX : scaleY);\n // calculate additional translation to move the viewbox\n }\n widthDiff = parsedDim.width - viewBoxWidth * scaleX;\n heightDiff = parsedDim.height - viewBoxHeight * scaleX;\n if (preserveAspectRatio.alignX === 'Mid') {\n widthDiff /= 2;\n }\n if (preserveAspectRatio.alignY === 'Mid') {\n heightDiff /= 2;\n }\n if (preserveAspectRatio.alignX === 'Min') {\n widthDiff = 0;\n }\n if (preserveAspectRatio.alignY === 'Min') {\n heightDiff = 0;\n }\n }\n\n if (scaleX === 1 && scaleY === 1 && minX === 0 && minY === 0 && x === 0 && y === 0) {\n return parsedDim;\n }\n\n if (x || y) {\n translateMatrix = ' translate(' + parseUnit(x) + ' ' + parseUnit(y) + ') ';\n }\n\n matrix = translateMatrix + ' matrix(' + scaleX +\n ' 0' +\n ' 0 ' +\n scaleY + ' ' +\n (minX * scaleX + widthDiff) + ' ' +\n (minY * scaleY + heightDiff) + ') ';\n parsedDim.viewboxTransform = fabric.parseTransformAttribute(matrix);\n if (element.nodeName === 'svg') {\n el = element.ownerDocument.createElementNS(fabric.svgNS, 'g');\n // element.firstChild != null\n while (element.firstChild) {\n el.appendChild(element.firstChild);\n }\n element.appendChild(el);\n }\n else {\n el = element;\n matrix = el.getAttribute('transform') + matrix;\n }\n el.setAttribute('transform', matrix);\n return parsedDim;\n }\n\n function hasAncestorWithNodeName(element, nodeName) {\n while (element && (element = element.parentNode)) {\n if (element.nodeName && nodeName.test(element.nodeName.replace('svg:', ''))\n && !element.getAttribute('instantiated_by_use')) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Parses an SVG document, converts it to an array of corresponding fabric.* instances and passes them to a callback\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @param {Function} callback Callback to call when parsing is finished;\n * It's being passed an array of elements (parsed from a document).\n * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created.\n * @param {Object} [parsingOptions] options for parsing document\n * @param {String} [parsingOptions.crossOrigin] crossOrigin settings\n */\n fabric.parseSVGDocument = function(doc, callback, reviver, parsingOptions) {\n if (!doc) {\n return;\n }\n\n parseUseDirectives(doc);\n\n var svgUid = fabric.Object.__uid++, i, len,\n options = applyViewboxTransform(doc),\n descendants = fabric.util.toArray(doc.getElementsByTagName('*'));\n options.crossOrigin = parsingOptions && parsingOptions.crossOrigin;\n options.svgUid = svgUid;\n\n if (descendants.length === 0 && fabric.isLikelyNode) {\n // we're likely in node, where \"o3-xml\" library fails to gEBTN(\"*\")\n // https://github.com/ajaxorg/node-o3-xml/issues/21\n descendants = doc.selectNodes('//*[name(.)!=\"svg\"]');\n var arr = [];\n for (i = 0, len = descendants.length; i < len; i++) {\n arr[i] = descendants[i];\n }\n descendants = arr;\n }\n\n var elements = descendants.filter(function(el) {\n applyViewboxTransform(el);\n return fabric.svgValidTagNamesRegEx.test(el.nodeName.replace('svg:', '')) &&\n !hasAncestorWithNodeName(el, fabric.svgInvalidAncestorsRegEx); // http://www.w3.org/TR/SVG/struct.html#DefsElement\n });\n\n if (!elements || (elements && !elements.length)) {\n callback && callback([], {});\n return;\n }\n var clipPaths = { };\n descendants.filter(function(el) {\n return el.nodeName.replace('svg:', '') === 'clipPath';\n }).forEach(function(el) {\n var id = el.getAttribute('id');\n clipPaths[id] = fabric.util.toArray(el.getElementsByTagName('*')).filter(function(el) {\n return fabric.svgValidTagNamesRegEx.test(el.nodeName.replace('svg:', ''));\n });\n });\n fabric.gradientDefs[svgUid] = fabric.getGradientDefs(doc);\n fabric.cssRules[svgUid] = fabric.getCSSRules(doc);\n fabric.clipPaths[svgUid] = clipPaths;\n // Precedence of rules: style > class > attribute\n fabric.parseElements(elements, function(instances, elements) {\n if (callback) {\n callback(instances, options, elements, descendants);\n delete fabric.gradientDefs[svgUid];\n delete fabric.cssRules[svgUid];\n delete fabric.clipPaths[svgUid];\n }\n }, clone(options), reviver, parsingOptions);\n };\n\n function recursivelyParseGradientsXlink(doc, gradient) {\n var gradientsAttrs = ['gradientTransform', 'x1', 'x2', 'y1', 'y2', 'gradientUnits', 'cx', 'cy', 'r', 'fx', 'fy'],\n xlinkAttr = 'xlink:href',\n xLink = gradient.getAttribute(xlinkAttr).substr(1),\n referencedGradient = elementById(doc, xLink);\n if (referencedGradient && referencedGradient.getAttribute(xlinkAttr)) {\n recursivelyParseGradientsXlink(doc, referencedGradient);\n }\n gradientsAttrs.forEach(function(attr) {\n if (referencedGradient && !gradient.hasAttribute(attr) && referencedGradient.hasAttribute(attr)) {\n gradient.setAttribute(attr, referencedGradient.getAttribute(attr));\n }\n });\n if (!gradient.children.length) {\n var referenceClone = referencedGradient.cloneNode(true);\n while (referenceClone.firstChild) {\n gradient.appendChild(referenceClone.firstChild);\n }\n }\n gradient.removeAttribute(xlinkAttr);\n }\n\n var reFontDeclaration = new RegExp(\n '(normal|italic)?\\\\s*(normal|small-caps)?\\\\s*' +\n '(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\\\s*(' +\n fabric.reNum +\n '(?:px|cm|mm|em|pt|pc|in)*)(?:\\\\/(normal|' + fabric.reNum + '))?\\\\s+(.*)');\n\n extend(fabric, {\n /**\n * Parses a short font declaration, building adding its properties to a style object\n * @static\n * @function\n * @memberOf fabric\n * @param {String} value font declaration\n * @param {Object} oStyle definition\n */\n parseFontDeclaration: function(value, oStyle) {\n var match = value.match(reFontDeclaration);\n\n if (!match) {\n return;\n }\n var fontStyle = match[1],\n // font variant is not used\n // fontVariant = match[2],\n fontWeight = match[3],\n fontSize = match[4],\n lineHeight = match[5],\n fontFamily = match[6];\n\n if (fontStyle) {\n oStyle.fontStyle = fontStyle;\n }\n if (fontWeight) {\n oStyle.fontWeight = isNaN(parseFloat(fontWeight)) ? fontWeight : parseFloat(fontWeight);\n }\n if (fontSize) {\n oStyle.fontSize = parseUnit(fontSize);\n }\n if (fontFamily) {\n oStyle.fontFamily = fontFamily;\n }\n if (lineHeight) {\n oStyle.lineHeight = lineHeight === 'normal' ? 1 : lineHeight;\n }\n },\n\n /**\n * Parses an SVG document, returning all of the gradient declarations found in it\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @return {Object} Gradient definitions; key corresponds to element id, value -- to gradient definition element\n */\n getGradientDefs: function(doc) {\n var tagArray = [\n 'linearGradient',\n 'radialGradient',\n 'svg:linearGradient',\n 'svg:radialGradient'],\n elList = _getMultipleNodes(doc, tagArray),\n el, j = 0, gradientDefs = { };\n j = elList.length;\n while (j--) {\n el = elList[j];\n if (el.getAttribute('xlink:href')) {\n recursivelyParseGradientsXlink(doc, el);\n }\n gradientDefs[el.getAttribute('id')] = el;\n }\n return gradientDefs;\n },\n\n /**\n * Returns an object of attributes' name/value, given element and an array of attribute names;\n * Parses parent \"g\" nodes recursively upwards.\n * @static\n * @memberOf fabric\n * @param {DOMElement} element Element to parse\n * @param {Array} attributes Array of attributes to parse\n * @return {Object} object containing parsed attributes' names/values\n */\n parseAttributes: function(element, attributes, svgUid) {\n\n if (!element) {\n return;\n }\n\n var value,\n parentAttributes = { },\n fontSize, parentFontSize;\n\n if (typeof svgUid === 'undefined') {\n svgUid = element.getAttribute('svgUid');\n }\n // if there's a parent container (`g` or `a` or `symbol` node), parse its attributes recursively upwards\n if (element.parentNode && fabric.svgValidParentsRegEx.test(element.parentNode.nodeName)) {\n parentAttributes = fabric.parseAttributes(element.parentNode, attributes, svgUid);\n }\n\n var ownAttributes = attributes.reduce(function(memo, attr) {\n value = element.getAttribute(attr);\n if (value) { // eslint-disable-line\n memo[attr] = value;\n }\n return memo;\n }, { });\n // add values parsed from style, which take precedence over attributes\n // (see: http://www.w3.org/TR/SVG/styling.html#UsingPresentationAttributes)\n var cssAttrs = extend(\n getGlobalStylesForElement(element, svgUid),\n fabric.parseStyleAttribute(element)\n );\n ownAttributes = extend(\n ownAttributes,\n cssAttrs\n );\n if (cssAttrs[cPath]) {\n element.setAttribute(cPath, cssAttrs[cPath]);\n }\n fontSize = parentFontSize = parentAttributes.fontSize || fabric.Text.DEFAULT_SVG_FONT_SIZE;\n if (ownAttributes[fSize]) {\n // looks like the minimum should be 9px when dealing with ems. this is what looks like in browsers.\n ownAttributes[fSize] = fontSize = parseUnit(ownAttributes[fSize], parentFontSize);\n }\n\n var normalizedAttr, normalizedValue, normalizedStyle = {};\n for (var attr in ownAttributes) {\n normalizedAttr = normalizeAttr(attr);\n normalizedValue = normalizeValue(normalizedAttr, ownAttributes[attr], parentAttributes, fontSize);\n normalizedStyle[normalizedAttr] = normalizedValue;\n }\n if (normalizedStyle && normalizedStyle.font) {\n fabric.parseFontDeclaration(normalizedStyle.font, normalizedStyle);\n }\n var mergedAttrs = extend(parentAttributes, normalizedStyle);\n return fabric.svgValidParentsRegEx.test(element.nodeName) ? mergedAttrs : _setStrokeFillOpacity(mergedAttrs);\n },\n\n /**\n * Transforms an array of svg elements to corresponding fabric.* instances\n * @static\n * @memberOf fabric\n * @param {Array} elements Array of elements to parse\n * @param {Function} callback Being passed an array of fabric instances (transformed from SVG elements)\n * @param {Object} [options] Options object\n * @param {Function} [reviver] Method for further parsing of SVG elements, called after each fabric object created.\n */\n parseElements: function(elements, callback, options, reviver, parsingOptions) {\n new fabric.ElementsParser(elements, callback, options, reviver, parsingOptions).parse();\n },\n\n /**\n * Parses \"style\" attribute, retuning an object with values\n * @static\n * @memberOf fabric\n * @param {SVGElement} element Element to parse\n * @return {Object} Objects with values parsed from style attribute of an element\n */\n parseStyleAttribute: function(element) {\n var oStyle = { },\n style = element.getAttribute('style');\n\n if (!style) {\n return oStyle;\n }\n\n if (typeof style === 'string') {\n parseStyleString(style, oStyle);\n }\n else {\n parseStyleObject(style, oStyle);\n }\n\n return oStyle;\n },\n\n /**\n * Parses \"points\" attribute, returning an array of values\n * @static\n * @memberOf fabric\n * @param {String} points points attribute string\n * @return {Array} array of points\n */\n parsePointsAttribute: function(points) {\n\n // points attribute is required and must not be empty\n if (!points) {\n return null;\n }\n\n // replace commas with whitespace and remove bookending whitespace\n points = points.replace(/,/g, ' ').trim();\n\n points = points.split(/\\s+/);\n var parsedPoints = [], i, len;\n\n for (i = 0, len = points.length; i < len; i += 2) {\n parsedPoints.push({\n x: parseFloat(points[i]),\n y: parseFloat(points[i + 1])\n });\n }\n\n // odd number of points is an error\n // if (parsedPoints.length % 2 !== 0) {\n // return null;\n // }\n\n return parsedPoints;\n },\n\n /**\n * Returns CSS rules for a given SVG document\n * @static\n * @function\n * @memberOf fabric\n * @param {SVGDocument} doc SVG document to parse\n * @return {Object} CSS rules of this document\n */\n getCSSRules: function(doc) {\n var styles = doc.getElementsByTagName('style'), i, len,\n allRules = { }, rules;\n\n // very crude parsing of style contents\n for (i = 0, len = styles.length; i < len; i++) {\n // \\n'\n ].join('');\n }\n\n return markup;\n },\n\n /**\n * @private\n */\n _setSVGObjects: function(markup, reviver) {\n var instance, i, len, objects = this._objects;\n for (i = 0, len = objects.length; i < len; i++) {\n instance = objects[i];\n if (instance.excludeFromExport) {\n continue;\n }\n this._setSVGObject(markup, instance, reviver);\n }\n },\n\n /**\n * @private\n */\n _setSVGObject: function(markup, instance, reviver) {\n markup.push(instance.toSVG(reviver));\n },\n\n /**\n * @private\n */\n _setSVGBgOverlayImage: function(markup, property, reviver) {\n if (this[property] && !this[property].excludeFromExport && this[property].toSVG) {\n markup.push(this[property].toSVG(reviver));\n }\n },\n\n /**\n * @private\n */\n _setSVGBgOverlayColor: function(markup, property) {\n var filler = this[property + 'Color'], vpt = this.viewportTransform, finalWidth = this.width,\n finalHeight = this.height;\n if (!filler) {\n return;\n }\n if (filler.toLive) {\n var repeat = filler.repeat, iVpt = fabric.util.invertTransform(vpt), shouldInvert = this[property + 'Vpt'],\n additionalTransform = shouldInvert ? fabric.util.matrixToSVG(iVpt) : '';\n markup.push(\n '\\n'\n );\n }\n else {\n markup.push(\n '\\n'\n );\n }\n },\n /* _TO_SVG_END_ */\n\n /**\n * Moves an object or the objects of a multiple selection\n * to the bottom of the stack of drawn objects\n * @param {fabric.Object} object Object to send to back\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n sendToBack: function (object) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, objs;\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = objs.length; i--;) {\n obj = objs[i];\n removeFromArray(this._objects, obj);\n this._objects.unshift(obj);\n }\n }\n else {\n removeFromArray(this._objects, object);\n this._objects.unshift(object);\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Moves an object or the objects of a multiple selection\n * to the top of the stack of drawn objects\n * @param {fabric.Object} object Object to send\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n bringToFront: function (object) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, objs;\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = 0; i < objs.length; i++) {\n obj = objs[i];\n removeFromArray(this._objects, obj);\n this._objects.push(obj);\n }\n }\n else {\n removeFromArray(this._objects, object);\n this._objects.push(object);\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * Moves an object or a selection down in stack of drawn objects\n * An optional paramter, intersecting allowes to move the object in behind\n * the first intersecting object. Where intersection is calculated with\n * bounding box. If no intersection is found, there will not be change in the\n * stack.\n * @param {fabric.Object} object Object to send\n * @param {Boolean} [intersecting] If `true`, send object behind next lower intersecting object\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n sendBackwards: function (object, intersecting) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, idx, newIdx, objs, objsMoved = 0;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = 0; i < objs.length; i++) {\n obj = objs[i];\n idx = this._objects.indexOf(obj);\n if (idx > 0 + objsMoved) {\n newIdx = idx - 1;\n removeFromArray(this._objects, obj);\n this._objects.splice(newIdx, 0, obj);\n }\n objsMoved++;\n }\n }\n else {\n idx = this._objects.indexOf(object);\n if (idx !== 0) {\n // if object is not on the bottom of stack\n newIdx = this._findNewLowerIndex(object, idx, intersecting);\n removeFromArray(this._objects, object);\n this._objects.splice(newIdx, 0, object);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * @private\n */\n _findNewLowerIndex: function(object, idx, intersecting) {\n var newIdx, i;\n\n if (intersecting) {\n newIdx = idx;\n\n // traverse down the stack looking for the nearest intersecting object\n for (i = idx - 1; i >= 0; --i) {\n\n var isIntersecting = object.intersectsWithObject(this._objects[i]) ||\n object.isContainedWithinObject(this._objects[i]) ||\n this._objects[i].isContainedWithinObject(object);\n\n if (isIntersecting) {\n newIdx = i;\n break;\n }\n }\n }\n else {\n newIdx = idx - 1;\n }\n\n return newIdx;\n },\n\n /**\n * Moves an object or a selection up in stack of drawn objects\n * An optional paramter, intersecting allowes to move the object in front\n * of the first intersecting object. Where intersection is calculated with\n * bounding box. If no intersection is found, there will not be change in the\n * stack.\n * @param {fabric.Object} object Object to send\n * @param {Boolean} [intersecting] If `true`, send object in front of next upper intersecting object\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n bringForward: function (object, intersecting) {\n if (!object) {\n return this;\n }\n var activeSelection = this._activeObject,\n i, obj, idx, newIdx, objs, objsMoved = 0;\n\n if (object === activeSelection && object.type === 'activeSelection') {\n objs = activeSelection._objects;\n for (i = objs.length; i--;) {\n obj = objs[i];\n idx = this._objects.indexOf(obj);\n if (idx < this._objects.length - 1 - objsMoved) {\n newIdx = idx + 1;\n removeFromArray(this._objects, obj);\n this._objects.splice(newIdx, 0, obj);\n }\n objsMoved++;\n }\n }\n else {\n idx = this._objects.indexOf(object);\n if (idx !== this._objects.length - 1) {\n // if object is not on top of stack (last item in an array)\n newIdx = this._findNewUpperIndex(object, idx, intersecting);\n removeFromArray(this._objects, object);\n this._objects.splice(newIdx, 0, object);\n }\n }\n this.renderOnAddRemove && this.requestRenderAll();\n return this;\n },\n\n /**\n * @private\n */\n _findNewUpperIndex: function(object, idx, intersecting) {\n var newIdx, i, len;\n\n if (intersecting) {\n newIdx = idx;\n\n // traverse up the stack looking for the nearest intersecting object\n for (i = idx + 1, len = this._objects.length; i < len; ++i) {\n\n var isIntersecting = object.intersectsWithObject(this._objects[i]) ||\n object.isContainedWithinObject(this._objects[i]) ||\n this._objects[i].isContainedWithinObject(object);\n\n if (isIntersecting) {\n newIdx = i;\n break;\n }\n }\n }\n else {\n newIdx = idx + 1;\n }\n\n return newIdx;\n },\n\n /**\n * Moves an object to specified level in stack of drawn objects\n * @param {fabric.Object} object Object to send\n * @param {Number} index Position to move to\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n moveTo: function (object, index) {\n removeFromArray(this._objects, object);\n this._objects.splice(index, 0, object);\n return this.renderOnAddRemove && this.requestRenderAll();\n },\n\n /**\n * Clears a canvas element and dispose objects\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n dispose: function () {\n // cancel eventually ongoing renders\n if (this.isRendering) {\n fabric.util.cancelAnimFrame(this.isRendering);\n this.isRendering = 0;\n }\n this.forEachObject(function(object) {\n object.dispose && object.dispose();\n });\n this._objects = [];\n if (this.backgroundImage && this.backgroundImage.dispose) {\n this.backgroundImage.dispose();\n }\n this.backgroundImage = null;\n if (this.overlayImage && this.overlayImage.dispose) {\n this.overlayImage.dispose();\n }\n this.overlayImage = null;\n this._iTextInstances = null;\n this.contextContainer = null;\n fabric.util.cleanUpJsdomNode(this.lowerCanvasEl);\n this.lowerCanvasEl = undefined;\n return this;\n },\n\n /**\n * Returns a string representation of an instance\n * @return {String} string representation of an instance\n */\n toString: function () {\n return '#';\n }\n });\n\n extend(fabric.StaticCanvas.prototype, fabric.Observable);\n extend(fabric.StaticCanvas.prototype, fabric.Collection);\n extend(fabric.StaticCanvas.prototype, fabric.DataURLExporter);\n\n extend(fabric.StaticCanvas, /** @lends fabric.StaticCanvas */ {\n\n /**\n * @static\n * @type String\n * @default\n */\n EMPTY_JSON: '{\"objects\": [], \"background\": \"white\"}',\n\n /**\n * Provides a way to check support of some of the canvas methods\n * (either those of HTMLCanvasElement itself, or rendering context)\n *\n * @param {String} methodName Method to check support for;\n * Could be one of \"setLineDash\"\n * @return {Boolean | null} `true` if method is supported (or at least exists),\n * `null` if canvas element or context can not be initialized\n */\n supports: function (methodName) {\n var el = createCanvasElement();\n\n if (!el || !el.getContext) {\n return null;\n }\n\n var ctx = el.getContext('2d');\n if (!ctx) {\n return null;\n }\n\n switch (methodName) {\n\n case 'setLineDash':\n return typeof ctx.setLineDash !== 'undefined';\n\n default:\n return null;\n }\n }\n });\n\n /**\n * Returns JSON representation of canvas\n * @function\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {String} JSON string\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#serialization}\n * @see {@link http://jsfiddle.net/fabricjs/pec86/|jsFiddle demo}\n * @example JSON without additional properties\n * var json = canvas.toJSON();\n * @example JSON with additional properties included\n * var json = canvas.toJSON(['lockMovementX', 'lockMovementY', 'lockRotation', 'lockScalingX', 'lockScalingY', 'lockUniScaling']);\n * @example JSON without default values\n * canvas.includeDefaultValues = false;\n * var json = canvas.toJSON();\n */\n fabric.StaticCanvas.prototype.toJSON = fabric.StaticCanvas.prototype.toObject;\n\n if (fabric.isLikelyNode) {\n fabric.StaticCanvas.prototype.createPNGStream = function() {\n var impl = getNodeCanvas(this.lowerCanvasEl);\n return impl && impl.createPNGStream();\n };\n fabric.StaticCanvas.prototype.createJPEGStream = function(opts) {\n var impl = getNodeCanvas(this.lowerCanvasEl);\n return impl && impl.createJPEGStream(opts);\n };\n }\n})();\n\n\n/**\n * BaseBrush class\n * @class fabric.BaseBrush\n * @see {@link http://fabricjs.com/freedrawing|Freedrawing demo}\n */\nfabric.BaseBrush = fabric.util.createClass(/** @lends fabric.BaseBrush.prototype */ {\n\n /**\n * Color of a brush\n * @type String\n * @default\n */\n color: 'rgb(0, 0, 0)',\n\n /**\n * Width of a brush, has to be a Number, no string literals\n * @type Number\n * @default\n */\n width: 1,\n\n /**\n * Shadow object representing shadow of this shape.\n * Backwards incompatibility note: This property replaces \"shadowColor\" (String), \"shadowOffsetX\" (Number),\n * \"shadowOffsetY\" (Number) and \"shadowBlur\" (Number) since v1.2.12\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * Line endings style of a brush (one of \"butt\", \"round\", \"square\")\n * @type String\n * @default\n */\n strokeLineCap: 'round',\n\n /**\n * Corner style of a brush (one of \"bevel\", \"round\", \"miter\")\n * @type String\n * @default\n */\n strokeLineJoin: 'round',\n\n /**\n * Maximum miter length (used for strokeLineJoin = \"miter\") of a brush's\n * @type Number\n * @default\n */\n strokeMiterLimit: 10,\n\n /**\n * Stroke Dash Array.\n * @type Array\n * @default\n */\n strokeDashArray: null,\n\n /**\n * Sets shadow of an object\n * @param {Object|String} [options] Options object or string (e.g. \"2px 2px 10px rgba(0,0,0,0.2)\")\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setShadow: function(options) {\n this.shadow = new fabric.Shadow(options);\n return this;\n },\n\n /**\n * Sets brush styles\n * @private\n */\n _setBrushStyles: function() {\n var ctx = this.canvas.contextTop;\n ctx.strokeStyle = this.color;\n ctx.lineWidth = this.width;\n ctx.lineCap = this.strokeLineCap;\n ctx.miterLimit = this.strokeMiterLimit;\n ctx.lineJoin = this.strokeLineJoin;\n if (fabric.StaticCanvas.supports('setLineDash')) {\n ctx.setLineDash(this.strokeDashArray || []);\n }\n },\n\n /**\n * Sets the transformation on given context\n * @param {RenderingContext2d} ctx context to render on\n * @private\n */\n _saveAndTransform: function(ctx) {\n var v = this.canvas.viewportTransform;\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n },\n\n /**\n * Sets brush shadow styles\n * @private\n */\n _setShadow: function() {\n if (!this.shadow) {\n return;\n }\n\n var canvas = this.canvas,\n shadow = this.shadow,\n ctx = canvas.contextTop,\n zoom = canvas.getZoom();\n if (canvas && canvas._isRetinaScaling()) {\n zoom *= fabric.devicePixelRatio;\n }\n\n ctx.shadowColor = shadow.color;\n ctx.shadowBlur = shadow.blur * zoom;\n ctx.shadowOffsetX = shadow.offsetX * zoom;\n ctx.shadowOffsetY = shadow.offsetY * zoom;\n },\n\n needsFullRender: function() {\n var color = new fabric.Color(this.color);\n return color.getAlpha() < 1 || !!this.shadow;\n },\n\n /**\n * Removes brush shadow styles\n * @private\n */\n _resetShadow: function() {\n var ctx = this.canvas.contextTop;\n\n ctx.shadowColor = '';\n ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0;\n }\n});\n\n\n(function() {\n /**\n * PencilBrush class\n * @class fabric.PencilBrush\n * @extends fabric.BaseBrush\n */\n fabric.PencilBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric.PencilBrush.prototype */ {\n\n /**\n * Discard points that are less than `decimate` pixel distant from each other\n * @type Number\n * @default 0.4\n */\n decimate: 0.4,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.PencilBrush} Instance of a pencil brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this._points = [];\n },\n\n /**\n * Invoked inside on mouse down and mouse move\n * @param {Object} pointer\n */\n _drawSegment: function (ctx, p1, p2) {\n var midPoint = p1.midPointFrom(p2);\n ctx.quadraticCurveTo(p1.x, p1.y, midPoint.x, midPoint.y);\n return midPoint;\n },\n\n /**\n * Inovoked on mouse down\n * @param {Object} pointer\n */\n onMouseDown: function(pointer, options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return;\n }\n this._prepareForDrawing(pointer);\n // capture coordinates immediately\n // this allows to draw dots (when movement never occurs)\n this._captureDrawingPath(pointer);\n this._render();\n },\n\n /**\n * Inovoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer, options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return;\n }\n if (this._captureDrawingPath(pointer) && this._points.length > 1) {\n if (this.needsFullRender()) {\n // redraw curve\n // clear top canvas\n this.canvas.clearContext(this.canvas.contextTop);\n this._render();\n }\n else {\n var points = this._points, length = points.length, ctx = this.canvas.contextTop;\n // draw the curve update\n this._saveAndTransform(ctx);\n if (this.oldEnd) {\n ctx.beginPath();\n ctx.moveTo(this.oldEnd.x, this.oldEnd.y);\n }\n this.oldEnd = this._drawSegment(ctx, points[length - 2], points[length - 1], true);\n ctx.stroke();\n ctx.restore();\n }\n }\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function(options) {\n if (!this.canvas._isMainEvent(options.e)) {\n return true;\n }\n this.oldEnd = undefined;\n this._finalizeAndAddPath();\n return false;\n },\n\n /**\n * @private\n * @param {Object} pointer Actual mouse position related to the canvas.\n */\n _prepareForDrawing: function(pointer) {\n\n var p = new fabric.Point(pointer.x, pointer.y);\n\n this._reset();\n this._addPoint(p);\n this.canvas.contextTop.moveTo(p.x, p.y);\n },\n\n /**\n * @private\n * @param {fabric.Point} point Point to be added to points array\n */\n _addPoint: function(point) {\n if (this._points.length > 1 && point.eq(this._points[this._points.length - 1])) {\n return false;\n }\n this._points.push(point);\n return true;\n },\n\n /**\n * Clear points array and set contextTop canvas style.\n * @private\n */\n _reset: function() {\n this._points = [];\n this._setBrushStyles();\n this._setShadow();\n },\n\n /**\n * @private\n * @param {Object} pointer Actual mouse position related to the canvas.\n */\n _captureDrawingPath: function(pointer) {\n var pointerPoint = new fabric.Point(pointer.x, pointer.y);\n return this._addPoint(pointerPoint);\n },\n\n /**\n * Draw a smooth path on the topCanvas using quadraticCurveTo\n * @private\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, len,\n p1 = this._points[0],\n p2 = this._points[1];\n\n this._saveAndTransform(ctx);\n ctx.beginPath();\n //if we only have 2 points in the path and they are the same\n //it means that the user only clicked the canvas without moving the mouse\n //then we should be drawing a dot. A path isn't drawn between two identical dots\n //that's why we set them apart a bit\n if (this._points.length === 2 && p1.x === p2.x && p1.y === p2.y) {\n var width = this.width / 1000;\n p1 = new fabric.Point(p1.x, p1.y);\n p2 = new fabric.Point(p2.x, p2.y);\n p1.x -= width;\n p2.x += width;\n }\n ctx.moveTo(p1.x, p1.y);\n\n for (i = 1, len = this._points.length; i < len; i++) {\n // we pick the point between pi + 1 & pi + 2 as the\n // end point and p1 as our control point.\n this._drawSegment(ctx, p1, p2);\n p1 = this._points[i];\n p2 = this._points[i + 1];\n }\n // Draw last line as a straight line while\n // we wait for the next point to be able to calculate\n // the bezier control point\n ctx.lineTo(p1.x, p1.y);\n ctx.stroke();\n ctx.restore();\n },\n\n /**\n * Converts points to SVG path\n * @param {Array} points Array of points\n * @return {String} SVG path\n */\n convertPointsToSVGPath: function(points) {\n var path = [], i, width = this.width / 1000,\n p1 = new fabric.Point(points[0].x, points[0].y),\n p2 = new fabric.Point(points[1].x, points[1].y),\n len = points.length, multSignX = 1, multSignY = 0, manyPoints = len > 2;\n\n if (manyPoints) {\n multSignX = points[2].x < p2.x ? -1 : points[2].x === p2.x ? 0 : 1;\n multSignY = points[2].y < p2.y ? -1 : points[2].y === p2.y ? 0 : 1;\n }\n path.push('M ', p1.x - multSignX * width, ' ', p1.y - multSignY * width, ' ');\n for (i = 1; i < len; i++) {\n if (!p1.eq(p2)) {\n var midPoint = p1.midPointFrom(p2);\n // p1 is our bezier control point\n // midpoint is our endpoint\n // start point is p(i-1) value.\n path.push('Q ', p1.x, ' ', p1.y, ' ', midPoint.x, ' ', midPoint.y, ' ');\n }\n p1 = points[i];\n if ((i + 1) < points.length) {\n p2 = points[i + 1];\n }\n }\n if (manyPoints) {\n multSignX = p1.x > points[i - 2].x ? 1 : p1.x === points[i - 2].x ? 0 : -1;\n multSignY = p1.y > points[i - 2].y ? 1 : p1.y === points[i - 2].y ? 0 : -1;\n }\n path.push('L ', p1.x + multSignX * width, ' ', p1.y + multSignY * width);\n return path;\n },\n\n /**\n * Creates fabric.Path object to add on canvas\n * @param {String} pathData Path data\n * @return {fabric.Path} Path to add on canvas\n */\n createPath: function(pathData) {\n var path = new fabric.Path(pathData, {\n fill: null,\n stroke: this.color,\n strokeWidth: this.width,\n strokeLineCap: this.strokeLineCap,\n strokeMiterLimit: this.strokeMiterLimit,\n strokeLineJoin: this.strokeLineJoin,\n strokeDashArray: this.strokeDashArray,\n });\n if (this.shadow) {\n this.shadow.affectStroke = true;\n path.setShadow(this.shadow);\n }\n\n return path;\n },\n\n /**\n * Decimate poins array with the decimate value\n */\n decimatePoints: function(points, distance) {\n if (points.length <= 2) {\n return points;\n }\n var zoom = this.canvas.getZoom(), adjustedDistance = Math.pow(distance / zoom, 2),\n i, l = points.length - 1, lastPoint = points[0], newPoints = [lastPoint],\n cDistance;\n for (i = 1; i < l; i++) {\n cDistance = Math.pow(lastPoint.x - points[i].x, 2) + Math.pow(lastPoint.y - points[i].y, 2);\n if (cDistance >= adjustedDistance) {\n lastPoint = points[i];\n newPoints.push(lastPoint);\n }\n }\n if (newPoints.length === 1) {\n newPoints.push(new fabric.Point(newPoints[0].x, newPoints[0].y));\n }\n return newPoints;\n },\n\n /**\n * On mouseup after drawing the path on contextTop canvas\n * we use the points captured to create an new fabric path object\n * and add it to the fabric canvas.\n */\n _finalizeAndAddPath: function() {\n var ctx = this.canvas.contextTop;\n ctx.closePath();\n if (this.decimate) {\n this._points = this.decimatePoints(this._points, this.decimate);\n }\n var pathData = this.convertPointsToSVGPath(this._points).join('');\n if (pathData === 'M 0 0 Q 0 0 0 0 L 0 0') {\n // do not create 0 width/height paths, as they are\n // rendered inconsistently across browsers\n // Firefox 4, for example, renders a dot,\n // whereas Chrome 10 renders nothing\n this.canvas.requestRenderAll();\n return;\n }\n\n var path = this.createPath(pathData);\n this.canvas.clearContext(this.canvas.contextTop);\n this.canvas.add(path);\n this.canvas.requestRenderAll();\n path.setCoords();\n this._resetShadow();\n\n\n // fire event 'path' created\n this.canvas.fire('path:created', { path: path });\n }\n });\n})();\n\n\n/**\n * CircleBrush class\n * @class fabric.CircleBrush\n */\nfabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric.CircleBrush.prototype */ {\n\n /**\n * Width of a brush\n * @type Number\n * @default\n */\n width: 10,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.CircleBrush} Instance of a circle brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this.points = [];\n },\n\n /**\n * Invoked inside on mouse down and mouse move\n * @param {Object} pointer\n */\n drawDot: function(pointer) {\n var point = this.addPoint(pointer),\n ctx = this.canvas.contextTop;\n this._saveAndTransform(ctx);\n this.dot(ctx, point);\n ctx.restore();\n },\n\n dot: function(ctx, point) {\n ctx.fillStyle = point.fill;\n ctx.beginPath();\n ctx.arc(point.x, point.y, point.radius, 0, Math.PI * 2, false);\n ctx.closePath();\n ctx.fill();\n },\n\n /**\n * Invoked on mouse down\n */\n onMouseDown: function(pointer) {\n this.points.length = 0;\n this.canvas.clearContext(this.canvas.contextTop);\n this._setShadow();\n this.drawDot(pointer);\n },\n\n /**\n * Render the full state of the brush\n * @private\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, len,\n points = this.points;\n this._saveAndTransform(ctx);\n for (i = 0, len = points.length; i < len; i++) {\n this.dot(ctx, points[i]);\n }\n ctx.restore();\n },\n\n /**\n * Invoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer) {\n if (this.needsFullRender()) {\n this.canvas.clearContext(this.canvas.contextTop);\n this.addPoint(pointer);\n this._render();\n }\n else {\n this.drawDot(pointer);\n }\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function() {\n var originalRenderOnAddRemove = this.canvas.renderOnAddRemove, i, len;\n this.canvas.renderOnAddRemove = false;\n\n var circles = [];\n\n for (i = 0, len = this.points.length; i < len; i++) {\n var point = this.points[i],\n circle = new fabric.Circle({\n radius: point.radius,\n left: point.x,\n top: point.y,\n originX: 'center',\n originY: 'center',\n fill: point.fill\n });\n\n this.shadow && circle.setShadow(this.shadow);\n\n circles.push(circle);\n }\n var group = new fabric.Group(circles);\n group.canvas = this.canvas;\n\n this.canvas.add(group);\n this.canvas.fire('path:created', { path: group });\n\n this.canvas.clearContext(this.canvas.contextTop);\n this._resetShadow();\n this.canvas.renderOnAddRemove = originalRenderOnAddRemove;\n this.canvas.requestRenderAll();\n },\n\n /**\n * @param {Object} pointer\n * @return {fabric.Point} Just added pointer point\n */\n addPoint: function(pointer) {\n var pointerPoint = new fabric.Point(pointer.x, pointer.y),\n\n circleRadius = fabric.util.getRandomInt(\n Math.max(0, this.width - 20), this.width + 20) / 2,\n\n circleColor = new fabric.Color(this.color)\n .setAlpha(fabric.util.getRandomInt(0, 100) / 100)\n .toRgba();\n\n pointerPoint.radius = circleRadius;\n pointerPoint.fill = circleColor;\n\n this.points.push(pointerPoint);\n\n return pointerPoint;\n }\n});\n\n\n/**\n * SprayBrush class\n * @class fabric.SprayBrush\n */\nfabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric.SprayBrush.prototype */ {\n\n /**\n * Width of a spray\n * @type Number\n * @default\n */\n width: 10,\n\n /**\n * Density of a spray (number of dots per chunk)\n * @type Number\n * @default\n */\n density: 20,\n\n /**\n * Width of spray dots\n * @type Number\n * @default\n */\n dotWidth: 1,\n\n /**\n * Width variance of spray dots\n * @type Number\n * @default\n */\n dotWidthVariance: 1,\n\n /**\n * Whether opacity of a dot should be random\n * @type Boolean\n * @default\n */\n randomOpacity: false,\n\n /**\n * Whether overlapping dots (rectangles) should be removed (for performance reasons)\n * @type Boolean\n * @default\n */\n optimizeOverlapping: true,\n\n /**\n * Constructor\n * @param {fabric.Canvas} canvas\n * @return {fabric.SprayBrush} Instance of a spray brush\n */\n initialize: function(canvas) {\n this.canvas = canvas;\n this.sprayChunks = [];\n },\n\n /**\n * Invoked on mouse down\n * @param {Object} pointer\n */\n onMouseDown: function(pointer) {\n this.sprayChunks.length = 0;\n this.canvas.clearContext(this.canvas.contextTop);\n this._setShadow();\n\n this.addSprayChunk(pointer);\n this.render(this.sprayChunkPoints);\n },\n\n /**\n * Invoked on mouse move\n * @param {Object} pointer\n */\n onMouseMove: function(pointer) {\n this.addSprayChunk(pointer);\n this.render(this.sprayChunkPoints);\n },\n\n /**\n * Invoked on mouse up\n */\n onMouseUp: function() {\n var originalRenderOnAddRemove = this.canvas.renderOnAddRemove;\n this.canvas.renderOnAddRemove = false;\n\n var rects = [];\n\n for (var i = 0, ilen = this.sprayChunks.length; i < ilen; i++) {\n var sprayChunk = this.sprayChunks[i];\n\n for (var j = 0, jlen = sprayChunk.length; j < jlen; j++) {\n\n var rect = new fabric.Rect({\n width: sprayChunk[j].width,\n height: sprayChunk[j].width,\n left: sprayChunk[j].x + 1,\n top: sprayChunk[j].y + 1,\n originX: 'center',\n originY: 'center',\n fill: this.color\n });\n rects.push(rect);\n }\n }\n\n if (this.optimizeOverlapping) {\n rects = this._getOptimizedRects(rects);\n }\n\n var group = new fabric.Group(rects);\n this.shadow && group.setShadow(this.shadow);\n this.canvas.add(group);\n this.canvas.fire('path:created', { path: group });\n\n this.canvas.clearContext(this.canvas.contextTop);\n this._resetShadow();\n this.canvas.renderOnAddRemove = originalRenderOnAddRemove;\n this.canvas.requestRenderAll();\n },\n\n /**\n * @private\n * @param {Array} rects\n */\n _getOptimizedRects: function(rects) {\n\n // avoid creating duplicate rects at the same coordinates\n var uniqueRects = { }, key, i, len;\n\n for (i = 0, len = rects.length; i < len; i++) {\n key = rects[i].left + '' + rects[i].top;\n if (!uniqueRects[key]) {\n uniqueRects[key] = rects[i];\n }\n }\n var uniqueRectsArray = [];\n for (key in uniqueRects) {\n uniqueRectsArray.push(uniqueRects[key]);\n }\n\n return uniqueRectsArray;\n },\n\n /**\n * Render new chunk of spray brush\n */\n render: function(sprayChunk) {\n var ctx = this.canvas.contextTop, i, len;\n ctx.fillStyle = this.color;\n\n this._saveAndTransform(ctx);\n\n for (i = 0, len = sprayChunk.length; i < len; i++) {\n var point = sprayChunk[i];\n if (typeof point.opacity !== 'undefined') {\n ctx.globalAlpha = point.opacity;\n }\n ctx.fillRect(point.x, point.y, point.width, point.width);\n }\n ctx.restore();\n },\n\n /**\n * Render all spray chunks\n */\n _render: function() {\n var ctx = this.canvas.contextTop, i, ilen;\n ctx.fillStyle = this.color;\n\n this._saveAndTransform(ctx);\n\n for (i = 0, ilen = this.sprayChunks.length; i < ilen; i++) {\n this.render(this.sprayChunks[i]);\n }\n ctx.restore();\n },\n\n /**\n * @param {Object} pointer\n */\n addSprayChunk: function(pointer) {\n this.sprayChunkPoints = [];\n\n var x, y, width, radius = this.width / 2, i;\n\n for (i = 0; i < this.density; i++) {\n\n x = fabric.util.getRandomInt(pointer.x - radius, pointer.x + radius);\n y = fabric.util.getRandomInt(pointer.y - radius, pointer.y + radius);\n\n if (this.dotWidthVariance) {\n width = fabric.util.getRandomInt(\n // bottom clamp width to 1\n Math.max(1, this.dotWidth - this.dotWidthVariance),\n this.dotWidth + this.dotWidthVariance);\n }\n else {\n width = this.dotWidth;\n }\n\n var point = new fabric.Point(x, y);\n point.width = width;\n\n if (this.randomOpacity) {\n point.opacity = fabric.util.getRandomInt(0, 100) / 100;\n }\n\n this.sprayChunkPoints.push(point);\n }\n\n this.sprayChunks.push(this.sprayChunkPoints);\n }\n});\n\n\n/**\n * PatternBrush class\n * @class fabric.PatternBrush\n * @extends fabric.BaseBrush\n */\nfabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fabric.PatternBrush.prototype */ {\n\n getPatternSrc: function() {\n\n var dotWidth = 20,\n dotDistance = 5,\n patternCanvas = fabric.util.createCanvasElement(),\n patternCtx = patternCanvas.getContext('2d');\n\n patternCanvas.width = patternCanvas.height = dotWidth + dotDistance;\n\n patternCtx.fillStyle = this.color;\n patternCtx.beginPath();\n patternCtx.arc(dotWidth / 2, dotWidth / 2, dotWidth / 2, 0, Math.PI * 2, false);\n patternCtx.closePath();\n patternCtx.fill();\n\n return patternCanvas;\n },\n\n getPatternSrcFunction: function() {\n return String(this.getPatternSrc).replace('this.color', '\"' + this.color + '\"');\n },\n\n /**\n * Creates \"pattern\" instance property\n */\n getPattern: function() {\n return this.canvas.contextTop.createPattern(this.source || this.getPatternSrc(), 'repeat');\n },\n\n /**\n * Sets brush styles\n */\n _setBrushStyles: function() {\n this.callSuper('_setBrushStyles');\n this.canvas.contextTop.strokeStyle = this.getPattern();\n },\n\n /**\n * Creates path\n */\n createPath: function(pathData) {\n var path = this.callSuper('createPath', pathData),\n topLeft = path._getLeftTopCoords().scalarAdd(path.strokeWidth / 2);\n\n path.stroke = new fabric.Pattern({\n source: this.source || this.getPatternSrcFunction(),\n offsetX: -topLeft.x,\n offsetY: -topLeft.y\n });\n return path;\n }\n});\n\n\n(function() {\n\n var getPointer = fabric.util.getPointer,\n degreesToRadians = fabric.util.degreesToRadians,\n radiansToDegrees = fabric.util.radiansToDegrees,\n atan2 = Math.atan2,\n abs = Math.abs,\n supportLineDash = fabric.StaticCanvas.supports('setLineDash'),\n\n STROKE_OFFSET = 0.5;\n\n /**\n * Canvas class\n * @class fabric.Canvas\n * @extends fabric.StaticCanvas\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#canvas}\n * @see {@link fabric.Canvas#initialize} for constructor definition\n *\n * @fires object:modified at the end of a transform or any change when statefull is true\n * @fires object:rotated at the end of a rotation transform\n * @fires object:scaled at the end of a scale transform\n * @fires object:moved at the end of translation transform\n * @fires object:skewed at the end of a skew transform\n * @fires object:rotating while an object is being rotated from the control\n * @fires object:scaling while an object is being scaled by controls\n * @fires object:moving while an object is being dragged\n * @fires object:skewing while an object is being skewed from the controls\n * @fires object:selected this event is deprecated. use selection:created\n *\n * @fires before:transform before a transform is is started\n * @fires before:selection:cleared\n * @fires selection:cleared\n * @fires selection:updated\n * @fires selection:created\n *\n * @fires path:created after a drawing operation ends and the path is added\n * @fires mouse:down\n * @fires mouse:move\n * @fires mouse:up\n * @fires mouse:down:before on mouse down, before the inner fabric logic runs\n * @fires mouse:move:before on mouse move, before the inner fabric logic runs\n * @fires mouse:up:before on mouse up, before the inner fabric logic runs\n * @fires mouse:over\n * @fires mouse:out\n * @fires mouse:dblclick whenever a native dbl click event fires on the canvas.\n *\n * @fires dragover\n * @fires dragenter\n * @fires dragleave\n * @fires drop\n * @fires after:render at the end of the render process, receives the context in the callback\n * @fires before:render at start the render process, receives the context in the callback\n *\n */\n fabric.Canvas = fabric.util.createClass(fabric.StaticCanvas, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * Constructor\n * @param {HTMLElement | String} el <canvas> element to initialize instance on\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(el, options) {\n options || (options = { });\n this.renderAndResetBound = this.renderAndReset.bind(this);\n this.requestRenderAllBound = this.requestRenderAll.bind(this);\n this._initStatic(el, options);\n this._initInteractive();\n this._createCacheCanvas();\n },\n\n /**\n * When true, objects can be transformed by one side (unproportionally)\n * @type Boolean\n * @default\n */\n uniScaleTransform: false,\n\n /**\n * Indicates which key enable unproportional scaling\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled feature disabled.\n * @since 1.6.2\n * @type String\n * @default\n */\n uniScaleKey: 'shiftKey',\n\n /**\n * When true, objects use center point as the origin of scale transformation.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredScaling: false,\n\n /**\n * When true, objects use center point as the origin of rotate transformation.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredRotation: false,\n\n /**\n * Indicates which key enable centered Transform\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled feature disabled.\n * @since 1.6.2\n * @type String\n * @default\n */\n centeredKey: 'altKey',\n\n /**\n * Indicates which key enable alternate action on corner\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled feature disabled.\n * @since 1.6.2\n * @type String\n * @default\n */\n altActionKey: 'shiftKey',\n\n /**\n * Indicates that canvas is interactive. This property should not be changed.\n * @type Boolean\n * @default\n */\n interactive: true,\n\n /**\n * Indicates whether group selection should be enabled\n * @type Boolean\n * @default\n */\n selection: true,\n\n /**\n * Indicates which key or keys enable multiple click selection\n * Pass value as a string or array of strings\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * If `null` or empty or containing any other string that is not a modifier key\n * feature is disabled.\n * @since 1.6.2\n * @type String|Array\n * @default\n */\n selectionKey: 'shiftKey',\n\n /**\n * Indicates which key enable alternative selection\n * in case of target overlapping with active object\n * values: 'altKey', 'shiftKey', 'ctrlKey'.\n * For a series of reason that come from the general expectations on how\n * things should work, this feature works only for preserveObjectStacking true.\n * If `null` or 'none' or any other string that is not a modifier key\n * feature is disabled.\n * @since 1.6.5\n * @type null|String\n * @default\n */\n altSelectionKey: null,\n\n /**\n * Color of selection\n * @type String\n * @default\n */\n selectionColor: 'rgba(100, 100, 255, 0.3)', // blue\n\n /**\n * Default dash array pattern\n * If not empty the selection border is dashed\n * @type Array\n */\n selectionDashArray: [],\n\n /**\n * Color of the border of selection (usually slightly darker than color of selection itself)\n * @type String\n * @default\n */\n selectionBorderColor: 'rgba(255, 255, 255, 0.3)',\n\n /**\n * Width of a line used in object/group selection\n * @type Number\n * @default\n */\n selectionLineWidth: 1,\n\n /**\n * Select only shapes that are fully contained in the dragged selection rectangle.\n * @type Boolean\n * @default\n */\n selectionFullyContained: false,\n\n /**\n * Default cursor value used when hovering over an object on canvas\n * @type String\n * @default\n */\n hoverCursor: 'move',\n\n /**\n * Default cursor value used when moving an object on canvas\n * @type String\n * @default\n */\n moveCursor: 'move',\n\n /**\n * Default cursor value used for the entire canvas\n * @type String\n * @default\n */\n defaultCursor: 'default',\n\n /**\n * Cursor value used during free drawing\n * @type String\n * @default\n */\n freeDrawingCursor: 'crosshair',\n\n /**\n * Cursor value used for rotation point\n * @type String\n * @default\n */\n rotationCursor: 'crosshair',\n\n /**\n * Cursor value used for disabled elements ( corners with disabled action )\n * @type String\n * @since 2.0.0\n * @default\n */\n notAllowedCursor: 'not-allowed',\n\n /**\n * Default element class that's given to wrapper (div) element of canvas\n * @type String\n * @default\n */\n containerClass: 'canvas-container',\n\n /**\n * When true, object detection happens on per-pixel basis rather than on per-bounding-box\n * @type Boolean\n * @default\n */\n perPixelTargetFind: false,\n\n /**\n * Number of pixels around target pixel to tolerate (consider active) during object detection\n * @type Number\n * @default\n */\n targetFindTolerance: 0,\n\n /**\n * When true, target detection is skipped when hovering over canvas. This can be used to improve performance.\n * @type Boolean\n * @default\n */\n skipTargetFind: false,\n\n /**\n * When true, mouse events on canvas (mousedown/mousemove/mouseup) result in free drawing.\n * After mousedown, mousemove creates a shape,\n * and then mouseup finalizes it and adds an instance of `fabric.Path` onto canvas.\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-4#free_drawing}\n * @type Boolean\n * @default\n */\n isDrawingMode: false,\n\n /**\n * Indicates whether objects should remain in current stack position when selected.\n * When false objects are brought to top and rendered as part of the selection group\n * @type Boolean\n * @default\n */\n preserveObjectStacking: false,\n\n /**\n * Indicates the angle that an object will lock to while rotating.\n * @type Number\n * @since 1.6.7\n * @default\n */\n snapAngle: 0,\n\n /**\n * Indicates the distance from the snapAngle the rotation will lock to the snapAngle.\n * When `null`, the snapThreshold will default to the snapAngle.\n * @type null|Number\n * @since 1.6.7\n * @default\n */\n snapThreshold: null,\n\n /**\n * Indicates if the right click on canvas can output the context menu or not\n * @type Boolean\n * @since 1.6.5\n * @default\n */\n stopContextMenu: false,\n\n /**\n * Indicates if the canvas can fire right click events\n * @type Boolean\n * @since 1.6.5\n * @default\n */\n fireRightClick: false,\n\n /**\n * Indicates if the canvas can fire middle click events\n * @type Boolean\n * @since 1.7.8\n * @default\n */\n fireMiddleClick: false,\n\n /**\n * Keep track of the subTargets for Mouse Events\n * @type fabric.Object[]\n */\n targets: [],\n\n /**\n * Keep track of the hovered target\n * @type fabric.Object\n * @private\n */\n _hoveredTarget: null,\n\n /**\n * hold the list of nested targets hovered\n * @type fabric.Object[]\n * @private\n */\n _hoveredTargets: [],\n\n /**\n * @private\n */\n _initInteractive: function() {\n this._currentTransform = null;\n this._groupSelector = null;\n this._initWrapperElement();\n this._createUpperCanvas();\n this._initEventListeners();\n\n this._initRetinaScaling();\n\n this.freeDrawingBrush = fabric.PencilBrush && new fabric.PencilBrush(this);\n\n this.calcOffset();\n },\n\n /**\n * Divides objects in two groups, one to render immediately\n * and one to render as activeGroup.\n * @return {Array} objects to render immediately and pushes the other in the activeGroup.\n */\n _chooseObjectsToRender: function() {\n var activeObjects = this.getActiveObjects(),\n object, objsToRender, activeGroupObjects;\n\n if (activeObjects.length > 0 && !this.preserveObjectStacking) {\n objsToRender = [];\n activeGroupObjects = [];\n for (var i = 0, length = this._objects.length; i < length; i++) {\n object = this._objects[i];\n if (activeObjects.indexOf(object) === -1 ) {\n objsToRender.push(object);\n }\n else {\n activeGroupObjects.push(object);\n }\n }\n if (activeObjects.length > 1) {\n this._activeObject._objects = activeGroupObjects;\n }\n objsToRender.push.apply(objsToRender, activeGroupObjects);\n }\n else {\n objsToRender = this._objects;\n }\n return objsToRender;\n },\n\n /**\n * Renders both the top canvas and the secondary container canvas.\n * @return {fabric.Canvas} instance\n * @chainable\n */\n renderAll: function () {\n if (this.contextTopDirty && !this._groupSelector && !this.isDrawingMode) {\n this.clearContext(this.contextTop);\n this.contextTopDirty = false;\n }\n if (this.hasLostContext) {\n this.renderTopLayer(this.contextTop);\n }\n var canvasToDrawOn = this.contextContainer;\n this.renderCanvas(canvasToDrawOn, this._chooseObjectsToRender());\n return this;\n },\n\n renderTopLayer: function(ctx) {\n ctx.save();\n if (this.isDrawingMode && this._isCurrentlyDrawing) {\n this.freeDrawingBrush && this.freeDrawingBrush._render();\n this.contextTopDirty = true;\n }\n // we render the top context - last object\n if (this.selection && this._groupSelector) {\n this._drawSelection(ctx);\n this.contextTopDirty = true;\n }\n ctx.restore();\n },\n\n /**\n * Method to render only the top canvas.\n * Also used to render the group selection box.\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n renderTop: function () {\n var ctx = this.contextTop;\n this.clearContext(ctx);\n this.renderTopLayer(ctx);\n this.fire('after:render');\n return this;\n },\n\n /**\n * Resets the current transform to its original values and chooses the type of resizing based on the event\n * @private\n */\n _resetCurrentTransform: function() {\n var t = this._currentTransform;\n\n t.target.set({\n scaleX: t.original.scaleX,\n scaleY: t.original.scaleY,\n skewX: t.original.skewX,\n skewY: t.original.skewY,\n left: t.original.left,\n top: t.original.top\n });\n\n if (this._shouldCenterTransform(t.target)) {\n if (t.originX !== 'center') {\n if (t.originX === 'right') {\n t.mouseXSign = -1;\n }\n else {\n t.mouseXSign = 1;\n }\n }\n if (t.originY !== 'center') {\n if (t.originY === 'bottom') {\n t.mouseYSign = -1;\n }\n else {\n t.mouseYSign = 1;\n }\n }\n\n t.originX = 'center';\n t.originY = 'center';\n }\n else {\n t.originX = t.original.originX;\n t.originY = t.original.originY;\n }\n },\n\n /**\n * Checks if point is contained within an area of given object\n * @param {Event} e Event object\n * @param {fabric.Object} target Object to test against\n * @param {Object} [point] x,y object of point coordinates we want to check.\n * @return {Boolean} true if point is contained within an area of given object\n */\n containsPoint: function (e, target, point) {\n var ignoreZoom = true,\n pointer = point || this.getPointer(e, ignoreZoom),\n xy;\n\n if (target.group && target.group === this._activeObject && target.group.type === 'activeSelection') {\n xy = this._normalizePointer(target.group, pointer);\n }\n else {\n xy = { x: pointer.x, y: pointer.y };\n }\n // http://www.geog.ubc.ca/courses/klink/gis.notes/ncgia/u32.html\n // http://idav.ucdavis.edu/~okreylos/TAship/Spring2000/PointInPolygon.html\n return (target.containsPoint(xy) || target._findTargetCorner(pointer));\n },\n\n /**\n * @private\n */\n _normalizePointer: function (object, pointer) {\n var m = object.calcTransformMatrix(),\n invertedM = fabric.util.invertTransform(m),\n vptPointer = this.restorePointerVpt(pointer);\n return fabric.util.transformPoint(vptPointer, invertedM);\n },\n\n /**\n * Returns true if object is transparent at a certain location\n * @param {fabric.Object} target Object to check\n * @param {Number} x Left coordinate\n * @param {Number} y Top coordinate\n * @return {Boolean}\n */\n isTargetTransparent: function (target, x, y) {\n // in case the target is the activeObject, we cannot execute this optimization\n // because we need to draw controls too.\n if (target.shouldCache() && target._cacheCanvas && target !== this._activeObject) {\n var normalizedPointer = this._normalizePointer(target, {x: x, y: y}),\n targetRelativeX = Math.max(target.cacheTranslationX + (normalizedPointer.x * target.zoomX), 0),\n targetRelativeY = Math.max(target.cacheTranslationY + (normalizedPointer.y * target.zoomY), 0);\n\n var isTransparent = fabric.util.isTransparent(\n target._cacheContext, Math.round(targetRelativeX), Math.round(targetRelativeY), this.targetFindTolerance);\n\n return isTransparent;\n }\n\n var ctx = this.contextCache,\n originalColor = target.selectionBackgroundColor, v = this.viewportTransform;\n\n target.selectionBackgroundColor = '';\n\n this.clearContext(ctx);\n\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n target.render(ctx);\n ctx.restore();\n\n target === this._activeObject && target._renderControls(ctx, {\n hasBorders: false,\n transparentCorners: false\n }, {\n hasBorders: false,\n });\n\n target.selectionBackgroundColor = originalColor;\n\n var isTransparent = fabric.util.isTransparent(\n ctx, x, y, this.targetFindTolerance);\n\n return isTransparent;\n },\n\n /**\n * takes an event and determins if selection key has been pressed\n * @private\n * @param {Event} e Event object\n */\n _isSelectionKeyPressed: function(e) {\n var selectionKeyPressed = false;\n\n if (Object.prototype.toString.call(this.selectionKey) === '[object Array]') {\n selectionKeyPressed = !!this.selectionKey.find(function(key) { return e[key] === true; });\n }\n else {\n selectionKeyPressed = e[this.selectionKey];\n }\n\n return selectionKeyPressed;\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _shouldClearSelection: function (e, target) {\n var activeObjects = this.getActiveObjects(),\n activeObject = this._activeObject;\n\n return (\n !target\n ||\n (target &&\n activeObject &&\n activeObjects.length > 1 &&\n activeObjects.indexOf(target) === -1 &&\n activeObject !== target &&\n !this._isSelectionKeyPressed(e))\n ||\n (target && !target.evented)\n ||\n (target &&\n !target.selectable &&\n activeObject &&\n activeObject !== target)\n );\n },\n\n /**\n * centeredScaling from object can't override centeredScaling from canvas.\n * this should be fixed, since object setting should take precedence over canvas.\n * @private\n * @param {fabric.Object} target\n */\n _shouldCenterTransform: function (target) {\n if (!target) {\n return;\n }\n\n var t = this._currentTransform,\n centerTransform;\n\n if (t.action === 'scale' || t.action === 'scaleX' || t.action === 'scaleY') {\n centerTransform = this.centeredScaling || target.centeredScaling;\n }\n else if (t.action === 'rotate') {\n centerTransform = this.centeredRotation || target.centeredRotation;\n }\n\n return centerTransform ? !t.altKey : t.altKey;\n },\n\n /**\n * @private\n */\n _getOriginFromCorner: function(target, corner) {\n var origin = {\n x: target.originX,\n y: target.originY\n };\n\n if (corner === 'ml' || corner === 'tl' || corner === 'bl') {\n origin.x = 'right';\n }\n else if (corner === 'mr' || corner === 'tr' || corner === 'br') {\n origin.x = 'left';\n }\n\n if (corner === 'tl' || corner === 'mt' || corner === 'tr') {\n origin.y = 'bottom';\n }\n else if (corner === 'bl' || corner === 'mb' || corner === 'br') {\n origin.y = 'top';\n }\n\n return origin;\n },\n\n /**\n * @private\n * @param {Boolean} alreadySelected true if target is already selected\n * @param {String} corner a string representing the corner ml, mr, tl ...\n * @param {Event} e Event object\n * @param {fabric.Object} [target] inserted back to help overriding. Unused\n */\n _getActionFromCorner: function(alreadySelected, corner, e /* target */) {\n if (!corner || !alreadySelected) {\n return 'drag';\n }\n\n switch (corner) {\n case 'mtr':\n return 'rotate';\n case 'ml':\n case 'mr':\n return e[this.altActionKey] ? 'skewY' : 'scaleX';\n case 'mt':\n case 'mb':\n return e[this.altActionKey] ? 'skewX' : 'scaleY';\n default:\n return 'scale';\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _setupCurrentTransform: function (e, target, alreadySelected) {\n if (!target) {\n return;\n }\n\n var pointer = this.getPointer(e),\n corner = target._findTargetCorner(this.getPointer(e, true)),\n action = this._getActionFromCorner(alreadySelected, corner, e, target),\n origin = this._getOriginFromCorner(target, corner);\n\n this._currentTransform = {\n target: target,\n action: action,\n corner: corner,\n scaleX: target.scaleX,\n scaleY: target.scaleY,\n skewX: target.skewX,\n skewY: target.skewY,\n // used by transation\n offsetX: pointer.x - target.left,\n offsetY: pointer.y - target.top,\n originX: origin.x,\n originY: origin.y,\n ex: pointer.x,\n ey: pointer.y,\n lastX: pointer.x,\n lastY: pointer.y,\n // unsure they are usefull anymore.\n // left: target.left,\n // top: target.top,\n theta: degreesToRadians(target.angle),\n // end of unsure\n width: target.width * target.scaleX,\n mouseXSign: 1,\n mouseYSign: 1,\n shiftKey: e.shiftKey,\n altKey: e[this.centeredKey],\n original: fabric.util.saveObjectTransform(target),\n };\n\n this._currentTransform.original.originX = origin.x;\n this._currentTransform.original.originY = origin.y;\n\n this._resetCurrentTransform();\n this._beforeTransform(e);\n },\n\n /**\n * Translates object by \"setting\" its left/top\n * @private\n * @param {Number} x pointer's x coordinate\n * @param {Number} y pointer's y coordinate\n * @return {Boolean} true if the translation occurred\n */\n _translateObject: function (x, y) {\n var transform = this._currentTransform,\n target = transform.target,\n newLeft = x - transform.offsetX,\n newTop = y - transform.offsetY,\n moveX = !target.get('lockMovementX') && target.left !== newLeft,\n moveY = !target.get('lockMovementY') && target.top !== newTop;\n\n moveX && target.set('left', newLeft);\n moveY && target.set('top', newTop);\n return moveX || moveY;\n },\n\n /**\n * Check if we are increasing a positive skew or lower it,\n * checking mouse direction and pressed corner.\n * @private\n */\n _changeSkewTransformOrigin: function(mouseMove, t, by) {\n var property = 'originX', origins = { 0: 'center' },\n skew = t.target.skewX, originA = 'left', originB = 'right',\n corner = t.corner === 'mt' || t.corner === 'ml' ? 1 : -1,\n flipSign = 1;\n\n mouseMove = mouseMove > 0 ? 1 : -1;\n if (by === 'y') {\n skew = t.target.skewY;\n originA = 'top';\n originB = 'bottom';\n property = 'originY';\n }\n origins[-1] = originA;\n origins[1] = originB;\n\n t.target.flipX && (flipSign *= -1);\n t.target.flipY && (flipSign *= -1);\n\n if (skew === 0) {\n t.skewSign = -corner * mouseMove * flipSign;\n t[property] = origins[-mouseMove];\n }\n else {\n skew = skew > 0 ? 1 : -1;\n t.skewSign = skew;\n t[property] = origins[skew * corner * flipSign];\n }\n },\n\n /**\n * Skew object by mouse events\n * @private\n * @param {Number} x pointer's x coordinate\n * @param {Number} y pointer's y coordinate\n * @param {String} by Either 'x' or 'y'\n * @return {Boolean} true if the skewing occurred\n */\n _skewObject: function (x, y, by) {\n var t = this._currentTransform,\n target = t.target, skewed = false,\n lockSkewingX = target.get('lockSkewingX'),\n lockSkewingY = target.get('lockSkewingY');\n\n if ((lockSkewingX && by === 'x') || (lockSkewingY && by === 'y')) {\n return false;\n }\n\n // Get the constraint point\n var center = target.getCenterPoint(),\n actualMouseByCenter = target.toLocalPoint(new fabric.Point(x, y), 'center', 'center')[by],\n lastMouseByCenter = target.toLocalPoint(new fabric.Point(t.lastX, t.lastY), 'center', 'center')[by],\n actualMouseByOrigin, constraintPosition, dim = target._getTransformedDimensions();\n\n this._changeSkewTransformOrigin(actualMouseByCenter - lastMouseByCenter, t, by);\n actualMouseByOrigin = target.toLocalPoint(new fabric.Point(x, y), t.originX, t.originY)[by];\n constraintPosition = target.translateToOriginPoint(center, t.originX, t.originY);\n // Actually skew the object\n skewed = this._setObjectSkew(actualMouseByOrigin, t, by, dim);\n t.lastX = x;\n t.lastY = y;\n // Make sure the constraints apply\n target.setPositionByOrigin(constraintPosition, t.originX, t.originY);\n return skewed;\n },\n\n /**\n * Set object skew\n * @private\n * @return {Boolean} true if the skewing occurred\n */\n _setObjectSkew: function(localMouse, transform, by, _dim) {\n var target = transform.target, newValue, skewed = false,\n skewSign = transform.skewSign, newDim, dimNoSkew,\n otherBy, _otherBy, _by, newDimMouse, skewX, skewY;\n\n if (by === 'x') {\n otherBy = 'y';\n _otherBy = 'Y';\n _by = 'X';\n skewX = 0;\n skewY = target.skewY;\n }\n else {\n otherBy = 'x';\n _otherBy = 'X';\n _by = 'Y';\n skewX = target.skewX;\n skewY = 0;\n }\n\n dimNoSkew = target._getTransformedDimensions(skewX, skewY);\n newDimMouse = 2 * Math.abs(localMouse) - dimNoSkew[by];\n if (newDimMouse <= 2) {\n newValue = 0;\n }\n else {\n newValue = skewSign * Math.atan((newDimMouse / target['scale' + _by]) /\n (dimNoSkew[otherBy] / target['scale' + _otherBy]));\n newValue = fabric.util.radiansToDegrees(newValue);\n }\n skewed = target['skew' + _by] !== newValue;\n target.set('skew' + _by, newValue);\n if (target['skew' + _otherBy] !== 0) {\n newDim = target._getTransformedDimensions();\n newValue = (_dim[otherBy] / newDim[otherBy]) * target['scale' + _otherBy];\n target.set('scale' + _otherBy, newValue);\n }\n return skewed;\n },\n\n /**\n * Scales object by invoking its scaleX/scaleY methods\n * @private\n * @param {Number} x pointer's x coordinate\n * @param {Number} y pointer's y coordinate\n * @param {String} by Either 'x' or 'y' - specifies dimension constraint by which to scale an object.\n * When not provided, an object is scaled by both dimensions equally\n * @return {Boolean} true if the scaling occurred\n */\n _scaleObject: function (x, y, by) {\n var t = this._currentTransform,\n target = t.target,\n lockScalingX = target.lockScalingX,\n lockScalingY = target.lockScalingY,\n lockScalingFlip = target.lockScalingFlip;\n\n if (lockScalingX && lockScalingY) {\n return false;\n }\n\n // Get the constraint point\n var constraintPosition = target.translateToOriginPoint(target.getCenterPoint(), t.originX, t.originY),\n localMouse = target.toLocalPoint(new fabric.Point(x, y), t.originX, t.originY),\n dim = target._getTransformedDimensions(), scaled = false;\n\n this._setLocalMouse(localMouse, t);\n\n // Actually scale the object\n scaled = this._setObjectScale(localMouse, t, lockScalingX, lockScalingY, by, lockScalingFlip, dim);\n\n // Make sure the constraints apply\n target.setPositionByOrigin(constraintPosition, t.originX, t.originY);\n return scaled;\n },\n\n /**\n * @private\n * @return {Boolean} true if the scaling occurred\n */\n _setObjectScale: function(localMouse, transform, lockScalingX, lockScalingY, by, lockScalingFlip, _dim) {\n var target = transform.target, forbidScalingX = false, forbidScalingY = false, scaled = false,\n scaleX = localMouse.x * target.scaleX / _dim.x,\n scaleY = localMouse.y * target.scaleY / _dim.y,\n changeX = target.scaleX !== scaleX,\n changeY = target.scaleY !== scaleY;\n\n transform.newScaleX = scaleX;\n transform.newScaleY = scaleY;\n if (fabric.Textbox && by === 'x' && target instanceof fabric.Textbox) {\n var w = target.width * (localMouse.x / _dim.x);\n if (w >= target.getMinWidth()) {\n scaled = w !== target.width;\n target.set('width', w);\n return scaled;\n }\n return false;\n }\n\n if (lockScalingFlip && scaleX <= 0 && scaleX < target.scaleX) {\n forbidScalingX = true;\n localMouse.x = 0;\n }\n\n if (lockScalingFlip && scaleY <= 0 && scaleY < target.scaleY) {\n forbidScalingY = true;\n localMouse.y = 0;\n }\n\n if (by === 'equally' && !lockScalingX && !lockScalingY) {\n scaled = this._scaleObjectEqually(localMouse, target, transform, _dim);\n }\n else if (!by) {\n forbidScalingX || lockScalingX || (target.set('scaleX', scaleX) && (scaled = scaled || changeX));\n forbidScalingY || lockScalingY || (target.set('scaleY', scaleY) && (scaled = scaled || changeY));\n }\n else if (by === 'x' && !target.get('lockUniScaling')) {\n forbidScalingX || lockScalingX || (target.set('scaleX', scaleX) && (scaled = changeX));\n }\n else if (by === 'y' && !target.get('lockUniScaling')) {\n forbidScalingY || lockScalingY || (target.set('scaleY', scaleY) && (scaled = changeY));\n }\n forbidScalingX || forbidScalingY || this._flipObject(transform, by);\n return scaled;\n },\n\n /**\n * @private\n * @return {Boolean} true if the scaling occurred\n */\n _scaleObjectEqually: function(localMouse, target, transform, _dim) {\n\n var dist = localMouse.y + localMouse.x,\n lastDist = _dim.y * transform.original.scaleY / target.scaleY +\n _dim.x * transform.original.scaleX / target.scaleX,\n scaled, signX = localMouse.x < 0 ? -1 : 1,\n signY = localMouse.y < 0 ? -1 : 1, newScaleX, newScaleY;\n\n // We use transform.scaleX/Y instead of target.scaleX/Y\n // because the object may have a min scale and we'll loose the proportions\n newScaleX = signX * Math.abs(transform.original.scaleX * dist / lastDist);\n newScaleY = signY * Math.abs(transform.original.scaleY * dist / lastDist);\n scaled = newScaleX !== target.scaleX || newScaleY !== target.scaleY;\n target.set('scaleX', newScaleX);\n target.set('scaleY', newScaleY);\n return scaled;\n },\n\n /**\n * @private\n */\n _flipObject: function(transform, by) {\n if (transform.newScaleX < 0 && by !== 'y') {\n if (transform.originX === 'left') {\n transform.originX = 'right';\n }\n else if (transform.originX === 'right') {\n transform.originX = 'left';\n }\n }\n\n if (transform.newScaleY < 0 && by !== 'x') {\n if (transform.originY === 'top') {\n transform.originY = 'bottom';\n }\n else if (transform.originY === 'bottom') {\n transform.originY = 'top';\n }\n }\n },\n\n /**\n * @private\n */\n _setLocalMouse: function(localMouse, t) {\n var target = t.target, zoom = this.getZoom(),\n padding = target.padding / zoom;\n\n if (t.originX === 'right') {\n localMouse.x *= -1;\n }\n else if (t.originX === 'center') {\n localMouse.x *= t.mouseXSign * 2;\n if (localMouse.x < 0) {\n t.mouseXSign = -t.mouseXSign;\n }\n }\n\n if (t.originY === 'bottom') {\n localMouse.y *= -1;\n }\n else if (t.originY === 'center') {\n localMouse.y *= t.mouseYSign * 2;\n if (localMouse.y < 0) {\n t.mouseYSign = -t.mouseYSign;\n }\n }\n\n // adjust the mouse coordinates when dealing with padding\n if (abs(localMouse.x) > padding) {\n if (localMouse.x < 0) {\n localMouse.x += padding;\n }\n else {\n localMouse.x -= padding;\n }\n }\n else { // mouse is within the padding, set to 0\n localMouse.x = 0;\n }\n\n if (abs(localMouse.y) > padding) {\n if (localMouse.y < 0) {\n localMouse.y += padding;\n }\n else {\n localMouse.y -= padding;\n }\n }\n else {\n localMouse.y = 0;\n }\n },\n\n /**\n * Rotates object by invoking its rotate method\n * @private\n * @param {Number} x pointer's x coordinate\n * @param {Number} y pointer's y coordinate\n * @return {Boolean} true if the rotation occurred\n */\n _rotateObject: function (x, y) {\n\n var t = this._currentTransform,\n target = t.target, constraintPosition,\n constraintPosition = target.translateToOriginPoint(target.getCenterPoint(), t.originX, t.originY);\n\n if (target.lockRotation) {\n return false;\n }\n\n var lastAngle = atan2(t.ey - constraintPosition.y, t.ex - constraintPosition.x),\n curAngle = atan2(y - constraintPosition.y, x - constraintPosition.x),\n angle = radiansToDegrees(curAngle - lastAngle + t.theta),\n hasRotated = true;\n\n if (target.snapAngle > 0) {\n var snapAngle = target.snapAngle,\n snapThreshold = target.snapThreshold || snapAngle,\n rightAngleLocked = Math.ceil(angle / snapAngle) * snapAngle,\n leftAngleLocked = Math.floor(angle / snapAngle) * snapAngle;\n\n if (Math.abs(angle - leftAngleLocked) < snapThreshold) {\n angle = leftAngleLocked;\n }\n else if (Math.abs(angle - rightAngleLocked) < snapThreshold) {\n angle = rightAngleLocked;\n }\n }\n\n // normalize angle to positive value\n if (angle < 0) {\n angle = 360 + angle;\n }\n angle %= 360;\n\n if (target.angle === angle) {\n hasRotated = false;\n }\n else {\n // rotation only happen here\n target.angle = angle;\n // Make sure the constraints apply\n target.setPositionByOrigin(constraintPosition, t.originX, t.originY);\n }\n\n return hasRotated;\n },\n\n /**\n * Set the cursor type of the canvas element\n * @param {String} value Cursor type of the canvas element.\n * @see http://www.w3.org/TR/css3-ui/#cursor\n */\n setCursor: function (value) {\n this.upperCanvasEl.style.cursor = value;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx to draw the selection on\n */\n _drawSelection: function (ctx) {\n var groupSelector = this._groupSelector,\n left = groupSelector.left,\n top = groupSelector.top,\n aleft = abs(left),\n atop = abs(top);\n\n if (this.selectionColor) {\n ctx.fillStyle = this.selectionColor;\n\n ctx.fillRect(\n groupSelector.ex - ((left > 0) ? 0 : -left),\n groupSelector.ey - ((top > 0) ? 0 : -top),\n aleft,\n atop\n );\n }\n\n if (!this.selectionLineWidth || !this.selectionBorderColor) {\n return;\n }\n ctx.lineWidth = this.selectionLineWidth;\n ctx.strokeStyle = this.selectionBorderColor;\n\n // selection border\n if (this.selectionDashArray.length > 1 && !supportLineDash) {\n\n var px = groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0 : aleft),\n py = groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0 : atop);\n\n ctx.beginPath();\n\n fabric.util.drawDashedLine(ctx, px, py, px + aleft, py, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px, py + atop - 1, px + aleft, py + atop - 1, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px, py, px, py + atop, this.selectionDashArray);\n fabric.util.drawDashedLine(ctx, px + aleft - 1, py, px + aleft - 1, py + atop, this.selectionDashArray);\n\n ctx.closePath();\n ctx.stroke();\n }\n else {\n fabric.Object.prototype._setLineDash.call(this, ctx, this.selectionDashArray);\n ctx.strokeRect(\n groupSelector.ex + STROKE_OFFSET - ((left > 0) ? 0 : aleft),\n groupSelector.ey + STROKE_OFFSET - ((top > 0) ? 0 : atop),\n aleft,\n atop\n );\n }\n },\n\n /**\n * Method that determines what object we are clicking on\n * the skipGroup parameter is for internal use, is needed for shift+click action\n * 11/09/2018 TODO: would be cool if findTarget could discern between being a full target\n * or the outside part of the corner.\n * @param {Event} e mouse event\n * @param {Boolean} skipGroup when true, activeGroup is skipped and only objects are traversed through\n * @return {fabric.Object} the target found\n */\n findTarget: function (e, skipGroup) {\n if (this.skipTargetFind) {\n return;\n }\n\n var ignoreZoom = true,\n pointer = this.getPointer(e, ignoreZoom),\n activeObject = this._activeObject,\n aObjects = this.getActiveObjects(),\n activeTarget, activeTargetSubs;\n\n // first check current group (if one exists)\n // active group does not check sub targets like normal groups.\n // if active group just exits.\n this.targets = [];\n\n if (aObjects.length > 1 && !skipGroup && activeObject === this._searchPossibleTargets([activeObject], pointer)) {\n return activeObject;\n }\n // if we hit the corner of an activeObject, let's return that.\n if (aObjects.length === 1 && activeObject._findTargetCorner(pointer)) {\n return activeObject;\n }\n if (aObjects.length === 1 &&\n activeObject === this._searchPossibleTargets([activeObject], pointer)) {\n if (!this.preserveObjectStacking) {\n return activeObject;\n }\n else {\n activeTarget = activeObject;\n activeTargetSubs = this.targets;\n this.targets = [];\n }\n }\n var target = this._searchPossibleTargets(this._objects, pointer);\n if (e[this.altSelectionKey] && target && activeTarget && target !== activeTarget) {\n target = activeTarget;\n this.targets = activeTargetSubs;\n }\n return target;\n },\n\n /**\n * Checks point is inside the object.\n * @param {Object} [pointer] x,y object of point coordinates we want to check.\n * @param {fabric.Object} obj Object to test against\n * @param {Object} [globalPointer] x,y object of point coordinates relative to canvas used to search per pixel target.\n * @return {Boolean} true if point is contained within an area of given object\n * @private\n */\n _checkTarget: function(pointer, obj, globalPointer) {\n if (obj &&\n obj.visible &&\n obj.evented &&\n this.containsPoint(null, obj, pointer)){\n if ((this.perPixelTargetFind || obj.perPixelTargetFind) && !obj.isEditing) {\n var isTransparent = this.isTargetTransparent(obj, globalPointer.x, globalPointer.y);\n if (!isTransparent) {\n return true;\n }\n }\n else {\n return true;\n }\n }\n },\n\n /**\n * Function used to search inside objects an object that contains pointer in bounding box or that contains pointerOnCanvas when painted\n * @param {Array} [objects] objects array to look into\n * @param {Object} [pointer] x,y object of point coordinates we want to check.\n * @return {fabric.Object} object that contains pointer\n * @private\n */\n _searchPossibleTargets: function(objects, pointer) {\n // Cache all targets where their bounding box contains point.\n var target, i = objects.length, subTarget;\n // Do not check for currently grouped objects, since we check the parent group itself.\n // until we call this function specifically to search inside the activeGroup\n while (i--) {\n var objToCheck = objects[i];\n var pointerToUse = objToCheck.group && objToCheck.group.type !== 'activeSelection' ?\n this._normalizePointer(objToCheck.group, pointer) : pointer;\n if (this._checkTarget(pointerToUse, objToCheck, pointer)) {\n target = objects[i];\n if (target.subTargetCheck && target instanceof fabric.Group) {\n subTarget = this._searchPossibleTargets(target._objects, pointer);\n subTarget && this.targets.push(subTarget);\n }\n break;\n }\n }\n return target;\n },\n\n /**\n * Returns pointer coordinates without the effect of the viewport\n * @param {Object} pointer with \"x\" and \"y\" number values\n * @return {Object} object with \"x\" and \"y\" number values\n */\n restorePointerVpt: function(pointer) {\n return fabric.util.transformPoint(\n pointer,\n fabric.util.invertTransform(this.viewportTransform)\n );\n },\n\n /**\n * Returns pointer coordinates relative to canvas.\n * Can return coordinates with or without viewportTransform.\n * ignoreZoom false gives back coordinates that represent\n * the point clicked on canvas element.\n * ignoreZoom true gives back coordinates after being processed\n * by the viewportTransform ( sort of coordinates of what is displayed\n * on the canvas where you are clicking.\n * ignoreZoom true = HTMLElement coordinates relative to top,left\n * ignoreZoom false, default = fabric space coordinates, the same used for shape position\n * To interact with your shapes top and left you want to use ignoreZoom true\n * most of the time, while ignoreZoom false will give you coordinates\n * compatible with the object.oCoords system.\n * of the time.\n * @param {Event} e\n * @param {Boolean} ignoreZoom\n * @return {Object} object with \"x\" and \"y\" number values\n */\n getPointer: function (e, ignoreZoom) {\n // return cached values if we are in the event processing chain\n if (this._absolutePointer && !ignoreZoom) {\n return this._absolutePointer;\n }\n if (this._pointer && ignoreZoom) {\n return this._pointer;\n }\n\n var pointer = getPointer(e),\n upperCanvasEl = this.upperCanvasEl,\n bounds = upperCanvasEl.getBoundingClientRect(),\n boundsWidth = bounds.width || 0,\n boundsHeight = bounds.height || 0,\n cssScale;\n\n if (!boundsWidth || !boundsHeight ) {\n if ('top' in bounds && 'bottom' in bounds) {\n boundsHeight = Math.abs( bounds.top - bounds.bottom );\n }\n if ('right' in bounds && 'left' in bounds) {\n boundsWidth = Math.abs( bounds.right - bounds.left );\n }\n }\n\n this.calcOffset();\n pointer.x = pointer.x - this._offset.left;\n pointer.y = pointer.y - this._offset.top;\n if (!ignoreZoom) {\n pointer = this.restorePointerVpt(pointer);\n }\n\n var retinaScaling = this.getRetinaScaling();\n if (retinaScaling !== 1) {\n pointer.x /= retinaScaling;\n pointer.y /= retinaScaling;\n }\n\n if (boundsWidth === 0 || boundsHeight === 0) {\n // If bounds are not available (i.e. not visible), do not apply scale.\n cssScale = { width: 1, height: 1 };\n }\n else {\n cssScale = {\n width: upperCanvasEl.width / boundsWidth,\n height: upperCanvasEl.height / boundsHeight\n };\n }\n\n return {\n x: pointer.x * cssScale.width,\n y: pointer.y * cssScale.height\n };\n },\n\n /**\n * @private\n * @throws {CANVAS_INIT_ERROR} If canvas can not be initialized\n */\n _createUpperCanvas: function () {\n var lowerCanvasClass = this.lowerCanvasEl.className.replace(/\\s*lower-canvas\\s*/, ''),\n lowerCanvasEl = this.lowerCanvasEl, upperCanvasEl = this.upperCanvasEl;\n\n // there is no need to create a new upperCanvas element if we have already one.\n if (upperCanvasEl) {\n upperCanvasEl.className = '';\n }\n else {\n upperCanvasEl = this._createCanvasElement();\n this.upperCanvasEl = upperCanvasEl;\n }\n fabric.util.addClass(upperCanvasEl, 'upper-canvas ' + lowerCanvasClass);\n\n this.wrapperEl.appendChild(upperCanvasEl);\n\n this._copyCanvasStyle(lowerCanvasEl, upperCanvasEl);\n this._applyCanvasStyle(upperCanvasEl);\n this.contextTop = upperCanvasEl.getContext('2d');\n },\n\n /**\n * @private\n */\n _createCacheCanvas: function () {\n this.cacheCanvasEl = this._createCanvasElement();\n this.cacheCanvasEl.setAttribute('width', this.width);\n this.cacheCanvasEl.setAttribute('height', this.height);\n this.contextCache = this.cacheCanvasEl.getContext('2d');\n },\n\n /**\n * @private\n */\n _initWrapperElement: function () {\n this.wrapperEl = fabric.util.wrapElement(this.lowerCanvasEl, 'div', {\n 'class': this.containerClass\n });\n fabric.util.setStyle(this.wrapperEl, {\n width: this.width + 'px',\n height: this.height + 'px',\n position: 'relative'\n });\n fabric.util.makeElementUnselectable(this.wrapperEl);\n },\n\n /**\n * @private\n * @param {HTMLElement} element canvas element to apply styles on\n */\n _applyCanvasStyle: function (element) {\n var width = this.width || element.width,\n height = this.height || element.height;\n\n fabric.util.setStyle(element, {\n position: 'absolute',\n width: width + 'px',\n height: height + 'px',\n left: 0,\n top: 0,\n 'touch-action': this.allowTouchScrolling ? 'manipulation' : 'none',\n '-ms-touch-action': this.allowTouchScrolling ? 'manipulation' : 'none'\n });\n element.width = width;\n element.height = height;\n fabric.util.makeElementUnselectable(element);\n },\n\n /**\n * Copy the entire inline style from one element (fromEl) to another (toEl)\n * @private\n * @param {Element} fromEl Element style is copied from\n * @param {Element} toEl Element copied style is applied to\n */\n _copyCanvasStyle: function (fromEl, toEl) {\n toEl.style.cssText = fromEl.style.cssText;\n },\n\n /**\n * Returns context of canvas where object selection is drawn\n * @return {CanvasRenderingContext2D}\n */\n getSelectionContext: function() {\n return this.contextTop;\n },\n\n /**\n * Returns <canvas> element on which object selection is drawn\n * @return {HTMLCanvasElement}\n */\n getSelectionElement: function () {\n return this.upperCanvasEl;\n },\n\n /**\n * Returns currently active object\n * @return {fabric.Object} active object\n */\n getActiveObject: function () {\n return this._activeObject;\n },\n\n /**\n * Returns an array with the current selected objects\n * @return {fabric.Object} active object\n */\n getActiveObjects: function () {\n var active = this._activeObject;\n if (active) {\n if (active.type === 'activeSelection' && active._objects) {\n return active._objects.slice(0);\n }\n else {\n return [active];\n }\n }\n return [];\n },\n\n /**\n * @private\n * @param {fabric.Object} obj Object that was removed\n */\n _onObjectRemoved: function(obj) {\n // removing active object should fire \"selection:cleared\" events\n if (obj === this._activeObject) {\n this.fire('before:selection:cleared', { target: obj });\n this._discardActiveObject();\n this.fire('selection:cleared', { target: obj });\n obj.fire('deselected');\n }\n if (obj === this._hoveredTarget){\n this._hoveredTarget = null;\n this._hoveredTargets = [];\n }\n this.callSuper('_onObjectRemoved', obj);\n },\n\n /**\n * @private\n * Compares the old activeObject with the current one and fires correct events\n * @param {fabric.Object} obj old activeObject\n */\n _fireSelectionEvents: function(oldObjects, e) {\n var somethingChanged = false, objects = this.getActiveObjects(),\n added = [], removed = [], opt = { e: e };\n oldObjects.forEach(function(oldObject) {\n if (objects.indexOf(oldObject) === -1) {\n somethingChanged = true;\n oldObject.fire('deselected', opt);\n removed.push(oldObject);\n }\n });\n objects.forEach(function(object) {\n if (oldObjects.indexOf(object) === -1) {\n somethingChanged = true;\n object.fire('selected', opt);\n added.push(object);\n }\n });\n if (oldObjects.length > 0 && objects.length > 0) {\n opt.selected = added;\n opt.deselected = removed;\n // added for backward compatibility\n opt.updated = added[0] || removed[0];\n opt.target = this._activeObject;\n somethingChanged && this.fire('selection:updated', opt);\n }\n else if (objects.length > 0) {\n // deprecated event\n if (objects.length === 1) {\n opt.target = added[0];\n this.fire('object:selected', opt);\n }\n opt.selected = added;\n // added for backward compatibility\n opt.target = this._activeObject;\n this.fire('selection:created', opt);\n }\n else if (oldObjects.length > 0) {\n opt.deselected = removed;\n this.fire('selection:cleared', opt);\n }\n },\n\n /**\n * Sets given object as the only active object on canvas\n * @param {fabric.Object} object Object to set as an active one\n * @param {Event} [e] Event (passed along when firing \"object:selected\")\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n setActiveObject: function (object, e) {\n var currentActives = this.getActiveObjects();\n this._setActiveObject(object, e);\n this._fireSelectionEvents(currentActives, e);\n return this;\n },\n\n /**\n * @private\n * @param {Object} object to set as active\n * @param {Event} [e] Event (passed along when firing \"object:selected\")\n * @return {Boolean} true if the selection happened\n */\n _setActiveObject: function(object, e) {\n if (this._activeObject === object) {\n return false;\n }\n if (!this._discardActiveObject(e, object)) {\n return false;\n }\n if (object.onSelect({ e: e })) {\n return false;\n }\n this._activeObject = object;\n return true;\n },\n\n /**\n * @private\n */\n _discardActiveObject: function(e, object) {\n var obj = this._activeObject;\n if (obj) {\n // onDeselect return TRUE to cancel selection;\n if (obj.onDeselect({ e: e, object: object })) {\n return false;\n }\n this._activeObject = null;\n }\n return true;\n },\n\n /**\n * Discards currently active object and fire events. If the function is called by fabric\n * as a consequence of a mouse event, the event is passed as a parameter and\n * sent to the fire function for the custom events. When used as a method the\n * e param does not have any application.\n * @param {event} e\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n discardActiveObject: function (e) {\n var currentActives = this.getActiveObjects(), activeObject = this.getActiveObject();\n if (currentActives.length) {\n this.fire('before:selection:cleared', { target: activeObject, e: e });\n }\n this._discardActiveObject(e);\n this._fireSelectionEvents(currentActives, e);\n return this;\n },\n\n /**\n * Clears a canvas element and removes all event listeners\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n dispose: function () {\n var wrapper = this.wrapperEl;\n this.removeListeners();\n wrapper.removeChild(this.upperCanvasEl);\n wrapper.removeChild(this.lowerCanvasEl);\n this.contextCache = null;\n this.contextTop = null;\n ['upperCanvasEl', 'cacheCanvasEl'].forEach((function(element) {\n fabric.util.cleanUpJsdomNode(this[element]);\n this[element] = undefined;\n }).bind(this));\n if (wrapper.parentNode) {\n wrapper.parentNode.replaceChild(this.lowerCanvasEl, this.wrapperEl);\n }\n delete this.wrapperEl;\n fabric.StaticCanvas.prototype.dispose.call(this);\n return this;\n },\n\n /**\n * Clears all contexts (background, main, top) of an instance\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n clear: function () {\n // this.discardActiveGroup();\n this.discardActiveObject();\n this.clearContext(this.contextTop);\n return this.callSuper('clear');\n },\n\n /**\n * Draws objects' controls (borders/controls)\n * @param {CanvasRenderingContext2D} ctx Context to render controls on\n */\n drawControls: function(ctx) {\n var activeObject = this._activeObject;\n\n if (activeObject) {\n activeObject._renderControls(ctx);\n }\n },\n\n /**\n * @private\n */\n _toObject: function(instance, methodName, propertiesToInclude) {\n //If the object is part of the current selection group, it should\n //be transformed appropriately\n //i.e. it should be serialised as it would appear if the selection group\n //were to be destroyed.\n var originalProperties = this._realizeGroupTransformOnObject(instance),\n object = this.callSuper('_toObject', instance, methodName, propertiesToInclude);\n //Undo the damage we did by changing all of its properties\n this._unwindGroupTransformOnObject(instance, originalProperties);\n return object;\n },\n\n /**\n * Realises an object's group transformation on it\n * @private\n * @param {fabric.Object} [instance] the object to transform (gets mutated)\n * @returns the original values of instance which were changed\n */\n _realizeGroupTransformOnObject: function(instance) {\n if (instance.group && instance.group.type === 'activeSelection' && this._activeObject === instance.group) {\n var layoutProps = ['angle', 'flipX', 'flipY', 'left', 'scaleX', 'scaleY', 'skewX', 'skewY', 'top'];\n //Copy all the positionally relevant properties across now\n var originalValues = {};\n layoutProps.forEach(function(prop) {\n originalValues[prop] = instance[prop];\n });\n this._activeObject.realizeTransform(instance);\n return originalValues;\n }\n else {\n return null;\n }\n },\n\n /**\n * Restores the changed properties of instance\n * @private\n * @param {fabric.Object} [instance] the object to un-transform (gets mutated)\n * @param {Object} [originalValues] the original values of instance, as returned by _realizeGroupTransformOnObject\n */\n _unwindGroupTransformOnObject: function(instance, originalValues) {\n if (originalValues) {\n instance.set(originalValues);\n }\n },\n\n /**\n * @private\n */\n _setSVGObject: function(markup, instance, reviver) {\n //If the object is in a selection group, simulate what would happen to that\n //object when the group is deselected\n var originalProperties = this._realizeGroupTransformOnObject(instance);\n this.callSuper('_setSVGObject', markup, instance, reviver);\n this._unwindGroupTransformOnObject(instance, originalProperties);\n },\n\n setViewportTransform: function (vpt) {\n if (this.renderOnAddRemove && this._activeObject && this._activeObject.isEditing) {\n this._activeObject.clearContextTop();\n }\n fabric.StaticCanvas.prototype.setViewportTransform.call(this, vpt);\n }\n });\n\n // copying static properties manually to work around Opera's bug,\n // where \"prototype\" property is enumerable and overrides existing prototype\n for (var prop in fabric.StaticCanvas) {\n if (prop !== 'prototype') {\n fabric.Canvas[prop] = fabric.StaticCanvas[prop];\n }\n }\n})();\n\n\n(function() {\n\n var cursorOffset = {\n mt: 0, // n\n tr: 1, // ne\n mr: 2, // e\n br: 3, // se\n mb: 4, // s\n bl: 5, // sw\n ml: 6, // w\n tl: 7 // nw\n },\n addListener = fabric.util.addListener,\n removeListener = fabric.util.removeListener,\n RIGHT_CLICK = 3, MIDDLE_CLICK = 2, LEFT_CLICK = 1,\n addEventOptions = { passive: false };\n\n function checkClick(e, value) {\n return e.button && (e.button === value - 1);\n }\n\n fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * Map of cursor style values for each of the object controls\n * @private\n */\n cursorMap: [\n 'n-resize',\n 'ne-resize',\n 'e-resize',\n 'se-resize',\n 's-resize',\n 'sw-resize',\n 'w-resize',\n 'nw-resize'\n ],\n\n /**\n * Contains the id of the touch event that owns the fabric transform\n * @type Number\n * @private\n */\n mainTouchId: null,\n\n /**\n * Adds mouse listeners to canvas\n * @private\n */\n _initEventListeners: function () {\n // in case we initialized the class twice. This should not happen normally\n // but in some kind of applications where the canvas element may be changed\n // this is a workaround to having double listeners.\n this.removeListeners();\n this._bindEvents();\n this.addOrRemove(addListener, 'add');\n },\n\n /**\n * return an event prefix pointer or mouse.\n * @private\n */\n _getEventPrefix: function () {\n return this.enablePointerEvents ? 'pointer' : 'mouse';\n },\n\n addOrRemove: function(functor, eventjsFunctor) {\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n functor(fabric.window, 'resize', this._onResize);\n functor(canvasElement, eventTypePrefix + 'down', this._onMouseDown);\n functor(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n functor(canvasElement, eventTypePrefix + 'out', this._onMouseOut);\n functor(canvasElement, eventTypePrefix + 'enter', this._onMouseEnter);\n functor(canvasElement, 'wheel', this._onMouseWheel);\n functor(canvasElement, 'contextmenu', this._onContextMenu);\n functor(canvasElement, 'dblclick', this._onDoubleClick);\n functor(canvasElement, 'dragover', this._onDragOver);\n functor(canvasElement, 'dragenter', this._onDragEnter);\n functor(canvasElement, 'dragleave', this._onDragLeave);\n functor(canvasElement, 'drop', this._onDrop);\n if (!this.enablePointerEvents) {\n functor(canvasElement, 'touchstart', this._onTouchStart, addEventOptions);\n }\n if (typeof eventjs !== 'undefined' && eventjsFunctor in eventjs) {\n eventjs[eventjsFunctor](canvasElement, 'gesture', this._onGesture);\n eventjs[eventjsFunctor](canvasElement, 'drag', this._onDrag);\n eventjs[eventjsFunctor](canvasElement, 'orientation', this._onOrientationChange);\n eventjs[eventjsFunctor](canvasElement, 'shake', this._onShake);\n eventjs[eventjsFunctor](canvasElement, 'longpress', this._onLongPress);\n }\n },\n\n /**\n * Removes all event listeners\n */\n removeListeners: function() {\n this.addOrRemove(removeListener, 'remove');\n // if you dispose on a mouseDown, before mouse up, you need to clean document to...\n var eventTypePrefix = this._getEventPrefix();\n removeListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n removeListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n removeListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n removeListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n },\n\n /**\n * @private\n */\n _bindEvents: function() {\n if (this.eventsBound) {\n // for any reason we pass here twice we do not want to bind events twice.\n return;\n }\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onTouchStart = this._onTouchStart.bind(this);\n this._onMouseMove = this._onMouseMove.bind(this);\n this._onMouseUp = this._onMouseUp.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onResize = this._onResize.bind(this);\n this._onGesture = this._onGesture.bind(this);\n this._onDrag = this._onDrag.bind(this);\n this._onShake = this._onShake.bind(this);\n this._onLongPress = this._onLongPress.bind(this);\n this._onOrientationChange = this._onOrientationChange.bind(this);\n this._onMouseWheel = this._onMouseWheel.bind(this);\n this._onMouseOut = this._onMouseOut.bind(this);\n this._onMouseEnter = this._onMouseEnter.bind(this);\n this._onContextMenu = this._onContextMenu.bind(this);\n this._onDoubleClick = this._onDoubleClick.bind(this);\n this._onDragOver = this._onDragOver.bind(this);\n this._onDragEnter = this._simpleEventHandler.bind(this, 'dragenter');\n this._onDragLeave = this._simpleEventHandler.bind(this, 'dragleave');\n this._onDrop = this._simpleEventHandler.bind(this, 'drop');\n this.eventsBound = true;\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js gesture\n * @param {Event} [self] Inner Event object\n */\n _onGesture: function(e, self) {\n this.__onTransformGesture && this.__onTransformGesture(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js drag\n * @param {Event} [self] Inner Event object\n */\n _onDrag: function(e, self) {\n this.__onDrag && this.__onDrag(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on wheel event\n */\n _onMouseWheel: function(e) {\n this.__onMouseWheel(e);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseOut: function(e) {\n var target = this._hoveredTarget;\n this.fire('mouse:out', { target: target, e: e });\n this._hoveredTarget = null;\n target && target.fire('mouseout', { e: e });\n\n var _this = this;\n this._hoveredTargets.forEach(function(_target){\n _this.fire('mouse:out', { target: target, e: e });\n _target && target.fire('mouseout', { e: e });\n });\n this._hoveredTargets = [];\n\n if (this._iTextInstances) {\n this._iTextInstances.forEach(function(obj) {\n if (obj.isEditing) {\n obj.hiddenTextarea.focus();\n }\n });\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseenter\n */\n _onMouseEnter: function(e) {\n // This find target and consequent 'mouse:over' is used to\n // clear old instances on hovered target.\n // calling findTarget has the side effect of killing target.__corner.\n // as a short term fix we are not firing this if we are currently transforming.\n // as a long term fix we need to separate the action of finding a target with the\n // side effects we added to it.\n if (!this.currentTransform && !this.findTarget(e)) {\n this.fire('mouse:over', { target: null, e: e });\n this._hoveredTarget = null;\n this._hoveredTargets = [];\n }\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js orientation change\n * @param {Event} [self] Inner Event object\n */\n _onOrientationChange: function(e, self) {\n this.__onOrientationChange && this.__onOrientationChange(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n * @param {Event} [self] Inner Event object\n */\n _onShake: function(e, self) {\n this.__onShake && this.__onShake(e, self);\n },\n\n /**\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n * @param {Event} [self] Inner Event object\n */\n _onLongPress: function(e, self) {\n this.__onLongPress && this.__onLongPress(e, self);\n },\n\n /**\n * prevent default to allow drop event to be fired\n * @private\n * @param {Event} [e] Event object fired on Event.js shake\n */\n _onDragOver: function(e) {\n e.preventDefault();\n var target = this._simpleEventHandler('dragover', e);\n this._fireEnterLeaveEvents(target, e);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onContextMenu: function (e) {\n if (this.stopContextMenu) {\n e.stopPropagation();\n e.preventDefault();\n }\n return false;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onDoubleClick: function (e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'dblclick');\n this._resetTransformEventData(e);\n },\n\n /**\n * Return a the id of an event.\n * returns either the pointerId or the identifier or 0 for the mouse event\n * @private\n * @param {Event} evt Event object\n */\n getPointerId: function(evt) {\n var changedTouches = evt.changedTouches;\n\n if (changedTouches) {\n return changedTouches[0] && changedTouches[0].identifier;\n }\n\n if (this.enablePointerEvents) {\n return evt.pointerId;\n }\n\n return -1;\n },\n\n /**\n * Determines if an event has the id of the event that is considered main\n * @private\n * @param {evt} event Event object\n */\n _isMainEvent: function(evt) {\n if (evt.isPrimary === true) {\n return true;\n }\n if (evt.isPrimary === false) {\n return false;\n }\n if (evt.type === 'touchend' && evt.touches.length === 0) {\n return true;\n }\n if (evt.changedTouches) {\n return evt.changedTouches[0].identifier === this.mainTouchId;\n }\n return true;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onTouchStart: function(e) {\n e.preventDefault();\n if (this.mainTouchId === null) {\n this.mainTouchId = this.getPointerId(e);\n }\n this.__onMouseDown(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n addListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n addListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n // Unbind mousedown to prevent double triggers from touch devices\n removeListener(canvasElement, eventTypePrefix + 'down', this._onMouseDown);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseDown: function (e) {\n this.__onMouseDown(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n removeListener(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n addListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n addListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onTouchEnd: function(e) {\n if (e.touches.length > 0) {\n // if there are still touches stop here\n return;\n }\n this.__onMouseUp(e);\n this._resetTransformEventData();\n this.mainTouchId = null;\n var eventTypePrefix = this._getEventPrefix();\n removeListener(fabric.document, 'touchend', this._onTouchEnd, addEventOptions);\n removeListener(fabric.document, 'touchmove', this._onMouseMove, addEventOptions);\n var _this = this;\n if (this._willAddMouseDown) {\n clearTimeout(this._willAddMouseDown);\n }\n this._willAddMouseDown = setTimeout(function() {\n // Wait 400ms before rebinding mousedown to prevent double triggers\n // from touch devices\n addListener(_this.upperCanvasEl, eventTypePrefix + 'down', _this._onMouseDown);\n _this._willAddMouseDown = 0;\n }, 400);\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n _onMouseUp: function (e) {\n this.__onMouseUp(e);\n this._resetTransformEventData();\n var canvasElement = this.upperCanvasEl,\n eventTypePrefix = this._getEventPrefix();\n if (this._isMainEvent(e)) {\n removeListener(fabric.document, eventTypePrefix + 'up', this._onMouseUp);\n removeListener(fabric.document, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n addListener(canvasElement, eventTypePrefix + 'move', this._onMouseMove, addEventOptions);\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n _onMouseMove: function (e) {\n !this.allowTouchScrolling && e.preventDefault && e.preventDefault();\n this.__onMouseMove(e);\n },\n\n /**\n * @private\n */\n _onResize: function () {\n this.calcOffset();\n },\n\n /**\n * Decides whether the canvas should be redrawn in mouseup and mousedown events.\n * @private\n * @param {Object} target\n */\n _shouldRender: function(target) {\n var activeObject = this._activeObject;\n\n if (\n !!activeObject !== !!target ||\n (activeObject && target && (activeObject !== target))\n ) {\n // this covers: switch of target, from target to no target, selection of target\n // multiSelection with key and mouse\n return true;\n }\n else if (activeObject && activeObject.isEditing) {\n // if we mouse up/down over a editing textbox a cursor change,\n // there is no need to re render\n return false;\n }\n return false;\n },\n\n /**\n * Method that defines the actions when mouse is released on canvas.\n * The method resets the currentTransform parameters, store the image corner\n * position in the image object and render the canvas on top.\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n __onMouseUp: function (e) {\n var target, transform = this._currentTransform,\n groupSelector = this._groupSelector, shouldRender = false,\n isClick = (!groupSelector || (groupSelector.left === 0 && groupSelector.top === 0));\n this._cacheTransformEventData(e);\n target = this._target;\n this._handleEvent(e, 'up:before');\n // if right/middle click just fire events and return\n // target undefined will make the _handleEvent search the target\n if (checkClick(e, RIGHT_CLICK)) {\n if (this.fireRightClick) {\n this._handleEvent(e, 'up', RIGHT_CLICK, isClick);\n }\n return;\n }\n\n if (checkClick(e, MIDDLE_CLICK)) {\n if (this.fireMiddleClick) {\n this._handleEvent(e, 'up', MIDDLE_CLICK, isClick);\n }\n this._resetTransformEventData();\n return;\n }\n\n if (this.isDrawingMode && this._isCurrentlyDrawing) {\n this._onMouseUpInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n if (transform) {\n this._finalizeCurrentTransform(e);\n shouldRender = transform.actionPerformed;\n }\n\n if (!isClick) {\n this._maybeGroupObjects(e);\n shouldRender || (shouldRender = this._shouldRender(target));\n }\n if (target) {\n target.isMoving = false;\n }\n this._setCursorFromEvent(e, target);\n this._handleEvent(e, 'up', LEFT_CLICK, isClick);\n this._groupSelector = null;\n this._currentTransform = null;\n // reset the target information about which corner is selected\n target && (target.__corner = 0);\n if (shouldRender) {\n this.requestRenderAll();\n }\n else if (!isClick) {\n this.renderTop();\n }\n },\n\n /**\n * @private\n * Handle event firing for target and subtargets\n * @param {Event} e event from mouse\n * @param {String} eventType event to fire (up, down or move)\n * @return {Fabric.Object} target return the the target found, for internal reasons.\n */\n _simpleEventHandler: function(eventType, e) {\n var target = this.findTarget(e),\n targets = this.targets,\n options = {\n e: e,\n target: target,\n subTargets: targets,\n };\n this.fire(eventType, options);\n target && target.fire(eventType, options);\n if (!targets) {\n return target;\n }\n for (var i = 0; i < targets.length; i++) {\n targets[i].fire(eventType, options);\n }\n return target;\n },\n\n /**\n * @private\n * Handle event firing for target and subtargets\n * @param {Event} e event from mouse\n * @param {String} eventType event to fire (up, down or move)\n * @param {fabric.Object} targetObj receiving event\n * @param {Number} [button] button used in the event 1 = left, 2 = middle, 3 = right\n * @param {Boolean} isClick for left button only, indicates that the mouse up happened without move.\n */\n _handleEvent: function(e, eventType, button, isClick) {\n var target = this._target,\n targets = this.targets || [],\n options = {\n e: e,\n target: target,\n subTargets: targets,\n button: button || LEFT_CLICK,\n isClick: isClick || false,\n pointer: this._pointer,\n absolutePointer: this._absolutePointer,\n transform: this._currentTransform\n };\n this.fire('mouse:' + eventType, options);\n target && target.fire('mouse' + eventType, options);\n for (var i = 0; i < targets.length; i++) {\n targets[i].fire('mouse' + eventType, options);\n }\n },\n\n /**\n * @private\n * @param {Event} e send the mouse event that generate the finalize down, so it can be used in the event\n */\n _finalizeCurrentTransform: function(e) {\n\n var transform = this._currentTransform,\n target = transform.target,\n eventName,\n options = {\n e: e,\n target: target,\n transform: transform,\n };\n\n if (target._scaling) {\n target._scaling = false;\n }\n\n target.setCoords();\n\n if (transform.actionPerformed || (this.stateful && target.hasStateChanged())) {\n if (transform.actionPerformed) {\n eventName = this._addEventOptions(options, transform);\n this._fire(eventName, options);\n }\n this._fire('modified', options);\n }\n },\n\n /**\n * Mutate option object in order to add by property and give back the event name.\n * @private\n * @param {Object} options to mutate\n * @param {Object} transform to inspect action from\n */\n _addEventOptions: function(options, transform) {\n // we can probably add more details at low cost\n // scale change, rotation changes, translation changes\n var eventName, by;\n switch (transform.action) {\n case 'scaleX':\n eventName = 'scaled';\n by = 'x';\n break;\n case 'scaleY':\n eventName = 'scaled';\n by = 'y';\n break;\n case 'skewX':\n eventName = 'skewed';\n by = 'x';\n break;\n case 'skewY':\n eventName = 'skewed';\n by = 'y';\n break;\n case 'scale':\n eventName = 'scaled';\n by = 'equally';\n break;\n case 'rotate':\n eventName = 'rotated';\n break;\n case 'drag':\n eventName = 'moved';\n break;\n }\n options.by = by;\n return eventName;\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n _onMouseDownInDrawingMode: function(e) {\n this._isCurrentlyDrawing = true;\n if (this.getActiveObject()) {\n this.discardActiveObject(e).requestRenderAll();\n }\n if (this.clipTo) {\n fabric.util.clipContext(this, this.contextTop);\n }\n var pointer = this.getPointer(e);\n this.freeDrawingBrush.onMouseDown(pointer, { e: e, pointer: pointer });\n this._handleEvent(e, 'down');\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n _onMouseMoveInDrawingMode: function(e) {\n if (this._isCurrentlyDrawing) {\n var pointer = this.getPointer(e);\n this.freeDrawingBrush.onMouseMove(pointer, { e: e, pointer: pointer });\n }\n this.setCursor(this.freeDrawingCursor);\n this._handleEvent(e, 'move');\n },\n\n /**\n * @private\n * @param {Event} e Event object fired on mouseup\n */\n _onMouseUpInDrawingMode: function(e) {\n if (this.clipTo) {\n this.contextTop.restore();\n }\n var pointer = this.getPointer(e);\n this._isCurrentlyDrawing = this.freeDrawingBrush.onMouseUp({ e: e, pointer: pointer });\n this._handleEvent(e, 'up');\n },\n\n /**\n * Method that defines the actions when mouse is clicked on canvas.\n * The method inits the currentTransform parameters and renders all the\n * canvas so the current image can be placed on the top canvas and the rest\n * in on the container one.\n * @private\n * @param {Event} e Event object fired on mousedown\n */\n __onMouseDown: function (e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'down:before');\n var target = this._target;\n // if right click just fire events\n if (checkClick(e, RIGHT_CLICK)) {\n if (this.fireRightClick) {\n this._handleEvent(e, 'down', RIGHT_CLICK);\n }\n return;\n }\n\n if (checkClick(e, MIDDLE_CLICK)) {\n if (this.fireMiddleClick) {\n this._handleEvent(e, 'down', MIDDLE_CLICK);\n }\n return;\n }\n\n if (this.isDrawingMode) {\n this._onMouseDownInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n\n // ignore if some object is being transformed at this moment\n if (this._currentTransform) {\n return;\n }\n\n var pointer = this._pointer;\n // save pointer for check in __onMouseUp event\n this._previousPointer = pointer;\n var shouldRender = this._shouldRender(target),\n shouldGroup = this._shouldGroup(e, target);\n if (this._shouldClearSelection(e, target)) {\n this.discardActiveObject(e);\n }\n else if (shouldGroup) {\n this._handleGrouping(e, target);\n target = this._activeObject;\n }\n\n if (this.selection && (!target ||\n (!target.selectable && !target.isEditing && target !== this._activeObject))) {\n this._groupSelector = {\n ex: pointer.x,\n ey: pointer.y,\n top: 0,\n left: 0\n };\n }\n\n if (target) {\n var alreadySelected = target === this._activeObject;\n if (target.selectable) {\n this.setActiveObject(target, e);\n }\n if (target === this._activeObject && (target.__corner || !shouldGroup)) {\n this._setupCurrentTransform(e, target, alreadySelected);\n }\n }\n this._handleEvent(e, 'down');\n // we must renderAll so that we update the visuals\n (shouldRender || shouldGroup) && this.requestRenderAll();\n },\n\n /**\n * reset cache form common information needed during event processing\n * @private\n */\n _resetTransformEventData: function() {\n this._target = null;\n this._pointer = null;\n this._absolutePointer = null;\n },\n\n /**\n * Cache common information needed during event processing\n * @private\n * @param {Event} e Event object fired on event\n */\n _cacheTransformEventData: function(e) {\n // reset in order to avoid stale caching\n this._resetTransformEventData();\n this._pointer = this.getPointer(e, true);\n this._absolutePointer = this.restorePointerVpt(this._pointer);\n this._target = this._currentTransform ? this._currentTransform.target : this.findTarget(e) || null;\n },\n\n /**\n * @private\n */\n _beforeTransform: function(e) {\n var t = this._currentTransform;\n this.stateful && t.target.saveState();\n this.fire('before:transform', {\n e: e,\n transform: t,\n });\n // determine if it's a drag or rotate case\n if (t.corner) {\n this.onBeforeScaleRotate(t.target);\n }\n },\n\n /**\n * Method that defines the actions when mouse is hovering the canvas.\n * The currentTransform parameter will define whether the user is rotating/scaling/translating\n * an image or neither of them (only hovering). A group selection is also possible and would cancel\n * all any other type of action.\n * In case of an image transformation only the top canvas will be rendered.\n * @private\n * @param {Event} e Event object fired on mousemove\n */\n __onMouseMove: function (e) {\n this._handleEvent(e, 'move:before');\n this._cacheTransformEventData(e);\n var target, pointer;\n\n if (this.isDrawingMode) {\n this._onMouseMoveInDrawingMode(e);\n return;\n }\n\n if (!this._isMainEvent(e)) {\n return;\n }\n\n var groupSelector = this._groupSelector;\n\n // We initially clicked in an empty area, so we draw a box for multiple selection\n if (groupSelector) {\n pointer = this._pointer;\n\n groupSelector.left = pointer.x - groupSelector.ex;\n groupSelector.top = pointer.y - groupSelector.ey;\n\n this.renderTop();\n }\n else if (!this._currentTransform) {\n target = this.findTarget(e) || null;\n this._setCursorFromEvent(e, target);\n this._fireOverOutEvents(target, e);\n }\n else {\n this._transformObject(e);\n }\n this._handleEvent(e, 'move');\n this._resetTransformEventData();\n },\n\n /**\n * Manage the mouseout, mouseover events for the fabric object on the canvas\n * @param {Fabric.Object} target the target where the target from the mousemove event\n * @param {Event} e Event object fired on mousemove\n * @private\n */\n _fireOverOutEvents: function(target, e) {\n var _hoveredTarget = this._hoveredTarget,\n _hoveredTargets = this._hoveredTargets, targets = this.targets,\n length = Math.max(_hoveredTargets.length, targets.length);\n\n this.fireSyntheticInOutEvents(target, e, {\n oldTarget: _hoveredTarget,\n evtOut: 'mouseout',\n canvasEvtOut: 'mouse:out',\n evtIn: 'mouseover',\n canvasEvtIn: 'mouse:over',\n });\n for (var i = 0; i < length; i++){\n this.fireSyntheticInOutEvents(targets[i], e, {\n oldTarget: _hoveredTargets[i],\n evtOut: 'mouseout',\n evtIn: 'mouseover',\n });\n }\n this._hoveredTarget = target;\n this._hoveredTargets = this.targets.concat();\n },\n\n /**\n * Manage the dragEnter, dragLeave events for the fabric objects on the canvas\n * @param {Fabric.Object} target the target where the target from the onDrag event\n * @param {Event} e Event object fired on ondrag\n * @private\n */\n _fireEnterLeaveEvents: function(target, e) {\n var _draggedoverTarget = this._draggedoverTarget,\n _hoveredTargets = this._hoveredTargets, targets = this.targets,\n length = Math.max(_hoveredTargets.length, targets.length);\n\n this.fireSyntheticInOutEvents(target, e, {\n oldTarget: _draggedoverTarget,\n evtOut: 'dragleave',\n evtIn: 'dragenter',\n });\n for (var i = 0; i < length; i++) {\n this.fireSyntheticInOutEvents(targets[i], e, {\n oldTarget: _hoveredTargets[i],\n evtOut: 'dragleave',\n evtIn: 'dragenter',\n });\n }\n this._draggedoverTarget = target;\n },\n\n /**\n * Manage the synthetic in/out events for the fabric objects on the canvas\n * @param {Fabric.Object} target the target where the target from the supported events\n * @param {Event} e Event object fired\n * @param {Object} config configuration for the function to work\n * @param {String} config.targetName property on the canvas where the old target is stored\n * @param {String} [config.canvasEvtOut] name of the event to fire at canvas level for out\n * @param {String} config.evtOut name of the event to fire for out\n * @param {String} [config.canvasEvtIn] name of the event to fire at canvas level for in\n * @param {String} config.evtIn name of the event to fire for in\n * @private\n */\n fireSyntheticInOutEvents: function(target, e, config) {\n var inOpt, outOpt, oldTarget = config.oldTarget, outFires, inFires,\n targetChanged = oldTarget !== target, canvasEvtIn = config.canvasEvtIn, canvasEvtOut = config.canvasEvtOut;\n if (targetChanged) {\n inOpt = { e: e, target: target, previousTarget: oldTarget };\n outOpt = { e: e, target: oldTarget, nextTarget: target };\n }\n inFires = target && targetChanged;\n outFires = oldTarget && targetChanged;\n if (outFires) {\n canvasEvtOut && this.fire(canvasEvtOut, outOpt);\n oldTarget.fire(config.evtOut, outOpt);\n }\n if (inFires) {\n canvasEvtIn && this.fire(canvasEvtIn, inOpt);\n target.fire(config.evtIn, inOpt);\n }\n },\n\n /**\n * Method that defines actions when an Event Mouse Wheel\n * @param {Event} e Event object fired on mouseup\n */\n __onMouseWheel: function(e) {\n this._cacheTransformEventData(e);\n this._handleEvent(e, 'wheel');\n this._resetTransformEventData();\n },\n\n /**\n * @private\n * @param {Event} e Event fired on mousemove\n */\n _transformObject: function(e) {\n var pointer = this.getPointer(e),\n transform = this._currentTransform;\n\n transform.reset = false;\n transform.target.isMoving = true;\n transform.shiftKey = e.shiftKey;\n transform.altKey = e[this.centeredKey];\n\n this._beforeScaleTransform(e, transform);\n this._performTransformAction(e, transform, pointer);\n\n transform.actionPerformed && this.requestRenderAll();\n },\n\n /**\n * @private\n */\n _performTransformAction: function(e, transform, pointer) {\n var x = pointer.x,\n y = pointer.y,\n action = transform.action,\n actionPerformed = false,\n options = {\n target: transform.target,\n e: e,\n transform: transform,\n pointer: pointer\n };\n\n if (action === 'rotate') {\n (actionPerformed = this._rotateObject(x, y)) && this._fire('rotating', options);\n }\n else if (action === 'scale') {\n (actionPerformed = this._onScale(e, transform, x, y)) && this._fire('scaling', options);\n }\n else if (action === 'scaleX') {\n (actionPerformed = this._scaleObject(x, y, 'x')) && this._fire('scaling', options);\n }\n else if (action === 'scaleY') {\n (actionPerformed = this._scaleObject(x, y, 'y')) && this._fire('scaling', options);\n }\n else if (action === 'skewX') {\n (actionPerformed = this._skewObject(x, y, 'x')) && this._fire('skewing', options);\n }\n else if (action === 'skewY') {\n (actionPerformed = this._skewObject(x, y, 'y')) && this._fire('skewing', options);\n }\n else {\n actionPerformed = this._translateObject(x, y);\n if (actionPerformed) {\n this._fire('moving', options);\n this.setCursor(options.target.moveCursor || this.moveCursor);\n }\n }\n transform.actionPerformed = transform.actionPerformed || actionPerformed;\n },\n\n /**\n * @private\n */\n _fire: function(eventName, options) {\n this.fire('object:' + eventName, options);\n options.target.fire(eventName, options);\n },\n\n /**\n * @private\n */\n _beforeScaleTransform: function(e, transform) {\n if (transform.action === 'scale' || transform.action === 'scaleX' || transform.action === 'scaleY') {\n var centerTransform = this._shouldCenterTransform(transform.target);\n\n // Switch from a normal resize to center-based\n if ((centerTransform && (transform.originX !== 'center' || transform.originY !== 'center')) ||\n // Switch from center-based resize to normal one\n (!centerTransform && transform.originX === 'center' && transform.originY === 'center')\n ) {\n this._resetCurrentTransform();\n transform.reset = true;\n }\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {Object} transform current transform\n * @param {Number} x mouse position x from origin\n * @param {Number} y mouse position y from origin\n * @return {Boolean} true if the scaling occurred\n */\n _onScale: function(e, transform, x, y) {\n if (this._isUniscalePossible(e, transform.target)) {\n transform.currentAction = 'scale';\n return this._scaleObject(x, y);\n }\n else {\n // Switch from a normal resize to proportional\n if (!transform.reset && transform.currentAction === 'scale') {\n this._resetCurrentTransform();\n }\n\n transform.currentAction = 'scaleEqually';\n return this._scaleObject(x, y, 'equally');\n }\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target current target\n * @return {Boolean} true if unproportional scaling is possible\n */\n _isUniscalePossible: function(e, target) {\n return (e[this.uniScaleKey] || this.uniScaleTransform) && !target.get('lockUniScaling');\n },\n\n /**\n * Sets the cursor depending on where the canvas is being hovered.\n * Note: very buggy in Opera\n * @param {Event} e Event object\n * @param {Object} target Object that the mouse is hovering, if so.\n */\n _setCursorFromEvent: function (e, target) {\n if (!target) {\n this.setCursor(this.defaultCursor);\n return false;\n }\n var hoverCursor = target.hoverCursor || this.hoverCursor,\n activeSelection = this._activeObject && this._activeObject.type === 'activeSelection' ?\n this._activeObject : null,\n // only show proper corner when group selection is not active\n corner = (!activeSelection || !activeSelection.contains(target))\n && target._findTargetCorner(this.getPointer(e, true));\n\n if (!corner) {\n if (target.subTargetCheck){\n // hoverCursor should come from top-most subTarget,\n // so we walk the array backwards\n this.targets.concat().reverse().map(function(_target){\n hoverCursor = _target.hoverCursor || hoverCursor;\n });\n }\n this.setCursor(hoverCursor);\n }\n else {\n this.setCursor(this.getCornerCursor(corner, target, e));\n }\n },\n\n /**\n * @private\n */\n getCornerCursor: function(corner, target, e) {\n if (this.actionIsDisabled(corner, target, e)) {\n return this.notAllowedCursor;\n }\n else if (corner in cursorOffset) {\n return this._getRotatedCornerCursor(corner, target, e);\n }\n else if (corner === 'mtr' && target.hasRotatingPoint) {\n return this.rotationCursor;\n }\n else {\n return this.defaultCursor;\n }\n },\n\n actionIsDisabled: function(corner, target, e) {\n if (corner === 'mt' || corner === 'mb') {\n return e[this.altActionKey] ? target.lockSkewingX : target.lockScalingY;\n }\n else if (corner === 'ml' || corner === 'mr') {\n return e[this.altActionKey] ? target.lockSkewingY : target.lockScalingX;\n }\n else if (corner === 'mtr') {\n return target.lockRotation;\n }\n else {\n return this._isUniscalePossible(e, target) ?\n target.lockScalingX && target.lockScalingY : target.lockScalingX || target.lockScalingY;\n }\n },\n\n /**\n * @private\n */\n _getRotatedCornerCursor: function(corner, target, e) {\n var n = Math.round((target.angle % 360) / 45);\n\n if (n < 0) {\n n += 8; // full circle ahead\n }\n n += cursorOffset[corner];\n if (e[this.altActionKey] && cursorOffset[corner] % 2 === 0) {\n //if we are holding shift and we are on a mx corner...\n n += 2;\n }\n // normalize n to be from 0 to 7\n n %= 8;\n\n return this.cursorMap[n];\n }\n });\n})();\n\n\n(function() {\n\n var min = Math.min,\n max = Math.max;\n\n fabric.util.object.extend(fabric.Canvas.prototype, /** @lends fabric.Canvas.prototype */ {\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n * @return {Boolean}\n */\n _shouldGroup: function(e, target) {\n var activeObject = this._activeObject;\n return activeObject && this._isSelectionKeyPressed(e) && target && target.selectable && this.selection &&\n (activeObject !== target || activeObject.type === 'activeSelection') && !target.onSelect({ e: e });\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @param {fabric.Object} target\n */\n _handleGrouping: function (e, target) {\n var activeObject = this._activeObject;\n // avoid multi select when shift click on a corner\n if (activeObject.__corner) {\n return;\n }\n if (target === activeObject) {\n // if it's a group, find target again, using activeGroup objects\n target = this.findTarget(e, true);\n // if even object is not found or we are on activeObjectCorner, bail out\n if (!target || !target.selectable) {\n return;\n }\n }\n if (activeObject && activeObject.type === 'activeSelection') {\n this._updateActiveSelection(target, e);\n }\n else {\n this._createActiveSelection(target, e);\n }\n },\n\n /**\n * @private\n */\n _updateActiveSelection: function(target, e) {\n var activeSelection = this._activeObject,\n currentActiveObjects = activeSelection._objects.slice(0);\n if (activeSelection.contains(target)) {\n activeSelection.removeWithUpdate(target);\n this._hoveredTarget = target;\n this._hoveredTargets = this.targets.concat();\n if (activeSelection.size() === 1) {\n // activate last remaining object\n this._setActiveObject(activeSelection.item(0), e);\n }\n }\n else {\n activeSelection.addWithUpdate(target);\n this._hoveredTarget = activeSelection;\n this._hoveredTargets = this.targets.concat();\n }\n this._fireSelectionEvents(currentActiveObjects, e);\n },\n\n /**\n * @private\n */\n _createActiveSelection: function(target, e) {\n var currentActives = this.getActiveObjects(), group = this._createGroup(target);\n this._hoveredTarget = group;\n // ISSUE 4115: should we consider subTargets here?\n // this._hoveredTargets = [];\n // this._hoveredTargets = this.targets.concat();\n this._setActiveObject(group, e);\n this._fireSelectionEvents(currentActives, e);\n },\n\n /**\n * @private\n * @param {Object} target\n */\n _createGroup: function(target) {\n var objects = this._objects,\n isActiveLower = objects.indexOf(this._activeObject) < objects.indexOf(target),\n groupObjects = isActiveLower\n ? [this._activeObject, target]\n : [target, this._activeObject];\n this._activeObject.isEditing && this._activeObject.exitEditing();\n return new fabric.ActiveSelection(groupObjects, {\n canvas: this\n });\n },\n\n /**\n * @private\n * @param {Event} e mouse event\n */\n _groupSelectedObjects: function (e) {\n\n var group = this._collectObjects(e),\n aGroup;\n\n // do not create group for 1 element only\n if (group.length === 1) {\n this.setActiveObject(group[0], e);\n }\n else if (group.length > 1) {\n aGroup = new fabric.ActiveSelection(group.reverse(), {\n canvas: this\n });\n this.setActiveObject(aGroup, e);\n }\n },\n\n /**\n * @private\n */\n _collectObjects: function(e) {\n var group = [],\n currentObject,\n x1 = this._groupSelector.ex,\n y1 = this._groupSelector.ey,\n x2 = x1 + this._groupSelector.left,\n y2 = y1 + this._groupSelector.top,\n selectionX1Y1 = new fabric.Point(min(x1, x2), min(y1, y2)),\n selectionX2Y2 = new fabric.Point(max(x1, x2), max(y1, y2)),\n allowIntersect = !this.selectionFullyContained,\n isClick = x1 === x2 && y1 === y2;\n // we iterate reverse order to collect top first in case of click.\n for (var i = this._objects.length; i--; ) {\n currentObject = this._objects[i];\n\n if (!currentObject || !currentObject.selectable || !currentObject.visible) {\n continue;\n }\n\n if ((allowIntersect && currentObject.intersectsWithRect(selectionX1Y1, selectionX2Y2)) ||\n currentObject.isContainedWithinRect(selectionX1Y1, selectionX2Y2) ||\n (allowIntersect && currentObject.containsPoint(selectionX1Y1)) ||\n (allowIntersect && currentObject.containsPoint(selectionX2Y2))\n ) {\n group.push(currentObject);\n // only add one object if it's a click\n if (isClick) {\n break;\n }\n }\n }\n\n if (group.length > 1) {\n group = group.filter(function(object) {\n return !object.onSelect({ e: e });\n });\n }\n\n return group;\n },\n\n /**\n * @private\n */\n _maybeGroupObjects: function(e) {\n if (this.selection && this._groupSelector) {\n this._groupSelectedObjects(e);\n }\n this.setCursor(this.defaultCursor);\n // clear selection and current transformation\n this._groupSelector = null;\n }\n });\n\n})();\n\n\n(function () {\n fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Exports canvas element to a dataurl image. Note that when multiplier is used, cropping is scaled appropriately\n * @param {Object} [options] Options object\n * @param {String} [options.format=png] The format of the output image. Either \"jpeg\" or \"png\"\n * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.\n * @param {Number} [options.multiplier=1] Multiplier to scale by, to have consistent\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 2.0.0\n * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format\n * @see {@link http://jsfiddle.net/fabricjs/NfZVb/|jsFiddle demo}\n * @example Generate jpeg dataURL with lower quality\n * var dataURL = canvas.toDataURL({\n * format: 'jpeg',\n * quality: 0.8\n * });\n * @example Generate cropped png dataURL (clipping of canvas)\n * var dataURL = canvas.toDataURL({\n * format: 'png',\n * left: 100,\n * top: 100,\n * width: 200,\n * height: 200\n * });\n * @example Generate double scaled png dataURL\n * var dataURL = canvas.toDataURL({\n * format: 'png',\n * multiplier: 2\n * });\n */\n toDataURL: function (options) {\n options || (options = { });\n\n var format = options.format || 'png',\n quality = options.quality || 1,\n multiplier = (options.multiplier || 1) * (options.enableRetinaScaling ? this.getRetinaScaling() : 1),\n canvasEl = this.toCanvasElement(multiplier, options);\n return fabric.util.toDataURL(canvasEl, format, quality);\n },\n\n /**\n * Create a new HTMLCanvas element painted with the current canvas content.\n * No need to resize the actual one or repaint it.\n * Will transfer object ownership to a new canvas, paint it, and set everything back.\n * This is an intermediary step used to get to a dataUrl but also it is useful to\n * create quick image copies of a canvas without passing for the dataUrl string\n * @param {Number} [multiplier] a zoom factor.\n * @param {Object} [cropping] Cropping informations\n * @param {Number} [cropping.left] Cropping left offset.\n * @param {Number} [cropping.top] Cropping top offset.\n * @param {Number} [cropping.width] Cropping width.\n * @param {Number} [cropping.height] Cropping height.\n */\n toCanvasElement: function(multiplier, cropping) {\n multiplier = multiplier || 1;\n cropping = cropping || { };\n var scaledWidth = (cropping.width || this.width) * multiplier,\n scaledHeight = (cropping.height || this.height) * multiplier,\n zoom = this.getZoom(),\n originalWidth = this.width,\n originalHeight = this.height,\n newZoom = zoom * multiplier,\n vp = this.viewportTransform,\n translateX = (vp[4] - (cropping.left || 0)) * multiplier,\n translateY = (vp[5] - (cropping.top || 0)) * multiplier,\n originalInteractive = this.interactive,\n newVp = [newZoom, 0, 0, newZoom, translateX, translateY],\n originalRetina = this.enableRetinaScaling,\n canvasEl = fabric.util.createCanvasElement(),\n originalContextTop = this.contextTop;\n canvasEl.width = scaledWidth;\n canvasEl.height = scaledHeight;\n this.contextTop = null;\n this.enableRetinaScaling = false;\n this.interactive = false;\n this.viewportTransform = newVp;\n this.width = scaledWidth;\n this.height = scaledHeight;\n this.calcViewportBoundaries();\n this.renderCanvas(canvasEl.getContext('2d'), this._objects);\n this.viewportTransform = vp;\n this.width = originalWidth;\n this.height = originalHeight;\n this.calcViewportBoundaries();\n this.interactive = originalInteractive;\n this.enableRetinaScaling = originalRetina;\n this.contextTop = originalContextTop;\n return canvasEl;\n },\n });\n\n})();\n\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Populates canvas with data from the specified dataless JSON.\n * JSON format must conform to the one of {@link fabric.Canvas#toDatalessJSON}\n * @deprecated since 1.2.2\n * @param {String|Object} json JSON string or object\n * @param {Function} callback Callback, invoked when json is parsed\n * and corresponding objects (e.g: {@link fabric.Image})\n * are initialized\n * @param {Function} [reviver] Method for further parsing of JSON elements, called after each fabric object created.\n * @return {fabric.Canvas} instance\n * @chainable\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#deserialization}\n */\n loadFromDatalessJSON: function (json, callback, reviver) {\n return this.loadFromJSON(json, callback, reviver);\n },\n\n /**\n * Populates canvas with data from the specified JSON.\n * JSON format must conform to the one of {@link fabric.Canvas#toJSON}\n * @param {String|Object} json JSON string or object\n * @param {Function} callback Callback, invoked when json is parsed\n * and corresponding objects (e.g: {@link fabric.Image})\n * are initialized\n * @param {Function} [reviver] Method for further parsing of JSON elements, called after each fabric object created.\n * @return {fabric.Canvas} instance\n * @chainable\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#deserialization}\n * @see {@link http://jsfiddle.net/fabricjs/fmgXt/|jsFiddle demo}\n * @example loadFromJSON\n * canvas.loadFromJSON(json, canvas.renderAll.bind(canvas));\n * @example loadFromJSON with reviver\n * canvas.loadFromJSON(json, canvas.renderAll.bind(canvas), function(o, object) {\n * // `o` = json object\n * // `object` = fabric.Object instance\n * // ... do some stuff ...\n * });\n */\n loadFromJSON: function (json, callback, reviver) {\n if (!json) {\n return;\n }\n\n // serialize if it wasn't already\n var serialized = (typeof json === 'string')\n ? JSON.parse(json)\n : fabric.util.object.clone(json);\n\n var _this = this,\n clipPath = serialized.clipPath,\n renderOnAddRemove = this.renderOnAddRemove;\n\n this.renderOnAddRemove = false;\n\n delete serialized.clipPath;\n\n this._enlivenObjects(serialized.objects, function (enlivenedObjects) {\n _this.clear();\n _this._setBgOverlay(serialized, function () {\n if (clipPath) {\n _this._enlivenObjects([clipPath], function (enlivenedCanvasClip) {\n _this.clipPath = enlivenedCanvasClip[0];\n _this.__setupCanvas.call(_this, serialized, enlivenedObjects, renderOnAddRemove, callback);\n });\n }\n else {\n _this.__setupCanvas.call(_this, serialized, enlivenedObjects, renderOnAddRemove, callback);\n }\n });\n }, reviver);\n return this;\n },\n\n /**\n * @private\n * @param {Object} serialized Object with background and overlay information\n * @param {Array} restored canvas objects\n * @param {Function} cached renderOnAddRemove callback\n * @param {Function} callback Invoked after all background and overlay images/patterns loaded\n */\n __setupCanvas: function(serialized, enlivenedObjects, renderOnAddRemove, callback) {\n var _this = this;\n enlivenedObjects.forEach(function(obj, index) {\n // we splice the array just in case some custom classes restored from JSON\n // will add more object to canvas at canvas init.\n _this.insertAt(obj, index);\n });\n this.renderOnAddRemove = renderOnAddRemove;\n // remove parts i cannot set as options\n delete serialized.objects;\n delete serialized.backgroundImage;\n delete serialized.overlayImage;\n delete serialized.background;\n delete serialized.overlay;\n // this._initOptions does too many things to just\n // call it. Normally loading an Object from JSON\n // create the Object instance. Here the Canvas is\n // already an instance and we are just loading things over it\n this._setOptions(serialized);\n this.renderAll();\n callback && callback();\n },\n\n /**\n * @private\n * @param {Object} serialized Object with background and overlay information\n * @param {Function} callback Invoked after all background and overlay images/patterns loaded\n */\n _setBgOverlay: function(serialized, callback) {\n var loaded = {\n backgroundColor: false,\n overlayColor: false,\n backgroundImage: false,\n overlayImage: false\n };\n\n if (!serialized.backgroundImage && !serialized.overlayImage && !serialized.background && !serialized.overlay) {\n callback && callback();\n return;\n }\n\n var cbIfLoaded = function () {\n if (loaded.backgroundImage && loaded.overlayImage && loaded.backgroundColor && loaded.overlayColor) {\n callback && callback();\n }\n };\n\n this.__setBgOverlay('backgroundImage', serialized.backgroundImage, loaded, cbIfLoaded);\n this.__setBgOverlay('overlayImage', serialized.overlayImage, loaded, cbIfLoaded);\n this.__setBgOverlay('backgroundColor', serialized.background, loaded, cbIfLoaded);\n this.__setBgOverlay('overlayColor', serialized.overlay, loaded, cbIfLoaded);\n },\n\n /**\n * @private\n * @param {String} property Property to set (backgroundImage, overlayImage, backgroundColor, overlayColor)\n * @param {(Object|String)} value Value to set\n * @param {Object} loaded Set loaded property to true if property is set\n * @param {Object} callback Callback function to invoke after property is set\n */\n __setBgOverlay: function(property, value, loaded, callback) {\n var _this = this;\n\n if (!value) {\n loaded[property] = true;\n callback && callback();\n return;\n }\n\n if (property === 'backgroundImage' || property === 'overlayImage') {\n fabric.util.enlivenObjects([value], function(enlivedObject){\n _this[property] = enlivedObject[0];\n loaded[property] = true;\n callback && callback();\n });\n }\n else {\n this['set' + fabric.util.string.capitalize(property, true)](value, function() {\n loaded[property] = true;\n callback && callback();\n });\n }\n },\n\n /**\n * @private\n * @param {Array} objects\n * @param {Function} callback\n * @param {Function} [reviver]\n */\n _enlivenObjects: function (objects, callback, reviver) {\n if (!objects || objects.length === 0) {\n callback && callback([]);\n return;\n }\n\n fabric.util.enlivenObjects(objects, function(enlivenedObjects) {\n callback && callback(enlivenedObjects);\n }, null, reviver);\n },\n\n /**\n * @private\n * @param {String} format\n * @param {Function} callback\n */\n _toDataURL: function (format, callback) {\n this.clone(function (clone) {\n callback(clone.toDataURL(format));\n });\n },\n\n /**\n * @private\n * @param {String} format\n * @param {Number} multiplier\n * @param {Function} callback\n */\n _toDataURLWithMultiplier: function (format, multiplier, callback) {\n this.clone(function (clone) {\n callback(clone.toDataURLWithMultiplier(format, multiplier));\n });\n },\n\n /**\n * Clones canvas instance\n * @param {Object} [callback] Receives cloned instance as a first argument\n * @param {Array} [properties] Array of properties to include in the cloned canvas and children\n */\n clone: function (callback, properties) {\n var data = JSON.stringify(this.toJSON(properties));\n this.cloneWithoutData(function(clone) {\n clone.loadFromJSON(data, function() {\n callback && callback(clone);\n });\n });\n },\n\n /**\n * Clones canvas instance without cloning existing data.\n * This essentially copies canvas dimensions, clipping properties, etc.\n * but leaves data empty (so that you can populate it with your own)\n * @param {Object} [callback] Receives cloned instance as a first argument\n */\n cloneWithoutData: function(callback) {\n var el = fabric.util.createCanvasElement();\n\n el.width = this.width;\n el.height = this.height;\n\n var clone = new fabric.Canvas(el);\n clone.clipTo = this.clipTo;\n if (this.backgroundImage) {\n clone.setBackgroundImage(this.backgroundImage.src, function() {\n clone.renderAll();\n callback && callback(clone);\n });\n clone.backgroundImageOpacity = this.backgroundImageOpacity;\n clone.backgroundImageStretch = this.backgroundImageStretch;\n }\n else {\n callback && callback(clone);\n }\n }\n});\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n toFixed = fabric.util.toFixed,\n capitalize = fabric.util.string.capitalize,\n degreesToRadians = fabric.util.degreesToRadians,\n supportsLineDash = fabric.StaticCanvas.supports('setLineDash'),\n objectCaching = !fabric.isLikelyNode,\n ALIASING_LIMIT = 2;\n\n if (fabric.Object) {\n return;\n }\n\n /**\n * Root object class from which all 2d shape classes inherit from\n * @class fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#objects}\n * @see {@link fabric.Object#initialize} for constructor definition\n *\n * @fires added\n * @fires removed\n *\n * @fires selected\n * @fires deselected\n * @fires modified\n * @fires modified\n * @fires moved\n * @fires scaled\n * @fires rotated\n * @fires skewed\n *\n * @fires rotating\n * @fires scaling\n * @fires moving\n * @fires skewing\n *\n * @fires mousedown\n * @fires mouseup\n * @fires mouseover\n * @fires mouseout\n * @fires mousewheel\n * @fires mousedblclick\n *\n * @fires dragover\n * @fires dragenter\n * @fires dragleave\n * @fires drop\n */\n fabric.Object = fabric.util.createClass(fabric.CommonMethods, /** @lends fabric.Object.prototype */ {\n\n /**\n * Type of an object (rect, circle, path, etc.).\n * Note that this property is meant to be read-only and not meant to be modified.\n * If you modify, certain parts of Fabric (such as JSON loading) won't work correctly.\n * @type String\n * @default\n */\n type: 'object',\n\n /**\n * Horizontal origin of transformation of an object (one of \"left\", \"right\", \"center\")\n * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups\n * @type String\n * @default\n */\n originX: 'left',\n\n /**\n * Vertical origin of transformation of an object (one of \"top\", \"bottom\", \"center\")\n * See http://jsfiddle.net/1ow02gea/244/ on how originX/originY affect objects in groups\n * @type String\n * @default\n */\n originY: 'top',\n\n /**\n * Top position of an object. Note that by default it's relative to object top. You can change this by setting originY={top/center/bottom}\n * @type Number\n * @default\n */\n top: 0,\n\n /**\n * Left position of an object. Note that by default it's relative to object left. You can change this by setting originX={left/center/right}\n * @type Number\n * @default\n */\n left: 0,\n\n /**\n * Object width\n * @type Number\n * @default\n */\n width: 0,\n\n /**\n * Object height\n * @type Number\n * @default\n */\n height: 0,\n\n /**\n * Object scale factor (horizontal)\n * @type Number\n * @default\n */\n scaleX: 1,\n\n /**\n * Object scale factor (vertical)\n * @type Number\n * @default\n */\n scaleY: 1,\n\n /**\n * When true, an object is rendered as flipped horizontally\n * @type Boolean\n * @default\n */\n flipX: false,\n\n /**\n * When true, an object is rendered as flipped vertically\n * @type Boolean\n * @default\n */\n flipY: false,\n\n /**\n * Opacity of an object\n * @type Number\n * @default\n */\n opacity: 1,\n\n /**\n * Angle of rotation of an object (in degrees)\n * @type Number\n * @default\n */\n angle: 0,\n\n /**\n * Angle of skew on x axes of an object (in degrees)\n * @type Number\n * @default\n */\n skewX: 0,\n\n /**\n * Angle of skew on y axes of an object (in degrees)\n * @type Number\n * @default\n */\n skewY: 0,\n\n /**\n * Size of object's controlling corners (in pixels)\n * @type Number\n * @default\n */\n cornerSize: 13,\n\n /**\n * When true, object's controlling corners are rendered as transparent inside (i.e. stroke instead of fill)\n * @type Boolean\n * @default\n */\n transparentCorners: true,\n\n /**\n * Default cursor value used when hovering over this object on canvas\n * @type String\n * @default\n */\n hoverCursor: null,\n\n /**\n * Default cursor value used when moving this object on canvas\n * @type String\n * @default\n */\n moveCursor: null,\n\n /**\n * Padding between object and its controlling borders (in pixels)\n * @type Number\n * @default\n */\n padding: 0,\n\n /**\n * Color of controlling borders of an object (when it's active)\n * @type String\n * @default\n */\n borderColor: 'rgba(102,153,255,0.75)',\n\n /**\n * Array specifying dash pattern of an object's borders (hasBorder must be true)\n * @since 1.6.2\n * @type Array\n */\n borderDashArray: null,\n\n /**\n * Color of controlling corners of an object (when it's active)\n * @type String\n * @default\n */\n cornerColor: 'rgba(102,153,255,0.5)',\n\n /**\n * Color of controlling corners of an object (when it's active and transparentCorners false)\n * @since 1.6.2\n * @type String\n * @default\n */\n cornerStrokeColor: null,\n\n /**\n * Specify style of control, 'rect' or 'circle'\n * @since 1.6.2\n * @type String\n */\n cornerStyle: 'rect',\n\n /**\n * Array specifying dash pattern of an object's control (hasBorder must be true)\n * @since 1.6.2\n * @type Array\n */\n cornerDashArray: null,\n\n /**\n * When true, this object will use center point as the origin of transformation\n * when being scaled via the controls.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredScaling: false,\n\n /**\n * When true, this object will use center point as the origin of transformation\n * when being rotated via the controls.\n * Backwards incompatibility note: This property replaces \"centerTransform\" (Boolean).\n * @since 1.3.4\n * @type Boolean\n * @default\n */\n centeredRotation: true,\n\n /**\n * Color of object's fill\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n fill: 'rgb(0,0,0)',\n\n /**\n * Fill rule used to fill an object\n * accepted values are nonzero, evenodd\n * Backwards incompatibility note: This property was used for setting globalCompositeOperation until v1.4.12 (use `fabric.Object#globalCompositeOperation` instead)\n * @type String\n * @default\n */\n fillRule: 'nonzero',\n\n /**\n * Composite rule used for canvas globalCompositeOperation\n * @type String\n * @default\n */\n globalCompositeOperation: 'source-over',\n\n /**\n * Background color of an object.\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n backgroundColor: '',\n\n /**\n * Selection Background color of an object. colored layer behind the object when it is active.\n * does not mix good with globalCompositeOperation methods.\n * @type String\n * @default\n */\n selectionBackgroundColor: '',\n\n /**\n * When defined, an object is rendered via stroke and this property specifies its color\n * takes css colors https://www.w3.org/TR/css-color-3/\n * @type String\n * @default\n */\n stroke: null,\n\n /**\n * Width of a stroke used to render this object\n * @type Number\n * @default\n */\n strokeWidth: 1,\n\n /**\n * Array specifying dash pattern of an object's stroke (stroke must be defined)\n * @type Array\n */\n strokeDashArray: null,\n\n /**\n * Line offset of an object's stroke\n * @type Number\n * @default\n */\n strokeDashOffset: 0,\n\n /**\n * Line endings style of an object's stroke (one of \"butt\", \"round\", \"square\")\n * @type String\n * @default\n */\n strokeLineCap: 'butt',\n\n /**\n * Corner style of an object's stroke (one of \"bevil\", \"round\", \"miter\")\n * @type String\n * @default\n */\n strokeLineJoin: 'miter',\n\n /**\n * Maximum miter length (used for strokeLineJoin = \"miter\") of an object's stroke\n * @type Number\n * @default\n */\n strokeMiterLimit: 4,\n\n /**\n * Shadow object representing shadow of this shape\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * Opacity of object's controlling borders when object is active and moving\n * @type Number\n * @default\n */\n borderOpacityWhenMoving: 0.4,\n\n /**\n * Scale factor of object's controlling borders\n * bigger number will make a thicker border\n * border is 1, so this is basically a border tickness\n * since there is no way to change the border itself.\n * @type Number\n * @default\n */\n borderScaleFactor: 1,\n\n /**\n * Transform matrix (similar to SVG's transform matrix)\n * This property has been depreacted. Since caching and and qrDecompose this\n * property can be handled with the standard top,left,scaleX,scaleY,angle and skewX.\n * A documentation example on how to parse and merge a transformMatrix will be provided before\n * completely removing it in fabric 4.0\n * If you are starting a project now, DO NOT use it.\n * @deprecated since 3.2.0\n * @type Array\n */\n transformMatrix: null,\n\n /**\n * Minimum allowed scale value of an object\n * @type Number\n * @default\n */\n minScaleLimit: 0,\n\n /**\n * When set to `false`, an object can not be selected for modification (using either point-click-based or group-based selection).\n * But events still fire on it.\n * @type Boolean\n * @default\n */\n selectable: true,\n\n /**\n * When set to `false`, an object can not be a target of events. All events propagate through it. Introduced in v1.3.4\n * @type Boolean\n * @default\n */\n evented: true,\n\n /**\n * When set to `false`, an object is not rendered on canvas\n * @type Boolean\n * @default\n */\n visible: true,\n\n /**\n * When set to `false`, object's controls are not displayed and can not be used to manipulate object\n * @type Boolean\n * @default\n */\n hasControls: true,\n\n /**\n * When set to `false`, object's controlling borders are not rendered\n * @type Boolean\n * @default\n */\n hasBorders: true,\n\n /**\n * When set to `false`, object's controlling rotating point will not be visible or selectable\n * @type Boolean\n * @default\n */\n hasRotatingPoint: true,\n\n /**\n * Offset for object's controlling rotating point (when enabled via `hasRotatingPoint`)\n * @type Number\n * @default\n */\n rotatingPointOffset: 40,\n\n /**\n * When set to `true`, objects are \"found\" on canvas on per-pixel basis rather than according to bounding box\n * @type Boolean\n * @default\n */\n perPixelTargetFind: false,\n\n /**\n * When `false`, default object's values are not included in its serialization\n * @type Boolean\n * @default\n */\n includeDefaultValues: true,\n\n /**\n * Function that determines clipping of an object (context is passed as a first argument).\n * If you are using code minification, ctx argument can be minified/manglied you should use\n * as a workaround `var ctx = arguments[0];` in the function;\n * Note that context origin is at the object's center point (not left/top corner)\n * @deprecated since 2.0.0\n * @type Function\n */\n clipTo: null,\n\n /**\n * When `true`, object horizontal movement is locked\n * @type Boolean\n * @default\n */\n lockMovementX: false,\n\n /**\n * When `true`, object vertical movement is locked\n * @type Boolean\n * @default\n */\n lockMovementY: false,\n\n /**\n * When `true`, object rotation is locked\n * @type Boolean\n * @default\n */\n lockRotation: false,\n\n /**\n * When `true`, object horizontal scaling is locked\n * @type Boolean\n * @default\n */\n lockScalingX: false,\n\n /**\n * When `true`, object vertical scaling is locked\n * @type Boolean\n * @default\n */\n lockScalingY: false,\n\n /**\n * When `true`, object non-uniform scaling is locked\n * @type Boolean\n * @default\n */\n lockUniScaling: false,\n\n /**\n * When `true`, object horizontal skewing is locked\n * @type Boolean\n * @default\n */\n lockSkewingX: false,\n\n /**\n * When `true`, object vertical skewing is locked\n * @type Boolean\n * @default\n */\n lockSkewingY: false,\n\n /**\n * When `true`, object cannot be flipped by scaling into negative values\n * @type Boolean\n * @default\n */\n lockScalingFlip: false,\n\n /**\n * When `true`, object is not exported in OBJECT/JSON\n * @since 1.6.3\n * @type Boolean\n * @default\n */\n excludeFromExport: false,\n\n /**\n * When `true`, object is cached on an additional canvas.\n * When `false`, object is not cached unless necessary ( clipPath )\n * default to true\n * @since 1.7.0\n * @type Boolean\n * @default true\n */\n objectCaching: objectCaching,\n\n /**\n * When `true`, object properties are checked for cache invalidation. In some particular\n * situation you may want this to be disabled ( spray brush, very big, groups)\n * or if your application does not allow you to modify properties for groups child you want\n * to disable it for groups.\n * default to false\n * since 1.7.0\n * @type Boolean\n * @default false\n */\n statefullCache: false,\n\n /**\n * When `true`, cache does not get updated during scaling. The picture will get blocky if scaled\n * too much and will be redrawn with correct details at the end of scaling.\n * this setting is performance and application dependant.\n * default to true\n * since 1.7.0\n * @type Boolean\n * @default true\n */\n noScaleCache: true,\n\n /**\n * When `false`, the stoke width will scale with the object.\n * When `true`, the stroke will always match the exact pixel size entered for stroke width.\n * default to false\n * @since 2.6.0\n * @type Boolean\n * @default false\n * @type Boolean\n * @default false\n */\n strokeUniform: false,\n\n /**\n * When set to `true`, object's cache will be rerendered next render call.\n * since 1.7.0\n * @type Boolean\n * @default true\n */\n dirty: true,\n\n /**\n * keeps the value of the last hovered corner during mouse move.\n * 0 is no corner, or 'mt', 'ml', 'mtr' etc..\n * It should be private, but there is no harm in using it as\n * a read-only property.\n * @type number|string|any\n * @default 0\n */\n __corner: 0,\n\n /**\n * Determines if the fill or the stroke is drawn first (one of \"fill\" or \"stroke\")\n * @type String\n * @default\n */\n paintFirst: 'fill',\n\n /**\n * List of properties to consider when checking if state\n * of an object is changed (fabric.Object#hasStateChanged)\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: (\n 'top left width height scaleX scaleY flipX flipY originX originY transformMatrix ' +\n 'stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit ' +\n 'angle opacity fill globalCompositeOperation shadow clipTo visible backgroundColor ' +\n 'skewX skewY fillRule paintFirst clipPath strokeUniform'\n ).split(' '),\n\n /**\n * List of properties to consider when checking if cache needs refresh\n * Those properties are checked by statefullCache ON ( or lazy mode if we want ) or from single\n * calls to Object.set(key, value). If the key is in this list, the object is marked as dirty\n * and refreshed at the next render\n * @type Array\n */\n cacheProperties: (\n 'fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform' +\n ' strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath'\n ).split(' '),\n\n /**\n * a fabricObject that, without stroke define a clipping area with their shape. filled in black\n * the clipPath object gets used when the object has rendered, and the context is placed in the center\n * of the object cacheCanvas.\n * If you want 0,0 of a clipPath to align with an object center, use clipPath.originX/Y to 'center'\n * @type fabric.Object\n */\n clipPath: undefined,\n\n /**\n * Meaningful ONLY when the object is used as clipPath.\n * if true, the clipPath will make the object clip to the outside of the clipPath\n * since 2.4.0\n * @type boolean\n * @default false\n */\n inverted: false,\n\n /**\n * Meaningful ONLY when the object is used as clipPath.\n * if true, the clipPath will have its top and left relative to canvas, and will\n * not be influenced by the object transform. This will make the clipPath relative\n * to the canvas, but clipping just a particular object.\n * WARNING this is beta, this feature may change or be renamed.\n * since 2.4.0\n * @type boolean\n * @default false\n */\n absolutePositioned: false,\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n if (options) {\n this.setOptions(options);\n }\n },\n\n /**\n * Create a the canvas used to keep the cached copy of the object\n * @private\n */\n _createCacheCanvas: function() {\n this._cacheProperties = {};\n this._cacheCanvas = fabric.util.createCanvasElement();\n this._cacheContext = this._cacheCanvas.getContext('2d');\n this._updateCacheCanvas();\n // if canvas gets created, is empty, so dirty.\n this.dirty = true;\n },\n\n /**\n * Limit the cache dimensions so that X * Y do not cross fabric.perfLimitSizeTotal\n * and each side do not cross fabric.cacheSideLimit\n * those numbers are configurable so that you can get as much detail as you want\n * making bargain with performances.\n * @param {Object} dims\n * @param {Object} dims.width width of canvas\n * @param {Object} dims.height height of canvas\n * @param {Object} dims.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @param {Object} dims.zoomY zoomY zoom value to unscale the canvas before drawing cache\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _limitCacheSize: function(dims) {\n var perfLimitSizeTotal = fabric.perfLimitSizeTotal,\n width = dims.width, height = dims.height,\n max = fabric.maxCacheSideLimit, min = fabric.minCacheSideLimit;\n if (width <= max && height <= max && width * height <= perfLimitSizeTotal) {\n if (width < min) {\n dims.width = min;\n }\n if (height < min) {\n dims.height = min;\n }\n return dims;\n }\n var ar = width / height, limitedDims = fabric.util.limitDimsByArea(ar, perfLimitSizeTotal),\n capValue = fabric.util.capValue,\n x = capValue(min, limitedDims.x, max),\n y = capValue(min, limitedDims.y, max);\n if (width > x) {\n dims.zoomX /= width / x;\n dims.width = x;\n dims.capped = true;\n }\n if (height > y) {\n dims.zoomY /= height / y;\n dims.height = y;\n dims.capped = true;\n }\n return dims;\n },\n\n /**\n * Return the dimension and the zoom level needed to create a cache canvas\n * big enough to host the object to be cached.\n * @private\n * @return {Object}.x width of object to be cached\n * @return {Object}.y height of object to be cached\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _getCacheCanvasDimensions: function() {\n var objectScale = this.getTotalObjectScaling(),\n // caculate dimensions without skewing\n dim = this._getTransformedDimensions(0, 0),\n neededX = dim.x * objectScale.scaleX / this.scaleX,\n neededY = dim.y * objectScale.scaleY / this.scaleY;\n return {\n // for sure this ALIASING_LIMIT is slightly creating problem\n // in situation in which the cache canvas gets an upper limit\n // also objectScale contains already scaleX and scaleY\n width: neededX + ALIASING_LIMIT,\n height: neededY + ALIASING_LIMIT,\n zoomX: objectScale.scaleX,\n zoomY: objectScale.scaleY,\n x: neededX,\n y: neededY\n };\n },\n\n /**\n * Update width and height of the canvas for cache\n * returns true or false if canvas needed resize.\n * @private\n * @return {Boolean} true if the canvas has been resized\n */\n _updateCacheCanvas: function() {\n var targetCanvas = this.canvas;\n if (this.noScaleCache && targetCanvas && targetCanvas._currentTransform) {\n var target = targetCanvas._currentTransform.target,\n action = targetCanvas._currentTransform.action;\n if (this === target && action.slice && action.slice(0, 5) === 'scale') {\n return false;\n }\n }\n var canvas = this._cacheCanvas,\n dims = this._limitCacheSize(this._getCacheCanvasDimensions()),\n minCacheSize = fabric.minCacheSideLimit,\n width = dims.width, height = dims.height, drawingWidth, drawingHeight,\n zoomX = dims.zoomX, zoomY = dims.zoomY,\n dimensionsChanged = width !== this.cacheWidth || height !== this.cacheHeight,\n zoomChanged = this.zoomX !== zoomX || this.zoomY !== zoomY,\n shouldRedraw = dimensionsChanged || zoomChanged,\n additionalWidth = 0, additionalHeight = 0, shouldResizeCanvas = false;\n if (dimensionsChanged) {\n var canvasWidth = this._cacheCanvas.width,\n canvasHeight = this._cacheCanvas.height,\n sizeGrowing = width > canvasWidth || height > canvasHeight,\n sizeShrinking = (width < canvasWidth * 0.9 || height < canvasHeight * 0.9) &&\n canvasWidth > minCacheSize && canvasHeight > minCacheSize;\n shouldResizeCanvas = sizeGrowing || sizeShrinking;\n if (sizeGrowing && !dims.capped && (width > minCacheSize || height > minCacheSize)) {\n additionalWidth = width * 0.1;\n additionalHeight = height * 0.1;\n }\n }\n if (shouldRedraw) {\n if (shouldResizeCanvas) {\n canvas.width = Math.ceil(width + additionalWidth);\n canvas.height = Math.ceil(height + additionalHeight);\n }\n else {\n this._cacheContext.setTransform(1, 0, 0, 1, 0, 0);\n this._cacheContext.clearRect(0, 0, canvas.width, canvas.height);\n }\n drawingWidth = dims.x / 2;\n drawingHeight = dims.y / 2;\n this.cacheTranslationX = Math.round(canvas.width / 2 - drawingWidth) + drawingWidth;\n this.cacheTranslationY = Math.round(canvas.height / 2 - drawingHeight) + drawingHeight;\n this.cacheWidth = width;\n this.cacheHeight = height;\n this._cacheContext.translate(this.cacheTranslationX, this.cacheTranslationY);\n this._cacheContext.scale(zoomX, zoomY);\n this.zoomX = zoomX;\n this.zoomY = zoomY;\n return true;\n }\n return false;\n },\n\n /**\n * Sets object's properties from options\n * @param {Object} [options] Options object\n */\n setOptions: function(options) {\n this._setOptions(options);\n this._initGradient(options.fill, 'fill');\n this._initGradient(options.stroke, 'stroke');\n this._initClipping(options);\n this._initPattern(options.fill, 'fill');\n this._initPattern(options.stroke, 'stroke');\n },\n\n /**\n * Transforms context when rendering an object\n * @param {CanvasRenderingContext2D} ctx Context\n */\n transform: function(ctx) {\n var m;\n if (this.group && !this.group._transformDone) {\n m = this.calcTransformMatrix();\n }\n else {\n m = this.calcOwnMatrix();\n }\n ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n },\n\n /**\n * Returns an object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS,\n\n object = {\n type: this.type,\n version: fabric.version,\n originX: this.originX,\n originY: this.originY,\n left: toFixed(this.left, NUM_FRACTION_DIGITS),\n top: toFixed(this.top, NUM_FRACTION_DIGITS),\n width: toFixed(this.width, NUM_FRACTION_DIGITS),\n height: toFixed(this.height, NUM_FRACTION_DIGITS),\n fill: (this.fill && this.fill.toObject) ? this.fill.toObject() : this.fill,\n stroke: (this.stroke && this.stroke.toObject) ? this.stroke.toObject() : this.stroke,\n strokeWidth: toFixed(this.strokeWidth, NUM_FRACTION_DIGITS),\n strokeDashArray: this.strokeDashArray ? this.strokeDashArray.concat() : this.strokeDashArray,\n strokeLineCap: this.strokeLineCap,\n strokeDashOffset: this.strokeDashOffset,\n strokeLineJoin: this.strokeLineJoin,\n // TODO: add this before release\n // strokeUniform: this.strokeUniform,\n strokeMiterLimit: toFixed(this.strokeMiterLimit, NUM_FRACTION_DIGITS),\n scaleX: toFixed(this.scaleX, NUM_FRACTION_DIGITS),\n scaleY: toFixed(this.scaleY, NUM_FRACTION_DIGITS),\n angle: toFixed(this.angle, NUM_FRACTION_DIGITS),\n flipX: this.flipX,\n flipY: this.flipY,\n opacity: toFixed(this.opacity, NUM_FRACTION_DIGITS),\n shadow: (this.shadow && this.shadow.toObject) ? this.shadow.toObject() : this.shadow,\n visible: this.visible,\n clipTo: this.clipTo && String(this.clipTo),\n backgroundColor: this.backgroundColor,\n fillRule: this.fillRule,\n paintFirst: this.paintFirst,\n globalCompositeOperation: this.globalCompositeOperation,\n transformMatrix: this.transformMatrix ? this.transformMatrix.concat() : null,\n skewX: toFixed(this.skewX, NUM_FRACTION_DIGITS),\n skewY: toFixed(this.skewY, NUM_FRACTION_DIGITS),\n };\n\n if (this.clipPath) {\n object.clipPath = this.clipPath.toObject(propertiesToInclude);\n object.clipPath.inverted = this.clipPath.inverted;\n object.clipPath.absolutePositioned = this.clipPath.absolutePositioned;\n }\n\n fabric.util.populateWithProperties(this, object, propertiesToInclude);\n if (!this.includeDefaultValues) {\n object = this._removeDefaultValues(object);\n }\n\n return object;\n },\n\n /**\n * Returns (dataless) object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n // will be overwritten by subclasses\n return this.toObject(propertiesToInclude);\n },\n\n /**\n * @private\n * @param {Object} object\n */\n _removeDefaultValues: function(object) {\n var prototype = fabric.util.getKlass(object.type).prototype,\n stateProperties = prototype.stateProperties;\n stateProperties.forEach(function(prop) {\n if (prop === 'left' || prop === 'top') {\n return;\n }\n if (object[prop] === prototype[prop]) {\n delete object[prop];\n }\n var isArray = Object.prototype.toString.call(object[prop]) === '[object Array]' &&\n Object.prototype.toString.call(prototype[prop]) === '[object Array]';\n\n // basically a check for [] === []\n if (isArray && object[prop].length === 0 && prototype[prop].length === 0) {\n delete object[prop];\n }\n });\n\n return object;\n },\n\n /**\n * Returns a string representation of an instance\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Return the object scale factor counting also the group scaling\n * @return {Object} object with scaleX and scaleY properties\n */\n getObjectScaling: function() {\n var options = fabric.util.qrDecompose(this.calcTransformMatrix());\n return { scaleX: Math.abs(options.scaleX), scaleY: Math.abs(options.scaleY) };\n },\n\n /**\n * Return the object scale factor counting also the group scaling, zoom and retina\n * @return {Object} object with scaleX and scaleY properties\n */\n getTotalObjectScaling: function() {\n var scale = this.getObjectScaling(), scaleX = scale.scaleX, scaleY = scale.scaleY;\n if (this.canvas) {\n var zoom = this.canvas.getZoom();\n var retina = this.canvas.getRetinaScaling();\n scaleX *= zoom * retina;\n scaleY *= zoom * retina;\n }\n return { scaleX: scaleX, scaleY: scaleY };\n },\n\n /**\n * Return the object opacity counting also the group property\n * @return {Number}\n */\n getObjectOpacity: function() {\n var opacity = this.opacity;\n if (this.group) {\n opacity *= this.group.getObjectOpacity();\n }\n return opacity;\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Object} thisArg\n */\n _set: function(key, value) {\n var shouldConstrainValue = (key === 'scaleX' || key === 'scaleY'),\n isChanged = this[key] !== value, groupNeedsUpdate = false;\n\n if (shouldConstrainValue) {\n value = this._constrainScale(value);\n }\n if (key === 'scaleX' && value < 0) {\n this.flipX = !this.flipX;\n value *= -1;\n }\n else if (key === 'scaleY' && value < 0) {\n this.flipY = !this.flipY;\n value *= -1;\n }\n else if (key === 'shadow' && value && !(value instanceof fabric.Shadow)) {\n value = new fabric.Shadow(value);\n }\n else if (key === 'dirty' && this.group) {\n this.group.set('dirty', value);\n }\n\n this[key] = value;\n\n if (isChanged) {\n groupNeedsUpdate = this.group && this.group.isOnACache();\n if (this.cacheProperties.indexOf(key) > -1) {\n this.dirty = true;\n groupNeedsUpdate && this.group.set('dirty', true);\n }\n else if (groupNeedsUpdate && this.stateProperties.indexOf(key) > -1) {\n this.group.set('dirty', true);\n }\n }\n\n return this;\n },\n\n /**\n * This callback function is called by the parent group of an object every\n * time a non-delegated property changes on the group. It is passed the key\n * and value as parameters. Not adding in this function's signature to avoid\n * Travis build error about unused variables.\n */\n setOnGroup: function() {\n // implemented by sub-classes, as needed.\n },\n\n /**\n * Retrieves viewportTransform from Object's canvas if possible\n * @method getViewportTransform\n * @memberOf fabric.Object.prototype\n * @return {Array}\n */\n getViewportTransform: function() {\n if (this.canvas && this.canvas.viewportTransform) {\n return this.canvas.viewportTransform;\n }\n return fabric.iMatrix.concat();\n },\n\n /*\n * @private\n * return if the object would be visible in rendering\n * @memberOf fabric.Object.prototype\n * @return {Boolean}\n */\n isNotVisible: function() {\n return this.opacity === 0 ||\n (this.width === 0 && this.height === 0 && this.strokeWidth === 0) ||\n !this.visible;\n },\n\n /**\n * Renders an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n // do not render if width/height are zeros or object is not visible\n if (this.isNotVisible()) {\n return;\n }\n if (this.canvas && this.canvas.skipOffscreen && !this.group && !this.isOnScreen()) {\n return;\n }\n ctx.save();\n this._setupCompositeOperation(ctx);\n this.drawSelectionBackground(ctx);\n this.transform(ctx);\n this._setOpacity(ctx);\n this._setShadow(ctx, this);\n if (this.transformMatrix) {\n ctx.transform.apply(ctx, this.transformMatrix);\n }\n this.clipTo && fabric.util.clipContext(this, ctx);\n if (this.shouldCache()) {\n this.renderCache();\n this.drawCacheOnCanvas(ctx);\n }\n else {\n this._removeCacheCanvas();\n this.dirty = false;\n this.drawObject(ctx);\n if (this.objectCaching && this.statefullCache) {\n this.saveState({ propertySet: 'cacheProperties' });\n }\n }\n this.clipTo && ctx.restore();\n ctx.restore();\n },\n\n renderCache: function(options) {\n options = options || {};\n if (!this._cacheCanvas) {\n this._createCacheCanvas();\n }\n if (this.isCacheDirty()) {\n this.statefullCache && this.saveState({ propertySet: 'cacheProperties' });\n this.drawObject(this._cacheContext, options.forClipping);\n this.dirty = false;\n }\n },\n\n /**\n * Remove cacheCanvas and its dimensions from the objects\n */\n _removeCacheCanvas: function() {\n this._cacheCanvas = null;\n this.cacheWidth = 0;\n this.cacheHeight = 0;\n },\n\n /**\n * return true if the object will draw a stroke\n * Does not consider text styles. This is just a shortcut used at rendering time\n * We want it to be an aproximation and be fast.\n * wrote to avoid extra caching, it has to return true when stroke happens,\n * can guess when it will not happen at 100% chance, does not matter if it misses\n * some use case where the stroke is invisible.\n * @since 3.0.0\n * @returns Boolean\n */\n hasStroke: function() {\n return this.stroke && this.stroke !== 'transparent' && this.strokeWidth !== 0;\n },\n\n /**\n * return true if the object will draw a fill\n * Does not consider text styles. This is just a shortcut used at rendering time\n * We want it to be an aproximation and be fast.\n * wrote to avoid extra caching, it has to return true when fill happens,\n * can guess when it will not happen at 100% chance, does not matter if it misses\n * some use case where the fill is invisible.\n * @since 3.0.0\n * @returns Boolean\n */\n hasFill: function() {\n return this.fill && this.fill !== 'transparent';\n },\n\n /**\n * When set to `true`, force the object to have its own cache, even if it is inside a group\n * it may be needed when your object behave in a particular way on the cache and always needs\n * its own isolated canvas to render correctly.\n * Created to be overridden\n * since 1.7.12\n * @returns Boolean\n */\n needsItsOwnCache: function() {\n if (this.paintFirst === 'stroke' &&\n this.hasFill() && this.hasStroke() && typeof this.shadow === 'object') {\n return true;\n }\n if (this.clipPath) {\n return true;\n }\n return false;\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * Read as: cache if is needed, or if the feature is enabled but we are not already caching.\n * @return {Boolean}\n */\n shouldCache: function() {\n this.ownCaching = this.needsItsOwnCache() || (\n this.objectCaching &&\n (!this.group || !this.group.isOnACache())\n );\n return this.ownCaching;\n },\n\n /**\n * Check if this object or a child object will cast a shadow\n * used by Group.shouldCache to know if child has a shadow recursively\n * @return {Boolean}\n */\n willDrawShadow: function() {\n return !!this.shadow && (this.shadow.offsetX !== 0 || this.shadow.offsetY !== 0);\n },\n\n /**\n * Execute the drawing operation for an object clipPath\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawClipPathOnCache: function(ctx) {\n var path = this.clipPath;\n ctx.save();\n // DEBUG: uncomment this line, comment the following\n // ctx.globalAlpha = 0.4\n if (path.inverted) {\n ctx.globalCompositeOperation = 'destination-out';\n }\n else {\n ctx.globalCompositeOperation = 'destination-in';\n }\n //ctx.scale(1 / 2, 1 / 2);\n if (path.absolutePositioned) {\n var m = fabric.util.invertTransform(this.calcTransformMatrix());\n ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]);\n }\n path.transform(ctx);\n ctx.scale(1 / path.zoomX, 1 / path.zoomY);\n ctx.drawImage(path._cacheCanvas, -path.cacheTranslationX, -path.cacheTranslationY);\n ctx.restore();\n },\n\n /**\n * Execute the drawing operation for an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawObject: function(ctx, forClipping) {\n var originalFill = this.fill, originalStroke = this.stroke;\n if (forClipping) {\n this.fill = 'black';\n this.stroke = '';\n this._setClippingProperties(ctx);\n }\n else {\n this._renderBackground(ctx);\n this._setStrokeStyles(ctx, this);\n this._setFillStyles(ctx, this);\n }\n this._render(ctx);\n this._drawClipPath(ctx);\n this.fill = originalFill;\n this.stroke = originalStroke;\n },\n\n _drawClipPath: function(ctx) {\n var path = this.clipPath;\n if (!path) { return; }\n // needed to setup a couple of variables\n // path canvas gets overridden with this one.\n // TODO find a better solution?\n path.canvas = this.canvas;\n path.shouldCache();\n path._transformDone = true;\n path.renderCache({ forClipping: true });\n this.drawClipPathOnCache(ctx);\n },\n\n /**\n * Paint the cached copy of the object on the target context.\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawCacheOnCanvas: function(ctx) {\n ctx.scale(1 / this.zoomX, 1 / this.zoomY);\n ctx.drawImage(this._cacheCanvas, -this.cacheTranslationX, -this.cacheTranslationY);\n },\n\n /**\n * Check if cache is dirty\n * @param {Boolean} skipCanvas skip canvas checks because this object is painted\n * on parent canvas.\n */\n isCacheDirty: function(skipCanvas) {\n if (this.isNotVisible()) {\n return false;\n }\n if (this._cacheCanvas && !skipCanvas && this._updateCacheCanvas()) {\n // in this case the context is already cleared.\n return true;\n }\n else {\n if (this.dirty ||\n (this.clipPath && this.clipPath.absolutePositioned) ||\n (this.statefullCache && this.hasStateChanged('cacheProperties'))\n ) {\n if (this._cacheCanvas && !skipCanvas) {\n var width = this.cacheWidth / this.zoomX;\n var height = this.cacheHeight / this.zoomY;\n this._cacheContext.clearRect(-width / 2, -height / 2, width, height);\n }\n return true;\n }\n }\n return false;\n },\n\n /**\n * Draws a background for the object big as its untransformed dimensions\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderBackground: function(ctx) {\n if (!this.backgroundColor) {\n return;\n }\n var dim = this._getNonTransformedDimensions();\n ctx.fillStyle = this.backgroundColor;\n\n ctx.fillRect(\n -dim.x / 2,\n -dim.y / 2,\n dim.x,\n dim.y\n );\n // if there is background color no other shadows\n // should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _setOpacity: function(ctx) {\n if (this.group && !this.group._transformDone) {\n ctx.globalAlpha = this.getObjectOpacity();\n }\n else {\n ctx.globalAlpha *= this.opacity;\n }\n },\n\n _setStrokeStyles: function(ctx, decl) {\n if (decl.stroke) {\n ctx.lineWidth = decl.strokeWidth;\n ctx.lineCap = decl.strokeLineCap;\n ctx.lineDashOffset = decl.strokeDashOffset;\n ctx.lineJoin = decl.strokeLineJoin;\n ctx.miterLimit = decl.strokeMiterLimit;\n ctx.strokeStyle = decl.stroke.toLive\n ? decl.stroke.toLive(ctx, this)\n : decl.stroke;\n }\n },\n\n _setFillStyles: function(ctx, decl) {\n if (decl.fill) {\n ctx.fillStyle = decl.fill.toLive\n ? decl.fill.toLive(ctx, this)\n : decl.fill;\n }\n },\n\n _setClippingProperties: function(ctx) {\n ctx.globalAlpha = 1;\n ctx.strokeStyle = 'transparent';\n ctx.fillStyle = '#000000';\n },\n\n /**\n * @private\n * Sets line dash\n * @param {CanvasRenderingContext2D} ctx Context to set the dash line on\n * @param {Array} dashArray array representing dashes\n * @param {Function} alternative function to call if browser does not support lineDash\n */\n _setLineDash: function(ctx, dashArray, alternative) {\n if (!dashArray || dashArray.length === 0) {\n return;\n }\n // Spec requires the concatenation of two copies the dash list when the number of elements is odd\n if (1 & dashArray.length) {\n dashArray.push.apply(dashArray, dashArray);\n }\n if (supportsLineDash) {\n ctx.setLineDash(dashArray);\n }\n else {\n alternative && alternative(ctx);\n }\n },\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n */\n _renderControls: function(ctx, styleOverride) {\n var vpt = this.getViewportTransform(),\n matrix = this.calcTransformMatrix(),\n options, drawBorders, drawControls;\n styleOverride = styleOverride || { };\n drawBorders = typeof styleOverride.hasBorders !== 'undefined' ? styleOverride.hasBorders : this.hasBorders;\n drawControls = typeof styleOverride.hasControls !== 'undefined' ? styleOverride.hasControls : this.hasControls;\n matrix = fabric.util.multiplyTransformMatrices(vpt, matrix);\n options = fabric.util.qrDecompose(matrix);\n ctx.save();\n ctx.translate(options.translateX, options.translateY);\n ctx.lineWidth = 1 * this.borderScaleFactor;\n if (!this.group) {\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n }\n if (styleOverride.forActiveSelection) {\n ctx.rotate(degreesToRadians(options.angle));\n drawBorders && this.drawBordersInGroup(ctx, options, styleOverride);\n }\n else {\n ctx.rotate(degreesToRadians(this.angle));\n drawBorders && this.drawBorders(ctx, styleOverride);\n }\n drawControls && this.drawControls(ctx, styleOverride);\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _setShadow: function(ctx) {\n if (!this.shadow) {\n return;\n }\n\n var shadow = this.shadow, canvas = this.canvas, scaling,\n multX = (canvas && canvas.viewportTransform[0]) || 1,\n multY = (canvas && canvas.viewportTransform[3]) || 1;\n if (shadow.nonScaling) {\n scaling = { scaleX: 1, scaleY: 1 };\n }\n else {\n scaling = this.getObjectScaling();\n }\n if (canvas && canvas._isRetinaScaling()) {\n multX *= fabric.devicePixelRatio;\n multY *= fabric.devicePixelRatio;\n }\n ctx.shadowColor = shadow.color;\n ctx.shadowBlur = shadow.blur * fabric.browserShadowBlurConstant *\n (multX + multY) * (scaling.scaleX + scaling.scaleY) / 4;\n ctx.shadowOffsetX = shadow.offsetX * multX * scaling.scaleX;\n ctx.shadowOffsetY = shadow.offsetY * multY * scaling.scaleY;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _removeShadow: function(ctx) {\n if (!this.shadow) {\n return;\n }\n\n ctx.shadowColor = '';\n ctx.shadowBlur = ctx.shadowOffsetX = ctx.shadowOffsetY = 0;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} filler fabric.Pattern or fabric.Gradient\n * @return {Object} offset.offsetX offset for text rendering\n * @return {Object} offset.offsetY offset for text rendering\n */\n _applyPatternGradientTransform: function(ctx, filler) {\n if (!filler || !filler.toLive) {\n return { offsetX: 0, offsetY: 0 };\n }\n var t = filler.gradientTransform || filler.patternTransform;\n var offsetX = -this.width / 2 + filler.offsetX || 0,\n offsetY = -this.height / 2 + filler.offsetY || 0;\n\n if (filler.gradientUnits === 'percentage') {\n ctx.transform(this.width, 0, 0, this.height, offsetX, offsetY);\n }\n else {\n ctx.transform(1, 0, 0, 1, offsetX, offsetY);\n }\n if (t) {\n ctx.transform(t[0], t[1], t[2], t[3], t[4], t[5]);\n }\n return { offsetX: offsetX, offsetY: offsetY };\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderPaintInOrder: function(ctx) {\n if (this.paintFirst === 'stroke') {\n this._renderStroke(ctx);\n this._renderFill(ctx);\n }\n else {\n this._renderFill(ctx);\n this._renderStroke(ctx);\n }\n },\n\n /**\n * @private\n * function that actually render something on the context.\n * empty here to allow Obects to work on tests to benchmark fabric functionalites\n * not related to rendering\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(/* ctx */) {\n\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderFill: function(ctx) {\n if (!this.fill) {\n return;\n }\n\n ctx.save();\n this._applyPatternGradientTransform(ctx, this.fill);\n if (this.fillRule === 'evenodd') {\n ctx.fill('evenodd');\n }\n else {\n ctx.fill();\n }\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderStroke: function(ctx) {\n if (!this.stroke || this.strokeWidth === 0) {\n return;\n }\n\n if (this.shadow && !this.shadow.affectStroke) {\n this._removeShadow(ctx);\n }\n\n ctx.save();\n if (this.strokeUniform && this.group) {\n var scaling = this.getObjectScaling();\n ctx.scale(1 / scaling.scaleX, 1 / scaling.scaleY);\n }\n else if (this.strokeUniform) {\n ctx.scale(1 / this.scaleX, 1 / this.scaleY);\n }\n this._setLineDash(ctx, this.strokeDashArray, this._renderDashedStroke);\n if (this.stroke.toLive && this.stroke.gradientUnits === 'percentage') {\n // need to transform gradient in a pattern.\n // this is a slow process. If you are hitting this codepath, and the object\n // is not using caching, you should consider switching it on.\n // we need a canvas as big as the current object caching canvas.\n this._applyPatternForTransformedGradient(ctx, this.stroke);\n }\n else {\n this._applyPatternGradientTransform(ctx, this.stroke);\n }\n ctx.stroke();\n ctx.restore();\n },\n\n /**\n * This function try to patch the missing gradientTransform on canvas gradients.\n * transforming a context to transform the gradient, is going to transform the stroke too.\n * we want to transform the gradient but not the stroke operation, so we create\n * a transformed gradient on a pattern and then we use the pattern instead of the gradient.\n * this method has drwabacks: is slow, is in low resolution, needs a patch for when the size\n * is limited.\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {fabric.Gradient} filler a fabric gradient instance\n */\n _applyPatternForTransformedGradient: function(ctx, filler) {\n var dims = this._limitCacheSize(this._getCacheCanvasDimensions()),\n pCanvas = fabric.util.createCanvasElement(), pCtx, retinaScaling = this.canvas.getRetinaScaling(),\n width = dims.x / this.scaleX / retinaScaling, height = dims.y / this.scaleY / retinaScaling;\n pCanvas.width = width;\n pCanvas.height = height;\n pCtx = pCanvas.getContext('2d');\n pCtx.beginPath(); pCtx.moveTo(0, 0); pCtx.lineTo(width, 0); pCtx.lineTo(width, height);\n pCtx.lineTo(0, height); pCtx.closePath();\n pCtx.translate(width / 2, height / 2);\n pCtx.scale(\n dims.zoomX / this.scaleX / retinaScaling,\n dims.zoomY / this.scaleY / retinaScaling\n );\n this._applyPatternGradientTransform(pCtx, filler);\n pCtx.fillStyle = filler.toLive(ctx);\n pCtx.fill();\n ctx.translate(-this.width / 2 - this.strokeWidth / 2, -this.height / 2 - this.strokeWidth / 2);\n ctx.scale(\n retinaScaling * this.scaleX / dims.zoomX,\n retinaScaling * this.scaleY / dims.zoomY\n );\n ctx.strokeStyle = pCtx.createPattern(pCanvas, 'no-repeat');\n },\n\n /**\n * This function is an helper for svg import. it returns the center of the object in the svg\n * untransformed coordinates\n * @private\n * @return {Object} center point from element coordinates\n */\n _findCenterFromElement: function() {\n return { x: this.left + this.width / 2, y: this.top + this.height / 2 };\n },\n\n /**\n * This function is an helper for svg import. it decompose the transformMatrix\n * and assign properties to object.\n * untransformed coordinates\n * @private\n * @chainable\n */\n _assignTransformMatrixProps: function() {\n if (this.transformMatrix) {\n var options = fabric.util.qrDecompose(this.transformMatrix);\n this.flipX = false;\n this.flipY = false;\n this.set('scaleX', options.scaleX);\n this.set('scaleY', options.scaleY);\n this.angle = options.angle;\n this.skewX = options.skewX;\n this.skewY = 0;\n }\n },\n\n /**\n * This function is an helper for svg import. it removes the transform matrix\n * and set to object properties that fabricjs can handle\n * @private\n * @param {Object} preserveAspectRatioOptions\n * @return {thisArg}\n */\n _removeTransformMatrix: function(preserveAspectRatioOptions) {\n var center = this._findCenterFromElement();\n if (this.transformMatrix) {\n this._assignTransformMatrixProps();\n center = fabric.util.transformPoint(center, this.transformMatrix);\n }\n this.transformMatrix = null;\n if (preserveAspectRatioOptions) {\n this.scaleX *= preserveAspectRatioOptions.scaleX;\n this.scaleY *= preserveAspectRatioOptions.scaleY;\n this.cropX = preserveAspectRatioOptions.cropX;\n this.cropY = preserveAspectRatioOptions.cropY;\n center.x += preserveAspectRatioOptions.offsetLeft;\n center.y += preserveAspectRatioOptions.offsetTop;\n this.width = preserveAspectRatioOptions.width;\n this.height = preserveAspectRatioOptions.height;\n }\n this.setPositionByOrigin(center, 'center', 'center');\n },\n\n /**\n * Clones an instance, using a callback method will work for every object.\n * @param {Function} callback Callback is invoked with a clone as a first argument\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n */\n clone: function(callback, propertiesToInclude) {\n var objectForm = this.toObject(propertiesToInclude);\n if (this.constructor.fromObject) {\n this.constructor.fromObject(objectForm, callback);\n }\n else {\n fabric.Object._fromObject('Object', objectForm, callback);\n }\n },\n\n /**\n * Creates an instance of fabric.Image out of an object\n * could make use of both toDataUrl or toCanvasElement.\n * @param {Function} callback callback, invoked with an instance as a first argument\n * @param {Object} [options] for clone as image, passed to toDataURL\n * @param {String} [options.format=png] The format of the output image. Either \"jpeg\" or \"png\"\n * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {fabric.Object} thisArg\n */\n cloneAsImage: function(callback, options) {\n var canvasEl = this.toCanvasElement(options);\n if (callback) {\n callback(new fabric.Image(canvasEl));\n }\n return this;\n },\n\n /**\n * Converts an object into a HTMLCanvas element\n * @param {Object} options Options object\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {HTMLCanvasElement} Returns DOM element with the fabric.Object\n */\n toCanvasElement: function(options) {\n options || (options = { });\n\n var utils = fabric.util, origParams = utils.saveObjectTransform(this),\n originalGroup = this.group,\n originalShadow = this.shadow, abs = Math.abs,\n multiplier = (options.multiplier || 1) * (options.enableRetinaScaling ? fabric.devicePixelRatio : 1);\n delete this.group;\n if (options.withoutTransform) {\n utils.resetObjectTransform(this);\n }\n if (options.withoutShadow) {\n this.shadow = null;\n }\n\n var el = fabric.util.createCanvasElement(),\n // skip canvas zoom and calculate with setCoords now.\n boundingRect = this.getBoundingRect(true, true),\n shadow = this.shadow, scaling,\n shadowOffset = { x: 0, y: 0 }, shadowBlur,\n width, height;\n\n if (shadow) {\n shadowBlur = shadow.blur;\n if (shadow.nonScaling) {\n scaling = { scaleX: 1, scaleY: 1 };\n }\n else {\n scaling = this.getObjectScaling();\n }\n // consider non scaling shadow.\n shadowOffset.x = 2 * Math.round(abs(shadow.offsetX) + shadowBlur) * (abs(scaling.scaleX));\n shadowOffset.y = 2 * Math.round(abs(shadow.offsetY) + shadowBlur) * (abs(scaling.scaleY));\n }\n width = boundingRect.width + shadowOffset.x;\n height = boundingRect.height + shadowOffset.y;\n // if the current width/height is not an integer\n // we need to make it so.\n el.width = Math.ceil(width);\n el.height = Math.ceil(height);\n var canvas = new fabric.StaticCanvas(el, {\n enableRetinaScaling: false,\n renderOnAddRemove: false,\n skipOffscreen: false,\n });\n if (options.format === 'jpeg') {\n canvas.backgroundColor = '#fff';\n }\n this.setPositionByOrigin(new fabric.Point(canvas.width / 2, canvas.height / 2), 'center', 'center');\n\n var originalCanvas = this.canvas;\n canvas.add(this);\n var canvasEl = canvas.toCanvasElement(multiplier || 1, options);\n this.shadow = originalShadow;\n this.set('canvas', originalCanvas);\n if (originalGroup) {\n this.group = originalGroup;\n }\n this.set(origParams).setCoords();\n // canvas.dispose will call image.dispose that will nullify the elements\n // since this canvas is a simple element for the process, we remove references\n // to objects in this way in order to avoid object trashing.\n canvas._objects = [];\n canvas.dispose();\n canvas = null;\n\n return canvasEl;\n },\n\n /**\n * Converts an object into a data-url-like string\n * @param {Object} options Options object\n * @param {String} [options.format=png] The format of the output image. Either \"jpeg\" or \"png\"\n * @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.\n * @param {Number} [options.multiplier=1] Multiplier to scale by\n * @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14\n * @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14\n * @param {Number} [options.width] Cropping width. Introduced in v1.2.14\n * @param {Number} [options.height] Cropping height. Introduced in v1.2.14\n * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4\n * @param {Boolean} [options.withoutTransform] Remove current object transform ( no scale , no angle, no flip, no skew ). Introduced in 2.3.4\n * @param {Boolean} [options.withoutShadow] Remove current object shadow. Introduced in 2.4.2\n * @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format\n */\n toDataURL: function(options) {\n options || (options = { });\n return fabric.util.toDataURL(this.toCanvasElement(options), options.format || 'png', options.quality || 1);\n },\n\n /**\n * Returns true if specified type is identical to the type of an instance\n * @param {String} type Type to check against\n * @return {Boolean}\n */\n isType: function(type) {\n return this.type === type;\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity of this instance (is 1 unless subclassed)\n */\n complexity: function() {\n return 1;\n },\n\n /**\n * Returns a JSON representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} JSON\n */\n toJSON: function(propertiesToInclude) {\n // delegate, not alias\n return this.toObject(propertiesToInclude);\n },\n\n /**\n * Sets gradient (fill or stroke) of an object\n * percentages for x1,x2,y1,y2,r1,r2 together with gradientUnits 'pixels', are not supported.\n * Backwards incompatibility note: This method was named \"setGradientFill\" until v1.1.0\n * @param {String} property Property name 'stroke' or 'fill'\n * @param {Object} [options] Options object\n * @param {String} [options.type] Type of gradient 'radial' or 'linear'\n * @param {Number} [options.x1=0] x-coordinate of start point\n * @param {Number} [options.y1=0] y-coordinate of start point\n * @param {Number} [options.x2=0] x-coordinate of end point\n * @param {Number} [options.y2=0] y-coordinate of end point\n * @param {Number} [options.r1=0] Radius of start point (only for radial gradients)\n * @param {Number} [options.r2=0] Radius of end point (only for radial gradients)\n * @param {Object} [options.colorStops] Color stops object eg. {0: 'ff0000', 1: '000000'}\n * @param {Object} [options.gradientTransform] transformMatrix for gradient\n * @return {fabric.Object} thisArg\n * @chainable\n * @deprecated since 3.4.0\n * @see {@link http://jsfiddle.net/fabricjs/58y8b/|jsFiddle demo}\n * @example Set linear gradient\n * object.setGradient('fill', {\n * type: 'linear',\n * x1: -object.width / 2,\n * y1: 0,\n * x2: object.width / 2,\n * y2: 0,\n * colorStops: {\n * 0: 'red',\n * 0.5: '#005555',\n * 1: 'rgba(0,0,255,0.5)'\n * }\n * });\n * canvas.renderAll();\n * @example Set radial gradient\n * object.setGradient('fill', {\n * type: 'radial',\n * x1: 0,\n * y1: 0,\n * x2: 0,\n * y2: 0,\n * r1: object.width / 2,\n * r2: 10,\n * colorStops: {\n * 0: 'red',\n * 0.5: '#005555',\n * 1: 'rgba(0,0,255,0.5)'\n * }\n * });\n * canvas.renderAll();\n */\n setGradient: function(property, options) {\n options || (options = { });\n\n var gradient = { colorStops: [] };\n\n gradient.type = options.type || (options.r1 || options.r2 ? 'radial' : 'linear');\n gradient.coords = {\n x1: options.x1,\n y1: options.y1,\n x2: options.x2,\n y2: options.y2\n };\n gradient.gradientUnits = options.gradientUnits || 'pixels';\n if (options.r1 || options.r2) {\n gradient.coords.r1 = options.r1;\n gradient.coords.r2 = options.r2;\n }\n\n gradient.gradientTransform = options.gradientTransform;\n fabric.Gradient.prototype.addColorStop.call(gradient, options.colorStops);\n\n return this.set(property, fabric.Gradient.forObject(this, gradient));\n },\n\n /**\n * Sets pattern fill of an object\n * @param {Object} options Options object\n * @param {(String|HTMLImageElement)} options.source Pattern source\n * @param {String} [options.repeat=repeat] Repeat property of a pattern (one of repeat, repeat-x, repeat-y or no-repeat)\n * @param {Number} [options.offsetX=0] Pattern horizontal offset from object's left/top corner\n * @param {Number} [options.offsetY=0] Pattern vertical offset from object's left/top corner\n * @param {Function} [callback] Callback to invoke when image set as a pattern\n * @return {fabric.Object} thisArg\n * @chainable\n * @deprecated since 3.5.0\n * @see {@link http://jsfiddle.net/fabricjs/QT3pa/|jsFiddle demo}\n * @example Set pattern\n * object.setPatternFill({\n * source: 'http://fabricjs.com/assets/escheresque_ste.png',\n * repeat: 'repeat'\n * },canvas.renderAll.bind(canvas));\n */\n setPatternFill: function(options, callback) {\n return this.set('fill', new fabric.Pattern(options, callback));\n },\n\n /**\n * Sets {@link fabric.Object#shadow|shadow} of an object\n * @param {Object|String} [options] Options object or string (e.g. \"2px 2px 10px rgba(0,0,0,0.2)\")\n * @param {String} [options.color=rgb(0,0,0)] Shadow color\n * @param {Number} [options.blur=0] Shadow blur\n * @param {Number} [options.offsetX=0] Shadow horizontal offset\n * @param {Number} [options.offsetY=0] Shadow vertical offset\n * @return {fabric.Object} thisArg\n * @chainable\n * @deprecated since 3.5.0\n * @see {@link http://jsfiddle.net/fabricjs/7gvJG/|jsFiddle demo}\n * @example Set shadow with string notation\n * object.setShadow('2px 2px 10px rgba(0,0,0,0.2)');\n * canvas.renderAll();\n * @example Set shadow with object notation\n * object.setShadow({\n * color: 'red',\n * blur: 10,\n * offsetX: 20,\n * offsetY: 20\n * });\n * canvas.renderAll();\n */\n setShadow: function(options) {\n return this.set('shadow', options ? new fabric.Shadow(options) : null);\n },\n\n /**\n * Sets \"color\" of an instance (alias of `set('fill', …)`)\n * @param {String} color Color value\n * @return {fabric.Object} thisArg\n * @deprecated since 3.5.0\n * @chainable\n */\n setColor: function(color) {\n this.set('fill', color);\n return this;\n },\n\n /**\n * Sets \"angle\" of an instance with centered rotation\n * @param {Number} angle Angle value (in degrees)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n rotate: function(angle) {\n var shouldCenterOrigin = (this.originX !== 'center' || this.originY !== 'center') && this.centeredRotation;\n\n if (shouldCenterOrigin) {\n this._setOriginToCenter();\n }\n\n this.set('angle', angle);\n\n if (shouldCenterOrigin) {\n this._resetOrigin();\n }\n\n return this;\n },\n\n /**\n * Centers object horizontally on canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n centerH: function () {\n this.canvas && this.canvas.centerObjectH(this);\n return this;\n },\n\n /**\n * Centers object horizontally on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenterH: function () {\n this.canvas && this.canvas.viewportCenterObjectH(this);\n return this;\n },\n\n /**\n * Centers object vertically on canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n centerV: function () {\n this.canvas && this.canvas.centerObjectV(this);\n return this;\n },\n\n /**\n * Centers object vertically on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenterV: function () {\n this.canvas && this.canvas.viewportCenterObjectV(this);\n return this;\n },\n\n /**\n * Centers object vertically and horizontally on canvas to which is was added last\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n center: function () {\n this.canvas && this.canvas.centerObject(this);\n return this;\n },\n\n /**\n * Centers object on current viewport of canvas to which it was added last.\n * You might need to call `setCoords` on an object after centering, to update controls area.\n * @return {fabric.Object} thisArg\n * @chainable\n */\n viewportCenter: function () {\n this.canvas && this.canvas.viewportCenterObject(this);\n return this;\n },\n\n /**\n * Returns coordinates of a pointer relative to an object\n * @param {Event} e Event to operate upon\n * @param {Object} [pointer] Pointer to operate upon (instead of event)\n * @return {Object} Coordinates of a pointer (x, y)\n */\n getLocalPointer: function(e, pointer) {\n pointer = pointer || this.canvas.getPointer(e);\n var pClicked = new fabric.Point(pointer.x, pointer.y),\n objectLeftTop = this._getLeftTopCoords();\n if (this.angle) {\n pClicked = fabric.util.rotatePoint(\n pClicked, objectLeftTop, degreesToRadians(-this.angle));\n }\n return {\n x: pClicked.x - objectLeftTop.x,\n y: pClicked.y - objectLeftTop.y\n };\n },\n\n /**\n * Sets canvas globalCompositeOperation for specific object\n * custom composition operation for the particular object can be specified using globalCompositeOperation property\n * @param {CanvasRenderingContext2D} ctx Rendering canvas context\n */\n _setupCompositeOperation: function (ctx) {\n if (this.globalCompositeOperation) {\n ctx.globalCompositeOperation = this.globalCompositeOperation;\n }\n }\n });\n\n fabric.util.createAccessors && fabric.util.createAccessors(fabric.Object);\n\n extend(fabric.Object.prototype, fabric.Observable);\n\n /**\n * Defines the number of fraction digits to use when serializing object values.\n * You can use it to increase/decrease precision of such values like left, top, scaleX, scaleY, etc.\n * @static\n * @memberOf fabric.Object\n * @constant\n * @type Number\n */\n fabric.Object.NUM_FRACTION_DIGITS = 2;\n\n fabric.Object._fromObject = function(className, object, callback, extraParam) {\n var klass = fabric[className];\n object = clone(object, true);\n fabric.util.enlivenPatterns([object.fill, object.stroke], function(patterns) {\n if (typeof patterns[0] !== 'undefined') {\n object.fill = patterns[0];\n }\n if (typeof patterns[1] !== 'undefined') {\n object.stroke = patterns[1];\n }\n fabric.util.enlivenObjects([object.clipPath], function(enlivedProps) {\n object.clipPath = enlivedProps[0];\n var instance = extraParam ? new klass(object[extraParam], object) : new klass(object);\n callback && callback(instance);\n });\n });\n };\n\n /**\n * Unique id used internally when creating SVG elements\n * @static\n * @memberOf fabric.Object\n * @type Number\n */\n fabric.Object.__uid = 0;\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n\n var degreesToRadians = fabric.util.degreesToRadians,\n originXOffset = {\n left: -0.5,\n center: 0,\n right: 0.5\n },\n originYOffset = {\n top: -0.5,\n center: 0,\n bottom: 0.5\n };\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Translates the coordinates from a set of origin to another (based on the object's dimensions)\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @param {String} fromOriginX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} fromOriginY Vertical origin: 'top', 'center' or 'bottom'\n * @param {String} toOriginX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} toOriginY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToGivenOrigin: function(point, fromOriginX, fromOriginY, toOriginX, toOriginY) {\n var x = point.x,\n y = point.y,\n offsetX, offsetY, dim;\n\n if (typeof fromOriginX === 'string') {\n fromOriginX = originXOffset[fromOriginX];\n }\n else {\n fromOriginX -= 0.5;\n }\n\n if (typeof toOriginX === 'string') {\n toOriginX = originXOffset[toOriginX];\n }\n else {\n toOriginX -= 0.5;\n }\n\n offsetX = toOriginX - fromOriginX;\n\n if (typeof fromOriginY === 'string') {\n fromOriginY = originYOffset[fromOriginY];\n }\n else {\n fromOriginY -= 0.5;\n }\n\n if (typeof toOriginY === 'string') {\n toOriginY = originYOffset[toOriginY];\n }\n else {\n toOriginY -= 0.5;\n }\n\n offsetY = toOriginY - fromOriginY;\n\n if (offsetX || offsetY) {\n dim = this._getTransformedDimensions();\n x = point.x + offsetX * dim.x;\n y = point.y + offsetY * dim.y;\n }\n\n return new fabric.Point(x, y);\n },\n\n /**\n * Translates the coordinates from origin to center coordinates (based on the object's dimensions)\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToCenterPoint: function(point, originX, originY) {\n var p = this.translateToGivenOrigin(point, originX, originY, 'center', 'center');\n if (this.angle) {\n return fabric.util.rotatePoint(p, point, degreesToRadians(this.angle));\n }\n return p;\n },\n\n /**\n * Translates the coordinates from center to origin coordinates (based on the object's dimensions)\n * @param {fabric.Point} center The point which corresponds to center of the object\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n translateToOriginPoint: function(center, originX, originY) {\n var p = this.translateToGivenOrigin(center, 'center', 'center', originX, originY);\n if (this.angle) {\n return fabric.util.rotatePoint(p, center, degreesToRadians(this.angle));\n }\n return p;\n },\n\n /**\n * Returns the real center coordinates of the object\n * @return {fabric.Point}\n */\n getCenterPoint: function() {\n var leftTop = new fabric.Point(this.left, this.top);\n return this.translateToCenterPoint(leftTop, this.originX, this.originY);\n },\n\n /**\n * Returns the coordinates of the object based on center coordinates\n * @param {fabric.Point} point The point which corresponds to the originX and originY params\n * @return {fabric.Point}\n */\n // getOriginPoint: function(center) {\n // return this.translateToOriginPoint(center, this.originX, this.originY);\n // },\n\n /**\n * Returns the coordinates of the object as if it has a different origin\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n getPointByOrigin: function(originX, originY) {\n var center = this.getCenterPoint();\n return this.translateToOriginPoint(center, originX, originY);\n },\n\n /**\n * Returns the point in local coordinates\n * @param {fabric.Point} point The point relative to the global coordinate system\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {fabric.Point}\n */\n toLocalPoint: function(point, originX, originY) {\n var center = this.getCenterPoint(),\n p, p2;\n\n if (typeof originX !== 'undefined' && typeof originY !== 'undefined' ) {\n p = this.translateToGivenOrigin(center, 'center', 'center', originX, originY);\n }\n else {\n p = new fabric.Point(this.left, this.top);\n }\n\n p2 = new fabric.Point(point.x, point.y);\n if (this.angle) {\n p2 = fabric.util.rotatePoint(p2, center, -degreesToRadians(this.angle));\n }\n return p2.subtractEquals(p);\n },\n\n /**\n * Returns the point in global coordinates\n * @param {fabric.Point} The point relative to the local coordinate system\n * @return {fabric.Point}\n */\n // toGlobalPoint: function(point) {\n // return fabric.util.rotatePoint(point, this.getCenterPoint(), degreesToRadians(this.angle)).addEquals(new fabric.Point(this.left, this.top));\n // },\n\n /**\n * Sets the position of the object taking into consideration the object's origin\n * @param {fabric.Point} pos The new position of the object\n * @param {String} originX Horizontal origin: 'left', 'center' or 'right'\n * @param {String} originY Vertical origin: 'top', 'center' or 'bottom'\n * @return {void}\n */\n setPositionByOrigin: function(pos, originX, originY) {\n var center = this.translateToCenterPoint(pos, originX, originY),\n position = this.translateToOriginPoint(center, this.originX, this.originY);\n this.set('left', position.x);\n this.set('top', position.y);\n },\n\n /**\n * @param {String} to One of 'left', 'center', 'right'\n */\n adjustPosition: function(to) {\n var angle = degreesToRadians(this.angle),\n hypotFull = this.getScaledWidth(),\n xFull = fabric.util.cos(angle) * hypotFull,\n yFull = fabric.util.sin(angle) * hypotFull,\n offsetFrom, offsetTo;\n\n //TODO: this function does not consider mixed situation like top, center.\n if (typeof this.originX === 'string') {\n offsetFrom = originXOffset[this.originX];\n }\n else {\n offsetFrom = this.originX - 0.5;\n }\n if (typeof to === 'string') {\n offsetTo = originXOffset[to];\n }\n else {\n offsetTo = to - 0.5;\n }\n this.left += xFull * (offsetTo - offsetFrom);\n this.top += yFull * (offsetTo - offsetFrom);\n this.setCoords();\n this.originX = to;\n },\n\n /**\n * Sets the origin/position of the object to it's center point\n * @private\n * @return {void}\n */\n _setOriginToCenter: function() {\n this._originalOriginX = this.originX;\n this._originalOriginY = this.originY;\n\n var center = this.getCenterPoint();\n\n this.originX = 'center';\n this.originY = 'center';\n\n this.left = center.x;\n this.top = center.y;\n },\n\n /**\n * Resets the origin/position of the object to it's original origin\n * @private\n * @return {void}\n */\n _resetOrigin: function() {\n var originPoint = this.translateToOriginPoint(\n this.getCenterPoint(),\n this._originalOriginX,\n this._originalOriginY);\n\n this.originX = this._originalOriginX;\n this.originY = this._originalOriginY;\n\n this.left = originPoint.x;\n this.top = originPoint.y;\n\n this._originalOriginX = null;\n this._originalOriginY = null;\n },\n\n /**\n * @private\n */\n _getLeftTopCoords: function() {\n return this.translateToOriginPoint(this.getCenterPoint(), 'left', 'top');\n },\n });\n\n})();\n\n\n(function() {\n\n function getCoords(coords) {\n return [\n new fabric.Point(coords.tl.x, coords.tl.y),\n new fabric.Point(coords.tr.x, coords.tr.y),\n new fabric.Point(coords.br.x, coords.br.y),\n new fabric.Point(coords.bl.x, coords.bl.y)\n ];\n }\n\n var degreesToRadians = fabric.util.degreesToRadians,\n multiplyMatrices = fabric.util.multiplyTransformMatrices,\n transformPoint = fabric.util.transformPoint;\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Describe object's corner position in canvas element coordinates.\n * properties are tl,mt,tr,ml,mr,bl,mb,br,mtr for the main controls.\n * each property is an object with x, y and corner.\n * The `corner` property contains in a similar manner the 4 points of the\n * interactive area of the corner.\n * The coordinates depends from this properties: width, height, scaleX, scaleY\n * skewX, skewY, angle, strokeWidth, viewportTransform, top, left, padding.\n * The coordinates get updated with @method setCoords.\n * You can calculate them without updating with @method calcCoords;\n * @memberOf fabric.Object.prototype\n */\n oCoords: null,\n\n /**\n * Describe object's corner position in canvas object absolute coordinates\n * properties are tl,tr,bl,br and describe the four main corner.\n * each property is an object with x, y, instance of Fabric.Point.\n * The coordinates depends from this properties: width, height, scaleX, scaleY\n * skewX, skewY, angle, strokeWidth, top, left.\n * Those coordinates are useful to understand where an object is. They get updated\n * with oCoords but they do not need to be updated when zoom or panning change.\n * The coordinates get updated with @method setCoords.\n * You can calculate them without updating with @method calcCoords(true);\n * @memberOf fabric.Object.prototype\n */\n aCoords: null,\n\n /**\n * storage for object transform matrix\n */\n ownMatrixCache: null,\n\n /**\n * storage for object full transform matrix\n */\n matrixCache: null,\n\n /**\n * return correct set of coordinates for intersection\n */\n getCoords: function(absolute, calculate) {\n if (!this.oCoords) {\n this.setCoords();\n }\n var coords = absolute ? this.aCoords : this.oCoords;\n return getCoords(calculate ? this.calcCoords(absolute) : coords);\n },\n\n /**\n * Checks if object intersects with an area formed by 2 points\n * @param {Object} pointTL top-left point of area\n * @param {Object} pointBR bottom-right point of area\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object intersects with an area formed by 2 points\n */\n intersectsWithRect: function(pointTL, pointBR, absolute, calculate) {\n var coords = this.getCoords(absolute, calculate),\n intersection = fabric.Intersection.intersectPolygonRectangle(\n coords,\n pointTL,\n pointBR\n );\n return intersection.status === 'Intersection';\n },\n\n /**\n * Checks if object intersects with another object\n * @param {Object} other Object to test\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object intersects with another object\n */\n intersectsWithObject: function(other, absolute, calculate) {\n var intersection = fabric.Intersection.intersectPolygonPolygon(\n this.getCoords(absolute, calculate),\n other.getCoords(absolute, calculate)\n );\n\n return intersection.status === 'Intersection'\n || other.isContainedWithinObject(this, absolute, calculate)\n || this.isContainedWithinObject(other, absolute, calculate);\n },\n\n /**\n * Checks if object is fully contained within area of another object\n * @param {Object} other Object to test\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is fully contained within area of another object\n */\n isContainedWithinObject: function(other, absolute, calculate) {\n var points = this.getCoords(absolute, calculate),\n i = 0, lines = other._getImageLines(\n calculate ? other.calcCoords(absolute) : absolute ? other.aCoords : other.oCoords\n );\n for (; i < 4; i++) {\n if (!other.containsPoint(points[i], lines)) {\n return false;\n }\n }\n return true;\n },\n\n /**\n * Checks if object is fully contained within area formed by 2 points\n * @param {Object} pointTL top-left point of area\n * @param {Object} pointBR bottom-right point of area\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is fully contained within area formed by 2 points\n */\n isContainedWithinRect: function(pointTL, pointBR, absolute, calculate) {\n var boundingRect = this.getBoundingRect(absolute, calculate);\n\n return (\n boundingRect.left >= pointTL.x &&\n boundingRect.left + boundingRect.width <= pointBR.x &&\n boundingRect.top >= pointTL.y &&\n boundingRect.top + boundingRect.height <= pointBR.y\n );\n },\n\n /**\n * Checks if point is inside the object\n * @param {fabric.Point} point Point to check against\n * @param {Object} [lines] object returned from @method _getImageLines\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if point is inside the object\n */\n containsPoint: function(point, lines, absolute, calculate) {\n var lines = lines || this._getImageLines(\n calculate ? this.calcCoords(absolute) : absolute ? this.aCoords : this.oCoords\n ),\n xPoints = this._findCrossPoints(point, lines);\n\n // if xPoints is odd then point is inside the object\n return (xPoints !== 0 && xPoints % 2 === 1);\n },\n\n /**\n * Checks if object is contained within the canvas with current viewportTransform\n * the check is done stopping at first point that appears on screen\n * @param {Boolean} [calculate] use coordinates of current position instead of .aCoords\n * @return {Boolean} true if object is fully or partially contained within canvas\n */\n isOnScreen: function(calculate) {\n if (!this.canvas) {\n return false;\n }\n var pointTL = this.canvas.vptCoords.tl, pointBR = this.canvas.vptCoords.br;\n var points = this.getCoords(true, calculate), point;\n for (var i = 0; i < 4; i++) {\n point = points[i];\n if (point.x <= pointBR.x && point.x >= pointTL.x && point.y <= pointBR.y && point.y >= pointTL.y) {\n return true;\n }\n }\n // no points on screen, check intersection with absolute coordinates\n if (this.intersectsWithRect(pointTL, pointBR, true, calculate)) {\n return true;\n }\n return this._containsCenterOfCanvas(pointTL, pointBR, calculate);\n },\n\n /**\n * Checks if the object contains the midpoint between canvas extremities\n * Does not make sense outside the context of isOnScreen and isPartiallyOnScreen\n * @private\n * @param {Fabric.Point} pointTL Top Left point\n * @param {Fabric.Point} pointBR Top Right point\n * @param {Boolean} calculate use coordinates of current position instead of .oCoords\n * @return {Boolean} true if the object contains the point\n */\n _containsCenterOfCanvas: function(pointTL, pointBR, calculate) {\n // worst case scenario the object is so big that contains the screen\n var centerPoint = { x: (pointTL.x + pointBR.x) / 2, y: (pointTL.y + pointBR.y) / 2 };\n if (this.containsPoint(centerPoint, null, true, calculate)) {\n return true;\n }\n return false;\n },\n\n /**\n * Checks if object is partially contained within the canvas with current viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords\n * @return {Boolean} true if object is partially contained within canvas\n */\n isPartiallyOnScreen: function(calculate) {\n if (!this.canvas) {\n return false;\n }\n var pointTL = this.canvas.vptCoords.tl, pointBR = this.canvas.vptCoords.br;\n if (this.intersectsWithRect(pointTL, pointBR, true, calculate)) {\n return true;\n }\n return this._containsCenterOfCanvas(pointTL, pointBR, calculate);\n },\n\n /**\n * Method that returns an object with the object edges in it, given the coordinates of the corners\n * @private\n * @param {Object} oCoords Coordinates of the object corners\n */\n _getImageLines: function(oCoords) {\n return {\n topline: {\n o: oCoords.tl,\n d: oCoords.tr\n },\n rightline: {\n o: oCoords.tr,\n d: oCoords.br\n },\n bottomline: {\n o: oCoords.br,\n d: oCoords.bl\n },\n leftline: {\n o: oCoords.bl,\n d: oCoords.tl\n }\n };\n },\n\n /**\n * Helper method to determine how many cross points are between the 4 object edges\n * and the horizontal line determined by a point on canvas\n * @private\n * @param {fabric.Point} point Point to check\n * @param {Object} lines Coordinates of the object being evaluated\n */\n // remove yi, not used but left code here just in case.\n _findCrossPoints: function(point, lines) {\n var b1, b2, a1, a2, xi, // yi,\n xcount = 0,\n iLine;\n\n for (var lineKey in lines) {\n iLine = lines[lineKey];\n // optimisation 1: line below point. no cross\n if ((iLine.o.y < point.y) && (iLine.d.y < point.y)) {\n continue;\n }\n // optimisation 2: line above point. no cross\n if ((iLine.o.y >= point.y) && (iLine.d.y >= point.y)) {\n continue;\n }\n // optimisation 3: vertical line case\n if ((iLine.o.x === iLine.d.x) && (iLine.o.x >= point.x)) {\n xi = iLine.o.x;\n // yi = point.y;\n }\n // calculate the intersection point\n else {\n b1 = 0;\n b2 = (iLine.d.y - iLine.o.y) / (iLine.d.x - iLine.o.x);\n a1 = point.y - b1 * point.x;\n a2 = iLine.o.y - b2 * iLine.o.x;\n\n xi = -(a1 - a2) / (b1 - b2);\n // yi = a1 + b1 * xi;\n }\n // dont count xi < point.x cases\n if (xi >= point.x) {\n xcount += 1;\n }\n // optimisation 4: specific for square images\n if (xcount === 2) {\n break;\n }\n }\n return xcount;\n },\n\n /**\n * Returns coordinates of object's bounding rectangle (left, top, width, height)\n * the box is intended as aligned to axis of canvas.\n * @param {Boolean} [absolute] use coordinates without viewportTransform\n * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords / .aCoords\n * @return {Object} Object with left, top, width, height properties\n */\n getBoundingRect: function(absolute, calculate) {\n var coords = this.getCoords(absolute, calculate);\n return fabric.util.makeBoundingBoxFromPoints(coords);\n },\n\n /**\n * Returns width of an object's bounding box counting transformations\n * before 2.0 it was named getWidth();\n * @return {Number} width value\n */\n getScaledWidth: function() {\n return this._getTransformedDimensions().x;\n },\n\n /**\n * Returns height of an object bounding box counting transformations\n * before 2.0 it was named getHeight();\n * @return {Number} height value\n */\n getScaledHeight: function() {\n return this._getTransformedDimensions().y;\n },\n\n /**\n * Makes sure the scale is valid and modifies it if necessary\n * @private\n * @param {Number} value\n * @return {Number}\n */\n _constrainScale: function(value) {\n if (Math.abs(value) < this.minScaleLimit) {\n if (value < 0) {\n return -this.minScaleLimit;\n }\n else {\n return this.minScaleLimit;\n }\n }\n else if (value === 0) {\n return 0.0001;\n }\n return value;\n },\n\n /**\n * Scales an object (equally by x and y)\n * @param {Number} value Scale factor\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scale: function(value) {\n this._set('scaleX', value);\n this._set('scaleY', value);\n return this.setCoords();\n },\n\n /**\n * Scales an object to a given width, with respect to bounding box (scaling by x/y equally)\n * @param {Number} value New width value\n * @param {Boolean} absolute ignore viewport\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scaleToWidth: function(value, absolute) {\n // adjust to bounding rect factor so that rotated shapes would fit as well\n var boundingRectFactor = this.getBoundingRect(absolute).width / this.getScaledWidth();\n return this.scale(value / this.width / boundingRectFactor);\n },\n\n /**\n * Scales an object to a given height, with respect to bounding box (scaling by x/y equally)\n * @param {Number} value New height value\n * @param {Boolean} absolute ignore viewport\n * @return {fabric.Object} thisArg\n * @chainable\n */\n scaleToHeight: function(value, absolute) {\n // adjust to bounding rect factor so that rotated shapes would fit as well\n var boundingRectFactor = this.getBoundingRect(absolute).height / this.getScaledHeight();\n return this.scale(value / this.height / boundingRectFactor);\n },\n\n /**\n * Calculates and returns the .coords of an object.\n * @return {Object} Object with tl, tr, br, bl ....\n * @chainable\n */\n calcCoords: function(absolute) {\n var rotateMatrix = this._calcRotateMatrix(),\n translateMatrix = this._calcTranslateMatrix(),\n startMatrix = multiplyMatrices(translateMatrix, rotateMatrix),\n vpt = this.getViewportTransform(),\n finalMatrix = absolute ? startMatrix : multiplyMatrices(vpt, startMatrix),\n dim = this._getTransformedDimensions(),\n w = dim.x / 2, h = dim.y / 2,\n tl = transformPoint({ x: -w, y: -h }, finalMatrix),\n tr = transformPoint({ x: w, y: -h }, finalMatrix),\n bl = transformPoint({ x: -w, y: h }, finalMatrix),\n br = transformPoint({ x: w, y: h }, finalMatrix);\n if (!absolute) {\n var padding = this.padding, angle = degreesToRadians(this.angle),\n cos = fabric.util.cos(angle), sin = fabric.util.sin(angle),\n cosP = cos * padding, sinP = sin * padding, cosPSinP = cosP + sinP,\n cosPMinusSinP = cosP - sinP;\n if (padding) {\n tl.x -= cosPMinusSinP;\n tl.y -= cosPSinP;\n tr.x += cosPSinP;\n tr.y -= cosPMinusSinP;\n bl.x -= cosPSinP;\n bl.y += cosPMinusSinP;\n br.x += cosPMinusSinP;\n br.y += cosPSinP;\n }\n var ml = new fabric.Point((tl.x + bl.x) / 2, (tl.y + bl.y) / 2),\n mt = new fabric.Point((tr.x + tl.x) / 2, (tr.y + tl.y) / 2),\n mr = new fabric.Point((br.x + tr.x) / 2, (br.y + tr.y) / 2),\n mb = new fabric.Point((br.x + bl.x) / 2, (br.y + bl.y) / 2),\n mtr = new fabric.Point(mt.x + sin * this.rotatingPointOffset, mt.y - cos * this.rotatingPointOffset);\n }\n\n // if (!absolute) {\n // var canvas = this.canvas;\n // setTimeout(function() {\n // canvas.contextTop.clearRect(0, 0, 700, 700);\n // canvas.contextTop.fillStyle = 'green';\n // canvas.contextTop.fillRect(mb.x, mb.y, 3, 3);\n // canvas.contextTop.fillRect(bl.x, bl.y, 3, 3);\n // canvas.contextTop.fillRect(br.x, br.y, 3, 3);\n // canvas.contextTop.fillRect(tl.x, tl.y, 3, 3);\n // canvas.contextTop.fillRect(tr.x, tr.y, 3, 3);\n // canvas.contextTop.fillRect(ml.x, ml.y, 3, 3);\n // canvas.contextTop.fillRect(mr.x, mr.y, 3, 3);\n // canvas.contextTop.fillRect(mt.x, mt.y, 3, 3);\n // canvas.contextTop.fillRect(mtr.x, mtr.y, 3, 3);\n // }, 50);\n // }\n\n var coords = {\n // corners\n tl: tl, tr: tr, br: br, bl: bl,\n };\n if (!absolute) {\n // middle\n coords.ml = ml;\n coords.mt = mt;\n coords.mr = mr;\n coords.mb = mb;\n // rotating point\n coords.mtr = mtr;\n }\n return coords;\n },\n\n /**\n * Sets corner position coordinates based on current angle, width and height.\n * See {@link https://github.com/kangax/fabric.js/wiki/When-to-call-setCoords|When-to-call-setCoords}\n * @param {Boolean} [ignoreZoom] set oCoords with or without the viewport transform.\n * @param {Boolean} [skipAbsolute] skip calculation of aCoords, useful in setViewportTransform\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setCoords: function(ignoreZoom, skipAbsolute) {\n this.oCoords = this.calcCoords(ignoreZoom);\n if (!skipAbsolute) {\n this.aCoords = this.calcCoords(true);\n }\n\n // set coordinates of the draggable boxes in the corners used to scale/rotate the image\n ignoreZoom || (this._setCornerCoords && this._setCornerCoords());\n\n return this;\n },\n\n /**\n * calculate rotation matrix of an object\n * @return {Array} rotation matrix for the object\n */\n _calcRotateMatrix: function() {\n return fabric.util.calcRotateMatrix(this);\n },\n\n /**\n * calculate the translation matrix for an object transform\n * @return {Array} rotation matrix for the object\n */\n _calcTranslateMatrix: function() {\n var center = this.getCenterPoint();\n return [1, 0, 0, 1, center.x, center.y];\n },\n\n transformMatrixKey: function(skipGroup) {\n var sep = '_', prefix = '';\n if (!skipGroup && this.group) {\n prefix = this.group.transformMatrixKey(skipGroup) + sep;\n };\n return prefix + this.top + sep + this.left + sep + this.scaleX + sep + this.scaleY +\n sep + this.skewX + sep + this.skewY + sep + this.angle + sep + this.originX + sep + this.originY +\n sep + this.width + sep + this.height + sep + this.strokeWidth + this.flipX + this.flipY;\n },\n\n /**\n * calculate transform matrix that represents the current transformations from the\n * object's properties.\n * @param {Boolean} [skipGroup] return transform matrix for object not counting parent transformations\n * @return {Array} transform matrix for the object\n */\n calcTransformMatrix: function(skipGroup) {\n if (skipGroup) {\n return this.calcOwnMatrix();\n }\n var key = this.transformMatrixKey(), cache = this.matrixCache || (this.matrixCache = {});\n if (cache.key === key) {\n return cache.value;\n }\n var matrix = this.calcOwnMatrix();\n if (this.group) {\n matrix = multiplyMatrices(this.group.calcTransformMatrix(), matrix);\n }\n cache.key = key;\n cache.value = matrix;\n return matrix;\n },\n\n /**\n * calculate transform matrix that represents the current transformations from the\n * object's properties, this matrix does not include the group transformation\n * @return {Array} transform matrix for the object\n */\n calcOwnMatrix: function() {\n var key = this.transformMatrixKey(true), cache = this.ownMatrixCache || (this.ownMatrixCache = {});\n if (cache.key === key) {\n return cache.value;\n }\n var tMatrix = this._calcTranslateMatrix();\n this.translateX = tMatrix[4];\n this.translateY = tMatrix[5];\n cache.key = key;\n cache.value = fabric.util.composeMatrix(this);\n return cache.value;\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n * @deprecated since 3.4.0, please use fabric.util._calcDimensionsTransformMatrix\n * not including or including flipX, flipY to emulate the flipping boolean\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _calcDimensionsTransformMatrix: function(skewX, skewY, flipping) {\n return fabric.util.calcDimensionsMatrix({\n skewX: skewX,\n skewY: skewY,\n scaleX: this.scaleX * (flipping && this.flipX ? -1 : 1),\n scaleY: this.scaleY * (flipping && this.flipY ? -1 : 1)\n });\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _getNonTransformedDimensions: function() {\n var strokeWidth = this.strokeWidth,\n w = this.width + strokeWidth,\n h = this.height + strokeWidth;\n return { x: w, y: h };\n },\n\n /*\n * Calculate object bounding box dimensions from its properties scale, skew.\n * The skewX and skewY parameters are used in the skewing logic path and\n * do not provide something useful to common use cases.\n * @param {Number} [skewX], a value to override current skewX\n * @param {Number} [skewY], a value to override current skewY\n * @private\n * @return {Object} .x width dimension\n * @return {Object} .y height dimension\n */\n _getTransformedDimensions: function(skewX, skewY) {\n if (typeof skewX === 'undefined') {\n skewX = this.skewX;\n }\n if (typeof skewY === 'undefined') {\n skewY = this.skewY;\n }\n var dimensions = this._getNonTransformedDimensions(), dimX, dimY,\n noSkew = skewX === 0 && skewY === 0;\n\n if (this.strokeUniform) {\n dimX = this.width;\n dimY = this.height;\n }\n else {\n dimX = dimensions.x;\n dimY = dimensions.y;\n }\n if (noSkew) {\n return this._finalizeDimensions(dimX * this.scaleX, dimY * this.scaleY);\n }\n else {\n dimX /= 2;\n dimY /= 2;\n }\n var points = [\n {\n x: -dimX,\n y: -dimY\n },\n {\n x: dimX,\n y: -dimY\n },\n {\n x: -dimX,\n y: dimY\n },\n {\n x: dimX,\n y: dimY\n }],\n transformMatrix = fabric.util.calcDimensionsMatrix({\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n skewX: skewX,\n skewY: skewY,\n }),\n bbox = fabric.util.makeBoundingBoxFromPoints(points, transformMatrix);\n return this._finalizeDimensions(bbox.width, bbox.height);\n },\n\n /*\n * Calculate object bounding box dimensions from its properties scale, skew.\n * @param Number width width of the bbox\n * @param Number height height of the bbox\n * @private\n * @return {Object} .x finalized width dimension\n * @return {Object} .y finalized height dimension\n */\n _finalizeDimensions: function(width, height) {\n return this.strokeUniform ?\n { x: width + this.strokeWidth, y: height + this.strokeWidth }\n :\n { x: width, y: height };\n },\n /*\n * Calculate object dimensions for controls, including padding and canvas zoom.\n * private\n */\n _calculateCurrentDimensions: function() {\n var vpt = this.getViewportTransform(),\n dim = this._getTransformedDimensions(),\n p = fabric.util.transformPoint(dim, vpt, true);\n\n return p.scalarAdd(2 * this.padding);\n },\n });\n})();\n\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Moves an object to the bottom of the stack of drawn objects\n * @return {fabric.Object} thisArg\n * @chainable\n */\n sendToBack: function() {\n if (this.group) {\n fabric.StaticCanvas.prototype.sendToBack.call(this.group, this);\n }\n else if (this.canvas) {\n this.canvas.sendToBack(this);\n }\n return this;\n },\n\n /**\n * Moves an object to the top of the stack of drawn objects\n * @return {fabric.Object} thisArg\n * @chainable\n */\n bringToFront: function() {\n if (this.group) {\n fabric.StaticCanvas.prototype.bringToFront.call(this.group, this);\n }\n else if (this.canvas) {\n this.canvas.bringToFront(this);\n }\n return this;\n },\n\n /**\n * Moves an object down in stack of drawn objects\n * @param {Boolean} [intersecting] If `true`, send object behind next lower intersecting object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n sendBackwards: function(intersecting) {\n if (this.group) {\n fabric.StaticCanvas.prototype.sendBackwards.call(this.group, this, intersecting);\n }\n else if (this.canvas) {\n this.canvas.sendBackwards(this, intersecting);\n }\n return this;\n },\n\n /**\n * Moves an object up in stack of drawn objects\n * @param {Boolean} [intersecting] If `true`, send object in front of next upper intersecting object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n bringForward: function(intersecting) {\n if (this.group) {\n fabric.StaticCanvas.prototype.bringForward.call(this.group, this, intersecting);\n }\n else if (this.canvas) {\n this.canvas.bringForward(this, intersecting);\n }\n return this;\n },\n\n /**\n * Moves an object to specified level in stack of drawn objects\n * @param {Number} index New position of object\n * @return {fabric.Object} thisArg\n * @chainable\n */\n moveTo: function(index) {\n if (this.group && this.group.type !== 'activeSelection') {\n fabric.StaticCanvas.prototype.moveTo.call(this.group, this, index);\n }\n else if (this.canvas) {\n this.canvas.moveTo(this, index);\n }\n return this;\n }\n});\n\n\n/* _TO_SVG_START_ */\n(function() {\n function getSvgColorString(prop, value) {\n if (!value) {\n return prop + ': none; ';\n }\n else if (value.toLive) {\n return prop + ': url(#SVGID_' + value.id + '); ';\n }\n else {\n var color = new fabric.Color(value),\n str = prop + ': ' + color.toRgb() + '; ',\n opacity = color.getAlpha();\n if (opacity !== 1) {\n //change the color in rgb + opacity\n str += prop + '-opacity: ' + opacity.toString() + '; ';\n }\n return str;\n }\n }\n\n var toFixed = fabric.util.toFixed;\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n /**\n * Returns styles-string for svg-export\n * @param {Boolean} skipShadow a boolean to skip shadow filter output\n * @return {String}\n */\n getSvgStyles: function(skipShadow) {\n\n var fillRule = this.fillRule ? this.fillRule : 'nonzero',\n strokeWidth = this.strokeWidth ? this.strokeWidth : '0',\n strokeDashArray = this.strokeDashArray ? this.strokeDashArray.join(' ') : 'none',\n strokeDashOffset = this.strokeDashOffset ? this.strokeDashOffset : '0',\n strokeLineCap = this.strokeLineCap ? this.strokeLineCap : 'butt',\n strokeLineJoin = this.strokeLineJoin ? this.strokeLineJoin : 'miter',\n strokeMiterLimit = this.strokeMiterLimit ? this.strokeMiterLimit : '4',\n opacity = typeof this.opacity !== 'undefined' ? this.opacity : '1',\n visibility = this.visible ? '' : ' visibility: hidden;',\n filter = skipShadow ? '' : this.getSvgFilter(),\n fill = getSvgColorString('fill', this.fill),\n stroke = getSvgColorString('stroke', this.stroke);\n\n return [\n stroke,\n 'stroke-width: ', strokeWidth, '; ',\n 'stroke-dasharray: ', strokeDashArray, '; ',\n 'stroke-linecap: ', strokeLineCap, '; ',\n 'stroke-dashoffset: ', strokeDashOffset, '; ',\n 'stroke-linejoin: ', strokeLineJoin, '; ',\n 'stroke-miterlimit: ', strokeMiterLimit, '; ',\n fill,\n 'fill-rule: ', fillRule, '; ',\n 'opacity: ', opacity, ';',\n filter,\n visibility\n ].join('');\n },\n\n /**\n * Returns styles-string for svg-export\n * @param {Object} style the object from which to retrieve style properties\n * @param {Boolean} useWhiteSpace a boolean to include an additional attribute in the style.\n * @return {String}\n */\n getSvgSpanStyles: function(style, useWhiteSpace) {\n var term = '; ';\n var fontFamily = style.fontFamily ?\n 'font-family: ' + (((style.fontFamily.indexOf('\\'') === -1 && style.fontFamily.indexOf('\"') === -1) ?\n '\\'' + style.fontFamily + '\\'' : style.fontFamily)) + term : '';\n var strokeWidth = style.strokeWidth ? 'stroke-width: ' + style.strokeWidth + term : '',\n fontFamily = fontFamily,\n fontSize = style.fontSize ? 'font-size: ' + style.fontSize + 'px' + term : '',\n fontStyle = style.fontStyle ? 'font-style: ' + style.fontStyle + term : '',\n fontWeight = style.fontWeight ? 'font-weight: ' + style.fontWeight + term : '',\n fill = style.fill ? getSvgColorString('fill', style.fill) : '',\n stroke = style.stroke ? getSvgColorString('stroke', style.stroke) : '',\n textDecoration = this.getSvgTextDecoration(style),\n deltaY = style.deltaY ? 'baseline-shift: ' + (-style.deltaY) + '; ' : '';\n if (textDecoration) {\n textDecoration = 'text-decoration: ' + textDecoration + term;\n }\n\n return [\n stroke,\n strokeWidth,\n fontFamily,\n fontSize,\n fontStyle,\n fontWeight,\n textDecoration,\n fill,\n deltaY,\n useWhiteSpace ? 'white-space: pre; ' : ''\n ].join('');\n },\n\n /**\n * Returns text-decoration property for svg-export\n * @param {Object} style the object from which to retrieve style properties\n * @return {String}\n */\n getSvgTextDecoration: function(style) {\n return ['overline', 'underline', 'line-through'].filter(function(decoration) {\n return style[decoration.replace('-', '')];\n }).join(' ');\n },\n\n /**\n * Returns filter for svg shadow\n * @return {String}\n */\n getSvgFilter: function() {\n return this.shadow ? 'filter: url(#SVGID_' + this.shadow.id + ');' : '';\n },\n\n /**\n * Returns id attribute for svg output\n * @return {String}\n */\n getSvgCommons: function() {\n return [\n this.id ? 'id=\"' + this.id + '\" ' : '',\n this.clipPath ? 'clip-path=\"url(#' + this.clipPath.clipPathId + ')\" ' : '',\n ].join('');\n },\n\n /**\n * Returns transform-string for svg-export\n * @param {Boolean} use the full transform or the single object one.\n * @return {String}\n */\n getSvgTransform: function(full, additionalTransform) {\n var transform = full ? this.calcTransformMatrix() : this.calcOwnMatrix(),\n svgTransform = 'transform=\"' + fabric.util.matrixToSVG(transform);\n return svgTransform +\n (additionalTransform || '') + this.getSvgTransformMatrix() + '\" ';\n },\n\n /**\n * Returns transform-string for svg-export from the transform matrix of single elements\n * @return {String}\n */\n getSvgTransformMatrix: function() {\n return this.transformMatrix ? ' ' + fabric.util.matrixToSVG(this.transformMatrix) : '';\n },\n\n _setSVGBg: function(textBgRects) {\n if (this.backgroundColor) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n textBgRects.push(\n '\\t\\t\\n');\n }\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n return this._createBaseSVGMarkup(this._toSVG(reviver), { reviver: reviver });\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n return '\\t' + this._createBaseClipPathSVGMarkup(this._toSVG(reviver), { reviver: reviver });\n },\n\n /**\n * @private\n */\n _createBaseClipPathSVGMarkup: function(objectMarkup, options) {\n options = options || {};\n var reviver = options.reviver,\n additionalTransform = options.additionalTransform || '',\n commonPieces = [\n this.getSvgTransform(true, additionalTransform),\n this.getSvgCommons(),\n ].join(''),\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS');\n objectMarkup[index] = commonPieces;\n return reviver ? reviver(objectMarkup.join('')) : objectMarkup.join('');\n },\n\n /**\n * @private\n */\n _createBaseSVGMarkup: function(objectMarkup, options) {\n options = options || {};\n var noStyle = options.noStyle,\n reviver = options.reviver,\n styleInfo = noStyle ? '' : 'style=\"' + this.getSvgStyles() + '\" ',\n shadowInfo = options.withShadow ? 'style=\"' + this.getSvgFilter() + '\" ' : '',\n clipPath = this.clipPath,\n vectorEffect = this.strokeUniform ? 'vector-effect=\"non-scaling-stroke\" ' : '',\n absoluteClipPath = clipPath && clipPath.absolutePositioned,\n stroke = this.stroke, fill = this.fill, shadow = this.shadow,\n commonPieces, markup = [], clipPathMarkup,\n // insert commons in the markup, style and svgCommons\n index = objectMarkup.indexOf('COMMON_PARTS'),\n additionalTransform = options.additionalTransform;\n if (clipPath) {\n clipPath.clipPathId = 'CLIPPATH_' + fabric.Object.__uid++;\n clipPathMarkup = '\\n' +\n clipPath.toClipPathSVG(reviver) +\n '\\n';\n }\n if (absoluteClipPath) {\n markup.push(\n '\\n'\n );\n }\n markup.push(\n '\\n'\n );\n commonPieces = [\n styleInfo,\n vectorEffect,\n noStyle ? '' : this.addPaintOrder(), ' ',\n additionalTransform ? 'transform=\"' + additionalTransform + '\" ' : '',\n ].join('');\n objectMarkup[index] = commonPieces;\n if (fill && fill.toLive) {\n markup.push(fill.toSVG(this));\n }\n if (stroke && stroke.toLive) {\n markup.push(stroke.toSVG(this));\n }\n if (shadow) {\n markup.push(shadow.toSVG(this));\n }\n if (clipPath) {\n markup.push(clipPathMarkup);\n }\n markup.push(objectMarkup.join(''));\n markup.push('\\n');\n absoluteClipPath && markup.push('\\n');\n return reviver ? reviver(markup.join('')) : markup.join('');\n },\n\n addPaintOrder: function() {\n return this.paintFirst !== 'fill' ? ' paint-order=\"' + this.paintFirst + '\" ' : '';\n }\n });\n})();\n/* _TO_SVG_END_ */\n\n\n(function() {\n\n var extend = fabric.util.object.extend,\n originalSet = 'stateProperties';\n\n /*\n Depends on `stateProperties`\n */\n function saveProps(origin, destination, props) {\n var tmpObj = { }, deep = true;\n props.forEach(function(prop) {\n tmpObj[prop] = origin[prop];\n });\n extend(origin[destination], tmpObj, deep);\n }\n\n function _isEqual(origValue, currentValue, firstPass) {\n if (origValue === currentValue) {\n // if the objects are identical, return\n return true;\n }\n else if (Array.isArray(origValue)) {\n if (!Array.isArray(currentValue) || origValue.length !== currentValue.length) {\n return false;\n }\n for (var i = 0, len = origValue.length; i < len; i++) {\n if (!_isEqual(origValue[i], currentValue[i])) {\n return false;\n }\n }\n return true;\n }\n else if (origValue && typeof origValue === 'object') {\n var keys = Object.keys(origValue), key;\n if (!currentValue ||\n typeof currentValue !== 'object' ||\n (!firstPass && keys.length !== Object.keys(currentValue).length)\n ) {\n return false;\n }\n for (var i = 0, len = keys.length; i < len; i++) {\n key = keys[i];\n // since clipPath is in the statefull cache list and the clipPath objects\n // would be iterated as an object, this would lead to possible infinite recursion\n if (key === 'canvas') {\n continue;\n }\n if (!_isEqual(origValue[key], currentValue[key])) {\n return false;\n }\n }\n return true;\n }\n }\n\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * Returns true if object state (one of its state properties) was changed\n * @param {String} [propertySet] optional name for the set of property we want to save\n * @return {Boolean} true if instance' state has changed since `{@link fabric.Object#saveState}` was called\n */\n hasStateChanged: function(propertySet) {\n propertySet = propertySet || originalSet;\n var dashedPropertySet = '_' + propertySet;\n if (Object.keys(this[dashedPropertySet]).length < this[propertySet].length) {\n return true;\n }\n return !_isEqual(this[dashedPropertySet], this, true);\n },\n\n /**\n * Saves state of an object\n * @param {Object} [options] Object with additional `stateProperties` array to include when saving state\n * @return {fabric.Object} thisArg\n */\n saveState: function(options) {\n var propertySet = options && options.propertySet || originalSet,\n destination = '_' + propertySet;\n if (!this[destination]) {\n return this.setupState(options);\n }\n saveProps(this, destination, this[propertySet]);\n if (options && options.stateProperties) {\n saveProps(this, destination, options.stateProperties);\n }\n return this;\n },\n\n /**\n * Setups state of an object\n * @param {Object} [options] Object with additional `stateProperties` array to include when saving state\n * @return {fabric.Object} thisArg\n */\n setupState: function(options) {\n options = options || { };\n var propertySet = options.propertySet || originalSet;\n options.propertySet = propertySet;\n this['_' + propertySet] = { };\n this.saveState(options);\n return this;\n }\n });\n})();\n\n\n(function() {\n\n var degreesToRadians = fabric.util.degreesToRadians;\n\n fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * The object interactivity controls.\n * @private\n */\n _controlsVisibility: null,\n\n /**\n * Determines which corner has been clicked\n * @private\n * @param {Object} pointer The pointer indicating the mouse position\n * @return {String|Boolean} corner code (tl, tr, bl, br, etc.), or false if nothing is found\n */\n _findTargetCorner: function(pointer) {\n // objects in group, anykind, are not self modificable,\n // must not return an hovered corner.\n if (!this.hasControls || this.group || (!this.canvas || this.canvas._activeObject !== this)) {\n return false;\n }\n\n var ex = pointer.x,\n ey = pointer.y,\n xPoints,\n lines;\n this.__corner = 0;\n for (var i in this.oCoords) {\n\n if (!this.isControlVisible(i)) {\n continue;\n }\n\n if (i === 'mtr' && !this.hasRotatingPoint) {\n continue;\n }\n\n if (this.get('lockUniScaling') &&\n (i === 'mt' || i === 'mr' || i === 'mb' || i === 'ml')) {\n continue;\n }\n\n lines = this._getImageLines(this.oCoords[i].corner);\n\n // debugging\n\n // canvas.contextTop.fillRect(lines.bottomline.d.x, lines.bottomline.d.y, 2, 2);\n // canvas.contextTop.fillRect(lines.bottomline.o.x, lines.bottomline.o.y, 2, 2);\n\n // canvas.contextTop.fillRect(lines.leftline.d.x, lines.leftline.d.y, 2, 2);\n // canvas.contextTop.fillRect(lines.leftline.o.x, lines.leftline.o.y, 2, 2);\n\n // canvas.contextTop.fillRect(lines.topline.d.x, lines.topline.d.y, 2, 2);\n // canvas.contextTop.fillRect(lines.topline.o.x, lines.topline.o.y, 2, 2);\n\n // canvas.contextTop.fillRect(lines.rightline.d.x, lines.rightline.d.y, 2, 2);\n // canvas.contextTop.fillRect(lines.rightline.o.x, lines.rightline.o.y, 2, 2);\n\n xPoints = this._findCrossPoints({ x: ex, y: ey }, lines);\n if (xPoints !== 0 && xPoints % 2 === 1) {\n this.__corner = i;\n return i;\n }\n }\n return false;\n },\n\n /**\n * Sets the coordinates of the draggable boxes in the corners of\n * the image used to scale/rotate it.\n * @private\n */\n _setCornerCoords: function() {\n var coords = this.oCoords,\n newTheta = degreesToRadians(45 - this.angle),\n /* Math.sqrt(2 * Math.pow(this.cornerSize, 2)) / 2, */\n /* 0.707106 stands for sqrt(2)/2 */\n cornerHypotenuse = this.cornerSize * 0.707106,\n cosHalfOffset = cornerHypotenuse * fabric.util.cos(newTheta),\n sinHalfOffset = cornerHypotenuse * fabric.util.sin(newTheta),\n x, y;\n\n for (var point in coords) {\n x = coords[point].x;\n y = coords[point].y;\n coords[point].corner = {\n tl: {\n x: x - sinHalfOffset,\n y: y - cosHalfOffset\n },\n tr: {\n x: x + cosHalfOffset,\n y: y - sinHalfOffset\n },\n bl: {\n x: x - cosHalfOffset,\n y: y + sinHalfOffset\n },\n br: {\n x: x + sinHalfOffset,\n y: y + cosHalfOffset\n }\n };\n }\n },\n\n /**\n * Draws a colored layer behind the object, inside its selection borders.\n * Requires public options: padding, selectionBackgroundColor\n * this function is called when the context is transformed\n * has checks to be skipped when the object is on a staticCanvas\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawSelectionBackground: function(ctx) {\n if (!this.selectionBackgroundColor ||\n (this.canvas && !this.canvas.interactive) ||\n (this.canvas && this.canvas._activeObject !== this)\n ) {\n return this;\n }\n ctx.save();\n var center = this.getCenterPoint(), wh = this._calculateCurrentDimensions(),\n vpt = this.canvas.viewportTransform;\n ctx.translate(center.x, center.y);\n ctx.scale(1 / vpt[0], 1 / vpt[3]);\n ctx.rotate(degreesToRadians(this.angle));\n ctx.fillStyle = this.selectionBackgroundColor;\n ctx.fillRect(-wh.x / 2, -wh.y / 2, wh.x, wh.y);\n ctx.restore();\n return this;\n },\n\n /**\n * Draws borders of an object's bounding box.\n * Requires public properties: width, height\n * Requires public options: padding, borderColor\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawBorders: function(ctx, styleOverride) {\n styleOverride = styleOverride || {};\n var wh = this._calculateCurrentDimensions(),\n strokeWidth = this.borderScaleFactor,\n width = wh.x + strokeWidth,\n height = wh.y + strokeWidth,\n drawRotatingPoint = typeof styleOverride.hasRotatingPoint !== 'undefined' ?\n styleOverride.hasRotatingPoint : this.hasRotatingPoint,\n hasControls = typeof styleOverride.hasControls !== 'undefined' ?\n styleOverride.hasControls : this.hasControls,\n rotatingPointOffset = typeof styleOverride.rotatingPointOffset !== 'undefined' ?\n styleOverride.rotatingPointOffset : this.rotatingPointOffset;\n\n ctx.save();\n ctx.strokeStyle = styleOverride.borderColor || this.borderColor;\n this._setLineDash(ctx, styleOverride.borderDashArray || this.borderDashArray, null);\n\n ctx.strokeRect(\n -width / 2,\n -height / 2,\n width,\n height\n );\n\n if (drawRotatingPoint && this.isControlVisible('mtr') && hasControls) {\n\n var rotateHeight = -height / 2;\n\n ctx.beginPath();\n ctx.moveTo(0, rotateHeight);\n ctx.lineTo(0, rotateHeight - rotatingPointOffset);\n ctx.stroke();\n }\n\n ctx.restore();\n return this;\n },\n\n /**\n * Draws borders of an object's bounding box when it is inside a group.\n * Requires public properties: width, height\n * Requires public options: padding, borderColor\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {object} options object representing current object parameters\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawBordersInGroup: function(ctx, options, styleOverride) {\n styleOverride = styleOverride || {};\n var p = { x: this.width, y: this.height },\n matrix = fabric.util.composeMatrix({\n scaleX: options.scaleX,\n scaleY: options.scaleY,\n skewX: options.skewX\n }),\n wh = fabric.util.transformPoint(p, matrix),\n strokeWidth = this.strokeWidth,\n borderScaleFactor = this.borderScaleFactor,\n width =\n wh.x + strokeWidth * (this.strokeUniform ? this.canvas.getZoom() : options.scaleX) + borderScaleFactor,\n height =\n wh.y + strokeWidth * (this.strokeUniform ? this.canvas.getZoom() : options.scaleY) + borderScaleFactor;\n ctx.save();\n this._setLineDash(ctx, styleOverride.borderDashArray || this.borderDashArray, null);\n ctx.strokeStyle = styleOverride.borderColor || this.borderColor;\n\n ctx.strokeRect(\n -width / 2,\n -height / 2,\n width,\n height\n );\n\n ctx.restore();\n return this;\n },\n\n /**\n * Draws corners of an object's bounding box.\n * Requires public properties: width, height\n * Requires public options: cornerSize, padding\n * @param {CanvasRenderingContext2D} ctx Context to draw on\n * @param {Object} styleOverride object to override the object style\n * @return {fabric.Object} thisArg\n * @chainable\n */\n drawControls: function(ctx, styleOverride) {\n styleOverride = styleOverride || {};\n var wh = this._calculateCurrentDimensions(),\n width = wh.x,\n height = wh.y,\n scaleOffset = styleOverride.cornerSize || this.cornerSize,\n left = -(width + scaleOffset) / 2,\n top = -(height + scaleOffset) / 2,\n transparentCorners = typeof styleOverride.transparentCorners !== 'undefined' ?\n styleOverride.transparentCorners : this.transparentCorners,\n hasRotatingPoint = typeof styleOverride.hasRotatingPoint !== 'undefined' ?\n styleOverride.hasRotatingPoint : this.hasRotatingPoint,\n methodName = transparentCorners ? 'stroke' : 'fill';\n\n ctx.save();\n ctx.strokeStyle = ctx.fillStyle = styleOverride.cornerColor || this.cornerColor;\n if (!this.transparentCorners) {\n ctx.strokeStyle = styleOverride.cornerStrokeColor || this.cornerStrokeColor;\n }\n this._setLineDash(ctx, styleOverride.cornerDashArray || this.cornerDashArray, null);\n\n // top-left\n this._drawControl('tl', ctx, methodName,\n left,\n top, styleOverride);\n\n // top-right\n this._drawControl('tr', ctx, methodName,\n left + width,\n top, styleOverride);\n\n // bottom-left\n this._drawControl('bl', ctx, methodName,\n left,\n top + height, styleOverride);\n\n // bottom-right\n this._drawControl('br', ctx, methodName,\n left + width,\n top + height, styleOverride);\n\n if (!this.get('lockUniScaling')) {\n\n // middle-top\n this._drawControl('mt', ctx, methodName,\n left + width / 2,\n top, styleOverride);\n\n // middle-bottom\n this._drawControl('mb', ctx, methodName,\n left + width / 2,\n top + height, styleOverride);\n\n // middle-right\n this._drawControl('mr', ctx, methodName,\n left + width,\n top + height / 2, styleOverride);\n\n // middle-left\n this._drawControl('ml', ctx, methodName,\n left,\n top + height / 2, styleOverride);\n }\n\n // middle-top-rotate\n if (hasRotatingPoint) {\n this._drawControl('mtr', ctx, methodName,\n left + width / 2,\n top - this.rotatingPointOffset, styleOverride);\n }\n\n ctx.restore();\n\n return this;\n },\n\n /**\n * @private\n */\n _drawControl: function(control, ctx, methodName, left, top, styleOverride) {\n styleOverride = styleOverride || {};\n if (!this.isControlVisible(control)) {\n return;\n }\n var size = this.cornerSize, stroke = !this.transparentCorners && this.cornerStrokeColor;\n switch (styleOverride.cornerStyle || this.cornerStyle) {\n case 'circle':\n ctx.beginPath();\n ctx.arc(left + size / 2, top + size / 2, size / 2, 0, 2 * Math.PI, false);\n ctx[methodName]();\n if (stroke) {\n ctx.stroke();\n }\n break;\n default:\n this.transparentCorners || ctx.clearRect(left, top, size, size);\n ctx[methodName + 'Rect'](left, top, size, size);\n if (stroke) {\n ctx.strokeRect(left, top, size, size);\n }\n }\n },\n\n /**\n * Returns true if the specified control is visible, false otherwise.\n * @param {String} controlName The name of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.\n * @returns {Boolean} true if the specified control is visible, false otherwise\n */\n isControlVisible: function(controlName) {\n return this._getControlsVisibility()[controlName];\n },\n\n /**\n * Sets the visibility of the specified control.\n * @param {String} controlName The name of the control. Possible values are 'tl', 'tr', 'br', 'bl', 'ml', 'mt', 'mr', 'mb', 'mtr'.\n * @param {Boolean} visible true to set the specified control visible, false otherwise\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setControlVisible: function(controlName, visible) {\n this._getControlsVisibility()[controlName] = visible;\n return this;\n },\n\n /**\n * Sets the visibility state of object controls.\n * @param {Object} [options] Options object\n * @param {Boolean} [options.bl] true to enable the bottom-left control, false to disable it\n * @param {Boolean} [options.br] true to enable the bottom-right control, false to disable it\n * @param {Boolean} [options.mb] true to enable the middle-bottom control, false to disable it\n * @param {Boolean} [options.ml] true to enable the middle-left control, false to disable it\n * @param {Boolean} [options.mr] true to enable the middle-right control, false to disable it\n * @param {Boolean} [options.mt] true to enable the middle-top control, false to disable it\n * @param {Boolean} [options.tl] true to enable the top-left control, false to disable it\n * @param {Boolean} [options.tr] true to enable the top-right control, false to disable it\n * @param {Boolean} [options.mtr] true to enable the middle-top-rotate control, false to disable it\n * @return {fabric.Object} thisArg\n * @chainable\n */\n setControlsVisibility: function(options) {\n options || (options = { });\n\n for (var p in options) {\n this.setControlVisible(p, options[p]);\n }\n return this;\n },\n\n /**\n * Returns the instance of the control visibility set for this object.\n * @private\n * @returns {Object}\n */\n _getControlsVisibility: function() {\n if (!this._controlsVisibility) {\n this._controlsVisibility = {\n tl: true,\n tr: true,\n br: true,\n bl: true,\n ml: true,\n mt: true,\n mr: true,\n mb: true,\n mtr: true\n };\n }\n return this._controlsVisibility;\n },\n\n /**\n * This callback function is called every time _discardActiveObject or _setActiveObject\n * try to to deselect this object. If the function returns true, the process is cancelled\n * @param {Object} [options] options sent from the upper functions\n * @param {Event} [options.e] event if the process is generated by an event\n */\n onDeselect: function() {\n // implemented by sub-classes, as needed.\n },\n\n\n /**\n * This callback function is called every time _discardActiveObject or _setActiveObject\n * try to to select this object. If the function returns true, the process is cancelled\n * @param {Object} [options] options sent from the upper functions\n * @param {Event} [options.e] event if the process is generated by an event\n */\n onSelect: function() {\n // implemented by sub-classes, as needed.\n }\n });\n})();\n\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Animation duration (in ms) for fx* methods\n * @type Number\n * @default\n */\n FX_DURATION: 500,\n\n /**\n * Centers object horizontally with animation.\n * @param {fabric.Object} object Object to center\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxCenterObjectH: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.left,\n endValue: this.getCenter().left,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('left', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function() {\n object.setCoords();\n onComplete();\n }\n });\n\n return this;\n },\n\n /**\n * Centers object vertically with animation.\n * @param {fabric.Object} object Object to center\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxCenterObjectV: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.top,\n endValue: this.getCenter().top,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('top', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function() {\n object.setCoords();\n onComplete();\n }\n });\n\n return this;\n },\n\n /**\n * Same as `fabric.Canvas#remove` but animated\n * @param {fabric.Object} object Object to remove\n * @param {Object} [callbacks] Callbacks object with optional \"onComplete\" and/or \"onChange\" properties\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxRemove: function (object, callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: object.opacity,\n endValue: 0,\n duration: this.FX_DURATION,\n onChange: function(value) {\n object.set('opacity', value);\n _this.requestRenderAll();\n onChange();\n },\n onComplete: function () {\n _this.remove(object);\n onComplete();\n }\n });\n\n return this;\n }\n});\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n /**\n * Animates object's properties\n * @param {String|Object} property Property to animate (if string) or properties to animate (if object)\n * @param {Number|Object} value Value to animate property to (if string was given first) or options object\n * @return {fabric.Object} thisArg\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#animation}\n * @chainable\n *\n * As object — multiple properties\n *\n * object.animate({ left: ..., top: ... });\n * object.animate({ left: ..., top: ... }, { duration: ... });\n *\n * As string — one property\n *\n * object.animate('left', ...);\n * object.animate('left', { duration: ... });\n *\n */\n animate: function() {\n if (arguments[0] && typeof arguments[0] === 'object') {\n var propsToAnimate = [], prop, skipCallbacks;\n for (prop in arguments[0]) {\n propsToAnimate.push(prop);\n }\n for (var i = 0, len = propsToAnimate.length; i < len; i++) {\n prop = propsToAnimate[i];\n skipCallbacks = i !== len - 1;\n this._animate(prop, arguments[0][prop], arguments[1], skipCallbacks);\n }\n }\n else {\n this._animate.apply(this, arguments);\n }\n return this;\n },\n\n /**\n * @private\n * @param {String} property Property to animate\n * @param {String} to Value to animate to\n * @param {Object} [options] Options object\n * @param {Boolean} [skipCallbacks] When true, callbacks like onchange and oncomplete are not invoked\n */\n _animate: function(property, to, options, skipCallbacks) {\n var _this = this, propPair;\n\n to = to.toString();\n\n if (!options) {\n options = { };\n }\n else {\n options = fabric.util.object.clone(options);\n }\n\n if (~property.indexOf('.')) {\n propPair = property.split('.');\n }\n\n var currentValue = propPair\n ? this.get(propPair[0])[propPair[1]]\n : this.get(property);\n\n if (!('from' in options)) {\n options.from = currentValue;\n }\n\n if (~to.indexOf('=')) {\n to = currentValue + parseFloat(to.replace('=', ''));\n }\n else {\n to = parseFloat(to);\n }\n\n fabric.util.animate({\n startValue: options.from,\n endValue: to,\n byValue: options.by,\n easing: options.easing,\n duration: options.duration,\n abort: options.abort && function() {\n return options.abort.call(_this);\n },\n onChange: function(value, valueProgress, timeProgress) {\n if (propPair) {\n _this[propPair[0]][propPair[1]] = value;\n }\n else {\n _this.set(property, value);\n }\n if (skipCallbacks) {\n return;\n }\n options.onChange && options.onChange(value, valueProgress, timeProgress);\n },\n onComplete: function(value, valueProgress, timeProgress) {\n if (skipCallbacks) {\n return;\n }\n\n _this.setCoords();\n options.onComplete && options.onComplete(value, valueProgress, timeProgress);\n }\n });\n }\n});\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n clone = fabric.util.object.clone,\n coordProps = { x1: 1, x2: 1, y1: 1, y2: 1 },\n supportsLineDash = fabric.StaticCanvas.supports('setLineDash');\n\n if (fabric.Line) {\n fabric.warn('fabric.Line is already defined');\n return;\n }\n\n /**\n * Line class\n * @class fabric.Line\n * @extends fabric.Object\n * @see {@link fabric.Line#initialize} for constructor definition\n */\n fabric.Line = fabric.util.createClass(fabric.Object, /** @lends fabric.Line.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'line',\n\n /**\n * x value or first line edge\n * @type Number\n * @default\n */\n x1: 0,\n\n /**\n * y value or first line edge\n * @type Number\n * @default\n */\n y1: 0,\n\n /**\n * x value or second line edge\n * @type Number\n * @default\n */\n x2: 0,\n\n /**\n * y value or second line edge\n * @type Number\n * @default\n */\n y2: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('x1', 'x2', 'y1', 'y2'),\n\n /**\n * Constructor\n * @param {Array} [points] Array of points\n * @param {Object} [options] Options object\n * @return {fabric.Line} thisArg\n */\n initialize: function(points, options) {\n if (!points) {\n points = [0, 0, 0, 0];\n }\n\n this.callSuper('initialize', options);\n\n this.set('x1', points[0]);\n this.set('y1', points[1]);\n this.set('x2', points[2]);\n this.set('y2', points[3]);\n\n this._setWidthHeight(options);\n },\n\n /**\n * @private\n * @param {Object} [options] Options\n */\n _setWidthHeight: function(options) {\n options || (options = { });\n\n this.width = Math.abs(this.x2 - this.x1);\n this.height = Math.abs(this.y2 - this.y1);\n\n this.left = 'left' in options\n ? options.left\n : this._getLeftToOriginX();\n\n this.top = 'top' in options\n ? options.top\n : this._getTopToOriginY();\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n if (typeof coordProps[key] !== 'undefined') {\n this._setWidthHeight();\n }\n return this;\n },\n\n /**\n * @private\n * @return {Number} leftToOriginX Distance from left edge of canvas to originX of Line.\n */\n _getLeftToOriginX: makeEdgeToOriginGetter(\n { // property names\n origin: 'originX',\n axis1: 'x1',\n axis2: 'x2',\n dimension: 'width'\n },\n { // possible values of origin\n nearest: 'left',\n center: 'center',\n farthest: 'right'\n }\n ),\n\n /**\n * @private\n * @return {Number} topToOriginY Distance from top edge of canvas to originY of Line.\n */\n _getTopToOriginY: makeEdgeToOriginGetter(\n { // property names\n origin: 'originY',\n axis1: 'y1',\n axis2: 'y2',\n dimension: 'height'\n },\n { // possible values of origin\n nearest: 'top',\n center: 'center',\n farthest: 'bottom'\n }\n ),\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n\n if (!this.strokeDashArray || this.strokeDashArray && supportsLineDash) {\n // move from center (of virtual box) to its left/top corner\n // we can't assume x1, y1 is top left and x2, y2 is bottom right\n var p = this.calcLinePoints();\n ctx.moveTo(p.x1, p.y1);\n ctx.lineTo(p.x2, p.y2);\n }\n\n ctx.lineWidth = this.strokeWidth;\n\n // TODO: test this\n // make sure setting \"fill\" changes color of a line\n // (by copying fillStyle to strokeStyle, since line is stroked, not filled)\n var origStrokeStyle = ctx.strokeStyle;\n ctx.strokeStyle = this.stroke || ctx.fillStyle;\n this.stroke && this._renderStroke(ctx);\n ctx.strokeStyle = origStrokeStyle;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var p = this.calcLinePoints();\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, p.x1, p.y1, p.x2, p.y2, this.strokeDashArray);\n ctx.closePath();\n },\n\n /**\n * This function is an helper for svg import. it returns the center of the object in the svg\n * untransformed coordinates\n * @private\n * @return {Object} center point from element coordinates\n */\n _findCenterFromElement: function() {\n return {\n x: (this.x1 + this.x2) / 2,\n y: (this.y1 + this.y2) / 2,\n };\n },\n\n /**\n * Returns object representation of an instance\n * @methd toObject\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), this.calcLinePoints());\n },\n\n /*\n * Calculate object dimensions from its properties\n * @private\n */\n _getNonTransformedDimensions: function() {\n var dim = this.callSuper('_getNonTransformedDimensions');\n if (this.strokeLineCap === 'butt') {\n if (this.width === 0) {\n dim.y -= this.strokeWidth;\n }\n if (this.height === 0) {\n dim.x -= this.strokeWidth;\n }\n }\n return dim;\n },\n\n /**\n * Recalculates line points given width and height\n * @private\n */\n calcLinePoints: function() {\n var xMult = this.x1 <= this.x2 ? -1 : 1,\n yMult = this.y1 <= this.y2 ? -1 : 1,\n x1 = (xMult * this.width * 0.5),\n y1 = (yMult * this.height * 0.5),\n x2 = (xMult * this.width * -0.5),\n y2 = (yMult * this.height * -0.5);\n\n return {\n x1: x1,\n x2: x2,\n y1: y1,\n y2: y2\n };\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var p = this.calcLinePoints();\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Line.fromElement})\n * @static\n * @memberOf fabric.Line\n * @see http://www.w3.org/TR/SVG/shapes.html#LineElement\n */\n fabric.Line.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x1 y1 x2 y2'.split(' '));\n\n /**\n * Returns fabric.Line instance from an SVG element\n * @static\n * @memberOf fabric.Line\n * @param {SVGElement} element Element to parse\n * @param {Object} [options] Options object\n * @param {Function} [callback] callback function invoked after parsing\n */\n fabric.Line.fromElement = function(element, callback, options) {\n options = options || { };\n var parsedAttributes = fabric.parseAttributes(element, fabric.Line.ATTRIBUTE_NAMES),\n points = [\n parsedAttributes.x1 || 0,\n parsedAttributes.y1 || 0,\n parsedAttributes.x2 || 0,\n parsedAttributes.y2 || 0\n ];\n callback(new fabric.Line(points, extend(parsedAttributes, options)));\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Line instance from an object representation\n * @static\n * @memberOf fabric.Line\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n */\n fabric.Line.fromObject = function(object, callback) {\n function _callback(instance) {\n delete instance.points;\n callback && callback(instance);\n };\n var options = clone(object, true);\n options.points = [object.x1, object.y1, object.x2, object.y2];\n fabric.Object._fromObject('Line', options, _callback, 'points');\n };\n\n /**\n * Produces a function that calculates distance from canvas edge to Line origin.\n */\n function makeEdgeToOriginGetter(propertyNames, originValues) {\n var origin = propertyNames.origin,\n axis1 = propertyNames.axis1,\n axis2 = propertyNames.axis2,\n dimension = propertyNames.dimension,\n nearest = originValues.nearest,\n center = originValues.center,\n farthest = originValues.farthest;\n\n return function() {\n switch (this.get(origin)) {\n case nearest:\n return Math.min(this.get(axis1), this.get(axis2));\n case center:\n return Math.min(this.get(axis1), this.get(axis2)) + (0.5 * this.get(dimension));\n case farthest:\n return Math.max(this.get(axis1), this.get(axis2));\n }\n };\n\n }\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n pi = Math.PI;\n\n if (fabric.Circle) {\n fabric.warn('fabric.Circle is already defined.');\n return;\n }\n\n /**\n * Circle class\n * @class fabric.Circle\n * @extends fabric.Object\n * @see {@link fabric.Circle#initialize} for constructor definition\n */\n fabric.Circle = fabric.util.createClass(fabric.Object, /** @lends fabric.Circle.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'circle',\n\n /**\n * Radius of this circle\n * @type Number\n * @default\n */\n radius: 0,\n\n /**\n * Start angle of the circle, moving clockwise\n * deprectated type, this should be in degree, this was an oversight.\n * probably will change to degrees in next major version\n * @type Number\n * @default 0\n */\n startAngle: 0,\n\n /**\n * End angle of the circle\n * deprectated type, this should be in degree, this was an oversight.\n * probably will change to degrees in next major version\n * @type Number\n * @default 2Pi\n */\n endAngle: pi * 2,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('radius', 'startAngle', 'endAngle'),\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Circle} thisArg\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n\n if (key === 'radius') {\n this.setRadius(value);\n }\n\n return this;\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['radius', 'startAngle', 'endAngle'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var svgString, x = 0, y = 0,\n angle = (this.endAngle - this.startAngle) % ( 2 * pi);\n\n if (angle === 0) {\n svgString = [\n '\\n'\n ];\n }\n else {\n var startX = fabric.util.cos(this.startAngle) * this.radius,\n startY = fabric.util.sin(this.startAngle) * this.radius,\n endX = fabric.util.cos(this.endAngle) * this.radius,\n endY = fabric.util.sin(this.endAngle) * this.radius,\n largeFlag = angle > pi ? '1' : '0';\n svgString = [\n '\\n'\n ];\n }\n return svgString;\n },\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n ctx.arc(\n 0,\n 0,\n this.radius,\n this.startAngle,\n this.endAngle, false);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusX: function() {\n return this.get('radius') * this.get('scaleX');\n },\n\n /**\n * Returns vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRadiusY: function() {\n return this.get('radius') * this.get('scaleY');\n },\n\n /**\n * Sets radius of an object (and updates width accordingly)\n * @return {fabric.Circle} thisArg\n */\n setRadius: function(value) {\n this.radius = value;\n return this.set('width', value * 2).set('height', value * 2);\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Circle.fromElement})\n * @static\n * @memberOf fabric.Circle\n * @see: http://www.w3.org/TR/SVG/shapes.html#CircleElement\n */\n fabric.Circle.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy r'.split(' '));\n\n /**\n * Returns {@link fabric.Circle} instance from an SVG element\n * @static\n * @memberOf fabric.Circle\n * @param {SVGElement} element Element to parse\n * @param {Function} [callback] Options callback invoked after parsing is finished\n * @param {Object} [options] Options object\n * @throws {Error} If value of `r` attribute is missing or invalid\n */\n fabric.Circle.fromElement = function(element, callback) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Circle.ATTRIBUTE_NAMES);\n\n if (!isValidRadius(parsedAttributes)) {\n throw new Error('value of `r` attribute is required and can not be negative');\n }\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.radius;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.radius;\n callback(new fabric.Circle(parsedAttributes));\n };\n\n /**\n * @private\n */\n function isValidRadius(attributes) {\n return (('radius' in attributes) && (attributes.radius >= 0));\n }\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Circle} instance from an object representation\n * @static\n * @memberOf fabric.Circle\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n * @return {Object} Instance of fabric.Circle\n */\n fabric.Circle.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Circle', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Triangle) {\n fabric.warn('fabric.Triangle is already defined');\n return;\n }\n\n /**\n * Triangle class\n * @class fabric.Triangle\n * @extends fabric.Object\n * @return {fabric.Triangle} thisArg\n * @see {@link fabric.Triangle#initialize} for constructor definition\n */\n fabric.Triangle = fabric.util.createClass(fabric.Object, /** @lends fabric.Triangle.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'triangle',\n\n /**\n * Width is set to 100 to compensate the old initialize code that was setting it to 100\n * @type Number\n * @default\n */\n width: 100,\n\n /**\n * Height is set to 100 to compensate the old initialize code that was setting it to 100\n * @type Number\n * @default\n */\n height: 100,\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\n\n ctx.beginPath();\n ctx.moveTo(-widthBy2, heightBy2);\n ctx.lineTo(0, -heightBy2);\n ctx.lineTo(widthBy2, heightBy2);\n ctx.closePath();\n\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2;\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, -widthBy2, heightBy2, 0, -heightBy2, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, 0, -heightBy2, widthBy2, heightBy2, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, widthBy2, heightBy2, -widthBy2, heightBy2, this.strokeDashArray);\n ctx.closePath();\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var widthBy2 = this.width / 2,\n heightBy2 = this.height / 2,\n points = [\n -widthBy2 + ' ' + heightBy2,\n '0 ' + -heightBy2,\n widthBy2 + ' ' + heightBy2\n ].join(',');\n return [\n ''\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /**\n * Returns {@link fabric.Triangle} instance from an object representation\n * @static\n * @memberOf fabric.Triangle\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n */\n fabric.Triangle.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Triangle', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n piBy2 = Math.PI * 2;\n\n if (fabric.Ellipse) {\n fabric.warn('fabric.Ellipse is already defined.');\n return;\n }\n\n /**\n * Ellipse class\n * @class fabric.Ellipse\n * @extends fabric.Object\n * @return {fabric.Ellipse} thisArg\n * @see {@link fabric.Ellipse#initialize} for constructor definition\n */\n fabric.Ellipse = fabric.util.createClass(fabric.Object, /** @lends fabric.Ellipse.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'ellipse',\n\n /**\n * Horizontal radius\n * @type Number\n * @default\n */\n rx: 0,\n\n /**\n * Vertical radius\n * @type Number\n * @default\n */\n ry: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('rx', 'ry'),\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n * @return {fabric.Ellipse} thisArg\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n this.set('rx', options && options.rx || 0);\n this.set('ry', options && options.ry || 0);\n },\n\n /**\n * @private\n * @param {String} key\n * @param {*} value\n * @return {fabric.Ellipse} thisArg\n */\n _set: function(key, value) {\n this.callSuper('_set', key, value);\n switch (key) {\n\n case 'rx':\n this.rx = value;\n this.set('width', value * 2);\n break;\n\n case 'ry':\n this.ry = value;\n this.set('height', value * 2);\n break;\n\n }\n return this;\n },\n\n /**\n * Returns horizontal radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRx: function() {\n return this.get('rx') * this.get('scaleX');\n },\n\n /**\n * Returns Vertical radius of an object (according to how an object is scaled)\n * @return {Number}\n */\n getRy: function() {\n return this.get('ry') * this.get('scaleY');\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['rx', 'ry'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render on\n */\n _render: function(ctx) {\n ctx.beginPath();\n ctx.save();\n ctx.transform(1, 0, 0, this.ry / this.rx, 0, 0);\n ctx.arc(\n 0,\n 0,\n this.rx,\n 0,\n piBy2,\n false);\n ctx.restore();\n this._renderPaintInOrder(ctx);\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Ellipse.fromElement})\n * @static\n * @memberOf fabric.Ellipse\n * @see http://www.w3.org/TR/SVG/shapes.html#EllipseElement\n */\n fabric.Ellipse.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('cx cy rx ry'.split(' '));\n\n /**\n * Returns {@link fabric.Ellipse} instance from an SVG element\n * @static\n * @memberOf fabric.Ellipse\n * @param {SVGElement} element Element to parse\n * @param {Function} [callback] Options callback invoked after parsing is finished\n * @return {fabric.Ellipse}\n */\n fabric.Ellipse.fromElement = function(element, callback) {\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Ellipse.ATTRIBUTE_NAMES);\n\n parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.rx;\n parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.ry;\n callback(new fabric.Ellipse(parsedAttributes));\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Ellipse} instance from an object representation\n * @static\n * @memberOf fabric.Ellipse\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as first argument\n * @return {fabric.Ellipse}\n */\n fabric.Ellipse.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Ellipse', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend;\n\n if (fabric.Rect) {\n fabric.warn('fabric.Rect is already defined');\n return;\n }\n\n /**\n * Rectangle class\n * @class fabric.Rect\n * @extends fabric.Object\n * @return {fabric.Rect} thisArg\n * @see {@link fabric.Rect#initialize} for constructor definition\n */\n fabric.Rect = fabric.util.createClass(fabric.Object, /** @lends fabric.Rect.prototype */ {\n\n /**\n * List of properties to consider when checking if state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat('rx', 'ry'),\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'rect',\n\n /**\n * Horizontal border radius\n * @type Number\n * @default\n */\n rx: 0,\n\n /**\n * Vertical border radius\n * @type Number\n * @default\n */\n ry: 0,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('rx', 'ry'),\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n this._initRxRy();\n },\n\n /**\n * Initializes rx/ry attributes\n * @private\n */\n _initRxRy: function() {\n if (this.rx && !this.ry) {\n this.ry = this.rx;\n }\n else if (this.ry && !this.rx) {\n this.rx = this.ry;\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n\n // 1x1 case (used in spray brush) optimization was removed because\n // with caching and higher zoom level this makes more damage than help\n\n var rx = this.rx ? Math.min(this.rx, this.width / 2) : 0,\n ry = this.ry ? Math.min(this.ry, this.height / 2) : 0,\n w = this.width,\n h = this.height,\n x = -this.width / 2,\n y = -this.height / 2,\n isRounded = rx !== 0 || ry !== 0,\n /* \"magic number\" for bezier approximations of arcs (http://itc.ktu.lt/itc354/Riskus354.pdf) */\n k = 1 - 0.5522847498;\n ctx.beginPath();\n\n ctx.moveTo(x + rx, y);\n\n ctx.lineTo(x + w - rx, y);\n isRounded && ctx.bezierCurveTo(x + w - k * rx, y, x + w, y + k * ry, x + w, y + ry);\n\n ctx.lineTo(x + w, y + h - ry);\n isRounded && ctx.bezierCurveTo(x + w, y + h - k * ry, x + w - k * rx, y + h, x + w - rx, y + h);\n\n ctx.lineTo(x + rx, y + h);\n isRounded && ctx.bezierCurveTo(x + k * rx, y + h, x, y + h - k * ry, x, y + h - ry);\n\n ctx.lineTo(x, y + ry);\n isRounded && ctx.bezierCurveTo(x, y + k * ry, x + k * rx, y, x + rx, y);\n\n ctx.closePath();\n\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var x = -this.width / 2,\n y = -this.height / 2,\n w = this.width,\n h = this.height;\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, x, y, x + w, y, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y, x + w, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y + h, x, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x, y + h, x, y, this.strokeDashArray);\n ctx.closePath();\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['rx', 'ry'].concat(propertiesToInclude));\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var x = -this.width / 2, y = -this.height / 2;\n return [\n '\\n'\n ];\n },\n /* _TO_SVG_END_ */\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Rect.fromElement`)\n * @static\n * @memberOf fabric.Rect\n * @see: http://www.w3.org/TR/SVG/shapes.html#RectElement\n */\n fabric.Rect.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat('x y rx ry width height'.split(' '));\n\n /**\n * Returns {@link fabric.Rect} instance from an SVG element\n * @static\n * @memberOf fabric.Rect\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Rect.fromElement = function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n options = options || { };\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Rect.ATTRIBUTE_NAMES);\n\n parsedAttributes.left = parsedAttributes.left || 0;\n parsedAttributes.top = parsedAttributes.top || 0;\n parsedAttributes.height = parsedAttributes.height || 0;\n parsedAttributes.width = parsedAttributes.width || 0;\n var rect = new fabric.Rect(extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes));\n rect.visible = rect.visible && rect.width > 0 && rect.height > 0;\n callback(rect);\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns {@link fabric.Rect} instance from an object representation\n * @static\n * @memberOf fabric.Rect\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Rect instance is created\n */\n fabric.Rect.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Rect', object, callback);\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n min = fabric.util.array.min,\n max = fabric.util.array.max,\n toFixed = fabric.util.toFixed;\n\n if (fabric.Polyline) {\n fabric.warn('fabric.Polyline is already defined');\n return;\n }\n\n /**\n * Polyline class\n * @class fabric.Polyline\n * @extends fabric.Object\n * @see {@link fabric.Polyline#initialize} for constructor definition\n */\n fabric.Polyline = fabric.util.createClass(fabric.Object, /** @lends fabric.Polyline.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'polyline',\n\n /**\n * Points array\n * @type Array\n * @default\n */\n points: null,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('points'),\n\n /**\n * Constructor\n * @param {Array} points Array of points (where each point is an object with x and y)\n * @param {Object} [options] Options object\n * @return {fabric.Polyline} thisArg\n * @example\n * var poly = new fabric.Polyline([\n * { x: 10, y: 10 },\n * { x: 50, y: 30 },\n * { x: 40, y: 70 },\n * { x: 60, y: 50 },\n * { x: 100, y: 150 },\n * { x: 40, y: 100 }\n * ], {\n * stroke: 'red',\n * left: 100,\n * top: 100\n * });\n */\n initialize: function(points, options) {\n options = options || {};\n this.points = points || [];\n this.callSuper('initialize', options);\n this._setPositionDimensions(options);\n },\n\n _setPositionDimensions: function(options) {\n var calcDim = this._calcDimensions(options), correctLeftTop;\n this.width = calcDim.width;\n this.height = calcDim.height;\n if (!options.fromSVG) {\n correctLeftTop = this.translateToGivenOrigin(\n { x: calcDim.left - this.strokeWidth / 2, y: calcDim.top - this.strokeWidth / 2 },\n 'left',\n 'top',\n this.originX,\n this.originY\n );\n }\n if (typeof options.left === 'undefined') {\n this.left = options.fromSVG ? calcDim.left : correctLeftTop.x;\n }\n if (typeof options.top === 'undefined') {\n this.top = options.fromSVG ? calcDim.top : correctLeftTop.y;\n }\n this.pathOffset = {\n x: calcDim.left + this.width / 2,\n y: calcDim.top + this.height / 2\n };\n },\n\n /**\n * Calculate the polygon min and max point from points array,\n * returning an object with left, top, widht, height to measure the\n * polygon size\n * @return {Object} object.left X coordinate of the polygon leftmost point\n * @return {Object} object.top Y coordinate of the polygon topmost point\n * @return {Object} object.width distance between X coordinates of the polygon leftmost and rightmost point\n * @return {Object} object.height distance between Y coordinates of the polygon topmost and bottommost point\n * @private\n */\n _calcDimensions: function() {\n\n var points = this.points,\n minX = min(points, 'x') || 0,\n minY = min(points, 'y') || 0,\n maxX = max(points, 'x') || 0,\n maxY = max(points, 'y') || 0,\n width = (maxX - minX),\n height = (maxY - minY);\n\n return {\n left: minX,\n top: minY,\n width: width,\n height: height\n };\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), {\n points: this.points.concat()\n });\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var points = [], diffX = this.pathOffset.x, diffY = this.pathOffset.y,\n NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n\n for (var i = 0, len = this.points.length; i < len; i++) {\n points.push(\n toFixed(this.points[i].x - diffX, NUM_FRACTION_DIGITS), ',',\n toFixed(this.points[i].y - diffY, NUM_FRACTION_DIGITS), ' '\n );\n }\n return [\n '<' + this.type + ' ', 'COMMON_PARTS',\n 'points=\"', points.join(''),\n '\" />\\n'\n ];\n },\n /* _TO_SVG_END_ */\n\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n commonRender: function(ctx) {\n var point, len = this.points.length,\n x = this.pathOffset.x,\n y = this.pathOffset.y;\n\n if (!len || isNaN(this.points[len - 1].y)) {\n // do not draw if no points or odd points\n // NaN comes from parseFloat of a empty string in parser\n return false;\n }\n ctx.beginPath();\n ctx.moveTo(this.points[0].x - x, this.points[0].y - y);\n for (var i = 0; i < len; i++) {\n point = this.points[i];\n ctx.lineTo(point.x - x, point.y - y);\n }\n return true;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n if (!this.commonRender(ctx)) {\n return;\n }\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var p1, p2;\n\n ctx.beginPath();\n for (var i = 0, len = this.points.length; i < len; i++) {\n p1 = this.points[i];\n p2 = this.points[i + 1] || p1;\n fabric.util.drawDashedLine(ctx, p1.x, p1.y, p2.x, p2.y, this.strokeDashArray);\n }\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity of this instance\n */\n complexity: function() {\n return this.get('points').length;\n }\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Polyline.fromElement})\n * @static\n * @memberOf fabric.Polyline\n * @see: http://www.w3.org/TR/SVG/shapes.html#PolylineElement\n */\n fabric.Polyline.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat();\n\n /**\n * Returns fabric.Polyline instance from an SVG element\n * @static\n * @memberOf fabric.Polyline\n * @param {SVGElement} element Element to parser\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Polyline.fromElementGenerator = function(_class) {\n return function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n options || (options = { });\n\n var points = fabric.parsePointsAttribute(element.getAttribute('points')),\n parsedAttributes = fabric.parseAttributes(element, fabric[_class].ATTRIBUTE_NAMES);\n parsedAttributes.fromSVG = true;\n callback(new fabric[_class](points, extend(parsedAttributes, options)));\n };\n };\n\n fabric.Polyline.fromElement = fabric.Polyline.fromElementGenerator('Polyline');\n\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Polyline instance from an object representation\n * @static\n * @memberOf fabric.Polyline\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Polyline.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Polyline', object, callback, 'points');\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.Polygon) {\n fabric.warn('fabric.Polygon is already defined');\n return;\n }\n\n /**\n * Polygon class\n * @class fabric.Polygon\n * @extends fabric.Polyline\n * @see {@link fabric.Polygon#initialize} for constructor definition\n */\n fabric.Polygon = fabric.util.createClass(fabric.Polyline, /** @lends fabric.Polygon.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'polygon',\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n if (!this.commonRender(ctx)) {\n return;\n }\n ctx.closePath();\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n this.callSuper('_renderDashedStroke', ctx);\n ctx.closePath();\n },\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Polygon.fromElement`)\n * @static\n * @memberOf fabric.Polygon\n * @see: http://www.w3.org/TR/SVG/shapes.html#PolygonElement\n */\n fabric.Polygon.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat();\n\n /**\n * Returns {@link fabric.Polygon} instance from an SVG element\n * @static\n * @memberOf fabric.Polygon\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Polygon.fromElement = fabric.Polyline.fromElementGenerator('Polygon');\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Polygon instance from an object representation\n * @static\n * @memberOf fabric.Polygon\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Polygon.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Polygon', object, callback, 'points');\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n min = fabric.util.array.min,\n max = fabric.util.array.max,\n extend = fabric.util.object.extend,\n _toString = Object.prototype.toString,\n drawArc = fabric.util.drawArc,\n toFixed = fabric.util.toFixed,\n commandLengths = {\n m: 2,\n l: 2,\n h: 1,\n v: 1,\n c: 6,\n s: 4,\n q: 4,\n t: 2,\n a: 7\n },\n repeatedCommands = {\n m: 'l',\n M: 'L'\n };\n\n if (fabric.Path) {\n fabric.warn('fabric.Path is already defined');\n return;\n }\n\n /**\n * Path class\n * @class fabric.Path\n * @extends fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#path_and_pathgroup}\n * @see {@link fabric.Path#initialize} for constructor definition\n */\n fabric.Path = fabric.util.createClass(fabric.Object, /** @lends fabric.Path.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'path',\n\n /**\n * Array of path points\n * @type Array\n * @default\n */\n path: null,\n\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('path', 'fillRule'),\n\n stateProperties: fabric.Object.prototype.stateProperties.concat('path'),\n\n /**\n * Constructor\n * @param {Array|String} path Path data (sequence of coordinates and corresponding \"command\" tokens)\n * @param {Object} [options] Options object\n * @return {fabric.Path} thisArg\n */\n initialize: function(path, options) {\n options = options || { };\n this.callSuper('initialize', options);\n\n if (!path) {\n path = [];\n }\n\n var fromArray = _toString.call(path) === '[object Array]';\n\n this.path = fromArray\n ? path\n // one of commands (m,M,l,L,q,Q,c,C,etc.) followed by non-command characters (i.e. command values)\n : path.match && path.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi);\n\n if (!this.path) {\n return;\n }\n\n if (!fromArray) {\n this.path = this._parsePath();\n }\n\n fabric.Polyline.prototype._setPositionDimensions.call(this, options);\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render path on\n */\n _renderPathCommands: function(ctx) {\n var current, // current instruction\n previous = null,\n subpathStartX = 0,\n subpathStartY = 0,\n x = 0, // current x\n y = 0, // current y\n controlX = 0, // current control point x\n controlY = 0, // current control point y\n tempX,\n tempY,\n l = -this.pathOffset.x,\n t = -this.pathOffset.y;\n\n ctx.beginPath();\n\n for (var i = 0, len = this.path.length; i < len; ++i) {\n\n current = this.path[i];\n\n switch (current[0]) { // first letter\n\n case 'l': // lineto, relative\n x += current[1];\n y += current[2];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'L': // lineto, absolute\n x = current[1];\n y = current[2];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'h': // horizontal lineto, relative\n x += current[1];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'H': // horizontal lineto, absolute\n x = current[1];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'v': // vertical lineto, relative\n y += current[1];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'V': // verical lineto, absolute\n y = current[1];\n ctx.lineTo(x + l, y + t);\n break;\n\n case 'm': // moveTo, relative\n x += current[1];\n y += current[2];\n subpathStartX = x;\n subpathStartY = y;\n ctx.moveTo(x + l, y + t);\n break;\n\n case 'M': // moveTo, absolute\n x = current[1];\n y = current[2];\n subpathStartX = x;\n subpathStartY = y;\n ctx.moveTo(x + l, y + t);\n break;\n\n case 'c': // bezierCurveTo, relative\n tempX = x + current[5];\n tempY = y + current[6];\n controlX = x + current[3];\n controlY = y + current[4];\n ctx.bezierCurveTo(\n x + current[1] + l, // x1\n y + current[2] + t, // y1\n controlX + l, // x2\n controlY + t, // y2\n tempX + l,\n tempY + t\n );\n x = tempX;\n y = tempY;\n break;\n\n case 'C': // bezierCurveTo, absolute\n x = current[5];\n y = current[6];\n controlX = current[3];\n controlY = current[4];\n ctx.bezierCurveTo(\n current[1] + l,\n current[2] + t,\n controlX + l,\n controlY + t,\n x + l,\n y + t\n );\n break;\n\n case 's': // shorthand cubic bezierCurveTo, relative\n\n // transform to absolute x,y\n tempX = x + current[3];\n tempY = y + current[4];\n\n if (previous[0].match(/[CcSs]/) === null) {\n // If there is no previous command or if the previous command was not a C, c, S, or s,\n // the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n else {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n ctx.bezierCurveTo(\n controlX + l,\n controlY + t,\n x + current[1] + l,\n y + current[2] + t,\n tempX + l,\n tempY + t\n );\n // set control point to 2nd one of this command\n // \"... the first control point is assumed to be\n // the reflection of the second control point on\n // the previous command relative to the current point.\"\n controlX = x + current[1];\n controlY = y + current[2];\n\n x = tempX;\n y = tempY;\n break;\n\n case 'S': // shorthand cubic bezierCurveTo, absolute\n tempX = current[3];\n tempY = current[4];\n if (previous[0].match(/[CcSs]/) === null) {\n // If there is no previous command or if the previous command was not a C, c, S, or s,\n // the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n else {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n ctx.bezierCurveTo(\n controlX + l,\n controlY + t,\n current[1] + l,\n current[2] + t,\n tempX + l,\n tempY + t\n );\n x = tempX;\n y = tempY;\n\n // set control point to 2nd one of this command\n // \"... the first control point is assumed to be\n // the reflection of the second control point on\n // the previous command relative to the current point.\"\n controlX = current[1];\n controlY = current[2];\n\n break;\n\n case 'q': // quadraticCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[3];\n tempY = y + current[4];\n\n controlX = x + current[1];\n controlY = y + current[2];\n\n ctx.quadraticCurveTo(\n controlX + l,\n controlY + t,\n tempX + l,\n tempY + t\n );\n x = tempX;\n y = tempY;\n break;\n\n case 'Q': // quadraticCurveTo, absolute\n tempX = current[3];\n tempY = current[4];\n\n ctx.quadraticCurveTo(\n current[1] + l,\n current[2] + t,\n tempX + l,\n tempY + t\n );\n x = tempX;\n y = tempY;\n controlX = current[1];\n controlY = current[2];\n break;\n\n case 't': // shorthand quadraticCurveTo, relative\n\n // transform to absolute x,y\n tempX = x + current[1];\n tempY = y + current[2];\n\n if (previous[0].match(/[QqTt]/) === null) {\n // If there is no previous command or if the previous command was not a Q, q, T or t,\n // assume the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n else {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n ctx.quadraticCurveTo(\n controlX + l,\n controlY + t,\n tempX + l,\n tempY + t\n );\n x = tempX;\n y = tempY;\n\n break;\n\n case 'T':\n tempX = current[1];\n tempY = current[2];\n\n if (previous[0].match(/[QqTt]/) === null) {\n // If there is no previous command or if the previous command was not a Q, q, T or t,\n // assume the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n else {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n ctx.quadraticCurveTo(\n controlX + l,\n controlY + t,\n tempX + l,\n tempY + t\n );\n x = tempX;\n y = tempY;\n break;\n\n case 'a':\n // TODO: optimize this\n drawArc(ctx, x + l, y + t, [\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6] + x + l,\n current[7] + y + t\n ]);\n x += current[6];\n y += current[7];\n break;\n\n case 'A':\n // TODO: optimize this\n drawArc(ctx, x + l, y + t, [\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6] + l,\n current[7] + t\n ]);\n x = current[6];\n y = current[7];\n break;\n\n case 'z':\n case 'Z':\n x = subpathStartX;\n y = subpathStartY;\n ctx.closePath();\n break;\n }\n previous = current;\n }\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx context to render path on\n */\n _render: function(ctx) {\n this._renderPathCommands(ctx);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} string representation of an instance\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return extend(this.callSuper('toObject', propertiesToInclude), {\n path: this.path.map(function(item) { return item.slice(); }),\n });\n },\n\n /**\n * Returns dataless object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n var o = this.toObject(['sourcePath'].concat(propertiesToInclude));\n if (o.sourcePath) {\n delete o.path;\n }\n return o;\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var path = this.path.map(function(path) {\n return path.join(' ');\n }).join(' ');\n return [\n '\\n'\n ];\n },\n\n _getOffsetTransform: function() {\n var digits = fabric.Object.NUM_FRACTION_DIGITS;\n return ' translate(' + toFixed(-this.pathOffset.x, digits) + ', ' +\n toFixed(-this.pathOffset.y, digits) + ')';\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n var additionalTransform = this._getOffsetTransform();\n return '\\t' + this._createBaseClipPathSVGMarkup(\n this._toSVG(), { reviver: reviver, additionalTransform: additionalTransform }\n );\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n var additionalTransform = this._getOffsetTransform();\n return this._createBaseSVGMarkup(this._toSVG(), { reviver: reviver, additionalTransform: additionalTransform });\n },\n /* _TO_SVG_END_ */\n\n /**\n * Returns number representation of an instance complexity\n * @return {Number} complexity of this instance\n */\n complexity: function() {\n return this.path.length;\n },\n\n /**\n * @private\n */\n _parsePath: function() {\n var result = [],\n coords = [],\n currentPath,\n parsed,\n re = fabric.rePathCommand,\n match,\n coordsStr;\n\n for (var i = 0, coordsParsed, len = this.path.length; i < len; i++) {\n currentPath = this.path[i];\n\n coordsStr = currentPath.slice(1).trim();\n coords.length = 0;\n\n while ((match = re.exec(coordsStr))) {\n coords.push(match[0]);\n }\n\n coordsParsed = [currentPath.charAt(0)];\n\n for (var j = 0, jlen = coords.length; j < jlen; j++) {\n parsed = parseFloat(coords[j]);\n if (!isNaN(parsed)) {\n coordsParsed.push(parsed);\n }\n }\n\n var command = coordsParsed[0],\n commandLength = commandLengths[command.toLowerCase()],\n repeatedCommand = repeatedCommands[command] || command;\n\n if (coordsParsed.length - 1 > commandLength) {\n for (var k = 1, klen = coordsParsed.length; k < klen; k += commandLength) {\n result.push([command].concat(coordsParsed.slice(k, k + commandLength)));\n command = repeatedCommand;\n }\n }\n else {\n result.push(coordsParsed);\n }\n }\n\n return result;\n },\n\n /**\n * @private\n */\n _calcDimensions: function() {\n\n var aX = [],\n aY = [],\n current, // current instruction\n previous = null,\n subpathStartX = 0,\n subpathStartY = 0,\n x = 0, // current x\n y = 0, // current y\n controlX = 0, // current control point x\n controlY = 0, // current control point y\n tempX,\n tempY,\n bounds;\n\n for (var i = 0, len = this.path.length; i < len; ++i) {\n\n current = this.path[i];\n\n switch (current[0]) { // first letter\n\n case 'l': // lineto, relative\n x += current[1];\n y += current[2];\n bounds = [];\n break;\n\n case 'L': // lineto, absolute\n x = current[1];\n y = current[2];\n bounds = [];\n break;\n\n case 'h': // horizontal lineto, relative\n x += current[1];\n bounds = [];\n break;\n\n case 'H': // horizontal lineto, absolute\n x = current[1];\n bounds = [];\n break;\n\n case 'v': // vertical lineto, relative\n y += current[1];\n bounds = [];\n break;\n\n case 'V': // verical lineto, absolute\n y = current[1];\n bounds = [];\n break;\n\n case 'm': // moveTo, relative\n x += current[1];\n y += current[2];\n subpathStartX = x;\n subpathStartY = y;\n bounds = [];\n break;\n\n case 'M': // moveTo, absolute\n x = current[1];\n y = current[2];\n subpathStartX = x;\n subpathStartY = y;\n bounds = [];\n break;\n\n case 'c': // bezierCurveTo, relative\n tempX = x + current[5];\n tempY = y + current[6];\n controlX = x + current[3];\n controlY = y + current[4];\n bounds = fabric.util.getBoundsOfCurve(x, y,\n x + current[1], // x1\n y + current[2], // y1\n controlX, // x2\n controlY, // y2\n tempX,\n tempY\n );\n x = tempX;\n y = tempY;\n break;\n\n case 'C': // bezierCurveTo, absolute\n controlX = current[3];\n controlY = current[4];\n bounds = fabric.util.getBoundsOfCurve(x, y,\n current[1],\n current[2],\n controlX,\n controlY,\n current[5],\n current[6]\n );\n x = current[5];\n y = current[6];\n break;\n\n case 's': // shorthand cubic bezierCurveTo, relative\n\n // transform to absolute x,y\n tempX = x + current[3];\n tempY = y + current[4];\n\n if (previous[0].match(/[CcSs]/) === null) {\n // If there is no previous command or if the previous command was not a C, c, S, or s,\n // the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n else {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n bounds = fabric.util.getBoundsOfCurve(x, y,\n controlX,\n controlY,\n x + current[1],\n y + current[2],\n tempX,\n tempY\n );\n // set control point to 2nd one of this command\n // \"... the first control point is assumed to be\n // the reflection of the second control point on\n // the previous command relative to the current point.\"\n controlX = x + current[1];\n controlY = y + current[2];\n x = tempX;\n y = tempY;\n break;\n\n case 'S': // shorthand cubic bezierCurveTo, absolute\n tempX = current[3];\n tempY = current[4];\n if (previous[0].match(/[CcSs]/) === null) {\n // If there is no previous command or if the previous command was not a C, c, S, or s,\n // the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n else {\n // calculate reflection of previous control points\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n bounds = fabric.util.getBoundsOfCurve(x, y,\n controlX,\n controlY,\n current[1],\n current[2],\n tempX,\n tempY\n );\n x = tempX;\n y = tempY;\n // set control point to 2nd one of this command\n // \"... the first control point is assumed to be\n // the reflection of the second control point on\n // the previous command relative to the current point.\"\n controlX = current[1];\n controlY = current[2];\n break;\n\n case 'q': // quadraticCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[3];\n tempY = y + current[4];\n controlX = x + current[1];\n controlY = y + current[2];\n bounds = fabric.util.getBoundsOfCurve(x, y,\n controlX,\n controlY,\n controlX,\n controlY,\n tempX,\n tempY\n );\n x = tempX;\n y = tempY;\n break;\n\n case 'Q': // quadraticCurveTo, absolute\n controlX = current[1];\n controlY = current[2];\n bounds = fabric.util.getBoundsOfCurve(x, y,\n controlX,\n controlY,\n controlX,\n controlY,\n current[3],\n current[4]\n );\n x = current[3];\n y = current[4];\n break;\n\n case 't': // shorthand quadraticCurveTo, relative\n // transform to absolute x,y\n tempX = x + current[1];\n tempY = y + current[2];\n if (previous[0].match(/[QqTt]/) === null) {\n // If there is no previous command or if the previous command was not a Q, q, T or t,\n // assume the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n else {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n\n bounds = fabric.util.getBoundsOfCurve(x, y,\n controlX,\n controlY,\n controlX,\n controlY,\n tempX,\n tempY\n );\n x = tempX;\n y = tempY;\n\n break;\n\n case 'T':\n tempX = current[1];\n tempY = current[2];\n\n if (previous[0].match(/[QqTt]/) === null) {\n // If there is no previous command or if the previous command was not a Q, q, T or t,\n // assume the control point is coincident with the current point\n controlX = x;\n controlY = y;\n }\n else {\n // calculate reflection of previous control point\n controlX = 2 * x - controlX;\n controlY = 2 * y - controlY;\n }\n bounds = fabric.util.getBoundsOfCurve(x, y,\n controlX,\n controlY,\n controlX,\n controlY,\n tempX,\n tempY\n );\n x = tempX;\n y = tempY;\n break;\n\n case 'a':\n // TODO: optimize this\n bounds = fabric.util.getBoundsOfArc(x, y,\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6] + x,\n current[7] + y\n );\n x += current[6];\n y += current[7];\n break;\n\n case 'A':\n // TODO: optimize this\n bounds = fabric.util.getBoundsOfArc(x, y,\n current[1],\n current[2],\n current[3],\n current[4],\n current[5],\n current[6],\n current[7]\n );\n x = current[6];\n y = current[7];\n break;\n\n case 'z':\n case 'Z':\n x = subpathStartX;\n y = subpathStartY;\n break;\n }\n previous = current;\n bounds.forEach(function (point) {\n aX.push(point.x);\n aY.push(point.y);\n });\n aX.push(x);\n aY.push(y);\n }\n\n var minX = min(aX) || 0,\n minY = min(aY) || 0,\n maxX = max(aX) || 0,\n maxY = max(aY) || 0,\n deltaX = maxX - minX,\n deltaY = maxY - minY;\n\n return {\n left: minX,\n top: minY,\n width: deltaX,\n height: deltaY\n };\n }\n });\n\n /**\n * Creates an instance of fabric.Path from an object\n * @static\n * @memberOf fabric.Path\n * @param {Object} object\n * @param {Function} [callback] Callback to invoke when an fabric.Path instance is created\n */\n fabric.Path.fromObject = function(object, callback) {\n if (typeof object.sourcePath === 'string') {\n var pathUrl = object.sourcePath;\n fabric.loadSVGFromURL(pathUrl, function (elements) {\n var path = elements[0];\n path.setOptions(object);\n callback && callback(path);\n });\n }\n else {\n fabric.Object._fromObject('Path', object, callback, 'path');\n }\n };\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by `fabric.Path.fromElement`)\n * @static\n * @memberOf fabric.Path\n * @see http://www.w3.org/TR/SVG/paths.html#PathElement\n */\n fabric.Path.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(['d']);\n\n /**\n * Creates an instance of fabric.Path from an SVG element\n * @static\n * @memberOf fabric.Path\n * @param {SVGElement} element to parse\n * @param {Function} callback Callback to invoke when an fabric.Path instance is created\n * @param {Object} [options] Options object\n * @param {Function} [callback] Options callback invoked after parsing is finished\n */\n fabric.Path.fromElement = function(element, callback, options) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Path.ATTRIBUTE_NAMES);\n parsedAttributes.fromSVG = true;\n callback(new fabric.Path(parsedAttributes.d, extend(parsedAttributes, options)));\n };\n /* _FROM_SVG_END_ */\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n min = fabric.util.array.min,\n max = fabric.util.array.max;\n\n if (fabric.Group) {\n return;\n }\n\n /**\n * Group class\n * @class fabric.Group\n * @extends fabric.Object\n * @mixes fabric.Collection\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#groups}\n * @see {@link fabric.Group#initialize} for constructor definition\n */\n fabric.Group = fabric.util.createClass(fabric.Object, fabric.Collection, /** @lends fabric.Group.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'group',\n\n /**\n * Width of stroke\n * @type Number\n * @default\n */\n strokeWidth: 0,\n\n /**\n * Indicates if click, mouseover, mouseout events & hoverCursor should also check for subtargets\n * @type Boolean\n * @default\n */\n subTargetCheck: false,\n\n /**\n * Groups are container, do not render anything on theyr own, ence no cache properties\n * @type Array\n * @default\n */\n cacheProperties: [],\n\n /**\n * setOnGroup is a method used for TextBox that is no more used since 2.0.0 The behavior is still\n * available setting this boolean to true.\n * @type Boolean\n * @since 2.0.0\n * @default\n */\n useSetOnGroup: false,\n\n /**\n * Constructor\n * @param {Object} objects Group objects\n * @param {Object} [options] Options object\n * @param {Boolean} [isAlreadyGrouped] if true, objects have been grouped already.\n * @return {Object} thisArg\n */\n initialize: function(objects, options, isAlreadyGrouped) {\n options = options || {};\n this._objects = [];\n // if objects enclosed in a group have been grouped already,\n // we cannot change properties of objects.\n // Thus we need to set options to group without objects,\n isAlreadyGrouped && this.callSuper('initialize', options);\n this._objects = objects || [];\n for (var i = this._objects.length; i--; ) {\n this._objects[i].group = this;\n }\n\n if (!isAlreadyGrouped) {\n var center = options && options.centerPoint;\n // we want to set origins before calculating the bounding box.\n // so that the topleft can be set with that in mind.\n // if specific top and left are passed, are overwritten later\n // with the callSuper('initialize', options)\n if (options.originX !== undefined) {\n this.originX = options.originX;\n }\n if (options.originY !== undefined) {\n this.originY = options.originY;\n }\n // if coming from svg i do not want to calc bounds.\n // i assume width and height are passed along options\n center || this._calcBounds();\n this._updateObjectsCoords(center);\n delete options.centerPoint;\n this.callSuper('initialize', options);\n }\n else {\n this._updateObjectsACoords();\n }\n\n this.setCoords();\n },\n\n /**\n * @private\n * @param {Boolean} [skipCoordsChange] if true, coordinates of objects enclosed in a group do not change\n */\n _updateObjectsACoords: function() {\n var ignoreZoom = true, skipAbsolute = true;\n for (var i = this._objects.length; i--; ){\n this._objects[i].setCoords(ignoreZoom, skipAbsolute);\n }\n },\n\n /**\n * @private\n * @param {Boolean} [skipCoordsChange] if true, coordinates of objects enclosed in a group do not change\n */\n _updateObjectsCoords: function(center) {\n var center = center || this.getCenterPoint();\n for (var i = this._objects.length; i--; ){\n this._updateObjectCoords(this._objects[i], center);\n }\n },\n\n /**\n * @private\n * @param {Object} object\n * @param {fabric.Point} center, current center of group.\n */\n _updateObjectCoords: function(object, center) {\n var objectLeft = object.left,\n objectTop = object.top,\n ignoreZoom = true, skipAbsolute = true;\n\n object.set({\n left: objectLeft - center.x,\n top: objectTop - center.y\n });\n object.group = this;\n object.setCoords(ignoreZoom, skipAbsolute);\n },\n\n /**\n * Returns string represenation of a group\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Adds an object to a group; Then recalculates group's dimension, position.\n * @param {Object} object\n * @return {fabric.Group} thisArg\n * @chainable\n */\n addWithUpdate: function(object) {\n this._restoreObjectsState();\n fabric.util.resetObjectTransform(this);\n if (object) {\n this._objects.push(object);\n object.group = this;\n object._set('canvas', this.canvas);\n }\n this._calcBounds();\n this._updateObjectsCoords();\n this.setCoords();\n this.dirty = true;\n return this;\n },\n\n /**\n * Removes an object from a group; Then recalculates group's dimension, position.\n * @param {Object} object\n * @return {fabric.Group} thisArg\n * @chainable\n */\n removeWithUpdate: function(object) {\n this._restoreObjectsState();\n fabric.util.resetObjectTransform(this);\n\n this.remove(object);\n this._calcBounds();\n this._updateObjectsCoords();\n this.setCoords();\n this.dirty = true;\n return this;\n },\n\n /**\n * @private\n */\n _onObjectAdded: function(object) {\n this.dirty = true;\n object.group = this;\n object._set('canvas', this.canvas);\n },\n\n /**\n * @private\n */\n _onObjectRemoved: function(object) {\n this.dirty = true;\n delete object.group;\n },\n\n /**\n * @private\n */\n _set: function(key, value) {\n var i = this._objects.length;\n if (this.useSetOnGroup) {\n while (i--) {\n this._objects[i].setOnGroup(key, value);\n }\n }\n if (key === 'canvas') {\n while (i--) {\n this._objects[i]._set(key, value);\n }\n }\n fabric.Object.prototype._set.call(this, key, value);\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var _includeDefaultValues = this.includeDefaultValues;\n var objsToObject = this._objects.map(function(obj) {\n var originalDefaults = obj.includeDefaultValues;\n obj.includeDefaultValues = _includeDefaultValues;\n var _obj = obj.toObject(propertiesToInclude);\n obj.includeDefaultValues = originalDefaults;\n return _obj;\n });\n var obj = fabric.Object.prototype.toObject.call(this, propertiesToInclude);\n obj.objects = objsToObject;\n return obj;\n },\n\n /**\n * Returns object representation of an instance, in dataless mode.\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toDatalessObject: function(propertiesToInclude) {\n var objsToObject, sourcePath = this.sourcePath;\n if (sourcePath) {\n objsToObject = sourcePath;\n }\n else {\n var _includeDefaultValues = this.includeDefaultValues;\n objsToObject = this._objects.map(function(obj) {\n var originalDefaults = obj.includeDefaultValues;\n obj.includeDefaultValues = _includeDefaultValues;\n var _obj = obj.toDatalessObject(propertiesToInclude);\n obj.includeDefaultValues = originalDefaults;\n return _obj;\n });\n }\n var obj = fabric.Object.prototype.toDatalessObject.call(this, propertiesToInclude);\n obj.objects = objsToObject;\n return obj;\n },\n\n /**\n * Renders instance on a given context\n * @param {CanvasRenderingContext2D} ctx context to render instance on\n */\n render: function(ctx) {\n this._transformDone = true;\n this.callSuper('render', ctx);\n this._transformDone = false;\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group is already cached.\n * @return {Boolean}\n */\n shouldCache: function() {\n var ownCache = fabric.Object.prototype.shouldCache.call(this);\n if (ownCache) {\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].willDrawShadow()) {\n this.ownCaching = false;\n return false;\n }\n }\n }\n return ownCache;\n },\n\n /**\n * Check if this object or a child object will cast a shadow\n * @return {Boolean}\n */\n willDrawShadow: function() {\n if (fabric.Object.prototype.willDrawShadow.call(this)) {\n return true;\n }\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].willDrawShadow()) {\n return true;\n }\n }\n return false;\n },\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache: function() {\n return this.ownCaching || (this.group && this.group.isOnACache());\n },\n\n /**\n * Execute the drawing operation for an object on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n drawObject: function(ctx) {\n for (var i = 0, len = this._objects.length; i < len; i++) {\n this._objects[i].render(ctx);\n }\n this._drawClipPath(ctx);\n },\n\n /**\n * Check if cache is dirty\n */\n isCacheDirty: function(skipCanvas) {\n if (this.callSuper('isCacheDirty', skipCanvas)) {\n return true;\n }\n if (!this.statefullCache) {\n return false;\n }\n for (var i = 0, len = this._objects.length; i < len; i++) {\n if (this._objects[i].isCacheDirty(true)) {\n if (this._cacheCanvas) {\n // if this group has not a cache canvas there is nothing to clean\n var x = this.cacheWidth / this.zoomX, y = this.cacheHeight / this.zoomY;\n this._cacheContext.clearRect(-x / 2, -y / 2, x, y);\n }\n return true;\n }\n }\n return false;\n },\n\n /**\n * Retores original state of each of group objects (original state is that which was before group was created).\n * @private\n * @return {fabric.Group} thisArg\n * @chainable\n */\n _restoreObjectsState: function() {\n this._objects.forEach(this._restoreObjectState, this);\n return this;\n },\n\n /**\n * Realises the transform from this group onto the supplied object\n * i.e. it tells you what would happen if the supplied object was in\n * the group, and then the group was destroyed. It mutates the supplied\n * object.\n * @param {fabric.Object} object\n * @return {fabric.Object} transformedObject\n */\n realizeTransform: function(object) {\n var matrix = object.calcTransformMatrix(),\n options = fabric.util.qrDecompose(matrix),\n center = new fabric.Point(options.translateX, options.translateY);\n object.flipX = false;\n object.flipY = false;\n object.set('scaleX', options.scaleX);\n object.set('scaleY', options.scaleY);\n object.skewX = options.skewX;\n object.skewY = options.skewY;\n object.angle = options.angle;\n object.setPositionByOrigin(center, 'center', 'center');\n return object;\n },\n\n /**\n * Restores original state of a specified object in group\n * @private\n * @param {fabric.Object} object\n * @return {fabric.Group} thisArg\n */\n _restoreObjectState: function(object) {\n this.realizeTransform(object);\n object.setCoords();\n delete object.group;\n return this;\n },\n\n /**\n * Destroys a group (restoring state of its objects)\n * @return {fabric.Group} thisArg\n * @chainable\n */\n destroy: function() {\n // when group is destroyed objects needs to get a repaint to be eventually\n // displayed on canvas.\n this._objects.forEach(function(object) {\n object.set('dirty', true);\n });\n return this._restoreObjectsState();\n },\n\n /**\n * make a group an active selection, remove the group from canvas\n * the group has to be on canvas for this to work.\n * @return {fabric.ActiveSelection} thisArg\n * @chainable\n */\n toActiveSelection: function() {\n if (!this.canvas) {\n return;\n }\n var objects = this._objects, canvas = this.canvas;\n this._objects = [];\n var options = this.toObject();\n delete options.objects;\n var activeSelection = new fabric.ActiveSelection([]);\n activeSelection.set(options);\n activeSelection.type = 'activeSelection';\n canvas.remove(this);\n objects.forEach(function(object) {\n object.group = activeSelection;\n object.dirty = true;\n canvas.add(object);\n });\n activeSelection.canvas = canvas;\n activeSelection._objects = objects;\n canvas._activeObject = activeSelection;\n activeSelection.setCoords();\n return activeSelection;\n },\n\n /**\n * Destroys a group (restoring state of its objects)\n * @return {fabric.Group} thisArg\n * @chainable\n */\n ungroupOnCanvas: function() {\n return this._restoreObjectsState();\n },\n\n /**\n * Sets coordinates of all objects inside group\n * @return {fabric.Group} thisArg\n * @chainable\n */\n setObjectsCoords: function() {\n var ignoreZoom = true, skipAbsolute = true;\n this.forEachObject(function(object) {\n object.setCoords(ignoreZoom, skipAbsolute);\n });\n return this;\n },\n\n /**\n * @private\n */\n _calcBounds: function(onlyWidthHeight) {\n var aX = [],\n aY = [],\n o, prop,\n props = ['tr', 'br', 'bl', 'tl'],\n i = 0, iLen = this._objects.length,\n j, jLen = props.length,\n ignoreZoom = true;\n\n for ( ; i < iLen; ++i) {\n o = this._objects[i];\n o.setCoords(ignoreZoom);\n for (j = 0; j < jLen; j++) {\n prop = props[j];\n aX.push(o.oCoords[prop].x);\n aY.push(o.oCoords[prop].y);\n }\n }\n\n this._getBounds(aX, aY, onlyWidthHeight);\n },\n\n /**\n * @private\n */\n _getBounds: function(aX, aY, onlyWidthHeight) {\n var minXY = new fabric.Point(min(aX), min(aY)),\n maxXY = new fabric.Point(max(aX), max(aY)),\n top = minXY.y || 0, left = minXY.x || 0,\n width = (maxXY.x - minXY.x) || 0,\n height = (maxXY.y - minXY.y) || 0;\n this.width = width;\n this.height = height;\n if (!onlyWidthHeight) {\n // the bounding box always finds the topleft most corner.\n // whatever is the group origin, we set up here the left/top position.\n this.setPositionByOrigin({ x: left, y: top }, 'left', 'top');\n }\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n _toSVG: function(reviver) {\n var svgString = ['\\n'];\n\n for (var i = 0, len = this._objects.length; i < len; i++) {\n svgString.push('\\t\\t', this._objects[i].toSVG(reviver));\n }\n svgString.push('\\n');\n return svgString;\n },\n\n /**\n * Returns styles-string for svg-export, specific version for group\n * @return {String}\n */\n getSvgStyles: function() {\n var opacity = typeof this.opacity !== 'undefined' && this.opacity !== 1 ?\n 'opacity: ' + this.opacity + ';' : '',\n visibility = this.visible ? '' : ' visibility: hidden;';\n return [\n opacity,\n this.getSvgFilter(),\n visibility\n ].join('');\n },\n\n /**\n * Returns svg clipPath representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toClipPathSVG: function(reviver) {\n var svgString = [];\n\n for (var i = 0, len = this._objects.length; i < len; i++) {\n svgString.push('\\t', this._objects[i].toClipPathSVG(reviver));\n }\n\n return this._createBaseClipPathSVGMarkup(svgString, { reviver: reviver });\n },\n /* _TO_SVG_END_ */\n });\n\n /**\n * Returns {@link fabric.Group} instance from an object representation\n * @static\n * @memberOf fabric.Group\n * @param {Object} object Object to create a group from\n * @param {Function} [callback] Callback to invoke when an group instance is created\n */\n fabric.Group.fromObject = function(object, callback) {\n var objects = object.objects,\n options = fabric.util.object.clone(object, true);\n delete options.objects;\n if (typeof objects === 'string') {\n // it has to be an url or something went wrong.\n fabric.loadSVGFromURL(objects, function (elements) {\n var group = fabric.util.groupSVGElements(elements, object, objects);\n group.set(options);\n callback && callback(group);\n });\n return;\n }\n fabric.util.enlivenObjects(objects, function(enlivenedObjects) {\n fabric.util.enlivenObjects([object.clipPath], function(enlivedClipPath) {\n var options = fabric.util.object.clone(object, true);\n options.clipPath = enlivedClipPath[0];\n delete options.objects;\n callback && callback(new fabric.Group(enlivenedObjects, options, true));\n });\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { });\n\n if (fabric.ActiveSelection) {\n return;\n }\n\n /**\n * Group class\n * @class fabric.ActiveSelection\n * @extends fabric.Group\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-3#groups}\n * @see {@link fabric.ActiveSelection#initialize} for constructor definition\n */\n fabric.ActiveSelection = fabric.util.createClass(fabric.Group, /** @lends fabric.ActiveSelection.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'activeSelection',\n\n /**\n * Constructor\n * @param {Object} objects ActiveSelection objects\n * @param {Object} [options] Options object\n * @return {Object} thisArg\n */\n initialize: function(objects, options) {\n options = options || {};\n this._objects = objects || [];\n for (var i = this._objects.length; i--; ) {\n this._objects[i].group = this;\n }\n\n if (options.originX) {\n this.originX = options.originX;\n }\n if (options.originY) {\n this.originY = options.originY;\n }\n this._calcBounds();\n this._updateObjectsCoords();\n fabric.Object.prototype.initialize.call(this, options);\n this.setCoords();\n },\n\n /**\n * Change te activeSelection to a normal group,\n * High level function that automatically adds it to canvas as\n * active object. no events fired.\n * @since 2.0.0\n * @return {fabric.Group}\n */\n toGroup: function() {\n var objects = this._objects.concat();\n this._objects = [];\n var options = fabric.Object.prototype.toObject.call(this);\n var newGroup = new fabric.Group([]);\n delete options.type;\n newGroup.set(options);\n objects.forEach(function(object) {\n object.canvas.remove(object);\n object.group = newGroup;\n });\n newGroup._objects = objects;\n if (!this.canvas) {\n return newGroup;\n }\n var canvas = this.canvas;\n canvas.add(newGroup);\n canvas._activeObject = newGroup;\n newGroup.setCoords();\n return newGroup;\n },\n\n /**\n * If returns true, deselection is cancelled.\n * @since 2.0.0\n * @return {Boolean} [cancel]\n */\n onDeselect: function() {\n this.destroy();\n return false;\n },\n\n /**\n * Returns string representation of a group\n * @return {String}\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * objectCaching is a global flag, wins over everything\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * @return {Boolean}\n */\n shouldCache: function() {\n return false;\n },\n\n /**\n * Check if this group or its parent group are caching, recursively up\n * @return {Boolean}\n */\n isOnACache: function() {\n return false;\n },\n\n /**\n * Renders controls and borders for the object\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [styleOverride] properties to override the object style\n * @param {Object} [childrenOverride] properties to override the children overrides\n */\n _renderControls: function(ctx, styleOverride, childrenOverride) {\n ctx.save();\n ctx.globalAlpha = this.isMoving ? this.borderOpacityWhenMoving : 1;\n this.callSuper('_renderControls', ctx, styleOverride);\n childrenOverride = childrenOverride || { };\n if (typeof childrenOverride.hasControls === 'undefined') {\n childrenOverride.hasControls = false;\n }\n if (typeof childrenOverride.hasRotatingPoint === 'undefined') {\n childrenOverride.hasRotatingPoint = false;\n }\n childrenOverride.forActiveSelection = true;\n for (var i = 0, len = this._objects.length; i < len; i++) {\n this._objects[i]._renderControls(ctx, childrenOverride);\n }\n ctx.restore();\n },\n });\n\n /**\n * Returns {@link fabric.ActiveSelection} instance from an object representation\n * @static\n * @memberOf fabric.ActiveSelection\n * @param {Object} object Object to create a group from\n * @param {Function} [callback] Callback to invoke when an ActiveSelection instance is created\n */\n fabric.ActiveSelection.fromObject = function(object, callback) {\n fabric.util.enlivenObjects(object.objects, function(enlivenedObjects) {\n delete object.objects;\n callback && callback(new fabric.ActiveSelection(enlivenedObjects, object, true));\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var extend = fabric.util.object.extend;\n\n if (!global.fabric) {\n global.fabric = { };\n }\n\n if (global.fabric.Image) {\n fabric.warn('fabric.Image is already defined.');\n return;\n }\n\n /**\n * Image class\n * @class fabric.Image\n * @extends fabric.Object\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-1#images}\n * @see {@link fabric.Image#initialize} for constructor definition\n */\n fabric.Image = fabric.util.createClass(fabric.Object, /** @lends fabric.Image.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'image',\n\n /**\n * crossOrigin value (one of \"\", \"anonymous\", \"use-credentials\")\n * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes\n * @type String\n * @default\n */\n crossOrigin: '',\n\n /**\n * Width of a stroke.\n * For image quality a stroke multiple of 2 gives better results.\n * @type Number\n * @default\n */\n strokeWidth: 0,\n\n /**\n * When calling {@link fabric.Image.getSrc}, return value from element src with `element.getAttribute('src')`.\n * This allows for relative urls as image src.\n * @since 2.7.0\n * @type Boolean\n * @default\n */\n srcFromAttribute: false,\n\n /**\n * private\n * contains last value of scaleX to detect\n * if the Image got resized after the last Render\n * @type Number\n */\n _lastScaleX: 1,\n\n /**\n * private\n * contains last value of scaleY to detect\n * if the Image got resized after the last Render\n * @type Number\n */\n _lastScaleY: 1,\n\n /**\n * private\n * contains last value of scaling applied by the apply filter chain\n * @type Number\n */\n _filterScalingX: 1,\n\n /**\n * private\n * contains last value of scaling applied by the apply filter chain\n * @type Number\n */\n _filterScalingY: 1,\n\n /**\n * minimum scale factor under which any resizeFilter is triggered to resize the image\n * 0 will disable the automatic resize. 1 will trigger automatically always.\n * number bigger than 1 are not implemented yet.\n * @type Number\n */\n minimumScaleTrigger: 0.5,\n\n /**\n * List of properties to consider when checking if\n * state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat('cropX', 'cropY'),\n\n /**\n * key used to retrieve the texture representing this image\n * @since 2.0.0\n * @type String\n * @default\n */\n cacheKey: '',\n\n /**\n * Image crop in pixels from original image size.\n * @since 2.0.0\n * @type Number\n * @default\n */\n cropX: 0,\n\n /**\n * Image crop in pixels from original image size.\n * @since 2.0.0\n * @type Number\n * @default\n */\n cropY: 0,\n\n /**\n * Constructor\n * @param {HTMLImageElement | String} element Image element\n * @param {Object} [options] Options object\n * @param {function} [callback] callback function to call after eventual filters applied.\n * @return {fabric.Image} thisArg\n */\n initialize: function(element, options) {\n options || (options = { });\n this.filters = [];\n this.cacheKey = 'texture' + fabric.Object.__uid++;\n this.callSuper('initialize', options);\n this._initElement(element, options);\n },\n\n /**\n * Returns image element which this instance if based on\n * @return {HTMLImageElement} Image element\n */\n getElement: function() {\n return this._element || {};\n },\n\n /**\n * Sets image element for this instance to a specified one.\n * If filters defined they are applied to new image.\n * You might need to call `canvas.renderAll` and `object.setCoords` after replacing, to render new image and update controls area.\n * @param {HTMLImageElement} element\n * @param {Object} [options] Options object\n * @return {fabric.Image} thisArg\n * @chainable\n */\n setElement: function(element, options) {\n this.removeTexture(this.cacheKey);\n this.removeTexture(this.cacheKey + '_filtered');\n this._element = element;\n this._originalElement = element;\n this._initConfig(options);\n if (this.filters.length !== 0) {\n this.applyFilters();\n }\n // resizeFilters work on the already filtered copy.\n // we need to apply resizeFilters AFTER normal filters.\n // applyResizeFilters is run more often than normal fiters\n // and is triggered by user interactions rather than dev code\n if (this.resizeFilter) {\n this.applyResizeFilters();\n }\n return this;\n },\n\n /**\n * Delete a single texture if in webgl mode\n */\n removeTexture: function(key) {\n var backend = fabric.filterBackend;\n if (backend && backend.evictCachesForKey) {\n backend.evictCachesForKey(key);\n }\n },\n\n /**\n * Delete textures, reference to elements and eventually JSDOM cleanup\n */\n dispose: function() {\n this.removeTexture(this.cacheKey);\n this.removeTexture(this.cacheKey + '_filtered');\n this._cacheContext = undefined;\n ['_originalElement', '_element', '_filteredEl', '_cacheCanvas'].forEach((function(element) {\n fabric.util.cleanUpJsdomNode(this[element]);\n this[element] = undefined;\n }).bind(this));\n },\n\n /**\n * Sets crossOrigin value (on an instance and corresponding image element)\n * @return {fabric.Image} thisArg\n * @chainable\n */\n setCrossOrigin: function(value) {\n this.crossOrigin = value;\n this._element.crossOrigin = value;\n\n return this;\n },\n\n /**\n * Returns original size of an image\n * @return {Object} Object with \"width\" and \"height\" properties\n */\n getOriginalSize: function() {\n var element = this.getElement();\n return {\n width: element.naturalWidth || element.width,\n height: element.naturalHeight || element.height\n };\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _stroke: function(ctx) {\n if (!this.stroke || this.strokeWidth === 0) {\n return;\n }\n var w = this.width / 2, h = this.height / 2;\n ctx.beginPath();\n ctx.moveTo(-w, -h);\n ctx.lineTo(w, -h);\n ctx.lineTo(w, h);\n ctx.lineTo(-w, h);\n ctx.lineTo(-w, -h);\n ctx.closePath();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderDashedStroke: function(ctx) {\n var x = -this.width / 2,\n y = -this.height / 2,\n w = this.width,\n h = this.height;\n\n ctx.save();\n this._setStrokeStyles(ctx, this);\n\n ctx.beginPath();\n fabric.util.drawDashedLine(ctx, x, y, x + w, y, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y, x + w, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x + w, y + h, x, y + h, this.strokeDashArray);\n fabric.util.drawDashedLine(ctx, x, y + h, x, y, this.strokeDashArray);\n ctx.closePath();\n ctx.restore();\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var filters = [];\n\n this.filters.forEach(function(filterObj) {\n if (filterObj) {\n filters.push(filterObj.toObject());\n }\n });\n var object = extend(\n this.callSuper(\n 'toObject',\n ['crossOrigin', 'cropX', 'cropY'].concat(propertiesToInclude)\n ), {\n src: this.getSrc(),\n filters: filters,\n });\n if (this.resizeFilter) {\n object.resizeFilter = this.resizeFilter.toObject();\n }\n return object;\n },\n\n /**\n * Returns true if an image has crop applied, inspecting values of cropX,cropY,width,hight.\n * @return {Boolean}\n */\n hasCrop: function() {\n return this.cropX || this.cropY || this.width < this._element.width || this.height < this._element.height;\n },\n\n /* _TO_SVG_START_ */\n /**\n * Returns svg representation of an instance\n * @return {Array} an array of strings with the specific svg representation\n * of the instance\n */\n _toSVG: function() {\n var svgString = [], imageMarkup = [], strokeSvg,\n x = -this.width / 2, y = -this.height / 2, clipPath = '';\n if (this.hasCrop()) {\n var clipPathId = fabric.Object.__uid++;\n svgString.push(\n '\\n',\n '\\t\\n',\n '\\n'\n );\n clipPath = ' clip-path=\"url(#imageCrop_' + clipPathId + ')\" ';\n }\n imageMarkup.push('\\t element with actual transformation, then offsetting object to the top/left\n // so that object's center aligns with container's left/top\n '\" width=\"', this._element.width || this._element.naturalWidth,\n '\" height=\"', this._element.height || this._element.height,\n '\"', clipPath,\n '>\\n');\n\n if (this.stroke || this.strokeDashArray) {\n var origFill = this.fill;\n this.fill = null;\n strokeSvg = [\n '\\t\\n'\n ];\n this.fill = origFill;\n }\n if (this.paintFirst !== 'fill') {\n svgString = svgString.concat(strokeSvg, imageMarkup);\n }\n else {\n svgString = svgString.concat(imageMarkup, strokeSvg);\n }\n return svgString;\n },\n /* _TO_SVG_END_ */\n\n /**\n * Returns source of an image\n * @param {Boolean} filtered indicates if the src is needed for svg\n * @return {String} Source of an image\n */\n getSrc: function(filtered) {\n var element = filtered ? this._element : this._originalElement;\n if (element) {\n if (element.toDataURL) {\n return element.toDataURL();\n }\n\n if (this.srcFromAttribute) {\n return element.getAttribute('src');\n }\n else {\n return element.src;\n }\n }\n else {\n return this.src || '';\n }\n },\n\n /**\n * Sets source of an image\n * @param {String} src Source string (URL)\n * @param {Function} [callback] Callback is invoked when image has been loaded (and all filters have been applied)\n * @param {Object} [options] Options object\n * @return {fabric.Image} thisArg\n * @chainable\n */\n setSrc: function(src, callback, options) {\n fabric.util.loadImage(src, function(img) {\n this.setElement(img, options);\n this._setWidthHeight();\n callback && callback(this);\n }, this, options && options.crossOrigin);\n return this;\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} String representation of an instance\n */\n toString: function() {\n return '#';\n },\n\n applyResizeFilters: function() {\n var filter = this.resizeFilter,\n minimumScale = this.minimumScaleTrigger,\n objectScale = this.getTotalObjectScaling(),\n scaleX = objectScale.scaleX,\n scaleY = objectScale.scaleY,\n elementToFilter = this._filteredEl || this._originalElement;\n if (this.group) {\n this.set('dirty', true);\n }\n if (!filter || (scaleX > minimumScale && scaleY > minimumScale)) {\n this._element = elementToFilter;\n this._filterScalingX = 1;\n this._filterScalingY = 1;\n this._lastScaleX = scaleX;\n this._lastScaleY = scaleY;\n return;\n }\n if (!fabric.filterBackend) {\n fabric.filterBackend = fabric.initFilterBackend();\n }\n var canvasEl = fabric.util.createCanvasElement(),\n cacheKey = this._filteredEl ? (this.cacheKey + '_filtered') : this.cacheKey,\n sourceWidth = elementToFilter.width, sourceHeight = elementToFilter.height;\n canvasEl.width = sourceWidth;\n canvasEl.height = sourceHeight;\n this._element = canvasEl;\n this._lastScaleX = filter.scaleX = scaleX;\n this._lastScaleY = filter.scaleY = scaleY;\n fabric.filterBackend.applyFilters(\n [filter], elementToFilter, sourceWidth, sourceHeight, this._element, cacheKey);\n this._filterScalingX = canvasEl.width / this._originalElement.width;\n this._filterScalingY = canvasEl.height / this._originalElement.height;\n },\n\n /**\n * Applies filters assigned to this image (from \"filters\" array) or from filter param\n * @method applyFilters\n * @param {Array} filters to be applied\n * @param {Boolean} forResizing specify if the filter operation is a resize operation\n * @return {thisArg} return the fabric.Image object\n * @chainable\n */\n applyFilters: function(filters) {\n\n filters = filters || this.filters || [];\n filters = filters.filter(function(filter) { return filter && !filter.isNeutralState(); });\n this.set('dirty', true);\n\n // needs to clear out or WEBGL will not resize correctly\n this.removeTexture(this.cacheKey + '_filtered');\n\n if (filters.length === 0) {\n this._element = this._originalElement;\n this._filteredEl = null;\n this._filterScalingX = 1;\n this._filterScalingY = 1;\n return this;\n }\n\n var imgElement = this._originalElement,\n sourceWidth = imgElement.naturalWidth || imgElement.width,\n sourceHeight = imgElement.naturalHeight || imgElement.height;\n\n if (this._element === this._originalElement) {\n // if the element is the same we need to create a new element\n var canvasEl = fabric.util.createCanvasElement();\n canvasEl.width = sourceWidth;\n canvasEl.height = sourceHeight;\n this._element = canvasEl;\n this._filteredEl = canvasEl;\n }\n else {\n // clear the existing element to get new filter data\n // also dereference the eventual resized _element\n this._element = this._filteredEl;\n this._filteredEl.getContext('2d').clearRect(0, 0, sourceWidth, sourceHeight);\n // we also need to resize again at next renderAll, so remove saved _lastScaleX/Y\n this._lastScaleX = 1;\n this._lastScaleY = 1;\n }\n if (!fabric.filterBackend) {\n fabric.filterBackend = fabric.initFilterBackend();\n }\n fabric.filterBackend.applyFilters(\n filters, this._originalElement, sourceWidth, sourceHeight, this._element, this.cacheKey);\n if (this._originalElement.width !== this._element.width ||\n this._originalElement.height !== this._element.height) {\n this._filterScalingX = this._element.width / this._originalElement.width;\n this._filterScalingY = this._element.height / this._originalElement.height;\n }\n return this;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n if (this.isMoving !== true && this.resizeFilter && this._needsResize()) {\n this.applyResizeFilters();\n }\n this._stroke(ctx);\n this._renderPaintInOrder(ctx);\n },\n\n /**\n * Decide if the object should cache or not. Create its own cache level\n * needsItsOwnCache should be used when the object drawing method requires\n * a cache step. None of the fabric classes requires it.\n * Generally you do not cache objects in groups because the group outside is cached.\n * This is the special image version where we would like to avoid caching where possible.\n * Essentially images do not benefit from caching. They may require caching, and in that\n * case we do it. Also caching an image usually ends in a loss of details.\n * A full performance audit should be done.\n * @return {Boolean}\n */\n shouldCache: function() {\n return this.needsItsOwnCache();\n },\n\n _renderFill: function(ctx) {\n var elementToDraw = this._element,\n w = this.width, h = this.height,\n sW = Math.min(elementToDraw.naturalWidth || elementToDraw.width, w * this._filterScalingX),\n sH = Math.min(elementToDraw.naturalHeight || elementToDraw.height, h * this._filterScalingY),\n x = -w / 2, y = -h / 2,\n sX = Math.max(0, this.cropX * this._filterScalingX),\n sY = Math.max(0, this.cropY * this._filterScalingY);\n\n elementToDraw && ctx.drawImage(elementToDraw, sX, sY, sW, sH, x, y, w, h);\n },\n\n /**\n * needed to check if image needs resize\n * @private\n */\n _needsResize: function() {\n var scale = this.getTotalObjectScaling();\n return (scale.scaleX !== this._lastScaleX || scale.scaleY !== this._lastScaleY);\n },\n\n /**\n * @private\n */\n _resetWidthHeight: function() {\n this.set(this.getOriginalSize());\n },\n\n /**\n * The Image class's initialization method. This method is automatically\n * called by the constructor.\n * @private\n * @param {HTMLImageElement|String} element The element representing the image\n * @param {Object} [options] Options object\n */\n _initElement: function(element, options) {\n this.setElement(fabric.util.getById(element), options);\n fabric.util.addClass(this.getElement(), fabric.Image.CSS_CANVAS);\n },\n\n /**\n * @private\n * @param {Object} [options] Options object\n */\n _initConfig: function(options) {\n options || (options = { });\n this.setOptions(options);\n this._setWidthHeight(options);\n if (this._element && this.crossOrigin) {\n this._element.crossOrigin = this.crossOrigin;\n }\n },\n\n /**\n * @private\n * @param {Array} filters to be initialized\n * @param {Function} callback Callback to invoke when all fabric.Image.filters instances are created\n */\n _initFilters: function(filters, callback) {\n if (filters && filters.length) {\n fabric.util.enlivenObjects(filters, function(enlivenedObjects) {\n callback && callback(enlivenedObjects);\n }, 'fabric.Image.filters');\n }\n else {\n callback && callback();\n }\n },\n\n /**\n * @private\n * Set the width and the height of the image object, using the element or the\n * options.\n * @param {Object} [options] Object with width/height properties\n */\n _setWidthHeight: function(options) {\n options || (options = { });\n var el = this.getElement();\n this.width = options.width || el.naturalWidth || el.width || 0;\n this.height = options.height || el.naturalHeight || el.height || 0;\n },\n\n /**\n * Calculate offset for center and scale factor for the image in order to respect\n * the preserveAspectRatio attribute\n * @private\n * @return {Object}\n */\n parsePreserveAspectRatioAttribute: function() {\n var pAR = fabric.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio || ''),\n rWidth = this._element.width, rHeight = this._element.height,\n scaleX = 1, scaleY = 1, offsetLeft = 0, offsetTop = 0, cropX = 0, cropY = 0,\n offset, pWidth = this.width, pHeight = this.height, parsedAttributes = { width: pWidth, height: pHeight };\n if (pAR && (pAR.alignX !== 'none' || pAR.alignY !== 'none')) {\n if (pAR.meetOrSlice === 'meet') {\n scaleX = scaleY = fabric.util.findScaleToFit(this._element, parsedAttributes);\n offset = (pWidth - rWidth * scaleX) / 2;\n if (pAR.alignX === 'Min') {\n offsetLeft = -offset;\n }\n if (pAR.alignX === 'Max') {\n offsetLeft = offset;\n }\n offset = (pHeight - rHeight * scaleY) / 2;\n if (pAR.alignY === 'Min') {\n offsetTop = -offset;\n }\n if (pAR.alignY === 'Max') {\n offsetTop = offset;\n }\n }\n if (pAR.meetOrSlice === 'slice') {\n scaleX = scaleY = fabric.util.findScaleToCover(this._element, parsedAttributes);\n offset = rWidth - pWidth / scaleX;\n if (pAR.alignX === 'Mid') {\n cropX = offset / 2;\n }\n if (pAR.alignX === 'Max') {\n cropX = offset;\n }\n offset = rHeight - pHeight / scaleY;\n if (pAR.alignY === 'Mid') {\n cropY = offset / 2;\n }\n if (pAR.alignY === 'Max') {\n cropY = offset;\n }\n rWidth = pWidth / scaleX;\n rHeight = pHeight / scaleY;\n }\n }\n else {\n scaleX = pWidth / rWidth;\n scaleY = pHeight / rHeight;\n }\n return {\n width: rWidth,\n height: rHeight,\n scaleX: scaleX,\n scaleY: scaleY,\n offsetLeft: offsetLeft,\n offsetTop: offsetTop,\n cropX: cropX,\n cropY: cropY\n };\n }\n });\n\n /**\n * Default CSS class name for canvas\n * @static\n * @type String\n * @default\n */\n fabric.Image.CSS_CANVAS = 'canvas-img';\n\n /**\n * Alias for getSrc\n * @static\n */\n fabric.Image.prototype.getSvgSrc = fabric.Image.prototype.getSrc;\n\n /**\n * Creates an instance of fabric.Image from its object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} callback Callback to invoke when an image instance is created\n */\n fabric.Image.fromObject = function(_object, callback) {\n var object = fabric.util.object.clone(_object);\n fabric.util.loadImage(object.src, function(img, error) {\n if (error) {\n callback && callback(null, error);\n return;\n }\n fabric.Image.prototype._initFilters.call(object, object.filters, function(filters) {\n object.filters = filters || [];\n fabric.Image.prototype._initFilters.call(object, [object.resizeFilter], function(resizeFilters) {\n object.resizeFilter = resizeFilters[0];\n fabric.util.enlivenObjects([object.clipPath], function(enlivedProps) {\n object.clipPath = enlivedProps[0];\n var image = new fabric.Image(img, object);\n callback(image);\n });\n });\n });\n }, null, object.crossOrigin);\n };\n\n /**\n * Creates an instance of fabric.Image from an URL string\n * @static\n * @param {String} url URL to create an image from\n * @param {Function} [callback] Callback to invoke when image is created (newly created image is passed as a first argument)\n * @param {Object} [imgOptions] Options object\n */\n fabric.Image.fromURL = function(url, callback, imgOptions) {\n fabric.util.loadImage(url, function(img) {\n callback && callback(new fabric.Image(img, imgOptions));\n }, null, imgOptions && imgOptions.crossOrigin);\n };\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Image.fromElement})\n * @static\n * @see {@link http://www.w3.org/TR/SVG/struct.html#ImageElement}\n */\n fabric.Image.ATTRIBUTE_NAMES =\n fabric.SHARED_ATTRIBUTES.concat('x y width height preserveAspectRatio xlink:href crossOrigin'.split(' '));\n\n /**\n * Returns {@link fabric.Image} instance from an SVG element\n * @static\n * @param {SVGElement} element Element to parse\n * @param {Object} [options] Options object\n * @param {Function} callback Callback to execute when fabric.Image object is created\n * @return {fabric.Image} Instance of fabric.Image\n */\n fabric.Image.fromElement = function(element, callback, options) {\n var parsedAttributes = fabric.parseAttributes(element, fabric.Image.ATTRIBUTE_NAMES);\n fabric.Image.fromURL(parsedAttributes['xlink:href'], callback,\n extend((options ? fabric.util.object.clone(options) : { }), parsedAttributes));\n };\n /* _FROM_SVG_END_ */\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\nfabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prototype */ {\n\n /**\n * @private\n * @return {Number} angle value\n */\n _getAngleValueForStraighten: function() {\n var angle = this.angle % 360;\n if (angle > 0) {\n return Math.round((angle - 1) / 90) * 90;\n }\n return Math.round(angle / 90) * 90;\n },\n\n /**\n * Straightens an object (rotating it from current angle to one of 0, 90, 180, 270, etc. depending on which is closer)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n straighten: function() {\n this.rotate(this._getAngleValueForStraighten());\n return this;\n },\n\n /**\n * Same as {@link fabric.Object.prototype.straighten} but with animation\n * @param {Object} callbacks Object with callback functions\n * @param {Function} [callbacks.onComplete] Invoked on completion\n * @param {Function} [callbacks.onChange] Invoked on every step of animation\n * @return {fabric.Object} thisArg\n * @chainable\n */\n fxStraighten: function(callbacks) {\n callbacks = callbacks || { };\n\n var empty = function() { },\n onComplete = callbacks.onComplete || empty,\n onChange = callbacks.onChange || empty,\n _this = this;\n\n fabric.util.animate({\n startValue: this.get('angle'),\n endValue: this._getAngleValueForStraighten(),\n duration: this.FX_DURATION,\n onChange: function(value) {\n _this.rotate(value);\n onChange();\n },\n onComplete: function() {\n _this.setCoords();\n onComplete();\n },\n });\n\n return this;\n }\n});\n\nfabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.StaticCanvas.prototype */ {\n\n /**\n * Straightens object, then rerenders canvas\n * @param {fabric.Object} object Object to straighten\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n straightenObject: function (object) {\n object.straighten();\n this.requestRenderAll();\n return this;\n },\n\n /**\n * Same as {@link fabric.Canvas.prototype.straightenObject}, but animated\n * @param {fabric.Object} object Object to straighten\n * @return {fabric.Canvas} thisArg\n * @chainable\n */\n fxStraightenObject: function (object) {\n object.fxStraighten({\n onChange: this.requestRenderAllBound\n });\n return this;\n }\n});\n\n\n(function() {\n\n 'use strict';\n\n /**\n * Tests if webgl supports certain precision\n * @param {WebGL} Canvas WebGL context to test on\n * @param {String} Precision to test can be any of following: 'lowp', 'mediump', 'highp'\n * @returns {Boolean} Whether the user's browser WebGL supports given precision.\n */\n function testPrecision(gl, precision){\n var fragmentSource = 'precision ' + precision + ' float;\\nvoid main(){}';\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n return false;\n }\n return true;\n }\n\n /**\n * Indicate whether this filtering backend is supported by the user's browser.\n * @param {Number} tileSize check if the tileSize is supported\n * @returns {Boolean} Whether the user's browser supports WebGL.\n */\n fabric.isWebglSupported = function(tileSize) {\n if (fabric.isLikelyNode) {\n return false;\n }\n tileSize = tileSize || fabric.WebglFilterBackend.prototype.tileSize;\n var canvas = document.createElement('canvas');\n var gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n var isSupported = false;\n // eslint-disable-next-line\n if (gl) {\n fabric.maxTextureSize = gl.getParameter(gl.MAX_TEXTURE_SIZE);\n isSupported = fabric.maxTextureSize >= tileSize;\n var precisions = ['highp', 'mediump', 'lowp'];\n for (var i = 0; i < 3; i++){\n if (testPrecision(gl, precisions[i])){\n fabric.webGlPrecision = precisions[i];\n break;\n };\n }\n }\n this.isSupported = isSupported;\n return isSupported;\n };\n\n fabric.WebglFilterBackend = WebglFilterBackend;\n\n /**\n * WebGL filter backend.\n */\n function WebglFilterBackend(options) {\n if (options && options.tileSize) {\n this.tileSize = options.tileSize;\n }\n this.setupGLContext(this.tileSize, this.tileSize);\n this.captureGPUInfo();\n };\n\n WebglFilterBackend.prototype = /** @lends fabric.WebglFilterBackend.prototype */ {\n\n tileSize: 2048,\n\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you problably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: {\n\n },\n\n /**\n * Setup a WebGL context suitable for filtering, and bind any needed event handlers.\n */\n setupGLContext: function(width, height) {\n this.dispose();\n this.createWebGLCanvas(width, height);\n // eslint-disable-next-line\n this.aPosition = new Float32Array([0, 0, 0, 1, 1, 0, 1, 1]);\n this.chooseFastestCopyGLTo2DMethod(width, height);\n },\n\n /**\n * Pick a method to copy data from GL context to 2d canvas. In some browsers using\n * putImageData is faster than drawImage for that specific operation.\n */\n chooseFastestCopyGLTo2DMethod: function(width, height) {\n var canMeasurePerf = typeof window.performance !== 'undefined', canUseImageData;\n try {\n new ImageData(1, 1);\n canUseImageData = true;\n }\n catch (e) {\n canUseImageData = false;\n }\n // eslint-disable-next-line no-undef\n var canUseArrayBuffer = typeof ArrayBuffer !== 'undefined';\n // eslint-disable-next-line no-undef\n var canUseUint8Clamped = typeof Uint8ClampedArray !== 'undefined';\n\n if (!(canMeasurePerf && canUseImageData && canUseArrayBuffer && canUseUint8Clamped)) {\n return;\n }\n\n var targetCanvas = fabric.util.createCanvasElement();\n // eslint-disable-next-line no-undef\n var imageBuffer = new ArrayBuffer(width * height * 4);\n if (fabric.forceGLPutImageData) {\n this.imageBuffer = imageBuffer;\n this.copyGLTo2D = copyGLTo2DPutImageData;\n return;\n }\n var testContext = {\n imageBuffer: imageBuffer,\n destinationWidth: width,\n destinationHeight: height,\n targetCanvas: targetCanvas\n };\n var startTime, drawImageTime, putImageDataTime;\n targetCanvas.width = width;\n targetCanvas.height = height;\n\n startTime = window.performance.now();\n copyGLTo2DDrawImage.call(testContext, this.gl, testContext);\n drawImageTime = window.performance.now() - startTime;\n\n startTime = window.performance.now();\n copyGLTo2DPutImageData.call(testContext, this.gl, testContext);\n putImageDataTime = window.performance.now() - startTime;\n\n if (drawImageTime > putImageDataTime) {\n this.imageBuffer = imageBuffer;\n this.copyGLTo2D = copyGLTo2DPutImageData;\n }\n else {\n this.copyGLTo2D = copyGLTo2DDrawImage;\n }\n },\n\n /**\n * Create a canvas element and associated WebGL context and attaches them as\n * class properties to the GLFilterBackend class.\n */\n createWebGLCanvas: function(width, height) {\n var canvas = fabric.util.createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n var glOptions = {\n alpha: true,\n premultipliedAlpha: false,\n depth: false,\n stencil: false,\n antialias: false\n },\n gl = canvas.getContext('webgl', glOptions);\n if (!gl) {\n gl = canvas.getContext('experimental-webgl', glOptions);\n }\n if (!gl) {\n return;\n }\n gl.clearColor(0, 0, 0, 0);\n // this canvas can fire webglcontextlost and webglcontextrestored\n this.canvas = canvas;\n this.gl = gl;\n },\n\n /**\n * Attempts to apply the requested filters to the source provided, drawing the filtered output\n * to the provided target canvas.\n *\n * @param {Array} filters The filters to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} source The source to be filtered.\n * @param {Number} width The width of the source input.\n * @param {Number} height The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n * @param {String|undefined} cacheKey A key used to cache resources related to the source. If\n * omitted, caching will be skipped.\n */\n applyFilters: function(filters, source, width, height, targetCanvas, cacheKey) {\n var gl = this.gl;\n var cachedTexture;\n if (cacheKey) {\n cachedTexture = this.getCachedTexture(cacheKey, source);\n }\n var pipelineState = {\n originalWidth: source.width || source.originalWidth,\n originalHeight: source.height || source.originalHeight,\n sourceWidth: width,\n sourceHeight: height,\n destinationWidth: width,\n destinationHeight: height,\n context: gl,\n sourceTexture: this.createTexture(gl, width, height, !cachedTexture && source),\n targetTexture: this.createTexture(gl, width, height),\n originalTexture: cachedTexture ||\n this.createTexture(gl, width, height, !cachedTexture && source),\n passes: filters.length,\n webgl: true,\n aPosition: this.aPosition,\n programCache: this.programCache,\n pass: 0,\n filterBackend: this,\n targetCanvas: targetCanvas\n };\n var tempFbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, tempFbo);\n filters.forEach(function(filter) { filter && filter.applyTo(pipelineState); });\n resizeCanvasIfNeeded(pipelineState);\n this.copyGLTo2D(gl, pipelineState);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.deleteTexture(pipelineState.sourceTexture);\n gl.deleteTexture(pipelineState.targetTexture);\n gl.deleteFramebuffer(tempFbo);\n targetCanvas.getContext('2d').setTransform(1, 0, 0, 1, 0, 0);\n return pipelineState;\n },\n\n /**\n * Detach event listeners, remove references, and clean up caches.\n */\n dispose: function() {\n if (this.canvas) {\n this.canvas = null;\n this.gl = null;\n }\n this.clearWebGLCaches();\n },\n\n /**\n * Wipe out WebGL-related caches.\n */\n clearWebGLCaches: function() {\n this.programCache = {};\n this.textureCache = {};\n },\n\n /**\n * Create a WebGL texture object.\n *\n * Accepts specific dimensions to initialize the textuer to or a source image.\n *\n * @param {WebGLRenderingContext} gl The GL context to use for creating the texture.\n * @param {Number} width The width to initialize the texture at.\n * @param {Number} height The height to initialize the texture.\n * @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source for the texture data.\n * @returns {WebGLTexture}\n */\n createTexture: function(gl, width, height, textureImageSource) {\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n if (textureImageSource) {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, textureImageSource);\n }\n else {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n }\n return texture;\n },\n\n /**\n * Can be optionally used to get a texture from the cache array\n *\n * If an existing texture is not found, a new texture is created and cached.\n *\n * @param {String} uniqueId A cache key to use to find an existing texture.\n * @param {HTMLImageElement|HTMLCanvasElement} textureImageSource A source to use to create the\n * texture cache entry if one does not already exist.\n */\n getCachedTexture: function(uniqueId, textureImageSource) {\n if (this.textureCache[uniqueId]) {\n return this.textureCache[uniqueId];\n }\n else {\n var texture = this.createTexture(\n this.gl, textureImageSource.width, textureImageSource.height, textureImageSource);\n this.textureCache[uniqueId] = texture;\n return texture;\n }\n },\n\n /**\n * Clear out cached resources related to a source image that has been\n * filtered previously.\n *\n * @param {String} cacheKey The cache key provided when the source image was filtered.\n */\n evictCachesForKey: function(cacheKey) {\n if (this.textureCache[cacheKey]) {\n this.gl.deleteTexture(this.textureCache[cacheKey]);\n delete this.textureCache[cacheKey];\n }\n },\n\n copyGLTo2D: copyGLTo2DDrawImage,\n\n /**\n * Attempt to extract GPU information strings from a WebGL context.\n *\n * Useful information when debugging or blacklisting specific GPUs.\n *\n * @returns {Object} A GPU info object with renderer and vendor strings.\n */\n captureGPUInfo: function() {\n if (this.gpuInfo) {\n return this.gpuInfo;\n }\n var gl = this.gl, gpuInfo = { renderer: '', vendor: '' };\n if (!gl) {\n return gpuInfo;\n }\n var ext = gl.getExtension('WEBGL_debug_renderer_info');\n if (ext) {\n var renderer = gl.getParameter(ext.UNMASKED_RENDERER_WEBGL);\n var vendor = gl.getParameter(ext.UNMASKED_VENDOR_WEBGL);\n if (renderer) {\n gpuInfo.renderer = renderer.toLowerCase();\n }\n if (vendor) {\n gpuInfo.vendor = vendor.toLowerCase();\n }\n }\n this.gpuInfo = gpuInfo;\n return gpuInfo;\n },\n };\n})();\n\nfunction resizeCanvasIfNeeded(pipelineState) {\n var targetCanvas = pipelineState.targetCanvas,\n width = targetCanvas.width, height = targetCanvas.height,\n dWidth = pipelineState.destinationWidth,\n dHeight = pipelineState.destinationHeight;\n\n if (width !== dWidth || height !== dHeight) {\n targetCanvas.width = dWidth;\n targetCanvas.height = dHeight;\n }\n}\n\n/**\n * Copy an input WebGL canvas on to an output 2D canvas.\n *\n * The WebGL canvas is assumed to be upside down, with the top-left pixel of the\n * desired output image appearing in the bottom-left corner of the WebGL canvas.\n *\n * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.\n * @param {HTMLCanvasElement} targetCanvas The 2D target canvas to copy on to.\n * @param {Object} pipelineState The 2D target canvas to copy on to.\n */\nfunction copyGLTo2DDrawImage(gl, pipelineState) {\n var glCanvas = gl.canvas, targetCanvas = pipelineState.targetCanvas,\n ctx = targetCanvas.getContext('2d');\n ctx.translate(0, targetCanvas.height); // move it down again\n ctx.scale(1, -1); // vertical flip\n // where is my image on the big glcanvas?\n var sourceY = glCanvas.height - targetCanvas.height;\n ctx.drawImage(glCanvas, 0, sourceY, targetCanvas.width, targetCanvas.height, 0, 0,\n targetCanvas.width, targetCanvas.height);\n}\n\n/**\n * Copy an input WebGL canvas on to an output 2D canvas using 2d canvas' putImageData\n * API. Measurably faster than using ctx.drawImage in Firefox (version 54 on OSX Sierra).\n *\n * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.\n * @param {HTMLCanvasElement} targetCanvas The 2D target canvas to copy on to.\n * @param {Object} pipelineState The 2D target canvas to copy on to.\n */\nfunction copyGLTo2DPutImageData(gl, pipelineState) {\n var targetCanvas = pipelineState.targetCanvas, ctx = targetCanvas.getContext('2d'),\n dWidth = pipelineState.destinationWidth,\n dHeight = pipelineState.destinationHeight,\n numBytes = dWidth * dHeight * 4;\n\n // eslint-disable-next-line no-undef\n var u8 = new Uint8Array(this.imageBuffer, 0, numBytes);\n // eslint-disable-next-line no-undef\n var u8Clamped = new Uint8ClampedArray(this.imageBuffer, 0, numBytes);\n\n gl.readPixels(0, 0, dWidth, dHeight, gl.RGBA, gl.UNSIGNED_BYTE, u8);\n var imgData = new ImageData(u8Clamped, dWidth, dHeight);\n ctx.putImageData(imgData, 0, 0);\n}\n\n\n(function() {\n\n 'use strict';\n\n var noop = function() {};\n\n fabric.Canvas2dFilterBackend = Canvas2dFilterBackend;\n\n /**\n * Canvas 2D filter backend.\n */\n function Canvas2dFilterBackend() {};\n\n Canvas2dFilterBackend.prototype = /** @lends fabric.Canvas2dFilterBackend.prototype */ {\n evictCachesForKey: noop,\n dispose: noop,\n clearWebGLCaches: noop,\n\n /**\n * Experimental. This object is a sort of repository of help layers used to avoid\n * of recreating them during frequent filtering. If you are previewing a filter with\n * a slider you probably do not want to create help layers every filter step.\n * in this object there will be appended some canvases, created once, resized sometimes\n * cleared never. Clearing is left to the developer.\n **/\n resources: {\n\n },\n\n /**\n * Apply a set of filters against a source image and draw the filtered output\n * to the provided destination canvas.\n *\n * @param {EnhancedFilter} filters The filter to apply.\n * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.\n * @param {Number} sourceWidth The width of the source input.\n * @param {Number} sourceHeight The height of the source input.\n * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.\n */\n applyFilters: function(filters, sourceElement, sourceWidth, sourceHeight, targetCanvas) {\n var ctx = targetCanvas.getContext('2d');\n ctx.drawImage(sourceElement, 0, 0, sourceWidth, sourceHeight);\n var imageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n var originalImageData = ctx.getImageData(0, 0, sourceWidth, sourceHeight);\n var pipelineState = {\n sourceWidth: sourceWidth,\n sourceHeight: sourceHeight,\n imageData: imageData,\n originalEl: sourceElement,\n originalImageData: originalImageData,\n canvasEl: targetCanvas,\n ctx: ctx,\n filterBackend: this,\n };\n filters.forEach(function(filter) { filter.applyTo(pipelineState); });\n if (pipelineState.imageData.width !== sourceWidth || pipelineState.imageData.height !== sourceHeight) {\n targetCanvas.width = pipelineState.imageData.width;\n targetCanvas.height = pipelineState.imageData.height;\n }\n ctx.putImageData(pipelineState.imageData, 0, 0);\n return pipelineState;\n },\n\n };\n})();\n\n\n/**\n * @namespace fabric.Image.filters\n * @memberOf fabric.Image\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#image_filters}\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n */\nfabric.Image = fabric.Image || { };\nfabric.Image.filters = fabric.Image.filters || { };\n\n/**\n * Root filter class from which all filter classes inherit from\n * @class fabric.Image.filters.BaseFilter\n * @memberOf fabric.Image.filters\n */\nfabric.Image.filters.BaseFilter = fabric.util.createClass(/** @lends fabric.Image.filters.BaseFilter.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'BaseFilter',\n\n /**\n * Array of attributes to send with buffers. do not modify\n * @private\n */\n\n vertexSource: 'attribute vec2 aPosition;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vTexCoord = aPosition;\\n' +\n 'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n' +\n '}',\n\n fragmentSource: 'precision highp float;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'void main() {\\n' +\n 'gl_FragColor = texture2D(uTexture, vTexCoord);\\n' +\n '}',\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n if (options) {\n this.setOptions(options);\n }\n },\n\n /**\n * Sets filter's properties from options\n * @param {Object} [options] Options object\n */\n setOptions: function(options) {\n for (var prop in options) {\n this[prop] = options[prop];\n }\n },\n\n /**\n * Compile this filter's shader program.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context to use for shader compilation.\n * @param {String} fragmentSource fragmentShader source for compilation\n * @param {String} vertexSource vertexShader source for compilation\n */\n createProgram: function(gl, fragmentSource, vertexSource) {\n fragmentSource = fragmentSource || this.fragmentSource;\n vertexSource = vertexSource || this.vertexSource;\n if (fabric.webGlPrecision !== 'highp'){\n fragmentSource = fragmentSource.replace(\n /precision highp float/g,\n 'precision ' + fabric.webGlPrecision + ' float'\n );\n }\n var vertexShader = gl.createShader(gl.VERTEX_SHADER);\n gl.shaderSource(vertexShader, vertexSource);\n gl.compileShader(vertexShader);\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Vertex shader compile error for ' + this.type + ': ' +\n gl.getShaderInfoLog(vertexShader)\n );\n }\n\n var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);\n gl.shaderSource(fragmentShader, fragmentSource);\n gl.compileShader(fragmentShader);\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Fragment shader compile error for ' + this.type + ': ' +\n gl.getShaderInfoLog(fragmentShader)\n );\n }\n\n var program = gl.createProgram();\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n throw new Error(\n // eslint-disable-next-line prefer-template\n 'Shader link error for \"${this.type}\" ' +\n gl.getProgramInfoLog(program)\n );\n }\n\n var attributeLocations = this.getAttributeLocations(gl, program);\n var uniformLocations = this.getUniformLocations(gl, program) || { };\n uniformLocations.uStepW = gl.getUniformLocation(program, 'uStepW');\n uniformLocations.uStepH = gl.getUniformLocation(program, 'uStepH');\n return {\n program: program,\n attributeLocations: attributeLocations,\n uniformLocations: uniformLocations\n };\n },\n\n /**\n * Return a map of attribute names to WebGLAttributeLocation objects.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {WebGLShaderProgram} program The shader program from which to take attribute locations.\n * @returns {Object} A map of attribute names to attribute locations.\n */\n getAttributeLocations: function(gl, program) {\n return {\n aPosition: gl.getAttribLocation(program, 'aPosition'),\n };\n },\n\n /**\n * Return a map of uniform names to WebGLUniformLocation objects.\n *\n * Intended to be overridden by subclasses.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {WebGLShaderProgram} program The shader program from which to take uniform locations.\n * @returns {Object} A map of uniform names to uniform locations.\n */\n getUniformLocations: function (/* gl, program */) {\n // in case i do not need any special uniform i need to return an empty object\n return { };\n },\n\n /**\n * Send attribute data from this filter to its shader program on the GPU.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {Object} attributeLocations A map of shader attribute names to their locations.\n */\n sendAttributeData: function(gl, attributeLocations, aPositionData) {\n var attributeLocation = attributeLocations.aPosition;\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.enableVertexAttribArray(attributeLocation);\n gl.vertexAttribPointer(attributeLocation, 2, gl.FLOAT, false, 0, 0);\n gl.bufferData(gl.ARRAY_BUFFER, aPositionData, gl.STATIC_DRAW);\n },\n\n _setupFrameBuffer: function(options) {\n var gl = options.context, width, height;\n if (options.passes > 1) {\n width = options.destinationWidth;\n height = options.destinationHeight;\n if (options.sourceWidth !== width || options.sourceHeight !== height) {\n gl.deleteTexture(options.targetTexture);\n options.targetTexture = options.filterBackend.createTexture(gl, width, height);\n }\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D,\n options.targetTexture, 0);\n }\n else {\n // draw last filter on canvas and not to framebuffer.\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n gl.finish();\n }\n },\n\n _swapTextures: function(options) {\n options.passes--;\n options.pass++;\n var temp = options.targetTexture;\n options.targetTexture = options.sourceTexture;\n options.sourceTexture = temp;\n },\n\n /**\n * Generic isNeutral implementation for one parameter based filters.\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * Other filters may need their own verison ( ColorMatrix, HueRotation, gamma, ComposedFilter )\n * @param {Object} options\n **/\n isNeutralState: function(/* options */) {\n var main = this.mainParameter,\n _class = fabric.Image.filters[this.type].prototype;\n if (main) {\n if (Array.isArray(_class[main])) {\n for (var i = _class[main].length; i--;) {\n if (this[main][i] !== _class[main][i]) {\n return false;\n }\n }\n return true;\n }\n else {\n return _class[main] === this[main];\n }\n }\n else {\n return false;\n }\n },\n\n /**\n * Apply this filter to the input image data provided.\n *\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n if (options.webgl) {\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n if (!options.programCache.hasOwnProperty(this.type)) {\n options.programCache[this.type] = this.createProgram(options.context);\n }\n return options.programCache[this.type];\n },\n\n /**\n * Apply this filter using webgl.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.originalTexture The texture of the original input image.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyToWebGL: function(options) {\n var gl = options.context;\n var shader = this.retrieveShader(options);\n if (options.pass === 0 && options.originalTexture) {\n gl.bindTexture(gl.TEXTURE_2D, options.originalTexture);\n }\n else {\n gl.bindTexture(gl.TEXTURE_2D, options.sourceTexture);\n }\n gl.useProgram(shader.program);\n this.sendAttributeData(gl, shader.attributeLocations, options.aPosition);\n\n gl.uniform1f(shader.uniformLocations.uStepW, 1 / options.sourceWidth);\n gl.uniform1f(shader.uniformLocations.uStepH, 1 / options.sourceHeight);\n\n this.sendUniformData(gl, shader.uniformLocations);\n gl.viewport(0, 0, options.destinationWidth, options.destinationHeight);\n gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);\n },\n\n bindAdditionalTexture: function(gl, texture, textureUnit) {\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, texture);\n // reset active texture to 0 as usual\n gl.activeTexture(gl.TEXTURE0);\n },\n\n unbindAdditionalTexture: function(gl, textureUnit) {\n gl.activeTexture(textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.activeTexture(gl.TEXTURE0);\n },\n\n getMainParameter: function() {\n return this[this.mainParameter];\n },\n\n setMainParameter: function(value) {\n this[this.mainParameter] = value;\n },\n\n /**\n * Send uniform data from this filter to its shader program on the GPU.\n *\n * Intended to be overridden by subclasses.\n *\n * @param {WebGLRenderingContext} gl The canvas context used to compile the shader program.\n * @param {Object} uniformLocations A map of shader uniform names to their locations.\n */\n sendUniformData: function(/* gl, uniformLocations */) {\n // Intentionally left blank. Override me in subclasses.\n },\n\n /**\n * If needed by a 2d filter, this functions can create an helper canvas to be used\n * remember that options.targetCanvas is available for use till end of chain.\n */\n createHelpLayer: function(options) {\n if (!options.helpLayer) {\n var helpLayer = document.createElement('canvas');\n helpLayer.width = options.sourceWidth;\n helpLayer.height = options.sourceHeight;\n options.helpLayer = helpLayer;\n }\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n var object = { type: this.type }, mainP = this.mainParameter;\n if (mainP) {\n object[mainP] = this[mainP];\n }\n return object;\n },\n\n /**\n * Returns a JSON representation of an instance\n * @return {Object} JSON\n */\n toJSON: function() {\n // delegate, not alias\n return this.toObject();\n }\n});\n\nfabric.Image.filters.BaseFilter.fromObject = function(object, callback) {\n var filter = new fabric.Image.filters[object.type](object);\n callback && callback(filter);\n return filter;\n};\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Color Matrix filter class\n * @class fabric.Image.filters.ColorMatrix\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.ColorMatrix#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @see {@Link http://www.webwasp.co.uk/tutorials/219/Color_Matrix_Filter.php}\n * @see {@Link http://phoboslab.org/log/2013/11/fast-image-filters-with-webgl}\n * @example Kodachrome filter\n * var filter = new fabric.Image.filters.ColorMatrix({\n * matrix: [\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0\n ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.ColorMatrix = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.ColorMatrix.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'ColorMatrix',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'uniform mat4 uColorMatrix;\\n' +\n 'uniform vec4 uConstants;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color *= uColorMatrix;\\n' +\n 'color += uConstants;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Colormatrix for pixels.\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n matrix: [\n 1, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1, 0, 0,\n 0, 0, 0, 1, 0\n ],\n\n mainParameter: 'matrix',\n\n /**\n * Lock the colormatrix on the color part, skipping alpha, manly for non webgl scenario\n * to save some calculation\n */\n colorsOnly: true,\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n // create a new array instead mutating the prototype with push\n this.matrix = this.matrix.slice(0);\n },\n\n /**\n * Apply the ColorMatrix operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = data.length,\n m = this.matrix,\n r, g, b, a, i, colorsOnly = this.colorsOnly;\n\n for (i = 0; i < iLen; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n if (colorsOnly) {\n data[i] = r * m[0] + g * m[1] + b * m[2] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + m[14] * 255;\n }\n else {\n a = data[i + 3];\n data[i] = r * m[0] + g * m[1] + b * m[2] + a * m[3] + m[4] * 255;\n data[i + 1] = r * m[5] + g * m[6] + b * m[7] + a * m[8] + m[9] * 255;\n data[i + 2] = r * m[10] + g * m[11] + b * m[12] + a * m[13] + m[14] * 255;\n data[i + 3] = r * m[15] + g * m[16] + b * m[17] + a * m[18] + m[19] * 255;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uColorMatrix: gl.getUniformLocation(program, 'uColorMatrix'),\n uConstants: gl.getUniformLocation(program, 'uConstants'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var m = this.matrix,\n matrix = [\n m[0], m[1], m[2], m[3],\n m[5], m[6], m[7], m[8],\n m[10], m[11], m[12], m[13],\n m[15], m[16], m[17], m[18]\n ],\n constants = [m[4], m[9], m[14], m[19]];\n gl.uniformMatrix4fv(uniformLocations.uColorMatrix, false, matrix);\n gl.uniform4fv(uniformLocations.uConstants, constants);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] function to invoke after filter creation\n * @return {fabric.Image.filters.ColorMatrix} Instance of fabric.Image.filters.ColorMatrix\n */\n fabric.Image.filters.ColorMatrix.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Brightness filter class\n * @class fabric.Image.filters.Brightness\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Brightness#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Brightness({\n * brightness: 0.05\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Brightness = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Brightness.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Brightness',\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uBrightness;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color.rgb += uBrightness;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Brightness value, from -1 to 1.\n * translated to -255 to 255 for 2d\n * 0.0039215686 is the part of 1 that get translated to 1 in 2d\n * @param {Number} brightness\n * @default\n */\n brightness: 0,\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'brightness',\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.brightness === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, i, len = data.length,\n brightness = Math.round(this.brightness * 255);\n for (i = 0; i < len; i += 4) {\n data[i] = data[i] + brightness;\n data[i + 1] = data[i + 1] + brightness;\n data[i + 2] = data[i + 2] + brightness;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uBrightness: gl.getUniformLocation(program, 'uBrightness'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uBrightness, this.brightness);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Brightness} Instance of fabric.Image.filters.Brightness\n */\n fabric.Image.filters.Brightness.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Adapted from html5rocks article\n * @class fabric.Image.filters.Convolute\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Convolute#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example Sharpen filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 0, -1, 0,\n * -1, 5, -1,\n * 0, -1, 0 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Blur filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9,\n * 1/9, 1/9, 1/9 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Emboss filter\n * var filter = new fabric.Image.filters.Convolute({\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n * @example Emboss filter with opaqueness\n * var filter = new fabric.Image.filters.Convolute({\n * opaque: true,\n * matrix: [ 1, 1, 1,\n * 1, 0.7, -1,\n * -1, -1, -1 ]\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Convolute = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Convolute.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Convolute',\n\n /*\n * Opaque value (true/false)\n */\n opaque: false,\n\n /*\n * matrix for the filter, max 9x9\n */\n matrix: [0, 0, 0, 0, 1, 0, 0, 0, 0],\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: {\n Convolute_3_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[9];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 3.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 3.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_3_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[9];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 3.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 3.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_5_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[25];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 5.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 5.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_5_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[25];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 5.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 5.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_7_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[49];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 7.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 7.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_7_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[49];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 7.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 7.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n Convolute_9_1: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[81];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 0);\\n' +\n 'for (float h = 0.0; h < 9.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 9.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n' +\n 'color += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n Convolute_9_0: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uMatrix[81];\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0, 0, 0, 1);\\n' +\n 'for (float h = 0.0; h < 9.0; h+=1.0) {\\n' +\n 'for (float w = 0.0; w < 9.0; w+=1.0) {\\n' +\n 'vec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\\n' +\n 'color.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\\n' +\n '}\\n' +\n '}\\n' +\n 'float alpha = texture2D(uTexture, vTexCoord).a;\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.a = alpha;\\n' +\n '}',\n },\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Convolute.prototype\n * @param {Object} [options] Options object\n * @param {Boolean} [options.opaque=false] Opaque value (true/false)\n * @param {Array} [options.matrix] Filter matrix\n */\n\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var size = Math.sqrt(this.matrix.length);\n var cacheKey = this.type + '_' + size + '_' + (this.opaque ? 1 : 0);\n var shaderSource = this.fragmentSource[cacheKey];\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n weights = this.matrix,\n side = Math.round(Math.sqrt(weights.length)),\n halfSide = Math.floor(side / 2),\n sw = imageData.width,\n sh = imageData.height,\n output = options.ctx.createImageData(sw, sh),\n dst = output.data,\n // go through the destination image pixels\n alphaFac = this.opaque ? 1 : 0,\n r, g, b, a, dstOff,\n scx, scy, srcOff, wt,\n x, y, cx, cy;\n\n for (y = 0; y < sh; y++) {\n for (x = 0; x < sw; x++) {\n dstOff = (y * sw + x) * 4;\n // calculate the weighed sum of the source image pixels that\n // fall under the convolution matrix\n r = 0; g = 0; b = 0; a = 0;\n\n for (cy = 0; cy < side; cy++) {\n for (cx = 0; cx < side; cx++) {\n scy = y + cy - halfSide;\n scx = x + cx - halfSide;\n\n // eslint-disable-next-line max-depth\n if (scy < 0 || scy >= sh || scx < 0 || scx >= sw) {\n continue;\n }\n\n srcOff = (scy * sw + scx) * 4;\n wt = weights[cy * side + cx];\n\n r += data[srcOff] * wt;\n g += data[srcOff + 1] * wt;\n b += data[srcOff + 2] * wt;\n // eslint-disable-next-line max-depth\n if (!alphaFac) {\n a += data[srcOff + 3] * wt;\n }\n }\n }\n dst[dstOff] = r;\n dst[dstOff + 1] = g;\n dst[dstOff + 2] = b;\n if (!alphaFac) {\n dst[dstOff + 3] = a;\n }\n else {\n dst[dstOff + 3] = data[dstOff + 3];\n }\n }\n }\n options.imageData = output;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uMatrix: gl.getUniformLocation(program, 'uMatrix'),\n uOpaque: gl.getUniformLocation(program, 'uOpaque'),\n uHalfSize: gl.getUniformLocation(program, 'uHalfSize'),\n uSize: gl.getUniformLocation(program, 'uSize'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1fv(uniformLocations.uMatrix, this.matrix);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n opaque: this.opaque,\n matrix: this.matrix\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Convolute} Instance of fabric.Image.filters.Convolute\n */\n fabric.Image.filters.Convolute.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Grayscale image filter class\n * @class fabric.Image.filters.Grayscale\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Grayscale();\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Grayscale = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Grayscale.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Grayscale',\n\n fragmentSource: {\n average: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = (color.r + color.b + color.g) / 3.0;\\n' +\n 'gl_FragColor = vec4(average, average, average, color.a);\\n' +\n '}',\n lightness: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uMode;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 col = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\\n' +\n 'gl_FragColor = vec4(average, average, average, col.a);\\n' +\n '}',\n luminosity: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uMode;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 col = texture2D(uTexture, vTexCoord);\\n' +\n 'float average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\\n' +\n 'gl_FragColor = vec4(average, average, average, col.a);\\n' +\n '}',\n },\n\n\n /**\n * Grayscale mode, between 'average', 'lightness', 'luminosity'\n * @param {String} type\n * @default\n */\n mode: 'average',\n\n mainParameter: 'mode',\n\n /**\n * Apply the Grayscale operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n len = data.length, value,\n mode = this.mode;\n for (i = 0; i < len; i += 4) {\n if (mode === 'average') {\n value = (data[i] + data[i + 1] + data[i + 2]) / 3;\n }\n else if (mode === 'lightness') {\n value = (Math.min(data[i], data[i + 1], data[i + 2]) +\n Math.max(data[i], data[i + 1], data[i + 2])) / 2;\n }\n else if (mode === 'luminosity') {\n value = 0.21 * data[i] + 0.72 * data[i + 1] + 0.07 * data[i + 2];\n }\n data[i] = value;\n data[i + 1] = value;\n data[i + 2] = value;\n }\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n var shaderSource = this.fragmentSource[this.mode];\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uMode: gl.getUniformLocation(program, 'uMode'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n // default average mode.\n var mode = 1;\n gl.uniform1i(uniformLocations.uMode, mode);\n },\n\n /**\n * Grayscale filter isNeutralState implementation\n * The filter is never neutral\n * on the image\n **/\n isNeutralState: function() {\n return false;\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Grayscale} Instance of fabric.Image.filters.Grayscale\n */\n fabric.Image.filters.Grayscale.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Invert filter class\n * @class fabric.Image.filters.Invert\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Invert();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\n filters.Invert = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Invert.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Invert',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform int uInvert;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'if (uInvert == 1) {\\n' +\n 'gl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\\n' +\n '} else {\\n' +\n 'gl_FragColor = color;\\n' +\n '}\\n' +\n '}',\n\n /**\n * Filter invert. if false, does nothing\n * @param {Boolean} invert\n * @default\n */\n invert: true,\n\n mainParameter: 'invert',\n\n /**\n * Apply the Invert operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n len = data.length;\n for (i = 0; i < len; i += 4) {\n data[i] = 255 - data[i];\n data[i + 1] = 255 - data[i + 1];\n data[i + 2] = 255 - data[i + 2];\n }\n },\n\n /**\n * Invert filter isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState: function() {\n return !this.invert;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uInvert: gl.getUniformLocation(program, 'uInvert'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1i(uniformLocations.uInvert, this.invert);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Invert} Instance of fabric.Image.filters.Invert\n */\n fabric.Image.filters.Invert.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Noise filter class\n * @class fabric.Image.filters.Noise\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Noise#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Noise({\n * noise: 700\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Noise = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Noise.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Noise',\n\n /**\n * Fragment source for the noise program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uStepH;\\n' +\n 'uniform float uNoise;\\n' +\n 'uniform float uSeed;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'float rand(vec2 co, float seed, float vScale) {\\n' +\n 'return fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\\n' +\n '}\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'color.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'noise',\n\n /**\n * Noise value, from\n * @param {Number} noise\n * @default\n */\n noise: 0,\n\n /**\n * Apply the Brightness operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.noise === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, i, len = data.length,\n noise = this.noise, rand;\n\n for (i = 0, len = data.length; i < len; i += 4) {\n\n rand = (0.5 - Math.random()) * noise;\n\n data[i] += rand;\n data[i + 1] += rand;\n data[i + 2] += rand;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uNoise: gl.getUniformLocation(program, 'uNoise'),\n uSeed: gl.getUniformLocation(program, 'uSeed'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uNoise, this.noise / 255);\n gl.uniform1f(uniformLocations.uSeed, Math.random());\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n noise: this.noise\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Noise} Instance of fabric.Image.filters.Noise\n */\n fabric.Image.filters.Noise.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Pixelate filter class\n * @class fabric.Image.filters.Pixelate\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Pixelate#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Pixelate({\n * blocksize: 8\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Pixelate = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Pixelate.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Pixelate',\n\n blocksize: 4,\n\n mainParameter: 'blocksize',\n\n /**\n * Fragment source for the Pixelate program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uBlocksize;\\n' +\n 'uniform float uStepW;\\n' +\n 'uniform float uStepH;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'float blockW = uBlocksize * uStepW;\\n' +\n 'float blockH = uBlocksize * uStepW;\\n' +\n 'int posX = int(vTexCoord.x / blockW);\\n' +\n 'int posY = int(vTexCoord.y / blockH);\\n' +\n 'float fposX = float(posX);\\n' +\n 'float fposY = float(posY);\\n' +\n 'vec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\\n' +\n 'vec4 color = texture2D(uTexture, squareCoords);\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n /**\n * Apply the Pixelate operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data,\n iLen = imageData.height,\n jLen = imageData.width,\n index, i, j, r, g, b, a,\n _i, _j, _iLen, _jLen;\n\n for (i = 0; i < iLen; i += this.blocksize) {\n for (j = 0; j < jLen; j += this.blocksize) {\n\n index = (i * 4) * jLen + (j * 4);\n\n r = data[index];\n g = data[index + 1];\n b = data[index + 2];\n a = data[index + 3];\n\n _iLen = Math.min(i + this.blocksize, iLen);\n _jLen = Math.min(j + this.blocksize, jLen);\n for (_i = i; _i < _iLen; _i++) {\n for (_j = j; _j < _jLen; _j++) {\n index = (_i * 4) * jLen + (_j * 4);\n data[index] = r;\n data[index + 1] = g;\n data[index + 2] = b;\n data[index + 3] = a;\n }\n }\n }\n }\n },\n\n /**\n * Indicate when the filter is not gonna apply changes to the image\n **/\n isNeutralState: function() {\n return this.blocksize === 1;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uBlocksize: gl.getUniformLocation(program, 'uBlocksize'),\n uStepW: gl.getUniformLocation(program, 'uStepW'),\n uStepH: gl.getUniformLocation(program, 'uStepH'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uBlocksize, this.blocksize);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Pixelate} Instance of fabric.Image.filters.Pixelate\n */\n fabric.Image.filters.Pixelate.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n extend = fabric.util.object.extend,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Remove white filter class\n * @class fabric.Image.filters.RemoveColor\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.RemoveColor#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.RemoveColor({\n * threshold: 0.2,\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.RemoveColor = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.RemoveColor.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'RemoveColor',\n\n /**\n * Color to remove, in any format understood by fabric.Color.\n * @param {String} type\n * @default\n */\n color: '#FFFFFF',\n\n /**\n * Fragment source for the brightness program\n */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec4 uLow;\\n' +\n 'uniform vec4 uHigh;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'gl_FragColor = texture2D(uTexture, vTexCoord);\\n' +\n 'if(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\\n' +\n 'gl_FragColor.a = 0.0;\\n' +\n '}\\n' +\n '}',\n\n /**\n * distance to actual color, as value up or down from each r,g,b\n * between 0 and 1\n **/\n distance: 0.02,\n\n /**\n * For color to remove inside distance, use alpha channel for a smoother deletion\n * NOT IMPLEMENTED YET\n **/\n useAlpha: false,\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.RemoveWhite.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.color=#RRGGBB] Threshold value\n * @param {Number} [options.distance=10] Distance value\n */\n\n /**\n * Applies filter to canvas element\n * @param {Object} canvasEl Canvas element to apply filter to\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, i,\n distance = this.distance * 255,\n r, g, b,\n source = new fabric.Color(this.color).getSource(),\n lowC = [\n source[0] - distance,\n source[1] - distance,\n source[2] - distance,\n ],\n highC = [\n source[0] + distance,\n source[1] + distance,\n source[2] + distance,\n ];\n\n\n for (i = 0; i < data.length; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n\n if (r > lowC[0] &&\n g > lowC[1] &&\n b > lowC[2] &&\n r < highC[0] &&\n g < highC[1] &&\n b < highC[2]) {\n data[i + 3] = 0;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uLow: gl.getUniformLocation(program, 'uLow'),\n uHigh: gl.getUniformLocation(program, 'uHigh'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var source = new fabric.Color(this.color).getSource(),\n distance = parseFloat(this.distance),\n lowC = [\n 0 + source[0] / 255 - distance,\n 0 + source[1] / 255 - distance,\n 0 + source[2] / 255 - distance,\n 1\n ],\n highC = [\n source[0] / 255 + distance,\n source[1] / 255 + distance,\n source[2] / 255 + distance,\n 1\n ];\n gl.uniform4fv(uniformLocations.uLow, lowC);\n gl.uniform4fv(uniformLocations.uHigh, highC);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return extend(this.callSuper('toObject'), {\n color: this.color,\n distance: this.distance\n });\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.RemoveColor} Instance of fabric.Image.filters.RemoveWhite\n */\n fabric.Image.filters.RemoveColor.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n var matrices = {\n Brownie: [\n 0.59970,0.34553,-0.27082,0,0.186,\n -0.03770,0.86095,0.15059,0,-0.1449,\n 0.24113,-0.07441,0.44972,0,-0.02965,\n 0,0,0,1,0\n ],\n Vintage: [\n 0.62793,0.32021,-0.03965,0,0.03784,\n 0.02578,0.64411,0.03259,0,0.02926,\n 0.04660,-0.08512,0.52416,0,0.02023,\n 0,0,0,1,0\n ],\n Kodachrome: [\n 1.12855,-0.39673,-0.03992,0,0.24991,\n -0.16404,1.08352,-0.05498,0,0.09698,\n -0.16786,-0.56034,1.60148,0,0.13972,\n 0,0,0,1,0\n ],\n Technicolor: [\n 1.91252,-0.85453,-0.09155,0,0.04624,\n -0.30878,1.76589,-0.10601,0,-0.27589,\n -0.23110,-0.75018,1.84759,0,0.12137,\n 0,0,0,1,0\n ],\n Polaroid: [\n 1.438,-0.062,-0.062,0,0,\n -0.122,1.378,-0.122,0,0,\n -0.016,-0.016,1.483,0,0,\n 0,0,0,1,0\n ],\n Sepia: [\n 0.393, 0.769, 0.189, 0, 0,\n 0.349, 0.686, 0.168, 0, 0,\n 0.272, 0.534, 0.131, 0, 0,\n 0, 0, 0, 1, 0\n ],\n BlackWhite: [\n 1.5, 1.5, 1.5, 0, -1,\n 1.5, 1.5, 1.5, 0, -1,\n 1.5, 1.5, 1.5, 0, -1,\n 0, 0, 0, 1, 0,\n ]\n };\n\n for (var key in matrices) {\n filters[key] = createClass(filters.ColorMatrix, /** @lends fabric.Image.filters.Sepia.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: key,\n\n /**\n * Colormatrix for the effect\n * array of 20 floats. Numbers in positions 4, 9, 14, 19 loose meaning\n * outside the -1, 1 range.\n * @param {Array} matrix array of 20 numbers.\n * @default\n */\n matrix: matrices[key],\n\n /**\n * Lock the matrix export for this kind of static, parameter less filters.\n */\n mainParameter: false,\n /**\n * Lock the colormatrix on the color part, skipping alpha\n */\n colorsOnly: true,\n\n });\n fabric.Image.filters[key].fromObject = fabric.Image.filters.BaseFilter.fromObject;\n }\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n 'use strict';\n\n var fabric = global.fabric,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Color Blend filter class\n * @class fabric.Image.filter.BlendColor\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @example\n * var filter = new fabric.Image.filters.BlendColor({\n * color: '#000',\n * mode: 'multiply'\n * });\n *\n * var filter = new fabric.Image.filters.BlendImage({\n * image: fabricImageObject,\n * mode: 'multiply',\n * alpha: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n\n filters.BlendColor = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Blend.prototype */ {\n type: 'BlendColor',\n\n /**\n * Color to make the blend operation with. default to a reddish color since black or white\n * gives always strong result.\n **/\n color: '#F95C63',\n\n /**\n * Blend mode for the filter: one of multiply, add, diff, screen, subtract,\n * darken, lighten, overlay, exclusion, tint.\n **/\n mode: 'multiply',\n\n /**\n * alpha value. represent the strength of the blend color operation.\n **/\n alpha: 1,\n\n /**\n * Fragment source for the Multiply program\n */\n fragmentSource: {\n multiply: 'gl_FragColor.rgb *= uColor.rgb;\\n',\n screen: 'gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\\n',\n add: 'gl_FragColor.rgb += uColor.rgb;\\n',\n diff: 'gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\\n',\n subtract: 'gl_FragColor.rgb -= uColor.rgb;\\n',\n lighten: 'gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\\n',\n darken: 'gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\\n',\n exclusion: 'gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\\n',\n overlay: 'if (uColor.r < 0.5) {\\n' +\n 'gl_FragColor.r *= 2.0 * uColor.r;\\n' +\n '} else {\\n' +\n 'gl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\\n' +\n '}\\n' +\n 'if (uColor.g < 0.5) {\\n' +\n 'gl_FragColor.g *= 2.0 * uColor.g;\\n' +\n '} else {\\n' +\n 'gl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\\n' +\n '}\\n' +\n 'if (uColor.b < 0.5) {\\n' +\n 'gl_FragColor.b *= 2.0 * uColor.b;\\n' +\n '} else {\\n' +\n 'gl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\\n' +\n '}\\n',\n tint: 'gl_FragColor.rgb *= (1.0 - uColor.a);\\n' +\n 'gl_FragColor.rgb += uColor.rgb;\\n',\n },\n\n /**\n * build the fragment source for the filters, joining the common part with\n * the specific one.\n * @param {String} mode the mode of the filter, a key of this.fragmentSource\n * @return {String} the source to be compiled\n * @private\n */\n buildSource: function(mode) {\n return 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'gl_FragColor = color;\\n' +\n 'if (color.a > 0.0) {\\n' +\n this.fragmentSource[mode] +\n '}\\n' +\n '}';\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode, shaderSource;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n shaderSource = this.buildSource(this.mode);\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n /**\n * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n data = imageData.data, iLen = data.length,\n tr, tg, tb,\n r, g, b,\n source, alpha1 = 1 - this.alpha;\n\n source = new fabric.Color(this.color).getSource();\n tr = source[0] * this.alpha;\n tg = source[1] * this.alpha;\n tb = source[2] * this.alpha;\n\n for (var i = 0; i < iLen; i += 4) {\n\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n\n switch (this.mode) {\n case 'multiply':\n data[i] = r * tr / 255;\n data[i + 1] = g * tg / 255;\n data[i + 2] = b * tb / 255;\n break;\n case 'screen':\n data[i] = 255 - (255 - r) * (255 - tr) / 255;\n data[i + 1] = 255 - (255 - g) * (255 - tg) / 255;\n data[i + 2] = 255 - (255 - b) * (255 - tb) / 255;\n break;\n case 'add':\n data[i] = r + tr;\n data[i + 1] = g + tg;\n data[i + 2] = b + tb;\n break;\n case 'diff':\n case 'difference':\n data[i] = Math.abs(r - tr);\n data[i + 1] = Math.abs(g - tg);\n data[i + 2] = Math.abs(b - tb);\n break;\n case 'subtract':\n data[i] = r - tr;\n data[i + 1] = g - tg;\n data[i + 2] = b - tb;\n break;\n case 'darken':\n data[i] = Math.min(r, tr);\n data[i + 1] = Math.min(g, tg);\n data[i + 2] = Math.min(b, tb);\n break;\n case 'lighten':\n data[i] = Math.max(r, tr);\n data[i + 1] = Math.max(g, tg);\n data[i + 2] = Math.max(b, tb);\n break;\n case 'overlay':\n data[i] = tr < 128 ? (2 * r * tr / 255) : (255 - 2 * (255 - r) * (255 - tr) / 255);\n data[i + 1] = tg < 128 ? (2 * g * tg / 255) : (255 - 2 * (255 - g) * (255 - tg) / 255);\n data[i + 2] = tb < 128 ? (2 * b * tb / 255) : (255 - 2 * (255 - b) * (255 - tb) / 255);\n break;\n case 'exclusion':\n data[i] = tr + r - ((2 * tr * r) / 255);\n data[i + 1] = tg + g - ((2 * tg * g) / 255);\n data[i + 2] = tb + b - ((2 * tb * b) / 255);\n break;\n case 'tint':\n data[i] = tr + r * alpha1;\n data[i + 1] = tg + g * alpha1;\n data[i + 2] = tb + b * alpha1;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uColor: gl.getUniformLocation(program, 'uColor'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var source = new fabric.Color(this.color).getSource();\n source[0] = this.alpha * source[0] / 255;\n source[1] = this.alpha * source[1] / 255;\n source[2] = this.alpha * source[2] / 255;\n source[3] = this.alpha;\n gl.uniform4fv(uniformLocations.uColor, source);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n color: this.color,\n mode: this.mode,\n alpha: this.alpha\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.BlendColor} Instance of fabric.Image.filters.BlendColor\n */\n fabric.Image.filters.BlendColor.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n 'use strict';\n\n var fabric = global.fabric,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Image Blend filter class\n * @class fabric.Image.filter.BlendImage\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @example\n * var filter = new fabric.Image.filters.BlendColor({\n * color: '#000',\n * mode: 'multiply'\n * });\n *\n * var filter = new fabric.Image.filters.BlendImage({\n * image: fabricImageObject,\n * mode: 'multiply',\n * alpha: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n\n filters.BlendImage = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.BlendImage.prototype */ {\n type: 'BlendImage',\n\n /**\n * Color to make the blend operation with. default to a reddish color since black or white\n * gives always strong result.\n **/\n image: null,\n\n /**\n * Blend mode for the filter: one of multiply, add, diff, screen, subtract,\n * darken, lighten, overlay, exclusion, tint.\n **/\n mode: 'multiply',\n\n /**\n * alpha value. represent the strength of the blend image operation.\n * not implemented.\n **/\n alpha: 1,\n\n vertexSource: 'attribute vec2 aPosition;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'uniform mat3 uTransformMatrix;\\n' +\n 'void main() {\\n' +\n 'vTexCoord = aPosition;\\n' +\n 'vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\\n' +\n 'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\\n' +\n '}',\n\n /**\n * Fragment source for the Multiply program\n */\n fragmentSource: {\n multiply: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform sampler2D uImage;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec4 color2 = texture2D(uImage, vTexCoord2);\\n' +\n 'color.rgba *= color2.rgba;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n mask: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform sampler2D uImage;\\n' +\n 'uniform vec4 uColor;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'varying vec2 vTexCoord2;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec4 color2 = texture2D(uImage, vTexCoord2);\\n' +\n 'color.a = color2.a;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var cacheKey = this.type + '_' + this.mode;\n var shaderSource = this.fragmentSource[this.mode];\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n options.programCache[cacheKey] = this.createProgram(options.context, shaderSource);\n }\n return options.programCache[cacheKey];\n },\n\n applyToWebGL: function(options) {\n // load texture to blend.\n var gl = options.context,\n texture = this.createTexture(options.filterBackend, this.image);\n this.bindAdditionalTexture(gl, texture, gl.TEXTURE1);\n this.callSuper('applyToWebGL', options);\n this.unbindAdditionalTexture(gl, gl.TEXTURE1);\n },\n\n createTexture: function(backend, image) {\n return backend.getCachedTexture(image.cacheKey, image._element);\n },\n\n /**\n * Calculate a transformMatrix to adapt the image to blend over\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n calculateMatrix: function() {\n var image = this.image,\n width = image._element.width,\n height = image._element.height;\n return [\n 1 / image.scaleX, 0, 0,\n 0, 1 / image.scaleY, 0,\n -image.left / width, -image.top / height, 1\n ];\n },\n\n /**\n * Apply the Blend operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n resources = options.filterBackend.resources,\n data = imageData.data, iLen = data.length,\n width = imageData.width,\n height = imageData.height,\n tr, tg, tb, ta,\n r, g, b, a,\n canvas1, context, image = this.image, blendData;\n\n if (!resources.blendImage) {\n resources.blendImage = fabric.util.createCanvasElement();\n }\n canvas1 = resources.blendImage;\n context = canvas1.getContext('2d');\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas1.width = width;\n canvas1.height = height;\n }\n else {\n context.clearRect(0, 0, width, height);\n }\n context.setTransform(image.scaleX, 0, 0, image.scaleY, image.left, image.top);\n context.drawImage(image._element, 0, 0, width, height);\n blendData = context.getImageData(0, 0, width, height).data;\n for (var i = 0; i < iLen; i += 4) {\n\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n\n tr = blendData[i];\n tg = blendData[i + 1];\n tb = blendData[i + 2];\n ta = blendData[i + 3];\n\n switch (this.mode) {\n case 'multiply':\n data[i] = r * tr / 255;\n data[i + 1] = g * tg / 255;\n data[i + 2] = b * tb / 255;\n data[i + 3] = a * ta / 255;\n break;\n case 'mask':\n data[i + 3] = ta;\n break;\n }\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uTransformMatrix: gl.getUniformLocation(program, 'uTransformMatrix'),\n uImage: gl.getUniformLocation(program, 'uImage'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var matrix = this.calculateMatrix();\n gl.uniform1i(uniformLocations.uImage, 1); // texture unit 1.\n gl.uniformMatrix3fv(uniformLocations.uTransformMatrix, false, matrix);\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n image: this.image && this.image.toObject(),\n mode: this.mode,\n alpha: this.alpha\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} callback to be invoked after filter creation\n * @return {fabric.Image.filters.BlendImage} Instance of fabric.Image.filters.BlendImage\n */\n fabric.Image.filters.BlendImage.fromObject = function(object, callback) {\n fabric.Image.fromObject(object.image, function(image) {\n var options = fabric.util.object.clone(object);\n options.image = image;\n callback(new fabric.Image.filters.BlendImage(options));\n });\n };\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }), pow = Math.pow, floor = Math.floor,\n sqrt = Math.sqrt, abs = Math.abs, round = Math.round, sin = Math.sin,\n ceil = Math.ceil,\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Resize image filter class\n * @class fabric.Image.filters.Resize\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Resize();\n * object.filters.push(filter);\n * object.applyFilters(canvas.renderAll.bind(canvas));\n */\n filters.Resize = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Resize.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Resize',\n\n /**\n * Resize type\n * for webgl resizeType is just lanczos, for canvas2d can be:\n * bilinear, hermite, sliceHack, lanczos.\n * @param {String} resizeType\n * @default\n */\n resizeType: 'hermite',\n\n /**\n * Scale factor for resizing, x axis\n * @param {Number} scaleX\n * @default\n */\n scaleX: 1,\n\n /**\n * Scale factor for resizing, y axis\n * @param {Number} scaleY\n * @default\n */\n scaleY: 1,\n\n /**\n * LanczosLobes parameter for lanczos filter, valid for resizeType lanczos\n * @param {Number} lanczosLobes\n * @default\n */\n lanczosLobes: 3,\n\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uDelta: gl.getUniformLocation(program, 'uDelta'),\n uTaps: gl.getUniformLocation(program, 'uTaps'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform2fv(uniformLocations.uDelta, this.horizontal ? [1 / this.width, 0] : [0, 1 / this.height]);\n gl.uniform1fv(uniformLocations.uTaps, this.taps);\n },\n\n /**\n * Retrieves the cached shader.\n * @param {Object} options\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n retrieveShader: function(options) {\n var filterWindow = this.getFilterWindow(), cacheKey = this.type + '_' + filterWindow;\n if (!options.programCache.hasOwnProperty(cacheKey)) {\n var fragmentShader = this.generateShader(filterWindow);\n options.programCache[cacheKey] = this.createProgram(options.context, fragmentShader);\n }\n return options.programCache[cacheKey];\n },\n\n getFilterWindow: function() {\n var scale = this.tempScale;\n return Math.ceil(this.lanczosLobes / scale);\n },\n\n getTaps: function() {\n var lobeFunction = this.lanczosCreate(this.lanczosLobes), scale = this.tempScale,\n filterWindow = this.getFilterWindow(), taps = new Array(filterWindow);\n for (var i = 1; i <= filterWindow; i++) {\n taps[i - 1] = lobeFunction(i * scale);\n }\n return taps;\n },\n\n /**\n * Generate vertex and shader sources from the necessary steps numbers\n * @param {Number} filterWindow\n */\n generateShader: function(filterWindow) {\n var offsets = new Array(filterWindow),\n fragmentShader = this.fragmentSourceTOP, filterWindow;\n\n for (var i = 1; i <= filterWindow; i++) {\n offsets[i - 1] = i + '.0 * uDelta';\n }\n\n fragmentShader += 'uniform float uTaps[' + filterWindow + '];\\n';\n fragmentShader += 'void main() {\\n';\n fragmentShader += ' vec4 color = texture2D(uTexture, vTexCoord);\\n';\n fragmentShader += ' float sum = 1.0;\\n';\n\n offsets.forEach(function(offset, i) {\n fragmentShader += ' color += texture2D(uTexture, vTexCoord + ' + offset + ') * uTaps[' + i + '];\\n';\n fragmentShader += ' color += texture2D(uTexture, vTexCoord - ' + offset + ') * uTaps[' + i + '];\\n';\n fragmentShader += ' sum += 2.0 * uTaps[' + i + '];\\n';\n });\n fragmentShader += ' gl_FragColor = color / sum;\\n';\n fragmentShader += '}';\n return fragmentShader;\n },\n\n fragmentSourceTOP: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec2 uDelta;\\n' +\n 'varying vec2 vTexCoord;\\n',\n\n /**\n * Apply the resize filter to the image\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n if (options.webgl) {\n options.passes++;\n this.width = options.sourceWidth;\n this.horizontal = true;\n this.dW = Math.round(this.width * this.scaleX);\n this.dH = options.sourceHeight;\n this.tempScale = this.dW / this.width;\n this.taps = this.getTaps();\n options.destinationWidth = this.dW;\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n options.sourceWidth = options.destinationWidth;\n\n this.height = options.sourceHeight;\n this.horizontal = false;\n this.dH = Math.round(this.height * this.scaleY);\n this.tempScale = this.dH / this.height;\n this.taps = this.getTaps();\n options.destinationHeight = this.dH;\n this._setupFrameBuffer(options);\n this.applyToWebGL(options);\n this._swapTextures(options);\n options.sourceHeight = options.destinationHeight;\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n isNeutralState: function() {\n return this.scaleX === 1 && this.scaleY === 1;\n },\n\n lanczosCreate: function(lobes) {\n return function(x) {\n if (x >= lobes || x <= -lobes) {\n return 0.0;\n }\n if (x < 1.19209290E-07 && x > -1.19209290E-07) {\n return 1.0;\n }\n x *= Math.PI;\n var xx = x / lobes;\n return (sin(x) / x) * sin(xx) / xx;\n };\n },\n\n /**\n * Applies filter to canvas element\n * @memberOf fabric.Image.filters.Resize.prototype\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} scaleX\n * @param {Number} scaleY\n */\n applyTo2d: function(options) {\n var imageData = options.imageData,\n scaleX = this.scaleX,\n scaleY = this.scaleY;\n\n this.rcpScaleX = 1 / scaleX;\n this.rcpScaleY = 1 / scaleY;\n\n var oW = imageData.width, oH = imageData.height,\n dW = round(oW * scaleX), dH = round(oH * scaleY),\n newData;\n\n if (this.resizeType === 'sliceHack') {\n newData = this.sliceByTwo(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'hermite') {\n newData = this.hermiteFastResize(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'bilinear') {\n newData = this.bilinearFiltering(options, oW, oH, dW, dH);\n }\n else if (this.resizeType === 'lanczos') {\n newData = this.lanczosResize(options, oW, oH, dW, dH);\n }\n options.imageData = newData;\n },\n\n /**\n * Filter sliceByTwo\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n sliceByTwo: function(options, oW, oH, dW, dH) {\n var imageData = options.imageData,\n mult = 0.5, doneW = false, doneH = false, stepW = oW * mult,\n stepH = oH * mult, resources = fabric.filterBackend.resources,\n tmpCanvas, ctx, sX = 0, sY = 0, dX = oW, dY = 0;\n if (!resources.sliceByTwo) {\n resources.sliceByTwo = document.createElement('canvas');\n }\n tmpCanvas = resources.sliceByTwo;\n if (tmpCanvas.width < oW * 1.5 || tmpCanvas.height < oH) {\n tmpCanvas.width = oW * 1.5;\n tmpCanvas.height = oH;\n }\n ctx = tmpCanvas.getContext('2d');\n ctx.clearRect(0, 0, oW * 1.5, oH);\n ctx.putImageData(imageData, 0, 0);\n\n dW = floor(dW);\n dH = floor(dH);\n\n while (!doneW || !doneH) {\n oW = stepW;\n oH = stepH;\n if (dW < floor(stepW * mult)) {\n stepW = floor(stepW * mult);\n }\n else {\n stepW = dW;\n doneW = true;\n }\n if (dH < floor(stepH * mult)) {\n stepH = floor(stepH * mult);\n }\n else {\n stepH = dH;\n doneH = true;\n }\n ctx.drawImage(tmpCanvas, sX, sY, oW, oH, dX, dY, stepW, stepH);\n sX = dX;\n sY = dY;\n dY += stepH;\n }\n return ctx.getImageData(sX, sY, dW, dH);\n },\n\n /**\n * Filter lanczosResize\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n lanczosResize: function(options, oW, oH, dW, dH) {\n\n function process(u) {\n var v, i, weight, idx, a, red, green,\n blue, alpha, fX, fY;\n center.x = (u + 0.5) * ratioX;\n icenter.x = floor(center.x);\n for (v = 0; v < dH; v++) {\n center.y = (v + 0.5) * ratioY;\n icenter.y = floor(center.y);\n a = 0; red = 0; green = 0; blue = 0; alpha = 0;\n for (i = icenter.x - range2X; i <= icenter.x + range2X; i++) {\n if (i < 0 || i >= oW) {\n continue;\n }\n fX = floor(1000 * abs(i - center.x));\n if (!cacheLanc[fX]) {\n cacheLanc[fX] = { };\n }\n for (var j = icenter.y - range2Y; j <= icenter.y + range2Y; j++) {\n if (j < 0 || j >= oH) {\n continue;\n }\n fY = floor(1000 * abs(j - center.y));\n if (!cacheLanc[fX][fY]) {\n cacheLanc[fX][fY] = lanczos(sqrt(pow(fX * rcpRatioX, 2) + pow(fY * rcpRatioY, 2)) / 1000);\n }\n weight = cacheLanc[fX][fY];\n if (weight > 0) {\n idx = (j * oW + i) * 4;\n a += weight;\n red += weight * srcData[idx];\n green += weight * srcData[idx + 1];\n blue += weight * srcData[idx + 2];\n alpha += weight * srcData[idx + 3];\n }\n }\n }\n idx = (v * dW + u) * 4;\n destData[idx] = red / a;\n destData[idx + 1] = green / a;\n destData[idx + 2] = blue / a;\n destData[idx + 3] = alpha / a;\n }\n\n if (++u < dW) {\n return process(u);\n }\n else {\n return destImg;\n }\n }\n\n var srcData = options.imageData.data,\n destImg = options.ctx.createImageData(dW, dH),\n destData = destImg.data,\n lanczos = this.lanczosCreate(this.lanczosLobes),\n ratioX = this.rcpScaleX, ratioY = this.rcpScaleY,\n rcpRatioX = 2 / this.rcpScaleX, rcpRatioY = 2 / this.rcpScaleY,\n range2X = ceil(ratioX * this.lanczosLobes / 2),\n range2Y = ceil(ratioY * this.lanczosLobes / 2),\n cacheLanc = { }, center = { }, icenter = { };\n\n return process(0);\n },\n\n /**\n * bilinearFiltering\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n bilinearFiltering: function(options, oW, oH, dW, dH) {\n var a, b, c, d, x, y, i, j, xDiff, yDiff, chnl,\n color, offset = 0, origPix, ratioX = this.rcpScaleX,\n ratioY = this.rcpScaleY,\n w4 = 4 * (oW - 1), img = options.imageData,\n pixels = img.data, destImage = options.ctx.createImageData(dW, dH),\n destPixels = destImage.data;\n for (i = 0; i < dH; i++) {\n for (j = 0; j < dW; j++) {\n x = floor(ratioX * j);\n y = floor(ratioY * i);\n xDiff = ratioX * j - x;\n yDiff = ratioY * i - y;\n origPix = 4 * (y * oW + x);\n\n for (chnl = 0; chnl < 4; chnl++) {\n a = pixels[origPix + chnl];\n b = pixels[origPix + 4 + chnl];\n c = pixels[origPix + w4 + chnl];\n d = pixels[origPix + w4 + 4 + chnl];\n color = a * (1 - xDiff) * (1 - yDiff) + b * xDiff * (1 - yDiff) +\n c * yDiff * (1 - xDiff) + d * xDiff * yDiff;\n destPixels[offset++] = color;\n }\n }\n }\n return destImage;\n },\n\n /**\n * hermiteFastResize\n * @param {Object} canvasEl Canvas element to apply filter to\n * @param {Number} oW Original Width\n * @param {Number} oH Original Height\n * @param {Number} dW Destination Width\n * @param {Number} dH Destination Height\n * @returns {ImageData}\n */\n hermiteFastResize: function(options, oW, oH, dW, dH) {\n var ratioW = this.rcpScaleX, ratioH = this.rcpScaleY,\n ratioWHalf = ceil(ratioW / 2),\n ratioHHalf = ceil(ratioH / 2),\n img = options.imageData, data = img.data,\n img2 = options.ctx.createImageData(dW, dH), data2 = img2.data;\n for (var j = 0; j < dH; j++) {\n for (var i = 0; i < dW; i++) {\n var x2 = (i + j * dW) * 4, weight = 0, weights = 0, weightsAlpha = 0,\n gxR = 0, gxG = 0, gxB = 0, gxA = 0, centerY = (j + 0.5) * ratioH;\n for (var yy = floor(j * ratioH); yy < (j + 1) * ratioH; yy++) {\n var dy = abs(centerY - (yy + 0.5)) / ratioHHalf,\n centerX = (i + 0.5) * ratioW, w0 = dy * dy;\n for (var xx = floor(i * ratioW); xx < (i + 1) * ratioW; xx++) {\n var dx = abs(centerX - (xx + 0.5)) / ratioWHalf,\n w = sqrt(w0 + dx * dx);\n /* eslint-disable max-depth */\n if (w > 1 && w < -1) {\n continue;\n }\n //hermite filter\n weight = 2 * w * w * w - 3 * w * w + 1;\n if (weight > 0) {\n dx = 4 * (xx + yy * oW);\n //alpha\n gxA += weight * data[dx + 3];\n weightsAlpha += weight;\n //colors\n if (data[dx + 3] < 255) {\n weight = weight * data[dx + 3] / 250;\n }\n gxR += weight * data[dx];\n gxG += weight * data[dx + 1];\n gxB += weight * data[dx + 2];\n weights += weight;\n }\n /* eslint-enable max-depth */\n }\n }\n data2[x2] = gxR / weights;\n data2[x2 + 1] = gxG / weights;\n data2[x2 + 2] = gxB / weights;\n data2[x2 + 3] = gxA / weightsAlpha;\n }\n }\n return img2;\n },\n\n /**\n * Returns object representation of an instance\n * @return {Object} Object representation of an instance\n */\n toObject: function() {\n return {\n type: this.type,\n scaleX: this.scaleX,\n scaleY: this.scaleY,\n resizeType: this.resizeType,\n lanczosLobes: this.lanczosLobes\n };\n }\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Resize} Instance of fabric.Image.filters.Resize\n */\n fabric.Image.filters.Resize.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Contrast filter class\n * @class fabric.Image.filters.Contrast\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Contrast#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Contrast({\n * contrast: 40\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Contrast = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Contrast.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Contrast',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uContrast;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\\n' +\n 'color.rgb = contrastF * (color.rgb - 0.5) + 0.5;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n contrast: 0,\n\n mainParameter: 'contrast',\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Contrast.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.contrast=0] Value to contrast the image up (-1...1)\n */\n\n /**\n * Apply the Contrast operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n if (this.contrast === 0) {\n return;\n }\n var imageData = options.imageData, i, len,\n data = imageData.data, len = data.length,\n contrast = Math.floor(this.contrast * 255),\n contrastF = 259 * (contrast + 255) / (255 * (259 - contrast));\n\n for (i = 0; i < len; i += 4) {\n data[i] = contrastF * (data[i] - 128) + 128;\n data[i + 1] = contrastF * (data[i + 1] - 128) + 128;\n data[i + 2] = contrastF * (data[i + 2] - 128) + 128;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uContrast: gl.getUniformLocation(program, 'uContrast'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uContrast, this.contrast);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Contrast} Instance of fabric.Image.filters.Contrast\n */\n fabric.Image.filters.Contrast.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Saturate filter class\n * @class fabric.Image.filters.Saturation\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Saturation#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Saturation({\n * saturation: 100\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Saturation = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Saturation.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Saturation',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform float uSaturation;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'float rgMax = max(color.r, color.g);\\n' +\n 'float rgbMax = max(rgMax, color.b);\\n' +\n 'color.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\\n' +\n 'color.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\\n' +\n 'color.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\\n' +\n 'gl_FragColor = color;\\n' +\n '}',\n\n saturation: 0,\n\n mainParameter: 'saturation',\n\n /**\n * Constructor\n * @memberOf fabric.Image.filters.Saturate.prototype\n * @param {Object} [options] Options object\n * @param {Number} [options.saturate=0] Value to saturate the image (-1...1)\n */\n\n /**\n * Apply the Saturation operation to a Uint8ClampedArray representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8ClampedArray to be filtered.\n */\n applyTo2d: function(options) {\n if (this.saturation === 0) {\n return;\n }\n var imageData = options.imageData,\n data = imageData.data, len = data.length,\n adjust = -this.saturation, i, max;\n\n for (i = 0; i < len; i += 4) {\n max = Math.max(data[i], data[i + 1], data[i + 2]);\n data[i] += max !== data[i] ? (max - data[i]) * adjust : 0;\n data[i + 1] += max !== data[i + 1] ? (max - data[i + 1]) * adjust : 0;\n data[i + 2] += max !== data[i + 2] ? (max - data[i + 2]) * adjust : 0;\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uSaturation: gl.getUniformLocation(program, 'uSaturation'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform1f(uniformLocations.uSaturation, -this.saturation);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Saturation} Instance of fabric.Image.filters.Saturate\n */\n fabric.Image.filters.Saturation.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Blur filter class\n * @class fabric.Image.filters.Blur\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Blur#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Blur({\n * blur: 0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n * canvas.renderAll();\n */\n filters.Blur = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Blur.prototype */ {\n\n type: 'Blur',\n\n /*\n'gl_FragColor = vec4(0.0);',\n'gl_FragColor += texture2D(texture, vTexCoord + -7 * uDelta)*0.0044299121055113265;',\n'gl_FragColor += texture2D(texture, vTexCoord + -6 * uDelta)*0.00895781211794;',\n'gl_FragColor += texture2D(texture, vTexCoord + -5 * uDelta)*0.0215963866053;',\n'gl_FragColor += texture2D(texture, vTexCoord + -4 * uDelta)*0.0443683338718;',\n'gl_FragColor += texture2D(texture, vTexCoord + -3 * uDelta)*0.0776744219933;',\n'gl_FragColor += texture2D(texture, vTexCoord + -2 * uDelta)*0.115876621105;',\n'gl_FragColor += texture2D(texture, vTexCoord + -1 * uDelta)*0.147308056121;',\n'gl_FragColor += texture2D(texture, vTexCoord )*0.159576912161;',\n'gl_FragColor += texture2D(texture, vTexCoord + 1 * uDelta)*0.147308056121;',\n'gl_FragColor += texture2D(texture, vTexCoord + 2 * uDelta)*0.115876621105;',\n'gl_FragColor += texture2D(texture, vTexCoord + 3 * uDelta)*0.0776744219933;',\n'gl_FragColor += texture2D(texture, vTexCoord + 4 * uDelta)*0.0443683338718;',\n'gl_FragColor += texture2D(texture, vTexCoord + 5 * uDelta)*0.0215963866053;',\n'gl_FragColor += texture2D(texture, vTexCoord + 6 * uDelta)*0.00895781211794;',\n'gl_FragColor += texture2D(texture, vTexCoord + 7 * uDelta)*0.0044299121055113265;',\n*/\n\n /* eslint-disable max-len */\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec2 uDelta;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'const float nSamples = 15.0;\\n' +\n 'vec3 v3offset = vec3(12.9898, 78.233, 151.7182);\\n' +\n 'float random(vec3 scale) {\\n' +\n /* use the fragment position for a different seed per-pixel */\n 'return fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\\n' +\n '}\\n' +\n 'void main() {\\n' +\n 'vec4 color = vec4(0.0);\\n' +\n 'float total = 0.0;\\n' +\n 'float offset = random(v3offset);\\n' +\n 'for (float t = -nSamples; t <= nSamples; t++) {\\n' +\n 'float percent = (t + offset - 0.5) / nSamples;\\n' +\n 'float weight = 1.0 - abs(percent);\\n' +\n 'color += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\\n' +\n 'total += weight;\\n' +\n '}\\n' +\n 'gl_FragColor = color / total;\\n' +\n '}',\n /* eslint-enable max-len */\n\n /**\n * blur value, in percentage of image dimensions.\n * specific to keep the image blur constant at different resolutions\n * range bewteen 0 and 1.\n */\n blur: 0,\n\n mainParameter: 'blur',\n\n applyTo: function(options) {\n if (options.webgl) {\n // this aspectRatio is used to give the same blur to vertical and horizontal\n this.aspectRatio = options.sourceWidth / options.sourceHeight;\n options.passes++;\n this._setupFrameBuffer(options);\n this.horizontal = true;\n this.applyToWebGL(options);\n this._swapTextures(options);\n this._setupFrameBuffer(options);\n this.horizontal = false;\n this.applyToWebGL(options);\n this._swapTextures(options);\n }\n else {\n this.applyTo2d(options);\n }\n },\n\n applyTo2d: function(options) {\n // paint canvasEl with current image data.\n //options.ctx.putImageData(options.imageData, 0, 0);\n options.imageData = this.simpleBlur(options);\n },\n\n simpleBlur: function(options) {\n var resources = options.filterBackend.resources, canvas1, canvas2,\n width = options.imageData.width,\n height = options.imageData.height;\n\n if (!resources.blurLayer1) {\n resources.blurLayer1 = fabric.util.createCanvasElement();\n resources.blurLayer2 = fabric.util.createCanvasElement();\n }\n canvas1 = resources.blurLayer1;\n canvas2 = resources.blurLayer2;\n if (canvas1.width !== width || canvas1.height !== height) {\n canvas2.width = canvas1.width = width;\n canvas2.height = canvas1.height = height;\n }\n var ctx1 = canvas1.getContext('2d'),\n ctx2 = canvas2.getContext('2d'),\n nSamples = 15,\n random, percent, j, i,\n blur = this.blur * 0.06 * 0.5;\n\n // load first canvas\n ctx1.putImageData(options.imageData, 0, 0);\n ctx2.clearRect(0, 0, width, height);\n\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * width + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, j, random);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n for (i = -nSamples; i <= nSamples; i++) {\n random = (Math.random() - 0.5) / 4;\n percent = i / nSamples;\n j = blur * percent * height + random;\n ctx2.globalAlpha = 1 - Math.abs(percent);\n ctx2.drawImage(canvas1, random, j);\n ctx1.drawImage(canvas2, 0, 0);\n ctx2.globalAlpha = 1;\n ctx2.clearRect(0, 0, canvas2.width, canvas2.height);\n }\n options.ctx.drawImage(canvas1, 0, 0);\n var newImageData = options.ctx.getImageData(0, 0, canvas1.width, canvas1.height);\n ctx1.globalAlpha = 1;\n ctx1.clearRect(0, 0, canvas1.width, canvas1.height);\n return newImageData;\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n delta: gl.getUniformLocation(program, 'uDelta'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n var delta = this.chooseRightDelta();\n gl.uniform2fv(uniformLocations.delta, delta);\n },\n\n /**\n * choose right value of image percentage to blur with\n * @returns {Array} a numeric array with delta values\n */\n chooseRightDelta: function() {\n var blurScale = 1, delta = [0, 0], blur;\n if (this.horizontal) {\n if (this.aspectRatio > 1) {\n // image is wide, i want to shrink radius horizontal\n blurScale = 1 / this.aspectRatio;\n }\n }\n else {\n if (this.aspectRatio < 1) {\n // image is tall, i want to shrink radius vertical\n blurScale = this.aspectRatio;\n }\n }\n blur = blurScale * this.blur * 0.12;\n if (this.horizontal) {\n delta[0] = blur;\n }\n else {\n delta[1] = blur;\n }\n return delta;\n },\n });\n\n /**\n * Deserialize a JSON definition of a BlurFilter into a concrete instance.\n */\n filters.Blur.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * Gamma filter class\n * @class fabric.Image.filters.Gamma\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.Gamma#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.Gamma({\n * brightness: 200\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.Gamma = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Gamma.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'Gamma',\n\n fragmentSource: 'precision highp float;\\n' +\n 'uniform sampler2D uTexture;\\n' +\n 'uniform vec3 uGamma;\\n' +\n 'varying vec2 vTexCoord;\\n' +\n 'void main() {\\n' +\n 'vec4 color = texture2D(uTexture, vTexCoord);\\n' +\n 'vec3 correction = (1.0 / uGamma);\\n' +\n 'color.r = pow(color.r, correction.r);\\n' +\n 'color.g = pow(color.g, correction.g);\\n' +\n 'color.b = pow(color.b, correction.b);\\n' +\n 'gl_FragColor = color;\\n' +\n 'gl_FragColor.rgb *= color.a;\\n' +\n '}',\n\n /**\n * Gamma array value, from 0.01 to 2.2.\n * @param {Array} gamma\n * @default\n */\n gamma: [1, 1, 1],\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'gamma',\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.gamma = [1, 1, 1];\n filters.BaseFilter.prototype.initialize.call(this, options);\n },\n\n /**\n * Apply the Gamma operation to a Uint8Array representing the pixels of an image.\n *\n * @param {Object} options\n * @param {ImageData} options.imageData The Uint8Array to be filtered.\n */\n applyTo2d: function(options) {\n var imageData = options.imageData, data = imageData.data,\n gamma = this.gamma, len = data.length,\n rInv = 1 / gamma[0], gInv = 1 / gamma[1],\n bInv = 1 / gamma[2], i;\n\n if (!this.rVals) {\n // eslint-disable-next-line\n this.rVals = new Uint8Array(256);\n // eslint-disable-next-line\n this.gVals = new Uint8Array(256);\n // eslint-disable-next-line\n this.bVals = new Uint8Array(256);\n }\n\n // This is an optimization - pre-compute a look-up table for each color channel\n // instead of performing these pow calls for each pixel in the image.\n for (i = 0, len = 256; i < len; i++) {\n this.rVals[i] = Math.pow(i / 255, rInv) * 255;\n this.gVals[i] = Math.pow(i / 255, gInv) * 255;\n this.bVals[i] = Math.pow(i / 255, bInv) * 255;\n }\n for (i = 0, len = data.length; i < len; i += 4) {\n data[i] = this.rVals[data[i]];\n data[i + 1] = this.gVals[data[i + 1]];\n data[i + 2] = this.bVals[data[i + 2]];\n }\n },\n\n /**\n * Return WebGL uniform locations for this filter's shader.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {WebGLShaderProgram} program This filter's compiled shader program.\n */\n getUniformLocations: function(gl, program) {\n return {\n uGamma: gl.getUniformLocation(program, 'uGamma'),\n };\n },\n\n /**\n * Send data from this filter to its shader program's uniforms.\n *\n * @param {WebGLRenderingContext} gl The GL canvas context used to compile this filter's shader.\n * @param {Object} uniformLocations A map of string uniform names to WebGLUniformLocation objects\n */\n sendUniformData: function(gl, uniformLocations) {\n gl.uniform3fv(uniformLocations.uGamma, this.gamma);\n },\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.Gamma} Instance of fabric.Image.filters.Gamma\n */\n fabric.Image.filters.Gamma.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * A container class that knows how to apply a sequence of filters to an input image.\n */\n filters.Composed = createClass(filters.BaseFilter, /** @lends fabric.Image.filters.Composed.prototype */ {\n\n type: 'Composed',\n\n /**\n * A non sparse array of filters to apply\n */\n subFilters: [],\n\n /**\n * Constructor\n * @param {Object} [options] Options object\n */\n initialize: function(options) {\n this.callSuper('initialize', options);\n // create a new array instead mutating the prototype with push\n this.subFilters = this.subFilters.slice(0);\n },\n\n /**\n * Apply this container's filters to the input image provided.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be applied.\n */\n applyTo: function(options) {\n options.passes += this.subFilters.length - 1;\n this.subFilters.forEach(function(filter) {\n filter.applyTo(options);\n });\n },\n\n /**\n * Serialize this filter into JSON.\n *\n * @returns {Object} A JSON representation of this filter.\n */\n toObject: function() {\n return fabric.util.object.extend(this.callSuper('toObject'), {\n subFilters: this.subFilters.map(function(filter) { return filter.toObject(); }),\n });\n },\n\n isNeutralState: function() {\n return !this.subFilters.some(function(filter) { return !filter.isNeutralState(); });\n }\n });\n\n /**\n * Deserialize a JSON definition of a ComposedFilter into a concrete instance.\n */\n fabric.Image.filters.Composed.fromObject = function(object, callback) {\n var filters = object.subFilters || [],\n subFilters = filters.map(function(filter) {\n return new fabric.Image.filters[filter.type](filter);\n }),\n instance = new fabric.Image.filters.Composed({ subFilters: subFilters });\n callback && callback(instance);\n return instance;\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n filters = fabric.Image.filters,\n createClass = fabric.util.createClass;\n\n /**\n * HueRotation filter class\n * @class fabric.Image.filters.HueRotation\n * @memberOf fabric.Image.filters\n * @extends fabric.Image.filters.BaseFilter\n * @see {@link fabric.Image.filters.HueRotation#initialize} for constructor definition\n * @see {@link http://fabricjs.com/image-filters|ImageFilters demo}\n * @example\n * var filter = new fabric.Image.filters.HueRotation({\n * rotation: -0.5\n * });\n * object.filters.push(filter);\n * object.applyFilters();\n */\n filters.HueRotation = createClass(filters.ColorMatrix, /** @lends fabric.Image.filters.HueRotation.prototype */ {\n\n /**\n * Filter type\n * @param {String} type\n * @default\n */\n type: 'HueRotation',\n\n /**\n * HueRotation value, from -1 to 1.\n * the unit is radians\n * @param {Number} myParameter\n * @default\n */\n rotation: 0,\n\n /**\n * Describe the property that is the filter parameter\n * @param {String} m\n * @default\n */\n mainParameter: 'rotation',\n\n calculateMatrix: function() {\n var rad = this.rotation * Math.PI, cos = fabric.util.cos(rad), sin = fabric.util.sin(rad),\n aThird = 1 / 3, aThirdSqtSin = Math.sqrt(aThird) * sin, OneMinusCos = 1 - cos;\n this.matrix = [\n 1, 0, 0, 0, 0,\n 0, 1, 0, 0, 0,\n 0, 0, 1, 0, 0,\n 0, 0, 0, 1, 0\n ];\n this.matrix[0] = cos + OneMinusCos / 3;\n this.matrix[1] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[2] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[5] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[6] = cos + aThird * OneMinusCos;\n this.matrix[7] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[10] = aThird * OneMinusCos - aThirdSqtSin;\n this.matrix[11] = aThird * OneMinusCos + aThirdSqtSin;\n this.matrix[12] = cos + aThird * OneMinusCos;\n },\n\n /**\n * HueRotation isNeutralState implementation\n * Used only in image applyFilters to discard filters that will not have an effect\n * on the image\n * @param {Object} options\n **/\n isNeutralState: function(options) {\n this.calculateMatrix();\n return filters.BaseFilter.prototype.isNeutralState.call(this, options);\n },\n\n /**\n * Apply this filter to the input image data provided.\n *\n * Determines whether to use WebGL or Canvas2D based on the options.webgl flag.\n *\n * @param {Object} options\n * @param {Number} options.passes The number of filters remaining to be executed\n * @param {Boolean} options.webgl Whether to use webgl to render the filter.\n * @param {WebGLTexture} options.sourceTexture The texture setup as the source to be filtered.\n * @param {WebGLTexture} options.targetTexture The texture where filtered output should be drawn.\n * @param {WebGLRenderingContext} options.context The GL context used for rendering.\n * @param {Object} options.programCache A map of compiled shader programs, keyed by filter type.\n */\n applyTo: function(options) {\n this.calculateMatrix();\n filters.BaseFilter.prototype.applyTo.call(this, options);\n },\n\n });\n\n /**\n * Returns filter instance from an object representation\n * @static\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] to be invoked after filter creation\n * @return {fabric.Image.filters.HueRotation} Instance of fabric.Image.filters.HueRotation\n */\n fabric.Image.filters.HueRotation.fromObject = fabric.Image.filters.BaseFilter.fromObject;\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = { }),\n clone = fabric.util.object.clone;\n\n if (fabric.Text) {\n fabric.warn('fabric.Text is already defined');\n return;\n }\n\n /**\n * Text class\n * @class fabric.Text\n * @extends fabric.Object\n * @return {fabric.Text} thisArg\n * @tutorial {@link http://fabricjs.com/fabric-intro-part-2#text}\n * @see {@link fabric.Text#initialize} for constructor definition\n */\n fabric.Text = fabric.util.createClass(fabric.Object, /** @lends fabric.Text.prototype */ {\n\n /**\n * Properties which when set cause object to change dimensions\n * @type Array\n * @private\n */\n _dimensionAffectingProps: [\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontStyle',\n 'lineHeight',\n 'text',\n 'charSpacing',\n 'textAlign',\n 'styles',\n ],\n\n /**\n * @private\n */\n _reNewline: /\\r?\\n/,\n\n /**\n * Use this regular expression to filter for whitespaces that is not a new line.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reSpacesAndTabs: /[ \\t\\r]/g,\n\n /**\n * Use this regular expression to filter for whitespace that is not a new line.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reSpaceAndTab: /[ \\t\\r]/,\n\n /**\n * Use this regular expression to filter consecutive groups of non spaces.\n * Mostly used when text is 'justify' aligned.\n * @private\n */\n _reWords: /\\S+/g,\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'text',\n\n /**\n * Font size (in pixels)\n * @type Number\n * @default\n */\n fontSize: 40,\n\n /**\n * Font weight (e.g. bold, normal, 400, 600, 800)\n * @type {(Number|String)}\n * @default\n */\n fontWeight: 'normal',\n\n /**\n * Font family\n * @type String\n * @default\n */\n fontFamily: 'Times New Roman',\n\n /**\n * Text decoration underline.\n * @type Boolean\n * @default\n */\n underline: false,\n\n /**\n * Text decoration overline.\n * @type Boolean\n * @default\n */\n overline: false,\n\n /**\n * Text decoration linethrough.\n * @type Boolean\n * @default\n */\n linethrough: false,\n\n /**\n * Text alignment. Possible values: \"left\", \"center\", \"right\", \"justify\",\n * \"justify-left\", \"justify-center\" or \"justify-right\".\n * @type String\n * @default\n */\n textAlign: 'left',\n\n /**\n * Font style . Possible values: \"\", \"normal\", \"italic\" or \"oblique\".\n * @type String\n * @default\n */\n fontStyle: 'normal',\n\n /**\n * Line height\n * @type Number\n * @default\n */\n lineHeight: 1.16,\n\n /**\n * Superscript schema object (minimum overlap)\n * @type {Object}\n * @default\n */\n superscript: {\n size: 0.60, // fontSize factor\n baseline: -0.35 // baseline-shift factor (upwards)\n },\n\n /**\n * Subscript schema object (minimum overlap)\n * @type {Object}\n * @default\n */\n subscript: {\n size: 0.60, // fontSize factor\n baseline: 0.11 // baseline-shift factor (downwards)\n },\n\n /**\n * Background color of text lines\n * @type String\n * @default\n */\n textBackgroundColor: '',\n\n /**\n * List of properties to consider when checking if\n * state of an object is changed ({@link fabric.Object#hasStateChanged})\n * as well as for history (undo/redo) purposes\n * @type Array\n */\n stateProperties: fabric.Object.prototype.stateProperties.concat('fontFamily',\n 'fontWeight',\n 'fontSize',\n 'text',\n 'underline',\n 'overline',\n 'linethrough',\n 'textAlign',\n 'fontStyle',\n 'lineHeight',\n 'textBackgroundColor',\n 'charSpacing',\n 'styles'),\n\n /**\n * List of properties to consider when checking if cache needs refresh\n * @type Array\n */\n cacheProperties: fabric.Object.prototype.cacheProperties.concat('fontFamily',\n 'fontWeight',\n 'fontSize',\n 'text',\n 'underline',\n 'overline',\n 'linethrough',\n 'textAlign',\n 'fontStyle',\n 'lineHeight',\n 'textBackgroundColor',\n 'charSpacing',\n 'styles'),\n\n /**\n * When defined, an object is rendered via stroke and this property specifies its color.\n * Backwards incompatibility note: This property was named \"strokeStyle\" until v1.1.6\n * @type String\n * @default\n */\n stroke: null,\n\n /**\n * Shadow object representing shadow of this shape.\n * Backwards incompatibility note: This property was named \"textShadow\" (String) until v1.2.11\n * @type fabric.Shadow\n * @default\n */\n shadow: null,\n\n /**\n * @private\n */\n _fontSizeFraction: 0.222,\n\n /**\n * @private\n */\n offsets: {\n underline: 0.10,\n linethrough: -0.315,\n overline: -0.88\n },\n\n /**\n * Text Line proportion to font Size (in pixels)\n * @type Number\n * @default\n */\n _fontSizeMult: 1.13,\n\n /**\n * additional space between characters\n * expressed in thousands of em unit\n * @type Number\n * @default\n */\n charSpacing: 0,\n\n /**\n * Object containing character styles - top-level properties -> line numbers,\n * 2nd-level properties - charater numbers\n * @type Object\n * @default\n */\n styles: null,\n\n /**\n * Reference to a context to measure text char or couple of chars\n * the cacheContext of the canvas will be used or a freshly created one if the object is not on canvas\n * once created it will be referenced on fabric._measuringContext to avoide creating a canvas for every\n * text object created.\n * @type {CanvasRenderingContext2D}\n * @default\n */\n _measuringContext: null,\n\n /**\n * Baseline shift, stlyes only, keep at 0 for the main text object\n * @type {Number}\n * @default\n */\n deltaY: 0,\n\n /**\n * Array of properties that define a style unit (of 'styles').\n * @type {Array}\n * @default\n */\n _styleProperties: [\n 'stroke',\n 'strokeWidth',\n 'fill',\n 'fontFamily',\n 'fontSize',\n 'fontWeight',\n 'fontStyle',\n 'underline',\n 'overline',\n 'linethrough',\n 'deltaY',\n 'textBackgroundColor',\n ],\n\n /**\n * contains characters bounding boxes\n */\n __charBounds: [],\n\n /**\n * use this size when measuring text. To avoid IE11 rounding errors\n * @type {Number}\n * @default\n * @readonly\n * @private\n */\n CACHE_FONT_SIZE: 400,\n\n /**\n * contains the min text width to avoid getting 0\n * @type {Number}\n * @default\n */\n MIN_TEXT_WIDTH: 2,\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.Text} thisArg\n */\n initialize: function(text, options) {\n this.styles = options ? (options.styles || { }) : { };\n this.text = text;\n this.__skipDimension = true;\n this.callSuper('initialize', options);\n this.__skipDimension = false;\n this.initDimensions();\n this.setCoords();\n this.setupState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * Return a contex for measurement of text string.\n * if created it gets stored for reuse\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.Text} thisArg\n */\n getMeasuringContext: function() {\n // if we did not return we have to measure something.\n if (!fabric._measuringContext) {\n fabric._measuringContext = this.canvas && this.canvas.contextCache ||\n fabric.util.createCanvasElement().getContext('2d');\n }\n return fabric._measuringContext;\n },\n\n /**\n * @private\n * Divides text into lines of text and lines of graphemes.\n */\n _splitText: function() {\n var newLines = this._splitTextIntoLines(this.text);\n this.textLines = newLines.lines;\n this._textLines = newLines.graphemeLines;\n this._unwrappedTextLines = newLines._unwrappedLines;\n this._text = newLines.graphemeText;\n return newLines;\n },\n\n /**\n * Initialize or update text dimensions.\n * Updates this.width and this.height with the proper values.\n * Does not return dimensions.\n */\n initDimensions: function() {\n if (this.__skipDimension) {\n return;\n }\n this._splitText();\n this._clearCache();\n this.width = this.calcTextWidth() || this.cursorWidth || this.MIN_TEXT_WIDTH;\n if (this.textAlign.indexOf('justify') !== -1) {\n // once text is measured we need to make space fatter to make justified text.\n this.enlargeSpaces();\n }\n this.height = this.calcTextHeight();\n this.saveState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * Enlarge space boxes and shift the others\n */\n enlargeSpaces: function() {\n var diffSpace, currentLineWidth, numberOfSpaces, accumulatedSpace, line, charBound, spaces;\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n if (this.textAlign !== 'justify' && (i === len - 1 || this.isEndOfWrapping(i))) {\n continue;\n }\n accumulatedSpace = 0;\n line = this._textLines[i];\n currentLineWidth = this.getLineWidth(i);\n if (currentLineWidth < this.width && (spaces = this.textLines[i].match(this._reSpacesAndTabs))) {\n numberOfSpaces = spaces.length;\n diffSpace = (this.width - currentLineWidth) / numberOfSpaces;\n for (var j = 0, jlen = line.length; j <= jlen; j++) {\n charBound = this.__charBounds[i][j];\n if (this._reSpaceAndTab.test(line[j])) {\n charBound.width += diffSpace;\n charBound.kernedWidth += diffSpace;\n charBound.left += accumulatedSpace;\n accumulatedSpace += diffSpace;\n }\n else {\n charBound.left += accumulatedSpace;\n }\n }\n }\n }\n },\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @return {Boolean}\n */\n isEndOfWrapping: function(lineIndex) {\n return lineIndex === this._textLines.length - 1;\n },\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * It return always for text and Itext.\n * @return Number\n */\n missingNewlineOffset: function() {\n return 1;\n },\n\n /**\n * Returns string representation of an instance\n * @return {String} String representation of text object\n */\n toString: function() {\n return '#';\n },\n\n /**\n * Return the dimension and the zoom level needed to create a cache canvas\n * big enough to host the object to be cached.\n * @private\n * @param {Object} dim.x width of object to be cached\n * @param {Object} dim.y height of object to be cached\n * @return {Object}.width width of canvas\n * @return {Object}.height height of canvas\n * @return {Object}.zoomX zoomX zoom value to unscale the canvas before drawing cache\n * @return {Object}.zoomY zoomY zoom value to unscale the canvas before drawing cache\n */\n _getCacheCanvasDimensions: function() {\n var dims = this.callSuper('_getCacheCanvasDimensions');\n var fontSize = this.fontSize;\n dims.width += fontSize * dims.zoomX;\n dims.height += fontSize * dims.zoomY;\n return dims;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n this._setTextStyles(ctx);\n this._renderTextLinesBackground(ctx);\n this._renderTextDecoration(ctx, 'underline');\n this._renderText(ctx);\n this._renderTextDecoration(ctx, 'overline');\n this._renderTextDecoration(ctx, 'linethrough');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderText: function(ctx) {\n if (this.paintFirst === 'stroke') {\n this._renderTextStroke(ctx);\n this._renderTextFill(ctx);\n }\n else {\n this._renderTextFill(ctx);\n this._renderTextStroke(ctx);\n }\n },\n\n /**\n * Set the font parameter of the context with the object properties or with charStyle\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} [charStyle] object with font style properties\n * @param {String} [charStyle.fontFamily] Font Family\n * @param {Number} [charStyle.fontSize] Font size in pixels. ( without px suffix )\n * @param {String} [charStyle.fontWeight] Font weight\n * @param {String} [charStyle.fontStyle] Font style (italic|normal)\n */\n _setTextStyles: function(ctx, charStyle, forMeasuring) {\n ctx.textBaseline = 'alphabetic';\n ctx.font = this._getFontDeclaration(charStyle, forMeasuring);\n },\n\n /**\n * calculate and return the text Width measuring each line.\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @return {Number} Maximum width of fabric.Text object\n */\n calcTextWidth: function() {\n var maxWidth = this.getLineWidth(0);\n\n for (var i = 1, len = this._textLines.length; i < len; i++) {\n var currentLineWidth = this.getLineWidth(i);\n if (currentLineWidth > maxWidth) {\n maxWidth = currentLineWidth;\n }\n }\n return maxWidth;\n },\n\n /**\n * @private\n * @param {String} method Method name (\"fillText\" or \"strokeText\")\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {String} line Text to render\n * @param {Number} left Left position of text\n * @param {Number} top Top position of text\n * @param {Number} lineIndex Index of a line in a text\n */\n _renderTextLine: function(method, ctx, line, left, top, lineIndex) {\n this._renderChars(method, ctx, line, left, top, lineIndex);\n },\n\n /**\n * Renders the text background for lines, taking care of style\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextLinesBackground: function(ctx) {\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor')) {\n return;\n }\n var lineTopOffset = 0, heightOfLine,\n lineLeftOffset, originalFill = ctx.fillStyle,\n line, lastColor,\n leftOffset = this._getLeftOffset(),\n topOffset = this._getTopOffset(),\n boxStart = 0, boxWidth = 0, charBox, currentColor;\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n heightOfLine = this.getHeightOfLine(i);\n if (!this.textBackgroundColor && !this.styleHas('textBackgroundColor', i)) {\n lineTopOffset += heightOfLine;\n continue;\n }\n line = this._textLines[i];\n lineLeftOffset = this._getLineLeftOffset(i);\n boxWidth = 0;\n boxStart = 0;\n lastColor = this.getValueOfPropertyAt(i, 0, 'textBackgroundColor');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentColor = this.getValueOfPropertyAt(i, j, 'textBackgroundColor');\n if (currentColor !== lastColor) {\n ctx.fillStyle = lastColor;\n lastColor && ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n topOffset + lineTopOffset,\n boxWidth,\n heightOfLine / this.lineHeight\n );\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastColor = currentColor;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n if (currentColor) {\n ctx.fillStyle = currentColor;\n ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n topOffset + lineTopOffset,\n boxWidth,\n heightOfLine / this.lineHeight\n );\n }\n lineTopOffset += heightOfLine;\n }\n ctx.fillStyle = originalFill;\n // if there is text background color no\n // other shadows should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * @private\n * @param {Object} decl style declaration for cache\n * @param {String} decl.fontFamily fontFamily\n * @param {String} decl.fontStyle fontStyle\n * @param {String} decl.fontWeight fontWeight\n * @return {Object} reference to cache\n */\n getFontCache: function(decl) {\n var fontFamily = decl.fontFamily.toLowerCase();\n if (!fabric.charWidthsCache[fontFamily]) {\n fabric.charWidthsCache[fontFamily] = { };\n }\n var cache = fabric.charWidthsCache[fontFamily],\n cacheProp = decl.fontStyle.toLowerCase() + '_' + (decl.fontWeight + '').toLowerCase();\n if (!cache[cacheProp]) {\n cache[cacheProp] = { };\n }\n return cache[cacheProp];\n },\n\n /**\n * apply all the character style to canvas for rendering\n * @private\n * @param {String} _char\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} [decl]\n */\n _applyCharStyles: function(method, ctx, lineIndex, charIndex, styleDeclaration) {\n\n this._setFillStyles(ctx, styleDeclaration);\n this._setStrokeStyles(ctx, styleDeclaration);\n\n ctx.font = this._getFontDeclaration(styleDeclaration);\n },\n\n /**\n * measure and return the width of a single character.\n * possibly overridden to accommodate different measure logic or\n * to hook some external lib for character measurement\n * @private\n * @param {String} _char, char to be measured\n * @param {Object} charStyle style of char to be measured\n * @param {String} [previousChar] previous char\n * @param {Object} [prevCharStyle] style of previous char\n */\n _measureChar: function(_char, charStyle, previousChar, prevCharStyle) {\n // first i try to return from cache\n var fontCache = this.getFontCache(charStyle), fontDeclaration = this._getFontDeclaration(charStyle),\n previousFontDeclaration = this._getFontDeclaration(prevCharStyle), couple = previousChar + _char,\n stylesAreEqual = fontDeclaration === previousFontDeclaration, width, coupleWidth, previousWidth,\n fontMultiplier = charStyle.fontSize / this.CACHE_FONT_SIZE, kernedWidth;\n\n if (previousChar && fontCache[previousChar] !== undefined) {\n previousWidth = fontCache[previousChar];\n }\n if (fontCache[_char] !== undefined) {\n kernedWidth = width = fontCache[_char];\n }\n if (stylesAreEqual && fontCache[couple] !== undefined) {\n coupleWidth = fontCache[couple];\n kernedWidth = coupleWidth - previousWidth;\n }\n if (width === undefined || previousWidth === undefined || coupleWidth === undefined) {\n var ctx = this.getMeasuringContext();\n // send a TRUE to specify measuring font size CACHE_FONT_SIZE\n this._setTextStyles(ctx, charStyle, true);\n }\n if (width === undefined) {\n kernedWidth = width = ctx.measureText(_char).width;\n fontCache[_char] = width;\n }\n if (previousWidth === undefined && stylesAreEqual && previousChar) {\n previousWidth = ctx.measureText(previousChar).width;\n fontCache[previousChar] = previousWidth;\n }\n if (stylesAreEqual && coupleWidth === undefined) {\n // we can measure the kerning couple and subtract the width of the previous character\n coupleWidth = ctx.measureText(couple).width;\n fontCache[couple] = coupleWidth;\n kernedWidth = coupleWidth - previousWidth;\n }\n return { width: width * fontMultiplier, kernedWidth: kernedWidth * fontMultiplier };\n },\n\n /**\n * Computes height of character at given position\n * @param {Number} line the line index number\n * @param {Number} _char the character index number\n * @return {Number} fontSize of the character\n */\n getHeightOfChar: function(line, _char) {\n return this.getValueOfPropertyAt(line, _char, 'fontSize');\n },\n\n /**\n * measure a text line measuring all characters.\n * @param {Number} lineIndex line number\n * @return {Number} Line width\n */\n measureLine: function(lineIndex) {\n var lineInfo = this._measureLine(lineIndex);\n if (this.charSpacing !== 0) {\n lineInfo.width -= this._getWidthOfCharSpacing();\n }\n if (lineInfo.width < 0) {\n lineInfo.width = 0;\n }\n return lineInfo;\n },\n\n /**\n * measure every grapheme of a line, populating __charBounds\n * @param {Number} lineIndex\n * @return {Object} object.width total width of characters\n * @return {Object} object.widthOfSpaces length of chars that match this._reSpacesAndTabs\n */\n _measureLine: function(lineIndex) {\n var width = 0, i, grapheme, line = this._textLines[lineIndex], prevGrapheme,\n graphemeInfo, numOfSpaces = 0, lineBounds = new Array(line.length);\n\n this.__charBounds[lineIndex] = lineBounds;\n for (i = 0; i < line.length; i++) {\n grapheme = line[i];\n graphemeInfo = this._getGraphemeBox(grapheme, lineIndex, i, prevGrapheme);\n lineBounds[i] = graphemeInfo;\n width += graphemeInfo.kernedWidth;\n prevGrapheme = grapheme;\n }\n // this latest bound box represent the last character of the line\n // to simplify cursor handling in interactive mode.\n lineBounds[i] = {\n left: graphemeInfo ? graphemeInfo.left + graphemeInfo.width : 0,\n width: 0,\n kernedWidth: 0,\n height: this.fontSize\n };\n return { width: width, numOfSpaces: numOfSpaces };\n },\n\n /**\n * Measure and return the info of a single grapheme.\n * needs the the info of previous graphemes already filled\n * @private\n * @param {String} grapheme to be measured\n * @param {Number} lineIndex index of the line where the char is\n * @param {Number} charIndex position in the line\n * @param {String} [prevGrapheme] character preceding the one to be measured\n */\n _getGraphemeBox: function(grapheme, lineIndex, charIndex, prevGrapheme, skipLeft) {\n var style = this.getCompleteStyleDeclaration(lineIndex, charIndex),\n prevStyle = prevGrapheme ? this.getCompleteStyleDeclaration(lineIndex, charIndex - 1) : { },\n info = this._measureChar(grapheme, style, prevGrapheme, prevStyle),\n kernedWidth = info.kernedWidth,\n width = info.width, charSpacing;\n\n if (this.charSpacing !== 0) {\n charSpacing = this._getWidthOfCharSpacing();\n width += charSpacing;\n kernedWidth += charSpacing;\n }\n\n var box = {\n width: width,\n left: 0,\n height: style.fontSize,\n kernedWidth: kernedWidth,\n deltaY: style.deltaY,\n };\n if (charIndex > 0 && !skipLeft) {\n var previousBox = this.__charBounds[lineIndex][charIndex - 1];\n box.left = previousBox.left + previousBox.width + info.kernedWidth - info.width;\n }\n return box;\n },\n\n /**\n * Calculate height of line at 'lineIndex'\n * @param {Number} lineIndex index of line to calculate\n * @return {Number}\n */\n getHeightOfLine: function(lineIndex) {\n if (this.__lineHeights[lineIndex]) {\n return this.__lineHeights[lineIndex];\n }\n\n var line = this._textLines[lineIndex],\n // char 0 is measured before the line cycle because it nneds to char\n // emptylines\n maxHeight = this.getHeightOfChar(lineIndex, 0);\n for (var i = 1, len = line.length; i < len; i++) {\n maxHeight = Math.max(this.getHeightOfChar(lineIndex, i), maxHeight);\n }\n\n return this.__lineHeights[lineIndex] = maxHeight * this.lineHeight * this._fontSizeMult;\n },\n\n /**\n * Calculate text box height\n */\n calcTextHeight: function() {\n var lineHeight, height = 0;\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n lineHeight = this.getHeightOfLine(i);\n height += (i === len - 1 ? lineHeight / this.lineHeight : lineHeight);\n }\n return height;\n },\n\n /**\n * @private\n * @return {Number} Left offset\n */\n _getLeftOffset: function() {\n return -this.width / 2;\n },\n\n /**\n * @private\n * @return {Number} Top offset\n */\n _getTopOffset: function() {\n return -this.height / 2;\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Object} filler fabric.Pattern or fabric.Gradient\n * @return {Object} offset.offsetX offset for text rendering\n * @return {Object} offset.offsetY offset for text rendering\n */\n _applyPatternGradientTransform: function(ctx, filler) {\n if (!filler || !filler.toLive) {\n return { offsetX: 0, offsetY: 0 };\n }\n var offsetX = -this.width / 2 + filler.offsetX || 0,\n offsetY = -this.height / 2 + filler.offsetY || 0;\n\n ctx.transform(1, 0, 0, 1, offsetX, offsetY);\n return { offsetX: offsetX, offsetY: offsetY };\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {String} method Method name (\"fillText\" or \"strokeText\")\n */\n _renderTextCommon: function(ctx, method) {\n ctx.save();\n var lineHeights = 0, left = this._getLeftOffset(), top = this._getTopOffset(),\n offsets = this._applyPatternGradientTransform(ctx, method === 'fillText' ? this.fill : this.stroke);\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n var heightOfLine = this.getHeightOfLine(i),\n maxHeight = heightOfLine / this.lineHeight,\n leftOffset = this._getLineLeftOffset(i);\n this._renderTextLine(\n method,\n ctx,\n this._textLines[i],\n left + leftOffset - offsets.offsetX,\n top + lineHeights + maxHeight - offsets.offsetY,\n i\n );\n lineHeights += heightOfLine;\n }\n ctx.restore();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextFill: function(ctx) {\n if (!this.fill && !this.styleHas('fill')) {\n return;\n }\n\n this._renderTextCommon(ctx, 'fillText');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextStroke: function(ctx) {\n if ((!this.stroke || this.strokeWidth === 0) && this.isEmptyStyles()) {\n return;\n }\n\n if (this.shadow && !this.shadow.affectStroke) {\n this._removeShadow(ctx);\n }\n\n ctx.save();\n this._setLineDash(ctx, this.strokeDashArray);\n ctx.beginPath();\n this._renderTextCommon(ctx, 'strokeText');\n ctx.closePath();\n ctx.restore();\n },\n\n /**\n * @private\n * @param {String} method\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {String} line Content of the line\n * @param {Number} left\n * @param {Number} top\n * @param {Number} lineIndex\n * @param {Number} charOffset\n */\n _renderChars: function(method, ctx, line, left, top, lineIndex) {\n // set proper line offset\n var lineHeight = this.getHeightOfLine(lineIndex),\n isJustify = this.textAlign.indexOf('justify') !== -1,\n actualStyle,\n nextStyle,\n charsToRender = '',\n charBox,\n boxWidth = 0,\n timeToRender,\n shortCut = !isJustify && this.charSpacing === 0 && this.isEmptyStyles(lineIndex);\n\n ctx.save();\n top -= lineHeight * this._fontSizeFraction / this.lineHeight;\n if (shortCut) {\n // render all the line in one pass without checking\n this._renderChar(method, ctx, lineIndex, 0, this.textLines[lineIndex], left, top, lineHeight);\n ctx.restore();\n return;\n }\n for (var i = 0, len = line.length - 1; i <= len; i++) {\n timeToRender = i === len || this.charSpacing;\n charsToRender += line[i];\n charBox = this.__charBounds[lineIndex][i];\n if (boxWidth === 0) {\n left += charBox.kernedWidth - charBox.width;\n boxWidth += charBox.width;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n if (isJustify && !timeToRender) {\n if (this._reSpaceAndTab.test(line[i])) {\n timeToRender = true;\n }\n }\n if (!timeToRender) {\n // if we have charSpacing, we render char by char\n actualStyle = actualStyle || this.getCompleteStyleDeclaration(lineIndex, i);\n nextStyle = this.getCompleteStyleDeclaration(lineIndex, i + 1);\n timeToRender = this._hasStyleChanged(actualStyle, nextStyle);\n }\n if (timeToRender) {\n this._renderChar(method, ctx, lineIndex, i, charsToRender, left, top, lineHeight);\n charsToRender = '';\n actualStyle = nextStyle;\n left += boxWidth;\n boxWidth = 0;\n }\n }\n ctx.restore();\n },\n\n /**\n * @private\n * @param {String} method\n * @param {CanvasRenderingContext2D} ctx Context to render on\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {String} _char\n * @param {Number} left Left coordinate\n * @param {Number} top Top coordinate\n * @param {Number} lineHeight Height of the line\n */\n _renderChar: function(method, ctx, lineIndex, charIndex, _char, left, top) {\n var decl = this._getStyleDeclaration(lineIndex, charIndex),\n fullDecl = this.getCompleteStyleDeclaration(lineIndex, charIndex),\n shouldFill = method === 'fillText' && fullDecl.fill,\n shouldStroke = method === 'strokeText' && fullDecl.stroke && fullDecl.strokeWidth;\n\n if (!shouldStroke && !shouldFill) {\n return;\n }\n decl && ctx.save();\n\n this._applyCharStyles(method, ctx, lineIndex, charIndex, fullDecl);\n\n if (decl && decl.textBackgroundColor) {\n this._removeShadow(ctx);\n }\n if (decl && decl.deltaY) {\n top += decl.deltaY;\n }\n\n shouldFill && ctx.fillText(_char, left, top);\n shouldStroke && ctx.strokeText(_char, left, top);\n decl && ctx.restore();\n },\n\n /**\n * Turns the character into a 'superior figure' (i.e. 'superscript')\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n setSuperscript: function(start, end) {\n return this._setScript(start, end, this.superscript);\n },\n\n /**\n * Turns the character into an 'inferior figure' (i.e. 'subscript')\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n setSubscript: function(start, end) {\n return this._setScript(start, end, this.subscript);\n },\n\n /**\n * Applies 'schema' at given position\n * @private\n * @param {Number} start selection start\n * @param {Number} end selection end\n * @param {Number} schema\n * @returns {fabric.Text} thisArg\n * @chainable\n */\n _setScript: function(start, end, schema) {\n var loc = this.get2DCursorLocation(start, true),\n fontSize = this.getValueOfPropertyAt(loc.lineIndex, loc.charIndex, 'fontSize'),\n dy = this.getValueOfPropertyAt(loc.lineIndex, loc.charIndex, 'deltaY'),\n style = { fontSize: fontSize * schema.size, deltaY: dy + fontSize * schema.baseline };\n this.setSelectionStyles(style, start, end);\n return this;\n },\n\n /**\n * @private\n * @param {Object} prevStyle\n * @param {Object} thisStyle\n */\n _hasStyleChanged: function(prevStyle, thisStyle) {\n return prevStyle.fill !== thisStyle.fill ||\n prevStyle.stroke !== thisStyle.stroke ||\n prevStyle.strokeWidth !== thisStyle.strokeWidth ||\n prevStyle.fontSize !== thisStyle.fontSize ||\n prevStyle.fontFamily !== thisStyle.fontFamily ||\n prevStyle.fontWeight !== thisStyle.fontWeight ||\n prevStyle.fontStyle !== thisStyle.fontStyle ||\n prevStyle.deltaY !== thisStyle.deltaY;\n },\n\n /**\n * @private\n * @param {Object} prevStyle\n * @param {Object} thisStyle\n */\n _hasStyleChangedForSvg: function(prevStyle, thisStyle) {\n return this._hasStyleChanged(prevStyle, thisStyle) ||\n prevStyle.overline !== thisStyle.overline ||\n prevStyle.underline !== thisStyle.underline ||\n prevStyle.linethrough !== thisStyle.linethrough;\n },\n\n /**\n * @private\n * @param {Number} lineIndex index text line\n * @return {Number} Line left offset\n */\n _getLineLeftOffset: function(lineIndex) {\n var lineWidth = this.getLineWidth(lineIndex);\n if (this.textAlign === 'center') {\n return (this.width - lineWidth) / 2;\n }\n if (this.textAlign === 'right') {\n return this.width - lineWidth;\n }\n if (this.textAlign === 'justify-center' && this.isEndOfWrapping(lineIndex)) {\n return (this.width - lineWidth) / 2;\n }\n if (this.textAlign === 'justify-right' && this.isEndOfWrapping(lineIndex)) {\n return this.width - lineWidth;\n }\n return 0;\n },\n\n /**\n * @private\n */\n _clearCache: function() {\n this.__lineWidths = [];\n this.__lineHeights = [];\n this.__charBounds = [];\n },\n\n /**\n * @private\n */\n _shouldClearDimensionCache: function() {\n var shouldClear = this._forceClearCache;\n shouldClear || (shouldClear = this.hasStateChanged('_dimensionAffectingProps'));\n if (shouldClear) {\n this.dirty = true;\n this._forceClearCache = false;\n }\n return shouldClear;\n },\n\n /**\n * Measure a single line given its index. Used to calculate the initial\n * text bounding box. The values are calculated and stored in __lineWidths cache.\n * @private\n * @param {Number} lineIndex line number\n * @return {Number} Line width\n */\n getLineWidth: function(lineIndex) {\n if (this.__lineWidths[lineIndex]) {\n return this.__lineWidths[lineIndex];\n }\n\n var width, line = this._textLines[lineIndex], lineInfo;\n\n if (line === '') {\n width = 0;\n }\n else {\n lineInfo = this.measureLine(lineIndex);\n width = lineInfo.width;\n }\n this.__lineWidths[lineIndex] = width;\n return width;\n },\n\n _getWidthOfCharSpacing: function() {\n if (this.charSpacing !== 0) {\n return this.fontSize * this.charSpacing / 1000;\n }\n return 0;\n },\n\n /**\n * Retrieves the value of property at given character position\n * @param {Number} lineIndex the line number\n * @param {Number} charIndex the charater number\n * @param {String} property the property name\n * @returns the value of 'property'\n */\n getValueOfPropertyAt: function(lineIndex, charIndex, property) {\n var charStyle = this._getStyleDeclaration(lineIndex, charIndex);\n if (charStyle && typeof charStyle[property] !== 'undefined') {\n return charStyle[property];\n }\n return this[property];\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _renderTextDecoration: function(ctx, type) {\n if (!this[type] && !this.styleHas(type)) {\n return;\n }\n var heightOfLine, size, _size,\n lineLeftOffset, dy, _dy,\n line, lastDecoration,\n leftOffset = this._getLeftOffset(),\n topOffset = this._getTopOffset(), top,\n boxStart, boxWidth, charBox, currentDecoration,\n maxHeight, currentFill, lastFill,\n charSpacing = this._getWidthOfCharSpacing();\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n heightOfLine = this.getHeightOfLine(i);\n if (!this[type] && !this.styleHas(type, i)) {\n topOffset += heightOfLine;\n continue;\n }\n line = this._textLines[i];\n maxHeight = heightOfLine / this.lineHeight;\n lineLeftOffset = this._getLineLeftOffset(i);\n boxStart = 0;\n boxWidth = 0;\n lastDecoration = this.getValueOfPropertyAt(i, 0, type);\n lastFill = this.getValueOfPropertyAt(i, 0, 'fill');\n top = topOffset + maxHeight * (1 - this._fontSizeFraction);\n size = this.getHeightOfChar(i, 0);\n dy = this.getValueOfPropertyAt(i, 0, 'deltaY');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentDecoration = this.getValueOfPropertyAt(i, j, type);\n currentFill = this.getValueOfPropertyAt(i, j, 'fill');\n _size = this.getHeightOfChar(i, j);\n _dy = this.getValueOfPropertyAt(i, j, 'deltaY');\n if ((currentDecoration !== lastDecoration || currentFill !== lastFill || _size !== size || _dy !== dy) &&\n boxWidth > 0) {\n ctx.fillStyle = lastFill;\n lastDecoration && lastFill && ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n top + this.offsets[type] * size + dy,\n boxWidth,\n this.fontSize / 15\n );\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastDecoration = currentDecoration;\n lastFill = currentFill;\n size = _size;\n dy = _dy;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n ctx.fillStyle = currentFill;\n currentDecoration && currentFill && ctx.fillRect(\n leftOffset + lineLeftOffset + boxStart,\n top + this.offsets[type] * size + dy,\n boxWidth - charSpacing,\n this.fontSize / 15\n );\n topOffset += heightOfLine;\n }\n // if there is text background color no\n // other shadows should be casted\n this._removeShadow(ctx);\n },\n\n /**\n * return font declaration string for canvas context\n * @param {Object} [styleObject] object\n * @returns {String} font declaration formatted for canvas context.\n */\n _getFontDeclaration: function(styleObject, forMeasuring) {\n var style = styleObject || this, family = this.fontFamily,\n fontIsGeneric = fabric.Text.genericFonts.indexOf(family.toLowerCase()) > -1;\n var fontFamily = family === undefined ||\n family.indexOf('\\'') > -1 || family.indexOf(',') > -1 ||\n family.indexOf('\"') > -1 || fontIsGeneric\n ? style.fontFamily : '\"' + style.fontFamily + '\"';\n return [\n // node-canvas needs \"weight style\", while browsers need \"style weight\"\n // verify if this can be fixed in JSDOM\n (fabric.isLikelyNode ? style.fontWeight : style.fontStyle),\n (fabric.isLikelyNode ? style.fontStyle : style.fontWeight),\n forMeasuring ? this.CACHE_FONT_SIZE + 'px' : style.fontSize + 'px',\n fontFamily\n ].join(' ');\n },\n\n /**\n * Renders text instance on a specified context\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n // do not render if object is not visible\n if (!this.visible) {\n return;\n }\n if (this.canvas && this.canvas.skipOffscreen && !this.group && !this.isOnScreen()) {\n return;\n }\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n }\n this.callSuper('render', ctx);\n },\n\n /**\n * Returns the text as an array of lines.\n * @param {String} text text to split\n * @returns {Array} Lines in the text\n */\n _splitTextIntoLines: function(text) {\n var lines = text.split(this._reNewline),\n newLines = new Array(lines.length),\n newLine = ['\\n'],\n newText = [];\n for (var i = 0; i < lines.length; i++) {\n newLines[i] = fabric.util.string.graphemeSplit(lines[i]);\n newText = newText.concat(newLines[i], newLine);\n }\n newText.pop();\n return { _unwrappedLines: newLines, lines: lines, graphemeText: newText, graphemeLines: newLines };\n },\n\n /**\n * Returns object representation of an instance\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} Object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n var additionalProperties = [\n 'text',\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontStyle',\n 'lineHeight',\n 'underline',\n 'overline',\n 'linethrough',\n 'textAlign',\n 'textBackgroundColor',\n 'charSpacing',\n ].concat(propertiesToInclude);\n var obj = this.callSuper('toObject', additionalProperties);\n obj.styles = clone(this.styles, true);\n return obj;\n },\n\n /**\n * Sets property to a given value. When changing position/dimension -related properties (left, top, scale, angle, etc.) `set` does not update position of object's borders/controls. If you need to update those, call `setCoords()`.\n * @param {String|Object} key Property name or object (if object, iterate over the object properties)\n * @param {Object|Function} value Property value (if function, the value is passed into it and its return value is used as a new one)\n * @return {fabric.Object} thisArg\n * @chainable\n */\n set: function(key, value) {\n this.callSuper('set', key, value);\n var needsDims = false;\n if (typeof key === 'object') {\n for (var _key in key) {\n needsDims = needsDims || this._dimensionAffectingProps.indexOf(_key) !== -1;\n }\n }\n else {\n needsDims = this._dimensionAffectingProps.indexOf(key) !== -1;\n }\n if (needsDims) {\n this.initDimensions();\n this.setCoords();\n }\n return this;\n },\n\n /**\n * Returns complexity of an instance\n * @return {Number} complexity\n */\n complexity: function() {\n return 1;\n }\n });\n\n /* _FROM_SVG_START_ */\n /**\n * List of attribute names to account for when parsing SVG element (used by {@link fabric.Text.fromElement})\n * @static\n * @memberOf fabric.Text\n * @see: http://www.w3.org/TR/SVG/text.html#TextElement\n */\n fabric.Text.ATTRIBUTE_NAMES = fabric.SHARED_ATTRIBUTES.concat(\n 'x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor'.split(' '));\n\n /**\n * Default SVG font size\n * @static\n * @memberOf fabric.Text\n */\n fabric.Text.DEFAULT_SVG_FONT_SIZE = 16;\n\n /**\n * Returns fabric.Text instance from an SVG element (not yet implemented)\n * @static\n * @memberOf fabric.Text\n * @param {SVGElement} element Element to parse\n * @param {Function} callback callback function invoked after parsing\n * @param {Object} [options] Options object\n */\n fabric.Text.fromElement = function(element, callback, options) {\n if (!element) {\n return callback(null);\n }\n\n var parsedAttributes = fabric.parseAttributes(element, fabric.Text.ATTRIBUTE_NAMES),\n parsedAnchor = parsedAttributes.textAnchor || 'left';\n options = fabric.util.object.extend((options ? clone(options) : { }), parsedAttributes);\n\n options.top = options.top || 0;\n options.left = options.left || 0;\n if (parsedAttributes.textDecoration) {\n var textDecoration = parsedAttributes.textDecoration;\n if (textDecoration.indexOf('underline') !== -1) {\n options.underline = true;\n }\n if (textDecoration.indexOf('overline') !== -1) {\n options.overline = true;\n }\n if (textDecoration.indexOf('line-through') !== -1) {\n options.linethrough = true;\n }\n delete options.textDecoration;\n }\n if ('dx' in parsedAttributes) {\n options.left += parsedAttributes.dx;\n }\n if ('dy' in parsedAttributes) {\n options.top += parsedAttributes.dy;\n }\n if (!('fontSize' in options)) {\n options.fontSize = fabric.Text.DEFAULT_SVG_FONT_SIZE;\n }\n\n var textContent = '';\n\n // The XML is not properly parsed in IE9 so a workaround to get\n // textContent is through firstChild.data. Another workaround would be\n // to convert XML loaded from a file to be converted using DOMParser (same way loadSVGFromString() does)\n if (!('textContent' in element)) {\n if ('firstChild' in element && element.firstChild !== null) {\n if ('data' in element.firstChild && element.firstChild.data !== null) {\n textContent = element.firstChild.data;\n }\n }\n }\n else {\n textContent = element.textContent;\n }\n\n textContent = textContent.replace(/^\\s+|\\s+$|\\n+/g, '').replace(/\\s+/g, ' ');\n var originalStrokeWidth = options.strokeWidth;\n options.strokeWidth = 0;\n\n var text = new fabric.Text(textContent, options),\n textHeightScaleFactor = text.getScaledHeight() / text.height,\n lineHeightDiff = (text.height + text.strokeWidth) * text.lineHeight - text.height,\n scaledDiff = lineHeightDiff * textHeightScaleFactor,\n textHeight = text.getScaledHeight() + scaledDiff,\n offX = 0;\n /*\n Adjust positioning:\n x/y attributes in SVG correspond to the bottom-left corner of text bounding box\n fabric output by default at top, left.\n */\n if (parsedAnchor === 'center') {\n offX = text.getScaledWidth() / 2;\n }\n if (parsedAnchor === 'right') {\n offX = text.getScaledWidth();\n }\n text.set({\n left: text.left - offX,\n top: text.top - (textHeight - text.fontSize * (0.07 + text._fontSizeFraction)) / text.lineHeight,\n strokeWidth: typeof originalStrokeWidth !== 'undefined' ? originalStrokeWidth : 1,\n });\n callback(text);\n };\n /* _FROM_SVG_END_ */\n\n /**\n * Returns fabric.Text instance from an object representation\n * @static\n * @memberOf fabric.Text\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Text instance is created\n */\n fabric.Text.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Text', object, callback, 'text');\n };\n\n fabric.Text.genericFonts = ['sans-serif', 'serif', 'cursive', 'fantasy', 'monospace'];\n\n fabric.util.createAccessors && fabric.util.createAccessors(fabric.Text);\n\n})(typeof exports !== 'undefined' ? exports : this);\n\n\n(function() {\n fabric.util.object.extend(fabric.Text.prototype, /** @lends fabric.Text.prototype */ {\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles: function(lineIndex) {\n if (!this.styles) {\n return true;\n }\n if (typeof lineIndex !== 'undefined' && !this.styles[lineIndex]) {\n return true;\n }\n var obj = typeof lineIndex === 'undefined' ? this.styles : { line: this.styles[lineIndex] };\n for (var p1 in obj) {\n for (var p2 in obj[p1]) {\n // eslint-disable-next-line no-unused-vars\n for (var p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n return true;\n },\n\n /**\n * Returns true if object has a style property or has it ina specified line\n * This function is used to detect if a text will use a particular property or not.\n * @param {String} property to check for\n * @param {Number} lineIndex to check the style on\n * @return {Boolean}\n */\n styleHas: function(property, lineIndex) {\n if (!this.styles || !property || property === '') {\n return false;\n }\n if (typeof lineIndex !== 'undefined' && !this.styles[lineIndex]) {\n return false;\n }\n var obj = typeof lineIndex === 'undefined' ? this.styles : { 0: this.styles[lineIndex] };\n // eslint-disable-next-line\n for (var p1 in obj) {\n // eslint-disable-next-line\n for (var p2 in obj[p1]) {\n if (typeof obj[p1][p2][property] !== 'undefined') {\n return true;\n }\n }\n }\n return false;\n },\n\n /**\n * Check if characters in a text have a value for a property\n * whose value matches the textbox's value for that property. If so,\n * the character-level property is deleted. If the character\n * has no other properties, then it is also deleted. Finally,\n * if the line containing that character has no other characters\n * then it also is deleted.\n *\n * @param {string} property The property to compare between characters and text.\n */\n cleanStyle: function(property) {\n if (!this.styles || !property || property === '') {\n return false;\n }\n var obj = this.styles, stylesCount = 0, letterCount, stylePropertyValue,\n allStyleObjectPropertiesMatch = true, graphemeCount = 0, styleObject;\n // eslint-disable-next-line\n for (var p1 in obj) {\n letterCount = 0;\n // eslint-disable-next-line\n for (var p2 in obj[p1]) {\n var styleObject = obj[p1][p2],\n stylePropertyHasBeenSet = styleObject.hasOwnProperty(property);\n\n stylesCount++;\n\n if (stylePropertyHasBeenSet) {\n if (!stylePropertyValue) {\n stylePropertyValue = styleObject[property];\n }\n else if (styleObject[property] !== stylePropertyValue) {\n allStyleObjectPropertiesMatch = false;\n }\n\n if (styleObject[property] === this[property]) {\n delete styleObject[property];\n }\n }\n else {\n allStyleObjectPropertiesMatch = false;\n }\n\n if (Object.keys(styleObject).length !== 0) {\n letterCount++;\n }\n else {\n delete obj[p1][p2];\n }\n }\n\n if (letterCount === 0) {\n delete obj[p1];\n }\n }\n // if every grapheme has the same style set then\n // delete those styles and set it on the parent\n for (var i = 0; i < this._textLines.length; i++) {\n graphemeCount += this._textLines[i].length;\n }\n if (allStyleObjectPropertiesMatch && stylesCount === graphemeCount) {\n this[property] = stylePropertyValue;\n this.removeStyle(property);\n }\n },\n\n /**\n * Remove a style property or properties from all individual character styles\n * in a text object. Deletes the character style object if it contains no other style\n * props. Deletes a line style object if it contains no other character styles.\n *\n * @param {String} props The property to remove from character styles.\n */\n removeStyle: function(property) {\n if (!this.styles || !property || property === '') {\n return;\n }\n var obj = this.styles, line, lineNum, charNum;\n for (lineNum in obj) {\n line = obj[lineNum];\n for (charNum in line) {\n delete line[charNum][property];\n if (Object.keys(line[charNum]).length === 0) {\n delete line[charNum];\n }\n }\n if (Object.keys(line).length === 0) {\n delete obj[lineNum];\n }\n }\n },\n\n /**\n * @private\n */\n _extendStyles: function(index, styles) {\n var loc = this.get2DCursorLocation(index);\n\n if (!this._getLineStyle(loc.lineIndex)) {\n this._setLineStyle(loc.lineIndex);\n }\n\n if (!this._getStyleDeclaration(loc.lineIndex, loc.charIndex)) {\n this._setStyleDeclaration(loc.lineIndex, loc.charIndex, {});\n }\n\n fabric.util.object.extend(this._getStyleDeclaration(loc.lineIndex, loc.charIndex), styles);\n },\n\n /**\n * Returns 2d representation (lineIndex and charIndex) of cursor (or selection start)\n * @param {Number} [selectionStart] Optional index. When not given, current selectionStart is used.\n * @param {Boolean} [skipWrapping] consider the location for unwrapped lines. usefull to manage styles.\n */\n get2DCursorLocation: function(selectionStart, skipWrapping) {\n if (typeof selectionStart === 'undefined') {\n selectionStart = this.selectionStart;\n }\n var lines = skipWrapping ? this._unwrappedTextLines : this._textLines,\n len = lines.length;\n for (var i = 0; i < len; i++) {\n if (selectionStart <= lines[i].length) {\n return {\n lineIndex: i,\n charIndex: selectionStart\n };\n }\n selectionStart -= lines[i].length + this.missingNewlineOffset(i);\n }\n return {\n lineIndex: i - 1,\n charIndex: lines[i - 1].length < selectionStart ? lines[i - 1].length : selectionStart\n };\n },\n\n /**\n * Gets style of a current selection/cursor (at the start position)\n * if startIndex or endIndex are not provided, slectionStart or selectionEnd will be used.\n * @param {Number} [startIndex] Start index to get styles at\n * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1\n * @param {Boolean} [complete] get full style or not\n * @return {Array} styles an array with one, zero or more Style objects\n */\n getSelectionStyles: function(startIndex, endIndex, complete) {\n if (typeof startIndex === 'undefined') {\n startIndex = this.selectionStart || 0;\n }\n if (typeof endIndex === 'undefined') {\n endIndex = this.selectionEnd || startIndex;\n }\n var styles = [];\n for (var i = startIndex; i < endIndex; i++) {\n styles.push(this.getStyleAtPosition(i, complete));\n }\n return styles;\n },\n\n /**\n * Gets style of a current selection/cursor position\n * @param {Number} position to get styles at\n * @param {Boolean} [complete] full style if true\n * @return {Object} style Style object at a specified index\n * @private\n */\n getStyleAtPosition: function(position, complete) {\n var loc = this.get2DCursorLocation(position),\n style = complete ? this.getCompleteStyleDeclaration(loc.lineIndex, loc.charIndex) :\n this._getStyleDeclaration(loc.lineIndex, loc.charIndex);\n return style || {};\n },\n\n /**\n * Sets style of a current selection, if no selection exist, do not set anything.\n * @param {Object} [styles] Styles object\n * @param {Number} [startIndex] Start index to get styles at\n * @param {Number} [endIndex] End index to get styles at, if not specified selectionEnd or startIndex + 1\n * @return {fabric.IText} thisArg\n * @chainable\n */\n setSelectionStyles: function(styles, startIndex, endIndex) {\n if (typeof startIndex === 'undefined') {\n startIndex = this.selectionStart || 0;\n }\n if (typeof endIndex === 'undefined') {\n endIndex = this.selectionEnd || startIndex;\n }\n for (var i = startIndex; i < endIndex; i++) {\n this._extendStyles(i, styles);\n }\n /* not included in _extendStyles to avoid clearing cache more than once */\n this._forceClearCache = true;\n return this;\n },\n\n /**\n * get the reference, not a clone, of the style object for a given character\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Object} style object\n */\n _getStyleDeclaration: function(lineIndex, charIndex) {\n var lineStyle = this.styles && this.styles[lineIndex];\n if (!lineStyle) {\n return null;\n }\n return lineStyle[charIndex];\n },\n\n /**\n * return a new object that contains all the style property for a character\n * the object returned is newly created\n * @param {Number} lineIndex of the line where the character is\n * @param {Number} charIndex position of the character on the line\n * @return {Object} style object\n */\n getCompleteStyleDeclaration: function(lineIndex, charIndex) {\n var style = this._getStyleDeclaration(lineIndex, charIndex) || { },\n styleObject = { }, prop;\n for (var i = 0; i < this._styleProperties.length; i++) {\n prop = this._styleProperties[i];\n styleObject[prop] = typeof style[prop] === 'undefined' ? this[prop] : style[prop];\n }\n return styleObject;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n _setStyleDeclaration: function(lineIndex, charIndex, style) {\n this.styles[lineIndex][charIndex] = style;\n },\n\n /**\n *\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _deleteStyleDeclaration: function(lineIndex, charIndex) {\n delete this.styles[lineIndex][charIndex];\n },\n\n /**\n * @param {Number} lineIndex\n * @return {Boolean} if the line exists or not\n * @private\n */\n _getLineStyle: function(lineIndex) {\n return !!this.styles[lineIndex];\n },\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @private\n */\n _setLineStyle: function(lineIndex) {\n this.styles[lineIndex] = {};\n },\n\n /**\n * @param {Number} lineIndex\n * @private\n */\n _deleteLineStyle: function(lineIndex) {\n delete this.styles[lineIndex];\n }\n });\n})();\n\n\n(function() {\n\n function parseDecoration(object) {\n if (object.textDecoration) {\n object.textDecoration.indexOf('underline') > -1 && (object.underline = true);\n object.textDecoration.indexOf('line-through') > -1 && (object.linethrough = true);\n object.textDecoration.indexOf('overline') > -1 && (object.overline = true);\n delete object.textDecoration;\n }\n }\n\n /**\n * IText class (introduced in v1.4) Events are also fired with \"text:\"\n * prefix when observing canvas.\n * @class fabric.IText\n * @extends fabric.Text\n * @mixes fabric.Observable\n *\n * @fires changed\n * @fires selection:changed\n * @fires editing:entered\n * @fires editing:exited\n *\n * @return {fabric.IText} thisArg\n * @see {@link fabric.IText#initialize} for constructor definition\n *\n *

Supported key combinations:

\n *
\n   *   Move cursor:                    left, right, up, down\n   *   Select character:               shift + left, shift + right\n   *   Select text vertically:         shift + up, shift + down\n   *   Move cursor by word:            alt + left, alt + right\n   *   Select words:                   shift + alt + left, shift + alt + right\n   *   Move cursor to line start/end:  cmd + left, cmd + right or home, end\n   *   Select till start/end of line:  cmd + shift + left, cmd + shift + right or shift + home, shift + end\n   *   Jump to start/end of text:      cmd + up, cmd + down\n   *   Select till start/end of text:  cmd + shift + up, cmd + shift + down or shift + pgUp, shift + pgDown\n   *   Delete character:               backspace\n   *   Delete word:                    alt + backspace\n   *   Delete line:                    cmd + backspace\n   *   Forward delete:                 delete\n   *   Copy text:                      ctrl/cmd + c\n   *   Paste text:                     ctrl/cmd + v\n   *   Cut text:                       ctrl/cmd + x\n   *   Select entire text:             ctrl/cmd + a\n   *   Quit editing                    tab or esc\n   * 
\n *\n *

Supported mouse/touch combination

\n *
\n   *   Position cursor:                click/touch\n   *   Create selection:               click/touch & drag\n   *   Create selection:               click & shift + click\n   *   Select word:                    double click\n   *   Select line:                    triple click\n   * 
\n */\n fabric.IText = fabric.util.createClass(fabric.Text, fabric.Observable, /** @lends fabric.IText.prototype */ {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'i-text',\n\n /**\n * Index where text selection starts (or where cursor is when there is no selection)\n * @type Number\n * @default\n */\n selectionStart: 0,\n\n /**\n * Index where text selection ends\n * @type Number\n * @default\n */\n selectionEnd: 0,\n\n /**\n * Color of text selection\n * @type String\n * @default\n */\n selectionColor: 'rgba(17,119,255,0.3)',\n\n /**\n * Indicates whether text is in editing mode\n * @type Boolean\n * @default\n */\n isEditing: false,\n\n /**\n * Indicates whether a text can be edited\n * @type Boolean\n * @default\n */\n editable: true,\n\n /**\n * Border color of text object while it's in editing mode\n * @type String\n * @default\n */\n editingBorderColor: 'rgba(102,153,255,0.25)',\n\n /**\n * Width of cursor (in px)\n * @type Number\n * @default\n */\n cursorWidth: 2,\n\n /**\n * Color of default cursor (when not overwritten by character style)\n * @type String\n * @default\n */\n cursorColor: '#333',\n\n /**\n * Delay between cursor blink (in ms)\n * @type Number\n * @default\n */\n cursorDelay: 1000,\n\n /**\n * Duration of cursor fadein (in ms)\n * @type Number\n * @default\n */\n cursorDuration: 600,\n\n /**\n * Indicates whether internal text char widths can be cached\n * @type Boolean\n * @default\n */\n caching: true,\n\n /**\n * @private\n */\n _reSpace: /\\s|\\n/,\n\n /**\n * @private\n */\n _currentCursorOpacity: 0,\n\n /**\n * @private\n */\n _selectionDirection: null,\n\n /**\n * @private\n */\n _abortCursorAnimation: false,\n\n /**\n * @private\n */\n __widthOfSpace: [],\n\n /**\n * Helps determining when the text is in composition, so that the cursor\n * rendering is altered.\n */\n inCompositionMode: false,\n\n /**\n * Constructor\n * @param {String} text Text string\n * @param {Object} [options] Options object\n * @return {fabric.IText} thisArg\n */\n initialize: function(text, options) {\n this.callSuper('initialize', text, options);\n this.initBehavior();\n },\n\n /**\n * Sets selection start (left boundary of a selection)\n * @param {Number} index Index to set selection start to\n */\n setSelectionStart: function(index) {\n index = Math.max(index, 0);\n this._updateAndFire('selectionStart', index);\n },\n\n /**\n * Sets selection end (right boundary of a selection)\n * @param {Number} index Index to set selection end to\n */\n setSelectionEnd: function(index) {\n index = Math.min(index, this.text.length);\n this._updateAndFire('selectionEnd', index);\n },\n\n /**\n * @private\n * @param {String} property 'selectionStart' or 'selectionEnd'\n * @param {Number} index new position of property\n */\n _updateAndFire: function(property, index) {\n if (this[property] !== index) {\n this._fireSelectionChanged();\n this[property] = index;\n }\n this._updateTextarea();\n },\n\n /**\n * Fires the even of selection changed\n * @private\n */\n _fireSelectionChanged: function() {\n this.fire('selection:changed');\n this.canvas && this.canvas.fire('text:selection:changed', { target: this });\n },\n\n /**\n * Initialize text dimensions. Render all text on given context\n * or on a offscreen canvas to get the text width with measureText.\n * Updates this.width and this.height with the proper values.\n * Does not return dimensions.\n * @private\n */\n initDimensions: function() {\n this.isEditing && this.initDelayedCursor();\n this.clearContextTop();\n this.callSuper('initDimensions');\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n render: function(ctx) {\n this.clearContextTop();\n this.callSuper('render', ctx);\n // clear the cursorOffsetCache, so we ensure to calculate once per renderCursor\n // the correct position but not at every cursor animation.\n this.cursorOffsetCache = { };\n this.renderCursorOrSelection();\n },\n\n /**\n * @private\n * @param {CanvasRenderingContext2D} ctx Context to render on\n */\n _render: function(ctx) {\n this.callSuper('_render', ctx);\n },\n\n /**\n * Prepare and clean the contextTop\n */\n clearContextTop: function(skipRestore) {\n if (!this.isEditing || !this.canvas || !this.canvas.contextTop) {\n return;\n }\n var ctx = this.canvas.contextTop, v = this.canvas.viewportTransform;\n ctx.save();\n ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);\n this.transform(ctx);\n this.transformMatrix && ctx.transform.apply(ctx, this.transformMatrix);\n this._clearTextArea(ctx);\n skipRestore || ctx.restore();\n },\n\n /**\n * Renders cursor or selection (depending on what exists)\n * it does on the contextTop. If contextTop is not available, do nothing.\n */\n renderCursorOrSelection: function() {\n if (!this.isEditing || !this.canvas || !this.canvas.contextTop) {\n return;\n }\n var boundaries = this._getCursorBoundaries(),\n ctx = this.canvas.contextTop;\n this.clearContextTop(true);\n if (this.selectionStart === this.selectionEnd) {\n this.renderCursor(boundaries, ctx);\n }\n else {\n this.renderSelection(boundaries, ctx);\n }\n ctx.restore();\n },\n\n _clearTextArea: function(ctx) {\n // we add 4 pixel, to be sure to do not leave any pixel out\n var width = this.width + 4, height = this.height + 4;\n ctx.clearRect(-width / 2, -height / 2, width, height);\n },\n\n /**\n * Returns cursor boundaries (left, top, leftOffset, topOffset)\n * @private\n * @param {Array} chars Array of characters\n * @param {String} typeOfBoundaries\n */\n _getCursorBoundaries: function(position) {\n\n // left/top are left/top of entire text box\n // leftOffset/topOffset are offset from that left/top point of a text box\n\n if (typeof position === 'undefined') {\n position = this.selectionStart;\n }\n\n var left = this._getLeftOffset(),\n top = this._getTopOffset(),\n offsets = this._getCursorBoundariesOffsets(position);\n\n return {\n left: left,\n top: top,\n leftOffset: offsets.left,\n topOffset: offsets.top\n };\n },\n\n /**\n * @private\n */\n _getCursorBoundariesOffsets: function(position) {\n if (this.cursorOffsetCache && 'top' in this.cursorOffsetCache) {\n return this.cursorOffsetCache;\n }\n var lineLeftOffset,\n lineIndex,\n charIndex,\n topOffset = 0,\n leftOffset = 0,\n boundaries,\n cursorPosition = this.get2DCursorLocation(position);\n charIndex = cursorPosition.charIndex;\n lineIndex = cursorPosition.lineIndex;\n for (var i = 0; i < lineIndex; i++) {\n topOffset += this.getHeightOfLine(i);\n }\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n var bound = this.__charBounds[lineIndex][charIndex];\n bound && (leftOffset = bound.left);\n if (this.charSpacing !== 0 && charIndex === this._textLines[lineIndex].length) {\n leftOffset -= this._getWidthOfCharSpacing();\n }\n boundaries = {\n top: topOffset,\n left: lineLeftOffset + (leftOffset > 0 ? leftOffset : 0),\n };\n this.cursorOffsetCache = boundaries;\n return this.cursorOffsetCache;\n },\n\n /**\n * Renders cursor\n * @param {Object} boundaries\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\n */\n renderCursor: function(boundaries, ctx) {\n var cursorLocation = this.get2DCursorLocation(),\n lineIndex = cursorLocation.lineIndex,\n charIndex = cursorLocation.charIndex > 0 ? cursorLocation.charIndex - 1 : 0,\n charHeight = this.getValueOfPropertyAt(lineIndex, charIndex, 'fontSize'),\n multiplier = this.scaleX * this.canvas.getZoom(),\n cursorWidth = this.cursorWidth / multiplier,\n topOffset = boundaries.topOffset,\n dy = this.getValueOfPropertyAt(lineIndex, charIndex, 'deltaY');\n\n topOffset += (1 - this._fontSizeFraction) * this.getHeightOfLine(lineIndex) / this.lineHeight\n - charHeight * (1 - this._fontSizeFraction);\n\n if (this.inCompositionMode) {\n this.renderSelection(boundaries, ctx);\n }\n\n ctx.fillStyle = this.getValueOfPropertyAt(lineIndex, charIndex, 'fill');\n ctx.globalAlpha = this.__isMousedown ? 1 : this._currentCursorOpacity;\n ctx.fillRect(\n boundaries.left + boundaries.leftOffset - cursorWidth / 2,\n topOffset + boundaries.top + dy,\n cursorWidth,\n charHeight);\n },\n\n /**\n * Renders text selection\n * @param {Object} boundaries Object with left/top/leftOffset/topOffset\n * @param {CanvasRenderingContext2D} ctx transformed context to draw on\n */\n renderSelection: function(boundaries, ctx) {\n\n var selectionStart = this.inCompositionMode ? this.hiddenTextarea.selectionStart : this.selectionStart,\n selectionEnd = this.inCompositionMode ? this.hiddenTextarea.selectionEnd : this.selectionEnd,\n isJustify = this.textAlign.indexOf('justify') !== -1,\n start = this.get2DCursorLocation(selectionStart),\n end = this.get2DCursorLocation(selectionEnd),\n startLine = start.lineIndex,\n endLine = end.lineIndex,\n startChar = start.charIndex < 0 ? 0 : start.charIndex,\n endChar = end.charIndex < 0 ? 0 : end.charIndex;\n\n for (var i = startLine; i <= endLine; i++) {\n var lineOffset = this._getLineLeftOffset(i) || 0,\n lineHeight = this.getHeightOfLine(i),\n realLineHeight = 0, boxStart = 0, boxEnd = 0;\n\n if (i === startLine) {\n boxStart = this.__charBounds[startLine][startChar].left;\n }\n if (i >= startLine && i < endLine) {\n boxEnd = isJustify && !this.isEndOfWrapping(i) ? this.width : this.getLineWidth(i) || 5; // WTF is this 5?\n }\n else if (i === endLine) {\n if (endChar === 0) {\n boxEnd = this.__charBounds[endLine][endChar].left;\n }\n else {\n var charSpacing = this._getWidthOfCharSpacing();\n boxEnd = this.__charBounds[endLine][endChar - 1].left\n + this.__charBounds[endLine][endChar - 1].width - charSpacing;\n }\n }\n realLineHeight = lineHeight;\n if (this.lineHeight < 1 || (i === endLine && this.lineHeight > 1)) {\n lineHeight /= this.lineHeight;\n }\n if (this.inCompositionMode) {\n ctx.fillStyle = this.compositionColor || 'black';\n ctx.fillRect(\n boundaries.left + lineOffset + boxStart,\n boundaries.top + boundaries.topOffset + lineHeight,\n boxEnd - boxStart,\n 1);\n }\n else {\n ctx.fillStyle = this.selectionColor;\n ctx.fillRect(\n boundaries.left + lineOffset + boxStart,\n boundaries.top + boundaries.topOffset,\n boxEnd - boxStart,\n lineHeight);\n }\n\n\n boundaries.topOffset += realLineHeight;\n }\n },\n\n /**\n * High level function to know the height of the cursor.\n * the currentChar is the one that precedes the cursor\n * Returns fontSize of char at the current cursor\n * @return {Number} Character font size\n */\n getCurrentCharFontSize: function() {\n var cp = this._getCurrentCharIndex();\n return this.getValueOfPropertyAt(cp.l, cp.c, 'fontSize');\n },\n\n /**\n * High level function to know the color of the cursor.\n * the currentChar is the one that precedes the cursor\n * Returns color (fill) of char at the current cursor\n * @return {String} Character color (fill)\n */\n getCurrentCharColor: function() {\n var cp = this._getCurrentCharIndex();\n return this.getValueOfPropertyAt(cp.l, cp.c, 'fill');\n },\n\n /**\n * Returns the cursor position for the getCurrent.. functions\n * @private\n */\n _getCurrentCharIndex: function() {\n var cursorPosition = this.get2DCursorLocation(this.selectionStart, true),\n charIndex = cursorPosition.charIndex > 0 ? cursorPosition.charIndex - 1 : 0;\n return { l: cursorPosition.lineIndex, c: charIndex };\n }\n });\n\n /**\n * Returns fabric.IText instance from an object representation\n * @static\n * @memberOf fabric.IText\n * @param {Object} object Object to create an instance from\n * @param {function} [callback] invoked with new instance as argument\n */\n fabric.IText.fromObject = function(object, callback) {\n parseDecoration(object);\n if (object.styles) {\n for (var i in object.styles) {\n for (var j in object.styles[i]) {\n parseDecoration(object.styles[i][j]);\n }\n }\n }\n fabric.Object._fromObject('IText', object, callback, 'text');\n };\n})();\n\n\n(function() {\n\n var clone = fabric.util.object.clone;\n\n fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n\n /**\n * Initializes all the interactive behavior of IText\n */\n initBehavior: function() {\n this.initAddedHandler();\n this.initRemovedHandler();\n this.initCursorSelectionHandlers();\n this.initDoubleClickSimulation();\n this.mouseMoveHandler = this.mouseMoveHandler.bind(this);\n },\n\n onDeselect: function() {\n this.isEditing && this.exitEditing();\n this.selected = false;\n },\n\n /**\n * Initializes \"added\" event handler\n */\n initAddedHandler: function() {\n var _this = this;\n this.on('added', function() {\n var canvas = _this.canvas;\n if (canvas) {\n if (!canvas._hasITextHandlers) {\n canvas._hasITextHandlers = true;\n _this._initCanvasHandlers(canvas);\n }\n canvas._iTextInstances = canvas._iTextInstances || [];\n canvas._iTextInstances.push(_this);\n }\n });\n },\n\n initRemovedHandler: function() {\n var _this = this;\n this.on('removed', function() {\n var canvas = _this.canvas;\n if (canvas) {\n canvas._iTextInstances = canvas._iTextInstances || [];\n fabric.util.removeFromArray(canvas._iTextInstances, _this);\n if (canvas._iTextInstances.length === 0) {\n canvas._hasITextHandlers = false;\n _this._removeCanvasHandlers(canvas);\n }\n }\n });\n },\n\n /**\n * register canvas event to manage exiting on other instances\n * @private\n */\n _initCanvasHandlers: function(canvas) {\n canvas._mouseUpITextHandler = function() {\n if (canvas._iTextInstances) {\n canvas._iTextInstances.forEach(function(obj) {\n obj.__isMousedown = false;\n });\n }\n };\n canvas.on('mouse:up', canvas._mouseUpITextHandler);\n },\n\n /**\n * remove canvas event to manage exiting on other instances\n * @private\n */\n _removeCanvasHandlers: function(canvas) {\n canvas.off('mouse:up', canvas._mouseUpITextHandler);\n },\n\n /**\n * @private\n */\n _tick: function() {\n this._currentTickState = this._animateCursor(this, 1, this.cursorDuration, '_onTickComplete');\n },\n\n /**\n * @private\n */\n _animateCursor: function(obj, targetOpacity, duration, completeMethod) {\n\n var tickState;\n\n tickState = {\n isAborted: false,\n abort: function() {\n this.isAborted = true;\n },\n };\n\n obj.animate('_currentCursorOpacity', targetOpacity, {\n duration: duration,\n onComplete: function() {\n if (!tickState.isAborted) {\n obj[completeMethod]();\n }\n },\n onChange: function() {\n // we do not want to animate a selection, only cursor\n if (obj.canvas && obj.selectionStart === obj.selectionEnd) {\n obj.renderCursorOrSelection();\n }\n },\n abort: function() {\n return tickState.isAborted;\n }\n });\n return tickState;\n },\n\n /**\n * @private\n */\n _onTickComplete: function() {\n\n var _this = this;\n\n if (this._cursorTimeout1) {\n clearTimeout(this._cursorTimeout1);\n }\n this._cursorTimeout1 = setTimeout(function() {\n _this._currentTickCompleteState = _this._animateCursor(_this, 0, this.cursorDuration / 2, '_tick');\n }, 100);\n },\n\n /**\n * Initializes delayed cursor\n */\n initDelayedCursor: function(restart) {\n var _this = this,\n delay = restart ? 0 : this.cursorDelay;\n\n this.abortCursorAnimation();\n this._currentCursorOpacity = 1;\n this._cursorTimeout2 = setTimeout(function() {\n _this._tick();\n }, delay);\n },\n\n /**\n * Aborts cursor animation and clears all timeouts\n */\n abortCursorAnimation: function() {\n var shouldClear = this._currentTickState || this._currentTickCompleteState,\n canvas = this.canvas;\n this._currentTickState && this._currentTickState.abort();\n this._currentTickCompleteState && this._currentTickCompleteState.abort();\n\n clearTimeout(this._cursorTimeout1);\n clearTimeout(this._cursorTimeout2);\n\n this._currentCursorOpacity = 0;\n // to clear just itext area we need to transform the context\n // it may not be worth it\n if (shouldClear && canvas) {\n canvas.clearContext(canvas.contextTop || canvas.contextContainer);\n }\n\n },\n\n /**\n * Selects entire text\n * @return {fabric.IText} thisArg\n * @chainable\n */\n selectAll: function() {\n this.selectionStart = 0;\n this.selectionEnd = this._text.length;\n this._fireSelectionChanged();\n this._updateTextarea();\n return this;\n },\n\n /**\n * Returns selected text\n * @return {String}\n */\n getSelectedText: function() {\n return this._text.slice(this.selectionStart, this.selectionEnd).join('');\n },\n\n /**\n * Find new selection index representing start of current word according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findWordBoundaryLeft: function(startFrom) {\n var offset = 0, index = startFrom - 1;\n\n // remove space before cursor first\n if (this._reSpace.test(this._text[index])) {\n while (this._reSpace.test(this._text[index])) {\n offset++;\n index--;\n }\n }\n while (/\\S/.test(this._text[index]) && index > -1) {\n offset++;\n index--;\n }\n\n return startFrom - offset;\n },\n\n /**\n * Find new selection index representing end of current word according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findWordBoundaryRight: function(startFrom) {\n var offset = 0, index = startFrom;\n\n // remove space after cursor first\n if (this._reSpace.test(this._text[index])) {\n while (this._reSpace.test(this._text[index])) {\n offset++;\n index++;\n }\n }\n while (/\\S/.test(this._text[index]) && index < this._text.length) {\n offset++;\n index++;\n }\n\n return startFrom + offset;\n },\n\n /**\n * Find new selection index representing start of current line according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findLineBoundaryLeft: function(startFrom) {\n var offset = 0, index = startFrom - 1;\n\n while (!/\\n/.test(this._text[index]) && index > -1) {\n offset++;\n index--;\n }\n\n return startFrom - offset;\n },\n\n /**\n * Find new selection index representing end of current line according to current selection index\n * @param {Number} startFrom Current selection index\n * @return {Number} New selection index\n */\n findLineBoundaryRight: function(startFrom) {\n var offset = 0, index = startFrom;\n\n while (!/\\n/.test(this._text[index]) && index < this._text.length) {\n offset++;\n index++;\n }\n\n return startFrom + offset;\n },\n\n /**\n * Finds index corresponding to beginning or end of a word\n * @param {Number} selectionStart Index of a character\n * @param {Number} direction 1 or -1\n * @return {Number} Index of the beginning or end of a word\n */\n searchWordBoundary: function(selectionStart, direction) {\n var text = this._text,\n index = this._reSpace.test(text[selectionStart]) ? selectionStart - 1 : selectionStart,\n _char = text[index],\n // wrong\n reNonWord = fabric.reNonWord;\n\n while (!reNonWord.test(_char) && index > 0 && index < text.length) {\n index += direction;\n _char = text[index];\n }\n if (reNonWord.test(_char)) {\n index += direction === 1 ? 0 : 1;\n }\n return index;\n },\n\n /**\n * Selects a word based on the index\n * @param {Number} selectionStart Index of a character\n */\n selectWord: function(selectionStart) {\n selectionStart = selectionStart || this.selectionStart;\n var newSelectionStart = this.searchWordBoundary(selectionStart, -1), /* search backwards */\n newSelectionEnd = this.searchWordBoundary(selectionStart, 1); /* search forward */\n\n this.selectionStart = newSelectionStart;\n this.selectionEnd = newSelectionEnd;\n this._fireSelectionChanged();\n this._updateTextarea();\n this.renderCursorOrSelection();\n },\n\n /**\n * Selects a line based on the index\n * @param {Number} selectionStart Index of a character\n * @return {fabric.IText} thisArg\n * @chainable\n */\n selectLine: function(selectionStart) {\n selectionStart = selectionStart || this.selectionStart;\n var newSelectionStart = this.findLineBoundaryLeft(selectionStart),\n newSelectionEnd = this.findLineBoundaryRight(selectionStart);\n\n this.selectionStart = newSelectionStart;\n this.selectionEnd = newSelectionEnd;\n this._fireSelectionChanged();\n this._updateTextarea();\n return this;\n },\n\n /**\n * Enters editing state\n * @return {fabric.IText} thisArg\n * @chainable\n */\n enterEditing: function(e) {\n if (this.isEditing || !this.editable) {\n return;\n }\n\n if (this.canvas) {\n this.canvas.calcOffset();\n this.exitEditingOnOthers(this.canvas);\n }\n\n this.isEditing = true;\n\n this.initHiddenTextarea(e);\n this.hiddenTextarea.focus();\n this.hiddenTextarea.value = this.text;\n this._updateTextarea();\n this._saveEditingProps();\n this._setEditingProps();\n this._textBeforeEdit = this.text;\n\n this._tick();\n this.fire('editing:entered');\n this._fireSelectionChanged();\n if (!this.canvas) {\n return this;\n }\n this.canvas.fire('text:editing:entered', { target: this });\n this.initMouseMoveHandler();\n this.canvas.requestRenderAll();\n return this;\n },\n\n exitEditingOnOthers: function(canvas) {\n if (canvas._iTextInstances) {\n canvas._iTextInstances.forEach(function(obj) {\n obj.selected = false;\n if (obj.isEditing) {\n obj.exitEditing();\n }\n });\n }\n },\n\n /**\n * Initializes \"mousemove\" event handler\n */\n initMouseMoveHandler: function() {\n this.canvas.on('mouse:move', this.mouseMoveHandler);\n },\n\n /**\n * @private\n */\n mouseMoveHandler: function(options) {\n if (!this.__isMousedown || !this.isEditing) {\n return;\n }\n\n var newSelectionStart = this.getSelectionStartFromPointer(options.e),\n currentStart = this.selectionStart,\n currentEnd = this.selectionEnd;\n if (\n (newSelectionStart !== this.__selectionStartOnMouseDown || currentStart === currentEnd)\n &&\n (currentStart === newSelectionStart || currentEnd === newSelectionStart)\n ) {\n return;\n }\n if (newSelectionStart > this.__selectionStartOnMouseDown) {\n this.selectionStart = this.__selectionStartOnMouseDown;\n this.selectionEnd = newSelectionStart;\n }\n else {\n this.selectionStart = newSelectionStart;\n this.selectionEnd = this.__selectionStartOnMouseDown;\n }\n if (this.selectionStart !== currentStart || this.selectionEnd !== currentEnd) {\n this.restartCursorIfNeeded();\n this._fireSelectionChanged();\n this._updateTextarea();\n this.renderCursorOrSelection();\n }\n },\n\n /**\n * @private\n */\n _setEditingProps: function() {\n this.hoverCursor = 'text';\n\n if (this.canvas) {\n this.canvas.defaultCursor = this.canvas.moveCursor = 'text';\n }\n\n this.borderColor = this.editingBorderColor;\n this.hasControls = this.selectable = false;\n this.lockMovementX = this.lockMovementY = true;\n },\n\n /**\n * convert from textarea to grapheme indexes\n */\n fromStringToGraphemeSelection: function(start, end, text) {\n var smallerTextStart = text.slice(0, start),\n graphemeStart = fabric.util.string.graphemeSplit(smallerTextStart).length;\n if (start === end) {\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart };\n }\n var smallerTextEnd = text.slice(start, end),\n graphemeEnd = fabric.util.string.graphemeSplit(smallerTextEnd).length;\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart + graphemeEnd };\n },\n\n /**\n * convert from fabric to textarea values\n */\n fromGraphemeToStringSelection: function(start, end, _text) {\n var smallerTextStart = _text.slice(0, start),\n graphemeStart = smallerTextStart.join('').length;\n if (start === end) {\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart };\n }\n var smallerTextEnd = _text.slice(start, end),\n graphemeEnd = smallerTextEnd.join('').length;\n return { selectionStart: graphemeStart, selectionEnd: graphemeStart + graphemeEnd };\n },\n\n /**\n * @private\n */\n _updateTextarea: function() {\n this.cursorOffsetCache = { };\n if (!this.hiddenTextarea) {\n return;\n }\n if (!this.inCompositionMode) {\n var newSelection = this.fromGraphemeToStringSelection(this.selectionStart, this.selectionEnd, this._text);\n this.hiddenTextarea.selectionStart = newSelection.selectionStart;\n this.hiddenTextarea.selectionEnd = newSelection.selectionEnd;\n }\n this.updateTextareaPosition();\n },\n\n /**\n * @private\n */\n updateFromTextArea: function() {\n if (!this.hiddenTextarea) {\n return;\n }\n this.cursorOffsetCache = { };\n this.text = this.hiddenTextarea.value;\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n var newSelection = this.fromStringToGraphemeSelection(\n this.hiddenTextarea.selectionStart, this.hiddenTextarea.selectionEnd, this.hiddenTextarea.value);\n this.selectionEnd = this.selectionStart = newSelection.selectionEnd;\n if (!this.inCompositionMode) {\n this.selectionStart = newSelection.selectionStart;\n }\n this.updateTextareaPosition();\n },\n\n /**\n * @private\n */\n updateTextareaPosition: function() {\n if (this.selectionStart === this.selectionEnd) {\n var style = this._calcTextareaPosition();\n this.hiddenTextarea.style.left = style.left;\n this.hiddenTextarea.style.top = style.top;\n }\n },\n\n /**\n * @private\n * @return {Object} style contains style for hiddenTextarea\n */\n _calcTextareaPosition: function() {\n if (!this.canvas) {\n return { x: 1, y: 1 };\n }\n var desiredPosition = this.inCompositionMode ? this.compositionStart : this.selectionStart,\n boundaries = this._getCursorBoundaries(desiredPosition),\n cursorLocation = this.get2DCursorLocation(desiredPosition),\n lineIndex = cursorLocation.lineIndex,\n charIndex = cursorLocation.charIndex,\n charHeight = this.getValueOfPropertyAt(lineIndex, charIndex, 'fontSize') * this.lineHeight,\n leftOffset = boundaries.leftOffset,\n m = this.calcTransformMatrix(),\n p = {\n x: boundaries.left + leftOffset,\n y: boundaries.top + boundaries.topOffset + charHeight\n },\n retinaScaling = this.canvas.getRetinaScaling(),\n upperCanvas = this.canvas.upperCanvasEl,\n upperCanvasWidth = upperCanvas.width / retinaScaling,\n upperCanvasHeight = upperCanvas.height / retinaScaling,\n maxWidth = upperCanvasWidth - charHeight,\n maxHeight = upperCanvasHeight - charHeight,\n scaleX = upperCanvas.clientWidth / upperCanvasWidth,\n scaleY = upperCanvas.clientHeight / upperCanvasHeight;\n\n p = fabric.util.transformPoint(p, m);\n p = fabric.util.transformPoint(p, this.canvas.viewportTransform);\n p.x *= scaleX;\n p.y *= scaleY;\n if (p.x < 0) {\n p.x = 0;\n }\n if (p.x > maxWidth) {\n p.x = maxWidth;\n }\n if (p.y < 0) {\n p.y = 0;\n }\n if (p.y > maxHeight) {\n p.y = maxHeight;\n }\n\n // add canvas offset on document\n p.x += this.canvas._offset.left;\n p.y += this.canvas._offset.top;\n\n return { left: p.x + 'px', top: p.y + 'px', fontSize: charHeight + 'px', charHeight: charHeight };\n },\n\n /**\n * @private\n */\n _saveEditingProps: function() {\n this._savedProps = {\n hasControls: this.hasControls,\n borderColor: this.borderColor,\n lockMovementX: this.lockMovementX,\n lockMovementY: this.lockMovementY,\n hoverCursor: this.hoverCursor,\n selectable: this.selectable,\n defaultCursor: this.canvas && this.canvas.defaultCursor,\n moveCursor: this.canvas && this.canvas.moveCursor\n };\n },\n\n /**\n * @private\n */\n _restoreEditingProps: function() {\n if (!this._savedProps) {\n return;\n }\n\n this.hoverCursor = this._savedProps.hoverCursor;\n this.hasControls = this._savedProps.hasControls;\n this.borderColor = this._savedProps.borderColor;\n this.selectable = this._savedProps.selectable;\n this.lockMovementX = this._savedProps.lockMovementX;\n this.lockMovementY = this._savedProps.lockMovementY;\n\n if (this.canvas) {\n this.canvas.defaultCursor = this._savedProps.defaultCursor;\n this.canvas.moveCursor = this._savedProps.moveCursor;\n }\n },\n\n /**\n * Exits from editing state\n * @return {fabric.IText} thisArg\n * @chainable\n */\n exitEditing: function() {\n var isTextChanged = (this._textBeforeEdit !== this.text);\n var hiddenTextarea = this.hiddenTextarea;\n this.selected = false;\n this.isEditing = false;\n\n this.selectionEnd = this.selectionStart;\n\n if (hiddenTextarea) {\n hiddenTextarea.blur && hiddenTextarea.blur();\n hiddenTextarea.parentNode && hiddenTextarea.parentNode.removeChild(hiddenTextarea);\n }\n this.hiddenTextarea = null;\n this.abortCursorAnimation();\n this._restoreEditingProps();\n this._currentCursorOpacity = 0;\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this.fire('editing:exited');\n isTextChanged && this.fire('modified');\n if (this.canvas) {\n this.canvas.off('mouse:move', this.mouseMoveHandler);\n this.canvas.fire('text:editing:exited', { target: this });\n isTextChanged && this.canvas.fire('object:modified', { target: this });\n }\n return this;\n },\n\n /**\n * @private\n */\n _removeExtraneousStyles: function() {\n for (var prop in this.styles) {\n if (!this._textLines[prop]) {\n delete this.styles[prop];\n }\n }\n },\n\n /**\n * remove and reflow a style block from start to end.\n * @param {Number} start linear start position for removal (included in removal)\n * @param {Number} end linear end position for removal ( excluded from removal )\n */\n removeStyleFromTo: function(start, end) {\n var cursorStart = this.get2DCursorLocation(start, true),\n cursorEnd = this.get2DCursorLocation(end, true),\n lineStart = cursorStart.lineIndex,\n charStart = cursorStart.charIndex,\n lineEnd = cursorEnd.lineIndex,\n charEnd = cursorEnd.charIndex,\n i, styleObj;\n if (lineStart !== lineEnd) {\n // step1 remove the trailing of lineStart\n if (this.styles[lineStart]) {\n for (i = charStart; i < this._unwrappedTextLines[lineStart].length; i++) {\n delete this.styles[lineStart][i];\n }\n }\n // step2 move the trailing of lineEnd to lineStart if needed\n if (this.styles[lineEnd]) {\n for (i = charEnd; i < this._unwrappedTextLines[lineEnd].length; i++) {\n styleObj = this.styles[lineEnd][i];\n if (styleObj) {\n this.styles[lineStart] || (this.styles[lineStart] = { });\n this.styles[lineStart][charStart + i - charEnd] = styleObj;\n }\n }\n }\n // step3 detects lines will be completely removed.\n for (i = lineStart + 1; i <= lineEnd; i++) {\n delete this.styles[i];\n }\n // step4 shift remaining lines.\n this.shiftLineStyles(lineEnd, lineStart - lineEnd);\n }\n else {\n // remove and shift left on the same line\n if (this.styles[lineStart]) {\n styleObj = this.styles[lineStart];\n var diff = charEnd - charStart, numericChar, _char;\n for (i = charStart; i < charEnd; i++) {\n delete styleObj[i];\n }\n for (_char in this.styles[lineStart]) {\n numericChar = parseInt(_char, 10);\n if (numericChar >= charEnd) {\n styleObj[numericChar - diff] = styleObj[_char];\n delete styleObj[_char];\n }\n }\n }\n }\n },\n\n /**\n * Shifts line styles up or down\n * @param {Number} lineIndex Index of a line\n * @param {Number} offset Can any number?\n */\n shiftLineStyles: function(lineIndex, offset) {\n // shift all line styles by offset upward or downward\n // do not clone deep. we need new array, not new style objects\n var clonedStyles = clone(this.styles);\n for (var line in this.styles) {\n var numericLine = parseInt(line, 10);\n if (numericLine > lineIndex) {\n this.styles[numericLine + offset] = clonedStyles[numericLine];\n if (!clonedStyles[numericLine - offset]) {\n delete this.styles[numericLine];\n }\n }\n }\n },\n\n restartCursorIfNeeded: function() {\n if (!this._currentTickState || this._currentTickState.isAborted\n || !this._currentTickCompleteState || this._currentTickCompleteState.isAborted\n ) {\n this.initDelayedCursor();\n }\n },\n\n /**\n * Inserts new style object\n * @param {Number} lineIndex Index of a line\n * @param {Number} charIndex Index of a char\n * @param {Number} qty number of lines to add\n * @param {Array} copiedStyle Array of objects styles\n */\n insertNewlineStyleObject: function(lineIndex, charIndex, qty, copiedStyle) {\n var currentCharStyle,\n newLineStyles = {},\n somethingAdded = false;\n\n qty || (qty = 1);\n this.shiftLineStyles(lineIndex, qty);\n if (this.styles[lineIndex]) {\n currentCharStyle = this.styles[lineIndex][charIndex === 0 ? charIndex : charIndex - 1];\n }\n\n // we clone styles of all chars\n // after cursor onto the current line\n for (var index in this.styles[lineIndex]) {\n var numIndex = parseInt(index, 10);\n if (numIndex >= charIndex) {\n somethingAdded = true;\n newLineStyles[numIndex - charIndex] = this.styles[lineIndex][index];\n // remove lines from the previous line since they're on a new line now\n delete this.styles[lineIndex][index];\n }\n }\n if (somethingAdded) {\n this.styles[lineIndex + qty] = newLineStyles;\n }\n else {\n delete this.styles[lineIndex + qty];\n }\n // for the other lines\n // we clone current char style onto the next (otherwise empty) line\n while (qty > 1) {\n qty--;\n if (copiedStyle && copiedStyle[qty]) {\n this.styles[lineIndex + qty] = { 0: clone(copiedStyle[qty]) };\n }\n else if (currentCharStyle) {\n this.styles[lineIndex + qty] = { 0: clone(currentCharStyle) };\n }\n else {\n delete this.styles[lineIndex + qty];\n }\n }\n this._forceClearCache = true;\n },\n\n /**\n * Inserts style object for a given line/char index\n * @param {Number} lineIndex Index of a line\n * @param {Number} charIndex Index of a char\n * @param {Number} quantity number Style object to insert, if given\n * @param {Array} copiedStyle array of style objects\n */\n insertCharStyleObject: function(lineIndex, charIndex, quantity, copiedStyle) {\n if (!this.styles) {\n this.styles = {};\n }\n var currentLineStyles = this.styles[lineIndex],\n currentLineStylesCloned = currentLineStyles ? clone(currentLineStyles) : {};\n\n quantity || (quantity = 1);\n // shift all char styles by quantity forward\n // 0,1,2,3 -> (charIndex=2) -> 0,1,3,4 -> (insert 2) -> 0,1,2,3,4\n for (var index in currentLineStylesCloned) {\n var numericIndex = parseInt(index, 10);\n if (numericIndex >= charIndex) {\n currentLineStyles[numericIndex + quantity] = currentLineStylesCloned[numericIndex];\n // only delete the style if there was nothing moved there\n if (!currentLineStylesCloned[numericIndex - quantity]) {\n delete currentLineStyles[numericIndex];\n }\n }\n }\n this._forceClearCache = true;\n if (copiedStyle) {\n while (quantity--) {\n if (!Object.keys(copiedStyle[quantity]).length) {\n continue;\n }\n if (!this.styles[lineIndex]) {\n this.styles[lineIndex] = {};\n }\n this.styles[lineIndex][charIndex + quantity] = clone(copiedStyle[quantity]);\n }\n return;\n }\n if (!currentLineStyles) {\n return;\n }\n var newStyle = currentLineStyles[charIndex ? charIndex - 1 : 1];\n while (newStyle && quantity--) {\n this.styles[lineIndex][charIndex + quantity] = clone(newStyle);\n }\n },\n\n /**\n * Inserts style object(s)\n * @param {Array} insertedText Characters at the location where style is inserted\n * @param {Number} start cursor index for inserting style\n * @param {Array} [copiedStyle] array of style objects to insert.\n */\n insertNewStyleBlock: function(insertedText, start, copiedStyle) {\n var cursorLoc = this.get2DCursorLocation(start, true),\n addedLines = [0], linesLength = 0;\n for (var i = 0; i < insertedText.length; i++) {\n if (insertedText[i] === '\\n') {\n linesLength++;\n addedLines[linesLength] = 0;\n }\n else {\n addedLines[linesLength]++;\n }\n }\n if (addedLines[0] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex, cursorLoc.charIndex, addedLines[0], copiedStyle);\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[0] + 1);\n }\n linesLength && this.insertNewlineStyleObject(\n cursorLoc.lineIndex, cursorLoc.charIndex + addedLines[0], linesLength);\n for (var i = 1; i < linesLength; i++) {\n if (addedLines[i] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex + i, 0, addedLines[i], copiedStyle);\n }\n else if (copiedStyle) {\n this.styles[cursorLoc.lineIndex + i][0] = copiedStyle[0];\n }\n copiedStyle = copiedStyle && copiedStyle.slice(addedLines[i] + 1);\n }\n // we use i outside the loop to get it like linesLength\n if (addedLines[i] > 0) {\n this.insertCharStyleObject(cursorLoc.lineIndex + i, 0, addedLines[i], copiedStyle);\n }\n },\n\n /**\n * Set the selectionStart and selectionEnd according to the new position of cursor\n * mimic the key - mouse navigation when shift is pressed.\n */\n setSelectionStartEndWithShift: function(start, end, newSelection) {\n if (newSelection <= start) {\n if (end === start) {\n this._selectionDirection = 'left';\n }\n else if (this._selectionDirection === 'right') {\n this._selectionDirection = 'left';\n this.selectionEnd = start;\n }\n this.selectionStart = newSelection;\n }\n else if (newSelection > start && newSelection < end) {\n if (this._selectionDirection === 'right') {\n this.selectionEnd = newSelection;\n }\n else {\n this.selectionStart = newSelection;\n }\n }\n else {\n // newSelection is > selection start and end\n if (end === start) {\n this._selectionDirection = 'right';\n }\n else if (this._selectionDirection === 'left') {\n this._selectionDirection = 'right';\n this.selectionStart = end;\n }\n this.selectionEnd = newSelection;\n }\n },\n\n setSelectionInBoundaries: function() {\n var length = this.text.length;\n if (this.selectionStart > length) {\n this.selectionStart = length;\n }\n else if (this.selectionStart < 0) {\n this.selectionStart = 0;\n }\n if (this.selectionEnd > length) {\n this.selectionEnd = length;\n }\n else if (this.selectionEnd < 0) {\n this.selectionEnd = 0;\n }\n }\n });\n})();\n\n\nfabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n /**\n * Initializes \"dbclick\" event handler\n */\n initDoubleClickSimulation: function() {\n\n // for double click\n this.__lastClickTime = +new Date();\n\n // for triple click\n this.__lastLastClickTime = +new Date();\n\n this.__lastPointer = { };\n\n this.on('mousedown', this.onMouseDown);\n },\n\n /**\n * Default event handler to simulate triple click\n * @private\n */\n onMouseDown: function(options) {\n if (!this.canvas) {\n return;\n }\n this.__newClickTime = +new Date();\n var newPointer = options.pointer;\n if (this.isTripleClick(newPointer)) {\n this.fire('tripleclick', options);\n this._stopEvent(options.e);\n }\n this.__lastLastClickTime = this.__lastClickTime;\n this.__lastClickTime = this.__newClickTime;\n this.__lastPointer = newPointer;\n this.__lastIsEditing = this.isEditing;\n this.__lastSelected = this.selected;\n },\n\n isTripleClick: function(newPointer) {\n return this.__newClickTime - this.__lastClickTime < 500 &&\n this.__lastClickTime - this.__lastLastClickTime < 500 &&\n this.__lastPointer.x === newPointer.x &&\n this.__lastPointer.y === newPointer.y;\n },\n\n /**\n * @private\n */\n _stopEvent: function(e) {\n e.preventDefault && e.preventDefault();\n e.stopPropagation && e.stopPropagation();\n },\n\n /**\n * Initializes event handlers related to cursor or selection\n */\n initCursorSelectionHandlers: function() {\n this.initMousedownHandler();\n this.initMouseupHandler();\n this.initClicks();\n },\n\n /**\n * Default handler for double click, select a word\n */\n doubleClickHandler: function(options) {\n if (!this.isEditing) {\n return;\n }\n this.selectWord(this.getSelectionStartFromPointer(options.e));\n },\n\n /**\n * Default handler for triple click, select a line\n */\n tripleClickHandler: function(options) {\n if (!this.isEditing) {\n return;\n }\n this.selectLine(this.getSelectionStartFromPointer(options.e));\n },\n\n /**\n * Initializes double and triple click event handlers\n */\n initClicks: function() {\n this.on('mousedblclick', this.doubleClickHandler);\n this.on('tripleclick', this.tripleClickHandler);\n },\n\n /**\n * Default event handler for the basic functionalities needed on _mouseDown\n * can be overridden to do something different.\n * Scope of this implementation is: find the click position, set selectionStart\n * find selectionEnd, initialize the drawing of either cursor or selection area\n */\n _mouseDownHandler: function(options) {\n if (!this.canvas || !this.editable || (options.e.button && options.e.button !== 1)) {\n return;\n }\n\n this.__isMousedown = true;\n\n if (this.selected) {\n this.setCursorByClick(options.e);\n }\n\n if (this.isEditing) {\n this.__selectionStartOnMouseDown = this.selectionStart;\n if (this.selectionStart === this.selectionEnd) {\n this.abortCursorAnimation();\n }\n this.renderCursorOrSelection();\n }\n },\n\n /**\n * Default event handler for the basic functionalities needed on mousedown:before\n * can be overridden to do something different.\n * Scope of this implementation is: verify the object is already selected when mousing down\n */\n _mouseDownHandlerBefore: function(options) {\n if (!this.canvas || !this.editable || (options.e.button && options.e.button !== 1)) {\n return;\n }\n // we want to avoid that an object that was selected and then becomes unselectable,\n // may trigger editing mode in some way.\n this.selected = this === this.canvas._activeObject;\n },\n\n /**\n * Initializes \"mousedown\" event handler\n */\n initMousedownHandler: function() {\n this.on('mousedown', this._mouseDownHandler);\n this.on('mousedown:before', this._mouseDownHandlerBefore);\n },\n\n /**\n * Initializes \"mouseup\" event handler\n */\n initMouseupHandler: function() {\n this.on('mouseup', this.mouseUpHandler);\n },\n\n /**\n * standard hander for mouse up, overridable\n * @private\n */\n mouseUpHandler: function(options) {\n this.__isMousedown = false;\n if (!this.editable || this.group ||\n (options.transform && options.transform.actionPerformed) ||\n (options.e.button && options.e.button !== 1)) {\n return;\n }\n\n if (this.canvas) {\n var currentActive = this.canvas._activeObject;\n if (currentActive && currentActive !== this) {\n // avoid running this logic when there is an active object\n // this because is possible with shift click and fast clicks,\n // to rapidly deselect and reselect this object and trigger an enterEdit\n return;\n }\n }\n\n if (this.__lastSelected && !this.__corner) {\n this.selected = false;\n this.__lastSelected = false;\n this.enterEditing(options.e);\n if (this.selectionStart === this.selectionEnd) {\n this.initDelayedCursor(true);\n }\n else {\n this.renderCursorOrSelection();\n }\n }\n else {\n this.selected = true;\n }\n },\n\n /**\n * Changes cursor location in a text depending on passed pointer (x/y) object\n * @param {Event} e Event object\n */\n setCursorByClick: function(e) {\n var newSelection = this.getSelectionStartFromPointer(e),\n start = this.selectionStart, end = this.selectionEnd;\n if (e.shiftKey) {\n this.setSelectionStartEndWithShift(start, end, newSelection);\n }\n else {\n this.selectionStart = newSelection;\n this.selectionEnd = newSelection;\n }\n if (this.isEditing) {\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Returns index of a character corresponding to where an object was clicked\n * @param {Event} e Event object\n * @return {Number} Index of a character\n */\n getSelectionStartFromPointer: function(e) {\n var mouseOffset = this.getLocalPointer(e),\n prevWidth = 0,\n width = 0,\n height = 0,\n charIndex = 0,\n lineIndex = 0,\n lineLeftOffset,\n line;\n\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n if (height <= mouseOffset.y) {\n height += this.getHeightOfLine(i) * this.scaleY;\n lineIndex = i;\n if (i > 0) {\n charIndex += this._textLines[i - 1].length + this.missingNewlineOffset(i - 1);\n }\n }\n else {\n break;\n }\n }\n lineLeftOffset = this._getLineLeftOffset(lineIndex);\n width = lineLeftOffset * this.scaleX;\n line = this._textLines[lineIndex];\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n prevWidth = width;\n // i removed something about flipX here, check.\n width += this.__charBounds[lineIndex][j].kernedWidth * this.scaleX;\n if (width <= mouseOffset.x) {\n charIndex++;\n }\n else {\n break;\n }\n }\n return this._getNewSelectionStartFromOffset(mouseOffset, prevWidth, width, charIndex, jlen);\n },\n\n /**\n * @private\n */\n _getNewSelectionStartFromOffset: function(mouseOffset, prevWidth, width, index, jlen) {\n // we need Math.abs because when width is after the last char, the offset is given as 1, while is 0\n var distanceBtwLastCharAndCursor = mouseOffset.x - prevWidth,\n distanceBtwNextCharAndCursor = width - mouseOffset.x,\n offset = distanceBtwNextCharAndCursor > distanceBtwLastCharAndCursor ||\n distanceBtwNextCharAndCursor < 0 ? 0 : 1,\n newSelectionStart = index + offset;\n // if object is horizontally flipped, mirror cursor location from the end\n if (this.flipX) {\n newSelectionStart = jlen - newSelectionStart;\n }\n\n if (newSelectionStart > this._text.length) {\n newSelectionStart = this._text.length;\n }\n\n return newSelectionStart;\n }\n});\n\n\nfabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.prototype */ {\n\n /**\n * Initializes hidden textarea (needed to bring up keyboard in iOS)\n */\n initHiddenTextarea: function() {\n this.hiddenTextarea = fabric.document.createElement('textarea');\n this.hiddenTextarea.setAttribute('autocapitalize', 'off');\n this.hiddenTextarea.setAttribute('autocorrect', 'off');\n this.hiddenTextarea.setAttribute('autocomplete', 'off');\n this.hiddenTextarea.setAttribute('spellcheck', 'false');\n this.hiddenTextarea.setAttribute('data-fabric-hiddentextarea', '');\n this.hiddenTextarea.setAttribute('wrap', 'off');\n var style = this._calcTextareaPosition();\n // line-height: 1px; was removed from the style to fix this:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=870966\n this.hiddenTextarea.style.cssText = 'position: absolute; top: ' + style.top +\n '; left: ' + style.left + '; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px;' +\n ' paddingーtop: ' + style.fontSize + ';';\n fabric.document.body.appendChild(this.hiddenTextarea);\n\n fabric.util.addListener(this.hiddenTextarea, 'keydown', this.onKeyDown.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'keyup', this.onKeyUp.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'input', this.onInput.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'copy', this.copy.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'cut', this.copy.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'paste', this.paste.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionstart', this.onCompositionStart.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionupdate', this.onCompositionUpdate.bind(this));\n fabric.util.addListener(this.hiddenTextarea, 'compositionend', this.onCompositionEnd.bind(this));\n\n if (!this._clickHandlerInitialized && this.canvas) {\n fabric.util.addListener(this.canvas.upperCanvasEl, 'click', this.onClick.bind(this));\n this._clickHandlerInitialized = true;\n }\n },\n\n /**\n * For functionalities on keyDown\n * Map a special key to a function of the instance/prototype\n * If you need different behaviour for ESC or TAB or arrows, you have to change\n * this map setting the name of a function that you build on the fabric.Itext or\n * your prototype.\n * the map change will affect all Instances unless you need for only some text Instances\n * in that case you have to clone this object and assign your Instance.\n * this.keysMap = fabric.util.object.clone(this.keysMap);\n * The function must be in fabric.Itext.prototype.myFunction And will receive event as args[0]\n */\n keysMap: {\n 9: 'exitEditing',\n 27: 'exitEditing',\n 33: 'moveCursorUp',\n 34: 'moveCursorDown',\n 35: 'moveCursorRight',\n 36: 'moveCursorLeft',\n 37: 'moveCursorLeft',\n 38: 'moveCursorUp',\n 39: 'moveCursorRight',\n 40: 'moveCursorDown',\n },\n\n /**\n * For functionalities on keyUp + ctrl || cmd\n */\n ctrlKeysMapUp: {\n 67: 'copy',\n 88: 'cut'\n },\n\n /**\n * For functionalities on keyDown + ctrl || cmd\n */\n ctrlKeysMapDown: {\n 65: 'selectAll'\n },\n\n onClick: function() {\n // No need to trigger click event here, focus is enough to have the keyboard appear on Android\n this.hiddenTextarea && this.hiddenTextarea.focus();\n },\n\n /**\n * Handles keyup event\n * @param {Event} e Event object\n */\n onKeyDown: function(e) {\n if (!this.isEditing || this.inCompositionMode) {\n return;\n }\n if (e.keyCode in this.keysMap) {\n this[this.keysMap[e.keyCode]](e);\n }\n else if ((e.keyCode in this.ctrlKeysMapDown) && (e.ctrlKey || e.metaKey)) {\n this[this.ctrlKeysMapDown[e.keyCode]](e);\n }\n else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n if (e.keyCode >= 33 && e.keyCode <= 40) {\n // if i press an arrow key just update selection\n this.clearContextTop();\n this.renderCursorOrSelection();\n }\n else {\n this.canvas && this.canvas.requestRenderAll();\n }\n },\n\n /**\n * Handles keyup event\n * We handle KeyUp because ie11 and edge have difficulties copy/pasting\n * if a copy/cut event fired, keyup is dismissed\n * @param {Event} e Event object\n */\n onKeyUp: function(e) {\n if (!this.isEditing || this._copyDone || this.inCompositionMode) {\n this._copyDone = false;\n return;\n }\n if ((e.keyCode in this.ctrlKeysMapUp) && (e.ctrlKey || e.metaKey)) {\n this[this.ctrlKeysMapUp[e.keyCode]](e);\n }\n else {\n return;\n }\n e.stopImmediatePropagation();\n e.preventDefault();\n this.canvas && this.canvas.requestRenderAll();\n },\n\n /**\n * Handles onInput event\n * @param {Event} e Event object\n */\n onInput: function(e) {\n var fromPaste = this.fromPaste;\n this.fromPaste = false;\n e && e.stopPropagation();\n if (!this.isEditing) {\n return;\n }\n // decisions about style changes.\n var nextText = this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,\n charCount = this._text.length,\n nextCharCount = nextText.length,\n removedText, insertedText,\n charDiff = nextCharCount - charCount;\n if (this.hiddenTextarea.value === '') {\n this.styles = { };\n this.updateFromTextArea();\n this.fire('changed');\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this });\n this.canvas.requestRenderAll();\n }\n return;\n }\n\n var textareaSelection = this.fromStringToGraphemeSelection(\n this.hiddenTextarea.selectionStart,\n this.hiddenTextarea.selectionEnd,\n this.hiddenTextarea.value\n );\n var backDelete = this.selectionStart > textareaSelection.selectionStart;\n\n if (this.selectionStart !== this.selectionEnd) {\n removedText = this._text.slice(this.selectionStart, this.selectionEnd);\n charDiff += this.selectionEnd - this.selectionStart;\n }\n else if (nextCharCount < charCount) {\n if (backDelete) {\n removedText = this._text.slice(this.selectionEnd + charDiff, this.selectionEnd);\n }\n else {\n removedText = this._text.slice(this.selectionStart, this.selectionStart - charDiff);\n }\n }\n insertedText = nextText.slice(textareaSelection.selectionEnd - charDiff, textareaSelection.selectionEnd);\n if (removedText && removedText.length) {\n if (this.selectionStart !== this.selectionEnd) {\n this.removeStyleFromTo(this.selectionStart, this.selectionEnd);\n }\n else if (backDelete) {\n // detect differencies between forwardDelete and backDelete\n this.removeStyleFromTo(this.selectionEnd - removedText.length, this.selectionEnd);\n }\n else {\n this.removeStyleFromTo(this.selectionEnd, this.selectionEnd + removedText.length);\n }\n }\n if (insertedText.length) {\n if (fromPaste && insertedText.join('') === fabric.copiedText && !fabric.disableStyleCopyPaste) {\n this.insertNewStyleBlock(insertedText, this.selectionStart, fabric.copiedTextStyle);\n }\n else {\n this.insertNewStyleBlock(insertedText, this.selectionStart);\n }\n }\n this.updateFromTextArea();\n this.fire('changed');\n if (this.canvas) {\n this.canvas.fire('text:changed', { target: this });\n this.canvas.requestRenderAll();\n }\n },\n /**\n * Composition start\n */\n onCompositionStart: function() {\n this.inCompositionMode = true;\n },\n\n /**\n * Composition end\n */\n onCompositionEnd: function() {\n this.inCompositionMode = false;\n },\n\n // /**\n // * Composition update\n // */\n onCompositionUpdate: function(e) {\n this.compositionStart = e.target.selectionStart;\n this.compositionEnd = e.target.selectionEnd;\n this.updateTextareaPosition();\n },\n\n /**\n * Copies selected text\n * @param {Event} e Event object\n */\n copy: function() {\n if (this.selectionStart === this.selectionEnd) {\n //do not cut-copy if no selection\n return;\n }\n\n fabric.copiedText = this.getSelectedText();\n if (!fabric.disableStyleCopyPaste) {\n fabric.copiedTextStyle = this.getSelectionStyles(this.selectionStart, this.selectionEnd, true);\n }\n else {\n fabric.copiedTextStyle = null;\n }\n this._copyDone = true;\n },\n\n /**\n * Pastes text\n * @param {Event} e Event object\n */\n paste: function() {\n this.fromPaste = true;\n },\n\n /**\n * @private\n * @param {Event} e Event object\n * @return {Object} Clipboard data object\n */\n _getClipboardData: function(e) {\n return (e && e.clipboardData) || fabric.window.clipboardData;\n },\n\n /**\n * Finds the width in pixels before the cursor on the same line\n * @private\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @return {Number} widthBeforeCursor width before cursor\n */\n _getWidthBeforeCursor: function(lineIndex, charIndex) {\n var widthBeforeCursor = this._getLineLeftOffset(lineIndex), bound;\n\n if (charIndex > 0) {\n bound = this.__charBounds[lineIndex][charIndex - 1];\n widthBeforeCursor += bound.left + bound.width;\n }\n return widthBeforeCursor;\n },\n\n /**\n * Gets start offset of a selection\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getDownCursorOffset: function(e, isRight) {\n var selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n // if on last line, down cursor goes to end of line\n if (lineIndex === this._textLines.length - 1 || e.metaKey || e.keyCode === 34) {\n // move to the end of a text\n return this._text.length - selectionProp;\n }\n var charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex + 1, widthBeforeCursor),\n textAfterCursor = this._textLines[lineIndex].slice(charIndex);\n return textAfterCursor.length + indexOnOtherLine + 1 + this.missingNewlineOffset(lineIndex);\n },\n\n /**\n * private\n * Helps finding if the offset should be counted from Start or End\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n _getSelectionForOffset: function(e, isRight) {\n if (e.shiftKey && this.selectionStart !== this.selectionEnd && isRight) {\n return this.selectionEnd;\n }\n else {\n return this.selectionStart;\n }\n },\n\n /**\n * @param {Event} e Event object\n * @param {Boolean} isRight\n * @return {Number}\n */\n getUpCursorOffset: function(e, isRight) {\n var selectionProp = this._getSelectionForOffset(e, isRight),\n cursorLocation = this.get2DCursorLocation(selectionProp),\n lineIndex = cursorLocation.lineIndex;\n if (lineIndex === 0 || e.metaKey || e.keyCode === 33) {\n // if on first line, up cursor goes to start of line\n return -selectionProp;\n }\n var charIndex = cursorLocation.charIndex,\n widthBeforeCursor = this._getWidthBeforeCursor(lineIndex, charIndex),\n indexOnOtherLine = this._getIndexOnLine(lineIndex - 1, widthBeforeCursor),\n textBeforeCursor = this._textLines[lineIndex].slice(0, charIndex),\n missingNewlineOffset = this.missingNewlineOffset(lineIndex - 1);\n // return a negative offset\n return -this._textLines[lineIndex - 1].length\n + indexOnOtherLine - textBeforeCursor.length + (1 - missingNewlineOffset);\n },\n\n /**\n * for a given width it founds the matching character.\n * @private\n */\n _getIndexOnLine: function(lineIndex, width) {\n\n var line = this._textLines[lineIndex],\n lineLeftOffset = this._getLineLeftOffset(lineIndex),\n widthOfCharsOnLine = lineLeftOffset,\n indexOnLine = 0, charWidth, foundMatch;\n\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charWidth = this.__charBounds[lineIndex][j].width;\n widthOfCharsOnLine += charWidth;\n if (widthOfCharsOnLine > width) {\n foundMatch = true;\n var leftEdge = widthOfCharsOnLine - charWidth,\n rightEdge = widthOfCharsOnLine,\n offsetFromLeftEdge = Math.abs(leftEdge - width),\n offsetFromRightEdge = Math.abs(rightEdge - width);\n\n indexOnLine = offsetFromRightEdge < offsetFromLeftEdge ? j : (j - 1);\n break;\n }\n }\n\n // reached end\n if (!foundMatch) {\n indexOnLine = line.length - 1;\n }\n\n return indexOnLine;\n },\n\n\n /**\n * Moves cursor down\n * @param {Event} e Event object\n */\n moveCursorDown: function(e) {\n if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {\n return;\n }\n this._moveCursorUpOrDown('Down', e);\n },\n\n /**\n * Moves cursor up\n * @param {Event} e Event object\n */\n moveCursorUp: function(e) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorUpOrDown('Up', e);\n },\n\n /**\n * Moves cursor up or down, fires the events\n * @param {String} direction 'Up' or 'Down'\n * @param {Event} e Event object\n */\n _moveCursorUpOrDown: function(direction, e) {\n // getUpCursorOffset\n // getDownCursorOffset\n var action = 'get' + direction + 'CursorOffset',\n offset = this[action](e, this._selectionDirection === 'right');\n if (e.shiftKey) {\n this.moveCursorWithShift(offset);\n }\n else {\n this.moveCursorWithoutShift(offset);\n }\n if (offset !== 0) {\n this.setSelectionInBoundaries();\n this.abortCursorAnimation();\n this._currentCursorOpacity = 1;\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Moves cursor with shift\n * @param {Number} offset\n */\n moveCursorWithShift: function(offset) {\n var newSelection = this._selectionDirection === 'left'\n ? this.selectionStart + offset\n : this.selectionEnd + offset;\n this.setSelectionStartEndWithShift(this.selectionStart, this.selectionEnd, newSelection);\n return offset !== 0;\n },\n\n /**\n * Moves cursor up without shift\n * @param {Number} offset\n */\n moveCursorWithoutShift: function(offset) {\n if (offset < 0) {\n this.selectionStart += offset;\n this.selectionEnd = this.selectionStart;\n }\n else {\n this.selectionEnd += offset;\n this.selectionStart = this.selectionEnd;\n }\n return offset !== 0;\n },\n\n /**\n * Moves cursor left\n * @param {Event} e Event object\n */\n moveCursorLeft: function(e) {\n if (this.selectionStart === 0 && this.selectionEnd === 0) {\n return;\n }\n this._moveCursorLeftOrRight('Left', e);\n },\n\n /**\n * @private\n * @return {Boolean} true if a change happened\n */\n _move: function(e, prop, direction) {\n var newValue;\n if (e.altKey) {\n newValue = this['findWordBoundary' + direction](this[prop]);\n }\n else if (e.metaKey || e.keyCode === 35 || e.keyCode === 36 ) {\n newValue = this['findLineBoundary' + direction](this[prop]);\n }\n else {\n this[prop] += direction === 'Left' ? -1 : 1;\n return true;\n }\n if (typeof newValue !== undefined && this[prop] !== newValue) {\n this[prop] = newValue;\n return true;\n }\n },\n\n /**\n * @private\n */\n _moveLeft: function(e, prop) {\n return this._move(e, prop, 'Left');\n },\n\n /**\n * @private\n */\n _moveRight: function(e, prop) {\n return this._move(e, prop, 'Right');\n },\n\n /**\n * Moves cursor left without keeping selection\n * @param {Event} e\n */\n moveCursorLeftWithoutShift: function(e) {\n var change = true;\n this._selectionDirection = 'left';\n\n // only move cursor when there is no selection,\n // otherwise we discard it, and leave cursor on same place\n if (this.selectionEnd === this.selectionStart && this.selectionStart !== 0) {\n change = this._moveLeft(e, 'selectionStart');\n\n }\n this.selectionEnd = this.selectionStart;\n return change;\n },\n\n /**\n * Moves cursor left while keeping selection\n * @param {Event} e\n */\n moveCursorLeftWithShift: function(e) {\n if (this._selectionDirection === 'right' && this.selectionStart !== this.selectionEnd) {\n return this._moveLeft(e, 'selectionEnd');\n }\n else if (this.selectionStart !== 0){\n this._selectionDirection = 'left';\n return this._moveLeft(e, 'selectionStart');\n }\n },\n\n /**\n * Moves cursor right\n * @param {Event} e Event object\n */\n moveCursorRight: function(e) {\n if (this.selectionStart >= this._text.length && this.selectionEnd >= this._text.length) {\n return;\n }\n this._moveCursorLeftOrRight('Right', e);\n },\n\n /**\n * Moves cursor right or Left, fires event\n * @param {String} direction 'Left', 'Right'\n * @param {Event} e Event object\n */\n _moveCursorLeftOrRight: function(direction, e) {\n var actionName = 'moveCursor' + direction + 'With';\n this._currentCursorOpacity = 1;\n\n if (e.shiftKey) {\n actionName += 'Shift';\n }\n else {\n actionName += 'outShift';\n }\n if (this[actionName](e)) {\n this.abortCursorAnimation();\n this.initDelayedCursor();\n this._fireSelectionChanged();\n this._updateTextarea();\n }\n },\n\n /**\n * Moves cursor right while keeping selection\n * @param {Event} e\n */\n moveCursorRightWithShift: function(e) {\n if (this._selectionDirection === 'left' && this.selectionStart !== this.selectionEnd) {\n return this._moveRight(e, 'selectionStart');\n }\n else if (this.selectionEnd !== this._text.length) {\n this._selectionDirection = 'right';\n return this._moveRight(e, 'selectionEnd');\n }\n },\n\n /**\n * Moves cursor right without keeping selection\n * @param {Event} e Event object\n */\n moveCursorRightWithoutShift: function(e) {\n var changed = true;\n this._selectionDirection = 'right';\n\n if (this.selectionStart === this.selectionEnd) {\n changed = this._moveRight(e, 'selectionStart');\n this.selectionEnd = this.selectionStart;\n }\n else {\n this.selectionStart = this.selectionEnd;\n }\n return changed;\n },\n\n /**\n * Removes characters from start/end\n * start/end ar per grapheme position in _text array.\n *\n * @param {Number} start\n * @param {Number} end default to start + 1\n */\n removeChars: function(start, end) {\n if (typeof end === 'undefined') {\n end = start + 1;\n }\n this.removeStyleFromTo(start, end);\n this._text.splice(start, end - start);\n this.text = this._text.join('');\n this.set('dirty', true);\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this._removeExtraneousStyles();\n },\n\n /**\n * insert characters at start position, before start position.\n * start equal 1 it means the text get inserted between actual grapheme 0 and 1\n * if style array is provided, it must be as the same length of text in graphemes\n * if end is provided and is bigger than start, old text is replaced.\n * start/end ar per grapheme position in _text array.\n *\n * @param {String} text text to insert\n * @param {Array} style array of style objects\n * @param {Number} start\n * @param {Number} end default to start + 1\n */\n insertChars: function(text, style, start, end) {\n if (typeof end === 'undefined') {\n end = start;\n }\n if (end > start) {\n this.removeStyleFromTo(start, end);\n }\n var graphemes = fabric.util.string.graphemeSplit(text);\n this.insertNewStyleBlock(graphemes, start, style);\n this._text = [].concat(this._text.slice(0, start), graphemes, this._text.slice(end));\n this.text = this._text.join('');\n this.set('dirty', true);\n if (this._shouldClearDimensionCache()) {\n this.initDimensions();\n this.setCoords();\n }\n this._removeExtraneousStyles();\n },\n\n});\n\n\n/* _TO_SVG_START_ */\n(function() {\n var toFixed = fabric.util.toFixed,\n multipleSpacesRegex = / +/g;\n\n fabric.util.object.extend(fabric.Text.prototype, /** @lends fabric.Text.prototype */ {\n\n /**\n * Returns SVG representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n _toSVG: function() {\n var offsets = this._getSVGLeftTopOffsets(),\n textAndBg = this._getSVGTextAndBg(offsets.textTop, offsets.textLeft);\n return this._wrapSVGTextAndBg(textAndBg);\n },\n\n /**\n * Returns svg representation of an instance\n * @param {Function} [reviver] Method for further parsing of svg representation.\n * @return {String} svg representation of an instance\n */\n toSVG: function(reviver) {\n return this._createBaseSVGMarkup(\n this._toSVG(),\n { reviver: reviver, noStyle: true, withShadow: true }\n );\n },\n\n /**\n * @private\n */\n _getSVGLeftTopOffsets: function() {\n return {\n textLeft: -this.width / 2,\n textTop: -this.height / 2,\n lineTop: this.getHeightOfLine(0)\n };\n },\n\n /**\n * @private\n */\n _wrapSVGTextAndBg: function(textAndBg) {\n var noShadow = true,\n textDecoration = this.getSvgTextDecoration(this);\n return [\n textAndBg.textBgRects.join(''),\n '\\t\\t',\n textAndBg.textSpans.join(''),\n '\\n'\n ];\n },\n\n /**\n * @private\n * @param {Number} textTopOffset Text top offset\n * @param {Number} textLeftOffset Text left offset\n * @return {Object}\n */\n _getSVGTextAndBg: function(textTopOffset, textLeftOffset) {\n var textSpans = [],\n textBgRects = [],\n height = textTopOffset, lineOffset;\n // bounding-box background\n this._setSVGBg(textBgRects);\n\n // text and text-background\n for (var i = 0, len = this._textLines.length; i < len; i++) {\n lineOffset = this._getLineLeftOffset(i);\n if (this.textBackgroundColor || this.styleHas('textBackgroundColor', i)) {\n this._setSVGTextLineBg(textBgRects, i, textLeftOffset + lineOffset, height);\n }\n this._setSVGTextLineText(textSpans, i, textLeftOffset + lineOffset, height);\n height += this.getHeightOfLine(i);\n }\n\n return {\n textSpans: textSpans,\n textBgRects: textBgRects\n };\n },\n\n /**\n * @private\n */\n _createTextCharSpan: function(_char, styleDecl, left, top) {\n var shouldUseWhitespace = _char !== _char.trim() || _char.match(multipleSpacesRegex),\n styleProps = this.getSvgSpanStyles(styleDecl, shouldUseWhitespace),\n fillStyles = styleProps ? 'style=\"' + styleProps + '\"' : '',\n dy = styleDecl.deltaY, dySpan = '',\n NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n if (dy) {\n dySpan = ' dy=\"' + toFixed(dy, NUM_FRACTION_DIGITS) + '\" ';\n }\n return [\n '',\n fabric.util.string.escapeXml(_char),\n ''\n ].join('');\n },\n\n _setSVGTextLineText: function(textSpans, lineIndex, textLeftOffset, textTopOffset) {\n // set proper line offset\n var lineHeight = this.getHeightOfLine(lineIndex),\n isJustify = this.textAlign.indexOf('justify') !== -1,\n actualStyle,\n nextStyle,\n charsToRender = '',\n charBox, style,\n boxWidth = 0,\n line = this._textLines[lineIndex],\n timeToRender;\n\n textTopOffset += lineHeight * (1 - this._fontSizeFraction) / this.lineHeight;\n for (var i = 0, len = line.length - 1; i <= len; i++) {\n timeToRender = i === len || this.charSpacing;\n charsToRender += line[i];\n charBox = this.__charBounds[lineIndex][i];\n if (boxWidth === 0) {\n textLeftOffset += charBox.kernedWidth - charBox.width;\n boxWidth += charBox.width;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n if (isJustify && !timeToRender) {\n if (this._reSpaceAndTab.test(line[i])) {\n timeToRender = true;\n }\n }\n if (!timeToRender) {\n // if we have charSpacing, we render char by char\n actualStyle = actualStyle || this.getCompleteStyleDeclaration(lineIndex, i);\n nextStyle = this.getCompleteStyleDeclaration(lineIndex, i + 1);\n timeToRender = this._hasStyleChangedForSvg(actualStyle, nextStyle);\n }\n if (timeToRender) {\n style = this._getStyleDeclaration(lineIndex, i) || { };\n textSpans.push(this._createTextCharSpan(charsToRender, style, textLeftOffset, textTopOffset));\n charsToRender = '';\n actualStyle = nextStyle;\n textLeftOffset += boxWidth;\n boxWidth = 0;\n }\n }\n },\n\n _pushTextBgRect: function(textBgRects, color, left, top, width, height) {\n var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;\n textBgRects.push(\n '\\t\\t\\n');\n },\n\n _setSVGTextLineBg: function(textBgRects, i, leftOffset, textTopOffset) {\n var line = this._textLines[i],\n heightOfLine = this.getHeightOfLine(i) / this.lineHeight,\n boxWidth = 0,\n boxStart = 0,\n charBox, currentColor,\n lastColor = this.getValueOfPropertyAt(i, 0, 'textBackgroundColor');\n for (var j = 0, jlen = line.length; j < jlen; j++) {\n charBox = this.__charBounds[i][j];\n currentColor = this.getValueOfPropertyAt(i, j, 'textBackgroundColor');\n if (currentColor !== lastColor) {\n lastColor && this._pushTextBgRect(textBgRects, lastColor, leftOffset + boxStart,\n textTopOffset, boxWidth, heightOfLine);\n boxStart = charBox.left;\n boxWidth = charBox.width;\n lastColor = currentColor;\n }\n else {\n boxWidth += charBox.kernedWidth;\n }\n }\n currentColor && this._pushTextBgRect(textBgRects, currentColor, leftOffset + boxStart,\n textTopOffset, boxWidth, heightOfLine);\n },\n\n /**\n * Adobe Illustrator (at least CS5) is unable to render rgba()-based fill values\n * we work around it by \"moving\" alpha channel into opacity attribute and setting fill's alpha to 1\n *\n * @private\n * @param {*} value\n * @return {String}\n */\n _getFillAttributes: function(value) {\n var fillColor = (value && typeof value === 'string') ? new fabric.Color(value) : '';\n if (!fillColor || !fillColor.getSource() || fillColor.getAlpha() === 1) {\n return 'fill=\"' + value + '\"';\n }\n return 'opacity=\"' + fillColor.getAlpha() + '\" fill=\"' + fillColor.setAlpha(1).toRgb() + '\"';\n },\n\n /**\n * @private\n */\n _getSVGLineTopOffset: function(lineIndex) {\n var lineTopOffset = 0, lastHeight = 0;\n for (var j = 0; j < lineIndex; j++) {\n lineTopOffset += this.getHeightOfLine(j);\n }\n lastHeight = this.getHeightOfLine(j);\n return {\n lineTop: lineTopOffset,\n offset: (this._fontSizeMult - this._fontSizeFraction) * lastHeight / (this.lineHeight * this._fontSizeMult)\n };\n },\n\n /**\n * Returns styles-string for svg-export\n * @param {Boolean} skipShadow a boolean to skip shadow filter output\n * @return {String}\n */\n getSvgStyles: function(skipShadow) {\n var svgStyle = fabric.Object.prototype.getSvgStyles.call(this, skipShadow);\n return svgStyle + ' white-space: pre;';\n },\n });\n})();\n/* _TO_SVG_END_ */\n\n\n(function(global) {\n\n 'use strict';\n\n var fabric = global.fabric || (global.fabric = {});\n\n /**\n * Textbox class, based on IText, allows the user to resize the text rectangle\n * and wraps lines automatically. Textboxes have their Y scaling locked, the\n * user can only change width. Height is adjusted automatically based on the\n * wrapping of lines.\n * @class fabric.Textbox\n * @extends fabric.IText\n * @mixes fabric.Observable\n * @return {fabric.Textbox} thisArg\n * @see {@link fabric.Textbox#initialize} for constructor definition\n */\n fabric.Textbox = fabric.util.createClass(fabric.IText, fabric.Observable, {\n\n /**\n * Type of an object\n * @type String\n * @default\n */\n type: 'textbox',\n\n /**\n * Minimum width of textbox, in pixels.\n * @type Number\n * @default\n */\n minWidth: 20,\n\n /**\n * Minimum calculated width of a textbox, in pixels.\n * fixed to 2 so that an empty textbox cannot go to 0\n * and is still selectable without text.\n * @type Number\n * @default\n */\n dynamicMinWidth: 2,\n\n /**\n * Cached array of text wrapping.\n * @type Array\n */\n __cachedLines: null,\n\n /**\n * Override standard Object class values\n */\n lockScalingFlip: true,\n\n /**\n * Override standard Object class values\n * Textbox needs this on false\n */\n noScaleCache: false,\n\n /**\n * Properties which when set cause object to change dimensions\n * @type Object\n * @private\n */\n _dimensionAffectingProps: fabric.Text.prototype._dimensionAffectingProps.concat('width'),\n\n /**\n * Use this regular expression to split strings in breakable lines\n * @private\n */\n _wordJoiners: /[ \\t\\r]/,\n\n /**\n * Use this boolean property in order to split strings that have no white space concept.\n * this is a cheap way to help with chinese/japaense\n * @type Boolean\n * @since 2.6.0\n */\n splitByGrapheme: false,\n\n /**\n * Unlike superclass's version of this function, Textbox does not update\n * its width.\n * @private\n * @override\n */\n initDimensions: function() {\n if (this.__skipDimension) {\n return;\n }\n this.isEditing && this.initDelayedCursor();\n this.clearContextTop();\n this._clearCache();\n // clear dynamicMinWidth as it will be different after we re-wrap line\n this.dynamicMinWidth = 0;\n // wrap lines\n this._styleMap = this._generateStyleMap(this._splitText());\n // if after wrapping, the width is smaller than dynamicMinWidth, change the width and re-wrap\n if (this.dynamicMinWidth > this.width) {\n this._set('width', this.dynamicMinWidth);\n }\n if (this.textAlign.indexOf('justify') !== -1) {\n // once text is measured we need to make space fatter to make justified text.\n this.enlargeSpaces();\n }\n // clear cache and re-calculate height\n this.height = this.calcTextHeight();\n this.saveState({ propertySet: '_dimensionAffectingProps' });\n },\n\n /**\n * Generate an object that translates the style object so that it is\n * broken up by visual lines (new lines and automatic wrapping).\n * The original text styles object is broken up by actual lines (new lines only),\n * which is only sufficient for Text / IText\n * @private\n */\n _generateStyleMap: function(textInfo) {\n var realLineCount = 0,\n realLineCharCount = 0,\n charCount = 0,\n map = {};\n\n for (var i = 0; i < textInfo.graphemeLines.length; i++) {\n if (textInfo.graphemeText[charCount] === '\\n' && i > 0) {\n realLineCharCount = 0;\n charCount++;\n realLineCount++;\n }\n else if (!this.splitByGrapheme && this._reSpaceAndTab.test(textInfo.graphemeText[charCount]) && i > 0) {\n // this case deals with space's that are removed from end of lines when wrapping\n realLineCharCount++;\n charCount++;\n }\n\n map[i] = { line: realLineCount, offset: realLineCharCount };\n\n charCount += textInfo.graphemeLines[i].length;\n realLineCharCount += textInfo.graphemeLines[i].length;\n }\n\n return map;\n },\n\n /**\n * Returns true if object has a style property or has it on a specified line\n * @param {Number} lineIndex\n * @return {Boolean}\n */\n styleHas: function(property, lineIndex) {\n if (this._styleMap && !this.isWrapping) {\n var map = this._styleMap[lineIndex];\n if (map) {\n lineIndex = map.line;\n }\n }\n return fabric.Text.prototype.styleHas.call(this, property, lineIndex);\n },\n\n /**\n * Returns true if object has no styling or no styling in a line\n * @param {Number} lineIndex , lineIndex is on wrapped lines.\n * @return {Boolean}\n */\n isEmptyStyles: function(lineIndex) {\n if (!this.styles) {\n return true;\n }\n var offset = 0, nextLineIndex = lineIndex + 1, nextOffset, obj, shouldLimit = false,\n map = this._styleMap[lineIndex], mapNextLine = this._styleMap[lineIndex + 1];\n if (map) {\n lineIndex = map.line;\n offset = map.offset;\n }\n if (mapNextLine) {\n nextLineIndex = mapNextLine.line;\n shouldLimit = nextLineIndex === lineIndex;\n nextOffset = mapNextLine.offset;\n }\n obj = typeof lineIndex === 'undefined' ? this.styles : { line: this.styles[lineIndex] };\n for (var p1 in obj) {\n for (var p2 in obj[p1]) {\n if (p2 >= offset && (!shouldLimit || p2 < nextOffset)) {\n // eslint-disable-next-line no-unused-vars\n for (var p3 in obj[p1][p2]) {\n return false;\n }\n }\n }\n }\n return true;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _getStyleDeclaration: function(lineIndex, charIndex) {\n if (this._styleMap && !this.isWrapping) {\n var map = this._styleMap[lineIndex];\n if (!map) {\n return null;\n }\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n }\n return this.callSuper('_getStyleDeclaration', lineIndex, charIndex);\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @param {Object} style\n * @private\n */\n _setStyleDeclaration: function(lineIndex, charIndex, style) {\n var map = this._styleMap[lineIndex];\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n\n this.styles[lineIndex][charIndex] = style;\n },\n\n /**\n * @param {Number} lineIndex\n * @param {Number} charIndex\n * @private\n */\n _deleteStyleDeclaration: function(lineIndex, charIndex) {\n var map = this._styleMap[lineIndex];\n lineIndex = map.line;\n charIndex = map.offset + charIndex;\n delete this.styles[lineIndex][charIndex];\n },\n\n /**\n * probably broken need a fix\n * Returns the real style line that correspond to the wrapped lineIndex line\n * Used just to verify if the line does exist or not.\n * @param {Number} lineIndex\n * @returns {Boolean} if the line exists or not\n * @private\n */\n _getLineStyle: function(lineIndex) {\n var map = this._styleMap[lineIndex];\n return !!this.styles[map.line];\n },\n\n /**\n * Set the line style to an empty object so that is initialized\n * @param {Number} lineIndex\n * @param {Object} style\n * @private\n */\n _setLineStyle: function(lineIndex) {\n var map = this._styleMap[lineIndex];\n this.styles[map.line] = {};\n },\n\n /**\n * Wraps text using the 'width' property of Textbox. First this function\n * splits text on newlines, so we preserve newlines entered by the user.\n * Then it wraps each line using the width of the Textbox by calling\n * _wrapLine().\n * @param {Array} lines The string array of text that is split into lines\n * @param {Number} desiredWidth width you want to wrap to\n * @returns {Array} Array of lines\n */\n _wrapText: function(lines, desiredWidth) {\n var wrapped = [], i;\n this.isWrapping = true;\n for (i = 0; i < lines.length; i++) {\n wrapped = wrapped.concat(this._wrapLine(lines[i], i, desiredWidth));\n }\n this.isWrapping = false;\n return wrapped;\n },\n\n /**\n * Helper function to measure a string of text, given its lineIndex and charIndex offset\n * it gets called when charBounds are not available yet.\n * @param {CanvasRenderingContext2D} ctx\n * @param {String} text\n * @param {number} lineIndex\n * @param {number} charOffset\n * @returns {number}\n * @private\n */\n _measureWord: function(word, lineIndex, charOffset) {\n var width = 0, prevGrapheme, skipLeft = true;\n charOffset = charOffset || 0;\n for (var i = 0, len = word.length; i < len; i++) {\n var box = this._getGraphemeBox(word[i], lineIndex, i + charOffset, prevGrapheme, skipLeft);\n width += box.kernedWidth;\n prevGrapheme = word[i];\n }\n return width;\n },\n\n /**\n * Wraps a line of text using the width of the Textbox and a context.\n * @param {Array} line The grapheme array that represent the line\n * @param {Number} lineIndex\n * @param {Number} desiredWidth width you want to wrap the line to\n * @param {Number} reservedSpace space to remove from wrapping for custom functionalities\n * @returns {Array} Array of line(s) into which the given text is wrapped\n * to.\n */\n _wrapLine: function(_line, lineIndex, desiredWidth, reservedSpace) {\n var lineWidth = 0,\n splitByGrapheme = this.splitByGrapheme,\n graphemeLines = [],\n line = [],\n // spaces in different languges?\n words = splitByGrapheme ? fabric.util.string.graphemeSplit(_line) : _line.split(this._wordJoiners),\n word = '',\n offset = 0,\n infix = splitByGrapheme ? '' : ' ',\n wordWidth = 0,\n infixWidth = 0,\n largestWordWidth = 0,\n lineJustStarted = true,\n additionalSpace = splitByGrapheme ? 0 : this._getWidthOfCharSpacing(),\n reservedSpace = reservedSpace || 0;\n // fix a difference between split and graphemeSplit\n if (words.length === 0) {\n words.push([]);\n }\n desiredWidth -= reservedSpace;\n for (var i = 0; i < words.length; i++) {\n // if using splitByGrapheme words are already in graphemes.\n word = splitByGrapheme ? words[i] : fabric.util.string.graphemeSplit(words[i]);\n wordWidth = this._measureWord(word, lineIndex, offset);\n offset += word.length;\n\n lineWidth += infixWidth + wordWidth - additionalSpace;\n\n if (lineWidth >= desiredWidth && !lineJustStarted) {\n graphemeLines.push(line);\n line = [];\n lineWidth = wordWidth;\n lineJustStarted = true;\n }\n else {\n lineWidth += additionalSpace;\n }\n\n if (!lineJustStarted && !splitByGrapheme) {\n line.push(infix);\n }\n line = line.concat(word);\n\n infixWidth = this._measureWord([infix], lineIndex, offset);\n offset++;\n lineJustStarted = false;\n // keep track of largest word\n if (wordWidth > largestWordWidth) {\n largestWordWidth = wordWidth;\n }\n }\n\n i && graphemeLines.push(line);\n\n if (largestWordWidth + reservedSpace > this.dynamicMinWidth) {\n this.dynamicMinWidth = largestWordWidth - additionalSpace + reservedSpace;\n }\n\n return graphemeLines;\n },\n\n /**\n * Detect if the text line is ended with an hard break\n * text and itext do not have wrapping, return false\n * @param {Number} lineIndex text to split\n * @return {Boolean}\n */\n isEndOfWrapping: function(lineIndex) {\n if (!this._styleMap[lineIndex + 1]) {\n // is last line, return true;\n return true;\n }\n if (this._styleMap[lineIndex + 1].line !== this._styleMap[lineIndex].line) {\n // this is last line before a line break, return true;\n return true;\n }\n return false;\n },\n\n /**\n * Detect if a line has a linebreak and so we need to account for it when moving\n * and counting style.\n * @return Number\n */\n missingNewlineOffset: function(lineIndex) {\n if (this.splitByGrapheme) {\n return this.isEndOfWrapping(lineIndex) ? 1 : 0;\n }\n return 1;\n },\n\n /**\n * Gets lines of text to render in the Textbox. This function calculates\n * text wrapping on the fly every time it is called.\n * @param {String} text text to split\n * @returns {Array} Array of lines in the Textbox.\n * @override\n */\n _splitTextIntoLines: function(text) {\n var newText = fabric.Text.prototype._splitTextIntoLines.call(this, text),\n graphemeLines = this._wrapText(newText.lines, this.width),\n lines = new Array(graphemeLines.length);\n for (var i = 0; i < graphemeLines.length; i++) {\n lines[i] = graphemeLines[i].join('');\n }\n newText.lines = lines;\n newText.graphemeLines = graphemeLines;\n return newText;\n },\n\n getMinWidth: function() {\n return Math.max(this.minWidth, this.dynamicMinWidth);\n },\n\n _removeExtraneousStyles: function() {\n var linesToKeep = {};\n for (var prop in this._styleMap) {\n if (this._textLines[prop]) {\n linesToKeep[this._styleMap[prop].line] = 1;\n }\n }\n for (var prop in this.styles) {\n if (!linesToKeep[prop]) {\n delete this.styles[prop];\n }\n }\n },\n\n /**\n * Returns object representation of an instance\n * @method toObject\n * @param {Array} [propertiesToInclude] Any properties that you might want to additionally include in the output\n * @return {Object} object representation of an instance\n */\n toObject: function(propertiesToInclude) {\n return this.callSuper('toObject', ['minWidth', 'splitByGrapheme'].concat(propertiesToInclude));\n }\n });\n\n /**\n * Returns fabric.Textbox instance from an object representation\n * @static\n * @memberOf fabric.Textbox\n * @param {Object} object Object to create an instance from\n * @param {Function} [callback] Callback to invoke when an fabric.Textbox instance is created\n */\n fabric.Textbox.fromObject = function(object, callback) {\n return fabric.Object._fromObject('Textbox', object, callback, 'text');\n };\n})(typeof exports !== 'undefined' ? exports : this);\n\n","'use strict'\n\nfunction _process (v, mod) {\n var i\n var r\n\n if (typeof mod === 'function') {\n r = mod(v)\n if (r !== undefined) {\n v = r\n }\n } else if (Array.isArray(mod)) {\n for (i = 0; i < mod.length; i++) {\n r = mod[i](v)\n if (r !== undefined) {\n v = r\n }\n }\n }\n\n return v\n}\n\nfunction parseKey (key, val) {\n // detect negative index notation\n if (key[0] === '-' && Array.isArray(val) && /^-\\d+$/.test(key)) {\n return val.length + parseInt(key, 10)\n }\n return key\n}\n\nfunction isIndex (k) {\n return /^\\d+$/.test(k)\n}\n\nfunction isObject (val) {\n return Object.prototype.toString.call(val) === '[object Object]'\n}\n\nfunction isArrayOrObject (val) {\n return Object(val) === val\n}\n\nfunction isEmptyObject (val) {\n return Object.keys(val).length === 0\n}\n\nvar blacklist = ['__proto__', 'prototype', 'constructor']\nvar blacklistFilter = function (part) { return blacklist.indexOf(part) === -1 }\n\nfunction parsePath (path, sep) {\n if (path.indexOf('[') >= 0) {\n path = path.replace(/\\[/g, '.').replace(/]/g, '')\n }\n\n var parts = path.split(sep)\n\n var check = parts.filter(blacklistFilter)\n\n if (check.length !== parts.length) {\n throw Error('Refusing to update blacklisted property ' + path)\n }\n\n return parts\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction DotObject (separator, override, useArray, useBrackets) {\n if (!(this instanceof DotObject)) {\n return new DotObject(separator, override, useArray, useBrackets)\n }\n\n if (typeof override === 'undefined') override = false\n if (typeof useArray === 'undefined') useArray = true\n if (typeof useBrackets === 'undefined') useBrackets = true\n this.separator = separator || '.'\n this.override = override\n this.useArray = useArray\n this.useBrackets = useBrackets\n this.keepArray = false\n\n // contains touched arrays\n this.cleanup = []\n}\n\nvar dotDefault = new DotObject('.', false, true, true)\nfunction wrap (method) {\n return function () {\n return dotDefault[method].apply(dotDefault, arguments)\n }\n}\n\nDotObject.prototype._fill = function (a, obj, v, mod) {\n var k = a.shift()\n\n if (a.length > 0) {\n obj[k] = obj[k] || (this.useArray && isIndex(a[0]) ? [] : {})\n\n if (!isArrayOrObject(obj[k])) {\n if (this.override) {\n obj[k] = {}\n } else {\n if (!(isArrayOrObject(v) && isEmptyObject(v))) {\n throw new Error(\n 'Trying to redefine `' + k + '` which is a ' + typeof obj[k]\n )\n }\n\n return\n }\n }\n\n this._fill(a, obj[k], v, mod)\n } else {\n if (!this.override && isArrayOrObject(obj[k]) && !isEmptyObject(obj[k])) {\n if (!(isArrayOrObject(v) && isEmptyObject(v))) {\n throw new Error(\"Trying to redefine non-empty obj['\" + k + \"']\")\n }\n\n return\n }\n\n obj[k] = _process(v, mod)\n }\n}\n\n/**\n *\n * Converts an object with dotted-key/value pairs to it's expanded version\n *\n * Optionally transformed by a set of modifiers.\n *\n * Usage:\n *\n * var row = {\n * 'nr': 200,\n * 'doc.name': ' My Document '\n * }\n *\n * var mods = {\n * 'doc.name': [_s.trim, _s.underscored]\n * }\n *\n * dot.object(row, mods)\n *\n * @param {Object} obj\n * @param {Object} mods\n */\nDotObject.prototype.object = function (obj, mods) {\n var self = this\n\n Object.keys(obj).forEach(function (k) {\n var mod = mods === undefined ? null : mods[k]\n // normalize array notation.\n var ok = parsePath(k, self.separator).join(self.separator)\n\n if (ok.indexOf(self.separator) !== -1) {\n self._fill(ok.split(self.separator), obj, obj[k], mod)\n delete obj[k]\n } else {\n obj[k] = _process(obj[k], mod)\n }\n })\n\n return obj\n}\n\n/**\n * @param {String} path dotted path\n * @param {String} v value to be set\n * @param {Object} obj object to be modified\n * @param {Function|Array} mod optional modifier\n */\nDotObject.prototype.str = function (path, v, obj, mod) {\n var ok = parsePath(path, this.separator).join(this.separator)\n\n if (path.indexOf(this.separator) !== -1) {\n this._fill(ok.split(this.separator), obj, v, mod)\n } else {\n obj[path] = _process(v, mod)\n }\n\n return obj\n}\n\n/**\n *\n * Pick a value from an object using dot notation.\n *\n * Optionally remove the value\n *\n * @param {String} path\n * @param {Object} obj\n * @param {Boolean} remove\n */\nDotObject.prototype.pick = function (path, obj, remove, reindexArray) {\n var i\n var keys\n var val\n var key\n var cp\n\n keys = parsePath(path, this.separator)\n for (i = 0; i < keys.length; i++) {\n key = parseKey(keys[i], obj)\n if (obj && typeof obj === 'object' && key in obj) {\n if (i === keys.length - 1) {\n if (remove) {\n val = obj[key]\n if (reindexArray && Array.isArray(obj)) {\n obj.splice(key, 1)\n } else {\n delete obj[key]\n }\n if (Array.isArray(obj)) {\n cp = keys.slice(0, -1).join('.')\n if (this.cleanup.indexOf(cp) === -1) {\n this.cleanup.push(cp)\n }\n }\n return val\n } else {\n return obj[key]\n }\n } else {\n obj = obj[key]\n }\n } else {\n return undefined\n }\n }\n if (remove && Array.isArray(obj)) {\n obj = obj.filter(function (n) {\n return n !== undefined\n })\n }\n return obj\n}\n/**\n *\n * Delete value from an object using dot notation.\n *\n * @param {String} path\n * @param {Object} obj\n * @return {any} The removed value\n */\nDotObject.prototype.delete = function (path, obj) {\n return this.remove(path, obj, true)\n}\n\n/**\n *\n * Remove value from an object using dot notation.\n *\n * Will remove multiple items if path is an array.\n * In this case array indexes will be retained until all\n * removals have been processed.\n *\n * Use dot.delete() to automatically re-index arrays.\n *\n * @param {String|Array} path\n * @param {Object} obj\n * @param {Boolean} reindexArray\n * @return {any} The removed value\n */\nDotObject.prototype.remove = function (path, obj, reindexArray) {\n var i\n\n this.cleanup = []\n if (Array.isArray(path)) {\n for (i = 0; i < path.length; i++) {\n this.pick(path[i], obj, true, reindexArray)\n }\n if (!reindexArray) {\n this._cleanup(obj)\n }\n return obj\n } else {\n return this.pick(path, obj, true, reindexArray)\n }\n}\n\nDotObject.prototype._cleanup = function (obj) {\n var ret\n var i\n var keys\n var root\n if (this.cleanup.length) {\n for (i = 0; i < this.cleanup.length; i++) {\n keys = this.cleanup[i].split('.')\n root = keys.splice(0, -1).join('.')\n ret = root ? this.pick(root, obj) : obj\n ret = ret[keys[0]].filter(function (v) {\n return v !== undefined\n })\n this.set(this.cleanup[i], ret, obj)\n }\n this.cleanup = []\n }\n}\n\n/**\n * Alias method for `dot.remove`\n *\n * Note: this is not an alias for dot.delete()\n *\n * @param {String|Array} path\n * @param {Object} obj\n * @param {Boolean} reindexArray\n * @return {any} The removed value\n */\nDotObject.prototype.del = DotObject.prototype.remove\n\n/**\n *\n * Move a property from one place to the other.\n *\n * If the source path does not exist (undefined)\n * the target property will not be set.\n *\n * @param {String} source\n * @param {String} target\n * @param {Object} obj\n * @param {Function|Array} mods\n * @param {Boolean} merge\n */\nDotObject.prototype.move = function (source, target, obj, mods, merge) {\n if (typeof mods === 'function' || Array.isArray(mods)) {\n this.set(target, _process(this.pick(source, obj, true), mods), obj, merge)\n } else {\n merge = mods\n this.set(target, this.pick(source, obj, true), obj, merge)\n }\n\n return obj\n}\n\n/**\n *\n * Transfer a property from one object to another object.\n *\n * If the source path does not exist (undefined)\n * the property on the other object will not be set.\n *\n * @param {String} source\n * @param {String} target\n * @param {Object} obj1\n * @param {Object} obj2\n * @param {Function|Array} mods\n * @param {Boolean} merge\n */\nDotObject.prototype.transfer = function (\n source,\n target,\n obj1,\n obj2,\n mods,\n merge\n) {\n if (typeof mods === 'function' || Array.isArray(mods)) {\n this.set(\n target,\n _process(this.pick(source, obj1, true), mods),\n obj2,\n merge\n )\n } else {\n merge = mods\n this.set(target, this.pick(source, obj1, true), obj2, merge)\n }\n\n return obj2\n}\n\n/**\n *\n * Copy a property from one object to another object.\n *\n * If the source path does not exist (undefined)\n * the property on the other object will not be set.\n *\n * @param {String} source\n * @param {String} target\n * @param {Object} obj1\n * @param {Object} obj2\n * @param {Function|Array} mods\n * @param {Boolean} merge\n */\nDotObject.prototype.copy = function (source, target, obj1, obj2, mods, merge) {\n if (typeof mods === 'function' || Array.isArray(mods)) {\n this.set(\n target,\n _process(\n // clone what is picked\n JSON.parse(JSON.stringify(this.pick(source, obj1, false))),\n mods\n ),\n obj2,\n merge\n )\n } else {\n merge = mods\n this.set(target, this.pick(source, obj1, false), obj2, merge)\n }\n\n return obj2\n}\n\n/**\n *\n * Set a property on an object using dot notation.\n *\n * @param {String} path\n * @param {any} val\n * @param {Object} obj\n * @param {Boolean} merge\n */\nDotObject.prototype.set = function (path, val, obj, merge) {\n var i\n var k\n var keys\n var key\n\n // Do not operate if the value is undefined.\n if (typeof val === 'undefined') {\n return obj\n }\n keys = parsePath(path, this.separator)\n\n for (i = 0; i < keys.length; i++) {\n key = keys[i]\n if (i === keys.length - 1) {\n if (merge && isObject(val) && isObject(obj[key])) {\n for (k in val) {\n if (hasOwnProperty.call(val, k)) {\n obj[key][k] = val[k]\n }\n }\n } else if (merge && Array.isArray(obj[key]) && Array.isArray(val)) {\n for (var j = 0; j < val.length; j++) {\n obj[keys[i]].push(val[j])\n }\n } else {\n obj[key] = val\n }\n } else if (\n // force the value to be an object\n !hasOwnProperty.call(obj, key) ||\n (!isObject(obj[key]) && !Array.isArray(obj[key]))\n ) {\n // initialize as array if next key is numeric\n if (/^\\d+$/.test(keys[i + 1])) {\n obj[key] = []\n } else {\n obj[key] = {}\n }\n }\n obj = obj[key]\n }\n return obj\n}\n\n/**\n *\n * Transform an object\n *\n * Usage:\n *\n * var obj = {\n * \"id\": 1,\n * \"some\": {\n * \"thing\": \"else\"\n * }\n * }\n *\n * var transform = {\n * \"id\": \"nr\",\n * \"some.thing\": \"name\"\n * }\n *\n * var tgt = dot.transform(transform, obj)\n *\n * @param {Object} recipe Transform recipe\n * @param {Object} obj Object to be transformed\n * @param {Array} mods modifiers for the target\n */\nDotObject.prototype.transform = function (recipe, obj, tgt) {\n obj = obj || {}\n tgt = tgt || {}\n Object.keys(recipe).forEach(\n function (key) {\n this.set(recipe[key], this.pick(key, obj), tgt)\n }.bind(this)\n )\n return tgt\n}\n\n/**\n *\n * Convert object to dotted-key/value pair\n *\n * Usage:\n *\n * var tgt = dot.dot(obj)\n *\n * or\n *\n * var tgt = {}\n * dot.dot(obj, tgt)\n *\n * @param {Object} obj source object\n * @param {Object} tgt target object\n * @param {Array} path path array (internal)\n */\nDotObject.prototype.dot = function (obj, tgt, path) {\n tgt = tgt || {}\n path = path || []\n var isArray = Array.isArray(obj)\n\n Object.keys(obj).forEach(\n function (key) {\n var index = isArray && this.useBrackets ? '[' + key + ']' : key\n if (\n isArrayOrObject(obj[key]) &&\n ((isObject(obj[key]) && !isEmptyObject(obj[key])) ||\n (Array.isArray(obj[key]) && !this.keepArray && obj[key].length !== 0))\n ) {\n if (isArray && this.useBrackets) {\n var previousKey = path[path.length - 1] || ''\n return this.dot(\n obj[key],\n tgt,\n path.slice(0, -1).concat(previousKey + index)\n )\n } else {\n return this.dot(obj[key], tgt, path.concat(index))\n }\n } else {\n if (isArray && this.useBrackets) {\n tgt[path.join(this.separator).concat('[' + key + ']')] = obj[key]\n } else {\n tgt[path.concat(index).join(this.separator)] = obj[key]\n }\n }\n }.bind(this)\n )\n return tgt\n}\n\nDotObject.pick = wrap('pick')\nDotObject.move = wrap('move')\nDotObject.transfer = wrap('transfer')\nDotObject.transform = wrap('transform')\nDotObject.copy = wrap('copy')\nDotObject.object = wrap('object')\nDotObject.str = wrap('str')\nDotObject.set = wrap('set')\nDotObject.delete = wrap('delete')\nDotObject.del = DotObject.remove = wrap('remove')\nDotObject.dot = wrap('dot');\n['override', 'overwrite'].forEach(function (prop) {\n Object.defineProperty(DotObject, prop, {\n get: function () {\n return dotDefault.override\n },\n set: function (val) {\n dotDefault.override = !!val\n }\n })\n});\n['useArray', 'keepArray', 'useBrackets'].forEach(function (prop) {\n Object.defineProperty(DotObject, prop, {\n get: function () {\n return dotDefault[prop]\n },\n set: function (val) {\n dotDefault[prop] = val\n }\n })\n})\n\nDotObject._process = _process\n\nmodule.exports = DotObject\n","/*global XDomainRequest:false */\n\nvar TraceKit = require('../vendor/TraceKit/tracekit');\nvar stringify = require('../vendor/json-stringify-safe/stringify');\nvar md5 = require('../vendor/md5/md5');\nvar RavenConfigError = require('./configError');\n\nvar utils = require('./utils');\nvar isErrorEvent = utils.isErrorEvent;\nvar isDOMError = utils.isDOMError;\nvar isDOMException = utils.isDOMException;\nvar isError = utils.isError;\nvar isObject = utils.isObject;\nvar isPlainObject = utils.isPlainObject;\nvar isUndefined = utils.isUndefined;\nvar isFunction = utils.isFunction;\nvar isString = utils.isString;\nvar isArray = utils.isArray;\nvar isEmptyObject = utils.isEmptyObject;\nvar each = utils.each;\nvar objectMerge = utils.objectMerge;\nvar truncate = utils.truncate;\nvar objectFrozen = utils.objectFrozen;\nvar hasKey = utils.hasKey;\nvar joinRegExp = utils.joinRegExp;\nvar urlencode = utils.urlencode;\nvar uuid4 = utils.uuid4;\nvar htmlTreeAsString = utils.htmlTreeAsString;\nvar isSameException = utils.isSameException;\nvar isSameStacktrace = utils.isSameStacktrace;\nvar parseUrl = utils.parseUrl;\nvar fill = utils.fill;\nvar supportsFetch = utils.supportsFetch;\nvar supportsReferrerPolicy = utils.supportsReferrerPolicy;\nvar serializeKeysForMessage = utils.serializeKeysForMessage;\nvar serializeException = utils.serializeException;\nvar sanitize = utils.sanitize;\n\nvar wrapConsoleMethod = require('./console').wrapMethod;\n\nvar dsnKeys = 'source protocol user pass host port path'.split(' '),\n dsnPattern = /^(?:(\\w+):)?\\/\\/(?:(\\w+)(:\\w+)?@)?([\\w\\.-]+)(?::(\\d+))?(\\/.*)/;\n\nfunction now() {\n return +new Date();\n}\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar _document = _window.document;\nvar _navigator = _window.navigator;\n\nfunction keepOriginalCallback(original, callback) {\n return isFunction(callback)\n ? function(data) {\n return callback(data, original);\n }\n : callback;\n}\n\n// First, check for JSON support\n// If there is no JSON, we no-op the core features of Raven\n// since JSON is required to encode the payload\nfunction Raven() {\n this._hasJSON = !!(typeof JSON === 'object' && JSON.stringify);\n // Raven can run in contexts where there's no document (react-native)\n this._hasDocument = !isUndefined(_document);\n this._hasNavigator = !isUndefined(_navigator);\n this._lastCapturedException = null;\n this._lastData = null;\n this._lastEventId = null;\n this._globalServer = null;\n this._globalKey = null;\n this._globalProject = null;\n this._globalContext = {};\n this._globalOptions = {\n // SENTRY_RELEASE can be injected by https://github.com/getsentry/sentry-webpack-plugin\n release: _window.SENTRY_RELEASE && _window.SENTRY_RELEASE.id,\n logger: 'javascript',\n ignoreErrors: [],\n ignoreUrls: [],\n whitelistUrls: [],\n includePaths: [],\n headers: null,\n collectWindowErrors: true,\n captureUnhandledRejections: true,\n maxMessageLength: 0,\n // By default, truncates URL values to 250 chars\n maxUrlLength: 250,\n stackTraceLimit: 50,\n autoBreadcrumbs: true,\n instrument: true,\n sampleRate: 1,\n sanitizeKeys: []\n };\n this._fetchDefaults = {\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: supportsReferrerPolicy() ? 'origin' : ''\n };\n this._ignoreOnError = 0;\n this._isRavenInstalled = false;\n this._originalErrorStackTraceLimit = Error.stackTraceLimit;\n // capture references to window.console *and* all its methods first\n // before the console plugin has a chance to monkey patch\n this._originalConsole = _window.console || {};\n this._originalConsoleMethods = {};\n this._plugins = [];\n this._startTime = now();\n this._wrappedBuiltIns = [];\n this._breadcrumbs = [];\n this._lastCapturedEvent = null;\n this._keypressTimeout;\n this._location = _window.location;\n this._lastHref = this._location && this._location.href;\n this._resetBackoff();\n\n // eslint-disable-next-line guard-for-in\n for (var method in this._originalConsole) {\n this._originalConsoleMethods[method] = this._originalConsole[method];\n }\n}\n\n/*\n * The core Raven singleton\n *\n * @this {Raven}\n */\n\nRaven.prototype = {\n // Hardcode version string so that raven source can be loaded directly via\n // webpack (using a build step causes webpack #1617). Grunt verifies that\n // this value matches package.json during build.\n // See: https://github.com/getsentry/raven-js/issues/465\n VERSION: '3.27.2',\n\n debug: false,\n\n TraceKit: TraceKit, // alias to TraceKit\n\n /*\n * Configure Raven with a DSN and extra options\n *\n * @param {string} dsn The public Sentry DSN\n * @param {object} options Set of global options [optional]\n * @return {Raven}\n */\n config: function(dsn, options) {\n var self = this;\n\n if (self._globalServer) {\n this._logDebug('error', 'Error: Raven has already been configured');\n return self;\n }\n if (!dsn) return self;\n\n var globalOptions = self._globalOptions;\n\n // merge in options\n if (options) {\n each(options, function(key, value) {\n // tags and extra are special and need to be put into context\n if (key === 'tags' || key === 'extra' || key === 'user') {\n self._globalContext[key] = value;\n } else {\n globalOptions[key] = value;\n }\n });\n }\n\n self.setDSN(dsn);\n\n // \"Script error.\" is hard coded into browsers for errors that it can't read.\n // this is the result of a script being pulled in from an external domain and CORS.\n globalOptions.ignoreErrors.push(/^Script error\\.?$/);\n globalOptions.ignoreErrors.push(/^Javascript error: Script error\\.? on line 0$/);\n\n // join regexp rules into one big rule\n globalOptions.ignoreErrors = joinRegExp(globalOptions.ignoreErrors);\n globalOptions.ignoreUrls = globalOptions.ignoreUrls.length\n ? joinRegExp(globalOptions.ignoreUrls)\n : false;\n globalOptions.whitelistUrls = globalOptions.whitelistUrls.length\n ? joinRegExp(globalOptions.whitelistUrls)\n : false;\n globalOptions.includePaths = joinRegExp(globalOptions.includePaths);\n globalOptions.maxBreadcrumbs = Math.max(\n 0,\n Math.min(globalOptions.maxBreadcrumbs || 100, 100)\n ); // default and hard limit is 100\n\n var autoBreadcrumbDefaults = {\n xhr: true,\n console: true,\n dom: true,\n location: true,\n sentry: true\n };\n\n var autoBreadcrumbs = globalOptions.autoBreadcrumbs;\n if ({}.toString.call(autoBreadcrumbs) === '[object Object]') {\n autoBreadcrumbs = objectMerge(autoBreadcrumbDefaults, autoBreadcrumbs);\n } else if (autoBreadcrumbs !== false) {\n autoBreadcrumbs = autoBreadcrumbDefaults;\n }\n globalOptions.autoBreadcrumbs = autoBreadcrumbs;\n\n var instrumentDefaults = {\n tryCatch: true\n };\n\n var instrument = globalOptions.instrument;\n if ({}.toString.call(instrument) === '[object Object]') {\n instrument = objectMerge(instrumentDefaults, instrument);\n } else if (instrument !== false) {\n instrument = instrumentDefaults;\n }\n globalOptions.instrument = instrument;\n\n TraceKit.collectWindowErrors = !!globalOptions.collectWindowErrors;\n\n // return for chaining\n return self;\n },\n\n /*\n * Installs a global window.onerror error handler\n * to capture and report uncaught exceptions.\n * At this point, install() is required to be called due\n * to the way TraceKit is set up.\n *\n * @return {Raven}\n */\n install: function() {\n var self = this;\n if (self.isSetup() && !self._isRavenInstalled) {\n TraceKit.report.subscribe(function() {\n self._handleOnErrorStackInfo.apply(self, arguments);\n });\n\n if (self._globalOptions.captureUnhandledRejections) {\n self._attachPromiseRejectionHandler();\n }\n\n self._patchFunctionToString();\n\n if (self._globalOptions.instrument && self._globalOptions.instrument.tryCatch) {\n self._instrumentTryCatch();\n }\n\n if (self._globalOptions.autoBreadcrumbs) self._instrumentBreadcrumbs();\n\n // Install all of the plugins\n self._drainPlugins();\n\n self._isRavenInstalled = true;\n }\n\n Error.stackTraceLimit = self._globalOptions.stackTraceLimit;\n return this;\n },\n\n /*\n * Set the DSN (can be called multiple time unlike config)\n *\n * @param {string} dsn The public Sentry DSN\n */\n setDSN: function(dsn) {\n var self = this,\n uri = self._parseDSN(dsn),\n lastSlash = uri.path.lastIndexOf('/'),\n path = uri.path.substr(1, lastSlash);\n\n self._dsn = dsn;\n self._globalKey = uri.user;\n self._globalSecret = uri.pass && uri.pass.substr(1);\n self._globalProject = uri.path.substr(lastSlash + 1);\n\n self._globalServer = self._getGlobalServer(uri);\n\n self._globalEndpoint =\n self._globalServer + '/' + path + 'api/' + self._globalProject + '/store/';\n\n // Reset backoff state since we may be pointing at a\n // new project/server\n this._resetBackoff();\n },\n\n /*\n * Wrap code within a context so Raven can capture errors\n * reliably across domains that is executed immediately.\n *\n * @param {object} options A specific set of options for this context [optional]\n * @param {function} func The callback to be immediately executed within the context\n * @param {array} args An array of arguments to be called with the callback [optional]\n */\n context: function(options, func, args) {\n if (isFunction(options)) {\n args = func || [];\n func = options;\n options = {};\n }\n\n return this.wrap(options, func).apply(this, args);\n },\n\n /*\n * Wrap code within a context and returns back a new function to be executed\n *\n * @param {object} options A specific set of options for this context [optional]\n * @param {function} func The function to be wrapped in a new context\n * @param {function} _before A function to call before the try/catch wrapper [optional, private]\n * @return {function} The newly wrapped functions with a context\n */\n wrap: function(options, func, _before) {\n var self = this;\n // 1 argument has been passed, and it's not a function\n // so just return it\n if (isUndefined(func) && !isFunction(options)) {\n return options;\n }\n\n // options is optional\n if (isFunction(options)) {\n func = options;\n options = undefined;\n }\n\n // At this point, we've passed along 2 arguments, and the second one\n // is not a function either, so we'll just return the second argument.\n if (!isFunction(func)) {\n return func;\n }\n\n // We don't wanna wrap it twice!\n try {\n if (func.__raven__) {\n return func;\n }\n\n // If this has already been wrapped in the past, return that\n if (func.__raven_wrapper__) {\n return func.__raven_wrapper__;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return func;\n }\n\n function wrapped() {\n var args = [],\n i = arguments.length,\n deep = !options || (options && options.deep !== false);\n\n if (_before && isFunction(_before)) {\n _before.apply(this, arguments);\n }\n\n // Recursively wrap all of a function's arguments that are\n // functions themselves.\n while (i--) args[i] = deep ? self.wrap(options, arguments[i]) : arguments[i];\n\n try {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means Raven caught an error invoking your application code. This is\n // expected behavior and NOT indicative of a bug with Raven.js.\n return func.apply(this, args);\n } catch (e) {\n self._ignoreNextOnError();\n self.captureException(e, options);\n throw e;\n }\n }\n\n // copy over properties of the old function\n for (var property in func) {\n if (hasKey(func, property)) {\n wrapped[property] = func[property];\n }\n }\n wrapped.prototype = func.prototype;\n\n func.__raven_wrapper__ = wrapped;\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n wrapped.__raven__ = true;\n wrapped.__orig__ = func;\n\n return wrapped;\n },\n\n /**\n * Uninstalls the global error handler.\n *\n * @return {Raven}\n */\n uninstall: function() {\n TraceKit.report.uninstall();\n\n this._detachPromiseRejectionHandler();\n this._unpatchFunctionToString();\n this._restoreBuiltIns();\n this._restoreConsole();\n\n Error.stackTraceLimit = this._originalErrorStackTraceLimit;\n this._isRavenInstalled = false;\n\n return this;\n },\n\n /**\n * Callback used for `unhandledrejection` event\n *\n * @param {PromiseRejectionEvent} event An object containing\n * promise: the Promise that was rejected\n * reason: the value with which the Promise was rejected\n * @return void\n */\n _promiseRejectionHandler: function(event) {\n this._logDebug('debug', 'Raven caught unhandled promise rejection:', event);\n this.captureException(event.reason, {\n mechanism: {\n type: 'onunhandledrejection',\n handled: false\n }\n });\n },\n\n /**\n * Installs the global promise rejection handler.\n *\n * @return {raven}\n */\n _attachPromiseRejectionHandler: function() {\n this._promiseRejectionHandler = this._promiseRejectionHandler.bind(this);\n _window.addEventListener &&\n _window.addEventListener('unhandledrejection', this._promiseRejectionHandler);\n return this;\n },\n\n /**\n * Uninstalls the global promise rejection handler.\n *\n * @return {raven}\n */\n _detachPromiseRejectionHandler: function() {\n _window.removeEventListener &&\n _window.removeEventListener('unhandledrejection', this._promiseRejectionHandler);\n return this;\n },\n\n /**\n * Manually capture an exception and send it over to Sentry\n *\n * @param {error} ex An exception to be logged\n * @param {object} options A specific set of options for this error [optional]\n * @return {Raven}\n */\n captureException: function(ex, options) {\n options = objectMerge({trimHeadFrames: 0}, options ? options : {});\n\n if (isErrorEvent(ex) && ex.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n ex = ex.error;\n } else if (isDOMError(ex) || isDOMException(ex)) {\n // If it is a DOMError or DOMException (which are legacy APIs, but still supported in some browsers)\n // then we just extract the name and message, as they don't provide anything else\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n var name = ex.name || (isDOMError(ex) ? 'DOMError' : 'DOMException');\n var message = ex.message ? name + ': ' + ex.message : name;\n\n return this.captureMessage(\n message,\n objectMerge(options, {\n // neither DOMError or DOMException provide stack trace and we most likely wont get it this way as well\n // but it's barely any overhead so we may at least try\n stacktrace: true,\n trimHeadFrames: options.trimHeadFrames + 1\n })\n );\n } else if (isError(ex)) {\n // we have a real Error object\n ex = ex;\n } else if (isPlainObject(ex)) {\n // If it is plain Object, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n options = this._getCaptureExceptionOptionsFromPlainObject(options, ex);\n ex = new Error(options.message);\n } else {\n // If none of previous checks were valid, then it means that\n // it's not a DOMError/DOMException\n // it's not a plain Object\n // it's not a valid ErrorEvent (one with an error property)\n // it's not an Error\n // So bail out and capture it as a simple message:\n return this.captureMessage(\n ex,\n objectMerge(options, {\n stacktrace: true, // if we fall back to captureMessage, default to attempting a new trace\n trimHeadFrames: options.trimHeadFrames + 1\n })\n );\n }\n\n // Store the raw exception object for potential debugging and introspection\n this._lastCapturedException = ex;\n\n // TraceKit.report will re-raise any exception passed to it,\n // which means you have to wrap it in try/catch. Instead, we\n // can wrap it here and only re-raise if TraceKit.report\n // raises an exception different from the one we asked to\n // report on.\n try {\n var stack = TraceKit.computeStackTrace(ex);\n this._handleStackInfo(stack, options);\n } catch (ex1) {\n if (ex !== ex1) {\n throw ex1;\n }\n }\n\n return this;\n },\n\n _getCaptureExceptionOptionsFromPlainObject: function(currentOptions, ex) {\n var exKeys = Object.keys(ex).sort();\n var options = objectMerge(currentOptions, {\n message:\n 'Non-Error exception captured with keys: ' + serializeKeysForMessage(exKeys),\n fingerprint: [md5(exKeys)],\n extra: currentOptions.extra || {}\n });\n options.extra.__serialized__ = serializeException(ex);\n\n return options;\n },\n\n /*\n * Manually send a message to Sentry\n *\n * @param {string} msg A plain message to be captured in Sentry\n * @param {object} options A specific set of options for this message [optional]\n * @return {Raven}\n */\n captureMessage: function(msg, options) {\n // config() automagically converts ignoreErrors from a list to a RegExp so we need to test for an\n // early call; we'll error on the side of logging anything called before configuration since it's\n // probably something you should see:\n if (\n !!this._globalOptions.ignoreErrors.test &&\n this._globalOptions.ignoreErrors.test(msg)\n ) {\n return;\n }\n\n options = options || {};\n msg = msg + ''; // Make sure it's actually a string\n\n var data = objectMerge(\n {\n message: msg\n },\n options\n );\n\n var ex;\n // Generate a \"synthetic\" stack trace from this point.\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative\n // of a bug with Raven.js. Sentry generates synthetic traces either by configuration,\n // or if it catches a thrown object without a \"stack\" property.\n try {\n throw new Error(msg);\n } catch (ex1) {\n ex = ex1;\n }\n\n // null exception name so `Error` isn't prefixed to msg\n ex.name = null;\n var stack = TraceKit.computeStackTrace(ex);\n\n // stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1]\n var initialCall = isArray(stack.stack) && stack.stack[1];\n\n // if stack[1] is `Raven.captureException`, it means that someone passed a string to it and we redirected that call\n // to be handled by `captureMessage`, thus `initialCall` is the 3rd one, not 2nd\n // initialCall => captureException(string) => captureMessage(string)\n if (initialCall && initialCall.func === 'Raven.captureException') {\n initialCall = stack.stack[2];\n }\n\n var fileurl = (initialCall && initialCall.url) || '';\n\n if (\n !!this._globalOptions.ignoreUrls.test &&\n this._globalOptions.ignoreUrls.test(fileurl)\n ) {\n return;\n }\n\n if (\n !!this._globalOptions.whitelistUrls.test &&\n !this._globalOptions.whitelistUrls.test(fileurl)\n ) {\n return;\n }\n\n // Always attempt to get stacktrace if message is empty.\n // It's the only way to provide any helpful information to the user.\n if (this._globalOptions.stacktrace || options.stacktrace || data.message === '') {\n // fingerprint on msg, not stack trace (legacy behavior, could be revisited)\n data.fingerprint = data.fingerprint == null ? msg : data.fingerprint;\n\n options = objectMerge(\n {\n trimHeadFrames: 0\n },\n options\n );\n // Since we know this is a synthetic trace, the top frame (this function call)\n // MUST be from Raven.js, so mark it for trimming\n // We add to the trim counter so that callers can choose to trim extra frames, such\n // as utility functions.\n options.trimHeadFrames += 1;\n\n var frames = this._prepareFrames(stack, options);\n data.stacktrace = {\n // Sentry expects frames oldest to newest\n frames: frames.reverse()\n };\n }\n\n // Make sure that fingerprint is always wrapped in an array\n if (data.fingerprint) {\n data.fingerprint = isArray(data.fingerprint)\n ? data.fingerprint\n : [data.fingerprint];\n }\n\n // Fire away!\n this._send(data);\n\n return this;\n },\n\n captureBreadcrumb: function(obj) {\n var crumb = objectMerge(\n {\n timestamp: now() / 1000\n },\n obj\n );\n\n if (isFunction(this._globalOptions.breadcrumbCallback)) {\n var result = this._globalOptions.breadcrumbCallback(crumb);\n\n if (isObject(result) && !isEmptyObject(result)) {\n crumb = result;\n } else if (result === false) {\n return this;\n }\n }\n\n this._breadcrumbs.push(crumb);\n if (this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs) {\n this._breadcrumbs.shift();\n }\n return this;\n },\n\n addPlugin: function(plugin /*arg1, arg2, ... argN*/) {\n var pluginArgs = [].slice.call(arguments, 1);\n\n this._plugins.push([plugin, pluginArgs]);\n if (this._isRavenInstalled) {\n this._drainPlugins();\n }\n\n return this;\n },\n\n /*\n * Set/clear a user to be sent along with the payload.\n *\n * @param {object} user An object representing user data [optional]\n * @return {Raven}\n */\n setUserContext: function(user) {\n // Intentionally do not merge here since that's an unexpected behavior.\n this._globalContext.user = user;\n\n return this;\n },\n\n /*\n * Merge extra attributes to be sent along with the payload.\n *\n * @param {object} extra An object representing extra data [optional]\n * @return {Raven}\n */\n setExtraContext: function(extra) {\n this._mergeContext('extra', extra);\n\n return this;\n },\n\n /*\n * Merge tags to be sent along with the payload.\n *\n * @param {object} tags An object representing tags [optional]\n * @return {Raven}\n */\n setTagsContext: function(tags) {\n this._mergeContext('tags', tags);\n\n return this;\n },\n\n /*\n * Clear all of the context.\n *\n * @return {Raven}\n */\n clearContext: function() {\n this._globalContext = {};\n\n return this;\n },\n\n /*\n * Get a copy of the current context. This cannot be mutated.\n *\n * @return {object} copy of context\n */\n getContext: function() {\n // lol javascript\n return JSON.parse(stringify(this._globalContext));\n },\n\n /*\n * Set environment of application\n *\n * @param {string} environment Typically something like 'production'.\n * @return {Raven}\n */\n setEnvironment: function(environment) {\n this._globalOptions.environment = environment;\n\n return this;\n },\n\n /*\n * Set release version of application\n *\n * @param {string} release Typically something like a git SHA to identify version\n * @return {Raven}\n */\n setRelease: function(release) {\n this._globalOptions.release = release;\n\n return this;\n },\n\n /*\n * Set the dataCallback option\n *\n * @param {function} callback The callback to run which allows the\n * data blob to be mutated before sending\n * @return {Raven}\n */\n setDataCallback: function(callback) {\n var original = this._globalOptions.dataCallback;\n this._globalOptions.dataCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /*\n * Set the breadcrumbCallback option\n *\n * @param {function} callback The callback to run which allows filtering\n * or mutating breadcrumbs\n * @return {Raven}\n */\n setBreadcrumbCallback: function(callback) {\n var original = this._globalOptions.breadcrumbCallback;\n this._globalOptions.breadcrumbCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /*\n * Set the shouldSendCallback option\n *\n * @param {function} callback The callback to run which allows\n * introspecting the blob before sending\n * @return {Raven}\n */\n setShouldSendCallback: function(callback) {\n var original = this._globalOptions.shouldSendCallback;\n this._globalOptions.shouldSendCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /**\n * Override the default HTTP transport mechanism that transmits data\n * to the Sentry server.\n *\n * @param {function} transport Function invoked instead of the default\n * `makeRequest` handler.\n *\n * @return {Raven}\n */\n setTransport: function(transport) {\n this._globalOptions.transport = transport;\n\n return this;\n },\n\n /*\n * Get the latest raw exception that was captured by Raven.\n *\n * @return {error}\n */\n lastException: function() {\n return this._lastCapturedException;\n },\n\n /*\n * Get the last event id\n *\n * @return {string}\n */\n lastEventId: function() {\n return this._lastEventId;\n },\n\n /*\n * Determine if Raven is setup and ready to go.\n *\n * @return {boolean}\n */\n isSetup: function() {\n if (!this._hasJSON) return false; // needs JSON support\n if (!this._globalServer) {\n if (!this.ravenNotConfiguredError) {\n this.ravenNotConfiguredError = true;\n this._logDebug('error', 'Error: Raven has not been configured.');\n }\n return false;\n }\n return true;\n },\n\n afterLoad: function() {\n // TODO: remove window dependence?\n\n // Attempt to initialize Raven on load\n var RavenConfig = _window.RavenConfig;\n if (RavenConfig) {\n this.config(RavenConfig.dsn, RavenConfig.config).install();\n }\n },\n\n showReportDialog: function(options) {\n if (\n !_document // doesn't work without a document (React native)\n )\n return;\n\n options = objectMerge(\n {\n eventId: this.lastEventId(),\n dsn: this._dsn,\n user: this._globalContext.user || {}\n },\n options\n );\n\n if (!options.eventId) {\n throw new RavenConfigError('Missing eventId');\n }\n\n if (!options.dsn) {\n throw new RavenConfigError('Missing DSN');\n }\n\n var encode = encodeURIComponent;\n var encodedOptions = [];\n\n for (var key in options) {\n if (key === 'user') {\n var user = options.user;\n if (user.name) encodedOptions.push('name=' + encode(user.name));\n if (user.email) encodedOptions.push('email=' + encode(user.email));\n } else {\n encodedOptions.push(encode(key) + '=' + encode(options[key]));\n }\n }\n var globalServer = this._getGlobalServer(this._parseDSN(options.dsn));\n\n var script = _document.createElement('script');\n script.async = true;\n script.src = globalServer + '/api/embed/error-page/?' + encodedOptions.join('&');\n (_document.head || _document.body).appendChild(script);\n },\n\n /**** Private functions ****/\n _ignoreNextOnError: function() {\n var self = this;\n this._ignoreOnError += 1;\n setTimeout(function() {\n // onerror should trigger before setTimeout\n self._ignoreOnError -= 1;\n });\n },\n\n _triggerEvent: function(eventType, options) {\n // NOTE: `event` is a native browser thing, so let's avoid conflicting wiht it\n var evt, key;\n\n if (!this._hasDocument) return;\n\n options = options || {};\n\n eventType = 'raven' + eventType.substr(0, 1).toUpperCase() + eventType.substr(1);\n\n if (_document.createEvent) {\n evt = _document.createEvent('HTMLEvents');\n evt.initEvent(eventType, true, true);\n } else {\n evt = _document.createEventObject();\n evt.eventType = eventType;\n }\n\n for (key in options)\n if (hasKey(options, key)) {\n evt[key] = options[key];\n }\n\n if (_document.createEvent) {\n // IE9 if standards\n _document.dispatchEvent(evt);\n } else {\n // IE8 regardless of Quirks or Standards\n // IE9 if quirks\n try {\n _document.fireEvent('on' + evt.eventType.toLowerCase(), evt);\n } catch (e) {\n // Do nothing\n }\n }\n },\n\n /**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param evtName the event name (e.g. \"click\")\n * @returns {Function}\n * @private\n */\n _breadcrumbEventHandler: function(evtName) {\n var self = this;\n return function(evt) {\n // reset keypress timeout; e.g. triggering a 'click' after\n // a 'keypress' will reset the keypress debounce so that a new\n // set of keypresses can be recorded\n self._keypressTimeout = null;\n\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors). Ignore if we've\n // already captured the event.\n if (self._lastCapturedEvent === evt) return;\n\n self._lastCapturedEvent = evt;\n\n // try/catch both:\n // - accessing evt.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // can throw an exception in some circumstances.\n var target;\n try {\n target = htmlTreeAsString(evt.target);\n } catch (e) {\n target = '';\n }\n\n self.captureBreadcrumb({\n category: 'ui.' + evtName, // e.g. ui.click, ui.input\n message: target\n });\n };\n },\n\n /**\n * Wraps addEventListener to capture keypress UI events\n * @returns {Function}\n * @private\n */\n _keypressEventHandler: function() {\n var self = this,\n debounceDuration = 1000; // milliseconds\n\n // TODO: if somehow user switches keypress target before\n // debounce timeout is triggered, we will only capture\n // a single breadcrumb from the FIRST target (acceptable?)\n return function(evt) {\n var target;\n try {\n target = evt.target;\n } catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n var tagName = target && target.tagName;\n\n // only consider keypress events on actual input elements\n // this will disregard keypresses targeting body (e.g. tabbing\n // through elements, hotkeys, etc)\n if (\n !tagName ||\n (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable)\n )\n return;\n\n // record first keypress in a series, but ignore subsequent\n // keypresses until debounce clears\n var timeout = self._keypressTimeout;\n if (!timeout) {\n self._breadcrumbEventHandler('input')(evt);\n }\n clearTimeout(timeout);\n self._keypressTimeout = setTimeout(function() {\n self._keypressTimeout = null;\n }, debounceDuration);\n };\n },\n\n /**\n * Captures a breadcrumb of type \"navigation\", normalizing input URLs\n * @param to the originating URL\n * @param from the target URL\n * @private\n */\n _captureUrlChange: function(from, to) {\n var parsedLoc = parseUrl(this._location.href);\n var parsedTo = parseUrl(to);\n var parsedFrom = parseUrl(from);\n\n // because onpopstate only tells you the \"new\" (to) value of location.href, and\n // not the previous (from) value, we need to track the value of the current URL\n // state ourselves\n this._lastHref = to;\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host)\n to = parsedTo.relative;\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host)\n from = parsedFrom.relative;\n\n this.captureBreadcrumb({\n category: 'navigation',\n data: {\n to: to,\n from: from\n }\n });\n },\n\n _patchFunctionToString: function() {\n var self = this;\n self._originalFunctionToString = Function.prototype.toString;\n // eslint-disable-next-line no-extend-native\n Function.prototype.toString = function() {\n if (typeof this === 'function' && this.__raven__) {\n return self._originalFunctionToString.apply(this.__orig__, arguments);\n }\n return self._originalFunctionToString.apply(this, arguments);\n };\n },\n\n _unpatchFunctionToString: function() {\n if (this._originalFunctionToString) {\n // eslint-disable-next-line no-extend-native\n Function.prototype.toString = this._originalFunctionToString;\n }\n },\n\n /**\n * Wrap timer functions and event targets to catch errors and provide\n * better metadata.\n */\n _instrumentTryCatch: function() {\n var self = this;\n\n var wrappedBuiltIns = self._wrappedBuiltIns;\n\n function wrapTimeFn(orig) {\n return function(fn, t) {\n // preserve arity\n // Make a copy of the arguments to prevent deoptimization\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n var originalCallback = args[0];\n if (isFunction(originalCallback)) {\n args[0] = self.wrap(\n {\n mechanism: {\n type: 'instrument',\n data: {function: orig.name || ''}\n }\n },\n originalCallback\n );\n }\n\n // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it\n // also supports only two arguments and doesn't care what this is, so we\n // can just call the original function directly.\n if (orig.apply) {\n return orig.apply(this, args);\n } else {\n return orig(args[0], args[1]);\n }\n };\n }\n\n var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;\n\n function wrapEventTarget(global) {\n var proto = _window[global] && _window[global].prototype;\n if (proto && proto.hasOwnProperty && proto.hasOwnProperty('addEventListener')) {\n fill(\n proto,\n 'addEventListener',\n function(orig) {\n return function(evtName, fn, capture, secure) {\n // preserve arity\n try {\n if (fn && fn.handleEvent) {\n fn.handleEvent = self.wrap(\n {\n mechanism: {\n type: 'instrument',\n data: {\n target: global,\n function: 'handleEvent',\n handler: (fn && fn.name) || ''\n }\n }\n },\n fn.handleEvent\n );\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs`\n // so that we don't have more than one wrapper function\n var before, clickHandler, keypressHandler;\n\n if (\n autoBreadcrumbs &&\n autoBreadcrumbs.dom &&\n (global === 'EventTarget' || global === 'Node')\n ) {\n // NOTE: generating multiple handlers per addEventListener invocation, should\n // revisit and verify we can just use one (almost certainly)\n clickHandler = self._breadcrumbEventHandler('click');\n keypressHandler = self._keypressEventHandler();\n before = function(evt) {\n // need to intercept every DOM event in `before` argument, in case that\n // same wrapped method is re-used for different events (e.g. mousemove THEN click)\n // see #724\n if (!evt) return;\n\n var eventType;\n try {\n eventType = evt.type;\n } catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n if (eventType === 'click') return clickHandler(evt);\n else if (eventType === 'keypress') return keypressHandler(evt);\n };\n }\n return orig.call(\n this,\n evtName,\n self.wrap(\n {\n mechanism: {\n type: 'instrument',\n data: {\n target: global,\n function: 'addEventListener',\n handler: (fn && fn.name) || ''\n }\n }\n },\n fn,\n before\n ),\n capture,\n secure\n );\n };\n },\n wrappedBuiltIns\n );\n fill(\n proto,\n 'removeEventListener',\n function(orig) {\n return function(evt, fn, capture, secure) {\n try {\n fn = fn && (fn.__raven_wrapper__ ? fn.__raven_wrapper__ : fn);\n } catch (e) {\n // ignore, accessing __raven_wrapper__ will throw in some Selenium environments\n }\n return orig.call(this, evt, fn, capture, secure);\n };\n },\n wrappedBuiltIns\n );\n }\n }\n\n fill(_window, 'setTimeout', wrapTimeFn, wrappedBuiltIns);\n fill(_window, 'setInterval', wrapTimeFn, wrappedBuiltIns);\n if (_window.requestAnimationFrame) {\n fill(\n _window,\n 'requestAnimationFrame',\n function(orig) {\n return function(cb) {\n return orig(\n self.wrap(\n {\n mechanism: {\n type: 'instrument',\n data: {\n function: 'requestAnimationFrame',\n handler: (orig && orig.name) || ''\n }\n }\n },\n cb\n )\n );\n };\n },\n wrappedBuiltIns\n );\n }\n\n // event targets borrowed from bugsnag-js:\n // https://github.com/bugsnag/bugsnag-js/blob/master/src/bugsnag.js#L666\n var eventTargets = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload'\n ];\n for (var i = 0; i < eventTargets.length; i++) {\n wrapEventTarget(eventTargets[i]);\n }\n },\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - XMLHttpRequests\n * - DOM interactions (click/typing)\n * - window.location changes\n * - console\n *\n * Can be disabled or individually configured via the `autoBreadcrumbs` config option\n */\n _instrumentBreadcrumbs: function() {\n var self = this;\n var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;\n\n var wrappedBuiltIns = self._wrappedBuiltIns;\n\n function wrapProp(prop, xhr) {\n if (prop in xhr && isFunction(xhr[prop])) {\n fill(xhr, prop, function(orig) {\n return self.wrap(\n {\n mechanism: {\n type: 'instrument',\n data: {function: prop, handler: (orig && orig.name) || ''}\n }\n },\n orig\n );\n }); // intentionally don't track filled methods on XHR instances\n }\n }\n\n if (autoBreadcrumbs.xhr && 'XMLHttpRequest' in _window) {\n var xhrproto = _window.XMLHttpRequest && _window.XMLHttpRequest.prototype;\n fill(\n xhrproto,\n 'open',\n function(origOpen) {\n return function(method, url) {\n // preserve arity\n\n // if Sentry key appears in URL, don't capture\n if (isString(url) && url.indexOf(self._globalKey) === -1) {\n this.__raven_xhr = {\n method: method,\n url: url,\n status_code: null\n };\n }\n\n return origOpen.apply(this, arguments);\n };\n },\n wrappedBuiltIns\n );\n\n fill(\n xhrproto,\n 'send',\n function(origSend) {\n return function() {\n // preserve arity\n var xhr = this;\n\n function onreadystatechangeHandler() {\n if (xhr.__raven_xhr && xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhr.__raven_xhr.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n self.captureBreadcrumb({\n type: 'http',\n category: 'xhr',\n data: xhr.__raven_xhr\n });\n }\n }\n\n var props = ['onload', 'onerror', 'onprogress'];\n for (var j = 0; j < props.length; j++) {\n wrapProp(props[j], xhr);\n }\n\n if ('onreadystatechange' in xhr && isFunction(xhr.onreadystatechange)) {\n fill(\n xhr,\n 'onreadystatechange',\n function(orig) {\n return self.wrap(\n {\n mechanism: {\n type: 'instrument',\n data: {\n function: 'onreadystatechange',\n handler: (orig && orig.name) || ''\n }\n }\n },\n orig,\n onreadystatechangeHandler\n );\n } /* intentionally don't track this instrumentation */\n );\n } else {\n // if onreadystatechange wasn't actually set by the page on this xhr, we\n // are free to set our own and capture the breadcrumb\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n\n return origSend.apply(this, arguments);\n };\n },\n wrappedBuiltIns\n );\n }\n\n if (autoBreadcrumbs.xhr && supportsFetch()) {\n fill(\n _window,\n 'fetch',\n function(origFetch) {\n return function() {\n // preserve arity\n // Make a copy of the arguments to prevent deoptimization\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n\n var fetchInput = args[0];\n var method = 'GET';\n var url;\n\n if (typeof fetchInput === 'string') {\n url = fetchInput;\n } else if ('Request' in _window && fetchInput instanceof _window.Request) {\n url = fetchInput.url;\n if (fetchInput.method) {\n method = fetchInput.method;\n }\n } else {\n url = '' + fetchInput;\n }\n\n // if Sentry key appears in URL, don't capture, as it's our own request\n if (url.indexOf(self._globalKey) !== -1) {\n return origFetch.apply(this, args);\n }\n\n if (args[1] && args[1].method) {\n method = args[1].method;\n }\n\n var fetchData = {\n method: method,\n url: url,\n status_code: null\n };\n\n return origFetch\n .apply(this, args)\n .then(function(response) {\n fetchData.status_code = response.status;\n\n self.captureBreadcrumb({\n type: 'http',\n category: 'fetch',\n data: fetchData\n });\n\n return response;\n })\n ['catch'](function(err) {\n // if there is an error performing the request\n self.captureBreadcrumb({\n type: 'http',\n category: 'fetch',\n data: fetchData,\n level: 'error'\n });\n\n throw err;\n });\n };\n },\n wrappedBuiltIns\n );\n }\n\n // Capture breadcrumbs from any click that is unhandled / bubbled up all the way\n // to the document. Do this before we instrument addEventListener.\n if (autoBreadcrumbs.dom && this._hasDocument) {\n if (_document.addEventListener) {\n _document.addEventListener('click', self._breadcrumbEventHandler('click'), false);\n _document.addEventListener('keypress', self._keypressEventHandler(), false);\n } else if (_document.attachEvent) {\n // IE8 Compatibility\n _document.attachEvent('onclick', self._breadcrumbEventHandler('click'));\n _document.attachEvent('onkeypress', self._keypressEventHandler());\n }\n }\n\n // record navigation (URL) changes\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var chrome = _window.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasPushAndReplaceState =\n !isChromePackagedApp &&\n _window.history &&\n _window.history.pushState &&\n _window.history.replaceState;\n if (autoBreadcrumbs.location && hasPushAndReplaceState) {\n // TODO: remove onpopstate handler on uninstall()\n var oldOnPopState = _window.onpopstate;\n _window.onpopstate = function() {\n var currentHref = self._location.href;\n self._captureUrlChange(self._lastHref, currentHref);\n\n if (oldOnPopState) {\n return oldOnPopState.apply(this, arguments);\n }\n };\n\n var historyReplacementFunction = function(origHistFunction) {\n // note history.pushState.length is 0; intentionally not declaring\n // params to preserve 0 arity\n return function(/* state, title, url */) {\n var url = arguments.length > 2 ? arguments[2] : undefined;\n\n // url argument is optional\n if (url) {\n // coerce to string (this is what pushState does)\n self._captureUrlChange(self._lastHref, url + '');\n }\n\n return origHistFunction.apply(this, arguments);\n };\n };\n\n fill(_window.history, 'pushState', historyReplacementFunction, wrappedBuiltIns);\n fill(_window.history, 'replaceState', historyReplacementFunction, wrappedBuiltIns);\n }\n\n if (autoBreadcrumbs.console && 'console' in _window && console.log) {\n // console\n var consoleMethodCallback = function(msg, data) {\n self.captureBreadcrumb({\n message: msg,\n level: data.level,\n category: 'console'\n });\n };\n\n each(['debug', 'info', 'warn', 'error', 'log'], function(_, level) {\n wrapConsoleMethod(console, level, consoleMethodCallback);\n });\n }\n },\n\n _restoreBuiltIns: function() {\n // restore any wrapped builtins\n var builtin;\n while (this._wrappedBuiltIns.length) {\n builtin = this._wrappedBuiltIns.shift();\n\n var obj = builtin[0],\n name = builtin[1],\n orig = builtin[2];\n\n obj[name] = orig;\n }\n },\n\n _restoreConsole: function() {\n // eslint-disable-next-line guard-for-in\n for (var method in this._originalConsoleMethods) {\n this._originalConsole[method] = this._originalConsoleMethods[method];\n }\n },\n\n _drainPlugins: function() {\n var self = this;\n\n // FIX ME TODO\n each(this._plugins, function(_, plugin) {\n var installer = plugin[0];\n var args = plugin[1];\n installer.apply(self, [self].concat(args));\n });\n },\n\n _parseDSN: function(str) {\n var m = dsnPattern.exec(str),\n dsn = {},\n i = 7;\n\n try {\n while (i--) dsn[dsnKeys[i]] = m[i] || '';\n } catch (e) {\n throw new RavenConfigError('Invalid DSN: ' + str);\n }\n\n if (dsn.pass && !this._globalOptions.allowSecretKey) {\n throw new RavenConfigError(\n 'Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key'\n );\n }\n\n return dsn;\n },\n\n _getGlobalServer: function(uri) {\n // assemble the endpoint from the uri pieces\n var globalServer = '//' + uri.host + (uri.port ? ':' + uri.port : '');\n\n if (uri.protocol) {\n globalServer = uri.protocol + ':' + globalServer;\n }\n return globalServer;\n },\n\n _handleOnErrorStackInfo: function(stackInfo, options) {\n options = options || {};\n options.mechanism = options.mechanism || {\n type: 'onerror',\n handled: false\n };\n\n // if we are intentionally ignoring errors via onerror, bail out\n if (!this._ignoreOnError) {\n this._handleStackInfo(stackInfo, options);\n }\n },\n\n _handleStackInfo: function(stackInfo, options) {\n var frames = this._prepareFrames(stackInfo, options);\n\n this._triggerEvent('handle', {\n stackInfo: stackInfo,\n options: options\n });\n\n this._processException(\n stackInfo.name,\n stackInfo.message,\n stackInfo.url,\n stackInfo.lineno,\n frames,\n options\n );\n },\n\n _prepareFrames: function(stackInfo, options) {\n var self = this;\n var frames = [];\n if (stackInfo.stack && stackInfo.stack.length) {\n each(stackInfo.stack, function(i, stack) {\n var frame = self._normalizeFrame(stack, stackInfo.url);\n if (frame) {\n frames.push(frame);\n }\n });\n\n // e.g. frames captured via captureMessage throw\n if (options && options.trimHeadFrames) {\n for (var j = 0; j < options.trimHeadFrames && j < frames.length; j++) {\n frames[j].in_app = false;\n }\n }\n }\n frames = frames.slice(0, this._globalOptions.stackTraceLimit);\n return frames;\n },\n\n _normalizeFrame: function(frame, stackInfoUrl) {\n // normalize the frames data\n var normalized = {\n filename: frame.url,\n lineno: frame.line,\n colno: frame.column,\n function: frame.func || '?'\n };\n\n // Case when we don't have any information about the error\n // E.g. throwing a string or raw object, instead of an `Error` in Firefox\n // Generating synthetic error doesn't add any value here\n //\n // We should probably somehow let a user know that they should fix their code\n if (!frame.url) {\n normalized.filename = stackInfoUrl; // fallback to whole stacks url from onerror handler\n }\n\n normalized.in_app = !// determine if an exception came from outside of our app\n // first we check the global includePaths list.\n (\n (!!this._globalOptions.includePaths.test &&\n !this._globalOptions.includePaths.test(normalized.filename)) ||\n // Now we check for fun, if the function name is Raven or TraceKit\n /(Raven|TraceKit)\\./.test(normalized['function']) ||\n // finally, we do a last ditch effort and check for raven.min.js\n /raven\\.(min\\.)?js$/.test(normalized.filename)\n );\n\n return normalized;\n },\n\n _processException: function(type, message, fileurl, lineno, frames, options) {\n var prefixedMessage = (type ? type + ': ' : '') + (message || '');\n if (\n !!this._globalOptions.ignoreErrors.test &&\n (this._globalOptions.ignoreErrors.test(message) ||\n this._globalOptions.ignoreErrors.test(prefixedMessage))\n ) {\n return;\n }\n\n var stacktrace;\n\n if (frames && frames.length) {\n fileurl = frames[0].filename || fileurl;\n // Sentry expects frames oldest to newest\n // and JS sends them as newest to oldest\n frames.reverse();\n stacktrace = {frames: frames};\n } else if (fileurl) {\n stacktrace = {\n frames: [\n {\n filename: fileurl,\n lineno: lineno,\n in_app: true\n }\n ]\n };\n }\n\n if (\n !!this._globalOptions.ignoreUrls.test &&\n this._globalOptions.ignoreUrls.test(fileurl)\n ) {\n return;\n }\n\n if (\n !!this._globalOptions.whitelistUrls.test &&\n !this._globalOptions.whitelistUrls.test(fileurl)\n ) {\n return;\n }\n\n var data = objectMerge(\n {\n // sentry.interfaces.Exception\n exception: {\n values: [\n {\n type: type,\n value: message,\n stacktrace: stacktrace\n }\n ]\n },\n transaction: fileurl\n },\n options\n );\n\n var ex = data.exception.values[0];\n if (ex.type == null && ex.value === '') {\n ex.value = 'Unrecoverable error caught';\n }\n\n // Move mechanism from options to exception interface\n // We do this, as requiring user to pass `{exception:{mechanism:{ ... }}}` would be\n // too much\n if (!data.exception.mechanism && data.mechanism) {\n data.exception.mechanism = data.mechanism;\n delete data.mechanism;\n }\n\n data.exception.mechanism = objectMerge(\n {\n type: 'generic',\n handled: true\n },\n data.exception.mechanism || {}\n );\n\n // Fire away!\n this._send(data);\n },\n\n _trimPacket: function(data) {\n // For now, we only want to truncate the two different messages\n // but this could/should be expanded to just trim everything\n var max = this._globalOptions.maxMessageLength;\n if (data.message) {\n data.message = truncate(data.message, max);\n }\n if (data.exception) {\n var exception = data.exception.values[0];\n exception.value = truncate(exception.value, max);\n }\n\n var request = data.request;\n if (request) {\n if (request.url) {\n request.url = truncate(request.url, this._globalOptions.maxUrlLength);\n }\n if (request.Referer) {\n request.Referer = truncate(request.Referer, this._globalOptions.maxUrlLength);\n }\n }\n\n if (data.breadcrumbs && data.breadcrumbs.values)\n this._trimBreadcrumbs(data.breadcrumbs);\n\n return data;\n },\n\n /**\n * Truncate breadcrumb values (right now just URLs)\n */\n _trimBreadcrumbs: function(breadcrumbs) {\n // known breadcrumb properties with urls\n // TODO: also consider arbitrary prop values that start with (https?)?://\n var urlProps = ['to', 'from', 'url'],\n urlProp,\n crumb,\n data;\n\n for (var i = 0; i < breadcrumbs.values.length; ++i) {\n crumb = breadcrumbs.values[i];\n if (\n !crumb.hasOwnProperty('data') ||\n !isObject(crumb.data) ||\n objectFrozen(crumb.data)\n )\n continue;\n\n data = objectMerge({}, crumb.data);\n for (var j = 0; j < urlProps.length; ++j) {\n urlProp = urlProps[j];\n if (data.hasOwnProperty(urlProp) && data[urlProp]) {\n data[urlProp] = truncate(data[urlProp], this._globalOptions.maxUrlLength);\n }\n }\n breadcrumbs.values[i].data = data;\n }\n },\n\n _getHttpData: function() {\n if (!this._hasNavigator && !this._hasDocument) return;\n var httpData = {};\n\n if (this._hasNavigator && _navigator.userAgent) {\n httpData.headers = {\n 'User-Agent': _navigator.userAgent\n };\n }\n\n // Check in `window` instead of `document`, as we may be in ServiceWorker environment\n if (_window.location && _window.location.href) {\n httpData.url = _window.location.href;\n }\n\n if (this._hasDocument && _document.referrer) {\n if (!httpData.headers) httpData.headers = {};\n httpData.headers.Referer = _document.referrer;\n }\n\n return httpData;\n },\n\n _resetBackoff: function() {\n this._backoffDuration = 0;\n this._backoffStart = null;\n },\n\n _shouldBackoff: function() {\n return this._backoffDuration && now() - this._backoffStart < this._backoffDuration;\n },\n\n /**\n * Returns true if the in-process data payload matches the signature\n * of the previously-sent data\n *\n * NOTE: This has to be done at this level because TraceKit can generate\n * data from window.onerror WITHOUT an exception object (IE8, IE9,\n * other old browsers). This can take the form of an \"exception\"\n * data object with a single frame (derived from the onerror args).\n */\n _isRepeatData: function(current) {\n var last = this._lastData;\n\n if (\n !last ||\n current.message !== last.message || // defined for captureMessage\n current.transaction !== last.transaction // defined for captureException/onerror\n )\n return false;\n\n // Stacktrace interface (i.e. from captureMessage)\n if (current.stacktrace || last.stacktrace) {\n return isSameStacktrace(current.stacktrace, last.stacktrace);\n } else if (current.exception || last.exception) {\n // Exception interface (i.e. from captureException/onerror)\n return isSameException(current.exception, last.exception);\n } else if (current.fingerprint || last.fingerprint) {\n return Boolean(current.fingerprint && last.fingerprint) &&\n JSON.stringify(current.fingerprint) === JSON.stringify(last.fingerprint)\n }\n\n return true;\n },\n\n _setBackoffState: function(request) {\n // If we are already in a backoff state, don't change anything\n if (this._shouldBackoff()) {\n return;\n }\n\n var status = request.status;\n\n // 400 - project_id doesn't exist or some other fatal\n // 401 - invalid/revoked dsn\n // 429 - too many requests\n if (!(status === 400 || status === 401 || status === 429)) return;\n\n var retry;\n try {\n // If Retry-After is not in Access-Control-Expose-Headers, most\n // browsers will throw an exception trying to access it\n if (supportsFetch()) {\n retry = request.headers.get('Retry-After');\n } else {\n retry = request.getResponseHeader('Retry-After');\n }\n\n // Retry-After is returned in seconds\n retry = parseInt(retry, 10) * 1000;\n } catch (e) {\n /* eslint no-empty:0 */\n }\n\n this._backoffDuration = retry\n ? // If Sentry server returned a Retry-After value, use it\n retry\n : // Otherwise, double the last backoff duration (starts at 1 sec)\n this._backoffDuration * 2 || 1000;\n\n this._backoffStart = now();\n },\n\n _send: function(data) {\n var globalOptions = this._globalOptions;\n\n var baseData = {\n project: this._globalProject,\n logger: globalOptions.logger,\n platform: 'javascript'\n },\n httpData = this._getHttpData();\n\n if (httpData) {\n baseData.request = httpData;\n }\n\n // HACK: delete `trimHeadFrames` to prevent from appearing in outbound payload\n if (data.trimHeadFrames) delete data.trimHeadFrames;\n\n data = objectMerge(baseData, data);\n\n // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge\n data.tags = objectMerge(objectMerge({}, this._globalContext.tags), data.tags);\n data.extra = objectMerge(objectMerge({}, this._globalContext.extra), data.extra);\n\n // Send along our own collected metadata with extra\n data.extra['session:duration'] = now() - this._startTime;\n\n if (this._breadcrumbs && this._breadcrumbs.length > 0) {\n // intentionally make shallow copy so that additions\n // to breadcrumbs aren't accidentally sent in this request\n data.breadcrumbs = {\n values: [].slice.call(this._breadcrumbs, 0)\n };\n }\n\n if (this._globalContext.user) {\n // sentry.interfaces.User\n data.user = this._globalContext.user;\n }\n\n // Include the environment if it's defined in globalOptions\n if (globalOptions.environment) data.environment = globalOptions.environment;\n\n // Include the release if it's defined in globalOptions\n if (globalOptions.release) data.release = globalOptions.release;\n\n // Include server_name if it's defined in globalOptions\n if (globalOptions.serverName) data.server_name = globalOptions.serverName;\n\n data = this._sanitizeData(data);\n\n // Cleanup empty properties before sending them to the server\n Object.keys(data).forEach(function(key) {\n if (data[key] == null || data[key] === '' || isEmptyObject(data[key])) {\n delete data[key];\n }\n });\n\n if (isFunction(globalOptions.dataCallback)) {\n data = globalOptions.dataCallback(data) || data;\n }\n\n // Why??????????\n if (!data || isEmptyObject(data)) {\n return;\n }\n\n // Check if the request should be filtered or not\n if (\n isFunction(globalOptions.shouldSendCallback) &&\n !globalOptions.shouldSendCallback(data)\n ) {\n return;\n }\n\n // Backoff state: Sentry server previously responded w/ an error (e.g. 429 - too many requests),\n // so drop requests until \"cool-off\" period has elapsed.\n if (this._shouldBackoff()) {\n this._logDebug('warn', 'Raven dropped error due to backoff: ', data);\n return;\n }\n\n if (typeof globalOptions.sampleRate === 'number') {\n if (Math.random() < globalOptions.sampleRate) {\n this._sendProcessedPayload(data);\n }\n } else {\n this._sendProcessedPayload(data);\n }\n },\n\n _sanitizeData: function(data) {\n return sanitize(data, this._globalOptions.sanitizeKeys);\n },\n\n _getUuid: function() {\n return uuid4();\n },\n\n _sendProcessedPayload: function(data, callback) {\n var self = this;\n var globalOptions = this._globalOptions;\n\n if (!this.isSetup()) return;\n\n // Try and clean up the packet before sending by truncating long values\n data = this._trimPacket(data);\n\n // ideally duplicate error testing should occur *before* dataCallback/shouldSendCallback,\n // but this would require copying an un-truncated copy of the data packet, which can be\n // arbitrarily deep (extra_data) -- could be worthwhile? will revisit\n if (!this._globalOptions.allowDuplicates && this._isRepeatData(data)) {\n this._logDebug('warn', 'Raven dropped repeat event: ', data);\n return;\n }\n\n // Send along an event_id if not explicitly passed.\n // This event_id can be used to reference the error within Sentry itself.\n // Set lastEventId after we know the error should actually be sent\n this._lastEventId = data.event_id || (data.event_id = this._getUuid());\n\n // Store outbound payload after trim\n this._lastData = data;\n\n this._logDebug('debug', 'Raven about to send:', data);\n\n var auth = {\n sentry_version: '7',\n sentry_client: 'raven-js/' + this.VERSION,\n sentry_key: this._globalKey\n };\n\n if (this._globalSecret) {\n auth.sentry_secret = this._globalSecret;\n }\n\n var exception = data.exception && data.exception.values[0];\n\n // only capture 'sentry' breadcrumb is autoBreadcrumbs is truthy\n if (\n this._globalOptions.autoBreadcrumbs &&\n this._globalOptions.autoBreadcrumbs.sentry\n ) {\n this.captureBreadcrumb({\n category: 'sentry',\n message: exception\n ? (exception.type ? exception.type + ': ' : '') + exception.value\n : data.message,\n event_id: data.event_id,\n level: data.level || 'error' // presume error unless specified\n });\n }\n\n var url = this._globalEndpoint;\n (globalOptions.transport || this._makeRequest).call(this, {\n url: url,\n auth: auth,\n data: data,\n options: globalOptions,\n onSuccess: function success() {\n self._resetBackoff();\n\n self._triggerEvent('success', {\n data: data,\n src: url\n });\n callback && callback();\n },\n onError: function failure(error) {\n self._logDebug('error', 'Raven transport failed to send: ', error);\n\n if (error.request) {\n self._setBackoffState(error.request);\n }\n\n self._triggerEvent('failure', {\n data: data,\n src: url\n });\n error = error || new Error('Raven send failed (no additional details provided)');\n callback && callback(error);\n }\n });\n },\n\n _makeRequest: function(opts) {\n // Auth is intentionally sent as part of query string (NOT as custom HTTP header) to avoid preflight CORS requests\n var url = opts.url + '?' + urlencode(opts.auth);\n\n var evaluatedHeaders = null;\n var evaluatedFetchParameters = {};\n\n if (opts.options.headers) {\n evaluatedHeaders = this._evaluateHash(opts.options.headers);\n }\n\n if (opts.options.fetchParameters) {\n evaluatedFetchParameters = this._evaluateHash(opts.options.fetchParameters);\n }\n\n if (supportsFetch()) {\n evaluatedFetchParameters.body = stringify(opts.data);\n\n var defaultFetchOptions = objectMerge({}, this._fetchDefaults);\n var fetchOptions = objectMerge(defaultFetchOptions, evaluatedFetchParameters);\n\n if (evaluatedHeaders) {\n fetchOptions.headers = evaluatedHeaders;\n }\n\n return _window\n .fetch(url, fetchOptions)\n .then(function(response) {\n if (response.ok) {\n opts.onSuccess && opts.onSuccess();\n } else {\n var error = new Error('Sentry error code: ' + response.status);\n // It's called request only to keep compatibility with XHR interface\n // and not add more redundant checks in setBackoffState method\n error.request = response;\n opts.onError && opts.onError(error);\n }\n })\n ['catch'](function() {\n opts.onError &&\n opts.onError(new Error('Sentry error code: network unavailable'));\n });\n }\n\n var request = _window.XMLHttpRequest && new _window.XMLHttpRequest();\n if (!request) return;\n\n // if browser doesn't support CORS (e.g. IE7), we are out of luck\n var hasCORS = 'withCredentials' in request || typeof XDomainRequest !== 'undefined';\n\n if (!hasCORS) return;\n\n if ('withCredentials' in request) {\n request.onreadystatechange = function() {\n if (request.readyState !== 4) {\n return;\n } else if (request.status === 200) {\n opts.onSuccess && opts.onSuccess();\n } else if (opts.onError) {\n var err = new Error('Sentry error code: ' + request.status);\n err.request = request;\n opts.onError(err);\n }\n };\n } else {\n request = new XDomainRequest();\n // xdomainrequest cannot go http -> https (or vice versa),\n // so always use protocol relative\n url = url.replace(/^https?:/, '');\n\n // onreadystatechange not supported by XDomainRequest\n if (opts.onSuccess) {\n request.onload = opts.onSuccess;\n }\n if (opts.onError) {\n request.onerror = function() {\n var err = new Error('Sentry error code: XDomainRequest');\n err.request = request;\n opts.onError(err);\n };\n }\n }\n\n request.open('POST', url);\n\n if (evaluatedHeaders) {\n each(evaluatedHeaders, function(key, value) {\n request.setRequestHeader(key, value);\n });\n }\n\n request.send(stringify(opts.data));\n },\n\n _evaluateHash: function(hash) {\n var evaluated = {};\n\n for (var key in hash) {\n if (hash.hasOwnProperty(key)) {\n var value = hash[key];\n evaluated[key] = typeof value === 'function' ? value() : value;\n }\n }\n\n return evaluated;\n },\n\n _logDebug: function(level) {\n // We allow `Raven.debug` and `Raven.config(DSN, { debug: true })` to not make backward incompatible API change\n if (\n this._originalConsoleMethods[level] &&\n (this.debug || this._globalOptions.debug)\n ) {\n // In IE<10 console methods do not have their own 'apply' method\n Function.prototype.apply.call(\n this._originalConsoleMethods[level],\n this._originalConsole,\n [].slice.call(arguments, 1)\n );\n }\n },\n\n _mergeContext: function(key, context) {\n if (isUndefined(context)) {\n delete this._globalContext[key];\n } else {\n this._globalContext[key] = objectMerge(this._globalContext[key] || {}, context);\n }\n }\n};\n\n// Deprecations\nRaven.prototype.setUser = Raven.prototype.setUserContext;\nRaven.prototype.setReleaseContext = Raven.prototype.setRelease;\n\nmodule.exports = Raven;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArray = (function () { return Array.isArray || (function (x) { return x && typeof x.length === 'number'; }); })();\n//# sourceMappingURL=isArray.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _enable_super_gross_mode_that_will_cause_bad_things = false;\nexports.config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rxSubscriber = (function () {\n return typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\n})();\nexports.$$rxSubscriber = exports.rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isFunction(x) {\n return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n//# sourceMappingURL=isFunction.js.map","function RavenConfigError(message) {\n this.name = 'RavenConfigError';\n this.message = message;\n}\nRavenConfigError.prototype = new Error();\nRavenConfigError.prototype.constructor = RavenConfigError;\n\nmodule.exports = RavenConfigError;\n","var stringify = require('../vendor/json-stringify-safe/stringify');\n\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : typeof self !== 'undefined'\n ? self\n : {};\n\nfunction isObject(what) {\n return typeof what === 'object' && what !== null;\n}\n\n// Yanked from https://git.io/vS8DV re-used under CC0\n// with some tiny modifications\nfunction isError(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return value instanceof Error;\n }\n}\n\nfunction isErrorEvent(value) {\n return Object.prototype.toString.call(value) === '[object ErrorEvent]';\n}\n\nfunction isDOMError(value) {\n return Object.prototype.toString.call(value) === '[object DOMError]';\n}\n\nfunction isDOMException(value) {\n return Object.prototype.toString.call(value) === '[object DOMException]';\n}\n\nfunction isUndefined(what) {\n return what === void 0;\n}\n\nfunction isFunction(what) {\n return typeof what === 'function';\n}\n\nfunction isPlainObject(what) {\n return Object.prototype.toString.call(what) === '[object Object]';\n}\n\nfunction isString(what) {\n return Object.prototype.toString.call(what) === '[object String]';\n}\n\nfunction isArray(what) {\n return Object.prototype.toString.call(what) === '[object Array]';\n}\n\nfunction isEmptyObject(what) {\n if (!isPlainObject(what)) return false;\n\n for (var _ in what) {\n if (what.hasOwnProperty(_)) {\n return false;\n }\n }\n return true;\n}\n\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent(''); // eslint-disable-line no-new\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction supportsDOMError() {\n try {\n new DOMError(''); // eslint-disable-line no-new\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction supportsDOMException() {\n try {\n new DOMException(''); // eslint-disable-line no-new\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction supportsFetch() {\n if (!('fetch' in _window)) return false;\n\n try {\n new Headers(); // eslint-disable-line no-new\n new Request(''); // eslint-disable-line no-new\n new Response(); // eslint-disable-line no-new\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n// https://caniuse.com/#feat=referrer-policy\n// It doesn't. And it throw exception instead of ignoring this parameter...\n// REF: https://github.com/getsentry/raven-js/issues/1233\nfunction supportsReferrerPolicy() {\n if (!supportsFetch()) return false;\n\n try {\n // eslint-disable-next-line no-new\n new Request('pickleRick', {\n referrerPolicy: 'origin'\n });\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction supportsPromiseRejectionEvent() {\n return typeof PromiseRejectionEvent === 'function';\n}\n\nfunction wrappedCallback(callback) {\n function dataCallback(data, original) {\n var normalizedData = callback(data) || data;\n if (original) {\n return original(normalizedData) || normalizedData;\n }\n return normalizedData;\n }\n\n return dataCallback;\n}\n\nfunction each(obj, callback) {\n var i, j;\n\n if (isUndefined(obj.length)) {\n for (i in obj) {\n if (hasKey(obj, i)) {\n callback.call(null, i, obj[i]);\n }\n }\n } else {\n j = obj.length;\n if (j) {\n for (i = 0; i < j; i++) {\n callback.call(null, i, obj[i]);\n }\n }\n }\n}\n\nfunction objectMerge(obj1, obj2) {\n if (!obj2) {\n return obj1;\n }\n each(obj2, function(key, value) {\n obj1[key] = value;\n });\n return obj1;\n}\n\n/**\n * This function is only used for react-native.\n * react-native freezes object that have already been sent over the\n * js bridge. We need this function in order to check if the object is frozen.\n * So it's ok that objectFrozen returns false if Object.isFrozen is not\n * supported because it's not relevant for other \"platforms\". See related issue:\n * https://github.com/getsentry/react-native-sentry/issues/57\n */\nfunction objectFrozen(obj) {\n if (!Object.isFrozen) {\n return false;\n }\n return Object.isFrozen(obj);\n}\n\nfunction truncate(str, max) {\n if (typeof max !== 'number') {\n throw new Error('2nd argument to `truncate` function should be a number');\n }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + '\\u2026';\n}\n\n/**\n * hasKey, a better form of hasOwnProperty\n * Example: hasKey(MainHostObject, property) === true/false\n *\n * @param {Object} host object to check property\n * @param {string} key to check\n */\nfunction hasKey(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction joinRegExp(patterns) {\n // Combine an array of regular expressions and strings into one large regexp\n // Be mad.\n var sources = [],\n i = 0,\n len = patterns.length,\n pattern;\n\n for (; i < len; i++) {\n pattern = patterns[i];\n if (isString(pattern)) {\n // If it's a string, we need to escape it\n // Taken from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n sources.push(pattern.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1'));\n } else if (pattern && pattern.source) {\n // If it's a regexp already, we want to extract the source\n sources.push(pattern.source);\n }\n // Intentionally skip other cases\n }\n return new RegExp(sources.join('|'), 'i');\n}\n\nfunction urlencode(o) {\n var pairs = [];\n each(o, function(key, value) {\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n });\n return pairs.join('&');\n}\n\n// borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n// intentionally using regex and not href parsing trick because React Native and other\n// environments where DOM might not be available\nfunction parseUrl(url) {\n if (typeof url !== 'string') return {};\n var match = url.match(/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n protocol: match[2],\n host: match[4],\n path: match[5],\n relative: match[5] + query + fragment // everything minus origin\n };\n}\nfunction uuid4() {\n var crypto = _window.crypto || _window.msCrypto;\n\n if (!isUndefined(crypto) && crypto.getRandomValues) {\n // Use window.crypto API if available\n // eslint-disable-next-line no-undef\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n var pad = function(num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = '0' + v;\n }\n return v;\n };\n\n return (\n pad(arr[0]) +\n pad(arr[1]) +\n pad(arr[2]) +\n pad(arr[3]) +\n pad(arr[4]) +\n pad(arr[5]) +\n pad(arr[6]) +\n pad(arr[7])\n );\n } else {\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = (Math.random() * 16) | 0,\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @param elem\n * @returns {string}\n */\nfunction htmlTreeAsString(elem) {\n /* eslint no-extra-parens:0*/\n var MAX_TRAVERSE_HEIGHT = 5,\n MAX_OUTPUT_LEN = 80,\n out = [],\n height = 0,\n len = 0,\n separator = ' > ',\n sepLength = separator.length,\n nextStr;\n\n while (elem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = htmlElementAsString(elem);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (\n nextStr === 'html' ||\n (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)\n ) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n elem = elem.parentNode;\n }\n\n return out.reverse().join(separator);\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @param HTMLElement\n * @returns {string}\n */\nfunction htmlElementAsString(elem) {\n var out = [],\n className,\n classes,\n key,\n attr,\n i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n if (elem.id) {\n out.push('#' + elem.id);\n }\n\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push('.' + classes[i]);\n }\n }\n var attrWhitelist = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < attrWhitelist.length; i++) {\n key = attrWhitelist[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push('[' + key + '=\"' + attr + '\"]');\n }\n }\n return out.join('');\n}\n\n/**\n * Returns true if either a OR b is truthy, but not both\n */\nfunction isOnlyOneTruthy(a, b) {\n return !!(!!a ^ !!b);\n}\n\n/**\n * Returns true if both parameters are undefined\n */\nfunction isBothUndefined(a, b) {\n return isUndefined(a) && isUndefined(b);\n}\n\n/**\n * Returns true if the two input exception interfaces have the same content\n */\nfunction isSameException(ex1, ex2) {\n if (isOnlyOneTruthy(ex1, ex2)) return false;\n\n ex1 = ex1.values[0];\n ex2 = ex2.values[0];\n\n if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false;\n\n // in case both stacktraces are undefined, we can't decide so default to false\n if (isBothUndefined(ex1.stacktrace, ex2.stacktrace)) return false;\n\n return isSameStacktrace(ex1.stacktrace, ex2.stacktrace);\n}\n\n/**\n * Returns true if the two input stack trace interfaces have the same content\n */\nfunction isSameStacktrace(stack1, stack2) {\n if (isOnlyOneTruthy(stack1, stack2)) return false;\n\n var frames1 = stack1.frames;\n var frames2 = stack2.frames;\n\n // Exit early if stacktrace is malformed\n if (frames1 === undefined || frames2 === undefined) return false;\n\n // Exit early if frame count differs\n if (frames1.length !== frames2.length) return false;\n\n // Iterate through every frame; bail out if anything differs\n var a, b;\n for (var i = 0; i < frames1.length; i++) {\n a = frames1[i];\n b = frames2[i];\n if (\n a.filename !== b.filename ||\n a.lineno !== b.lineno ||\n a.colno !== b.colno ||\n a['function'] !== b['function']\n )\n return false;\n }\n return true;\n}\n\n/**\n * Polyfill a method\n * @param obj object e.g. `document`\n * @param name method name present on object e.g. `addEventListener`\n * @param replacement replacement function\n * @param track {optional} record instrumentation to an array\n */\nfunction fill(obj, name, replacement, track) {\n if (obj == null) return;\n var orig = obj[name];\n obj[name] = replacement(orig);\n obj[name].__raven__ = true;\n obj[name].__orig__ = orig;\n if (track) {\n track.push([obj, name, orig]);\n }\n}\n\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns {string}\n */\nfunction safeJoin(input, delimiter) {\n if (!isArray(input)) return '';\n\n var output = [];\n\n for (var i = 0; i < input.length; i++) {\n try {\n output.push(String(input[i]));\n } catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n\n return output.join(delimiter);\n}\n\n// Default Node.js REPL depth\nvar MAX_SERIALIZE_EXCEPTION_DEPTH = 3;\n// 50kB, as 100kB is max payload size, so half sounds reasonable\nvar MAX_SERIALIZE_EXCEPTION_SIZE = 50 * 1024;\nvar MAX_SERIALIZE_KEYS_LENGTH = 40;\n\nfunction utf8Length(value) {\n return ~-encodeURI(value).split(/%..|./).length;\n}\n\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n\nfunction serializeValue(value) {\n if (typeof value === 'string') {\n var maxLength = 40;\n return truncate(value, maxLength);\n } else if (\n typeof value === 'number' ||\n typeof value === 'boolean' ||\n typeof value === 'undefined'\n ) {\n return value;\n }\n\n var type = Object.prototype.toString.call(value);\n\n // Node.js REPL notation\n if (type === '[object Object]') return '[Object]';\n if (type === '[object Array]') return '[Array]';\n if (type === '[object Function]')\n return value.name ? '[Function: ' + value.name + ']' : '[Function]';\n\n return value;\n}\n\nfunction serializeObject(value, depth) {\n if (depth === 0) return serializeValue(value);\n\n if (isPlainObject(value)) {\n return Object.keys(value).reduce(function(acc, key) {\n acc[key] = serializeObject(value[key], depth - 1);\n return acc;\n }, {});\n } else if (Array.isArray(value)) {\n return value.map(function(val) {\n return serializeObject(val, depth - 1);\n });\n }\n\n return serializeValue(value);\n}\n\nfunction serializeException(ex, depth, maxSize) {\n if (!isPlainObject(ex)) return ex;\n\n depth = typeof depth !== 'number' ? MAX_SERIALIZE_EXCEPTION_DEPTH : depth;\n maxSize = typeof depth !== 'number' ? MAX_SERIALIZE_EXCEPTION_SIZE : maxSize;\n\n var serialized = serializeObject(ex, depth);\n\n if (jsonSize(stringify(serialized)) > maxSize) {\n return serializeException(ex, depth - 1);\n }\n\n return serialized;\n}\n\nfunction serializeKeysForMessage(keys, maxLength) {\n if (typeof keys === 'number' || typeof keys === 'string') return keys.toString();\n if (!Array.isArray(keys)) return '';\n\n keys = keys.filter(function(key) {\n return typeof key === 'string';\n });\n if (keys.length === 0) return '[object has no keys]';\n\n maxLength = typeof maxLength !== 'number' ? MAX_SERIALIZE_KEYS_LENGTH : maxLength;\n if (keys[0].length >= maxLength) return keys[0];\n\n for (var usedKeys = keys.length; usedKeys > 0; usedKeys--) {\n var serialized = keys.slice(0, usedKeys).join(', ');\n if (serialized.length > maxLength) continue;\n if (usedKeys === keys.length) return serialized;\n return serialized + '\\u2026';\n }\n\n return '';\n}\n\nfunction sanitize(input, sanitizeKeys) {\n if (!isArray(sanitizeKeys) || (isArray(sanitizeKeys) && sanitizeKeys.length === 0))\n return input;\n\n var sanitizeRegExp = joinRegExp(sanitizeKeys);\n var sanitizeMask = '********';\n var safeInput;\n\n try {\n safeInput = JSON.parse(stringify(input));\n } catch (o_O) {\n return input;\n }\n\n function sanitizeWorker(workerInput) {\n if (isArray(workerInput)) {\n return workerInput.map(function(val) {\n return sanitizeWorker(val);\n });\n }\n\n if (isPlainObject(workerInput)) {\n return Object.keys(workerInput).reduce(function(acc, k) {\n if (sanitizeRegExp.test(k)) {\n acc[k] = sanitizeMask;\n } else {\n acc[k] = sanitizeWorker(workerInput[k]);\n }\n return acc;\n }, {});\n }\n\n return workerInput;\n }\n\n return sanitizeWorker(safeInput);\n}\n\nmodule.exports = {\n isObject: isObject,\n isError: isError,\n isErrorEvent: isErrorEvent,\n isDOMError: isDOMError,\n isDOMException: isDOMException,\n isUndefined: isUndefined,\n isFunction: isFunction,\n isPlainObject: isPlainObject,\n isString: isString,\n isArray: isArray,\n isEmptyObject: isEmptyObject,\n supportsErrorEvent: supportsErrorEvent,\n supportsDOMError: supportsDOMError,\n supportsDOMException: supportsDOMException,\n supportsFetch: supportsFetch,\n supportsReferrerPolicy: supportsReferrerPolicy,\n supportsPromiseRejectionEvent: supportsPromiseRejectionEvent,\n wrappedCallback: wrappedCallback,\n each: each,\n objectMerge: objectMerge,\n truncate: truncate,\n objectFrozen: objectFrozen,\n hasKey: hasKey,\n joinRegExp: joinRegExp,\n urlencode: urlencode,\n uuid4: uuid4,\n htmlTreeAsString: htmlTreeAsString,\n htmlElementAsString: htmlElementAsString,\n isSameException: isSameException,\n isSameStacktrace: isSameStacktrace,\n parseUrl: parseUrl,\n fill: fill,\n safeJoin: safeJoin,\n serializeException: serializeException,\n serializeKeysForMessage: serializeKeysForMessage,\n sanitize: sanitize\n};\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction identity(x) {\n return x;\n}\nexports.identity = identity;\n//# sourceMappingURL=identity.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar Subscriber_1 = require(\"../Subscriber\");\nfunction canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber_1.Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\nexports.canReportError = canReportError;\n//# sourceMappingURL=canReportError.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar isArray_1 = require(\"./util/isArray\");\nvar isObject_1 = require(\"./util/isObject\");\nvar isFunction_1 = require(\"./util/isFunction\");\nvar UnsubscriptionError_1 = require(\"./util/UnsubscriptionError\");\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parentOrParents = _a._parentOrParents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (var index = 0; index < _parentOrParents.length; ++index) {\n var parent_1 = _parentOrParents[index];\n parent_1.remove(this);\n }\n }\n if (isFunction_1.isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError_1.UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray_1.isArray(_subscriptions)) {\n var index = -1;\n var len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject_1.isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError_1.UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n var subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n var _parentOrParents = subscription._parentOrParents;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n var subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexports.Subscription = Subscription;\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError_1.UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","export function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n//# sourceMappingURL=hostReportError.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n//# sourceMappingURL=Observer.js.map","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n//# sourceMappingURL=isArray.js.map","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n//# sourceMappingURL=Subscription.js.map","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscriber.js.map","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n//# sourceMappingURL=pipe.js.map","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n//# sourceMappingURL=Subject.js.map","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n//# sourceMappingURL=SubjectSubscription.js.map","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","import { Subscriber } from './Subscriber';\nexport class InnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n _error(error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n//# sourceMappingURL=InnerSubscriber.js.map","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n//# sourceMappingURL=subscribeToArray.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n//# sourceMappingURL=subscribeToObservable.js.map","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n//# sourceMappingURL=subscribeToPromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n const item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n//# sourceMappingURL=subscribeToIterable.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import { Subscriber } from './Subscriber';\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error, innerSub) {\n this.destination.error(error);\n }\n notifyComplete(innerSub) {\n this.destination.complete();\n }\n}\n//# sourceMappingURL=OuterSubscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n//# sourceMappingURL=map.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleArray.js.map","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n//# sourceMappingURL=from.js.map","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=scheduled.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleObservable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n//# sourceMappingURL=schedulePromise.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n//# sourceMappingURL=scheduleIterable.js.map","import { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends OuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n }\n _innerSub(ish, value, index) {\n const innerSubscriber = new InnerSubscriber(this, value, index);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n notifyComplete(innerSub) {\n const buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Number.POSITIVE_INFINITY) {\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n//# sourceMappingURL=fromArray.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge(...observables) {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler = null;\n let last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n//# sourceMappingURL=refCount.js.map","import { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\nexport const connectableObservableDescriptor = (() => {\n const connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _error(err) {\n this._unsubscribe();\n super._error(err);\n }\n _complete() {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n//# sourceMappingURL=ConnectableObservable.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return (source) => refCount()(multicast(shareSubjectFactory)(source));\n}\n//# sourceMappingURL=share.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n let subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n const connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexport class MulticastOperator {\n constructor(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n call(subscriber, source) {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n//# sourceMappingURL=multicast.js.map","/**\n * @license Angular v9.1.9\n * (c) 2010-2020 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { Subject, Subscription, Observable, merge as merge$1 } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Convince closure compiler that the wrapped function has no side-effects.\n *\n * Closure compiler always assumes that `toString` has no side-effects. We use this quirk to\n * allow us to execute a function but have closure compiler mark the call as no-side-effects.\n * It is important that the return value for the `noSideEffects` function be assigned\n * to something which is retained otherwise the call to `noSideEffects` will be removed by closure\n * compiler.\n */\nfunction noSideEffects(fn) {\n return { toString: fn }.toString();\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ANNOTATIONS = '__annotations__';\nconst PARAMETERS = '__parameters__';\nconst PROP_METADATA = '__prop__metadata__';\n/**\n * @suppress {globalThis}\n */\nfunction makeDecorator(name, props, parentClass, additionalProcessing, typeFn) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function DecoratorFactory(...args) {\n if (this instanceof DecoratorFactory) {\n metaCtor.call(this, ...args);\n return this;\n }\n const annotationInstance = new DecoratorFactory(...args);\n return function TypeDecorator(cls) {\n if (typeFn)\n typeFn(cls, ...args);\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const annotations = cls.hasOwnProperty(ANNOTATIONS) ?\n cls[ANNOTATIONS] :\n Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n annotations.push(annotationInstance);\n if (additionalProcessing)\n additionalProcessing(cls);\n return cls;\n };\n }\n if (parentClass) {\n DecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n DecoratorFactory.prototype.ngMetadataName = name;\n DecoratorFactory.annotationCls = DecoratorFactory;\n return DecoratorFactory;\n });\n}\nfunction makeMetadataCtor(props) {\n return function ctor(...args) {\n if (props) {\n const values = props(...args);\n for (const propName in values) {\n this[propName] = values[propName];\n }\n }\n };\n}\nfunction makeParamDecorator(name, props, parentClass) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function ParamDecoratorFactory(...args) {\n if (this instanceof ParamDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const annotationInstance = new ParamDecoratorFactory(...args);\n ParamDecorator.annotation = annotationInstance;\n return ParamDecorator;\n function ParamDecorator(cls, unusedKey, index) {\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const parameters = cls.hasOwnProperty(PARAMETERS) ?\n cls[PARAMETERS] :\n Object.defineProperty(cls, PARAMETERS, { value: [] })[PARAMETERS];\n // there might be gaps if some in between parameters do not have annotations.\n // we pad with nulls.\n while (parameters.length <= index) {\n parameters.push(null);\n }\n (parameters[index] = parameters[index] || []).push(annotationInstance);\n return cls;\n }\n }\n if (parentClass) {\n ParamDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n ParamDecoratorFactory.prototype.ngMetadataName = name;\n ParamDecoratorFactory.annotationCls = ParamDecoratorFactory;\n return ParamDecoratorFactory;\n });\n}\nfunction makePropDecorator(name, props, parentClass, additionalProcessing) {\n return noSideEffects(() => {\n const metaCtor = makeMetadataCtor(props);\n function PropDecoratorFactory(...args) {\n if (this instanceof PropDecoratorFactory) {\n metaCtor.apply(this, args);\n return this;\n }\n const decoratorInstance = new PropDecoratorFactory(...args);\n function PropDecorator(target, name) {\n const constructor = target.constructor;\n // Use of Object.defineProperty is important since it creates non-enumerable property which\n // prevents the property is copied during subclassing.\n const meta = constructor.hasOwnProperty(PROP_METADATA) ?\n constructor[PROP_METADATA] :\n Object.defineProperty(constructor, PROP_METADATA, { value: {} })[PROP_METADATA];\n meta[name] = meta.hasOwnProperty(name) && meta[name] || [];\n meta[name].unshift(decoratorInstance);\n if (additionalProcessing)\n additionalProcessing(target, name, ...args);\n }\n return PropDecorator;\n }\n if (parentClass) {\n PropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n }\n PropDecoratorFactory.prototype.ngMetadataName = name;\n PropDecoratorFactory.annotationCls = PropDecoratorFactory;\n return PropDecoratorFactory;\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/di/metadata.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Type of the Inject decorator / constructor function.\n *\n * \\@publicApi\n * @record\n */\nfunction InjectDecorator() { }\n// WARNING: interface has both a type and a value, skipping emit\nconst ɵ0 = /**\n * @param {?} token\n * @return {?}\n */\n(token) => ({ token });\n/**\n * Inject decorator and metadata.\n *\n * \\@Annotation\n * \\@publicApi\n * @type {?}\n */\nconst Inject = makeParamDecorator('Inject', (ɵ0));\n/**\n * Type of the Optional decorator / constructor function.\n *\n * \\@publicApi\n * @record\n */\nfunction OptionalDecorator() { }\n// WARNING: interface has both a type and a value, skipping emit\n/**\n * Optional decorator and metadata.\n *\n * \\@Annotation\n * \\@publicApi\n * @type {?}\n */\nconst Optional = makeParamDecorator('Optional');\n/**\n * Type of the Self decorator / constructor function.\n *\n * \\@publicApi\n * @record\n */\nfunction SelfDecorator() { }\n// WARNING: interface has both a type and a value, skipping emit\n/**\n * Self decorator and metadata.\n *\n * \\@Annotation\n * \\@publicApi\n * @type {?}\n */\nconst Self = makeParamDecorator('Self');\n/**\n * Type of the SkipSelf decorator / constructor function.\n *\n * \\@publicApi\n * @record\n */\nfunction SkipSelfDecorator() { }\n// WARNING: interface has both a type and a value, skipping emit\n/**\n * SkipSelf decorator and metadata.\n *\n * \\@Annotation\n * \\@publicApi\n * @type {?}\n */\nconst SkipSelf = makeParamDecorator('SkipSelf');\n/**\n * Type of the Host decorator / constructor function.\n *\n * \\@publicApi\n * @record\n */\nfunction HostDecorator() { }\n// WARNING: interface has both a type and a value, skipping emit\n/**\n * Host decorator and metadata.\n *\n * \\@Annotation\n * \\@publicApi\n * @type {?}\n */\nconst Host = makeParamDecorator('Host');\n/**\n * Type of the Attribute decorator / constructor function.\n *\n * \\@publicApi\n * @record\n */\nfunction AttributeDecorator() { }\n// WARNING: interface has both a type and a value, skipping emit\nconst ɵ1 = /**\n * @param {?=} attributeName\n * @return {?}\n */\n(attributeName) => ({ attributeName });\n/**\n * Attribute decorator and metadata.\n *\n * \\@Annotation\n * \\@publicApi\n * @type {?}\n */\nconst Attribute = makeParamDecorator('Attribute', (ɵ1));\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Injection flags for DI.\n *\n * @publicApi\n */\nvar InjectFlags;\n(function (InjectFlags) {\n // TODO(alxhub): make this 'const' when ngc no longer writes exports of it into ngfactory files.\n /** Check self and check parent injector if needed */\n InjectFlags[InjectFlags[\"Default\"] = 0] = \"Default\";\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n InjectFlags[InjectFlags[\"Host\"] = 1] = \"Host\";\n /** Don't ascend to ancestors of the node requesting injection. */\n InjectFlags[InjectFlags[\"Self\"] = 2] = \"Self\";\n /** Skip the node that is requesting injection. */\n InjectFlags[InjectFlags[\"SkipSelf\"] = 4] = \"SkipSelf\";\n /** Inject `defaultValue` instead if token not found. */\n InjectFlags[InjectFlags[\"Optional\"] = 8] = \"Optional\";\n})(InjectFlags || (InjectFlags = {}));\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getClosureSafeProperty(objWithPropertyToExtract) {\n for (let key in objWithPropertyToExtract) {\n if (objWithPropertyToExtract[key] === getClosureSafeProperty) {\n return key;\n }\n }\n throw Error('Could not find renamed property on target object.');\n}\n/**\n * Sets properties on a target object from a source object, but only if\n * the property doesn't already exist on the target object.\n * @param target The target to set properties on\n * @param source The source of the property keys and values to set\n */\nfunction fillProperties(target, source) {\n for (const key in source) {\n if (source.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = source[key];\n }\n }\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Construct an `InjectableDef` which defines how a token will be constructed by the DI system, and\n * in which injectors (if any) it will be available.\n *\n * This should be assigned to a static `ɵprov` field on a type, which will then be an\n * `InjectableType`.\n *\n * Options:\n * * `providedIn` determines which injectors will include the injectable, by either associating it\n * with an `@NgModule` or other `InjectorType`, or by specifying that this injectable should be\n * provided in the `'root'` injector, which will be the application-level injector in most apps.\n * * `factory` gives the zero argument function which will create an instance of the injectable.\n * The factory can call `inject` to access the `Injector` and request injection of dependencies.\n *\n * @codeGenApi\n */\nfunction ɵɵdefineInjectable(opts) {\n return {\n token: opts.token,\n providedIn: opts.providedIn || null,\n factory: opts.factory,\n value: undefined,\n };\n}\n/**\n * @deprecated in v8, delete after v10. This API should be used only be generated code, and that\n * code should now use ɵɵdefineInjectable instead.\n * @publicApi\n */\nconst defineInjectable = ɵɵdefineInjectable;\n/**\n * Construct an `InjectorDef` which configures an injector.\n *\n * This should be assigned to a static injector def (`ɵinj`) field on a type, which will then be an\n * `InjectorType`.\n *\n * Options:\n *\n * * `factory`: an `InjectorType` is an instantiable type, so a zero argument `factory` function to\n * create the type must be provided. If that factory function needs to inject arguments, it can\n * use the `inject` function.\n * * `providers`: an optional array of providers to add to the injector. Each provider must\n * either have a factory or point to a type which has a `ɵprov` static property (the\n * type must be an `InjectableType`).\n * * `imports`: an optional array of imports of other `InjectorType`s or `InjectorTypeWithModule`s\n * whose providers will also be added to the injector. Locally provided types will override\n * providers from imports.\n *\n * @publicApi\n */\nfunction ɵɵdefineInjector(options) {\n return {\n factory: options.factory,\n providers: options.providers || [],\n imports: options.imports || [],\n };\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` in a way which is immune to accidentally reading\n * inherited value.\n *\n * @param type A type which may have its own (non-inherited) `ɵprov`.\n */\nfunction getInjectableDef(type) {\n return getOwnDefinition(type, type[NG_PROV_DEF]) ||\n getOwnDefinition(type, type[NG_INJECTABLE_DEF]);\n}\n/**\n * Return `def` only if it is defined directly on `type` and is not inherited from a base\n * class of `type`.\n *\n * The function `Object.hasOwnProperty` is not sufficient to distinguish this case because in older\n * browsers (e.g. IE10) static property inheritance is implemented by copying the properties.\n *\n * Instead, the definition's `token` is compared to the `type`, and if they don't match then the\n * property was not defined directly on the type itself, and was likely inherited. The definition\n * is only returned if the `type` matches the `def.token`.\n */\nfunction getOwnDefinition(type, def) {\n return def && def.token === type ? def : null;\n}\n/**\n * Read the injectable def (`ɵprov`) for `type` or read the `ɵprov` from one of its ancestors.\n *\n * @param type A type which may have `ɵprov`, via inheritance.\n *\n * @deprecated Will be removed in v10, where an error will occur in the scenario if we find the\n * `ɵprov` on an ancestor only.\n */\nfunction getInheritedInjectableDef(type) {\n // See `jit/injectable.ts#compileInjectable` for context on NG_PROV_DEF_FALLBACK.\n const def = type &&\n (type[NG_PROV_DEF] || type[NG_INJECTABLE_DEF] ||\n (type[NG_PROV_DEF_FALLBACK] && type[NG_PROV_DEF_FALLBACK]()));\n if (def) {\n const typeName = getTypeName(type);\n // TODO(FW-1307): Re-add ngDevMode when closure can handle it\n // ngDevMode &&\n console.warn(`DEPRECATED: DI is instantiating a token \"${typeName}\" that inherits its @Injectable decorator but does not provide one itself.\\n` +\n `This will become an error in v10. Please add @Injectable() to the \"${typeName}\" class.`);\n return def;\n }\n else {\n return null;\n }\n}\n/** Gets the name of a type, accounting for some cross-browser differences. */\nfunction getTypeName(type) {\n // `Function.prototype.name` behaves differently between IE and other browsers. In most browsers\n // it'll always return the name of the function itself, no matter how many other functions it\n // inherits from. On IE the function doesn't have its own `name` property, but it takes it from\n // the lowest level in the prototype chain. E.g. if we have `class Foo extends Parent` most\n // browsers will evaluate `Foo.name` to `Foo` while IE will return `Parent`. We work around\n // the issue by converting the function to a string and parsing its name out that way via a regex.\n if (type.hasOwnProperty('name')) {\n return type.name;\n }\n const match = ('' + type).match(/^function\\s*([^\\s(]+)/);\n return match === null ? '' : match[1];\n}\n/**\n * Read the injector def type in a way which is immune to accidentally reading inherited value.\n *\n * @param type type which may have an injector def (`ɵinj`)\n */\nfunction getInjectorDef(type) {\n return type && (type.hasOwnProperty(NG_INJ_DEF) || type.hasOwnProperty(NG_INJECTOR_DEF)) ?\n type[NG_INJ_DEF] :\n null;\n}\nconst NG_PROV_DEF = getClosureSafeProperty({ ɵprov: getClosureSafeProperty });\nconst NG_INJ_DEF = getClosureSafeProperty({ ɵinj: getClosureSafeProperty });\n// On IE10 properties defined via `defineProperty` won't be inherited by child classes,\n// which will break inheriting the injectable definition from a grandparent through an\n// undecorated parent class. We work around it by defining a fallback method which will be\n// used to retrieve the definition. This should only be a problem in JIT mode, because in\n// AOT TypeScript seems to have a workaround for static properties. When inheriting from an\n// undecorated parent is no longer supported in v10, this can safely be removed.\nconst NG_PROV_DEF_FALLBACK = getClosureSafeProperty({ ɵprovFallback: getClosureSafeProperty });\n// We need to keep these around so we can read off old defs if new defs are unavailable\nconst NG_INJECTABLE_DEF = getClosureSafeProperty({ ngInjectableDef: getClosureSafeProperty });\nconst NG_INJECTOR_DEF = getClosureSafeProperty({ ngInjectorDef: getClosureSafeProperty });\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Concatenates two strings with separator, allocating new strings only when necessary.\n *\n * @param before before string.\n * @param separator separator string.\n * @param after after string.\n * @returns concatenated string.\n */\nfunction concatStringsWithSpace(before, after) {\n return (before == null || before === '') ?\n (after === null ? '' : after) :\n ((after == null || after === '') ? before : before + ' ' + after);\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/di/forward_ref.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * An interface that a function passed into {\\@link forwardRef} has to implement.\n *\n * \\@usageNotes\n * ### Example\n *\n * {\\@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref_fn'}\n * \\@publicApi\n * @record\n */\nfunction ForwardRefFn() { }\n/** @type {?} */\nconst __forward_ref__ = getClosureSafeProperty({ __forward_ref__: getClosureSafeProperty });\n/**\n * Allows to refer to references which are not yet defined.\n *\n * For instance, `forwardRef` is used when the `token` which we need to refer to for the purposes of\n * DI is declared, but not yet defined. It is also used when the `token` which we use when creating\n * a query is not yet defined.\n *\n * \\@usageNotes\n * ### Example\n * {\\@example core/di/ts/forward_ref/forward_ref_spec.ts region='forward_ref'}\n * \\@publicApi\n * @param {?} forwardRefFn\n * @return {?}\n */\nfunction forwardRef(forwardRefFn) {\n ((/** @type {?} */ (forwardRefFn))).__forward_ref__ = forwardRef;\n ((/** @type {?} */ (forwardRefFn))).toString = (/**\n * @return {?}\n */\n function () {\n return stringify(this());\n });\n return ((/** @type {?} */ ((/** @type {?} */ (forwardRefFn)))));\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n *\n * Acts as the identity function when given a non-forward-ref value.\n *\n * \\@usageNotes\n * ### Example\n *\n * {\\@example core/di/ts/forward_ref/forward_ref_spec.ts region='resolve_forward_ref'}\n *\n * @see `forwardRef`\n * \\@publicApi\n * @template T\n * @param {?} type\n * @return {?}\n */\nfunction resolveForwardRef(type) {\n return isForwardRef(type) ? type() : type;\n}\n/**\n * Checks whether a function is wrapped by a `forwardRef`.\n * @param {?} fn\n * @return {?}\n */\nfunction isForwardRef(fn) {\n return typeof fn === 'function' && fn.hasOwnProperty(__forward_ref__) &&\n fn.__forward_ref__ === forwardRef;\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst __globalThis = typeof globalThis !== 'undefined' && globalThis;\nconst __window = typeof window !== 'undefined' && window;\nconst __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nconst __global = typeof global !== 'undefined' && global;\n// Always use __globalThis if available, which is the spec-defined global variable across all\n// environments, then fallback to __global first, because in Node tests both __global and\n// __window may be defined and _global should be __global in that case.\nconst _global = __globalThis || __global || __window || __self;\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar R3ResolvedDependencyType;\n(function (R3ResolvedDependencyType) {\n R3ResolvedDependencyType[R3ResolvedDependencyType[\"Token\"] = 0] = \"Token\";\n R3ResolvedDependencyType[R3ResolvedDependencyType[\"Attribute\"] = 1] = \"Attribute\";\n R3ResolvedDependencyType[R3ResolvedDependencyType[\"ChangeDetectorRef\"] = 2] = \"ChangeDetectorRef\";\n R3ResolvedDependencyType[R3ResolvedDependencyType[\"Invalid\"] = 3] = \"Invalid\";\n})(R3ResolvedDependencyType || (R3ResolvedDependencyType = {}));\nvar R3FactoryTarget;\n(function (R3FactoryTarget) {\n R3FactoryTarget[R3FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n R3FactoryTarget[R3FactoryTarget[\"Component\"] = 1] = \"Component\";\n R3FactoryTarget[R3FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n R3FactoryTarget[R3FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n R3FactoryTarget[R3FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(R3FactoryTarget || (R3FactoryTarget = {}));\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n ViewEncapsulation[ViewEncapsulation[\"Native\"] = 1] = \"Native\";\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction getCompilerFacade() {\n const globalNg = _global['ng'];\n if (!globalNg || !globalNg.ɵcompilerFacade) {\n throw new Error(`Angular JIT compilation failed: '@angular/compiler' not loaded!\\n` +\n ` - JIT compilation is discouraged for production use-cases! Consider AOT mode instead.\\n` +\n ` - Did you bootstrap using '@angular/platform-browser-dynamic' or '@angular/platform-server'?\\n` +\n ` - Alternatively provide the compiler with 'import \"@angular/compiler\";' before bootstrapping.`);\n }\n return globalNg.ɵcompilerFacade;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/fields.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NG_COMP_DEF = getClosureSafeProperty({ ɵcmp: getClosureSafeProperty });\n/** @type {?} */\nconst NG_DIR_DEF = getClosureSafeProperty({ ɵdir: getClosureSafeProperty });\n/** @type {?} */\nconst NG_PIPE_DEF = getClosureSafeProperty({ ɵpipe: getClosureSafeProperty });\n/** @type {?} */\nconst NG_MOD_DEF = getClosureSafeProperty({ ɵmod: getClosureSafeProperty });\n/** @type {?} */\nconst NG_LOC_ID_DEF = getClosureSafeProperty({ ɵloc: getClosureSafeProperty });\n/** @type {?} */\nconst NG_FACTORY_DEF = getClosureSafeProperty({ ɵfac: getClosureSafeProperty });\n// TODO(misko): This is wrong. The NG_ELEMENT_ID should never be minified.\n/**\n * If a directive is diPublic, bloomAdd sets a property on the type with this constant as\n * the key and the directive's unique ID as the value. This allows us to map directives to their\n * bloom filter bit for DI.\n * @type {?}\n */\nconst NG_ELEMENT_ID = getClosureSafeProperty({ __NG_ELEMENT_ID__: getClosureSafeProperty });\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction ngDevModeResetPerfCounters() {\n const locationString = typeof location !== 'undefined' ? location.toString() : '';\n const newCounters = {\n namedConstructors: locationString.indexOf('ngDevMode=namedConstructors') != -1,\n firstCreatePass: 0,\n tNode: 0,\n tView: 0,\n rendererCreateTextNode: 0,\n rendererSetText: 0,\n rendererCreateElement: 0,\n rendererAddEventListener: 0,\n rendererSetAttribute: 0,\n rendererRemoveAttribute: 0,\n rendererSetProperty: 0,\n rendererSetClassName: 0,\n rendererAddClass: 0,\n rendererRemoveClass: 0,\n rendererSetStyle: 0,\n rendererRemoveStyle: 0,\n rendererDestroy: 0,\n rendererDestroyNode: 0,\n rendererMoveNode: 0,\n rendererRemoveNode: 0,\n rendererAppendChild: 0,\n rendererInsertBefore: 0,\n rendererCreateComment: 0,\n };\n // Make sure to refer to ngDevMode as ['ngDevMode'] for closure.\n const allowNgDevModeTrue = locationString.indexOf('ngDevMode=false') === -1;\n _global['ngDevMode'] = allowNgDevModeTrue && newCounters;\n return newCounters;\n}\n/**\n * This function checks to see if the `ngDevMode` has been set. If yes,\n * then we honor it, otherwise we default to dev mode with additional checks.\n *\n * The idea is that unless we are doing production build where we explicitly\n * set `ngDevMode == false` we should be helping the developer by providing\n * as much early warning and errors as possible.\n *\n * `ɵɵdefineComponent` is guaranteed to have been called before any component template functions\n * (and thus Ivy instructions), so a single initialization there is sufficient to ensure ngDevMode\n * is defined for the entire instruction set.\n *\n * When using checking `ngDevMode` on toplevel, always init it before referencing it\n * (e.g. `((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode())`), otherwise you can\n * get a `ReferenceError` like in https://github.com/angular/angular/issues/31595.\n *\n * Details on possible values for `ngDevMode` can be found on its docstring.\n *\n * NOTE:\n * - changes to the `ngDevMode` name must be synced with `compiler-cli/src/tooling.ts`.\n */\nfunction initNgDevMode() {\n // The below checks are to ensure that calling `initNgDevMode` multiple times does not\n // reset the counters.\n // If the `ngDevMode` is not an object, then it means we have not created the perf counters\n // yet.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (typeof ngDevMode !== 'object') {\n ngDevModeResetPerfCounters();\n }\n return !!ngDevMode;\n }\n return false;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/di/injection_token.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Creates a token that can be used in a DI Provider.\n *\n * Use an `InjectionToken` whenever the type you are injecting is not reified (does not have a\n * runtime representation) such as when injecting an interface, callable type, array or\n * parameterized type.\n *\n * `InjectionToken` is parameterized on `T` which is the type of object which will be returned by\n * the `Injector`. This provides additional level of type safety.\n *\n * ```\n * interface MyInterface {...}\n * var myInterface = injector.get(new InjectionToken('SomeToken'));\n * // myInterface is inferred to be MyInterface.\n * ```\n *\n * When creating an `InjectionToken`, you can optionally specify a factory function which returns\n * (possibly by creating) a default value of the parameterized type `T`. This sets up the\n * `InjectionToken` using this factory as a provider as if it was defined explicitly in the\n * application's root injector. If the factory function, which takes zero arguments, needs to inject\n * dependencies, it can do so using the `inject` function. See below for an example.\n *\n * Additionally, if a `factory` is specified you can also specify the `providedIn` option, which\n * overrides the above behavior and marks the token as belonging to a particular `\\@NgModule`. As\n * mentioned above, `'root'` is the default value for `providedIn`.\n *\n * \\@usageNotes\n * ### Basic Example\n *\n * ### Plain InjectionToken\n *\n * {\\@example core/di/ts/injector_spec.ts region='InjectionToken'}\n *\n * ### Tree-shakable InjectionToken\n *\n * {\\@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n *\n * \\@publicApi\n * @template T\n */\nclass InjectionToken {\n /**\n * @param {?} _desc\n * @param {?=} options\n */\n constructor(_desc, options) {\n this._desc = _desc;\n /**\n * \\@internal\n */\n this.ngMetadataName = 'InjectionToken';\n this.ɵprov = undefined;\n if (typeof options == 'number') {\n // This is a special hack to assign __NG_ELEMENT_ID__ to this instance.\n // __NG_ELEMENT_ID__ is Used by Ivy to determine bloom filter id.\n // We are using it to assign `-1` which is used to identify `Injector`.\n ((/** @type {?} */ (this))).__NG_ELEMENT_ID__ = options;\n }\n else if (options !== undefined) {\n this.ɵprov = ɵɵdefineInjectable({\n token: this,\n providedIn: options.providedIn || 'root',\n factory: options.factory,\n });\n }\n }\n /**\n * @return {?}\n */\n toString() {\n return `InjectionToken ${this._desc}`;\n }\n}\nif (false) {\n /**\n * \\@internal\n * @type {?}\n */\n InjectionToken.prototype.ngMetadataName;\n /** @type {?} */\n InjectionToken.prototype.ɵprov;\n /**\n * @type {?}\n * @protected\n */\n InjectionToken.prototype._desc;\n}\n/**\n * @record\n * @template T\n */\nfunction InjectableDefToken() { }\nif (false) {\n /** @type {?} */\n InjectableDefToken.prototype.ɵprov;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/di/injector_compatibility.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * An InjectionToken that gets the current `Injector` for `createInjector()`-style injectors.\n *\n * Requesting this token instead of `Injector` allows `StaticInjector` to be tree-shaken from a\n * project.\n *\n * \\@publicApi\n * @type {?}\n */\nconst INJECTOR = new InjectionToken('INJECTOR', (/** @type {?} */ (-1)));\n/** @type {?} */\nconst _THROW_IF_NOT_FOUND = {};\n/** @type {?} */\nconst THROW_IF_NOT_FOUND = _THROW_IF_NOT_FOUND;\n/** @type {?} */\nconst NG_TEMP_TOKEN_PATH = 'ngTempTokenPath';\n/** @type {?} */\nconst NG_TOKEN_PATH = 'ngTokenPath';\n/** @type {?} */\nconst NEW_LINE = /\\n/gm;\n/** @type {?} */\nconst NO_NEW_LINE = 'ɵ';\n/** @type {?} */\nconst SOURCE = '__source';\nconst ɵ0$1 = getClosureSafeProperty;\n/** @type {?} */\nconst USE_VALUE = getClosureSafeProperty({ provide: String, useValue: ɵ0$1 });\n/**\n * Current injector value used by `inject`.\n * - `undefined`: it is an error to call `inject`\n * - `null`: `inject` can be called but there is no injector (limp-mode).\n * - Injector instance: Use the injector for resolution.\n * @type {?}\n */\nlet _currentInjector = undefined;\n/**\n * @param {?} injector\n * @return {?}\n */\nfunction setCurrentInjector(injector) {\n /** @type {?} */\n const former = _currentInjector;\n _currentInjector = injector;\n return former;\n}\n/**\n * Current implementation of inject.\n *\n * By default, it is `injectInjectorOnly`, which makes it `Injector`-only aware. It can be changed\n * to `directiveInject`, which brings in the `NodeInjector` system of ivy. It is designed this\n * way for two reasons:\n * 1. `Injector` should not depend on ivy logic.\n * 2. To maintain tree shake-ability we don't want to bring in unnecessary code.\n * @type {?}\n */\nlet _injectImplementation;\n/**\n * Sets the current inject implementation.\n * @param {?} impl\n * @return {?}\n */\nfunction setInjectImplementation(impl) {\n /** @type {?} */\n const previous = _injectImplementation;\n _injectImplementation = impl;\n return previous;\n}\n/**\n * @template T\n * @param {?} token\n * @param {?=} flags\n * @return {?}\n */\nfunction injectInjectorOnly(token, flags = InjectFlags.Default) {\n if (_currentInjector === undefined) {\n throw new Error(`inject() must be called from an injection context`);\n }\n else if (_currentInjector === null) {\n return injectRootLimpMode(token, undefined, flags);\n }\n else {\n return _currentInjector.get(token, flags & InjectFlags.Optional ? null : undefined, flags);\n }\n}\n/**\n * @template T\n * @param {?} token\n * @param {?=} flags\n * @return {?}\n */\nfunction ɵɵinject(token, flags = InjectFlags.Default) {\n return (_injectImplementation || injectInjectorOnly)(resolveForwardRef(token), flags);\n}\n/**\n * Throws an error indicating that a factory function could not be generated by the compiler for a\n * particular class.\n *\n * This instruction allows the actual error message to be optimized away when ngDevMode is turned\n * off, saving bytes of generated code while still providing a good experience in dev mode.\n *\n * The name of the class is not mentioned here, but will be in the generated factory function name\n * and thus in the stack trace.\n *\n * \\@codeGenApi\n * @param {?} index\n * @return {?}\n */\nfunction ɵɵinvalidFactoryDep(index) {\n /** @type {?} */\n const msg = ngDevMode ?\n `This constructor is not compatible with Angular Dependency Injection because its dependency at index ${index} of the parameter list is invalid.\nThis can happen if the dependency type is a primitive like a string or if an ancestor of this class is missing an Angular decorator.\n\nPlease check that 1) the type for the parameter at index ${index} is correct and 2) the correct Angular decorators are defined for this class and its ancestors.` :\n 'invalid';\n throw new Error(msg);\n}\n/**\n * Injects a token from the currently active injector.\n *\n * Must be used in the context of a factory function such as one defined for an\n * `InjectionToken`. Throws an error if not called from such a context.\n *\n * Within such a factory function, using this function to request injection of a dependency\n * is faster and more type-safe than providing an additional array of dependencies\n * (as has been common with `useFactory` providers).\n *\n * \\@param token The injection token for the dependency to be injected.\n * \\@param flags Optional flags that control how injection is executed.\n * The flags correspond to injection strategies that can be specified with\n * parameter decorators `\\@Host`, `\\@Self`, `\\@SkipSef`, and `\\@Optional`.\n * \\@return True if injection is successful, null otherwise.\n *\n * \\@usageNotes\n *\n * ### Example\n *\n * {\\@example core/di/ts/injector_spec.ts region='ShakableInjectionToken'}\n *\n * \\@publicApi\n * @type {?}\n */\nconst inject = ɵɵinject;\n/**\n * Injects `root` tokens in limp mode.\n *\n * If no injector exists, we can still inject tree-shakable providers which have `providedIn` set to\n * `\"root\"`. This is known as the limp mode injection. In such case the value is stored in the\n * `InjectableDef`.\n * @template T\n * @param {?} token\n * @param {?} notFoundValue\n * @param {?} flags\n * @return {?}\n */\nfunction injectRootLimpMode(token, notFoundValue, flags) {\n /** @type {?} */\n const injectableDef = getInjectableDef(token);\n if (injectableDef && injectableDef.providedIn == 'root') {\n return injectableDef.value === undefined ? injectableDef.value = injectableDef.factory() :\n injectableDef.value;\n }\n if (flags & InjectFlags.Optional)\n return null;\n if (notFoundValue !== undefined)\n return notFoundValue;\n throw new Error(`Injector: NOT_FOUND [${stringify(token)}]`);\n}\n/**\n * @param {?} types\n * @return {?}\n */\nfunction injectArgs(types) {\n /** @type {?} */\n const args = [];\n for (let i = 0; i < types.length; i++) {\n /** @type {?} */\n const arg = resolveForwardRef(types[i]);\n if (Array.isArray(arg)) {\n if (arg.length === 0) {\n throw new Error('Arguments array must have arguments.');\n }\n /** @type {?} */\n let type = undefined;\n /** @type {?} */\n let flags = InjectFlags.Default;\n for (let j = 0; j < arg.length; j++) {\n /** @type {?} */\n const meta = arg[j];\n if (meta instanceof Optional || meta.ngMetadataName === 'Optional' || meta === Optional) {\n flags |= InjectFlags.Optional;\n }\n else if (meta instanceof SkipSelf || meta.ngMetadataName === 'SkipSelf' || meta === SkipSelf) {\n flags |= InjectFlags.SkipSelf;\n }\n else if (meta instanceof Self || meta.ngMetadataName === 'Self' || meta === Self) {\n flags |= InjectFlags.Self;\n }\n else if (meta instanceof Inject || meta === Inject) {\n type = meta.token;\n }\n else {\n type = meta;\n }\n }\n args.push(ɵɵinject((/** @type {?} */ (type)), flags));\n }\n else {\n args.push(ɵɵinject(arg));\n }\n }\n return args;\n}\nclass NullInjector {\n /**\n * @param {?} token\n * @param {?=} notFoundValue\n * @return {?}\n */\n get(token, notFoundValue = THROW_IF_NOT_FOUND) {\n if (notFoundValue === THROW_IF_NOT_FOUND) {\n // Intentionally left behind: With dev tools open the debugger will stop here. There is no\n // reason why correctly written application should cause this exception.\n // TODO(misko): uncomment the next line once `ngDevMode` works with closure.\n // if (ngDevMode) debugger;\n /** @type {?} */\n const error = new Error(`NullInjectorError: No provider for ${stringify(token)}!`);\n error.name = 'NullInjectorError';\n throw error;\n }\n return notFoundValue;\n }\n}\n/**\n * @param {?} e\n * @param {?} token\n * @param {?} injectorErrorName\n * @param {?} source\n * @return {?}\n */\nfunction catchInjectorError(e, token, injectorErrorName, source) {\n /** @type {?} */\n const tokenPath = e[NG_TEMP_TOKEN_PATH];\n if (token[SOURCE]) {\n tokenPath.unshift(token[SOURCE]);\n }\n e.message = formatError('\\n' + e.message, tokenPath, injectorErrorName, source);\n e[NG_TOKEN_PATH] = tokenPath;\n e[NG_TEMP_TOKEN_PATH] = null;\n throw e;\n}\n/**\n * @param {?} text\n * @param {?} obj\n * @param {?} injectorErrorName\n * @param {?=} source\n * @return {?}\n */\nfunction formatError(text, obj, injectorErrorName, source = null) {\n text = text && text.charAt(0) === '\\n' && text.charAt(1) == NO_NEW_LINE ? text.substr(2) : text;\n /** @type {?} */\n let context = stringify(obj);\n if (Array.isArray(obj)) {\n context = obj.map(stringify).join(' -> ');\n }\n else if (typeof obj === 'object') {\n /** @type {?} */\n let parts = (/** @type {?} */ ([]));\n for (let key in obj) {\n if (obj.hasOwnProperty(key)) {\n /** @type {?} */\n let value = obj[key];\n parts.push(key + ':' + (typeof value === 'string' ? JSON.stringify(value) : stringify(value)));\n }\n }\n context = `{${parts.join(', ')}}`;\n }\n return `${injectorErrorName}${source ? '(' + source + ')' : ''}[${context}]: ${text.replace(NEW_LINE, '\\n ')}`;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/di/jit/environment.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * A mapping of the \\@angular/core API surface used in generated expressions to the actual symbols.\n *\n * This should be kept up to date with the public exports of \\@angular/core.\n * @type {?}\n */\nconst angularCoreDiEnv = {\n 'ɵɵdefineInjectable': ɵɵdefineInjectable,\n 'ɵɵdefineInjector': ɵɵdefineInjector,\n 'ɵɵinject': ɵɵinject,\n 'ɵɵgetFactoryOf': getFactoryOf,\n 'ɵɵinvalidFactoryDep': ɵɵinvalidFactoryDep,\n};\n/**\n * @template T\n * @param {?} type\n * @return {?}\n */\nfunction getFactoryOf(type) {\n /** @type {?} */\n const typeAny = (/** @type {?} */ (type));\n if (isForwardRef(type)) {\n return (/** @type {?} */ (((/**\n * @return {?}\n */\n () => {\n /** @type {?} */\n const factory = getFactoryOf(resolveForwardRef(typeAny));\n return factory ? factory() : null;\n }))));\n }\n /** @type {?} */\n const def = getInjectableDef(typeAny) || getInjectorDef(typeAny);\n if (!def || def.factory === undefined) {\n return null;\n }\n return def.factory;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/linker/ng_module_factory.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents an instance of an NgModule created via a {\\@link NgModuleFactory}.\n *\n * `NgModuleRef` provides access to the NgModule Instance as well other objects related to this\n * NgModule Instance.\n *\n * \\@publicApi\n * @abstract\n * @template T\n */\nclass NgModuleRef {\n}\nif (false) {\n /**\n * The injector that contains all of the providers of the NgModule.\n * @abstract\n * @return {?}\n */\n NgModuleRef.prototype.injector = function () { };\n /**\n * The ComponentFactoryResolver to get hold of the ComponentFactories\n * declared in the `entryComponents` property of the module.\n * @abstract\n * @return {?}\n */\n NgModuleRef.prototype.componentFactoryResolver = function () { };\n /**\n * The NgModule instance.\n * @abstract\n * @return {?}\n */\n NgModuleRef.prototype.instance = function () { };\n /**\n * Destroys the module instance and all of the data structures associated with it.\n * @abstract\n * @return {?}\n */\n NgModuleRef.prototype.destroy = function () { };\n /**\n * Allows to register a callback that will be called when the module is destroyed.\n * @abstract\n * @param {?} callback\n * @return {?}\n */\n NgModuleRef.prototype.onDestroy = function (callback) { };\n}\n/**\n * @record\n * @template T\n */\nfunction InternalNgModuleRef() { }\nif (false) {\n /** @type {?} */\n InternalNgModuleRef.prototype._bootstrapComponents;\n}\n/**\n * \\@publicApi\n * @abstract\n * @template T\n */\nclass NgModuleFactory {\n}\nif (false) {\n /**\n * @abstract\n * @return {?}\n */\n NgModuleFactory.prototype.moduleType = function () { };\n /**\n * @abstract\n * @param {?} parentInjector\n * @return {?}\n */\n NgModuleFactory.prototype.create = function (parentInjector) { };\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction assertNumber(actual, msg) {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\nfunction assertNumberInRange(actual, minInclusive, maxInclusive) {\n assertNumber(actual, 'Expected a number');\n assertLessThanOrEqual(actual, maxInclusive, 'Expected number to be less than or equal to');\n assertGreaterThanOrEqual(actual, minInclusive, 'Expected number to be greater than or equal to');\n}\nfunction assertString(actual, msg) {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\nfunction assertEqual(actual, expected, msg) {\n if (!(actual == expected)) {\n throwError(msg, actual, expected, '==');\n }\n}\nfunction assertNotEqual(actual, expected, msg) {\n if (!(actual != expected)) {\n throwError(msg, actual, expected, '!=');\n }\n}\nfunction assertSame(actual, expected, msg) {\n if (!(actual === expected)) {\n throwError(msg, actual, expected, '===');\n }\n}\nfunction assertNotSame(actual, expected, msg) {\n if (!(actual !== expected)) {\n throwError(msg, actual, expected, '!==');\n }\n}\nfunction assertLessThan(actual, expected, msg) {\n if (!(actual < expected)) {\n throwError(msg, actual, expected, '<');\n }\n}\nfunction assertLessThanOrEqual(actual, expected, msg) {\n if (!(actual <= expected)) {\n throwError(msg, actual, expected, '<=');\n }\n}\nfunction assertGreaterThan(actual, expected, msg) {\n if (!(actual > expected)) {\n throwError(msg, actual, expected, '>');\n }\n}\nfunction assertGreaterThanOrEqual(actual, expected, msg) {\n if (!(actual >= expected)) {\n throwError(msg, actual, expected, '>=');\n }\n}\nfunction assertNotDefined(actual, msg) {\n if (actual != null) {\n throwError(msg, actual, null, '==');\n }\n}\nfunction assertDefined(actual, msg) {\n if (actual == null) {\n throwError(msg, actual, null, '!=');\n }\n}\nfunction throwError(msg, actual, expected, comparison) {\n throw new Error(`ASSERTION ERROR: ${msg}` +\n (comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`));\n}\nfunction assertDomNode(node) {\n // If we're in a worker, `Node` will not be defined.\n assertEqual((typeof Node !== 'undefined' && node instanceof Node) ||\n (typeof node === 'object' && node != null &&\n node.constructor.name === 'WebWorkerRenderNode'), true, `The provided value must be an instance of a DOM Node but got ${stringify(node)}`);\n}\nfunction assertDataInRange(arr, index) {\n const maxLen = arr ? arr.length : 0;\n assertLessThan(index, maxLen, `Index expected to be less than ${maxLen} but got ${index}`);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Equivalent to ES6 spread, add each item to an array.\n *\n * @param items The items to add\n * @param arr The array to which you want to add the items\n */\nfunction addAllToArray(items, arr) {\n for (let i = 0; i < items.length; i++) {\n arr.push(items[i]);\n }\n}\n/**\n * Flattens an array.\n */\nfunction flatten(list, dst) {\n if (dst === undefined)\n dst = list;\n for (let i = 0; i < list.length; i++) {\n let item = list[i];\n if (Array.isArray(item)) {\n // we need to inline it.\n if (dst === list) {\n // Our assumption that the list was already flat was wrong and\n // we need to clone flat since we need to write to it.\n dst = list.slice(0, i);\n }\n flatten(item, dst);\n }\n else if (dst !== list) {\n dst.push(item);\n }\n }\n return dst;\n}\nfunction deepForEach(input, fn) {\n input.forEach(value => Array.isArray(value) ? deepForEach(value, fn) : fn(value));\n}\nfunction addToArray(arr, index, value) {\n // perf: array.push is faster than array.splice!\n if (index >= arr.length) {\n arr.push(value);\n }\n else {\n arr.splice(index, 0, value);\n }\n}\nfunction removeFromArray(arr, index) {\n // perf: array.pop is faster than array.splice!\n if (index >= arr.length - 1) {\n return arr.pop();\n }\n else {\n return arr.splice(index, 1)[0];\n }\n}\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Remove item from array (Same as `Array.splice()` but faster.)\n *\n * `Array.splice()` is not as fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * https://jsperf.com/fast-array-splice (About 20x faster)\n *\n * @param array Array to splice\n * @param index Index of element in array to remove.\n * @param count Number of items to remove.\n */\nfunction arraySplice(array, index, count) {\n const length = array.length - count;\n while (index < length) {\n array[index] = array[index + count];\n index++;\n }\n while (count--) {\n array.pop(); // shrink the array\n }\n}\n/**\n * Same as `Array.splice(index, 0, value)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value Value to add to array.\n */\nfunction arrayInsert(array, index, value) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n while (end > index) {\n const previousEnd = end - 1;\n array[end] = array[previousEnd];\n end = previousEnd;\n }\n array[index] = value;\n}\n/**\n * Same as `Array.splice2(index, 0, value1, value2)` but faster.\n *\n * `Array.splice()` is not fast because it has to allocate an array for the elements which were\n * removed. This causes memory pressure and slows down code when most of the time we don't\n * care about the deleted items array.\n *\n * @param array Array to splice.\n * @param index Index in array where the `value` should be added.\n * @param value1 Value to add to array.\n * @param value2 Value to add to array.\n */\nfunction arrayInsert2(array, index, value1, value2) {\n ngDevMode && assertLessThanOrEqual(index, array.length, 'Can\\'t insert past array end.');\n let end = array.length;\n if (end == index) {\n // inserting at the end.\n array.push(value1, value2);\n }\n else if (end === 1) {\n // corner case when we have less items in array than we have items to insert.\n array.push(value2, array[0]);\n array[0] = value1;\n }\n else {\n end--;\n array.push(array[end - 1], array[end]);\n while (end > index) {\n const previousEnd = end - 2;\n array[end] = array[previousEnd];\n end--;\n }\n array[index] = value1;\n array[index + 1] = value2;\n }\n}\n/**\n * Insert a `value` into an `array` so that the array remains sorted.\n *\n * NOTE:\n * - Duplicates are not allowed, and are ignored.\n * - This uses binary search algorithm for fast inserts.\n *\n * @param array A sorted array to insert into.\n * @param value The value to insert.\n * @returns index of the inserted value.\n */\nfunction arrayInsertSorted(array, value) {\n let index = arrayIndexOfSorted(array, value);\n if (index < 0) {\n // if we did not find it insert it.\n index = ~index;\n arrayInsert(array, index, value);\n }\n return index;\n}\n/**\n * Remove `value` from a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to remove from.\n * @param value The value to remove.\n * @returns index of the removed value.\n * - positive index if value found and removed.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction arrayRemoveSorted(array, value) {\n const index = arrayIndexOfSorted(array, value);\n if (index >= 0) {\n arraySplice(array, index, 1);\n }\n return index;\n}\n/**\n * Get an index of an `value` in a sorted `array`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * located)\n */\nfunction arrayIndexOfSorted(array, value) {\n return _arrayIndexOfSorted(array, value, 0);\n}\n/**\n * Set a `value` for a `key`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or create.\n * @param value The value to set for a `key`.\n * @returns index (always even) of where the value vas set.\n */\nfunction keyValueArraySet(keyValueArray, key, value) {\n let index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it set it.\n keyValueArray[index | 1] = value;\n }\n else {\n index = ~index;\n arrayInsert2(keyValueArray, index, key, value);\n }\n return index;\n}\n/**\n * Retrieve a `value` for a `key` (on `undefined` if not found.)\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @return The `value` stored at the `key` location or `undefined if not found.\n */\nfunction keyValueArrayGet(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it retrieve it.\n return keyValueArray[index | 1];\n }\n return undefined;\n}\n/**\n * Retrieve a `key` index value in the array or `-1` if not found.\n *\n * @param keyValueArray to search.\n * @param key The key to locate.\n * @returns index of where the key is (or should have been.)\n * - positive (even) index if key found.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been inserted.)\n */\nfunction keyValueArrayIndexOf(keyValueArray, key) {\n return _arrayIndexOfSorted(keyValueArray, key, 1);\n}\n/**\n * Delete a `key` (and `value`) from the `KeyValueArray`.\n *\n * @param keyValueArray to modify.\n * @param key The key to locate or delete (if exist).\n * @returns index of where the key was (or should have been.)\n * - positive (even) index if key found and deleted.\n * - negative index if key not found. (`~index` (even) to get the index where it should have\n * been.)\n */\nfunction keyValueArrayDelete(keyValueArray, key) {\n const index = keyValueArrayIndexOf(keyValueArray, key);\n if (index >= 0) {\n // if we found it remove it.\n arraySplice(keyValueArray, index, 2);\n }\n return index;\n}\n/**\n * INTERNAL: Get an index of an `value` in a sorted `array` by grouping search by `shift`.\n *\n * NOTE:\n * - This uses binary search algorithm for fast removals.\n *\n * @param array A sorted array to binary search.\n * @param value The value to look for.\n * @param shift grouping shift.\n * - `0` means look at every location\n * - `1` means only look at every other (even) location (the odd locations are to be ignored as\n * they are values.)\n * @returns index of the value.\n * - positive index if value found.\n * - negative index if value not found. (`~index` to get the value where it should have been\n * inserted)\n */\nfunction _arrayIndexOfSorted(array, value, shift) {\n ngDevMode && assertEqual(Array.isArray(array), true, 'Expecting an array');\n let start = 0;\n let end = array.length >> shift;\n while (end !== start) {\n const middle = start + ((end - start) >> 1); // find the middle.\n const current = array[middle << shift];\n if (value === current) {\n return (middle << shift);\n }\n else if (current > value) {\n end = middle;\n }\n else {\n start = middle + 1; // We already searched middle so make it non-inclusive by adding 1\n }\n }\n return ~(end << shift);\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/change_detection/constants.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @enum {number} */\nconst ChangeDetectionStrategy = {\n /**\n * Use the `CheckOnce` strategy, meaning that automatic change detection is deactivated\n * until reactivated by setting the strategy to `Default` (`CheckAlways`).\n * Change detection can still be explicitly invoked.\n * This strategy applies to all child directives and cannot be overridden.\n */\n OnPush: 0,\n /**\n * Use the default `CheckAlways` strategy, in which change detection is automatic until\n * explicitly deactivated.\n */\n Default: 1,\n};\nChangeDetectionStrategy[ChangeDetectionStrategy.OnPush] = 'OnPush';\nChangeDetectionStrategy[ChangeDetectionStrategy.Default] = 'Default';\n/** @enum {number} */\nconst ChangeDetectorStatus = {\n /**\n * A state in which, after calling `detectChanges()`, the change detector\n * state becomes `Checked`, and must be explicitly invoked or reactivated.\n */\n CheckOnce: 0,\n /**\n * A state in which change detection is skipped until the change detector mode\n * becomes `CheckOnce`.\n */\n Checked: 1,\n /**\n * A state in which change detection continues automatically until explicitly\n * deactivated.\n */\n CheckAlways: 2,\n /**\n * A state in which a change detector sub tree is not a part of the main tree and\n * should be skipped.\n */\n Detached: 3,\n /**\n * Indicates that the change detector encountered an error checking a binding\n * or calling a directive lifecycle method and is now in an inconsistent state. Change\n * detectors in this state do not detect changes.\n */\n Errored: 4,\n /**\n * Indicates that the change detector has been destroyed.\n */\n Destroyed: 5,\n};\nChangeDetectorStatus[ChangeDetectorStatus.CheckOnce] = 'CheckOnce';\nChangeDetectorStatus[ChangeDetectorStatus.Checked] = 'Checked';\nChangeDetectorStatus[ChangeDetectorStatus.CheckAlways] = 'CheckAlways';\nChangeDetectorStatus[ChangeDetectorStatus.Detached] = 'Detached';\nChangeDetectorStatus[ChangeDetectorStatus.Errored] = 'Errored';\nChangeDetectorStatus[ChangeDetectorStatus.Destroyed] = 'Destroyed';\n/**\n * Reports whether a given strategy is currently the default for change detection.\n * @see `ChangeDetectorStatus` / `ChangeDetectorRef`\n * @param {?} changeDetectionStrategy The strategy to check.\n * @return {?} True if the given strategy is the current default, false otherwise.\n */\nfunction isDefaultChangeDetectionStrategy(changeDetectionStrategy) {\n return changeDetectionStrategy == null ||\n changeDetectionStrategy === ChangeDetectionStrategy.Default;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/metadata/view.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @enum {number} */\nconst ViewEncapsulation$1 = {\n /**\n * Emulate `Native` scoping of styles by adding an attribute containing surrogate id to the Host\n * Element and pre-processing the style rules provided via {@link Component#styles styles} or\n * {@link Component#styleUrls styleUrls}, and adding the new Host Element attribute to all\n * selectors.\n *\n * This is the default option.\n */\n Emulated: 0,\n /**\n * @deprecated v6.1.0 - use {ViewEncapsulation.ShadowDom} instead.\n * Use the native encapsulation mechanism of the renderer.\n *\n * For the DOM this means using the deprecated [Shadow DOM\n * v0](https://w3c.github.io/webcomponents/spec/shadow/) and\n * creating a ShadowRoot for Component's Host Element.\n */\n Native: 1,\n /**\n * Don't provide any template or style encapsulation.\n */\n None: 2,\n /**\n * Use Shadow DOM to encapsulate styles.\n *\n * For the DOM this means using modern [Shadow\n * DOM](https://w3c.github.io/webcomponents/spec/shadow/) and\n * creating a ShadowRoot for Component's Host Element.\n */\n ShadowDom: 3,\n};\nViewEncapsulation$1[ViewEncapsulation$1.Emulated] = 'Emulated';\nViewEncapsulation$1[ViewEncapsulation$1.Native] = 'Native';\nViewEncapsulation$1[ViewEncapsulation$1.None] = 'None';\nViewEncapsulation$1[ViewEncapsulation$1.ShadowDom] = 'ShadowDom';\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/empty.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * This file contains reuseable \"empty\" symbols that can be used as default return values\n * in different parts of the rendering code. Because the same symbols are returned, this\n * allows for identity checks against these values to be consistently used by the framework\n * code.\n * @type {?}\n */\nconst EMPTY_OBJ = {};\n/** @type {?} */\nconst EMPTY_ARRAY = [];\n// freezing the values prevents any code from accidentally inserting new values in\nif ((typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode()) {\n // These property accesses can be ignored because ngDevMode will be set to false\n // when optimizing code and the whole if statement will be dropped.\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_OBJ);\n // tslint:disable-next-line:no-toplevel-property-access\n Object.freeze(EMPTY_ARRAY);\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/definition.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nlet _renderCompCount = 0;\n/**\n * Create a component definition object.\n *\n *\n * # Example\n * ```\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵcmp = defineComponent({\n * ...\n * });\n * }\n * ```\n * \\@codeGenApi\n * @template T\n * @param {?} componentDefinition\n * @return {?}\n */\nfunction ɵɵdefineComponent(componentDefinition) {\n return noSideEffects((/**\n * @return {?}\n */\n () => {\n // Initialize ngDevMode. This must be the first statement in ɵɵdefineComponent.\n // See the `initNgDevMode` docstring for more information.\n (typeof ngDevMode === 'undefined' || ngDevMode) && initNgDevMode();\n /** @type {?} */\n const type = componentDefinition.type;\n /** @type {?} */\n const typePrototype = type.prototype;\n /** @type {?} */\n const declaredInputs = (/** @type {?} */ ({}));\n /** @type {?} */\n const def = {\n type: type,\n providersResolver: null,\n decls: componentDefinition.decls,\n vars: componentDefinition.vars,\n factory: null,\n template: componentDefinition.template || (/** @type {?} */ (null)),\n consts: componentDefinition.consts || null,\n ngContentSelectors: componentDefinition.ngContentSelectors,\n hostBindings: componentDefinition.hostBindings || null,\n hostVars: componentDefinition.hostVars || 0,\n hostAttrs: componentDefinition.hostAttrs || null,\n contentQueries: componentDefinition.contentQueries || null,\n declaredInputs: declaredInputs,\n inputs: (/** @type {?} */ (null)),\n // assigned in noSideEffects\n outputs: (/** @type {?} */ (null)),\n // assigned in noSideEffects\n exportAs: componentDefinition.exportAs || null,\n onChanges: null,\n onInit: typePrototype.ngOnInit || null,\n doCheck: typePrototype.ngDoCheck || null,\n afterContentInit: typePrototype.ngAfterContentInit || null,\n afterContentChecked: typePrototype.ngAfterContentChecked || null,\n afterViewInit: typePrototype.ngAfterViewInit || null,\n afterViewChecked: typePrototype.ngAfterViewChecked || null,\n onDestroy: typePrototype.ngOnDestroy || null,\n onPush: componentDefinition.changeDetection === ChangeDetectionStrategy.OnPush,\n directiveDefs: (/** @type {?} */ (null)),\n // assigned in noSideEffects\n pipeDefs: (/** @type {?} */ (null)),\n // assigned in noSideEffects\n selectors: componentDefinition.selectors || EMPTY_ARRAY,\n viewQuery: componentDefinition.viewQuery || null,\n features: (/** @type {?} */ (componentDefinition.features)) || null,\n data: componentDefinition.data || {},\n // TODO(misko): convert ViewEncapsulation into const enum so that it can be used directly in\n // the next line. Also `None` should be 0 not 2.\n encapsulation: componentDefinition.encapsulation || ViewEncapsulation$1.Emulated,\n id: 'c',\n styles: componentDefinition.styles || EMPTY_ARRAY,\n _: (/** @type {?} */ (null)),\n setInput: null,\n schemas: componentDefinition.schemas || null,\n tView: null,\n };\n /** @type {?} */\n const directiveTypes = (/** @type {?} */ (componentDefinition.directives));\n /** @type {?} */\n const feature = componentDefinition.features;\n /** @type {?} */\n const pipeTypes = (/** @type {?} */ (componentDefinition.pipes));\n def.id += _renderCompCount++;\n def.inputs = invertObject(componentDefinition.inputs, declaredInputs),\n def.outputs = invertObject(componentDefinition.outputs),\n feature && feature.forEach((/**\n * @param {?} fn\n * @return {?}\n */\n (fn) => fn(def)));\n def.directiveDefs = directiveTypes ?\n (/**\n * @return {?}\n */\n () => (typeof directiveTypes === 'function' ? directiveTypes() : directiveTypes)\n .map(extractDirectiveDef)) :\n null;\n def.pipeDefs = pipeTypes ?\n (/**\n * @return {?}\n */\n () => (typeof pipeTypes === 'function' ? pipeTypes() : pipeTypes).map(extractPipeDef)) :\n null;\n return (/** @type {?} */ (def));\n }));\n}\n/**\n * \\@codeGenApi\n * @param {?} type\n * @param {?} directives\n * @param {?} pipes\n * @return {?}\n */\nfunction ɵɵsetComponentScope(type, directives, pipes) {\n /** @type {?} */\n const def = ((/** @type {?} */ (type.ɵcmp)));\n def.directiveDefs = (/**\n * @return {?}\n */\n () => directives.map(extractDirectiveDef));\n def.pipeDefs = (/**\n * @return {?}\n */\n () => pipes.map(extractPipeDef));\n}\n/**\n * @param {?} type\n * @return {?}\n */\nfunction extractDirectiveDef(type) {\n /** @type {?} */\n const def = getComponentDef(type) || getDirectiveDef(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is neither 'ComponentType' or 'DirectiveType'.`);\n }\n return (/** @type {?} */ (def));\n}\n/**\n * @param {?} type\n * @return {?}\n */\nfunction extractPipeDef(type) {\n /** @type {?} */\n const def = getPipeDef(type);\n if (ngDevMode && !def) {\n throw new Error(`'${type.name}' is not a 'PipeType'.`);\n }\n return (/** @type {?} */ (def));\n}\n/** @type {?} */\nconst autoRegisterModuleById = {};\n/**\n * \\@codeGenApi\n * @template T\n * @param {?} def\n * @return {?}\n */\nfunction ɵɵdefineNgModule(def) {\n /** @type {?} */\n const res = {\n type: def.type,\n bootstrap: def.bootstrap || EMPTY_ARRAY,\n declarations: def.declarations || EMPTY_ARRAY,\n imports: def.imports || EMPTY_ARRAY,\n exports: def.exports || EMPTY_ARRAY,\n transitiveCompileScopes: null,\n schemas: def.schemas || null,\n id: def.id || null,\n };\n if (def.id != null) {\n noSideEffects((/**\n * @return {?}\n */\n () => {\n autoRegisterModuleById[(/** @type {?} */ (def.id))] = (/** @type {?} */ ((/** @type {?} */ (def.type))));\n }));\n }\n return (/** @type {?} */ (res));\n}\n/**\n * Adds the module metadata that is necessary to compute the module's transitive scope to an\n * existing module definition.\n *\n * Scope metadata of modules is not used in production builds, so calls to this function can be\n * marked pure to tree-shake it from the bundle, allowing for all referenced declarations\n * to become eligible for tree-shaking as well.\n *\n * \\@codeGenApi\n * @param {?} type\n * @param {?} scope\n * @return {?}\n */\nfunction ɵɵsetNgModuleScope(type, scope) {\n return (/** @type {?} */ (noSideEffects((/**\n * @return {?}\n */\n () => {\n /** @type {?} */\n const ngModuleDef = getNgModuleDef(type, true);\n ngModuleDef.declarations = scope.declarations || EMPTY_ARRAY;\n ngModuleDef.imports = scope.imports || EMPTY_ARRAY;\n ngModuleDef.exports = scope.exports || EMPTY_ARRAY;\n }))));\n}\n/**\n * Inverts an inputs or outputs lookup such that the keys, which were the\n * minified keys, are part of the values, and the values are parsed so that\n * the publicName of the property is the new key\n *\n * e.g. for\n *\n * ```\n * class Comp {\n * \\@Input()\n * propName1: string;\n *\n * \\@Input('publicName2')\n * declaredPropName2: number;\n * }\n * ```\n *\n * will be serialized as\n *\n * ```\n * {\n * propName1: 'propName1',\n * declaredPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * which is than translated by the minifier as:\n *\n * ```\n * {\n * minifiedPropName1: 'propName1',\n * minifiedPropName2: ['publicName2', 'declaredPropName2'],\n * }\n * ```\n *\n * becomes: (public name => minifiedName)\n *\n * ```\n * {\n * 'propName1': 'minifiedPropName1',\n * 'publicName2': 'minifiedPropName2',\n * }\n * ```\n *\n * Optionally the function can take `secondary` which will result in: (public name => declared name)\n *\n * ```\n * {\n * 'propName1': 'propName1',\n * 'publicName2': 'declaredPropName2',\n * }\n * ```\n *\n * @template T\n * @param {?=} obj\n * @param {?=} secondary\n * @return {?}\n */\nfunction invertObject(obj, secondary) {\n if (obj == null)\n return (/** @type {?} */ (EMPTY_OBJ));\n /** @type {?} */\n const newLookup = {};\n for (const minifiedKey in obj) {\n if (obj.hasOwnProperty(minifiedKey)) {\n /** @type {?} */\n let publicName = (/** @type {?} */ (obj[minifiedKey]));\n /** @type {?} */\n let declaredName = publicName;\n if (Array.isArray(publicName)) {\n declaredName = publicName[1];\n publicName = publicName[0];\n }\n newLookup[publicName] = minifiedKey;\n if (secondary) {\n (secondary[publicName] = (/** @type {?} */ (declaredName)));\n }\n }\n }\n return newLookup;\n}\n/**\n * Create a directive definition object.\n *\n * # Example\n * ```ts\n * class MyDirective {\n * // Generated by Angular Template Compiler\n * // [Symbol] syntax will not be supported by TypeScript until v2.7\n * static ɵdir = ɵɵdefineDirective({\n * ...\n * });\n * }\n * ```\n *\n * \\@codeGenApi\n * @type {?}\n */\nconst ɵɵdefineDirective = (/** @type {?} */ ((/** @type {?} */ (ɵɵdefineComponent))));\n/**\n * Create a pipe definition object.\n *\n * # Example\n * ```\n * class MyPipe implements PipeTransform {\n * // Generated by Angular Template Compiler\n * static ɵpipe = definePipe({\n * ...\n * });\n * }\n * ```\n * \\@codeGenApi\n * @template T\n * @param {?} pipeDef Pipe definition generated by the compiler\n *\n * @return {?}\n */\nfunction ɵɵdefinePipe(pipeDef) {\n return (/** @type {?} */ (((/** @type {?} */ ({\n type: pipeDef.type,\n name: pipeDef.name,\n factory: null,\n pure: pipeDef.pure !== false,\n onDestroy: pipeDef.type.prototype.ngOnDestroy || null\n })))));\n}\n/**\n * The following getter methods retrieve the definition form the type. Currently the retrieval\n * honors inheritance, but in the future we may change the rule to require that definitions are\n * explicit. This would require some sort of migration strategy.\n * @template T\n * @param {?} type\n * @return {?}\n */\nfunction getComponentDef(type) {\n return type[NG_COMP_DEF] || null;\n}\n/**\n * @template T\n * @param {?} type\n * @return {?}\n */\nfunction getDirectiveDef(type) {\n return type[NG_DIR_DEF] || null;\n}\n/**\n * @template T\n * @param {?} type\n * @return {?}\n */\nfunction getPipeDef(type) {\n return type[NG_PIPE_DEF] || null;\n}\n/**\n * @template T\n * @param {?} type\n * @param {?=} throwNotFound\n * @return {?}\n */\nfunction getFactoryDef(type, throwNotFound) {\n /** @type {?} */\n const hasFactoryDef = type.hasOwnProperty(NG_FACTORY_DEF);\n if (!hasFactoryDef && throwNotFound === true && ngDevMode) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵfac' property.`);\n }\n return hasFactoryDef ? type[NG_FACTORY_DEF] : null;\n}\n/**\n * @template T\n * @param {?} type\n * @param {?=} throwNotFound\n * @return {?}\n */\nfunction getNgModuleDef(type, throwNotFound) {\n /** @type {?} */\n const ngModuleDef = type[NG_MOD_DEF] || null;\n if (!ngModuleDef && throwNotFound === true) {\n throw new Error(`Type ${stringify(type)} does not have 'ɵmod' property.`);\n }\n return ngModuleDef;\n}\n/**\n * @param {?} type\n * @return {?}\n */\nfunction getNgLocaleIdDef(type) {\n return ((/** @type {?} */ (type)))[NG_LOC_ID_DEF] || null;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/interfaces/view.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Below are constants for LView indices to help us look up LView members\n// without having to remember the specific indices.\n// Uglify will inline these when minifying so there shouldn't be a cost.\n/** @type {?} */\nconst HOST = 0;\n/** @type {?} */\nconst TVIEW = 1;\n/** @type {?} */\nconst FLAGS = 2;\n/** @type {?} */\nconst PARENT = 3;\n/** @type {?} */\nconst NEXT = 4;\n/** @type {?} */\nconst TRANSPLANTED_VIEWS_TO_REFRESH = 5;\n/** @type {?} */\nconst T_HOST = 6;\n/** @type {?} */\nconst CLEANUP = 7;\n/** @type {?} */\nconst CONTEXT = 8;\n/** @type {?} */\nconst INJECTOR$1 = 9;\n/** @type {?} */\nconst RENDERER_FACTORY = 10;\n/** @type {?} */\nconst RENDERER = 11;\n/** @type {?} */\nconst SANITIZER = 12;\n/** @type {?} */\nconst CHILD_HEAD = 13;\n/** @type {?} */\nconst CHILD_TAIL = 14;\n/** @type {?} */\nconst DECLARATION_VIEW = 15;\n/** @type {?} */\nconst DECLARATION_COMPONENT_VIEW = 16;\n/** @type {?} */\nconst DECLARATION_LCONTAINER = 17;\n/** @type {?} */\nconst PREORDER_HOOK_FLAGS = 18;\n/** @type {?} */\nconst QUERIES = 19;\n/**\n * Size of LView's header. Necessary to adjust for it when setting slots.\n * @type {?}\n */\nconst HEADER_OFFSET = 20;\n/**\n * @record\n */\nfunction OpaqueViewState() { }\nif (false) {\n /** @type {?} */\n OpaqueViewState.prototype.__brand__;\n}\n/**\n * `LView` stores all of the information needed to process the instructions as\n * they are invoked from the template. Each embedded view and component view has its\n * own `LView`. When processing a particular view, we set the `viewData` to that\n * `LView`. When that view is done processing, the `viewData` is set back to\n * whatever the original `viewData` was before (the parent `LView`).\n *\n * Keeping separate state for each view facilities view insertion / deletion, so we\n * don't have to edit the data array based on which views are present.\n * @record\n */\nfunction LView() { }\nif (false) {\n /* Skipping unnamed member:\n [HOST]: RElement|null;*/\n /* Skipping unnamed member:\n readonly[TVIEW]: TView;*/\n /* Skipping unnamed member:\n [FLAGS]: LViewFlags;*/\n /* Skipping unnamed member:\n [PARENT]: LView|LContainer|null;*/\n /* Skipping unnamed member:\n [NEXT]: LView|LContainer|null;*/\n /* Skipping unnamed member:\n [QUERIES]: LQueries|null;*/\n /* Skipping unnamed member:\n [T_HOST]: TViewNode|TElementNode|null;*/\n /* Skipping unnamed member:\n [CLEANUP]: any[]|null;*/\n /* Skipping unnamed member:\n [CONTEXT]: {}|RootContext|null;*/\n /* Skipping unnamed member:\n readonly[INJECTOR]: Injector|null;*/\n /* Skipping unnamed member:\n [RENDERER_FACTORY]: RendererFactory3;*/\n /* Skipping unnamed member:\n [RENDERER]: Renderer3;*/\n /* Skipping unnamed member:\n [SANITIZER]: Sanitizer|null;*/\n /* Skipping unnamed member:\n [CHILD_HEAD]: LView|LContainer|null;*/\n /* Skipping unnamed member:\n [CHILD_TAIL]: LView|LContainer|null;*/\n /* Skipping unnamed member:\n [DECLARATION_VIEW]: LView|null;*/\n /* Skipping unnamed member:\n [DECLARATION_COMPONENT_VIEW]: LView;*/\n /* Skipping unnamed member:\n [DECLARATION_LCONTAINER]: LContainer|null;*/\n /* Skipping unnamed member:\n [PREORDER_HOOK_FLAGS]: PreOrderHookFlags;*/\n /* Skipping unnamed member:\n [TRANSPLANTED_VIEWS_TO_REFRESH]: number;*/\n}\n/** @enum {number} */\nconst LViewFlags = {\n /** The state of the init phase on the first 2 bits */\n InitPhaseStateIncrementer: 1,\n InitPhaseStateMask: 3,\n /**\n * Whether or not the view is in creationMode.\n *\n * This must be stored in the view rather than using `data` as a marker so that\n * we can properly support embedded views. Otherwise, when exiting a child view\n * back into the parent view, `data` will be defined and `creationMode` will be\n * improperly reported as false.\n */\n CreationMode: 4,\n /**\n * Whether or not this LView instance is on its first processing pass.\n *\n * An LView instance is considered to be on its \"first pass\" until it\n * has completed one creation mode run and one update mode run. At this\n * time, the flag is turned off.\n */\n FirstLViewPass: 8,\n /** Whether this view has default change detection strategy (checks always) or onPush */\n CheckAlways: 16,\n /**\n * Whether or not manual change detection is turned on for onPush components.\n *\n * This is a special mode that only marks components dirty in two cases:\n * 1) There has been a change to an @Input property\n * 2) `markDirty()` has been called manually by the user\n *\n * Note that in this mode, the firing of events does NOT mark components\n * dirty automatically.\n *\n * Manual mode is turned off by default for backwards compatibility, as events\n * automatically mark OnPush components dirty in View Engine.\n *\n * TODO: Add a public API to ChangeDetectionStrategy to turn this mode on\n */\n ManualOnPush: 32,\n /** Whether or not this view is currently dirty (needing check) */\n Dirty: 64,\n /** Whether or not this view is currently attached to change detection tree. */\n Attached: 128,\n /** Whether or not this view is destroyed. */\n Destroyed: 256,\n /** Whether or not this view is the root view */\n IsRoot: 512,\n /**\n * Whether this moved LView was needs to be refreshed at the insertion location because the\n * declaration was dirty.\n */\n RefreshTransplantedView: 1024,\n /**\n * Index of the current init phase on last 21 bits\n */\n IndexWithinInitPhaseIncrementer: 2048,\n IndexWithinInitPhaseShift: 11,\n IndexWithinInitPhaseReset: 2047,\n};\n/** @enum {number} */\nconst InitPhaseState = {\n OnInitHooksToBeRun: 0,\n AfterContentInitHooksToBeRun: 1,\n AfterViewInitHooksToBeRun: 2,\n InitPhaseCompleted: 3,\n};\n/** @enum {number} */\nconst PreOrderHookFlags = {\n /**\n The index of the next pre-order hook to be called in the hooks array, on the first 16\n bits\n */\n IndexOfTheNextPreOrderHookMaskMask: 65535,\n /**\n * The number of init hooks that have already been called, on the last 16 bits\n */\n NumberOfInitHooksCalledIncrementer: 65536,\n NumberOfInitHooksCalledShift: 16,\n NumberOfInitHooksCalledMask: 4294901760,\n};\n/**\n * Set of instructions used to process host bindings efficiently.\n *\n * See VIEW_DATA.md for more information.\n * @record\n */\nfunction ExpandoInstructions() { }\n/** @enum {number} */\nconst TViewType = {\n /**\n * Root `TView` is the used to bootstrap components into. It is used in conjunction with\n * `LView` which takes an existing DOM node not owned by Angular and wraps it in `TView`/`LView`\n * so that other components can be loaded into it.\n */\n Root: 0,\n /**\n * `TView` associated with a Component. This would be the `TView` directly associated with the\n * component view (as opposed an `Embedded` `TView` which would be a child of `Component` `TView`)\n */\n Component: 1,\n /**\n * `TView` associated with a template. Such as `*ngIf`, `` etc... A `Component`\n * can have zero or more `Embedede` `TView`s.\n */\n Embedded: 2,\n};\n/**\n * The static data for an LView (shared between all templates of a\n * given type).\n *\n * Stored on the `ComponentDef.tView`.\n * @record\n */\nfunction TView() { }\nif (false) {\n /**\n * Type of `TView` (`Root`|`Component`|`Embedded`).\n * @type {?}\n */\n TView.prototype.type;\n /**\n * ID for inline views to determine whether a view is the same as the previous view\n * in a certain position. If it's not, we know the new view needs to be inserted\n * and the one that exists needs to be removed (e.g. if/else statements)\n *\n * If this is -1, then this is a component view or a dynamically created view.\n * @type {?}\n */\n TView.prototype.id;\n /**\n * This is a blueprint used to generate LView instances for this TView. Copying this\n * blueprint is faster than creating a new LView from scratch.\n * @type {?}\n */\n TView.prototype.blueprint;\n /**\n * The template function used to refresh the view of dynamically created views\n * and components. Will be null for inline views.\n * @type {?}\n */\n TView.prototype.template;\n /**\n * A function containing query-related instructions.\n * @type {?}\n */\n TView.prototype.viewQuery;\n /**\n * Pointer to the host `TNode` (not part of this TView).\n *\n * If this is a `TViewNode` for an `LViewNode`, this is an embedded view of a container.\n * We need this pointer to be able to efficiently find this node when inserting the view\n * into an anchor.\n *\n * If this is a `TElementNode`, this is the view of a root component. It has exactly one\n * root TNode.\n *\n * If this is null, this is the view of a component that is not at root. We do not store\n * the host TNodes for child component views because they can potentially have several\n * different host TNodes, depending on where the component is being used. These host\n * TNodes cannot be shared (due to different indices, etc).\n * @type {?}\n */\n TView.prototype.node;\n /**\n * Whether or not this template has been processed in creation mode.\n * @type {?}\n */\n TView.prototype.firstCreatePass;\n /**\n * Whether or not this template has been processed in update mode (e.g. change detected)\n *\n * `firstUpdatePass` is used by styling to set up `TData` to contain metadata about the styling\n * instructions. (Mainly to build up a linked list of styling priority order.)\n *\n * Typically this function gets cleared after first execution. If exception is thrown then this\n * flag can remain turned un until there is first successful (no exception) pass. This means that\n * individual styling instructions keep track of if they have already been added to the linked\n * list to prevent double adding.\n * @type {?}\n */\n TView.prototype.firstUpdatePass;\n /**\n * Static data equivalent of LView.data[]. Contains TNodes, PipeDefInternal or TI18n.\n * @type {?}\n */\n TView.prototype.data;\n /**\n * The binding start index is the index at which the data array\n * starts to store bindings only. Saving this value ensures that we\n * will begin reading bindings at the correct point in the array when\n * we are in update mode.\n *\n * -1 means that it has not been initialized.\n * @type {?}\n */\n TView.prototype.bindingStartIndex;\n /**\n * The index where the \"expando\" section of `LView` begins. The expando\n * section contains injectors, directive instances, and host binding values.\n * Unlike the \"decls\" and \"vars\" sections of `LView`, the length of this\n * section cannot be calculated at compile-time because directives are matched\n * at runtime to preserve locality.\n *\n * We store this start index so we know where to start checking host bindings\n * in `setHostBindings`.\n * @type {?}\n */\n TView.prototype.expandoStartIndex;\n /**\n * Whether or not there are any static view queries tracked on this view.\n *\n * We store this so we know whether or not we should do a view query\n * refresh after creation mode to collect static query results.\n * @type {?}\n */\n TView.prototype.staticViewQueries;\n /**\n * Whether or not there are any static content queries tracked on this view.\n *\n * We store this so we know whether or not we should do a content query\n * refresh after creation mode to collect static query results.\n * @type {?}\n */\n TView.prototype.staticContentQueries;\n /**\n * A reference to the first child node located in the view.\n * @type {?}\n */\n TView.prototype.firstChild;\n /**\n * Set of instructions used to process host bindings efficiently.\n *\n * See VIEW_DATA.md for more information.\n * @type {?}\n */\n TView.prototype.expandoInstructions;\n /**\n * Full registry of directives and components that may be found in this view.\n *\n * It's necessary to keep a copy of the full def list on the TView so it's possible\n * to render template functions without a host component.\n * @type {?}\n */\n TView.prototype.directiveRegistry;\n /**\n * Full registry of pipes that may be found in this view.\n *\n * The property is either an array of `PipeDefs`s or a function which returns the array of\n * `PipeDefs`s. The function is necessary to be able to support forward declarations.\n *\n * It's necessary to keep a copy of the full def list on the TView so it's possible\n * to render template functions without a host component.\n * @type {?}\n */\n TView.prototype.pipeRegistry;\n /**\n * Array of ngOnInit, ngOnChanges and ngDoCheck hooks that should be executed for this view in\n * creation mode.\n *\n * Even indices: Directive index\n * Odd indices: Hook function\n * @type {?}\n */\n TView.prototype.preOrderHooks;\n /**\n * Array of ngOnChanges and ngDoCheck hooks that should be executed for this view in update mode.\n *\n * Even indices: Directive index\n * Odd indices: Hook function\n * @type {?}\n */\n TView.prototype.preOrderCheckHooks;\n /**\n * Array of ngAfterContentInit and ngAfterContentChecked hooks that should be executed\n * for this view in creation mode.\n *\n * Even indices: Directive index\n * Odd indices: Hook function\n * @type {?}\n */\n TView.prototype.contentHooks;\n /**\n * Array of ngAfterContentChecked hooks that should be executed for this view in update\n * mode.\n *\n * Even indices: Directive index\n * Odd indices: Hook function\n * @type {?}\n */\n TView.prototype.contentCheckHooks;\n /**\n * Array of ngAfterViewInit and ngAfterViewChecked hooks that should be executed for\n * this view in creation mode.\n *\n * Even indices: Directive index\n * Odd indices: Hook function\n * @type {?}\n */\n TView.prototype.viewHooks;\n /**\n * Array of ngAfterViewChecked hooks that should be executed for this view in\n * update mode.\n *\n * Even indices: Directive index\n * Odd indices: Hook function\n * @type {?}\n */\n TView.prototype.viewCheckHooks;\n /**\n * Array of ngOnDestroy hooks that should be executed when this view is destroyed.\n *\n * Even indices: Directive index\n * Odd indices: Hook function\n * @type {?}\n */\n TView.prototype.destroyHooks;\n /**\n * When a view is destroyed, listeners need to be released and outputs need to be\n * unsubscribed. This cleanup array stores both listener data (in chunks of 4)\n * and output data (in chunks of 2) for a particular view. Combining the arrays\n * saves on memory (70 bytes per array) and on a few bytes of code size (for two\n * separate for loops).\n *\n * If it's a native DOM listener or output subscription being stored:\n * 1st index is: event name `name = tView.cleanup[i+0]`\n * 2nd index is: index of native element or a function that retrieves global target (window,\n * document or body) reference based on the native element:\n * `typeof idxOrTargetGetter === 'function'`: global target getter function\n * `typeof idxOrTargetGetter === 'number'`: index of native element\n *\n * 3rd index is: index of listener function `listener = lView[CLEANUP][tView.cleanup[i+2]]`\n * 4th index is: `useCaptureOrIndx = tView.cleanup[i+3]`\n * `typeof useCaptureOrIndx == 'boolean' : useCapture boolean\n * `typeof useCaptureOrIndx == 'number':\n * `useCaptureOrIndx >= 0` `removeListener = LView[CLEANUP][useCaptureOrIndx]`\n * `useCaptureOrIndx < 0` `subscription = LView[CLEANUP][-useCaptureOrIndx]`\n *\n * If it's an output subscription or query list destroy hook:\n * 1st index is: output unsubscribe function / query list destroy function\n * 2nd index is: index of function context in LView.cleanupInstances[]\n * `tView.cleanup[i+0].call(lView[CLEANUP][tView.cleanup[i+1]])`\n * @type {?}\n */\n TView.prototype.cleanup;\n /**\n * A list of element indices for child components that will need to be\n * refreshed when the current view has finished its check. These indices have\n * already been adjusted for the HEADER_OFFSET.\n *\n * @type {?}\n */\n TView.prototype.components;\n /**\n * A collection of queries tracked in a given view.\n * @type {?}\n */\n TView.prototype.queries;\n /**\n * An array of indices pointing to directives with content queries alongside with the\n * corresponding\n * query index. Each entry in this array is a tuple of:\n * - index of the first content query index declared by a given directive;\n * - index of a directive.\n *\n * We are storing those indexes so we can refresh content queries as part of a view refresh\n * process.\n * @type {?}\n */\n TView.prototype.contentQueries;\n /**\n * Set of schemas that declare elements to be allowed inside the view.\n * @type {?}\n */\n TView.prototype.schemas;\n /**\n * Array of constants for the view. Includes attribute arrays, local definition arrays etc.\n * Used for directive matching, attribute bindings, local definitions and more.\n * @type {?}\n */\n TView.prototype.consts;\n /**\n * Indicates that there was an error before we managed to complete the first create pass of the\n * view. This means that the view is likely corrupted and we should try to recover it.\n * @type {?}\n */\n TView.prototype.incompleteFirstPass;\n}\n/** @enum {number} */\nconst RootContextFlags = {\n Empty: 0,\n DetectChanges: 1,\n FlushPlayers: 2,\n};\n/**\n * RootContext contains information which is shared for all components which\n * were bootstrapped with {\\@link renderComponent}.\n * @record\n */\nfunction RootContext() { }\nif (false) {\n /**\n * A function used for scheduling change detection in the future. Usually\n * this is `requestAnimationFrame`.\n * @type {?}\n */\n RootContext.prototype.scheduler;\n /**\n * A promise which is resolved when all components are considered clean (not dirty).\n *\n * This promise is overwritten every time a first call to {\\@link markDirty} is invoked.\n * @type {?}\n */\n RootContext.prototype.clean;\n /**\n * RootComponents - The components that were instantiated by the call to\n * {\\@link renderComponent}.\n * @type {?}\n */\n RootContext.prototype.components;\n /**\n * The player flushing handler to kick off all animations\n * @type {?}\n */\n RootContext.prototype.playerHandler;\n /**\n * What render-related operations to run once a scheduler has been set\n * @type {?}\n */\n RootContext.prototype.flags;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\n/** @type {?} */\nconst unusedValueExportToPlacateAjd = 1;\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/interfaces/container.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Special location which allows easy identification of type. If we have an array which was\n * retrieved from the `LView` and that array has `true` at `TYPE` location, we know it is\n * `LContainer`.\n * @type {?}\n */\nconst TYPE = 1;\n/**\n * Flag to signify that this `LContainer` may have transplanted views which need to be change\n * detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.\n *\n * This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip\n * a lot of work in `refreshEmbeddedViews`. But when set we still need to verify\n * that the `MOVED_VIEWS` are transplanted and on-push.\n * @type {?}\n */\nconst HAS_TRANSPLANTED_VIEWS = 2;\n// PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5\n// As we already have these constants in LView, we don't need to re-create them.\n// T_HOST is index 6\n// We already have this constants in LView, we don't need to re-create it.\n/** @type {?} */\nconst NATIVE = 7;\n/** @type {?} */\nconst VIEW_REFS = 8;\n/** @type {?} */\nconst MOVED_VIEWS = 9;\n/**\n * Size of LContainer's header. Represents the index after which all views in the\n * container will be inserted. We need to keep a record of current views so we know\n * which views are already in the DOM (and don't need to be re-added) and so we can\n * remove views from the DOM when they are no longer required.\n * @type {?}\n */\nconst CONTAINER_HEADER_OFFSET = 10;\n/**\n * The state associated with a container.\n *\n * This is an array so that its structure is closer to LView. This helps\n * when traversing the view tree (which is a mix of containers and component\n * views), so we can jump to viewOrContainer[NEXT] in the same way regardless\n * of type.\n * @record\n */\nfunction LContainer() { }\nif (false) {\n /* Skipping unnamed member:\n readonly[HOST]: RElement|RComment|LView;*/\n /* Skipping unnamed member:\n [TYPE]: true;*/\n /* Skipping unnamed member:\n [HAS_TRANSPLANTED_VIEWS]: boolean;*/\n /* Skipping unnamed member:\n [PARENT]: LView;*/\n /* Skipping unnamed member:\n [NEXT]: LView|LContainer|null;*/\n /* Skipping unnamed member:\n [TRANSPLANTED_VIEWS_TO_REFRESH]: number;*/\n /* Skipping unnamed member:\n [MOVED_VIEWS]: LView[]|null;*/\n /* Skipping unnamed member:\n [T_HOST]: TNode;*/\n /* Skipping unnamed member:\n readonly[NATIVE]:\n RComment;*/\n /* Skipping unnamed member:\n [VIEW_REFS]: ViewRef[]|null;*/\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\n/** @type {?} */\nconst unusedValueExportToPlacateAjd$1 = 1;\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/interfaces/type_checks.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * True if `value` is `LView`.\n * @param {?} value wrapped value of `RNode`, `LView`, `LContainer`\n * @return {?}\n */\nfunction isLView(value) {\n return Array.isArray(value) && typeof value[TYPE] === 'object';\n}\n/**\n * True if `value` is `LContainer`.\n * @param {?} value wrapped value of `RNode`, `LView`, `LContainer`\n * @return {?}\n */\nfunction isLContainer(value) {\n return Array.isArray(value) && value[TYPE] === true;\n}\n/**\n * @param {?} tNode\n * @return {?}\n */\nfunction isContentQueryHost(tNode) {\n return (tNode.flags & 8 /* hasContentQuery */) !== 0;\n}\n/**\n * @param {?} tNode\n * @return {?}\n */\nfunction isComponentHost(tNode) {\n return (tNode.flags & 2 /* isComponentHost */) === 2 /* isComponentHost */;\n}\n/**\n * @param {?} tNode\n * @return {?}\n */\nfunction isDirectiveHost(tNode) {\n return (tNode.flags & 1 /* isDirectiveHost */) === 1 /* isDirectiveHost */;\n}\n/**\n * @template T\n * @param {?} def\n * @return {?}\n */\nfunction isComponentDef(def) {\n return ((/** @type {?} */ (def))).template !== null;\n}\n/**\n * @param {?} target\n * @return {?}\n */\nfunction isRootView(target) {\n return (target[FLAGS] & 512 /* IsRoot */) !== 0;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/assert.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// [Assert functions do not constraint type when they are guarded by a truthy\n// expression.](https://github.com/microsoft/TypeScript/issues/37295)\n/**\n * @param {?} tNode\n * @param {?} lView\n * @return {?}\n */\nfunction assertTNodeForLView(tNode, lView) {\n tNode.hasOwnProperty('tView_') &&\n assertEqual(((/** @type {?} */ ((/** @type {?} */ (tNode))))).tView_, lView[TVIEW], 'This TNode does not belong to this LView.');\n}\n/**\n * @param {?} actual\n * @param {?=} msg\n * @return {?}\n */\nfunction assertComponentType(actual, msg = 'Type passed in is not ComponentType, it does not have \\'ɵcmp\\' property.') {\n if (!getComponentDef(actual)) {\n throwError(msg);\n }\n}\n/**\n * @param {?} actual\n * @param {?=} msg\n * @return {?}\n */\nfunction assertNgModuleType(actual, msg = 'Type passed in is not NgModuleType, it does not have \\'ɵmod\\' property.') {\n if (!getNgModuleDef(actual)) {\n throwError(msg);\n }\n}\n/**\n * @param {?} isParent\n * @return {?}\n */\nfunction assertPreviousIsParent(isParent) {\n assertEqual(isParent, true, 'previousOrParentTNode should be a parent');\n}\n/**\n * @param {?} tNode\n * @return {?}\n */\nfunction assertHasParent(tNode) {\n assertDefined(tNode, 'previousOrParentTNode should exist!');\n assertDefined((/** @type {?} */ (tNode)).parent, 'previousOrParentTNode should have a parent');\n}\n/**\n * @param {?} lView\n * @param {?} index\n * @param {?=} arr\n * @return {?}\n */\nfunction assertDataNext(lView, index, arr) {\n if (arr == null)\n arr = lView;\n assertEqual(arr.length, index, `index ${index} expected to be at the end of arr (length ${arr.length})`);\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction assertLContainer(value) {\n assertDefined(value, 'LContainer must be defined');\n assertEqual(isLContainer(value), true, 'Expecting LContainer');\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction assertLViewOrUndefined(value) {\n value && assertEqual(isLView(value), true, 'Expecting LView or undefined or null');\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction assertLView(value) {\n assertDefined(value, 'LView must be defined');\n assertEqual(isLView(value), true, 'Expecting LView');\n}\n/**\n * @param {?} tView\n * @param {?=} errMessage\n * @return {?}\n */\nfunction assertFirstCreatePass(tView, errMessage) {\n assertEqual(tView.firstCreatePass, true, errMessage || 'Should only be called in first create pass.');\n}\n/**\n * @param {?} tView\n * @param {?=} errMessage\n * @return {?}\n */\nfunction assertFirstUpdatePass(tView, errMessage) {\n assertEqual(tView.firstUpdatePass, true, errMessage || 'Should only be called in first update pass.');\n}\n/**\n * This is a basic sanity check that an object is probably a directive def. DirectiveDef is\n * an interface, so we can't do a direct instanceof check.\n * @template T\n * @param {?} obj\n * @return {?}\n */\nfunction assertDirectiveDef(obj) {\n if (obj.type === undefined || obj.selectors == undefined || obj.inputs === undefined) {\n throwError(`Expected a DirectiveDef/ComponentDef and this object does not seem to have the expected shape.`);\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/namespaces.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @type {?} */\nconst SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n/** @type {?} */\nconst MATH_ML_NAMESPACE = 'http://www.w3.org/1998/MathML/';\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/interfaces/context.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This property will be monkey-patched on elements, components and directives\n * @type {?}\n */\nconst MONKEY_PATCH_KEY_NAME = '__ngContext__';\n/**\n * The internal view context which is specific to a given DOM element, directive or\n * component instance. Each value in here (besides the LView and element node details)\n * can be present, null or undefined. If undefined then it implies the value has not been\n * looked up yet, otherwise, if null, then a lookup was executed and nothing was found.\n *\n * Each value will get filled when the respective value is examined within the getContext\n * function. The component, element and each directive instance will share the same instance\n * of the context.\n * @record\n */\nfunction LContext() { }\nif (false) {\n /**\n * The component's parent view data.\n * @type {?}\n */\n LContext.prototype.lView;\n /**\n * The index instance of the node.\n * @type {?}\n */\n LContext.prototype.nodeIndex;\n /**\n * The instance of the DOM node that is attached to the lNode.\n * @type {?}\n */\n LContext.prototype.native;\n /**\n * The instance of the Component node.\n * @type {?}\n */\n LContext.prototype.component;\n /**\n * The list of active directives that exist on this element.\n * @type {?}\n */\n LContext.prototype.directives;\n /**\n * The map of local references (local reference name => element or directive instance) that exist\n * on this element.\n * @type {?}\n */\n LContext.prototype.localRefs;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/interfaces/document.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Most of the use of `document` in Angular is from within the DI system so it is possible to simply\n * inject the `DOCUMENT` token and are done.\n *\n * Ivy is special because it does not rely upon the DI and must get hold of the document some other\n * way.\n *\n * The solution is to define `getDocument()` and `setDocument()` top-level functions for ivy.\n * Wherever ivy needs the global document, it calls `getDocument()` instead.\n *\n * When running ivy outside of a browser environment, it is necessary to call `setDocument()` to\n * tell ivy what the global `document` is.\n *\n * Angular does this for us in each of the standard platforms (`Browser`, `Server`, and `WebWorker`)\n * by calling `setDocument()` when providing the `DOCUMENT` token.\n * @type {?}\n */\nlet DOCUMENT = undefined;\n/**\n * Tell ivy what the `document` is for this platform.\n *\n * It is only necessary to call this if the current platform is not a browser.\n *\n * @param {?} document The object representing the global `document` in this environment.\n * @return {?}\n */\nfunction setDocument(document) {\n DOCUMENT = document;\n}\n/**\n * Access the object that represents the `document` for this platform.\n *\n * Ivy calls this whenever it needs to access the `document` object.\n * For example to create the renderer or to do sanitization.\n * @return {?}\n */\nfunction getDocument() {\n if (DOCUMENT !== undefined) {\n return DOCUMENT;\n }\n else if (typeof document !== 'undefined') {\n return document;\n }\n // No \"document\" can be found. This should only happen if we are running ivy outside Angular and\n // the current platform is not a browser. Since this is not a supported scenario at the moment\n // this should not happen in Angular apps.\n // Once we support running ivy outside of Angular we will need to publish `setDocument()` as a\n // public API. Meanwhile we just return `undefined` and let the application fail.\n return (/** @type {?} */ (undefined));\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/interfaces/renderer.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nconst RendererStyleFlags3 = {\n Important: 1,\n DashCase: 2,\n};\nRendererStyleFlags3[RendererStyleFlags3.Important] = 'Important';\nRendererStyleFlags3[RendererStyleFlags3.DashCase] = 'DashCase';\n/**\n * Object Oriented style of API needed to create elements and text nodes.\n *\n * This is the native browser API style, e.g. operations are methods on individual objects\n * like HTMLElement. With this style, no additional code is needed as a facade\n * (reducing payload size).\n *\n * @record\n */\nfunction ObjectOrientedRenderer3() { }\nif (false) {\n /**\n * @param {?} data\n * @return {?}\n */\n ObjectOrientedRenderer3.prototype.createComment = function (data) { };\n /**\n * @param {?} tagName\n * @return {?}\n */\n ObjectOrientedRenderer3.prototype.createElement = function (tagName) { };\n /**\n * @param {?} namespace\n * @param {?} tagName\n * @return {?}\n */\n ObjectOrientedRenderer3.prototype.createElementNS = function (namespace, tagName) { };\n /**\n * @param {?} data\n * @return {?}\n */\n ObjectOrientedRenderer3.prototype.createTextNode = function (data) { };\n /**\n * @param {?} selectors\n * @return {?}\n */\n ObjectOrientedRenderer3.prototype.querySelector = function (selectors) { };\n}\n/**\n * Returns whether the `renderer` is a `ProceduralRenderer3`\n * @param {?} renderer\n * @return {?}\n */\nfunction isProceduralRenderer(renderer) {\n return !!(((/** @type {?} */ (renderer))).listen);\n}\n/**\n * Procedural style of API needed to create elements and text nodes.\n *\n * In non-native browser environments (e.g. platforms such as web-workers), this is the\n * facade that enables element manipulation. This also facilitates backwards compatibility\n * with Renderer2.\n * @record\n */\nfunction ProceduralRenderer3() { }\nif (false) {\n /**\n * This property is allowed to be null / undefined,\n * in which case the view engine won't call it.\n * This is used as a performance optimization for production mode.\n * @type {?|undefined}\n */\n ProceduralRenderer3.prototype.destroyNode;\n /**\n * @return {?}\n */\n ProceduralRenderer3.prototype.destroy = function () { };\n /**\n * @param {?} value\n * @return {?}\n */\n ProceduralRenderer3.prototype.createComment = function (value) { };\n /**\n * @param {?} name\n * @param {?=} namespace\n * @return {?}\n */\n ProceduralRenderer3.prototype.createElement = function (name, namespace) { };\n /**\n * @param {?} value\n * @return {?}\n */\n ProceduralRenderer3.prototype.createText = function (value) { };\n /**\n * @param {?} parent\n * @param {?} newChild\n * @return {?}\n */\n ProceduralRenderer3.prototype.appendChild = function (parent, newChild) { };\n /**\n * @param {?} parent\n * @param {?} newChild\n * @param {?} refChild\n * @return {?}\n */\n ProceduralRenderer3.prototype.insertBefore = function (parent, newChild, refChild) { };\n /**\n * @param {?} parent\n * @param {?} oldChild\n * @param {?=} isHostElement\n * @return {?}\n */\n ProceduralRenderer3.prototype.removeChild = function (parent, oldChild, isHostElement) { };\n /**\n * @param {?} selectorOrNode\n * @param {?=} preserveContent\n * @return {?}\n */\n ProceduralRenderer3.prototype.selectRootElement = function (selectorOrNode, preserveContent) { };\n /**\n * @param {?} node\n * @return {?}\n */\n ProceduralRenderer3.prototype.parentNode = function (node) { };\n /**\n * @param {?} node\n * @return {?}\n */\n ProceduralRenderer3.prototype.nextSibling = function (node) { };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @param {?=} namespace\n * @return {?}\n */\n ProceduralRenderer3.prototype.setAttribute = function (el, name, value, namespace) { };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?=} namespace\n * @return {?}\n */\n ProceduralRenderer3.prototype.removeAttribute = function (el, name, namespace) { };\n /**\n * @param {?} el\n * @param {?} name\n * @return {?}\n */\n ProceduralRenderer3.prototype.addClass = function (el, name) { };\n /**\n * @param {?} el\n * @param {?} name\n * @return {?}\n */\n ProceduralRenderer3.prototype.removeClass = function (el, name) { };\n /**\n * @param {?} el\n * @param {?} style\n * @param {?} value\n * @param {?=} flags\n * @return {?}\n */\n ProceduralRenderer3.prototype.setStyle = function (el, style, value, flags) { };\n /**\n * @param {?} el\n * @param {?} style\n * @param {?=} flags\n * @return {?}\n */\n ProceduralRenderer3.prototype.removeStyle = function (el, style, flags) { };\n /**\n * @param {?} el\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n ProceduralRenderer3.prototype.setProperty = function (el, name, value) { };\n /**\n * @param {?} node\n * @param {?} value\n * @return {?}\n */\n ProceduralRenderer3.prototype.setValue = function (node, value) { };\n /**\n * @param {?} target\n * @param {?} eventName\n * @param {?} callback\n * @return {?}\n */\n ProceduralRenderer3.prototype.listen = function (target, eventName, callback) { };\n}\n/**\n * @record\n */\nfunction RendererFactory3() { }\nif (false) {\n /**\n * @param {?} hostElement\n * @param {?} rendererType\n * @return {?}\n */\n RendererFactory3.prototype.createRenderer = function (hostElement, rendererType) { };\n /**\n * @return {?}\n */\n RendererFactory3.prototype.begin = function () { };\n /**\n * @return {?}\n */\n RendererFactory3.prototype.end = function () { };\n}\nconst ɵ0$2 = /**\n * @param {?} hostElement\n * @param {?} rendererType\n * @return {?}\n */\n(hostElement, rendererType) => {\n return getDocument();\n};\n/** @type {?} */\nconst domRendererFactory3 = {\n createRenderer: (ɵ0$2)\n};\n/**\n * Subset of API needed for appending elements and text nodes.\n * @record\n */\nfunction RNode() { }\nif (false) {\n /**\n * Returns the parent Element, Document, or DocumentFragment\n * @type {?}\n */\n RNode.prototype.parentNode;\n /**\n * Returns the parent Element if there is one\n * @type {?}\n */\n RNode.prototype.parentElement;\n /**\n * Gets the Node immediately following this one in the parent's childNodes\n * @type {?}\n */\n RNode.prototype.nextSibling;\n /**\n * Removes a child from the current node and returns the removed node\n * @param {?} oldChild the child node to remove\n * @return {?}\n */\n RNode.prototype.removeChild = function (oldChild) { };\n /**\n * Insert a child node.\n *\n * Used exclusively for adding View root nodes into ViewAnchor location.\n * @param {?} newChild\n * @param {?} refChild\n * @param {?} isViewRoot\n * @return {?}\n */\n RNode.prototype.insertBefore = function (newChild, refChild, isViewRoot) { };\n /**\n * Append a child node.\n *\n * Used exclusively for building up DOM which are static (ie not View roots)\n * @param {?} newChild\n * @return {?}\n */\n RNode.prototype.appendChild = function (newChild) { };\n}\n/**\n * Subset of API needed for writing attributes, properties, and setting up\n * listeners on Element.\n * @record\n */\nfunction RElement() { }\nif (false) {\n /** @type {?} */\n RElement.prototype.style;\n /** @type {?} */\n RElement.prototype.classList;\n /** @type {?} */\n RElement.prototype.className;\n /** @type {?} */\n RElement.prototype.textContent;\n /**\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n RElement.prototype.setAttribute = function (name, value) { };\n /**\n * @param {?} name\n * @return {?}\n */\n RElement.prototype.removeAttribute = function (name) { };\n /**\n * @param {?} namespaceURI\n * @param {?} qualifiedName\n * @param {?} value\n * @return {?}\n */\n RElement.prototype.setAttributeNS = function (namespaceURI, qualifiedName, value) { };\n /**\n * @param {?} type\n * @param {?} listener\n * @param {?=} useCapture\n * @return {?}\n */\n RElement.prototype.addEventListener = function (type, listener, useCapture) { };\n /**\n * @param {?} type\n * @param {?=} listener\n * @param {?=} options\n * @return {?}\n */\n RElement.prototype.removeEventListener = function (type, listener, options) { };\n /**\n * @param {?} name\n * @param {?} value\n * @return {?}\n */\n RElement.prototype.setProperty = function (name, value) { };\n}\n/**\n * @record\n */\nfunction RCssStyleDeclaration() { }\nif (false) {\n /**\n * @param {?} propertyName\n * @return {?}\n */\n RCssStyleDeclaration.prototype.removeProperty = function (propertyName) { };\n /**\n * @param {?} propertyName\n * @param {?} value\n * @param {?=} priority\n * @return {?}\n */\n RCssStyleDeclaration.prototype.setProperty = function (propertyName, value, priority) { };\n}\n/**\n * @record\n */\nfunction RDomTokenList() { }\nif (false) {\n /**\n * @param {?} token\n * @return {?}\n */\n RDomTokenList.prototype.add = function (token) { };\n /**\n * @param {?} token\n * @return {?}\n */\n RDomTokenList.prototype.remove = function (token) { };\n}\n/**\n * @record\n */\nfunction RText() { }\nif (false) {\n /** @type {?} */\n RText.prototype.textContent;\n}\n/**\n * @record\n */\nfunction RComment() { }\nif (false) {\n /** @type {?} */\n RComment.prototype.textContent;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\n/** @type {?} */\nconst unusedValueExportToPlacateAjd$2 = 1;\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/util/view_utils.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * For efficiency reasons we often put several different data types (`RNode`, `LView`, `LContainer`)\n * in same location in `LView`. This is because we don't want to pre-allocate space for it\n * because the storage is sparse. This file contains utilities for dealing with such data types.\n *\n * How do we know what is stored at a given location in `LView`.\n * - `Array.isArray(value) === false` => `RNode` (The normal storage value)\n * - `Array.isArray(value) === true` => then the `value[0]` represents the wrapped value.\n * - `typeof value[TYPE] === 'object'` => `LView`\n * - This happens when we have a component at a given location\n * - `typeof value[TYPE] === true` => `LContainer`\n * - This happens when we have `LContainer` binding at a given location.\n *\n *\n * NOTE: it is assumed that `Array.isArray` and `typeof` operations are very efficient.\n */\n/**\n * Returns `RNode`.\n * @param {?} value wrapped value of `RNode`, `LView`, `LContainer`\n * @return {?}\n */\nfunction unwrapRNode(value) {\n while (Array.isArray(value)) {\n value = (/** @type {?} */ (value[HOST]));\n }\n return (/** @type {?} */ (value));\n}\n/**\n * Returns `LView` or `null` if not found.\n * @param {?} value wrapped value of `RNode`, `LView`, `LContainer`\n * @return {?}\n */\nfunction unwrapLView(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLView()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (typeof value[TYPE] === 'object')\n return (/** @type {?} */ (value));\n value = (/** @type {?} */ (value[HOST]));\n }\n return null;\n}\n/**\n * Returns `LContainer` or `null` if not found.\n * @param {?} value wrapped value of `RNode`, `LView`, `LContainer`\n * @return {?}\n */\nfunction unwrapLContainer(value) {\n while (Array.isArray(value)) {\n // This check is same as `isLContainer()` but we don't call at as we don't want to call\n // `Array.isArray()` twice and give JITer more work for inlining.\n if (value[TYPE] === true)\n return (/** @type {?} */ (value));\n value = (/** @type {?} */ (value[HOST]));\n }\n return null;\n}\n/**\n * Retrieves an element value from the provided `viewData`, by unwrapping\n * from any containers, component views, or style contexts.\n * @param {?} index\n * @param {?} lView\n * @return {?}\n */\nfunction getNativeByIndex(index, lView) {\n return unwrapRNode(lView[index + HEADER_OFFSET]);\n}\n/**\n * Retrieve an `RNode` for a given `TNode` and `LView`.\n *\n * This function guarantees in dev mode to retrieve a non-null `RNode`.\n *\n * @param {?} tNode\n * @param {?} lView\n * @return {?}\n */\nfunction getNativeByTNode(tNode, lView) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n ngDevMode && assertDataInRange(lView, tNode.index);\n /** @type {?} */\n const node = unwrapRNode(lView[tNode.index]);\n ngDevMode && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n}\n/**\n * Retrieve an `RNode` or `null` for a given `TNode` and `LView`.\n *\n * Some `TNode`s don't have associated `RNode`s. For example `Projection`\n *\n * @param {?} tNode\n * @param {?} lView\n * @return {?}\n */\nfunction getNativeByTNodeOrNull(tNode, lView) {\n /** @type {?} */\n const index = tNode.index;\n if (index !== -1) {\n ngDevMode && assertTNodeForLView(tNode, lView);\n /** @type {?} */\n const node = unwrapRNode(lView[index]);\n ngDevMode && node !== null && !isProceduralRenderer(lView[RENDERER]) && assertDomNode(node);\n return node;\n }\n return null;\n}\n/**\n * @param {?} tView\n * @param {?} index\n * @return {?}\n */\nfunction getTNode(tView, index) {\n ngDevMode && assertGreaterThan(index, -1, 'wrong index for TNode');\n ngDevMode && assertLessThan(index, tView.data.length, 'wrong index for TNode');\n return (/** @type {?} */ (tView.data[index + HEADER_OFFSET]));\n}\n/**\n * Retrieves a value from any `LView` or `TData`.\n * @template T\n * @param {?} view\n * @param {?} index\n * @return {?}\n */\nfunction load(view, index) {\n ngDevMode && assertDataInRange(view, index + HEADER_OFFSET);\n return view[index + HEADER_OFFSET];\n}\n/**\n * @param {?} nodeIndex\n * @param {?} hostView\n * @return {?}\n */\nfunction getComponentLViewByIndex(nodeIndex, hostView) {\n // Could be an LView or an LContainer. If LContainer, unwrap to find LView.\n ngDevMode && assertDataInRange(hostView, nodeIndex);\n /** @type {?} */\n const slotValue = hostView[nodeIndex];\n /** @type {?} */\n const lView = isLView(slotValue) ? slotValue : slotValue[HOST];\n return lView;\n}\n/**\n * Returns the monkey-patch value data present on the target (which could be\n * a component, directive or a DOM node).\n * @param {?} target\n * @return {?}\n */\nfunction readPatchedData(target) {\n ngDevMode && assertDefined(target, 'Target expected');\n return target[MONKEY_PATCH_KEY_NAME] || null;\n}\n/**\n * @param {?} target\n * @return {?}\n */\nfunction readPatchedLView(target) {\n /** @type {?} */\n const value = readPatchedData(target);\n if (value) {\n return Array.isArray(value) ? value : ((/** @type {?} */ (value))).lView;\n }\n return null;\n}\n/**\n * Checks whether a given view is in creation mode\n * @param {?} view\n * @return {?}\n */\nfunction isCreationMode(view) {\n return (view[FLAGS] & 4 /* CreationMode */) === 4 /* CreationMode */;\n}\n/**\n * Returns a boolean for whether the view is attached to the change detection tree.\n *\n * Note: This determines whether a view should be checked, not whether it's inserted\n * into a container. For that, you'll want `viewAttachedToContainer` below.\n * @param {?} view\n * @return {?}\n */\nfunction viewAttachedToChangeDetector(view) {\n return (view[FLAGS] & 128 /* Attached */) === 128 /* Attached */;\n}\n/**\n * Returns a boolean for whether the view is attached to a container.\n * @param {?} view\n * @return {?}\n */\nfunction viewAttachedToContainer(view) {\n return isLContainer(view[PARENT]);\n}\n/**\n * Returns a constant from `TConstants` instance.\n * @template T\n * @param {?} consts\n * @param {?} index\n * @return {?}\n */\nfunction getConstant(consts, index) {\n return consts === null || index == null ? null : (/** @type {?} */ ((/** @type {?} */ (consts[index]))));\n}\n/**\n * Resets the pre-order hook flags of the view.\n * @param {?} lView the LView on which the flags are reset\n * @return {?}\n */\nfunction resetPreOrderHookFlags(lView) {\n lView[PREORDER_HOOK_FLAGS] = 0;\n}\n/**\n * Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents\n * whose\n * 1. counter goes from 0 to 1, indicating that there is a new child that has a view to refresh\n * or\n * 2. counter goes from 1 to 0, indicating there are no more descendant views to refresh\n * @param {?} lContainer\n * @param {?} amount\n * @return {?}\n */\nfunction updateTransplantedViewCount(lContainer, amount) {\n lContainer[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n /** @type {?} */\n let viewOrContainer = lContainer;\n /** @type {?} */\n let parent = lContainer[PARENT];\n while (parent !== null &&\n ((amount === 1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 1) ||\n (amount === -1 && viewOrContainer[TRANSPLANTED_VIEWS_TO_REFRESH] === 0))) {\n parent[TRANSPLANTED_VIEWS_TO_REFRESH] += amount;\n viewOrContainer = parent;\n parent = parent[PARENT];\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/state.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n *\n * @record\n */\nfunction LFrame() { }\nif (false) {\n /**\n * Parent LFrame.\n *\n * This is needed when `leaveView` is called to restore the previous state.\n * @type {?}\n */\n LFrame.prototype.parent;\n /**\n * Child LFrame.\n *\n * This is used to cache existing LFrames to relieve the memory pressure.\n * @type {?}\n */\n LFrame.prototype.child;\n /**\n * State of the current view being processed.\n *\n * An array of nodes (text, element, container, etc), pipes, their bindings, and\n * any local variables that need to be stored between invocations.\n * @type {?}\n */\n LFrame.prototype.lView;\n /**\n * Current `TView` associated with the `LFrame.lView`.\n *\n * One can get `TView` from `lFrame[TVIEW]` however because it is so common it makes sense to\n * store it in `LFrame` for perf reasons.\n * @type {?}\n */\n LFrame.prototype.tView;\n /**\n * Used to set the parent property when nodes are created and track query results.\n *\n * This is used in conjunction with `isParent`.\n * @type {?}\n */\n LFrame.prototype.previousOrParentTNode;\n /**\n * If `isParent` is:\n * - `true`: then `previousOrParentTNode` points to a parent node.\n * - `false`: then `previousOrParentTNode` points to previous node (sibling).\n * @type {?}\n */\n LFrame.prototype.isParent;\n /**\n * Index of currently selected element in LView.\n *\n * Used by binding instructions. Updated as part of advance instruction.\n * @type {?}\n */\n LFrame.prototype.selectedIndex;\n /**\n * Current pointer to the binding index.\n * @type {?}\n */\n LFrame.prototype.bindingIndex;\n /**\n * The last viewData retrieved by nextContext().\n * Allows building nextContext() and reference() calls.\n *\n * e.g. const inner = x().$implicit; const outer = x().$implicit;\n * @type {?}\n */\n LFrame.prototype.contextLView;\n /**\n * Store the element depth count. This is used to identify the root elements of the template\n * so that we can then attach patch data `LView` to only those elements. We know that those\n * are the only places where the patch data could change, this way we will save on number\n * of places where tha patching occurs.\n * @type {?}\n */\n LFrame.prototype.elementDepthCount;\n /**\n * Current namespace to be used when creating elements\n * @type {?}\n */\n LFrame.prototype.currentNamespace;\n /**\n * Current sanitizer\n * @type {?}\n */\n LFrame.prototype.currentSanitizer;\n /**\n * The root index from which pure function instructions should calculate their binding\n * indices. In component views, this is TView.bindingStartIndex. In a host binding\n * context, this is the TView.expandoStartIndex + any dirs/hostVars before the given dir.\n * @type {?}\n */\n LFrame.prototype.bindingRootIndex;\n /**\n * Current index of a View or Content Query which needs to be processed next.\n * We iterate over the list of Queries and increment current query index at every step.\n * @type {?}\n */\n LFrame.prototype.currentQueryIndex;\n /**\n * When host binding is executing this points to the directive index.\n * `TView.data[currentDirectiveIndex]` is `DirectiveDef`\n * `LView[currentDirectiveIndex]` is directive instance.\n * @type {?}\n */\n LFrame.prototype.currentDirectiveIndex;\n}\n/**\n * All implicit instruction state is stored here.\n *\n * It is useful to have a single object where all of the state is stored as a mental model\n * (rather it being spread across many different variables.)\n *\n * PERF NOTE: Turns out that writing to a true global variable is slower than\n * having an intermediate object with properties.\n * @record\n */\nfunction InstructionState() { }\nif (false) {\n /**\n * Current `LFrame`\n *\n * `null` if we have not called `enterView`\n * @type {?}\n */\n InstructionState.prototype.lFrame;\n /**\n * Stores whether directives should be matched to elements.\n *\n * When template contains `ngNonBindable` then we need to prevent the runtime from matching\n * directives on children of that element.\n *\n * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n *
\n * ```\n * @type {?}\n */\n InstructionState.prototype.bindingsEnabled;\n /**\n * In this mode, any changes in bindings will throw an ExpressionChangedAfterChecked error.\n *\n * Necessary to support ChangeDetectorRef.checkNoChanges().\n * @type {?}\n */\n InstructionState.prototype.checkNoChangesMode;\n}\n/** @type {?} */\nconst instructionState = {\n lFrame: createLFrame(null),\n bindingsEnabled: true,\n checkNoChangesMode: false,\n};\n/**\n * @return {?}\n */\nfunction getElementDepthCount() {\n return instructionState.lFrame.elementDepthCount;\n}\n/**\n * @return {?}\n */\nfunction increaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount++;\n}\n/**\n * @return {?}\n */\nfunction decreaseElementDepthCount() {\n instructionState.lFrame.elementDepthCount--;\n}\n/**\n * @return {?}\n */\nfunction getBindingsEnabled() {\n return instructionState.bindingsEnabled;\n}\n/**\n * Enables directive matching on elements.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * \\@codeGenApi\n * @return {?}\n */\nfunction ɵɵenableBindings() {\n instructionState.bindingsEnabled = true;\n}\n/**\n * Disables directive matching on element.\n *\n * * Example:\n * ```\n * \n * Should match component / directive.\n * \n *
\n * \n * \n * Should not match component / directive because we are in ngNonBindable.\n * \n * \n *
\n * ```\n *\n * \\@codeGenApi\n * @return {?}\n */\nfunction ɵɵdisableBindings() {\n instructionState.bindingsEnabled = false;\n}\n/**\n * Return the current `LView`.\n * @return {?}\n */\nfunction getLView() {\n return instructionState.lFrame.lView;\n}\n/**\n * Return the current `TView`.\n * @return {?}\n */\nfunction getTView() {\n return instructionState.lFrame.tView;\n}\n/**\n * Restores `contextViewData` to the given OpaqueViewState instance.\n *\n * Used in conjunction with the getCurrentView() instruction to save a snapshot\n * of the current view and restore it when listeners are invoked. This allows\n * walking the declaration view tree in listeners to get vars from parent views.\n *\n * \\@codeGenApi\n * @param {?} viewToRestore The OpaqueViewState instance to restore.\n *\n * @return {?}\n */\nfunction ɵɵrestoreView(viewToRestore) {\n instructionState.lFrame.contextLView = (/** @type {?} */ ((/** @type {?} */ (viewToRestore))));\n}\n/**\n * @return {?}\n */\nfunction getPreviousOrParentTNode() {\n return instructionState.lFrame.previousOrParentTNode;\n}\n/**\n * @param {?} tNode\n * @param {?} isParent\n * @return {?}\n */\nfunction setPreviousOrParentTNode(tNode, isParent) {\n instructionState.lFrame.previousOrParentTNode = tNode;\n instructionState.lFrame.isParent = isParent;\n}\n/**\n * @return {?}\n */\nfunction getIsParent() {\n return instructionState.lFrame.isParent;\n}\n/**\n * @return {?}\n */\nfunction setIsNotParent() {\n instructionState.lFrame.isParent = false;\n}\n/**\n * @return {?}\n */\nfunction setIsParent() {\n instructionState.lFrame.isParent = true;\n}\n/**\n * @return {?}\n */\nfunction getContextLView() {\n return instructionState.lFrame.contextLView;\n}\n/**\n * @return {?}\n */\nfunction getCheckNoChangesMode() {\n // TODO(misko): remove this from the LView since it is ngDevMode=true mode only.\n return instructionState.checkNoChangesMode;\n}\n/**\n * @param {?} mode\n * @return {?}\n */\nfunction setCheckNoChangesMode(mode) {\n instructionState.checkNoChangesMode = mode;\n}\n// top level variables should not be exported for performance reasons (PERF_NOTES.md)\n/**\n * @return {?}\n */\nfunction getBindingRoot() {\n /** @type {?} */\n const lFrame = instructionState.lFrame;\n /** @type {?} */\n let index = lFrame.bindingRootIndex;\n if (index === -1) {\n index = lFrame.bindingRootIndex = lFrame.tView.bindingStartIndex;\n }\n return index;\n}\n/**\n * @return {?}\n */\nfunction getBindingIndex() {\n return instructionState.lFrame.bindingIndex;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction setBindingIndex(value) {\n return instructionState.lFrame.bindingIndex = value;\n}\n/**\n * @return {?}\n */\nfunction nextBindingIndex() {\n return instructionState.lFrame.bindingIndex++;\n}\n/**\n * @param {?} count\n * @return {?}\n */\nfunction incrementBindingIndex(count) {\n /** @type {?} */\n const lFrame = instructionState.lFrame;\n /** @type {?} */\n const index = lFrame.bindingIndex;\n lFrame.bindingIndex = lFrame.bindingIndex + count;\n return index;\n}\n/**\n * Set a new binding root index so that host template functions can execute.\n *\n * Bindings inside the host template are 0 index. But because we don't know ahead of time\n * how many host bindings we have we can't pre-compute them. For this reason they are all\n * 0 index and we just shift the root so that they match next available location in the LView.\n *\n * @param {?} bindingRootIndex Root index for `hostBindings`\n * @param {?} currentDirectiveIndex `TData[currentDirectiveIndex]` will point to the current directive\n * whose `hostBindings` are being processed.\n * @return {?}\n */\nfunction setBindingRootForHostBindings(bindingRootIndex, currentDirectiveIndex) {\n /** @type {?} */\n const lFrame = instructionState.lFrame;\n lFrame.bindingIndex = lFrame.bindingRootIndex = bindingRootIndex;\n setCurrentDirectiveIndex(currentDirectiveIndex);\n}\n/**\n * When host binding is executing this points to the directive index.\n * `TView.data[getCurrentDirectiveIndex()]` is `DirectiveDef`\n * `LView[getCurrentDirectiveIndex()]` is directive instance.\n * @return {?}\n */\nfunction getCurrentDirectiveIndex() {\n return instructionState.lFrame.currentDirectiveIndex;\n}\n/**\n * Sets an index of a directive whose `hostBindings` are being processed.\n *\n * @param {?} currentDirectiveIndex `TData` index where current directive instance can be found.\n * @return {?}\n */\nfunction setCurrentDirectiveIndex(currentDirectiveIndex) {\n instructionState.lFrame.currentDirectiveIndex = currentDirectiveIndex;\n}\n/**\n * Retrieve the current `DirectiveDef` which is active when `hostBindings` instruction is being\n * executed.\n *\n * @param {?} tData Current `TData` where the `DirectiveDef` will be looked up at.\n * @return {?}\n */\nfunction getCurrentDirectiveDef(tData) {\n /** @type {?} */\n const currentDirectiveIndex = instructionState.lFrame.currentDirectiveIndex;\n return currentDirectiveIndex === -1 ? null : (/** @type {?} */ (tData[currentDirectiveIndex]));\n}\n/**\n * @return {?}\n */\nfunction getCurrentQueryIndex() {\n return instructionState.lFrame.currentQueryIndex;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction setCurrentQueryIndex(value) {\n instructionState.lFrame.currentQueryIndex = value;\n}\n/**\n * This is a light weight version of the `enterView` which is needed by the DI system.\n * @param {?} newView\n * @param {?} tNode\n * @return {?}\n */\nfunction enterDI(newView, tNode) {\n ngDevMode && assertLViewOrUndefined(newView);\n /** @type {?} */\n const newLFrame = allocLFrame();\n instructionState.lFrame = newLFrame;\n newLFrame.previousOrParentTNode = (/** @type {?} */ (tNode));\n newLFrame.lView = newView;\n}\n/**\n * Swap the current lView with a new lView.\n *\n * For performance reasons we store the lView in the top level of the module.\n * This way we minimize the number of properties to read. Whenever a new view\n * is entered we have to store the lView for later, and when the view is\n * exited the state has to be restored\n *\n * @param {?} newView New lView to become active\n * @param {?} tNode Element to which the View is a child of\n * @return {?} the previously active lView;\n */\nfunction enterView(newView, tNode) {\n ngDevMode && assertLViewOrUndefined(newView);\n /** @type {?} */\n const newLFrame = allocLFrame();\n if (ngDevMode) {\n assertEqual(newLFrame.isParent, true, 'Expected clean LFrame');\n assertEqual(newLFrame.lView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.tView, null, 'Expected clean LFrame');\n assertEqual(newLFrame.selectedIndex, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.elementDepthCount, 0, 'Expected clean LFrame');\n assertEqual(newLFrame.currentDirectiveIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentNamespace, null, 'Expected clean LFrame');\n assertEqual(newLFrame.currentSanitizer, null, 'Expected clean LFrame');\n assertEqual(newLFrame.bindingRootIndex, -1, 'Expected clean LFrame');\n assertEqual(newLFrame.currentQueryIndex, 0, 'Expected clean LFrame');\n }\n /** @type {?} */\n const tView = newView[TVIEW];\n instructionState.lFrame = newLFrame;\n newLFrame.previousOrParentTNode = (/** @type {?} */ (tNode));\n newLFrame.lView = newView;\n newLFrame.tView = tView;\n newLFrame.contextLView = (/** @type {?} */ (newView));\n newLFrame.bindingIndex = tView.bindingStartIndex;\n}\n/**\n * Allocates next free LFrame. This function tries to reuse the `LFrame`s to lower memory pressure.\n * @return {?}\n */\nfunction allocLFrame() {\n /** @type {?} */\n const currentLFrame = instructionState.lFrame;\n /** @type {?} */\n const childLFrame = currentLFrame === null ? null : currentLFrame.child;\n /** @type {?} */\n const newLFrame = childLFrame === null ? createLFrame(currentLFrame) : childLFrame;\n return newLFrame;\n}\n/**\n * @param {?} parent\n * @return {?}\n */\nfunction createLFrame(parent) {\n /** @type {?} */\n const lFrame = {\n previousOrParentTNode: (/** @type {?} */ (null)),\n //\n isParent: true,\n //\n lView: (/** @type {?} */ (null)),\n //\n tView: (/** @type {?} */ (null)),\n //\n selectedIndex: 0,\n //\n contextLView: (/** @type {?} */ (null)),\n //\n elementDepthCount: 0,\n //\n currentNamespace: null,\n //\n currentSanitizer: null,\n //\n currentDirectiveIndex: -1,\n //\n bindingRootIndex: -1,\n //\n bindingIndex: -1,\n //\n currentQueryIndex: 0,\n //\n parent: (/** @type {?} */ (parent)),\n //\n child: null,\n };\n parent !== null && (parent.child = lFrame); // link the new LFrame for reuse.\n return lFrame;\n}\n/**\n * A lightweight version of leave which is used with DI.\n *\n * This function only resets `previousOrParentTNode` and `LView` as those are the only properties\n * used with DI (`enterDI()`).\n *\n * NOTE: This function is reexported as `leaveDI`. However `leaveDI` has return type of `void` where\n * as `leaveViewLight` has `LFrame`. This is so that `leaveViewLight` can be used in `leaveView`.\n * @return {?}\n */\nfunction leaveViewLight() {\n /** @type {?} */\n const oldLFrame = instructionState.lFrame;\n instructionState.lFrame = oldLFrame.parent;\n oldLFrame.previousOrParentTNode = (/** @type {?} */ (null));\n oldLFrame.lView = (/** @type {?} */ (null));\n return oldLFrame;\n}\n/**\n * This is a lightweight version of the `leaveView` which is needed by the DI system.\n *\n * NOTE: this function is an alias so that we can change the type of the function to have `void`\n * return type.\n * @type {?}\n */\nconst leaveDI = leaveViewLight;\n/**\n * Leave the current `LView`\n *\n * This pops the `LFrame` with the associated `LView` from the stack.\n *\n * IMPORTANT: We must zero out the `LFrame` values here otherwise they will be retained. This is\n * because for performance reasons we don't release `LFrame` but rather keep it for next use.\n * @return {?}\n */\nfunction leaveView() {\n /** @type {?} */\n const oldLFrame = leaveViewLight();\n oldLFrame.isParent = true;\n oldLFrame.tView = (/** @type {?} */ (null));\n oldLFrame.selectedIndex = 0;\n oldLFrame.contextLView = (/** @type {?} */ (null));\n oldLFrame.elementDepthCount = 0;\n oldLFrame.currentDirectiveIndex = -1;\n oldLFrame.currentNamespace = null;\n oldLFrame.currentSanitizer = null;\n oldLFrame.bindingRootIndex = -1;\n oldLFrame.bindingIndex = -1;\n oldLFrame.currentQueryIndex = 0;\n}\n/**\n * @template T\n * @param {?} level\n * @return {?}\n */\nfunction nextContextImpl(level) {\n /** @type {?} */\n const contextLView = instructionState.lFrame.contextLView =\n walkUpViews(level, (/** @type {?} */ (instructionState.lFrame.contextLView)));\n return (/** @type {?} */ (contextLView[CONTEXT]));\n}\n/**\n * @param {?} nestingLevel\n * @param {?} currentView\n * @return {?}\n */\nfunction walkUpViews(nestingLevel, currentView) {\n while (nestingLevel > 0) {\n ngDevMode &&\n assertDefined(currentView[DECLARATION_VIEW], 'Declaration view should be defined if nesting level is greater than 0.');\n currentView = (/** @type {?} */ (currentView[DECLARATION_VIEW]));\n nestingLevel--;\n }\n return currentView;\n}\n/**\n * Gets the currently selected element index.\n *\n * Used with {\\@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n * @return {?}\n */\nfunction getSelectedIndex() {\n return instructionState.lFrame.selectedIndex;\n}\n/**\n * Sets the most recent index passed to {\\@link select}\n *\n * Used with {\\@link property} instruction (and more in the future) to identify the index in the\n * current `LView` to act on.\n *\n * (Note that if an \"exit function\" was set earlier (via `setElementExitFn()`) then that will be\n * run if and when the provided `index` value is different from the current selected index value.)\n * @param {?} index\n * @return {?}\n */\nfunction setSelectedIndex(index) {\n instructionState.lFrame.selectedIndex = index;\n}\n/**\n * Gets the `tNode` that represents currently selected element.\n * @return {?}\n */\nfunction getSelectedTNode() {\n /** @type {?} */\n const lFrame = instructionState.lFrame;\n return getTNode(lFrame.tView, lFrame.selectedIndex);\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/2000/svg'` in global state.\n *\n * \\@codeGenApi\n * @return {?}\n */\nfunction ɵɵnamespaceSVG() {\n instructionState.lFrame.currentNamespace = SVG_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `'http://www.w3.org/1998/MathML/'` in global state.\n *\n * \\@codeGenApi\n * @return {?}\n */\nfunction ɵɵnamespaceMathML() {\n instructionState.lFrame.currentNamespace = MATH_ML_NAMESPACE;\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n *\n * \\@codeGenApi\n * @return {?}\n */\nfunction ɵɵnamespaceHTML() {\n namespaceHTMLInternal();\n}\n/**\n * Sets the namespace used to create elements to `null`, which forces element creation to use\n * `createElement` rather than `createElementNS`.\n * @return {?}\n */\nfunction namespaceHTMLInternal() {\n instructionState.lFrame.currentNamespace = null;\n}\n/**\n * @return {?}\n */\nfunction getNamespace() {\n return instructionState.lFrame.currentNamespace;\n}\n/**\n * @param {?} sanitizer\n * @return {?}\n */\nfunction setCurrentStyleSanitizer(sanitizer) {\n instructionState.lFrame.currentSanitizer = sanitizer;\n}\n/**\n * @return {?}\n */\nfunction resetCurrentStyleSanitizer() {\n setCurrentStyleSanitizer(null);\n}\n/**\n * @return {?}\n */\nfunction getCurrentStyleSanitizer() {\n // TODO(misko): This should throw when there is no LView, but it turns out we can get here from\n // `NodeStyleDebug` hence we return `null`. This should be fixed\n /** @type {?} */\n const lFrame = instructionState.lFrame;\n return lFrame === null ? null : lFrame.currentSanitizer;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/hooks.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Adds all directive lifecycle hooks from the given `DirectiveDef` to the given `TView`.\n *\n * Must be run *only* on the first template pass.\n *\n * Sets up the pre-order hooks on the provided `tView`,\n * see {\\@link HookData} for details about the data structure.\n *\n * @param {?} directiveIndex The index of the directive in LView\n * @param {?} directiveDef The definition containing the hooks to setup in tView\n * @param {?} tView The current TView\n * @return {?}\n */\nfunction registerPreOrderHooks(directiveIndex, directiveDef, tView) {\n ngDevMode && assertFirstCreatePass(tView);\n const { onChanges, onInit, doCheck } = directiveDef;\n if (onChanges) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, onChanges);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = [])).push(directiveIndex, onChanges);\n }\n if (onInit) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(-directiveIndex, onInit);\n }\n if (doCheck) {\n (tView.preOrderHooks || (tView.preOrderHooks = [])).push(directiveIndex, doCheck);\n (tView.preOrderCheckHooks || (tView.preOrderCheckHooks = [])).push(directiveIndex, doCheck);\n }\n}\n/**\n *\n * Loops through the directives on the provided `tNode` and queues hooks to be\n * run that are not initialization hooks.\n *\n * Should be executed during `elementEnd()` and similar to\n * preserve hook execution order. Content, view, and destroy hooks for projected\n * components and directives must be called *before* their hosts.\n *\n * Sets up the content, view, and destroy hooks on the provided `tView`,\n * see {\\@link HookData} for details about the data structure.\n *\n * NOTE: This does not set up `onChanges`, `onInit` or `doCheck`, those are set up\n * separately at `elementStart`.\n *\n * @param {?} tView The current TView\n * @param {?} tNode The TNode whose directives are to be searched for hooks to queue\n * @return {?}\n */\nfunction registerPostOrderHooks(tView, tNode) {\n ngDevMode && assertFirstCreatePass(tView);\n // It's necessary to loop through the directives at elementEnd() (rather than processing in\n // directiveCreate) so we can preserve the current hook order. Content, view, and destroy\n // hooks for projected components and directives must be called *before* their hosts.\n for (let i = tNode.directiveStart, end = tNode.directiveEnd; i < end; i++) {\n /** @type {?} */\n const directiveDef = (/** @type {?} */ (tView.data[i]));\n if (directiveDef.afterContentInit) {\n (tView.contentHooks || (tView.contentHooks = [])).push(-i, directiveDef.afterContentInit);\n }\n if (directiveDef.afterContentChecked) {\n (tView.contentHooks || (tView.contentHooks = [])).push(i, directiveDef.afterContentChecked);\n (tView.contentCheckHooks || (tView.contentCheckHooks = []))\n .push(i, directiveDef.afterContentChecked);\n }\n if (directiveDef.afterViewInit) {\n (tView.viewHooks || (tView.viewHooks = [])).push(-i, directiveDef.afterViewInit);\n }\n if (directiveDef.afterViewChecked) {\n (tView.viewHooks || (tView.viewHooks = [])).push(i, directiveDef.afterViewChecked);\n (tView.viewCheckHooks || (tView.viewCheckHooks = [])).push(i, directiveDef.afterViewChecked);\n }\n if (directiveDef.onDestroy != null) {\n (tView.destroyHooks || (tView.destroyHooks = [])).push(i, directiveDef.onDestroy);\n }\n }\n}\n/**\n * Executing hooks requires complex logic as we need to deal with 2 constraints.\n *\n * 1. Init hooks (ngOnInit, ngAfterContentInit, ngAfterViewInit) must all be executed once and only\n * once, across many change detection cycles. This must be true even if some hooks throw, or if\n * some recursively trigger a change detection cycle.\n * To solve that, it is required to track the state of the execution of these init hooks.\n * This is done by storing and maintaining flags in the view: the {@link InitPhaseState},\n * and the index within that phase. They can be seen as a cursor in the following structure:\n * [[onInit1, onInit2], [afterContentInit1], [afterViewInit1, afterViewInit2, afterViewInit3]]\n * They are are stored as flags in LView[FLAGS].\n *\n * 2. Pre-order hooks can be executed in batches, because of the select instruction.\n * To be able to pause and resume their execution, we also need some state about the hook's array\n * that is being processed:\n * - the index of the next hook to be executed\n * - the number of init hooks already found in the processed part of the array\n * They are are stored as flags in LView[PREORDER_HOOK_FLAGS].\n */\n/**\n * Executes pre-order check hooks ( OnChanges, DoChanges) given a view where all the init hooks were\n * executed once. This is a light version of executeInitAndCheckPreOrderHooks where we can skip read\n * / write of the init-hooks related flags.\n * @param {?} lView The LView where hooks are defined\n * @param {?} hooks Hooks to be run\n * @param {?=} nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n * @return {?}\n */\nfunction executeCheckHooks(lView, hooks, nodeIndex) {\n callHooks(lView, hooks, 3 /* InitPhaseCompleted */, nodeIndex);\n}\n/**\n * Executes post-order init and check hooks (one of AfterContentInit, AfterContentChecked,\n * AfterViewInit, AfterViewChecked) given a view where there are pending init hooks to be executed.\n * @param {?} lView The LView where hooks are defined\n * @param {?} hooks Hooks to be run\n * @param {?} initPhase A phase for which hooks should be run\n * @param {?=} nodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n * @return {?}\n */\nfunction executeInitAndCheckHooks(lView, hooks, initPhase, nodeIndex) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init pre-order hooks should not be called more than once');\n if ((lView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n callHooks(lView, hooks, initPhase, nodeIndex);\n }\n}\n/**\n * @param {?} lView\n * @param {?} initPhase\n * @return {?}\n */\nfunction incrementInitPhaseFlags(lView, initPhase) {\n ngDevMode &&\n assertNotEqual(initPhase, 3 /* InitPhaseCompleted */, 'Init hooks phase should not be incremented after all init hooks have been run.');\n /** @type {?} */\n let flags = lView[FLAGS];\n if ((flags & 3 /* InitPhaseStateMask */) === initPhase) {\n flags &= 2047 /* IndexWithinInitPhaseReset */;\n flags += 1 /* InitPhaseStateIncrementer */;\n lView[FLAGS] = flags;\n }\n}\n/**\n * Calls lifecycle hooks with their contexts, skipping init hooks if it's not\n * the first LView pass\n *\n * @param {?} currentView The current view\n * @param {?} arr The array in which the hooks are found\n * @param {?} initPhase\n * @param {?} currentNodeIndex 3 cases depending on the value:\n * - undefined: all hooks from the array should be executed (post-order case)\n * - null: execute hooks only from the saved index until the end of the array (pre-order case, when\n * flushing the remaining hooks)\n * - number: execute hooks only from the saved index until that node index exclusive (pre-order\n * case, when executing select(number))\n * @return {?}\n */\nfunction callHooks(currentView, arr, initPhase, currentNodeIndex) {\n ngDevMode &&\n assertEqual(getCheckNoChangesMode(), false, 'Hooks should never be run in the check no changes mode.');\n /** @type {?} */\n const startIndex = currentNodeIndex !== undefined ?\n (currentView[PREORDER_HOOK_FLAGS] & 65535 /* IndexOfTheNextPreOrderHookMaskMask */) :\n 0;\n /** @type {?} */\n const nodeIndexLimit = currentNodeIndex != null ? currentNodeIndex : -1;\n /** @type {?} */\n let lastNodeIndexFound = 0;\n for (let i = startIndex; i < arr.length; i++) {\n /** @type {?} */\n const hook = (/** @type {?} */ (arr[i + 1]));\n if (typeof hook === 'number') {\n lastNodeIndexFound = (/** @type {?} */ (arr[i]));\n if (currentNodeIndex != null && lastNodeIndexFound >= currentNodeIndex) {\n break;\n }\n }\n else {\n /** @type {?} */\n const isInitHook = arr[i] < 0;\n if (isInitHook)\n currentView[PREORDER_HOOK_FLAGS] += 65536 /* NumberOfInitHooksCalledIncrementer */;\n if (lastNodeIndexFound < nodeIndexLimit || nodeIndexLimit == -1) {\n callHook(currentView, initPhase, arr, i);\n currentView[PREORDER_HOOK_FLAGS] =\n (currentView[PREORDER_HOOK_FLAGS] & 4294901760 /* NumberOfInitHooksCalledMask */) + i +\n 2;\n }\n i++;\n }\n }\n}\n/**\n * Execute one hook against the current `LView`.\n *\n * @param {?} currentView The current view\n * @param {?} initPhase\n * @param {?} arr The array in which the hooks are found\n * @param {?} i The current index within the hook data array\n * @return {?}\n */\nfunction callHook(currentView, initPhase, arr, i) {\n /** @type {?} */\n const isInitHook = arr[i] < 0;\n /** @type {?} */\n const hook = (/** @type {?} */ (arr[i + 1]));\n /** @type {?} */\n const directiveIndex = isInitHook ? -arr[i] : (/** @type {?} */ (arr[i]));\n /** @type {?} */\n const directive = currentView[directiveIndex];\n if (isInitHook) {\n /** @type {?} */\n const indexWithintInitPhase = currentView[FLAGS] >> 11 /* IndexWithinInitPhaseShift */;\n // The init phase state must be always checked here as it may have been recursively\n // updated\n if (indexWithintInitPhase <\n (currentView[PREORDER_HOOK_FLAGS] >> 16 /* NumberOfInitHooksCalledShift */) &&\n (currentView[FLAGS] & 3 /* InitPhaseStateMask */) === initPhase) {\n currentView[FLAGS] += 2048 /* IndexWithinInitPhaseIncrementer */;\n hook.call(directive);\n }\n }\n else {\n hook.call(directive);\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/interfaces/injector.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @type {?} */\nconst TNODE = 8;\n/** @type {?} */\nconst PARENT_INJECTOR = 8;\n/** @type {?} */\nconst INJECTOR_BLOOM_PARENT_SIZE = 9;\n/**\n * Represents a relative location of parent injector.\n *\n * The interfaces encodes number of parents `LView`s to traverse and index in the `LView`\n * pointing to the parent injector.\n * @record\n */\nfunction RelativeInjectorLocation() { }\nif (false) {\n /** @type {?} */\n RelativeInjectorLocation.prototype.__brand__;\n}\n/** @enum {number} */\nconst RelativeInjectorLocationFlags = {\n InjectorIndexMask: 32767,\n ViewOffsetShift: 16,\n NO_PARENT: -1,\n};\n/** @type {?} */\nconst NO_PARENT_INJECTOR = (/** @type {?} */ (-1));\n/**\n * Each injector is saved in 9 contiguous slots in `LView` and 9 contiguous slots in\n * `TView.data`. This allows us to store information about the current node's tokens (which\n * can be shared in `TView`) as well as the tokens of its ancestor nodes (which cannot be\n * shared, so they live in `LView`).\n *\n * Each of these slots (aside from the last slot) contains a bloom filter. This bloom filter\n * determines whether a directive is available on the associated node or not. This prevents us\n * from searching the directives array at this level unless it's probable the directive is in it.\n *\n * See: https://en.wikipedia.org/wiki/Bloom_filter for more about bloom filters.\n *\n * Because all injectors have been flattened into `LView` and `TViewData`, they cannot typed\n * using interfaces as they were previously. The start index of each `LInjector` and `TInjector`\n * will differ based on where it is flattened into the main array, so it's not possible to know\n * the indices ahead of time and save their types here. The interfaces are still included here\n * for documentation purposes.\n *\n * export interface LInjector extends Array {\n *\n * // Cumulative bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Cumulative bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Cumulative bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Cumulative bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Cumulative bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Cumulative bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Cumulative bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Cumulative bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // We need to store a reference to the injector's parent so DI can keep looking up\n * // the injector tree until it finds the dependency it's looking for.\n * [PARENT_INJECTOR]: number;\n * }\n *\n * export interface TInjector extends Array {\n *\n * // Shared node bloom for directive IDs 0-31 (IDs are % BLOOM_SIZE)\n * [0]: number;\n *\n * // Shared node bloom for directive IDs 32-63\n * [1]: number;\n *\n * // Shared node bloom for directive IDs 64-95\n * [2]: number;\n *\n * // Shared node bloom for directive IDs 96-127\n * [3]: number;\n *\n * // Shared node bloom for directive IDs 128-159\n * [4]: number;\n *\n * // Shared node bloom for directive IDs 160 - 191\n * [5]: number;\n *\n * // Shared node bloom for directive IDs 192 - 223\n * [6]: number;\n *\n * // Shared node bloom for directive IDs 224 - 255\n * [7]: number;\n *\n * // Necessary to find directive indices for a particular node.\n * [TNODE]: TElementNode|TElementContainerNode|TContainerNode;\n * }\n */\n/**\n * Factory for creating instances of injectors in the NodeInjector.\n *\n * This factory is complicated by the fact that it can resolve `multi` factories as well.\n *\n * NOTE: Some of the fields are optional which means that this class has two hidden classes.\n * - One without `multi` support (most common)\n * - One with `multi` values, (rare).\n *\n * Since VMs can cache up to 4 inline hidden classes this is OK.\n *\n * - Single factory: Only `resolving` and `factory` is defined.\n * - `providers` factory: `componentProviders` is a number and `index = -1`.\n * - `viewProviders` factory: `componentProviders` is a number and `index` points to `providers`.\n */\nclass NodeInjectorFactory {\n /**\n * @param {?} factory\n * @param {?} isViewProvider\n * @param {?} injectImplementation\n */\n constructor(factory, \n /**\n * Set to `true` if the token is declared in `viewProviders` (or if it is component).\n */\n isViewProvider, injectImplementation) {\n this.factory = factory;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n */\n this.resolving = false;\n this.canSeeViewProviders = isViewProvider;\n this.injectImpl = injectImplementation;\n }\n}\nif (false) {\n /**\n * The inject implementation to be activated when using the factory.\n * @type {?}\n */\n NodeInjectorFactory.prototype.injectImpl;\n /**\n * Marker set to true during factory invocation to see if we get into recursive loop.\n * Recursive loop causes an error to be displayed.\n * @type {?}\n */\n NodeInjectorFactory.prototype.resolving;\n /**\n * Marks that the token can see other Tokens declared in `viewProviders` on the same node.\n * @type {?}\n */\n NodeInjectorFactory.prototype.canSeeViewProviders;\n /**\n * An array of factories to use in case of `multi` provider.\n * @type {?}\n */\n NodeInjectorFactory.prototype.multi;\n /**\n * Number of `multi`-providers which belong to the component.\n *\n * This is needed because when multiple components and directives declare the `multi` provider\n * they have to be concatenated in the correct order.\n *\n * Example:\n *\n * If we have a component and directive active an a single element as declared here\n * ```\n * component:\n * provides: [ {provide: String, useValue: 'component', multi: true} ],\n * viewProvides: [ {provide: String, useValue: 'componentView', multi: true} ],\n *\n * directive:\n * provides: [ {provide: String, useValue: 'directive', multi: true} ],\n * ```\n *\n * Then the expected results are:\n *\n * ```\n * providers: ['component', 'directive']\n * viewProviders: ['component', 'componentView', 'directive']\n * ```\n *\n * The way to think about it is that the `viewProviders` have been inserted after the component\n * but before the directives, which is why we need to know how many `multi`s have been declared by\n * the component.\n * @type {?}\n */\n NodeInjectorFactory.prototype.componentProviders;\n /**\n * Current index of the Factory in the `data`. Needed for `viewProviders` and `providers` merging.\n * See `providerFactory`.\n * @type {?}\n */\n NodeInjectorFactory.prototype.index;\n /**\n * Because the same `multi` provider can be declared in `provides` and `viewProvides` it is\n * possible for `viewProvides` to shadow the `provides`. For this reason we store the\n * `provideFactory` of the `providers` so that `providers` can be extended with `viewProviders`.\n *\n * Example:\n *\n * Given:\n * ```\n * provides: [ {provide: String, useValue: 'all', multi: true} ],\n * viewProvides: [ {provide: String, useValue: 'viewOnly', multi: true} ],\n * ```\n *\n * We have to return `['all']` in case of content injection, but `['all', 'viewOnly']` in case\n * of view injection. We further have to make sure that the shared instances (in our case\n * `all`) are the exact same instance in both the content as well as the view injection. (We\n * have to make sure that we don't double instantiate.) For this reason the `viewProvides`\n * `Factory` has a pointer to the shadowed `provides` factory so that it can instantiate the\n * `providers` (`['all']`) and then extend it with `viewProviders` (`['all'] + ['viewOnly'] =\n * ['all', 'viewOnly']`).\n * @type {?}\n */\n NodeInjectorFactory.prototype.providerFactory;\n /**\n * Factory to invoke in order to create a new instance.\n * @type {?}\n */\n NodeInjectorFactory.prototype.factory;\n}\n/**\n * @param {?} obj\n * @return {?}\n */\nfunction isFactory(obj) {\n return obj instanceof NodeInjectorFactory;\n}\n// Note: This hack is necessary so we don't erroneously get a circular dependency\n// failure based on types.\n/** @type {?} */\nconst unusedValueExportToPlacateAjd$3 = 1;\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/node_assert.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} tNode\n * @param {?} type\n * @return {?}\n */\nfunction assertNodeType(tNode, type) {\n assertDefined(tNode, 'should be called with a TNode');\n assertEqual(tNode.type, type, `should be a ${typeName(type)}`);\n}\n/**\n * @param {?} tNode\n * @param {...?} types\n * @return {?}\n */\nfunction assertNodeOfPossibleTypes(tNode, ...types) {\n assertDefined(tNode, 'should be called with a TNode');\n /** @type {?} */\n const found = types.some((/**\n * @param {?} type\n * @return {?}\n */\n type => tNode.type === type));\n assertEqual(found, true, `Should be one of ${types.map(typeName).join(', ')} but got ${typeName(tNode.type)}`);\n}\n/**\n * @param {?} type\n * @return {?}\n */\nfunction typeName(type) {\n if (type == 1 /* Projection */)\n return 'Projection';\n if (type == 0 /* Container */)\n return 'Container';\n if (type == 5 /* IcuContainer */)\n return 'IcuContainer';\n if (type == 2 /* View */)\n return 'View';\n if (type == 3 /* Element */)\n return 'Element';\n if (type == 4 /* ElementContainer */)\n return 'ElementContainer';\n return '';\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/util/attrs_utils.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Assigns all attribute values to the provided element via the inferred renderer.\n *\n * This function accepts two forms of attribute entries:\n *\n * default: (key, value):\n * attrs = [key1, value1, key2, value2]\n *\n * namespaced: (NAMESPACE_MARKER, uri, name, value)\n * attrs = [NAMESPACE_MARKER, uri, name, value, NAMESPACE_MARKER, uri, name, value]\n *\n * The `attrs` array can contain a mix of both the default and namespaced entries.\n * The \"default\" values are set without a marker, but if the function comes across\n * a marker value then it will attempt to set a namespaced value. If the marker is\n * not of a namespaced value then the function will quit and return the index value\n * where it stopped during the iteration of the attrs array.\n *\n * See [AttributeMarker] to understand what the namespace marker value is.\n *\n * Note that this instruction does not support assigning style and class values to\n * an element. See `elementStart` and `elementHostAttrs` to learn how styling values\n * are applied to an element.\n * @param {?} renderer The renderer to be used\n * @param {?} native The element that the attributes will be assigned to\n * @param {?} attrs The attribute array of values that will be assigned to the element\n * @return {?} the index value that was last accessed in the attributes array\n */\nfunction setUpAttributes(renderer, native, attrs) {\n /** @type {?} */\n const isProc = isProceduralRenderer(renderer);\n /** @type {?} */\n let i = 0;\n while (i < attrs.length) {\n /** @type {?} */\n const value = attrs[i];\n if (typeof value === 'number') {\n // only namespaces are supported. Other value types (such as style/class\n // entries) are not supported in this function.\n if (value !== 0 /* NamespaceURI */) {\n break;\n }\n // we just landed on the marker value ... therefore\n // we should skip to the next entry\n i++;\n /** @type {?} */\n const namespaceURI = (/** @type {?} */ (attrs[i++]));\n /** @type {?} */\n const attrName = (/** @type {?} */ (attrs[i++]));\n /** @type {?} */\n const attrVal = (/** @type {?} */ (attrs[i++]));\n ngDevMode && ngDevMode.rendererSetAttribute++;\n isProc ?\n ((/** @type {?} */ (renderer))).setAttribute(native, attrName, attrVal, namespaceURI) :\n native.setAttributeNS(namespaceURI, attrName, attrVal);\n }\n else {\n // attrName is string;\n /** @type {?} */\n const attrName = (/** @type {?} */ (value));\n /** @type {?} */\n const attrVal = attrs[++i];\n // Standard attributes\n ngDevMode && ngDevMode.rendererSetAttribute++;\n if (isAnimationProp(attrName)) {\n if (isProc) {\n ((/** @type {?} */ (renderer))).setProperty(native, attrName, attrVal);\n }\n }\n else {\n isProc ?\n ((/** @type {?} */ (renderer))).setAttribute(native, attrName, (/** @type {?} */ (attrVal))) :\n native.setAttribute(attrName, (/** @type {?} */ (attrVal)));\n }\n i++;\n }\n }\n // another piece of code may iterate over the same attributes array. Therefore\n // it may be helpful to return the exact spot where the attributes array exited\n // whether by running into an unsupported marker or if all the static values were\n // iterated over.\n return i;\n}\n/**\n * Test whether the given value is a marker that indicates that the following\n * attribute values in a `TAttributes` array are only the names of attributes,\n * and not name-value pairs.\n * @param {?} marker The attribute marker to test.\n * @return {?} true if the marker is a \"name-only\" marker (e.g. `Bindings`, `Template` or `I18n`).\n */\nfunction isNameOnlyAttributeMarker(marker) {\n return marker === 3 /* Bindings */ || marker === 4 /* Template */ ||\n marker === 6 /* I18n */;\n}\n/**\n * @param {?} name\n * @return {?}\n */\nfunction isAnimationProp(name) {\n // Perf note: accessing charCodeAt to check for the first character of a string is faster as\n // compared to accessing a character at index 0 (ex. name[0]). The main reason for this is that\n // charCodeAt doesn't allocate memory to return a substring.\n return name.charCodeAt(0) === 64 /* AT_SIGN */;\n}\n/**\n * Merges `src` `TAttributes` into `dst` `TAttributes` removing any duplicates in the process.\n *\n * This merge function keeps the order of attrs same.\n *\n * @param {?} dst Location of where the merged `TAttributes` should end up.\n * @param {?} src `TAttributes` which should be appended to `dst`\n * @return {?}\n */\nfunction mergeHostAttrs(dst, src) {\n if (src === null || src.length === 0) {\n // do nothing\n }\n else if (dst === null || dst.length === 0) {\n // We have source, but dst is empty, just make a copy.\n dst = src.slice();\n }\n else {\n /** @type {?} */\n let srcMarker = -1 /* ImplicitAttributes */;\n for (let i = 0; i < src.length; i++) {\n /** @type {?} */\n const item = src[i];\n if (typeof item === 'number') {\n srcMarker = item;\n }\n else {\n if (srcMarker === 0 /* NamespaceURI */) {\n // Case where we need to consume `key1`, `key2`, `value` items.\n }\n else if (srcMarker === -1 /* ImplicitAttributes */ ||\n srcMarker === 2 /* Styles */) {\n // Case where we have to consume `key1` and `value` only.\n mergeHostAttribute(dst, srcMarker, (/** @type {?} */ (item)), null, (/** @type {?} */ (src[++i])));\n }\n else {\n // Case where we have to consume `key1` only.\n mergeHostAttribute(dst, srcMarker, (/** @type {?} */ (item)), null, null);\n }\n }\n }\n }\n return dst;\n}\n/**\n * Append `key`/`value` to existing `TAttributes` taking region marker and duplicates into account.\n *\n * @param {?} dst `TAttributes` to append to.\n * @param {?} marker Region where the `key`/`value` should be added.\n * @param {?} key1 Key to add to `TAttributes`\n * @param {?} key2 Key to add to `TAttributes` (in case of `AttributeMarker.NamespaceURI`)\n * @param {?} value Value to add or to overwrite to `TAttributes` Only used if `marker` is not Class.\n * @return {?}\n */\nfunction mergeHostAttribute(dst, marker, key1, key2, value) {\n /** @type {?} */\n let i = 0;\n // Assume that new markers will be inserted at the end.\n /** @type {?} */\n let markerInsertPosition = dst.length;\n // scan until correct type.\n if (marker === -1 /* ImplicitAttributes */) {\n markerInsertPosition = -1;\n }\n else {\n while (i < dst.length) {\n /** @type {?} */\n const dstValue = dst[i++];\n if (typeof dstValue === 'number') {\n if (dstValue === marker) {\n markerInsertPosition = -1;\n break;\n }\n else if (dstValue > marker) {\n // We need to save this as we want the markers to be inserted in specific order.\n markerInsertPosition = i - 1;\n break;\n }\n }\n }\n }\n // search until you find place of insertion\n while (i < dst.length) {\n /** @type {?} */\n const item = dst[i];\n if (typeof item === 'number') {\n // since `i` started as the index after the marker, we did not find it if we are at the next\n // marker\n break;\n }\n else if (item === key1) {\n // We already have same token\n if (key2 === null) {\n if (value !== null) {\n dst[i + 1] = value;\n }\n return;\n }\n else if (key2 === dst[i + 1]) {\n dst[i + 2] = (/** @type {?} */ (value));\n return;\n }\n }\n // Increment counter.\n i++;\n if (key2 !== null)\n i++;\n if (value !== null)\n i++;\n }\n // insert at location.\n if (markerInsertPosition !== -1) {\n dst.splice(markerInsertPosition, 0, marker);\n i = markerInsertPosition + 1;\n }\n dst.splice(i++, 0, key1);\n if (key2 !== null) {\n dst.splice(i++, 0, key2);\n }\n if (value !== null) {\n dst.splice(i++, 0, value);\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/util/injector_utils.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/// Parent Injector Utils ///////////////////////////////////////////////////////////////\n/**\n * @param {?} parentLocation\n * @return {?}\n */\nfunction hasParentInjector(parentLocation) {\n return parentLocation !== NO_PARENT_INJECTOR;\n}\n/**\n * @param {?} parentLocation\n * @return {?}\n */\nfunction getParentInjectorIndex(parentLocation) {\n return ((/** @type {?} */ ((/** @type {?} */ (parentLocation))))) & 32767 /* InjectorIndexMask */;\n}\n/**\n * @param {?} parentLocation\n * @return {?}\n */\nfunction getParentInjectorViewOffset(parentLocation) {\n return ((/** @type {?} */ ((/** @type {?} */ (parentLocation))))) >> 16 /* ViewOffsetShift */;\n}\n/**\n * Unwraps a parent injector location number to find the view offset from the current injector,\n * then walks up the declaration view tree until the view is found that contains the parent\n * injector.\n *\n * @param {?} location The location of the parent injector, which contains the view offset\n * @param {?} startView The LView instance from which to start walking up the view tree\n * @return {?} The LView instance that contains the parent injector\n */\nfunction getParentInjectorView(location, startView) {\n /** @type {?} */\n let viewOffset = getParentInjectorViewOffset(location);\n /** @type {?} */\n let parentView = startView;\n // For most cases, the parent injector can be found on the host node (e.g. for component\n // or container), but we must keep the loop here to support the rarer case of deeply nested\n // tags or inline views, where the parent injector might live many views\n // above the child injector.\n while (viewOffset > 0) {\n parentView = (/** @type {?} */ (parentView[DECLARATION_VIEW]));\n viewOffset--;\n }\n return parentView;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/util/misc_utils.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Used for stringify render output in Ivy.\n * Important! This function is very performance-sensitive and we should\n * be extra careful not to introduce megamorphic reads in it.\n * @param {?} value\n * @return {?}\n */\nfunction renderStringify(value) {\n if (typeof value === 'string')\n return value;\n if (value == null)\n return '';\n return '' + value;\n}\n/**\n * Used to stringify a value so that it can be displayed in an error message.\n * Important! This function contains a megamorphic read and should only be\n * used for error messages.\n * @param {?} value\n * @return {?}\n */\nfunction stringifyForError(value) {\n if (typeof value === 'function')\n return value.name || value.toString();\n if (typeof value === 'object' && value != null && typeof value.type === 'function') {\n return value.type.name || value.type.toString();\n }\n return renderStringify(value);\n}\nconst ɵ0$3 = /**\n * @return {?}\n */\n() => (typeof requestAnimationFrame !== 'undefined' &&\n requestAnimationFrame || // browser only\n setTimeout // everything else\n)\n .bind(_global);\n/** @type {?} */\nconst defaultScheduler = ((ɵ0$3))();\n/**\n *\n * \\@codeGenApi\n * @param {?} element\n * @return {?}\n */\nfunction ɵɵresolveWindow(element) {\n return { name: 'window', target: element.ownerDocument.defaultView };\n}\n/**\n *\n * \\@codeGenApi\n * @param {?} element\n * @return {?}\n */\nfunction ɵɵresolveDocument(element) {\n return { name: 'document', target: element.ownerDocument };\n}\n/**\n *\n * \\@codeGenApi\n * @param {?} element\n * @return {?}\n */\nfunction ɵɵresolveBody(element) {\n return { name: 'body', target: element.ownerDocument.body };\n}\n/**\n * The special delimiter we use to separate property names, prefixes, and suffixes\n * in property binding metadata. See storeBindingMetadata().\n *\n * We intentionally use the Unicode \"REPLACEMENT CHARACTER\" (U+FFFD) as a delimiter\n * because it is a very uncommon character that is unlikely to be part of a user's\n * property names or interpolation strings. If it is in fact used in a property\n * binding, DebugElement.properties will not return the correct value for that\n * binding. However, there should be no runtime effect for real applications.\n *\n * This character is typically rendered as a question mark inside of a diamond.\n * See https://en.wikipedia.org/wiki/Specials_(Unicode_block)\n *\n * @type {?}\n */\nconst INTERPOLATION_DELIMITER = `�`;\n/**\n * Unwrap a value which might be behind a closure (for forward declaration reasons).\n * @template T\n * @param {?} value\n * @return {?}\n */\nfunction maybeUnwrapFn(value) {\n if (value instanceof Function) {\n return value();\n }\n else {\n return value;\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/render3/di.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Defines if the call to `inject` should include `viewProviders` in its resolution.\n *\n * This is set to true when we try to instantiate a component. This value is reset in\n * `getNodeInjectable` to a value which matches the declaration location of the token about to be\n * instantiated. This is done so that if we are injecting a token which was declared outside of\n * `viewProviders` we don't accidentally pull `viewProviders` in.\n *\n * Example:\n *\n * ```\n * \\@Injectable()\n * class MyService {\n * constructor(public value: String) {}\n * }\n *\n * \\@Component({\n * providers: [\n * MyService,\n * {provide: String, value: 'providers' }\n * ]\n * viewProviders: [\n * {provide: String, value: 'viewProviders'}\n * ]\n * })\n * class MyComponent {\n * constructor(myService: MyService, value: String) {\n * // We expect that Component can see into `viewProviders`.\n * expect(value).toEqual('viewProviders');\n * // `MyService` was not declared in `viewProviders` hence it can't see it.\n * expect(myService.value).toEqual('providers');\n * }\n * }\n *\n * ```\n * @type {?}\n */\nlet includeViewProviders = true;\n/**\n * @param {?} v\n * @return {?}\n */\nfunction setIncludeViewProviders(v) {\n /** @type {?} */\n const oldValue = includeViewProviders;\n includeViewProviders = v;\n return oldValue;\n}\n/**\n * The number of slots in each bloom filter (used by DI). The larger this number, the fewer\n * directives that will share slots, and thus, the fewer false positives when checking for\n * the existence of a directive.\n * @type {?}\n */\nconst BLOOM_SIZE = 256;\n/** @type {?} */\nconst BLOOM_MASK = BLOOM_SIZE - 1;\n/**\n * Counter used to generate unique IDs for directives.\n * @type {?}\n */\nlet nextNgElementId = 0;\n/**\n * Registers this directive as present in its node's injector by flipping the directive's\n * corresponding bit in the injector's bloom filter.\n *\n * @param {?} injectorIndex The index of the node injector where this token should be registered\n * @param {?} tView The TView for the injector's bloom filters\n * @param {?} type The directive token to register\n * @return {?}\n */\nfunction bloomAdd(injectorIndex, tView, type) {\n ngDevMode && assertEqual(tView.firstCreatePass, true, 'expected firstCreatePass to be true');\n /** @type {?} */\n let id = typeof type !== 'string' ? ((/** @type {?} */ (type)))[NG_ELEMENT_ID] : type.charCodeAt(0) || 0;\n // Set a unique ID on the directive type, so if something tries to inject the directive,\n // we can easily retrieve the ID and hash it into the bloom bit that should be checked.\n if (id == null) {\n id = ((/** @type {?} */ (type)))[NG_ELEMENT_ID] = nextNgElementId++;\n }\n // We only have BLOOM_SIZE (256) slots in our bloom filter (8 buckets * 32 bits each),\n // so all unique IDs must be modulo-ed into a number from 0 - 255 to fit into the filter.\n /** @type {?} */\n const bloomBit = id & BLOOM_MASK;\n // Create a mask that targets the specific bit associated with the directive.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n /** @type {?} */\n const mask = 1 << bloomBit;\n // Use the raw bloomBit number to determine which bloom filter bucket we should check\n // e.g: bf0 = [0 - 31], bf1 = [32 - 63], bf2 = [64 - 95], bf3 = [96 - 127], etc\n /** @type {?} */\n const b7 = bloomBit & 0x80;\n /** @type {?} */\n const b6 = bloomBit & 0x40;\n /** @type {?} */\n const b5 = bloomBit & 0x20;\n /** @type {?} */\n const tData = (/** @type {?} */ (tView.data));\n if (b7) {\n b6 ? (b5 ? (tData[injectorIndex + 7] |= mask) : (tData[injectorIndex + 6] |= mask)) :\n (b5 ? (tData[injectorIndex + 5] |= mask) : (tData[injectorIndex + 4] |= mask));\n }\n else {\n b6 ? (b5 ? (tData[injectorIndex + 3] |= mask) : (tData[injectorIndex + 2] |= mask)) :\n (b5 ? (tData[injectorIndex + 1] |= mask) : (tData[injectorIndex] |= mask));\n }\n}\n/**\n * Creates (or gets an existing) injector for a given element or container.\n *\n * @param {?} tNode for which an injector should be retrieved / created.\n * @param {?} hostView View where the node is stored\n * @return {?} Node injector\n */\nfunction getOrCreateNodeInjectorForNode(tNode, hostView) {\n /** @type {?} */\n const existingInjectorIndex = getInjectorIndex(tNode, hostView);\n if (existingInjectorIndex !== -1) {\n return existingInjectorIndex;\n }\n /** @type {?} */\n const tView = hostView[TVIEW];\n if (tView.firstCreatePass) {\n tNode.injectorIndex = hostView.length;\n insertBloom(tView.data, tNode); // foundation for node bloom\n insertBloom(hostView, null); // foundation for cumulative bloom\n insertBloom(tView.blueprint, null);\n }\n /** @type {?} */\n const parentLoc = getParentInjectorLocation(tNode, hostView);\n /** @type {?} */\n const injectorIndex = tNode.injectorIndex;\n // If a parent injector can't be found, its location is set to -1.\n // In that case, we don't need to set up a cumulative bloom\n if (hasParentInjector(parentLoc)) {\n /** @type {?} */\n const parentIndex = getParentInjectorIndex(parentLoc);\n /** @type {?} */\n const parentLView = getParentInjectorView(parentLoc, hostView);\n /** @type {?} */\n const parentData = (/** @type {?} */ (parentLView[TVIEW].data));\n // Creates a cumulative bloom filter that merges the parent's bloom filter\n // and its own cumulative bloom (which contains tokens for all ancestors)\n for (let i = 0; i < 8; i++) {\n hostView[injectorIndex + i] = parentLView[parentIndex + i] | parentData[parentIndex + i];\n }\n }\n hostView[injectorIndex + PARENT_INJECTOR] = parentLoc;\n return injectorIndex;\n}\n/**\n * @param {?} arr\n * @param {?} footer\n * @return {?}\n */\nfunction insertBloom(arr, footer) {\n arr.push(0, 0, 0, 0, 0, 0, 0, 0, footer);\n}\n/**\n * @param {?} tNode\n * @param {?} hostView\n * @return {?}\n */\nfunction getInjectorIndex(tNode, hostView) {\n if (tNode.injectorIndex === -1 ||\n // If the injector index is the same as its parent's injector index, then the index has been\n // copied down from the parent node. No injector has been created yet on this node.\n (tNode.parent && tNode.parent.injectorIndex === tNode.injectorIndex) ||\n // After the first template pass, the injector index might exist but the parent values\n // might not have been calculated yet for this instance\n hostView[tNode.injectorIndex + PARENT_INJECTOR] == null) {\n return -1;\n }\n else {\n return tNode.injectorIndex;\n }\n}\n/**\n * Finds the index of the parent injector, with a view offset if applicable. Used to set the\n * parent injector initially.\n *\n * Returns a combination of number of `ViewData` we have to go up and index in that `Viewdata`\n * @param {?} tNode\n * @param {?} view\n * @return {?}\n */\nfunction getParentInjectorLocation(tNode, view) {\n if (tNode.parent && tNode.parent.injectorIndex !== -1) {\n return (/** @type {?} */ (tNode.parent.injectorIndex)); // ViewOffset is 0\n }\n // For most cases, the parent injector index can be found on the host node (e.g. for component\n // or container), so this loop will be skipped, but we must keep the loop here to support\n // the rarer case of deeply nested tags or inline views.\n /** @type {?} */\n let hostTNode = view[T_HOST];\n /** @type {?} */\n let viewOffset = 1;\n while (hostTNode && hostTNode.injectorIndex === -1) {\n view = (/** @type {?} */ (view[DECLARATION_VIEW]));\n hostTNode = view ? view[T_HOST] : null;\n viewOffset++;\n }\n return hostTNode ?\n hostTNode.injectorIndex | (viewOffset << 16 /* ViewOffsetShift */) :\n (/** @type {?} */ (-1));\n}\n/**\n * Makes a type or an injection token public to the DI system by adding it to an\n * injector's bloom filter.\n *\n * @param {?} injectorIndex\n * @param {?} tView\n * @param {?} token The type or the injection token to be made public\n * @return {?}\n */\nfunction diPublicInInjector(injectorIndex, tView, token) {\n bloomAdd(injectorIndex, tView, token);\n}\n/**\n * Inject static attribute value into directive constructor.\n *\n * This method is used with `factory` functions which are generated as part of\n * `defineDirective` or `defineComponent`. The method retrieves the static value\n * of an attribute. (Dynamic attributes are not supported since they are not resolved\n * at the time of injection and can change over time.)\n *\n * # Example\n * Given:\n * ```\n * \\@Component(...)\n * class MyComponent {\n * constructor(\\@Attribute('title') title: string) { ... }\n * }\n * ```\n * When instantiated with\n * ```\n * \n * ```\n *\n * Then factory method generated is:\n * ```\n * MyComponent.ɵcmp = defineComponent({\n * factory: () => new MyComponent(injectAttribute('title'))\n * ...\n * })\n * ```\n *\n * \\@publicApi\n * @param {?} tNode\n * @param {?} attrNameToInject\n * @return {?}\n */\nfunction injectAttributeImpl(tNode, attrNameToInject) {\n ngDevMode &&\n assertNodeOfPossibleTypes(tNode, 0 /* Container */, 3 /* Element */, 4 /* ElementContainer */);\n ngDevMode && assertDefined(tNode, 'expecting tNode');\n if (attrNameToInject === 'class') {\n return tNode.classes;\n }\n if (attrNameToInject === 'style') {\n return tNode.styles;\n }\n /** @type {?} */\n const attrs = tNode.attrs;\n if (attrs) {\n /** @type {?} */\n const attrsLength = attrs.length;\n /** @type {?} */\n let i = 0;\n while (i < attrsLength) {\n /** @type {?} */\n const value = attrs[i];\n // If we hit a `Bindings` or `Template` marker then we are done.\n if (isNameOnlyAttributeMarker(value))\n break;\n // Skip namespaced attributes\n if (value === 0 /* NamespaceURI */) {\n // we skip the next two values\n // as namespaced attributes looks like\n // [..., AttributeMarker.NamespaceURI, 'http://someuri.com/test', 'test:exist',\n // 'existValue', ...]\n i = i + 2;\n }\n else if (typeof value === 'number') {\n // Skip to the first value of the marked attribute.\n i++;\n while (i < attrsLength && typeof attrs[i] === 'string') {\n i++;\n }\n }\n else if (value === attrNameToInject) {\n return (/** @type {?} */ (attrs[i + 1]));\n }\n else {\n i = i + 2;\n }\n }\n }\n return null;\n}\n/**\n * Returns the value associated to the given token from the NodeInjectors => ModuleInjector.\n *\n * Look for the injector providing the token by walking up the node injector tree and then\n * the module injector tree.\n *\n * This function patches `token` with `__NG_ELEMENT_ID__` which contains the id for the bloom\n * filter. Negative values are reserved for special objects.\n * - `-1` is reserved for injecting `Injector` (implemented by `NodeInjector`)\n *\n * @template T\n * @param {?} tNode The Node where the search for the injector should start\n * @param {?} lView The `LView` that contains the `tNode`\n * @param {?} token The token to look for\n * @param {?=} flags Injection flags\n * @param {?=} notFoundValue The value to return when the injection flags is `InjectFlags.Optional`\n * @return {?} the value from the injector, `null` when not found, or `notFoundValue` if provided\n */\nfunction getOrCreateInjectable(tNode, lView, token, flags = InjectFlags.Default, notFoundValue) {\n if (tNode !== null) {\n /** @type {?} */\n const bloomHash = bloomHashBitOrFactory(token);\n // If the ID stored here is a function, this is a special object like ElementRef or TemplateRef\n // so just call the factory function to create it.\n if (typeof bloomHash === 'function') {\n enterDI(lView, tNode);\n try {\n /** @type {?} */\n const value = bloomHash();\n if (value == null && !(flags & InjectFlags.Optional)) {\n throw new Error(`No provider for ${stringifyForError(token)}!`);\n }\n else {\n return value;\n }\n }\n finally {\n leaveDI();\n }\n }\n else if (typeof bloomHash == 'number') {\n if (bloomHash === -1) {\n // `-1` is a special value used to identify `Injector` types.\n return (/** @type {?} */ (new NodeInjector(tNode, lView)));\n }\n // If the token has a bloom hash, then it is a token which could be in NodeInjector.\n // A reference to the previous injector TView that was found while climbing the element\n // injector tree. This is used to know if viewProviders can be accessed on the current\n // injector.\n /** @type {?} */\n let previousTView = null;\n /** @type {?} */\n let injectorIndex = getInjectorIndex(tNode, lView);\n /** @type {?} */\n let parentLocation = NO_PARENT_INJECTOR;\n /** @type {?} */\n let hostTElementNode = flags & InjectFlags.Host ? lView[DECLARATION_COMPONENT_VIEW][T_HOST] : null;\n // If we should skip this injector, or if there is no injector on this node, start by\n // searching\n // the parent injector.\n if (injectorIndex === -1 || flags & InjectFlags.SkipSelf) {\n parentLocation = injectorIndex === -1 ? getParentInjectorLocation(tNode, lView) :\n lView[injectorIndex + PARENT_INJECTOR];\n if (!shouldSearchParent(flags, false)) {\n injectorIndex = -1;\n }\n else {\n previousTView = lView[TVIEW];\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n }\n // Traverse up the injector tree until we find a potential match or until we know there\n // *isn't* a match.\n while (injectorIndex !== -1) {\n parentLocation = lView[injectorIndex + PARENT_INJECTOR];\n // Check the current injector. If it matches, see if it contains token.\n /** @type {?} */\n const tView = lView[TVIEW];\n if (bloomHasToken(bloomHash, injectorIndex, tView.data)) {\n // At this point, we have an injector which *may* contain the token, so we step through\n // the providers and directives associated with the injector's corresponding node to get\n // the instance.\n /** @type {?} */\n const instance = searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode);\n if (instance !== NOT_FOUND) {\n return instance;\n }\n }\n if (shouldSearchParent(flags, lView[TVIEW].data[injectorIndex + TNODE] === hostTElementNode) &&\n bloomHasToken(bloomHash, injectorIndex, lView)) {\n // The def wasn't found anywhere on this node, so it was a false positive.\n // Traverse up the tree and continue searching.\n previousTView = tView;\n injectorIndex = getParentInjectorIndex(parentLocation);\n lView = getParentInjectorView(parentLocation, lView);\n }\n else {\n // If we should not search parent OR If the ancestor bloom filter value does not have the\n // bit corresponding to the directive we can give up on traversing up to find the specific\n // injector.\n injectorIndex = -1;\n }\n }\n }\n }\n if (flags & InjectFlags.Optional && notFoundValue === undefined) {\n // This must be set or the NullInjector will throw for optional deps\n notFoundValue = null;\n }\n if ((flags & (InjectFlags.Self | InjectFlags.Host)) === 0) {\n /** @type {?} */\n const moduleInjector = lView[INJECTOR$1];\n // switch to `injectInjectorOnly` implementation for module injector, since module injector\n // should not have access to Component/Directive DI scope (that may happen through\n // `directiveInject` implementation)\n /** @type {?} */\n const previousInjectImplementation = setInjectImplementation(undefined);\n try {\n if (moduleInjector) {\n return moduleInjector.get(token, notFoundValue, flags & InjectFlags.Optional);\n }\n else {\n return injectRootLimpMode(token, notFoundValue, flags & InjectFlags.Optional);\n }\n }\n finally {\n setInjectImplementation(previousInjectImplementation);\n }\n }\n if (flags & InjectFlags.Optional) {\n return notFoundValue;\n }\n else {\n throw new Error(`NodeInjector: NOT_FOUND [${stringifyForError(token)}]`);\n }\n}\n/** @type {?} */\nconst NOT_FOUND = {};\n/**\n * @template T\n * @param {?} injectorIndex\n * @param {?} lView\n * @param {?} token\n * @param {?} previousTView\n * @param {?} flags\n * @param {?} hostTElementNode\n * @return {?}\n */\nfunction searchTokensOnInjector(injectorIndex, lView, token, previousTView, flags, hostTElementNode) {\n /** @type {?} */\n const currentTView = lView[TVIEW];\n /** @type {?} */\n const tNode = (/** @type {?} */ (currentTView.data[injectorIndex + TNODE]));\n // First, we need to determine if view providers can be accessed by the starting element.\n // There are two possibities\n /** @type {?} */\n const canAccessViewProviders = previousTView == null ?\n // 1) This is the first invocation `previousTView == null` which means that we are at the\n // `TNode` of where injector is starting to look. In such a case the only time we are allowed\n // to look into the ViewProviders is if:\n // - we are on a component\n // - AND the injector set `includeViewProviders` to true (implying that the token can see\n // ViewProviders because it is the Component or a Service which itself was declared in\n // ViewProviders)\n (isComponentHost(tNode) && includeViewProviders) :\n // 2) `previousTView != null` which means that we are now walking across the parent nodes.\n // In such a case we are only allowed to look into the ViewProviders if:\n // - We just crossed from child View to Parent View `previousTView != currentTView`\n // - AND the parent TNode is an Element.\n // This means that we just came from the Component's View and therefore are allowed to see\n // into the ViewProviders.\n (previousTView != currentTView && (tNode.type === 3 /* Element */));\n // This special case happens when there is a @host on the inject and when we are searching\n // on the host element node.\n /** @type {?} */\n const isHostSpecialCase = (flags & InjectFlags.Host) && hostTElementNode === tNode;\n /** @type {?} */\n const injectableIdx = locateDirectiveOrProvider(tNode, currentTView, token, canAccessViewProviders, isHostSpecialCase);\n if (injectableIdx !== null) {\n return getNodeInjectable(lView, currentTView, injectableIdx, (/** @type {?} */ (tNode)));\n }\n else {\n return NOT_FOUND;\n }\n}\n/**\n * Searches for the given token among the node's directives and providers.\n *\n * @template T\n * @param {?} tNode TNode on which directives are present.\n * @param {?} tView The tView we are currently processing\n * @param {?} token Provider token or type of a directive to look for.\n * @param {?} canAccessViewProviders Whether view providers should be considered.\n * @param {?} isHostSpecialCase Whether the host special case applies.\n * @return {?} Index of a found directive or provider, or null when none found.\n */\nfunction locateDirectiveOrProvider(tNode, tView, token, canAccessViewProviders, isHostSpecialCase) {\n /** @type {?} */\n const nodeProviderIndexes = tNode.providerIndexes;\n /** @type {?} */\n const tInjectables = tView.data;\n /** @type {?} */\n const injectablesStart = nodeProviderIndexes & 65535 /* ProvidersStartIndexMask */;\n /** @type {?} */\n const directivesStart = tNode.directiveStart;\n /** @type {?} */\n const directiveEnd = tNode.directiveEnd;\n /** @type {?} */\n const cptViewProvidersCount = nodeProviderIndexes >> 16 /* CptViewProvidersCountShift */;\n /** @type {?} */\n const startingIndex = canAccessViewProviders ? injectablesStart : injectablesStart + cptViewProvidersCount;\n // When the host special case applies, only the viewProviders and the component are visible\n /** @type {?} */\n const endIndex = isHostSpecialCase ? injectablesStart + cptViewProvidersCount : directiveEnd;\n for (let i = startingIndex; i < endIndex; i++) {\n /** @type {?} */\n const providerTokenOrDef = (/** @type {?} */ (tInjectables[i]));\n if (i < directivesStart && token === providerTokenOrDef ||\n i >= directivesStart && ((/** @type {?} */ (providerTokenOrDef))).type === token) {\n return i;\n }\n }\n if (isHostSpecialCase) {\n /** @type {?} */\n const dirDef = (/** @type {?} */ (tInjectables[directivesStart]));\n if (dirDef && isComponentDef(dirDef) && dirDef.type === token) {\n return directivesStart;\n }\n }\n return null;\n}\n/**\n * Retrieve or instantiate the injectable from the `LView` at particular `index`.\n *\n * This function checks to see if the value has already been instantiated and if so returns the\n * cached `injectable`. Otherwise if it detects that the value is still a factory it\n * instantiates the `injectable` and caches the value.\n * @param {?} lView\n * @param {?} tView\n * @param {?} index\n * @param {?} tNode\n * @return {?}\n */\nfunction getNodeInjectable(lView, tView, index, tNode) {\n /** @type {?} */\n let value = lView[index];\n /** @type {?} */\n const tData = tView.data;\n if (isFactory(value)) {\n /** @type {?} */\n const factory = value;\n if (factory.resolving) {\n throw new Error(`Circular dep for ${stringifyForError(tData[index])}`);\n }\n /** @type {?} */\n const previousIncludeViewProviders = setIncludeViewProviders(factory.canSeeViewProviders);\n factory.resolving = true;\n /** @type {?} */\n let previousInjectImplementation;\n if (factory.injectImpl) {\n previousInjectImplementation = setInjectImplementation(factory.injectImpl);\n }\n enterDI(lView, tNode);\n try {\n value = lView[index] = factory.factory(undefined, tData, lView, tNode);\n // This code path is hit for both directives and providers.\n // For perf reasons, we want to avoid searching for hooks on providers.\n // It does no harm to try (the hooks just won't exist), but the extra\n // checks are unnecessary and this is a hot path. So we check to see\n // if the index of the dependency is in the directive range for this\n // tNode. If it's not, we know it's a provider and skip hook registration.\n if (tView.firstCreatePass && index >= tNode.directiveStart) {\n ngDevMode && assertDirectiveDef(tData[index]);\n registerPreOrderHooks(index, (/** @type {?} */ (tData[index])), tView);\n }\n }\n finally {\n if (factory.injectImpl)\n setInjectImplementation(previousInjectImplementation);\n setIncludeViewProviders(previousIncludeViewProviders);\n factory.resolving = false;\n leaveDI();\n }\n }\n return value;\n}\n/**\n * Returns the bit in an injector's bloom filter that should be used to determine whether or not\n * the directive might be provided by the injector.\n *\n * When a directive is public, it is added to the bloom filter and given a unique ID that can be\n * retrieved on the Type. When the directive isn't public or the token is not a directive `null`\n * is returned as the node injector can not possibly provide that token.\n *\n * @param {?} token the injection token\n * @return {?} the matching bit to check in the bloom filter or `null` if the token is not known.\n * When the returned value is negative then it represents special values such as `Injector`.\n */\nfunction bloomHashBitOrFactory(token) {\n ngDevMode && assertDefined(token, 'token must be defined');\n if (typeof token === 'string') {\n return token.charCodeAt(0) || 0;\n }\n /** @type {?} */\n const tokenId = ((/** @type {?} */ (token)))[NG_ELEMENT_ID];\n // Negative token IDs are used for special objects such as `Injector`\n return (typeof tokenId === 'number' && tokenId > 0) ? tokenId & BLOOM_MASK : tokenId;\n}\n/**\n * @param {?} bloomHash\n * @param {?} injectorIndex\n * @param {?} injectorView\n * @return {?}\n */\nfunction bloomHasToken(bloomHash, injectorIndex, injectorView) {\n // Create a mask that targets the specific bit associated with the directive we're looking for.\n // JS bit operations are 32 bits, so this will be a number between 2^0 and 2^31, corresponding\n // to bit positions 0 - 31 in a 32 bit integer.\n /** @type {?} */\n const mask = 1 << bloomHash;\n /** @type {?} */\n const b7 = bloomHash & 0x80;\n /** @type {?} */\n const b6 = bloomHash & 0x40;\n /** @type {?} */\n const b5 = bloomHash & 0x20;\n // Our bloom filter size is 256 bits, which is eight 32-bit bloom filter buckets:\n // bf0 = [0 - 31], bf1 = [32 - 63], bf2 = [64 - 95], bf3 = [96 - 127], etc.\n // Get the bloom filter value from the appropriate bucket based on the directive's bloomBit.\n /** @type {?} */\n let value;\n if (b7) {\n value = b6 ? (b5 ? injectorView[injectorIndex + 7] : injectorView[injectorIndex + 6]) :\n (b5 ? injectorView[injectorIndex + 5] : injectorView[injectorIndex + 4]);\n }\n else {\n value = b6 ? (b5 ? injectorView[injectorIndex + 3] : injectorView[injectorIndex + 2]) :\n (b5 ? injectorView[injectorIndex + 1] : injectorView[injectorIndex]);\n }\n // If the bloom filter value has the bit corresponding to the directive's bloomBit flipped on,\n // this injector is a potential match.\n return !!(value & mask);\n}\n/**\n * Returns true if flags prevent parent injector from being searched for tokens\n * @param {?} flags\n * @param {?} isFirstHostTNode\n * @return {?}\n */\nfunction shouldSearchParent(flags, isFirstHostTNode) {\n return !(flags & InjectFlags.Self) && !(flags & InjectFlags.Host && isFirstHostTNode);\n}\nclass NodeInjector {\n /**\n * @param {?} _tNode\n * @param {?} _lView\n */\n constructor(_tNode, _lView) {\n this._tNode = _tNode;\n this._lView = _lView;\n }\n /**\n * @param {?} token\n * @param {?=} notFoundValue\n * @return {?}\n */\n get(token, notFoundValue) {\n return getOrCreateInjectable(this._tNode, this._lView, token, undefined, notFoundValue);\n }\n}\nif (false) {\n /**\n * @type {?}\n * @private\n */\n NodeInjector.prototype._tNode;\n /**\n * @type {?}\n * @private\n */\n NodeInjector.prototype._lView;\n}\n/**\n * \\@codeGenApi\n * @template T\n * @param {?} type\n * @return {?}\n */\nfunction ɵɵgetFactoryOf(type) {\n /** @type {?} */\n const typeAny = (/** @type {?} */ (type));\n if (isForwardRef(type)) {\n return (/** @type {?} */ (((/**\n * @return {?}\n */\n () => {\n /** @type {?} */\n const factory = ɵɵgetFactoryOf(resolveForwardRef(typeAny));\n return factory ? factory() : null;\n }))));\n }\n /** @type {?} */\n let factory = getFactoryDef(typeAny);\n if (factory === null) {\n /** @type {?} */\n const injectorDef = getInjectorDef(typeAny);\n factory = injectorDef && injectorDef.factory;\n }\n return factory || null;\n}\n/**\n * \\@codeGenApi\n * @template T\n * @param {?} type\n * @return {?}\n */\nfunction ɵɵgetInheritedFactory(type) {\n return noSideEffects((/**\n * @return {?}\n */\n () => {\n /** @type {?} */\n const proto = (/** @type {?} */ (Object.getPrototypeOf(type.prototype).constructor));\n /** @type {?} */\n const factory = ((/** @type {?} */ (proto)))[NG_FACTORY_DEF] || ɵɵgetFactoryOf(proto);\n if (factory !== null) {\n return factory;\n }\n else {\n // There is no factory defined. Either this was improper usage of inheritance\n // (no Angular decorator on the superclass) or there is no constructor at all\n // in the inheritance chain. Since the two cases cannot be distinguished, the\n // latter has to be assumed.\n return (/**\n * @param {?} t\n * @return {?}\n */\n (t) => new t());\n }\n }));\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst ERROR_TYPE = 'ngType';\nconst ERROR_DEBUG_CONTEXT = 'ngDebugContext';\nconst ERROR_ORIGINAL_ERROR = 'ngOriginalError';\nconst ERROR_LOGGER = 'ngErrorLogger';\nfunction wrappedError(message, originalError) {\n const msg = `${message} caused by: ${originalError instanceof Error ? originalError.message : originalError}`;\n const error = Error(msg);\n error[ERROR_ORIGINAL_ERROR] = originalError;\n return error;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/errors.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} error\n * @return {?}\n */\nfunction getType(error) {\n return ((/** @type {?} */ (error)))[ERROR_TYPE];\n}\n/**\n * @param {?} error\n * @return {?}\n */\nfunction getDebugContext(error) {\n return ((/** @type {?} */ (error)))[ERROR_DEBUG_CONTEXT];\n}\n/**\n * @param {?} error\n * @return {?}\n */\nfunction getOriginalError(error) {\n return ((/** @type {?} */ (error)))[ERROR_ORIGINAL_ERROR];\n}\n/**\n * @param {?} error\n * @return {?}\n */\nfunction getErrorLogger(error) {\n return ((/** @type {?} */ (error)))[ERROR_LOGGER] || defaultErrorLogger;\n}\n/**\n * @param {?} console\n * @param {...?} values\n * @return {?}\n */\nfunction defaultErrorLogger(console, ...values) {\n ((/** @type {?} */ (console.error)))(...values);\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/error_handler.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Provides a hook for centralized exception handling.\n *\n * The default implementation of `ErrorHandler` prints error messages to the `console`. To\n * intercept error handling, write a custom exception handler that replaces this default as\n * appropriate for your app.\n *\n * \\@usageNotes\n * ### Example\n *\n * ```\n * class MyErrorHandler implements ErrorHandler {\n * handleError(error) {\n * // do something with the exception\n * }\n * }\n *\n * \\@NgModule({\n * providers: [{provide: ErrorHandler, useClass: MyErrorHandler}]\n * })\n * class MyModule {}\n * ```\n *\n * \\@publicApi\n */\nclass ErrorHandler {\n constructor() {\n /**\n * \\@internal\n */\n this._console = console;\n }\n /**\n * @param {?} error\n * @return {?}\n */\n handleError(error) {\n /** @type {?} */\n const originalError = this._findOriginalError(error);\n /** @type {?} */\n const context = this._findContext(error);\n // Note: Browser consoles show the place from where console.error was called.\n // We can use this to give users additional information about the error.\n /** @type {?} */\n const errorLogger = getErrorLogger(error);\n errorLogger(this._console, `ERROR`, error);\n if (originalError) {\n errorLogger(this._console, `ORIGINAL ERROR`, originalError);\n }\n if (context) {\n errorLogger(this._console, 'ERROR CONTEXT', context);\n }\n }\n /**\n * \\@internal\n * @param {?} error\n * @return {?}\n */\n _findContext(error) {\n if (error) {\n return getDebugContext(error) ? getDebugContext(error) :\n this._findContext(getOriginalError(error));\n }\n return null;\n }\n /**\n * \\@internal\n * @param {?} error\n * @return {?}\n */\n _findOriginalError(error) {\n /** @type {?} */\n let e = getOriginalError(error);\n while (e && getOriginalError(e)) {\n e = getOriginalError(e);\n }\n return e;\n }\n}\nif (false) {\n /**\n * \\@internal\n * @type {?}\n */\n ErrorHandler.prototype._console;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/metadata/schema.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A schema definition associated with an NgModule.\n *\n * @see `\\@NgModule`, `CUSTOM_ELEMENTS_SCHEMA`, `NO_ERRORS_SCHEMA`\n *\n * @param name The name of a defined schema.\n *\n * \\@publicApi\n * @record\n */\nfunction SchemaMetadata() { }\nif (false) {\n /** @type {?} */\n SchemaMetadata.prototype.name;\n}\n/**\n * Defines a schema that allows an NgModule to contain the following:\n * - Non-Angular elements named with dash case (`-`).\n * - Element properties named with dash case (`-`).\n * Dash case is the naming convention for custom elements.\n *\n * \\@publicApi\n * @type {?}\n */\nconst CUSTOM_ELEMENTS_SCHEMA = {\n name: 'custom-elements'\n};\n/**\n * Defines a schema that allows any property on any element.\n *\n * \\@publicApi\n * @type {?}\n */\nconst NO_ERRORS_SCHEMA = {\n name: 'no-errors-schema'\n};\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/sanitization/bypass.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @enum {string} */\nconst BypassType = {\n Url: \"URL\",\n Html: \"HTML\",\n ResourceUrl: \"ResourceURL\",\n Script: \"Script\",\n Style: \"Style\",\n};\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * \\@publicApi\n * @record\n */\nfunction SafeValue() { }\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * \\@publicApi\n * @record\n */\nfunction SafeHtml() { }\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * \\@publicApi\n * @record\n */\nfunction SafeStyle() { }\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * \\@publicApi\n * @record\n */\nfunction SafeScript() { }\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * \\@publicApi\n * @record\n */\nfunction SafeUrl() { }\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * \\@publicApi\n * @record\n */\nfunction SafeResourceUrl() { }\n/**\n * @abstract\n */\nclass SafeValueImpl {\n /**\n * @param {?} changingThisBreaksApplicationSecurity\n */\n constructor(changingThisBreaksApplicationSecurity) {\n this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity;\n }\n /**\n * @return {?}\n */\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see http://g.co/ng/security#xss)`;\n }\n}\nif (false) {\n /** @type {?} */\n SafeValueImpl.prototype.changingThisBreaksApplicationSecurity;\n /**\n * @abstract\n * @return {?}\n */\n SafeValueImpl.prototype.getTypeName = function () { };\n}\nclass SafeHtmlImpl extends SafeValueImpl {\n /**\n * @return {?}\n */\n getTypeName() {\n return \"HTML\" /* Html */;\n }\n}\nclass SafeStyleImpl extends SafeValueImpl {\n /**\n * @return {?}\n */\n getTypeName() {\n return \"Style\" /* Style */;\n }\n}\nclass SafeScriptImpl extends SafeValueImpl {\n /**\n * @return {?}\n */\n getTypeName() {\n return \"Script\" /* Script */;\n }\n}\nclass SafeUrlImpl extends SafeValueImpl {\n /**\n * @return {?}\n */\n getTypeName() {\n return \"URL\" /* Url */;\n }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl {\n /**\n * @return {?}\n */\n getTypeName() {\n return \"ResourceURL\" /* ResourceUrl */;\n }\n}\n/**\n * @template T\n * @param {?} value\n * @return {?}\n */\nfunction unwrapSafeValue(value) {\n return value instanceof SafeValueImpl ? (/** @type {?} */ ((/** @type {?} */ (value.changingThisBreaksApplicationSecurity)))) :\n (/** @type {?} */ ((/** @type {?} */ (value))));\n}\n/**\n * @param {?} value\n * @param {?} type\n * @return {?}\n */\nfunction allowSanitizationBypassAndThrow(value, type) {\n /** @type {?} */\n const actualType = getSanitizationBypassType(value);\n if (actualType != null && actualType !== type) {\n // Allow ResourceURLs in URL contexts, they are strictly more trusted.\n if (actualType === \"ResourceURL\" /* ResourceUrl */ && type === \"URL\" /* Url */)\n return true;\n throw new Error(`Required a safe ${type}, got a ${actualType} (see http://g.co/ng/security#xss)`);\n }\n return actualType === type;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction getSanitizationBypassType(value) {\n return value instanceof SafeValueImpl && (/** @type {?} */ (value.getTypeName())) || null;\n}\n/**\n * Mark `html` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {\\@link htmlSanitizer} to be trusted implicitly.\n *\n * @param {?} trustedHtml `html` string which needs to be implicitly trusted.\n * @return {?} a `html` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustHtml(trustedHtml) {\n return new SafeHtmlImpl(trustedHtml);\n}\n/**\n * Mark `style` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {\\@link styleSanitizer} to be trusted implicitly.\n *\n * @param {?} trustedStyle `style` string which needs to be implicitly trusted.\n * @return {?} a `style` hich has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustStyle(trustedStyle) {\n return new SafeStyleImpl(trustedStyle);\n}\n/**\n * Mark `script` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {\\@link scriptSanitizer} to be trusted implicitly.\n *\n * @param {?} trustedScript `script` string which needs to be implicitly trusted.\n * @return {?} a `script` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustScript(trustedScript) {\n return new SafeScriptImpl(trustedScript);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {\\@link urlSanitizer} to be trusted implicitly.\n *\n * @param {?} trustedUrl `url` string which needs to be implicitly trusted.\n * @return {?} a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustUrl(trustedUrl) {\n return new SafeUrlImpl(trustedUrl);\n}\n/**\n * Mark `url` string as trusted.\n *\n * This function wraps the trusted string in `String` and brands it in a way which makes it\n * recognizable to {\\@link resourceUrlSanitizer} to be trusted implicitly.\n *\n * @param {?} trustedResourceUrl `url` string which needs to be implicitly trusted.\n * @return {?} a `url` which has been branded to be implicitly trusted.\n */\nfunction bypassSanitizationTrustResourceUrl(trustedResourceUrl) {\n return new SafeResourceUrlImpl(trustedResourceUrl);\n}\n\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This file is used to control if the default rendering pipeline should be `ViewEngine` or `Ivy`.\n *\n * For more information on how to run and debug tests with either Ivy or View Engine (legacy),\n * please see [BAZEL.md](./docs/BAZEL.md).\n */\nlet _devMode = true;\nlet _runModeLocked = false;\n/**\n * Returns whether Angular is in development mode. After called once,\n * the value is locked and won't change any more.\n *\n * By default, this is true, unless a user calls `enableProdMode` before calling this.\n *\n * @publicApi\n */\nfunction isDevMode() {\n _runModeLocked = true;\n return _devMode;\n}\n/**\n * Disable Angular's development mode, which turns off assertions and other\n * checks within the framework.\n *\n * One important assertion this disables verifies that a change detection pass\n * does not result in additional changes to any bindings (also known as\n * unidirectional data flow).\n *\n * @publicApi\n */\nfunction enableProdMode() {\n if (_runModeLocked) {\n throw new Error('Cannot enable prod mode after platform setup.');\n }\n _devMode = false;\n}\n\n/**\n * @fileoverview added by tsickle\n * Generated from: packages/core/src/sanitization/inert_body.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This helper class is used to get hold of an inert tree of DOM elements containing dirty HTML\n * that needs sanitizing.\n * Depending upon browser support we must use one of three strategies for doing this.\n * Support: Safari 10.x -> XHR strategy\n * Support: Firefox -> DomParser strategy\n * Default: InertDocument strategy\n */\nclass InertBodyHelper {\n /**\n * @param {?} defaultDoc\n */\n constructor(defaultDoc) {\n this.defaultDoc = defaultDoc;\n this.inertDocument = this.defaultDoc.implementation.createHTMLDocument('sanitization-inert');\n /** @type {?} */\n let inertBodyElement = this.inertDocument.body;\n if (inertBodyElement == null) {\n // usually there should be only one body element in the document, but IE doesn't have any, so\n // we need to create one.\n /** @type {?} */\n const inertHtml = this.inertDocument.createElement('html');\n this.inertDocument.appendChild(inertHtml);\n inertBodyElement = this.inertDocument.createElement('body');\n inertHtml.appendChild(inertBodyElement);\n }\n inertBodyElement.innerHTML = '';\n if (inertBodyElement.querySelector && !inertBodyElement.querySelector('svg')) {\n // We just hit the Safari 10.1 bug - which allows JS to run inside the SVG G element\n // so use the XHR strategy.\n this.getInertBodyElement = this.getInertBodyElement_XHR;\n return;\n }\n inertBodyElement.innerHTML = '

';\n if (inertBodyElement.querySelector && inertBodyElement.querySelector('svg img')) {\n // We just hit the Firefox bug - which prevents the inner img JS from being sanitized\n // so use the DOMParser strategy, if it is available.\n // If the DOMParser is not available then we are not in Firefox (Server/WebWorker?) so we\n // fall through to the default strategy below.\n if (isDOMParserAvailable()) {\n this.getInertBodyElement = this.getInertBodyElement_DOMParser;\n return;\n }\n }\n // None of the bugs were hit so it is safe for us to use the default InertDocument strategy\n this.getInertBodyElement = this.getInertBodyElement_InertDocument;\n }\n /**\n * Use XHR to create and fill an inert body element (on Safari 10.1)\n * See\n * https://github.com/cure53/DOMPurify/blob/a992d3a75031cb8bb032e5ea8399ba972bdf9a65/src/purify.js#L439-L449\n * @private\n * @param {?} html\n * @return {?}\n */\n getInertBodyElement_XHR(html) {\n // We add these extra elements to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the\n // `` tag.\n html = '' + html + '';\n try {\n html = encodeURI(html);\n }\n catch (_a) {\n return null;\n }\n /** @type {?} */\n const xhr = new XMLHttpRequest();\n xhr.responseType = 'document';\n xhr.open('GET', 'data:text/html;charset=utf-8,' + html, false);\n xhr.send(undefined);\n /** @type {?} */\n const body = xhr.response.body;\n body.removeChild((/** @type {?} */ (body.firstChild)));\n return body;\n }\n /**\n * Use DOMParser to create and fill an inert body element (on Firefox)\n * See https://github.com/cure53/DOMPurify/releases/tag/0.6.7\n *\n * @private\n * @param {?} html\n * @return {?}\n */\n getInertBodyElement_DOMParser(html) {\n // We add these extra elements to ensure that the rest of the content is parsed as expected\n // e.g. leading whitespace is maintained and tags like `` do not get hoisted to the\n // `` tag.\n html = '' + html + '';\n try {\n /** @type {?} */\n const body = (/** @type {?} */ (new ((/** @type {?} */ (window))).DOMParser().parseFromString(html, 'text/html').body));\n body.removeChild((/** @type {?} */ (body.firstChild)));\n return body;\n }\n catch (_a) {\n return null;\n }\n }\n /**\n * Use an HTML5 `template` element, if supported, or an inert body element created via\n * `createHtmlDocument` to create and fill an inert DOM element.\n * This is the default sane strategy to use if the browser does not require one of the specialised\n * strategies above.\n * @private\n * @param {?} html\n * @return {?}\n */\n getInertBodyElement_InertDocument(html) {\n // Prefer using